/* /Components/Account/Pages/Register.razor.rz.scp.css */
/* Extracted inline styles (Blazor audit Batch G). */
.reg-invite-title[b-qeszxe322n] { font-size: .95rem; font-weight: 700; }
.reg-invite-sub[b-qeszxe322n] { margin-top: .2rem; }

/* Was hardcoded #15803d (light-theme green) — now theme-aware */
.reg-email-hint[b-qeszxe322n] { color: var(--success-text); font-weight: 600; }
/* /Components/Account/Shared/ManageLayout.razor.rz.scp.css */
.pam-page[b-omj82uf8tt] {
    max-width: 980px;
    margin: 0 auto;
    padding: 1.5rem 1.5rem 4rem;
}

.pam-shell[b-omj82uf8tt] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.pam-header[b-omj82uf8tt],
.pam-nav[b-omj82uf8tt],
.pam-content[b-omj82uf8tt] {
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 14px;
    background: var(--player-surface-card, var(--b9-surface-alt));
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08);
}

.pam-header[b-omj82uf8tt] {
    padding: 1.1rem 1.25rem;
}

.pam-back-link[b-omj82uf8tt] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    text-decoration: none;
    color: var(--player-link, var(--b9-link));
    font-size: .82rem;
    font-weight: 700;
}

.pam-eyebrow[b-omj82uf8tt] {
    margin-top: .9rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.pam-title[b-omj82uf8tt] {
    margin: .3rem 0 .25rem;
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--player-text-primary, var(--b9-text));
}

.pam-subtitle[b-omj82uf8tt] {
    margin: 0;
    max-width: 48rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    line-height: 1.6;
}

.pam-grid[b-omj82uf8tt] {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 1rem;
}

.pam-nav[b-omj82uf8tt] {
    padding: .85rem;
    align-self: start;
}

.pam-content[b-omj82uf8tt] {
    padding: 1.1rem 1.2rem;
}

.pam-content[b-omj82uf8tt]  h3 {
    margin: 0 0 1rem;
    color: var(--player-text-primary, var(--b9-text));
    font-size: 1.05rem;
    font-weight: 700;
}

.pam-content[b-omj82uf8tt]  .row {
    margin: 0;
}

.pam-content[b-omj82uf8tt]  .col-xl-6,
.pam-content[b-omj82uf8tt]  .col-lg-9,
.pam-content[b-omj82uf8tt]  .col-lg-3 {
    padding: 0;
    width: 100%;
    max-width: none;
    flex: 1 1 auto;
}

.pam-content[b-omj82uf8tt]  .alert {
    border-radius: 10px;
    border: 1px solid var(--player-border, var(--b9-border));
}

.pam-content[b-omj82uf8tt]  .alert-success {
    background: rgba(34, 197, 94, .12);
    color: #bbf7d0;
    border-color: rgba(34, 197, 94, .35);
}

.pam-content[b-omj82uf8tt]  .alert-danger,
.pam-content[b-omj82uf8tt]  .text-danger {
    color: #fca5a5 !important;
}

.pam-content[b-omj82uf8tt]  .form-control,
.pam-content[b-omj82uf8tt]  .form-select {
    background: var(--player-surface-elev, var(--b9-surface-muted));
    border-color: var(--player-border, var(--b9-border));
    color: var(--player-text-primary, var(--b9-text));
}

.pam-content[b-omj82uf8tt]  .form-control:focus,
.pam-content[b-omj82uf8tt]  .form-select:focus {
    border-color: var(--player-link, var(--b9-link));
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--player-link, var(--b9-link)) 18%, transparent);
}

.pam-content[b-omj82uf8tt]  .form-floating > label,
.pam-content[b-omj82uf8tt]  .form-label,
.pam-content[b-omj82uf8tt]  p,
.pam-content[b-omj82uf8tt]  li,
.pam-content[b-omj82uf8tt]  small,
.pam-content[b-omj82uf8tt]  span,
.pam-content[b-omj82uf8tt]  .text-body-secondary {
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.pam-content[b-omj82uf8tt]  .form-floating > .form-control:focus ~ label,
.pam-content[b-omj82uf8tt]  .form-floating > .form-control:not(:placeholder-shown) ~ label,
.pam-content[b-omj82uf8tt]  .form-floating > .form-select ~ label {
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.pam-content[b-omj82uf8tt]  .btn-primary,
.pam-content[b-omj82uf8tt]  .btn.btn-primary {
    background: var(--player-link, var(--b9-link));
    border-color: var(--player-link, var(--b9-link));
}

.pam-content[b-omj82uf8tt]  .btn-secondary,
.pam-content[b-omj82uf8tt]  .btn-outline-secondary,
.pam-content[b-omj82uf8tt]  .btn-outline-primary,
.pam-content[b-omj82uf8tt]  .btn-outline-danger {
    background: transparent;
    border-color: var(--player-border, var(--b9-border));
    color: var(--player-text-primary, var(--b9-text));
}

.pam-content[b-omj82uf8tt]  a {
    color: var(--player-link, var(--b9-link));
}

.pam-nav[b-omj82uf8tt]  .nav {
    gap: .35rem;
}

.pam-nav[b-omj82uf8tt]  .nav-link {
    border-radius: 10px;
    padding: .6rem .75rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    background: transparent;
    font-weight: 600;
}

.pam-nav[b-omj82uf8tt]  .nav-link.active,
.pam-nav[b-omj82uf8tt]  .nav-link:hover {
    background: var(--player-surface-elev, var(--b9-surface-muted));
    color: var(--player-text-primary, var(--b9-text));
}

@media (max-width: 760px) {
    .pam-page[b-omj82uf8tt] {
        padding: 1.25rem 1rem 3rem;
    }

    .pam-grid[b-omj82uf8tt] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Admin/Registration/RegistrationPanel.razor.rz.scp.css */
.reg-panel[b-dotng9kxqf] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.reg-panel__header[b-dotng9kxqf] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.reg-panel__title-row[b-dotng9kxqf] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.reg-panel__title[b-dotng9kxqf] {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
}

.reg-panel__status[b-dotng9kxqf] {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.2rem 0.65rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.reg-panel__status--success[b-dotng9kxqf] {
    background: var(--b9-success-soft);
    color: var(--b9-success-text);
}

.reg-panel__status--warning[b-dotng9kxqf] {
    background: var(--b9-warning-soft);
    color: var(--b9-warning-text);
}

.reg-panel__status--danger[b-dotng9kxqf] {
    background: var(--b9-danger-soft);
    color: var(--b9-danger-text);
}

.reg-panel__status--info[b-dotng9kxqf] {
    background: var(--b9-info-soft);
    color: var(--b9-info-text);
}

.reg-panel__status--neutral[b-dotng9kxqf] {
    background: var(--b9-badge-neutral-bg);
    color: var(--b9-badge-neutral-text);
}

.reg-panel__summary[b-dotng9kxqf],
.reg-panel__section-body[b-dotng9kxqf],
.reg-panel__help[b-dotng9kxqf],
.reg-panel__capacity[b-dotng9kxqf],
.reg-panel__public-link[b-dotng9kxqf] {
    margin: 0;
    color: var(--text-secondary);
    font-size: 0.9rem;
    line-height: 1.5;
}

.reg-panel__grid[b-dotng9kxqf] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.85rem;
}

.reg-panel__section[b-dotng9kxqf] {
    border: 1px solid var(--border-subtle);
    border-radius: 0.75rem;
    padding: 0.85rem;
    background: var(--bg-surface);
}

.reg-panel__section--preview[b-dotng9kxqf] {
    grid-column: 1 / -1;
}

.reg-panel__section-title[b-dotng9kxqf],
.reg-panel__preview-title[b-dotng9kxqf] {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--text-primary);
}

.reg-panel__note-list[b-dotng9kxqf] {
    margin: 0.5rem 0 0;
    padding-left: 1rem;
}

.reg-panel__disabled-note[b-dotng9kxqf] {
    color: var(--b9-warning-text);
    font-size: 0.82rem;
}

.reg-panel__warnings[b-dotng9kxqf] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.reg-panel__errors[b-dotng9kxqf] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.reg-panel__error[b-dotng9kxqf] {
    border-left: 3px solid var(--b9-danger);
    background: var(--b9-danger-soft);
    color: var(--b9-danger-text);
    padding: 0.65rem 0.8rem;
    border-radius: 0.5rem;
    font-size: 0.85rem;
}

.reg-panel__warning[b-dotng9kxqf] {
    border-left: 3px solid var(--b9-warning);
    background: var(--b9-warning-soft);
    color: var(--b9-warning-text);
    padding: 0.65rem 0.8rem;
    border-radius: 0.5rem;
    font-size: 0.85rem;
}

.reg-panel__action-feedback[b-dotng9kxqf] {
    padding: 0.55rem 0.8rem;
    border-radius: 0.5rem;
    font-size: 0.85rem;
    margin-top: 0.35rem;
}

.reg-panel__action-feedback--success[b-dotng9kxqf] {
    border-left: 3px solid var(--b9-success);
    background: var(--b9-success-soft);
    color: var(--b9-success-text);
}

.reg-panel__action-feedback--error[b-dotng9kxqf] {
    border-left: 3px solid var(--b9-danger);
    background: var(--b9-danger-soft);
    color: var(--b9-danger-text);
}

.reg-panel__compact[b-dotng9kxqf] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

/* Calm, link-style expander to reveal/hide the full registration explainer grid.

   This rendered at 1.11:1 — in the DOM and invisible on screen — on every event page, in both
   themes. --brand-soft is a BACKGROUND TINT: rgba(29,78,216,0.15) in dark and 0.10 in light, so
   light was the worse of the two. It is used as `background` in fifteen places and was used as
   `color` in exactly this one. The declared #7dd3fc fallback never applied, because the token is
   defined; a fallback only rescues an UNDEFINED token, which is what made this survive review.

   --b9-primary-text is the palette's ink variant and already flips per theme (#93C5FD dark,
   #1E40AF light), so no theme selector is needed — the same fix as .cc-readiness-fix.

   The 48px floor is CLAUDE.md's, and this control was ~22px: padding 0.15rem on a 0.85rem font,
   with no min-height. inline-flex keeps the label optically where it was while the hit area grows. */
.reg-panel__details-toggle[b-dotng9kxqf] {
    align-self: flex-start;
    margin-top: 0.25rem;
    padding: 0.15rem 0;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    background: none;
    border: none;
    color: var(--b9-primary-text, #7dd3fc);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.reg-panel__details-toggle:hover[b-dotng9kxqf],
.reg-panel__details-toggle:focus-visible[b-dotng9kxqf] {
    text-decoration: underline;
}

.reg-panel__footer[b-dotng9kxqf] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.reg-panel__edit[b-dotng9kxqf] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.reg-panel__edit-actions[b-dotng9kxqf] {
    display: flex;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.reg-panel__subsection[b-dotng9kxqf] {
    margin-top: 0.65rem;
}

.reg-panel__subsection-title[b-dotng9kxqf] {
    margin: 0 0 0.35rem;
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text-primary);
}

.reg-panel__helper-note[b-dotng9kxqf] {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--text-secondary);
}

.reg-panel__divider[b-dotng9kxqf] {
    border: 0;
    border-top: 1px solid var(--border-subtle);
    margin: 0.85rem 0;
}

@media (max-width: 767px) {
    .reg-panel__footer[b-dotng9kxqf] {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* ── Waitlist queue section ── */

.reg-panel__waitlist[b-dotng9kxqf] {
    grid-column: 1 / -1;
}

.reg-panel__waitlist-header[b-dotng9kxqf] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}

.reg-panel__waitlist-count[b-dotng9kxqf] {
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.reg-panel__waitlist-empty[b-dotng9kxqf],
.reg-panel__waitlist-coming-soon[b-dotng9kxqf] {
    margin: 0.35rem 0 0;
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.reg-panel__waitlist-table[b-dotng9kxqf] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.86rem;
    margin-top: 0.45rem;
}

.reg-panel__waitlist-th[b-dotng9kxqf] {
    text-align: left;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.3rem 0.5rem 0.3rem 0;
    border-bottom: 1px solid var(--border-subtle);
}

.reg-panel__waitlist-td[b-dotng9kxqf] {
    padding: 0.4rem 0.5rem 0.4rem 0;
    color: var(--text-primary);
    vertical-align: middle;
    border-bottom: 1px solid var(--border-subtle);
}

.reg-panel__waitlist-td--pos[b-dotng9kxqf] {
    color: var(--text-secondary);
    font-weight: 700;
    width: 2rem;
}

.reg-panel__waitlist-td--date[b-dotng9kxqf] {
    color: var(--text-secondary);
    white-space: nowrap;
}

.reg-panel__waitlist-status[b-dotng9kxqf] {
    display: inline-flex;
    align-items: center;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--b9-warning-text);
    background: var(--b9-warning-soft);
    border-radius: 999px;
    padding: 0.15rem 0.55rem;
}

@media (max-width: 600px) {
    .reg-panel__waitlist-td--date[b-dotng9kxqf] {
        display: none;
    }
    .reg-panel__waitlist-th:nth-child(3)[b-dotng9kxqf] {
        display: none;
    }
}

.reg-panel__waitlist-th--action[b-dotng9kxqf] {
    width: 1%;
    white-space: nowrap;
}

.reg-panel__waitlist-td--action[b-dotng9kxqf] {
    white-space: nowrap;
    text-align: right;
}

.reg-panel__waitlist-confirm[b-dotng9kxqf] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    align-items: flex-start;
}

.reg-panel__waitlist-confirm-msg[b-dotng9kxqf] {
    font-size: 0.82rem;
    color: #374151;
}

.reg-panel__waitlist-feedback[b-dotng9kxqf] {
    font-size: 0.85rem;
    padding: 0.4rem 0.75rem;
    border-radius: 4px;
    margin-bottom: 0.5rem;
}

.reg-panel__waitlist-no-capacity[b-dotng9kxqf] {
    display: block;
    font-size: 0.75rem;
    color: #6b7280;
    margin-top: 0.2rem;
}

.reg-panel__waitlist-feedback[role="status"][b-dotng9kxqf] {
    background: var(--success-soft);
    color: var(--success-text);
    border: 1px solid rgba(34,197,94,0.28);
}

.reg-panel__waitlist-feedback[role="alert"][b-dotng9kxqf] {
    background: var(--danger-soft);
    color: var(--danger-text);
    border: 1px solid rgba(239,68,68,0.28);
}
/* /Components/Handicaps/HandicapBadge.razor.rz.scp.css */
.hcp-badge[b-385luivua4] {
    --hcp-accent: #0f766e;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid color-mix(in srgb, var(--hcp-accent) 40%, transparent);
    background: color-mix(in srgb, var(--hcp-accent) 18%, transparent);
    color: var(--text-primary, #f1f5f9);
    border-radius: 999px;
    padding: 0.2rem 0.6rem;
    font-size: 0.95rem;
    line-height: 1.1;
}

.hcp-badge-label[b-385luivua4] {
    font-size: 0.85rem;
    color: var(--text-secondary, #cbd5e1);
}

.hcp-badge-value[b-385luivua4] {
    font-weight: 700;
    letter-spacing: 0.01em;
}

.hcp-badge-player[b-385luivua4]  { --hcp-accent: #2563eb; }
.hcp-badge-team[b-385luivua4]    { --hcp-accent: #0f766e; }
.hcp-badge-league[b-385luivua4]  { --hcp-accent: #d97706; }
.hcp-badge-playing[b-385luivua4] { --hcp-accent: #b45309; }

/* ── Info button (mobile tap target) ──────────────────────────────── */
.hcp-badge-info[b-385luivua4] {
    display: inline-flex;
    position: relative;
}

.hcp-badge-info-btn[b-385luivua4] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.75rem;
    height: 1.75rem;
    min-width: 44px;
    min-height: 44px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: var(--hcp-accent);
    cursor: pointer;
    padding: 0;
    list-style: none;
    font-size: 0.9rem;
}

.hcp-badge-info-btn[b-385luivua4]::-webkit-details-marker { display: none; }

.hcp-badge-popover[b-385luivua4] {
    display: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 50%;
    transform: translateX(-50%);
    min-width: 180px;
    max-width: 260px;
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.25);
    z-index: 100;
    white-space: normal;
    line-height: 1.4;
}

.hcp-badge-info[open] .hcp-badge-popover[b-385luivua4] {
    display: block;
}

/* Light mode overrides */
html[data-theme="light"] .hcp-badge[b-385luivua4] {
    background: color-mix(in srgb, var(--hcp-accent) 10%, #ffffff);
    border-color: color-mix(in srgb, var(--hcp-accent) 30%, #ffffff);
    color: #1f2937;
}

html[data-theme="light"] .hcp-badge-label[b-385luivua4] { color: #4b5563; }
html[data-theme="light"] .hcp-badge-popover[b-385luivua4] { background: #1f2937; color: #f9fafb; }
/* /Components/Handicaps/HandicapBreakdownPanel.razor.rz.scp.css */
.hcp-breakdown[b-829e9cpy4p] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 12px;
    background: var(--b9-surface-muted, #111827);
}

.hcp-breakdown-summary[b-829e9cpy4p] {
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    align-items: baseline;
    padding: 0.8rem 1rem;
    font-size: 1rem;
    color: var(--b9-text, #f3f6fb);
}

.hcp-breakdown-summary .fw-semibold[b-829e9cpy4p] {
    color: var(--b9-text, #f3f6fb);
}

.hcp-breakdown-summary .text-muted[b-829e9cpy4p] {
    color: var(--b9-text-muted, #c2cfdf) !important;
}

.hcp-breakdown-body[b-829e9cpy4p] {
    border-top: 1px solid rgba(255,255,255,0.08);
    padding: 0.9rem 1rem;
    display: grid;
    gap: 0.75rem;
}

.hcp-breakdown-section h4[b-829e9cpy4p] {
    margin: 0 0 0.3rem 0;
    font-size: 1rem;
    color: var(--b9-text, #f3f6fb);
}

.hcp-breakdown-section p[b-829e9cpy4p],
.hcp-breakdown-section li[b-829e9cpy4p] {
    font-size: 1rem;
    color: var(--b9-text-muted, #c2cfdf);
}

.hcp-breakdown-section ul[b-829e9cpy4p] {
    margin-bottom: 0;
    padding-left: 1.2rem;
}
/* /Components/Handicaps/HandicapCard.razor.rz.scp.css */
.hcp-card[b-cwrvfp1856] {
    --hcp-accent: #0f766e;
    border: 1px solid var(--border-subtle, #334155);
    border-left: 4px solid var(--hcp-accent);
    border-radius: 14px;
    padding: 1rem;
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
}

.hcp-card-player[b-cwrvfp1856]  { --hcp-accent: #2563eb; }
.hcp-card-team[b-cwrvfp1856]    { --hcp-accent: #0f766e; }
.hcp-card-league[b-cwrvfp1856]  { --hcp-accent: #d97706; }
.hcp-card-playing[b-cwrvfp1856] { --hcp-accent: #b45309; }

.hcp-card-header[b-cwrvfp1856] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
}

.hcp-card-title[b-cwrvfp1856] {
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
}

.hcp-card-subtitle[b-cwrvfp1856] {
    font-size: 0.95rem;
    color: var(--text-secondary, #cbd5e1);
}

.hcp-card-summary[b-cwrvfp1856] {
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
    font-size: 1rem;
    color: var(--text-primary, #f1f5f9);
}

.hcp-card-meta[b-cwrvfp1856] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem 1rem;
    margin: 0;
    margin-bottom: 0.75rem;
}

.hcp-card-meta dt[b-cwrvfp1856] {
    font-size: 0.82rem;
    color: var(--text-muted, #94a3b8);
    margin: 0;
}

.hcp-card-meta dd[b-cwrvfp1856] {
    margin: 0;
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
}

@media (max-width: 768px) {
    .hcp-card-meta[b-cwrvfp1856] {
        grid-template-columns: 1fr;
    }
}

/* Light mode overrides */
html[data-theme="light"] .hcp-card[b-cwrvfp1856] {
    background: #ffffff;
    border-color: #d1d5db;
    color: #1f2937;
}

html[data-theme="light"] .hcp-card-title[b-cwrvfp1856]  { color: #111827; }
html[data-theme="light"] .hcp-card-subtitle[b-cwrvfp1856] { color: #4b5563; }
html[data-theme="light"] .hcp-card-summary[b-cwrvfp1856]  { color: #1f2937; }
html[data-theme="light"] .hcp-card-meta dt[b-cwrvfp1856]  { color: #6b7280; }
html[data-theme="light"] .hcp-card-meta dd[b-cwrvfp1856]  { color: #1f2937; }
/* /Components/Handicaps/HandicapHistoryChart.razor.rz.scp.css */
.hcp-history[b-yxb3c2uqtq] {
    --hcp-accent: #0f766e;
    border: 1px solid var(--border-subtle, #334155);
    border-radius: 12px;
    padding: 0.85rem 1rem;
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
}

.hcp-history-header[b-yxb3c2uqtq] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 0.35rem;
}

.hcp-history-header h3[b-yxb3c2uqtq] {
    margin: 0;
    font-size: 1.03rem;
}

.hcp-history-chart[b-yxb3c2uqtq] {
    width: 100%;
    height: 92px;
    border-radius: 8px;
    background: linear-gradient(180deg,
        color-mix(in srgb, var(--hcp-accent) 18%, var(--bg-surface, #0f172a)),
        var(--bg-surface, #0f172a));
    border: 1px solid color-mix(in srgb, var(--hcp-accent) 30%, transparent);
}

.hcp-history-labels[b-yxb3c2uqtq] {
    margin-top: 0.3rem;
    display: grid;
    grid-auto-flow: column;
    gap: 0.35rem;
    font-size: 0.82rem;
    color: var(--text-muted, #94a3b8);
    text-align: center;
}

/* Light mode overrides */
html[data-theme="light"] .hcp-history[b-yxb3c2uqtq] {
    background: #ffffff;
    border-color: #d1d5db;
    color: #1f2937;
}

html[data-theme="light"] .hcp-history-chart[b-yxb3c2uqtq] {
    background: linear-gradient(180deg, #ecfeff, #ffffff);
    border-color: #d1fae5;
}

html[data-theme="light"] .hcp-history-labels[b-yxb3c2uqtq] { color: #6b7280; }
/* /Components/Handicaps/HandicapSummaryBanner.razor.rz.scp.css */
.hcp-summary[b-x6vcl3jd5f] {
    --hcp-accent: #0f766e;
    border: 1px solid color-mix(in srgb, var(--hcp-accent) 40%, transparent);
    background: color-mix(in srgb, var(--hcp-accent) 12%, var(--bg-elevated, #1e293b));
    border-radius: 14px;
    padding: 0.95rem 1rem;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    color: var(--text-primary, #f1f5f9);
}

.hcp-summary-player[b-x6vcl3jd5f]  { --hcp-accent: #2563eb; }
.hcp-summary-team[b-x6vcl3jd5f]    { --hcp-accent: #0f766e; }
.hcp-summary-league[b-x6vcl3jd5f]  { --hcp-accent: #d97706; }
.hcp-summary-playing[b-x6vcl3jd5f] { --hcp-accent: #b45309; }

.hcp-summary-kicker[b-x6vcl3jd5f] {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--text-secondary, #cbd5e1);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.hcp-summary-title[b-x6vcl3jd5f] {
    margin: 0;
    font-size: 1.2rem;
    color: var(--text-primary, #f1f5f9);
}

.hcp-summary-subtitle[b-x6vcl3jd5f] {
    margin: 0.2rem 0 0 0;
    font-size: 1rem;
    color: var(--text-secondary, #cbd5e1);
}

.hcp-summary-right[b-x6vcl3jd5f] {
    text-align: right;
}

.hcp-summary-timing[b-x6vcl3jd5f] {
    margin-top: 0.4rem;
    font-size: 0.9rem;
    color: var(--text-secondary, #cbd5e1);
}

@media (max-width: 768px) {
    .hcp-summary[b-x6vcl3jd5f] {
        flex-direction: column;
        align-items: flex-start;
    }

    .hcp-summary-right[b-x6vcl3jd5f] {
        text-align: left;
        width: 100%;
    }
}

/* Light mode overrides */
html[data-theme="light"] .hcp-summary[b-x6vcl3jd5f] {
    background: linear-gradient(120deg, color-mix(in srgb, var(--hcp-accent) 14%, #ffffff), #ffffff);
    border-color: color-mix(in srgb, var(--hcp-accent) 25%, #ffffff);
    color: #1f2937;
}

html[data-theme="light"] .hcp-summary-kicker[b-x6vcl3jd5f]  { color: #374151; }
html[data-theme="light"] .hcp-summary-title[b-x6vcl3jd5f]   { color: #111827; }
html[data-theme="light"] .hcp-summary-subtitle[b-x6vcl3jd5f] { color: #4b5563; }
html[data-theme="light"] .hcp-summary-timing[b-x6vcl3jd5f]  { color: #4b5563; }
/* /Components/Layout/FlyerLayout.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════
   FlyerLayout.razor.css
   Shell and admin toolbar for the flyer preview experience.

   .fly-toolbar  Fixed top bar with Back + Print buttons (screen only).
   .fly-stage    Full-viewport preview area — grey background, centers
                 the flyer card. Overrides any app dark-theme background.
   ══════════════════════════════════════════════════════════════════════ */

/* ── Admin toolbar ──────────────────────────────────────────────────── */
.fly-toolbar[b-7rynhxwq93] {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 52px;
    background: #ffffff;
    border-bottom: 1px solid #dde1e6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1.25rem;
    z-index: 400;
    box-shadow: 0 1px 6px rgba(0,0,0,.07);
}

.fly-back-btn[b-7rynhxwq93] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: none;
    border: 1px solid #dde1e6;
    font-size: .875rem;
    font-weight: 500;
    color: #444;
    cursor: pointer;
    padding: .4rem .75rem;
    border-radius: 6px;
    line-height: 1;
    transition: background .14s, border-color .14s;
}

.fly-back-btn:hover[b-7rynhxwq93] {
    background: #f4f5f7;
    border-color: #c8cdd4;
}

.fly-toolbar-right[b-7rynhxwq93] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.fly-print-btn[b-7rynhxwq93] {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    background: #1a5c2a;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: .875rem;
    font-weight: 600;
    padding: .5rem 1.1rem;
    cursor: pointer;
    line-height: 1;
    box-shadow: 0 1px 4px rgba(26,92,42,.3);
    transition: background .14s, transform .1s;
}

.fly-print-btn:hover[b-7rynhxwq93] {
    background: #155224;
    transform: translateY(-1px);
}

.fly-print-btn:active[b-7rynhxwq93] {
    transform: translateY(0);
}

/* ── Preview stage ──────────────────────────────────────────────────── */
.fly-stage[b-7rynhxwq93] {
    min-height: 100vh;
    background: #e6e9ed;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    padding: 4.5rem 1rem 3rem;
}

/* ── Phone-screen containment (print output untouched) ─────────────────
   The flyer body is a fixed-width print sheet. On a phone the sheet pans
   inside the stage like a document preview instead of widening the whole
   page; the toolbar wraps rather than stretching. */
@media screen and (max-width: 720px) {
    .fly-toolbar[b-7rynhxwq93] {
        flex-wrap: wrap;
        height: auto;
        min-height: 52px;
        padding: 0.4rem 0.75rem;
        row-gap: 0.35rem;
    }

    .fly-stage[b-7rynhxwq93] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        justify-content: flex-start;
        padding: 4.5rem 0.75rem 3rem;
    }
}

/* ── Print overrides ────────────────────────────────────────────────── */
@media print {
    .fly-toolbar[b-7rynhxwq93],
    .no-print[b-7rynhxwq93] {
        display: none !important;
    }

    .fly-stage[b-7rynhxwq93] {
        min-height: unset;
        background: #fff !important;
        padding: 0;
        display: block;
    }
}

/* /Components/Layout/Header.razor.rz.scp.css */
/* ==================================================
   BACK9OPS SHELL HEADER
   Three-zone layout: left (page context) | right (actions + profile)
   Design system: matches .sb-* sidebar tokens exactly.

   Class inventory:
   .hdr               56px shell header - top of .main-col
   .hdr-left          flex column for section label + title
   .hdr-section       small muted uppercase section name
   .hdr-title         primary page title (h1, reset to inline)
   .hdr-right         flex row - icon buttons + profile wrap
   .hdr-icon-btn      32x32 icon-only action button
   .hdr-profile-wrap  relative positioner for dropdown
   .hdr-avatar-btn    button wrapping the avatar circle
   .hdr-avatar        initials circle
   .hdr-dismiss       full-screen click target, closes dropdown
   .hdr-profile-menu  floating dropdown panel
   .hdr-profile-header  identity block (name + email)
   .hdr-profile-name  bold display name
   .hdr-profile-email muted email address
   .hdr-profile-divider  1px rule between menu sections
   .hdr-menu-item     individual menu action (a or button)
   .hdr-menu-signout  danger tint variant of .hdr-menu-item
   .hdr-signout-form  display:contents form wrapper

   Tokens used (same as sidebar):
   --bg-surface, --bg-elevated, --bg-app
   --text-primary, --text-secondary, --text-muted
   --border-subtle, --border-default
   --brand, --brand-soft
================================================== */


/* SHELL HEADER */

.hdr[b-te0hhul7us] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 56px;
    padding: 0 20px;
    background: var(--bg-surface, #0F172A);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    flex-shrink: 0;
    gap: 12px;
    position: relative;
    z-index: 10;
}


/* LEFT: page context */

.hdr-left[b-te0hhul7us] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
}

.hdr-section[b-te0hhul7us] {
    display: block;
    font-size: var(--font-size-sm, 14px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--text-secondary, #C2CFDF);
    line-height: 1;
    user-select: none;
}

.hdr-title[b-te0hhul7us] {
    font-size: 17px;
    font-weight: 600;
    color: var(--text-primary, #E5E7EB);
    margin: 0;
    padding: 0;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: var(--b9-font-sans, Inter, system-ui, sans-serif);
}

.hdr-left:not(:has(.hdr-section)) .hdr-title[b-te0hhul7us] {
    font-size: 18px;
}


/* RIGHT: actions + profile */

.hdr-right[b-te0hhul7us] {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}


/* ICON BUTTONS */

.hdr-icon-btn[b-te0hhul7us] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border-radius: 8px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #C2CFDF);
    font-size: 17px;
    cursor: pointer;
    text-decoration: none;
    transition: background 160ms ease, color 160ms ease;
    flex-shrink: 0;
}

.hdr-icon-btn:hover:not(:disabled)[b-te0hhul7us] {
    background: rgba(255,255,255,0.06);
    color: var(--text-primary, #F3F6FB);
}

.hdr-icon-btn:focus-visible[b-te0hhul7us] {
    outline: none;
    box-shadow: 0 0 0 2px rgba(29,78,216,0.55);
}

.hdr-icon-btn:disabled[b-te0hhul7us] {
    opacity: 0.65;
    cursor: default;
}

.hdr-bell-link[b-te0hhul7us] {
    position: relative;
}

/* Theme toggle in the header */
[b-te0hhul7us] .theme-toggle.hdr-theme-toggle {
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border-radius: 8px;
    color: var(--text-secondary, #C2CFDF);
    background: transparent;
    border: none;
}

[b-te0hhul7us] .theme-toggle.hdr-theme-toggle:hover {
    background: rgba(255,255,255,0.06);
    color: var(--text-primary, #F3F6FB);
}

.hdr-bell-dot[b-te0hhul7us] {
    position: absolute;
    top: 7px;
    right: 7px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--b9-danger);
    box-shadow: 0 0 0 1.5px var(--bg-surface, #0F172A);
}


/* PROFILE AREA */

.hdr-profile-wrap[b-te0hhul7us] {
    position: relative;
    display: flex;
    align-items: center;
    margin-left: 4px;
}

.hdr-avatar-btn[b-te0hhul7us] {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 2px solid transparent;
    cursor: pointer;
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    padding: 0;
    border-radius: 50%;
    transition: border-color 160ms ease;
    line-height: 1;
}

.hdr-avatar-btn:hover[b-te0hhul7us] {
    border-color: var(--border-strong, rgba(255,255,255,0.18));
}

.hdr-avatar-btn:focus-visible[b-te0hhul7us] {
    outline: none;
    box-shadow: 0 0 0 2px rgba(29,78,216,0.55);
    border-radius: 50%;
}

.hdr-avatar[b-te0hhul7us] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--brand-soft, rgba(29,78,216,0.18));
    /* The header rides --bg-surface, which flips to #FFFFFF in light — where this literal
       measured 1.76:1 on its own tint. --b9-primary-text is the themed twin (#93C5FD dark,
       #1E40AF light, 7.6:1 on that same tint). */
    color: var(--b9-primary-text);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.03em;
    display: flex;
    align-items: center;
    justify-content: center;
    user-select: none;
    font-family: var(--b9-font-sans, Inter, system-ui, sans-serif);
    overflow: hidden;
}
.hdr-avatar--photo[b-te0hhul7us] {
    background: transparent;
}


/* PROFILE DROPDOWN */

.hdr-dismiss[b-te0hhul7us] {
    position: fixed;
    inset: 0;
    z-index: 199;
    background: transparent;
    cursor: default;
}

.hdr-profile-menu[b-te0hhul7us] {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    width: 220px;
    background: var(--bg-elevated, #111827);
    border: 1px solid var(--border-default, rgba(255,255,255,0.10));
    border-radius: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.45), 0 2px 6px rgba(0,0,0,0.20);
    z-index: 200;
    padding: 6px;
    animation: hdr-menu-in-b-te0hhul7us 140ms ease both;
}

@keyframes hdr-menu-in-b-te0hhul7us {
    from { opacity: 0; transform: translateY(-4px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

.hdr-profile-header[b-te0hhul7us] {
    padding: 8px 10px 10px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.hdr-profile-name[b-te0hhul7us] {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-primary, #E5E7EB);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.hdr-profile-email[b-te0hhul7us] {
    font-size: var(--font-size-sm, 14px);
    color: var(--text-secondary, #C2CFDF);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

.hdr-profile-divider[b-te0hhul7us] {
    height: 1px;
    background: var(--border-subtle, rgba(255,255,255,0.06));
    margin: 4px 0;
}

.hdr-menu-item[b-te0hhul7us] {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 7px 10px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    font-family: var(--b9-font-sans, Inter, system-ui, sans-serif);
    color: var(--text-secondary, #C2CFDF);
    text-decoration: none;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background 160ms ease, color 160ms ease;
    text-align: left;
    line-height: 1;
    box-sizing: border-box;
}

.hdr-menu-item:hover[b-te0hhul7us] {
    background: rgba(255,255,255,0.05);
    color: var(--text-primary, #E5E7EB);
}

.hdr-menu-item:focus-visible[b-te0hhul7us] {
    outline: none;
    box-shadow: inset 0 0 0 2px rgba(29,78,216,0.45);
    border-radius: 8px;
}

.hdr-menu-signout:hover[b-te0hhul7us] {
    background: rgba(239,68,68,0.10);
    /* #FCA5A5 measured 1.90:1 once the menu turns white in light. */
    color: var(--b9-danger-text);
}

.hdr-signout-form[b-te0hhul7us] { display: contents; }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-o01qyrd7xn] {
    position: relative;
    display: flex;
    flex-direction: column;
}

/* Column that holds the header + scrollable main */
.main-col[b-o01qyrd7xn] {
    flex: 1;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.main-col-public[b-o01qyrd7xn] {
    height: auto;
    overflow: visible;
}

.content[b-o01qyrd7xn] {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.content-admin[b-o01qyrd7xn] {
    --admin-list-page-max-width: 1120px;
    max-width: 1280px;
    margin: 0 auto;
}

.content-public-home[b-o01qyrd7xn] {
    padding-top: 0;
}

main[b-o01qyrd7xn] {
    flex: 1;
    background: var(--bg-app, #020617);
}

.sidebar[b-o01qyrd7xn] {
    background: var(--bg-sidebar, #0B1220);
    border-right: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}

@media (min-width: 641px) {
    .page[b-o01qyrd7xn] {
        flex-direction: row;
        min-height: 100vh;
        height: 100vh;
        overflow: hidden;
    }

    .sidebar[b-o01qyrd7xn] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
        flex-shrink: 0;
    }

    /* Constrain main-col to viewport height so the header stays fixed
       and only the content area beneath it scrolls */
    .main-col[b-o01qyrd7xn] {
        height: 100vh;
        min-height: 0;
        overflow: hidden;
    }

    .main-col-public[b-o01qyrd7xn] {
        height: auto;
        overflow: visible;
    }

    main[b-o01qyrd7xn] {
        overflow-y: auto;
        overflow-x: hidden;
        min-height: 0;
        padding-bottom: max(72px, calc(env(safe-area-inset-bottom) + 2.5rem));
        scroll-padding-bottom: max(72px, calc(env(safe-area-inset-bottom) + 2.5rem));
    }

    .main-col-public main[b-o01qyrd7xn] {
        overflow: visible;
    }

    /* P0: let the public landing page scroll naturally — break the
       height:100vh + overflow:hidden shell trap for public routes only */
    .page-public[b-o01qyrd7xn] {
        height: auto !important;
        overflow: visible !important;
        min-height: 100vh;
    }
}

#blazor-error-ui[b-o01qyrd7xn] {
    color-scheme: light only;
    background: var(--b9-dark-surface);
    color: var(--b9-dark-text);
    bottom: 0;
    box-shadow: 0 -1px 0 var(--b9-dark-border);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-size: 0.85rem;
}

    #blazor-error-ui .dismiss[b-o01qyrd7xn] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ==================================================
   BACK9OPS SIDEBAR - Premium dark admin shell
   Linear/Stripe/Vercel quality design system.
   
   Class inventory:
   .sb-shell         full-height column flex container
   .sb-brand         logo + mobile hamburger
   .sb-body          scrollable nav area
   .sb-nav           flex column nav tree
   .sb-section       grouped nav items
   .sb-section-label uppercase group header
   .sb-item-wrap     Blazor scope anchor (display:contents)
   .sb-item          nav link/button (::deep target)
   .sb-icon          Bootstrap Icons element inside .sb-item
   .sb-text          label span inside .sb-item
   .sb-text-account  truncated account email
   .sb-divider       horizontal rule between sections
   .sb-spacer        flex:1 pusher
   .sb-footer        account actions region
   .sb-footer-rule   top border for footer
   .sb-logout-form   display:contents form wrapper
   
   Tokens:
   --bg-sidebar, --bg-sidebar-elevated, --bg-sidebar-active
   --text-primary, --text-secondary, --text-muted
   --border-subtle, --border-strong, --brand
================================================== */


/* SHELL */

.sb-shell[b-ywpn6ldy5k] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--bg-sidebar, #0B1220);
    overflow: hidden;
}


/* BRAND AREA */

.sb-brand[b-ywpn6ldy5k] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 13px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}

.sb-brand-link[b-ywpn6ldy5k] {
    display: flex;
    align-items: center;
    text-decoration: none;
    opacity: 0.90;
    transition: opacity 180ms ease;
}

.sb-brand-link:hover[b-ywpn6ldy5k] { opacity: 1; }

.sb-brand-wordmark[b-ywpn6ldy5k] {
    display: inline-flex;
    align-items: center;
}

.sb-brand-wordmark--light[b-ywpn6ldy5k] {
    display: none;
}

/* Mobile hamburger - hidden on desktop */
.sb-hamburger[b-ywpn6ldy5k] {
    display: none;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--text-secondary, #C2CFDF);
    font-size: 1.25rem;
    cursor: pointer;
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    padding: 0;
    border-radius: 7px;
    line-height: 1;
    transition: background 160ms ease, color 160ms ease;
}

.sb-hamburger:hover[b-ywpn6ldy5k] {
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.9);
}

.sb-toggle-check[b-ywpn6ldy5k] { display: none; }


/* SCROLLABLE NAV BODY */

.sb-body[b-ywpn6ldy5k] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.07) transparent;
}

.sb-body[b-ywpn6ldy5k]::-webkit-scrollbar        { width: 3px; }
.sb-body[b-ywpn6ldy5k]::-webkit-scrollbar-track  { background: transparent; }
.sb-body[b-ywpn6ldy5k]::-webkit-scrollbar-thumb  { background: rgba(255,255,255,0.08); border-radius: 4px; }

.sb-nav[b-ywpn6ldy5k] {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 6px 0 8px;
}


/* SECTION */

.sb-section[b-ywpn6ldy5k] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 10px;
}

.sb-section-label[b-ywpn6ldy5k] {
    display: block;
    font-size: var(--font-size-sm, 14px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--b9-sidebar-text, #B6C6DA);
    padding: 0 6px;
    margin-top: 20px;
    margin-bottom: 4px;
    user-select: none;
}

.sb-section:first-of-type .sb-section-label[b-ywpn6ldy5k] { margin-top: 8px; }


/* NAV ITEMS
   .sb-item-wrap receives the Blazor scope attribute.
   ::deep targets the NavLink-rendered <a> and native <button>. */

.sb-item-wrap[b-ywpn6ldy5k] {
    display: contents;
}

/* Base item */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item,
.sb-item[b-ywpn6ldy5k] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 10px;
    min-height: var(--touch-target-min, 48px);
    border-radius: 10px;
    position: relative;
    font-size: var(--font-size-base, 1rem);
    font-weight: 500;
    font-family: var(--b9-font-sans, Inter, system-ui, sans-serif);
    color: var(--b9-sidebar-text, #B6C6DA);
    text-decoration: none;
    background: transparent;
    border: none;
    cursor: pointer;
    width: 100%;
    transition: background 180ms ease, color 160ms ease;
    white-space: nowrap;
    overflow: hidden;
    line-height: 1;
}

/* Hover */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item:hover,
.sb-item:hover[b-ywpn6ldy5k] {
    background: var(--b9-sidebar-hover-bg, #0F172A);
    color: var(--b9-sidebar-active-text, #E5E7EB);
}

/* Active - Blazor NavLink adds .active */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.active {
    background: var(--b9-sidebar-active-bg, rgba(29,78,216,0.18));
    color: var(--b9-sidebar-active-text, #E5E7EB);
    font-weight: 600;
}

/* Active accent rail — a short primary-blue bar on the far-left edge anchors
   where the user is. */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 22px;
    border-radius: 0 3px 3px 0;
    background: var(--brand, #1D4ED8);
}

/* Focus ring */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item:focus-visible,
.sb-item:focus-visible[b-ywpn6ldy5k] {
    outline: none;
    box-shadow: 0 0 0 2px rgba(29,78,216,0.55);
}

/* Small variant - footer items */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-sm,
.sb-item.sb-item-sm[b-ywpn6ldy5k] {
    min-height: var(--touch-target-min, 48px);
    font-size: var(--font-size-sm, 14px);
}

/* Sign-out: subtle danger tint on hover */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-signout:hover,
.sb-item.sb-item-signout:hover[b-ywpn6ldy5k] {
    background: rgba(239,68,68,0.10);
    color: #FCA5A5;
}


/* ICON */

.sb-item-wrap[b-ywpn6ldy5k]  .sb-icon,
.sb-icon[b-ywpn6ldy5k] {
    font-size: 16px;
    width: 18px;
    text-align: center;
    flex-shrink: 0;
    color: var(--b9-sidebar-text, #B6C6DA);
    transition: color 160ms ease;
    line-height: 1;
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-item:hover .sb-icon,
.sb-item:hover .sb-icon[b-ywpn6ldy5k] {
    color: var(--b9-sidebar-active-text, #F3F6FB);
}

/* The sidebar is dark in BOTH themes, so its ink must not follow the theme:
   --b9-primary-text becomes #1E40AF in light, 1.9:1 on this band. */
.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.active .sb-icon {
    color: var(--b9-dark-primary-text);
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-signout:hover .sb-icon,
.sb-item.sb-item-signout:hover .sb-icon[b-ywpn6ldy5k] {
    color: #F87171;
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-setup,
.sb-item.sb-item-setup[b-ywpn6ldy5k] {
    border: 1px solid rgba(59,130,246,0.45);
    background: rgba(29,78,216,0.16);
    color: #dbeafe;
    font-weight: 600;
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-setup:hover,
.sb-item.sb-item-setup:hover[b-ywpn6ldy5k] {
    background: rgba(29,78,216,0.24);
    color: #eff6ff;
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-locked,
.sb-item.sb-item-locked[b-ywpn6ldy5k] {
    height: auto;
    min-height: 40px;
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
    padding: 8px 10px;
    cursor: default;
    border: 1px solid rgba(148,163,184,0.14);
    background: rgba(255,255,255,0.02);
    color: var(--text-muted, #9FB0C4);
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-locked:hover,
.sb-item.sb-item-locked:hover[b-ywpn6ldy5k] {
    background: rgba(255,255,255,0.03);
    color: var(--text-muted, #9FB0C4);
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-item.sb-item-locked .sb-icon,
.sb-item.sb-item-locked .sb-icon[b-ywpn6ldy5k] {
    color: var(--text-muted, #9FB0C4);
}

.sb-lock[b-ywpn6ldy5k] {
    margin-left: 0.25rem;
    font-size: 0.8rem;
}

.sb-lock-sub[b-ywpn6ldy5k] {
    display: block;
    font-size: var(--font-size-sm, 14px);
    line-height: 1.25;
    color: var(--text-muted, #9FB0C4);
    margin-left: 28px;
}


/* TEXT */

.sb-item-wrap[b-ywpn6ldy5k]  .sb-text,
.sb-text[b-ywpn6ldy5k] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1;
}

.sb-item-wrap[b-ywpn6ldy5k]  .sb-text-account,
.sb-text-account[b-ywpn6ldy5k] {
    font-size: var(--font-size-sm, 14px);
    color: var(--b9-sidebar-text, #B6C6DA);
    max-width: 138px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* BADGE (pending count) */

.sb-badge[b-ywpn6ldy5k] {
    font-size: var(--font-size-sm, 14px);
    padding: 1px 5px;
    border-radius: 999px;
    line-height: 1.4;
    flex-shrink: 0;
}

.sb-badge-warning[b-ywpn6ldy5k] {
    background: var(--color-warn-subtle, rgba(245, 158, 11, 0.16));
    color: var(--color-warn, #f59e0b);
    border: 1px solid color-mix(in srgb, var(--color-warn, #f59e0b) 45%, transparent);
    font-weight: 700;
}


/* DIVIDER */

.sb-divider[b-ywpn6ldy5k] {
    height: 1px;
    margin: 14px 10px 0;
    background: var(--border-subtle, rgba(255,255,255,0.06));
    flex-shrink: 0;
}


/* ORG SWITCHER */

.sb-org-wrap[b-ywpn6ldy5k] {
    padding: 0 0 4px;
}

/* Single org is a label, not a control — render it as plain text, no box. */
.sb-org-single[b-ywpn6ldy5k] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 4px 10px 6px;
}

.sb-org-single-label[b-ywpn6ldy5k] {
    font-size: var(--font-size-sm, 14px);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--b9-sidebar-text-muted, #94A3B8);
}

.sb-org-single-name[b-ywpn6ldy5k] {
    font-size: var(--font-size-sm, 14px);
    font-weight: 600;
    color: var(--b9-sidebar-active-text, #E5E7EB);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Multi-org switcher: text + native chevron, no heavy input box. */
.sb-org-select[b-ywpn6ldy5k] {
    width: 100%;
    font-size: var(--font-size-sm, 14px);
    font-weight: 600;
    color: var(--b9-sidebar-active-text, #E5E7EB);
    background: transparent;
    border: none;
    border-radius: 6px;
    padding: 4px 6px;
    margin-left: -2px;
    cursor: pointer;
    appearance: auto;
    transition: background 160ms ease;
    outline: none;
}

.sb-org-select:hover[b-ywpn6ldy5k] { background: rgba(255,255,255,0.05); }
.sb-org-select:focus[b-ywpn6ldy5k] {
    background: rgba(255,255,255,0.05);
    box-shadow: 0 0 0 2px rgba(29,78,216,0.35);
}


/* SPACER + FOOTER */

.sb-spacer[b-ywpn6ldy5k] { flex: 1; min-height: 16px; }

.sb-footer[b-ywpn6ldy5k] {
    padding: 0 10px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex-shrink: 0;
}

.sb-footer-rule[b-ywpn6ldy5k] {
    height: 1px;
    background: var(--border-subtle, rgba(255,255,255,0.06));
    margin: 0 0 8px;
}

.sb-logout-form[b-ywpn6ldy5k] { display: contents; }


/* MOBILE (640px and below) */

@media (max-width: 640px) {
    .sb-hamburger[b-ywpn6ldy5k] { display: flex; }
    .sb-toggle-check:not(:checked) ~ .sb-body[b-ywpn6ldy5k] { display: none; }
    .sb-toggle-check:checked       ~ .sb-body[b-ywpn6ldy5k] { display: flex; }
}


/* DESKTOP (641px and above) */

@media (min-width: 641px) {
    .sb-hamburger[b-ywpn6ldy5k] { display: none !important; }
    .sb-body[b-ywpn6ldy5k]      { display: flex !important; }
}
/* /Components/Layout/PlayerHubNav.razor.rz.scp.css */
/* ── Player Hub Tab Strip ─────────────────────────────────────────
   Horizontal tab strip shown at the top of the five main player
   hub pages (Home, Events, Leagues, Inbox, Profile). Provides a
   persistent navigation context so the hub feels like one tabbed
   app rather than five separate pages.
   ────────────────────────────────────────────────────────────── */

.phub-nav[b-oaznkxi2nk] {
    display: flex;
    gap: 0;
    border-bottom: 1.5px solid var(--b9-border, rgba(255,255,255,0.08));
    margin-bottom: 1.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.phub-nav[b-oaznkxi2nk]::-webkit-scrollbar {
    display: none;
}

.phub-tab[b-oaznkxi2nk] {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 14px;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--b9-text-muted, #94A3B8);
    text-decoration: none;
    white-space: nowrap;
    border-bottom: 2.5px solid transparent;
    margin-bottom: -1.5px;
    flex-shrink: 0;
    transition: color 150ms ease, border-color 150ms ease;
}

.phub-tab i[b-oaznkxi2nk] {
    font-size: 0.9375rem;
    line-height: 1;
}

.phub-tab:hover[b-oaznkxi2nk] {
    color: var(--b9-text, #E5E7EB);
}

.phub-tab--active[b-oaznkxi2nk] {
    color: var(--b9-primary-text, #93C5FD);
    border-bottom-color: var(--b9-primary, #1D4ED8);
    font-weight: 600;
}

/* Focus ring for keyboard navigation */
.phub-tab:focus-visible[b-oaznkxi2nk] {
    outline: 2px solid var(--b9-primary, #1D4ED8);
    outline-offset: -2px;
    border-radius: 2px;
}
/* /Components/Layout/PlayerLayout.razor.rz.scp.css */
/* Player Layout */

.plr-layout[b-t57edn0z4c] {
    --plr-bottom-nav-height: calc(72px + env(safe-area-inset-bottom, 0px));
    min-height: 100vh;
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
    display: flex;
    flex-direction: column;
    background: var(--bg-app, #020617);
    color: var(--text-primary, #f1f5f9);
}

/*
  ── Ink on the always-dark bands ────────────────────────────────────────────────────────
  The top bar, the nav drawer and the bottom tab bar are all painted on --bg-sidebar, which
  is deliberately dark in BOTH themes (tokens.css keeps it #1E293B under light). Their ink
  therefore must NOT follow the theme. It used to: these rules read --text-primary/-secondary
  /-muted, which flip to near-black in light, and the drawer measured 1.33:1 on "Home" and
  1.93:1 on the other items at both 390px and 1366px — the worst contrast on any player
  surface, and invisible to the audit harness because the drawer starts closed.
  --b9-dark-* is the invariant family for exactly this; --b9-dark-primary-text below is the
  same idea, already applied to the active item by an earlier pass.
*/

/* TOP BAR - mobile only (hidden >=768px) */
.plr-topbar[b-t57edn0z4c] {
    background: var(--bg-sidebar, #0B1220);
    border-bottom: 1px solid var(--b9-dark-border-subtle);
    flex-shrink: 0;
    position: sticky;
    top: 0;
    z-index: 200;
}

.plr-topbar-inner[b-t57edn0z4c] {
    min-height: 64px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.plr-brand-wordmark[b-t57edn0z4c] {
    display: inline-flex;
    align-items: center;
}

.plr-brand-wordmark--light[b-t57edn0z4c] {
    display: none;
}

.plr-topbar-actions[b-t57edn0z4c] {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* X03: the wordmark is a link home on every player page and it measured 103×22 — the smallest
   target in the player shell, next to a hamburger and a theme toggle that are both already 48.
   The 64px bar has the room; the logo does not move, its hit area grows around it. */
.plr-topbar-brand[b-t57edn0z4c] {
    display: flex;
    align-items: center;
    min-height: var(--touch-target-min, 48px);
    text-decoration: none;
    opacity: 0.90;
    transition: opacity 180ms ease;
}

.plr-topbar-brand:hover[b-t57edn0z4c] { opacity: 1; }

.plr-hamburger[b-t57edn0z4c] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border-radius: 8px;
    cursor: pointer;
    font-size: 1.375rem;
    color: var(--b9-dark-text-muted);
    transition: background 160ms ease, color 160ms ease;
}

.plr-hamburger:hover[b-t57edn0z4c] {
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.9);
}

.plr-topbar-actions[b-t57edn0z4c]  .theme-toggle.plr-theme-toggle {
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border-radius: 8px;
    color: var(--b9-dark-text-muted);
}

.plr-topbar-actions[b-t57edn0z4c]  .theme-toggle.plr-theme-toggle:hover {
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.9);
}


/* MOBILE NAV DRAWER */
.plr-nav-check[b-t57edn0z4c] { display: none; }

.plr-nav-drawer[b-t57edn0z4c] {
    position: fixed;
    inset: 0;
    z-index: 300;
    pointer-events: none;
    visibility: hidden;
    transition: visibility 0s 0.3s;
}

.plr-nav-check:checked ~ .plr-nav-drawer[b-t57edn0z4c] {
    pointer-events: auto;
    visibility: visible;
    transition: visibility 0s;
}

.plr-nav-check:checked ~ .plr-body[b-t57edn0z4c],
.plr-nav-check:checked ~ .plr-tabs[b-t57edn0z4c] {
    pointer-events: none;
    user-select: none;
    filter: blur(1px) saturate(.75);
}

.plr-nav-check:checked ~ .plr-body[b-t57edn0z4c] {
    opacity: .65;
}

.plr-nav-check:checked ~ .plr-tabs[b-t57edn0z4c] {
    opacity: .25;
}

.plr-nav-backdrop[b-t57edn0z4c] {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.55);
    opacity: 0;
    cursor: pointer;
    transition: opacity 0.3s;
}

.plr-nav-check:checked ~ .plr-nav-drawer .plr-nav-backdrop[b-t57edn0z4c] { opacity: 1; }

.plr-nav-inner[b-t57edn0z4c] {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 250px;
    background: var(--bg-sidebar, #0B1220);
    border-right: 1px solid var(--b9-dark-border-subtle);
    display: flex;
    flex-direction: column;
    transform: translateX(-100%);
    transition: transform 0.28s ease;
    z-index: 1;
}

.plr-nav-check:checked ~ .plr-nav-drawer .plr-nav-inner[b-t57edn0z4c] { transform: translateX(0); }

/* Drawer brand - mirrors sb-brand */
.plr-drawer-brand[b-t57edn0z4c] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 13px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--b9-dark-border-subtle);
}

.plr-drawer-brand-link[b-t57edn0z4c] {
    display: flex;
    align-items: center;
    min-height: 44px; /* comfortable tap target — the wordmark is a Home link */
    padding: 4px 0;
    text-decoration: none;
    opacity: 0.90;
    transition: opacity 180ms ease;
}

.plr-drawer-brand-link:hover[b-t57edn0z4c] { opacity: 1; }

.plr-nav-close[b-t57edn0z4c] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border-radius: 6px;
    cursor: pointer;
    color: var(--b9-dark-text-muted);
    font-size: 1.25rem;
    transition: background 160ms ease, color 160ms ease;
}

.plr-nav-close:hover[b-t57edn0z4c] {
    background: rgba(255,255,255,0.08);
    color: rgba(255,255,255,0.9);
}

/* Scrollable drawer body - uses sb-* classes for nav */
.plr-drawer-body[b-t57edn0z4c] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    padding: 6px 0 0;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.07) transparent;
}

/*
  sb-* re-declarations for drawer markup inside PlayerLayout.
  The drawer lives in PlayerLayout (not PlayerSidebar), so the
  PlayerSidebar.razor.css scope does not apply here.
  We re-declare the same sb-* rules so the drawer nav items
  get identical styling to the desktop sidebar.
*/

.sb-section[b-t57edn0z4c] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 10px;
}

.sb-section-label[b-t57edn0z4c] {
    display: block;
    font-size: var(--font-size-sm, 14px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--b9-dark-text-muted);
    padding: 0 6px;
    margin-top: 20px;
    margin-bottom: 4px;
    user-select: none;
}

.sb-section:first-of-type .sb-section-label[b-t57edn0z4c] { margin-top: 8px; }

.sb-item-wrap[b-t57edn0z4c] { display: contents; }

.sb-item-wrap[b-t57edn0z4c]  .sb-item,
.sb-item[b-t57edn0z4c] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 10px;
    min-height: var(--touch-target-min, 48px);
    border-radius: 10px;
    font-size: var(--font-size-base, 1rem);
    font-weight: 500;
    font-family: var(--b9-font-sans, Inter, system-ui, sans-serif);
    color: var(--b9-dark-text-muted);
    text-decoration: none;
    background: transparent;
    border: none;
    cursor: pointer;
    width: 100%;
    transition: background 180ms ease, color 160ms ease;
    white-space: nowrap;
    overflow: hidden;
    line-height: 1;
}

.sb-item-wrap[b-t57edn0z4c]  .sb-item:hover,
.sb-item:hover[b-t57edn0z4c] {
    background: var(--bg-sidebar-elevated, #0F172A);
    color: var(--b9-dark-text);
}

.sb-item-wrap[b-t57edn0z4c]  .sb-item.active {
    background: var(--bg-sidebar-active, rgba(29,78,216,0.18));
    color: var(--b9-dark-text);
    font-weight: 600;
}

.sb-item-wrap[b-t57edn0z4c]  .sb-item:focus-visible,
.sb-item:focus-visible[b-t57edn0z4c] {
    outline: none;
    box-shadow: 0 0 0 2px rgba(29,78,216,0.55);
}

.sb-item-wrap[b-t57edn0z4c]  .sb-item.sb-item-sm,
.sb-item.sb-item-sm[b-t57edn0z4c] {
    min-height: var(--touch-target-min, 48px);
    font-size: var(--font-size-sm, 14px);
}

.sb-item-wrap[b-t57edn0z4c]  .sb-item.sb-item-signout:hover,
.sb-item.sb-item-signout:hover[b-t57edn0z4c] {
    background: rgba(239,68,68,0.10);
    color: #FCA5A5;
}

.sb-item-wrap[b-t57edn0z4c]  .sb-icon,
.sb-icon[b-t57edn0z4c] {
    font-size: 16px;
    width: 18px;
    text-align: center;
    flex-shrink: 0;
    color: var(--b9-dark-text-muted);
    transition: color 160ms ease;
    line-height: 1;
}

.sb-item-wrap[b-t57edn0z4c]  .sb-item:hover .sb-icon,
.sb-item:hover .sb-icon[b-t57edn0z4c] { color: var(--b9-dark-text); }

/* The sidebar is dark in BOTH themes, so its ink must not follow the theme:
   --b9-primary-text becomes #1E40AF in light, 1.9:1 on this band. */
.sb-item-wrap[b-t57edn0z4c]  .sb-item.active .sb-icon { color: var(--b9-dark-primary-text); }

.sb-item-wrap[b-t57edn0z4c]  .sb-item.sb-item-signout:hover .sb-icon,
.sb-item.sb-item-signout:hover .sb-icon[b-t57edn0z4c] { color: #F87171; }

.sb-item-wrap[b-t57edn0z4c]  .sb-text,
.sb-text[b-t57edn0z4c] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1;
}

.sb-item-wrap[b-t57edn0z4c]  .sb-text-account,
.sb-text-account[b-t57edn0z4c] {
    font-size: var(--font-size-sm, 14px);
    color: var(--b9-dark-text-soft);
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sb-spacer[b-t57edn0z4c] { flex: 1; min-height: 16px; }

.sb-footer[b-t57edn0z4c] {
    padding: 0 10px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex-shrink: 0;
}

.sb-footer-rule[b-t57edn0z4c] {
    height: 1px;
    background: var(--b9-dark-border-subtle);
    margin: 0 0 8px;
}

.sb-logout-form[b-t57edn0z4c] { display: contents; }


/* DESKTOP LAYOUT */
.plr-body[b-t57edn0z4c] {
    flex: 1;
    display: flex;
    min-height: 0;
    overflow: hidden;
    width: 100%;
    max-width: 100%;
}

/* Wrapper for the PlayerSidebar component */
.plr-sidebar[b-t57edn0z4c] {
    width: 250px;
    flex-shrink: 0;
    height: 100%;
    position: sticky;
    top: 0;
    align-self: flex-start;
    max-height: 100vh;
    display: flex;
}

.plr-main[b-t57edn0z4c] {
    flex: 1;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    padding-bottom: 0;
    scroll-padding-bottom: 0;
}

@media (max-width: 767.98px) {
    .plr-sidebar[b-t57edn0z4c] {
        display: none !important;
        visibility: hidden !important;
        position: absolute !important;
        left: -9999px !important;
        width: 0 !important;
    }

    .plr-body[b-t57edn0z4c] {
        display: block;
        overflow: visible;
        width: 100%;
        max-width: 100%;
    }

    .plr-main[b-t57edn0z4c] {
        min-width: 0;
        width: 100%;
        max-width: 100%;
        padding-bottom: calc(156px + env(safe-area-inset-bottom, 0px));
        scroll-padding-bottom: calc(156px + env(safe-area-inset-bottom, 0px));
        padding-bottom: calc(var(--plr-bottom-nav-height) + 1.5rem);
        scroll-padding-bottom: calc(var(--plr-bottom-nav-height) + 1.5rem);
    }
}


/* RESPONSIVE */
@media (min-width: 768px) {
    .plr-topbar[b-t57edn0z4c]   { display: none; }
    .plr-layout[b-t57edn0z4c]   { height: 100vh; overflow: hidden; }
    .plr-body[b-t57edn0z4c]     { height: 100vh; overflow: hidden; }
    .plr-sidebar[b-t57edn0z4c]  { max-height: 100vh; }
}


/* MOBILE BOTTOM TAB BAR */
.plr-tabs[b-t57edn0z4c] {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    min-height: calc(72px + env(safe-area-inset-bottom, 0px));
    min-height: max(var(--plr-bottom-nav-height), var(--touch-target-min, 48px));
    background: var(--bg-sidebar, #0B1220);
    border-top: 1px solid var(--b9-dark-border-subtle);
    align-items: stretch;
    z-index: 100;
    padding-bottom: env(safe-area-inset-bottom, 0);
}

@media (max-width: 767.98px) {
    .plr-tabs[b-t57edn0z4c] {
        display: flex;
    }
}

.plr-tab[b-t57edn0z4c] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    text-decoration: none;
    color: var(--b9-dark-text-soft);
    font-size: 0.6875rem;
    font-weight: 500;
    transition: color 160ms ease;
}

.plr-tab i[b-t57edn0z4c] {
    font-size: 1.375rem;
    line-height: 1;
    transition: color 160ms ease;
}

.plr-tab:hover[b-t57edn0z4c] { color: var(--b9-dark-text-muted); }
/* The tab bar sits on --bg-sidebar in BOTH themes; a themed blue (--brand-text flips to
   #1D4ED8 in light) measured 2.18:1 on it. The static dark-band token never flips. */
.plr-tab.active[b-t57edn0z4c] { color: var(--b9-dark-primary-text); }
.plr-tab.active i[b-t57edn0z4c] { color: var(--b9-dark-primary-text); }


/* BLAZOR ERROR UI */
#blazor-error-ui[b-t57edn0z4c] {
    color-scheme: light only;
    background: var(--bg-raised, #1E293B);
    color: var(--text-primary, #E5E7EB);
    bottom: 0;
    box-shadow: 0 -1px 0 var(--border-subtle, rgba(255,255,255,0.06));
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
    font-size: 0.85rem;
}

#blazor-error-ui .dismiss[b-t57edn0z4c] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}
/* /Components/Layout/PlayerSidebar.razor.rz.scp.css */
/* ==================================================
   PLAYER SIDEBAR — identical sb-* CSS to admin NavMenu.
   
   Both admin (NavMenu.razor) and player (PlayerSidebar.razor)
   share the same class names and visual rules. The only thing
   that differs is the nav items rendered inside.
   
   Class inventory (identical to admin):
   .sb-shell         full-height column flex container
   .sb-brand         logo area with brand link
   .sb-brand-link    anchor with opacity hover treatment
   .sb-body          scrollable nav area
   .sb-nav           flex column nav tree
   .sb-section       grouped nav items
   .sb-section-label uppercase group header
   .sb-item-wrap     Blazor scope anchor (display:contents)
   .sb-item          nav link/button (::deep target)
   .sb-icon          Bootstrap Icons element inside .sb-item
   .sb-text          label span inside .sb-item
   .sb-text-account  truncated account email
   .sb-spacer        flex:1 pusher
   .sb-footer        account actions region
   .sb-footer-rule   top border for footer
   .sb-logout-form   display:contents form wrapper
================================================== */


/* SHELL */

.sb-shell[b-vveo0iwt5q] {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--bg-sidebar, #0B1220);
    overflow: hidden;
}


/* BRAND AREA */

.sb-brand[b-vveo0iwt5q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px 13px;
    flex-shrink: 0;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}

.sb-brand-link[b-vveo0iwt5q] {
    display: flex;
    align-items: center;
    text-decoration: none;
    opacity: 0.90;
    transition: opacity 180ms ease;
}

.sb-brand-link:hover[b-vveo0iwt5q] { opacity: 1; }

.sb-brand-wordmark[b-vveo0iwt5q] {
    display: inline-flex;
    align-items: center;
}

.sb-brand-wordmark--light[b-vveo0iwt5q] {
    display: none;
}


/* SCROLLABLE NAV BODY */

.sb-body[b-vveo0iwt5q] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,0.07) transparent;
}

.sb-body[b-vveo0iwt5q]::-webkit-scrollbar        { width: 3px; }
.sb-body[b-vveo0iwt5q]::-webkit-scrollbar-track  { background: transparent; }
.sb-body[b-vveo0iwt5q]::-webkit-scrollbar-thumb  { background: rgba(255,255,255,0.08); border-radius: 4px; }

.sb-nav[b-vveo0iwt5q] {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 6px 0 8px;
}


/* SECTION */

.sb-section[b-vveo0iwt5q] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 10px;
}

.sb-section-label[b-vveo0iwt5q] {
    display: block;
    font-size: var(--font-size-sm, 14px);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: var(--b9-sidebar-text, #B6C6DA);
    padding: 0 6px;
    margin-top: 20px;
    margin-bottom: 4px;
    user-select: none;
}

.sb-section:first-of-type .sb-section-label[b-vveo0iwt5q] { margin-top: 8px; }


/* NAV ITEMS
   .sb-item-wrap receives the Blazor scope attribute.
   ::deep targets the NavLink-rendered <a> and native <button>. */

.sb-item-wrap[b-vveo0iwt5q] {
    display: contents;
}

/* Base item */
.sb-item-wrap[b-vveo0iwt5q]  .sb-item,
.sb-item[b-vveo0iwt5q] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 10px;
    min-height: var(--touch-target-min, 48px);
    border-radius: 10px;
    font-size: var(--font-size-base, 1rem);
    font-weight: 500;
    font-family: var(--b9-font-sans, Inter, system-ui, sans-serif);
    color: var(--b9-sidebar-text, #B6C6DA);
    text-decoration: none;
    background: transparent;
    border: none;
    cursor: pointer;
    width: 100%;
    transition: background 180ms ease, color 160ms ease;
    white-space: nowrap;
    overflow: hidden;
    line-height: 1;
}

/* Hover */
.sb-item-wrap[b-vveo0iwt5q]  .sb-item:hover,
.sb-item:hover[b-vveo0iwt5q] {
    background: var(--b9-sidebar-hover-bg, #0F172A);
    color: var(--b9-sidebar-active-text, #E5E7EB);
}

/* Active — Blazor NavLink adds .active */
.sb-item-wrap[b-vveo0iwt5q]  .sb-item.active {
    background: var(--b9-sidebar-active-bg, rgba(29,78,216,0.18));
    color: var(--b9-sidebar-active-text, #E5E7EB);
    font-weight: 600;
}

/* Focus ring */
.sb-item-wrap[b-vveo0iwt5q]  .sb-item:focus-visible,
.sb-item:focus-visible[b-vveo0iwt5q] {
    outline: none;
    box-shadow: 0 0 0 2px rgba(29,78,216,0.55);
}

/* Small variant — footer items */
.sb-item-wrap[b-vveo0iwt5q]  .sb-item.sb-item-sm,
.sb-item.sb-item-sm[b-vveo0iwt5q] {
    min-height: var(--touch-target-min, 48px);
    font-size: var(--font-size-sm, 14px);
}

/* Sign-out: subtle danger tint on hover */
.sb-item-wrap[b-vveo0iwt5q]  .sb-item.sb-item-signout:hover,
.sb-item.sb-item-signout:hover[b-vveo0iwt5q] {
    background: rgba(239,68,68,0.10);
    color: #FCA5A5;
}


/* ICON */

.sb-item-wrap[b-vveo0iwt5q]  .sb-icon,
.sb-icon[b-vveo0iwt5q] {
    font-size: 16px;
    width: 18px;
    text-align: center;
    flex-shrink: 0;
    color: var(--b9-sidebar-text, #B6C6DA);
    transition: color 160ms ease;
    line-height: 1;
}

.sb-item-wrap[b-vveo0iwt5q]  .sb-item:hover .sb-icon,
.sb-item:hover .sb-icon[b-vveo0iwt5q] {
    color: var(--b9-sidebar-active-text, #F3F6FB);
}

/* The sidebar is dark in BOTH themes, so its ink must not follow the theme:
   --b9-primary-text becomes #1E40AF in light, 1.9:1 on this band. */
.sb-item-wrap[b-vveo0iwt5q]  .sb-item.active .sb-icon {
    color: var(--b9-dark-primary-text);
}

.sb-item-wrap[b-vveo0iwt5q]  .sb-item.sb-item-signout:hover .sb-icon,
.sb-item.sb-item-signout:hover .sb-icon[b-vveo0iwt5q] {
    color: #F87171;
}


/* TEXT */

.sb-item-wrap[b-vveo0iwt5q]  .sb-text,
.sb-text[b-vveo0iwt5q] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1;
}

.sb-item-wrap[b-vveo0iwt5q]  .sb-text-account,
.sb-text-account[b-vveo0iwt5q] {
    font-size: var(--font-size-sm, 14px);
    color: var(--b9-sidebar-text, #B6C6DA);
    max-width: 138px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* SPACER + FOOTER */

.sb-spacer[b-vveo0iwt5q] { flex: 1; min-height: 16px; }

.sb-footer[b-vveo0iwt5q] {
    padding: 0 10px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex-shrink: 0;
}

.sb-footer-rule[b-vveo0iwt5q] {
    height: 1px;
    /* The sidebar is dark in both themes; --border-subtle flips to rgba(0,0,0,.06) in light
       and the rule disappears. --b9-dark-border-subtle is the same value that never flips. */
    background: var(--b9-dark-border-subtle);
    margin: 0 0 8px;
}

.sb-logout-form[b-vveo0iwt5q] { display: contents; }

.sb-item-wrap[b-vveo0iwt5q]  .theme-toggle.sb-theme-toggle {
    width: 100%;
    height: 36px;
    justify-content: flex-start;
    padding: 0 10px;
    border-radius: 10px;
    color: var(--b9-sidebar-text, #B6C6DA);
}

.sb-item-wrap[b-vveo0iwt5q]  .theme-toggle.sb-theme-toggle:hover {
    background: var(--b9-sidebar-hover-bg, #0F172A);
    color: var(--b9-sidebar-active-text, #E5E7EB);
}

.sb-item-wrap[b-vveo0iwt5q]  .theme-toggle.sb-theme-toggle .theme-toggle-label {
    margin-left: 8px;
    font-size: 13px;
    font-weight: 500;
}
/* /Components/Layout/PublicLayout.razor.rz.scp.css */
/* ================================================================
   PUBLIC LAYOUT
   Minimal top bar + centered content area + slim footer
   ================================================================ */

/* ── Page shell ── */
.pub-layout[b-8snw8zkolp] {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--bg-app, #020617);
    color: var(--text-primary, #f1f5f9);
}

/* ── Top bar ── */
.pub-topbar[b-8snw8zkolp] {
    /* 🔴 --bg-sidebar is DARK IN BOTH THEMES by design, so this bar cannot take its lettering from
       the theme's text tokens — they flip. In light mode --text-primary is #1A1A1A and
       --text-secondary is #475569, which put the club's name at 1.19:1 and the Sign In link at
       1.93:1 on their own bar: invisible. Same defect the club page's hero band had, one layer up.
       These two are the BAR's ink and do not flip. */
    --pub-topbar-ink:      #F3F6FB;
    --pub-topbar-ink-soft: #CBD5E1;
    /* G02: the plate under a club's logo. The bar is dark in both themes, so the plate must stay
       light in both — the static always-dark chrome palette is the right family (its lightest tone). */
    --pub-topbar-plate:    var(--b9-dark-text);

    background: var(--bg-sidebar, #0B1220);
    /* Everything in the bar inherits the BAR's ink. Without this the colour is inherited from
       .pub-layout, which computed it OUTSIDE the always-dark scope: in light mode that is #1A1A1A,
       so any lettering added here that forgets to set a colour of its own lands near-black on a
       near-black band. Nothing does today; the point is that the next thing added cannot. */
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    flex-shrink: 0;
    position: sticky;
    top: 0;
    z-index: 100;
}

.pub-topbar-inner[b-8snw8zkolp] {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.25rem;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.pub-topbar-brand[b-8snw8zkolp] {
    display: flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

.pub-topbar-actions[b-8snw8zkolp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    /* P09: "My / Events" and "Sign / Out" wrapped on phones because the club name would not
       shrink. The actions keep their width; the name is the thing that yields (see .pub-topbar-club). */
    flex-shrink: 0;
}

.pub-topbar-link[b-8snw8zkolp] {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--pub-topbar-ink-soft);
    text-decoration: none;
    padding: 0.375rem 0.5rem;
    white-space: nowrap;      /* P09: one line, always */
    line-height: 1.2;
    border-radius: 6px;
    transition: color 0.15s, background 0.15s;
    background: none;
    border: none;
    cursor: pointer;
}

.pub-topbar-link:hover[b-8snw8zkolp],
.pub-topbar-link-btn:hover[b-8snw8zkolp] {
    color: var(--pub-topbar-ink);
    background: rgba(255, 255, 255, 0.06);
}

.pub-topbar-btn[b-8snw8zkolp] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #fff;
    background: var(--brand, #1D4ED8);
    padding: 0.4rem 1rem;
    border-radius: 6px;
    text-decoration: none;
    transition: opacity 0.15s;
}

.pub-topbar-btn:hover[b-8snw8zkolp] {
    opacity: 0.88;
    color: #fff;
}

/* X18: the public dark/light switch. ::deep because ThemeToggle is its own component and a
   scoped rule stops at the boundary (same shape as PlayerLayout's .plr-theme-toggle). It takes
   the BAR's ink, not the theme's — the bar is dark in both themes, so a token that flips would
   put the icon at 1.x:1 in light, which is the very defect this control now lets people meet. */
.pub-topbar-actions[b-8snw8zkolp]  .theme-toggle.pub-theme-toggle {
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border-radius: 8px;
    color: var(--pub-topbar-ink-soft);
}

.pub-topbar-actions[b-8snw8zkolp]  .theme-toggle.pub-theme-toggle:hover,
.pub-topbar-actions[b-8snw8zkolp]  .theme-toggle.pub-theme-toggle:focus-visible {
    background: rgba(255, 255, 255, 0.08);
    color: var(--pub-topbar-ink);
}

/* The un-branded bar — wordmark, Sign In, Sign Up Free — was already within 20px of the edge of
   a 390px phone, so a fourth control put it 28px OVER and the page scrolled sideways. Measured
   after adding the toggle, not guessed. The spacing yields rather than the toggle: it keeps its
   48×48 target, and Sign Up Free keeps its words. A club-branded bar has two actions instead of
   three and never came close, but it tightens with everything else so the two stay one bar. */
@media (max-width: 430px) {
    .pub-topbar-inner[b-8snw8zkolp]  { padding: 0 0.75rem; gap: 0.5rem; }
    .pub-topbar-actions[b-8snw8zkolp] { gap: 0.375rem; }
    .pub-topbar-link[b-8snw8zkolp]   { padding: 0.375rem 0.25rem; }
    .pub-topbar-btn[b-8snw8zkolp]    { padding: 0.4rem 0.7rem; }
}

/* ── Main content ── */
.pub-main[b-8snw8zkolp] {
    flex: 1;
}

/* ── Footer ── */
.pub-footer[b-8snw8zkolp] {
    background: var(--bg-sidebar, #0B1220);
    /* Same reason as the bar above: the band's ink, inherited by everything inside it. */
    color: var(--text-primary);
    border-top: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    padding: 1rem 1.25rem;
    text-align: center;
}

.pub-footer-inner[b-8snw8zkolp] {
    max-width: 1200px;
    margin: 0 auto;
}

/* 🔴 The footer is painted on --bg-sidebar, which is dark in BOTH themes, so its lettering has
   the same problem the bar above solved with --pub-topbar-ink: --text-muted flips, and in light
   mode this line measured 2.18:1 on its own band — on every public page there is. The footer
   element carries .b9-always-dark now, so the token below resolves to the DARK #9FB0C4 here
   whichever theme the page is in: 6.60:1 on light's #1E293B band, 8.45:1 on dark's #0B1220. */
.pub-footer-copy[b-8snw8zkolp] {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
}

/* ── A club's own chrome, on a club's own page ───────────────────── */
.pub-topbar-club[b-8snw8zkolp] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    text-decoration: none;
    min-height: 48px;
    /* P09: this is the flex item that yields when the bar is tight — the brand link's own
       flex-shrink: 0 would otherwise force the links on the right to wrap. */
    flex-shrink: 1;
    min-width: 0;
}

.pub-topbar-club-logo[b-8snw8zkolp] {
    /* G02: a 30×30 box with object-fit: cover showed the Lake City logo as "c City G". The logo's
       own ratio sets the width now, nothing is cropped, and it sits on a light plate so dark
       artwork on a transparent PNG stays visible on the dark bar. */
    height: 32px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    background: var(--pub-topbar-plate);
    padding: 2px 4px;
    border-radius: 6px;
    flex-shrink: 0;
}

@media (max-width: 480px) {
    .pub-topbar-club-logo[b-8snw8zkolp] { max-width: 96px; }
}

.pub-topbar-club-name[b-8snw8zkolp] {
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: -0.01em;
    color: var(--pub-topbar-ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 46vw;
    min-width: 0;             /* P09: may shrink below its text; the ellipsis takes over */
}

/* Small, and it is a link rather than a boast — the one place our name belongs here. */
.pub-footer-powered[b-8snw8zkolp] {
    font-size: 0.75rem;
    color: var(--text-muted);
    text-decoration: none;
}

.pub-footer-powered:hover[b-8snw8zkolp] {
    text-decoration: underline;
}
/* /Components/Layout/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-i8jcfksmne],
.components-reconnect-repeated-attempt-visible[b-i8jcfksmne],
.components-reconnect-failed-visible[b-i8jcfksmne],
.components-pause-visible[b-i8jcfksmne],
.components-resume-failed-visible[b-i8jcfksmne],
.components-rejoining-animation[b-i8jcfksmne] {
    display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-retrying[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-failed[b-i8jcfksmne],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-i8jcfksmne] {
    display: block;
}


#components-reconnect-modal[b-i8jcfksmne] {
    background-color: white;
    width: 20rem;
    margin: 20vh auto;
    padding: 2rem;
    border: 0;
    border-radius: 0.5rem;
    box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
    animation: components-reconnect-modal-fadeOutOpacity-b-i8jcfksmne 0.5s both;
    &[open]

{
    animation: components-reconnect-modal-slideUp-b-i8jcfksmne 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-i8jcfksmne 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
}

}

#components-reconnect-modal[b-i8jcfksmne]::backdrop {
    background-color: rgba(0, 0, 0, 0.4);
    animation: components-reconnect-modal-fadeInOpacity-b-i8jcfksmne 0.5s ease-in-out;
    opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-i8jcfksmne {
    0% {
        transform: translateY(30px) scale(0.95);
    }

    100% {
        transform: translateY(0);
    }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-i8jcfksmne {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-i8jcfksmne {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.components-reconnect-container[b-i8jcfksmne] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

#components-reconnect-modal p[b-i8jcfksmne] {
    margin: 0;
    text-align: center;
}

#components-reconnect-modal button[b-i8jcfksmne] {
    border: 0;
    background-color: #6b9ed2;
    color: white;
    padding: 4px 24px;
    border-radius: 4px;
}

    #components-reconnect-modal button:hover[b-i8jcfksmne] {
        background-color: #3b6ea2;
    }

    #components-reconnect-modal button:active[b-i8jcfksmne] {
        background-color: #6b9ed2;
    }

.components-rejoining-animation[b-i8jcfksmne] {
    position: relative;
    width: 80px;
    height: 80px;
}

    .components-rejoining-animation div[b-i8jcfksmne] {
        position: absolute;
        border: 3px solid #0087ff;
        opacity: 1;
        border-radius: 50%;
        animation: components-rejoining-animation-b-i8jcfksmne 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
    }

        .components-rejoining-animation div:nth-child(2)[b-i8jcfksmne] {
            animation-delay: -0.5s;
        }

@keyframes components-rejoining-animation-b-i8jcfksmne {
    0% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    4.9% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 0;
    }

    5% {
        top: 40px;
        left: 40px;
        width: 0;
        height: 0;
        opacity: 1;
    }

    100% {
        top: 0px;
        left: 0px;
        width: 80px;
        height: 80px;
        opacity: 0;
    }
}
/* /Components/Pages/Admin/Admins.razor.rz.scp.css */
/* Admins.razor.css — inherits from CourseAccounts.razor.css pattern */
/* All styles live in CourseAccounts.razor.css since both pages share
   the .adm-* class namespace. This file intentionally left minimal. */

/* Page-specific tweak: slightly narrower max-width for admins list */
.adm-page[b-f488mygb9s] {
    padding: 1.5rem 1.75rem 3rem;
    max-width: 960px;
}
/* /Components/Pages/Admin/CasualGreens.razor.rz.scp.css */
.cg-admin[b-idz7u1ntff] {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px 16px 80px;
}

.cg-title[b-idz7u1ntff] {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--text-primary, #F1F5F9);
    margin: 0 0 4px;
}

.cg-sub[b-idz7u1ntff] {
    color: var(--text-secondary, #CBD5E1);
    margin: 0 0 20px;
}

.cg-hint[b-idz7u1ntff] {
    color: var(--text-muted, #94A3B8);
    padding: 16px 2px;
}

.cg-layout[b-idz7u1ntff] {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 16px;
    align-items: start;
}

@media (max-width: 720px) {
    .cg-layout[b-idz7u1ntff] { grid-template-columns: 1fr; }
}

/* Course list */
.cg-courses[b-idz7u1ntff] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cg-course[b-idz7u1ntff] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    text-align: left;
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    background: var(--bg-surface, #0F172A);
    color: inherit;
    cursor: pointer;
}

.cg-course:hover[b-idz7u1ntff] { border-color: var(--border-strong, rgba(255,255,255,0.20)); }
.cg-course.on[b-idz7u1ntff] { border-color: var(--brand, #1D4ED8); background: var(--brand-soft, rgba(29,78,216,0.12)); }
.cg-course-name[b-idz7u1ntff] { font-weight: 700; color: var(--text-primary, #F1F5F9); }
.cg-course-count[b-idz7u1ntff] { font-size: 0.8rem; color: var(--text-muted, #94A3B8); }

/* Greens */
.cg-greens[b-idz7u1ntff] { display: flex; flex-direction: column; gap: 8px; }

.cg-green[b-idz7u1ntff] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 12px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    background: var(--bg-surface, #0F172A);
}

.cg-green-rejected[b-idz7u1ntff] { opacity: 0.7; }

.cg-green-head[b-idz7u1ntff] { display: flex; align-items: center; gap: 8px; }
.cg-green-name[b-idz7u1ntff] { font-weight: 700; color: var(--text-primary, #F1F5F9); }
.cg-green-meta[b-idz7u1ntff] { font-size: 0.82rem; color: var(--text-muted, #94A3B8); margin-top: 2px; }

.cg-badge[b-idz7u1ntff] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 2px 8px;
    border-radius: 999px;
}

.cg-badge.is-verified[b-idz7u1ntff] { background: rgba(16,185,129,0.15); color: #6EE7B7; }
.cg-badge.is-confirmed[b-idz7u1ntff] { background: var(--brand-soft, rgba(29,78,216,0.15)); color: var(--brand-text, #93C5FD); }
.cg-badge.is-approx[b-idz7u1ntff] { background: rgba(148,163,184,0.15); color: var(--text-muted, #94A3B8); }

.cg-green-actions[b-idz7u1ntff] { display: flex; gap: 8px; flex-shrink: 0; }

.cg-btn[b-idz7u1ntff] {
    min-height: 40px;
    padding: 0 14px;
    border-radius: 10px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: transparent;
    color: var(--text-secondary, #CBD5E1);
    font-weight: 600;
    cursor: pointer;
}

.cg-btn:disabled[b-idz7u1ntff] { opacity: 0.5; cursor: default; }
.cg-confirm:hover[b-idz7u1ntff] { border-color: var(--brand, #1D4ED8); color: var(--brand-text, #93C5FD); }
.cg-reject:hover[b-idz7u1ntff] { border-color: #EF4444; color: #FCA5A5; }
.cg-clear:hover[b-idz7u1ntff] { border-color: var(--border-strong, rgba(255,255,255,0.20)); color: var(--text-primary, #F1F5F9); }

.cg-rejected-head[b-idz7u1ntff] {
    margin-top: 12px;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted, #94A3B8);
}
/* /Components/Pages/Admin/CasualHandicaps.razor.rz.scp.css */
.ch-admin[b-x4e0z6d8lg] {
    max-width: 960px;
    margin: 0 auto;
    padding: 20px 16px 80px;
}

.ch-title[b-x4e0z6d8lg] {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--b9-text, #F1F5F9);
    margin: 0 0 4px;
}

.ch-sub[b-x4e0z6d8lg] {
    color: var(--b9-text-soft, #CBD5E1);
    margin: 0 0 20px;
    max-width: 68ch;
    line-height: 1.5;
}

.ch-hint[b-x4e0z6d8lg] {
    color: var(--b9-text-muted, #94A3B8);
    padding: 16px 2px;
}

/* Actions */
.ch-actions[b-x4e0z6d8lg] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
}

.ch-btn[b-x4e0z6d8lg] {
    min-height: 48px;               /* touch target floor */
    padding: 0 18px;
    border-radius: 10px;
    border: 1px solid var(--b9-border, #334155);
    background: var(--b9-surface-muted, #1E293B);
    color: var(--b9-text, #F1F5F9);
    font-weight: 700;
    cursor: pointer;
}

.ch-btn:disabled[b-x4e0z6d8lg] {
    opacity: .55;
    cursor: default;
}

.ch-btn--primary[b-x4e0z6d8lg] {
    background: var(--b9-primary, #2563EB);
    border-color: var(--b9-primary, #2563EB);
    color: #fff;
}

.ch-btn--danger[b-x4e0z6d8lg] {
    background: var(--b9-danger, #DC2626);
    border-color: var(--b9-danger, #DC2626);
    color: #fff;
}

.ch-btn--quiet[b-x4e0z6d8lg] {
    background: transparent;
}

/* Notes */
.ch-note[b-x4e0z6d8lg] {
    padding: 12px 14px;
    border-radius: 10px;
    margin-bottom: 18px;
    line-height: 1.5;
}

.ch-note--good[b-x4e0z6d8lg] {
    background: var(--b9-success-soft, rgba(22, 163, 74, .14));
    color: var(--b9-success-text, #86EFAC);
    border: 1px solid var(--b9-success, #16A34A);
}

.ch-note--bad[b-x4e0z6d8lg] {
    background: var(--b9-danger-soft, rgba(220, 38, 38, .14));
    color: var(--b9-danger-text, #FCA5A5);
    border: 1px solid var(--b9-danger, #DC2626);
}

/* Summary */
.ch-summary[b-x4e0z6d8lg] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-bottom: 22px;
}

.ch-stat[b-x4e0z6d8lg] {
    background: var(--b9-card-bg, #0F172A);
    border: 1px solid var(--b9-card-border, #1E293B);
    border-radius: 12px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ch-stat--hot[b-x4e0z6d8lg] {
    border-color: var(--b9-warning, #D97706);
}

.ch-stat-n[b-x4e0z6d8lg] {
    font-size: 1.7rem;
    font-weight: 800;
    color: var(--b9-text, #F1F5F9);
    font-variant-numeric: tabular-nums;
}

.ch-stat-l[b-x4e0z6d8lg] {
    color: var(--b9-text-muted, #94A3B8);
    font-size: .85rem;
}

/* Player block */
.ch-player[b-x4e0z6d8lg] {
    background: var(--b9-card-bg, #0F172A);
    border: 1px solid var(--b9-card-border, #1E293B);
    border-radius: 12px;
    padding: 14px;
    margin-bottom: 12px;
}

.ch-player-head[b-x4e0z6d8lg] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.ch-user[b-x4e0z6d8lg] {
    color: var(--b9-text-muted, #94A3B8);
    font-size: .8rem;
    word-break: break-all;
}

.ch-index[b-x4e0z6d8lg] {
    font-weight: 800;
    color: var(--b9-text, #F1F5F9);
    font-variant-numeric: tabular-nums;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ch-index--moves[b-x4e0z6d8lg] {
    color: var(--b9-warning-text, #FCD34D);
}

.ch-badge[b-x4e0z6d8lg] {
    background: var(--b9-warning-soft, rgba(217, 119, 6, .16));
    color: var(--b9-warning-text, #FCD34D);
    border: 1px solid var(--b9-warning, #D97706);
    border-radius: 999px;
    padding: 2px 9px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .02em;
}

.ch-player-meta[b-x4e0z6d8lg] {
    color: var(--b9-text-muted, #94A3B8);
    font-size: .85rem;
    margin-top: 4px;
}

/* Rounds */
.ch-rounds[b-x4e0z6d8lg] {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ch-round[b-x4e0z6d8lg] {
    border-top: 1px solid var(--b9-border, #334155);
    padding-top: 8px;
}

.ch-round-when[b-x4e0z6d8lg] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
}

.ch-round-course[b-x4e0z6d8lg] {
    font-weight: 700;
    color: var(--b9-text, #F1F5F9);
}

.ch-round-date[b-x4e0z6d8lg] {
    color: var(--b9-text-muted, #94A3B8);
    font-size: .85rem;
}

.ch-round-facts[b-x4e0z6d8lg] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 2px;
    color: var(--b9-text-soft, #CBD5E1);
    font-size: .88rem;
    font-variant-numeric: tabular-nums;
}

.ch-counted--changed[b-x4e0z6d8lg] {
    color: var(--b9-warning-text, #FCD34D);
    font-weight: 700;
}

.ch-reason[b-x4e0z6d8lg] {
    color: var(--b9-text-muted, #94A3B8);
}

.ch-reason--fix[b-x4e0z6d8lg] {
    color: var(--b9-success-text, #86EFAC);
}
/* /Components/Pages/Admin/CourseAccounts.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   ADMIN SUB-PAGES — shared styles (CourseAccounts, Admins)
═══════════════════════════════════════════════════════════ */

/* ── Page shell ─────────────────────────────────────────── */
.adm-page[b-3qghmd2607] {
    padding: 1.5rem 1.75rem 3rem;
    max-width: 1200px;
}

/* ── Header ─────────────────────────────────────────────── */
.adm-header[b-3qghmd2607] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.adm-header-left[b-3qghmd2607] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    flex-wrap: wrap;
}

.adm-back[b-3qghmd2607] {
    display: inline-flex;
    align-items: center;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--b9-text-muted);
    text-decoration: none;
    transition: color 0.1s;
}

.adm-back:hover[b-3qghmd2607] {
    color: var(--b9-text);
    text-decoration: none;
}

.adm-title[b-3qghmd2607] {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0;
    color: var(--b9-text);
    letter-spacing: -0.02em;
}

.admin-role-badge[b-3qghmd2607] {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--b9-danger-text);
    background: var(--b9-danger-soft);
    border: 1px solid var(--b9-danger);
    border-radius: 20px;
    padding: 0.2rem 0.7rem;
}

/* ── Toolbar (search + filter) ──────────────────────────── */
.adm-toolbar[b-3qghmd2607] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1.125rem;
}

.adm-search-wrap[b-3qghmd2607] {
    position: relative;
    display: flex;
    align-items: center;
}

.adm-search-icon[b-3qghmd2607] {
    position: absolute;
    left: 0.625rem;
    font-size: 0.8rem;
    color: var(--b9-text-soft);
    pointer-events: none;
}

.adm-search-input[b-3qghmd2607] {
    padding: 0.4rem 1.75rem 0.4rem 2rem;
    font-size: 0.8125rem;
    border: 1px solid var(--b9-border);
    border-radius: 7px;
    background: var(--b9-card-bg);
    color: var(--b9-text);
    width: 280px;
    outline: none;
    transition: border-color 0.12s;
}

.adm-search-input:focus[b-3qghmd2607] {
    border-color: var(--b9-primary);
}

.adm-search-input[b-3qghmd2607]::placeholder {
    color: var(--b9-text-soft);
}

.adm-search-clear[b-3qghmd2607] {
    position: absolute;
    right: 0.5rem;
    background: none;
    border: none;
    padding: 0;
    font-size: 0.65rem;
    color: var(--b9-text-soft);
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: color 0.1s;
}

.adm-search-clear:hover[b-3qghmd2607] {
    color: var(--b9-text);
}

.adm-filter-select[b-3qghmd2607] {
    padding: 0.375rem 0.75rem;
    font-size: 0.8125rem;
    border: 1px solid var(--b9-border);
    border-radius: 7px;
    background: var(--b9-card-bg);
    color: var(--b9-text);
    outline: none;
    cursor: pointer;
    transition: border-color 0.12s;
}

.adm-filter-select:focus[b-3qghmd2607] {
    border-color: var(--b9-primary);
}

.adm-count[b-3qghmd2607] {
    margin-left: auto;
    font-size: 0.8rem;
    color: var(--b9-text-muted);
    white-space: nowrap;
}

/* ── Card ───────────────────────────────────────────────── */
.adm-card[b-3qghmd2607] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 10px;
    box-shadow: var(--b9-card-shadow);
    overflow: hidden;
}

.adm-card-header[b-3qghmd2607] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--b9-border);
}

.adm-card-title[b-3qghmd2607] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--b9-text-muted);
}

/* ── Alerts ─────────────────────────────────────────────── */
.adm-alert[b-3qghmd2607] {
    display: flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 500;
    border-radius: 8px;
    padding: 0.5rem 0.875rem;
    margin-bottom: 0.875rem;
    border: 1px solid;
}

.adm-alert-success[b-3qghmd2607] {
    background: var(--b9-success-soft);
    border-color: var(--b9-success);
    color: var(--b9-success-text);
}

.adm-alert-danger[b-3qghmd2607] {
    background: var(--b9-danger-soft);
    border-color: var(--b9-danger);
    color: var(--b9-danger-text);
}

.adm-alert-warning[b-3qghmd2607] {
    background: var(--b9-warning-soft);
    border-color: var(--b9-warning);
    color: var(--b9-warning-text);
}

/* ── Plan audit list (Manage plan modal) ────────────────── */
.adm-audit-list[b-3qghmd2607] {
    list-style: none;
    margin: 0.25rem 0 0;
    padding: 0;
}

.adm-audit-item[b-3qghmd2607] {
    display: flex;
    gap: 0.75rem;
    align-items: baseline;
    padding: 0.3125rem 0;
    font-size: 0.8125rem;
    border-bottom: 1px solid var(--b9-border-subtle, rgba(255,255,255,0.06));
}

.adm-audit-item:last-child[b-3qghmd2607] { border-bottom: none; }

.adm-audit-when[b-3qghmd2607] {
    flex: 0 0 auto;
    color: var(--b9-text-muted);
    font-variant-numeric: tabular-nums;
    min-width: 6.5rem;
}

.adm-audit-what[b-3qghmd2607] { color: var(--b9-text); }

/* ── Loading ────────────────────────────────────────────── */
.adm-loading[b-3qghmd2607] {
    display: flex;
    align-items: center;
    padding: 1.5rem 1rem;
    font-size: 0.8125rem;
    color: var(--b9-text-muted);
}

/* ── Table ──────────────────────────────────────────────── */
.etable-wrap[b-3qghmd2607] { overflow-x: auto; }

.etable[b-3qghmd2607] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.etable thead th[b-3qghmd2607] {
    padding: 0.55rem 1rem;
    text-align: left;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--b9-text-muted);
    background: var(--b9-surface-muted);
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
}

.etable thead th:last-child[b-3qghmd2607] { text-align: right; }

.etable tbody tr[b-3qghmd2607] {
    border-bottom: 1px solid var(--b9-border);
    transition: background 0.1s;
}

.etable tbody tr:last-child[b-3qghmd2607] { border-bottom: none; }
.etable tbody tr:hover[b-3qghmd2607] { background: var(--b9-surface-muted); }

.etable td[b-3qghmd2607] {
    padding: 0.65rem 1rem;
    color: var(--b9-text);
    vertical-align: middle;
}

.etd-name[b-3qghmd2607] { min-width: 160px; }

.etd-name-link[b-3qghmd2607] {
    display: block;
    font-weight: 600;
    color: var(--b9-text);
    text-decoration: none;
    transition: color 0.1s;
}

.etd-name-link:hover[b-3qghmd2607] { color: var(--b9-primary-text); text-decoration: none; }

.etd-sub[b-3qghmd2607] {
    display: block;
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-top: 0.1rem;
}

.etd-contact[b-3qghmd2607] { min-width: 140px; }

.etd-contact-email[b-3qghmd2607] {
    display: block;
    font-size: 0.8rem;
    color: var(--b9-text-muted);
}

.etd-contact-phone[b-3qghmd2607] {
    display: block;
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-top: 0.05rem;
}

.etd-count[b-3qghmd2607] {
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: var(--b9-text-muted);
    font-size: 0.8rem;
}

.etd-email[b-3qghmd2607] {
    color: var(--b9-text-muted);
    font-size: 0.8rem;
}

.etd-actions[b-3qghmd2607] {
    text-align: right;
    white-space: nowrap;
}

.etd-empty[b-3qghmd2607] {
    text-align: center;
    padding: 2rem;
    color: var(--b9-text-muted);
    font-size: 0.85rem;
}

/* Avatar row for admins table */
.etd-avatar-row[b-3qghmd2607] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.etd-avatar[b-3qghmd2607] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    font-size: 0.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.admin-you-badge[b-3qghmd2607] {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--b9-text-soft);
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    padding: 1px 7px;
}

/* Action icon buttons */
.etd-action-btn[b-3qghmd2607] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    font-size: 0.825rem;
    color: var(--b9-text-soft);
    text-decoration: none;
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background 0.1s, color 0.1s, border-color 0.1s;
    margin-left: 2px;
}

.etd-action-btn:hover[b-3qghmd2607] {
    background: var(--b9-surface-muted);
    border-color: var(--b9-border);
    color: var(--b9-text);
    text-decoration: none;
}

.etd-action-activate:hover[b-3qghmd2607] {
    background: var(--b9-success-soft);
    border-color: var(--b9-success);
    color: var(--b9-success-text);
}

.etd-action-suspend:hover[b-3qghmd2607] {
    background: var(--b9-warning-soft);
    border-color: var(--b9-warning);
    color: var(--b9-warning-text);
}

.adm-action-menu-toggle[b-3qghmd2607] {
    width: 32px;
    height: 32px;
}

/* ── Row actions sheet — centered overlay so it is never clipped by the table's
      horizontal scroll (.etable-wrap) or the card's rounded-corner overflow (.adm-card). ── */
.adm-actions-overlay[b-3qghmd2607] {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(6px);
}

.adm-actions-sheet[b-3qghmd2607] {
    width: min(360px, 100%);
    max-height: min(86vh, 640px);
    overflow-y: auto;
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 16px;
    box-shadow: var(--b9-card-shadow-xl);
    color: var(--b9-text);
}

.adm-actions-sheet-head[b-3qghmd2607] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
    border-bottom: 1px solid var(--b9-border);
}

.adm-actions-sheet-kicker[b-3qghmd2607] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--b9-text-soft);
    margin-bottom: 0.2rem;
}

.adm-actions-sheet-title[b-3qghmd2607] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--b9-text);
    word-break: break-word;
}

.adm-actions-sheet-body[b-3qghmd2607] {
    display: flex;
    flex-direction: column;
    padding: 0.5rem;
}

.adm-action-row[b-3qghmd2607] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    width: 100%;
    min-height: 48px;
    padding: 0.6rem 0.75rem;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--b9-text);
    font-size: 0.9rem;
    font-weight: 500;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
    transition: background 0.1s, color 0.1s;
}

.adm-action-row i[b-3qghmd2607] {
    font-size: 1rem;
    color: var(--b9-text-muted);
    width: 1.25rem;
    text-align: center;
    flex-shrink: 0;
}

.adm-action-row:hover:not(:disabled)[b-3qghmd2607],
.adm-action-row:focus-visible[b-3qghmd2607] {
    background: var(--b9-surface-muted);
    color: var(--b9-text);
    text-decoration: none;
}

.adm-action-row:disabled[b-3qghmd2607] {
    opacity: 0.5;
    cursor: not-allowed;
}

.adm-action-row--danger[b-3qghmd2607] { color: var(--b9-danger-text); }
.adm-action-row--danger i[b-3qghmd2607] { color: var(--b9-danger-text); }

.adm-action-row--danger:hover:not(:disabled)[b-3qghmd2607],
.adm-action-row--danger:focus-visible[b-3qghmd2607] {
    background: var(--b9-danger-soft);
    color: var(--b9-danger-text);
}

.adm-action-sep[b-3qghmd2607] {
    height: 1px;
    background: var(--b9-border);
    margin: 0.35rem;
}

.etd-action-revoke:hover[b-3qghmd2607] {
    background: var(--b9-danger-soft);
    border-color: var(--b9-danger);
    color: var(--b9-danger-text);
}


/* ── Status badges ──────────────────────────────────────── */
.estatus[b-3qghmd2607] {
    display: inline-flex;
    align-items: center;
    font-size: 0.69rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.estatus-open[b-3qghmd2607]      { background: var(--b9-success-soft);  color: var(--b9-success-text); }
.estatus-draft[b-3qghmd2607]     { background: var(--b9-warning-soft);  color: var(--b9-warning-text); }
.estatus-cancelled[b-3qghmd2607] { background: var(--b9-surface-muted); color: var(--b9-text-soft); }


/* ── Admins page: two-column layout ────────────────────── */
.adm-two-col[b-3qghmd2607] {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1.25rem;
    align-items: start;
}

.adm-aside[b-3qghmd2607] {
    position: sticky;
    top: 1.25rem;
}

/* ── Promote form card body ─────────────────────────────── */
.adm-promote-body[b-3qghmd2607] {
    padding: 1rem;
}

.adm-promote-desc[b-3qghmd2607] {
    font-size: 0.8125rem;
    color: var(--b9-text-muted);
    margin-bottom: 1rem;
    line-height: 1.55;
}

.adm-field[b-3qghmd2607] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.5rem;
}

.adm-label[b-3qghmd2607] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--b9-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.adm-input[b-3qghmd2607] {
    padding: 0.4rem 0.7rem;
    font-size: 0.8125rem;
    border: 1px solid var(--b9-border);
    border-radius: 7px;
    background: var(--b9-surface-muted);
    color: var(--b9-text);
    width: 100%;
    outline: none;
    transition: border-color 0.12s, background 0.12s;
}

.adm-input:focus[b-3qghmd2607] {
    border-color: var(--b9-primary);
    background: var(--b9-card-bg);
}

.adm-input[b-3qghmd2607]::placeholder { color: var(--b9-text-soft); }

.adm-warning-hint[b-3qghmd2607] {
    margin: 0.75rem 0 0;
    font-size: 0.75rem;
    color: var(--b9-warning-text);
    line-height: 1.4;
}

/* ── Cleanup modal ──────────────────────────────────────── */
.adm-delete-overlay[b-3qghmd2607] {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(6px);
}

.adm-delete-modal[b-3qghmd2607] {
    position: relative;
    width: min(760px, 100%);
    max-height: min(86vh, 920px);
    overflow: auto;
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 16px;
    box-shadow: var(--b9-card-shadow-xl);
    color: var(--b9-text);
}

.adm-delete-modal-header[b-3qghmd2607],
.adm-delete-modal-footer[b-3qghmd2607],
.adm-delete-modal-body[b-3qghmd2607] {
    padding: 1rem 1.1rem;
}

.adm-delete-modal-header[b-3qghmd2607] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--b9-border);
}

.adm-delete-modal-kicker[b-3qghmd2607] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--b9-text-soft);
    margin-bottom: 0.25rem;
}

.adm-delete-modal-title[b-3qghmd2607] {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--b9-text);
}

.adm-delete-close[b-3qghmd2607] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    border: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
    color: var(--b9-text-muted);
}

.adm-delete-close:hover[b-3qghmd2607] {
    color: var(--b9-text);
    background: var(--b9-card-bg);
}

.adm-delete-modal-copy[b-3qghmd2607] {
    margin: 0 0 1rem;
    color: var(--b9-text-muted);
    line-height: 1.55;
}

.adm-delete-summary-grid[b-3qghmd2607] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
    margin-bottom: 1rem;
}

.adm-delete-summary-item[b-3qghmd2607] {
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    padding: 0.75rem 0.8rem;
    background: color-mix(in srgb, var(--b9-surface-muted) 76%, var(--b9-card-bg));
}

.adm-delete-summary-label[b-3qghmd2607] {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-text-soft);
    margin-bottom: 0.25rem;
}

.adm-delete-summary-item strong[b-3qghmd2607] {
    font-size: 0.92rem;
    color: var(--b9-text);
    word-break: break-word;
}

.adm-delete-warning[b-3qghmd2607] {
    border-radius: 12px;
    padding: 0.85rem 0.95rem;
    margin-bottom: 1rem;
    line-height: 1.5;
    border: 1px solid;
}

.adm-delete-warning--blocked[b-3qghmd2607] {
    background: var(--b9-danger-soft);
    border-color: color-mix(in srgb, var(--b9-danger) 60%, transparent);
    color: var(--b9-danger-text);
}

.adm-delete-warning--ready[b-3qghmd2607] {
    background: var(--b9-warning-soft);
    border-color: color-mix(in srgb, var(--b9-warning) 56%, transparent);
    color: var(--b9-warning-text);
}

.adm-delete-form[b-3qghmd2607] {
    display: grid;
    gap: 0.75rem;
}

.adm-delete-label[b-3qghmd2607] {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--b9-text);
}

.adm-delete-input[b-3qghmd2607] {
    background: var(--b9-surface-muted);
    border-color: var(--b9-border);
    color: var(--b9-text);
}

.adm-delete-input[b-3qghmd2607]::placeholder {
    color: var(--b9-text-soft);
}

.adm-delete-input:focus[b-3qghmd2607] {
    background: var(--b9-card-bg);
    border-color: var(--b9-primary);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--b9-primary) 18%, transparent);
}

.adm-delete-check[b-3qghmd2607] {
    margin: 0;
    padding: 0.8rem 0.85rem;
    border-radius: 12px;
    border: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
}

.adm-delete-check .form-check-label[b-3qghmd2607] {
    font-size: 0.86rem;
    color: var(--b9-text);
    line-height: 1.45;
}

.adm-delete-modal-footer[b-3qghmd2607] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    border-top: 1px solid var(--b9-border);
}

@media (max-width: 767px) {
    .adm-delete-summary-grid[b-3qghmd2607] {
        grid-template-columns: 1fr;
    }

    .adm-delete-modal[b-3qghmd2607] {
        max-height: 90vh;
    }

    .adm-delete-modal-footer[b-3qghmd2607] {
        flex-direction: column-reverse;
    }

    .adm-delete-modal-footer .btn[b-3qghmd2607] {
        width: 100%;
    }
}


/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width: 900px) {
    .adm-two-col[b-3qghmd2607] {
        grid-template-columns: 1fr;
    }

    .adm-aside[b-3qghmd2607] {
        position: static;
    }
}

@media (max-width: 767px) {
    .adm-page[b-3qghmd2607] { padding: 1rem 1rem 2rem; }
    .adm-search-input[b-3qghmd2607] { width: 200px; }
    .etd-contact[b-3qghmd2607],
    .etd-count[b-3qghmd2607] { display: none; }
}


/* Small explanatory line under an action row — e.g. what a tee sheet override is actually
   carrying for this org, and when a grandfathered beta club renews. */
.adm-hint[b-3qghmd2607] {
    margin-top: 0.15rem;
    font-size: 0.75rem;
    font-weight: 400;
    line-height: 1.35;
    color: var(--b9-text-muted);
    white-space: normal;
}
/* /Components/Pages/Admin/Dashboard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   ADMIN CONSOLE — Dashboard.razor.css
   Inherits all shared classes from Home.razor.css via the
   brand-token layer. Only admin-specific overrides here.
═══════════════════════════════════════════════════════════ */

/* ── Page shell (reuse Home's .dash-page / .dash-header / .dash-body) ── */
.dash-page[b-opfxpeq96f] {
    padding: 1.5rem 1.75rem 3rem;
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
}

.admin-header-copy[b-opfxpeq96f] {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.admin-header-subtitle[b-opfxpeq96f] {
    font-size: 0.95rem;
    color: var(--b9-text-soft);
    max-width: 44rem;
}

/* ── Admin role badge next to title ────────────────────── */
.admin-role-badge[b-opfxpeq96f] {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--b9-danger-text);
    background: var(--b9-danger-soft);
    border: 1px solid var(--b9-danger);
    border-radius: 20px;
    padding: 0.2rem 0.7rem;
}


/* ── Metrics row (6 cards for admin) ───────────────────── */
.metrics-row[b-opfxpeq96f] {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 1rem;
    margin-bottom: 1.5rem;
}

/* Extra icon color variants */
.metric-icon-purple[b-opfxpeq96f] { background: rgba(139,92,246,0.18); color: #c4b5fd; }
.metric-icon-teal[b-opfxpeq96f]   { background: rgba(13,148,136,0.18); color: #5eead4; }
.metric-icon-amber[b-opfxpeq96f]  { background: var(--b9-warning-soft); color: var(--b9-warning); }


/* ── Two-column body ────────────────────────────────────── */
.dash-body[b-opfxpeq96f] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 300px);
    gap: 1.25rem;
    align-items: start;
}

.dash-main[b-opfxpeq96f] {
    min-width: 0;
}

.dash-aside[b-opfxpeq96f] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: sticky;
    top: 1.25rem;
    min-width: 0;
}


/* ── Shared card shell ──────────────────────────────────── */
.dash-card[b-opfxpeq96f] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 10px;
    box-shadow: var(--b9-card-shadow);
    overflow: hidden;
}

.dash-card-header[b-opfxpeq96f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--b9-border);
    flex-wrap: wrap;
}

.dash-card-title[b-opfxpeq96f] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--b9-text-muted);
    white-space: nowrap;
}

.dash-see-all[b-opfxpeq96f] {
    font-size: 0.775rem;
    font-weight: 600;
    color: var(--b9-primary-text);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    white-space: nowrap;
    transition: color 0.12s;
}

.dash-see-all:hover[b-opfxpeq96f] {
    color: var(--b9-primary-text);
    text-decoration: underline;
}


/* ── Inline search in card header ──────────────────────── */
.admin-search-wrap[b-opfxpeq96f] {
    position: relative;
    display: flex;
    align-items: center;
}

.admin-search-icon[b-opfxpeq96f] {
    position: absolute;
    left: 0.6rem;
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    pointer-events: none;
}

.admin-search-input[b-opfxpeq96f] {
    padding: 0.3rem 1.75rem 0.3rem 1.875rem;
    font-size: 0.8125rem;
    border: 1px solid var(--b9-border);
    border-radius: 6px;
    background: var(--b9-surface-muted);
    color: var(--b9-text);
    width: 200px;
    outline: none;
    transition: border-color 0.12s, background 0.12s;
}

.admin-search-input:focus[b-opfxpeq96f] {
    border-color: var(--b9-primary);
    background: var(--b9-card-bg);
}

.admin-search-input[b-opfxpeq96f]::placeholder {
    color: var(--b9-text-soft);
}

.admin-search-clear[b-opfxpeq96f] {
    position: absolute;
    right: 0.45rem;
    background: none;
    border: none;
    padding: 0;
    font-size: 0.65rem;
    color: var(--b9-text-soft);
    cursor: pointer;
    line-height: 1;
    display: flex;
    align-items: center;
    transition: color 0.1s;
}

.admin-search-clear:hover[b-opfxpeq96f] {
    color: var(--b9-text);
}


/* ── Accounts table ─────────────────────────────────────── */
.etable-wrap[b-opfxpeq96f] {
    overflow-x: auto;
}

.etable[b-opfxpeq96f] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.etable thead th[b-opfxpeq96f] {
    padding: 0.55rem 1rem;
    text-align: left;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--b9-text-muted);
    background: var(--b9-surface-muted);
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
}

.etable thead th:last-child[b-opfxpeq96f] { text-align: right; }

.etable tbody tr[b-opfxpeq96f] {
    border-bottom: 1px solid var(--b9-border);
    transition: background 0.1s;
}

.etable tbody tr:last-child[b-opfxpeq96f] { border-bottom: none; }
.etable tbody tr:hover[b-opfxpeq96f] { background: var(--b9-surface-muted); }

.etable td[b-opfxpeq96f] {
    padding: 0.65rem 1rem;
    color: var(--b9-text);
    vertical-align: middle;
}

.etd-name[b-opfxpeq96f] { min-width: 160px; }

.etd-name-link[b-opfxpeq96f] {
    display: block;
    font-weight: 600;
    color: var(--b9-text);
    text-decoration: none;
    line-height: 1.3;
    transition: color 0.1s;
}

.etd-name-link:hover[b-opfxpeq96f] {
    color: var(--b9-primary-text);
    text-decoration: none;
}

.etd-course[b-opfxpeq96f] {
    display: block;
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-top: 0.1rem;
}

.etd-contact[b-opfxpeq96f] {
    min-width: 140px;
}

.etd-contact-email[b-opfxpeq96f] {
    display: block;
    font-size: 0.8rem;
    color: var(--b9-text-muted);
}

.etd-contact-phone[b-opfxpeq96f] {
    display: block;
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-top: 0.05rem;
}

.etd-count[b-opfxpeq96f] {
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: var(--b9-text-muted);
    font-size: 0.8rem;
}

.etd-actions[b-opfxpeq96f] {
    text-align: right;
    white-space: nowrap;
}

.etd-empty[b-opfxpeq96f] {
    text-align: center;
    padding: 2rem;
    color: var(--b9-text-muted);
    font-size: 0.85rem;
}

.etd-action-btn[b-opfxpeq96f] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 6px;
    font-size: 0.825rem;
    color: var(--b9-text-soft);
    text-decoration: none;
    background: transparent;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background 0.1s, color 0.1s, border-color 0.1s;
    margin-left: 2px;
}

.etd-action-btn:hover[b-opfxpeq96f] {
    background: var(--b9-surface-muted);
    border-color: var(--b9-border);
    color: var(--b9-text);
    text-decoration: none;
}

.etd-action-activate:hover[b-opfxpeq96f] {
    background: var(--b9-success-soft);
    border-color: var(--b9-success);
    color: var(--b9-success-text);
}

.etd-action-suspend:hover[b-opfxpeq96f] {
    background: var(--b9-warning-soft);
    border-color: var(--b9-warning);
    color: var(--b9-warning-text);
}

.etable-footer[b-opfxpeq96f] {
    padding: 0.625rem 1rem;
    border-top: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
    text-align: right;
}


/* ── Status badges ──────────────────────────────────────── */
.estatus[b-opfxpeq96f] {
    display: inline-flex;
    align-items: center;
    font-size: 0.69rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.estatus-open[b-opfxpeq96f]      { background: var(--b9-success-soft);  color: var(--b9-success-text); }
.estatus-draft[b-opfxpeq96f]     { background: var(--b9-warning-soft);  color: var(--b9-warning-text); }
.estatus-cancelled[b-opfxpeq96f] { background: var(--b9-surface-muted); color: var(--b9-text-soft); }


/* ── Alert bar ──────────────────────────────────────────── */
.admin-alert[b-opfxpeq96f] {
    display: flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 500;
    border-radius: 8px;
    padding: 0.5rem 0.875rem;
    margin-bottom: 0.875rem;
    border: 1px solid;
}

.admin-alert-success[b-opfxpeq96f] {
    background: var(--b9-success-soft);
    border-color: var(--b9-success);
    color: var(--b9-success-text);
}

.admin-alert-danger[b-opfxpeq96f] {
    background: var(--b9-danger-soft);
    border-color: var(--b9-danger);
    color: var(--b9-danger-text);
}


/* ── Admin users list (sidebar) ─────────────────────────── */
.admin-user-list[b-opfxpeq96f] {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 0.25rem 0;
}

.admin-user-loading[b-opfxpeq96f],
.admin-user-empty[b-opfxpeq96f] {
    padding: 0.875rem 1rem;
    font-size: 0.8125rem;
    color: var(--b9-text-muted);
}

.admin-user-row[b-opfxpeq96f] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.5rem 1rem;
    transition: background 0.1s;
}

.admin-user-row:hover[b-opfxpeq96f] {
    background: var(--b9-surface-muted);
}

.admin-user-avatar[b-opfxpeq96f] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    font-size: 0.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.admin-user-info[b-opfxpeq96f] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.admin-user-name[b-opfxpeq96f] {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--b9-text);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-user-email[b-opfxpeq96f] {
    font-size: 0.72rem;
    color: var(--b9-text-soft);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-you-badge[b-opfxpeq96f] {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--b9-text-soft);
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    padding: 1px 7px;
    flex-shrink: 0;
}


/* ── Promote form ───────────────────────────────────────── */
.admin-promote-form[b-opfxpeq96f] {
    padding: 0.75rem 1rem;
    border-top: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
}

.admin-inline-error[b-opfxpeq96f] {
    font-size: 0.775rem;
    color: var(--b9-danger-text);
    background: var(--b9-danger-soft);
    border: 1px solid var(--b9-danger);
    border-radius: 5px;
    padding: 0.3rem 0.6rem;
    margin-bottom: 0.5rem;
}

.admin-inline-success[b-opfxpeq96f] {
    font-size: 0.775rem;
    color: var(--b9-success-text);
    background: var(--b9-success-soft);
    border: 1px solid var(--b9-success);
    border-radius: 5px;
    padding: 0.3rem 0.6rem;
    margin-bottom: 0.5rem;
}

.admin-promote-row[b-opfxpeq96f] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.admin-promote-input[b-opfxpeq96f] {
    flex: 1;
    min-width: 0;
    padding: 0.35rem 0.625rem;
    font-size: 0.8125rem;
    border: 1px solid var(--b9-border);
    border-radius: 6px;
    background: var(--b9-card-bg);
    color: var(--b9-text);
    outline: none;
    transition: border-color 0.12s;
}

.admin-promote-input:focus[b-opfxpeq96f] {
    border-color: var(--b9-primary);
}

.admin-promote-input[b-opfxpeq96f]::placeholder {
    color: var(--b9-text-soft);
}

.admin-promote-hint[b-opfxpeq96f] {
    margin: 0.4rem 0 0;
    font-size: 0.72rem;
    color: var(--b9-text-soft);
    line-height: 1.4;
}


/* ── Status breakdown (sidebar) ─────────────────────────── */
.breakdown-list[b-opfxpeq96f] {
    display: flex;
    flex-direction: column;
    padding: 0.25rem 0;
}

.breakdown-row[b-opfxpeq96f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 1rem;
    border-bottom: 1px solid var(--b9-border);
    font-size: 0.8rem;
}

.breakdown-row:last-child[b-opfxpeq96f] { border-bottom: none; }

.breakdown-label[b-opfxpeq96f] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--b9-text-muted);
}

.breakdown-value[b-opfxpeq96f] {
    font-weight: 700;
    font-size: 0.875rem;
    color: var(--b9-text);
    font-variant-numeric: tabular-nums;
}

.status-dot[b-opfxpeq96f] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

.status-dot-open[b-opfxpeq96f]      { background: var(--b9-success); }
.status-dot-active[b-opfxpeq96f]    { background: var(--b9-warning); }
.status-dot-cancelled[b-opfxpeq96f] { background: var(--b9-text-soft); }


/* ── Header shared ──────────────────────────────────────── */
.dash-header[b-opfxpeq96f] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.dash-header-left[b-opfxpeq96f] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.dash-title[b-opfxpeq96f] {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0;
    color: var(--b9-text);
    letter-spacing: -0.02em;
}

.dash-header-actions[b-opfxpeq96f] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
}

.dash-loading[b-opfxpeq96f] {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4rem 1.5rem;
    color: var(--b9-text-muted);
    font-size: 0.875rem;
}

/* ── Metric card ────────────────────────────────────────── */
.metric-card[b-opfxpeq96f] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 10px;
    box-shadow: var(--b9-card-shadow);
    padding: 1rem 1.125rem;
    display: flex;
    align-items: center;
    gap: 0.875rem;
    transition: box-shadow 0.12s;
}

.metric-card:hover[b-opfxpeq96f] { box-shadow: var(--b9-card-shadow-md); }

.metric-icon[b-opfxpeq96f] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    flex-shrink: 0;
}

.metric-icon-red[b-opfxpeq96f]   { background: var(--b9-danger-soft);  color: var(--b9-danger); }
.metric-icon-green[b-opfxpeq96f] { background: var(--b9-success-soft); color: var(--b9-success); }
.metric-icon-blue[b-opfxpeq96f]  { background: var(--b9-primary-soft); color: var(--b9-primary-text); }
.metric-icon-slate[b-opfxpeq96f] { background: var(--b9-surface-muted); color: var(--b9-text-soft); }

.metric-body[b-opfxpeq96f] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.metric-value[b-opfxpeq96f] {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    color: var(--b9-text);
    letter-spacing: -0.02em;
}

.metric-label[b-opfxpeq96f] {
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--b9-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.065em;
    white-space: nowrap;
}


/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width: 1200px) {
    .metrics-row[b-opfxpeq96f] { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1140px) {
    .dash-body[b-opfxpeq96f] {
        grid-template-columns: 1fr;
    }

    .dash-aside[b-opfxpeq96f] {
        position: static;
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
        gap: 1rem;
    }
}

@media (max-width: 767px) {
    .dash-page[b-opfxpeq96f] { padding: 1rem 1rem 2rem; }
    .dash-header-left[b-opfxpeq96f] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    /* Header action buttons wrap onto extra rows instead of widening the page. */
    .dash-header-actions[b-opfxpeq96f] {
        flex-wrap: wrap;
        row-gap: 0.5rem;
    }
    /* minmax(0,…) + min-width:0 let cards shrink; labels wrap on phones. */
    .metrics-row[b-opfxpeq96f] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .metric-card[b-opfxpeq96f] { min-width: 0; }
    .metric-label[b-opfxpeq96f] {
        white-space: normal;
        line-height: 1.25;
    }
    .admin-search-input[b-opfxpeq96f] { width: 140px; }
    .etd-contact[b-opfxpeq96f],
    .etd-count[b-opfxpeq96f] { display: none; }
}

/* Very narrow phones (320-class): stack the metric cards. */
@media (max-width: 420px) {
    .metrics-row[b-opfxpeq96f] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Admin/MatchPlayPreview.razor.rz.scp.css */
.mpx-page[b-60ppi7qhzo] {
    --mpx-shell-bg: linear-gradient(180deg, rgba(15, 23, 42, 0.94) 0%, rgba(11, 18, 32, 0.98) 100%);
    --mpx-panel-bg: linear-gradient(180deg, rgba(18, 27, 48, 0.94) 0%, rgba(13, 20, 37, 0.98) 100%);
    --mpx-panel-border: rgba(148, 163, 184, 0.18);
    --mpx-soft-border: rgba(148, 163, 184, 0.12);
    --mpx-text: #e2e8f0;
    --mpx-text-soft: #93a4bc;
    --mpx-text-muted: #7c8aa5;
    --mpx-accent: #38bdf8;
    --mpx-accent-soft: rgba(56, 189, 248, 0.12);
    --mpx-success: #22c55e;
    --mpx-success-soft: rgba(34, 197, 94, 0.16);
    --mpx-warning: #f59e0b;
    --mpx-warning-soft: rgba(245, 158, 11, 0.18);
    --mpx-danger: #fb7185;
    --mpx-danger-soft: rgba(251, 113, 133, 0.16);
    --mpx-shadow: 0 24px 48px rgba(2, 6, 23, 0.28);
    padding: 1.5rem;
    color: var(--mpx-text);
    display: grid;
    gap: 1rem;
}

.mpx-page[b-60ppi7qhzo]  .ui-card {
    background: var(--mpx-panel-bg);
    border-color: var(--mpx-panel-border);
    box-shadow: var(--mpx-shadow);
}

.mpx-page[b-60ppi7qhzo]  .ui-input,
.mpx-page[b-60ppi7qhzo]  .ui-select {
    background: rgba(15, 23, 42, 0.88);
    border-color: rgba(148, 163, 184, 0.22);
    color: var(--mpx-text);
}

.mpx-page[b-60ppi7qhzo]  .ui-input::placeholder {
    color: var(--mpx-text-muted);
}

.mpx-page[b-60ppi7qhzo]  .ui-label {
    color: var(--mpx-text-soft);
}

.mpx-page[b-60ppi7qhzo]  .ui-btn--primary {
    background: linear-gradient(135deg, #0ea5e9 0%, #2563eb 100%);
}

.mpx-page[b-60ppi7qhzo]  .ui-btn--primary:hover:not(:disabled) {
    box-shadow: 0 12px 24px rgba(37, 99, 235, 0.28);
}

.mpx-hero[b-60ppi7qhzo] {
    background: var(--mpx-shell-bg);
    overflow: hidden;
}

.mpx-hero-topline[b-60ppi7qhzo],
.mpx-hero-main[b-60ppi7qhzo],
.mpx-warning[b-60ppi7qhzo],
.mpx-panel-header[b-60ppi7qhzo],
.mpx-toolbar[b-60ppi7qhzo],
.mpx-context-band[b-60ppi7qhzo],
.mpx-group-header[b-60ppi7qhzo],
.mpx-match-topline[b-60ppi7qhzo],
.mpx-state-row[b-60ppi7qhzo],
.mpx-match-meta[b-60ppi7qhzo],
.mpx-player-hero-topline[b-60ppi7qhzo],
.mpx-player-identity[b-60ppi7qhzo],
.mpx-player-summary-grid[b-60ppi7qhzo],
.mpx-player-meta-row[b-60ppi7qhzo],
.mpx-timeline-topline[b-60ppi7qhzo],
.mpx-timeline-item[b-60ppi7qhzo] {
    display: flex;
    gap: 0.75rem;
}

.mpx-hero-topline[b-60ppi7qhzo],
.mpx-panel-kicker[b-60ppi7qhzo],
.mpx-match-number[b-60ppi7qhzo],
.mpx-meta-label[b-60ppi7qhzo],
.mpx-timeline-time[b-60ppi7qhzo],
.mpx-hero-meta[b-60ppi7qhzo] {
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.mpx-hero-topline[b-60ppi7qhzo] {
    align-items: center;
    margin-bottom: 0.9rem;
}

.mpx-hero-badge[b-60ppi7qhzo],
.mpx-readonly-badge[b-60ppi7qhzo],
.mpx-warning-icon[b-60ppi7qhzo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 0.3rem 0.7rem;
    font-size: 0.72rem;
    font-weight: 800;
}

.mpx-hero-badge[b-60ppi7qhzo] {
    color: #03111c;
    background: linear-gradient(135deg, #67e8f9 0%, #38bdf8 100%);
}

.mpx-hero-meta[b-60ppi7qhzo] {
    font-size: 0.72rem;
    color: var(--mpx-text-soft);
    font-weight: 700;
}

.mpx-hero-main[b-60ppi7qhzo] {
    justify-content: space-between;
    align-items: end;
    flex-wrap: wrap;
}

.mpx-hero-copy[b-60ppi7qhzo] {
    max-width: 48rem;
}

.mpx-hero-copy h1[b-60ppi7qhzo] {
    margin: 0;
    font-size: clamp(1.85rem, 3vw, 2.5rem);
    line-height: 1.05;
    color: #f8fafc;
}

.mpx-hero-copy p[b-60ppi7qhzo] {
    margin: 0.75rem 0 0;
    color: var(--mpx-text-soft);
    max-width: 44rem;
    line-height: 1.6;
}

.mpx-hero-chips[b-60ppi7qhzo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.mpx-chip[b-60ppi7qhzo],
.mpx-context-chip[b-60ppi7qhzo],
.mpx-final-pill[b-60ppi7qhzo],
.mpx-status-pill[b-60ppi7qhzo],
.mpx-state-badge[b-60ppi7qhzo],
.mpx-result-pill[b-60ppi7qhzo],
.mpx-group-count[b-60ppi7qhzo] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
}

.mpx-chip--ghost[b-60ppi7qhzo] {
    padding: 0.45rem 0.8rem;
    background: rgba(15, 23, 42, 0.56);
    border: 1px solid rgba(148, 163, 184, 0.18);
    color: var(--mpx-text-soft);
}

.mpx-warning[b-60ppi7qhzo] {
    align-items: flex-start;
    border: 1px solid rgba(245, 158, 11, 0.24);
    background: linear-gradient(180deg, rgba(49, 27, 0, 0.72) 0%, rgba(28, 20, 10, 0.94) 100%);
}

.mpx-warning-icon[b-60ppi7qhzo] {
    background: var(--mpx-warning-soft);
    color: #fcd34d;
    border: 1px solid rgba(245, 158, 11, 0.4);
    white-space: nowrap;
}

.mpx-warning-copy[b-60ppi7qhzo] {
    display: grid;
    gap: 0.35rem;
    line-height: 1.55;
}

.mpx-warning-copy strong[b-60ppi7qhzo] {
    color: #fef3c7;
}

.mpx-warning-copy span[b-60ppi7qhzo] {
    color: #f6d58f;
}

.mpx-panels[b-60ppi7qhzo] {
    display: grid;
    gap: 1rem;
}

.mpx-panel[b-60ppi7qhzo] {
    display: grid;
    gap: 1rem;
}

.mpx-panel-header[b-60ppi7qhzo] {
    justify-content: space-between;
    align-items: start;
}

.mpx-panel-kicker[b-60ppi7qhzo] {
    display: inline-block;
    margin-bottom: 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--mpx-accent);
}

.mpx-panel-header h2[b-60ppi7qhzo],
.mpx-group-header h3[b-60ppi7qhzo] {
    margin: 0;
    color: #f8fafc;
}

.mpx-panel-header p[b-60ppi7qhzo] {
    margin: 0.45rem 0 0;
    color: var(--mpx-text-soft);
    max-width: 48rem;
    line-height: 1.55;
}

.mpx-toolbar[b-60ppi7qhzo] {
    align-items: end;
    flex-wrap: wrap;
    padding: 1rem;
    border: 1px solid var(--mpx-soft-border);
    border-radius: 1rem;
    background: rgba(15, 23, 42, 0.56);
}

.mpx-field[b-60ppi7qhzo] {
    margin-bottom: 0;
}

.mpx-field--compact[b-60ppi7qhzo] {
    width: min(11rem, 100%);
}

.mpx-field--wide[b-60ppi7qhzo] {
    flex: 1 1 24rem;
    min-width: min(100%, 20rem);
}

.mpx-toolbar-action[b-60ppi7qhzo] {
    display: flex;
    align-items: end;
    min-height: 100%;
}

.mpx-messages[b-60ppi7qhzo] {
    display: grid;
    gap: 0.55rem;
}

.mpx-message-item[b-60ppi7qhzo] {
    padding: 0.8rem 0.9rem;
    border-radius: 0.9rem;
    background: rgba(15, 23, 42, 0.68);
    border: 1px solid rgba(148, 163, 184, 0.14);
    color: var(--mpx-text-soft);
    line-height: 1.5;
}

.mpx-context-band[b-60ppi7qhzo] {
    flex-wrap: wrap;
}

.mpx-context-chip[b-60ppi7qhzo] {
    padding: 0.45rem 0.75rem;
    background: var(--mpx-accent-soft);
    border: 1px solid rgba(56, 189, 248, 0.2);
    color: #bae6fd;
}

.mpx-board-grid[b-60ppi7qhzo] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.mpx-board-grid--public[b-60ppi7qhzo] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.mpx-group[b-60ppi7qhzo],
.mpx-player-hero-card[b-60ppi7qhzo],
.mpx-timeline-panel[b-60ppi7qhzo] {
    display: grid;
    gap: 0.9rem;
    padding: 1rem;
    border-radius: 1rem;
    border: 1px solid var(--mpx-soft-border);
    background: rgba(15, 23, 42, 0.52);
}

.mpx-group-header[b-60ppi7qhzo] {
    justify-content: space-between;
    align-items: center;
}

.mpx-group-count[b-60ppi7qhzo] {
    min-width: 2rem;
    padding: 0.35rem 0.65rem;
    background: rgba(148, 163, 184, 0.14);
    color: var(--mpx-text-soft);
}

.mpx-empty-card[b-60ppi7qhzo] {
    display: grid;
    gap: 0.35rem;
    padding: 1rem;
    border-radius: 0.95rem;
    border: 1px dashed rgba(148, 163, 184, 0.24);
    background: rgba(15, 23, 42, 0.4);
}

.mpx-empty-card strong[b-60ppi7qhzo] {
    color: #f8fafc;
}

.mpx-empty-card span[b-60ppi7qhzo] {
    color: var(--mpx-text-soft);
    line-height: 1.5;
}

.mpx-match-list[b-60ppi7qhzo],
.mpx-timeline-list[b-60ppi7qhzo] {
    display: grid;
    gap: 0.8rem;
}

.mpx-match-card[b-60ppi7qhzo] {
    display: grid;
    gap: 0.75rem;
    padding: 0.95rem;
    border-radius: 0.95rem;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: linear-gradient(180deg, rgba(22, 32, 57, 0.96) 0%, rgba(12, 19, 34, 0.96) 100%);
}

.mpx-match-card--public[b-60ppi7qhzo] {
    gap: 0.65rem;
}

.mpx-match-topline[b-60ppi7qhzo],
.mpx-state-row[b-60ppi7qhzo],
.mpx-match-meta[b-60ppi7qhzo],
.mpx-player-hero-topline[b-60ppi7qhzo],
.mpx-player-identity[b-60ppi7qhzo],
.mpx-player-meta-row[b-60ppi7qhzo],
.mpx-timeline-topline[b-60ppi7qhzo],
.mpx-timeline-item[b-60ppi7qhzo] {
    justify-content: space-between;
    align-items: center;
}

.mpx-match-number[b-60ppi7qhzo],
.mpx-meta-label[b-60ppi7qhzo],
.mpx-timeline-time[b-60ppi7qhzo] {
    font-size: 0.68rem;
    font-weight: 800;
    color: var(--mpx-text-muted);
}

.mpx-status-pill[b-60ppi7qhzo],
.mpx-state-badge[b-60ppi7qhzo],
.mpx-final-pill[b-60ppi7qhzo],
.mpx-result-pill[b-60ppi7qhzo] {
    padding: 0.34rem 0.65rem;
    border: 1px solid transparent;
}

.mpx-status-pill--scheduled[b-60ppi7qhzo],
.mpx-state-badge--scheduled[b-60ppi7qhzo],
.mpx-result-pill--halved[b-60ppi7qhzo] {
    background: rgba(148, 163, 184, 0.14);
    border-color: rgba(148, 163, 184, 0.2);
    color: #cbd5e1;
}

.mpx-status-pill--active[b-60ppi7qhzo],
.mpx-state-badge--active[b-60ppi7qhzo],
.mpx-result-pill--won[b-60ppi7qhzo] {
    background: var(--mpx-success-soft);
    border-color: rgba(34, 197, 94, 0.24);
    color: #bbf7d0;
}

.mpx-status-pill--closed[b-60ppi7qhzo],
.mpx-state-badge--closed[b-60ppi7qhzo] {
    background: var(--mpx-warning-soft);
    border-color: rgba(245, 158, 11, 0.28);
    color: #fde68a;
}

.mpx-status-pill--muted[b-60ppi7qhzo],
.mpx-state-badge--muted[b-60ppi7qhzo],
.mpx-result-pill--muted[b-60ppi7qhzo] {
    background: rgba(71, 85, 105, 0.24);
    border-color: rgba(100, 116, 139, 0.24);
    color: #cbd5e1;
}

.mpx-state-badge--square[b-60ppi7qhzo] {
    background: rgba(56, 189, 248, 0.15);
    border-color: rgba(56, 189, 248, 0.22);
    color: #bae6fd;
}

.mpx-result-pill--lost[b-60ppi7qhzo] {
    background: var(--mpx-danger-soft);
    border-color: rgba(251, 113, 133, 0.24);
    color: #fecdd3;
}

.mpx-final-pill[b-60ppi7qhzo] {
    background: rgba(99, 102, 241, 0.18);
    border-color: rgba(129, 140, 248, 0.25);
    color: #c7d2fe;
}

.mpx-match-sides[b-60ppi7qhzo],
.mpx-player-name[b-60ppi7qhzo] {
    font-size: 1.05rem;
    font-weight: 700;
    color: #f8fafc;
}

.mpx-match-id[b-60ppi7qhzo] {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
    font-size: 0.74rem;
    color: var(--mpx-text-muted);
    overflow-wrap: anywhere;
}

.mpx-match-sides span[b-60ppi7qhzo],
.mpx-player-opponent[b-60ppi7qhzo] {
    color: var(--mpx-text-soft);
    font-weight: 500;
}

.mpx-match-meta[b-60ppi7qhzo],
.mpx-player-meta-row[b-60ppi7qhzo] {
    flex-wrap: wrap;
}

.mpx-meta-item[b-60ppi7qhzo],
.mpx-summary-card[b-60ppi7qhzo] {
    display: grid;
    gap: 0.25rem;
    min-width: 0;
}

.mpx-meta-item[b-60ppi7qhzo] {
    flex: 1 1 10rem;
    padding: 0.7rem 0.85rem;
    border-radius: 0.85rem;
    background: rgba(15, 23, 42, 0.48);
    border: 1px solid rgba(148, 163, 184, 0.1);
}

.mpx-meta-item--wide[b-60ppi7qhzo] {
    flex: 2 1 22rem;
}

.mpx-meta-value[b-60ppi7qhzo] {
    color: #f8fafc;
    font-size: 0.94rem;
    line-height: 1.45;
}

.mpx-meta-value--mono[b-60ppi7qhzo] {
    font-family: ui-monospace, SFMono-Regular, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace;
    font-size: 0.82rem;
    word-break: break-all;
}

.mpx-player-blueprint[b-60ppi7qhzo] {
    display: grid;
    gap: 1rem;
}

.mpx-player-hero-card[b-60ppi7qhzo] {
    background: linear-gradient(160deg, rgba(14, 165, 233, 0.16) 0%, rgba(15, 23, 42, 0.9) 42%, rgba(17, 24, 39, 0.98) 100%);
}

.mpx-readonly-badge[b-60ppi7qhzo] {
    background: rgba(15, 23, 42, 0.66);
    border: 1px solid rgba(148, 163, 184, 0.18);
    color: var(--mpx-text-soft);
}

.mpx-player-identity[b-60ppi7qhzo] {
    align-items: start;
}

.mpx-player-opponent[b-60ppi7qhzo] {
    margin-top: 0.3rem;
    font-size: 0.92rem;
}

.mpx-player-summary-grid[b-60ppi7qhzo] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.mpx-summary-card[b-60ppi7qhzo] {
    padding: 0.9rem;
    border-radius: 0.95rem;
    border: 1px solid rgba(148, 163, 184, 0.12);
    background: rgba(15, 23, 42, 0.54);
}

.mpx-timeline-panel[b-60ppi7qhzo] {
    background: rgba(12, 19, 34, 0.88);
}

.mpx-timeline-item[b-60ppi7qhzo] {
    align-items: stretch;
    gap: 0.9rem;
    padding: 0.9rem;
    border-radius: 0.95rem;
    border: 1px solid rgba(148, 163, 184, 0.12);
    background: rgba(15, 23, 42, 0.45);
}

.mpx-timeline-hole[b-60ppi7qhzo] {
    min-width: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.95rem;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
    background: linear-gradient(180deg, #bae6fd 0%, #38bdf8 100%);
}

.mpx-timeline-body[b-60ppi7qhzo] {
    flex: 1 1 auto;
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.mpx-timeline-label[b-60ppi7qhzo] {
    color: var(--mpx-text-soft);
    line-height: 1.45;
}

.mpx-timeline-flag[b-60ppi7qhzo] {
    align-self: center;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--mpx-text-soft);
}

@media (max-width: 1100px) {
    .mpx-board-grid[b-60ppi7qhzo],
    .mpx-board-grid--public[b-60ppi7qhzo],
    .mpx-player-summary-grid[b-60ppi7qhzo] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .mpx-page[b-60ppi7qhzo] {
        padding: 1rem;
    }

    .mpx-board-grid[b-60ppi7qhzo],
    .mpx-board-grid--public[b-60ppi7qhzo],
    .mpx-player-summary-grid[b-60ppi7qhzo] {
        grid-template-columns: 1fr;
    }

    .mpx-toolbar[b-60ppi7qhzo],
    .mpx-player-meta-row[b-60ppi7qhzo],
    .mpx-match-meta[b-60ppi7qhzo],
    .mpx-hero-main[b-60ppi7qhzo],
    .mpx-warning[b-60ppi7qhzo],
    .mpx-player-identity[b-60ppi7qhzo],
    .mpx-timeline-item[b-60ppi7qhzo] {
        flex-direction: column;
        align-items: stretch;
    }

    .mpx-toolbar-action[b-60ppi7qhzo] {
        width: 100%;
    }

    .mpx-toolbar-action[b-60ppi7qhzo]  .ui-btn {
        width: 100%;
    }

    .mpx-field--compact[b-60ppi7qhzo],
    .mpx-field--wide[b-60ppi7qhzo] {
        width: 100%;
        flex: 1 1 100%;
    }
}

@media (max-width: 480px) {
    .mpx-page[b-60ppi7qhzo] {
        padding: 0.75rem;
    }

    .mpx-panel[b-60ppi7qhzo],
    .mpx-hero[b-60ppi7qhzo],
    .mpx-warning[b-60ppi7qhzo] {
        border-radius: 1rem;
    }

    .mpx-player-name[b-60ppi7qhzo],
    .mpx-match-sides[b-60ppi7qhzo] {
        font-size: 0.98rem;
    }

    .mpx-meta-item[b-60ppi7qhzo],
    .mpx-summary-card[b-60ppi7qhzo],
    .mpx-match-card[b-60ppi7qhzo],
    .mpx-timeline-item[b-60ppi7qhzo],
    .mpx-group[b-60ppi7qhzo],
    .mpx-player-hero-card[b-60ppi7qhzo],
    .mpx-timeline-panel[b-60ppi7qhzo],
    .mpx-toolbar[b-60ppi7qhzo] {
        padding: 0.85rem;
    }
}

.mpx-entry-grid[b-60ppi7qhzo] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}

.mpx-entry-card[b-60ppi7qhzo] {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
    border-radius: 0.95rem;
    border: 1px solid rgba(148, 163, 184, 0.14);
    background: rgba(12, 19, 34, 0.8);
}

.mpx-entry-card--guarded[b-60ppi7qhzo] {
    border-color: rgba(251, 191, 36, 0.22);
    background: linear-gradient(180deg, rgba(41, 27, 7, 0.44) 0%, rgba(12, 19, 34, 0.92) 100%);
}

.mpx-entry-state-value[b-60ppi7qhzo] {
    font-size: clamp(1.25rem, 2vw, 1.7rem);
    font-weight: 800;
    color: #f8fafc;
    padding: 0.65rem 0.85rem;
    border-radius: 0.9rem;
    background: rgba(30, 41, 59, 0.52);
    border: 1px solid rgba(148, 163, 184, 0.2);
}

.mpx-entry-state-kicker[b-60ppi7qhzo] {
    font-size: 0.76rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--mpx-text-soft);
    font-weight: 700;
}

.mpx-entry-action-now[b-60ppi7qhzo] {
    color: var(--mpx-text-soft);
    font-weight: 600;
}

.mpx-entry-readiness[b-60ppi7qhzo] {
    padding: 0.65rem 0.8rem;
    border-radius: 0.8rem;
    font-weight: 700;
    border: 1px solid transparent;
}

.mpx-entry-readiness--ready[b-60ppi7qhzo] {
    background: var(--mpx-success-soft);
    color: #bbf7d0;
    border-color: rgba(34, 197, 94, 0.24);
}

.mpx-entry-readiness--waiting[b-60ppi7qhzo] {
    background: var(--mpx-warning-soft);
    color: #fcd34d;
    border-color: rgba(245, 158, 11, 0.28);
}

.mpx-entry-meta[b-60ppi7qhzo] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.mpx-meta-value--ready[b-60ppi7qhzo] {
    color: #bbf7d0;
}

.mpx-entry-action-row[b-60ppi7qhzo] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.mpx-entry-help[b-60ppi7qhzo] {
    color: var(--mpx-text-soft);
    font-size: 0.86rem;
    line-height: 1.45;
}

.mpx-entry-validation[b-60ppi7qhzo] {
    padding: 0.7rem 0.85rem;
    border-radius: 0.8rem;
    background: rgba(251, 113, 133, 0.14);
    border: 1px solid rgba(251, 113, 133, 0.24);
    color: #fecdd3;
    font-weight: 600;
}

.mpx-guard-copy[b-60ppi7qhzo] {
    margin: 0;
    color: var(--mpx-text-soft);
    line-height: 1.5;
}

.mpx-player-blueprint--invalid[b-60ppi7qhzo] {
    border: 1px solid rgba(251, 113, 133, 0.24);
    border-radius: 1rem;
    padding: 1rem;
    background: linear-gradient(180deg, rgba(61, 23, 37, 0.26) 0%, rgba(12, 19, 34, 0.92) 100%);
}

@media (max-width: 1200px) {
    .mpx-entry-meta[b-60ppi7qhzo] {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .mpx-entry-grid[b-60ppi7qhzo] {
        grid-template-columns: 1fr;
    }

    .mpx-entry-action-row[b-60ppi7qhzo]  .ui-btn {
        width: 100%;
    }

    .mpx-entry-action-row[b-60ppi7qhzo] {
        flex-direction: column;
    }
}
/* /Components/Pages/Admin/PlayerSubscriptions.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   ADMIN — Player Subscriptions (Player+)
   Mirrors the shared admin sub-page styles (see CourseAccounts).
═══════════════════════════════════════════════════════════ */

/* ── Page shell ─────────────────────────────────────────── */
.adm-page[b-v8k9ru9ayu] {
    padding: 1.5rem 1.75rem 3rem;
    max-width: 1100px;
}

/* ── Header ─────────────────────────────────────────────── */
.adm-header[b-v8k9ru9ayu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
}

.adm-header-left[b-v8k9ru9ayu] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    flex-wrap: wrap;
}

.adm-back[b-v8k9ru9ayu] {
    display: inline-flex;
    align-items: center;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--b9-text-muted);
    text-decoration: none;
    transition: color 0.1s;
}

.adm-back:hover[b-v8k9ru9ayu] { color: var(--b9-text); text-decoration: none; }

.adm-title[b-v8k9ru9ayu] {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0;
    color: var(--b9-text);
    letter-spacing: -0.02em;
}

.admin-role-badge[b-v8k9ru9ayu] {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--b9-danger-text);
    background: var(--b9-danger-soft);
    border: 1px solid var(--b9-danger);
    border-radius: 20px;
    padding: 0.2rem 0.7rem;
}

/* ── Intro copy ─────────────────────────────────────────── */
.adm-intro[b-v8k9ru9ayu] {
    font-size: 0.85rem;
    color: var(--b9-text-muted);
    line-height: 1.55;
    margin-bottom: 1rem;
    max-width: 70ch;
}

/* ── Filter tabs (Player+ / All players) ────────────────── */
.pp-seg[b-v8k9ru9ayu] {
    display: inline-flex;
    gap: 0.25rem;
    padding: 0.25rem;
    margin-bottom: 0.875rem;
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    max-width: 100%;
    flex-wrap: wrap;
}

.pp-seg-btn[b-v8k9ru9ayu] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.85rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--b9-text-muted);
    background: transparent;
    border: none;
    border-radius: 7px;
    cursor: pointer;
    transition: background 0.12s, color 0.12s;
}

.pp-seg-btn:hover:not(.is-active):not(:disabled)[b-v8k9ru9ayu] { color: var(--b9-text); }

.pp-seg-btn.is-active[b-v8k9ru9ayu] {
    color: var(--b9-text);
    background: var(--b9-card-bg);
    box-shadow: var(--b9-card-shadow);
}

.pp-seg-btn:disabled[b-v8k9ru9ayu] { opacity: 0.6; cursor: default; }

.pp-seg-count[b-v8k9ru9ayu] {
    font-size: 0.72rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    padding: 0.05rem 0.4rem;
    border-radius: 999px;
    background: var(--b9-surface-muted);
    color: var(--b9-text-muted);
}

.pp-seg-btn.is-active .pp-seg-count[b-v8k9ru9ayu] {
    background: var(--b9-primary-soft, var(--b9-surface-muted));
    color: var(--b9-primary-text, var(--b9-text));
}

/* ── Card ───────────────────────────────────────────────── */
.adm-card[b-v8k9ru9ayu] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 10px;
    box-shadow: var(--b9-card-shadow);
    overflow: hidden;
}

.adm-card-header[b-v8k9ru9ayu] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--b9-border);
}

.adm-card-title[b-v8k9ru9ayu] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--b9-text-muted);
}

.adm-count[b-v8k9ru9ayu] {
    font-size: 0.8rem;
    color: var(--b9-text-muted);
    white-space: nowrap;
}

/* ── Search row ─────────────────────────────────────────── */
.adm-search-row[b-v8k9ru9ayu] {
    display: flex;
    flex-wrap: wrap; /* buttons drop to a second row on narrow phones */
    gap: 0.5rem;
    padding: 0.75rem 1rem 1rem;
}

.adm-search-row .adm-input[b-v8k9ru9ayu] { flex: 1 1 10rem; min-width: 0; }

.adm-input[b-v8k9ru9ayu] {
    padding: 0.4rem 0.7rem;
    font-size: 0.8125rem;
    border: 1px solid var(--b9-border);
    border-radius: 7px;
    background: var(--b9-surface-muted);
    color: var(--b9-text);
    width: 100%;
    outline: none;
    transition: border-color 0.12s, background 0.12s;
}

.adm-input:focus[b-v8k9ru9ayu] { border-color: var(--b9-primary); background: var(--b9-card-bg); }
.adm-input[b-v8k9ru9ayu]::placeholder { color: var(--b9-text-soft); }

/* ── Alerts ─────────────────────────────────────────────── */
.adm-alert[b-v8k9ru9ayu] {
    display: flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 500;
    border-radius: 8px;
    padding: 0.5rem 0.875rem;
    margin-bottom: 0.875rem;
    border: 1px solid;
}

.adm-alert-success[b-v8k9ru9ayu] { background: var(--b9-success-soft); border-color: var(--b9-success); color: var(--b9-success-text); }
.adm-alert-danger[b-v8k9ru9ayu]  { background: var(--b9-danger-soft);  border-color: var(--b9-danger);  color: var(--b9-danger-text); }
.adm-alert-warning[b-v8k9ru9ayu] { background: var(--b9-warning-soft); border-color: var(--b9-warning); color: var(--b9-warning-text); }
.adm-alert-info[b-v8k9ru9ayu]    { background: var(--b9-surface-muted); border-color: var(--b9-border); color: var(--b9-text-muted); }

/* ── Empty state ────────────────────────────────────────── */
.adm-empty[b-v8k9ru9ayu] {
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--b9-text-muted);
    font-size: 0.85rem;
}

/* ── Table ──────────────────────────────────────────────── */
.etable-wrap[b-v8k9ru9ayu] { overflow-x: auto; }

.etable[b-v8k9ru9ayu] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
}

.etable thead th[b-v8k9ru9ayu] {
    padding: 0.55rem 1rem;
    text-align: left;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--b9-text-muted);
    background: var(--b9-surface-muted);
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
}

.etable thead th:last-child[b-v8k9ru9ayu] { text-align: right; }

.etable tbody tr[b-v8k9ru9ayu] {
    border-bottom: 1px solid var(--b9-border);
    transition: background 0.1s;
}

.etable tbody tr:last-child[b-v8k9ru9ayu] { border-bottom: none; }
.etable tbody tr:hover[b-v8k9ru9ayu] { background: var(--b9-surface-muted); }

.etable td[b-v8k9ru9ayu] {
    padding: 0.65rem 1rem;
    color: var(--b9-text);
    vertical-align: middle;
}

.etd-name[b-v8k9ru9ayu] { min-width: 160px; font-weight: 600; }

.etd-sub[b-v8k9ru9ayu] {
    display: block;
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-top: 0.1rem;
}

.etd-email[b-v8k9ru9ayu] { color: var(--b9-text-muted); font-size: 0.8rem; }

.etd-actions[b-v8k9ru9ayu] { text-align: right; white-space: nowrap; }

.etd-empty[b-v8k9ru9ayu] {
    text-align: center;
    padding: 2rem;
    color: var(--b9-text-muted);
    font-size: 0.85rem;
}

/* ── Status badges ──────────────────────────────────────── */
.estatus[b-v8k9ru9ayu] {
    display: inline-flex;
    align-items: center;
    font-size: 0.69rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.estatus-open[b-v8k9ru9ayu]      { background: var(--b9-success-soft);  color: var(--b9-success-text); }
.estatus-draft[b-v8k9ru9ayu]     { background: var(--b9-surface-muted); color: var(--b9-text-soft); }
.estatus-pastdue[b-v8k9ru9ayu]   { background: var(--b9-warning-soft);  color: var(--b9-warning-text); }

/* ── Plan audit list ────────────────────────────────────── */
.adm-audit-list[b-v8k9ru9ayu] { list-style: none; margin: 0.25rem 0 0; padding: 0; }

.adm-audit-item[b-v8k9ru9ayu] {
    display: flex;
    gap: 0.75rem;
    align-items: baseline;
    padding: 0.3125rem 0;
    font-size: 0.8125rem;
    border-bottom: 1px solid var(--b9-border-subtle, rgba(255,255,255,0.06));
}

.adm-audit-item:last-child[b-v8k9ru9ayu] { border-bottom: none; }

.adm-audit-when[b-v8k9ru9ayu] {
    flex: 0 0 auto;
    color: var(--b9-text-muted);
    font-variant-numeric: tabular-nums;
    min-width: 6.5rem;
}

.adm-audit-what[b-v8k9ru9ayu] { color: var(--b9-text); }

/* ── Manage-plan modal (mirror of CourseAccounts) ───────── */
.adm-delete-overlay[b-v8k9ru9ayu] {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(6px);
}

.adm-delete-modal[b-v8k9ru9ayu] {
    position: relative;
    width: min(620px, 100%);
    max-height: min(86vh, 920px);
    overflow: auto;
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 16px;
    box-shadow: var(--b9-card-shadow-xl);
    color: var(--b9-text);
}

.adm-delete-modal-header[b-v8k9ru9ayu],
.adm-delete-modal-footer[b-v8k9ru9ayu],
.adm-delete-modal-body[b-v8k9ru9ayu] { padding: 1rem 1.1rem; }

.adm-delete-modal-header[b-v8k9ru9ayu] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px solid var(--b9-border);
}

.adm-delete-modal-kicker[b-v8k9ru9ayu] {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--b9-text-soft);
    margin-bottom: 0.25rem;
}

.adm-delete-modal-title[b-v8k9ru9ayu] {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--b9-text);
}

.adm-delete-close[b-v8k9ru9ayu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    border: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
    color: var(--b9-text-muted);
}

.adm-delete-close:hover[b-v8k9ru9ayu] { color: var(--b9-text); background: var(--b9-card-bg); }

.adm-delete-modal-copy[b-v8k9ru9ayu] {
    margin: 0 0 1rem;
    color: var(--b9-text-muted);
    line-height: 1.55;
}

.adm-delete-summary-item[b-v8k9ru9ayu] {
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    padding: 0.75rem 0.8rem;
    background: color-mix(in srgb, var(--b9-surface-muted) 76%, var(--b9-card-bg));
}

.adm-delete-summary-label[b-v8k9ru9ayu] {
    display: block;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-text-soft);
    margin-bottom: 0.25rem;
}

.adm-delete-summary-item strong[b-v8k9ru9ayu] {
    font-size: 0.92rem;
    color: var(--b9-text);
    word-break: break-word;
}

.adm-delete-form[b-v8k9ru9ayu] { display: grid; gap: 0.75rem; }

.adm-delete-label[b-v8k9ru9ayu] { font-size: 0.8rem; font-weight: 700; color: var(--b9-text); }

.adm-delete-input[b-v8k9ru9ayu] {
    background: var(--b9-surface-muted);
    border-color: var(--b9-border);
    color: var(--b9-text);
}

.adm-delete-input[b-v8k9ru9ayu]::placeholder { color: var(--b9-text-soft); }

.adm-delete-input:focus[b-v8k9ru9ayu] {
    background: var(--b9-card-bg);
    border-color: var(--b9-primary);
    box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--b9-primary) 18%, transparent);
}

.adm-delete-modal-footer[b-v8k9ru9ayu] {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    border-top: 1px solid var(--b9-border);
}

@media (max-width: 767px) {
    .adm-page[b-v8k9ru9ayu] { padding: 1rem 1rem 2rem; }
    .adm-delete-modal[b-v8k9ru9ayu] { max-height: 90vh; }
    .adm-delete-modal-footer[b-v8k9ru9ayu] { flex-direction: column-reverse; }
    .adm-delete-modal-footer .btn[b-v8k9ru9ayu] { width: 100%; }
}
/* /Components/Pages/Admin/Setup.razor.rz.scp.css */
/* Extracted inline styles (Blazor audit Batch G). */
.as-card-sm[b-568x6rn7zb] { max-width: 420px; }
.as-card-md[b-568x6rn7zb] { max-width: 440px; }
.as-shell[b-568x6rn7zb] { background: var(--bg-surface); }
.as-card-lg[b-568x6rn7zb] {
    max-width: 460px;
    width: 100%;
    background: var(--bg-elevated);
    border-color: var(--border-subtle);
}
/* /Components/Pages/Admin/Users.razor.rz.scp.css */
.adm-page[b-2ak3nulvul] {
    padding: 1.5rem 1.75rem 3rem;
    max-width: 1100px;
}

/* ── Search row ─────────────────────────────────────────────────────────── */

.adm-search-row[b-2ak3nulvul] {
    display: flex;
    flex-wrap: wrap; /* buttons drop to a second row on narrow phones */
    gap: 0.5rem;
    padding: 0.75rem 1rem 1rem;
}

.adm-search-row .adm-input[b-2ak3nulvul] {
    flex: 1 1 10rem;
    min-width: 0;
}

/* ── Empty state ────────────────────────────────────────────────────────── */

.adm-empty[b-2ak3nulvul] {
    padding: 2.5rem 1rem;
    text-align: center;
    color: var(--text-muted);
}

/* ── User status badges ─────────────────────────────────────────────────── */

.usr-badge[b-2ak3nulvul] {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
}

.usr-badge-ok[b-2ak3nulvul] {
    background: var(--success-soft);
    color: var(--success-text);
}

.usr-badge-warn[b-2ak3nulvul] {
    background: var(--warning-soft);
    color: var(--warning-text);
}

.usr-badge-danger[b-2ak3nulvul] {
    background: var(--danger-soft);
    color: var(--danger-text);
}

.usr-badge-admin[b-2ak3nulvul] {
    background: var(--brand-soft);
    color: var(--brand-text);
}

/* ── Delete confirmation modal ──────────────────────────────────────────── */

.adm-modal-backdrop[b-2ak3nulvul] {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.adm-modal[b-2ak3nulvul] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: 12px;
    width: 100%;
    max-width: 420px;
    box-shadow: 0 20px 40px rgba(0,0,0,0.35);
}

.adm-modal-header[b-2ak3nulvul] {
    padding: 1rem 1.25rem 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-default);
}

.adm-modal-body[b-2ak3nulvul] {
    padding: 1rem 1.25rem;
    color: var(--text-secondary);
}

.adm-modal-footer[b-2ak3nulvul] {
    padding: 0.75rem 1.25rem 1rem;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}
/* /Components/Pages/Billing/BillingPortal.razor.rz.scp.css */
/* ================================================================
   BILLING PORTAL PAGE  (/billing/manage)
   ================================================================ */

/* ── Main card ───────────────────────────────────────────────── */

.bbp-card[b-1chk5hk3n7] {
    background: var(--b9-card-bg, #0f172a);
    border: 1px solid var(--b9-card-border, rgba(255, 255, 255, 0.08));
    border-radius: 12px;
    overflow: hidden;
}

.bbp-card-header[b-1chk5hk3n7] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--b9-border, rgba(255, 255, 255, 0.06));
}

.bbp-section-label[b-1chk5hk3n7] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #64748b);
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.bbp-plan-name[b-1chk5hk3n7] {
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--text-primary, #f1f5f9);
}

/* ── Status badges ───────────────────────────────────────────── */

.bbp-status-badge[b-1chk5hk3n7] {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.25rem 0.625rem;
    border-radius: 999px;
    white-space: nowrap;
    flex-shrink: 0;
}

.bbp-badge-active[b-1chk5hk3n7] {
    background: rgba(22, 163, 74, 0.12);
    border: 1px solid rgba(22, 163, 74, 0.3);
    color: var(--b9-primary-text);
}

.bbp-badge-trial[b-1chk5hk3n7] {
    background: var(--b9-info-soft);
    border: 1px solid var(--b9-info-text);
    color: var(--b9-info-text);
}

.bbp-badge-pastdue[b-1chk5hk3n7] {
    background: var(--b9-warning-soft);
    border: 1px solid var(--b9-warning-text);
    color: var(--b9-warning-text);
}

.bbp-badge-canceled[b-1chk5hk3n7] {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: var(--text-muted, #64748b);
}

/* ── Detail rows ─────────────────────────────────────────────── */

.bbp-details[b-1chk5hk3n7] {
    padding: 1rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.bbp-detail-row[b-1chk5hk3n7] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
}

.bbp-detail-label[b-1chk5hk3n7] {
    color: var(--text-secondary);
    min-width: 110px;
    flex-shrink: 0;
}

.bbp-detail-value[b-1chk5hk3n7] {
    color: var(--text-secondary, #94a3b8);
}

.bbp-urgent[b-1chk5hk3n7] {
    color: var(--b9-danger-text);
    font-weight: 600;
}

.bbp-mono[b-1chk5hk3n7] {
    font-family: ui-monospace, monospace;
    font-size: 0.8rem;
}

.bbp-detail-warning[b-1chk5hk3n7] {
    color: var(--b9-warning-text);
    font-size: 0.875rem;
    align-items: flex-start;
}

/* ── Action buttons ──────────────────────────────────────────── */

.bbp-actions[b-1chk5hk3n7] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.bbp-btn-primary[b-1chk5hk3n7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--touch-target-min, 48px);
    padding: 0.625rem 1.125rem;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.15s;
    width: fit-content;
}

.bbp-btn-primary:hover[b-1chk5hk3n7] {
    background: var(--b9-primary-hover);
    color: #fff;
}

.bbp-btn-secondary[b-1chk5hk3n7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    min-height: var(--touch-target-min, 48px);
    padding: 0.5625rem 1.125rem;
    background: transparent;
    border: 1px solid var(--b9-border-strong);
    color: var(--text-primary);
    font-size: 0.9375rem;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    width: fit-content;
}

.bbp-btn-secondary:hover:not(:disabled)[b-1chk5hk3n7] {
    border-color: var(--b9-primary-text);
    color: var(--b9-primary-text);
}

.bbp-btn-secondary:disabled[b-1chk5hk3n7] {
    cursor: default;
    opacity: 0.6;
}

.bbp-soon-tag[b-1chk5hk3n7] {
    font-size: 0.7rem;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 4px;
    padding: 0.1rem 0.35rem;
    margin-left: 0.25rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* ── Help row ────────────────────────────────────────────────── */

.bbp-help-row[b-1chk5hk3n7] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
}

.bbp-help-icon[b-1chk5hk3n7] {
    color: var(--text-muted, #64748b);
    flex-shrink: 0;
}

.bbp-help-text[b-1chk5hk3n7] {
    color: var(--text-muted, #64748b);
}

.bbp-help-link[b-1chk5hk3n7] {
    color: var(--b9-primary-text);
    text-decoration: none;
    font-weight: 500;
}

.bbp-help-link:hover[b-1chk5hk3n7] {
    text-decoration: underline;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.bpt-container[b-1chk5hk3n7] { max-width: 680px; }
/* /Components/Pages/Billing/PlanComparison.razor.rz.scp.css */
/* ================================================================
   PLAN COMPARISON PAGE  (/billing/plans)
   ================================================================ */

/* ── Reason / trial banners ─────────────────────────────────── */

.bpc-reason-banner[b-rfzrm1wurx] {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    background: rgba(59, 130, 246, 0.08);
    border: 1px solid rgba(59, 130, 246, 0.25);
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--text-secondary, #94a3b8);
}

.bpc-trial-notice[b-rfzrm1wurx] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1rem;
    background: rgba(22, 163, 74, 0.08);
    border: 1px solid rgba(22, 163, 74, 0.25);
    border-radius: 8px;
    font-size: 0.9rem;
    color: var(--text-secondary, #94a3b8);
}

/* ── Card grid ───────────────────────────────────────────────── */

.bpc-grid[b-rfzrm1wurx] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1.25rem;
    align-items: start;
}

.bpc-card[b-rfzrm1wurx] {
    position: relative;
    background: var(--b9-card-bg, #0f172a);
    border: 1px solid var(--b9-card-border, rgba(255, 255, 255, 0.08));
    border-radius: 14px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0;
}

.bpc-card-current[b-rfzrm1wurx] {
    border-color: var(--b9-primary, #16a34a);
}

.bpc-card-featured[b-rfzrm1wurx] {
    border-color: rgba(22, 163, 74, 0.4);
}

/* ── Badges ─────────────────────────────────────────────────── */

.bpc-popular-badge[b-rfzrm1wurx] {
    position: absolute;
    top: -0.75rem;
    left: 50%;
    transform: translateX(-50%);
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.2rem 0.75rem;
    border-radius: 999px;
    white-space: nowrap;
}

.bpc-current-badge[b-rfzrm1wurx] {
    position: absolute;
    top: -0.75rem;
    right: 1rem;
    background: rgba(22, 163, 74, 0.15);
    border: 1px solid rgba(22, 163, 74, 0.4);
    color: var(--b9-primary-text);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: 0.2rem 0.625rem;
    border-radius: 999px;
    white-space: nowrap;
}

/* ── Card header ─────────────────────────────────────────────── */

.bpc-card-header[b-rfzrm1wurx] {
    margin-bottom: 1.25rem;
}

.bpc-plan-name[b-rfzrm1wurx] {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #64748b);
    margin-bottom: 0.375rem;
}

.bpc-price[b-rfzrm1wurx] {
    font-size: 2rem;
    font-weight: 800;
    color: var(--text-primary, #f1f5f9);
    line-height: 1.1;
    margin-bottom: 0.375rem;
}

.bpc-price-period[b-rfzrm1wurx] {
    font-size: 0.9375rem;
    font-weight: 400;
    color: var(--text-muted, #64748b);
}

.bpc-plan-tagline[b-rfzrm1wurx] {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
    margin: 0;
}

/* ── Feature list ────────────────────────────────────────────── */

.bpc-features[b-rfzrm1wurx] {
    list-style: none;
    padding: 0;
    margin: 0 0 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
}

.bpc-features li[b-rfzrm1wurx] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.4;
}

.bpc-feature-off[b-rfzrm1wurx] {
    opacity: 0.45;
}

.bpc-check[b-rfzrm1wurx] {
    color: var(--b9-primary-text);
    flex-shrink: 0;
    margin-top: 1px;
}

.bpc-x[b-rfzrm1wurx] {
    color: var(--text-muted, #64748b);
    flex-shrink: 0;
    margin-top: 1px;
}

/* ── Footer / CTA ────────────────────────────────────────────── */

.bpc-card-footer[b-rfzrm1wurx] {
    margin-top: auto;
}

.bpc-btn-upgrade[b-rfzrm1wurx] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: var(--touch-target-min, 48px);
    text-align: center;
    padding: 0.625rem 1rem;
    border: 1px solid var(--b9-primary, #16a34a);
    color: var(--b9-primary-text);
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.bpc-btn-upgrade:hover[b-rfzrm1wurx] {
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
}

.bpc-btn-upgrade-primary[b-rfzrm1wurx] {
    background: var(--b9-primary, #16a34a);
    color: #fff;
    border-color: var(--b9-primary, #16a34a);
}

.bpc-btn-upgrade-primary:hover[b-rfzrm1wurx] {
    background: var(--b9-primary-hover);
    color: #fff;
}

.bpc-btn-current[b-rfzrm1wurx] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: var(--touch-target-min, 48px);
    text-align: center;
    padding: 0.625rem 1rem;
    background: rgba(22, 163, 74, 0.08);
    border: 1px solid rgba(22, 163, 74, 0.25);
    color: var(--b9-primary-text);
    font-weight: 600;
    font-size: 0.9rem;
    border-radius: 8px;
}

.bpc-btn-disabled[b-rfzrm1wurx] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: var(--touch-target-min, 48px);
    text-align: center;
    padding: 0.625rem 1rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--b9-border, rgba(255, 255, 255, 0.08));
    color: var(--text-muted, #64748b);
    font-size: 0.9rem;
    border-radius: 8px;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.bp-container[b-rfzrm1wurx] { max-width: 900px; }
/* /Components/Pages/Billing/UpgradePage.razor.rz.scp.css */
/* ================================================================
   UPGRADE PAGE  (/billing/upgrade)
   ================================================================ */

/* ── Plan summary card ──────────────────────────────────────── */

.bup-plan-card[b-fg2eumzrvn] {
    background: var(--b9-card-bg, #0f172a);
    border: 1px solid var(--b9-card-border, rgba(255, 255, 255, 0.08));
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
}

.bup-plan-header[b-fg2eumzrvn] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.bup-plan-label[b-fg2eumzrvn] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #64748b);
    font-weight: 600;
    margin-bottom: 0.25rem;
}

.bup-plan-name[b-fg2eumzrvn] {
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--text-primary, #f1f5f9);
}

.bup-plan-price[b-fg2eumzrvn] {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--b9-primary-text);
    white-space: nowrap;
}

.bup-price-period[b-fg2eumzrvn] {
    font-size: 0.9375rem;
    font-weight: 400;
    color: var(--text-muted, #64748b);
}

.bup-plan-bullets[b-fg2eumzrvn] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
}

.bup-plan-bullets li[b-fg2eumzrvn] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    color: var(--text-secondary, #94a3b8);
}

.bup-check[b-fg2eumzrvn] {
    color: var(--b9-primary-text);
    flex-shrink: 0;
}

/* ── Coming soon block ──────────────────────────────────────── */

.bup-coming-soon[b-fg2eumzrvn] {
    background: rgba(255, 255, 255, 0.025);
    border: 1px dashed var(--b9-border, rgba(255, 255, 255, 0.12));
    border-radius: 12px;
    padding: 2rem 1.5rem;
    text-align: center;
}

.bup-coming-icon[b-fg2eumzrvn] {
    font-size: 2.25rem;
    color: var(--text-muted, #64748b);
    display: block;
    margin-bottom: 0.875rem;
}

.bup-coming-title[b-fg2eumzrvn] {
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin-bottom: 0.5rem;
}

.bup-coming-body[b-fg2eumzrvn] {
    font-size: 0.9rem;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.6;
    margin-bottom: 1.25rem;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}

/* ── Stripe checkout block ───────────────────────────────────── */

.bup-checkout-block[b-fg2eumzrvn] {
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--b9-border, rgba(255, 255, 255, 0.1));
    border-radius: 12px;
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.bup-checkout-info[b-fg2eumzrvn] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.bup-shield-icon[b-fg2eumzrvn] {
    font-size: 1.5rem;
    color: var(--b9-primary-text);
    flex-shrink: 0;
    margin-top: 2px;
}

.bup-checkout-label[b-fg2eumzrvn] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
    margin-bottom: 0.25rem;
}

.bup-checkout-sub[b-fg2eumzrvn] {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
    line-height: 1.5;
}

.bup-checkout-btn[b-fg2eumzrvn] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.75rem 1.25rem;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s;
}

.bup-checkout-btn:hover:not(:disabled)[b-fg2eumzrvn] {
    background: #15803d;
}

.bup-checkout-btn:disabled[b-fg2eumzrvn] {
    opacity: 0.7;
    cursor: not-allowed;
}

.bup-coming-note[b-fg2eumzrvn] {
    font-size: 0.8rem;
    color: var(--text-muted, #64748b);
    margin: 0;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.up-container[b-fg2eumzrvn] { max-width: 600px; }
/* /Components/Pages/Casual/Play.razor.rz.scp.css */
.play-hub[b-o1eub75upi] {
    max-width: 640px;
    margin: 0 auto;
    padding: 16px 16px 96px;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* The page's one heading. Sized to match the other player hubs (.mlg-title on My Leagues),
   so "Play" reads the same weight as "My Leagues" and "My Schedule". */
.ph-title[b-o1eub75upi] {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--text-primary, #F1F5F9);
}

/* Handicap card */
.ph-hcap[b-o1eub75upi] {
    background: var(--bg-elevated, #111827);
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    border-radius: 16px;
    padding: 22px 20px;
    text-align: center;
}

.ph-hcap-label[b-o1eub75upi] {
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted, #94A3B8);
}

.ph-hcap-value[b-o1eub75upi] {
    font-size: 3.2rem;
    font-weight: 800;
    line-height: 1.05;
    margin: 4px 0 2px;
    color: var(--text-primary, #F1F5F9);
}

.ph-hcap-sub[b-o1eub75upi] {
    font-size: 0.9rem;
    color: var(--text-secondary, #CBD5E1);
}

/* The standing disclosure. Quiet, but always present — see HandicapCopy.Disclosure. */
.ph-hcap-note[b-o1eub75upi] {
    font-size: 0.75rem;
    color: var(--text-muted, #94A3B8);
    margin-top: 6px;
}

/* Stats link — quiet secondary action under the handicap card */
.ph-stats-link[b-o1eub75upi] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    margin-top: -6px;
    border-radius: 12px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    background: var(--bg-surface, #0F172A);
    color: var(--text-secondary, #CBD5E1);
    font-weight: 600;
    text-decoration: none;
}

.ph-stats-link:hover[b-o1eub75upi] {
    border-color: var(--border-strong, rgba(255,255,255,0.20));
    color: var(--text-primary, #F1F5F9);
}

/* Resume card — surfaces an in-progress round so it's never lost */
.ph-resume[b-o1eub75upi] {
    background: var(--brand-soft, rgba(29,78,216,0.12));
    border: 1px solid var(--brand, #1D4ED8);
    border-radius: 14px;
    padding: 16px 18px;
}

.ph-resume-label[b-o1eub75upi] {
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--brand-text, #93C5FD);
    display: flex;
    align-items: center;
    gap: 6px;
}

.ph-resume-course[b-o1eub75upi] {
    font-size: 1.15rem;
    font-weight: 800;
    color: var(--text-primary, #F1F5F9);
    margin-top: 4px;
}

.ph-resume-sub[b-o1eub75upi] {
    font-size: 0.86rem;
    color: var(--text-secondary, #CBD5E1);
    margin-bottom: 12px;
}

.ph-resume-actions[b-o1eub75upi] {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ph-resume-continue[b-o1eub75upi] {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    border-radius: 12px;
    background: var(--brand, #1D4ED8);
    color: #ffffff;
    font-weight: 700;
    text-decoration: none;
}

.ph-resume-continue:hover[b-o1eub75upi] { background: var(--brand-hover, #2563EB); }

.ph-resume-discard[b-o1eub75upi] {
    min-height: 48px;
    padding: 0 18px;
    border-radius: 12px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: transparent;
    color: var(--text-secondary, #CBD5E1);
    font-weight: 600;
    cursor: pointer;
}

.ph-resume-discard:hover[b-o1eub75upi] { border-color: var(--border-strong, rgba(255,255,255,0.20)); }
.ph-resume-discard:disabled[b-o1eub75upi] { opacity: 0.5; cursor: default; }

/* Start button — the hero action */
.ph-start[b-o1eub75upi] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 60px;
    border: none;
    border-radius: 14px;
    background: var(--brand, #1D4ED8);
    color: #ffffff;
    font-size: 1.2rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 6px 20px var(--brand-ring, rgba(29,78,216,0.30));
}

.ph-start:hover[b-o1eub75upi] { background: var(--brand-hover, #2563EB); }
.ph-start:active[b-o1eub75upi] { transform: translateY(1px); }
.ph-start i[b-o1eub75upi] { font-size: 1.3rem; }

/* Recent rounds */
.ph-recent-title[b-o1eub75upi] {
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted, #94A3B8);
    margin: 6px 2px;
}

.ph-empty[b-o1eub75upi] {
    background: var(--bg-surface, #0F172A);
    border: 1px dashed var(--border-default, rgba(255,255,255,0.12));
    border-radius: 12px;
    padding: 22px 16px;
    text-align: center;
    color: var(--text-secondary, #CBD5E1);
}

.ph-round[b-o1eub75upi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--bg-surface, #0F172A);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 8px;
    text-decoration: none;
    color: inherit;
    min-height: 60px;
}

.ph-round:hover[b-o1eub75upi] { border-color: var(--border-strong, rgba(255,255,255,0.20)); }

/* A round that does not feed the handicap reads as present but set aside — dimmed, never hidden.
   The player still played it and the card is still theirs to open. */
.ph-round-off .ph-round-gross[b-o1eub75upi],
.ph-round-off .ph-round-course[b-o1eub75upi] { color: var(--text-secondary, #CBD5E1); }

.ph-round-note[b-o1eub75upi] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
    color: var(--text-muted, #94A3B8);
    margin-top: 4px;
}

.ph-round-course[b-o1eub75upi] {
    font-weight: 600;
    color: var(--text-primary, #F1F5F9);
}

.ph-round-date[b-o1eub75upi] {
    font-size: 0.84rem;
    color: var(--text-muted, #94A3B8);
}

.ph-round-score[b-o1eub75upi] {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.ph-round-gross[b-o1eub75upi] {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--text-primary, #F1F5F9);
}

.ph-round-vspar[b-o1eub75upi] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--text-secondary, #CBD5E1);
}

.ph-clubs[b-o1eub75upi] { margin-top: 6px; }
.ph-club[b-o1eub75upi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--bg-surface, #0F172A);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
    padding: 12px 16px;
    margin-bottom: 8px;
}
.ph-club-name[b-o1eub75upi] { font-weight: 600; color: var(--text-primary, #F1F5F9); }
.ph-club-dist[b-o1eub75upi] { font-size: 1.2rem; font-weight: 800; color: var(--text-primary, #F1F5F9); }
.ph-club-unit[b-o1eub75upi] { font-size: 0.78rem; font-weight: 500; color: var(--text-muted, #94A3B8); }

/* ── Player+ hosted games entry ───────────────────────────────────────────── */

.ph-games[b-o1eub75upi] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    padding: 14px 16px;
    text-decoration: none;
    min-height: 64px;
    margin-bottom: 4px;
}
.ph-games:hover[b-o1eub75upi] { border-color: var(--brand-soft); }

.ph-games-title[b-o1eub75upi] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: var(--text-primary);
    font-size: 1.02rem;
}

.ph-games-sub[b-o1eub75upi] { color: var(--text-muted); font-size: 0.9rem; margin-top: 2px; }

.ph-games-live[b-o1eub75upi] {
    flex: 0 0 auto;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    background: var(--success-soft);
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    padding: 3px 10px;
    border-radius: 999px;
}

.ph-games-chev[b-o1eub75upi] { color: var(--text-muted); }
/* /Components/Pages/Casual/PlayScorecard.razor.rz.scp.css */
.sc-msg[b-bspfjoadd5] {
    max-width: 480px;
    margin: 40px auto;
    text-align: center;
    color: var(--text-secondary, #CBD5E1);
}
.sc-link[b-bspfjoadd5], .sc-msg a[b-bspfjoadd5] { color: var(--brand-text, #93C5FD); }

.scorecard[b-bspfjoadd5] {
    max-width: 560px;
    margin: 0 auto;
    padding: 8px 16px 96px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.sc-top[b-bspfjoadd5] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
}
.sc-exit[b-bspfjoadd5] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    color: var(--text-secondary, #CBD5E1);
    text-decoration: none;
    background: var(--bg-surface, #0F172A);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}
.sc-course[b-bspfjoadd5] { font-weight: 600; color: var(--text-primary, #F1F5F9); }

/* Hole header with prev/next */
.sc-hole[b-bspfjoadd5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.sc-hole-head[b-bspfjoadd5] { text-align: center; flex: 1; }
.sc-hole-no[b-bspfjoadd5] { font-size: 1.6rem; font-weight: 800; color: var(--text-primary, #F1F5F9); }
.sc-hole-meta[b-bspfjoadd5] { font-size: 0.9rem; color: var(--text-muted, #94A3B8); }

.sc-nav[b-bspfjoadd5] {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: var(--bg-surface, #0F172A);
    color: var(--text-primary, #F1F5F9);
    font-size: 1.3rem;
    cursor: pointer;
}
.sc-nav:disabled[b-bspfjoadd5] { opacity: 0.35; }

/* The score — one tap, not a stepper.
   The whole panel is the target rather than a small pill: on this card the number IS the control,
   and a player entering a score one-handed on a green should not have to aim. */
.sc-score-open[b-bspfjoadd5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    width: 100%;
    background: var(--bg-elevated, #111827);
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    border-radius: 20px;
    padding: 18px;
    cursor: pointer;
    color: inherit;
    min-height: 96px;          /* comfortably past the 48px floor, one-handed */
}
.sc-score-open:active[b-bspfjoadd5] { transform: translateY(1px); }
.sc-score-open:focus-visible[b-bspfjoadd5] {
    outline: 2px solid var(--brand, #1D4ED8);
    outline-offset: 2px;
}
.sc-score-hint[b-bspfjoadd5] {
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--text-muted, #94A3B8);
}

.sc-score[b-bspfjoadd5] { text-align: center; flex: 1; }
.sc-score-num[b-bspfjoadd5] { font-size: 4rem; font-weight: 800; line-height: 1; color: var(--text-primary, #F1F5F9); }
.sc-score-rel[b-bspfjoadd5] { font-size: 1rem; color: var(--text-muted, #94A3B8); margin-top: 2px; }

/* Details toggle + stats */
.sc-details-toggle[b-bspfjoadd5] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 48px;
    border: 1px dashed var(--border-default, rgba(255,255,255,0.12));
    border-radius: 12px;
    background: transparent;
    color: var(--text-secondary, #CBD5E1);
    font-size: 0.95rem;
    cursor: pointer;
}

.sc-stats[b-bspfjoadd5] {
    background: var(--bg-surface, #0F172A);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
    padding: 8px 14px;
}
.sc-stat-row[b-bspfjoadd5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}
.sc-stat-row:last-child[b-bspfjoadd5] { border-bottom: none; }
.sc-stat-label[b-bspfjoadd5] { color: var(--text-secondary, #CBD5E1); font-size: 0.96rem; }

.sc-mini-stepper[b-bspfjoadd5] { display: flex; align-items: center; gap: 12px; }
.sc-mini[b-bspfjoadd5] {
    width: 44px; height: 44px;
    border-radius: 10px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: var(--bg-raised, #1E293B);
    color: var(--text-primary, #F1F5F9);
    font-size: 1.2rem; cursor: pointer;
}
.sc-mini-val[b-bspfjoadd5] { min-width: 24px; text-align: center; font-weight: 700; color: var(--text-primary, #F1F5F9); }

.sc-fairway[b-bspfjoadd5] { display: flex; gap: 8px; }
.sc-fw[b-bspfjoadd5] {
    width: 48px; height: 44px;
    border-radius: 10px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: var(--bg-raised, #1E293B);
    color: var(--text-secondary, #CBD5E1);
    cursor: pointer;
}
.sc-fw.on[b-bspfjoadd5] { background: var(--brand-soft, rgba(29,78,216,0.15)); border-color: var(--brand, #1D4ED8); color: var(--brand-text, #93C5FD); }

.sc-gir[b-bspfjoadd5] {
    width: 48px; height: 44px;
    border-radius: 10px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: var(--bg-raised, #1E293B);
    color: var(--text-secondary, #CBD5E1);
    font-size: 1.2rem; cursor: pointer;
}
.sc-gir.on[b-bspfjoadd5] { background: var(--brand-soft, rgba(29,78,216,0.15)); border-color: var(--brand, #1D4ED8); color: var(--brand-text, #93C5FD); }

.sc-shot-row[b-bspfjoadd5] { gap: 10px; }
.sc-club[b-bspfjoadd5] {
    flex: 1;
    min-height: 44px;
    border-radius: 10px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: var(--bg-raised, #1E293B);
    color: var(--text-primary, #F1F5F9);
    padding: 0 10px;
}
.sc-measure[b-bspfjoadd5] {
    min-height: 44px;
    padding: 0 16px;
    border: none;
    border-radius: 10px;
    background: var(--brand, #1D4ED8);
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.sc-measure:disabled[b-bspfjoadd5] { opacity: 0.6; }
.sc-shot-result[b-bspfjoadd5] { padding: 8px 2px; color: var(--brand-text, #93C5FD); font-weight: 600; }

/* Distance to green — a primary on-course readout */
.sc-green[b-bspfjoadd5] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 6px 0 2px;
}
.sc-green-btn[b-bspfjoadd5] {
    min-height: 48px;
    padding: 0 18px;
    border: 1px solid var(--brand, #1D4ED8);
    border-radius: 12px;
    background: var(--brand-soft, rgba(29,78,216,0.15));
    color: var(--brand-text, #93C5FD);
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.sc-green-btn:disabled[b-bspfjoadd5] { opacity: 0.6; cursor: default; }
.sc-green-readout[b-bspfjoadd5] {
    font-size: 1.05rem;
    font-weight: 800;
    color: var(--text-primary, #F1F5F9);
    text-align: center;
}
.sc-green-map[b-bspfjoadd5] {
    min-height: 44px;
    padding: 0 16px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    border-radius: 10px;
    background: transparent;
    color: var(--text-secondary, #CBD5E1);
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.sc-green-map:hover[b-bspfjoadd5] { border-color: var(--brand, #1D4ED8); color: var(--brand-text, #93C5FD); }
.sc-green-map:disabled[b-bspfjoadd5] { opacity: 0.6; cursor: default; }

/* Footer */
.sc-foot[b-bspfjoadd5] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 4px;
}
.sc-running[b-bspfjoadd5] { color: var(--text-secondary, #CBD5E1); font-size: 1rem; }
.sc-running strong[b-bspfjoadd5] { color: var(--text-primary, #F1F5F9); font-size: 1.2rem; }

.sc-next[b-bspfjoadd5], .sc-finish[b-bspfjoadd5] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 52px;
    padding: 0 22px;
    border: none;
    border-radius: 12px;
    background: var(--brand, #1D4ED8);
    color: #fff;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
}
.sc-finish[b-bspfjoadd5] { background: var(--success, #16A34A); }
.sc-next:disabled[b-bspfjoadd5], .sc-finish:disabled[b-bspfjoadd5] { opacity: 0.6; }

/* Rule 3.3 "I picked up". A single tap, never a stepper — score entry on this app is tap-once.
   Sized to the 48px touch target the UX rules require. */
.sc-pickup[b-bspfjoadd5] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 48px;
    margin-top: 10px;
    padding: 0 16px;
    border-radius: 999px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.12));
    background: transparent;
    color: var(--text-secondary, #CBD5E1);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
}

.sc-pickup:hover[b-bspfjoadd5] { border-color: var(--border-strong, rgba(255,255,255,0.24)); }

.sc-pickup-on[b-bspfjoadd5] {
    background: var(--brand-soft, rgba(37, 99, 235, 0.16));
    border-color: var(--brand, #2563EB);
    color: var(--text-primary, #F1F5F9);
}
/* /Components/Pages/Casual/PlayStart.razor.rz.scp.css */
.play-start[b-0vlubmcop7] {
    max-width: 640px;
    margin: 0 auto;
    padding: 12px 16px 96px;
}

.ps-back[b-0vlubmcop7] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--text-secondary, #CBD5E1);
    text-decoration: none;
    font-size: 0.92rem;
    padding: 8px 0;
}

.ps-title[b-0vlubmcop7] {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--text-primary, #F1F5F9);
    margin: 6px 0 16px;
}

.ps-search[b-0vlubmcop7] {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.ps-search-input[b-0vlubmcop7] {
    flex: 1;
    min-width: 0; /* shrink beside the Search button instead of widening the page */
    min-height: 50px;
    padding: 10px 14px;
    border-radius: 12px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: var(--bg-surface, #0F172A);
    color: var(--text-primary, #F1F5F9);
    font-size: 1.05rem;
}

.ps-search-btn[b-0vlubmcop7] {
    min-height: 50px;
    padding: 0 18px;
    border: none;
    border-radius: 12px;
    background: var(--brand, #1D4ED8);
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    cursor: pointer;
}
.ps-search-btn:disabled[b-0vlubmcop7] { opacity: 0.6; }

.ps-empty[b-0vlubmcop7], .ps-note[b-0vlubmcop7] {
    color: var(--text-secondary, #CBD5E1);
    font-size: 0.92rem;
    padding: 10px 2px;
}

.ps-course[b-0vlubmcop7] {
    display: block;
    width: 100%;
    text-align: left;
    background: var(--bg-surface, #0F172A);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 8px;
    cursor: pointer;
    min-height: 56px;
}
.ps-course-on[b-0vlubmcop7] { border-color: var(--brand, #1D4ED8); }

.ps-course-name[b-0vlubmcop7] { font-weight: 600; color: var(--text-primary, #F1F5F9); }
.ps-course-loc[b-0vlubmcop7] { font-size: 0.84rem; color: var(--text-muted, #94A3B8); }

.ps-config[b-0vlubmcop7] {
    background: var(--bg-elevated, #111827);
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    border-radius: 12px;
    padding: 14px 16px 16px;
    margin: 0 0 10px;
}

.ps-config-label[b-0vlubmcop7] {
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted, #94A3B8);
    margin: 10px 0 6px;
}

.ps-chips[b-0vlubmcop7] { display: flex; flex-wrap: wrap; gap: 8px; }

.ps-chip[b-0vlubmcop7] {
    min-height: 44px;
    padding: 8px 16px;
    border-radius: 999px;
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    background: var(--bg-surface, #0F172A);
    color: var(--text-primary, #F1F5F9);
    font-size: 0.95rem;
    cursor: pointer;
}
.ps-chip-on[b-0vlubmcop7] {
    background: var(--brand-soft, rgba(29,78,216,0.15));
    border-color: var(--brand, #1D4ED8);
    color: var(--brand-text, #93C5FD);
    font-weight: 700;
}

.ps-go[b-0vlubmcop7] {
    display: block;
    width: 100%;
    min-height: 54px;
    margin-top: 16px;
    border: none;
    border-radius: 12px;
    background: var(--brand, #1D4ED8);
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
}
.ps-go:disabled[b-0vlubmcop7] { opacity: 0.5; }

.ps-quick-toggle[b-0vlubmcop7] {
    display: block;
    width: 100%;
    margin-top: 14px;
    padding: 12px;
    border: none;
    background: transparent;
    color: var(--text-secondary, #CBD5E1);
    font-size: 0.92rem;
    cursor: pointer;
}
.ps-quick-toggle span[b-0vlubmcop7] { color: var(--brand-text, #93C5FD); font-weight: 600; }

.ps-link[b-0vlubmcop7] {
    border: none;
    background: transparent;
    color: var(--brand-text, #93C5FD);
    font: inherit;
    cursor: pointer;
    padding: 0;
}

/* A refusal the player can act on. The Start button used to do nothing at all when the chosen tee
   had no usable scorecard — no message, no state change, nothing to try next. */
.ps-error[b-0vlubmcop7] {
    background: var(--danger-soft, rgba(239, 68, 68, 0.12));
    border: 1px solid var(--danger-border, rgba(239, 68, 68, 0.35));
    color: var(--text-primary, #F1F5F9);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 0.9rem;
    line-height: 1.45;
    margin: 12px 0 0;
}
/* /Components/Pages/Casual/PlayStats.razor.rz.scp.css */
.stats-page[b-spaq02yeh1] {
    max-width: 640px;
    margin: 0 auto;
    padding: 12px 16px 96px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.stats-back[b-spaq02yeh1] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    align-self: flex-start;
    min-height: 44px;
    color: var(--text-secondary, #CBD5E1);
    text-decoration: none;
    font-weight: 600;
}

.stats-back:hover[b-spaq02yeh1] { color: var(--text-primary, #F1F5F9); }

.stats-title[b-spaq02yeh1] {
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0 2px;
    color: var(--text-primary, #F1F5F9);
}

.stats-empty[b-spaq02yeh1] {
    background: var(--bg-surface, #0F172A);
    border: 1px dashed var(--border-default, rgba(255,255,255,0.12));
    border-radius: 12px;
    padding: 28px 18px;
    text-align: center;
    color: var(--text-secondary, #CBD5E1);
}

/* Handicap + trend hero */
.stats-hero[b-spaq02yeh1] {
    background: var(--bg-elevated, #111827);
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    border-radius: 16px;
    padding: 20px;
    text-align: center;
}

.stats-hero-label[b-spaq02yeh1] {
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted, #94A3B8);
}

.stats-hero-value[b-spaq02yeh1] {
    font-size: 3rem;
    font-weight: 800;
    line-height: 1.05;
    margin: 2px 0 6px;
    color: var(--text-primary, #F1F5F9);
}

.stats-spark[b-spaq02yeh1] {
    width: 100%;
    height: 80px;
    display: block;
    margin: 6px 0 4px;
    overflow: visible;
}

.stats-spark polyline[b-spaq02yeh1] {
    fill: none;
    stroke: var(--brand-text, #93C5FD);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
}

.stats-spark circle[b-spaq02yeh1] {
    fill: var(--brand-text, #93C5FD);
}

.stats-hero-sub[b-spaq02yeh1] {
    font-size: 0.9rem;
    color: var(--text-secondary, #CBD5E1);
}

/* Stat cards */
.stats-grid[b-spaq02yeh1] {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.stat-card[b-spaq02yeh1] {
    background: var(--bg-surface, #0F172A);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
    padding: 16px 14px;
    text-align: center;
}

.stat-value[b-spaq02yeh1] {
    font-size: 1.7rem;
    font-weight: 800;
    color: var(--text-primary, #F1F5F9);
    line-height: 1.1;
}

.stat-label[b-spaq02yeh1] {
    font-size: 0.82rem;
    color: var(--text-muted, #94A3B8);
    margin-top: 4px;
}

.stats-foot[b-spaq02yeh1] {
    text-align: center;
    font-size: 0.8rem;
    color: var(--text-muted, #94A3B8);
}

/* The standing disclosure — see HandicapCopy.Disclosure. Present on every surface showing the number. */
.stats-hero-note[b-spaq02yeh1] {
    font-size: 0.75rem;
    color: var(--text-muted, #94A3B8);
    margin-top: 6px;
}
/* /Components/Pages/Casual/PlaySummary.razor.rz.scp.css */
.su-msg[b-s561r70x26] {
    max-width: 480px;
    margin: 48px auto;
    text-align: center;
    color: var(--text-secondary, #CBD5E1);
}
.su-msg a[b-s561r70x26] { color: var(--brand-text, #93C5FD); }

.summary[b-s561r70x26] {
    max-width: 560px;
    margin: 0 auto;
    padding: 16px 16px 96px;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.su-hero[b-s561r70x26] {
    background: var(--bg-elevated, #111827);
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    border-radius: 18px;
    padding: 24px 20px;
    text-align: center;
}
.su-nice[b-s561r70x26] { font-size: 0.82rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-muted, #94A3B8); }
.su-course[b-s561r70x26] { font-size: 1.25rem; font-weight: 700; color: var(--text-primary, #F1F5F9); margin-top: 2px; }
.su-date[b-s561r70x26] { font-size: 0.88rem; color: var(--text-muted, #94A3B8); }
.su-gross[b-s561r70x26] { font-size: 4rem; font-weight: 800; line-height: 1.05; margin: 10px 0 0; color: var(--text-primary, #F1F5F9); }
.su-line[b-s561r70x26] { display: flex; align-items: center; justify-content: center; gap: 14px; }
.su-vspar[b-s561r70x26] { color: var(--text-secondary, #CBD5E1); font-weight: 600; }
.su-net[b-s561r70x26] { color: var(--brand-text, #93C5FD); font-weight: 600; }

.su-stats[b-s561r70x26] {
    display: flex;
    gap: 10px;
}
.su-stat[b-s561r70x26] {
    flex: 1;
    background: var(--bg-surface, #0F172A);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
    padding: 14px 8px;
    text-align: center;
}
.su-stat-v[b-s561r70x26] { font-size: 1.5rem; font-weight: 800; color: var(--text-primary, #F1F5F9); }
.su-stat-l[b-s561r70x26] { font-size: 0.8rem; color: var(--text-muted, #94A3B8); margin-top: 2px; }

.su-hcap[b-s561r70x26] {
    background: var(--brand-soft, rgba(29,78,216,0.15));
    border: 1px solid var(--brand, #1D4ED8);
    border-radius: 16px;
    padding: 20px;
    text-align: center;
}
.su-hcap-label[b-s561r70x26] { font-size: 0.82rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--brand-text, #93C5FD); }
.su-hcap-value[b-s561r70x26] { font-size: 3rem; font-weight: 800; line-height: 1.05; color: var(--text-primary, #F1F5F9); }
.su-hcap-delta[b-s561r70x26] { font-size: 1.15rem; font-weight: 700; margin-left: 8px; vertical-align: middle; color: var(--brand-text, #93C5FD); }
.su-hcap-sub[b-s561r70x26] { font-size: 0.9rem; color: var(--text-secondary, #CBD5E1); }

.su-hcap-note[b-s561r70x26] {
    background: var(--bg-surface, #0F172A);
    border: 1px dashed var(--border-default, rgba(255,255,255,0.12));
    border-radius: 12px;
    padding: 16px;
    text-align: center;
    color: var(--text-secondary, #CBD5E1);
    font-size: 0.92rem;
}

.su-done[b-s561r70x26] {
    display: block;
    width: 100%;
    min-height: 54px;
    line-height: 54px;
    text-align: center;
    border-radius: 12px;
    background: var(--brand, #1D4ED8);
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    text-decoration: none;
}

/* Quiet destructive action — remove a mistaken/incomplete round. */
.su-delete[b-s561r70x26] {
    display: block;
    width: 100%;
    min-height: 48px;
    margin-top: 10px;
    text-align: center;
    border: none;
    background: transparent;
    color: var(--b9-danger-text, #FCA5A5);
    font-size: 0.98rem;
    font-weight: 600;
    cursor: pointer;
}
.su-delete:disabled[b-s561r70x26] { opacity: 0.6; cursor: default; }

/* ── Scorecard grid (the familiar full card) ─────────────────────────────── */
.su-card[b-s561r70x26] {
    background: var(--bg-surface, #0F172A);
    border-radius: 14px;
    padding: 14px 14px 12px;
    margin: 4px 0 6px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.su-nine[b-s561r70x26] { display: flex; flex-direction: column; gap: 6px; }
.su-nine-label[b-s561r70x26] {
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--text-muted, #8A96A8);
    padding-left: 2px;
}
.su-grid[b-s561r70x26] {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
    font-variant-numeric: tabular-nums;
}
.su-grid td[b-s561r70x26] {
    text-align: center;
    height: 32px;
    font-size: 0.82rem;
    padding: 0;
}
.su-grid .rh[b-s561r70x26] {
    text-align: left;
    width: 34px;
    font-size: 0.6rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-weight: 600;
    color: var(--text-muted, #8A96A8);
}
.su-grid-head td[b-s561r70x26] { color: var(--text-primary, #F3F6FB); font-weight: 700; }
.su-grid-par td[b-s561r70x26] { color: var(--text-muted, #8A96A8); font-size: 0.78rem; }
.su-grid .sub[b-s561r70x26] {
    background: var(--brand-soft, rgba(29,78,216,.15));
    color: var(--brand-text, #93C5FD);
    font-weight: 800;
    border-radius: 7px;
    width: 36px;
}
.su-grid-head .sub[b-s561r70x26] { color: var(--text-primary, #F3F6FB); }

.cell[b-s561r70x26] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 25px;
    height: 25px;
    font-weight: 700;
    color: var(--text-primary, #F3F6FB);
}
.cell.blank[b-s561r70x26] { color: var(--text-muted, #8A96A8); font-weight: 500; }
.cell.par[b-s561r70x26]   { color: #E5E7EB; }
.cell.birdie[b-s561r70x26] { color: #86EFAC; }
.cell.birdie[b-s561r70x26]::before { content: ""; position: absolute; inset: 1px; border: 1.5px solid #86EFAC; border-radius: 50%; }
.cell.bogey[b-s561r70x26] { color: #FCA5A5; }
.cell.bogey[b-s561r70x26]::before { content: ""; position: absolute; inset: 2px; border: 1.5px solid #FCA5A5; border-radius: 5px; }
.cell.dbl[b-s561r70x26] { color: #FCA5A5; }
.cell.dbl[b-s561r70x26]::before { content: ""; position: absolute; inset: 2px; border: 1.5px solid #FCA5A5; border-radius: 5px; }
.cell.dbl[b-s561r70x26]::after  { content: ""; position: absolute; inset: -1px; border: 1.5px solid #FCA5A5; border-radius: 5px; }
.cell.eagle[b-s561r70x26] { color: #FCD34D; }
.cell.eagle[b-s561r70x26]::before { content: ""; position: absolute; inset: 0; border: 1.5px solid #FCD34D; border-radius: 50%; }
.cell.eagle[b-s561r70x26]::after  { content: ""; position: absolute; inset: -3px; border: 1.5px solid #FCD34D; border-radius: 50%; }

.su-card-hint[b-s561r70x26] {
    font-size: 0.72rem;
    color: var(--text-muted, #8A96A8);
    text-align: center;
}
/* /Components/Pages/Communications/Index.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════════════
   COMMUNICATIONS CENTER
   /communications
══════════════════════════════════════════════════════════════════════════════ */

.comm-page[b-yxyzfu5o2u] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

/* ── Header ── */
.comm-header[b-yxyzfu5o2u] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.75rem;
}

.comm-header-left[b-yxyzfu5o2u] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.comm-title[b-yxyzfu5o2u] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0;
    letter-spacing: -.02em;
}

.comm-subtitle[b-yxyzfu5o2u] {
    font-size: .875rem;
    color: var(--text-secondary);
    margin: 0;
    line-height: 1.5;
}

.comm-header-actions[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-shrink: 0;
}

.comm-failure-badge[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    background: var(--danger-soft);
    color: var(--danger-text);
    border: 1px solid rgba(239,68,68,0.28);
    border-radius: 8px;
    padding: .4rem .85rem;
    font-size: .8125rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s;
}
.comm-failure-badge:hover[b-yxyzfu5o2u] { background: rgba(239,68,68,.18); }

/* The five summary tiles that used to open this page were removed by the UX audit (O04 / X09).
   Their counts now render through Components/Shared/OpsStatLine.razor under the message log. */

/* ── Tab bar ─────────────────────────────────────────────────────────────── */
.comm-tabs[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    gap: 0;
    border-bottom: 1px solid var(--b9-border);
    margin-bottom: 1.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.comm-tabs[b-yxyzfu5o2u]::-webkit-scrollbar { display: none; }

.comm-tab[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .65rem .95rem;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--text-secondary);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    cursor: pointer;
    white-space: nowrap;
    transition: color .12s, background .12s, border-color .12s;
    margin-bottom: -1px;
    border-radius: 6px 6px 0 0;
    line-height: 1.3;
}

.comm-tab:hover[b-yxyzfu5o2u] {
    color: var(--text-primary);
    background: var(--b9-surface-muted);
}

.comm-tab--active[b-yxyzfu5o2u] {
    color: var(--b9-primary-text);
    border-bottom-color: var(--b9-primary);
    background: none;
}

.comm-tab--active:hover[b-yxyzfu5o2u] {
    background: var(--b9-primary-soft);
}

/* Count badge inside tab */
.comm-tab-count[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    font-size: .68rem;
    font-weight: 700;
    line-height: 1;
}

.comm-tab--active .comm-tab-count[b-yxyzfu5o2u] {
    background: var(--b9-primary);
    color: #fff;
}

/* ── Filters ── */
.comm-filters[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.comm-filter-search-wrap[b-yxyzfu5o2u] {
    position: relative;
    flex: 1;
    min-width: 220px;
}

.comm-filter-search-icon[b-yxyzfu5o2u] {
    position: absolute;
    left: .65rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--b9-text-soft, #adb5bd);
    font-size: .875rem;
    pointer-events: none;
}

.comm-filter-search[b-yxyzfu5o2u] {
    display: block;
    width: 100%;
    padding: .45rem .65rem .45rem 2rem;
    font-size: .875rem;
    border: 1.5px solid var(--b9-border);
    border-radius: 7px;
    background: var(--b9-card-bg);
    color: var(--text-primary);
    transition: border-color .15s, box-shadow .15s;
}

.comm-filter-search:focus[b-yxyzfu5o2u] {
    outline: none;
    border-color: var(--b9-primary, #0d6efd);
    box-shadow: 0 0 0 3px rgba(13,110,253,.1);
}

.comm-filter-clear[b-yxyzfu5o2u] {
    position: absolute;
    right: .5rem;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--b9-text-soft, #adb5bd);
    cursor: pointer;
    padding: .1rem .2rem;
    line-height: 1;
    font-size: .75rem;
}

.comm-filter-select[b-yxyzfu5o2u] {
    padding: .45rem .75rem;
    font-size: .875rem;
    border: 1.5px solid var(--b9-border);
    border-radius: 7px;
    background: var(--b9-card-bg);
    color: var(--text-primary);
    cursor: pointer;
    min-width: 160px;
}

/* ── Table ── */
.comm-table-wrap[b-yxyzfu5o2u] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 12px;
    /* A real, bounded scroll container: the tables inside are virtualized, and
       Blazor's <Virtualize> anchors its viewport math to the nearest ancestor
       with non-visible overflow — the old `overflow: hidden` (auto height) made
       that root degenerate and no rows rendered. Bounding it also keeps the
       filters/tabs on screen while long logs scroll. */
    overflow-y: auto;
    overflow-x: auto;
    max-height: 65vh;
    box-shadow: var(--b9-card-shadow);
}

.comm-table thead th[b-yxyzfu5o2u] {
    /* Header stays visible while the virtualized log scrolls. */
    position: sticky;
    top: 0;
    z-index: 1;
    background: var(--b9-table-header-bg);
}

.comm-table[b-yxyzfu5o2u] {
    width: 100%;
    border-collapse: collapse;
    font-size: .8125rem;
}

.comm-table thead th[b-yxyzfu5o2u] {
    background: var(--b9-surface-muted);
    padding: .6rem 1rem;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--text-muted);
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
}

.comm-table tbody tr[b-yxyzfu5o2u] {
    border-bottom: 1px solid var(--b9-border);
    transition: background .1s;
    color: var(--text-primary);
}

.comm-table tbody tr:hover[b-yxyzfu5o2u] { background: var(--b9-surface-muted); }

.ct-row-failed[b-yxyzfu5o2u] { background: rgba(239,68,68,0.06) !important; }
.ct-row-failed:hover[b-yxyzfu5o2u] { background: rgba(239,68,68,0.10) !important; }
.ct-row-expanded[b-yxyzfu5o2u] { background: var(--b9-surface, #f8fafc) !important; }

.comm-table td[b-yxyzfu5o2u] {
    padding: .65rem 1rem;
    vertical-align: middle;
    color: var(--text-primary);
}

/* Column widths */
.ct-col-status[b-yxyzfu5o2u]  { width: 36px; text-align: center; }
.ct-col-event[b-yxyzfu5o2u]   { min-width: 160px; }
.ct-col-recipient[b-yxyzfu5o2u] { min-width: 180px; }
.ct-col-subject[b-yxyzfu5o2u] { min-width: 180px; }
.ct-col-time[b-yxyzfu5o2u]    { width: 100px; white-space: nowrap; }
.ct-col-actions[b-yxyzfu5o2u] { width: 72px; text-align: right; }

/* Status icons */
.ct-status-ok[b-yxyzfu5o2u]   { color: var(--b9-success, #198754); font-size: 1rem; }
.ct-status-fail[b-yxyzfu5o2u] { color: #dc2626; font-size: 1rem; }

/* Cell content */
.ct-event-link[b-yxyzfu5o2u] {
    display: block;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
    line-height: 1.3;
}
.ct-event-link:hover[b-yxyzfu5o2u] { color: var(--b9-primary-text); text-decoration: underline; }

/* --b9-muted is not a token, so every one of these read #495057 — Bootstrap's grey-700, a
   colour for writing on white — and on the dark communications table that is 2.18:1. This is
   a DARK defect, on the shipped default theme: the line under each message saying what sent
   it ("Registered", "Draft→Cancelled") was unreadable on the page an admin uses to check what
   went out. --b9-text-muted is the name that was meant, and it moves with the theme. */
.ct-trigger[b-yxyzfu5o2u] {
    display: block;
    font-size: .72rem;
    color: var(--b9-text-muted, #495057);
    margin-top: .15rem;
}

.ct-name[b-yxyzfu5o2u] {
    display: block;
    font-weight: 500;
    color: var(--text-primary);
    line-height: 1.3;
}

.ct-email[b-yxyzfu5o2u] {
    display: block;
    font-size: .75rem;
    color: var(--text-muted);
}

.ct-subject[b-yxyzfu5o2u] {
    color: var(--text-primary);
    line-height: 1.35;
}

.ct-row-failed .ct-subject[b-yxyzfu5o2u] { color: var(--danger-text); }

.ct-time[b-yxyzfu5o2u] {
    color: var(--text-muted);
    font-size: .75rem;
}

/* Action buttons */
.ct-btn[b-yxyzfu5o2u] {
    background: none;
    border: 1.5px solid var(--b9-border, #dee2e6);
    border-radius: 6px;
    padding: .25rem .45rem;
    font-size: .8125rem;
    cursor: pointer;
    transition: background .12s, border-color .12s;
    color: var(--b9-text-muted, #495057);
    margin-left: .25rem;
}
.ct-btn:hover:not(:disabled)[b-yxyzfu5o2u] { background: var(--b9-surface, #f8fafc); }
.ct-btn:disabled[b-yxyzfu5o2u] { opacity: .5; cursor: not-allowed; }

.ct-btn-resend[b-yxyzfu5o2u] { color: var(--b9-primary-text); border-color: var(--b9-primary, #0d6efd); }
.ct-btn-resend:hover:not(:disabled)[b-yxyzfu5o2u] { background: var(--brand-soft); }

.ct-btn-detail[b-yxyzfu5o2u] { color: var(--danger-text); border-color: rgba(239,68,68,0.38); }
.ct-btn-detail:hover[b-yxyzfu5o2u] { background: var(--danger-soft); }

/* Spin animation */
@keyframes spin-b-yxyzfu5o2u { to { transform: rotate(360deg); } }
.ct-spin[b-yxyzfu5o2u] { display: inline-block; animation: spin-b-yxyzfu5o2u .8s linear infinite; }

/* Error detail row */
.ct-error-row td[b-yxyzfu5o2u] { padding: 0; }
.ct-error-detail[b-yxyzfu5o2u] {
    background: var(--danger-soft);
    border-top: 1px solid rgba(239,68,68,0.22);
    border-bottom: 1px solid rgba(239,68,68,0.22);
    padding: .6rem 1rem;
    font-size: .78rem;
    color: var(--danger-text);
    display: flex;
    align-items: flex-start;
}
.ct-error-detail code[b-yxyzfu5o2u] {
    background: none;
    color: inherit;
    font-size: .78rem;
    word-break: break-word;
    white-space: pre-wrap;
}

/* ── Compose button ── */
.comm-compose-btn[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--b9-primary, #1d4ed8);
    color: #fff;
    border: none;
    border-radius: 9px;
    padding: .55rem 1.15rem;
    font-size: .875rem;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
    white-space: nowrap;
}
.comm-compose-btn:hover[b-yxyzfu5o2u] { background: var(--b9-primary-hover, #1e40af); }

/* ── Compose panel ── */
.comm-compose-panel[b-yxyzfu5o2u] {
    background: var(--bg-elevated);
    border: 1px solid var(--brand-ring);
    border-radius: 12px;
    margin-bottom: 1.75rem;
    box-shadow: 0 2px 8px rgba(0,0,0,.22);
}
.comm-compose-header[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .875rem 1.25rem;
    border-bottom: 1px solid var(--border-default);
    background: var(--brand-soft);
    border-radius: 12px 12px 0 0;
}
.comm-compose-title[b-yxyzfu5o2u] {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--brand-text);
}
.comm-compose-close[b-yxyzfu5o2u] {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: .25rem;
    line-height: 1;
    border-radius: 6px;
    font-size: 1rem;
}
.comm-compose-close:hover[b-yxyzfu5o2u] { background: var(--bg-raised); }
.comm-compose-body[b-yxyzfu5o2u] {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .875rem;
}
.comm-compose-field[b-yxyzfu5o2u] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.comm-compose-label[b-yxyzfu5o2u] {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: .04em;
}
.comm-compose-select[b-yxyzfu5o2u],
.comm-compose-input[b-yxyzfu5o2u] {
    border: 1px solid var(--border-default);
    border-radius: 8px;
    padding: .5rem .75rem;
    font-size: .9375rem;
    color: var(--text-primary);
    background: var(--bg-raised);
    width: 100%;
}
.comm-compose-select:focus[b-yxyzfu5o2u],
.comm-compose-input:focus[b-yxyzfu5o2u] { outline: 2px solid var(--brand); border-color: transparent; }
.comm-compose-textarea[b-yxyzfu5o2u] {
    border: 1px solid var(--border-default);
    border-radius: 8px;
    padding: .6rem .75rem;
    font-size: .9375rem;
    color: var(--text-primary);
    background: var(--bg-raised);
    width: 100%;
    resize: vertical;
    font-family: inherit;
    line-height: 1.6;
}
.comm-compose-textarea:focus[b-yxyzfu5o2u] { outline: 2px solid var(--brand); border-color: transparent; }
.comm-compose-actions[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding-top: .25rem;
}
.comm-compose-send[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    background: var(--b9-primary, #1d4ed8);
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: .55rem 1.25rem;
    font-size: .9375rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
}
.comm-compose-send:hover:not(:disabled)[b-yxyzfu5o2u] { background: var(--b9-primary-hover, #1e40af); }
.comm-compose-send:disabled[b-yxyzfu5o2u] { opacity: .55; cursor: not-allowed; }
.comm-compose-error[b-yxyzfu5o2u] {
    color: #dc2626;
    font-size: .8125rem;
    margin: 0;
}
.comm-compose-success[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    background: var(--success-soft);
    border: 1px solid rgba(34,197,94,0.28);
    border-radius: 8px;
    padding: .75rem 1rem;
    color: var(--success-text);
    font-weight: 600;
    font-size: .9375rem;
}
.comm-compose-warn[b-yxyzfu5o2u] {
    background: var(--warning-soft);
    border: 1px solid rgba(251,191,36,0.28);
    border-radius: 8px;
    padding: .75rem 1rem;
    color: var(--warning-text);
    font-size: .9375rem;
}

/* ── Empty state ── */
.comm-empty[b-yxyzfu5o2u] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 3.5rem 1.5rem;
}

.comm-empty-icon[b-yxyzfu5o2u] {
    font-size: 2.5rem;
    color: var(--text-muted);
    margin-bottom: 1rem;
    opacity: .5;
}

.comm-empty-title[b-yxyzfu5o2u] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 .4rem;
}

.comm-empty-sub[b-yxyzfu5o2u] {
    font-size: .875rem;
    color: var(--text-secondary);
    max-width: 440px;
    line-height: 1.6;
    margin: 0 0 1.25rem;
}

/* Action button in empty state */
.comm-empty-cta[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    background: var(--b9-primary, #1d4ed8);
    color: #fff;
    border: none;
    border-radius: 9px;
    padding: .6rem 1.25rem;
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s;
    text-decoration: none;
}
.comm-empty-cta:hover[b-yxyzfu5o2u] { background: var(--b9-primary-hover, #1e40af); color: #fff; }

.comm-limit-note[b-yxyzfu5o2u] {
    font-size: .78rem;
    color: var(--text-muted);
    text-align: center;
    margin-top: 1rem;
}

/* ── Responsive ── */
@media (max-width: 680px) {
    .comm-page[b-yxyzfu5o2u] { padding: 1.25rem 1rem 3rem; }

    .comm-header[b-yxyzfu5o2u] {
        flex-direction: column;
        align-items: stretch;
    }

    .comm-header-actions[b-yxyzfu5o2u] {
        flex-wrap: wrap;
    }

    .comm-compose-btn[b-yxyzfu5o2u] {
        flex: 1;
        justify-content: center;
        min-height: 44px;
    }

    .ct-col-subject[b-yxyzfu5o2u],
    .ct-col-time[b-yxyzfu5o2u] { display: none; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   COMPOSE WIZARD
══════════════════════════════════════════════════════════════════════════════ */

/* Step indicator */
.wiz-steps[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-top: .5rem;
    flex-wrap: wrap;
}
.wiz-step[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .75rem;
    font-weight: 600;
    color: var(--text-muted);
    background: var(--bg-raised);
    border-radius: 20px;
    padding: .2rem .65rem;
}
.wiz-step--active[b-yxyzfu5o2u] {
    background: var(--brand);
    color: #fff;
}
.wiz-step--done[b-yxyzfu5o2u] {
    background: var(--success-soft);
    color: var(--success-text);
}
.wiz-divider[b-yxyzfu5o2u] {
    display: inline-block;
    width: 12px;
    height: 1px;
    background: var(--border-default);
    flex-shrink: 0;
}

/* Section label */
.wiz-section-label[b-yxyzfu5o2u] {
    font-size: .8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--text-muted);
    margin-bottom: .875rem;
}

/* Audience cards */
.wiz-audience-grid[b-yxyzfu5o2u] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: .625rem;
}
.wiz-audience-card[b-yxyzfu5o2u] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .2rem;
    background: var(--bg-raised);
    border: 1.5px solid var(--border-default);
    border-radius: 10px;
    padding: .75rem 1rem;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}
.wiz-audience-card:hover[b-yxyzfu5o2u] { border-color: var(--brand-text); }
.wiz-audience-card.selected[b-yxyzfu5o2u] {
    border-color: var(--brand);
    background: var(--brand-soft);
    box-shadow: 0 0 0 3px var(--brand-ring);
}
.wiz-aud-icon[b-yxyzfu5o2u] { font-size: 1.25rem; color: var(--brand-text); margin-bottom: .15rem; }
.wiz-aud-label[b-yxyzfu5o2u] { font-size: .875rem; font-weight: 700; color: var(--text-primary); }
.wiz-aud-desc[b-yxyzfu5o2u] { font-size: .75rem; color: var(--text-muted); line-height: 1.3; }

/* Channel cards */
.wiz-channel-grid[b-yxyzfu5o2u] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(155px, 1fr));
    gap: .625rem;
}
.wiz-channel-card[b-yxyzfu5o2u] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .2rem;
    background: var(--bg-raised);
    border: 1.5px solid var(--border-default);
    border-radius: 10px;
    padding: .75rem 1rem;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}
.wiz-channel-card:hover[b-yxyzfu5o2u] { border-color: var(--brand-text); }
.wiz-channel-card.selected[b-yxyzfu5o2u] {
    border-color: var(--brand);
    background: var(--brand-soft);
    box-shadow: 0 0 0 3px var(--brand-ring);
}
.wiz-ch-icons[b-yxyzfu5o2u] { display: flex; gap: .35rem; margin-bottom: .2rem; }
.wiz-ch-icon[b-yxyzfu5o2u] { font-size: 1.1rem; color: var(--brand-text); }
.wiz-ch-label[b-yxyzfu5o2u] { font-size: .875rem; font-weight: 700; color: var(--text-primary); }
.wiz-ch-desc[b-yxyzfu5o2u] { font-size: .75rem; color: var(--text-muted); }

/* Plan-locked channel options — visible but honest about why they can't be picked */
.wiz-channel-card--locked[b-yxyzfu5o2u] {
    opacity: .55;
    cursor: not-allowed;
}
.wiz-channel-card--locked:hover[b-yxyzfu5o2u] { border-color: var(--border-default); }
.wiz-ch-lock[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    margin-top: .3rem;
    padding: .1rem .5rem;
    border-radius: 999px;
    font-size: .6875rem;
    font-weight: 700;
    color: var(--b9-warning-text);
    background: var(--b9-warning-soft);
}
.wiz-plan-note[b-yxyzfu5o2u] {
    margin: .75rem 0 0;
    font-size: .8125rem;
    color: var(--text-muted);
}
.wiz-plan-note a[b-yxyzfu5o2u] { color: var(--brand-text); }

/* Per-channel send breakdown under the step-5 result panel */
.wiz-send-breakdown[b-yxyzfu5o2u] {
    list-style: none;
    margin: .75rem 0 0;
    padding: .625rem .875rem;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: .35rem;
}
.wiz-send-breakdown li[b-yxyzfu5o2u] {
    font-size: .8125rem;
    color: var(--text-secondary);
}
.wiz-send-breakdown li strong[b-yxyzfu5o2u] { color: var(--text-primary); }
.wiz-send-breakdown-warn[b-yxyzfu5o2u] { color: var(--b9-warning-text) !important; }

/* Field helpers */
.wiz-field-label[b-yxyzfu5o2u] {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--text-secondary);
}
.wiz-merge-hint[b-yxyzfu5o2u] {
    font-size: .75rem;
    color: var(--text-muted);
    margin-top: .35rem;
}
.wiz-segment-checks[b-yxyzfu5o2u] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .875rem;
}
.wiz-check-label[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    font-size: .875rem;
    color: var(--text-secondary);
    cursor: pointer;
}

/* Preview card */
.wiz-preview-card[b-yxyzfu5o2u] {
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    border-radius: 10px;
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-bottom: .5rem;
}
.wiz-preview-row[b-yxyzfu5o2u] {
    display: grid;
    grid-template-columns: 80px 1fr;
    gap: .5rem;
    align-items: baseline;
    font-size: .875rem;
}
.wiz-preview-key[b-yxyzfu5o2u] { font-weight: 700; color: var(--text-muted); text-transform: uppercase; font-size: .75rem; letter-spacing: .05em; }
.wiz-preview-val[b-yxyzfu5o2u] { color: var(--text-primary); }
.wiz-ch-badge[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    background: var(--brand-soft);
    color: var(--brand-text);
    border-radius: 5px;
    padding: .15rem .5rem;
    font-size: .75rem;
    font-weight: 600;
    margin-right: .35rem;
}
.wiz-preview-body[b-yxyzfu5o2u] {
    margin-top: .5rem;
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: 8px;
    padding: .875rem 1rem;
    color: var(--text-secondary);
    font-size: .875rem;
    line-height: 1.6;
    max-height: 180px;
    overflow-y: auto;
}

/* Send options */
.wiz-send-options[b-yxyzfu5o2u] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .625rem;
}
.wiz-send-option[b-yxyzfu5o2u] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .25rem;
    background: var(--bg-raised);
    border: 1.5px solid var(--border-default);
    border-radius: 10px;
    padding: .875rem 1rem;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}
.wiz-send-option:hover[b-yxyzfu5o2u] { border-color: var(--brand-text); }
.wiz-send-option.selected[b-yxyzfu5o2u] {
    border-color: var(--brand);
    background: var(--brand-soft);
    box-shadow: 0 0 0 3px var(--brand-ring);
}
.wiz-send-icon[b-yxyzfu5o2u] { font-size: 1.25rem; color: var(--brand-text); margin-bottom: .15rem; }

/* Footer nav */
.wiz-footer[b-yxyzfu5o2u] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: .75rem;
    border-top: 1px solid var(--border-default);
    margin-top: .25rem;
}

/* ── Diagnostics tab warning badge ──────────────────────────────────────────── */
.comm-tab-warn[b-yxyzfu5o2u] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    border-radius: 50%;
    background: #ef4444;
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    line-height: 1;
}

/* ── Diagnostics panel ───────────────────────────────────────────────────────── */
.comm-diag-panel[b-yxyzfu5o2u] {
    padding: 1.25rem 0;
}

.comm-diag-title[b-yxyzfu5o2u] {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: .5rem;
}

.comm-diag-card[b-yxyzfu5o2u] {
    border: 1px solid var(--border-default);
    border-radius: .5rem;
    padding: 1rem 1.25rem;
    background: var(--bg-elevated);
}

.comm-diag-card.comm-diag-ok[b-yxyzfu5o2u]    { border-left: 4px solid #22c55e; }
.comm-diag-card.comm-diag-warn[b-yxyzfu5o2u]  { border-left: 4px solid #f59e0b; }
.comm-diag-card.comm-diag-info[b-yxyzfu5o2u]  { border-left: 4px solid #3b82f6; }

.comm-diag-row[b-yxyzfu5o2u] {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
}

.comm-diag-icon[b-yxyzfu5o2u] {
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: .1rem;
}

.comm-diag-body[b-yxyzfu5o2u] {
    flex: 1;
}

.comm-diag-label[b-yxyzfu5o2u] {
    font-weight: 600;
    font-size: .9rem;
    color: var(--text-primary);
    margin-bottom: .2rem;
}

.comm-diag-status[b-yxyzfu5o2u] {
    font-size: .85rem;
}

/* ── Delivery drilldown modal ────────────────────────────────────────────────── */
.comm-modal-overlay[b-yxyzfu5o2u] {
    position: fixed;
    inset: 0;
    background: rgba(15,23,42,.45);
    backdrop-filter: blur(2px);
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.comm-modal[b-yxyzfu5o2u] {
    background: var(--bg-elevated);
    border-radius: .75rem;
    box-shadow: 0 20px 60px rgba(0,0,0,.55);
    width: 100%;
    max-width: 820px;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--border-default);
}

.comm-modal-header[b-yxyzfu5o2u] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--border-default);
    flex-shrink: 0;
}

.comm-modal-title[b-yxyzfu5o2u] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary);
}

.comm-modal-close[b-yxyzfu5o2u] {
    background: none;
    border: none;
    font-size: 1.1rem;
    color: var(--text-muted);
    cursor: pointer;
    padding: .2rem .4rem;
    border-radius: .25rem;
    line-height: 1;
}
.comm-modal-close:hover[b-yxyzfu5o2u] { background: var(--bg-raised); color: var(--text-primary); }

.comm-modal-body[b-yxyzfu5o2u] {
    overflow-y: auto;
    padding: 1rem 1.25rem;
    flex: 1;
}

/* ── Drilldown table ─────────────────────────────────────────────────────────── */
.comm-drilldown-table[b-yxyzfu5o2u] {
    width: 100%;
    border-collapse: collapse;
    font-size: .83rem;
}

.comm-drilldown-table th[b-yxyzfu5o2u],
.comm-drilldown-table td[b-yxyzfu5o2u] {
    padding: .5rem .6rem;
    text-align: left;
    border-bottom: 1px solid var(--b9-border);
    color: var(--text-primary);
}

.comm-drilldown-table thead th[b-yxyzfu5o2u] {
    font-weight: 600;
    color: var(--text-muted);
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    background: var(--b9-surface-muted);
}

.comm-drilldown-table tbody tr:hover[b-yxyzfu5o2u] { background: var(--b9-surface-muted); }

.comm-drilldown-time[b-yxyzfu5o2u] { color: var(--text-muted); white-space: nowrap; }
.comm-drilldown-error[b-yxyzfu5o2u] { max-width: 220px; }

/* Info callout — dark-safe replacement for alert-light */
.comm-info-callout[b-yxyzfu5o2u] {
    border: 1px solid var(--border-subtle, #334155);
    border-radius: 0.375rem;
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
    padding: 0.5rem 0.75rem;
}

html[data-theme="light"] .comm-info-callout[b-yxyzfu5o2u] {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #1f2937;
}

/* /Components/Pages/CourseAccounts/Create.razor.rz.scp.css */
/* ── Step progress track ──────────────────────────────────────────────────── */

.step-track[b-yt7d7a5t57] {
    flex-wrap: nowrap;
}

.step-item[b-yt7d7a5t57] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

.step-circle[b-yt7d7a5t57] {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.9rem;
    transition: background 0.2s, color 0.2s;
}

.step-item.active .step-circle[b-yt7d7a5t57] {
    background: var(--b9-primary, #1E40AF);
    color: #fff;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--b9-primary, #1E40AF) 20%, transparent);
}

.step-item.upcoming .step-circle[b-yt7d7a5t57] {
    background: var(--b9-surface-muted, #F1F5F9);
    color: var(--b9-text-muted, #475569);
    border: 2px dashed var(--b9-border, #E5E7EB);
}

.step-label[b-yt7d7a5t57] {
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.step-item.active .step-label[b-yt7d7a5t57] {
    color: var(--b9-primary-text);
}

.step-item.upcoming .step-label[b-yt7d7a5t57] {
    color: var(--b9-text-muted, #475569);
}

.step-connector[b-yt7d7a5t57] {
    flex: 1;
    height: 2px;
    background: var(--b9-border, #E5E7EB);
    margin-bottom: 22px; /* align with circle centre */
    min-width: 24px;
}

/* ── "What's next" hint box ───────────────────────────────────────────────── */

.next-step-hint[b-yt7d7a5t57] {
    background: var(--brand-soft, rgba(29,78,216,0.15));
    border: 1px solid color-mix(in srgb, var(--b9-primary, #1E40AF) 18%, transparent);
}

.hint-icon[b-yt7d7a5t57] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--b9-primary, #1E40AF);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
}

/* ── Responsive ───────────────────────────────────────────────────────────── */

@media (max-width: 420px) {
    .step-label[b-yt7d7a5t57] { display: none; }
    .step-connector[b-yt7d7a5t57] { min-width: 16px; }
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.cac-container[b-yt7d7a5t57] { max-width: 760px; }
/* /Components/Pages/CourseAccounts/Index.razor.rz.scp.css */
/* "Course operator access" chip. Was Bootstrap .badge.text-primary (brand blue as ink on a
   dark tinted fill, 2.38:1) on the list and .badge.bg-info (white on cyan, 2.1:1) on the
   detail page. Brand-soft fill with the readable blue: 9:1 dark, 7.6:1 light. */
.ca-admin-chip[b-mecx9sipcp] {
    display: inline-block;
    padding: .25rem .6rem;
    border-radius: var(--b9-badge-radius, 20px);
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.3;
}
/* /Components/Pages/CourseAccounts/Manage.razor.rz.scp.css */
/* ── Public URL bar — dark-theme safe ─────────────────────────────────── */
.mg-public-url-bar[b-qb9kpm9hoo] {
  background: var(--b9-surface-muted, rgba(255,255,255,.04));
  border-color: var(--b9-border, rgba(255,255,255,.1)) !important;
}

/* ── Upload button — styled like a secondary action, not an <input> ───── */
.mg-upload-label[b-qb9kpm9hoo] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.5;
  cursor: pointer;
  border: 1px solid var(--b9-border, rgba(255,255,255,.15));
  border-radius: 6px;
  background: var(--b9-surface-muted, rgba(255,255,255,.05));
  color: var(--b9-text, #e2e8f0);
  transition: background 0.15s, border-color 0.15s;
  white-space: nowrap;
}

.mg-upload-label:hover[b-qb9kpm9hoo] {
  background: var(--b9-card-bg-hover, rgba(255,255,255,.08));
  border-color: var(--b9-brand, #22c55e);
}

/* ── Course avatar / player avatar upload ─────────────────────────────── */
.mg-avatar-upload-label[b-qb9kpm9hoo] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.3rem 0.65rem;
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--b9-border, rgba(255,255,255,.15));
  border-radius: 6px;
  background: var(--b9-surface-muted, rgba(255,255,255,.05));
  color: var(--b9-text, #e2e8f0);
  transition: background 0.15s, border-color 0.15s;
}

.mg-avatar-upload-label:hover[b-qb9kpm9hoo] {
  background: var(--b9-card-bg-hover, rgba(255,255,255,.08));
  border-color: var(--b9-brand, #22c55e);
}

.cleanup-overlay[b-qb9kpm9hoo] {
  position: fixed;
  inset: 0;
  z-index: 1090;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  background: rgba(2, 6, 23, 0.72);
  backdrop-filter: blur(6px);
}

.cleanup-modal[b-qb9kpm9hoo] {
  position: relative;
  width: min(860px, 100%);
  max-height: min(86vh, 920px);
  overflow: auto;
  background: var(--b9-card-bg);
  border: 1px solid var(--b9-card-border);
  border-radius: 16px;
  box-shadow: var(--b9-card-shadow-xl);
  color: var(--b9-text);
}

.cleanup-modal-header[b-qb9kpm9hoo],
.cleanup-modal-footer[b-qb9kpm9hoo] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.125rem;
}

.cleanup-modal-header[b-qb9kpm9hoo] {
  border-bottom: 1px solid var(--b9-border);
}

.cleanup-modal-footer[b-qb9kpm9hoo] {
  border-top: 1px solid var(--b9-border);
  background: rgba(255, 255, 255, 0.02);
}

.cleanup-kicker[b-qb9kpm9hoo] {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--b9-text-soft);
}

.cleanup-title[b-qb9kpm9hoo] {
  margin: 0.15rem 0 0;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.cleanup-close[b-qb9kpm9hoo] {
  width: 34px;
  height: 34px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--b9-text-soft);
}

.cleanup-modal-body[b-qb9kpm9hoo] {
  padding: 1rem 1.125rem 0.875rem;
}

.cleanup-copy[b-qb9kpm9hoo] {
  margin: 0 0 1rem;
  color: var(--b9-text-muted);
  line-height: 1.55;
}

.cleanup-summary-grid[b-qb9kpm9hoo] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.cleanup-summary-item[b-qb9kpm9hoo] {
  border: 1px solid var(--b9-border);
  border-radius: 12px;
  background: var(--b9-surface-muted);
  padding: 0.75rem 0.875rem;
}

.cleanup-summary-label[b-qb9kpm9hoo] {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--b9-text-soft);
  margin-bottom: 0.2rem;
}

.cleanup-summary-item strong[b-qb9kpm9hoo] {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--b9-text);
}

.cleanup-warning[b-qb9kpm9hoo] {
  border-radius: 12px;
  padding: 0.85rem 0.95rem;
  margin-top: 1rem;
  font-size: 0.9rem;
  line-height: 1.45;
  border: 1px solid;
}

.cleanup-warning--blocked[b-qb9kpm9hoo] {
  background: var(--b9-danger-soft);
  border-color: var(--b9-danger);
  color: var(--b9-danger-text);
}

.cleanup-warning--ready[b-qb9kpm9hoo] {
  background: var(--b9-warning-soft);
  border-color: var(--b9-warning);
  color: var(--b9-warning-text);
}

.cleanup-form[b-qb9kpm9hoo] {
  margin-top: 1rem;
}

.cleanup-label[b-qb9kpm9hoo] {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--b9-text-muted);
  margin-bottom: 0.35rem;
}

.cleanup-input[b-qb9kpm9hoo] {
  background: var(--b9-surface-muted);
  border-color: var(--b9-border);
  color: var(--b9-text);
}

.cleanup-check[b-qb9kpm9hoo] {
  margin-top: 0.8rem;
}

@media (max-width: 720px) {
  .cleanup-summary-grid[b-qb9kpm9hoo] {
    grid-template-columns: 1fr;
  }

  .cleanup-modal-header[b-qb9kpm9hoo],
  .cleanup-modal-footer[b-qb9kpm9hoo] {
    flex-direction: column;
    align-items: stretch;
  }
}

/* ── Logo preview box ─────────────────────────────────────── */
.mg-logo-preview[b-qb9kpm9hoo] {
    max-height: 72px;
    max-width: 220px;
    border-radius: 8px;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    object-fit: contain;
    background: var(--b9-surface-muted, rgba(255,255,255,0.04));
}

.mg-logo-empty[b-qb9kpm9hoo] {
    width: 72px;
    height: 72px;
    border-radius: 8px;
    border: 2px dashed var(--b9-border, rgba(255,255,255,0.15));
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--b9-surface-muted, rgba(255,255,255,0.03));
    flex-shrink: 0;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.mg-clickaway[b-qb9kpm9hoo] { position: fixed; inset: 0; z-index: 999; }
.mg-slug-input[b-qb9kpm9hoo] { max-width: 220px; }
.mg-badge-xxs[b-qb9kpm9hoo] { font-size: .65rem; }
.mg-logo-icon[b-qb9kpm9hoo] { font-size: 1.5rem; }

/* ── Cleanup tables: phone-only scroll containment ─────────────────────
   These two tables hold Blazor-controlled floating cleanup menus, so they
   cannot use .table-responsive unconditionally — its forced overflow would
   clip the open menu (the overflow-clipped-menu bug class). On desktop the
   tables fit and menus float exactly as before; on phones the table pans
   and an OPEN menu escapes the scroller as a centered fixed sheet. */
@media (max-width: 767.98px) {
    .mng-table-scroll[b-qb9kpm9hoo] {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .mng-table-scroll .dropdown-menu.show[b-qb9kpm9hoo] {
        position: fixed;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: min(92vw, 300px);
        z-index: 1090;
    }
}

/* Front desk crew — the one-time code reveal reads across the counter. */
.fd-code[b-qb9kpm9hoo] {
    font-size: 1.5rem;
    letter-spacing: 0.35em;
    font-variant-numeric: tabular-nums;
}

/* Billing link on the Plan card. Bootstrap's .btn is ~38px tall, under the 48px
   floor this project holds important controls to, so it is raised here. */
.mg-plan-link[b-qb9kpm9hoo] {
    min-height: var(--touch-target-min, 48px);
    display: inline-flex;
    align-items: center;
}

/* "Course operator access" chip. Was Bootstrap .badge.text-primary (brand blue as ink on a
   dark tinted fill, 2.38:1) on the list and .badge.bg-info (white on cyan, 2.1:1) on the
   detail page. Brand-soft fill with the readable blue: 9:1 dark, 7.6:1 light. */
.ca-admin-chip[b-qb9kpm9hoo] {
    display: inline-block;
    padding: .25rem .6rem;
    border-radius: var(--b9-badge-radius, 20px);
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    font-size: .8125rem;
    font-weight: 600;
    line-height: 1.3;
}
/* /Components/Pages/Courses/Create.razor.rz.scp.css */
/* ── Search hero ──────────────────────────────────────────────────────────── */

.search-hero[b-cs9fnk7p8x] { border-radius: var(--b9-card-radius, 12px); }

.search-icon-wrap[b-cs9fnk7p8x] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--b9-primary, #1E40AF);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

/* ── Search input group ───────────────────────────────────────────────────── */

.cc-search-wrap[b-cs9fnk7p8x] {
    max-width: 580px;
    margin: 0 auto;
}

.cc-search-prefix[b-cs9fnk7p8x] {
    background: var(--bg-elevated);
    border-color: var(--border-default);
    border-right: 0;
    border-radius: 10px 0 0 10px !important;
}

.cc-search-input[b-cs9fnk7p8x] {
    border-color: var(--b9-border, #E5E7EB);
    border-left: 0;
    border-right: 0;
    font-size: 1rem;
}

.cc-search-input:focus[b-cs9fnk7p8x] {
    box-shadow: none;
    border-color: var(--b9-primary, #1E40AF);
}

.cc-search-clear[b-cs9fnk7p8x] {
    background: var(--bg-elevated);
    border-color: var(--border-default);
    border-left: 0;
    border-radius: 0 10px 10px 0 !important;
    color: var(--text-muted);
    transition: color 0.15s;
}

.cc-search-clear:hover[b-cs9fnk7p8x] { color: var(--b9-danger, #DC2626); background: var(--bg-raised); }

/* ── Results dropdown ─────────────────────────────────────────────────────── */

.cc-dropdown[b-cs9fnk7p8x] {
    position: absolute;
    left: 0; right: 0;
    top: calc(100% + 6px);
    background: var(--bg-elevated);
    color: var(--text-primary);
    border: 1px solid var(--border-default);
    border-radius: 10px;
    overflow: hidden;
    z-index: 1000;
    max-height: 380px;
    overflow-y: auto;
}

.cc-result[b-cs9fnk7p8x] {
    display: block;
    width: 100%;
    text-align: left;
    color: var(--text-primary);
    background: none;
    border: none;
    border-bottom: 1px solid var(--border-default);
    padding: 10px 14px;
    cursor: pointer;
    transition: background 0.1s;
}

.cc-result:last-child[b-cs9fnk7p8x] { border-bottom: none; }

.cc-result:hover[b-cs9fnk7p8x],
.cc-result-active[b-cs9fnk7p8x] { background: var(--bg-raised); }

.cc-result-active[b-cs9fnk7p8x],
.cc-result-active .cc-result-name[b-cs9fnk7p8x],
.cc-result-active .cc-result-meta[b-cs9fnk7p8x],
.cc-result-active .cc-result-meta i[b-cs9fnk7p8x],
.cc-result:hover[b-cs9fnk7p8x],
.cc-result:hover .cc-result-name[b-cs9fnk7p8x],
.cc-result:hover .cc-result-meta[b-cs9fnk7p8x],
.cc-result:hover .cc-result-meta i[b-cs9fnk7p8x] {
    color: var(--text-primary) !important;
}

.cc-result-name[b-cs9fnk7p8x] {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--text-primary);
    margin-bottom: 2px;
}

.cc-result-meta[b-cs9fnk7p8x] {
    font-size: 0.75rem;
    color: var(--text-muted);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}

.cc-result-meta i[b-cs9fnk7p8x] { color: var(--text-muted); }

/* Lock dropdown readability regardless of app theme token values. */
.cc-dropdown.text-muted[b-cs9fnk7p8x],
.cc-dropdown .text-muted[b-cs9fnk7p8x] { color: var(--text-muted) !important; }

.cc-dropdown strong[b-cs9fnk7p8x] { color: var(--text-primary); }

.cc-pill[b-cs9fnk7p8x] {
    background: var(--b9-primary, #1E40AF);
    color: #fff;
    font-size: 0.68rem;
    padding: 1px 7px;
    border-radius: 999px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

/* ── Preview: scorecard import note ──────────────────────────────────────── */

.cc-import-note[b-cs9fnk7p8x] { border-radius: 8px; }

/* ── Preview: tee group headers ──────────────────────────────────────────── */

.cc-tee-group-header[b-cs9fnk7p8x] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-text-muted, #475569);
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 16px;
    margin-bottom: 6px;
}

.cc-gender-dot[b-cs9fnk7p8x] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.cc-gender-men[b-cs9fnk7p8x]   { background: var(--b9-primary, #1E40AF); }
.cc-gender-women[b-cs9fnk7p8x] { background: var(--b9-danger,  #DC2626); }

/* ── Preview: tee table ───────────────────────────────────────────────────── */

.cc-tee-table thead th[b-cs9fnk7p8x] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #cbd5e1;
    border-bottom: 1px solid #334155;
    background: #16263f;
    padding: 6px 8px;
}

.cc-tee-table tbody td[b-cs9fnk7p8x] {
    font-size: 0.8125rem;
    vertical-align: middle;
    color: #e2e8f0;
    border-color: #23324a;
    background: #0f1b31;
    padding: 6px 8px;
}

.cc-tee-table tbody tr:hover td[b-cs9fnk7p8x] {
    background: #172743;
}

.cc-tee-table strong[b-cs9fnk7p8x] {
    color: #f8fafc;
}

.cc-tee-table .text-muted[b-cs9fnk7p8x] {
    color: #93a4bd !important;
}

.cc-tee-dot[b-cs9fnk7p8x] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    vertical-align: middle;
    flex-shrink: 0;
}

/* ── Form: tee chip badges ────────────────────────────────────────────────── */

.cc-tee-chip[b-cs9fnk7p8x] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1.5px solid var(--chip-color, #6366F1);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--text-primary);
    background: color-mix(in srgb, var(--chip-color, #6366F1) 18%, transparent);
}

.cc-chip-dot[b-cs9fnk7p8x] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--chip-color, #6366F1);
    flex-shrink: 0;
}

.cc-chip-rating[b-cs9fnk7p8x] {
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--text-secondary);
    border-left: 1px solid var(--border-default);
    padding-left: 5px;
    margin-left: 2px;
}

.cc-tee-chip .text-muted[b-cs9fnk7p8x] {
    color: var(--text-muted) !important;
    font-weight: 600;
}

/* ── Import banner ────────────────────────────────────────────────────────── */

.cc-import-banner[b-cs9fnk7p8x] {
    border-radius: var(--b9-card-radius, 12px);
    background: var(--brand-soft);
}

/* ── Responsive ───────────────────────────────────────────────────────────── */

@media (max-width: 576px) {
    .search-icon-wrap[b-cs9fnk7p8x] { width: 44px; height: 44px; font-size: 1.1rem; }
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.cc-page-container[b-cs9fnk7p8x] { max-width: 760px; }
.cc-preview-panel[b-cs9fnk7p8x] { background: var(--bg-elevated); }
.cc-chip-gender[b-cs9fnk7p8x] { font-size: 0.7rem; }
/* /Components/Pages/Courses/Detail.razor.rz.scp.css */
/* ── Course details card ──────────────────────────────────────────────── */
.course-detail-tee-card[b-9tbddoi1oy] {
  background: var(--b9-card-bg, rgba(11,26,51,.9));
  border: 1px solid var(--b9-card-border, rgba(59,130,246,.18)) !important;
}

/* ── Tee table — dark-first, all tokens ───────────────────────────────── */
.course-detail-tee-table[b-9tbddoi1oy] {
  --bs-table-bg: transparent;
  --bs-table-color: var(--b9-text, #e2e8f0);
  --bs-table-hover-color: var(--b9-text-bright, #fff);
  --bs-table-hover-bg: rgba(59,130,246,.14);
  --bs-table-border-color: var(--b9-border, rgba(255,255,255,.1));
  color: var(--b9-text, #e2e8f0) !important;
}

.course-detail-tee-head th[b-9tbddoi1oy] {
  background: var(--b9-table-head-bg, rgba(255,255,255,.07)) !important;
  color: var(--b9-text, #e2e8f0) !important;
  border-bottom: 1px solid var(--b9-border, rgba(255,255,255,.1)) !important;
}

.course-detail-tee-table tbody td[b-9tbddoi1oy] {
  color: var(--b9-text, #e2e8f0) !important;
  border-color: var(--b9-border, rgba(255,255,255,.1)) !important;
}

.course-detail-tee-table tbody .btn[b-9tbddoi1oy] {
  position: relative;
  z-index: 1;
}

.course-detail-tee-gender[b-9tbddoi1oy] {
  color: var(--b9-text-muted, #94a3b8) !important;
}

/* ── Course logo upload button ────────────────────────────────────────── */
.cd-upload-label[b-9tbddoi1oy] {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.375rem 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid var(--b9-border, rgba(255,255,255,.15));
  border-radius: 6px;
  background: var(--b9-surface-muted, rgba(255,255,255,.05));
  color: var(--b9-text, #e2e8f0);
  transition: background 0.15s, border-color 0.15s;
}

.cd-upload-label:hover[b-9tbddoi1oy] {
  background: var(--b9-card-bg-hover, rgba(255,255,255,.08));
  border-color: var(--b9-brand, #22c55e);
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.cd-logo-preview[b-9tbddoi1oy] {
    max-height: 56px;
    max-width: 160px;
    border-radius: 6px;
    border: 1px solid var(--b9-border);
}
.cd-drawer[b-9tbddoi1oy] { width: 420px; }

/* ── More (O08) ───────────────────────────────────────────────────────────
   Delete moved off the Course Library card and onto this page, behind one press.
   Same shape and same measurements as the event header's More menu
   (Events/EventHeaderActions.razor.css) so the two read as one product; every
   value below is a token that is actually defined in tokens.css / brand-tokens.css.
   All of these elements live in Detail.razor's own markup, so plain scoped
   selectors reach them — no ::deep, which is where this repo has lost rules before. */
.cdm-more[b-9tbddoi1oy] { position: relative; }

/* Transparent overlay that closes the menu on an outside tap. Just under the menu. */
.cdm-backdrop[b-9tbddoi1oy] {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
}

.cdm-more-menu[b-9tbddoi1oy] {
    position: absolute;
    right: 0;
    top: calc(100% + 0.35rem);
    z-index: 1000;
    min-width: 14rem;
    max-width: min(92vw, 20rem);
    margin: 0;
    padding: 0.35rem;
    list-style: none;
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    box-shadow: var(--b9-card-shadow-md);
}

.cdm-more-item[b-9tbddoi1oy] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    min-height: 48px;
    padding: 0.5rem 0.85rem;
    border: 0;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--b9-danger-text);
    font-size: 1rem;
    text-align: left;
    white-space: nowrap;
}

.cdm-more-item:hover[b-9tbddoi1oy],
.cdm-more-item:focus-visible[b-9tbddoi1oy] {
    background: var(--bg-raised);
}

/* Red is for destructive, and only here — behind a step, never a top-level button. */
.cdm-more-item-danger[b-9tbddoi1oy] { color: var(--b9-danger-text); }

/* ── The header row, which had to learn to wrap (O08) ─────────────────────
   At 390px the two existing buttons already squeezed "Lake City Golf" into four
   lines; adding More pushed the menu clean off the right edge of the screen.
   Screenshot-driven, not reasoned: this was found by looking at the phone shot.  */
.cd-headrow[b-9tbddoi1oy] {
    flex-wrap: wrap;
    gap: 0.75rem;
}

.cd-headline[b-9tbddoi1oy] {
    flex: 1 1 16rem;
    min-width: 0;
}

.cd-headactions[b-9tbddoi1oy] {
    flex: 0 0 auto;
    flex-wrap: wrap;
}

@media (max-width: 767.98px) {
    /* Actions take their own row, so the course's name keeps the one above it. */
    .cd-headactions[b-9tbddoi1oy] { width: 100%; }
    .cd-headactions > a[b-9tbddoi1oy] { flex: 1 1 9rem; }

    /* More spans the row, and so does its menu — anchored to BOTH edges, which is the only
       placement that cannot leave the screen wherever the button lands after a wrap. */
    .cdm-more[b-9tbddoi1oy] { width: 100%; }
    .cdm-more > .btn[b-9tbddoi1oy] { width: 100%; }
    .cdm-more-menu[b-9tbddoi1oy] {
        left: 0;
        right: 0;
        min-width: 0;
        max-width: none;
    }
}
/* /Components/Pages/Courses/Gps.razor.rz.scp.css */
/* Extracted inline styles (Blazor audit Batch G). */
.gps-search[b-pblvzw5wsb] { max-width: 520px; }
/* /Components/Pages/Courses/Scorecard.razor.rz.scp.css */
/* Moved from a page-embedded <style> block (audit Batch D). The old block hardcoded an
   entire parallel light/dark palette (#E6EEF9 text, #EFF4FA bands, …) with !important —
   in the light theme the hole rows rendered near-white-on-white (unreadable), and the
   focused cell went light-cream under dark text rules. Brand tokens flip with
   [data-theme] so both themes are readable. The !importants stay: they out-rank
   Bootstrap's .table cell colors, which is why the block had them. */

.scorecard-table td[b-gcj8cyryx5], .scorecard-table th[b-gcj8cyryx5] { vertical-align: middle; }
.scorecard-table input[type=number][b-gcj8cyryx5]::-webkit-inner-spin-button,
.scorecard-table input[type=number][b-gcj8cyryx5]::-webkit-outer-spin-button { -webkit-appearance: none; }
.scorecard-table input:focus[b-gcj8cyryx5] { background: var(--b9-warning-soft) !important; border: 1px solid var(--b9-warning) !important; box-shadow: none; border-radius: 4px; }
.scorecard-table input[b-gcj8cyryx5] { width: 60px; }
.scorecard-table td input[type=text][b-gcj8cyryx5] { width: 100%; min-width: 100px; }

.scorecard-table tbody tr:not(.scorecard-break-row):not(.scorecard-subtotal-row) > td[b-gcj8cyryx5] {
    color: var(--b9-text) !important;
    border-color: var(--b9-border) !important;
}

.scorecard-table tbody tr:not(.scorecard-break-row):not(.scorecard-subtotal-row) input[b-gcj8cyryx5] {
    color: var(--b9-text) !important;
}

.scorecard-table tbody tr:not(.scorecard-break-row):not(.scorecard-subtotal-row) input[b-gcj8cyryx5]::placeholder {
    color: var(--b9-input-placeholder) !important;
    opacity: 1;
}

.scorecard-table tbody tr:not(.scorecard-break-row):not(.scorecard-subtotal-row) td.text-muted[b-gcj8cyryx5] {
    color: var(--b9-text-muted) !important;
}

.scorecard-table .scorecard-break-row > td[b-gcj8cyryx5] {
    background: var(--b9-surface-muted) !important;
    color: var(--b9-text) !important;
    border-color: var(--b9-border-strong) !important;
}

.scorecard-table .scorecard-subtotal-row > td[b-gcj8cyryx5] {
    background: var(--bg-raised) !important;
    color: var(--b9-text) !important;
    border-color: var(--b9-border-strong) !important;
}

.scorecard-table .scorecard-break-row input[b-gcj8cyryx5],
.scorecard-table .scorecard-subtotal-row input[b-gcj8cyryx5] {
    color: var(--b9-text) !important;
}

.scorecard-table .scorecard-break-row input[b-gcj8cyryx5]::placeholder,
.scorecard-table .scorecard-subtotal-row input[b-gcj8cyryx5]::placeholder {
    color: var(--b9-text-soft) !important;
    opacity: 1;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.csc-th-narrow[b-gcj8cyryx5] { min-width: 55px; }
.csc-th-name[b-gcj8cyryx5] { min-width: 120px; }
.csc-th-tee[b-gcj8cyryx5] { min-width: 100px; }
/* Must out-specify `.scorecard-table input` above (the old inline styles won) */
.scorecard-table input.csc-input-num[b-gcj8cyryx5] { width: 55px; }
.scorecard-table input.csc-input-yd[b-gcj8cyryx5] { width: 80px; }
/* /Components/Pages/Events/CommandCenter.razor.rz.scp.css */
.cc-command-bar[b-0m3i1xepsh] {
    top: 0;
    z-index: 100;
    background: var(--bg-elevated);
    border-bottom: 1px solid var(--border-subtle);
    min-height: auto;
}

.container-fluid[b-0m3i1xepsh],
.container-fluid > .cc-command-bar[b-0m3i1xepsh],
.container-fluid > .px-4[b-0m3i1xepsh] {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.cc-command-bar > div[b-0m3i1xepsh] {
    min-width: 0;
}

.cc-command-bar .fw-bold.fs-5[b-0m3i1xepsh] {
    display: inline-block;
    max-width: 100%;
    line-height: 1.25;
    overflow-wrap: anywhere;
    word-break: break-word;
}

[b-0m3i1xepsh] .row > [class*="col-"] {
    min-width: 0;
}

@media (max-width: 767.98px) {
    .cc-command-bar[b-0m3i1xepsh] {
        flex-direction: column;
        align-items: flex-start !important;
    }

    .container-fluid > .cc-command-bar[b-0m3i1xepsh],
    .container-fluid > .px-4[b-0m3i1xepsh] {
        padding-left: 0.85rem !important;
        padding-right: 0.85rem !important;
    }

    .cc-command-bar > div[b-0m3i1xepsh] {
        width: 100%;
    }

    .cc-command-bar > div:first-child[b-0m3i1xepsh] {
        margin-bottom: 0.5rem;
    }

    .cc-command-bar > .cc-command-actions[b-0m3i1xepsh] {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .cc-command-bar .btn[b-0m3i1xepsh] {
        font-size: 0.875rem;
        white-space: normal;
    }
}

/* X14 — "This event was set for <date> and has not started — start it, move the date, or close it."
   One plain sentence on its own row under the title and the actions, in the warning tint, at
   body size. It is a status line, not a control. */
.cc-command-bar > .cc-date-nudge[b-0m3i1xepsh] {
    flex-basis: 100%;
    padding: 0.55rem 0.85rem;
    border-radius: var(--radius-md);
    background: var(--warning-soft);
    color: var(--b9-warning-text);
    font-size: 1rem;
    line-height: 1.4;
}

.cc-transition-success[b-0m3i1xepsh] {
    background: linear-gradient(135deg, rgba(22, 163, 74, 0.08), rgba(16, 185, 129, 0.05));
    border: 1px solid rgba(22, 163, 74, 0.25) !important;
}

.cc-required-badge[b-0m3i1xepsh] {
    font-size: 10px;
}

.cc-table-head th[b-0m3i1xepsh] {
    background: var(--bg-elevated) !important;
    color: var(--text-secondary);
    border-bottom-color: var(--border-subtle);
}

/* Keep event cards and field tables readable on dark surfaces */
[b-0m3i1xepsh] .card {
    background: var(--bg-surface);
    color: var(--bs-body-color);
    border-color: var(--border-subtle);
}

[b-0m3i1xepsh] .card-header,
[b-0m3i1xepsh] .card-footer {
    background: var(--bg-elevated) !important;
    color: var(--bs-body-color);
    border-color: var(--border-subtle);
}

[b-0m3i1xepsh] .card-body,
[b-0m3i1xepsh] .card-body .small,
[b-0m3i1xepsh] .card-body .form-label,
[b-0m3i1xepsh] .card-body .form-check-label,
[b-0m3i1xepsh] .card-body .fw-semibold:not(.btn),
[b-0m3i1xepsh] .card-body dt,
[b-0m3i1xepsh] .card-body dd {
    color: var(--bs-body-color);
}

[b-0m3i1xepsh] .card-body .text-muted {
    color: var(--text-secondary) !important;
}

[b-0m3i1xepsh] .table {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--border-subtle);
}

[b-0m3i1xepsh] .table > :not(caption) > * > * {
    color: var(--bs-body-color);
    border-bottom-color: var(--border-subtle);
}

[b-0m3i1xepsh] .table thead th {
    color: var(--bs-body-color);
    background: var(--bg-elevated);
    border-bottom-color: var(--border-subtle);
}

/* Event field table readability lock: player names/emails/actions must remain legible */
[b-0m3i1xepsh] .cc-field-table {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--border-subtle);
}

[b-0m3i1xepsh] .cc-field-table > :not(caption) > * > * {
    color: var(--bs-body-color) !important;
    border-bottom-color: var(--border-subtle);
}

[b-0m3i1xepsh] .cc-field-table .cc-field-player-name,
[b-0m3i1xepsh] .cc-field-table .cc-field-player-name a {
    color: var(--bs-body-color) !important;
}

[b-0m3i1xepsh] .cc-field-table .cc-field-player-email,
[b-0m3i1xepsh] .cc-field-table .cc-field-player-notes,
[b-0m3i1xepsh] .cc-field-table .text-muted {
    color: var(--text-secondary) !important;
}

/* Only icon glyphs inherit — buttons keep their own semantic colors */
[b-0m3i1xepsh] .cc-field-table .b9-badge {
    color: inherit;
}

/* Disabled/closed surfaces should remain readable (not washed out white) */
[b-0m3i1xepsh] .card .disabled,
[b-0m3i1xepsh] .card [aria-disabled="true"],
[b-0m3i1xepsh] .card .btn:disabled,
[b-0m3i1xepsh] .card .form-control:disabled,
[b-0m3i1xepsh] .card .form-select:disabled {
    color: var(--text-secondary) !important;
    opacity: 0.9;
}

.cc-inline-editor-row td[b-0m3i1xepsh] {
    background: var(--bg-elevated) !important;
    border-top-color: var(--border-subtle);
    border-bottom-color: var(--border-subtle);
}

.cc-inline-editor-panel[b-0m3i1xepsh] {
    background: var(--bg-elevated) !important;
    border-top-color: var(--border-subtle) !important;
}

[b-0m3i1xepsh] .skins-setup-panel {
    background: var(--bg-elevated) !important;
    border-color: var(--border-subtle) !important;
    color: var(--bs-body-color);
}

[b-0m3i1xepsh] .skins-setup-panel .text-muted {
    color: var(--text-secondary) !important;
}

[b-0m3i1xepsh] .wolf-setup-panel {
    background: var(--bg-elevated) !important;
    border-color: var(--border-subtle) !important;
    color: var(--bs-body-color);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(2, 6, 23, 0.12);
}

[b-0m3i1xepsh] .wolf-setup-panel .text-muted {
    color: var(--bs-secondary-color) !important;
    line-height: 1.45;
}

[b-0m3i1xepsh] .wolf-hole-decisions-panel {
    background: var(--bg-elevated) !important;
    border-color: var(--border-subtle) !important;
    color: var(--bs-body-color);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(2, 6, 23, 0.12);
}

[b-0m3i1xepsh] .wolf-hole-decisions-panel .text-muted {
    color: var(--bs-secondary-color) !important;
    line-height: 1.45;
}

[b-0m3i1xepsh] .wolf-hole-decisions-panel .table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

[b-0m3i1xepsh] .wolf-hole-decisions-panel table {
    min-width: 760px;
}

[b-0m3i1xepsh] .wolf-hole-decisions-panel th,
[b-0m3i1xepsh] .wolf-hole-decisions-panel td {
    vertical-align: middle;
    white-space: normal;
}

[b-0m3i1xepsh] .wolf-hole-decisions-panel .form-select.form-select-sm {
    min-height: 36px;
}

[b-0m3i1xepsh] [data-testid="event-skins-individual-summary-card"] .skins-summary-table thead th {
    color: var(--bs-body-color) !important;
    background: var(--bg-elevated) !important;
    border-bottom-color: var(--border-subtle) !important;
}

[b-0m3i1xepsh] [data-testid="event-skins-individual-summary-card"] .skins-summary-table,
[b-0m3i1xepsh] [data-testid="event-skins-two-player-team-card"] .skins-summary-table,
[b-0m3i1xepsh] [data-testid="event-skins-four-player-team-card"] .skins-summary-table {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--border-subtle);
    color: var(--bs-body-color) !important;
}

[b-0m3i1xepsh] [data-testid="event-skins-two-player-team-card"] .skins-summary-table thead th {
    color: var(--bs-body-color) !important;
    background: var(--bg-elevated) !important;
    border-bottom-color: var(--border-subtle) !important;
}

[b-0m3i1xepsh] [data-testid="event-skins-four-player-team-card"] .skins-summary-table thead th {
    color: var(--bs-body-color) !important;
    background: var(--bg-elevated) !important;
    border-bottom-color: var(--border-subtle) !important;
}

[b-0m3i1xepsh] [data-testid="event-skins-individual-summary-card"] .skins-summary-table tbody td {
    color: var(--bs-body-color) !important;
    border-color: var(--border-subtle);
}

[b-0m3i1xepsh] [data-testid="event-skins-two-player-team-card"] .skins-summary-table tbody td {
    color: var(--bs-body-color) !important;
    border-color: var(--border-subtle);
}

[b-0m3i1xepsh] [data-testid="event-skins-four-player-team-card"] .skins-summary-table tbody td {
    color: var(--bs-body-color) !important;
    border-color: var(--border-subtle);
}

[b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table {
    --bs-table-color: var(--bs-body-color);
    --bs-table-bg: transparent;
    --bs-table-border-color: var(--border-default);
    color: var(--bs-body-color) !important;
    border-collapse: separate;
    border-spacing: 0;
}

[b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table thead th {
    color: var(--bs-body-color) !important;
    background: var(--bg-elevated) !important;
    border: 1px solid var(--border-default) !important;
    border-bottom: 2px solid var(--border-default) !important;
    font-weight: 700;
    padding: 0.75rem !important;
    text-align: left;
    white-space: nowrap;
}

[b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table tbody tr {
    border-bottom: 1px solid var(--border-default);
}

[b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table tbody tr:nth-child(odd) {
    background-color: rgba(0, 0, 0, 0.02);
}

@media (prefers-color-scheme: dark) {
    [b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table tbody tr:nth-child(odd) {
        background-color: rgba(255, 255, 255, 0.04);
    }
}

[b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table tbody td {
    color: var(--bs-body-color) !important;
    border: 1px solid var(--border-default);
    border-right: none;
    padding: 0.75rem !important;
    line-height: 1.4;
    white-space: normal;
    word-break: break-word;
}

[b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table tbody td:last-child {
    border-right: 1px solid var(--border-default);
}

[b-0m3i1xepsh] .skins-summary-table th,
[b-0m3i1xepsh] .skins-summary-table td {
    white-space: normal;
    word-break: break-word;
}

[b-0m3i1xepsh] .skins-summary-table th:first-child,
[b-0m3i1xepsh] .skins-summary-table td:first-child {
    min-width: 8.25rem;
}

/* Phase 5A: readability and hierarchy stabilization (Event surfaces) */
[b-0m3i1xepsh] .card-header .fw-semibold,
[b-0m3i1xepsh] .card-header span.fw-semibold {
    color: var(--bs-body-color);
    letter-spacing: 0.01em;
}

[b-0m3i1xepsh] .card-body .form-label,
[b-0m3i1xepsh] .card-body .small.fw-semibold,
[b-0m3i1xepsh] .card-body dt {
    color: var(--text-secondary) !important;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.35;
    margin-bottom: 0.3rem;
}

/* 🔴 :not(.btn) is load-bearing. `.fw-semibold` is a Bootstrap weight utility, so it lands on
   plain labels AND on buttons — the flyer control is `btn … btn-sm fw-semibold`. With an
   unqualified `!important` this rule repainted the ink of every button inside a card body to
   body colour, which is how "Open & Print Flyer" once read at 2.1:1 (it was a green fill then;
   it is a quiet outline now, and the rule still has to keep its hands off the ink either way).
   A button carries its own ink by design; this rule is about running text.
   Caught by the Playwright legibility sweep, not by eye — on green it looked deliberate. */
[b-0m3i1xepsh] .card-body dd,
[b-0m3i1xepsh] .card-body .fw-semibold:not(.btn),
[b-0m3i1xepsh] .card-body .form-check-label,
[b-0m3i1xepsh] .cc-field-table .cc-field-player-name {
    color: var(--bs-body-color) !important;
    line-height: 1.45;
}

[b-0m3i1xepsh] .card-body .text-muted,
[b-0m3i1xepsh] .card-body .small.text-muted,
[b-0m3i1xepsh] .cc-field-table .cc-field-player-email,
[b-0m3i1xepsh] .cc-field-table .cc-field-player-notes {
    color: var(--text-secondary) !important;
    line-height: 1.4;
}

[b-0m3i1xepsh] .card-body dt {
    white-space: nowrap;
}

[b-0m3i1xepsh] .card-body dd {
    overflow-wrap: anywhere;
    word-break: break-word;
}

[b-0m3i1xepsh] .cc-field-table thead th {
    color: var(--text-secondary) !important;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

[b-0m3i1xepsh] .cc-field-table tbody td {
    vertical-align: top;
    padding-top: 0.6rem;
    padding-bottom: 0.6rem;
}

/* Row hover — helps admin scan 40-player lists */
[b-0m3i1xepsh] .cc-field-table tbody tr:hover td {
    background: rgba(255, 255, 255, 0.04);
}

/* Check-in button: pending state — visible border, muted icon, clearly clickable.
   🔴 The values were raised on 2026-09-02, the day this rule first rendered. Written as
   :deep(...) it had never applied, so nobody had seen that 0.38 white measures 3.56:1 on
   this surface — under AA for text, and a long way from "clearly clickable" for the control
   an organizer presses at the registration desk. The INTENT (muted, secondary, obviously
   not-yet-done) is unchanged; only the numbers now meet it. */
[b-0m3i1xepsh] .cc-field-table .cc-btn-checkin-pending {
    border-color: rgba(255, 255, 255, 0.42) !important;
    color: rgba(255, 255, 255, 0.78) !important;
}

/* Notes/pencil button: raise visibility above btn-link default (nearly invisible in dark) */
[b-0m3i1xepsh] .cc-field-table .cc-btn-notes {
    color: var(--text-secondary) !important;
    opacity: 1 !important;
}
[b-0m3i1xepsh] .cc-field-table .cc-btn-notes:hover {
    color: var(--text-primary) !important;
}

@media (max-width: 767.98px) {
    [b-0m3i1xepsh] .wolf-setup-panel,
    [b-0m3i1xepsh] .wolf-hole-decisions-panel {
        padding: 0.75rem !important;
    }

    [b-0m3i1xepsh] .wolf-setup-panel .form-label,
    [b-0m3i1xepsh] .wolf-hole-decisions-panel .form-label {
        font-size: 0.78rem;
        line-height: 1.35;
    }

    [b-0m3i1xepsh] .skins-team-assignment-row {
        padding-bottom: 0.5rem;
        margin-bottom: 0.75rem;
        border-bottom: 1px solid var(--border-subtle);
    }

    [b-0m3i1xepsh] .skins-team-actions .btn {
        flex: 1 1 auto;
        min-width: 8.5rem;
    }

    /* Wolf tables mobile responsiveness */
    [b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .table-responsive {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    [b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table {
        font-size: 0.875rem;
        min-width: 560px;
    }

    [b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table thead th {
        padding: 0.5rem !important;
        white-space: nowrap;
    }

    [b-0m3i1xepsh] [data-testid="event-wolf-standings-card"] .wolf-summary-table tbody td {
        padding: 0.5rem !important;
    }

    [b-0m3i1xepsh] .card-body .form-label,
    [b-0m3i1xepsh] .card-body dt {
        white-space: normal;
    }

    [b-0m3i1xepsh] .card-body dd {
        margin-bottom: 0.55rem;
    }
}

/* ── Left column: "Before you start" always first ───────── */
.cc-left-column[b-0m3i1xepsh] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

/* Remove individual mb-3 from direct card children since gap handles spacing */
.cc-left-column > .card[b-0m3i1xepsh],
.cc-left-column > div > .card[b-0m3i1xepsh] {
    margin-bottom: 0 !important;
}

/* Card order: readiness (0) → Rounds (1) → Details (2) → Registration (3) → specialty cards (10+)
   Without explicit values, all flex children default to order:0 which places them
   BEFORE order:1, so we must pin specialty cards to order:10.

   "Before you start" leads the column: it is the one card that answers "what still needs
   attention", and while it carried no cc-card-* class it fell into the order:10 catch-all
   below and sank under Details and Registration — roughly a screen down on a real event
   (UX-013 regressed exactly this way). The :not() below is load-bearing: that selector is
   more specific than .cc-card-readiness, so leaving it out puts the card straight back at
   the bottom. Pinned by EventSetupSpineAndReadinessAgreementTests. */
.cc-card-readiness[b-0m3i1xepsh]    { order: 0; }
/* Legacy: the Rounds card moved out to the full-width .cc-rr row, so nothing carries this
   class today. Kept as the reserved slot — do not read it as a description of the page. */
.cc-card-rounds[b-0m3i1xepsh]       { order: 1; }
.cc-card-details[b-0m3i1xepsh]      { order: 2; }
.cc-card-registration[b-0m3i1xepsh] { order: 3; }
/* All other direct .card children (Share, Wolf, Skins, Reports, etc.) come after */
.cc-left-column > .card:not(.cc-card-readiness):not(.cc-card-rounds):not(.cc-card-details):not(.cc-card-registration)[b-0m3i1xepsh] { order: 10; }

/* Clickable card header */
.cc-left-column .card-header[style*="cursor:pointer"]:hover[b-0m3i1xepsh] {
    background: var(--bg-raised, var(--bg-elevated)) !important;
}

/* ── Rounds list — side-by-side for multi-round events ─── */
.cc-rounds-list[b-0m3i1xepsh] {
    display: grid;
    grid-template-columns: 1fr;
}

/* 2+ rounds: side by side on screens ≥ 480px */
@media (min-width: 480px) {
    .cc-rounds-list--multi[b-0m3i1xepsh] {
        grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    }
}

/* ── Round Cards — Tile Grid Design ─────────────────────── */
.cc-round-card[b-0m3i1xepsh] {
    border-bottom: 1px solid var(--border-subtle);
    padding: 1rem 1rem 0.875rem;
}

/* In multi-round grid: right-border divides columns, no bottom-border */
@media (min-width: 480px) {
    .cc-rounds-list--multi .cc-round-card[b-0m3i1xepsh] {
        border-bottom: none;
        border-right: 1px solid var(--border-subtle);
    }

    .cc-rounds-list--multi .cc-round-card:last-child[b-0m3i1xepsh] {
        border-right: none;
    }
}

.cc-round-card:last-child[b-0m3i1xepsh] {
    border-bottom: none;
}

/* Round identity: name + date */
.cc-round-identity[b-0m3i1xepsh] {
    margin-bottom: 0.75rem;
}

.cc-round-title[b-0m3i1xepsh] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.2;
}

.cc-round-meta[b-0m3i1xepsh] {
    font-size: 0.8125rem;
    color: var(--text-secondary);
    margin-top: 0.125rem;
}

/* ── Scoring status toggle (full-width, clickable) ─── */
.cc-scoring-toggle[b-0m3i1xepsh] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    padding: 0.625rem 0.875rem;
    border-radius: 0.625rem;
    border: 1.5px solid;
    background: transparent;
    cursor: pointer;
    text-align: left;
    transition: opacity 0.15s;
    margin-bottom: 0.75rem;
}

.cc-scoring-toggle--open[b-0m3i1xepsh] {
    border-color: var(--success, #22c55e);
    color: var(--success, #22c55e);
}

.cc-scoring-toggle--closed[b-0m3i1xepsh] {
    border-color: var(--border-subtle);
    color: var(--text-secondary);
}

.cc-scoring-toggle:hover[b-0m3i1xepsh] {
    opacity: 0.75;
}

.cc-scoring-toggle-icon[b-0m3i1xepsh] {
    font-size: 1.25rem;
    flex-shrink: 0;
}

.cc-scoring-toggle-body[b-0m3i1xepsh] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    line-height: 1.2;
}

.cc-scoring-toggle-label[b-0m3i1xepsh] {
    font-size: 0.875rem;
    font-weight: 600;
}

.cc-scoring-toggle-hint[b-0m3i1xepsh] {
    font-size: 0.6875rem;
    opacity: 0.65;
}

/* Read-only scoring badge */
.cc-scoring-badge[b-0m3i1xepsh] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.375rem 0.75rem;
    border-radius: 2rem;
    font-size: 0.8125rem;
    font-weight: 600;
    margin-bottom: 0.75rem;
}

.cc-scoring-badge--open[b-0m3i1xepsh] {
    background: var(--success-soft, rgba(34, 197, 94, 0.12));
    color: var(--success, #22c55e);
}

.cc-scoring-badge--closed[b-0m3i1xepsh] {
    background: var(--bg-elevated);
    color: var(--text-secondary);
}

/* ── Primary tile grid (2-col, large tap targets) ─── */
.cc-round-tiles[b-0m3i1xepsh] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

/* Single tile: full-width when only one child */
.cc-round-tiles > :only-child[b-0m3i1xepsh] {
    grid-column: 1 / -1;
}

.cc-tile[b-0m3i1xepsh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 1rem 0.5rem;
    border-radius: 0.625rem;
    border: 1.5px solid var(--border-subtle);
    background: var(--bg-elevated);
    color: var(--text-primary);
    text-decoration: none;
    min-height: 88px;
    gap: 0.25rem;
    cursor: pointer;
    transition: transform 0.1s, background 0.15s;
}

.cc-tile:hover[b-0m3i1xepsh] {
    transform: translateY(-2px);
    text-decoration: none;
    color: var(--text-primary);
    background: var(--bg-raised, var(--bg-elevated));
}

.cc-tile-icon[b-0m3i1xepsh] {
    font-size: 1.5rem;
    line-height: 1;
    display: block;
}

.cc-tile-label[b-0m3i1xepsh] {
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.2;
}

.cc-tile-sub[b-0m3i1xepsh] {
    font-size: 0.6875rem;
    opacity: 0.65;
    line-height: 1.2;
}

/* Pairings tile — blue */
.cc-tile--pairings[b-0m3i1xepsh] {
    background: var(--brand-soft, rgba(59, 130, 246, 0.1));
    border-color: var(--brand, #3b82f6);
    color: var(--b9-primary-text);
}

.cc-tile--pairings:hover[b-0m3i1xepsh] {
    background: var(--brand-soft, rgba(59, 130, 246, 0.2));
    color: var(--b9-primary-text);
}

.cc-tile--pairings .cc-tile-sub[b-0m3i1xepsh] {
    color: var(--b9-primary-text);
    opacity: 0.7;
}

/* Enter Scores tile — green */
.cc-tile--scores[b-0m3i1xepsh] {
    background: var(--success-soft, rgba(34, 197, 94, 0.1));
    border-color: var(--success, #22c55e);
    color: var(--success, #22c55e);
}

.cc-tile--scores:hover[b-0m3i1xepsh] {
    background: var(--success-soft, rgba(34, 197, 94, 0.2));
    color: var(--success, #22c55e);
}

.cc-tile--scores .cc-tile-sub[b-0m3i1xepsh] {
    color: var(--success, #22c55e);
    opacity: 0.7;
}

/* Results tile (closed events) — amber */
.cc-tile--results[b-0m3i1xepsh] {
    background: var(--warning-soft, rgba(245, 158, 11, 0.1));
    border-color: var(--warning, #f59e0b);
    color: var(--warning, #f59e0b);
}

.cc-tile--results:hover[b-0m3i1xepsh] {
    background: var(--warning-soft, rgba(245, 158, 11, 0.2));
    color: var(--warning, #f59e0b);
}

.cc-tile--results .cc-tile-sub[b-0m3i1xepsh] {
    opacity: 0.7;
}

/* ── Secondary: Scorecards (full-width) ─── */
.cc-round-secondary-btn[b-0m3i1xepsh] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    width: 100%;
    padding: 0.625rem 0.875rem;
    border-radius: 0.5rem;
    border: 1px solid var(--border-subtle);
    background: var(--bg-elevated);
    color: var(--text-primary);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
    transition: background 0.15s;
}

.cc-round-secondary-btn:hover[b-0m3i1xepsh] {
    background: var(--bg-raised, var(--bg-elevated));
    text-decoration: none;
    color: var(--text-primary);
}

.cc-round-secondary-btn > i[b-0m3i1xepsh] {
    font-size: 1rem;
    flex-shrink: 0;
}

.cc-round-secondary-btn > span:first-of-type[b-0m3i1xepsh] {
    flex: 1;
}

.cc-round-secondary-hint[b-0m3i1xepsh] {
    font-size: 0.6875rem;
    color: var(--text-secondary);
    white-space: nowrap;
}

/* ── Tertiary: small text links ─── */
.cc-round-tertiary[b-0m3i1xepsh] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.25rem 0 0.125rem;
}

.cc-tertiary-link[b-0m3i1xepsh] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-size: 0.8125rem;
    color: var(--text-secondary);
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    text-decoration: none;
    transition: color 0.15s;
}

.cc-tertiary-link:hover[b-0m3i1xepsh] {
    color: var(--text-primary);
    text-decoration: none;
}

/* ── Full-width Rounds Row (.cc-rr) ─────────────────────────────── */
.cc-rr[b-0m3i1xepsh] {
    display: grid;
    grid-template-columns: 160px 1fr auto;
    /* 4 rows: identity/toggle/buttons · scheduled-open status · links · editor */
    grid-template-rows: auto auto auto auto;
    align-items: center;
    column-gap: 1.25rem;
    padding: 0.875rem 1.25rem;
}

.cc-rr--sep[b-0m3i1xepsh] {
    border-bottom: 1px solid var(--border-subtle);
}

.cc-rr-identity[b-0m3i1xepsh] {
    grid-column: 1;
    grid-row: 1;
}

.cc-rr-num[b-0m3i1xepsh] {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-primary);
}

.cc-rr-date[b-0m3i1xepsh] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 2px;
}

/* Scoring toggle button + read-only badge */
.cc-rr-toggle[b-0m3i1xepsh],
.cc-rr-badge[b-0m3i1xepsh] {
    grid-column: 2;
    grid-row: 1;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.28rem 0.7rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 600;
    justify-self: start;
}

.cc-rr-toggle[b-0m3i1xepsh] {
    border: 1.5px solid;
    background: transparent;
    cursor: pointer;
    transition: opacity 0.15s;
    /* Phase E: opening and closing scoring is THE event-day tap, made on a phone, often
       in sunlight. It was ~29px tall. */
    min-height: 48px;
}

.cc-rr-toggle:hover[b-0m3i1xepsh] {
    opacity: 0.72;
}

.cc-rr-badge[b-0m3i1xepsh] {
    border: none;
}

.cc-rr-open[b-0m3i1xepsh] {
    color: var(--success, #22c55e);
    border-color: var(--success, #22c55e);
    background: var(--success-soft, rgba(34,197,94,0.08));
}

.cc-rr-closed[b-0m3i1xepsh] {
    color: var(--text-secondary);
    border-color: var(--border-default);
    background: var(--bg-raised);
}

.cc-rr-dot[b-0m3i1xepsh] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    flex-shrink: 0;
}

.cc-rr-hint[b-0m3i1xepsh] {
    font-size: 0.68rem;
    opacity: 0.6;
    font-weight: 400;
}

/* Primary action buttons */
.cc-rr-btns[b-0m3i1xepsh] {
    grid-column: 3;
    grid-row: 1;
    display: flex;
    gap: 0.5rem;
    flex-wrap: nowrap;
}

/* Secondary text links row */
/* Scheduled scoring-open status — sits directly under the scoring toggle it describes. */
.cc-rr-autoopen[b-0m3i1xepsh] {
    grid-column: 1 / -1;
    grid-row: 2;
    font-size: 0.8rem;
    margin-top: 0.375rem;
    display: flex;
    align-items: center;
}

.cc-rr-links[b-0m3i1xepsh] {
    grid-column: 1 / -1;
    grid-row: 3;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    padding-top: 0.4rem;
    margin-top: 0.4rem;
    border-top: 1px solid var(--border-subtle);
}

.cc-rr-link[b-0m3i1xepsh] {
    font-size: 0.78rem;
    color: var(--text-secondary);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: color 0.12s;
}

.cc-rr-link:hover[b-0m3i1xepsh] {
    color: var(--text-primary);
    text-decoration: underline;
}

/* Event settings page (UX-014/015) — the full-width home for the details form, and the
   secondary nav that finally makes Sponsors / Import / Tee sheet reachable without digging
   through the form itself. */
.cc-settings-page[b-0m3i1xepsh] {
    max-width: 980px;
}

.cc-settings-nav[b-0m3i1xepsh] {
    display: flex;
    flex-wrap: wrap;
    gap: 1.25rem;
    padding: 0 0 0.9rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--border-subtle);
}

.cc-settings-nav a[b-0m3i1xepsh] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 48px;
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--text-secondary);
    text-decoration: none;
}

.cc-settings-nav a:hover[b-0m3i1xepsh] {
    color: var(--b9-primary-text);
    text-decoration: underline;
}

/* Add / remove a round (UX-008) — a quiet footer under the round list, not a
   headline action: changing the round count is rare and deliberate. */
.cc-rr-manage[b-0m3i1xepsh] {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    flex-wrap: wrap;
    padding: 0.7rem 1.25rem 0.85rem;
    border-top: 1px solid var(--border-subtle);
}

.cc-rr-manage .cc-rr-link[b-0m3i1xepsh] {
    /* ≥48px touch target on a card people use on a phone at the course. */
    min-height: 48px;
}

.cc-rr-manage-note[b-0m3i1xepsh] {
    font-size: 0.78rem;
    color: var(--text-muted);
}

/* Inline round editor (date + tee override) */
.cc-rr-editor[b-0m3i1xepsh] {
    grid-column: 1 / -1;
    grid-row: 4;
    padding: 0.75rem;
    background: var(--brand-soft, rgba(59,130,246,0.06));
    border-radius: 8px;
    margin-top: 0.625rem;
    border: 1px solid var(--border-subtle);
}

/* Mobile: single-column stack */
@media (max-width: 767.98px) {
    .cc-rr[b-0m3i1xepsh] {
        grid-template-columns: 1fr;
        grid-template-rows: auto auto auto auto auto auto;
        gap: 0.5rem;
        padding: 0.875rem 1rem;
    }

    .cc-rr-identity[b-0m3i1xepsh] { grid-column: 1; grid-row: 1; }

    .cc-rr-toggle[b-0m3i1xepsh],
    .cc-rr-badge[b-0m3i1xepsh] { grid-column: 1; grid-row: 2; }

    /* Directly under the toggle on mobile too — it explains that toggle. */
    .cc-rr-autoopen[b-0m3i1xepsh] {
        grid-column: 1;
        grid-row: 3;
        margin-top: 0;
    }

    .cc-rr-btns[b-0m3i1xepsh] {
        grid-column: 1;
        grid-row: 4;
        flex-wrap: wrap;
    }

    .cc-rr-btns .btn[b-0m3i1xepsh] {
        flex: 1;
        min-width: 120px;
    }

    .cc-rr-links[b-0m3i1xepsh] {
        grid-column: 1;
        grid-row: 5;
        gap: 0.875rem;
        border-top: 1px solid var(--border-subtle);
    }

    .cc-rr-editor[b-0m3i1xepsh] {
        grid-column: 1;
        grid-row: 6;
    }
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.cc-clickable[b-0m3i1xepsh] { cursor: pointer; }

.cc-th-hole[b-0m3i1xepsh] { width: 72px; }
.cc-th-wolf[b-0m3i1xepsh] { width: 150px; }
.cc-th-mode[b-0m3i1xepsh] { width: 180px; }

.cc-tee-select[b-0m3i1xepsh] { min-width: 90px; font-size: .75rem; }
/* Payment and check-in chips in the field table. These were font-size .7rem / padding 1px 7px,
   which rendered about 20px tall — and their companion class "btn btn-xs" is defined nowhere
   (Bootstrap has no btn-xs), so nothing else was adding height. Check-in is the one action performed
   on a phone at a registration desk on event morning, so it has to meet the project's 48px rule.
   The visual weight is kept small; the TARGET is what grows. */
.cc-chip-btn[b-0m3i1xepsh] {
    font-size: .78rem;
    padding: .35rem .7rem;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
}

/* On a real touch viewport give them the full 48. Desks are phones.
   The field-table card layout re-states this at (max-width: 767.98px) because its selectors are more
   specific than this one; the two must agree, and a guard test enforces it. */
@media (max-width: 992px) {
    .cc-chip-btn[b-0m3i1xepsh] { min-height: 48px; min-width: 48px; }
}
.cc-icon-sm[b-0m3i1xepsh] { font-size: .75rem; }

/* ── Skins pot (optional buy-in) ─────────────────────────────────────────────
   The in/out tick is the control an organizer taps most while standing at the
   first tee, so it gets a real 48px target rather than the default 1rem box. */
[b-0m3i1xepsh] .cc-skins-pot-check {
    width: 1.5rem;
    height: 1.5rem;
    margin: 0;
    cursor: pointer;
}

[b-0m3i1xepsh] [data-testid="cc-skins-pot-table"] tbody td:first-child {
    padding: 0.75rem 0.5rem;
    min-width: 48px;
}

[b-0m3i1xepsh] [data-testid="cc-skins-pot-table"] tbody tr {
    min-height: 48px;
}

.cc-skins-buyin-group[b-0m3i1xepsh] { max-width: 10rem; }

/* ── Readiness fix-it links (UX-013) ─────────────────────────
   Each failing readiness row now carries the way to the fix, not just its name. */
.cc-readiness-fix[b-0m3i1xepsh] {
    display: inline-block;
    margin-top: .15rem;
    font-size: .8rem;
    font-weight: 600;
    /* --brand-hover is a FILL colour (#2563EB); as the writing on the readiness card it measured
       3.45:1 at 375px, under the 4.5 bar. --b9-primary-text is the palette's ink variant and already
       flips per theme (#93C5FD dark, #1E40AF light), so this needs no theme selector. */
    color: var(--b9-primary-text, var(--brand-hover));
    text-decoration: none;
    border: 0;
    background: none;
}

.cc-readiness-fix:hover[b-0m3i1xepsh] { text-decoration: underline; color: var(--b9-primary-text, var(--brand-hover)); }

/* NOTE — both rules that used to live here are gone, deliberately.
   They existed only for the in-page details editor: one capped the widened column so form rows
   stayed readable, the other pushed the readiness card below the open form. That editor is gone;
   this column is always a sidebar and editing happens on /events/{id}/settings, which renders
   its own branch. Do not reintroduce a widened variant of this column — it is what put the form
   under an 89-player field, and then what sorted the readiness card on top of it. */

/* Cards outstanding — the live count during play. Muted while waiting rather than alarming: a card
   still out at hole 6 is normal, and a red badge on every ordinary round teaches people to ignore it. */
.cc-cards-in[b-0m3i1xepsh] {
    display: inline-flex;
    align-items: center;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    border: 1px solid var(--border-default);
    white-space: nowrap;
}
.cc-cards-in--waiting[b-0m3i1xepsh] { color: var(--text-muted); }
.cc-cards-in--ok[b-0m3i1xepsh]      { color: var(--success-fg, var(--text-muted)); }

/* A withdrawn player stays in the field list marked WD — the golf convention, and somewhere to put
   the undo. The row has carried this class since that change but no stylesheet ever defined it, so
   a withdrawal read exactly like a competitor. Muted rather than struck through or red: they are a
   real entrant with a real outcome, not an error and not deleted. */
.cc-field-withdrawn[b-0m3i1xepsh] {
    opacity: 0.65;
}
.cc-field-withdrawn .cc-field-player-name[b-0m3i1xepsh] {
    color: var(--text-muted);
    font-weight: 500;
}

/* The cards-in chip as a real button — the outstanding names used to live only in a native title
   tooltip, which does not exist on the phone an organiser actually holds on the first tee. */
.cc-cards-in--button[b-0m3i1xepsh] {
    border: 1px solid var(--border-subtle);
    background: transparent;
    cursor: pointer;
    font: inherit;
    min-height: 44px;
}

.cc-cards-in--button:hover[b-0m3i1xepsh] { border-color: var(--brand-soft); }
.cc-cards-in--button:focus-visible[b-0m3i1xepsh] { outline: 2px solid var(--brand-soft); outline-offset: 2px; }

.cc-outstanding-panel[b-0m3i1xepsh] {
    padding: .75rem 1rem 1rem;
    border-bottom: 1px solid var(--border-subtle);
    background: var(--bg-raised);
}

.cc-outstanding-note[b-0m3i1xepsh] {
    font-size: .9rem;
    color: var(--text-muted);
}

.cc-outstanding-list[b-0m3i1xepsh] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    max-height: 15rem;
    overflow-y: auto;
}

.cc-outstanding-list li[b-0m3i1xepsh] {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .6rem;
    align-items: baseline;
    justify-content: space-between;
    font-size: .9rem;
    padding: .3rem .1rem;
    border-bottom: 1px solid var(--border-subtle);
}

.cc-outstanding-list li:last-child[b-0m3i1xepsh] { border-bottom: 0; }
.cc-outstanding-name[b-0m3i1xepsh] { color: var(--text-primary); font-weight: 600; }
.cc-outstanding-state[b-0m3i1xepsh] { color: var(--text-muted); font-size: .84rem; }

/* "Updated 2:14 PM" beside the live cards figure. A number that refreshes itself is only
   trustworthy if it admits its own age — and if a tick fails, this is what shows it went quiet. */
.cc-live-stamp[b-0m3i1xepsh] {
    font-size: .72rem;
    color: var(--text-muted);
    margin-left: .5rem;
    white-space: nowrap;
}

/* At phone width the Rounds header is already tight (chip + Leaderboard + TV View). Measured at
   375px the stamp pushed the row to 401px, so it drops to its own line rather than widening the
   page — a horizontal scrollbar on the event page is exactly what the UX rules forbid. */
@media (max-width: 767.98px) {
    .cc-live-stamp[b-0m3i1xepsh] {
        margin-left: 0;
        flex-basis: 100%;
        order: 99;
    }

    .cc-cards-in--button[b-0m3i1xepsh] { min-height: 48px; }
}

/* The Rounds header carries the cards chip, the live stamp, View Leaderboard and TV View. Bootstrap's
   d-flex does not wrap, so at 375px the row measured 459px wide and scrolled the whole event page
   sideways — which the UX rules forbid outright. Wrap it instead of shrinking the controls. */
@media (max-width: 767.98px) {
    .cc-rounds-header[b-0m3i1xepsh] {
        flex-wrap: wrap;
        gap: .5rem;
    }

    .cc-rounds-header > *[b-0m3i1xepsh] { flex: 0 1 auto; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   A3 — the field, on the phone the organizer actually carries.

   The table measured 712px inside a 291px .table-responsive at 390px. It could
   scroll, but nothing said so: no visible scrollbar, no fade, no hint. So "Mark
   checked in" sat at x=666 and "Withdraw" at x=761 — off-screen right, on the one
   screen used at the registration desk on event morning. They did not look
   disabled or missing; they simply were not there.

   🔴 Written first with ::deep ... — which is NOT Blazor syntax (it is ::deep) and compiles to
   a malformed selector the browser drops silently. The rules were in the bundle, the page looked
   untouched, and the measurement said 712px still. The rest of this file has the same mistake in
   113 places; see the report before switching any of them on.

   Reflowed rather than rebuilt: each row becomes a stacked card at phone widths
   and every cell names itself from data-label. ONE row template still serves both
   layouts — a second mobile-only markup block would have duplicated the payment
   cycle, the notes editor, check-in and withdraw, and those two copies would have
   drifted on a live admin surface.
   ───────────────────────────────────────────────────────────────────────────── */
@media (max-width: 767.98px) {
    /* The wrapper no longer has anything to scroll. */
    [b-0m3i1xepsh] .cc-field-table-wrap { overflow-x: visible; }

    [b-0m3i1xepsh] .cc-field-table thead {
        position: absolute;
        width: 1px; height: 1px;
        overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;   /* kept for screen readers */
    }

    [b-0m3i1xepsh] .cc-field-table,
    [b-0m3i1xepsh] .cc-field-table tbody,
    [b-0m3i1xepsh] .cc-field-table tr { display: block; width: 100%; }

    [b-0m3i1xepsh] .cc-field-table tbody tr {
        border: 1px solid var(--border-subtle);
        border-radius: 10px;
        padding: 0.5rem 0.75rem;
        margin-bottom: 0.6rem;
        background: var(--bg-elevated);
    }

    [b-0m3i1xepsh] .cc-field-table tbody td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        width: 100%;
        border: 0 !important;
        padding: 0.3rem 0;
        text-align: left !important;
    }

    /* The label the hidden header used to carry.
       🔴 Was written `:not([data-label=""]::before)` — a pseudo-element INSIDE :not() is invalid, so
       every browser dropped the whole rule and the cards showed a bare "Unpaid" chip and a bare
       tick with no caption. Found by reading the cards, not the stylesheet (O02). */
    [b-0m3i1xepsh] .cc-field-table tbody td[data-label]:not([data-label=""])::before {
        content: attr(data-label);
        font-size: 0.75rem;
        font-weight: 600;
        letter-spacing: 0.02em;
        color: var(--text-secondary);
        flex: 0 0 auto;
    }

    /* The row number is noise once the rows are cards. */
    [b-0m3i1xepsh] .cc-field-table tbody td.cc-fc-num { display: none; }

    /* The name leads, on its own line, at full size. */
    [b-0m3i1xepsh] .cc-field-table tbody td.cc-fc-player {
        display: block;
        padding-bottom: 0.35rem;
    }
    [b-0m3i1xepsh] .cc-field-table tbody td.cc-fc-player::before { content: none; }

    /* Withdraw / Put back in is a real full-width control, not a 40px cell edge. */
    [b-0m3i1xepsh] .cc-field-table tbody td.cc-fc-action { padding-top: 0.45rem; }
    [b-0m3i1xepsh] .cc-field-table tbody td.cc-fc-action .btn { width: 100%; }

    /* Tap targets, not table chrome — and they must not undercut the floor set above.
       This rule used to say 40px. Both media queries match at 375px, and this one is later AND more
       specific (three classes plus an element against one class), so it silently won: the chips the
       `cc-6` fix had just raised to 48 went back to 40, in the card layout that only exists on a
       phone — the one place they were ever the problem. Measured on a real 30-player event at 375px:
       payment chip 66x40, check-in chip 48x40, per-player tee select 250x40, ninety controls under
       the floor. The token-level touch-target guard could not see it, because it reads tokens and
       this is a component overriding one.
       CommandCenterTouchTargetGuardTests now fails if any rule in this file takes them under 48. */
    [b-0m3i1xepsh] .cc-field-table tbody .cc-chip-btn,
    [b-0m3i1xepsh] .cc-field-table tbody .cc-tee-select { min-height: 48px; }

    /* The inline notes editor spans the card rather than a colspan. */
    [b-0m3i1xepsh] .cc-field-table tbody tr.cc-inline-editor-row { padding: 0.75rem; }
    [b-0m3i1xepsh] .cc-field-table tbody tr.cc-inline-editor-row td { display: block; }
}

/* ─────────────────────────────────────────────────────────────────────────────
   O02 — the field on a desktop: scrolls inside its card with a visible edge cue, never clips.

   Measured at 1366px before the fix: a 689px table in a 656px wrapper. The wrapper could scroll,
   but macOS draws no scrollbar and the card edge simply cut "Withdraw" to "Withdr". Two things:
   the table is allowed to FIT (tighter cell padding below 1500px, and an email address may wrap
   rather than hold the column open), and when it still cannot fit, a fade + edge shadow says so.
   The cover gradients ride the content (background-attachment: local), so the cue appears only
   on the side that has more to show and vanishes when everything fits.
   ───────────────────────────────────────────────────────────────────────────── */
@media (min-width: 768px) {
    [b-0m3i1xepsh] .cc-field-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        background:
            linear-gradient(to right, var(--b9-card-bg) 30%, rgba(0, 0, 0, 0)),
            linear-gradient(to right, rgba(0, 0, 0, 0), var(--b9-card-bg) 70%) 100% 0,
            radial-gradient(farthest-side at 0 50%, var(--border-strong), rgba(0, 0, 0, 0)),
            radial-gradient(farthest-side at 100% 50%, var(--border-strong), rgba(0, 0, 0, 0)) 100% 0;
        background-repeat: no-repeat;
        background-size: 40px 100%, 40px 100%, 16px 100%, 16px 100%;
        background-attachment: local, local, scroll, scroll;
    }

    [b-0m3i1xepsh] .cc-field-table .cc-field-player-email {
        overflow-wrap: anywhere;
    }
}

@media (min-width: 768px) and (max-width: 1499.98px) {
    [b-0m3i1xepsh] .cc-field-table > :not(caption) > * > * {
        padding-left: 0.35rem;
        padding-right: 0.35rem;
    }

    [b-0m3i1xepsh] .cc-field-table .cc-tee-select {
        min-width: 84px;
    }
}

/* The refusal bar on /events/{id}/settings.
   Bootstrap's .alert-danger sets its text to --bs-danger-text-emphasis, a very dark red intended
   for a light ground. Composited over the dark theme's translucent band that measures 1.33:1 —
   below AA's 4.5:1 by a distance that makes the sentence effectively invisible, which for a message
   whose entire job is to explain a refused save is the bug it was added to prevent.
   --b9-danger-text is the token that already answers this, and it answers it in both themes. */
.cc-settings-alert[b-0m3i1xepsh] {
    color: var(--b9-danger-text);
}
/* /Components/Pages/Events/ContestAdmin.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════
   CONTEST ADMIN PAGE — ContestAdmin.razor
══════════════════════════════════════════════════════════════ */

/* ── Top bar ──
   O14 — measured at 390px before the fix: the title shrank to nothing and the "Round 1" chip was
   painted under "+ New Contest" ("Roun|"). Nothing in this bar may be clipped or overlapped, so
   every level of it WRAPS instead of shrinking. */
.cad-bar[b-mubisuld6q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1.25rem;
    background: var(--bg-elevated);
    border-bottom: 1px solid var(--border-default);
    gap: 0.75rem 1rem;
}

.cad-bar-left[b-mubisuld6q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.cad-back[b-mubisuld6q] {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 0.875rem;
    white-space: nowrap;
}

.cad-back:hover[b-mubisuld6q] { color: var(--text-primary); }

.cad-bar-title[b-mubisuld6q] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.cad-bar-event[b-mubisuld6q] {
    font-weight: 600;
    font-size: 1rem;
}

.cad-round-chip[b-mubisuld6q] {
    font-size: 0.875rem;
    padding: 0.35rem 0.6rem;
}

.cad-bar-right[b-mubisuld6q] {
    flex-shrink: 0;
}

.cad-bar-right .btn[b-mubisuld6q] {
    min-height: 48px;
}

@media (max-width: 767.98px) {
    .cad-bar-right[b-mubisuld6q],
    .cad-bar-right .btn[b-mubisuld6q] {
        width: 100%;
    }
}

/* ── Loading / error state ── */
.cad-state-wrap[b-mubisuld6q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 3rem 1.5rem;
    color: var(--text-muted);
}

.cad-state-icon[b-mubisuld6q] { font-size: 2rem; }
.cad-state-text[b-mubisuld6q] { margin: 0; font-size: 0.9rem; }

/* ── Create form ── */
.cad-create-card[b-mubisuld6q] {
    margin: 1rem 1.25rem;
    border: 1px solid var(--brand-ring);
    border-radius: 8px;
    background: var(--brand-soft);
    overflow: hidden;
}

.cad-create-header[b-mubisuld6q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    background: rgba(37,99,235,0.24);
    border-bottom: 1px solid var(--brand-ring);
}

.cad-create-body[b-mubisuld6q] { padding: 1rem; }

/* ── Hole picker ── */
.cad-hole-picker[b-mubisuld6q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.25rem;
}

.cad-hole-btn[b-mubisuld6q] {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 50%;
    border: 1px solid var(--border-default);
    background: var(--bg-raised);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.15s;
    line-height: 1;
    padding: 0;
}

.cad-hole-btn:hover[b-mubisuld6q] { border-color: var(--brand-text); color: var(--brand-text); }

.cad-hole-btn-on[b-mubisuld6q] {
    background: #3b82f6;
    border-color: #2563eb;
    color: #fff;
}

/* A hole is required. The picker is a row of circles rather than a form control, so it cannot
   inherit Bootstrap's .is-invalid treatment — this is that treatment, drawn around the row. */
.cad-hole-picker-invalid[b-mubisuld6q] {
    border: 1px solid var(--danger);
    border-radius: 0.5rem;
    padding: 0.4rem;
    background: var(--danger-soft);
}

.cad-hole-required[b-mubisuld6q] {
    margin-top: 0.35rem;
    font-size: 0.8rem;
    color: var(--danger-text);
}

/* A contest saved before the rule existed. Stated, not hidden: it still shows in the list and can
   still be deleted, and the organizer is told why it cannot be played. */
.cad-contest-nohole[b-mubisuld6q] {
    color: var(--warning-text);
    font-weight: 500;
}

/* ── Empty state ── */
.cad-empty[b-mubisuld6q] {
    text-align: center;
    padding: 3rem 1.5rem;
    color: var(--text-muted);
}

.cad-empty-icon[b-mubisuld6q] { font-size: 2.5rem; display: block; margin-bottom: 0.75rem; color: var(--text-muted); }
.cad-empty-title[b-mubisuld6q] { font-weight: 600; font-size: 1rem; margin: 0 0 0.35rem; color: var(--text-primary); }
.cad-empty-sub[b-mubisuld6q] { font-size: 0.875rem; margin-bottom: 1.25rem; }

/* ── Contest cards ── */
.cad-list[b-mubisuld6q] {
    padding: 1rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.cad-contest-card[b-mubisuld6q] {
    border: 1px solid var(--border-default);
    border-radius: 8px;
    background: var(--bg-elevated);
    overflow: hidden;
    transition: box-shadow 0.15s;
}

.cad-contest-card.cad-expanded[b-mubisuld6q] { box-shadow: 0 2px 12px rgba(0,0,0,.28); }

.cad-contest-header[b-mubisuld6q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    cursor: pointer;
    user-select: none;
    gap: 1rem;
}

.cad-contest-header:hover[b-mubisuld6q] { background: var(--bg-raised); }

.cad-contest-info[b-mubisuld6q] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-width: 0;
}

.cad-contest-name[b-mubisuld6q] {
    font-weight: 600;
    font-size: 0.95rem;
}

.cad-contest-actions[b-mubisuld6q] {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.cad-contest-body[b-mubisuld6q] {
    padding: 0.75rem 1rem 1rem;
    border-top: 1px solid var(--border-default);
    background: var(--bg-raised);
}

.cad-status-row[b-mubisuld6q] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
    margin-bottom: 0.25rem;
}

/* ── Status badges ── */
.cad-status-badge[b-mubisuld6q] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 4px;
    white-space: nowrap;
}

.cad-status-draft[b-mubisuld6q]  { background: var(--bg-raised); color: var(--text-muted); }
.cad-status-open[b-mubisuld6q]   { background: var(--success-soft); color: var(--success-text); }
.cad-status-locked[b-mubisuld6q] { background: var(--warning-soft); color: var(--warning-text); }
.cad-status-final[b-mubisuld6q]  { background: var(--success-soft); color: var(--success-text); border: 1px solid rgba(34,197,94,0.28); }
/* /Components/Pages/Events/Create.razor.rz.scp.css */
/* ============================================================
   Events/Create — scoped styles
   Wizard layout (wiz-*) matches Leagues/Create for UI parity.
   Format card styles (evt-format-*) are event-specific.
============================================================ */

/* ── Shell ── */
.wiz-shell[b-kv18doxnwr] {
    max-width: 1080px;
    margin: 2.5rem auto;
    padding: 0 1rem;
}

/* ── Page header ── */
.wiz-page-header[b-kv18doxnwr] { margin-bottom: 2rem; }
.wiz-back-link[b-kv18doxnwr] { font-size: .825rem; color: var(--text-muted); text-decoration: none; }
.wiz-back-link:hover[b-kv18doxnwr] { color: var(--b9-primary-text); }
.wiz-page-title[b-kv18doxnwr] { font-size: 1.5rem; font-weight: 700; margin: 0; }
.wiz-page-sub[b-kv18doxnwr] { font-size: .875rem; color: var(--text-muted); margin: .25rem 0 0; }

/* ── Type context callout ── */
.wiz-type-context[b-kv18doxnwr] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    background: var(--brand-soft, rgba(59,130,246,0.12));
    border: 1px solid rgba(59,130,246,0.3);
    border-radius: 8px;
    padding: .625rem .875rem;
    font-size: .825rem;
    color: var(--text-primary);
    margin-bottom: 1.25rem;
    line-height: 1.5;
}

/* ── Compact progress indicator (mobile) ── */
.wiz-compact-progress[b-kv18doxnwr] {
    margin-bottom: 1rem;
    padding: .8rem .95rem;
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(15,23,42,0.9), rgba(15,23,42,0.72));
    border: 1px solid rgba(148,163,184,0.25);
}

.wiz-compact-current[b-kv18doxnwr] {
    color: #f8fafc;
    font-size: .95rem;
    font-weight: 700;
}

.wiz-compact-next[b-kv18doxnwr] {
    margin-top: .35rem;
    color: #cbd5e1;
    font-size: .85rem;
}

/* ── Sidebar step list ── */
.wiz-grid[b-kv18doxnwr] {
    display: block;
}

.wiz-progress-wrap[b-kv18doxnwr] {
    display: none;
}

.wiz-progress-current[b-kv18doxnwr] {
    padding: .95rem 1rem;
    border-radius: 12px;
    background: rgba(15,23,42,0.72);
    border: 1px solid rgba(148,163,184,0.30);
    margin-bottom: .9rem;
}

.wiz-progress-kicker[b-kv18doxnwr] {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: #93c5fd;
    font-weight: 700;
}

.wiz-progress-title[b-kv18doxnwr] {
    margin-top: .35rem;
    font-size: 1.08rem;
    color: #ffffff;
    font-weight: 700;
    line-height: 1.35;
}

.wiz-progress-next[b-kv18doxnwr] {
    margin-top: .4rem;
    font-size: .82rem;
    color: #cbd5e1;
}

.wiz-progress-list[b-kv18doxnwr] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: .5rem;
}

.wiz-progress-item[b-kv18doxnwr] {
    display: flex;
    align-items: center;
    gap: .65rem;
    border-radius: 10px;
    padding: .55rem .7rem;
    border: 1px solid transparent;
}

.wiz-progress-index[b-kv18doxnwr] {
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .75rem;
    font-weight: 700;
    flex: 0 0 auto;
}

.wiz-progress-label[b-kv18doxnwr] {
    font-size: .9rem;
    line-height: 1.35;
    white-space: normal;
}

.wiz-progress-item-active[b-kv18doxnwr] {
    border-color: rgba(59,130,246,.55);
    background: rgba(37,99,235,.17);
}

.wiz-progress-item-active .wiz-progress-index[b-kv18doxnwr] {
    background: var(--brand);
    color: #ffffff;
    box-shadow: 0 0 0 3px var(--brand-ring);
}

.wiz-progress-item-active .wiz-progress-label[b-kv18doxnwr] {
    color: #f8fafc;
    font-weight: 700;
}

.wiz-progress-item-done[b-kv18doxnwr] {
    border-color: rgba(16,185,129,.34);
    background: rgba(16,185,129,.11);
}

.wiz-progress-item-done .wiz-progress-index[b-kv18doxnwr] {
    background: var(--b9-accent-green);
    color: #ffffff;
}

.wiz-progress-item-done .wiz-progress-label[b-kv18doxnwr] {
    color: #bbf7d0;
    font-weight: 600;
}

.wiz-progress-item-future[b-kv18doxnwr] {
    background: rgba(148,163,184,.08);
    border-color: rgba(148,163,184,.18);
}

.wiz-progress-item-future .wiz-progress-index[b-kv18doxnwr] {
    background: #1e293b;
    color: #e2e8f0;
    border: 1px solid #475569;
}

.wiz-progress-item-future .wiz-progress-label[b-kv18doxnwr] {
    color: #94a3b8;
    font-weight: 500;
}

/* ── Card ── */
.wiz-card[b-kv18doxnwr] {
    --wiz-footer-clearance: clamp(4rem, 10svh, 6rem);
    background:     var(--bg-surface);
    border:         1px solid var(--border-subtle);
    border-radius:  14px;
    overflow:       visible;
    box-shadow:     0 4px 24px rgba(0,0,0,.35), 0 1px 3px rgba(0,0,0,.25);
    display:        flex;
    flex-direction: column;
}

.wiz-card-head[b-kv18doxnwr] {
    display:       flex;
    align-items:   flex-start;
    gap:           1rem;
    padding:       1.5rem 1.75rem 1.25rem;
    border-bottom: 1px solid var(--border-subtle);
}

.wiz-card-icon[b-kv18doxnwr] {
    width: 42px; height: 42px; border-radius: 10px;
    background: var(--brand-soft);
    color:      var(--b9-primary-text);
    display:    flex; align-items: center; justify-content: center;
    font-size:  1.25rem; flex-shrink: 0;
}

.wiz-card-icon-success[b-kv18doxnwr] {
    background: var(--b9-accent-green-soft);
    color:      var(--b9-accent-green);
}

/* An <h2> now (Phase E): it names the step for screen readers and takes focus on a step
   change. Margin reset so promoting the tag changed nothing visually. */
.wiz-card-title[b-kv18doxnwr] { font-size: 1.05rem; font-weight: 700; color: var(--text-primary); line-height: 1.3; margin: 0; }
.wiz-card-title:focus[b-kv18doxnwr] { outline: none; }
.wiz-card-title:focus-visible[b-kv18doxnwr] { outline: 2px solid var(--brand); outline-offset: 3px; border-radius: 4px; }
.wiz-card-sub[b-kv18doxnwr]   { font-size: .84rem; color: var(--text-muted); margin-top: .2rem; line-height: 1.5; }
.wiz-card-body[b-kv18doxnwr]  { padding: 1.75rem 1.75rem calc(2rem + var(--wiz-footer-clearance)); }

/* ── Form fields ── */
.wiz-field[b-kv18doxnwr] { margin-bottom: 1.25rem; }
.wiz-field:last-child[b-kv18doxnwr] { margin-bottom: 0; }

.wiz-label[b-kv18doxnwr] {
    display:        block;
    font-size:      .76rem;
    font-weight:    600;
    letter-spacing: .05em;
    text-transform: uppercase;
    margin-bottom:  .4rem;
    color:          var(--text-secondary);
}

.wiz-required[b-kv18doxnwr] { color: var(--b9-danger); }
.wiz-optional[b-kv18doxnwr] { font-weight: 400; color: var(--text-muted); text-transform: none; letter-spacing: 0; }

.wiz-input[b-kv18doxnwr] {
    background:   var(--bg-app);
    border-color: var(--border-subtle);
    color:        var(--text-primary);
    transition:   border-color 160ms ease, box-shadow 160ms ease;
}

.wiz-input:hover:not(:disabled)[b-kv18doxnwr] { border-color: var(--border-default); }

.wiz-input:focus[b-kv18doxnwr] {
    border-color: var(--brand);
    box-shadow:   0 0 0 3px var(--brand-ring);
    outline:      none;
}

.wiz-input-lg[b-kv18doxnwr] { font-size: 1.05rem; padding: .6rem .9rem; }
.wiz-hint[b-kv18doxnwr]     { font-size: .78rem; color: var(--text-muted); margin-top: .35rem; line-height: 1.45; }
.wiz-row-2[b-kv18doxnwr]    { display: grid; grid-template-columns: 1fr 1fr; gap: 1.25rem; }

@media (max-width: 520px) { .wiz-row-2[b-kv18doxnwr] { grid-template-columns: 1fr; } }

/* ── Waitlist toggle block ── */
.evt-check-block[b-kv18doxnwr] {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    background: rgba(255,255,255,0.03);
    padding: .95rem 1rem;
}

/* ── Review table ── */
.wiz-review[b-kv18doxnwr] {
    border:        1px solid var(--border-subtle);
    border-radius: 10px;
    overflow:      hidden;
    margin-bottom: 1.25rem;
}

.wiz-review-row[b-kv18doxnwr] {
    display:     flex;
    align-items: baseline;
    gap:         .75rem;
    padding:     .8rem 1rem;
    border-bottom: 1px solid var(--border-subtle);
}

.wiz-review-row:last-child[b-kv18doxnwr] { border-bottom: none; }

.wiz-review-label[b-kv18doxnwr] {
    font-size:      .71rem;
    font-weight:    600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color:          var(--text-muted);
    min-width:      110px;
    flex-shrink:    0;
}

.wiz-review-val[b-kv18doxnwr]  { flex: 1; font-size: .9rem; color: var(--text-primary); }

.wiz-review-edit[b-kv18doxnwr] {
    background:    none;
    border:        none;
    /* Phase E: the pencil was a ~20px tap target on a review row people fix things from.
       The hit area is now 48x48 while the icon itself stays the same size. */
    min-width:     48px;
    min-height:    48px;
    display:       inline-flex;
    align-items:   center;
    justify-content: center;
    padding:       .1rem .35rem;
    color:         var(--text-muted);
    font-size:     .8rem;
    border-radius: 4px;
    cursor:        pointer;
    opacity:       .5;
    transition:    opacity 160ms ease, color 160ms ease;
}

.wiz-review-edit:hover[b-kv18doxnwr] { opacity: 1; color: var(--b9-primary-text); }

/* ── Info note ── */
.wiz-info-note[b-kv18doxnwr] {
    border-radius: 8px;
    padding:       .75rem 1rem;
    font-size:     .83rem;
    background:    var(--brand-soft);
    border:        1px solid rgba(29,78,216,0.25);
    color:         var(--b9-primary-text);
    line-height:   1.5;
}

/* ── Review warnings ── */
.wiz-review-warnings[b-kv18doxnwr] {
    border-radius: 8px;
    padding:       .75rem .9rem;
    background:    rgba(245,158,11,0.10);
    border:        1px solid rgba(245,158,11,0.35);
    color:         var(--text-secondary);
    font-size:     .84rem;
    line-height:   1.45;
}

.wiz-review-warnings-title[b-kv18doxnwr] {
    font-size:      .78rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight:    700;
    color:          var(--text-primary);
    margin-bottom:  .35rem;
}

/* ── Footer ── */
.wiz-footer[b-kv18doxnwr] {
    display:          flex;
    justify-content:  space-between;
    align-items:      center;
    padding:          1.25rem 1.75rem;
    border-top:       1px solid var(--border-subtle);
    background:       var(--bg-surface);
}

.wiz-btn-back[b-kv18doxnwr]   { min-width: 90px; }
.wiz-btn-next[b-kv18doxnwr]   { min-width: 130px; }
.wiz-btn-create[b-kv18doxnwr] { min-width: 160px; font-weight: 600; }

/* ── Responsive: show sidebar on wider viewports ── */
@media (min-width: 860px) {
    .wiz-compact-progress[b-kv18doxnwr] { display: none; }
    .wiz-progress-wrap[b-kv18doxnwr] { display: block; margin-bottom: 1.15rem; }
}

@media (min-width: 1100px) {
    .wiz-grid[b-kv18doxnwr] {
        display: grid;
        grid-template-columns: 280px minmax(0, 1fr);
        gap: 1.15rem;
        align-items: start;
    }

    .wiz-progress-wrap[b-kv18doxnwr] {
        margin-bottom: 0;
        position: sticky;
        top: 1rem;
    }
}

@media (max-width: 520px) {
    .wiz-card-head[b-kv18doxnwr],
    .wiz-card-body[b-kv18doxnwr],
    .wiz-footer[b-kv18doxnwr] {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .wiz-compact-current[b-kv18doxnwr] { font-size: .9rem; }
    .wiz-compact-next[b-kv18doxnwr]    { font-size: .8rem; }
}

/* ── Scoring format cards ── */
.evt-format-grid[b-kv18doxnwr] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.75rem;
}

.evt-format-grid-item[b-kv18doxnwr] { min-width: 0; }

.evt-format-card[b-kv18doxnwr] {
    min-height: 90px;
    height: 100%;
    padding: 0.875rem 1rem;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.evt-format-card-copy[b-kv18doxnwr] { min-width: 0; flex: 1 1 auto; }

.evt-format-card-title[b-kv18doxnwr] {
    color: var(--text-primary);
    font-size: 1rem;
    line-height: 1.35;
}

.evt-format-card-desc[b-kv18doxnwr] {
    color: var(--text-secondary) !important;
    font-size: 0.875rem;
    line-height: 1.4;
    margin-top: 0.25rem;
    overflow-wrap: anywhere;
}

.evt-format-card:hover[b-kv18doxnwr] { border-color: var(--b9-primary) !important; }

.evt-format-card-unselected[b-kv18doxnwr] {
    background: var(--bg-surface, #0f172a) !important;
    border-color: var(--border-subtle, #334155) !important;
}

.evt-format-card-unselected .evt-format-card-title[b-kv18doxnwr] { color: var(--text-primary, #f8fafc) !important; }
.evt-format-card-unselected .evt-format-card-desc[b-kv18doxnwr],
.evt-format-card-unselected .evt-format-card-icon[b-kv18doxnwr]  { color: var(--text-secondary, #cbd5e1) !important; }

.evt-format-card-selected[b-kv18doxnwr] {
    background: var(--brand-soft, rgba(59,130,246,0.22)) !important;
    border-color: var(--b9-primary-light, #60a5fa) !important;
}

.evt-format-card-selected .evt-format-card-title[b-kv18doxnwr],
.evt-format-card-selected .evt-format-card-desc[b-kv18doxnwr],
.evt-format-card-selected .evt-format-card-icon[b-kv18doxnwr],
.evt-format-card-selected .evt-format-card-check[b-kv18doxnwr] { color: var(--text-primary, #f8fafc) !important; }

html[data-theme="light"] .evt-format-card-unselected[b-kv18doxnwr] {
    background: #f8fafc !important;
    border-color: #e2e8f0 !important;
}

html[data-theme="light"] .evt-format-card-unselected .evt-format-card-title[b-kv18doxnwr]  { color: #1f2937 !important; }
html[data-theme="light"] .evt-format-card-unselected .evt-format-card-desc[b-kv18doxnwr],
html[data-theme="light"] .evt-format-card-unselected .evt-format-card-icon[b-kv18doxnwr]   { color: #475569 !important; }

html[data-theme="light"] .evt-format-card-selected[b-kv18doxnwr]  { background: #dbeafe !important; border-color: #3b82f6 !important; }
html[data-theme="light"] .evt-format-card-selected .evt-format-card-title[b-kv18doxnwr],
html[data-theme="light"] .evt-format-card-selected .evt-format-card-desc[b-kv18doxnwr],
html[data-theme="light"] .evt-format-card-selected .evt-format-card-icon[b-kv18doxnwr],
html[data-theme="light"] .evt-format-card-selected .evt-format-card-check[b-kv18doxnwr]   { color: #0f172a !important; }

/* ── Side-game panels ── */
.skins-setup-panel[b-kv18doxnwr],
.wolf-setup-panel[b-kv18doxnwr] {
    background: var(--bg-elevated) !important;
    border-color: var(--border-subtle) !important;
    color: var(--bs-body-color);
}

.skins-setup-panel .text-muted[b-kv18doxnwr],
.skins-setup-panel .form-text[b-kv18doxnwr],
.wolf-setup-panel .text-muted[b-kv18doxnwr],
.wolf-setup-panel .form-text[b-kv18doxnwr] { color: var(--text-secondary) !important; }

/* ── Info callout box ── */
.evt-info-callout[b-kv18doxnwr] {
    border: 1px solid var(--border-subtle, #334155);
    border-radius: 0.375rem;
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
}

html[data-theme="light"] .evt-info-callout[b-kv18doxnwr] {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #1f2937;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.evt-format-card[b-kv18doxnwr] { cursor: pointer; }
.evt-team-size-select[b-kv18doxnwr] { max-width: 220px; }

/* ── Club-plan format lock (UX-003) ────────────────────────────
   A gated format is now badged and explained in place instead of navigating the
   organizer to the billing page mid-wizard and discarding their answers. */
.evt-format-lock[b-kv18doxnwr] {
    display: inline-block;
    margin-left: .4rem;
    padding: .05rem .4rem;
    border-radius: 999px;
    border: 1px solid var(--border-default);
    background: var(--bg-app);
    color: var(--text-secondary);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    vertical-align: middle;
}

.wiz-upgrade-note[b-kv18doxnwr] {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: .7rem .9rem;
    border-radius: 8px;
    border: 1px solid var(--border-default);
    background: var(--bg-elevated);
    color: var(--text-secondary);
    font-size: .85rem;
    line-height: 1.5;
}

.wiz-upgrade-note i[b-kv18doxnwr] { color: var(--text-muted); margin-top: .12rem; }
.wiz-upgrade-note strong[b-kv18doxnwr] { color: var(--text-primary); }
.wiz-upgrade-note a[b-kv18doxnwr] { color: var(--b9-primary-text); }

/* ── Tee-set nudge (UX-007) — same amber family as the review warnings ── */
.wiz-warn-note[b-kv18doxnwr] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    border-radius: 8px;
    padding: .6rem .8rem;
    background: var(--b9-warning-soft);
    border: 1px solid var(--b9-warning);
    color: var(--text-secondary);
    font-size: .84rem;
    line-height: 1.45;
}
.wiz-warn-note i[b-kv18doxnwr] { color: var(--b9-warning); margin-top: .1rem; }
.wiz-warn-note a[b-kv18doxnwr] { color: var(--b9-primary-text); font-weight: 600; }

.wiz-review-val-warn[b-kv18doxnwr] {
    color: var(--b9-warning-text);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

/* ── Footer validation marker (UX-001) ─────────────────────────
   The summary renders at the top of a step that can run three screens tall; this
   sits beside the button the organizer actually pressed. */
.wiz-footer-error[b-kv18doxnwr] {
    display: flex;
    align-items: center;
    gap: .4rem;
    color: var(--b9-danger);
    font-size: .82rem;
    font-weight: 600;
    text-align: center;
}

/* ── Advanced disclosures (UX-002) ───────────────────────────
   Same look as the league wizard's — one product, one disclosure grammar. */
.wiz-advanced[b-kv18doxnwr] {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    background: var(--bg-elevated);
    margin-top: .35rem;
    overflow: hidden;
}

.wiz-advanced-summary[b-kv18doxnwr] {
    cursor: pointer;
    padding: .75rem .9rem;
    font-size: .84rem;
    font-weight: 600;
    color: var(--text-secondary);
    list-style: none;
}

.wiz-advanced-summary[b-kv18doxnwr]::-webkit-details-marker { display: none; }

.wiz-advanced-summary[b-kv18doxnwr]::before {
    content: "+";
    margin-right: .45rem;
    color: var(--b9-primary-text);
    font-weight: 700;
}

.wiz-advanced[open] .wiz-advanced-summary[b-kv18doxnwr]::before { content: "-"; }

.wiz-advanced-summary-state[b-kv18doxnwr] {
    font-weight: 400;
    color: var(--text-muted);
}

.wiz-advanced-body[b-kv18doxnwr] {
    padding: .35rem .9rem .95rem;
    border-top: 1px solid var(--border-subtle);
}
/* /Components/Pages/Events/EventHeaderActions.razor.rz.scp.css */
/* The event page header's controls (O01): one primary, at most two secondaries, then More.
   Scoped: the parent's `.cc-command-bar .btn` rules do not reach in here, so the sizes below are
   the whole story. Every control is a 48px target; nothing here is under 14px. */

.cc-actions[b-8a6ki47ps7] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.cc-action[b-8a6ki47ps7] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 48px;
    padding: 0.5rem 1rem;
    font-size: 0.9375rem;
    font-weight: 600;
    white-space: nowrap;
}

/* Status, not an action: the quiet green chip that says teams are in place. */
.cc-teams-chip[b-8a6ki47ps7] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 48px;
    padding: 0.5rem 0.9rem;
    font-size: 0.875rem;
    font-weight: 600;
}

/* ── More ───────────────────────────────────────────────────────────────── */

.cc-more[b-8a6ki47ps7] {
    position: relative;
}

/* Transparent overlay that closes the menu on an outside tap. Just under the menu. */
.cc-more-backdrop[b-8a6ki47ps7] {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
}

.cc-more-menu[b-8a6ki47ps7] {
    position: absolute;
    right: 0;
    top: calc(100% + 0.35rem);
    z-index: 1000;
    min-width: 14rem;
    max-width: min(92vw, 20rem);
    margin: 0;
    padding: 0.35rem;
    list-style: none;
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    box-shadow: var(--b9-card-shadow-md);
}

.cc-more-item[b-8a6ki47ps7] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    min-height: 48px;
    padding: 0.5rem 0.85rem;
    border: 0;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--text-primary);
    font-size: 1rem;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
}

.cc-more-item:hover[b-8a6ki47ps7],
.cc-more-item:focus-visible[b-8a6ki47ps7] {
    background: var(--bg-raised);
    color: var(--text-primary);
}

/* Red is for destructive, and only here — behind a step, never a top-level button. */
.cc-more-item-danger[b-8a6ki47ps7] {
    color: var(--b9-danger-text);
}

.cc-more-item-danger:hover[b-8a6ki47ps7],
.cc-more-item-danger:focus-visible[b-8a6ki47ps7] {
    color: var(--b9-danger-text);
}

.cc-more-divider[b-8a6ki47ps7] {
    height: 1px;
    margin: 0.35rem 0;
    background: var(--border-subtle);
}

@media (max-width: 767.98px) {
    .cc-actions[b-8a6ki47ps7] {
        width: 100%;
    }

    /* On a phone the one thing to do is the widest thing on the row. */
    .cc-action-primary[b-8a6ki47ps7] {
        flex: 1 1 auto;
    }

    /* The menu opens under a full-width row; anchor it to the row's left edge rather than off-screen. */
    .cc-more-menu[b-8a6ki47ps7] {
        right: auto;
        left: 0;
    }
}
/* /Components/Pages/Events/EventRegistration.razor.rz.scp.css */
.ereg-page[b-tkjtozmzwf] {
    min-height: 100vh;
    background: linear-gradient(160deg, #0b1120 0%, #111827 45%, #0f172a 100%);
    color: #e2e8f0;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.ereg-loading[b-tkjtozmzwf],
.ereg-state-page[b-tkjtozmzwf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 40vh;
    text-align: center;
    padding: 2rem;
    color: #94a3b8;
}

.ereg-state-title[b-tkjtozmzwf] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #f8fafc;
    margin-bottom: 0.5rem;
}

.ereg-state-sub[b-tkjtozmzwf] {
    font-size: 0.95rem;
    color: #94a3b8;
}

.ereg-main[b-tkjtozmzwf] {
    padding: 2rem 1rem 2.5rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.ereg-container[b-tkjtozmzwf] {
    max-width: 620px;
    margin: 0 auto;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.ereg-event-context[b-tkjtozmzwf] {
    margin-bottom: 1rem;
}

.ereg-event-org[b-tkjtozmzwf] {
    margin: 0;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #93c5fd;
    font-weight: 700;
}

.ereg-event-name[b-tkjtozmzwf] {
    margin: 0.35rem 0 0;
    color: #f8fafc;
    font-size: 1.75rem;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.ereg-breadcrumb[b-tkjtozmzwf] {
    margin-bottom: 1.25rem;
}

.ereg-back-link[b-tkjtozmzwf] {
    font-size: 0.875rem;
    color: #93c5fd;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.ereg-back-link:hover[b-tkjtozmzwf] {
    color: #bfdbfe;
}

.ereg-submit-error[b-tkjtozmzwf] {
    margin-bottom: 1rem;
    border: 1px solid rgba(248, 113, 113, 0.45);
    background: rgba(127, 29, 29, 0.45);
    color: #fee2e2;
    border-radius: 12px;
    padding: 0.75rem 0.9rem;
    font-size: 0.9rem;
}

/* ── Eligibility card ── */

.ereg-card[b-tkjtozmzwf] {
    background: rgba(15, 23, 42, 0.92);
    border: 1px solid rgba(148, 163, 184, 0.25);
    border-radius: 14px;
    padding: 1.5rem;
    box-shadow: 0 14px 28px rgba(2, 6, 23, 0.45);
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.ereg-card--open[b-tkjtozmzwf] {
    border-left: 4px solid #22c55e;
}

.ereg-card--blocked[b-tkjtozmzwf] {
    border-left: 4px solid #ef4444;
}

.ereg-card--info[b-tkjtozmzwf] {
    border-left: 4px solid #3b82f6;
}

.ereg-card--positive[b-tkjtozmzwf] {
    border-left: 4px solid #22c55e;
}

.ereg-card--muted[b-tkjtozmzwf] {
    border-left: 4px solid #64748b;
}

.ereg-status-heading[b-tkjtozmzwf] {
    font-size: 1.25rem;
    font-weight: 700;
    color: #f8fafc;
    margin: 0 0 0.5rem;
    line-height: 1.25;
}

.ereg-status-message[b-tkjtozmzwf] {
    font-size: 0.95rem;
    color: #cbd5e1;
    margin: 0 0 1.25rem;
    line-height: 1.6;
}

.ereg-confirm-heading[b-tkjtozmzwf] {
    margin: 0 0 0.45rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: #f8fafc;
    line-height: 1.3;
}

.ereg-confirm-message[b-tkjtozmzwf] {
    margin: 0 0 0.9rem;
    color: #cbd5e1;
    font-size: 0.9rem;
    line-height: 1.45;
}

.ereg-confirm-actions[b-tkjtozmzwf] {
    display: grid;
    gap: 0.55rem;
}

.ereg-secondary-btn[b-tkjtozmzwf] {
    width: 100%;
    min-height: 42px;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.45);
    background: rgba(15, 23, 42, 0.45);
    color: #e2e8f0;
    font-size: 0.875rem;
    font-weight: 700;
    white-space: normal;
    overflow-wrap: anywhere;
}

.ereg-secondary-btn:hover[b-tkjtozmzwf] {
    background: rgba(148, 163, 184, 0.12);
}

/* ── Action area ── */

.ereg-action-area[b-tkjtozmzwf] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ereg-primary-btn[b-tkjtozmzwf] {
    display: inline-block;
    padding: 0.675rem 1.25rem;
    border-radius: 10px;
    font-size: 0.9375rem;
    font-weight: 700;
    border: none;
    cursor: not-allowed;
    opacity: 0.55;
    transition: opacity 0.15s;
    width: 100%;
    text-align: center;
    line-height: 1.35;
    white-space: normal;
    overflow-wrap: anywhere;
}

.ereg-primary-btn--open[b-tkjtozmzwf],
.ereg-primary-btn--positive[b-tkjtozmzwf] {
    background: #22c55e;
    color: #052e16;
}

.ereg-primary-btn--blocked[b-tkjtozmzwf] {
    background: #ef4444;
    color: #fff;
}

.ereg-primary-btn--info[b-tkjtozmzwf] {
    background: #3b82f6;
    color: #fff;
}

.ereg-primary-btn--muted[b-tkjtozmzwf] {
    background: #475569;
    color: #e2e8f0;
}

.ereg-action-help[b-tkjtozmzwf] {
    font-size: 0.8125rem;
    color: #94a3b8;
    margin: 0;
    text-align: center;
    line-height: 1.4;
}

/* ── Enabled button state ── */

.ereg-primary-btn--enabled[b-tkjtozmzwf] {
    cursor: pointer;
    opacity: 1;
}

/* ── Sign-in link (renders as styled anchor, not button) ── */

.ereg-primary-btn--link[b-tkjtozmzwf] {
    text-decoration: none;
    display: block;
    cursor: pointer;
    opacity: 1;
    line-height: 1.5;
}

.ereg-primary-btn--link:hover[b-tkjtozmzwf] {
    text-decoration: none;
    opacity: 0.88;
}

/* ── Next step section ── */

.ereg-next-step[b-tkjtozmzwf] {
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(148, 163, 184, 0.25);
}

.ereg-next-step-text[b-tkjtozmzwf] {
    font-size: 0.875rem;
    color: #cbd5e1;
    margin: 0 0 0.5rem;
    line-height: 1.5;
}

.ereg-secondary-link-area[b-tkjtozmzwf] {
    margin-top: 0.8rem;
    padding-top: 0.75rem;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
}

.ereg-next-step-link[b-tkjtozmzwf] {
    font-size: 0.875rem;
    font-weight: 600;
    color: #93c5fd;
    text-decoration: none;
}

.ereg-next-step-link:hover[b-tkjtozmzwf] {
    text-decoration: underline;
}

@media (max-width: 640px) {
    .ereg-main[b-tkjtozmzwf] {
        padding: 1.25rem 0.75rem 2rem;
    }

    .ereg-event-name[b-tkjtozmzwf] {
        font-size: 1.45rem;
    }

    .ereg-card[b-tkjtozmzwf] {
        padding: 1.2rem;
    }

    .ereg-event-org[b-tkjtozmzwf] {
        letter-spacing: 0.08em;
        line-height: 1.35;
    }

    .ereg-status-heading[b-tkjtozmzwf],
    .ereg-confirm-heading[b-tkjtozmzwf] {
        font-size: 1rem;
    }
}

/* ── Sponsor wall — "Thank you to our sponsors" under the registration card ── */
/* Logos sit on light chips so dark logos stay visible on the dark page; wraps on phones. */
.ereg-sponsor-wall[b-tkjtozmzwf] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    margin-top: 1.75rem;
    padding: 1rem;
    border-top: 1px solid rgba(148, 163, 184, 0.18);
}

.ereg-sponsor-wall-label[b-tkjtozmzwf] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.ereg-sponsor-wall-logos[b-tkjtozmzwf] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    max-width: 100%;
}

.ereg-sponsor-wall-logo[b-tkjtozmzwf] {
    height: 40px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    border-radius: 6px;
}

/* ::deep is REQUIRED, not stylistic. The mark is rendered by the shared <SponsorMark />
   child component, so its element never receives THIS component's b-* scope attribute and a
   plain `.ereg-sponsor-wall-logo { }` rule silently does nothing — the logo falls back to its natural
   size (a 1px image renders as 1px). `.ereg-sponsor-wall-logos ::deep` compiles to
   `.ereg-sponsor-wall-logos[b-xxxx] .ereg-sponsor-wall-logo`, which matches because the wrapper IS in this
   component's own markup. Applies to BOTH treatments, so a nameplate occupies the same box
   as the logo beside it. */
.ereg-sponsor-wall-logos[b-tkjtozmzwf]  .ereg-sponsor-wall-logo {
    height: 40px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    border-radius: 6px;
}

/* The route back to your own registration, for a player who lost the confirmation email. */
.ereg-manage-link[b-tkjtozmzwf] {
    margin: .85rem 0 0;
    text-align: center;
    font-size: .9rem;
}

.ereg-manage-link a[b-tkjtozmzwf] {
    color: var(--b9-primary-text, var(--b9-text));
    text-decoration: underline;
    display: inline-block;
    min-height: 44px;
    line-height: 44px;
}

/* ── Guest sign-up form ───────────────────────────────────────────────────────
   Shown when the visitor has no account, or holds one the club has never put on
   its roster. Both used to be dead ends. Tokens only, 48px controls, and the
   labels are real <label for> pairs — this is a player surface and the weakest
   player surface is the one that decides. */
.ereg-guest-form[b-tkjtozmzwf] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1rem;
    padding: 1rem;
    background: var(--b9-card-bg, var(--bg-elevated));
    border: 1px solid var(--border-default);
    border-radius: 12px;
}

.ereg-guest-row[b-tkjtozmzwf] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.ereg-guest-label[b-tkjtozmzwf] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-secondary);
}

.ereg-guest-hint[b-tkjtozmzwf] {
    font-weight: 400;
    color: var(--text-muted);
}

.ereg-guest-form .form-control[b-tkjtozmzwf] {
    min-height: 48px;
    background: var(--b9-input-bg, var(--bg-primary));
    border: 1px solid var(--b9-input-border, var(--border-default));
    color: var(--text-primary);
}

.ereg-guest-form .form-control:focus[b-tkjtozmzwf] {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px var(--brand-soft);
}

/* Signing in stays available and stays secondary — the faster path for a returning
   player, not a toll gate on a first-time one. */
.ereg-signin-alt[b-tkjtozmzwf] {
    margin-top: 0.75rem;
    text-align: center;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.ereg-signin-alt a[b-tkjtozmzwf] {
    color: var(--b9-primary-text);
    font-weight: 600;
}

/* ── The price, on the step where the golfer commits ──────────────────────────
   Deliberately the same shape as RegisterTeam's .rt-fee-pill: the captain and the individual are
   answering the same question ("what does this cost?") on the same kind of screen, and two
   different-looking answers to it would be the drift this pill exists to remove. Tokens are the
   real ones — --success-soft / --success-text are defined in tokens.css for both themes. */
.ereg-fee-pill[b-tkjtozmzwf] {
    display: inline-flex;
    align-items: baseline;
    /* A member rate roughly doubles the line ("Members $75 · Everyone else $100 per player"), and a
       four-figure price or a large accessibility font size stretches it further. Wrapping keeps the
       pill from ever becoming a horizontal-scroll source on a phone. */
    flex-wrap: wrap;
    max-width: 100%;
    gap: 0.4rem;
    margin-top: 0.6rem;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    background: var(--success-soft, rgba(34, 197, 94, 0.14));
    color: var(--success-text, #86EFAC);
    font-weight: 700;
    font-size: 1rem;
}

.ereg-fee-sub[b-tkjtozmzwf] {
    font-weight: 500;
    font-size: 0.8rem;
    opacity: 0.85;
}
/* /Components/Pages/Events/EventScorecards.razor.rz.scp.css */
.spc-topbar[b-lwyckcvlc7] {
    max-width: 1180px;
    margin: 0.9rem auto 0.25rem;
    padding: 0 1rem;
}

.spc-wrap[b-lwyckcvlc7] {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0.65rem 1rem 2rem;
}

.spc-header-card[b-lwyckcvlc7] {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    padding: 1rem;
    box-shadow: var(--b9-card-shadow);
}

.spc-header-row[b-lwyckcvlc7] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.8rem;
}

.spc-header-row h1[b-lwyckcvlc7] {
    margin: 0;
    font-size: 1.35rem;
    color: var(--text-primary);
}

.spc-header-row p[b-lwyckcvlc7] {
    margin: 0.2rem 0 0;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.spc-ready-badge[b-lwyckcvlc7] {
    font-size: 0.8rem;
    padding: 0.45rem 0.6rem;
}

.spc-kpis[b-lwyckcvlc7] {
    margin-top: 0.85rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}

.spc-kpi[b-lwyckcvlc7] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.spc-kpi-label[b-lwyckcvlc7] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted);
}

.spc-kpi-value[b-lwyckcvlc7] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-primary);
}

.spc-metadata[b-lwyckcvlc7] {
    margin-top: 0.45rem;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.spc-metadata--qr-on[b-lwyckcvlc7] {
    color: var(--success, #22c55e);
}

.spc-metadata--qr-upgrade[b-lwyckcvlc7] {
    margin-top: 0.75rem;
    background: var(--brand-soft, rgba(34,197,94,.08));
    border: 1px solid var(--brand-soft, rgba(34,197,94,.2));
    border-radius: 8px;
    padding: 0.6rem 0.9rem;
    color: var(--text-secondary, #cbd5e1);
    font-size: 0.8125rem;
    line-height: 1.5;
}

.spc-upgrade-link[b-lwyckcvlc7] {
    display: inline-block;
    margin-top: 0.3rem;
    color: var(--b9-primary-text);
    font-weight: 600;
    text-decoration: none;
}

.spc-actions[b-lwyckcvlc7] {
    margin-top: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.spc-hero-panel[b-lwyckcvlc7] {
    margin-top: 0.9rem;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    padding: 0.85rem;
    box-shadow: var(--b9-card-shadow);
}

.spc-panel-head h3[b-lwyckcvlc7] {
    margin: 0;
    color: var(--text-primary);
    font-size: 1rem;
}

.spc-panel-head p[b-lwyckcvlc7] {
    margin: 0.15rem 0 0.6rem;
    font-size: 0.83rem;
    color: var(--text-secondary);
}

.spc-preview-frame[b-lwyckcvlc7] {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    overflow: hidden;
    background: var(--bg-surface);
    height: 620px;
}

.spc-preview-frame iframe[b-lwyckcvlc7] {
    width: 100%;
    height: 100%;
    border: 0;
}

.spc-empty[b-lwyckcvlc7] {
    min-height: 260px;
    border: 1px dashed var(--border-default);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.spc-admin-accordion[b-lwyckcvlc7] {
    margin-top: 0.9rem;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    box-shadow: var(--b9-card-shadow);
}

.spc-admin-accordion summary[b-lwyckcvlc7] {
    cursor: pointer;
    padding: 0.8rem 0.95rem;
    user-select: none;
    font-weight: 600;
    color: var(--text-primary);
}

.spc-admin-body[b-lwyckcvlc7] {
    border-top: 1px solid var(--border-subtle);
    padding: 0.85rem 0.95rem 0.95rem;
}

.spc-admin-list[b-lwyckcvlc7] {
    margin: 0;
    display: grid;
    gap: 0.55rem;
}

.spc-admin-list div[b-lwyckcvlc7] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    padding: 0.5rem 0.65rem;
}

.spc-admin-list dt[b-lwyckcvlc7] {
    margin: 0;
    font-size: 0.74rem;
    text-transform: uppercase;
    color: var(--text-muted);
}

.spc-admin-list dd[b-lwyckcvlc7] {
    margin: 0.15rem 0 0;
    font-size: 0.88rem;
    color: var(--text-primary);
    font-weight: 600;
}

.spc-empty-sm[b-lwyckcvlc7] {
    border: 1px dashed var(--border-default);
    border-radius: 10px;
    padding: 0.75rem;
    text-align: center;
    color: var(--text-secondary);
    font-size: 0.88rem;
}

.spc-state[b-lwyckcvlc7] {
    min-height: 42vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: var(--text-secondary);
}

.spc-overlay[b-lwyckcvlc7] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    z-index: 1080;
}

.spc-confirm-card[b-lwyckcvlc7] {
    width: min(32rem, 100%);
}

@media (max-width: 980px) {
    .spc-header-row[b-lwyckcvlc7] {
        flex-direction: column;
        align-items: flex-start;
    }

    .spc-kpis[b-lwyckcvlc7] {
        grid-template-columns: 1fr;
    }

    .spc-preview-frame[b-lwyckcvlc7] {
        height: 440px;
    }
}

/* Transparent overlay that closes the "More" menu on an outside click.
   Sits just below Bootstrap's .dropdown-menu (z-index 1000) so the menu stays clickable. */
.spc-dropdown-backdrop[b-lwyckcvlc7] {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
}

@media print {
    .no-print[b-lwyckcvlc7] {
        display: none !important;
    }
}

/* ── "More" menu alignment without Bootstrap JS ────────────────────────
   The app ships Bootstrap CSS only; .dropdown-menu-end needs Popper's
   [data-bs-popper] attribute to apply right-alignment, so without it the
   menu opens LEFT-edge-aligned and runs past the right of narrow screens.
   Right-align it to its .dropdown parent and cap the width to the phone
   viewport. */
.dropdown .dropdown-menu.show[b-lwyckcvlc7] {
    right: 0;
    left: auto;
    max-width: min(92vw, 320px);
}

/* The printed packet no longer matches the tee sheet. Loud on purpose — an organiser who trusts a
   printout never takes the "regenerate" step that used to be the only place this drift was noticed. */
.spc-stale-banner[b-lwyckcvlc7] {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .9rem 1.1rem;
    margin: 0 0 1rem;
    background: var(--warning-soft);
    border: 1px solid var(--warning-border, var(--border-subtle));
    border-radius: 10px;
    color: var(--text-primary);
}

.spc-stale-banner i[b-lwyckcvlc7] {
    font-size: 1.1rem;
    line-height: 1.4;
    color: var(--warning-fg, var(--text-primary));
    flex: 0 0 auto;
}

.spc-stale-banner strong[b-lwyckcvlc7] { display: block; font-size: .96rem; font-weight: 700; }

.spc-stale-banner span[b-lwyckcvlc7] {
    display: block;
    font-size: .88rem;
    color: var(--text-muted);
    margin-top: .15rem;
    line-height: 1.45;
    max-width: 62ch;
}

@media (max-width: 640px) {
    .spc-stale-banner[b-lwyckcvlc7] { flex-wrap: wrap; }
    .spc-stale-banner .btn[b-lwyckcvlc7] { margin-left: 0 !important; width: 100%; }
}
/* /Components/Pages/Events/EventTeamAdmin.razor.rz.scp.css */
/* Team builder — select-then-place.
   Deliberately mirrors the Pairings page's chip/target treatment so learning one screen teaches the
   other (WCAG 3.2.4 Consistent Identification). Tokens only, no raw colours. */

/* ── Build-method tiles ──────────────────────────────────────────────────── */
.etb-tiles[b-goscrmn58y] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 0.6rem;
}

.etb-tile[b-goscrmn58y] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    text-align: left;
    padding: 0.75rem 0.9rem;
    min-height: var(--touch-target-min, 48px);
    border-radius: 10px;
    border: 1.5px solid var(--border-default);
    background: var(--bg-raised);
    color: var(--text-primary);
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
}

.etb-tile:hover[b-goscrmn58y] { border-color: var(--brand); background: var(--brand-soft); }
.etb-tile:focus-visible[b-goscrmn58y] { outline: none; box-shadow: var(--b9-focus-ring); }

.etb-tile--on[b-goscrmn58y] {
    border-color: var(--brand);
    background: var(--brand-soft);
    box-shadow: 0 0 0 2px var(--brand-ring);
}

.etb-tile-icon[b-goscrmn58y] { font-size: 1.1rem; color: var(--brand-text, var(--brand)); }
.etb-tile-title[b-goscrmn58y] { font-weight: 600; font-size: 0.9rem; }
.etb-tile-desc[b-goscrmn58y] { font-size: 0.78rem; color: var(--text-muted); }

/* ── Team-size selector ──────────────────────────────────────────────────── */
.etb-size[b-goscrmn58y] {
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border-radius: 8px;
    border: 1.5px solid var(--border-default);
    background: var(--bg-raised);
    color: var(--text-primary);
    font-weight: 700;
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s;
}

.etb-size:hover[b-goscrmn58y] { border-color: var(--brand); }
.etb-size:focus-visible[b-goscrmn58y] { outline: none; box-shadow: var(--b9-focus-ring); }
.etb-size--on[b-goscrmn58y] { border-color: var(--brand); background: var(--brand); color: #fff; }

/* ── Pool ────────────────────────────────────────────────────────────────── */
.etb-pool[b-goscrmn58y] {
    max-height: 30rem;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

/* The shared .player-chip renders ~36px tall. Seniors are measurably slower and more error-prone
   with small targets, so raise it to the 48px token on this screen. */
.etb-chip[b-goscrmn58y] {
    min-height: var(--touch-target-min, 48px);
}

.etb-chip:focus-visible[b-goscrmn58y] { outline: none; box-shadow: var(--b9-focus-ring); }

/* ── Sticky selection bar ────────────────────────────────────────────────── */
.etb-selbar[b-goscrmn58y] {
    position: sticky;
    top: 0.5rem;
    z-index: 20;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 0.6rem 0.9rem;
    margin-bottom: 1rem;
    border-radius: 10px;
    background: var(--brand);
    color: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.28);
}

.etb-selbar-count[b-goscrmn58y] { font-weight: 700; font-variant-numeric: tabular-nums; }
.etb-selbar-hint[b-goscrmn58y] { opacity: 0.85; font-size: 0.85rem; }

.etb-selbar-go[b-goscrmn58y] {
    margin-left: auto;
    min-height: var(--touch-target-min, 48px);
    padding: 0 1rem;
    border-radius: 8px;
    border: none;
    background: #fff;
    color: var(--brand-active, #1E40AF);
    font-weight: 700;
    cursor: pointer;
}

.etb-selbar-go:disabled[b-goscrmn58y] { opacity: 0.6; cursor: not-allowed; }
.etb-selbar-go:focus-visible[b-goscrmn58y],
.etb-selbar-clear:focus-visible[b-goscrmn58y] { outline: 2px solid #fff; outline-offset: 2px; }

.etb-selbar-clear[b-goscrmn58y] {
    min-height: var(--touch-target-min, 48px);
    padding: 0 0.85rem;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    background: transparent;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

/* ── Preview ─────────────────────────────────────────────────────────────── */
.etb-preview-grid[b-goscrmn58y] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: 0.6rem;
}

.etb-preview-card[b-goscrmn58y] {
    border: 1px solid var(--border-default);
    border-radius: 10px;
    padding: 0.6rem 0.7rem;
    background: var(--bg-raised);
}

.etb-preview-name[b-goscrmn58y] { font-weight: 700; font-size: 0.9rem; margin-bottom: 0.3rem; }

.etb-preview-member[b-goscrmn58y] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.83rem;
    color: var(--text-secondary);
    padding: 0.1rem 0;
}

.etb-preview-total[b-goscrmn58y] {
    margin-top: 0.35rem;
    padding-top: 0.35rem;
    border-top: 1px solid var(--border-subtle);
    font-size: 0.74rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

/* ── Team cards ──────────────────────────────────────────────────────────── */
.etb-name-btn[b-goscrmn58y] {
    background: none;
    border: none;
    padding: 0;
    color: inherit;
    cursor: pointer;
    text-align: left;
}

.etb-name-btn:focus-visible[b-goscrmn58y] { outline: none; box-shadow: var(--b9-focus-ring); border-radius: 4px; }

.etb-rename[b-goscrmn58y] { max-width: 16rem; }

.etb-icon-btn[b-goscrmn58y] {
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

@media (prefers-reduced-motion: reduce) {
    .etb-tile[b-goscrmn58y], .etb-size[b-goscrmn58y] { transition: none; }
}

/* A withdrawn team stays on this page — it is the organiser's roster, not the competitor list —
   but it must not read as a live one. Muted rather than danger-red: withdrawing is a normal,
   reversible day-of act, not a mistake, and red would make the organiser hesitate over it. */
.etb-team-withdrawn[b-goscrmn58y] {
    border-color: var(--border-default) !important;
    opacity: 0.72;
}
/* /Components/Pages/Events/EventTeamNames.razor.rz.scp.css */
/* Bulk team naming. Two columns on a desktop (who they are | what they're called), stacking on a
   phone so the roster always sits directly above the box it belongs to.

   Tokens only, and specifically the ones the sibling EventTeamAdmin page uses — a plausible-looking
   name that is not actually defined (--card-bg, --border-color) resolves to nothing and renders an
   invisible card on the dark theme. */

.etn-list[b-02ao8zazmb] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.etn-row[b-02ao8zazmb] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 0.75rem;
    align-items: center;
    padding: 0.75rem;
    border: 1px solid var(--border-subtle);
    border-radius: 0.5rem;
    background: var(--bg-raised);
}

.etn-current[b-02ao8zazmb] {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--text-muted);
    font-variant-numeric: tabular-nums;
}

.etn-members[b-02ao8zazmb] {
    font-size: 0.85rem;
    /* The roster is the identifying information on this screen — it must not be dimmed to the point
       of being hard to read, which is what --text-muted would do to a four-name list. */
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.etn-input[b-02ao8zazmb]  .form-control,
.etn-input input[b-02ao8zazmb] {
    /* An organiser types 36 of these in a row, often on a tablet in a clubhouse. */
    min-height: var(--touch-target-min);
}

/* Deliberately NOT sticky — see the note in EventTeamNames.razor. Two bars in normal flow, one
   above the list and one below, so a Save is always within a short scroll. */
.etn-savebar[b-02ao8zazmb] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    justify-content: space-between;
    margin-block: 0.75rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--border-default);
    border-radius: 0.5rem;
    background: var(--bg-raised);
}

.etn-savebar-count[b-02ao8zazmb] {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--text-muted);
}

@media (max-width: 640px) {
    .etn-row[b-02ao8zazmb] {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.5rem;
    }
}
/* /Components/Pages/Events/Field.razor.rz.scp.css */
/* ── Registered Players table ────────────────────────────────── */
/* Global .table rule in components.css covers base text/border.  */
/* These rules add page-specific structure on top.                */

.fld-players-table tbody tr:last-child td[b-yegxqi6zbq] {
    border-bottom: none;
}

/* ── O02 · never clip ──────────────────────────────────────────
   Measured at 390px before the fix: a 525px table inside a 294px wrapper, Withdraw at
   x=486 — off-screen right, with no scrollbar, no fade and no hint. On desktop the table
   scrolls INSIDE its card and paints an edge cue on whichever side has more to show
   (the cover gradients ride the content via background-attachment: local, so the cue
   disappears when everything fits). On a phone the same rows become one card per player. */
.fld-table-wrap[b-yegxqi6zbq] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    background:
        linear-gradient(to right, var(--b9-card-bg) 30%, rgba(0, 0, 0, 0)),
        linear-gradient(to right, rgba(0, 0, 0, 0), var(--b9-card-bg) 70%) 100% 0,
        radial-gradient(farthest-side at 0 50%, var(--border-strong), rgba(0, 0, 0, 0)),
        radial-gradient(farthest-side at 100% 50%, var(--border-strong), rgba(0, 0, 0, 0)) 100% 0;
    background-repeat: no-repeat;
    background-size: 40px 100%, 40px 100%, 16px 100%, 16px 100%;
    background-attachment: local, local, scroll, scroll;
}

/* A long address must never be the thing that widens the table past its card. */
.fld-player-email[b-yegxqi6zbq] {
    overflow-wrap: anywhere;
}

@media (max-width: 767.98px) {
    /* The wrapper no longer has anything to scroll. */
    .fld-table-wrap[b-yegxqi6zbq] {
        overflow-x: visible;
        background: none;
    }

    .fld-players-table thead[b-yegxqi6zbq] {
        position: absolute;
        width: 1px;
        height: 1px;
        overflow: hidden;
        clip: rect(0 0 0 0);
        white-space: nowrap; /* kept for screen readers */
    }

    .fld-players-table[b-yegxqi6zbq],
    .fld-players-table tbody[b-yegxqi6zbq],
    .fld-players-table tr[b-yegxqi6zbq] {
        display: block;
        width: 100%;
    }

    .fld-players-table tbody tr[b-yegxqi6zbq] {
        border: 1px solid var(--border-subtle);
        border-radius: 10px;
        padding: 0.5rem 0.75rem;
        margin-bottom: 0.6rem;
        background: var(--bg-elevated);
    }

    .fld-players-table tbody td[b-yegxqi6zbq] {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.75rem;
        width: 100%;
        border: 0 !important;
        padding: 0.3rem 0;
        text-align: left !important;
    }

    /* The label the hidden header used to carry. */
    .fld-players-table tbody td[data-label]:not([data-label=""])[b-yegxqi6zbq]::before {
        content: attr(data-label);
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--text-secondary);
        flex: 0 0 auto;
    }

    /* The row number is noise once the rows are cards. */
    .fld-players-table tbody td.fld-c-num[b-yegxqi6zbq] {
        display: none;
    }

    /* The name leads, on its own line, at full size. */
    .fld-players-table tbody td.fld-c-player[b-yegxqi6zbq] {
        display: block;
        padding-bottom: 0.35rem;
    }

    .fld-players-table tbody td.fld-c-player[b-yegxqi6zbq]::before {
        content: none;
    }

    /* Invite / Withdraw become real full-width controls, not a cell edge. */
    .fld-players-table tbody td.fld-c-action > div[b-yegxqi6zbq] {
        width: 100%;
    }

    .fld-players-table tbody td.fld-c-action .btn[b-yegxqi6zbq] {
        flex: 1 1 auto;
        min-height: 48px;
    }
}

/* ── Roster rows (Add from Roster panel) ─────────────────────── */

.fld-roster-row:last-child[b-yegxqi6zbq] {
    border-bottom: none !important;
}

/* Translucent tint on hover — player name stays readable in all themes */
.fld-roster-row:hover[b-yegxqi6zbq] {
    background: rgba(255, 255, 255, 0.05);
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.fld-tee-select[b-yegxqi6zbq] { max-width: 200px; }

.fld-badge-soft[b-yegxqi6zbq] { background: var(--bg-elevated); color: var(--text-secondary); }
.fld-badge-strong[b-yegxqi6zbq] { background: var(--bg-elevated); color: var(--text-primary); }
.fld-badge-xs[b-yegxqi6zbq] { font-size: .7rem; }

.fld-roster-scroll[b-yegxqi6zbq] { max-height: 420px; overflow-y: auto; }
.fld-hint[b-yegxqi6zbq] { font-size: .75rem; }
/* /Components/Pages/Events/Flyer.razor.rz.scp.css */
/*
   Events/Flyer.razor.css
   All shared .flyer-* styles are in wwwroot/flyer.css (global),
   loaded via <HeadContent> in FlyerLayout.razor.
   Add event-specific style overrides here only if needed.
*/
/* /Components/Pages/Events/ImportPlayers.razor.rz.scp.css */
/* Add Players from a List — event roster import.
   Tokens only; no raw colors, no hardcoded light backgrounds (dark-theme safe). */

.ip-page[b-5g551tq9dt] {
    max-width: 1100px;
}

.ip-subtitle[b-5g551tq9dt] {
    color: var(--b9-text-muted);
    font-size: 0.9rem;
}

.ip-card[b-5g551tq9dt] {
    background: var(--b9-surface-alt);
    border: 1px solid var(--b9-border);
    border-radius: var(--radius-lg, 12px);
    box-shadow: none;
}

.ip-help[b-5g551tq9dt] {
    color: var(--b9-text-muted);
    font-size: 0.9rem;
    margin-bottom: 0;
}

.ip-muted[b-5g551tq9dt] {
    color: var(--b9-text-soft);
}

/* ── Example shapes ─────────────────────────────────────────────────────── */

.ip-shapes[b-5g551tq9dt] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 0.75rem;
}

.ip-shape[b-5g551tq9dt] {
    border: 1px solid var(--b9-border);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}

.ip-shape-label[b-5g551tq9dt] {
    background: var(--b9-surface-muted);
    color: var(--b9-text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 0.4rem 0.75rem;
    text-transform: uppercase;
}

.ip-shape-body[b-5g551tq9dt] {
    background: var(--b9-surface);
    color: var(--b9-text);
    font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);
    font-size: 0.8rem;
    padding: 0.75rem;
    overflow-x: auto;
    white-space: nowrap;
}

.ip-shape-body > div + div[b-5g551tq9dt] {
    margin-top: 0.2rem;
    color: var(--b9-text-muted);
}

.ip-file[b-5g551tq9dt] {
    max-width: 420px;
    min-height: 48px;
}

/* ── Detected summary ───────────────────────────────────────────────────── */

.ip-detected[b-5g551tq9dt] {
    color: var(--b9-text);
    font-size: 1rem;
    font-weight: 600;
}

.ip-details summary[b-5g551tq9dt] {
    color: var(--b9-text-muted);
    cursor: pointer;
    font-size: 0.875rem;
    min-height: 44px;
    display: flex;
    align-items: center;
}

.ip-ignored[b-5g551tq9dt] {
    color: var(--b9-text-muted);
    font-size: 0.85rem;
    margin: 0.25rem 0 0;
    padding-left: 1.25rem;
}

/* ── Counts ─────────────────────────────────────────────────────────────── */

.ip-counts[b-5g551tq9dt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.ip-count[b-5g551tq9dt] {
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.35rem 0.85rem;
}

.ip-count-new[b-5g551tq9dt]    { background: var(--b9-primary-soft);      color: var(--b9-primary-text); }
.ip-count-linked[b-5g551tq9dt] { background: var(--b9-success-soft);      color: var(--b9-success-text); }
.ip-count-warn[b-5g551tq9dt]   { background: var(--b9-warning-soft);      color: var(--b9-warning-text); }
.ip-count-skip[b-5g551tq9dt]   { background: var(--b9-surface-muted);     color: var(--b9-text-muted); }

/* ── Table ──────────────────────────────────────────────────────────────── */

.ip-table[b-5g551tq9dt] {
    color: var(--b9-text);
}

.ip-table thead th[b-5g551tq9dt] {
    background: var(--b9-surface-muted);
    border-bottom: 1px solid var(--b9-border);
    color: var(--b9-text-muted);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.ip-table td[b-5g551tq9dt] {
    border-bottom: 1px solid var(--b9-border);
    vertical-align: middle;
}

.ip-row-attention[b-5g551tq9dt] {
    background: var(--b9-warning-soft);
}

.ip-name[b-5g551tq9dt] {
    font-weight: 600;
}

.ip-hint[b-5g551tq9dt] {
    color: var(--b9-warning-text);
    font-size: 0.8rem;
}

.ip-team-cell[b-5g551tq9dt] {
    white-space: nowrap;
}

.ip-team[b-5g551tq9dt] {
    background: var(--b9-surface-muted);
    border-radius: var(--radius-sm, 6px);
    display: inline-block;
    font-weight: 700;
    min-width: 2rem;
    padding: 0.15rem 0.5rem;
    text-align: center;
}

.ip-cart[b-5g551tq9dt] {
    color: var(--b9-text-soft);
    display: block;
    font-size: 0.75rem;
    margin-top: 0.15rem;
}

.ip-select[b-5g551tq9dt] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border-strong);
    color: var(--b9-text);
    min-height: 48px;
    min-width: 220px;
}

.ip-select-narrow[b-5g551tq9dt] {
    min-width: 130px;
}

/* ── Summary + actions ──────────────────────────────────────────────────── */

.ip-summary[b-5g551tq9dt] {
    color: var(--b9-text);
    line-height: 1.9;
    margin: 0;
    padding-left: 1.25rem;
}

.ip-icon-success[b-5g551tq9dt] {
    color: var(--b9-success);
}

.ip-actions[b-5g551tq9dt] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.ip-btn[b-5g551tq9dt] {
    min-height: 48px;
}

@media (max-width: 576px) {
    .ip-select[b-5g551tq9dt] { min-width: 100%; }
    .ip-actions .ip-btn[b-5g551tq9dt] { flex: 1 1 100%; }
}
/* /Components/Pages/Events/Index.razor.rz.scp.css */
/* ── Events Index page ────────────────────────────────────────────────── */

.ev-page[b-1npqm713ob] {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    max-width: var(--admin-list-page-max-width, 1120px);
    margin: 0 auto;
    padding: 1.1rem 0 2.75rem;
    overflow-x: hidden;
}

.ev-header[b-1npqm713ob] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.ev-header-left[b-1npqm713ob] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    flex: 1 1 420px;
    min-width: 0;
}

.ev-header-copy[b-1npqm713ob] {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    min-width: 0;
}

.ev-title[b-1npqm713ob] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--b9-text);
    margin: 0;
}

.ev-subtitle[b-1npqm713ob] {
    font-size: 0.91rem;
    color: var(--b9-text-soft);
    max-width: min(42rem, 100%);
    line-height: 1.3;
}

.ev-header-actions[b-1npqm713ob] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    flex: 0 0 auto;
    margin-left: auto;
}

.ev-header-action-btn[b-1npqm713ob] {
    white-space: nowrap;
    min-width: 146px;
    min-height: 2.5rem;
}

.ev-loading[b-1npqm713ob] {
    padding: 3rem 0;
    text-align: center;
    color: var(--b9-text-soft);
    font-size: .9375rem;
}

.ev-empty[b-1npqm713ob] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 2.75rem 1rem;
    text-align: center;
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    background: var(--b9-surface);
}

.ev-empty-icon[b-1npqm713ob] {
    font-size: 2.5rem;
    color: var(--b9-text-soft);
}

.ev-empty-title[b-1npqm713ob] {
    font-weight: 700;
    color: var(--b9-text);
}

.ev-empty-text[b-1npqm713ob] {
    color: var(--b9-text-soft);
    font-size: .95rem;
    max-width: 440px;
    margin: 0;
}

.ev-count[b-1npqm713ob] {
    font-size: .8125rem;
    color: var(--b9-text-soft);
}

/* The four ev-ops cards that used to stand between an admin and their events were removed by
   the UX audit (O04 / X09). Their counts now render through Components/Shared/OpsStatLine.razor
   at the foot of the page, and the "needs attention" control's 48px target and focus ring live
   with it in wwwroot/css/brand-components.css — one implementation for all six ops pages. */

.dash-card[b-1npqm713ob] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    overflow: hidden;
}

.dash-card-header[b-1npqm713ob] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .72rem 1rem;
    border-bottom: 1px solid var(--b9-border);
    gap: .62rem;
}

.dash-card-heading[b-1npqm713ob] {
    display: flex;
    flex-direction: column;
    gap: .14rem;
    min-width: 0;
}

.dash-card-title[b-1npqm713ob] {
    font-weight: 700;
    font-size: .95rem;
    color: var(--b9-text);
}

.dash-card-subtitle[b-1npqm713ob] {
    font-size: .75rem;
    line-height: 1.2;
    color: var(--b9-text-soft);
}

.ev-filter-bar[b-1npqm713ob] {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
    padding: .62rem 1rem;
    border-bottom: 1px solid var(--b9-border);
    background: color-mix(in srgb, var(--b9-surface-muted) 55%, transparent);
}

.ev-filter-pill[b-1npqm713ob] {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid var(--b9-border);
    border-radius: 999px;
    background: transparent;
    color: var(--b9-text-soft);
    padding: .34rem .72rem;
    font-size: .77rem;
    font-weight: 600;
}

.ev-filter-pill.is-active[b-1npqm713ob] {
    color: var(--b9-text);
    border-color: color-mix(in srgb, var(--b9-primary) 34%, var(--b9-border));
    background: color-mix(in srgb, var(--b9-primary) 10%, transparent);
}

.ev-filter-pill-count[b-1npqm713ob] {
    display: inline-flex;
    min-width: 1.35rem;
    min-height: 1.35rem;
    align-items: center;
    justify-content: center;
    padding: 0 .32rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--b9-surface-muted) 85%, transparent);
    color: inherit;
    font-size: .72rem;
}

.ev-filter-empty[b-1npqm713ob] {
    padding: 1.25rem;
    color: var(--b9-text-soft);
    font-size: .9rem;
}

.etable-wrap[b-1npqm713ob] {
    overflow-x: auto;
    container-type: inline-size;
}

.etable[b-1npqm713ob] {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
    font-size: .875rem;
}

.etable thead th[b-1npqm713ob] {
    padding: .56rem .8rem;
    text-align: left;
    font-size: .75rem;
    font-weight: 600;
    color: var(--b9-text-soft);
    text-transform: uppercase;
    letter-spacing: .03em;
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
    background: var(--b9-surface-muted);
}

.etable tbody tr[b-1npqm713ob] {
    border-bottom: 1px solid var(--b9-border-light, var(--b9-border));
    transition: background .12s, box-shadow .12s;
}

.etable tbody tr:last-child[b-1npqm713ob] {
    border-bottom: none;
}

.etable tbody tr:hover[b-1npqm713ob] {
    background: color-mix(in srgb, var(--b9-surface-muted) 82%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--b9-primary) 20%, transparent);
}

.evtr-live[b-1npqm713ob] {
    background: color-mix(in srgb, var(--b9-success) 4%, transparent);
}

.etable tbody td[b-1npqm713ob] {
    padding: .68rem .8rem;
    vertical-align: middle;
    color: var(--b9-text);
}

.etable thead th:last-child[b-1npqm713ob],
.etable tbody td:last-child[b-1npqm713ob] {
    padding-right: 1rem;
}

.etd-name[b-1npqm713ob] {
    min-width: 220px;
}

.etd-name-stack[b-1npqm713ob] {
    display: flex;
    flex-direction: column;
    gap: .28rem;
}

.etd-name-link[b-1npqm713ob] {
    display: block;
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    hyphens: auto;
    font-size: .93rem;
    font-weight: 700;
    color: var(--b9-text);
    line-height: 1.25;
    text-decoration: none;
}

.etd-name-link:hover[b-1npqm713ob] {
    text-decoration: underline;
    color: var(--b9-primary-text);
}

.evtd-course[b-1npqm713ob] {
    font-size: .8rem;
    color: var(--b9-text-soft);
    line-height: 1.2;
}

.evtd-inline-meta[b-1npqm713ob] {
    display: none;
    flex-wrap: wrap;
    gap: .35rem .65rem;
    font-size: .78rem;
    color: var(--b9-text-soft);
    line-height: 1.3;
}

.evtd-inline-meta span[b-1npqm713ob] {
    position: relative;
}

.evtd-inline-meta span + span[b-1npqm713ob]::before {
    content: "·";
    margin-right: .45rem;
    color: color-mix(in srgb, var(--b9-text-soft) 70%, transparent);
}

.evtd-format[b-1npqm713ob],
.evtd-date[b-1npqm713ob],
.evtd-players[b-1npqm713ob] {
    color: var(--b9-text-soft);
    font-size: .815rem;
    line-height: 1.2;
}

.evtd-date[b-1npqm713ob] {
    white-space: nowrap;
}

.evtd-status[b-1npqm713ob] {
    white-space: nowrap;
}

.evtd-actions-cell[b-1npqm713ob] {
    white-space: nowrap;
    min-width: 0;
}

.evtd-action-stack[b-1npqm713ob] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .32rem;
}

.etd-row-action[b-1npqm713ob] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.1rem;
    padding: .38rem .82rem;
    border-radius: 999px;
    border: 1px solid var(--b9-border);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
    color: var(--b9-text-soft);
    background: transparent;
    text-decoration: none;
}

.etd-row-action:hover[b-1npqm713ob] {
    background: var(--b9-surface-muted);
    color: var(--b9-text);
}

.etd-row-action-primary[b-1npqm713ob] {
    color: var(--b9-text);
    border-color: var(--b9-border-strong, var(--b9-border));
    background: color-mix(in srgb, var(--b9-primary) 10%, transparent);
    min-height: 2.5rem;
    padding: .5rem 1rem;
}

.evtd-secondary-actions[b-1npqm713ob] {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .2rem .55rem;
    max-width: 18rem;
}

.evtd-secondary-action[b-1npqm713ob] {
    border: none;
    background: transparent;
    padding: .22rem .08rem;
    min-height: 1.5rem;
    font-size: .74rem;
    line-height: 1.1;
    color: var(--b9-text-soft);
    opacity: .82;
    text-decoration: none;
}

.evtd-secondary-action:hover[b-1npqm713ob] {
    color: var(--b9-text);
    opacity: 1;
    text-decoration: underline;
}

.evtd-secondary-button[b-1npqm713ob] {
    cursor: pointer;
}

.evtd-delete-action[b-1npqm713ob] {
    color: var(--danger, #ef4444) !important;
    opacity: .7;
}

.evtd-delete-action:hover[b-1npqm713ob] {
    color: var(--danger, #ef4444) !important;
    opacity: 1;
    text-decoration: underline;
}

.estatus[b-1npqm713ob] {
    display: inline-flex;
    align-items: center;
    padding: .2rem .56rem;
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    letter-spacing: .02em;
    border: 1px solid transparent;
}

.estatus-active[b-1npqm713ob] {
    background: color-mix(in srgb, var(--b9-success) 8%, transparent);
    color: color-mix(in srgb, var(--b9-success) 70%, var(--b9-text));
    border-color: color-mix(in srgb, var(--b9-success) 36%, var(--b9-border));
}

.estatus-open[b-1npqm713ob] {
    background: color-mix(in srgb, var(--b9-primary) 10%, transparent);
    color: var(--b9-primary-text);
    border-color: color-mix(in srgb, var(--b9-primary) 34%, var(--b9-border));
}

.estatus-draft[b-1npqm713ob] {
    background: var(--b9-surface-muted, rgba(148, 163, 184, 0.18));
    color: var(--b9-text-soft, #cbd5e1);
    border-color: var(--b9-border, rgba(148, 163, 184, 0.35));
}

/* The indigo pill was the one status in this set written in raw hex rather than through the
   palette, and #c7d2fe is the indigo that reads on charcoal: on the light page, composited
   over its own 16% indigo tint, it measured 1.16:1 — "Closed" on every finished event in the
   list. --b9-indigo-text is the theme-aware twin (it resolves to #A5B4FC in dark, which is
   the same pale indigo this was reaching for). */
.estatus-closed[b-1npqm713ob] {
    background: rgba(99, 102, 241, 0.16);
    color: var(--b9-indigo-text);
    border-color: rgba(99, 102, 241, 0.42);
}

/* X14 — the day has been and gone and nobody has started, moved or closed it. Amber, not red:
   nothing has broken, somebody just has to decide. --b9-warning-soft/-text are defined in both
   themes (brand-tokens.css), so this reads on the dark page and the daylight one. */
.estatus-passed[b-1npqm713ob] {
    background: var(--b9-warning-soft);
    color: var(--b9-warning-text);
    border-color: color-mix(in srgb, var(--b9-warning-text) 40%, var(--b9-border));
}

.estatus-cancelled[b-1npqm713ob] {
    background: var(--b9-danger-soft, rgba(239, 68, 68, 0.16));
    color: var(--b9-danger-text, #fca5a5);
    border-color: var(--b9-danger, rgba(239, 68, 68, 0.45));
}

.col-format[b-1npqm713ob] { width: 92px; }
.col-date[b-1npqm713ob] { width: 118px; }
.col-players[b-1npqm713ob] { width: 84px; }
.col-status[b-1npqm713ob] { width: 98px; }
.col-actions[b-1npqm713ob] { width: 208px; }

@container (max-width: 760px) {
    .col-players[b-1npqm713ob] {
        display: none;
    }

    .evtd-inline-meta[b-1npqm713ob] {
        display: flex;
    }
}

@container (max-width: 680px) {
    .col-format[b-1npqm713ob] {
        display: none;
    }
}

@container (max-width: 600px) {
    .col-date[b-1npqm713ob] {
        display: none;
    }

    .etd-name[b-1npqm713ob] {
        min-width: 0;
    }
}

@container (max-width: 860px) {
    .etable thead[b-1npqm713ob] {
        display: none;
    }

    .etable-wrap[b-1npqm713ob] {
        overflow-x: hidden;
    }

    .etable[b-1npqm713ob],
    .etable tbody[b-1npqm713ob],
    .etable tr[b-1npqm713ob],
    .etable td[b-1npqm713ob] {
        display: block;
        width: 100%;
    }

    .etable tbody tr[b-1npqm713ob] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto fit-content(47%);
        column-gap: .42rem;
        row-gap: .22rem;
        align-items: start;
        padding: .56rem .74rem;
        margin: .38rem 0;
        border: 1px solid color-mix(in srgb, var(--b9-border) 84%, var(--b9-primary) 16%);
        border-radius: 10px;
        background: linear-gradient(
            180deg,
            color-mix(in srgb, var(--b9-surface) 95%, black 5%) 0%,
            color-mix(in srgb, var(--b9-surface) 89%, black 11%) 100%
        );
        box-shadow: 0 1px 0 rgba(15, 23, 42, .18), inset 0 0 0 1px color-mix(in srgb, var(--b9-surface-muted) 28%, transparent);
    }

    .etable tbody td[b-1npqm713ob] {
        padding: 0;
        border: 0;
    }

    .etable tbody td.col-format[b-1npqm713ob],
    .etable tbody td.col-date[b-1npqm713ob],
    .etable tbody td.col-players[b-1npqm713ob] {
        display: none !important;
    }

    .evtd-inline-meta[b-1npqm713ob] {
        display: flex;
        gap: .24rem .5rem;
    }

    .etable tbody td.col-status[b-1npqm713ob],
    .etable tbody td.col-actions[b-1npqm713ob] {
        display: block !important;
    }

    .etable tbody td.etd-name[b-1npqm713ob] {
        display: contents !important;
        min-width: 0;
    }

    .etable tbody td.col-status[b-1npqm713ob] {
        display: contents !important;
    }

    .etable tbody td.col-actions[b-1npqm713ob] {
        display: contents !important;
        min-width: 0;
    }

    .etd-name-stack[b-1npqm713ob],
    .evtd-action-stack[b-1npqm713ob] {
        display: contents;
    }

    .etd-name-link[b-1npqm713ob] {
        grid-column: 1;
        grid-row: 1;
        align-self: center;
        min-width: 0;
        font-size: .91rem;
        line-height: 1.18;
    }

    .estatus[b-1npqm713ob] {
        grid-column: 2;
        grid-row: 1;
        justify-self: start;
        align-self: center;
    }

    /* X14 — every other pill on this page is one short word, and the name column is
       minmax(0, 1fr): a two-word pill takes its extra width straight out of the event's name,
       which at 390px broke "Senior 3-Player Scramble" mid-word. This one is allowed to stack
       onto two lines instead, so it occupies about the width of the widest word and the name
       keeps the room it had. Full size — a pill nobody can read is not a fix. */
    .estatus-passed[b-1npqm713ob] {
        white-space: normal;
        max-width: 4.6rem;
        text-align: center;
        line-height: 1.12;
    }

    .evtd-status[b-1npqm713ob] {
        margin-top: 0;
        white-space: nowrap;
    }

    .evtd-actions-cell[b-1npqm713ob] {
        margin-top: 0;
        white-space: normal;
    }

    .evtd-action-stack[b-1npqm713ob],
    .evtd-secondary-actions[b-1npqm713ob] {
        align-items: flex-end;
        justify-content: flex-end;
        max-width: none;
    }

    .evtd-action-stack[b-1npqm713ob] {
        gap: .12rem;
    }

    .etd-row-action[b-1npqm713ob] {
        min-width: 0;
        width: auto;
        max-width: 100%;
    }

    .etd-row-action-primary[b-1npqm713ob] {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        min-height: 2.18rem;
        min-width: 8.75rem;
        max-width: 100%;
        padding: .34rem .76rem;
        margin-right: .08rem;
        border-radius: 10px;
        border-color: color-mix(in srgb, var(--b9-border) 82%, var(--b9-primary) 18%);
        background: color-mix(in srgb, var(--b9-primary) 5%, transparent);
        box-shadow: inset 0 1px 0 color-mix(in srgb, white 24%, transparent);
    }

    .evtd-course[b-1npqm713ob] {
        grid-column: 1;
        grid-row: 2;
        align-self: start;
        font-size: .76rem;
        line-height: 1.15;
    }

    .evtd-secondary-actions[b-1npqm713ob] {
        grid-column: 3;
        grid-row: 2;
        justify-self: end;
        align-self: start;
        max-width: 100%;
        padding-right: .08rem;
        margin-top: 0;
        gap: .08rem .34rem;
    }

    .evtd-secondary-action[b-1npqm713ob] {
        display: inline-flex;
        align-items: center;
        min-height: 1.52rem;
        padding: .08rem .12rem;
        border-radius: 5px;
        font-size: .7rem;
        line-height: 1;
        opacity: .74;
    }

    /* Meta (format · date · players) spans the flexible name column on its own
       row. It must NOT sit alone in the middle `auto` track — doing so makes
       that track grow to fit the whole string, starving the minmax(0,1fr) name
       column so the event name wraps one letter per line. Spanning into the 1fr
       track keeps the middle track at the status-badge width (matches Leagues). */
    .evtd-inline-meta[b-1npqm713ob] {
        grid-column: 1 / -1;
        grid-row: 3;
        display: inline-flex;
        align-self: start;
        justify-self: start;
        gap: .2rem .46rem;
        line-height: 1.15;
        white-space: normal;
    }
}

@media (max-width: 1280px) {
    .ev-header[b-1npqm713ob] {
        justify-content: flex-start;
        align-items: flex-start;
    }

    .ev-header-left[b-1npqm713ob] {
        flex-basis: 100%;
    }

    .ev-header-actions[b-1npqm713ob] {
        margin-left: 0;
        width: 100%;
        justify-content: flex-start;
    }

    .ev-header-action-btn[b-1npqm713ob] {
        width: auto;
    }
}

/* The clone dialog moved to Components/UI/CloneEventDialog.razor(.css) when the event page
   grew its own "Run it again" door — one dialog, one stylesheet, two hosts. */
/* /Components/Pages/Events/Leaderboard.razor.rz.scp.css */
/* Palette on the component's ROOT WRAPPER CLASS, not :host — Blazor CSS isolation
   compiles :host to a selector that never matches (no shadow DOM), so vars declared
   there silently resolve to nothing (see blazor-scoped-root-vars bug class: text
   inherits, backgrounds collapse to transparent). Custom properties declared here
   cascade to every descendant of .lb-page. */
.lb-page[b-4ktgyoi1k6] {
    --lb-bg: #071326;
    --lb-bg-alt: #0b1a32;
    --lb-card: #10213d;
    --lb-card-2: #132746;
    --lb-border: #28446f;
    --lb-text: #f8fbff;
    --lb-text-soft: #c5d6ef;
    --lb-text-muted: #9db3d2;
    --lb-accent: #56c7ff;
    --lb-accent-2: #9ee7ff;
    --lb-accent-soft: rgba(86, 199, 255, 0.12);
    --lb-success: #8df3c6;
    --lb-success-soft: rgba(141, 243, 198, 0.14);
    --lb-danger: #ff9ca8;
}

.lb-page[b-4ktgyoi1k6] {
    min-height: 100vh;
    background: radial-gradient(circle at 14% 0%, #133159 0%, #071326 56%, #040c1b 100%);
    color: var(--lb-text);
}

.lb-hero[b-4ktgyoi1k6] {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.9rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--lb-border);
    background: linear-gradient(180deg, rgba(7, 19, 38, 0.96) 0%, rgba(7, 19, 38, 0.9) 100%);
    backdrop-filter: blur(8px);
}

.lb-hero-main[b-4ktgyoi1k6] {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    min-width: 0;
}

.lb-back-btn[b-4ktgyoi1k6],
.lb-scorecard-btn[b-4ktgyoi1k6],
.lb-signin-btn[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.lb-back-btn[b-4ktgyoi1k6] {
    padding: 0.42rem 0.78rem;
    border: 1px solid var(--lb-border);
    color: var(--lb-text-soft);
    background: rgba(14, 34, 62, 0.65);
}

.lb-back-btn:hover[b-4ktgyoi1k6],
.lb-back-btn:focus-visible[b-4ktgyoi1k6] {
    color: var(--lb-text);
    border-color: #3f659b;
}

.lb-title-block[b-4ktgyoi1k6] {
    min-width: 0;
}

/* ── Org branding logo (branding.leaderboard feature) ── */
.lb-org-logo[b-4ktgyoi1k6] {
    width: 48px;
    height: 48px;
    object-fit: contain;
    border-radius: 10px;
    flex-shrink: 0;
    background: rgba(255,255,255,0.05);
}

.lb-event-name[b-4ktgyoi1k6] {
    margin: 0;
    font-size: clamp(1rem, 2.4vw, 1.35rem);
    line-height: 1.2;
    color: var(--lb-text);
    font-weight: 800;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
}

.lb-meta-row[b-4ktgyoi1k6] {
    margin-top: 0.42rem;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.lb-chip[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    color: var(--lb-text-soft);
    border: 1px solid var(--lb-border);
    background: rgba(14, 34, 62, 0.6);
    border-radius: 999px;
    padding: 0.17rem 0.55rem;
}

.lb-tee-dot[b-4ktgyoi1k6] {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.lb-hero-actions[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.lb-status-pill[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-radius: 999px;
    padding: 0.24rem 0.62rem;
    border: 1px solid transparent;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.lb-status-live[b-4ktgyoi1k6] {
    color: #fff3f4;
    background: rgba(182, 31, 52, 0.35);
    border-color: rgba(255, 146, 160, 0.45);
}

.lb-status-final[b-4ktgyoi1k6] {
    color: #f3f6fd;
    background: rgba(31, 67, 117, 0.4);
    border-color: rgba(138, 184, 251, 0.4);
}

.lb-status-dot[b-4ktgyoi1k6] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    animation: lb-pulse-b-4ktgyoi1k6 1.2s infinite;
}

.lb-scorecard-btn[b-4ktgyoi1k6] {
    color: #041425;
    background: linear-gradient(180deg, #9af6ca, #75ddb0);
    border: 1px solid #8be7be;
    padding: 0.42rem 0.8rem;
}

.lb-signin-btn[b-4ktgyoi1k6] {
    color: var(--lb-text-soft);
    background: rgba(14, 34, 62, 0.7);
    border: 1px solid #3c5f92;
    padding: 0.42rem 0.8rem;
}

.lb-refreshing[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--lb-text-soft);
    font-size: 0.78rem;
}

.lb-shell[b-4ktgyoi1k6] {
    padding: 1rem;
    max-width: 1200px;
    margin: 0 auto;
}

.lb-empty-state[b-4ktgyoi1k6],
.lb-empty-card[b-4ktgyoi1k6],
.lb-matchplay-note[b-4ktgyoi1k6] {
    border-radius: 14px;
    border: 1px solid var(--lb-border);
    background: linear-gradient(180deg, var(--lb-card) 0%, var(--lb-card-2) 100%);
    color: var(--lb-text-soft);
    text-align: center;
    padding: 2.2rem 1.1rem;
}

.lb-empty-card i[b-4ktgyoi1k6] {
    font-size: 2rem;
    color: var(--lb-accent-2);
}

.lb-empty-card h2[b-4ktgyoi1k6],
.lb-matchplay-note h3[b-4ktgyoi1k6] {
    color: var(--lb-text);
    margin-top: 0.8rem;
}

.lb-matchplay-action[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.7rem;
    border-radius: 999px;
    text-decoration: none;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: #041425;
    background: linear-gradient(180deg, var(--lb-accent-2), #7fd9ff);
    border: 1px solid #a5e6ff;
    padding: 0.48rem 0.9rem;
}

.lb-matchplay-action:hover[b-4ktgyoi1k6],
.lb-matchplay-action:focus-visible[b-4ktgyoi1k6] {
    color: #041425;
    filter: brightness(1.03);
    transform: translateY(-1px);
}

.lb-round-tabs[b-4ktgyoi1k6] {
    list-style: none;
    display: flex;
    gap: 0.35rem;
    margin: 0 0 0.95rem;
    padding: 0;
    flex-wrap: wrap;
}

.lb-round-tab[b-4ktgyoi1k6] {
    border: 1px solid #3a5f93;
    background: rgba(14, 34, 62, 0.6);
    color: var(--lb-text-soft);
    border-radius: 999px;
    padding: 0.28rem 0.66rem;
    font-size: 0.78rem;
    font-weight: 700;
}

.lb-round-tab.active[b-4ktgyoi1k6],
.lb-round-tab:hover[b-4ktgyoi1k6],
.lb-round-tab:focus-visible[b-4ktgyoi1k6] {
    color: #051422;
    border-color: transparent;
    background: linear-gradient(180deg, var(--lb-accent-2), #7fd9ff);
}

.lb-round-date[b-4ktgyoi1k6] {
    margin-left: 0.32rem;
    font-size: 0.72rem;
    opacity: 0.85;
}

.lb-mode-bar[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-radius: 999px;
    border: 1px solid #3a5f93;
    background: rgba(14, 34, 62, 0.58);
    padding: 0.28rem 0.4rem;
    margin-bottom: 0.75rem;
}

.lb-mode-label[b-4ktgyoi1k6] {
    color: var(--lb-text-soft);
    font-size: 0.76rem;
    font-weight: 700;
    margin: 0 0.2rem;
}

.lb-mode-btn[b-4ktgyoi1k6] {
    border: none;
    border-radius: 999px;
    padding: 0.26rem 0.64rem;
    background: transparent;
    color: var(--lb-text-soft);
    font-size: 0.76rem;
    font-weight: 800;
}

.lb-mode-btn.active[b-4ktgyoi1k6] {
    color: #051422;
    background: linear-gradient(180deg, var(--lb-accent-2), #7fd9ff);
}

.lb-mode-explain[b-4ktgyoi1k6] {
    border: 1px solid #3e6298;
    background: linear-gradient(180deg, rgba(16, 33, 61, 0.95) 0%, rgba(12, 26, 50, 0.95) 100%);
    border-radius: 12px;
    padding: 0.8rem 0.9rem;
    margin-bottom: 0.85rem;
}

.lb-mode-title[b-4ktgyoi1k6] {
    margin: 0;
    color: var(--lb-text);
    font-weight: 800;
}

.lb-mode-copy[b-4ktgyoi1k6] {
    margin: 0.2rem 0 0;
    color: var(--lb-text-soft);
    font-size: 0.84rem;
}

.lb-explain-details[b-4ktgyoi1k6] {
    margin-top: 0.52rem;
}

.lb-explain-details summary[b-4ktgyoi1k6] {
    cursor: pointer;
    color: var(--lb-accent-2);
    font-size: 0.83rem;
    font-weight: 700;
}

/* EV-FMT-1: honest "team standings are gross" note for Best Ball / Chapman events that have a
   handicap allowance configured (their team totals stay gross; only net skins reflect the allowance). */
.lb-gross-note[b-4ktgyoi1k6] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    border: 1px solid var(--lb-border);
    border-radius: 12px;
    padding: 0.7rem 0.85rem;
    margin-bottom: 0.85rem;
    color: var(--lb-text-soft);
    font-size: 0.86rem;
    line-height: 1.35;
}

.lb-gross-note i[b-4ktgyoi1k6] {
    color: var(--lb-accent-2);
    margin-top: 0.1rem;
    flex: 0 0 auto;
}

.lb-gross-note strong[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-weight: 800;
}

.lb-table-wrap[b-4ktgyoi1k6] {
    border: 1px solid var(--lb-border);
    border-radius: 14px;
    /* 🔴 Was overflow:hidden, which CLIPPED a wide board instead of letting it scroll — a
       multi-round net table lost its right-hand columns at tablet widths just above the card
       breakpoint, with no way to reach them. The rounded corners still clip; the table now scrolls
       inside its own box, so the page body never scrolls sideways either. */
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    background: linear-gradient(180deg, var(--lb-card) 0%, var(--lb-card-2) 100%);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
}

.lb-table[b-4ktgyoi1k6] {
    width: 100%;
    border-collapse: collapse;
    color: var(--lb-text);
}

.lb-table thead tr[b-4ktgyoi1k6] {
    background: rgba(7, 19, 38, 0.94);
}

.lb-table thead th[b-4ktgyoi1k6] {
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--lb-text-soft);
    padding: 0.64rem 0.72rem;
    border-bottom: 1px solid var(--lb-border);
}

.lb-table tbody tr[b-4ktgyoi1k6] {
    border-top: 1px solid rgba(67, 103, 154, 0.45);
    transition: background 0.12s ease;
}

.lb-table tbody tr:hover[b-4ktgyoi1k6] {
    background: rgba(53, 115, 188, 0.16);
}

.lb-table tbody td[b-4ktgyoi1k6] {
    padding: 0.7rem 0.72rem;
    vertical-align: middle;
    color: var(--lb-text);
}

.col-rank[b-4ktgyoi1k6] { width: 48px; text-align: center; }
.col-player-name[b-4ktgyoi1k6] { min-width: 160px; }
.col-round[b-4ktgyoi1k6] { width: 58px; text-align: center; }
.col-thru[b-4ktgyoi1k6] { width: 62px; text-align: center; }
.col-score[b-4ktgyoi1k6] { width: 80px; text-align: center; }
.col-toPar[b-4ktgyoi1k6] { width: 86px; text-align: center; }
.col-hcp[b-4ktgyoi1k6] { width: 62px; text-align: center; color: var(--lb-text-muted); }

.row-gold[b-4ktgyoi1k6] { background: rgba(204, 157, 47, 0.16); }
.row-silver[b-4ktgyoi1k6] { background: rgba(154, 175, 212, 0.12); }
.row-bronze[b-4ktgyoi1k6] { background: rgba(167, 110, 69, 0.14); }
.row-no-score[b-4ktgyoi1k6] { opacity: 0.84; }

.lb-row-current[b-4ktgyoi1k6] {
    box-shadow: inset 0 0 0 1px rgba(100, 230, 255, 0.75);
    background: linear-gradient(90deg, rgba(72, 180, 211, 0.18) 0%, rgba(21, 48, 78, 0.3) 100%);
}

.rank-badge[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 0.78rem;
    font-weight: 900;
}

.rank-gold[b-4ktgyoi1k6] { background: #f6c84f; color: #2b1c00; }
.rank-silver[b-4ktgyoi1k6] { background: #bfd0e8; color: #14263f; }
.rank-bronze[b-4ktgyoi1k6] { background: #ce9d74; color: #2a1200; }
.rank-default[b-4ktgyoi1k6] { background: #2c4e7b; color: #edf5ff; }

.lb-name-cell[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.36rem;
}

.lb-entity-name[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-weight: 700;
}

.lb-you-badge[b-4ktgyoi1k6] {
    display: inline-block;
    border-radius: 999px;
    border: 1px solid #6dd8ff;
    background: rgba(79, 211, 255, 0.16);
    color: #d9f8ff;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.08rem 0.38rem;
}

.lb-team-members[b-4ktgyoi1k6] {
    margin-top: 0.18rem;
    color: var(--lb-text-muted);
    font-size: 0.76rem;
}

.lb-round-cell[b-4ktgyoi1k6],
.lb-stat-muted[b-4ktgyoi1k6] {
    color: var(--lb-text-muted);
}

.lb-thru-complete[b-4ktgyoi1k6] {
    color: var(--lb-success);
    font-weight: 800;
}

.lb-dash[b-4ktgyoi1k6] {
    color: var(--lb-text-muted);
}

.to-par-even[b-4ktgyoi1k6] { color: var(--lb-success); font-weight: 800; }
.to-par-under[b-4ktgyoi1k6] { color: var(--lb-success); font-weight: 800; }
.to-par-over[b-4ktgyoi1k6] { color: var(--lb-danger); font-weight: 700; }

.lb-card-list[b-4ktgyoi1k6] {
    display: flex;
    flex-direction: column;
    gap: 0.56rem;
}

.lb-card[b-4ktgyoi1k6] {
    border-radius: 14px;
    border: 1px solid var(--lb-border);
    background: linear-gradient(180deg, var(--lb-card) 0%, var(--lb-card-2) 100%);
    padding: 0.82rem 0.88rem;
}

.lb-card-current[b-4ktgyoi1k6] {
    box-shadow: inset 0 0 0 1px rgba(100, 230, 255, 0.72);
    background: linear-gradient(180deg, rgba(20, 53, 89, 0.95) 0%, rgba(17, 41, 70, 0.95) 100%);
}

.card-gold[b-4ktgyoi1k6] { border-left: 4px solid #f6c84f; }
.card-silver[b-4ktgyoi1k6] { border-left: 4px solid #bfd0e8; }
.card-bronze[b-4ktgyoi1k6] { border-left: 4px solid #ce9d74; }

.lb-card-header[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    gap: 0.56rem;
}

.lb-card-name-wrap[b-4ktgyoi1k6] {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 0.36rem;
}

/* A 180px ceiling with an ellipsis turned a real team into "G. Borgschatz/R. Borg…" on the
   results board of a finished event — the one place the name is the whole point, and there is no
   hover, no tooltip and no tap to read the rest of it on a phone. Team names are two surnames and
   a slash; they need a second line, not a cut. min-width:0 on the wrap already lets this shrink,
   so wrapping here cannot push the row sideways. */
.lb-card-name[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-size: 0.95rem;
    font-weight: 700;
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.25;
}

.lb-card-toPar[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-weight: 800;
    font-size: 1rem;
}

.lb-team-members-mobile[b-4ktgyoi1k6] {
    margin: 0.36rem 0 0.46rem;
}

.lb-card-stats[b-4ktgyoi1k6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.34rem 0.92rem;
}

.lb-stat[b-4ktgyoi1k6] {
    display: flex;
    flex-direction: column;
    min-width: 44px;
    align-items: center;
}

.lb-stat-label[b-4ktgyoi1k6] {
    color: var(--lb-text-muted);
    font-size: 0.61rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
}

.lb-stat-value[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-size: 0.89rem;
    font-weight: 700;
}

.lb-back-btn:focus-visible[b-4ktgyoi1k6],
.lb-scorecard-btn:focus-visible[b-4ktgyoi1k6],
.lb-signin-btn:focus-visible[b-4ktgyoi1k6],
.lb-matchplay-action:focus-visible[b-4ktgyoi1k6],
.lb-round-tab:focus-visible[b-4ktgyoi1k6],
.lb-mode-btn:focus-visible[b-4ktgyoi1k6],
.lb-explain-details summary:focus-visible[b-4ktgyoi1k6] {
    outline: 2px solid #9fe8ff;
    outline-offset: 2px;
}

/* ── G01: the format explainer, folded to one line ──────────────────────────
   "Scramble Format" as a full card took a third of a phone screen before the first row. It is
   one line now — a native <details>; the paragraph opens on "How it works". No script, and the
   whole line is the tap target. */
.lb-format-details[b-4ktgyoi1k6] {
    border-radius: 12px;
    border: 1px solid var(--lb-border);
    background: linear-gradient(180deg, var(--lb-card) 0%, var(--lb-card-2) 100%);
    color: var(--lb-text-soft);
    padding: 0 0.9rem;
    margin-bottom: 0.7rem;
}

.lb-format-details summary[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 48px;
    cursor: pointer;
    list-style: none;
    color: var(--lb-text);
    font-weight: 700;
    font-size: 0.95rem;
}

.lb-format-details summary[b-4ktgyoi1k6]::-webkit-details-marker { display: none; }
.lb-format-details summary > .bi-info-circle[b-4ktgyoi1k6] { color: var(--lb-accent-2); }

.lb-format-how[b-4ktgyoi1k6] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--lb-accent-2);
    font-size: 0.85rem;
    white-space: nowrap;
}

.lb-format-details[open] .lb-format-how .bi-chevron-down[b-4ktgyoi1k6] { transform: rotate(180deg); }
.lb-format-details p[b-4ktgyoi1k6] { margin: 0 0 0.9rem; line-height: 1.5; }

.lb-format-details summary:focus-visible[b-4ktgyoi1k6] {
    outline: 2px solid var(--lb-accent-2);
    outline-offset: 2px;
}

/* ── G01: the results band, under the top three ─────────────────────────────
   Official-results note + "Presented by" + sponsor strip, drawn as cards inside the list rather
   than as full-width strips above it. */
.lb-results-band[b-4ktgyoi1k6] {
    display: flex;
    flex-direction: column;
    gap: 0.56rem;
}

.lb-results-band-top[b-4ktgyoi1k6] { margin-bottom: 0.9rem; }
.lb-results-band-tail[b-4ktgyoi1k6] { margin-top: 0.9rem; }

.lb-results-band .lb-final-banner[b-4ktgyoi1k6],
.lb-results-band .lb-presented-by[b-4ktgyoi1k6],
.lb-results-band .lb-sponsor-strip[b-4ktgyoi1k6] {
    border-radius: 12px;
    border: 1px solid var(--lb-border);
}

@keyframes lb-pulse-b-4ktgyoi1k6 {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.38; transform: scale(0.72); }
}

/* ── Upgrade prompt (Free plan — live updates disabled) ─────────────────── */

.lb-upgrade-prompt[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1.25rem auto 0.5rem;
    padding: 0.65rem 1rem;
    max-width: 680px;
    border-radius: 8px;
    background: rgba(99, 102, 241, 0.12);
    border: 1px solid rgba(99, 102, 241, 0.28);
    color: var(--lb-text-soft);
    font-size: 0.85rem;
    flex-wrap: wrap;
}

.lb-upgrade-prompt i[b-4ktgyoi1k6] {
    color: #818cf8;
    flex-shrink: 0;
}

.lb-upgrade-link[b-4ktgyoi1k6] {
    color: #93c5fd;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.lb-upgrade-link:hover[b-4ktgyoi1k6] { color: #bfdbfe; text-decoration: underline; }

/* ── Responsive ──────────────────────────────────────────────────────────── */

@media (max-width: 767.98px) {
    .lb-hero[b-4ktgyoi1k6] {
        flex-direction: column;
        align-items: stretch;
    }

    .lb-hero-actions[b-4ktgyoi1k6] {
        justify-content: flex-start;
    }

    .lb-shell[b-4ktgyoi1k6] {
        padding: 0.78rem;
    }

    .lb-mode-bar[b-4ktgyoi1k6] {
        width: 100%;
        justify-content: center;
    }
}

/* ── Export bar (admin-only) ─────────────────────────────────────────────── */
.lb-export-bar[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.6rem 1rem;
    border-top: 1px solid var(--border-muted, rgba(255,255,255,0.08));
    background: var(--bg-elevated, rgba(255,255,255,0.04));
    border-radius: 0 0 0.5rem 0.5rem;
    margin-top: 0.25rem;
}

.lb-export-label[b-4ktgyoi1k6] {
    font-size: 0.78rem;
    color: var(--text-muted, #9ca3af);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.lb-export-btn[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.25rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 500;
    color: var(--text-secondary, #9ca3af);
    border: 1px solid var(--border-muted, rgba(255,255,255,0.12));
    border-radius: 0.35rem;
    text-decoration: none;
    transition: color 0.15s, border-color 0.15s, background 0.15s;
    white-space: nowrap;
}

.lb-export-btn:hover[b-4ktgyoi1k6],
.lb-export-btn:focus-visible[b-4ktgyoi1k6] {
    color: var(--text-primary, #f1f5f9);
    border-color: var(--brand, #4a90e2);
    background: var(--brand-soft, rgba(74,144,226,0.12));
    text-decoration: none;
}

/* ── Wolf standings panel (Wolf is a primary event format, not a side game) ── */
.lb-wolf[b-4ktgyoi1k6] {
    border-radius: 14px;
    border: 1px solid var(--lb-border);
    background: linear-gradient(180deg, var(--lb-card) 0%, var(--lb-card-2) 100%);
    padding: 1.2rem 1.1rem 1.3rem;
    margin-bottom: 1rem;
}

.lb-wolf-head[b-4ktgyoi1k6] {
    text-align: center;
    margin-bottom: 1rem;
}

.lb-wolf-title[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-size: 1.3rem;
    font-weight: 800;
    margin: 0;
}

.lb-wolf-sub[b-4ktgyoi1k6] {
    color: var(--lb-text-muted);
    font-size: 0.85rem;
    margin: 0.35rem 0 0;
}

.lb-wolf-empty[b-4ktgyoi1k6] {
    text-align: center;
    color: var(--lb-text-soft);
    padding: 1.6rem 0.5rem;
}

.lb-wolf-empty i[b-4ktgyoi1k6] {
    font-size: 1.8rem;
    color: var(--lb-accent-2);
    display: block;
    margin-bottom: 0.6rem;
}

.lb-wolf-empty p[b-4ktgyoi1k6] {
    margin: 0;
}

.lb-wolf-rules[b-4ktgyoi1k6] {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid var(--lb-border, rgba(255, 255, 255, 0.12));
    color: var(--lb-text-muted);
    font-size: 0.82rem;
}

.lb-wolf-rules .fw-semibold[b-4ktgyoi1k6] {
    color: var(--lb-text-soft);
    margin-bottom: 0.35rem;
}

.lb-wolf-rules ul[b-4ktgyoi1k6] {
    margin: 0;
    padding-left: 1.1rem;
}

.lb-wolf-rules li[b-4ktgyoi1k6] {
    margin: 0.15rem 0;
}

.lb-wolf-list[b-4ktgyoi1k6] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.lb-wolf-row[b-4ktgyoi1k6] {
    display: grid;
    grid-template-columns: 2.2rem 1fr auto;
    align-items: center;
    gap: 0.7rem;
    padding: 0.6rem 0.8rem;
    border-radius: 10px;
    border: 1px solid var(--lb-border);
    background: rgba(255, 255, 255, 0.02);
}

.lb-wolf-row--leader[b-4ktgyoi1k6] {
    border-color: var(--lb-accent);
    background: rgba(86, 199, 255, 0.10);
}

.lb-wolf-rank[b-4ktgyoi1k6] {
    font-weight: 800;
    font-size: 1rem;
    color: var(--lb-text-muted);
    text-align: center;
}

.lb-wolf-row--leader .lb-wolf-rank[b-4ktgyoi1k6] {
    color: var(--lb-accent-2);
}

.lb-wolf-name[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lb-wolf-value[b-4ktgyoi1k6] {
    color: var(--lb-text);
    font-weight: 800;
    font-size: 1.05rem;
    white-space: nowrap;
}

.lb-wolf-unit[b-4ktgyoi1k6] {
    color: var(--lb-text-muted);
    font-weight: 600;
    font-size: 0.78rem;
    margin-left: 0.15rem;
}

/* ── Final-results celebration banner ─────────────────────── */
.lb-final-banner[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1.5rem;
    background: linear-gradient(90deg, rgba(202,138,4,0.18), rgba(234,179,8,0.10));
    border-bottom: 1px solid rgba(234,179,8,0.25);
    border-top: 1px solid rgba(234,179,8,0.12);
}

.lb-final-icon[b-4ktgyoi1k6] {
    font-size: 1.5rem;
    color: #fbbf24;
    flex-shrink: 0;
}

.lb-final-body[b-4ktgyoi1k6] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.lb-final-title[b-4ktgyoi1k6] {
    font-weight: 800;
    font-size: 0.9rem;
    color: #fef08a;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.lb-final-sub[b-4ktgyoi1k6] {
    font-size: 0.8rem;
    color: rgba(254,240,138,0.7);
}

/* ── Share button ──────────────────────────────────────────── */
.lb-share-btn[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.15));
    border-radius: 999px;
    background: transparent;
    color: var(--text-secondary, #94a3b8);
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

.lb-share-btn:hover[b-4ktgyoi1k6] {
    background: rgba(255,255,255,0.07);
    color: var(--text-primary, #f1f5f9);
    border-color: var(--border-default, rgba(255,255,255,0.25));
}

.lb-share-btn--copied[b-4ktgyoi1k6] {
    border-color: var(--success, #22c55e);
    color: var(--success-text, #4ade80);
    background: var(--success-soft, rgba(34,197,94,0.12));
}

/* "TV View" — opens the full-screen kiosk board in a new tab for casting to a clubhouse display. */
.lb-tv-btn[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.35rem 0.85rem;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.15));
    border-radius: 999px;
    background: transparent;
    color: var(--text-secondary, #94a3b8);
    text-decoration: none;
    transition: background .15s, color .15s, border-color .15s;
}
.lb-tv-btn:hover[b-4ktgyoi1k6] {
    background: rgba(255,255,255,0.07);
    color: var(--text-primary, #f1f5f9);
    border-color: var(--border-default, rgba(255,255,255,0.25));
}

/* ── "Presented by" branding strip (Club tier, gated) ─────── */
.lb-presented-by[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    padding: 0.55rem 1.5rem;
    background: var(--bg-elevated, rgba(255,255,255,0.04));
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.lb-presented-label[b-4ktgyoi1k6] {
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.lb-presented-logo[b-4ktgyoi1k6] {
    height: 28px;
    width: auto;
    max-width: 80px;
    object-fit: contain;
    border-radius: 4px;
}

/* Supporting sponsor wall strip — compact logo band under "Presented by". Logos render as-is
   (no backing plate), matching the committed .pub-sponsor-logo treatment on the public event
   page; wraps on phones, never overflows. */
.lb-sponsor-strip[b-4ktgyoi1k6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.45rem;
    padding: 0.6rem 1rem 0.75rem;
    background: var(--bg-elevated, rgba(255,255,255,0.04));
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}
.lb-sponsor-strip-label[b-4ktgyoi1k6] {
    font-size: 0.72rem;
    font-weight: 500;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
/* ONE row that scrolls sideways, never a block that wraps.
   Wrapping eight plates made the strip 212px tall — 26% of a phone screen — so a player opened the
   leaderboard and saw sponsors instead of scores. The board's job is scores; recognition rides
   along in a fixed-height band, and the full roll is one tap away on the sponsors page. */
.lb-sponsor-strip-logos[b-4ktgyoi1k6] {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.6rem;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 2px;
    scrollbar-width: none;              /* Firefox */
    -webkit-overflow-scrolling: touch;
}

.lb-sponsor-strip-logos[b-4ktgyoi1k6]::-webkit-scrollbar { display: none; }
.lb-sponsor-strip-logo[b-4ktgyoi1k6] {
    height: 34px;
    width: auto;
    max-width: 110px;
    object-fit: contain;
    border-radius: 6px;
}

.lb-presented-name[b-4ktgyoi1k6] {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-secondary, #94a3b8);
}

/* ── Hole-by-hole scorecard expand ────────────────────────── */
.lb-row-expandable[b-4ktgyoi1k6],
.lb-card-expandable[b-4ktgyoi1k6] {
    cursor: pointer;
}

.lb-row-expandable:hover td[b-4ktgyoi1k6] { background: rgba(255,255,255,0.03); }

.lb-expand-chevron[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    margin-left: 0.35rem;
    font-size: 0.7rem;
    color: var(--text-muted, #64748b);
    transition: transform .2s;
    vertical-align: middle;
}

.lb-expand-chevron--open[b-4ktgyoi1k6] {
    transform: rotate(-180deg);
}

.lb-scorecard-expand-row td[b-4ktgyoi1k6] {
    background: var(--bg-surface, #0f172a) !important;
    border-bottom: 2px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.lb-sc-wrap[b-4ktgyoi1k6] {
    padding: 0.6rem 0.75rem 0.75rem;
    overflow-x: auto;
}

.lb-sc-round-label[b-4ktgyoi1k6] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-bottom: 0.3rem;
    margin-top: 0.5rem;
}

.lb-sc-grid[b-4ktgyoi1k6] {
    display: grid;
    gap: 2px;
    min-width: max-content;
}

.lb-sc-label[b-4ktgyoi1k6] {
    font-size: 0.67rem;
    font-weight: 700;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
    padding-right: 0.4rem;
}

.lb-sc-cell[b-4ktgyoi1k6] {
    width: 2rem;
    height: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.78rem;
    font-weight: 600;
    border-radius: 4px;
    background: var(--bg-elevated, rgba(255,255,255,0.04));
    color: var(--text-secondary, #94a3b8);
}

.lb-sc-hole-num[b-4ktgyoi1k6] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--text-muted, #64748b);
    background: transparent;
}

.lb-sc-par[b-4ktgyoi1k6] {
    color: var(--text-muted, #64748b);
    background: transparent;
    font-weight: 500;
}

/* Score notation cells */
.lb-sc-eagle[b-4ktgyoi1k6]  { background: rgba(234,179,8,0.20); color: #fbbf24; border: 1px solid rgba(234,179,8,0.35); border-radius: 50%; }
.lb-sc-birdie[b-4ktgyoi1k6] { background: var(--success-soft, rgba(34,197,94,0.15)); color: var(--success-text, #4ade80); border-radius: 50%; }
.lb-sc-par-cell[b-4ktgyoi1k6] { color: var(--text-secondary, #94a3b8); background: var(--bg-elevated, rgba(255,255,255,0.04)); }
.lb-sc-bogey[b-4ktgyoi1k6]  { background: rgba(251,146,60,0.15); color: #fb923c; border: 1px solid rgba(251,146,60,0.25); }
.lb-sc-double[b-4ktgyoi1k6] { background: var(--danger-soft, rgba(239,68,68,0.12)); color: var(--danger-text, #f87171); border: 1px solid rgba(239,68,68,0.2); }

/* Mobile scorecard is slightly smaller */
.lb-sc-grid--mobile .lb-sc-cell[b-4ktgyoi1k6] { width: 1.75rem; height: 1.75rem; font-size: 0.72rem; }
.lb-sc-grid--mobile .lb-sc-hole-num[b-4ktgyoi1k6] { font-size: 0.65rem; }

/* Wrapped mobile scorecard: rows of up to 9 holes that fill the card width so every
   hole is visible with no horizontal scrolling (fixes holes running off the screen).
   Cells flex to the available width but stay square and capped, so the layout holds
   from a 320px phone up to a wide one, and for short/partial rows alike. */
.lb-sc-grid--wrap[b-4ktgyoi1k6] {
    min-width: 0;
    width: 100%;
    justify-items: center;
}
.lb-sc-grid--wrap + .lb-sc-grid--wrap[b-4ktgyoi1k6] { margin-top: 4px; }
.lb-sc-grid--wrap .lb-sc-label[b-4ktgyoi1k6] { justify-self: start; }
.lb-sc-grid--wrap .lb-sc-cell[b-4ktgyoi1k6] {
    width: 100%;
    height: auto;
    max-width: 2.1rem;
    aspect-ratio: 1 / 1;
}

/* Keep card-level expand from triggering double events on stat chips */
.lb-card-expandable .lb-stat[b-4ktgyoi1k6] { pointer-events: none; }

/* ── Flight tabs ─────────────────────────────────────────────────────────── */
.lb-flight-tabs[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0 1rem 0.25rem;
    border-bottom: 1px solid var(--lb-border);
    overflow-x: auto;
    scrollbar-width: none;
}
.lb-flight-tabs[b-4ktgyoi1k6]::-webkit-scrollbar { display: none; }

.lb-flight-tab[b-4ktgyoi1k6] {
    flex-shrink: 0;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--lb-text-muted);
    font-size: 0.82rem;
    font-weight: 600;
    padding: 0.45rem 0.75rem;
    cursor: pointer;
    border-radius: 6px 6px 0 0;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
}
.lb-flight-tab:hover[b-4ktgyoi1k6] {
    color: var(--lb-text-soft);
    background: rgba(255,255,255,0.04);
}
.lb-flight-tab--active[b-4ktgyoi1k6] {
    color: var(--lb-accent);
    border-bottom-color: var(--lb-accent);
}

/* Custom event photo — slim banner above the leaderboard hero (clubhouse-TV branding) */
/* The banner a club uploads here is a FLYER — words, a date, a logo, a sponsor line. It was
   stretched to the full width and then cut to a 130px letterbox with object-fit: cover, which on a
   390px phone showed a 390x130 window onto a 390x219 image: 40% of the flyer gone, sliced straight
   through its own type. A picture can be cropped; a sentence cannot.

   So the whole image is shown, scaled to fit a box it can never overflow: max-width holds it
   inside the page, max-height keeps it from eating the leaderboard on a tall screen, and with both
   dimensions auto the browser keeps the aspect ratio, so nothing is ever cut. On a phone the 16:9
   flyer lands at 390x219; on a desktop the cap decides and it centres. */
.lb-event-banner[b-4ktgyoi1k6] {
    width: 100%;
    overflow: hidden;
    border-bottom: 1px solid var(--lb-border);
    background: var(--lb-card);
    display: flex;
    justify-content: center;
}
.lb-event-banner img[b-4ktgyoi1k6] {
    max-width: 100%;
    max-height: 260px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

/* ── Skins panel (moved from an embedded <style> block, audit Batch D) ──────────
   The old block referenced tokens that were never defined (--surface-2, --text,
   --border, …) so it silently rendered on hex fallbacks — a second palette fighting
   this page's own. Aligned to the --lb-* palette above. */
.lb-skins-panel[b-4ktgyoi1k6] { margin: 16px 0; padding: 16px; border-radius: 12px;
    background: var(--lb-card); border: 1px solid var(--lb-border); }
.lb-skins-head[b-4ktgyoi1k6] { margin-bottom: 12px; }
.lb-skins-title[b-4ktgyoi1k6] { font-size: 1.1rem; font-weight: 700; margin: 0; color: var(--lb-text); }
.lb-skins-sub[b-4ktgyoi1k6] { font-size: .8rem; color: var(--lb-text-muted); margin: 2px 0 0; }
.lb-skins-totals[b-4ktgyoi1k6] { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.lb-skins-row[b-4ktgyoi1k6] { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 8px;
    background: var(--lb-card-2); }
.lb-skins-row--leader[b-4ktgyoi1k6] { background: var(--lb-accent-soft); }
.lb-skins-rank[b-4ktgyoi1k6] { min-width: 1.5rem; font-weight: 700; color: var(--lb-accent); }
.lb-skins-name[b-4ktgyoi1k6] { flex: 1; color: var(--lb-text); }
.lb-skins-value[b-4ktgyoi1k6] { font-weight: 700; color: var(--lb-text); }
.lb-skins-unit[b-4ktgyoi1k6] { font-size: .75rem; font-weight: 400; color: var(--lb-text-muted); }
.lb-skins-none[b-4ktgyoi1k6] { font-size: .85rem; color: var(--lb-text-muted); margin: 0 0 12px; }
.lb-skins-grid-label[b-4ktgyoi1k6] { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em;
    color: var(--lb-text-muted); margin-bottom: 8px; }
.lb-skins-grid[b-4ktgyoi1k6] { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 1fr)); gap: 6px; }
.lb-skins-cell[b-4ktgyoi1k6] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    padding: 8px 4px; border-radius: 8px; min-height: 56px;
    border: 1px solid var(--lb-border); }
.lb-skins-cell--won[b-4ktgyoi1k6] { background: var(--lb-success-soft); border-color: var(--lb-success); }
.lb-skins-cell-hole[b-4ktgyoi1k6] { font-size: .72rem; color: var(--lb-text-muted); }
.lb-skins-cell-team[b-4ktgyoi1k6] { display: flex; flex-direction: column; align-items: center; max-width: 100%;
    font-size: .8rem; font-weight: 600; color: var(--lb-text); text-align: center; }
/* Same cut, smaller box: "Meincke/Dather" arrived as "Meincke/Dat…" in a 68px skins cell. The
   grid row grows to its tallest cell and the cells only carry a min-height, so a second line
   costs a few pixels and gives back the name. */
.lb-skins-cell-name[b-4ktgyoi1k6] { max-width: 100%; overflow-wrap: anywhere; line-height: 1.2; }
.lb-skins-cell-mult[b-4ktgyoi1k6] { font-size: .7rem; font-weight: 700; line-height: 1.1; color: var(--lb-success); }
.lb-skins-legend[b-4ktgyoi1k6] { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 12px; font-size: .78rem; color: var(--lb-text-muted); }
.lb-skins-legend > span[b-4ktgyoi1k6] { display: inline-flex; align-items: center; gap: 6px; }
.lb-skins-swatch[b-4ktgyoi1k6] { width: 12px; height: 12px; border-radius: 3px; display: inline-block;
    border: 1px solid var(--lb-border); }
.lb-skins-swatch--won[b-4ktgyoi1k6] { background: var(--lb-success-soft); border-color: var(--lb-success); }
/* "You're in the skins" / "You're not in the skins" — the one line a player looks for on an
   optional-buy-in event.
   Uses the board's OWN --lb-* palette, never the global light/dark tokens: .lb-page is a
   deliberately dark surface in both themes, so a global --bg-elevated here would turn into a
   white box on a navy board the moment the viewer is in light mode. */
.lb-skins-you[b-4ktgyoi1k6] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 10px 12px;
    border-radius: 10px;
    font-size: .85rem;
    font-weight: 600;
    border: 1px solid var(--lb-border);
    color: var(--lb-text);
    background: var(--lb-card-2);
}

.lb-skins-you.is-in[b-4ktgyoi1k6] { border-color: var(--lb-success); background: var(--lb-success-soft); }
.lb-skins-you.is-in i[b-4ktgyoi1k6] { color: var(--lb-success); }
.lb-skins-you.is-out[b-4ktgyoi1k6] { color: var(--lb-text-soft); }

.lb-skins-empty[b-4ktgyoi1k6] { text-align: center; padding: 20px; color: var(--lb-text-muted); }
.lb-skins-empty i[b-4ktgyoi1k6] { font-size: 1.5rem; display: block; margin-bottom: 8px; }
.lb-skins-empty p[b-4ktgyoi1k6] { margin: 0; font-size: .9rem; }

/* ── Tie-break panel (same move) ─────────────────────────────────────────────── */
.lb-tb-panel[b-4ktgyoi1k6] { margin: 16px 0; padding: 16px; border-radius: 12px;
    background: var(--lb-card); border: 1px solid var(--lb-border); }
.lb-tb-head[b-4ktgyoi1k6] { font-weight: 700; margin-bottom: 8px; color: var(--lb-text); }
.lb-tb-hint[b-4ktgyoi1k6], .lb-tb-empty[b-4ktgyoi1k6] { font-size: .85rem; color: var(--lb-text-muted); margin: 0 0 12px; }
.lb-tb-group[b-4ktgyoi1k6] { margin-bottom: 12px; }
.lb-tb-group-label[b-4ktgyoi1k6] { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em;
    color: var(--lb-text-muted); margin-bottom: 4px; }
.lb-tb-row[b-4ktgyoi1k6] { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 8px;
    background: var(--lb-card-2); margin-bottom: 4px; }
.lb-tb-pos[b-4ktgyoi1k6] { min-width: 1.5rem; font-weight: 700; color: var(--lb-accent); }
.lb-tb-name[b-4ktgyoi1k6] { flex: 1; color: var(--lb-text); }
.lb-tb-actions[b-4ktgyoi1k6] { display: flex; gap: 6px; }
.lb-tb-btn[b-4ktgyoi1k6] { min-width: 40px; min-height: 40px; border-radius: 8px; border: 1px solid var(--lb-border);
    background: transparent; color: var(--lb-text); cursor: pointer; }
.lb-tb-btn:disabled[b-4ktgyoi1k6] { opacity: .35; cursor: default; }
.lb-tb-btn:not(:disabled):hover[b-4ktgyoi1k6] { background: var(--lb-card-2); }

/* ── Individual Net side competition (Best Ball only) ─────────────────────── */
.lb-indivnet[b-4ktgyoi1k6] {
    margin: 22px 16px 8px;
    border: 1px solid var(--lb-border);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(19, 39, 70, 0.55), rgba(16, 33, 61, 0.35));
    overflow: hidden;
}
.lb-indivnet-head[b-4ktgyoi1k6] {
    padding: 16px 18px 4px;
}
.lb-indivnet-title[b-4ktgyoi1k6] {
    display: flex; align-items: center; gap: 8px;
    font-size: 1.05rem; font-weight: 800; color: var(--lb-text); margin: 0;
}
.lb-indivnet-title i[b-4ktgyoi1k6] { color: var(--lb-accent); }
.lb-indivnet-sub[b-4ktgyoi1k6] {
    margin: 4px 0 0; font-size: 0.82rem; color: var(--lb-text-muted);
}
.lb-indivnet-flight[b-4ktgyoi1k6] { padding: 10px 12px 16px; }
.lb-indivnet-flight-name[b-4ktgyoi1k6] {
    display: inline-block;
    font-size: 0.72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase;
    color: var(--lb-accent-2);
    background: var(--lb-accent-soft);
    border: 1px solid var(--lb-border);
    border-radius: 999px; padding: 3px 12px; margin: 4px 6px 10px;
}
.lb-indivnet-table-wrap[b-4ktgyoi1k6] { overflow-x: auto; }
.lb-indivnet-table[b-4ktgyoi1k6] {
    width: 100%; border-collapse: collapse; font-size: 0.9rem;
    color: var(--lb-text);
}
.lb-indivnet-table thead th[b-4ktgyoi1k6] {
    text-align: left; font-size: 0.7rem; font-weight: 700; letter-spacing: .04em;
    text-transform: uppercase; color: var(--lb-text-muted);
    padding: 6px 10px; border-bottom: 1px solid var(--lb-border); white-space: nowrap;
}
.lb-indivnet-table td[b-4ktgyoi1k6] {
    padding: 9px 10px; border-bottom: 1px solid rgba(40, 68, 111, 0.5); white-space: nowrap;
}
.lb-indivnet-table tbody tr:last-child td[b-4ktgyoi1k6] { border-bottom: none; }
.lb-in-pos[b-4ktgyoi1k6] { width: 3.2rem; font-weight: 800; color: var(--lb-accent); }
.lb-in-player[b-4ktgyoi1k6] { font-weight: 600; }
.lb-in-team[b-4ktgyoi1k6] { color: var(--lb-text-soft); }
.lb-in-num[b-4ktgyoi1k6] { text-align: right; font-variant-numeric: tabular-nums; }
th.lb-in-num[b-4ktgyoi1k6] { text-align: right; }
.lb-in-net[b-4ktgyoi1k6] { font-weight: 800; color: var(--lb-success); }
.lb-indivnet-table tbody tr.lb-in-leader td[b-4ktgyoi1k6] { background: var(--lb-success-soft); }
.lb-indivnet-table tbody tr.lb-in-me td[b-4ktgyoi1k6] { box-shadow: inset 3px 0 0 var(--lb-accent); }

/* ::deep is REQUIRED, not stylistic. The mark is rendered by the shared <SponsorMark />
   child component, so its element never receives THIS component's b-* scope attribute and a
   plain `.lb-sponsor-strip-logo { }` rule silently does nothing — the logo falls back to its natural
   size (a 1px image renders as 1px). `.lb-sponsor-strip-logos ::deep` compiles to
   `.lb-sponsor-strip-logos[b-xxxx] .lb-sponsor-strip-logo`, which matches because the wrapper IS in this
   component's own markup. Applies to BOTH treatments, so a nameplate occupies the same box
   as the logo beside it. */
.lb-sponsor-strip-logos[b-4ktgyoi1k6]  .lb-sponsor-strip-logo {
    flex: 0 0 auto;                 /* never squeeze inside the scrolling row */
    height: 34px;
    width: auto;
    min-width: 84px;
    max-width: 130px;
    object-fit: contain;
    border-radius: 6px;
}

/* A nameplate in a 34px band gets ONE line, ellipsised. The full business name is on the
   sponsors page; cramming three wrapped lines into a strip made it unreadable and tall. */
.lb-sponsor-strip-logos[b-4ktgyoi1k6]  .lb-sponsor-strip-logo.sponsor-mark-plate {
    padding: 0 0.5rem;
    border-width: 1.5px;
}

.lb-sponsor-strip-logos[b-4ktgyoi1k6]  .lb-sponsor-strip-logo.sponsor-mark-plate .sponsor-plate-text {
    font-size: 0.56rem;
    line-height: 1.1;
    -webkit-line-clamp: 2;
    overflow-wrap: normal;
    word-break: normal;
}

/* Sponsor strip is a WINDOW onto the roll — its label doubles as the link to the full
   public sponsors page, which is where all 100+ actually live. */
.lb-sponsor-strip-all[b-4ktgyoi1k6] {
    color: var(--b9-primary-text, #93C5FD);
    text-decoration: none;
    font-weight: 700;
}

.lb-sponsor-strip-all:hover[b-4ktgyoi1k6] { text-decoration: underline; }

/* Mid-round retiree: a real row, real strokes, no position — golf writes it "WD". */
.lb-wd-badge[b-4ktgyoi1k6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 34px;
    padding: 2px 8px;
    border-radius: 8px;
    background: var(--warning-soft);
    color: var(--text-primary);
    font-weight: 800;
    font-size: .8rem;
    letter-spacing: .03em;
}

/* Entries exist but nothing is scored yet. Without this the board is a field of em-dashes under a
   pulsing LIVE pill, which reads as broken rather than as "play hasn't started". Design tokens only
   — this renders on the public board, which is dark-first and must stay legible in both themes. */
.lb-nothing-scored[b-4ktgyoi1k6] {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: .85rem 1rem;
    margin: 0 0 1rem;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    color: var(--text-primary);
}

.lb-nothing-scored i[b-4ktgyoi1k6] {
    font-size: 1.05rem;
    line-height: 1.5;
    color: var(--text-muted);
    flex: 0 0 auto;
}

.lb-nothing-scored strong[b-4ktgyoi1k6] {
    display: block;
    font-size: .95rem;
    font-weight: 700;
}

.lb-nothing-scored span[b-4ktgyoi1k6] {
    display: block;
    font-size: .88rem;
    color: var(--text-muted);
    margin-top: .15rem;
    line-height: 1.45;
}
/* /Components/Pages/Events/ManageSponsors.razor.rz.scp.css */
/* Organiser sponsor screens. Design tokens only; dark-theme safe; 48px touch targets. */

.ms-subtitle[b-xgxquvmk70] { color: var(--b9-text-muted); font-size: 0.9rem; }
.ms-muted[b-xgxquvmk70]    { color: var(--b9-text-soft); font-size: 0.9rem; }
.ms-help[b-xgxquvmk70]     { color: var(--b9-text-helper); font-size: 0.88rem; margin: 0; }

.ms-card[b-xgxquvmk70] {
    background: var(--b9-surface-alt);
    border: 1px solid var(--b9-border);
    border-radius: 14px;
}

.ms-count[b-xgxquvmk70] {
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--b9-text-muted);
    background: var(--b9-surface-muted);
    border-radius: 20px;
    padding: 2px 9px;
    margin-left: 4px;
}

.ms-ok[b-xgxquvmk70] { color: var(--b9-success-text); font-size: 0.88rem; font-weight: 600; }

.ms-paste[b-xgxquvmk70] {
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 0.82rem;
    line-height: 1.6;
}

/* ── Tee box grid ────────────────────────────────────────────────── */
.ms-holes[b-xgxquvmk70] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 0.5rem;
}

.ms-hole[b-xgxquvmk70] {
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    padding: 0.5rem;
    min-height: 74px;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.ms-hole-num[b-xgxquvmk70] {
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--b9-text-soft);
}

.ms-hole-chip[b-xgxquvmk70] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: var(--b9-warning-soft);
    border: 1px solid var(--b9-warning);
    color: var(--b9-warning-text);
    border-radius: 6px;
    padding: 0.28rem 0.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    min-width: 0;
}

/* A sponsor who sent artwork reads as the brand colour; a nameplate reads amber. */
.ms-hole-chip.has-logo[b-xgxquvmk70] {
    background: var(--b9-primary-soft);
    border-color: var(--b9-primary);
    color: var(--b9-primary-text);
}

.ms-hole-chip-name[b-xgxquvmk70] {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ms-hole-chip-x[b-xgxquvmk70] {
    flex: none;
    background: none;
    border: none;
    color: inherit;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 2px;
    min-width: 24px;
    min-height: 24px;
}

.ms-hole-chip-x:hover[b-xgxquvmk70] { opacity: 0.7; }

/* ── The list ────────────────────────────────────────────────────── */
.ms-list[b-xgxquvmk70] {
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    overflow: hidden;
}

.ms-row[b-xgxquvmk70] {
    display: grid;
    grid-template-columns: 68px 1fr 150px;
    gap: 0.75rem;
    align-items: center;
    padding: 0.55rem 0.85rem;
    border-bottom: 1px solid var(--b9-border);
    min-height: 48px;
}

.ms-row:last-child[b-xgxquvmk70] { border-bottom: none; }

.ms-row-head[b-xgxquvmk70] {
    background: var(--b9-surface-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--b9-text-soft);
    min-height: 0;
    padding-block: 0.45rem;
}

.ms-row.is-hidden .ms-col-name[b-xgxquvmk70] { color: var(--b9-text-soft); text-decoration: line-through; }

.ms-col-name[b-xgxquvmk70] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.15rem;
    font-size: 0.9rem;
    font-weight: 600;
    min-width: 0;
    overflow-wrap: anywhere;
}

/* 48px touch target on the one control an organiser taps 124 times. */
.ms-check[b-xgxquvmk70] {
    width: 22px;
    height: 22px;
    margin: 13px 0 13px 13px;
    cursor: pointer;
}

.ms-tag[b-xgxquvmk70] {
    font-size: 0.6rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    border-radius: 20px;
    padding: 2px 8px;
}

.ms-tag-logo[b-xgxquvmk70]  { color: var(--b9-primary-text); background: var(--b9-primary-soft); }
.ms-tag-plate[b-xgxquvmk70] { color: var(--b9-warning-text); background: var(--b9-warning-soft); }

.ms-hole-select[b-xgxquvmk70] { min-height: 40px; }

@media (max-width: 640px) {
    .ms-row[b-xgxquvmk70] { grid-template-columns: 52px 1fr; row-gap: 0.4rem; }
    .ms-col-hole[b-xgxquvmk70] { grid-column: 2; }
    .ms-row-head .ms-col-hole[b-xgxquvmk70] { display: none; }
}

/* Sign wording, shown only for sponsors with no artwork — the plate is all they get,
   so the organiser needs to be able to word it. */
.ms-name-line[b-xgxquvmk70] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ms-plate-input[b-xgxquvmk70] {
    margin-top: 0.3rem;
    max-width: 320px;
    font-size: 0.8rem;
    min-height: 34px;
}

/* EVT-009 — attaching artwork from the screen that lists the sponsors.
   The control is a label wrapping a hidden InputFile, so it reads as one target. */
.ms-upload[b-xgxquvmk70] { cursor: pointer; margin-left: .4rem; }
.ms-upload-text[b-xgxquvmk70] {
    font-size: .72rem;
    color: var(--b9-primary-text, #93C5FD);
    border-bottom: 1px dashed currentColor;
}
.ms-upload:hover .ms-upload-text[b-xgxquvmk70] { color: var(--text-primary, #F8FAFC); }

/* Per-row feedback. Amber says "saved, but"; red says "not saved". */
.ms-row-note[b-xgxquvmk70] { font-size: .72rem; margin-top: .2rem; }
.ms-row-warn[b-xgxquvmk70] { color: var(--b9-warning-text, #FCD34D); }
.ms-row-err[b-xgxquvmk70]  { color: var(--b9-danger-text, #FCA5A5); }
/* /Components/Pages/Events/MyEvent.razor.rz.scp.css */
/* Extracted inline styles (Blazor audit Batch G). */
.mev-score-input[b-0bcmqfxh6s] { width: 6rem; }
/* /Components/Pages/Events/MyScorecard.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   TOP BAR
═══════════════════════════════════════════════════════════ */
.msc-shell[b-g34efi8djj] {
    --msc-dark-text: #f8fafc;
    --msc-dark-secondary: #e5edf7;
    --msc-light-text: var(--b9-text, #f3f6fb);
    --msc-light-secondary: var(--b9-text-muted, #c2cfdf);
    --msc-light-muted: var(--b9-text-soft, #9fb0c4);
    --msc-accent-ring: rgba(29, 78, 216, 0.28);
    --msc-surface-paper: var(--b9-surface-alt, #0f172a);
    --msc-surface-ivory: var(--b9-surface-alt, #0f172a);
    --msc-surface-soft: var(--b9-surface-muted, #111827);
    --msc-surface-line: var(--b9-border, rgba(255,255,255,0.12));
}

.msc-topbar[b-g34efi8djj] {
    position: sticky;
    top: 0;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding: 0.65rem 1rem;
    min-height: 58px;
    background: linear-gradient(140deg, #141d2a 0%, #1f2a3b 100%);
    border-bottom: 1px solid rgba(255,255,255,0.06);
    box-shadow: inset 0 -1px 0 rgba(255,255,255,0.04), 0 8px 20px rgba(15, 23, 42, 0.18);
    gap: 0.75rem;
}

.msc-topbar-left[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
}

.msc-back-btn[b-g34efi8djj] {
    color: rgba(255,255,255,0.9) !important;
    border-color: rgba(255,255,255,0.24) !important;
    flex-shrink: 0;
    padding: 0.3rem 0.6rem;
}

.msc-back-btn:hover[b-g34efi8djj] {
    background: rgba(255,255,255,0.1) !important;
    color: #fff !important;
}

.msc-topbar-info[b-g34efi8djj] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.14rem;
}

.msc-topbar-kicker[b-g34efi8djj] {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--msc-dark-secondary);
}

.msc-topbar-event[b-g34efi8djj] {
    font-size: 1rem;
    font-weight: 800;
    color: var(--msc-dark-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.2;
}

.msc-topbar-player[b-g34efi8djj] {
    font-size: 0.84rem;
    color: var(--msc-dark-secondary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.msc-topbar-right[b-g34efi8djj] {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-left: auto;
}

.msc-display-options-trigger[b-g34efi8djj] {
    display: none;
    align-items: center;
    gap: 0.3rem;
    border: 1px solid rgba(255,255,255,0.22);
    background: rgba(255,255,255,0.12);
    color: #f8fafc;
    border-radius: 999px;
    min-height: 44px;
    padding: 0.34rem 0.72rem;
    font-size: 0.76rem;
    font-weight: 800;
}

.msc-control-cluster[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.22rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.04) 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}

.msc-command-strip[b-g34efi8djj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.15rem;
}

.msc-command-chip[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.18rem 0.5rem;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.06);
    color: var(--msc-dark-secondary);
    font-size: 0.78rem;
    font-weight: 700;
}

.msc-command-chip strong[b-g34efi8djj] {
    color: var(--msc-dark-text);
}

.msc-command-chip.is-saved[b-g34efi8djj] {
    background: rgba(134,239,172,0.14);
    border-color: rgba(134,239,172,0.28);
    color: #86efac;
}

.msc-command-chip.is-offline[b-g34efi8djj],
.msc-command-chip.is-warning[b-g34efi8djj] {
    background: rgba(252, 211, 77, 0.12);
    border-color: rgba(252, 211, 77, 0.25);
    color: #fde68a;
}

.msc-command-toggle[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    padding: 0.18rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.09);
}

.msc-command-toggle-btn[b-g34efi8djj] {
    border: none;
    background: transparent;
    color: #f1f5f9;
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: 999px;
    min-height: 44px;
    padding: 0.4rem 0.76rem;
}

.msc-command-toggle-btn.active[b-g34efi8djj] {
    background: rgba(255,255,255,0.14);
    color: var(--b9-text, #f3f6fb);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.14);
}

.msc-senior-toggle[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border: 1px solid rgba(255,255,255,0.12);
    background: rgba(255,255,255,0.08);
    color: #f1f5f9;
    border-radius: 999px;
    min-height: 44px;
    padding: 0.4rem 0.74rem;
    font-size: 0.8rem;
    font-weight: 700;
}

.msc-senior-toggle.active[b-g34efi8djj] {
    background: rgba(134,239,172,0.16);
    border-color: rgba(134,239,172,0.36);
    color: #ecfdf5;
}

.msc-save-indicator[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 30px;
}

.msc-save-indicator.saving[b-g34efi8djj] {
    color: rgba(255,255,255,0.6);
    background: rgba(255,255,255,0.08);
}

.msc-save-indicator.saved[b-g34efi8djj] {
    color: #86efac;
    background: rgba(134,239,172,0.12);
}

.msc-save-indicator.msc-save-silent[b-g34efi8djj],
.msc-save-indicator.msc-save-warning[b-g34efi8djj] {
    width: 32px;
    height: 32px;
    padding: 0;
    justify-content: center;
    border-radius: 50%;
}

.msc-save-indicator.msc-save-silent[b-g34efi8djj] {
    color: #86efac;
    background: rgba(134,239,172,0.14);
}

.msc-save-indicator.msc-save-warning[b-g34efi8djj] {
    color: #fcd34d;
    background: rgba(245, 158, 11, 0.2);
}

.msc-team-context[b-g34efi8djj] {
    margin: 0.6rem 0.9rem 0;
    padding: 0.85rem 0.95rem;
    background: var(--b9-surface-muted, #111827);
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 12px;
    box-shadow: 0 5px 12px rgba(69, 52, 23, 0.06);
}

.msc-team-context-summary[b-g34efi8djj] {
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--b9-text-muted, #c2cfdf);
    margin-bottom: 0.55rem;
}

.msc-team-context[open] .msc-team-context-summary[b-g34efi8djj] {
    margin-bottom: 0.7rem;
}

.msc-wolf-context[b-g34efi8djj] {
    margin: 0.75rem 0 0.45rem;
    padding: 0.86rem 1rem;
    border: 1px solid rgba(59, 130, 246, 0.34);
    border-radius: 12px;
    background: linear-gradient(145deg, rgba(30, 41, 59, 0.92), rgba(15, 23, 42, 0.95));
    box-shadow: 0 6px 16px rgba(2, 6, 23, 0.28);
}

.msc-wolf-context-title[b-g34efi8djj] {
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #bfdbfe;
    margin-bottom: 0.45rem;
}

.msc-wolf-context-row[b-g34efi8djj] {
    margin: 0;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.92rem;
    line-height: 1.35;
    color: #e2e8f0;
}

.msc-wolf-context-row + .msc-wolf-context-row[b-g34efi8djj] {
    margin-top: 0.3rem;
}

.msc-wolf-context-label[b-g34efi8djj] {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: #93c5fd;
}

.msc-wolf-context-player strong[b-g34efi8djj],
.msc-wolf-context-decision strong[b-g34efi8djj],
.msc-wolf-context-partner strong[b-g34efi8djj] {
    color: #f8fafc;
    text-align: right;
}

.msc-wolf-context-guidance[b-g34efi8djj] {
    margin: 0.55rem 0 0;
    padding-top: 0.5rem;
    border-top: 1px solid rgba(148, 163, 184, 0.22);
    font-size: 0.86rem;
    line-height: 1.45;
    color: #cbd5e1;
}

.msc-wolf-context-rotation[b-g34efi8djj] {
    margin: 0.45rem 0 0;
    font-size: 0.82rem;
    line-height: 1.4;
    color: #bfdbfe;
    overflow-wrap: anywhere;
}

/* ── Live Wolf decision picker ─────────────────────────────────────────── */
.msc-wolf-pick-prompt[b-g34efi8djj] {
    margin: 0.5rem 0 0.35rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: #e2e8f0;
}

.msc-wolf-pick-confirmed[b-g34efi8djj] {
    margin: 0.5rem 0 0.35rem;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #bfdbfe;
}

.msc-wolf-pick-confirmed strong[b-g34efi8djj] {
    color: #f8fafc;
}

.msc-wolf-pick-actions[b-g34efi8djj] {
    display: flex;
    gap: 0.5rem;
}

.msc-wolf-pick-partners[b-g34efi8djj] {
    margin-top: 0.6rem;
}

.msc-wolf-pick-partner-row[b-g34efi8djj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.35rem;
}

.msc-wolf-pick-btn[b-g34efi8djj] {
    flex: 1 1 0;
    min-height: 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid rgba(96, 165, 250, 0.45);
    border-radius: 10px;
    background: rgba(30, 58, 138, 0.35);
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.12s ease, border-color 0.12s ease;
}

.msc-wolf-pick-btn:hover:not(:disabled)[b-g34efi8djj] {
    background: rgba(37, 99, 235, 0.5);
}

.msc-wolf-pick-btn:disabled[b-g34efi8djj] {
    opacity: 0.55;
    cursor: default;
}

.msc-wolf-pick-btn.is-chosen[b-g34efi8djj] {
    background: rgba(37, 99, 235, 0.85);
    border-color: #93c5fd;
    box-shadow: 0 0 0 1px #93c5fd inset;
}

.msc-wolf-pick-partner[b-g34efi8djj] {
    flex: 0 1 auto;
    min-width: 6.5rem;
}

.msc-wolf-pick-hint[b-g34efi8djj] {
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    color: #bfdbfe;
}

.msc-wolf-pick-error[b-g34efi8djj] {
    margin: 0.5rem 0 0;
    font-size: 0.85rem;
    color: #fecaca;
}

.msc-player-notes[b-g34efi8djj] {
    margin-top: 0.75rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 12px;
    background: var(--b9-surface-muted, rgba(15, 23, 42, 0.4));
}

.msc-certification-panel[b-g34efi8djj] {
    margin-top: 0.75rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 12px;
    background: var(--b9-surface-muted, rgba(15, 23, 42, 0.4));
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.msc-certification-title[b-g34efi8djj] {
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--b9-text-muted, #c2cfdf);
}

.msc-certification-status[b-g34efi8djj] {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--b9-text, #e5edf7);
}

.msc-certification-helper[b-g34efi8djj],
.msc-certification-message[b-g34efi8djj] {
    font-size: 0.8rem;
    color: var(--b9-text-muted, #c2cfdf);
}

.msc-certification-error[b-g34efi8djj] {
    font-size: 0.8rem;
    color: #fecaca;
}

.msc-player-notes-summary[b-g34efi8djj] {
    cursor: pointer;
    padding: 0.65rem 0.8rem;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--b9-text, #e5edf7);
}

.msc-player-notes-body[b-g34efi8djj] {
    padding: 0.6rem 0.8rem 0.8rem;
}

.msc-player-notes-copy[b-g34efi8djj],
.msc-player-notes-foot[b-g34efi8djj] {
    font-size: 0.8rem;
    color: var(--b9-text-muted, #c2cfdf);
    margin: 0 0 0.6rem;
}

.msc-player-notes-status[b-g34efi8djj] {
    margin-bottom: 0.55rem;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    border: 1px solid rgba(134, 239, 172, 0.35);
    background: rgba(134, 239, 172, 0.14);
    color: #dcfce7;
    font-size: 0.8rem;
}

.msc-player-notes-error[b-g34efi8djj] {
    margin-bottom: 0.55rem;
    padding: 0.45rem 0.6rem;
    border-radius: 8px;
    border: 1px solid rgba(252, 165, 165, 0.35);
    background: rgba(127, 29, 29, 0.24);
    color: #fecaca;
    font-size: 0.8rem;
}

.msc-player-note-row[b-g34efi8djj] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 10px;
    padding: 0.55rem;
    background: rgba(15, 23, 42, 0.35);
    margin-bottom: 0.5rem;
}

.msc-player-note-head[b-g34efi8djj] {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--b9-text, #e5edf7);
    margin-bottom: 0.45rem;
}

.msc-player-note-field[b-g34efi8djj] {
    margin-bottom: 0.45rem;
}

.msc-player-note-field label[b-g34efi8djj] {
    display: block;
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--b9-text-muted, #c2cfdf);
    margin-bottom: 0.2rem;
}

.msc-player-note-actions[b-g34efi8djj] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.msc-player-note-readonly-score[b-g34efi8djj] {
    font-size: 0.8rem;
    color: var(--b9-text, #e5edf7);
    margin-bottom: 0.2rem;
}

.msc-player-note-readonly-text[b-g34efi8djj] {
    font-size: 0.8rem;
    color: var(--b9-text-muted, #c2cfdf);
    font-style: italic;
}

.msc-player-note-readonly-empty[b-g34efi8djj],
.msc-player-note-hole-status[b-g34efi8djj] {
    font-size: 0.76rem;
    color: var(--b9-text-soft, #9fb0c4);
}

@media (max-width: 768px) {
    .msc-wolf-context[b-g34efi8djj] {
        margin-top: 0.65rem;
        padding: 0.78rem 0.82rem;
    }

    .msc-wolf-context-row[b-g34efi8djj] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.16rem;
    }

    .msc-wolf-context-label[b-g34efi8djj] {
        font-size: 0.72rem;
    }

    .msc-wolf-context-player strong[b-g34efi8djj],
    .msc-wolf-context-decision strong[b-g34efi8djj],
    .msc-wolf-context-partner strong[b-g34efi8djj] {
        text-align: left;
        font-size: 0.98rem;
    }

    .msc-wolf-context-guidance[b-g34efi8djj] {
        font-size: 0.82rem;
    }

    .msc-wolf-context-rotation[b-g34efi8djj] {
        font-size: 0.78rem;
    }

    .msc-player-notes-summary[b-g34efi8djj] {
        font-size: 0.84rem;
    }

    .msc-player-note-actions .btn[b-g34efi8djj] {
        flex: 1 1 auto;
        min-height: 40px;
    }
}

.msc-team-context-head[b-g34efi8djj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.msc-team-name[b-g34efi8djj] {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--b9-text, #f3f6fb);
    margin-right: 0.35rem;
}

.msc-team-chip[b-g34efi8djj] {
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--b9-text, #f3f6fb);
    background: rgba(255,255,255,0.08);
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 999px;
    padding: 0.18rem 0.56rem;
}

.msc-team-players[b-g34efi8djj] {
    font-size: 0.8rem;
    color: var(--b9-text, #f3f6fb);
    margin-top: 0.35rem;
    font-weight: 600;
}

.msc-team-helper[b-g34efi8djj] {
    margin-top: 0.5rem;
    font-size: 0.84rem;
    color: var(--b9-text, #f3f6fb);
    font-weight: 700;
    line-height: 1.4;
}

.msc-team-helper-shotgun[b-g34efi8djj] {
    color: #93c5fd;
}

/* ═══════════════════════════════════════════════════════════
   LOADING / NOT FOUND
═══════════════════════════════════════════════════════════ */
.msc-loading[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 55vh;
    text-align: center;
}

.msc-notfound[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 55vh;
    padding: 2rem;
    text-align: center;
}

.msc-nf-icon[b-g34efi8djj] { font-size: 3.5rem; margin-bottom: 0.75rem; }

/* ═══════════════════════════════════════════════════════════
   ROUND TABS
═══════════════════════════════════════════════════════════ */
.msc-round-tabs[b-g34efi8djj] {
    display: flex;
    gap: 0;
    background: var(--b9-surface-muted, #111827);
    border-bottom: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.msc-round-tabs[b-g34efi8djj]::-webkit-scrollbar { display: none; }

.msc-round-tab[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 0.6rem 1.35rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--b9-text-soft, #9fb0c4);
    background: transparent;
    border: none;
    border-bottom: 3px solid transparent;
    cursor: pointer;
    transition: color 0.12s, border-color 0.12s;
    white-space: nowrap;
    position: relative;
}

.msc-round-tab:hover[b-g34efi8djj] { color: var(--b9-text-muted, #c2cfdf); }

.msc-round-tab-active[b-g34efi8djj] {
    color: var(--b9-primary-text);
    border-bottom-color: #1d4ed8;
    background: var(--b9-surface-alt, #0f172a);
}

.msc-rtab-num[b-g34efi8djj] { font-weight: 800; font-size: 0.8rem; }
.msc-rtab-date[b-g34efi8djj] { font-size: 0.68rem; opacity: 0.75; }

.msc-rtab-dot[b-g34efi8djj] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    position: absolute;
    top: 6px;
    right: 8px;
}

.msc-rtab-open[b-g34efi8djj] { background: #22c55e; box-shadow: 0 0 6px rgba(34,197,94,.5); }

/* ═══════════════════════════════════════════════════════════
   SCORING CLOSED BANNER
═══════════════════════════════════════════════════════════ */
.msc-closed-banner[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: rgba(245,158,11,0.15);
    border-bottom: 1px solid #ffc107;
    color: var(--b9-warning-text, #fcd34d);
    font-size: 0.85rem;
    padding: 0.65rem 1rem;
}

/* ── First-time score entry hint ───────────────────────── */
.msc-entry-hint[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--brand-soft, rgba(99,102,241,.12));
    border-bottom: 1px solid var(--brand-soft, rgba(99,102,241,.25));
    color: var(--b9-text-soft, #c7d2fe);
    font-size: 0.84rem;
    padding: 0.55rem 1rem;
}

.msc-entry-hint span[b-g34efi8djj] {
    flex: 1;
}

.msc-entry-hint-dismiss[b-g34efi8djj] {
    background: none;
    border: none;
    padding: 0.1rem 0.25rem;
    color: var(--text-muted, #6b7280);
    cursor: pointer;
    line-height: 1;
    border-radius: 4px;
}

.msc-entry-hint-dismiss:hover[b-g34efi8djj] {
    color: var(--b9-text, #f3f4f6);
}

/* ═══════════════════════════════════════════════════════════
   COMPLETION PROGRESS METER
═══════════════════════════════════════════════════════════ */
.msc-progress-bar-wrap[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.55rem 1rem;
    background: var(--b9-surface-muted, #111827);
    border-bottom: 1px solid var(--b9-border, rgba(255,255,255,0.12));
}

.msc-progress-bar-track[b-g34efi8djj] {
    flex: 1;
    height: 6px;
    background: var(--bg-raised);
    border-radius: 3px;
    overflow: hidden;
}

.msc-progress-bar-fill[b-g34efi8djj] {
    height: 100%;
    background: #3b82f6;
    border-radius: 3px;
    transition: width 0.3s ease;
}

.msc-progress-bar-fill.msc-progress-complete[b-g34efi8djj] {
    background: #22c55e;
}

.msc-progress-label[b-g34efi8djj] {
    font-size: 0.78rem;
    color: var(--b9-text-soft, #9fb0c4);
    white-space: nowrap;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════
   SUMMARY RIBBON
═══════════════════════════════════════════════════════════ */
.msc-summary-ribbon[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0;
    background: #0f172a;
    padding: 0.65rem 1rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.msc-summary-ribbon[b-g34efi8djj]::-webkit-scrollbar { display: none; }

.msc-round-cockpit[b-g34efi8djj] {
    margin: 0.45rem 0.9rem 0.35rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 18px;
    background: var(--b9-surface-muted, #111827);
    box-shadow: 0 14px 30px rgba(70, 52, 23, 0.08), inset 0 1px 0 rgba(255,255,255,0.72);
    overflow: hidden;
}

.msc-round-cockpit.scorecard-focus[b-g34efi8djj] {
    border-color: var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-muted, #111827);
}

.msc-round-cockpit .msc-compact-hcp[b-g34efi8djj],
.msc-round-cockpit .msc-team-context[b-g34efi8djj],
.msc-round-cockpit .msc-closed-banner[b-g34efi8djj],
.msc-round-cockpit .msc-task-card[b-g34efi8djj] {
    margin: 0;
    border-radius: 0;
    box-shadow: none;
}

.msc-round-cockpit .msc-team-context[b-g34efi8djj],
.msc-round-cockpit .msc-task-card[b-g34efi8djj],
.msc-round-cockpit .msc-closed-banner[b-g34efi8djj] {
    border-top: 1px solid #e2d8c8;
}

.msc-task-card[b-g34efi8djj] {
    margin: 0;
    background: transparent;
    border: none;
    border-radius: 0;
    box-shadow: none;
    overflow: hidden;
}

.msc-task-card.scorecard-focus[b-g34efi8djj] {
    background: transparent;
    border-color: transparent;
}

.msc-mini-strip-wrap[b-g34efi8djj] {
    background: transparent;
    border-top: 1px solid #e2d8c8;
    padding: 0.5rem 0.8rem 0.7rem;
}

.msc-compact-hcp[b-g34efi8djj] {
    margin: 0.3rem 0.9rem 0;
}

.msc-hcp-pill[b-g34efi8djj] {
    width: 100%;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    color: var(--b9-text, #f3f6fb);
    border-radius: 999px;
    padding: 0.3rem 0.7rem;
    font-size: 0.78rem;
    font-weight: 700;
}

.msc-hcp-pill--unavailable[b-g34efi8djj] {
    opacity: 0.65;
    cursor: default;
}

.msc-hcp-pill-label[b-g34efi8djj] {
    color: var(--b9-text-muted, #c2cfdf);
    font-weight: 800;
}

.msc-hcp-pill-expand[b-g34efi8djj] {
    margin-left: auto;
    font-size: 0.68rem;
    color: var(--b9-primary-text);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.msc-hcp-expanded[b-g34efi8djj] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 10px;
    background: var(--b9-surface-alt, #0f172a);
    padding: 0.42rem;
}

.msc-hcp-expanded-head[b-g34efi8djj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.35rem;
}

.msc-hcp-expanded-label[b-g34efi8djj] {
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--b9-text-muted, #c2cfdf);
}

.msc-hcp-collapse[b-g34efi8djj] {
    border: none;
    background: transparent;
    color: var(--b9-primary-text);
    font-size: 0.68rem;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.msc-compact-hcp[b-g34efi8djj]  .hcp-summary {
    padding: 0.44rem 0.65rem;
    border-radius: 10px;
    gap: 0.52rem;
}

.msc-compact-hcp[b-g34efi8djj]  .hcp-summary-kicker {
    font-size: 0.68rem;
    margin-bottom: 0.05rem;
}

.msc-compact-hcp[b-g34efi8djj]  .hcp-summary-title {
    font-size: 0.86rem;
    line-height: 1.15;
}

.msc-compact-hcp[b-g34efi8djj]  .hcp-summary-subtitle {
    display: none;
}

.msc-compact-hcp[b-g34efi8djj]  .hcp-summary-timing {
    margin-top: 0.08rem;
    font-size: 0.66rem;
}

.msc-task-head[b-g34efi8djj] {
    padding: 0.78rem 0.9rem 0.52rem;
}

.msc-task-kicker[b-g34efi8djj] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--b9-text-muted, #c2cfdf);
    margin-bottom: 0.18rem;
}

.msc-task-title[b-g34efi8djj] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 850;
    color: var(--b9-text, #f3f6fb);
    letter-spacing: -0.02em;
    line-height: 1.08;
}

.msc-task-sub[b-g34efi8djj],
.msc-task-authority[b-g34efi8djj] {
    margin: 0.28rem 0 0;
    font-size: 0.96rem;
    line-height: 1.42;
    color: #a7d8ff;
    font-weight: 600;
}

/* .msc-task-authority is visually identical to .msc-task-sub but deliberately a SEPARATE class:
   the <=480px block hides .msc-task-sub to keep first-score-focus near the top, which also hid the
   authority message — the one line telling a player what they may and may not do — on every phone.
   Never add .msc-task-authority to a display:none rule. */

.msc-scorer-surface[b-g34efi8djj] {
    margin-top: 0.62rem;
    border: 1px solid rgba(56, 189, 248, 0.42);
    background: rgba(14, 116, 144, 0.17);
    border-radius: 12px;
    padding: 0.55rem 0.62rem;
}

.msc-scorer-row[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.msc-scorer-label[b-g34efi8djj] {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: #bfdbfe;
}

.msc-scorer-select[b-g34efi8djj] {
    border: 1px solid rgba(56, 189, 248, 0.45);
    background-color: rgba(15, 23, 42, 0.86);
    color: #f8fbff;
    font-weight: 700;
}

.msc-scorer-copy[b-g34efi8djj] {
    margin: 0.5rem 0 0;
    color: #e0f2fe;
    font-size: 0.9rem;
    font-weight: 700;
}

.msc-scorer-group[b-g34efi8djj] {
    margin: 0.18rem 0 0;
    color: #bae6fd;
    font-size: 0.78rem;
    font-weight: 600;
}

.msc-group-panel[b-g34efi8djj] {
    margin-top: 0.62rem;
    border: 1px solid rgba(125, 211, 252, 0.34);
    background: linear-gradient(180deg, rgba(8, 47, 73, 0.9) 0%, rgba(12, 74, 110, 0.5) 100%);
    border-radius: 16px;
    padding: 0.75rem;
    box-shadow: inset 0 1px 0 rgba(224, 242, 254, 0.08);
}

.msc-group-panel-title[b-g34efi8djj] {
    font-size: 0.95rem;
    font-weight: 850;
    color: #f0f9ff;
    letter-spacing: -0.01em;
}

/* The honest answer to "who is the scorer?" — nobody is. Slightly stronger than the instruction
   line below it, because it is the rule; the line below is just how to use it. */
.msc-group-panel-rule[b-g34efi8djj] {
    margin: 0.3rem 0 0;
    color: #f0f9ff;
    font-size: 0.88rem;
    font-weight: 700;
}

.msc-group-panel-copy[b-g34efi8djj] {
    margin: 0.22rem 0 0;
    color: #dbeafe;
    font-size: 0.84rem;
    font-weight: 600;
}

.msc-group-panel-grid[b-g34efi8djj] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 0.52rem;
    margin-top: 0.7rem;
}

.msc-group-card[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    text-align: left;
    min-height: 78px;
    border-radius: 14px;
    border: 1px solid rgba(147, 197, 253, 0.25);
    background: rgba(15, 23, 42, 0.52);
    color: #eff6ff;
    padding: 0.72rem 0.78rem;
    box-shadow: 0 10px 24px rgba(2, 6, 23, 0.12);
}

.msc-group-card:hover[b-g34efi8djj],
.msc-group-card:focus-visible[b-g34efi8djj] {
    border-color: rgba(125, 211, 252, 0.55);
    background: rgba(12, 74, 110, 0.48);
    outline: none;
}

.msc-group-card.is-active[b-g34efi8djj] {
    border-color: rgba(134, 239, 172, 0.5);
    background: linear-gradient(180deg, rgba(20, 83, 45, 0.52) 0%, rgba(15, 23, 42, 0.7) 100%);
}

.msc-group-card-head[b-g34efi8djj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.4rem;
}

.msc-group-card-name[b-g34efi8djj] {
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.22;
}

.msc-group-card-badge[b-g34efi8djj] {
    flex-shrink: 0;
    border-radius: 999px;
    background: rgba(134, 239, 172, 0.18);
    border: 1px solid rgba(134, 239, 172, 0.34);
    color: #dcfce7;
    padding: 0.14rem 0.48rem;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.msc-group-card-status[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 26px;
    border-radius: 999px;
    padding: 0.16rem 0.5rem;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.03em;
}

.msc-group-card-status.is-complete[b-g34efi8djj] {
    background: rgba(134, 239, 172, 0.16);
    color: #dcfce7;
}

.msc-group-card-status.is-needs-scores[b-g34efi8djj] {
    background: rgba(253, 224, 71, 0.16);
    color: #fef08a;
}

.msc-task-intel[b-g34efi8djj] {
    margin-top: 0.46rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.34rem;
}

.msc-task-intel-chip[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    gap: 0.18rem;
    min-height: 28px;
    border-radius: 999px;
    border: 1px solid rgba(56, 189, 248, 0.35);
    background: rgba(14, 116, 144, 0.18);
    padding: 0.14rem 0.56rem;
    font-size: 0.74rem;
    font-weight: 600;
    color: #bae6fd;
}

.msc-task-intel-chip strong[b-g34efi8djj] {
    font-weight: 800;
    color: var(--b9-text, #f3f6fb);
}

.msc-task-note[b-g34efi8djj] {
    margin: 0.38rem 0 0;
    font-size: 0.86rem;
    font-weight: 700;
    color: var(--b9-text, #f3f6fb);
}

.msc-task-chip-row[b-g34efi8djj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.38rem;
    margin-top: 0.48rem;
}

.msc-task-chip[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.18rem 0.58rem;
    border-radius: 999px;
    border: 1px solid rgba(56, 189, 248, 0.35);
    background: rgba(14, 116, 144, 0.18);
    color: #cffafe;
    font-size: 0.76rem;
    font-weight: 600;
}

.msc-entry-details[b-g34efi8djj] {
    margin-top: 0.55rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 12px;
    background: rgba(15, 23, 42, 0.55);
    padding: 0.5rem 0.65rem;
}

.msc-entry-details-summary[b-g34efi8djj] {
    cursor: pointer;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #93c5fd;
}

.msc-entry-details[open] .msc-entry-details-summary[b-g34efi8djj] {
    margin-bottom: 0.45rem;
}

.msc-entry-details .msc-task-intel[b-g34efi8djj],
.msc-entry-details .msc-task-chip-row[b-g34efi8djj],
.msc-entry-details .msc-task-note[b-g34efi8djj] {
    margin-top: 0.45rem;
}

.msc-view-toggle-wrap[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-bottom: 0.35rem;
    flex-wrap: wrap;
}

.msc-view-toggle-label[b-g34efi8djj] {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--b9-text-soft, #9fb0c4);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.msc-progress-nav-head[b-g34efi8djj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.55rem;
    flex-wrap: wrap;
}

.msc-progress-nav-title[b-g34efi8djj] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--b9-text, #f3f6fb);
}

.msc-progress-nav-sub[b-g34efi8djj] {
    margin-top: 0.08rem;
    font-size: 0.82rem;
    color: var(--b9-text, #f3f6fb);
    font-weight: 600;
}

.msc-progress-nav-sub strong[b-g34efi8djj] {
    color: var(--b9-text, #f3f6fb);
}

.msc-progress-now[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    margin-right: 0.2rem;
    padding: 0.12rem 0.42rem;
    border-radius: 999px;
    background: rgba(14, 116, 144, 0.24);
    color: #bae6fd;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.msc-progress-nav-summary[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.msc-view-toggle-btn[b-g34efi8djj] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    color: var(--b9-text-muted, #c2cfdf);
    border-radius: 8px;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2rem 0.55rem;
}

.msc-view-toggle-btn:focus-visible[b-g34efi8djj] {
    outline: 2px solid #60a5fa;
    outline-offset: 1px;
}

.msc-view-toggle-btn.active[b-g34efi8djj] {
    background: #1d4ed8;
    color: #fff;
    border-color: #1d4ed8;
}

.msc-compact-status-chip[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    gap: 0.2rem;
    border: 1px solid rgba(56, 189, 248, 0.35);
    background: rgba(14, 116, 144, 0.18);
    border-radius: 999px;
    padding: 0.12rem 0.45rem;
    font-size: 0.7rem;
    color: #bae6fd;
    font-weight: 600;
}

.msc-compact-status-chip.is-saved[b-g34efi8djj] {
    border-color: #9dd8b2;
    background: var(--b9-surface-muted, #111827);
    color: #166534;
}

.msc-edit-cards-link[b-g34efi8djj] {
    margin-left: auto;
    border: none;
    background: transparent;
    color: var(--b9-primary-text);
    font-size: 0.68rem;
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 2px;
    padding: 0;
}

.msc-mini-strip[b-g34efi8djj] {
    display: flex;
    gap: 0.35rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.msc-mini-strip[b-g34efi8djj]::-webkit-scrollbar { display: none; }

.msc-mini-hole[b-g34efi8djj] {
    min-width: 64px;
    border-radius: 12px;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    color: var(--msc-light-text);
    text-decoration: none;
    text-align: center;
    padding: 0.52rem 0.38rem;
    display: flex;
    flex-direction: column;
    line-height: 1.1;
    gap: 0.12rem;
    position: relative;
    appearance: none;
    cursor: pointer;
    transition: border-color 0.12s, box-shadow 0.12s, transform 0.08s, background 0.12s;
}

.msc-mini-hole[b-g34efi8djj]::before {
    content: "";
    position: absolute;
    left: 8px;
    right: 8px;
    top: 6px;
    height: 2px;
    border-radius: 2px;
    background: transparent;
}

.msc-mini-hole:hover[b-g34efi8djj] {
    border-color: var(--b9-border, rgba(255,255,255,0.12));
    box-shadow: 0 4px 10px rgba(70, 52, 23, 0.08);
}

.msc-mini-hole:active[b-g34efi8djj] {
    transform: translateY(1px);
}

.msc-mini-hole:focus-visible[b-g34efi8djj] {
    outline: 2px solid #60a5fa;
    outline-offset: 1px;
}

.msc-mini-hole.filled[b-g34efi8djj] {
    border-color: var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
}

.msc-mini-hole.complete[b-g34efi8djj] {
    border-color: rgba(34,197,94,0.5);
    background: rgba(34,197,94,0.10);
    box-shadow: inset 0 0 0 1px rgba(34, 197, 94, 0.14);
}

.msc-mini-hole.complete[b-g34efi8djj]::before {
    background: linear-gradient(90deg, rgba(34, 197, 94, 0.12) 0%, rgba(34, 197, 94, 0.55) 100%);
}

.msc-mini-hole.active[b-g34efi8djj] {
    border-color: rgba(37,99,235,0.7);
    background: rgba(37,99,235,0.15);
    box-shadow: 0 0 0 3px rgba(37,99,235,0.25), 0 8px 16px rgba(0,0,0,0.3);
}

.msc-mini-hole.active[b-g34efi8djj]::before {
    background: linear-gradient(90deg, rgba(37, 99, 235, 0.12) 0%, rgba(37, 99, 235, 0.65) 100%);
}

.msc-mini-hole-num[b-g34efi8djj] {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--msc-light-secondary);
}

.msc-mini-hole-score[b-g34efi8djj] {
    font-size: 1.2rem;
    font-weight: 900;
    color: var(--msc-light-text);
    letter-spacing: -0.01em;
}

.msc-mini-hole-status[b-g34efi8djj] {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--b9-text-soft, #9fb0c4);
}

.msc-desktop-scorecard-wrap[b-g34efi8djj] {
    display: block;
    max-width: 1100px;
    margin: 0.35rem auto 0;
    overflow-x: auto;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 14px;
    background: var(--b9-surface-muted, #111827);
    box-shadow: 0 16px 30px rgba(70, 52, 23, 0.1);
}

.msc-secondary-panel[b-g34efi8djj] {
    max-width: 1100px;
    margin: 1rem auto 0;
    padding: 0 0.25rem;
}

.msc-secondary-panel-summary[b-g34efi8djj] {
    cursor: pointer;
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: var(--b9-text, #f3f6fb);
    margin: 0 0 0.5rem;
    padding: 0.1rem 0.15rem;
    user-select: none;
}

@media (min-width: 768px) {
    .msc-desktop-scorecard-wrap[b-g34efi8djj] {
        margin-top: 0.4rem;
        border-color: #94a3b8;
        box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
    }
}

.msc-desktop-scorecard[b-g34efi8djj] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.87rem;
    min-width: 760px;
}

.msc-score-legend[b-g34efi8djj] {
    border-top: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    padding: 0.5rem 0.75rem 0.6rem;
    background: var(--b9-surface-alt, #0f172a);
}

.msc-score-legend-label[b-g34efi8djj] {
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--b9-text-muted, #c2cfdf);
    margin-bottom: 0.35rem;
}

.msc-score-legend-items[b-g34efi8djj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1.1rem;
    font-size: 0.8rem;
    color: var(--b9-text, #f3f6fb);
    font-weight: 600;
}

.msc-mark-circle[b-g34efi8djj],
.msc-mark-square[b-g34efi8djj],
.msc-mark-double[b-g34efi8djj] {
    display: inline-block;
    width: 1rem;
    text-align: center;
    font-weight: 900;
    margin-right: 0.12rem;
}

.msc-desktop-scorecard th[b-g34efi8djj],
.msc-desktop-scorecard td[b-g34efi8djj] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    padding: 0.45rem;
    text-align: center;
    background: var(--b9-surface-alt, #0f172a);
}

.msc-desktop-scorecard thead th[b-g34efi8djj] {
    background: linear-gradient(180deg, #0f172a 0%, #18253c 100%);
    color: #f8fafc;
    font-weight: 800;
    position: sticky;
    top: 0;
    z-index: 2;
}

.msc-desktop-scorecard th:first-child[b-g34efi8djj],
.msc-desktop-scorecard td:first-child[b-g34efi8djj] {
    position: sticky;
    left: 0;
    background: var(--b9-surface-alt, #0f172a);
    font-weight: 700;
    z-index: 1;
}

.msc-desktop-scorecard thead th:first-child[b-g34efi8djj] {
    z-index: 3;
}

.msc-desktop-scorecard tbody tr:nth-child(even) td[b-g34efi8djj] {
    background: var(--b9-surface-alt, #0f172a);
}

.msc-desktop-scorecard tbody th[b-g34efi8djj] {
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.74rem;
    color: var(--b9-text, #f3f6fb);
}

.msc-meta-row th[b-g34efi8djj],
.msc-meta-row td[b-g34efi8djj] {
    color: var(--b9-text, #f3f6fb);
    font-weight: 800;
}

.msc-meta-yards-row th[b-g34efi8djj],
.msc-meta-yards-row td[b-g34efi8djj] {
    background: var(--b9-surface-muted, #111827);
    color: var(--b9-text, #f3f6fb);
}

.msc-meta-par-row th[b-g34efi8djj],
.msc-meta-par-row td[b-g34efi8djj] {
    background: var(--b9-surface-alt, #0f172a);
    color: var(--b9-text-muted, #c2cfdf);
}

.msc-meta-si-row th[b-g34efi8djj],
.msc-meta-si-row td[b-g34efi8djj] {
    background: var(--b9-surface-muted, #111827);
    color: var(--b9-text-muted, #c2cfdf);
}

.msc-desktop-score-cell[b-g34efi8djj] {
    min-width: 62px;
    min-height: 52px;
}

.msc-desktop-score-btn[b-g34efi8djj] {
    border: 1px solid transparent;
    background: transparent;
    border-radius: 10px;
    min-width: 52px;
    min-height: 44px;
    font-weight: 800;
    font-size: 1.14rem;
    color: var(--b9-text, #f3f6fb);
    transition: border-color 0.12s, background 0.12s, box-shadow 0.12s;
    position: relative;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
}

.msc-desktop-score-val[b-g34efi8djj] {
    letter-spacing: -0.02em;
}

.msc-desktop-score-btn:hover:not(:disabled)[b-g34efi8djj],
.msc-desktop-score-btn:focus-visible[b-g34efi8djj] {
    border-color: #8e7b5f;
    background: var(--b9-surface-alt, #0f172a);
    box-shadow: inset 0 0 0 1px rgba(142, 123, 95, 0.35);
    outline: none;
}

.msc-meta-diff-row th[b-g34efi8djj],
.msc-meta-diff-row td[b-g34efi8djj] {
    background: var(--b9-surface-muted, #111827);
    color: var(--b9-text, #f3f6fb);
    font-weight: 800;
}

.msc-cell-diff[b-g34efi8djj] {
    font-size: 0.76rem;
    letter-spacing: 0.01em;
}

.msc-desktop-score-btn.score-mark-circle[b-g34efi8djj],
.msc-desktop-score-btn.score-mark-double-circle[b-g34efi8djj],
.msc-desktop-score-btn.score-mark-square[b-g34efi8djj],
.msc-desktop-score-btn.score-mark-double-square[b-g34efi8djj] {
    border-color: transparent;
    background: transparent;
}

.msc-desktop-score-btn.score-mark-circle[b-g34efi8djj]::after,
.msc-desktop-score-btn.score-mark-double-circle[b-g34efi8djj]::after,
.msc-desktop-score-btn.score-mark-square[b-g34efi8djj]::after,
.msc-desktop-score-btn.score-mark-double-square[b-g34efi8djj]::after {
    content: "";
    position: absolute;
    inset: 5px;
    pointer-events: none;
}

.msc-desktop-score-btn.score-mark-circle[b-g34efi8djj]::after {
    border: 1.75px solid #0f172a;
    border-radius: 999px;
}

.msc-desktop-score-btn.score-mark-double-circle[b-g34efi8djj]::after {
    border: 1.75px solid #0f172a;
    border-radius: 999px;
    box-shadow: 0 0 0 3px var(--b9-surface-muted, #111827) inset, 0 0 0 3px rgba(255,255,255,0.65);
}

.msc-desktop-score-btn.score-mark-square[b-g34efi8djj]::after {
    border: 1.75px solid #0f172a;
    border-radius: 2px;
}

.msc-desktop-score-btn.score-mark-double-square[b-g34efi8djj]::after {
    border: 1.75px solid #0f172a;
    border-radius: 2px;
    box-shadow: 0 0 0 3px var(--b9-surface-muted, #111827) inset, 0 0 0 3px rgba(255,255,255,0.65);
}

.msc-hide-cards-desktop[b-g34efi8djj] {
    display: none;
}

.msc-ribbon-tile[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 1.1rem;
    flex-shrink: 0;
}

.msc-ribbon-divider[b-g34efi8djj] {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,0.12);
    flex-shrink: 0;
}

.msc-ribbon-label[b-g34efi8djj] {
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #cbd5e1;
    display: flex;
    align-items: center;
    gap: 4px;
}

.msc-ribbon-hcp[b-g34efi8djj] {
    background: rgba(255,255,255,0.15);
    border-radius: 10px;
    padding: 0 5px;
    font-size: 0.65rem;
    font-weight: 700;
    color: #cbd5e1;
}

.msc-ribbon-val[b-g34efi8djj] {
    font-size: 1.15rem;
    font-weight: 800;
    color: #fff;
    line-height: 1.1;
    margin-top: 2px;
}

.msc-val-net[b-g34efi8djj] { color: #93c5fd; }

.msc-ribbon-diff[b-g34efi8djj] {
    font-size: 0.68rem;
    font-weight: 700;
    margin-top: 1px;
    padding: 1px 6px;
    border-radius: 8px;
}

.msc-tee-dot[b-g34efi8djj] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

/* diff color classes (ribbon + totals) */
.diff-under[b-g34efi8djj] { color: #86efac; }
.diff-over[b-g34efi8djj]  { color: #93c5fd; }
.diff-even[b-g34efi8djj]  { color: rgba(255,255,255,0.55); }

/* ═══════════════════════════════════════════════════════════
   HOLES CONTAINER
═══════════════════════════════════════════════════════════ */
.msc-holes-container[b-g34efi8djj] {
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0;
    max-width: 560px;
    margin: 0 auto;
    width: 100%;
}

.msc-simple-stage[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.msc-simple-stage-head[b-g34efi8djj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    padding: 0.15rem 0.2rem 0.35rem;
}

.msc-simple-stage-hole[b-g34efi8djj] {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--b9-text, #f3f6fb);
}
.msc-simple-stage-save[b-g34efi8djj] {
    font-size: 0.76rem;
    font-weight: 700;
    color: #86efac;
}

.msc-simple-stage-nav[b-g34efi8djj] {
    display: flex;
    gap: 0.45rem;
    margin-top: 0.12rem;
}

.msc-simple-stage-nav-btn[b-g34efi8djj] {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    color: var(--b9-text, #f3f6fb);
    border-radius: 10px;
    min-height: 48px;
    padding: 0.4rem 0.8rem;
    font-size: 0.84rem;
    font-weight: 700;
}

.msc-simple-stage .msc-hole-card[b-g34efi8djj] {
    margin-bottom: 0;
}

.msc-simple-stage-nav-btn:disabled[b-g34efi8djj] {
    opacity: 0.45;
    cursor: not-allowed;
}

.msc-first-score-focus[b-g34efi8djj] {
    margin: 0.52rem 0 0.48rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 14px;
    background: var(--b9-surface-muted, #111827);
    box-shadow: 0 6px 14px rgba(70, 52, 23, 0.08);
    padding: 0.55rem;
}

.msc-first-score-focus--submitted[b-g34efi8djj] {
    background: rgba(34,197,94,0.12);
    border-color: rgba(34,197,94,0.4);
}

.msc-first-score-action--readonly[b-g34efi8djj] {
    background: transparent;
    border-color: #86efac;
    cursor: default;
}

.msc-first-score-head[b-g34efi8djj] {
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: var(--b9-text-muted, #c2cfdf);
    margin-bottom: 0.28rem;
}

.msc-first-score-action[b-g34efi8djj] {
    width: 100%;
    border: 2px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    border-radius: 12px;
    padding: 0.52rem 0.65rem;
    display: flex;
    align-items: baseline;
    gap: 0.42rem;
    flex-wrap: wrap;
    text-align: left;
}

.msc-first-score-hole[b-g34efi8djj] {
    font-size: 0.84rem;
    font-weight: 900;
    color: var(--b9-text, #f3f6fb);
}

.msc-first-score-value[b-g34efi8djj] {
    font-size: 1.35rem;
    font-weight: 900;
    color: var(--b9-text, #f3f6fb);
    letter-spacing: -0.02em;
}

.msc-first-score-meta[b-g34efi8djj] {
    margin-left: auto;
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--b9-text-muted, #c2cfdf);
}

/* ── Nine section label ── */
.msc-nine-label[b-g34efi8djj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.5rem 0.25rem 0.35rem;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: var(--b9-text-soft, #9fb0c4);
}

.msc-nine-par[b-g34efi8djj] {
    font-weight: 600;
    font-size: 0.7rem;
    color: var(--b9-text-soft, #9fb0c4);
}

/* ── Nine subtotal row ── */
.msc-nine-total[b-g34efi8djj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 1rem;
    margin-bottom: 0.75rem;
    background: var(--b9-surface-muted, #111827);
    border-radius: 10px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--b9-text-soft, #9fb0c4);
}

.msc-nine-score[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
    font-weight: 800;
}

.msc-nine-diff[b-g34efi8djj] {
    font-size: 0.7rem;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 10px;
    background: rgba(0,0,0,0.06);
}

/* ═══════════════════════════════════════════════════════════
   HOLE CARD
═══════════════════════════════════════════════════════════ */
.msc-hole-card[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0;
    position: relative;
    padding: 0.8rem 0.95rem;
    margin-bottom: 6px;
    border-radius: 14px;
    background: var(--b9-surface-muted, #111827);
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-left-width: 8px;
    border-left-color: #94a3b8;
    transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
    box-shadow: 0 5px 12px rgba(70, 52, 23, 0.06);
}

.msc-hole-card.msc-hole-highlight[b-g34efi8djj] {
    border-color: #94a3b8;
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.14), 0 14px 24px rgba(32, 57, 109, 0.12);
}

/* Score-status tinting */
.hole-eagle[b-g34efi8djj]  { background: rgba(22,163,74,0.10); border-color: var(--b9-border, rgba(255,255,255,0.12)); border-left-color: #16a34a; }
.hole-birdie[b-g34efi8djj] { background: rgba(34,197,94,0.08); border-color: var(--b9-border, rgba(255,255,255,0.12)); border-left-color: #22c55e; }
.hole-par[b-g34efi8djj]    { background: var(--b9-surface-muted, #111827); border-color: var(--b9-border, rgba(255,255,255,0.12)); border-left-color: #64748b; }
.hole-bogey[b-g34efi8djj]  { background: rgba(59,130,246,0.10); border-color: var(--b9-border, rgba(255,255,255,0.12)); border-left-color: #3b82f6; }
.hole-double[b-g34efi8djj] { background: rgba(37,99,235,0.12); border-color: var(--b9-border, rgba(255,255,255,0.12)); border-left-color: #2563eb; }

/* ── Left: hole number ── */
.msc-hole-left[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    min-width: 44px;
    flex-shrink: 0;
}

.msc-hole-num[b-g34efi8djj] {
    font-size: 1.42rem;
    font-weight: 900;
    color: var(--b9-text, #f3f6fb);
    line-height: 1;
}

.msc-hole-meta[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.msc-hole-par[b-g34efi8djj]  { font-size: 0.66rem; font-weight: 800; color: var(--b9-text, #f3f6fb); }
.msc-hole-si[b-g34efi8djj]   { font-size: 0.64rem; color: var(--b9-text-soft, #9fb0c4); font-weight: 800; }
.msc-hole-yrd[b-g34efi8djj]  { font-size: 0.66rem; font-weight: 800; color: var(--b9-text, #f3f6fb); }

/* ── Middle: score name ── */
.msc-hole-score-label[b-g34efi8djj] {
    flex: 1;
    text-align: center;
    padding: 0 0.5rem;
}

.msc-score-pill[b-g34efi8djj] {
    position: relative;
    border: 2px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-muted, #111827);
    min-width: 118px;
    min-height: 82px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.28rem 0.82rem;
    transition: border-color 0.12s, box-shadow 0.12s, background 0.12s;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.78);
}

.msc-score-pill.has-score[b-g34efi8djj] {
    border-color: var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-muted, #111827);
}

.msc-score-pill.is-empty[b-g34efi8djj] {
    border-style: dashed;
}

.msc-score-pill:focus-visible[b-g34efi8djj] {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.18);
}

.msc-score-pill.readonly[b-g34efi8djj] {
    font-size: 1.35rem;
    font-weight: 900;
}

.msc-score-pill-value[b-g34efi8djj] {
    position: relative;
    z-index: 1;
    font-size: 2.62rem;
    font-weight: 900;
    color: var(--b9-text, #f3f6fb);
    letter-spacing: -0.04em;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1;
    text-shadow: 0 1px 0 rgba(255,255,255,0.85);
}

.msc-score-name[b-g34efi8djj] {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--b9-text, #f3f6fb);
}

.msc-score-empty[b-g34efi8djj] {
    font-size: 0.8rem;
    color: var(--b9-text-muted, #c2cfdf);
    font-weight: 600;
}

.msc-score-diff[b-g34efi8djj] {
    margin-top: 0.14rem;
    font-size: 0.72rem;
    font-weight: 700;
}

.msc-score-pill.score-mark-circle[b-g34efi8djj]::after,
.msc-score-pill.score-mark-double-circle[b-g34efi8djj]::after,
.msc-score-pill.score-mark-square[b-g34efi8djj]::after,
.msc-score-pill.score-mark-double-square[b-g34efi8djj]::after {
    content: "";
    position: absolute;
    inset: 6px;
    pointer-events: none;
}

.msc-score-pill.score-mark-circle[b-g34efi8djj]::after {
    border: 1.8px solid #1f3f7f;
    border-radius: 999px;
}

.msc-score-pill.score-mark-double-circle[b-g34efi8djj]::after {
    border: 1.8px solid #125a34;
    border-radius: 999px;
    box-shadow: 0 0 0 3px var(--b9-surface-muted, #111827) inset, 0 0 0 3px #22c55e;
}

.msc-score-pill.score-mark-square[b-g34efi8djj]::after {
    border: 1.8px solid #2563eb;
    border-radius: 4px;
}

.msc-score-pill.score-mark-double-square[b-g34efi8djj]::after {
    border: 1.8px solid #1d4ed8;
    border-radius: 4px;
    box-shadow: 0 0 0 3px var(--b9-surface-muted, #111827) inset, 0 0 0 3px #60a5fa;
}

/* The −/+ hole stepper lived here until EV-UX-1 (e26e0c9) made entry tap-only.
   Score entry is the pill + keypad above; there is no stepper to style. */

.msc-hole-sync[b-g34efi8djj] {
    position: absolute;
    bottom: 6px;
    left: 64px;
    font-size: 0.68rem;
    color: var(--b9-text-soft, #9fb0c4);
    font-weight: 600;
    opacity: 0.82;
}

/* score value tints on the number tile */
.hole-eagle-num[b-g34efi8djj]  { background: rgba(22,163,74,0.18); color: #dcfce7; border-color: #16a34a; }
.hole-birdie-num[b-g34efi8djj] { background: rgba(34,197,94,0.16); color: #bbf7d0; border-color: #22c55e; }
.hole-par-num[b-g34efi8djj]    { background: var(--b9-surface-alt, #0f172a); color: var(--b9-text, #f3f6fb); border-color: #64748b; }
.hole-bogey-num[b-g34efi8djj]  { background: rgba(59,130,246,0.14); color: #bfdbfe; border-color: #3b82f6; }
.hole-double-num[b-g34efi8djj] { background: rgba(37,99,235,0.18); color: #dbeafe; border-color: #2563eb; }

/* ═══════════════════════════════════════════════════════════
   TOTAL CARD
═══════════════════════════════════════════════════════════ */
.msc-total-card[b-g34efi8djj] {
    background: #0f172a;
    border-radius: 16px;
    padding: 1.3rem 1.35rem;
    margin-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.msc-total-row[b-g34efi8djj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.msc-total-net-row[b-g34efi8djj] {
    border-top: 1px solid rgba(255,255,255,0.1);
    padding-top: 0.6rem;
}

.msc-total-label[b-g34efi8djj] {
    font-size: 0.84rem;
    font-weight: 800;
    color: rgba(255,255,255,0.88);
}

.msc-total-vals[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.msc-total-gross[b-g34efi8djj] {
    font-size: 1.72rem;
    font-weight: 900;
    color: #fff;
}

.msc-total-under[b-g34efi8djj] { color: #86efac; }
.msc-total-over[b-g34efi8djj]  { color: #93c5fd; }
.msc-total-even[b-g34efi8djj]  { color: #93c5fd; }

.msc-total-diff[b-g34efi8djj] {
    font-size: 0.85rem;
    font-weight: 800;
    padding: 3px 10px;
    border-radius: 20px;
    background: rgba(255,255,255,0.08);
}

.msc-total-net-val[b-g34efi8djj] {
    font-size: 1.3rem;
    font-weight: 800;
    color: #93c5fd;
}

.msc-total-hint[b-g34efi8djj] {
    font-size: 0.8rem;
    color: rgba(255,255,255,0.78);
    font-weight: 700;
    padding-top: 0.25rem;
    border-top: 1px solid rgba(255,255,255,0.06);
}

/* ═══════════════════════════════════════════════════════════
   SAVE ERROR BANNER
═══════════════════════════════════════════════════════════ */
.msc-save-error[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.4);
    border-radius: 12px;
    padding: 0.85rem 1rem;
    margin: 0.75rem 1rem 0;
    color: #fca5a5;
    font-size: 0.875rem;
    font-weight: 600;
}

.msc-save-error-hint[b-g34efi8djj] {
    font-weight: 400;
    font-size: 0.8rem;
    color: rgba(252,165,165,0.75);
}

.msc-submit-notice[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(34, 197, 94, 0.14);
    border: 1px solid rgba(34, 197, 94, 0.35);
    border-radius: 12px;
    padding: 0.75rem 0.95rem;
    margin: 0.75rem 1rem 0;
    color: #86efac;
    font-size: 0.85rem;
    font-weight: 700;
}

.msc-recovery-notice[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(59, 130, 246, 0.12);
    border: 1px solid rgba(59, 130, 246, 0.32);
    border-radius: 12px;
    padding: 0.75rem 0.95rem;
    margin: 0.75rem 1rem 0;
    color: #bfdbfe;
    font-size: 0.85rem;
    font-weight: 700;
}

/* The review dialog's own buttons — they used to borrow the deleted score pad's classes. */
.msc-review-btn[b-g34efi8djj] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    border-radius: 8px;
    padding: 0.3rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 700;
    min-height: var(--touch-target-min, 48px);
    color: var(--b9-text, #f3f6fb);
}

.msc-review-btn.apply[b-g34efi8djj] {
    border-color: var(--b9-primary, #1d4ed8);
    background: var(--b9-primary, #1d4ed8);
    color: #fff;
}

.msc-review-btn:focus-visible[b-g34efi8djj] {
    outline: 2px solid #60a5fa;
    outline-offset: 1px;
}

.msc-review-backdrop[b-g34efi8djj] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.58);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    z-index: 1300;
}

.msc-review-modal[b-g34efi8djj] {
    width: min(640px, 100%);
    max-height: min(80vh, 760px);
    overflow: auto;
    background: var(--b9-surface-alt, #0f172a);
    border-radius: 18px;
    box-shadow: 0 24px 56px rgba(15, 23, 42, 0.28);
    padding: 1rem;
}

.msc-review-head[b-g34efi8djj] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
}

.msc-review-kicker[b-g34efi8djj] {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--msc-light-secondary);
}

.msc-review-title[b-g34efi8djj] {
    margin: 0.12rem 0 0;
    font-size: 1.18rem;
    font-weight: 900;
    color: var(--msc-light-text);
}

.msc-review-close[b-g34efi8djj] {
    border: none;
    background: transparent;
    color: var(--msc-light-muted);
}

.msc-review-sub[b-g34efi8djj] {
    margin: 0.4rem 0 0;
    font-size: 0.86rem;
    color: var(--msc-light-secondary);
    font-weight: 700;
}

.msc-review-summary[b-g34efi8djj] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.8rem;
}

.msc-review-list[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    margin-top: 0.8rem;
}

.msc-review-row[b-g34efi8djj] {
    display: grid;
    grid-template-columns: 88px 1fr 52px 120px;
    gap: 0.55rem;
    align-items: center;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 12px;
    background: var(--b9-surface-muted, #111827);
}

.msc-review-hole[b-g34efi8djj],
.msc-review-score[b-g34efi8djj] {
    font-weight: 800;
    color: var(--msc-light-text);
}

.msc-review-meta[b-g34efi8djj],
.msc-review-notation[b-g34efi8djj] {
    font-size: 0.78rem;
    color: var(--msc-light-secondary);
    font-weight: 700;
}

.msc-review-actions[b-g34efi8djj] {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    margin-top: 0.9rem;
}

/* ═══════════════════════════════════════════════════════════
   ROUND COMPLETE BANNER
═══════════════════════════════════════════════════════════ */
.msc-complete-banner[b-g34efi8djj] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1rem;
    background: linear-gradient(135deg, rgba(14,116,144,0.22) 0%, rgba(30,64,175,0.2) 100%);
    border: 1px solid rgba(56,189,248,0.38);
    border-radius: 16px;
    padding: 1.1rem 1.25rem;
    margin: 0.75rem 1rem 0;
}

.msc-complete-icon[b-g34efi8djj] {
    font-size: 2rem;
    color: #86efac;
    flex-shrink: 0;
    line-height: 1;
}

.msc-complete-body[b-g34efi8djj] {
    flex: 1;
    min-width: 0;
}

.msc-complete-title[b-g34efi8djj] {
    font-size: 1rem;
    font-weight: 800;
    color: #ecfeff;
    margin-bottom: 0.28rem;
}

.msc-complete-sub[b-g34efi8djj] {
    font-size: 0.86rem;
    color: #dbeafe;
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

.msc-complete-lb-btn[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: rgba(30, 41, 59, 0.76);
    border: 1px solid rgba(148, 163, 184, 0.45);
    color: #f8fafc;
    border-radius: 8px;
    min-height: 44px;
    padding: 0.52rem 0.9rem;
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background 0.15s;
}

.msc-complete-actions[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.msc-complete-secondary-btn[b-g34efi8djj] {
    background: rgba(15, 23, 42, 0.7);
    border-color: rgba(148, 163, 184, 0.38);
    color: #e2e8f0;
}

.msc-complete-secondary-btn:hover[b-g34efi8djj] {
    background: rgba(30, 41, 59, 0.9);
    color: #f8fafc;
}

.msc-complete-lb-btn:hover[b-g34efi8djj] {
    background: rgba(51, 65, 85, 0.92);
    color: #f8fafc;
}

.msc-complete-primary-btn[b-g34efi8djj] {
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
    border-color: rgba(34, 197, 94, 0.55);
    color: #ffffff;
}

.msc-complete-primary-btn:hover:not(:disabled)[b-g34efi8djj] {
    background: linear-gradient(135deg, #22c55e 0%, #15803d 100%);
}

.msc-complete-primary-btn:disabled[b-g34efi8djj] {
    opacity: 0.55;
    cursor: not-allowed;
}

.msc-lock-notice[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0.65rem 1rem 0;
    padding: 0.72rem 0.9rem;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.4);
    background: rgba(15, 23, 42, 0.72);
    color: #e2e8f0;
    font-size: 0.86rem;
    line-height: 1.35;
}

/* ═══════════════════════════════════════════════════════════
   ON-COURSE CONTESTS
═══════════════════════════════════════════════════════════ */
.msc-contests-section[b-g34efi8djj] {
    padding: 0.75rem 1rem 0.25rem;
}

.msc-contests-title[b-g34efi8djj] {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--b9-text-soft, #9fb0c4);
    margin-bottom: 0.5rem;
}

.msc-contest-chip[b-g34efi8djj] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 8px;
    padding: 0.6rem 0.85rem;
    margin-bottom: 0.5rem;
    background: var(--b9-surface-muted, #111827);
    font-size: 0.85rem;
}

.msc-contest-chip.msc-contest-final[b-g34efi8djj] {
    border-color: rgba(34,197,94,0.4);
    background: rgba(34,197,94,0.10);
}

.msc-contest-chip-head[b-g34efi8djj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
}

.msc-contest-chip-name[b-g34efi8djj] {
    font-weight: 600;
    color: var(--b9-text, #f3f6fb);
}

.msc-contest-winner-badge[b-g34efi8djj] {
    font-size: 0.72rem;
    font-weight: 700;
    background: rgba(245,158,11,0.14);
    color: #fcd34d;
    border: 1px solid rgba(245,158,11,0.4);
    border-radius: 12px;
    padding: 1px 8px;
    white-space: nowrap;
}

.msc-contest-chip-holes[b-g34efi8djj],
.msc-contest-chip-prize[b-g34efi8djj],
.msc-contest-no-entry[b-g34efi8djj] {
    font-size: 0.78rem;
    margin-top: 0.15rem;
}

.msc-contest-entry-val[b-g34efi8djj] {
    font-size: 0.82rem;
    color: var(--b9-text, #f3f6fb);
    margin-top: 0.2rem;
}

/* Status pills */
.msc-contest-status-pill[b-g34efi8djj] {
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    padding: 1px 7px;
    border-radius: 4px;
}

.msc-csp-open[b-g34efi8djj]   { background: var(--success-soft); color: var(--success-text); }
.msc-csp-locked[b-g34efi8djj] { background: rgba(245,158,11,0.14); color: #fcd34d; }
.msc-csp-final[b-g34efi8djj]  { background: var(--brand-soft); color: var(--brand-text); }
.msc-csp-draft[b-g34efi8djj]  { background: var(--b9-surface-muted, #111827); color: var(--b9-text-soft, #9fb0c4); }

/* Player dark-shell readability normalization */
.msc-shell .msc-round-tabs[b-g34efi8djj],
.msc-shell .msc-progress-bar-wrap[b-g34efi8djj],
.msc-shell .msc-score-grid[b-g34efi8djj],
.msc-shell .msc-holes-container[b-g34efi8djj],
.msc-shell .msc-review[b-g34efi8djj],
.msc-shell .msc-scorecard-panel[b-g34efi8djj],
.msc-shell .msc-summary-card[b-g34efi8djj],
.msc-shell .msc-closed-banner[b-g34efi8djj] {
    background: var(--b9-surface-alt, #0f172a);
    border-color: var(--b9-border, rgba(255,255,255,0.12));
    color: var(--b9-text, #f3f6fb);
}

.msc-shell .msc-round-tab[b-g34efi8djj],
.msc-shell .msc-progress-label[b-g34efi8djj],
.msc-shell .msc-score-meta[b-g34efi8djj],
.msc-shell .msc-review-sub[b-g34efi8djj],
.msc-shell .msc-score-empty[b-g34efi8djj],
.msc-shell .msc-task-sub[b-g34efi8djj],
.msc-shell .msc-task-authority[b-g34efi8djj],
.msc-shell .msc-team-players[b-g34efi8djj] {
    color: var(--b9-text-muted, #c2cfdf);
}

.msc-shell .msc-round-tab-active[b-g34efi8djj],
.msc-shell .msc-score-pill[b-g34efi8djj],
.msc-shell .msc-hole-card[b-g34efi8djj],
.msc-shell .msc-mini-hole[b-g34efi8djj],
.msc-shell .msc-review-row[b-g34efi8djj] {
    background: var(--b9-surface-muted, #111827);
    border-color: var(--b9-border, rgba(255,255,255,0.12));
    color: var(--b9-text, #f3f6fb);
}

.msc-shell .msc-round-tab-active[b-g34efi8djj] {
    border-bottom-color: var(--b9-primary, #1d4ed8);
}

.msc-shell .msc-team-context[b-g34efi8djj],
.msc-shell .msc-task-intel[b-g34efi8djj],
.msc-shell .msc-progress-cockpit[b-g34efi8djj] {
    background: linear-gradient(180deg, var(--b9-surface-alt, #0f172a) 0%, var(--b9-surface-muted, #111827) 100%);
    border-color: var(--b9-border, rgba(255,255,255,0.12));
    color: var(--b9-text, #f3f6fb);
}

.msc-shell .msc-team-name[b-g34efi8djj],
.msc-shell .msc-team-helper[b-g34efi8djj],
.msc-shell .msc-score-name[b-g34efi8djj],
.msc-shell .msc-task-title[b-g34efi8djj],
.msc-shell .msc-review-title[b-g34efi8djj] {
    color: var(--b9-text, #f3f6fb);
}

.msc-shell .msc-team-chip[b-g34efi8djj],
.msc-shell .msc-task-chip[b-g34efi8djj],
.msc-shell .msc-command-toggle-btn.active[b-g34efi8djj] {
    background: var(--b9-surface-muted, #111827);
    color: var(--b9-text, #f3f6fb);
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — wider screens get a bit of padding
═══════════════════════════════════════════════════════════ */
@media (min-width: 600px) {
    .msc-holes-container[b-g34efi8djj] {
        padding: 1rem 1.25rem;
    }

    .msc-hole-card[b-g34efi8djj] {
        padding: 0.85rem 1.1rem;
    }
}

/* ═══════════════════════════════════════════════════════════
   STICKY ACTION BAR
═══════════════════════════════════════════════════════════ */
.msc-sticky-action-bar[b-g34efi8djj] {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.85rem;
    padding: 0.95rem 1rem;
    padding-bottom: max(0.95rem, env(safe-area-inset-bottom));
    background: linear-gradient(180deg, rgba(14, 24, 36, 0.97) 0%, rgba(13, 22, 33, 0.99) 100%);
    border-top: 1.5px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 -8px 22px rgba(0, 0, 0, 0.24);
    backdrop-filter: blur(6px);
}

.msc-action-summary[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.72rem;
    flex: 1;
    min-width: 0;
    flex-wrap: wrap;
}

.msc-action-label[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: #e2e8f0;
    white-space: normal;
    overflow-wrap: anywhere;
}

.msc-action-label strong[b-g34efi8djj] {
    color: #fff;
    font-weight: 900;
}

.msc-action-gross[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.8rem;
    color: #d7e1ed;
    white-space: nowrap;
}

.msc-action-title[b-g34efi8djj] {
    min-width: 0;
}

.msc-action-helper[b-g34efi8djj] {
    opacity: 0.95;
}

.msc-action-gross strong[b-g34efi8djj] {
    font-size: 1rem;
    font-weight: 800;
    color: #86efac;
}

.msc-action-sync[b-g34efi8djj] {
    font-size: 0.74rem;
    font-weight: 700;
    color: #93c5fd;
}

.msc-action-ready[b-g34efi8djj] {
    font-size: 0.74rem;
    font-weight: 800;
    color: #86efac;
}

.msc-action-wait[b-g34efi8djj] {
    font-size: 0.8rem;
    font-weight: 800;
    color: #fcd34d;
}

.msc-action-buttons[b-g34efi8djj] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.msc-action-btn[b-g34efi8djj] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.74rem 1.15rem;
    border: none;
    border-radius: 13px;
    min-height: 44px;
    font-size: 0.84rem;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s, transform 0.08s, box-shadow 0.15s;
    -webkit-tap-highlight-color: transparent;
}

.msc-action-btn:focus-visible[b-g34efi8djj] {
    outline: 2px solid #93c5fd;
    outline-offset: 1px;
}

.msc-action-btn:active:not(:disabled)[b-g34efi8djj] {
    transform: scale(0.95);
}

.msc-action-btn:disabled[b-g34efi8djj] {
    opacity: 0.4;
    cursor: not-allowed;
}

.msc-action-save[b-g34efi8djj] {
    background: rgba(255, 255, 255, 0.1);
    color: #e2e8f0;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.msc-action-save:hover:not(:disabled)[b-g34efi8djj] {
    background: rgba(255, 255, 255, 0.18);
    color: #e2e8f0;
    box-shadow: 0 2px 8px rgba(255, 255, 255, 0.08);
}

.msc-action-submit[b-g34efi8djj] {
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
    color: #fff;
    font-weight: 900;
    min-width: 170px;
    letter-spacing: 0.01em;
    box-shadow: 0 12px 24px rgba(21, 128, 61, 0.26), inset 0 1px 0 rgba(255,255,255,0.32);
}

.msc-action-submit i[b-g34efi8djj] {
    font-size: 0.94rem;
}

.msc-action-submit:hover:not(:disabled)[b-g34efi8djj] {
    background: linear-gradient(135deg, #22c55e 0%, #15803d 100%);
    box-shadow: 0 8px 18px rgba(34, 197, 94, 0.34);
}

.msc-action-submit:disabled[b-g34efi8djj] {
    background: linear-gradient(135deg, rgba(34, 197, 94, 0.5) 0%, rgba(22, 163, 74, 0.5) 100%);
}

.msc-large-type .msc-topbar-event[b-g34efi8djj] {
    font-size: 1.18rem;
}

.msc-large-type .msc-task-title[b-g34efi8djj] {
    font-size: 1.7rem;
}

.msc-large-type .msc-task-sub[b-g34efi8djj],
.msc-large-type .msc-task-authority[b-g34efi8djj],
.msc-large-type .msc-progress-nav-sub[b-g34efi8djj],
.msc-large-type .msc-review-sub[b-g34efi8djj] {
    font-size: 1.1rem;
}

.msc-large-type .msc-task-intel-chip[b-g34efi8djj],
.msc-large-type .msc-task-chip[b-g34efi8djj] {
    min-height: 34px;
    font-size: 0.9rem;
}

.msc-large-type .msc-task-note[b-g34efi8djj],
.msc-large-type .msc-team-helper[b-g34efi8djj],
.msc-large-type .msc-score-name[b-g34efi8djj],
.msc-large-type .msc-score-empty[b-g34efi8djj] {
    font-size: 0.96rem;
}

.msc-large-type .msc-mini-hole[b-g34efi8djj] {
    min-width: 82px;
    min-height: 86px;
    padding: 0.72rem 0.55rem;
}

.msc-large-type .msc-score-pill[b-g34efi8djj] {
    min-width: 144px;
    min-height: 104px;
}

.msc-large-type .msc-score-pill-value[b-g34efi8djj] {
    font-size: 2.7rem;
}

.msc-large-type .msc-command-chip[b-g34efi8djj],
.msc-large-type .msc-action-btn[b-g34efi8djj] {
    font-size: 1.06rem;
}

.msc-large-type .msc-action-btn[b-g34efi8djj] {
    min-height: 60px;
}

.msc-large-type .msc-senior-toggle[b-g34efi8djj],
.msc-large-type .msc-command-toggle-btn[b-g34efi8djj] {
    min-height: 56px;
}

.msc-large-type .msc-action-summary[b-g34efi8djj] {
    gap: 1.1rem;
}

.msc-simple-mode .msc-score-legend[b-g34efi8djj],
.msc-simple-mode .msc-review-notation[b-g34efi8djj],
.msc-simple-mode .msc-hole-si[b-g34efi8djj],
.msc-simple-mode .msc-score-empty[b-g34efi8djj],
.msc-simple-mode .msc-meta-si-row[b-g34efi8djj] {
    display: none;
}

.msc-large-type .msc-review-row[b-g34efi8djj] {
    grid-template-columns: 96px 1fr 60px 132px;
}

/* Mobile layout: full width buttons stack vertically on very small screens */
/* ═══════════════════════════════════════════════════════════
   BOTTOM SPACER — reserves space below sticky action bar
═══════════════════════════════════════════════════════════ */
.msc-bottom-spacer[b-g34efi8djj] {
    height: 7rem;
    padding-bottom: env(safe-area-inset-bottom, 0px);
}

@media (max-width: 480px) {
    /* Taller spacer: stacked bar at ≤480px is ~165px; 12rem covers that + safe area */
    .msc-bottom-spacer[b-g34efi8djj] {
        height: 12rem;
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }
}

@media (max-width: 480px) {
    .msc-round-cockpit[b-g34efi8djj] {
        margin: 0.35rem 0.55rem 0.28rem;
    }

    .msc-sticky-action-bar[b-g34efi8djj] {
        flex-direction: column;
        gap: 0.5rem;
        padding: 0.65rem 0.85rem;
        /* Preserve safe-area inset when stacked */
        padding-bottom: max(0.65rem, env(safe-area-inset-bottom));
    }

    .msc-action-summary[b-g34efi8djj] {
        width: 100%;
        justify-content: space-between;
        gap: 0.75rem;
    }

    .msc-action-buttons[b-g34efi8djj] {
        width: 100%;
        gap: 0.4rem;
    }

    .msc-action-btn[b-g34efi8djj] {
        flex: 1;
        padding: 0.6rem 0.85rem;
    }

    .msc-topbar-right[b-g34efi8djj] {
        width: 100%;
        justify-content: flex-start;
        flex-wrap: wrap;
        margin-left: 0;
    }

    .msc-display-options-trigger[b-g34efi8djj] {
        display: inline-flex;
    }

    .msc-topbar-right .msc-control-cluster[b-g34efi8djj] {
        display: none;
    }

    .msc-topbar-right.is-open .msc-control-cluster[b-g34efi8djj] {
        display: flex;
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 0.45rem;
        border-radius: 14px;
        padding: 0.55rem;
    }

    .msc-topbar-right.is-open .msc-command-toggle[b-g34efi8djj],
    .msc-topbar-right.is-open .msc-senior-toggle[b-g34efi8djj] {
        width: 100%;
        justify-content: space-between;
    }

    .msc-task-head[b-g34efi8djj] {
        padding: 0.62rem 0.68rem 0.4rem;
    }

    .msc-task-intel[b-g34efi8djj] {
        display: none;
    }

    /* Hide secondary task content to keep first-score-focus near the top */
    .msc-task-sub[b-g34efi8djj] {
        display: none;
    }

    .msc-task-chip-row[b-g34efi8djj] {
        display: none;
    }

    .msc-task-note[b-g34efi8djj] {
        display: none;
    }

    .msc-mini-strip-wrap[b-g34efi8djj] {
        padding: 0.36rem 0.58rem 0.55rem;
    }

    .msc-review-row[b-g34efi8djj] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (min-width: 481px) and (max-width: 640px) {
    .msc-display-options-trigger[b-g34efi8djj] {
        display: inline-flex;
    }

    .msc-topbar-right[b-g34efi8djj] {
        width: 100%;
        justify-content: flex-start;
        margin-left: 0;
    }

    .msc-topbar-right .msc-control-cluster[b-g34efi8djj] {
        display: none;
    }

    .msc-topbar-right.is-open .msc-control-cluster[b-g34efi8djj] {
        display: flex;
        width: 100%;
        border-radius: 14px;
        flex-wrap: wrap;
    }
}

@media (max-width: 900px) {
    .msc-sticky-action-bar[b-g34efi8djj] {
        gap: 0.65rem;
    }

    .msc-action-summary[b-g34efi8djj] {
        gap: 0.48rem;
    }

    .msc-action-btn[b-g34efi8djj] {
        white-space: normal;
        text-align: center;
    }

    .msc-action-submit[b-g34efi8djj] {
        min-width: 148px;
    }
}

@media (max-width: 640px) {
    .msc-round-cockpit .msc-compact-hcp[b-g34efi8djj],
    .msc-round-cockpit .msc-team-context[b-g34efi8djj] {
        display: none;
    }

    .msc-round-cockpit[b-g34efi8djj] {
        margin: 0.22rem 0.55rem 0.2rem;
    }
}

@media (min-width: 481px) and (max-width: 640px) {
    .msc-action-label[b-g34efi8djj] {
        font-size: 0.75rem;
    }

    .msc-action-gross[b-g34efi8djj] {
        font-size: 0.75rem;
    }

    .msc-action-gross strong[b-g34efi8djj] {
        font-size: 0.9rem;
    }
}

/* ── On-course contest one-tap claim ─────────────────────────── */
.msc-contest-claim-row[b-g34efi8djj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-top: .5rem;
}

.msc-contest-youlead[b-g34efi8djj] {
    color: var(--b9-primary-text);
    font-weight: 600;
}

.msc-contest-claim-btn[b-g34efi8djj] {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 0 1rem;
    border: none;
    border-radius: .625rem;
    background: var(--brand, #22c55e);
    color: #06210f;
    font-weight: 700;
    cursor: pointer;
}

.msc-contest-claim-btn:active[b-g34efi8djj] { transform: scale(.98); }
.msc-contest-claim-btn:disabled[b-g34efi8djj] { opacity: .6; cursor: default; }

/* ══════════════════════════════════════════════════════════════════════════
   THE ENTRY SURFACE — Reports/ScoringDesign/06-web-player-card.html

   Four bands, A · B · D · C, and C is last against the bottom edge at EVERY
   width. Band C is the only thing on this page that must never move: it is a
   rehearsed ballistic movement to a stationary target, and a mouse rehearses
   the same way, which is why there is no desktop exception. The >=1024px rule
   below wraps the bands into two columns; it does not reorder them.

   Every colour here is an existing token. The one new pair, --score-key-min
   and --radius-score-key, sits beside --touch-target-min in brand-tokens.css.
   ══════════════════════════════════════════════════════════════════════════ */

.msc-enter[b-g34efi8djj] {
    display: flex;
    flex-direction: column;
    background: var(--bg-app, #020617);
}

/* ── Making band C actually land ON the phone ────────────────────────────────
   R4 says the numbers are there when the screen opens. Measured at 390x844 the
   first cut put keys 7, 8, 9 and "10 or more" BELOW the fold: two stacked top
   bars ate 191px before band A began, and a min-height that guessed at 4.75rem
   of chrome made band B inflate to 269px to fill a box taller than the screen.
   A pad you have to scroll to is a pad that moves under her thumb, which is the
   whole of R3.

   So on a phone this band stack takes its height from its CONTENT — band B stops
   absorbing slack that does not exist — and band C sticks above the layout's tab
   bar rather than under it. ═══════════════════════════════════════════════════ */
/* Below the wrap, the stack takes a BOUNDED height — the space the player layout has already
   worked out for it — and band B (flex: 1 1 auto, min-height: 0) gives up whatever band C needs.
   Without a bound the container grows to its content, band B never shrinks, and the "10 or more"
   key ends up under the fixed tab bar: measured at 390x844 on a foursome card its bottom edge sat
   at 785px with the tab bar starting at 772. .plr-main already reserves the tab bar's height in its
   own padding, so filling .plr-main is the whole answer and no number is guessed at here. */
@media (max-width: 1023px) {
    .msc-shell:has(.msc-enter)[b-g34efi8djj] {
        display: flex;
        flex-direction: column;
        /* A CAP, not a floor. `min-height: 100%` was the first attempt and changed nothing: .plr-main
           scrolls, so a floor lets the stack grow past the fold exactly as before. The only measured
           constant is the player layout's own mobile top bar (65px); this surface's own bar is INSIDE
           the shell, so flex handles it, and the tab bar's height comes from the layout's token. */
        height: calc(100svh - 65px - var(--plr-bottom-nav-height, 72px));
        overflow: hidden;
    }

    .msc-shell:has(.msc-enter) .msc-enter[b-g34efi8djj] {
        flex: 1 1 auto;
        min-height: 0;
    }
}

/* The page's OWN top bar is not in design 06 — band A is the top of the surface.
   While ENTER is showing it drops to a single compact row: the way back and where
   she is, and nothing else. Display options stay on CARD, where there is room and
   where nobody is standing over a ball. :has() is the whole mechanism, so a browser
   without it simply keeps the taller bar rather than breaking the layout. */
.msc-shell:has(.msc-enter) .msc-topbar[b-g34efi8djj] { padding-top: 0.35rem; padding-bottom: 0.35rem; }
.msc-shell:has(.msc-enter) .msc-topbar-kicker[b-g34efi8djj],
.msc-shell:has(.msc-enter) .msc-topbar-right[b-g34efi8djj] { display: none; }
.msc-shell:has(.msc-enter) .msc-topbar-event[b-g34efi8djj] {
    font-size: 0.85rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── BAND A — the hole, and the only place holes move ─────────────────────── */
.msc-band-a[b-g34efi8djj] {
    flex: 0 0 auto;
    min-height: 64px;
    display: flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0 0.625rem;
    background: var(--bg-elevated, #111827);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.msc-ea-arrow[b-g34efi8djj] {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 8px;
    background: var(--bg-raised, #1e293b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    color: var(--text-primary, #f3f6fb);
    font-size: 1.3rem;
    line-height: 1;
}

.msc-ea-arrow:disabled[b-g34efi8djj] { opacity: 0.3; }

.msc-ea-hole[b-g34efi8djj] {
    /* An <h1>: reset the browser's heading margins and weight, which would otherwise blow band A
       past its 64px and push the keypad off the bottom of the phone. */
    margin: 0;
    font-weight: 400;
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
    line-height: 1.1;
    overflow: hidden;
}

.msc-ea-hole small[b-g34efi8djj] {
    display: block;
    font-size: 0.6rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--text-muted, #9fb0c4);
    font-weight: 700;
}

.msc-ea-hole-row[b-g34efi8djj] {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 0.3rem;
    white-space: nowrap;
}

.msc-ea-hole-row b[b-g34efi8djj] { font-size: 1.55rem; font-weight: 800; color: var(--text-primary, #f3f6fb); }
.msc-ea-hole-row em[b-g34efi8djj] { font-style: normal; font-size: 0.72rem; font-weight: 700; color: var(--text-muted, #9fb0c4); }

/* R2 item 2 — par and stroke index must never need a scroll. They live in band B,
   and they are repeated here for the small phone where band B has to give up its
   context line to the offline strip. */
.msc-ea-hole-meta[b-g34efi8djj] {
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--text-muted, #9fb0c4);
    white-space: nowrap;
}

.msc-ea-seg[b-g34efi8djj] {
    flex: 0 0 auto;
    display: flex;
    background: var(--bg-raised, #1e293b);
    border-radius: 999px;
    padding: 3px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    margin-left: auto;
}

.msc-ea-seg-btn[b-g34efi8djj] {
    padding: 0 0.7rem;
    height: 38px;
    border: 0;
    background: transparent;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--text-muted, #9fb0c4);
    white-space: nowrap;
}

/* Selection is a LUMINANCE FLIP, not a hue judgement: BrandText fill with BgApp ink
   reads 8.11:1 against the resting track. Brand #1D4ED8 measures 2.18:1 and is not a
   state change on a dark surface at all. */
.msc-ea-seg-btn.is-on[b-g34efi8djj] {
    background: var(--b9-primary-text, #93c5fd);
    color: var(--bg-app, #020617);
}

.msc-ea-type[b-g34efi8djj] {
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    border-radius: 8px;
    background: var(--bg-raised, #1e293b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    color: var(--text-primary, #f3f6fb);
    font-size: 1rem;
    font-weight: 750;
}

.msc-ea-type.is-on[b-g34efi8djj] {
    background: var(--b9-primary-text, #93c5fd);
    color: var(--bg-app, #020617);
    border-color: var(--b9-primary-text, #93c5fd);
}

/* ── the status strip: between A and B, NEVER below C ─────────────────────── */
.msc-enter-strip[b-g34efi8djj] {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.5rem 0.875rem;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;
}

.msc-enter-strip.is-offline[b-g34efi8djj] {
    background: var(--b9-warning-soft, rgba(245,158,11,0.14));
    color: var(--b9-warning-text, #fcd34d);
    border-bottom: 1px solid rgba(245, 158, 11, 0.28);
}

.msc-enter-strip.is-problem[b-g34efi8djj] {
    background: var(--b9-danger-soft, rgba(239,68,68,0.14));
    color: var(--b9-danger-text, #fca5a5);
    border-bottom: 1px solid rgba(239, 68, 68, 0.28);
}

.msc-enter-strip-badge[b-g34efi8djj] {
    flex: 0 0 auto;
    font-family: var(--b9-font-mono, monospace);
    font-size: 0.68rem;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.28);
}

/* ── BAND B — the ask. The only band that shrinks. ────────────────────────── */
.msc-band-b[b-g34efi8djj] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.msc-eb-eyebrow[b-g34efi8djj] {
    font-size: 0.78rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-muted, #9fb0c4);
    margin-bottom: 0.3rem;
}

/* The write target is the biggest thing on the screen, in words, by name. A write
   target you can read at arm's length cannot move without you noticing. */
.msc-eb-name[b-g34efi8djj] {
    font-size: 2.375rem;
    font-weight: 800;
    letter-spacing: -0.028em;
    line-height: 1.05;
    color: var(--text-primary, #f3f6fb);
    overflow-wrap: anywhere;
}

.msc-eb-name.is-tight[b-g34efi8djj] { font-size: 1.75rem; }

.msc-eb-ctx[b-g34efi8djj] {
    margin-top: 0.4rem;
    font-size: 0.8rem;
    color: var(--text-muted, #9fb0c4);
    font-family: var(--b9-font-mono, monospace);
}

.msc-eb-val[b-g34efi8djj] {
    margin-top: 0.55rem;
    display: flex;
    align-items: baseline;
    gap: 0.7rem;
    flex-wrap: wrap;
}

.msc-eb-val b[b-g34efi8djj] {
    font-size: 2.75rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1;
    color: #fff;
}

.msc-eb-rp[b-g34efi8djj] {
    font-size: 0.9rem;
    font-weight: 700;
    padding: 0.22rem 0.65rem;
    border-radius: 999px;
    background: var(--bg-raised, #1e293b);
}

.msc-eb-rp.diff-under[b-g34efi8djj] { background: var(--b9-success-soft, rgba(34,197,94,0.14)); color: var(--b9-success-text, #86efac); }
.msc-eb-rp.diff-over[b-g34efi8djj]  { background: var(--b9-danger-soft, rgba(239,68,68,0.14));  color: var(--b9-danger-text, #fca5a5); }
.msc-eb-rp.diff-even[b-g34efi8djj]  { color: var(--text-primary, #f3f6fb); }

.msc-eb-none[b-g34efi8djj] {
    margin-top: 0.6rem;
    font-size: 1.15rem;
    font-weight: 650;
    color: var(--text-muted, #9fb0c4);
}

/* R10 — the advance announcement. Unmissable on purpose: an older adult who is not
   sure a tap registered taps again, and a re-tap on a pad that silently re-pointed
   writes the previous player's number onto the next one. */
.msc-eb-note[b-g34efi8djj] {
    margin-top: 0.55rem;
    font-size: 0.87rem;
    font-weight: 650;
    color: var(--b9-primary-text, #93c5fd);
}

.msc-eb-note.is-correction[b-g34efi8djj] { color: var(--b9-warning-text, #fcd34d); }

/* ── BAND D — did I get everyone? ─────────────────────────────────────────── */
.msc-band-d[b-g34efi8djj] {
    flex: 0 0 auto;
    padding: 0.625rem 0.75rem 0.75rem;
    background: var(--bg-surface, #0f172a);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.msc-ed-hd[b-g34efi8djj] {
    font-size: 0.72rem;
    letter-spacing: 0.13em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--text-muted, #9fb0c4);
    margin: 0 0.125rem 0.5rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.msc-ed-row[b-g34efi8djj] { display: flex; gap: 0.5rem; }
.msc-ed-row.is-grid[b-g34efi8djj] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }

.msc-ed-cell[b-g34efi8djj] {
    flex: 1 1 0;
    min-width: 0;
    min-height: 56px;
    border-radius: var(--radius-score-key, 10px);
    background: var(--bg-raised, #1e293b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 0 0.25rem;
}

.msc-ed-cell:disabled[b-g34efi8djj] { opacity: 1; }

.msc-ed-nm[b-g34efi8djj] {
    font-size: 0.78rem;
    font-weight: 650;
    color: var(--text-secondary, #c2cfdf);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* R12 — the confirmation lands in the scored player's OWN row, as a white numeral. */
.msc-ed-vl[b-g34efi8djj] { font-size: 1.3rem; font-weight: 800; color: #fff; line-height: 1; }
.msc-ed-cell.is-owing .msc-ed-vl[b-g34efi8djj] { color: var(--text-muted, #9fb0c4); font-weight: 700; }

/* R5a — the current target changes state by FILL and BORDER WEIGHT, never a tint,
   and never blue on blue. */
.msc-ed-cell.is-now[b-g34efi8djj] {
    background: var(--brand-soft, rgba(29,78,216,0.15));
    border: 1.5px solid var(--border-strong, rgba(255,255,255,0.20));
}

.msc-ed-cell.is-now .msc-ed-nm[b-g34efi8djj],
.msc-ed-cell.is-now.is-owing .msc-ed-vl[b-g34efi8djj] { color: var(--b9-primary-text, #93c5fd); }

/* ── BAND C — the numbers. LAST, docked, and it never moves. ──────────────── */
/* ── Hidden: the height the pad gave up goes to the CARD, not to whitespace ──
   Design 06's frame 6 is explicit that this is what hiding the numbers is FOR, and it does it by
   moving the flexible band: band B stops absorbing slack and band D grows into it. Without this the
   257px the pad released became an empty gap under the ask, which makes "Hide numbers" a control
   that takes something away and gives nothing back. */
.msc-enter:has(.msc-ec-collapsed) .msc-band-b[b-g34efi8djj] { flex: 0 0 auto; }
.msc-enter:has(.msc-ec-collapsed) .msc-band-d[b-g34efi8djj] {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
}

/* The round, drawn the way a paper card draws it, in the space the pad released. */
.msc-ed-cg-name[b-g34efi8djj] {
    margin: 0.75rem 0 0;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--text-secondary, #c2cfdf);
}
.msc-ed-cg-name span[b-g34efi8djj] { font-weight: 500; color: var(--text-muted, #9fb0c4); }

.msc-ed-cardgrid[b-g34efi8djj] {
    margin-top: 0.5rem;
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 0.25rem;
}

.msc-cg[b-g34efi8djj] { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; }
.msc-cg-hd[b-g34efi8djj] {
    font-size: 0.6rem;
    letter-spacing: 0.06em;
    color: var(--text-muted, #9fb0c4);
}
.msc-cg-v[b-g34efi8djj] {
    height: 26px;
    width: 100%;
    border-radius: var(--radius-sm, 6px);
    background: var(--bg-raised, #1e293b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: 750;
    color: var(--text-primary, #f3f6fb);
}
.msc-cg.is-total .msc-cg-v[b-g34efi8djj] {
    background: transparent;
    border-color: var(--border-strong, rgba(255,255,255,0.20));
    color: #fff;
}
.msc-cg.is-now .msc-cg-v[b-g34efi8djj] {
    background: var(--b9-primary-soft, rgba(29,78,216,0.15));
    border: 1.5px solid var(--border-strong, rgba(255,255,255,0.20));
    color: var(--b9-primary-text, #93c5fd);
}

.msc-band-c[b-g34efi8djj] {
    flex: 0 0 auto;
    /* NOT sticky. It is the last band in flow, so it is already at the bottom — and
       `position: sticky; bottom: …` on a stack SHORTER than the viewport lifts the pad
       up over band D, which is R3a's exact prohibition: the pad must not overlay the row
       it is scoring. Measured at 390x844 it covered the roster by 72px. The layout
       already reserves the tab bar's height under .plr-main, so flow is enough. */
    z-index: 5;
    background: var(--bg-elevated, #111827);
    padding: 0 0.75rem 0.875rem;
    border-top: 1px solid var(--border-default, rgba(255,255,255,0.12));
}

.msc-ec-handle[b-g34efi8djj] {
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
}

.msc-ec-grab[b-g34efi8djj] {
    width: 38px;
    height: 4px;
    border-radius: 999px;
    background: var(--border-strong, rgba(255,255,255,0.20));
}

/* R7 — words, never a bare chevron: a hairline handle is invisible in direct sun. */
.msc-ec-hide[b-g34efi8djj] {
    border: 0;
    background: transparent;
    font-size: 0.8rem;
    font-weight: 650;
    color: var(--text-muted, #9fb0c4);
    padding: 0 0.5rem;
}

.msc-ec-keys[b-g34efi8djj] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
}

/* R14 — score keys get their own floor, a third above the app-wide 48px touch
   target, in TIGHT gutters: wide spacing has been found to make older adults
   slower, and the variable that matters on a scorecard is error rate. */
.msc-ec-key[b-g34efi8djj] {
    min-height: var(--score-key-min, 64px);
    border-radius: var(--radius-score-key, 10px);
    background: var(--bg-raised, #1e293b);
    border: 1px solid var(--border-default, rgba(255,255,255,0.12));
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    /* R15 — a score commits on release, and sliding off the key before lifting
       cancels it, which is what `click` already means for a button. */
    touch-action: manipulation;
}

.msc-ec-key-n[b-g34efi8djj] {
    font-size: 1.625rem;
    font-weight: 750;
    letter-spacing: -0.02em;
    color: var(--text-primary, #f3f6fb);
    line-height: 1;
}

.msc-ec-key-w[b-g34efi8djj] { font-size: 0.75rem; font-weight: 600; color: var(--text-muted, #9fb0c4); line-height: 1; }
.msc-ec-key-w.diff-under[b-g34efi8djj] { color: var(--b9-success-text, #86efac); }
.msc-ec-key-w.diff-over[b-g34efi8djj]  { color: var(--b9-danger-text, #fca5a5); }

/* A decorative "start here" ring on par — never the only marker of anything. */
.msc-ec-key.is-par-hint[b-g34efi8djj] { box-shadow: inset 0 0 0 1.5px var(--brand-ring, rgba(29,78,216,0.30)); }

.msc-ec-key.is-set[b-g34efi8djj] {
    background: var(--b9-primary-text, #93c5fd);
    border-color: var(--b9-primary-text, #93c5fd);
}

.msc-ec-key.is-set .msc-ec-key-n[b-g34efi8djj] { color: var(--bg-app, #020617); }
.msc-ec-key.is-set .msc-ec-key-w[b-g34efi8djj] { color: rgba(2, 6, 23, 0.62); }

/* The overflow key is full width and takes the SAME 64px floor. Three of the eight
   mockups shrank it, which is exactly the drift ScoreKeyMin exists to stop. */
.msc-ec-key.is-wide[b-g34efi8djj] { grid-column: 1 / -1; flex-direction: row; gap: 0.5rem; }
.msc-ec-key.is-ghost[b-g34efi8djj] { background: transparent; }
.msc-ec-key.is-ghost .msc-ec-key-n[b-g34efi8djj] { font-size: 1rem; font-weight: 700; color: var(--text-secondary, #c2cfdf); }

.msc-ec-key:focus-visible[b-g34efi8djj],
.msc-ed-cell:focus-visible[b-g34efi8djj],
.msc-ea-arrow:focus-visible[b-g34efi8djj],
.msc-ea-seg-btn:focus-visible[b-g34efi8djj],
.msc-ea-type:focus-visible[b-g34efi8djj],
.msc-ec-hide:focus-visible[b-g34efi8djj],
.msc-ec-show:focus-visible[b-g34efi8djj] {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
}

/* R7 — the collapsed bar still says who and what. */
.msc-ec-collapsed[b-g34efi8djj] {
    min-height: 74px;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 0;
}

.msc-ec-who[b-g34efi8djj] { flex: 1 1 auto; min-width: 0; }
.msc-ec-w1[b-g34efi8djj] { font-size: 1.05rem; font-weight: 750; color: var(--text-primary, #f3f6fb); overflow-wrap: anywhere; }
.msc-ec-w2[b-g34efi8djj] { font-size: 0.8rem; color: var(--text-muted, #9fb0c4); margin-top: 2px; }

.msc-ec-show[b-g34efi8djj] {
    flex: 0 0 auto;
    min-height: var(--touch-target-min, 48px);
    padding: 0 1.125rem;
    border: 0;
    border-radius: 999px;
    background: var(--b9-primary, #1d4ed8);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 750;
}

/* Large type scales the name, the numerals and the words under the keys — the
   whole point of the control, on the one screen it matters most. */
.msc-large-type .msc-eb-name[b-g34efi8djj] { font-size: 3rem; }
.msc-large-type .msc-eb-name.is-tight[b-g34efi8djj] { font-size: 2.25rem; }
.msc-large-type .msc-eb-none[b-g34efi8djj] { font-size: 1.45rem; }
.msc-large-type .msc-eb-note[b-g34efi8djj] { font-size: 1.05rem; }
.msc-large-type .msc-ec-key[b-g34efi8djj] { min-height: calc(var(--score-key-min, 64px) + 12px); }
.msc-large-type .msc-ec-key-n[b-g34efi8djj] { font-size: 2rem; }
.msc-large-type .msc-ec-key-w[b-g34efi8djj] { font-size: 0.9rem; }
.msc-large-type .msc-ed-vl[b-g34efi8djj] { font-size: 1.6rem; }
.msc-large-type .msc-ed-nm[b-g34efi8djj] { font-size: 0.9rem; }

/* ── The one licensed web difference: a WRAP at >=1024px ──────────────────────
   A + B + D on the left, C on the right at full column height. The reading order
   along the path is unchanged, in the DOM and on the screen: this is a wrap, not
   a reorder, and no band is placed after the keypad at any width. */
@media (min-width: 1024px) {
    .msc-enter[b-g34efi8djj] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 420px;
        /* EXPLICIT rows, and this is not decoration. `grid-row: 1 / -1` counts to the last explicit
           row LINE; with no grid-template-rows there is only line 1, so the keypad spanned a single
           row, that row took the pad's full height, and band A stretched from 64px to 336px to match.
           Four content rows cover A + the status strip + B + D; the trailing 1fr absorbs the slack so
           the keypad still runs the full column height the way design 06 draws it. */
        grid-template-rows: repeat(4, auto) 1fr;
        min-height: calc(100svh - 4.75rem);
    }

    /* The phone's height cap does not apply here: the wrap has its own column height. */
    .msc-shell:has(.msc-enter)[b-g34efi8djj] { display: block; height: auto; overflow: visible; }

    .msc-enter > *[b-g34efi8djj] { grid-column: 1; }

    .msc-band-c[b-g34efi8djj] {
        grid-column: 2;
        grid-row: 1 / -1;
        border-top: 0;
        border-left: 1px solid var(--border-default, rgba(255,255,255,0.12));
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        padding: 0 1.125rem 1.25rem;
    }

    .msc-band-b[b-g34efi8djj] { border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08)); }
    .msc-eb-name[b-g34efi8djj] { font-size: 3.25rem; }
    .msc-eb-val b[b-g34efi8djj] { font-size: 3.5rem; }

    /* No desktop-only key literal. The column is taller than the pad needs, so the
       rows grow into the slack from the SAME floor every other surface uses — the floor is
       the unified dimension, and how leftover height is shared is not a second size decision. */
    .msc-ec-keys[b-g34efi8djj] {
        flex: 1 1 auto;
        grid-auto-rows: minmax(var(--score-key-min, 64px), 1fr);
    }
}

@media (max-width: 380px) {
    .msc-eb-name[b-g34efi8djj] { font-size: 1.9rem; }
    .msc-eb-val b[b-g34efi8djj] { font-size: 2.1rem; }
    .msc-ea-seg-btn[b-g34efi8djj] { padding: 0 0.45rem; font-size: 0.7rem; }
}
/* /Components/Pages/Events/Pairings.razor.rz.scp.css */
/* ── Top bar ─────────────────────────────────────────────────────────────── */
.pg-bar[b-t7srtr13fe] {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--bg-elevated);
    border-bottom: 1px solid var(--border-subtle);
    padding: 0.6rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-height: 52px;
}

.pg-bar-left[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    flex: 1;
}

.pg-bar-right[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

/* ── Unassigned pool ──────────────────────────────────────────────────────── */
.unassigned-pool[b-t7srtr13fe] {
    max-height: 420px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.player-chip[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0.75rem;
    border-radius: 8px;
    border: 1.5px solid var(--border-default);
    background: var(--bg-raised);
    cursor: pointer;
    transition: border-color 0.12s, background 0.12s, transform 0.1s;
    user-select: none;
}

.player-chip:hover[b-t7srtr13fe] {
    border-color: var(--brand);
    background: var(--brand-soft);
}

.player-chip:active[b-t7srtr13fe] {
    transform: scale(0.98);
}

.chip-selected[b-t7srtr13fe] {
    border-color: var(--brand) !important;
    background: var(--brand-soft) !important;
    box-shadow: 0 0 0 3px var(--brand-ring);
}

.chip-name[b-t7srtr13fe] {
    font-size: 0.875rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chip-hcp[b-t7srtr13fe] {
    font-size: 0.72rem;
    font-weight: 700;
    padding: 1px 7px;
    border-radius: 20px;
    background: var(--bg-elevated);
    color: var(--text-muted);
    flex-shrink: 0;
    margin-left: 6px;
}

.chip-hcp-idx[b-t7srtr13fe] {
    background: rgba(13,148,136,0.16);
    color: #5eead4;
}

/* Team chips share the player-chip interaction but read as a distinct unit. */
.team-chip[b-t7srtr13fe] {
    margin-bottom: 0.35rem;
    border-style: dashed;
    border-color: var(--brand);
}
.team-chip .chip-name[b-t7srtr13fe] {
    color: var(--brand-text);
    font-weight: 600;
}

/* ── Group cards ─────────────────────────────────────────────────────────── */
.group-card[b-t7srtr13fe] {
    background: var(--bg-elevated);
    border-radius: 12px;
    border: 1.5px solid var(--border-default);
    box-shadow: 0 1px 4px rgba(0,0,0,.18);
    overflow: hidden;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.group-card-target[b-t7srtr13fe] {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px var(--brand-ring);
    cursor: pointer;
}

.group-card-target:hover[b-t7srtr13fe] {
    background: var(--brand-soft);
}

.group-header[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.55rem 0.75rem;
    background: var(--bg-raised);
    border-bottom: 1px solid var(--border-default);
    gap: 0.5rem;
}

.group-label[b-t7srtr13fe] {
    font-weight: 700;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--text-muted);
}

/* "Team A vs Team B" matchup label on a group header */
.group-matchup[b-t7srtr13fe] {
    display: block;
    margin-top: 2px;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: var(--brand-text);
}

.group-teetime[b-t7srtr13fe] {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--brand-text);
}

.group-hole[b-t7srtr13fe] {
    font-size: 0.75rem;
    color: var(--text-muted);
    background: var(--bg-raised);
    border-radius: 20px;
    padding: 1px 8px;
}

.group-edit-row[b-t7srtr13fe] {
    padding: 0.65rem 0.75rem;
    background: var(--brand-soft);
    border-bottom: 1px solid var(--border-default);
}

.group-notes[b-t7srtr13fe] {
    font-size: 0.75rem;
    color: var(--warning-text);
    padding: 0.3rem 0.75rem;
    background: var(--warning-soft);
    border-bottom: 1px solid rgba(251,191,36,0.22);
    font-style: italic;
}

.group-players[b-t7srtr13fe] {
    padding: 0.4rem 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-height: 56px;
}

.group-empty-slot[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    padding: 0.4rem 0.25rem;
    color: var(--text-muted);
}

.group-player-row[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.35rem 0.4rem;
    border-radius: 6px;
    background: var(--bg-raised);
    gap: 0.4rem;
}

.group-player-name[b-t7srtr13fe] {
    font-size: 0.875rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.player-hcp-badge[b-t7srtr13fe] {
    font-size: 0.68rem;
    font-weight: 700;
    background: var(--bg-elevated);
    color: var(--text-muted);
    border-radius: 20px;
    padding: 1px 7px;
    flex-shrink: 0;
}

/* ── Team sub-blocks ──────────────────────────────────────────────────────────
   For team formats (e.g. a 2-player scramble) each team's players are wrapped in
   their own bordered block with a team heading, so two teams sharing one tee time
   read clearly as TEAMS — not four loose individuals. */
.group-team-block[b-t7srtr13fe] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.group-team-block.is-team[b-t7srtr13fe] {
    border: 1px solid var(--border-default);
    border-left: 3px solid var(--brand-text);
    border-radius: 8px;
    padding: 0.3rem 0.35rem 0.35rem;
    background: var(--brand-soft);
}

.group-team-block.is-team + .group-team-block.is-team[b-t7srtr13fe] {
    margin-top: 6px;
}

.group-team-heading[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.1rem 0.25rem 0.25rem;
    color: var(--brand-text);
}

.group-team-name[b-t7srtr13fe] {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Icon buttons ────────────────────────────────────────────────────────── */
.btn-icon[b-t7srtr13fe] {
    background: none;
    border: none;
    color: var(--text-muted);
    padding: 3px 5px;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.8rem;
    line-height: 1;
    transition: background 0.1s, color 0.1s;
}

.btn-icon:hover[b-t7srtr13fe] {
    background: var(--bg-raised);
    color: var(--text-primary);
}

.btn-icon-sm[b-t7srtr13fe] {
    font-size: 0.72rem;
    padding: 2px 4px;
}

.btn-icon-danger:hover[b-t7srtr13fe] {
    background: var(--danger-soft);
    color: var(--danger-text);
}

.btn-icon-muted[b-t7srtr13fe] {
    opacity: 0.5;
}

.btn-icon-muted:hover[b-t7srtr13fe] {
    opacity: 1;
}

/* ── Assignment toast ────────────────────────────────────────────────────── */
/* ── Assignment banner (appears inline above groups when player is selected) ── */
.assign-banner[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--brand, #3b82f6);
    color: #fff;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    font-size: 0.88rem;
    animation: assign-in-b-t7srtr13fe 0.18s ease;
}

.assign-banner-hint[b-t7srtr13fe] {
    font-size: 0.82rem;
    opacity: 0.88;
}

.assign-banner-deselect[b-t7srtr13fe] {
    opacity: 0.75;
    flex-shrink: 0;
}

.assign-banner-deselect:hover[b-t7srtr13fe] {
    opacity: 1;
}

@keyframes assign-in-b-t7srtr13fe {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Mobile layout improvements (< md = 768px) ───────────────────────────── */
@media (max-width: 767.98px) {
    /* Top bar: stack title below actions */
    .pg-bar[b-t7srtr13fe] {
        flex-direction: column;
        align-items: flex-start;
        padding: 0.5rem 0.9rem;
        gap: 0.4rem;
    }
    .pg-bar-left[b-t7srtr13fe] {
        flex-wrap: wrap;
    }
    .pg-bar-right[b-t7srtr13fe] {
        width: 100%;
        justify-content: flex-end;
    }

    /* Unassigned pool: horizontal scrolling chip row instead of tall column */
    .unassigned-pool[b-t7srtr13fe] {
        max-height: none;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 4px;
        gap: 6px;
        -webkit-overflow-scrolling: touch;
    }
    .player-chip[b-t7srtr13fe] {
        flex-shrink: 0;
        min-width: 130px;
        max-width: 160px;
        padding: 0.4rem 0.6rem;
    }

    /* Group cards: full-width, more breathing room for player rows */
    .group-card[b-t7srtr13fe] {
        margin-bottom: 0.5rem;
    }
    .group-header[b-t7srtr13fe] {
        padding: 0.6rem 0.85rem;
    }
    .group-label[b-t7srtr13fe] {
        font-size: 0.88rem;
    }
    .group-teetime[b-t7srtr13fe] {
        font-size: 0.85rem;
    }
    .group-players[b-t7srtr13fe] {
        padding: 0.5rem 0.6rem;
        gap: 4px;
    }
    .group-player-row[b-t7srtr13fe] {
        padding: 0.5rem 0.55rem;
        border-radius: 8px;
    }
    .group-player-name[b-t7srtr13fe] {
        font-size: 0.92rem;
    }
    .player-hcp-badge[b-t7srtr13fe] {
        font-size: 0.73rem;
        padding: 2px 9px;
    }
    /* Prevent tee-time/hole chips from wrapping awkwardly */
    .group-header[b-t7srtr13fe] {
        flex-wrap: wrap;
        gap: 0.35rem;
    }
}

/* ── Marker Assignment Section ──────────────────────────────────────────── */
.group-marker-section[b-t7srtr13fe] {
    padding: 0.65rem 0.75rem;
    background: color-mix(in srgb, var(--bs-body-bg) 88%, var(--bs-secondary-bg, #6c757d) 12%);
    border-bottom: 1px solid var(--bs-border-color, #dee2e6);
    border-top: 1px solid var(--bs-border-color, #dee2e6);
}

.group-marker-row[b-t7srtr13fe] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.5rem;
}

.group-marker-row:last-child[b-t7srtr13fe] {
    margin-bottom: 0;
}

.group-marker-target[b-t7srtr13fe] {
    min-width: 165px;
    flex-shrink: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--bs-body-color, #212529);
    margin-bottom: 0;
}

.group-marker-select[b-t7srtr13fe] {
    flex: 1;
    font-size: 0.875rem;
    padding: 0.35rem 0.6rem;
    background-color: var(--bs-body-bg, #fff);
    border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 6px;
    color: var(--bs-body-color, #212529);
}

.group-marker-select:focus[b-t7srtr13fe] {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.group-marker-select:disabled[b-t7srtr13fe] {
    background-color: var(--bs-secondary-bg, #e9ecef);
    color: var(--bs-secondary-color, #6c757d);
    cursor: not-allowed;
}

/* The keyboard/AT equivalent of tapping the group card (axe nested-interactive fix).
   Reads as a normal action for assistive tech and keyboard users; visually it is a quiet
   full-width strip so the card still looks like one tappable surface. */
.group-place-btn[b-t7srtr13fe] {
    display: block;
    width: 100%;
    margin-top: .5rem;
    padding: .45rem .6rem;
    font-size: .8125rem;
    font-weight: 600;
    color: var(--b9-primary-text);
    background: transparent;
    border: 1px dashed var(--b9-border);
    border-radius: 8px;
    cursor: pointer;
}

.group-place-btn:hover[b-t7srtr13fe] {
    background: var(--b9-primary-soft);
}

.group-place-btn:focus-visible[b-t7srtr13fe] {
    outline: 2px solid var(--b9-primary-text);
    outline-offset: 2px;
}
/* /Components/Pages/Events/PlayerEventsHub.razor.rz.scp.css */
/* Player Events Hub — scoped styles */

.pdb-avatar[b-v2oo93ve8n] {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-size: 1.25rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
    overflow: hidden;
}

.pdb-avatar--photo[b-v2oo93ve8n] {
    background: transparent;
}

/* ── Event cards (P04) ──────────────────────────────────────────────────────
   my-event.css lays a card out as [bar | text | actions] in one row. On a phone
   the actions column sat on top of the status chip ("Scoring Underwa…"). Here
   the card becomes a two-column grid on phones: the accent bar spans both rows,
   the text takes row 1 and the actions take row 2, UNDER the text. */

.pdb-org[b-v2oo93ve8n],
.pdb-hcp-label[b-v2oo93ve8n],
.pdb-live-badge[b-v2oo93ve8n] {
    font-size: 0.875rem;
}

/* The name is a link to the hub: the tap area is a full 48px tall without moving the text.
   The padding alone measured 46.9 — a hair under, because it was computed from the font rather
   than from the floor. The min-height states the floor outright (border-box, so the padding
   still counts toward it). */
.pdb-ec-name[b-v2oo93ve8n] {
    display: inline-block;
    min-height: var(--touch-target-min, 48px);
    padding: 0.85rem 0;
    margin: -0.85rem 0;
    overflow-wrap: anywhere;
}

.pdb-ec-status[b-v2oo93ve8n],
.pdb-ec-date-chip[b-v2oo93ve8n] {
    font-size: 0.875rem;
}

.pdb-ec-detail[b-v2oo93ve8n] {
    font-size: 0.875rem;
}

.pdb-ec-guidance[b-v2oo93ve8n] {
    font-size: 0.9rem;
}

/* The chips row may wrap under the name instead of running off the card */
.pdb-ec-top > div[b-v2oo93ve8n] {
    flex-wrap: wrap;
}

/* One primary per card; every action is a real touch target */
.pdb-ec-actions .pdb-btn-primary[b-v2oo93ve8n],
.pdb-ec-actions .pdb-btn-secondary[b-v2oo93ve8n],
.pdb-ec-actions .pdb-btn-ghost[b-v2oo93ve8n] {
    min-height: var(--touch-target-min);
    font-size: var(--font-size-base);
}

/* The hub link is text, not a second button */
.pdb-ec-hub-link[b-v2oo93ve8n] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.15rem;
    min-height: var(--touch-target-min);
    padding: 0.25rem 0.5rem;
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--b9-primary-text);
    text-decoration: none;
    white-space: normal;
    text-align: center;
}

.pdb-ec-hub-link:hover[b-v2oo93ve8n],
.pdb-ec-hub-link:focus-visible[b-v2oo93ve8n] {
    text-decoration: underline;
}

@media (max-width: 767.98px) {
    .pdb-event-card[b-v2oo93ve8n] {
        display: grid;
        grid-template-columns: 4px minmax(0, 1fr);
    }

    .pdb-ec-state-bar[b-v2oo93ve8n] {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .pdb-ec-main[b-v2oo93ve8n] {
        grid-column: 2;
        grid-row: 1;
    }

    .pdb-ec-actions[b-v2oo93ve8n] {
        grid-column: 2;
        grid-row: 2;
        flex-direction: column;
        align-items: stretch;
        padding: 0 1rem 0.9rem;
    }

    .pdb-ec-actions .pdb-btn-primary[b-v2oo93ve8n],
    .pdb-ec-actions .pdb-btn-secondary[b-v2oo93ve8n],
    .pdb-ec-actions .pdb-btn-ghost[b-v2oo93ve8n] {
        width: 100%;
        justify-content: center;
    }
}
/* /Components/Pages/Events/PlayerNotesReview.razor.rz.scp.css */
.pnr-page[b-tfcvhgczwz] {
    color: var(--bs-body-color, #dee2e6);
}

.pnr-header-row[b-tfcvhgczwz] {
    padding: 0.2rem 0.15rem 0.3rem;
}

.pnr-title-block h2[b-tfcvhgczwz] {
    color: var(--bs-emphasis-color, #f8f9fa);
    letter-spacing: 0.01em;
    font-size: clamp(1.12rem, 1.3vw + 0.95rem, 1.52rem);
    line-height: 1.2;
    text-wrap: balance;
}

.pnr-title-subtext[b-tfcvhgczwz] {
    color: var(--bs-secondary-color, #adb5bd);
    font-size: 0.91rem;
    max-width: 42rem;
    line-height: 1.35;
}

.pnr-helper-copy[b-tfcvhgczwz] {
    color: var(--bs-secondary-color, #adb5bd) !important;
    font-size: 0.88rem;
}

.pnr-toolbar[b-tfcvhgczwz] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem 1rem;
    padding: 0.5rem 0.7rem;
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 0.65rem;
    background: color-mix(in srgb, var(--bs-secondary-bg, #1f2a3a) 64%, transparent 36%);
}

.pnr-toolbar__count[b-tfcvhgczwz] {
    font-size: 0.9rem;
    color: var(--bs-emphasis-color, #f8f9fa);
}

.pnr-toolbar__hint[b-tfcvhgczwz] {
    font-size: 0.82rem;
    color: var(--bs-secondary-color, #adb5bd);
}

.pnr-callout-stack[b-tfcvhgczwz] {
    display: grid;
    gap: 0.5rem;
}

.pnr-callout[b-tfcvhgczwz] {
    border: 1px solid color-mix(in srgb, var(--bs-border-color, #495057) 78%, transparent 22%);
    border-radius: 0.7rem;
    padding: 0.65rem 0.85rem;
    line-height: 1.35;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.pnr-callout-primary[b-tfcvhgczwz] {
    background:
        linear-gradient(180deg, rgba(110, 168, 254, 0.13), rgba(110, 168, 254, 0.03)),
        color-mix(in srgb, var(--bs-primary, #0d6efd) 12%, var(--bs-body-bg, #0b1220) 88%);
}

.pnr-callout-neutral[b-tfcvhgczwz] {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
        color-mix(in srgb, var(--bs-secondary-bg, #1f2a3a) 66%, transparent 34%);
}

.pnr-legend[b-tfcvhgczwz] {
    display: grid;
    grid-template-columns: repeat(2, minmax(16rem, 1fr));
    gap: 0.65rem;
}

.pnr-legend-group[b-tfcvhgczwz] {
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 0.65rem;
    padding: 0.55rem 0.7rem;
    background: color-mix(in srgb, var(--bs-secondary-bg, #1f2a3a) 72%, transparent 28%);
}

.pnr-legend-title[b-tfcvhgczwz] {
    font-size: 0.79rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    color: var(--bs-secondary-color, #adb5bd);
    margin-bottom: 0.35rem;
}

.pnr-legend-items[b-tfcvhgczwz] {
    display: grid;
    gap: 0.25rem;
    font-size: 0.84rem;
    line-height: 1.35;
}

.pnr-table-wrap[b-tfcvhgczwz] {
    position: relative;
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 12px;
    background: color-mix(in srgb, var(--bs-body-bg, #0b1220) 92%, var(--bs-secondary-bg, #1f2a3a) 8%);
    overflow-x: auto;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
    scrollbar-width: thin;
}

.pnr-table-wrap[b-tfcvhgczwz]::after {
    content: "";
    position: sticky;
    right: 0;
    float: right;
    width: 1.25rem;
    height: 100%;
    background: linear-gradient(to left, color-mix(in srgb, var(--bs-body-bg, #0b1220) 95%, transparent 5%), transparent);
    pointer-events: none;
}

.pnr-table[b-tfcvhgczwz] {
    margin-bottom: 0;
    color: var(--bs-body-color, #dee2e6);
    min-width: 78rem;
}

.pnr-col-player[b-tfcvhgczwz] {
    width: 11rem;
}

.pnr-col-hole[b-tfcvhgczwz],
.pnr-col-official[b-tfcvhgczwz],
.pnr-col-suggestion[b-tfcvhgczwz] {
    width: 5.8rem;
}

.pnr-col-note[b-tfcvhgczwz] {
    width: 15.5rem;
}

.pnr-col-status[b-tfcvhgczwz],
.pnr-col-certification[b-tfcvhgczwz] {
    width: 12rem;
}

.pnr-col-actions[b-tfcvhgczwz] {
    width: 19rem;
}

.pnr-table thead th[b-tfcvhgczwz] {
    color: #f8fbff;
    background: color-mix(in srgb, #0b1220 80%, #162844 20%);
    border-bottom-color: var(--bs-border-color, #495057);
    border-bottom-width: 2px;
    font-weight: 700;
    letter-spacing: 0.01em;
    font-size: 0.83rem;
    vertical-align: middle;
    text-transform: none;
    position: sticky;
    top: 0;
    z-index: 2;
    padding-top: 0.64rem;
    padding-bottom: 0.64rem;
    white-space: nowrap;
}

.pnr-table tbody td[b-tfcvhgczwz] {
    color: var(--bs-body-color, #dee2e6);
    border-top-color: color-mix(in srgb, var(--bs-border-color, #495057) 75%, transparent 25%);
    vertical-align: middle;
    padding-top: 0.58rem;
    padding-bottom: 0.58rem;
    padding-left: 0.62rem;
    padding-right: 0.62rem;
    font-size: 0.9rem;
}

.pnr-table tbody tr:nth-child(odd)[b-tfcvhgczwz] {
    background: color-mix(in srgb, var(--bs-secondary-bg, #1f2a3a) 42%, transparent 58%);
}

.pnr-table tbody tr:hover[b-tfcvhgczwz] {
    background: color-mix(in srgb, var(--bs-primary, #0d6efd) 16%, transparent 84%);
}

.pnr-player[b-tfcvhgczwz] {
    color: var(--bs-emphasis-color, #f8f9fa);
    font-weight: 600;
}

.pnr-numeric[b-tfcvhgczwz] {
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.pnr-note[b-tfcvhgczwz] {
    color: var(--bs-body-color, #dee2e6);
    max-width: 26rem;
    white-space: normal;
    word-break: break-word;
    line-height: 1.3;
}

.pnr-actions .btn[b-tfcvhgczwz] {
    white-space: nowrap;
    width: auto;
    min-width: 11rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pnr-actions .form-control[b-tfcvhgczwz] {
    min-width: 0;
}

.pnr-actions[b-tfcvhgczwz] {
    min-width: 18rem;
}

.pnr-status-badge[b-tfcvhgczwz] {
    margin-bottom: 0.25rem;
}

.pnr-status-cell[b-tfcvhgczwz],
.pnr-cert-cell[b-tfcvhgczwz] {
    line-height: 1.15;
}

.pnr-cell-help[b-tfcvhgczwz] {
    font-size: 0.76rem;
    color: var(--bs-secondary-color, #adb5bd);
    line-height: 1.25;
    margin-top: 0.1rem;
    opacity: 0.9;
}

.pnr-action-card[b-tfcvhgczwz] {
    display: grid;
    gap: 0.35rem;
    padding: 0.5rem;
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 0.5rem;
    background: color-mix(in srgb, var(--bs-secondary-bg, #1f2a3a) 70%, transparent 30%);
}

.pnr-action-card .btn[b-tfcvhgczwz] {
    width: 100%;
}

.pnr-action-title[b-tfcvhgczwz] {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--bs-secondary-color, #adb5bd);
}

.pnr-reviewed-meta[b-tfcvhgczwz] {
    font-size: 0.84rem;
    color: var(--bs-emphasis-color, #f8f9fa);
    line-height: 1.35;
}

.pnr-review-note[b-tfcvhgczwz] {
    color: var(--bs-body-color, #dee2e6);
    background: color-mix(in srgb, var(--bs-secondary-bg, #1f2a3a) 78%, transparent 22%);
    border: 1px solid var(--bs-border-color, #495057);
    border-radius: 0.5rem;
    padding: 0.4rem 0.55rem;
}

.pnr-table thead th:last-child[b-tfcvhgczwz],
.pnr-table tbody td:last-child[b-tfcvhgczwz] {
    position: sticky;
    right: 0;
    z-index: 1;
    background: color-mix(in srgb, var(--bs-body-bg, #0b1220) 84%, var(--bs-secondary-bg, #1f2a3a) 16%);
    box-shadow: -1px 0 0 var(--bs-border-color, #495057);
}

.pnr-table thead th:last-child[b-tfcvhgczwz] {
    z-index: 3;
}

.pnr-footer-note[b-tfcvhgczwz] {
    font-size: 0.82rem;
    color: var(--bs-secondary-color, #adb5bd);
}

.pnr-go-scoring-hint[b-tfcvhgczwz] {
    font-size: 0.76rem;
    color: var(--bs-secondary-color, #adb5bd);
    margin-top: 0.3rem;
    max-width: 20rem;
}

.pnr-priority-note[b-tfcvhgczwz] {
    border-left: 3px solid color-mix(in srgb, var(--bs-warning, #ffc107) 75%, transparent 25%);
    padding: 0.35rem 0.55rem;
    font-size: 0.84rem;
    color: var(--bs-secondary-color, #adb5bd);
    background: color-mix(in srgb, var(--bs-warning, #ffc107) 8%, transparent 92%);
    border-radius: 0.35rem;
}

.pnr-table .badge[b-tfcvhgczwz] {
    font-weight: 700;
    letter-spacing: 0.01em;
}

@media (max-width: 991.98px) {
    .pnr-header-row[b-tfcvhgczwz] {
        align-items: stretch !important;
    }

    .pnr-title-subtext[b-tfcvhgczwz] {
        max-width: none;
    }

    .pnr-legend[b-tfcvhgczwz] {
        grid-template-columns: 1fr;
    }

    .pnr-toolbar[b-tfcvhgczwz] {
        padding: 0.45rem 0.55rem;
    }

    .pnr-table[b-tfcvhgczwz] {
        min-width: 66rem;
    }

    .pnr-table thead th[b-tfcvhgczwz],
    .pnr-table tbody td[b-tfcvhgczwz] {
        padding: 0.5rem 0.55rem;
        font-size: 0.92rem;
    }

    .pnr-note[b-tfcvhgczwz] {
        max-width: 18rem;
    }

    .pnr-col-actions[b-tfcvhgczwz] {
        width: 16.5rem;
    }

    .pnr-go-scoring-hint[b-tfcvhgczwz] {
        max-width: 16rem;
    }
}

@media (max-width: 767.98px) {
    .pnr-cell-help[b-tfcvhgczwz] {
        font-size: 0.72rem;
        opacity: 0.8;
    }

    .pnr-table[b-tfcvhgczwz] {
        min-width: 58rem;
    }

    .pnr-col-note[b-tfcvhgczwz] {
        width: 13rem;
    }

    .pnr-col-status[b-tfcvhgczwz],
    .pnr-col-certification[b-tfcvhgczwz],
    .pnr-col-actions[b-tfcvhgczwz] {
        width: 14rem;
    }

    .pnr-actions[b-tfcvhgczwz] {
        min-width: 14rem;
    }
}
/* /Components/Pages/Events/PublicEvent.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   LOADING / NOT FOUND
═══════════════════════════════════════════════════════════ */
.pub-loading[b-4ehvn49c0j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 50vh;
    gap: 0.5rem;
}

.pub-notfound[b-4ehvn49c0j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    text-align: center;
    padding: 2rem;
}

.pub-nf-icon[b-4ehvn49c0j] {
    font-size: 4rem;
    margin-bottom: 1rem;
}

/* ═══════════════════════════════════════════════════════════
   HERO BANNER
═══════════════════════════════════════════════════════════ */
.pub-hero[b-4ehvn49c0j] {
    padding: 2.75rem 1.5rem 2.25rem;
    position: relative;
    overflow: hidden;
}

/* Status-themed hero gradients */
.pub-hero-open[b-4ehvn49c0j]   { background: linear-gradient(140deg, #0f172a 0%, #1e3a5f 60%, #0e4d2f 100%); }
.pub-hero-active[b-4ehvn49c0j] { background: linear-gradient(140deg, #1a0a0a 0%, #7f1d1d 55%, #3b1414 100%); }
.pub-hero-closed[b-4ehvn49c0j] { background: linear-gradient(140deg, #0f172a 0%, #1e3050 60%, #0c2340 100%); }
.pub-hero-cancelled[b-4ehvn49c0j] { background: linear-gradient(140deg, #1e1e1e 0%, #374151 100%); }

.pub-hero-inner[b-4ehvn49c0j] {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    gap: 2.5rem;
    flex-wrap: wrap;
    align-items: flex-start;
}

/* Single-column hero variant (QR landing) */
.pub-hero-single[b-4ehvn49c0j] {
    max-width: 640px;
    display: block;
    gap: 0;
}

/* ── Left column: name, desc, chips ── */
.pub-hero-left[b-4ehvn49c0j] {
    flex: 1;
    min-width: 280px;
}

.pub-status-pill[b-4ehvn49c0j] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: rgba(255,255,255,0.75);
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 30px;
    padding: 4px 14px;
    margin-bottom: 1rem;
}

.pub-status-dot[b-4ehvn49c0j] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pub-dot-open[b-4ehvn49c0j]     { background: #4ade80; }
.pub-dot-active[b-4ehvn49c0j]   { background: #f87171; box-shadow: 0 0 6px rgba(248,113,113,.7); animation: dot-pulse-b-4ehvn49c0j 1.5s infinite; }
.pub-dot-closed[b-4ehvn49c0j]   { background: #60a5fa; }
.pub-dot-cancelled[b-4ehvn49c0j] { background: #9ca3af; }

@keyframes dot-pulse-b-4ehvn49c0j {
    0%, 100% { box-shadow: 0 0 6px rgba(248,113,113,.7); }
    50%       { box-shadow: 0 0 14px rgba(248,113,113,.9); }
}

.pub-event-title[b-4ehvn49c0j] {
    font-size: 2.2rem;
    font-weight: 900;
    color: #fff;
    margin: 0 0 0.65rem;
    line-height: 1.15;
    letter-spacing: -0.03em;
}

.pub-event-desc[b-4ehvn49c0j] {
    color: rgba(255,255,255,0.7);
    font-size: 0.95rem;
    line-height: 1.65;
    margin-bottom: 1.25rem;
    max-width: 520px;
}

.pub-hero-chips[b-4ehvn49c0j] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.pub-chip[b-4ehvn49c0j] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 5px 13px;
    border-radius: 30px;
    border: 1px solid rgba(255,255,255,0.18);
}

.pub-chip-org[b-4ehvn49c0j]     { background: rgba(99,102,241,.25); color: #c7d2fe; }
.pub-chip-format[b-4ehvn49c0j]  { background: rgba(16,185,129,.2);  color: #6ee7b7; }
.pub-chip-hcp[b-4ehvn49c0j]     { background: rgba(245,158,11,.2);  color: #fcd34d; }
.pub-chip-rounds[b-4ehvn49c0j]  { background: rgba(59,130,246,.2);  color: #93c5fd; }

/* ── Right column: info cards ── */
.pub-hero-right[b-4ehvn49c0j] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    min-width: 240px;
    flex-shrink: 0;
}

.pub-date-card[b-4ehvn49c0j],
.pub-course-card[b-4ehvn49c0j],
.pub-field-card[b-4ehvn49c0j] {
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    border-radius: 12px;
    padding: 0.85rem 1rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    color: #fff;
    backdrop-filter: blur(4px);
}

.pub-date-icon[b-4ehvn49c0j],
.pub-course-icon[b-4ehvn49c0j],
.pub-field-icon[b-4ehvn49c0j] {
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: 2px;
    opacity: 0.85;
}

.pub-date-icon[b-4ehvn49c0j]  { color: #93c5fd; }
.pub-course-icon[b-4ehvn49c0j] { color: #6ee7b7; }
.pub-field-icon[b-4ehvn49c0j] { color: #fca5a5; }

.pub-date-main[b-4ehvn49c0j]  { font-weight: 700; font-size: 0.9rem; }
.pub-date-day[b-4ehvn49c0j]   { font-size: 0.75rem; color: rgba(255,255,255,0.55); margin-top: 2px; }
.pub-date-dash[b-4ehvn49c0j]  { margin: 0 4px; }

.pub-course-name[b-4ehvn49c0j] { font-weight: 700; font-size: 0.9rem; }
.pub-course-loc[b-4ehvn49c0j]  { font-size: 0.75rem; color: rgba(255,255,255,0.55); margin-top: 2px; }
.pub-course-tee[b-4ehvn49c0j]  { font-size: 0.75rem; color: rgba(255,255,255,0.7); margin-top: 4px; display: flex; align-items: center; gap: 5px; }

.pub-tee-dot[b-4ehvn49c0j] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.pub-field-count[b-4ehvn49c0j] { font-size: 1.5rem; font-weight: 800; line-height: 1; }
.pub-field-max[b-4ehvn49c0j]   { font-size: 1rem; font-weight: 500; color: rgba(255,255,255,0.55); }
.pub-field-label[b-4ehvn49c0j] { font-size: 0.72rem; color: rgba(255,255,255,0.55); margin-top: 3px; }

.pub-field-bar-wrap[b-4ehvn49c0j] {
    height: 4px;
    background: rgba(255,255,255,0.15);
    border-radius: 4px;
    margin-top: 6px;
    overflow: hidden;
    width: 120px;
}

.pub-field-bar[b-4ehvn49c0j] {
    height: 100%;
    background: linear-gradient(90deg, #4ade80, #22c55e);
    border-radius: 4px;
    transition: width 0.4s ease;
}

/* ═══════════════════════════════════════════════════════════
   INFO STRIP  (date · course · field — below hero)
═══════════════════════════════════════════════════════════ */
.pub-info-strip[b-4ehvn49c0j] {
    background: var(--bg-surface, #0f172a);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.pub-info-items[b-4ehvn49c0j] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1rem 1.5rem;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem 3rem;
    align-items: flex-start;
}

.pub-info-item[b-4ehvn49c0j] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 140px;
}

.pub-info-icon[b-4ehvn49c0j] {
    font-size: 1.15rem;
    flex-shrink: 0;
    margin-top: 2px;
    opacity: 0.85;
}

.pub-info-icon--date[b-4ehvn49c0j]   { color: #93c5fd; }
.pub-info-icon--course[b-4ehvn49c0j] { color: #6ee7b7; }
.pub-info-icon--field[b-4ehvn49c0j]  { color: #fca5a5; }

.pub-info-main[b-4ehvn49c0j] {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--text-primary, #f1f5f9);
    line-height: 1.2;
}

.pub-info-muted[b-4ehvn49c0j] {
    font-weight: 500;
    font-size: 0.82rem;
    color: var(--text-muted, #64748b);
}

.pub-info-sub[b-4ehvn49c0j] {
    font-size: 0.75rem;
    color: var(--text-muted, #64748b);
    margin-top: 3px;
    display: flex;
    align-items: center;
    gap: 5px;
}

.pub-field-progress[b-4ehvn49c0j] {
    height: 4px;
    background: rgba(255,255,255,0.1);
    border-radius: 4px;
    margin-top: 6px;
    overflow: hidden;
    width: 110px;
}

.pub-field-progress-bar[b-4ehvn49c0j] {
    height: 100%;
    background: linear-gradient(90deg, #4ade80, #22c55e);
    border-radius: 4px;
    transition: width 0.4s ease;
}

/* ═══════════════════════════════════════════════════════════
   LEADERBOARD BANNER
═══════════════════════════════════════════════════════════ */
.pub-lb-banner[b-4ehvn49c0j] {
    padding: 0.9rem 1.5rem;
}

.pub-lb-active[b-4ehvn49c0j] { background: linear-gradient(90deg, #7f1d1d, #991b1b); }
.pub-lb-closed[b-4ehvn49c0j] { background: linear-gradient(90deg, #1e3a5f, #1d4ed8); }

.pub-lb-inner[b-4ehvn49c0j] {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.pub-lb-left[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    flex-wrap: wrap;
}

.pub-live-badge[b-4ehvn49c0j] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #ef4444;
    color: #fff;
    font-weight: 800;
    font-size: 0.7rem;
    letter-spacing: 0.12em;
    padding: 4px 12px;
    border-radius: 30px;
}

.pub-live-dot[b-4ehvn49c0j] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
    animation: blink-b-4ehvn49c0j 1.2s step-start infinite;
}

@keyframes blink-b-4ehvn49c0j {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0; }
}

/* The pill was a light wash (white at 18%) with light gold lettering on it — a pale ink on a
   pale fill, which is low contrast whatever is underneath. Over the closed banner's blue end it
   measured 3.97:1, in BOTH themes. Darkening the wash instead of the gold keeps the trophy
   reading gold and clears AA against every banner this pill appears on: 7.95:1 over the blue
   end of --pub-lb-closed, 11.91:1 over its navy end, 9.46:1 over the active banner's red. */
.pub-final-badge[b-4ehvn49c0j] {
    display: inline-flex;
    align-items: center;
    background: rgba(0,0,0,0.22);
    color: #fef08a;
    font-weight: 800;
    font-size: 0.72rem;
    letter-spacing: 0.1em;
    padding: 4px 12px;
    border-radius: 30px;
}

.pub-lb-text[b-4ehvn49c0j] {
    font-size: 0.88rem;
    font-weight: 500;
    color: rgba(255,255,255,0.85);
}

.pub-lb-btn[b-4ehvn49c0j] {
    background: #fff;
    /* Ink ON a white pill (white in both themes): the dark brand blue, 10.4:1 here.
       --b9-primary-text would flip to #93C5FD on dark and vanish against the white. */
    color: var(--b9-primary-active);
    font-weight: 700;
    font-size: 0.85rem;
    border-radius: 30px;
    padding: 0.45rem 1.35rem;
    white-space: nowrap;
    transition: background 0.12s, transform 0.1s;
    text-decoration: none;
}

.pub-lb-btn:hover[b-4ehvn49c0j] {
    background: rgba(255,255,255,0.92);
    transform: translateY(-1px);
    color: var(--b9-primary-active);
}

/* ═══════════════════════════════════════════════════════════
   BODY SECTIONS
═══════════════════════════════════════════════════════════ */
.pub-body[b-4ehvn49c0j] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.75rem 1.5rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 2.25rem;
}

.pub-body-narrow[b-4ehvn49c0j] {
    max-width: 640px;
}

.pub-section[b-4ehvn49c0j] {
    background: var(--bg-elevated);
    border-radius: 16px;
    border: 1px solid var(--border-default);
    box-shadow: 0 2px 8px rgba(0,0,0,.22);
    padding: 1.5rem;
}

.pub-share-section[b-4ehvn49c0j] {
    background: var(--brand-soft);
    border-color: var(--brand-ring);
}

/* ── Section header ── */
.pub-section-header[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.pub-section-icon[b-4ehvn49c0j] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
}

.pub-si-purple[b-4ehvn49c0j] { background: rgba(109,40,217,0.16); color: #c4b5fd; }
.pub-si-blue[b-4ehvn49c0j]   { background: var(--brand-soft); color: var(--brand-text); }
.pub-si-teal[b-4ehvn49c0j]   { background: rgba(13,148,136,0.18); color: #5eead4; }

.pub-section-title[b-4ehvn49c0j] {
    font-size: 1.05rem;
    font-weight: 800;
    margin: 0;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
}

.pub-title-badge[b-4ehvn49c0j] {
    font-size: 0.75rem;
    font-weight: 700;
    background: var(--bg-raised);
    color: var(--text-muted);
    border-radius: 20px;
    padding: 2px 10px;
}

.pub-clear-search[b-4ehvn49c0j] {
    background: none;
    border: none;
    color: var(--text-muted);
    font-size: 0.8rem;
    cursor: pointer;
    padding: 2px 8px;
    border-radius: 6px;
}
.pub-clear-search:hover[b-4ehvn49c0j] { background: var(--bg-raised); }

/* ── Schedule / Rounds ── */
.pub-rounds[b-4ehvn49c0j] {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.pub-round[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    background: var(--bg-raised);
    border: 1.5px solid var(--border-default);
    transition: border-color 0.12s;
}

.pub-round-today[b-4ehvn49c0j] {
    border-color: rgba(251,191,36,0.55);
    background: var(--warning-soft);
}

.pub-round-past[b-4ehvn49c0j] {
    opacity: 0.7;
}

.pub-round-num-badge[b-4ehvn49c0j] {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.pub-round-today .pub-round-num-badge[b-4ehvn49c0j] {
    background: linear-gradient(135deg, #d97706, #f59e0b);
}

.pub-round-info[b-4ehvn49c0j] { flex: 1; }
.pub-round-date[b-4ehvn49c0j] { font-weight: 600; font-size: 0.9rem; color: var(--text-primary); }
.pub-round-meta[b-4ehvn49c0j] { margin-top: 3px; }

/* ── Search ── */
.pub-search-wrap[b-4ehvn49c0j] {
    position: relative;
    margin-bottom: 1.1rem;
}

.pub-search-icon[b-4ehvn49c0j] {
    position: absolute;
    left: 0.85rem;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 0.9rem;
}

.pub-search[b-4ehvn49c0j] {
    width: 100%;
    padding: 0.55rem 1rem 0.55rem 2.35rem;
    border: 1.5px solid var(--border-default);
    border-radius: 30px;
    font-size: 0.875rem;
    outline: none;
    transition: border-color 0.15s, box-shadow 0.15s;
    background: var(--bg-raised);
    color: var(--text-primary);
}

.pub-search:focus[b-4ehvn49c0j] {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px var(--brand-ring);
    background: var(--bg-elevated);
}

/* ── Field grid ── */
.pub-field-grid[b-4ehvn49c0j] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.6rem;
}

.pub-player-card[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    background: var(--bg-raised);
    border: 1.5px solid var(--border-default);
    transition: border-color 0.12s, background 0.12s;
}

.pub-player-card:hover[b-4ehvn49c0j] {
    border-color: var(--brand-ring);
    background: var(--brand-soft);
}

.pub-player-num[b-4ehvn49c0j] {
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--text-muted);
    width: 18px;
    text-align: right;
    flex-shrink: 0;
}

/* ── Player avatar ── */
.pub-player-avatar[b-4ehvn49c0j] {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    font-size: 0.68rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    overflow: hidden;
}
.pub-player-avatar--photo[b-4ehvn49c0j] {
    object-fit: cover;
}

.av-green[b-4ehvn49c0j]  { background: var(--success-soft);             color: var(--success-text); }
.av-blue[b-4ehvn49c0j]   { background: var(--brand-soft);               color: var(--brand-text); }
/* These three were the only members of the palette hand-typed rather than tokenised, and the
   only three that broke in light: lilac on lilac 1.17:1, mint on mint 1.01:1, ice on ice 1.01:1
   — 24 chips on one page. The FILLS are unchanged (the tokens hold the same rgba); the ink now
   has a light twin, exactly as --success-text/--brand-text already gave the other five. */
.av-purple[b-4ehvn49c0j] { background: var(--b9-violet-soft);          color: var(--b9-violet-text); }
.av-teal[b-4ehvn49c0j]   { background: var(--b9-teal-soft);            color: var(--b9-teal-text); }
.av-amber[b-4ehvn49c0j]  { background: var(--warning-soft);             color: var(--warning-text); }
.av-rose[b-4ehvn49c0j]   { background: var(--danger-soft);              color: var(--danger-text); }
.av-indigo[b-4ehvn49c0j] { background: var(--brand-soft);               color: var(--brand-text); }
.av-cyan[b-4ehvn49c0j]   { background: var(--b9-cyan-soft);             color: var(--b9-cyan-text); }

.pub-player-info[b-4ehvn49c0j] { flex: 1; min-width: 0; }
.pub-player-name[b-4ehvn49c0j] { font-size: 0.875rem; font-weight: 600; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pub-player-hcp[b-4ehvn49c0j]  { font-size: 0.7rem; color: var(--text-muted); margin-top: 1px; }

.pub-player-confirmed[b-4ehvn49c0j] {
    color: #22c55e;
    font-size: 0.9rem;
    flex-shrink: 0;
}

/* ── Share section ── */
.pub-share-row[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
    flex-wrap: wrap;
}

.pub-share-url[b-4ehvn49c0j] {
    flex: 1;
    min-width: 200px;
    background: var(--bg-raised);
    border: 1.5px solid var(--border-default);
    border-radius: 8px;
    padding: 0.45rem 0.85rem;
    font-size: 0.8rem;
    color: var(--text-secondary);
    font-family: monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* X05: the second "Share" in the product. The one on the public league page sat on the raw
   #2563eb; this one sat on the raw #1d4ed8 — the right shade, hand-typed, which is the same
   problem a step later: nothing stops the next edit moving one and not the other. Both Shares
   now read the one token, so the product has one blue and it lives in one place. */
.pub-share-btn[b-4ehvn49c0j] {
    background: var(--b9-primary, #1D4ED8);
    color: var(--b9-primary-ink, #FFFFFF);
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.45rem 1.15rem;
    white-space: nowrap;
    transition: background 0.12s;
}

.pub-share-btn:hover[b-4ehvn49c0j] { background: var(--b9-primary-active, #1E40AF); color: var(--b9-primary-ink, #FFFFFF); }

/* #475569 hand-typed: fine on the light card it also renders on, 2.44:1 on the dark one. It is
   the light theme's own --text-secondary, so the token says the same thing in light and says a
   readable thing in dark (#C2CFDF, 9.4:1) — the light rendering does not move at all. */
.pub-share-lb[b-4ehvn49c0j] {
    font-size: 0.82rem;
    color: var(--text-secondary);
    margin-top: 0.25rem;
}

/* ═══════════════════════════════════════════════════════════
   TEE SHEET / PAIRINGS
═══════════════════════════════════════════════════════════ */

.pub-round-label[b-4ehvn49c0j] {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted);
    margin: 0 0 0.75rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--border-default);
}

.pub-tee-sheet[b-4ehvn49c0j] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.pub-group-card[b-4ehvn49c0j] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,.18);
}

.pub-group-header[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.75rem;
    background: var(--bg-raised);
    border-bottom: 1px solid var(--border-default);
}

.pub-group-time[b-4ehvn49c0j] {
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--brand-text);
}

.pub-group-num[b-4ehvn49c0j] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-primary);
}

.pub-group-hole[b-4ehvn49c0j] {
    font-size: 0.72rem;
    color: var(--text-muted);
    background: var(--bg-raised);
    border-radius: 20px;
    padding: 1px 7px;
}

.pub-group-notes[b-4ehvn49c0j] {
    font-size: 0.72rem;
    color: var(--text-muted);
    font-style: italic;
}

.pub-group-players[b-4ehvn49c0j] {
    padding: 0.5rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.pub-group-player[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pub-gp-avatar[b-4ehvn49c0j] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-soft);
    color: var(--brand-text);
    font-size: 0.65rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    letter-spacing: -0.02em;
    overflow: hidden;
}
.pub-gp-avatar--photo[b-4ehvn49c0j] {
    background: transparent;
    object-fit: cover;
}

/* A golfer opens this on a phone to find their group, so a name they cannot read is the one thing
   this list must not do. It used to clip with an ellipsis and no way to see the rest — nineteen
   names on a real 165-player field, "Randy Meincke" given 85px for 96px of text. It wraps now.
   overflow-wrap keeps a single very long name inside the card instead of pushing the page sideways,
   which is the failure mode nowrap was there to prevent. */
.pub-gp-name[b-4ehvn49c0j] {
    font-size: 0.85rem;
    color: var(--text-primary);
    flex: 1;
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
}

.pub-gp-hcp[b-4ehvn49c0j] {
    font-size: 0.72rem;
    color: var(--text-muted);
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    border-radius: 4px;
    padding: 0 5px;
    line-height: 1.6;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width: 767px) {
    .pub-hero[b-4ehvn49c0j] { padding: 2rem 1rem 1.75rem; }

    .pub-event-title[b-4ehvn49c0j] { font-size: 1.6rem; }

    .pub-hero-right[b-4ehvn49c0j] {
        width: 100%;
        flex-direction: row;
        flex-wrap: wrap;
    }

    .pub-date-card[b-4ehvn49c0j],
    .pub-course-card[b-4ehvn49c0j],
    .pub-field-card[b-4ehvn49c0j] {
        flex: 1;
        min-width: 160px;
    }

    .pub-lb-inner[b-4ehvn49c0j] { flex-direction: column; align-items: flex-start; }

    .pub-body[b-4ehvn49c0j] { padding: 1.25rem 1rem 2rem; gap: 1.25rem; }

    .pub-section[b-4ehvn49c0j] { padding: 1.1rem; }

    .pub-field-grid[b-4ehvn49c0j] { grid-template-columns: 1fr; }

    .pub-tee-sheet[b-4ehvn49c0j] { grid-template-columns: 1fr 1fr; }
}

/* ══════════════════════════════════════════════════════════════════════════════
   SELF-REGISTRATION PANEL
══════════════════════════════════════════════════════════════════════════════ */

.pub-self-reg[b-4ehvn49c0j] {
    margin: 0;
    border-top: 1px solid var(--b9-border, #e9ecef);
    border-bottom: 1px solid var(--b9-border, #e9ecef);
    background: var(--b9-surface, #fff);
}

.pub-self-reg.pub-sr-state-registered[b-4ehvn49c0j] {
    background: color-mix(in srgb, var(--b9-success, #198754) 6%, transparent);
    border-color: color-mix(in srgb, var(--b9-success, #198754) 25%, transparent);
}

.pub-self-reg.pub-sr-state-full[b-4ehvn49c0j] {
    background: var(--b9-muted-bg, #f8f9fa);
}

.pub-sr-inner[b-4ehvn49c0j] {
    max-width: 1140px;
    margin: 0 auto;
    padding: 1rem 2rem;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

/* Icon bubble */
.pub-sr-icon[b-4ehvn49c0j] {
    flex-shrink: 0;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}
.pub-sr-icon-green[b-4ehvn49c0j]  { background: color-mix(in srgb, var(--b9-success, #198754) 12%, transparent); color: var(--b9-success, #198754); }
.pub-sr-icon-blue[b-4ehvn49c0j]   { background: color-mix(in srgb, var(--b9-primary, #0d6efd) 12%, transparent); color: var(--b9-primary-text); }
.pub-sr-icon-muted[b-4ehvn49c0j]  { background: var(--b9-muted-bg, #f1f3f5); color: var(--b9-muted, #6c757d); }

/* Text block */
.pub-sr-text[b-4ehvn49c0j] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.pub-sr-text strong[b-4ehvn49c0j] {
    font-size: .9375rem;
    font-weight: 600;
    color: var(--b9-text, #212529);
    line-height: 1.3;
}
.pub-sr-text span[b-4ehvn49c0j] {
    font-size: .8125rem;
    color: var(--b9-muted, #6c757d);
}

/* Buttons */
.pub-sr-btn[b-4ehvn49c0j] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    padding: .5rem 1.1rem;
    border-radius: 6px;
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s, box-shadow .15s, opacity .15s;
    text-decoration: none;
    border: none;
    line-height: 1.4;
}
.pub-sr-btn:disabled[b-4ehvn49c0j] { opacity: .6; cursor: not-allowed; }

.pub-sr-btn-primary[b-4ehvn49c0j] {
    background: var(--b9-primary, #0d6efd);
    color: #fff;
    box-shadow: 0 1px 3px rgba(13,110,253,.25);
}
.pub-sr-btn-primary:hover:not(:disabled)[b-4ehvn49c0j] {
    background: color-mix(in srgb, var(--b9-primary, #0d6efd) 85%, #000);
    box-shadow: 0 2px 6px rgba(13,110,253,.35);
    color: #fff;
}

.pub-sr-btn-ghost[b-4ehvn49c0j] {
    background: transparent;
    color: var(--b9-muted, #6c757d);
    border: 1.5px solid var(--b9-border, #dee2e6);
}
.pub-sr-btn-ghost:hover:not(:disabled)[b-4ehvn49c0j] {
    background: var(--b9-muted-bg, #f8f9fa);
    color: var(--b9-text, #212529);
    border-color: var(--b9-text-muted, #adb5bd);
}

/* Error bar */
.pub-sr-error[b-4ehvn49c0j] {
    padding: .5rem 2rem .6rem;
    font-size: .8125rem;
    color: var(--b9-danger, #dc3545);
    background: color-mix(in srgb, var(--b9-danger, #dc3545) 8%, transparent);
    border-top: 1px solid color-mix(in srgb, var(--b9-danger, #dc3545) 20%, transparent);
}

/* Responsive */
@media (max-width: 576px) {
    .pub-sr-inner[b-4ehvn49c0j] {
        padding: .875rem 1rem;
        gap: .75rem;
    }
    .pub-sr-btn[b-4ehvn49c0j] { width: 100%; justify-content: center; }
}

/* ══════════════════════════════════════════════════════════════
   CONTEST RESULTS
══════════════════════════════════════════════════════════════ */

.pub-si-amber[b-4ehvn49c0j] { background: var(--warning-soft); color: var(--warning-text); }

.pub-contest-grid[b-4ehvn49c0j] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
    padding: 0.25rem 0;
}

.pub-contest-card[b-4ehvn49c0j] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    padding: 0.875rem 1rem;
}

.pub-contest-card-head[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.625rem;
}

.pub-contest-card-name[b-4ehvn49c0j] {
    font-weight: 700;
    font-size: 0.95rem;
}

.pub-contest-card-holes[b-4ehvn49c0j] {
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    background: var(--b9-surface-muted);
    padding: 0.1em 0.5em;
    border-radius: 6px;
}

.pub-contest-winner[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
    margin-bottom: 0.25rem;
}

.pub-contest-winner-name[b-4ehvn49c0j] {
    font-weight: 700;
    font-size: 1rem;
}

.pub-contest-winner-val[b-4ehvn49c0j] {
    font-size: 0.85rem;
    color: var(--b9-text-soft);
    margin-left: 0.25rem;
}

.pub-contest-prize[b-4ehvn49c0j] {
    font-size: 0.8rem;
    color: var(--b9-text-soft);
    margin-top: 0.375rem;
}

/* ── Live on-course games board ─────────────────────────────── */
.pub-live-badge[b-4ehvn49c0j] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: 0.6rem;
    padding: 0.15em 0.6em;
    border-radius: 999px;
    background: var(--brand-soft);
    color: var(--brand-text);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.06em;
}

.pub-live-dot[b-4ehvn49c0j] {
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
    background: var(--brand, #22c55e);
    animation: pub-live-pulse-b-4ehvn49c0j 1.4s ease-in-out infinite;
}

@keyframes pub-live-pulse-b-4ehvn49c0j {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%      { opacity: 0.4; transform: scale(0.7); }
}

@media (prefers-reduced-motion: reduce) {
    .pub-live-dot[b-4ehvn49c0j] { animation: none; }
}

.pub-contest-card--live[b-4ehvn49c0j] {
    border-color: var(--brand-ring);
}

.pub-contest-leadtag[b-4ehvn49c0j] {
    margin-left: auto;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--brand-text);
    background: var(--brand-soft);
    padding: 0.1em 0.5em;
    border-radius: 6px;
}

.pub-contest-open[b-4ehvn49c0j] {
    font-size: 0.85rem;
    color: var(--b9-text-soft);
    font-style: italic;
}

/* ── Custom event photo banner ─────────────────────────────────────────────── */
.pub-event-banner[b-4ehvn49c0j] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 1.75rem 1.5rem;
    margin-bottom: 1rem;
    border-radius: 16px;
    overflow: hidden;
    /* A rich branded field so the event image reads as a mounted emblem, not a stark full-bleed band.
       A club crest, a transparent logo, or a wide photo all sit framed on the same premium surface;
       the org's accent colour (when set) tints the glow. */
    background:
        radial-gradient(120% 150% at 50% -30%, color-mix(in srgb, var(--event-accent, #1e3a5f) 40%, transparent) 0%, transparent 62%),
        linear-gradient(140deg, #0f172a 0%, #16233b 55%, #0e2a1c 100%);
    border: 1px solid var(--b9-border, #2a3850);
    border-bottom: 3px solid var(--event-accent, #1e3a5f);
}
.pub-event-banner img[b-4ehvn49c0j] {
    max-width: min(560px, 92%);
    max-height: 190px;
    width: auto;
    object-fit: contain;      /* frame the whole image — a crest is never cropped into a band */
    display: block;
    border-radius: 10px;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* ── Presenting sponsor band ───────────────────────────────────────────────── */
.pub-presenting[b-4ehvn49c0j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    margin: 0.25rem 0 1rem;
    padding: 0.9rem 1rem;
    border-radius: 12px;
    background: var(--b9-surface, #0f1722);
    border: 1px solid var(--event-accent, var(--b9-border, #2a3850));
}
.pub-presenting-label[b-4ehvn49c0j] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--b9-text-soft, #93a3b8);
}
.pub-presenting-logo[b-4ehvn49c0j] {
    max-height: 64px;
    max-width: 240px;
    object-fit: contain;
}
.pub-presenting-name[b-4ehvn49c0j] {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--b9-text, #e8eef6);
}

/* ── THANK YOU: the sponsors, given a section of their own ─────────────────
   Replaces the old .pub-sponsor-wall, which stacked 123 high-contrast plates in a
   bordered box directly under the event title. Two problems it had:

   - Every name looked like a control, so the block read as one texture and got skimmed.
   - It occupied the most valuable space on the page with the least urgent content.

   The treatment here is typographic, not chrome: no boxes around names, no borders
   competing with the content, and sponsors own the WARM end of the token palette so
   recognition never wears the same colour as "tap this" (which is blue everywhere else
   in the product). Nothing below encodes an amount, a level or a rank. */

.pub-thanks-section[b-4ehvn49c0j] {
    border-top: 1px solid rgba(245, 158, 11, 0.16);
    background:
        radial-gradient(90% 120% at 50% 0%, rgba(245, 158, 11, 0.06), transparent 70%);
}
.pub-thanks-head[b-4ehvn49c0j] {
    text-align: center;
    max-width: 60ch;
    margin: 0 auto 1.75rem;
}
.pub-thanks-kicker[b-4ehvn49c0j] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--b9-warning-text, #fcd34d);
}
.pub-thanks-title[b-4ehvn49c0j] {
    font-size: clamp(1.35rem, 3vw, 1.9rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0.4rem 0 0;
}
.pub-thanks-lede[b-4ehvn49c0j] {
    color: var(--b9-text-muted, #c2cfdf);
    margin: 0.6rem 0 0;
}
.pub-thanks-count[b-4ehvn49c0j] {
    color: var(--b9-warning-text, #fcd34d);
    font-variant-numeric: tabular-nums;
}

.pub-thanks-subhead[b-4ehvn49c0j] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 0.6rem;
    margin: 2rem 0 1rem;
    border-bottom: 1px solid var(--b9-border, #2a3850);
}
.pub-thanks-subhead h3[b-4ehvn49c0j] {
    margin: 0;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--b9-text-soft, #9fb0c4);
}
.pub-thanks-subhead span[b-4ehvn49c0j] {
    font-size: 0.8rem;
    color: var(--b9-text-soft, #9fb0c4);
    font-variant-numeric: tabular-nums;
}

/* The hole board. A hole can carry more than one sign, so each cell stacks them. */
.pub-hole-board[b-4ehvn49c0j] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 0.55rem;
}
.pub-hole[b-4ehvn49c0j] {
    background: var(--b9-surface, #0f1722);
    border: 1px solid var(--b9-border, #2a3850);
    border-radius: 12px;
    padding: 0.75rem 0.8rem 0.8rem;
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}
.pub-hole-n[b-4ehvn49c0j] {
    font-size: 0.63rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--b9-warning-text, #fcd34d);
    font-variant-numeric: tabular-nums;
}
.pub-hole-sign[b-4ehvn49c0j] {
    font-size: 0.86rem;
    font-weight: 650;
    color: var(--b9-text, #f3f6fb);
    line-height: 1.3;
    overflow-wrap: anywhere;
}
.pub-hole-sign + .pub-hole-sign[b-4ehvn49c0j] {
    padding-top: 0.45rem;
    border-top: 1px dashed var(--b9-border, #2a3850);
}

/* The roll: names set in columns like a printed programme, not 124 buttons.
   The 150px floor matters most on a phone: at a 210px floor a 375px screen gets ONE
   column and 124 names run seven screens. Two columns halves that, and a business name
   wrapping to a second line costs nothing in a roll. */
.pub-roll[b-4ehvn49c0j] {
    columns: 4 150px;
    column-gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
@media (min-width: 700px) {
    .pub-roll[b-4ehvn49c0j] { columns: 4 210px; column-gap: 2.1rem; }
}
.pub-roll li[b-4ehvn49c0j] {
    break-inside: avoid;
    padding: 0.32rem 0;
    font-size: 0.855rem;
    color: var(--b9-text-muted, #c2cfdf);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    overflow-wrap: anywhere;
}

/* Link to the committee's shareable sponsors-only page. 48px min target — this is
   tapped on a phone, often by an older reader. */
.pub-thanks-page-link[b-4ehvn49c0j] {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    margin-top: 1.15rem;
    padding: 0 0.15rem;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--b9-primary-text);
    text-decoration: none;
}
.pub-thanks-page-link:hover[b-4ehvn49c0j],
.pub-thanks-page-link:focus-visible[b-4ehvn49c0j] {
    text-decoration: underline;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.pub-th-rank[b-4ehvn49c0j] { width: 64px; }
.pub-th-num[b-4ehvn49c0j] { width: 96px; }

/* The `.pub-sponsor-grid ::deep .pub-sponsor-logo` rule that lived here is gone with the wall it
   sized. This page no longer renders <SponsorMark /> at all — the roll is typeset names, and the
   only remaining mark is the presenting sponsor's own <img>, which this component owns and can
   therefore style without ::deep. The ::deep note itself is preserved on the surfaces that still
   host the shared component (Leaderboard, TvBoard, Flyer): a scoped rule cannot reach a child
   component's markup, and without it a logo silently renders at its natural size. */

/* ── Field fold ────────────────────────────────────────────────────────────
   159 player cards ran 11,600px on a phone — sixteen screens — and buried every
   section below them. The roster is reference material you go looking for, not
   reading, so past a threshold it opens on request. The count stays visible in the
   heading either way, and a search forces it open so typing a name never looks broken. */
.pub-field-note[b-4ehvn49c0j] {
    color: var(--b9-text-muted, #c2cfdf);
    font-size: 0.9rem;
    margin: 0 0 0.75rem;
}
.pub-field-fold[b-4ehvn49c0j] {
    margin-top: 0.25rem;
}
.pub-field-summary[b-4ehvn49c0j] {
    cursor: pointer;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 48px;
    padding: 0.6rem 1rem;
    border: 1px solid var(--b9-border, #2a3850);
    border-radius: 10px;
    background: var(--b9-surface, #0f1722);
    color: var(--b9-primary-text, #93c5fd);
    font-weight: 650;
    font-size: 0.92rem;
}
.pub-field-summary[b-4ehvn49c0j]::-webkit-details-marker { display: none; }
.pub-field-summary[b-4ehvn49c0j]::after {
    content: "▾";
    font-size: 0.8rem;
    transition: transform 0.15s ease;
}
.pub-field-fold[open] > .pub-field-summary[b-4ehvn49c0j]::after { transform: rotate(180deg); }
.pub-field-summary:hover[b-4ehvn49c0j] { border-color: var(--b9-primary, #1d4ed8); }
.pub-field-summary:focus-visible[b-4ehvn49c0j] {
    outline: 2px solid var(--b9-primary-text, #93c5fd);
    outline-offset: 2px;
}
.pub-field-fold[open] > .pub-field-summary[b-4ehvn49c0j] { margin-bottom: 0.9rem; }
@media (prefers-reduced-motion: reduce) {
    .pub-field-summary[b-4ehvn49c0j]::after { transition: none; }
}

/* ── Facts strip ───────────────────────────────────────────────────────────
   Date, tee time, course, format and field in one band, immediately under the hero.
   Replaces three stacked icon cards that pushed the same information down the page and
   never named the tee time at all — the single most asked question before an outing.
   Cells are hairline-separated on one row and stack cleanly on a phone. */
.pub-facts[b-4ehvn49c0j] {
    display: grid;
    /* 128px, not 150px: at 150 the fifth cell wrapped onto a row of its own and sat in a
       half-empty band. Five cells is the maximum this strip ever holds (the tee-time cell is
       absent when no pairing carries one), so they fit one row on any tablet or desktop. */
    grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
    margin: 0;
    border: 1px solid var(--b9-border, #2a3850);
    border-radius: 14px;
    overflow: hidden;
    background: var(--b9-surface, #0f1722);
}
.pub-fact[b-4ehvn49c0j] {
    padding: 0.85rem 1rem;
    border-right: 1px solid rgba(255, 255, 255, 0.05);
}
.pub-fact:last-child[b-4ehvn49c0j] { border-right: 0; }
.pub-fact dt[b-4ehvn49c0j] {
    font-size: 0.64rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--b9-text-soft, #9fb0c4);
    margin: 0 0 0.3rem;
}
.pub-fact dd[b-4ehvn49c0j] {
    margin: 0;
    font-size: 1.02rem;
    font-weight: 650;
    color: var(--b9-text, #f3f6fb);
    font-variant-numeric: tabular-nums;
    line-height: 1.25;
}
.pub-fact dd small[b-4ehvn49c0j] {
    display: block;
    font-weight: 400;
    font-size: 0.8rem;
    color: var(--b9-text-soft, #9fb0c4);
    margin-top: 0.1rem;
}
/* Stacked on a phone: the vertical rule becomes a horizontal one. */
@media (max-width: 620px) {
    .pub-fact[b-4ehvn49c0j] { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); }
    .pub-fact:last-child[b-4ehvn49c0j] { border-bottom: 0; }
}

/* Jump link on the closed-registration card. Deliberately NOT .pub-cta-btn-primary — that class
   is reserved for the single sign-up CTA and a release gate counts it. Same shape, quieter fill,
   because this navigates within the page rather than committing anyone to anything. */
.pub-cta-btn-jump[b-4ehvn49c0j] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 48px;
    padding: 0.7rem 1.25rem;
    border-radius: 10px;
    border: 1px solid var(--b9-primary, #1d4ed8);
    background: var(--b9-primary-soft, rgba(29, 78, 216, 0.15));
    color: var(--b9-primary-text, #93c5fd);
    font-weight: 700;
    text-decoration: none;
}
.pub-cta-btn-jump:hover[b-4ehvn49c0j] { background: var(--b9-primary, #1d4ed8); color: #fff; }
.pub-cta-btn-jump:focus-visible[b-4ehvn49c0j] {
    outline: 2px solid var(--b9-primary-text, #93c5fd);
    outline-offset: 2px;
}

/* ── Sponsor logo row ──────────────────────────────────────────────────────
   Only businesses that actually supplied artwork. Setting every sponsor as text made
   sending a logo worthless, which is the opposite of what recognition should reward.

   ::deep is REQUIRED, not stylistic: the mark is drawn by the shared <SponsorMark />
   child component, so its element never receives THIS component's b-* scope attribute
   and a plain `.pub-logo-mark { }` rule silently does nothing — a logo would render at
   its natural size, and a 1px image renders as 1px. */
.pub-logo-row[b-4ehvn49c0j] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: 1.4rem 1.8rem;
}
.pub-logo-cell[b-4ehvn49c0j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    width: 132px;
}
.pub-logo-row[b-4ehvn49c0j]  .pub-logo-mark {
    width: 132px;
    height: 62px;
    object-fit: contain;
    background: #fff;
    border-radius: 10px;
    padding: 6px;
}
.pub-logo-name[b-4ehvn49c0j] {
    font-size: 0.74rem;
    font-weight: 600;
    color: var(--b9-text-soft, #9fb0c4);
    text-align: center;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

/* ── Width: use the screen you are given ───────────────────────────────────
   Two separate faults, both visible only on a desktop.

   1. The facts strip lost its container. It replaced .pub-info-items, which carried
      max-width + auto margins + padding, and inherited none of them — so at 1440px it
      ran 1400px wide while every other section sat in a 640px column beside it.

   2. .pub-body-narrow pins the whole page to 640px. That is right for the QR landing it
      was built for, and wrong for a laptop: at 1440px it wasted 800px and pushed the
      hole board down to three columns, so a page that fits on one screen needed several.

   The internal grids are all auto-fill/auto-fit, so widening the container is all that is
   needed — they reflow into more columns on their own. Prose does not widen with them:
   .pub-event-desc keeps its own reading measure. */
.pub-facts[b-4ehvn49c0j] {
    max-width: 1100px;
    margin-inline: auto;
}
.pub-info-strip > .pub-facts[b-4ehvn49c0j] {
    margin-block: 1rem;
}

@media (min-width: 1024px) {
    .pub-body-narrow[b-4ehvn49c0j] { max-width: 1100px; }
    .pub-hero-single[b-4ehvn49c0j] { max-width: 1100px; }
}
/* /Components/Pages/Events/RegisterTeam.razor.rz.scp.css */
.rt-page[b-321m5dr5gc] {
    min-height: 100vh;
    padding: 1.5rem 1rem 4rem;
}

.rt-loading[b-321m5dr5gc],
.rt-state[b-321m5dr5gc] {
    max-width: 520px;
    margin: 4rem auto;
    text-align: center;
    color: var(--text-primary, #e5e7eb);
}

.rt-state-title[b-321m5dr5gc] {
    font-size: 1.5rem;
    font-weight: 700;
}

.rt-state-sub[b-321m5dr5gc] {
    color: var(--text-muted, #9ca3af);
}

.rt-container[b-321m5dr5gc] {
    max-width: 640px;
    margin: 0 auto;
}

/* ── Header ── */
.rt-header[b-321m5dr5gc] {
    margin-bottom: 1.5rem;
}

.rt-org[b-321m5dr5gc] {
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted, #9ca3af);
    margin: 0 0 0.25rem;
}

.rt-event-name[b-321m5dr5gc] {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--text-primary, #f3f4f6);
    margin: 0 0 0.5rem;
    line-height: 1.15;
}

.rt-lead[b-321m5dr5gc] {
    font-size: 1.05rem;
    color: var(--text-secondary, #cbd5e1);
    margin: 0 0 0.75rem;
}

.rt-fee-pill[b-321m5dr5gc] {
    display: inline-flex;
    align-items: baseline;
    /* A club member rate roughly doubles this line ("Members $300 · Everyone else $400 per team").
       Measured at 375px: it does NOT overflow without these — the text already wraps inside the flex
       items. Kept as a guard for longer strings (four-figure prices, large accessibility font sizes)
       so the pill can never become a horizontal-scroll source. Not a fix for an observed bug. */
    flex-wrap: wrap;
    justify-content: center;
    max-width: 100%;
    gap: 0.4rem;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    background: var(--success-soft, rgba(34, 197, 94, 0.14));
    color: var(--success-text, #4ade80);
    font-weight: 700;
    font-size: 1rem;
}

.rt-fee-sub[b-321m5dr5gc] {
    font-weight: 500;
    font-size: 0.8rem;
    opacity: 0.85;
}

/* ── Fields ── */
.rt-field[b-321m5dr5gc] {
    margin-bottom: 0.9rem;
}

.rt-label[b-321m5dr5gc] {
    display: block;
    font-weight: 600;
    font-size: 0.95rem;
    color: var(--text-primary, #e5e7eb);
    margin-bottom: 0.35rem;
}

.rt-required[b-321m5dr5gc] {
    color: var(--danger, #ef4444);
}

.rt-optional[b-321m5dr5gc],
.rt-soft[b-321m5dr5gc] {
    font-weight: 400;
    font-size: 0.8rem;
    color: var(--text-muted, #9ca3af);
}

.rt-input[b-321m5dr5gc] {
    background: var(--bg-elevated, #1f2937);
    border: 1px solid var(--border-default, #374151);
    color: var(--text-primary, #f3f4f6);
    border-radius: 10px;
    padding: 0.7rem 0.85rem;
    font-size: 1.05rem;
}

.rt-input[b-321m5dr5gc]::placeholder {
    color: var(--text-muted, #6b7280);
}

.rt-input:focus[b-321m5dr5gc] {
    background: var(--bg-elevated, #1f2937);
    color: var(--text-primary, #f3f4f6);
    border-color: var(--brand, #3b82f6);
    box-shadow: 0 0 0 3px var(--brand-ring, rgba(59, 130, 246, 0.3));
}

.rt-hint[b-321m5dr5gc] {
    font-size: 0.8rem;
    color: var(--text-muted, #9ca3af);
    margin-top: 0.25rem;
}

/* ── Player cards ── */
.rt-player-card[b-321m5dr5gc] {
    background: var(--bg-surface, #111827);
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
    border-radius: 14px;
    padding: 1rem 1.1rem 0.6rem;
    margin-bottom: 1rem;
}

.rt-player-card--captain[b-321m5dr5gc] {
    border-color: var(--brand-ring, rgba(59, 130, 246, 0.4));
    background: var(--brand-soft, rgba(59, 130, 246, 0.08));
}

.rt-player-head[b-321m5dr5gc] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-bottom: 0.75rem;
}

.rt-player-num[b-321m5dr5gc] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand, #3b82f6);
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    flex-shrink: 0;
}

.rt-player-role[b-321m5dr5gc] {
    font-weight: 700;
    color: var(--text-primary, #f3f4f6);
}

.rt-player-grid[b-321m5dr5gc] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 0.75rem;
}

@media (max-width: 520px) {
    .rt-player-grid[b-321m5dr5gc] {
        grid-template-columns: 1fr;
    }
}

/* ── Notes / errors ── */
.rt-tbd-note[b-321m5dr5gc],
.rt-pay-note[b-321m5dr5gc] {
    background: var(--brand-soft, rgba(59, 130, 246, 0.1));
    border: 1px solid var(--brand-ring, rgba(59, 130, 246, 0.25));
    color: var(--text-secondary, #cbd5e1);
    border-radius: 10px;
    padding: 0.75rem 0.95rem;
    font-size: 0.95rem;
    margin-bottom: 1rem;
}

.rt-pay-note[b-321m5dr5gc] {
    background: var(--success-soft, rgba(34, 197, 94, 0.14));
    border-color: var(--success-ring, rgba(34, 197, 94, 0.3));
    color: var(--success-text, #4ade80);
    margin: 1rem 0;
}

.rt-error[b-321m5dr5gc] {
    background: var(--danger-soft, rgba(239, 68, 68, 0.14));
    border: 1px solid var(--danger-ring, rgba(239, 68, 68, 0.3));
    color: var(--danger-text, #f87171);
    border-radius: 10px;
    padding: 0.75rem 0.95rem;
    margin-bottom: 1rem;
}

.rt-closed[b-321m5dr5gc] {
    background: var(--warning-soft, rgba(245, 158, 11, 0.14));
    border: 1px solid var(--warning-ring, rgba(245, 158, 11, 0.3));
    color: var(--warning-text, #fbbf24);
    border-radius: 12px;
    padding: 1rem 1.1rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

/* ── Submit ── */
.rt-submit[b-321m5dr5gc] {
    width: 100%;
    border: none;
    border-radius: 12px;
    background: var(--brand, #3b82f6);
    color: #fff;
    font-size: 1.15rem;
    font-weight: 700;
    padding: 0.95rem 1rem;
    margin-top: 0.5rem;
    cursor: pointer;
    transition: background 0.15s ease, transform 0.05s ease;
}

.rt-submit:hover:not(:disabled)[b-321m5dr5gc] {
    background: var(--brand-strong, #2563eb);
}

.rt-submit:active:not(:disabled)[b-321m5dr5gc] {
    transform: translateY(1px);
}

.rt-submit:disabled[b-321m5dr5gc] {
    opacity: 0.7;
    cursor: default;
}

.rt-back-link[b-321m5dr5gc] {
    display: inline-flex;
    align-items: center;
    margin-top: 1.25rem;
    color: var(--text-muted, #9ca3af);
    text-decoration: none;
    font-weight: 500;
}

.rt-back-link:hover[b-321m5dr5gc] {
    color: var(--text-primary, #e5e7eb);
}

/* ── Success ── */
.rt-success[b-321m5dr5gc] {
    text-align: center;
    max-width: 560px;
    margin: 2rem auto;
}

.rt-success-icon[b-321m5dr5gc] {
    font-size: 3.5rem;
    color: var(--success, #22c55e);
    line-height: 1;
    margin-bottom: 0.5rem;
}

.rt-success-title[b-321m5dr5gc] {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--text-primary, #f3f4f6);
    margin-bottom: 0.5rem;
}

.rt-success-sub[b-321m5dr5gc] {
    font-size: 1.05rem;
    color: var(--text-secondary, #cbd5e1);
}

.rt-success-help[b-321m5dr5gc] {
    font-size: 0.9rem;
    color: var(--text-muted, #9ca3af);
    margin-top: 1rem;
}

/* ── Sponsor wall — "Thank you to our sponsors" at the bottom of every page state ── */
.rt-sponsor-wall[b-321m5dr5gc] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.6rem;
    margin: 1.75rem auto 0;
    padding: 1rem;
    max-width: 640px;
    border-top: 1px solid rgba(148, 163, 184, 0.18);
}

.rt-sponsor-wall-label[b-321m5dr5gc] {
    font-size: 0.72rem;
    font-weight: 600;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.rt-sponsor-wall-logos[b-321m5dr5gc] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    max-width: 100%;
}

.rt-sponsor-wall-logo[b-321m5dr5gc] {
    height: 40px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    border-radius: 6px;
}

/* ::deep is REQUIRED, not stylistic. The mark is rendered by the shared <SponsorMark />
   child component, so its element never receives THIS component's b-* scope attribute and a
   plain `.rt-sponsor-wall-logo { }` rule silently does nothing — the logo falls back to its natural
   size (a 1px image renders as 1px). `.rt-sponsor-wall-logos ::deep` compiles to
   `.rt-sponsor-wall-logos[b-xxxx] .rt-sponsor-wall-logo`, which matches because the wrapper IS in this
   component's own markup. Applies to BOTH treatments, so a nameplate occupies the same box
   as the logo beside it. */
.rt-sponsor-wall-logos[b-321m5dr5gc]  .rt-sponsor-wall-logo {
    height: 40px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    border-radius: 6px;
}

/* ── Optional skins pot ──────────────────────────────────────────────────────
   A captain signing up on a phone taps this one box, so the whole row is the
   target (48px min) rather than the 1rem checkbox itself. */
.rt-skins-optin[b-321m5dr5gc] {
    background: var(--brand-soft, rgba(59, 130, 246, 0.1));
    border: 1px solid var(--brand-ring, rgba(59, 130, 246, 0.25));
    border-radius: 10px;
    padding: 0.75rem 0.95rem;
    margin-bottom: 1rem;
}

.rt-skins-check[b-321m5dr5gc] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 48px;
    cursor: pointer;
    color: var(--text-primary, #f8fafc);
    font-size: 0.95rem;
}

.rt-skins-check input[b-321m5dr5gc] {
    width: 1.35rem;
    height: 1.35rem;
    flex: 0 0 auto;
    cursor: pointer;
}

.rt-skins-optin .rt-hint[b-321m5dr5gc] { margin-top: 0.4rem; }
/* /Components/Pages/Events/RyderCupMatchEntry.razor.rz.scp.css */
/* ── Ryder Cup Match Entry Styles ────────────────────────────────────────── */

/* On .rce-shell (not :root): Blazor scopes :root to :root[b-hash], which never matches the
   html element, so these team vars silently never applied (dots transparent, names white).
   The shell wraps every consumer. Team A teal / Team B amber to match RyderCupScoreboard
   (commit 8f6f286) and the mobile Ryder Cup. */
.rce-shell[b-h24ll3l6yl] {
    --rce-a: #14B8A6;
    --rce-b: #F59E0B;
    --rce-a-soft: rgba(20, 184, 166, 0.12);
    --rce-b-soft: rgba(245, 158, 11, 0.12);
}

/* ── Loading ────────────────────────────────────────────────────────────── */

.rce-loading[b-h24ll3l6yl], .rce-not-found[b-h24ll3l6yl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 4rem 1rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rce-spinner[b-h24ll3l6yl] {
    width: 2rem;
    height: 2rem;
    border: 3px solid var(--b9-surface-muted, rgba(148,163,184,0.2));
    border-top-color: var(--brand, #6366f1);
    border-radius: 50%;
    animation: rce-spin-b-h24ll3l6yl 0.8s linear infinite;
}

@keyframes rce-spin-b-h24ll3l6yl { to { transform: rotate(360deg); } }

/* ── Shell ──────────────────────────────────────────────────────────────── */

.rce-shell[b-h24ll3l6yl] {
    max-width: 720px;
    margin: 0 auto;
    padding: 1rem 1rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

/* ── Topbar ─────────────────────────────────────────────────────────────── */

.rce-topbar[b-h24ll3l6yl] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.rce-back-link[b-h24ll3l6yl] {
    color: var(--b9-text-soft, #94a3b8);
    text-decoration: none;
    font-size: 0.875rem;
}
.rce-back-link:hover[b-h24ll3l6yl] { color: var(--b9-text, #e2e8f0); }

.rce-breadcrumb[b-h24ll3l6yl] {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-primary-text);
    margin-left: auto;
}

/* ── Match header ───────────────────────────────────────────────────────── */

.rce-match-header[b-h24ll3l6yl] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1rem;
    background: var(--bg-elevated, rgba(30,41,59,0.6));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
}

.rce-team[b-h24ll3l6yl] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rce-team--b[b-h24ll3l6yl] {
    flex-direction: row-reverse;
    text-align: right;
}

.rce-team-dot[b-h24ll3l6yl] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    flex-shrink: 0;
}

.rce-team--a .rce-team-dot[b-h24ll3l6yl] { background: var(--rce-a); }
.rce-team--b .rce-team-dot[b-h24ll3l6yl] { background: var(--rce-b); }

.rce-team-info[b-h24ll3l6yl] {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.rce-team-info--right[b-h24ll3l6yl] { align-items: flex-end; }

.rce-team-name[b-h24ll3l6yl] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--b9-text, #e2e8f0);
}

.rce-player-names[b-h24ll3l6yl] {
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rce-vs-block[b-h24ll3l6yl] {
    text-align: center;
}

.rce-vs[b-h24ll3l6yl] {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--b9-text-muted, #64748b);
}

/* ── State Banner ───────────────────────────────────────────────────────── */

.rce-state-banner[b-h24ll3l6yl] {
    border-radius: 10px;
    padding: 0.85rem 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
    font-size: 1rem;
}

.rce-banner--a[b-h24ll3l6yl] {
    background: var(--rce-a-soft);
    border: 1px solid rgba(56,189,248,0.25);
    color: var(--rce-a);
}

.rce-banner--b[b-h24ll3l6yl] {
    background: var(--rce-b-soft);
    border: 1px solid rgba(239,68,68,0.25);
    color: var(--rce-b);
}

.rce-banner--neutral[b-h24ll3l6yl] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.08));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    color: var(--b9-text, #e2e8f0);
}

.rce-banner--closed[b-h24ll3l6yl] {
    background: var(--success-soft, rgba(34,197,94,0.1));
    border: 1px solid rgba(34,197,94,0.25);
    color: var(--success, #22c55e);
}

.rce-state-text[b-h24ll3l6yl] { flex: 1; }

.rce-final-badge[b-h24ll3l6yl] {
    background: var(--success, #22c55e);
    color: #000;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    padding: 0.15rem 0.45rem;
    border-radius: 5px;
}

/* ── Start / Close prompts ──────────────────────────────────────────────── */

.rce-start-prompt[b-h24ll3l6yl], .rce-close-prompt[b-h24ll3l6yl] {
    text-align: center;
    padding: 1.5rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.06));
    border-radius: 10px;
    border: 1px solid var(--b9-border, rgba(148,163,184,0.12));
}

.rce-start-prompt p[b-h24ll3l6yl], .rce-close-prompt p[b-h24ll3l6yl] {
    color: var(--b9-text-soft, #94a3b8);
    margin: 0 0 1rem;
    font-size: 0.9rem;
}

/* ── Hole Entry Area ────────────────────────────────────────────────────── */

.rce-hole-entry-area[b-h24ll3l6yl] {
    background: var(--bg-elevated, rgba(30,41,59,0.6));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    border-radius: 12px;
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rce-hole-label[b-h24ll3l6yl] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--b9-text, #e2e8f0);
}

.rce-par-label[b-h24ll3l6yl], .rce-si-label[b-h24ll3l6yl] {
    font-size: 0.8rem;
    font-weight: 500;
    background: var(--b9-surface-muted, rgba(148,163,184,0.1));
    color: var(--b9-text-soft, #94a3b8);
    padding: 0.15rem 0.45rem;
    border-radius: 5px;
}

.rce-hcp-note[b-h24ll3l6yl] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    background: var(--warning-soft, rgba(245,158,11,0.1));
    border: 1px solid rgba(245,158,11,0.2);
    border-radius: 7px;
    padding: 0.55rem 0.85rem;
    font-size: 0.875rem;
    color: var(--b9-text, #e2e8f0);
}

.rce-already-recorded[b-h24ll3l6yl] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 0.875rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rce-change-hint[b-h24ll3l6yl] {
    font-size: 0.8125rem;
    font-style: italic;
    color: var(--b9-text-muted, #64748b);
}

/* BIG outcome buttons — 64px min-height for easy tapping */
.rce-outcome-buttons[b-h24ll3l6yl] {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 0.65rem;
}

@media (max-width: 500px) {
    .rce-outcome-buttons[b-h24ll3l6yl] {
        grid-template-columns: 1fr;
    }
}

.rce-outcome-btn[b-h24ll3l6yl] {
    min-height: 72px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    border-radius: 10px;
    border: 2px solid transparent;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    padding: 0.75rem 0.5rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.08));
    color: var(--b9-text, #e2e8f0);
}

.rce-outcome-btn:disabled[b-h24ll3l6yl] {
    opacity: 0.5;
    cursor: not-allowed;
}

.rce-outcome-btn:hover:not(:disabled)[b-h24ll3l6yl] {
    transform: translateY(-1px);
}

.rce-outcome-btn--a:hover:not(:disabled)[b-h24ll3l6yl] {
    background: var(--rce-a-soft);
    border-color: rgba(56,189,248,0.4);
    color: var(--rce-a);
}

.rce-outcome-btn--halved:hover:not(:disabled)[b-h24ll3l6yl] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.15));
    border-color: rgba(148,163,184,0.4);
}

.rce-outcome-btn--b:hover:not(:disabled)[b-h24ll3l6yl] {
    background: var(--rce-b-soft);
    border-color: rgba(239,68,68,0.4);
    color: var(--rce-b);
}

/* Selected state */
.rce-outcome-btn--selected.rce-outcome-btn--a[b-h24ll3l6yl] {
    background: var(--rce-a-soft);
    border-color: var(--rce-a);
    color: var(--rce-a);
}

.rce-outcome-btn--selected.rce-outcome-btn--halved[b-h24ll3l6yl] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.15));
    border-color: rgba(148,163,184,0.5);
    color: var(--b9-text, #e2e8f0);
}

.rce-outcome-btn--selected.rce-outcome-btn--b[b-h24ll3l6yl] {
    background: var(--rce-b-soft);
    border-color: var(--rce-b);
    color: var(--rce-b);
}

.rce-outcome-icon[b-h24ll3l6yl] {
    font-size: 1.5rem;
    line-height: 1;
}

/* ── Hole Progress ──────────────────────────────────────────────────────── */

.rce-progress-section[b-h24ll3l6yl] {
    background: var(--bg-elevated, rgba(30,41,59,0.5));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.12));
    border-radius: 12px;
    padding: 1rem 1.25rem;
}

.rce-progress-label[b-h24ll3l6yl] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--b9-text-soft, #94a3b8);
    margin-bottom: 0.75rem;
}

.rce-holes-grid[b-h24ll3l6yl] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.rce-hole-dot[b-h24ll3l6yl] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 2px solid var(--b9-border, rgba(148,163,184,0.2));
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.15s;
    background: var(--b9-surface-muted, rgba(148,163,184,0.06));
    padding: 0;
}

.rce-hole-dot--current[b-h24ll3l6yl] {
    border-color: var(--brand, #6366f1) !important;
    box-shadow: 0 0 0 2px rgba(99,102,241,0.25);
}

.rce-hole-dot--a[b-h24ll3l6yl] {
    background: var(--rce-a-soft);
    border-color: var(--rce-a);
}

.rce-hole-dot--b[b-h24ll3l6yl] {
    background: var(--rce-b-soft);
    border-color: var(--rce-b);
}

.rce-hole-dot--halved[b-h24ll3l6yl] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.15));
    border-color: rgba(148,163,184,0.4);
}

.rce-hole-dot--empty[b-h24ll3l6yl] {
    opacity: 0.4;
}

.rce-hole-num[b-h24ll3l6yl] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--b9-text, #e2e8f0);
}

.rce-prev-next[b-h24ll3l6yl] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    margin-top: 1rem;
}

/* ── Admin / Concede actions ────────────────────────────────────────────── */

.rce-admin-actions[b-h24ll3l6yl] {
    border-top: 1px solid var(--b9-border, rgba(148,163,184,0.1));
    padding-top: 1rem;
}

.rce-concede-links[b-h24ll3l6yl] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
}

.rce-concede-link[b-h24ll3l6yl] {
    background: none;
    border: none;
    color: var(--b9-text-muted, #64748b);
    font-size: 0.8rem;
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
}
.rce-concede-link:hover[b-h24ll3l6yl] { color: var(--danger, #EF4444); }

.rce-concede-confirm[b-h24ll3l6yl] {
    background: var(--danger-soft, rgba(239,68,68,0.08));
    border: 1px solid rgba(239,68,68,0.2);
    border-radius: 8px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    text-align: center;
}

.rce-concede-confirm p[b-h24ll3l6yl] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--b9-text, #e2e8f0);
}

/* ── Shared buttons (reused from setup, keep scope) ─────────────────────── */

.rce-btn[b-h24ll3l6yl] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 1rem;
    border-radius: 7px;
    font-size: 0.9rem;
    font-weight: 500;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.15s;
    white-space: nowrap;
}

.rce-btn:disabled[b-h24ll3l6yl] { opacity: 0.5; cursor: not-allowed; }

.rce-btn-primary[b-h24ll3l6yl] { background: var(--brand, #6366f1); color: #fff; border-color: var(--brand, #6366f1); }
.rce-btn-primary:hover:not(:disabled)[b-h24ll3l6yl] { opacity: 0.88; }

.rce-btn-big[b-h24ll3l6yl] { min-height: 56px; font-size: 1.1rem; padding: 0.75rem 2rem; }

.rce-btn-secondary[b-h24ll3l6yl] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.1));
    color: var(--b9-text, #e2e8f0);
    border-color: var(--b9-border, rgba(148,163,184,0.25));
}

.rce-btn-ghost[b-h24ll3l6yl] {
    background: transparent;
    color: var(--b9-text-soft, #94a3b8);
    border-color: var(--b9-border, rgba(148,163,184,0.2));
}

.rce-btn-danger-ghost[b-h24ll3l6yl] {
    background: transparent;
    color: var(--danger, #EF4444);
    border-color: rgba(239,68,68,0.3);
}

.rce-btn-sm[b-h24ll3l6yl] {
    padding: 0.3rem 0.65rem;
    font-size: 0.8rem;
}

.rce-error[b-h24ll3l6yl] {
    color: var(--danger, #EF4444);
    font-size: 0.875rem;
    margin: 0;
    background: var(--danger-soft, rgba(239,68,68,0.08));
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
}

/* ── Net gross entry (Foursomes / Four-Ball net) ───────────────────────────── */
.rce-net-entry[b-h24ll3l6yl] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    margin: 0.5rem 0 0.25rem;
}

.rce-net-row[b-h24ll3l6yl] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
}

.rce-net-field[b-h24ll3l6yl] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.75rem;
    border-radius: 12px;
    background: var(--bg-elevated, rgba(30,41,59,0.6));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
}

.rce-net-field--a[b-h24ll3l6yl] { border-top: 3px solid var(--rce-a); }
.rce-net-field--b[b-h24ll3l6yl] { border-top: 3px solid var(--rce-b); }

.rce-net-team[b-h24ll3l6yl] {
    font-weight: 600;
    color: var(--b9-text, #e2e8f0);
    font-size: 0.9rem;
}

.rce-net-strokes[b-h24ll3l6yl] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--b9-primary-text);
}

.rce-net-input[b-h24ll3l6yl] {
    width: 100%;
    min-height: 48px;
    font-size: 1.35rem;
    font-weight: 700;
    text-align: center;
    border-radius: 10px;
    border: 1px solid var(--b9-border, rgba(148,163,184,0.25));
    background: var(--b9-surface, rgba(15,23,42,0.6));
    color: var(--b9-text, #e2e8f0);
}

.rce-net-input:focus[b-h24ll3l6yl] {
    outline: none;
    border-color: var(--brand, #6366f1);
}

.rce-net-record[b-h24ll3l6yl] { width: 100%; }

.rce-net-hint[b-h24ll3l6yl] {
    margin: 0;
    text-align: center;
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rce-net-divider[b-h24ll3l6yl] {
    display: flex;
    align-items: center;
    text-align: center;
    margin: 0.75rem 0 0.25rem;
    color: var(--b9-text-muted, #64748b);
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.rce-net-divider[b-h24ll3l6yl]::before,
.rce-net-divider[b-h24ll3l6yl]::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--b9-border, rgba(148,163,184,0.15));
}

.rce-net-divider span[b-h24ll3l6yl] { padding: 0 0.75rem; }
/* /Components/Pages/Events/RyderCupScoreboard.razor.rz.scp.css */
/* ── Ryder Cup Scoreboard Styles ─────────────────────────────────────────── */

/* Defined on .rsb-shell (not :root): Blazor scopes :root to :root[b-hash], which never
   matches, so these vars silently never applied (dots transparent, points white).
   .rsb-shell wraps every consumer. Team identity matches the Player+ palette
   (mobile TeamA/TeamB, Teams card, board): Team A teal, Team B amber — so the same
   cup looks the same on web and mobile. */
.rsb-shell[b-uhoxhpgeh9] {
    --rsb-a: #14B8A6;
    --rsb-b: #F59E0B;
    --rsb-a-soft: rgba(20, 184, 166, 0.12);
    --rsb-b-soft: rgba(245, 158, 11, 0.12);
}

/* ── Loading ────────────────────────────────────────────────────────────── */

.rsb-loading[b-uhoxhpgeh9], .rsb-not-found[b-uhoxhpgeh9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 5rem 1rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rsb-spinner[b-uhoxhpgeh9] {
    width: 2.5rem;
    height: 2.5rem;
    border: 3px solid var(--b9-surface-muted, rgba(148,163,184,0.2));
    border-top-color: var(--brand, #6366f1);
    border-radius: 50%;
    animation: rsb-spin-b-uhoxhpgeh9 0.8s linear infinite;
}

@keyframes rsb-spin-b-uhoxhpgeh9 { to { transform: rotate(360deg); } }

/* ── Shell ──────────────────────────────────────────────────────────────── */

.rsb-shell[b-uhoxhpgeh9] {
    max-width: 800px;
    margin: 0 auto;
    padding: 1.5rem 1rem 4rem;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* ── Header ─────────────────────────────────────────────────────────────── */

.rsb-header[b-uhoxhpgeh9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.rsb-event-name[b-uhoxhpgeh9] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--b9-text, #e2e8f0);
}

.rsb-refresh-hint[b-uhoxhpgeh9] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rsb-live-dot[b-uhoxhpgeh9] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--success, #22c55e);
    animation: rsb-pulse-b-uhoxhpgeh9 2s ease-in-out infinite;
}

@keyframes rsb-pulse-b-uhoxhpgeh9 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

/* ── Score Hero ─────────────────────────────────────────────────────────── */

.rsb-score-hero[b-uhoxhpgeh9] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 0.75rem;
    background: var(--bg-elevated, rgba(30,41,59,0.7));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    border-radius: 16px;
    padding: 1.75rem 1.5rem;
}

.rsb-team-score[b-uhoxhpgeh9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.rsb-team-dot[b-uhoxhpgeh9] {
    width: 16px;
    height: 16px;
    border-radius: 50%;
}

.rsb-team-score--a .rsb-team-dot[b-uhoxhpgeh9] { background: var(--rsb-a); }
.rsb-team-score--b .rsb-team-dot[b-uhoxhpgeh9] { background: var(--rsb-b); }

.rsb-team-name[b-uhoxhpgeh9] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--b9-text, #e2e8f0);
    text-align: center;
}

.rsb-points[b-uhoxhpgeh9] {
    font-size: 3rem;
    font-weight: 900;
    line-height: 1;
    color: var(--b9-text, #e2e8f0);
}

.rsb-team-score--a .rsb-points[b-uhoxhpgeh9] { color: var(--rsb-a); }
.rsb-team-score--b .rsb-points[b-uhoxhpgeh9] { color: var(--rsb-b); }

.rsb-divider[b-uhoxhpgeh9] {
    text-align: center;
    padding: 0 0.25rem;
}

.rsb-status-summary[b-uhoxhpgeh9] {
    font-size: 0.75rem;
    color: var(--b9-text-soft, #94a3b8);
    text-align: center;
    line-height: 1.4;
    max-width: 140px;
}

/* ── Sessions ───────────────────────────────────────────────────────────── */

.rsb-sessions[b-uhoxhpgeh9] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.rsb-session-card[b-uhoxhpgeh9] {
    background: var(--bg-elevated, rgba(30,41,59,0.5));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.12));
    border-radius: 12px;
    overflow: hidden;
}

.rsb-session-header[b-uhoxhpgeh9] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.9rem 1.1rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.05));
    border-bottom: 1px solid var(--b9-border, rgba(148,163,184,0.1));
    flex-wrap: wrap;
}

.rsb-session-icon[b-uhoxhpgeh9] {
    font-size: 1.1rem;
}

.rsb-session-title-block[b-uhoxhpgeh9] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 120px;
}

.rsb-session-title[b-uhoxhpgeh9] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--b9-text, #e2e8f0);
}

.rsb-session-format[b-uhoxhpgeh9] {
    font-size: 0.75rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rsb-session-pts[b-uhoxhpgeh9] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-weight: 700;
    font-size: 0.95rem;
}

.rsb-session-pts-a[b-uhoxhpgeh9] { color: var(--rsb-a); }
.rsb-session-pts-b[b-uhoxhpgeh9] { color: var(--rsb-b); }
.rsb-session-pts-dash[b-uhoxhpgeh9] { color: var(--b9-text-muted, #64748b); }

.rsb-session-status[b-uhoxhpgeh9] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 0.2rem 0.55rem;
    border-radius: 5px;
}

.rsb-status-Complete[b-uhoxhpgeh9] {
    background: var(--success-soft, rgba(34,197,94,0.1));
    color: var(--success, #22c55e);
}

.rsb-status-InProgress[b-uhoxhpgeh9] {
    background: var(--info-soft, rgba(56,189,248,0.1));
    color: var(--info, #38BDF8);
}

.rsb-status-NotStarted[b-uhoxhpgeh9] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.08));
    color: var(--b9-text-soft, #94a3b8);
}

/* ── Match list ─────────────────────────────────────────────────────────── */

.rsb-match-list[b-uhoxhpgeh9] {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rsb-match-row[b-uhoxhpgeh9] {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 1.1rem;
    border-bottom: 1px solid var(--b9-border, rgba(148,163,184,0.07));
    flex-wrap: wrap;
}

.rsb-match-row:last-child[b-uhoxhpgeh9] { border-bottom: none; }

.rsb-match-icon[b-uhoxhpgeh9] {
    font-size: 0.85rem;
}

.rsb-match-label[b-uhoxhpgeh9] {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--b9-text-soft, #94a3b8);
    min-width: 4.5rem;
}

.rsb-match-sides[b-uhoxhpgeh9] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    min-width: 0;
}

.rsb-side-a[b-uhoxhpgeh9] {
    color: var(--rsb-a);
    font-weight: 500;
    font-size: 0.875rem;
}

.rsb-side-b[b-uhoxhpgeh9] {
    color: var(--rsb-b);
    font-weight: 500;
    font-size: 0.875rem;
}

.rsb-match-vs[b-uhoxhpgeh9] {
    color: var(--b9-text-muted, #64748b);
    font-size: 0.75rem;
}

.rsb-match-state[b-uhoxhpgeh9] {
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
    white-space: nowrap;
}

.rsb-session-empty[b-uhoxhpgeh9] {
    padding: 0.85rem 1.1rem;
    font-size: 0.875rem;
    color: var(--b9-text-muted, #64748b);
    font-style: italic;
    margin: 0;
}

/* ── Footer ─────────────────────────────────────────────────────────────── */

.rsb-footer[b-uhoxhpgeh9] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    border-top: 1px solid var(--b9-border, rgba(148,163,184,0.12));
    padding-top: 1.25rem;
}

/* ── Shared buttons ─────────────────────────────────────────────────────── */

.rsb-btn[b-uhoxhpgeh9] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.9rem;
    border-radius: 7px;
    font-size: 0.875rem;
    font-weight: 500;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.15s;
    white-space: nowrap;
}

.rsb-btn-primary[b-uhoxhpgeh9] { background: var(--brand, #6366f1); color: #fff; border-color: var(--brand, #6366f1); }
.rsb-btn-primary:hover[b-uhoxhpgeh9] { opacity: 0.88; }

.rsb-btn-secondary[b-uhoxhpgeh9] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.1));
    color: var(--b9-text, #e2e8f0);
    border-color: var(--b9-border, rgba(148,163,184,0.25));
}

.rsb-btn-ghost[b-uhoxhpgeh9] {
    background: transparent;
    color: var(--b9-text-soft, #94a3b8);
    border-color: var(--b9-border, rgba(148,163,184,0.2));
}
.rsb-btn-ghost:hover[b-uhoxhpgeh9] { color: var(--b9-text, #e2e8f0); }

.rsb-btn-sm[b-uhoxhpgeh9] {
    padding: 0.25rem 0.6rem;
    font-size: 0.75rem;
}

/* ── Mobile ─────────────────────────────────────────────────────────────── */

@media (max-width: 500px) {
    .rsb-score-hero[b-uhoxhpgeh9] {
        grid-template-columns: 1fr auto 1fr;
        padding: 1.25rem 0.75rem;
    }
    .rsb-points[b-uhoxhpgeh9] { font-size: 2.25rem; }
    .rsb-event-name[b-uhoxhpgeh9] { font-size: 1.1rem; }
    .rsb-match-row[b-uhoxhpgeh9] { gap: 0.4rem; }
}
/* /Components/Pages/Events/RyderCupSetup.razor.rz.scp.css */
/* ── Ryder Cup Setup Styles ──────────────────────────────────────────────── */
/* All colours via design tokens. Prefix: .rc-* */

/* On .rc-setup-shell (not :root): Blazor scopes :root to :root[b-hash], which never matches
   the html element, so these team vars silently never applied (dots transparent, names white).
   The shell wraps every consumer. Team A teal / Team B amber to match RyderCupScoreboard
   (commit 8f6f286) and the mobile Ryder Cup. */
.rc-setup-shell[b-zk219vn4kb] {
    --rc-team-a-color: #14B8A6;
    --rc-team-b-color: #F59E0B;
    --rc-team-a-soft: rgba(20, 184, 166, 0.12);
    --rc-team-b-soft: rgba(245, 158, 11, 0.12);
}

/* ── Loading / Error states ─────────────────────────────────────────────── */

.rc-loading[b-zk219vn4kb] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 4rem 1rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rc-spinner[b-zk219vn4kb] {
    width: 2rem;
    height: 2rem;
    border: 3px solid var(--b9-surface-muted, rgba(148,163,184,0.2));
    border-top-color: var(--brand, #6366f1);
    border-radius: 50%;
    animation: rc-spin-b-zk219vn4kb 0.8s linear infinite;
}

@keyframes rc-spin-b-zk219vn4kb {
    to { transform: rotate(360deg); }
}

.rc-access-denied[b-zk219vn4kb] {
    padding: 2rem;
    text-align: center;
    color: var(--b9-text-soft, #94a3b8);
}

/* ── Shell ──────────────────────────────────────────────────────────────── */

.rc-setup-shell[b-zk219vn4kb] {
    max-width: 900px;
    margin: 0 auto;
    padding: 1.25rem 1rem 3rem;
}

.rc-setup-header[b-zk219vn4kb] {
    margin-bottom: 1.5rem;
}

.rc-back-link[b-zk219vn4kb] {
    color: var(--b9-text-soft, #94a3b8);
    text-decoration: none;
    font-size: 0.875rem;
    display: inline-block;
    margin-bottom: 0.5rem;
}

.rc-back-link:hover[b-zk219vn4kb] {
    color: var(--b9-text, #e2e8f0);
}

.rc-setup-title-row[b-zk219vn4kb] {
    display: flex;
    align-items: baseline;
    gap: 1rem;
    flex-wrap: wrap;
}

.rc-setup-title[b-zk219vn4kb] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--b9-text, #e2e8f0);
}

.rc-event-name[b-zk219vn4kb] {
    color: var(--b9-text-soft, #94a3b8);
    font-size: 0.95rem;
}

/* ── Tab Navigation ─────────────────────────────────────────────────────── */

.rc-tabs[b-zk219vn4kb] {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--b9-border, rgba(148,163,184,0.15));
    margin-bottom: 1.5rem;
    overflow-x: auto;
}

.rc-tab[b-zk219vn4kb] {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    padding: 0.65rem 1.1rem;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--b9-text-soft, #94a3b8);
    cursor: pointer;
    white-space: nowrap;
    transition: color 0.15s, border-color 0.15s;
}

.rc-tab:hover[b-zk219vn4kb] {
    color: var(--b9-text, #e2e8f0);
}

.rc-tab--active[b-zk219vn4kb] {
    color: var(--b9-primary-text);
    border-bottom-color: var(--brand, #6366f1);
}

/* ── Panel ──────────────────────────────────────────────────────────────── */

.rc-panel[b-zk219vn4kb] {
    background: var(--bg-elevated, rgba(30,41,59,0.6));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    border-radius: 12px;
    padding: 1.5rem;
}

.rc-panel-title[b-zk219vn4kb] {
    margin: 0 0 0.4rem;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--b9-text, #e2e8f0);
}

.rc-panel-desc[b-zk219vn4kb] {
    color: var(--b9-text-soft, #94a3b8);
    font-size: 0.875rem;
    margin: 0 0 1.25rem;
}

/* ── Inputs / Buttons ───────────────────────────────────────────────────── */

.rc-label[b-zk219vn4kb] {
    display: block;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--b9-text-soft, #94a3b8);
    margin-bottom: 0.3rem;
}

.rc-input[b-zk219vn4kb] {
    background: var(--bg-surface, rgba(15,23,42,0.6));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.25));
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
    color: var(--b9-text, #e2e8f0);
    font-size: 1rem;
    width: 100%;
    max-width: 280px;
    outline: none;
    transition: border-color 0.15s;
}

.rc-input:focus[b-zk219vn4kb] {
    border-color: var(--brand, #6366f1);
}

.rc-input--narrow[b-zk219vn4kb] {
    max-width: 100px;
}

.rc-select[b-zk219vn4kb] {
    background: var(--bg-surface, rgba(15,23,42,0.6));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.25));
    border-radius: 6px;
    padding: 0.45rem 0.65rem;
    color: var(--b9-text, #e2e8f0);
    font-size: 0.875rem;
    width: 100%;
    outline: none;
}

/* Buttons */
.rc-btn[b-zk219vn4kb] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.55rem 1rem;
    border-radius: 7px;
    font-size: 0.9rem;
    font-weight: 500;
    border: 1px solid transparent;
    cursor: pointer;
    text-decoration: none;
    transition: opacity 0.15s, background 0.15s;
    white-space: nowrap;
}

.rc-btn:disabled[b-zk219vn4kb] {
    opacity: 0.5;
    cursor: not-allowed;
}

.rc-btn-primary[b-zk219vn4kb] {
    background: var(--brand, #6366f1);
    color: #fff;
    border-color: var(--brand, #6366f1);
}
.rc-btn-primary:hover:not(:disabled)[b-zk219vn4kb] { opacity: 0.88; }

.rc-btn-secondary[b-zk219vn4kb] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.1));
    color: var(--b9-text, #e2e8f0);
    border-color: var(--b9-border, rgba(148,163,184,0.25));
}
.rc-btn-secondary:hover:not(:disabled)[b-zk219vn4kb] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.18));
}

.rc-btn-ghost[b-zk219vn4kb] {
    background: transparent;
    color: var(--b9-text-soft, #94a3b8);
    border-color: var(--b9-border, rgba(148,163,184,0.2));
}
.rc-btn-ghost:hover:not(:disabled)[b-zk219vn4kb] {
    color: var(--b9-text, #e2e8f0);
    border-color: var(--b9-border, rgba(148,163,184,0.4));
}

.rc-btn-danger-ghost[b-zk219vn4kb] {
    background: transparent;
    color: var(--danger, #EF4444);
    border-color: rgba(239,68,68,0.3);
}
.rc-btn-danger-ghost:hover:not(:disabled)[b-zk219vn4kb] {
    background: var(--danger-soft, rgba(239,68,68,0.1));
}

.rc-btn-sm[b-zk219vn4kb] {
    padding: 0.3rem 0.65rem;
    font-size: 0.8rem;
}

.rc-btn-team-a[b-zk219vn4kb] {
    background: var(--rc-team-a-soft);
    color: var(--rc-team-a-color);
    border-color: rgba(56,189,248,0.3);
    padding: 0.35rem 0.7rem;
    font-size: 0.8rem;
    border-radius: 6px;
    border: 1px solid rgba(56,189,248,0.3);
    cursor: pointer;
    white-space: nowrap;
}
.rc-btn-team-a:hover[b-zk219vn4kb] { opacity: 0.85; }

.rc-btn-team-b[b-zk219vn4kb] {
    background: var(--rc-team-b-soft);
    color: var(--rc-team-b-color);
    border-color: rgba(239,68,68,0.3);
    padding: 0.35rem 0.7rem;
    font-size: 0.8rem;
    border-radius: 6px;
    border: 1px solid rgba(239,68,68,0.3);
    cursor: pointer;
    white-space: nowrap;
}
.rc-btn-team-b:hover[b-zk219vn4kb] { opacity: 0.85; }

/* ── Tab 1 — Teams ──────────────────────────────────────────────────────── */

.rc-team-names-row[b-zk219vn4kb] {
    display: flex;
    align-items: flex-end;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.rc-team-name-field[b-zk219vn4kb] {
    flex: 1 1 200px;
}

.rc-save-names-btn[b-zk219vn4kb] { align-self: flex-end; }

.rc-vs[b-zk219vn4kb] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--b9-text-soft, #94a3b8);
    padding-bottom: 0.5rem;
}

.rc-scoring-options[b-zk219vn4kb] {
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-bottom: 1.5rem;
    background: var(--bg-surface, rgba(15,23,42,0.3));
}

.rc-option-row[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    padding: 0.3rem 0;
}

.rc-option-row .rc-label[b-zk219vn4kb] {
    margin: 0;
    min-width: 180px;
}

.rc-toggle[b-zk219vn4kb] {
    padding: 0.35rem 0.85rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: background 0.15s;
}

.rc-toggle--on[b-zk219vn4kb] {
    background: var(--success-soft, rgba(34,197,94,0.15));
    color: var(--success, #22c55e);
}

.rc-toggle--off[b-zk219vn4kb] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.12));
    color: var(--b9-text-soft, #94a3b8);
}

/* Teams grid */
.rc-teams-grid[b-zk219vn4kb] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

@media (max-width: 600px) {
    .rc-teams-grid[b-zk219vn4kb] { grid-template-columns: 1fr; }
}

.rc-team-column[b-zk219vn4kb] {
    background: var(--bg-surface, rgba(15,23,42,0.3));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    border-radius: 10px;
    overflow: hidden;
}

.rc-team-header[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.65rem 0.9rem;
}

.rc-team-header--a[b-zk219vn4kb] {
    background: var(--rc-team-a-soft);
    border-bottom: 1px solid rgba(56,189,248,0.2);
}

.rc-team-header--b[b-zk219vn4kb] {
    background: var(--rc-team-b-soft);
    border-bottom: 1px solid rgba(239,68,68,0.2);
}

.rc-team-header h3[b-zk219vn4kb] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--b9-text, #e2e8f0);
    flex: 1;
}

.rc-team-dot[b-zk219vn4kb] {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.rc-team-header--a .rc-team-dot[b-zk219vn4kb] { background: var(--rc-team-a-color); }
.rc-team-header--b .rc-team-dot[b-zk219vn4kb] { background: var(--rc-team-b-color); }

.rc-team-count[b-zk219vn4kb] {
    font-size: 0.75rem;
    color: var(--b9-text-soft, #94a3b8);
}

/* Member list */
.rc-member-list[b-zk219vn4kb] {
    list-style: none;
    margin: 0;
    padding: 0.4rem 0;
}

.rc-member-item[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.4rem 0.9rem;
    font-size: 0.875rem;
    border-bottom: 1px solid var(--b9-border, rgba(148,163,184,0.08));
}
.rc-member-item:last-child[b-zk219vn4kb] { border-bottom: none; }

.rc-member-name[b-zk219vn4kb] {
    flex: 1;
    color: var(--b9-text, #e2e8f0);
}

.rc-member-hcp[b-zk219vn4kb] {
    font-size: 0.75rem;
    color: var(--b9-text-soft, #94a3b8);
    background: var(--b9-surface-muted, rgba(148,163,184,0.08));
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
}

.rc-captain-badge[b-zk219vn4kb] {
    font-size: 0.65rem;
    font-weight: 700;
    background: var(--warning-soft, rgba(245,158,11,0.15));
    color: var(--warning, #F59E0B);
    padding: 0.1rem 0.35rem;
    border-radius: 4px;
}

.rc-member-remove[b-zk219vn4kb] {
    background: none;
    border: none;
    color: var(--b9-text-muted, #64748b);
    font-size: 1.1rem;
    cursor: pointer;
    padding: 0 0.2rem;
    line-height: 1;
}
.rc-member-remove:hover[b-zk219vn4kb] { color: var(--danger, #EF4444); }

.rc-member-empty[b-zk219vn4kb] {
    padding: 0.75rem 0.9rem;
    font-size: 0.8rem;
    color: var(--b9-text-muted, #64748b);
    font-style: italic;
}

/* Unassigned players */
.rc-unassigned-section[b-zk219vn4kb] {
    border-top: 1px solid var(--b9-border, rgba(148,163,184,0.12));
    padding-top: 1.25rem;
    margin-bottom: 1.25rem;
}

.rc-section-label[b-zk219vn4kb] {
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--b9-text-soft, #94a3b8);
    margin: 0 0 0.75rem;
}

.rc-unassigned-list[b-zk219vn4kb] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rc-unassigned-item[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    padding: 0.5rem 0.75rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.06));
    border-radius: 8px;
}

.rc-all-assigned[b-zk219vn4kb] {
    color: var(--success, #22c55e);
    font-size: 0.875rem;
    margin: 0 0 1.25rem;
}

/* ── Tab 2 — Sessions ───────────────────────────────────────────────────── */

.rc-session-list[b-zk219vn4kb] {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rc-session-item[b-zk219vn4kb] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.06));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.12));
    border-radius: 8px;
    padding: 0.75rem 1rem;
}

.rc-session-summary[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rc-session-number[b-zk219vn4kb] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--b9-text-soft, #94a3b8);
    min-width: 1.5rem;
}

.rc-session-info[b-zk219vn4kb] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.rc-session-name[b-zk219vn4kb] {
    font-weight: 600;
    color: var(--b9-text, #e2e8f0);
    font-size: 0.95rem;
}

.rc-session-meta[b-zk219vn4kb] {
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
}

.rc-session-actions[b-zk219vn4kb] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.rc-session-edit-row[b-zk219vn4kb] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-wrap: wrap;
}

.rc-quick-add[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    padding: 0.75rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.06));
    border-radius: 8px;
    margin-bottom: 1.5rem;
}

.rc-empty-state[b-zk219vn4kb] {
    color: var(--b9-text-soft, #94a3b8);
    font-size: 0.875rem;
    padding: 1.5rem 0;
    font-style: italic;
}

/* ── Tab 3 — Pairings ───────────────────────────────────────────────────── */

.rc-session-tabs[b-zk219vn4kb] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    margin-bottom: 1.25rem;
}

.rc-session-tab[b-zk219vn4kb] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.08));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.2));
    border-radius: 6px;
    padding: 0.4rem 0.85rem;
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
    cursor: pointer;
    transition: all 0.15s;
}

.rc-session-tab--active[b-zk219vn4kb] {
    background: var(--brand-soft, rgba(99,102,241,0.15));
    border-color: rgba(99,102,241,0.4);
    color: var(--b9-primary-text);
}

.rc-pairings-panel[b-zk219vn4kb] {
    border: 1px solid var(--b9-border, rgba(148,163,184,0.15));
    border-radius: 10px;
    padding: 1rem;
    background: var(--bg-surface, rgba(15,23,42,0.3));
}

.rc-pairings-header[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.rc-pairings-header h3[b-zk219vn4kb] {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--b9-text, #e2e8f0);
}

.rc-format-badge[b-zk219vn4kb] {
    background: var(--brand-soft, rgba(99,102,241,0.15));
    color: var(--b9-primary-text);
    border-radius: 5px;
    padding: 0.2rem 0.55rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.rc-format-hint[b-zk219vn4kb] {
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
}

/* Generated matches */
.rc-pairings-generated[b-zk219vn4kb] {}
.rc-pairings-status[b-zk219vn4kb] {
    font-weight: 600;
    color: var(--success, #22c55e);
    margin-bottom: 0.75rem;
    font-size: 0.9rem;
}

.rc-match-list[b-zk219vn4kb] {
    list-style: none;
    margin: 0 0 1rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rc-match-item[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.55rem 0.75rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.06));
    border-radius: 7px;
    flex-wrap: wrap;
}

.rc-match-num[b-zk219vn4kb] {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--b9-text-soft, #94a3b8);
    min-width: 4rem;
}

.rc-match-sides[b-zk219vn4kb] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rc-side-a[b-zk219vn4kb] { color: var(--rc-team-a-color); font-weight: 500; }
.rc-side-b[b-zk219vn4kb] { color: var(--rc-team-b-color); font-weight: 500; }
.rc-match-vs[b-zk219vn4kb] { color: var(--b9-text-muted, #64748b); font-size: 0.8rem; }

.rc-match-status[b-zk219vn4kb] {
    font-size: 0.75rem;
    color: var(--b9-text-soft, #94a3b8);
}

/* Pairing builder */
.rc-pairing-builder[b-zk219vn4kb] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.rc-pairing-row[b-zk219vn4kb] {
    display: grid;
    grid-template-columns: 3.5rem 1fr auto 1fr auto;
    gap: 0.5rem;
    align-items: start;
    padding: 0.75rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.06));
    border: 1px solid var(--b9-border, rgba(148,163,184,0.12));
    border-radius: 8px;
}

@media (max-width: 700px) {
    .rc-pairing-row[b-zk219vn4kb] {
        grid-template-columns: 1fr;
    }
    .rc-pairing-row .rc-vs[b-zk219vn4kb] { text-align: center; }
}

.rc-pairing-num[b-zk219vn4kb] {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--b9-text-soft, #94a3b8);
    padding-top: 0.45rem;
}

.rc-pairing-side[b-zk219vn4kb] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.rc-pairing-team-label[b-zk219vn4kb] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rc-pairing-side--a .rc-pairing-team-label[b-zk219vn4kb] { color: var(--rc-team-a-color); }
.rc-pairing-side--b .rc-pairing-team-label[b-zk219vn4kb] { color: var(--rc-team-b-color); }

.rc-pairing-actions[b-zk219vn4kb] {
    display: flex;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-top: 0.5rem;
}

/* ── Tab 4 — Review ─────────────────────────────────────────────────────── */

.rc-review-list[b-zk219vn4kb] {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.rc-review-item[b-zk219vn4kb] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    border-radius: 7px;
    font-size: 0.9rem;
}

.rc-review--ok[b-zk219vn4kb] {
    background: var(--success-soft, rgba(34,197,94,0.1));
    color: var(--b9-text, #e2e8f0);
}

.rc-review--warn[b-zk219vn4kb] {
    background: var(--warning-soft, rgba(245,158,11,0.1));
    color: var(--b9-text, #e2e8f0);
}

.rc-review-session[b-zk219vn4kb] {
    margin-left: 1.25rem;
    font-size: 0.85rem;
}

.rc-review-all-good[b-zk219vn4kb] {
    background: var(--success-soft, rgba(34,197,94,0.1));
    border: 1px solid rgba(34,197,94,0.25);
    border-radius: 8px;
    padding: 0.85rem 1rem;
    margin-bottom: 1.25rem;
    color: var(--success, #22c55e);
    font-weight: 500;
}

.rc-review-actions[b-zk219vn4kb] {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

/* ── Shared utils ───────────────────────────────────────────────────────── */

.rc-hint[b-zk219vn4kb] {
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
    font-style: italic;
}

.rc-error[b-zk219vn4kb] {
    color: var(--danger, #EF4444);
    font-size: 0.875rem;
    margin: 0.5rem 0 0;
    background: var(--danger-soft, rgba(239,68,68,0.08));
    border-radius: 6px;
    padding: 0.5rem 0.75rem;
}

.rc-tab-nav-btns[b-zk219vn4kb] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.75rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--b9-border, rgba(148,163,184,0.12));
    flex-wrap: wrap;
    gap: 0.5rem;
}
/* /Components/Pages/Events/Scoring.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════
   TOP BAR
══════════════════════════════════════════════════════════════ */

.sc-bar[b-earm9xspjh] {
    position: sticky;
    top: 0;
    z-index: 200;
    background: var(--b9-surface);
    border-bottom: 1px solid var(--b9-border);
    padding: 0 1rem;
    min-height: 56px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.sc-bar-left[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    min-width: 0;
    flex: 1;
}

.sc-back[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    color: var(--b9-text-soft);
    text-decoration: none;
    font-size: 1rem;
    flex-shrink: 0;
    transition: background .15s, color .15s;
}
.sc-back:hover[b-earm9xspjh] { background: var(--b9-surface-muted); color: var(--b9-text); }

.sc-bar-info[b-earm9xspjh] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}
.sc-bar-event[b-earm9xspjh] {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--b9-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 240px;
}
.sc-bar-meta[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.sc-round-badge[b-earm9xspjh] {
    display: inline-block;
    padding: .1rem .45rem;
    border-radius: 6px;
    font-size: .7rem;
    font-weight: 600;
    background: var(--b9-surface-muted);
    color: var(--b9-text-soft);
    white-space: nowrap;
}
.sc-bar-date[b-earm9xspjh] {
    font-size: .75rem;
    color: var(--b9-text-soft);
    white-space: nowrap;
}
.sc-tee-chip[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .75rem;
    color: var(--b9-text-soft);
}
.sc-tee-dot[b-earm9xspjh] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid rgba(0,0,0,.12);
    flex-shrink: 0;
}
.sc-tee-rating[b-earm9xspjh] { font-size: .7rem; color: var(--b9-text-soft); }

/* On phones the sticky bar is tight, so prevent the old overflow-onto-the-banner:
   let the event title wrap to two legible lines instead of a hard one-line clip,
   and keep the meta on one tidy row (Round + Date). There is no room for the tee
   name at phone width and a lone color dot reads as a mystery, so the tee chip is
   hidden here — it still shows on desktop and in the scorecard's yardage row. */
@media (max-width: 480px) {
    .sc-bar-event[b-earm9xspjh] {
        max-width: none;
        white-space: normal;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        line-height: 1.15;
    }
    .sc-bar-meta[b-earm9xspjh] { flex-wrap: nowrap; overflow: hidden; }
    .sc-tee-chip[b-earm9xspjh] { display: none; }
}

.sc-bar-right[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

/* O03 — with the switch labelled and the views named, the controls no longer fit beside a
   two-line title at 390px. They take a full row under it rather than shrinking the words. */
@media (max-width: 767.98px) {
    .sc-bar[b-earm9xspjh] {
        flex-wrap: wrap;
        padding: 0.4rem 1rem 0.5rem;
    }
    .sc-bar-right[b-earm9xspjh] {
        width: 100%;
        justify-content: space-between;
        gap: 0.5rem;
    }
}

/* Save indicator */
.sc-save-indicator[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    font-size: .8125rem;
    font-weight: 500;
    white-space: nowrap;
}
.sc-saving[b-earm9xspjh] { color: var(--b9-text-soft); }
.sc-saved[b-earm9xspjh]  { color: var(--b9-success, #16a34a); }
.sc-save-text[b-earm9xspjh] { display: none; }
@media (min-width: 500px) { .sc-save-text[b-earm9xspjh] { display: inline; } }

/* View toggle — Cards / Table (hidden at desktop) */
.sc-view-toggle[b-earm9xspjh] {
    display: flex;
    background: var(--b9-surface-muted);
    border-radius: 8px;
    padding: 2px;
    gap: 2px;
}
/* O03 — the two views have names, and each is a 48px target (it was a 32×28 icon-only pair). */
.sc-vtbtn[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-width: 48px;
    min-height: 48px;
    padding: 0 0.75rem;
    border: none;
    background: none;
    border-radius: 6px;
    color: var(--b9-text-soft);
    font-size: .875rem;
    cursor: pointer;
    transition: background .12s, color .12s;
}
.sc-vtbtn-active[b-earm9xspjh] {
    background: var(--b9-surface);
    color: var(--b9-text);
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
@media (min-width: 900px) { .sc-view-toggle[b-earm9xspjh] { display: none; } }

/* Custom toggle pill */
.sc-toggle-wrap[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    min-height: 48px;
    cursor: pointer;
}
.sc-toggle-check[b-earm9xspjh] { display: none; }
.sc-toggle-pill[b-earm9xspjh] {
    position: relative;
    display: inline-block;
    width: 40px;
    height: 22px;
    border-radius: 999px;
    transition: background .2s;
    cursor: pointer;
    flex-shrink: 0;
}
.sc-toggle-open[b-earm9xspjh]   { background: var(--b9-success); }
/* Neutral, not red — red is for destructive actions only, and "closed" is the resting state. */
.sc-toggle-closed[b-earm9xspjh] { background: var(--b9-surface-muted); box-shadow: inset 0 0 0 1px var(--b9-border-strong); }
.sc-toggle-thumb[b-earm9xspjh] {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    transition: transform .2s;
    box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.sc-toggle-check:checked ~ .sc-toggle-pill .sc-toggle-thumb[b-earm9xspjh] { transform: translateX(18px); }
/* O03 — always visible, at every width. Was display:none under 480px: the switch had no words on
   the one screen used at the first tee. Reads "Scoring: Closed · Open it". */
.sc-toggle-label[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0 0.3rem;
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
}
.sc-toggle-next[b-earm9xspjh] { color: var(--b9-text-muted); font-weight: 500; }
/* -text variants: the raw status hue as ink on a dark ground measures under AA. */
.sc-label-open  .sc-toggle-state[b-earm9xspjh] { color: var(--b9-success-text); }
.sc-label-closed .sc-toggle-state[b-earm9xspjh] { color: var(--b9-text); }


/* ══════════════════════════════════════════════════════════════
   STATE DISPLAYS
══════════════════════════════════════════════════════════════ */

.sc-state-wrap[b-earm9xspjh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 5rem 1.5rem;
    text-align: center;
}
.sc-state-icon[b-earm9xspjh]    { font-size: 2.5rem; color: var(--b9-border); }
.sc-state-danger[b-earm9xspjh]  { color: var(--b9-danger, #dc2626); }
.sc-state-title[b-earm9xspjh]   { font-size: 1.125rem; font-weight: 700; margin: 0; }
.sc-state-text[b-earm9xspjh]    { color: var(--b9-text-soft); font-size: .9375rem; margin: 0; }

.sc-closed-banner[b-earm9xspjh] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    background: var(--warning-soft);
    border-bottom: 1px solid rgba(251,191,36,0.28);
    color: var(--warning-text);
    font-size: .875rem;
    padding: .625rem 1.25rem;
}

.sc-open-now-btn[b-earm9xspjh] {
    font-size: 0.8rem;
    padding: 0.2rem 0.7rem;
    white-space: nowrap;
}

.sc-vtbtn-label[b-earm9xspjh] {
    display: inline;
    font-size: .875rem;
}

.sc-compact-hcp[b-earm9xspjh] {
    padding: 0.5rem 1rem 0.35rem;
    overflow: visible;
}

.sc-compact-hcp[b-earm9xspjh]  .hcp-summary {
    padding: 0.72rem 0.9rem;
    border-radius: 10px;
    gap: 0.8rem;
    overflow: visible;
}

.sc-compact-hcp[b-earm9xspjh]  .hcp-summary-kicker {
    font-size: 0.78rem;
}

.sc-compact-hcp[b-earm9xspjh]  .hcp-summary-title {
    font-size: 1rem;
    line-height: 1.28;
    white-space: normal;
}

.sc-compact-hcp[b-earm9xspjh]  .hcp-summary-subtitle {
    margin-top: 0.18rem;
    font-size: 0.875rem;
    line-height: 1.35;
    white-space: normal;
}

.sc-compact-hcp[b-earm9xspjh]  .hcp-summary-timing {
    margin-top: 0.2rem;
    font-size: 0.78rem;
    line-height: 1.3;
    white-space: normal;
}



/* ══════════════════════════════════════════════════════════════
   VIEW CONTAINER
══════════════════════════════════════════════════════════════ */

.sc-mobile-view[b-earm9xspjh]  { display: block; }
.sc-desktop-view[b-earm9xspjh] { display: none; }

@media (min-width: 900px) {
    .sc-mobile-view[b-earm9xspjh]  { display: none  !important; }
    .sc-desktop-view[b-earm9xspjh] { display: block !important; }
}

.sc-force-table .sc-mobile-view[b-earm9xspjh]  { display: none  !important; }
.sc-force-table .sc-desktop-view[b-earm9xspjh] { display: block !important; }


/* ══════════════════════════════════════════════════════════════
   PROGRESS STRIP
══════════════════════════════════════════════════════════════ */

.sc-progress[b-earm9xspjh] {
    display: flex;
    flex-direction: column;
    gap: 0.375rem;
    padding: 0.75rem 1rem 0.5rem;
    background: var(--b9-surface);
    border-top: 1px solid var(--b9-border);
    border-bottom: 1px solid var(--b9-border);
}

.sc-progress-row[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    flex-wrap: wrap;
}

.sc-dot[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    font-size: .6875rem;
    font-weight: 700;
    border: 2px solid var(--b9-border);
    background: var(--b9-surface);
    color: var(--b9-text-soft);
    cursor: pointer;
    transition: all .12s;
    flex-shrink: 0;
    padding: 0;
}
.sc-dot:hover[b-earm9xspjh] { border-color: var(--b9-primary); color: var(--b9-primary-text); }

.sc-dot-done[b-earm9xspjh]    { background: var(--success-soft); border-color: rgba(34,197,94,0.45); color: var(--success-text); }
.sc-dot-partial[b-earm9xspjh] { background: var(--warning-soft); border-color: rgba(253,224,71,0.45); color: var(--warning-text); }
.sc-dot-active[b-earm9xspjh]  {
    border-color: var(--b9-primary) !important;
    outline: 2px solid var(--b9-primary);
    outline-offset: 1px;
    color: var(--b9-primary-text) !important;
    font-weight: 800;
}

.sc-nine-label[b-earm9xspjh] {
    font-size: .65rem;
    font-weight: 700;
    color: var(--b9-text-soft);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-left: 0.25rem;
    white-space: nowrap;
}


/* ══════════════════════════════════════════════════════════════
   HOLE HERO
══════════════════════════════════════════════════════════════ */

.sc-hole-hero[b-earm9xspjh] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.25rem 1rem;
    background: var(--b9-surface);
    border-bottom: 1px solid var(--b9-border);
}

.sc-nav-arrow[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    color: var(--b9-text);
    font-size: 1.125rem;
    cursor: pointer;
    transition: background .12s, transform .1s;
    flex-shrink: 0;
}
.sc-nav-arrow:hover:not(:disabled)[b-earm9xspjh] { background: var(--b9-border); }
.sc-nav-arrow:active:not(:disabled)[b-earm9xspjh] { transform: scale(0.93); }
.sc-nav-arrow:disabled[b-earm9xspjh] { opacity: .3; cursor: default; }

.sc-hole-center[b-earm9xspjh] { text-align: center; flex: 1; }
.sc-hole-num[b-earm9xspjh]  { font-size: 1.75rem; font-weight: 800; color: var(--b9-text); line-height: 1; }
.sc-hole-par[b-earm9xspjh]  { font-size: 1rem; font-weight: 600; color: var(--b9-text-soft); margin-top: 0.2rem; }
.sc-hole-aux[b-earm9xspjh]  { display: flex; justify-content: center; gap: 1rem; font-size: .8rem; color: var(--b9-text-soft); margin-top: 0.25rem; }


/* ══════════════════════════════════════════════════════════════
   PLAYER STEPPER CARDS
══════════════════════════════════════════════════════════════ */

/* Player filter */
.sc-filter-wrap[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0.5rem 1rem 0;
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    padding: 0.45rem 0.75rem;
}

.sc-filter-icon[b-earm9xspjh] {
    color: var(--text-muted, #64748b);
    font-size: 0.875rem;
    flex-shrink: 0;
}

.sc-filter-input[b-earm9xspjh] {
    flex: 1;
    background: none;
    border: none;
    outline: none;
    font-size: 0.9rem;
    color: var(--text-primary, #f1f5f9);
    min-width: 0;
}

.sc-filter-input[b-earm9xspjh]::placeholder {
    color: var(--text-muted, #64748b);
}

.sc-filter-clear[b-earm9xspjh] {
    background: none;
    border: none;
    padding: 0;
    color: var(--text-muted, #64748b);
    cursor: pointer;
    line-height: 1;
    font-size: 1rem;
}

.sc-filter-empty[b-earm9xspjh] {
    text-align: center;
    color: var(--text-muted, #64748b);
    font-size: 0.875rem;
    padding: 2rem 1rem;
}

.sc-cards[b-earm9xspjh] {
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sc-card[b-earm9xspjh] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 14px;
    overflow: hidden;
}

.sc-card-player[b-earm9xspjh] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.625rem 1rem;
    background: var(--brand-soft);
    border-bottom: 1px solid var(--b9-border);
}
.sc-card-name[b-earm9xspjh] {
    font-size: .9375rem;
    font-weight: 700;
    color: var(--brand-text);
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sc-card-hcp[b-earm9xspjh] {
    font-size: .75rem;
    font-weight: 600;
    color: var(--brand-text);
    background: rgba(37,99,235,0.2);
    padding: .15rem .45rem;
    border-radius: 5px;
    white-space: nowrap;
    flex-shrink: 0;
    margin-left: .5rem;
}

/* Verify button (desktop table) */
.sc-verify-btn[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-size: .7rem;
    font-weight: 600;
    padding: .15rem .45rem;
    border-radius: 5px;
    border: 1.5px solid currentColor;
    cursor: pointer;
    background: transparent;
    line-height: 1.4;
    white-space: nowrap;
}
.sc-verify-btn.sc-unverified[b-earm9xspjh] {
    color: var(--text-muted);
    border-color: var(--border-default);
}
.sc-verify-btn.sc-unverified:hover[b-earm9xspjh] {
    color: var(--success-text);
    border-color: rgba(34,197,94,0.45);
    background: var(--success-soft);
}
.sc-verify-btn.sc-verified[b-earm9xspjh] {
    color: var(--success-text);
    border-color: rgba(34,197,94,0.38);
    background: var(--success-soft);
}
.sc-verify-btn.sc-verified:hover[b-earm9xspjh] {
    color: var(--danger-text);
    border-color: rgba(239,68,68,0.38);
    background: var(--danger-soft);
}

/* Verified chip (mobile card) */
.sc-verified-chip[b-earm9xspjh] {
    font-size: .8rem;
    color: var(--success-text);
    margin-left: .4rem;
    flex-shrink: 0;
}

/* Player-confirmed chip (mobile card) — the player's own "scores are correct"
   acknowledgement from the guest/QR flow. Info-blue to read as distinct from the
   organizer's green Verified. */
.sc-confirmed-chip[b-earm9xspjh] {
    font-size: .8rem;
    color: var(--info-text);
    margin-left: .4rem;
    flex-shrink: 0;
}

/* Player-confirmed tag (desktop table) — read-only, non-interactive. */
.sc-confirmed-tag[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-size: .68rem;
    font-weight: 600;
    padding: .1rem .4rem;
    margin-top: .25rem;
    border-radius: 5px;
    color: var(--info-text);
    background: var(--info-soft);
    line-height: 1.3;
    white-space: nowrap;
}

.sc-stepper[b-earm9xspjh] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1.25rem;
    padding: 1rem;
}

.sc-step-btn[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: var(--b9-surface-muted);
    border: 1.5px solid var(--b9-border);
    color: var(--b9-text);
    font-size: 1.25rem;
    cursor: pointer;
    transition: background .12s, border-color .12s, transform .1s;
    flex-shrink: 0;
    user-select: none;
    -webkit-user-select: none;
}
.sc-step-btn:hover:not(:disabled)[b-earm9xspjh] {
    border-color: var(--b9-primary);
    color: var(--b9-primary-text);
    background: var(--brand-soft);
}
.sc-step-btn:active:not(:disabled)[b-earm9xspjh] { transform: scale(0.91); }
.sc-step-btn:disabled[b-earm9xspjh] { opacity: .25; cursor: default; }

/* Score badge */
.sc-badge[b-earm9xspjh] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 96px;
    height: 84px;
    border-radius: 16px;
    padding: 0.5rem 1rem;
    transition: background .15s;
}
.sc-badge-num[b-earm9xspjh] {
    font-size: 2.125rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -.03em;
}
.sc-badge-label[b-earm9xspjh] {
    font-size: .625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-top: 3px;
    opacity: .9;
}

.sc-badge-empty[b-earm9xspjh]  { background: var(--b9-surface-muted); border: 2px dashed var(--b9-border); color: var(--b9-text-soft); }
.sc-badge-eagle[b-earm9xspjh]  { background: #6D28D9; color: #fff; }
.sc-badge-birdie[b-earm9xspjh] { background: #DC2626; color: #fff; }
.sc-badge-par[b-earm9xspjh]    { background: var(--b9-surface-muted); color: var(--b9-text); border: 2px solid var(--b9-border); }
.sc-badge-bogey[b-earm9xspjh]  { background: #D97706; color: #fff; }
.sc-badge-double[b-earm9xspjh] { background: #EA580C; color: #fff; }


/* ══════════════════════════════════════════════════════════════
   BOTTOM NAV
══════════════════════════════════════════════════════════════ */

.sc-bottom-nav[b-earm9xspjh] {
    position: sticky;
    bottom: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    padding-bottom: max(0.75rem, env(safe-area-inset-bottom));
    background: var(--b9-surface);
    border-top: 1px solid var(--b9-border);
    box-shadow: 0 -2px 8px rgba(0,0,0,.06);
}

.sc-bnav-btn[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.125rem;
    border-radius: 10px;
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    color: var(--b9-text);
    font-size: .9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s;
}
.sc-bnav-btn:hover:not(:disabled)[b-earm9xspjh] { background: var(--b9-border); }
.sc-bnav-btn:disabled[b-earm9xspjh] { opacity: .3; cursor: default; }

.sc-bnav-label[b-earm9xspjh] { font-size: .875rem; font-weight: 600; color: var(--b9-text-soft); }


/* ══════════════════════════════════════════════════════════════
   DESKTOP SCORECARD TABLE
══════════════════════════════════════════════════════════════ */

.sc-desktop-view[b-earm9xspjh] { padding: 1.5rem 1.25rem 3rem; }

.sc-table-editor-shell[b-earm9xspjh] {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.sc-table-pane[b-earm9xspjh] {
    min-width: 0;
}

@media (min-width: 1240px) {
    .sc-table-editor-shell[b-earm9xspjh] {
        grid-template-columns: minmax(0, 1fr) 340px;
        align-items: start;
    }
}

.sc-focused-editor[b-earm9xspjh] {
    /* R14 — score keys get their own floor, ABOVE the app-wide 48px touch target, because they are
       the most-tapped control in the product. Mirrors ScoreKeyMin in Spacing.xaml (64). Declared on
       the pad itself and read by the pad's own rules: a custom property that is never defined voids
       the whole declaration it sits in, silently, so definition and use stay in one file. */
    --score-key-min: 64px;

    border: 1px solid var(--b9-border);
    border-radius: 12px;
    background: var(--b9-surface);
    padding: 0.9rem;
    box-shadow: 0 8px 24px rgba(2, 8, 23, 0.2);
    position: sticky;
    bottom: 0.75rem;
    z-index: 11;
}

@media (min-width: 1240px) {
    .sc-focused-editor[b-earm9xspjh] {
        top: 4.6rem;
        bottom: auto;
    }
}

.sc-focused-editor:focus-visible[b-earm9xspjh] {
    outline: 2px solid #60a5fa;
    outline-offset: 2px;
}

.sc-editor-header[b-earm9xspjh] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
}

.sc-editor-kicker[b-earm9xspjh] {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-text-soft);
    font-weight: 700;
}

.sc-editor-title[b-earm9xspjh] {
    margin: 0.1rem 0 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--b9-text);
    line-height: 1.2;
}

.sc-editor-meta[b-earm9xspjh] {
    margin-top: 0.45rem;
    color: var(--b9-text-muted);
    font-size: 0.92rem;
    line-height: 1.35;
}

.sc-editor-row[b-earm9xspjh] {
    margin-top: 0.65rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.sc-editor-chip[b-earm9xspjh] {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--b9-border);
    border-radius: 999px;
    padding: 0.26rem 0.56rem;
    font-size: 0.82rem;
    color: var(--b9-text-muted);
    background: var(--b9-surface-muted);
    font-weight: 600;
}

.sc-editor-current-score-wrap[b-earm9xspjh] {
    margin-top: 0.72rem;
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    background: rgba(30, 64, 175, 0.12);
    padding: 0.62rem 0.72rem;
}

.sc-editor-current-label[b-earm9xspjh] {
    font-size: 0.8rem;
    color: var(--b9-text-soft);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-weight: 700;
}

.sc-editor-current-score[b-earm9xspjh] {
    margin-top: 0.2rem;
    font-size: 1.7rem;
    line-height: 1.05;
    color: #f8fafc;
    font-weight: 800;
}

.sc-editor-score-grid[b-earm9xspjh] {
    margin-top: 0.72rem;
    display: grid;
    /* Three across, so 1-9 fall in the same three rows the phone's keypad uses and the overflow key
       gets its own full-width row underneath. Bigger keys in a TIGHT grid: wide gutters measurably
       slow older adults down, so the gap stays where it was. */
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.45rem;
}

.sc-editor-score-btn[b-earm9xspjh] {
    min-height: var(--score-key-min);
    border-radius: 10px;
    border: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
    color: var(--b9-text);
    font-size: 1.25rem;
    font-weight: 700;
    transition: border-color .12s, background .12s;
}

/* "10 or more", not a bare chevron or a plus sign: the overflow key is the one control on this pad
   whose meaning is not the numeral printed on it, so it says what it does. Full width, its own row,
   and the SAME 64px floor as every other key. */
.sc-editor-score-more[b-earm9xspjh] {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

.sc-editor-more-num[b-earm9xspjh] {
    font-size: 1.25rem;
    font-weight: 700;
}

.sc-editor-more-word[b-earm9xspjh] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--b9-text-muted);
}

.sc-editor-score-btn:hover:not(:disabled)[b-earm9xspjh],
.sc-editor-score-btn:focus-visible[b-earm9xspjh] {
    border-color: #60a5fa;
    background: rgba(59, 130, 246, 0.18);
}

.sc-editor-score-btn:disabled[b-earm9xspjh] {
    opacity: 0.55;
}

.sc-editor-controls[b-earm9xspjh] {
    margin-top: 0.72rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.45rem;
}

.sc-editor-action[b-earm9xspjh] {
    min-height: 48px;
    border-radius: 10px;
    border: 1px solid var(--b9-border);
    background: var(--b9-surface);
    color: var(--b9-text);
    font-size: 1rem;
    font-weight: 600;
}

.sc-editor-next[b-earm9xspjh] {
    background: rgba(22, 101, 52, 0.18);
    border-color: rgba(34, 197, 94, 0.4);
}

.sc-table-card[b-earm9xspjh] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    overflow: hidden;
}

.scorecard-wrapper[b-earm9xspjh] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

table.scorecard[b-earm9xspjh] {
    border-collapse: collapse;
    min-width: 800px;
    width: 100%;
    font-size: 0.875rem;
}
table.scorecard th[b-earm9xspjh],
table.scorecard td[b-earm9xspjh] {
    text-align: center;
    padding: 0;
    border: 1px solid var(--b9-border);
    white-space: nowrap;
}

.col-player[b-earm9xspjh] {
    position: sticky;
    left: 0;
    z-index: 4;
    min-width: 155px;
    max-width: 155px;
    text-align: left !important;
    padding: 0.4rem 0.65rem;
    background: var(--b9-surface);
    border-right: 2px solid var(--b9-text-soft) !important;
}
.sc-team-player-cell[b-earm9xspjh] {
    background: var(--b9-surface) !important;
}
.sc-team-name[b-earm9xspjh] {
    color: #e0e7ff !important;
    font-weight: 700 !important;
}
.sc-team-players[b-earm9xspjh] {
    color: #cbd5e1 !important;
    font-size: 0.875rem !important;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 148px;
}

.sc-team-meta[b-earm9xspjh] {
    font-size: 0.875rem !important;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 148px;
}

.sc-player-meta[b-earm9xspjh] {
    font-size: 0.84rem !important;
    line-height: 1.3;
}
.col-hole[b-earm9xspjh]     { min-width: 42px; width: 42px; }
.col-subtotal[b-earm9xspjh] {
    min-width: 50px;
    width: 50px;
    padding: 0.4rem 0.35rem;
    background: var(--b9-surface-muted);
    color: var(--b9-text);
    font-weight: 700;
    font-size: 1rem;
}
.sep-left[b-earm9xspjh] { border-left: 2px solid var(--b9-text-soft) !important; }

tr.row-holes th[b-earm9xspjh] {
    height: 30px;
    font-size: 0.95rem;
    font-weight: 700;
    background: #1E293B;
    color: #fff;
    padding: 0.3rem 0.25rem;
}
tr.row-holes .col-player[b-earm9xspjh] {
    background: #1E293B;
    color: #fff;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}
tr.row-yardage td[b-earm9xspjh] {
    font-size: 0.7rem;
    font-weight: 500;
    color: #94a3b8;
    background: #2d3748;
    padding: 0.2rem 0.3rem;
}
tr.row-yardage .col-player[b-earm9xspjh] { background: #2d3748; font-weight: 500; }
tr.row-par td[b-earm9xspjh] {
    font-size: 0.95rem;
    font-weight: 700;
    background: var(--bg-raised);
    color: var(--text-primary);
    padding: 0.3rem 0.25rem;
}
tr.row-par .col-player[b-earm9xspjh] { background: var(--bg-raised); }

.scorecard td.col-subtotal.text-dark[b-earm9xspjh] {
    color: var(--b9-text) !important;
}

.scorecard td.col-subtotal.text-muted[b-earm9xspjh] {
    color: color-mix(in srgb, var(--b9-text) 78%, #94a3b8) !important;
    opacity: 1;
}

.score-cell[b-earm9xspjh] { padding: 0; }

.score-cell.sc-cell-selected[b-earm9xspjh] {
    position: relative;
    box-shadow: inset 0 0 0 2px #60a5fa;
}

.score-input[b-earm9xspjh] {
    display: block;
    width: 100%;
    height: 44px;
    border: none;
    text-align: center;
    font-size: 1rem;
    font-weight: 700;
    background: transparent;
    color: #f8fafc;
    cursor: pointer;
    -moz-appearance: textfield;
}
.score-input[b-earm9xspjh]::-webkit-outer-spin-button,
.score-input[b-earm9xspjh]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.score-input:focus[b-earm9xspjh] {
    outline: 2px solid transparent;
    box-shadow: inset 0 0 0 2px #60a5fa;
    outline-offset: 0;
    border-radius: 2px;
    background: transparent;
    position: relative;
    z-index: 1;
}
.score-input:disabled[b-earm9xspjh] { cursor: default; color: var(--b9-text-soft); }

td.sc-eagle[b-earm9xspjh]  { background: rgba(109,40,217,0.22); }
td.sc-eagle .score-input[b-earm9xspjh]  { color: #DDD6FE; font-weight: 700; }
td.sc-birdie[b-earm9xspjh] { background: rgba(220,38,38,0.22); }
td.sc-birdie .score-input[b-earm9xspjh] { color: #FECACA; font-weight: 700; }
td.sc-par[b-earm9xspjh] { background: rgba(15, 23, 42, 0.45); }
td.sc-par .score-input[b-earm9xspjh] { color: #f8fafc; font-weight: 700; }
td.sc-bogey[b-earm9xspjh]  { background: rgba(217,119,6,0.22); }
td.sc-bogey .score-input[b-earm9xspjh]  { color: #FDE68A; font-weight: 700; }
td.sc-double[b-earm9xspjh] { background: rgba(234,88,12,0.22); }
td.sc-double .score-input[b-earm9xspjh] { color: #FED7AA; font-weight: 700; }

.legend-chip[b-earm9xspjh] {
    display: inline-block;
    padding: 0.2rem 0.55rem;
    border-radius: 5px;
    font-size: 0.75rem;
    font-weight: 600;
    border: 1px solid rgba(0,0,0,.08);
}
span.sc-eagle[b-earm9xspjh]  { background: rgba(109,40,217,0.20); color: #DDD6FE; }
span.sc-birdie[b-earm9xspjh] { background: rgba(220,38,38,0.20); color: #FECACA; }
span.sc-par[b-earm9xspjh]    { background: var(--b9-surface-muted); color: var(--b9-text); }
span.sc-bogey[b-earm9xspjh]  { background: rgba(217,119,6,0.20); color: #FDE68A; }
span.sc-double[b-earm9xspjh] { background: rgba(234,88,12,0.20); color: #FED7AA; }

/* ══════════════════════════════════════════════════════════════
   ON-COURSE CONTESTS PANEL
══════════════════════════════════════════════════════════════ */

.sc-contests-panel[b-earm9xspjh] {
    margin: 1.25rem 0 0;
    border: 1px solid var(--b9-border);
    border-radius: 14px;
    overflow: hidden;
}

.sc-contests-panel-header[b-earm9xspjh] {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    background: var(--b9-surface);
    border-bottom: 1px solid var(--b9-border);
    font-weight: 700;
    font-size: 0.95rem;
}

.sc-contest-block[b-earm9xspjh] {
    padding: 0.875rem 1rem;
    border-bottom: 1px solid var(--b9-border);
    background: var(--b9-bg);
}
.sc-contest-block:last-child[b-earm9xspjh] { border-bottom: none; }

.sc-contest-block-head[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.sc-contest-block-name[b-earm9xspjh] {
    font-weight: 700;
    font-size: 0.9rem;
}

.sc-cstatus-pill[b-earm9xspjh] {
    display: inline-block;
    padding: 0.15em 0.6em;
    border-radius: 9999px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.sc-cstatus-open[b-earm9xspjh]   { background: var(--success-soft); color: var(--success-text); }
.sc-cstatus-locked[b-earm9xspjh] { background: var(--warning-soft); color: var(--warning-text); }
.sc-cstatus-final[b-earm9xspjh]  { background: rgba(109,40,217,0.16); color: #c4b5fd; }
.sc-cstatus-draft[b-earm9xspjh]  { background: var(--b9-surface-muted); color: var(--b9-text-soft); }

/* Sits where the hole numbers would be, for a contest saved before a hole was required. */
.sc-contest-nohole[b-earm9xspjh] {
    color: var(--warning-text);
    font-weight: 500;
}

.sc-contest-entries[b-earm9xspjh] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.sc-contest-entry-row[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.sc-centry-name[b-earm9xspjh] {
    min-width: 130px;
    font-size: 0.875rem;
    font-weight: 600;
}

.sc-centry-input-wrap[b-earm9xspjh] {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.sc-centry-input[b-earm9xspjh] {
    width: 80px;
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--b9-border);
    border-radius: 8px;
    background: var(--b9-surface);
    color: var(--b9-text);
    font-size: 0.875rem;
}

.sc-centry-unit[b-earm9xspjh] {
    padding: 0.3rem 0.5rem;
    border: 1px solid var(--b9-border);
    border-radius: 8px;
    background: var(--b9-surface);
    color: var(--b9-text);
    font-size: 0.8rem;
}

.sc-centry-save[b-earm9xspjh] {
    font-size: 0.8rem;
    padding: 0.25rem 0.6rem;
}

/* Info callout — dark-safe replacement for alert-light */
.sc-info-callout[b-earm9xspjh] {
    border: 1px solid var(--border-subtle, #334155);
    border-radius: 0.375rem;
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
}

html[data-theme="light"] .sc-info-callout[b-earm9xspjh] {
    background: #f8fafc;
    border-color: #e2e8f0;
    color: #1f2937;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.sc-yardage-label[b-earm9xspjh] { font-size: .7rem; }
.sc-name-clamp[b-earm9xspjh] { max-width: 140px; }
.sc-team-name[b-earm9xspjh] { max-width: 160px; }
/* /Components/Pages/Events/Sponsors.razor.rz.scp.css */
/* Public sponsors page. Design-token colours only; dark-theme safe; no horizontal overflow at 375px. */

.spon-page[b-2bo0e9s3z8] {
    max-width: 940px;
    margin-inline: auto;
    padding: 1.5rem 1rem 4rem;
    color: var(--b9-text);
}

.spon-head[b-2bo0e9s3z8] {
    text-align: center;
    padding-bottom: 1.25rem;
    margin-bottom: 1.75rem;
    border-bottom: 1px solid var(--b9-border);
}

.spon-title[b-2bo0e9s3z8] {
    font-size: clamp(1.6rem, 5vw, 2.4rem);
    font-weight: 800;
    margin: 0;
    text-wrap: balance;
}

.spon-event[b-2bo0e9s3z8] {
    margin: 0.4rem 0 0;
    color: var(--b9-text-muted);
    font-size: 1rem;
}

.spon-thanks[b-2bo0e9s3z8] {
    margin: 0.9rem 0 0;
    color: var(--b9-text-soft);
    font-size: 0.95rem;
}

.spon-section[b-2bo0e9s3z8] { margin-bottom: 2.5rem; }

.spon-section-title[b-2bo0e9s3z8] {
    font-size: 0.78rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--b9-primary-text);
    margin: 0 0 1rem;
}

/* ── Tee-box cards ───────────────────────────────────────────────── */
.spon-cards[b-2bo0e9s3z8] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
}

.spon-card[b-2bo0e9s3z8] {
    background: var(--b9-surface-alt);
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    padding: 0.75rem 0.6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    text-align: center;
    min-width: 0;
}

.spon-card-hole[b-2bo0e9s3z8] {
    font-size: 0.62rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--b9-primary-text);
}

/* Sized here so a logo and a nameplate occupy the same box — see SponsorMark.razor.

   ::deep is REQUIRED, not stylistic. The mark is rendered by the shared <SponsorMark /> child
   component, so its element never receives THIS component's b-* scope attribute; a plain
   `.spon-card-mark { }` rule silently matches nothing and the logo falls back to its natural
   size. `.spon-card ::deep` compiles to `.spon-card[b-xxxx] .spon-card-mark`, which matches
   because `.spon-card` IS in this component's own markup. */
.spon-card[b-2bo0e9s3z8]  .spon-card-mark {
    width: 100%;
    height: 54px;
    max-width: 100%;
    object-fit: contain;
    background: #fff;
    border-radius: 8px;
    padding: 4px;
}

.spon-card-name[b-2bo0e9s3z8] {
    font-size: 0.76rem;
    font-weight: 600;
    color: var(--b9-text-muted);
    line-height: 1.3;
    overflow-wrap: anywhere;
}

/* ── The roll ────────────────────────────────────────────────────── */
.spon-roll[b-2bo0e9s3z8] {
    columns: 3 200px;
    column-gap: 1.75rem;
    list-style: none;
    margin: 0;
    padding: 0;
}

.spon-roll-name[b-2bo0e9s3z8] {
    break-inside: avoid;
    padding: 0.32rem 0;
    border-bottom: 1px solid var(--b9-border);
    font-size: 0.92rem;
    line-height: 1.4;
    color: var(--b9-text-muted);
    overflow-wrap: anywhere;
}

.spon-empty[b-2bo0e9s3z8] {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--b9-text-soft);
}

@media (max-width: 480px) {
    .spon-roll[b-2bo0e9s3z8] { columns: 1; }
    .spon-cards[b-2bo0e9s3z8] { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}
/* /Components/Pages/Events/TeeSheet.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   SCREEN NAV BAR
═══════════════════════════════════════════════════════════ */
.ts-bar[b-ddb18bdqei] {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--bg-elevated);
    border-bottom: 1px solid var(--border-default);
    padding: 0.6rem 1.25rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem;
    min-height: 52px;
}

.ts-bar-left[b-ddb18bdqei] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-width: 0;
    flex: 1;
}

.ts-bar-right[b-ddb18bdqei] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════════════════════
   TEE SHEET PAGE WRAPPER
═══════════════════════════════════════════════════════════ */
.ts-page[b-ddb18bdqei] {
    max-width: 1100px;
    margin: 1.5rem auto;
    padding: 0 1rem;
    font-family: 'Segoe UI', system-ui, sans-serif;
}

/* ── Event header ── */
.ts-header[b-ddb18bdqei] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
}

.ts-event-title[b-ddb18bdqei] {
    font-size: 1.75rem;
    font-weight: 800;
    margin: 0 0 0.15rem;
    line-height: 1.2;
}

.ts-event-sub[b-ddb18bdqei] {
    color: var(--text-muted);
    margin: 0;
    font-size: 0.9rem;
}

.ts-header-meta[b-ddb18bdqei] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
}

.ts-meta-item[b-ddb18bdqei] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.ts-meta-label[b-ddb18bdqei] {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--text-muted);
    font-weight: 700;
}

.ts-meta-value[b-ddb18bdqei] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 5px;
}

.ts-meta-sub[b-ddb18bdqei] {
    font-weight: 400;
    color: var(--text-muted);
}

.ts-tee-dot[b-ddb18bdqei] {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.ts-divider[b-ddb18bdqei] {
    border-top: 2px solid #212529;
    margin-bottom: 1.25rem;
}

.ts-dot[b-ddb18bdqei] {
    margin: 0 0.3rem;
    color: #adb5bd;
}

/* ── Time section headers ── */
.ts-time-header[b-ddb18bdqei] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border-default);
    padding-bottom: 0.3rem;
    margin: 1rem 0 0.6rem;
}

/* ── Group row ── */
.ts-groups[b-ddb18bdqei] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ts-group-row[b-ddb18bdqei] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

/* ── Single group card ── */
.ts-group[b-ddb18bdqei] {
    border: 1.5px solid var(--border-default);
    border-radius: 10px;
    overflow: hidden;
    background: var(--bg-elevated);
    break-inside: avoid;
}

.ts-group-header[b-ddb18bdqei] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0.7rem;
    background: #212529;
    color: #fff;
}

.ts-group-meta[b-ddb18bdqei] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.ts-group-num[b-ddb18bdqei] {
    font-weight: 700;
    font-size: 0.8rem;
}

.ts-group-hole[b-ddb18bdqei] {
    font-size: 0.72rem;
    background: rgba(255,255,255,.15);
    border-radius: 20px;
    padding: 1px 8px;
}

.ts-group-time[b-ddb18bdqei] {
    font-size: 0.82rem;
    font-weight: 700;
    color: #ffc107;
}

.ts-group-note[b-ddb18bdqei] {
    font-size: 0.72rem;
    color: var(--warning-text);
    background: var(--warning-soft);
    padding: 3px 10px;
    border-bottom: 1px solid rgba(251,191,36,0.22);
    font-style: italic;
}

/* ── Players list ── */
.ts-players[b-ddb18bdqei] {
    padding: 0.35rem 0.6rem;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.ts-player[b-ddb18bdqei] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.3rem 0.25rem;
    border-bottom: 1px solid var(--border-default);
    gap: 0.5rem;
    min-height: 28px;
}

.ts-player:last-child[b-ddb18bdqei] {
    border-bottom: none;
}

.ts-player-name[b-ddb18bdqei] {
    font-size: 0.875rem;
    font-weight: 500;
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ts-player-hcp[b-ddb18bdqei] {
    font-size: 0.72rem;
    font-weight: 700;
    background: var(--bg-raised);
    color: var(--text-muted);
    border-radius: 20px;
    padding: 1px 7px;
    flex-shrink: 0;
}

.ts-hcp-idx[b-ddb18bdqei] {
    background: rgba(13,148,136,0.16);
    color: #5eead4;
}

.ts-hcp-none[b-ddb18bdqei] {
    background: transparent;
    color: var(--text-muted);
}

.ts-player-empty[b-ddb18bdqei] {
    color: var(--text-muted);
}

.ts-player-blank .ts-blank-line[b-ddb18bdqei] {
    display: block;
    width: 100%;
    height: 1px;
    background: var(--border-default);
    border-radius: 2px;
}

/* ── Print score grid (hidden on screen, shown on print) ── */
.ts-score-grid[b-ddb18bdqei] {
    border-top: 1px solid #dee2e6;
    font-size: 0.65rem;
    display: none;
}

.ts-score-row[b-ddb18bdqei] {
    display: grid;
    grid-template-columns: repeat(9, 1fr) 1.4fr repeat(9, 1fr) 1.4fr 1.4fr;
    text-align: center;
    border-bottom: 1px solid #dee2e6;
}

.ts-score-row > div[b-ddb18bdqei] {
    padding: 2px 0;
    border-right: 1px solid #dee2e6;
}

.ts-score-row > div:last-child[b-ddb18bdqei] {
    border-right: none;
}

.ts-score-header[b-ddb18bdqei] {
    background: #f8f9fa;
    font-weight: 700;
    color: #6c757d;
}

.ts-score-entry > div[b-ddb18bdqei] {
    height: 16px;
}

.ts-score-out[b-ddb18bdqei] {
    background: #f3f4f6;
    font-weight: 700;
}

/* ── Footer ── */
.ts-footer[b-ddb18bdqei] {
    margin-top: 2rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-default);
    font-size: 0.75rem;
    color: var(--text-muted);
    text-align: center;
}

/* ═══════════════════════════════════════════════════════════
   PRINT STYLES
═══════════════════════════════════════════════════════════ */
@media print {
    .no-print[b-ddb18bdqei] { display: none !important; }

    .ts-page[b-ddb18bdqei] {
        margin: 0;
        padding: 0.5cm 0.75cm;
        max-width: none;
    }

    .ts-bar[b-ddb18bdqei] { display: none !important; }

    .ts-event-title[b-ddb18bdqei] { font-size: 1.4rem; }

    .ts-group[b-ddb18bdqei] {
        border: 1px solid #333;
        border-radius: 4px;
    }

    .ts-group-header[b-ddb18bdqei] {
        background: #333 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .ts-group-row[b-ddb18bdqei] {
        grid-template-columns: repeat(3, 1fr);
        break-inside: avoid;
    }

    /* Keep time header with its groups — never orphan a header at page bottom */
    .ts-time-header[b-ddb18bdqei] {
        break-after: avoid;
    }

    /* Show the score tracking grid on print */
    .ts-score-grid[b-ddb18bdqei] {
        display: block;
    }

    .ts-footer[b-ddb18bdqei] {
        font-size: 0.65rem;
    }
}

/* ── Responsive: stack on small screens ── */
@media (max-width: 575px) {
    .ts-group-row[b-ddb18bdqei] {
        grid-template-columns: 1fr;
    }

    .ts-header[b-ddb18bdqei] {
        flex-direction: column;
    }

    .ts-score-grid[b-ddb18bdqei] {
        font-size: 0.55rem;
    }
}

/* Withdrew after the draw. Marked rather than removed, so the on-screen sheet matches the printed
   one already in the starter's hand. Uses tokens, and the "WD" text carries the meaning on its own
   so nothing depends on colour alone. */
.ts-player-wd .ts-player-name[b-ddb18bdqei] { color: var(--b9-text-muted, #6B7280); }

.ts-player-wd-badge[b-ddb18bdqei] {
    display: inline-block;
    margin-left: .35rem;
    padding: 0 .28rem;
    border: 1px solid var(--b9-border, #6B7280);
    border-radius: 3px;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: var(--b9-text-muted, #6B7280);
    vertical-align: 1px;
}
/* /Components/Pages/GuestScore.razor.rz.scp.css */
/* ── GuestScore.razor.css
   QR Guest Scoring page — /s/{token}
   All design tokens. Dark-first. Mobile-first (390px baseline).
   Touch targets ≥ 56px. No hardcoded hex.
   ─────────────────────────────────────────────────────────────── */

/* ── Loading ─────────────────────────────────────────────────── */
.gs-loading[b-he383av14i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    gap: 1rem;
    color: var(--text-muted, #94a3b8);
}

.gs-spinner[b-he383av14i] {
    width: 40px;
    height: 40px;
    border: 3px solid var(--b9-surface-muted, #1e293b);
    border-top-color: var(--brand, #22c55e);
    border-radius: 50%;
    animation: gs-spin-b-he383av14i 0.8s linear infinite;
}

@keyframes gs-spin-b-he383av14i { to { transform: rotate(360deg); } }

/* ── Error ───────────────────────────────────────────────────── */
.gs-error-shell[b-he383av14i] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    padding: 1.5rem;
}

.gs-error-card[b-he383av14i] {
    background: var(--b9-surface, #0f172a);
    border: 1px solid var(--danger-soft, rgba(239,68,68,.2));
    border-radius: 16px;
    padding: 2rem 1.5rem;
    max-width: 420px;
    width: 100%;
    text-align: center;
}

.gs-error-icon[b-he383av14i] { font-size: 2.5rem; display: block; margin-bottom: .75rem; }
.gs-error-title[b-he383av14i] { font-size: 1.25rem; font-weight: 700; margin: 0 0 .5rem; }
.gs-error-msg[b-he383av14i] { color: var(--danger, #ef4444); margin: 0 0 .75rem; }
.gs-error-hint[b-he383av14i] { font-size: .875rem; color: var(--text-muted, #94a3b8); margin: 0; }

/* ── Confirmation screen ─────────────────────────────────────── */
.gs-confirm-shell[b-he383av14i] {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 1.5rem 1rem 3rem;
    min-height: 60vh;
}

.gs-confirm-card[b-he383av14i] {
    background: var(--b9-surface, #0f172a);
    border: 1px solid var(--b9-border, #1e293b);
    border-radius: 20px;
    padding: 2rem 1.5rem;
    max-width: 460px;
    width: 100%;
}

/* This is the page's <h1>. Every value the browser would otherwise supply for a heading —
   font-size, weight, margins — is set here, so promoting the tag changed the markup and not
   one pixel of the card. */
.gs-event-name[b-he383av14i] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-muted, #94a3b8);
    letter-spacing: .04em;
    text-transform: uppercase;
    margin: 0 0 1.25rem;
}

/* Optional event branding on the scoring lobby (cosmetic, fail-soft) */
.gs-brand-photo[b-he383av14i] {
    display: block;
    width: 100%;
    max-height: 120px;
    object-fit: contain;
    margin: 0 auto .75rem;
    border-radius: .6rem;
}
.gs-brand-sponsor[b-he383av14i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .3rem;
    margin: -.5rem 0 1rem;
}
.gs-brand-presented[b-he383av14i] {
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--text-muted, #94a3b8);
}
.gs-brand-sponsor-logo[b-he383av14i] {
    max-height: 38px;
    max-width: 160px;
    object-fit: contain;
}
.gs-brand-sponsor-name[b-he383av14i] {
    font-size: .95rem;
    font-weight: 700;
    color: var(--text-primary, #e8eef6);
}

.gs-player-block[b-he383av14i] {
    background: var(--bg-elevated, #1e293b);
    border-radius: 12px;
    padding: 1.25rem;
    margin-bottom: 1.5rem;
}

.gs-player-label[b-he383av14i] {
    font-size: .8125rem;
    color: var(--text-muted, #94a3b8);
    margin-bottom: .25rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.gs-player-name[b-he383av14i] {
    font-size: 1.625rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin-bottom: .75rem;
}

/* G04: the line under an unnamed seat — what it is, and who can name it. */
.gs-seat-note[b-he383av14i] {
    font-size: .9375rem;
    color: var(--text-secondary, #cbd5e1);
    margin: -.25rem 0 .75rem;
    line-height: 1.45;
}

.gs-team-block[b-he383av14i] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin-top: .75rem;
}

.gs-team-badge[b-he383av14i] {
    background: var(--brand-soft, rgba(34,197,94,.15));
    /* G04: the brand FILL as ink measured 2.39:1 on this chip. The -text variant is the readable one. */
    color: var(--b9-primary-text);
    font-size: .75rem;
    font-weight: 600;
    padding: .2rem .6rem;
    border-radius: 99px;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.gs-team-name[b-he383av14i] {
    font-size: .9375rem;
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
}

.gs-teammates[b-he383av14i] {
    width: 100%;
    font-size: .8125rem;
    color: var(--text-muted, #94a3b8);
    margin-top: .25rem;
}

.gs-scoring-note[b-he383av14i] {
    margin-top: .75rem;
    font-size: .875rem;
    color: var(--text-secondary, #cbd5e1);
    background: var(--b9-surface, #0f172a);
    border-left: 3px solid var(--brand, #22c55e);
    padding: .625rem .75rem;
    border-radius: 0 8px 8px 0;
}

/* The one message a golfer standing on the first tee with a QR code might get instead of a
   scorecard, and in light it was the warning FILL written on the warning TINT: 2.73:1. The -text
   twin answers the other question — what this colour can BE as writing — and reads 5.85:1 on the
   same banner in light, 9.85:1 in dark. Nothing about the banner's colour changes. */
.gs-closed-banner[b-he383av14i] {
    background: var(--warning-soft, rgba(245,158,11,.12));
    color: var(--warning-text, #fcd34d);
    border: 1px solid var(--warning-soft, rgba(245,158,11,.2));
    border-radius: 10px;
    padding: .75rem 1rem;
    font-size: .875rem;
    font-weight: 500;
    margin-bottom: 1.25rem;
    text-align: center;
}

.gs-start-btn[b-he383av14i] {
    display: block;
    width: 100%;
    min-height: 60px;
    background: var(--brand, #22c55e);
    /* G04: black on brand blue measured 3.13:1. White ink reads 6.7:1 on it, in both themes. */
    color: var(--player-text-inverse);
    font-size: 1.125rem;
    font-weight: 700;
    border: none;
    border-radius: 14px;
    cursor: pointer;
    transition: opacity .15s;
    margin-bottom: .875rem;
}

.gs-start-btn:hover:not(:disabled)[b-he383av14i] { opacity: .88; }
/* G04: a blanket opacity faded the ink AND the fill together, so white-on-blue measured 6.7:1 in
   the stylesheet and about 3.0:1 on the glass — and that faded button is exactly what a stranger
   meets, because the page a QR opens before the organizer starts scoring shows the disabled state.
   A disabled button gets its own colours instead; nothing here is see-through, so what is measured
   is what is seen. */
.gs-start-btn:disabled[b-he383av14i] {
    background: var(--b9-surface-muted);
    color: var(--text-secondary);
    border: 1px solid var(--border-default);
    cursor: not-allowed;
}

.gs-not-you[b-he383av14i] {
    text-align: center;
    font-size: .8125rem;
    color: var(--text-muted, #94a3b8);
    margin: 0;
}

/* ── Cart-sign roster picker ─────────────────────────────────── */
.gs-roster-prompt[b-he383av14i] {
    text-align: center;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin: .5rem 0 .25rem;
}

.gs-roster-start[b-he383av14i] {
    text-align: center;
    font-size: .9375rem;
    color: var(--text-muted, #94a3b8);
    margin-bottom: 1rem;
}

.gs-roster-list[b-he383av14i] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    margin-bottom: 1rem;
}

.gs-roster-btn[b-he383av14i] {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 64px;
    padding: .75rem 1rem;
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
    font-size: 1.125rem;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    border: 2px solid var(--brand-soft, rgba(34,197,94,.35));
    border-radius: 14px;
    transition: background .15s, border-color .15s;
}

.gs-roster-btn:hover[b-he383av14i],
.gs-roster-btn:active[b-he383av14i] {
    background: var(--brand-soft, rgba(34,197,94,.15));
    border-color: var(--brand, #22c55e);
    color: var(--text-primary, #f1f5f9);
}

/* ── Score screen ────────────────────────────────────────────── */
.gs-score-shell[b-he383av14i] {
    padding: 0 0 4rem;
    max-width: 420px;
    margin: 0 auto;
}

.gs-score-header[b-he383av14i] {
    background: var(--b9-surface, #0f172a);
    border-bottom: 1px solid var(--b9-border, #1e293b);
    padding: .875rem 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .125rem;
}

/* The <h1> on the hole-entry screen. Same reasoning as .gs-event-name: the heading's own
   font-size and weight were already declared, and the margin reset keeps the header's flex gap
   the only spacing between the event name and the scorer's name. */
.gs-score-event[b-he383av14i] {
    font-size: .8125rem;
    color: var(--text-muted, #94a3b8);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin: 0;
}

.gs-score-player[b-he383av14i] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
}

.gs-team-context-bar[b-he383av14i] {
    background: var(--brand-soft, rgba(34,197,94,.1));
    color: var(--b9-primary-text);
    font-size: .8125rem;
    padding: .5rem 1.25rem;
    border-bottom: 1px solid var(--brand-soft, rgba(34,197,94,.15));
}

.gs-scoring-closed[b-he383av14i] {
    background: var(--warning-soft, rgba(245,158,11,.1));
    color: var(--warning, #f59e0b);
    font-size: .875rem;
    padding: .625rem 1.25rem;
    text-align: center;
    border-bottom: 1px solid var(--warning-soft, rgba(245,158,11,.15));
}

/* ── Hole entry section ──────────────────────────────────────── */
.gs-hole-section[b-he383av14i] {
    padding: 1.25rem 1.25rem .5rem;
}

.gs-hole-title[b-he383av14i] {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: 1rem;
}

.gs-hole-num[b-he383av14i] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
}

.gs-par-tag[b-he383av14i],
.gs-si-tag[b-he383av14i] {
    background: var(--bg-elevated, #1e293b);
    color: var(--text-muted, #94a3b8);
    font-size: .75rem;
    font-weight: 600;
    padding: .2rem .6rem;
    border-radius: 99px;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.gs-saved-feedback[b-he383av14i] {
    text-align: center;
    color: var(--success, #22c55e);
    font-weight: 600;
    font-size: .9375rem;
    margin-bottom: .75rem;
    animation: gs-fade-in-b-he383av14i .2s ease;
}

.gs-save-error[b-he383av14i] {
    text-align: center;
    color: var(--danger, #ef4444);
    font-size: .875rem;
    margin-bottom: .75rem;
    background: var(--danger-soft, rgba(239,68,68,.1));
    border-radius: 8px;
    padding: .5rem .75rem;
}

.gs-already-saved[b-he383av14i] {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .875rem;
    color: var(--text-secondary, #cbd5e1);
    margin-bottom: .75rem;
    background: var(--bg-elevated, #1e293b);
    border-radius: 8px;
    padding: .5rem .875rem;
}

.gs-change-btn[b-he383av14i] {
    margin-left: auto;
    background: none;
    border: 1px solid var(--b9-border, #334155);
    color: var(--b9-primary-text);
    font-size: .8125rem;
    font-weight: 600;
    padding: .25rem .625rem;
    border-radius: 6px;
    cursor: pointer;
}

.gs-change-btn:hover[b-he383av14i] { background: var(--brand-soft, rgba(34,197,94,.1)); }

/* ── Selected-score readout ──────────────────────────────────── */
.gs-score-readout[b-he383av14i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .15rem;
    margin: .25rem 0 1rem;
}

.gs-score-readout-num[b-he383av14i] {
    position: relative;
    font-size: 3.25rem;
    font-weight: 700;
    line-height: 1;
    color: var(--text-primary, #f1f5f9);
    padding: .15rem .55rem;
}

.gs-score-readout-label[b-he383av14i] {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--b9-primary-text);
    text-transform: uppercase;
}

/* Read-only readout (finalized or scoring closed): calm, muted, non-interactive */
.gs-score-readout--locked .gs-score-readout-num[b-he383av14i] { color: var(--text-secondary, #cbd5e1); }
.gs-score-readout-num--empty[b-he383av14i] { color: var(--text-muted, #94a3b8); }
.gs-score-readout-label--muted[b-he383av14i] {
    color: var(--text-muted, #94a3b8);
    text-transform: none;
    font-weight: 600;
}

/* ── Fine-adjust stepper (only shown for 10+) ────────────────── */
.gs-tenplus-adjust[b-he383av14i] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin: 0 0 1.25rem;
}

.gs-adj-btn[b-he383av14i] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    border: 2px solid var(--b9-border, #334155);
    background: var(--bg-elevated, #1e293b);
    color: var(--text-primary, #f1f5f9);
    font-size: 1.75rem;
    font-weight: 300;
    cursor: pointer;
    transition: background .12s, border-color .12s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gs-adj-btn:hover:not(:disabled)[b-he383av14i] {
    background: var(--b9-surface-muted, #334155);
    border-color: var(--brand, #22c55e);
}

.gs-adj-btn:disabled[b-he383av14i] { opacity: .3; cursor: not-allowed; }

.gs-tenplus-val[b-he383av14i] {
    min-width: 64px;
    font-size: 2.5rem;
    font-weight: 700;
    text-align: center;
    color: var(--text-primary, #f1f5f9);
    line-height: 1;
}

/* ── Quick-tap number grid ───────────────────────────────────── */
.gs-quick-grid[b-he383av14i] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
    margin-bottom: 1.25rem;
}

.gs-quick-btn[b-he383av14i] {
    position: relative;
    height: 72px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    border-radius: 10px;
    border: 1px solid var(--b9-border, #334155);
    background: var(--bg-elevated, #1e293b);
    color: var(--text-secondary, #cbd5e1);
    cursor: pointer;
    transition: background .1s, border-color .1s, color .1s;
}

.gs-quick-num[b-he383av14i] {
    position: relative;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    padding: 2px 6px;
}

.gs-quick-label[b-he383av14i] {
    font-size: .6875rem;
    font-weight: 600;
    line-height: 1;
    color: var(--text-muted, #94a3b8);
    text-transform: uppercase;
    letter-spacing: .02em;
}

.gs-quick-btn:hover:not(:disabled)[b-he383av14i] {
    background: var(--b9-surface-muted, #334155);
    color: var(--text-primary, #f1f5f9);
}

.gs-quick-btn:disabled[b-he383av14i] { opacity: .35; cursor: not-allowed; }

.gs-quick-btn--active[b-he383av14i] {
    background: var(--brand, #22c55e);
    border-color: var(--brand, #22c55e);
    color: #000;
}

.gs-quick-btn--active .gs-quick-label[b-he383av14i] { color: rgba(0,0,0,.65); }

/* Full-width "10+" escape hatch for a big hole */
.gs-quick-btn--more[b-he383av14i] {
    grid-column: 1 / -1;
    height: 52px;
    flex-direction: row;
    gap: .4rem;
}
.gs-quick-btn--more .gs-quick-num[b-he383av14i] { font-size: 1.25rem; }

/* ── Golf notation rings (circle = under par, square = over) ──── */
/* Drawn around the number span so the ring hugs the digit, not the whole button. */
.gs-mark-circle .gs-quick-num[b-he383av14i]::after,
.gs-mark-double-circle .gs-quick-num[b-he383av14i]::after,
.gs-mark-square .gs-quick-num[b-he383av14i]::after,
.gs-mark-double-square .gs-quick-num[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-circle[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-double-circle[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-square[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-double-square[b-he383av14i]::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border: 2px solid currentColor;
    opacity: .9;
}

.gs-mark-circle .gs-quick-num[b-he383av14i]::after,
.gs-mark-double-circle .gs-quick-num[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-circle[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-double-circle[b-he383av14i]::after {
    border-radius: 999px;
}

.gs-mark-square .gs-quick-num[b-he383av14i]::after,
.gs-mark-double-square .gs-quick-num[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-square[b-he383av14i]::after,
.gs-score-readout-num.gs-mark-double-square[b-he383av14i]::after {
    border-radius: 3px;
}

/* Double = a second outer ring */
.gs-mark-double-circle .gs-quick-num[b-he383av14i]::before,
.gs-mark-double-square .gs-quick-num[b-he383av14i]::before,
.gs-score-readout-num.gs-mark-double-circle[b-he383av14i]::before,
.gs-score-readout-num.gs-mark-double-square[b-he383av14i]::before {
    content: "";
    position: absolute;
    inset: -4px;
    pointer-events: none;
    border: 2px solid currentColor;
    opacity: .55;
}
.gs-mark-double-circle .gs-quick-num[b-he383av14i]::before,
.gs-score-readout-num.gs-mark-double-circle[b-he383av14i]::before { border-radius: 999px; }
.gs-mark-double-square .gs-quick-num[b-he383av14i]::before,
.gs-score-readout-num.gs-mark-double-square[b-he383av14i]::before { border-radius: 3px; }

/* ── Save button ─────────────────────────────────────────────── */
.gs-save-btn[b-he383av14i] {
    display: block;
    width: 100%;
    min-height: 60px;
    background: var(--brand, #22c55e);
    color: #000;
    font-size: 1.125rem;
    font-weight: 700;
    border: none;
    border-radius: 14px;
    cursor: pointer;
    margin-bottom: 1rem;
    transition: opacity .15s;
}

.gs-save-btn:hover:not(:disabled)[b-he383av14i] { opacity: .88; }
.gs-save-btn:disabled[b-he383av14i] { opacity: .45; cursor: not-allowed; }

/* ── Progress dots ───────────────────────────────────────────── */
.gs-progress-section[b-he383av14i] {
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--b9-border, #1e293b);
}

.gs-progress-label[b-he383av14i] {
    font-size: .75rem;
    font-weight: 600;
    color: var(--text-muted, #94a3b8);
    text-transform: uppercase;
    letter-spacing: .06em;
    margin-bottom: .625rem;
}

.gs-progress-dots[b-he383av14i] {
    display: flex;
    flex-wrap: wrap;
    gap: .375rem;
}

.gs-dot[b-he383av14i] {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    border: 1px solid var(--b9-border, #334155);
    background: var(--bg-elevated, #1e293b);
    color: var(--text-muted, #94a3b8);
    font-size: .75rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .1s, border-color .1s;
}

.gs-dot--done[b-he383av14i] {
    background: var(--success-soft, rgba(34,197,94,.15));
    border-color: var(--success, #22c55e);
    color: var(--success, #22c55e);
}

.gs-dot--current[b-he383av14i] {
    border-color: var(--brand, #22c55e);
    background: var(--brand, #22c55e);
    color: #000;
    font-weight: 700;
}

/* ── Nav row ─────────────────────────────────────────────────── */
.gs-nav-row[b-he383av14i] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .75rem 1.25rem;
    border-top: 1px solid var(--b9-border, #1e293b);
}

.gs-nav-btn[b-he383av14i] {
    min-height: 44px;
    padding: .5rem 1.25rem;
    background: var(--bg-elevated, #1e293b);
    border: 1px solid var(--b9-border, #334155);
    border-radius: 10px;
    color: var(--text-secondary, #cbd5e1);
    font-size: .9375rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .1s;
}

.gs-nav-btn:hover:not(:disabled)[b-he383av14i] { background: var(--b9-surface-muted, #334155); }
.gs-nav-btn:disabled[b-he383av14i] { opacity: .3; cursor: not-allowed; }

.gs-holes-done-label[b-he383av14i] {
    font-size: .8125rem;
    color: var(--text-muted, #94a3b8);
}

/* ── All done panel ──────────────────────────────────────────── */
.gs-all-done[b-he383av14i] {
    margin: 1.5rem 1.25rem;
    background: var(--success-soft, rgba(34,197,94,.1));
    border: 1px solid var(--success, #22c55e);
    border-radius: 16px;
    padding: 2rem 1.5rem;
    text-align: center;
}

.gs-all-done-icon[b-he383av14i] { font-size: 2.5rem; margin-bottom: .5rem; }
.gs-all-done-title[b-he383av14i] { font-size: 1.375rem; font-weight: 700; margin-bottom: .25rem; }
.gs-all-done-sub[b-he383av14i] { font-size: .9375rem; color: var(--text-muted, #94a3b8); margin-bottom: 1.25rem; }

.gs-leaderboard-btn[b-he383av14i] {
    display: block;
    min-height: 56px;
    line-height: 56px;
    background: var(--brand, #22c55e);
    color: #000;
    font-size: 1rem;
    font-weight: 700;
    border-radius: 12px;
    text-decoration: none;
    margin-bottom: 1.25rem;
}

.gs-account-upsell[b-he383av14i] { font-size: .875rem; color: var(--text-muted, #94a3b8); }
.gs-account-upsell p[b-he383av14i] { margin: 0 0 .375rem; }
.gs-account-upsell a[b-he383av14i] { color: var(--b9-primary-text); text-decoration: underline; }

/* ── Soft account upsell banner ──────────────────────────────── */
.gs-upsell-banner[b-he383av14i] {
    margin: 0 1.25rem 1.5rem;
    background: var(--bg-elevated, #1e293b);
    border: 1px solid var(--b9-border, #334155);
    border-radius: 12px;
    padding: .875rem 1rem;
    display: flex;
    align-items: center;
    gap: .75rem;
}

.gs-upsell-text[b-he383av14i] {
    flex: 1;
    font-size: .8125rem;
    display: flex;
    flex-direction: column;
    gap: .125rem;
}

.gs-upsell-text strong[b-he383av14i] { color: var(--text-primary, #f1f5f9); }
.gs-upsell-text span[b-he383av14i]  { color: var(--text-muted, #94a3b8); }

.gs-upsell-actions[b-he383av14i] {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-shrink: 0;
}

.gs-upsell-cta[b-he383av14i] {
    background: var(--brand-soft, rgba(34,197,94,.15));
    color: var(--b9-primary-text);
    font-size: .8125rem;
    font-weight: 600;
    padding: .375rem .875rem;
    border-radius: 8px;
    text-decoration: none;
    white-space: nowrap;
}

.gs-upsell-cta:hover[b-he383av14i] { background: var(--brand-soft, rgba(34,197,94,.25)); }

.gs-upsell-dismiss[b-he383av14i] {
    background: none;
    border: none;
    color: var(--text-muted, #94a3b8);
    font-size: 1rem;
    cursor: pointer;
    padding: .25rem;
    line-height: 1;
}

/* ── Group team switcher ─────────────────────────────────────── */
.gs-group-switcher[b-he383av14i] {
    padding: .625rem 1.25rem;
    background: var(--bg-elevated, #1e293b);
    border-bottom: 1px solid var(--b9-border, #1e293b);
}

.gs-group-switcher-label[b-he383av14i] {
    font-size: .75rem;
    font-weight: 600;
    color: var(--text-muted, #94a3b8);
    text-transform: uppercase;
    letter-spacing: .05em;
    display: block;
    margin-bottom: .5rem;
}

/* Unified segmented control — two teams sit in one container so the choice
   reads as a single "this team OR that team" toggle, not two stray buttons. */
.gs-segmented[b-he383av14i] {
    display: flex;
    border: 1px solid var(--b9-border, #334155);
    border-radius: 12px;
    overflow: hidden;
    background: var(--b9-surface, #0f172a);
}

/* One segment (inactive teams are links to their own scoring page) */
.gs-seg[b-he383av14i] {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .15rem;
    min-height: 52px;
    padding: .45rem .625rem;
    font-size: .875rem;
    font-weight: 600;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;
    color: var(--text-muted, #94a3b8);
    background: transparent;
    border: none;
    border-left: 1px solid var(--b9-border, #334155);
    cursor: pointer;
    transition: background .12s, color .12s;
}

.gs-seg:first-child[b-he383av14i] { border-left: none; }

/* Team name line + this-hole score line inside a segment */
.gs-seg-name[b-he383av14i] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}
.gs-seg-score[b-he383av14i] {
    font-size: 1.0625rem;
    font-weight: 800;
    line-height: 1;
    opacity: .95;
}

a.gs-seg:hover[b-he383av14i] {
    background: var(--b9-surface-muted, #1e293b);
    color: var(--text-primary, #f1f5f9);
}

/* Active segment — fills its half with solid brand + high-contrast white text */
.gs-seg--active[b-he383av14i] {
    background: var(--brand, #1D4ED8);
    color: #fff;
    font-weight: 800;
    cursor: default;
}

.gs-seg-check[b-he383av14i] { font-weight: 900; line-height: 1; }

/* A group member with no QR code (read-only indicator) */
.gs-seg--no-url[b-he383av14i] {
    opacity: .5;
    cursor: not-allowed;
}

/* Persistent "who am I scoring" anchor — sits directly above the number pad
   with a brand left-border so the active team is impossible to lose track of. */
.gs-scoring-for[b-he383av14i] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: 1rem;
    color: var(--text-secondary, #cbd5e1);
    background: var(--brand-soft, rgba(29,78,216,.15));
    border-left: 4px solid var(--brand, #1D4ED8);
    border-radius: 0 8px 8px 0;
    padding: .625rem .875rem;
    margin-bottom: 1rem;
}

.gs-scoring-for-label[b-he383av14i] { font-weight: 500; }

.gs-scoring-for-name[b-he383av14i] {
    color: var(--brand-text, #93C5FD);
    font-weight: 800;
}

/* Plain-language format reminder (mirrors the mobile app's format hint) */
.gs-format-hint[b-he383av14i] {
    font-size: .8125rem;
    color: var(--text-secondary, #cbd5e1);
    background: var(--bg-elevated, #1e293b);
    border-radius: 8px;
    padding: .5rem .75rem;
    margin-bottom: .75rem;
}

/* ── Full-card review (parity with the mobile "View full card") ─────── */
.gs-fullcard[b-he383av14i] { padding: 1.25rem 1.25rem .5rem; }

.gs-fullcard-title[b-he383av14i] {
    font-size: .875rem;
    color: var(--text-muted, #94a3b8);
    margin-bottom: .875rem;
}

/* Front 9 / Back 9 headers with Out / In subtotals (18-hole cards) */
.gs-fc-nine-head[b-he383av14i] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: 1.125rem 0 .5rem;
}
.gs-fc-nine-head:first-of-type[b-he383av14i] { margin-top: 0; }
.gs-fc-nine-label[b-he383av14i] {
    font-size: .8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--text-secondary, #cbd5e1);
}
.gs-fc-nine-total[b-he383av14i] {
    font-size: .8125rem;
    font-weight: 700;
    color: var(--brand-text, #93C5FD);
}

.gs-fullcard-grid[b-he383av14i] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .5rem;
}

.gs-fc-cell[b-he383av14i] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .1rem;
    padding: .625rem .25rem;
    border-radius: 10px;
    border: 1px solid var(--b9-border, #334155);
    background: var(--bg-elevated, #1e293b);
    cursor: pointer;
}

.gs-fc-cell--current[b-he383av14i] {
    border-color: var(--brand, #1D4ED8);
    background: var(--brand-soft, rgba(29,78,216,.15));
}

.gs-fc-hole[b-he383av14i] { font-size: .75rem; font-weight: 600; color: var(--text-secondary, #cbd5e1); }
.gs-fc-par[b-he383av14i]  { font-size: .6875rem; color: var(--text-muted, #94a3b8); }

.gs-fc-score[b-he383av14i] {
    position: relative;
    font-size: 1.375rem;
    font-weight: 800;
    color: var(--text-primary, #f1f5f9);
    margin-top: .15rem;
}

/* Golf-notation ring/square on the review score (matches the keypad marks) */
.gs-fc-score.gs-mark-circle[b-he383av14i]::before,
.gs-fc-score.gs-mark-double-circle[b-he383av14i]::before,
.gs-fc-score.gs-mark-square[b-he383av14i]::before,
.gs-fc-score.gs-mark-double-square[b-he383av14i]::before {
    content: "";
    position: absolute;
    inset: -3px -7px;
    border: 2px solid currentColor;
    opacity: .8;
    pointer-events: none;
}
.gs-fc-score.gs-mark-circle[b-he383av14i]::before,
.gs-fc-score.gs-mark-double-circle[b-he383av14i]::before { border-radius: 999px; }
.gs-fc-score.gs-mark-square[b-he383av14i]::before,
.gs-fc-score.gs-mark-double-square[b-he383av14i]::before { border-radius: 3px; }

.gs-fullcard-total[b-he383av14i] {
    text-align: center;
    font-size: .8125rem;
    color: var(--text-muted, #94a3b8);
    margin-top: 1rem;
}

.gs-fullcard-toggle[b-he383av14i] {
    display: block;
    width: calc(100% - 2.5rem);
    min-height: 44px;
    margin: .5rem 1.25rem 0;
    background: transparent;
    border: 1px solid var(--b9-border, #334155);
    color: var(--text-secondary, #cbd5e1);
    font-size: .9375rem;
    font-weight: 600;
    border-radius: 10px;
    cursor: pointer;
}
.gs-fullcard-toggle:hover[b-he383av14i] { background: var(--bg-elevated, #1e293b); }

/* ── Animations ──────────────────────────────────────────────── */
@keyframes gs-fade-in-b-he383av14i {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Responsive tweaks (larger screens) ─────────────────────── */
@media (min-width: 600px) {
    .gs-score-shell[b-he383av14i] {
        padding-top: 1.5rem;
    }

    .gs-confirm-shell[b-he383av14i] {
        padding-top: 3rem;
    }
}

/* ── On-course games (one-tap "beat the leader") ─────────────── */
.gs-games[b-he383av14i] {
    margin-top: 1rem;
    padding: 1rem;
    border-radius: 1rem;
    background: var(--b9-surface, #0f172a);
    border: 1px solid var(--b9-border, #1e293b);
}

.gs-games-title[b-he383av14i] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin-bottom: .75rem;
}

.gs-game[b-he383av14i] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .75rem 0;
    border-top: 1px solid var(--b9-border, #1e293b);
}

.gs-game:first-of-type[b-he383av14i] { border-top: none; }

.gs-game-info[b-he383av14i] { flex: 1 1 auto; min-width: 0; }

.gs-game-name[b-he383av14i] {
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
}

.gs-game-leader[b-he383av14i] {
    font-size: .85rem;
    color: var(--text-muted, #94a3b8);
    margin-top: .125rem;
}

.gs-game-youlead[b-he383av14i] { color: var(--b9-primary-text); font-weight: 600; }
.gs-game-prize[b-he383av14i] { color: var(--text-muted, #94a3b8); }

/* The claim button is the primary action — large, obvious, ≥48px tall. */
.gs-game-claim[b-he383av14i] {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 0 1.1rem;
    border: none;
    border-radius: .75rem;
    background: var(--brand, #22c55e);
    color: #06210f;
    font-weight: 700;
    font-size: .95rem;
    cursor: pointer;
}

.gs-game-claim:active[b-he383av14i] { transform: scale(.98); }
.gs-game-claim:disabled[b-he383av14i] { opacity: .6; cursor: default; }

.gs-game-leading[b-he383av14i] {
    flex: 0 0 auto;
    color: var(--b9-primary-text);
    font-weight: 700;
    font-size: .9rem;
}

.gs-game--mine[b-he383av14i] {
    background: var(--brand-soft, rgba(34, 197, 94, .08));
    border-radius: .75rem;
    padding-left: .625rem;
    padding-right: .625rem;
}

/* ── Confirm my card (guest attestation) — on the full-card review ── */
.gs-confirm-block[b-he383av14i] {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--b9-border, #1e293b);
}

.gs-confirm-check[b-he383av14i] {
    display: flex;
    align-items: center;
    gap: .625rem;
    min-height: 48px;
    cursor: pointer;
    color: var(--text-primary, #f1f5f9);
    font-size: 1rem;
}

.gs-confirm-check input[type="checkbox"][b-he383av14i] {
    width: 24px;
    height: 24px;
    accent-color: var(--brand, #22c55e);
    flex: 0 0 auto;
    cursor: pointer;
}

.gs-confirm-btn[b-he383av14i] {
    display: block;
    width: 100%;
    min-height: 56px;
    margin-top: .75rem;
    background: var(--brand, #22c55e);
    color: #000;
    font-size: 1.0625rem;
    font-weight: 700;
    border: none;
    border-radius: 14px;
    cursor: pointer;
    transition: opacity .15s;
}

.gs-confirm-btn:hover:not(:disabled)[b-he383av14i] { opacity: .88; }
.gs-confirm-btn:active:not(:disabled)[b-he383av14i] { transform: scale(.99); }
.gs-confirm-btn:disabled[b-he383av14i] { opacity: .5; cursor: default; }

.gs-confirmed-state[b-he383av14i] {
    display: flex;
    align-items: flex-start;
    gap: .625rem;
    padding: .875rem 1rem;
    background: var(--brand-soft, rgba(34, 197, 94, .1));
    border: 1px solid var(--brand-soft, rgba(34, 197, 94, .2));
    border-radius: 12px;
}

.gs-confirmed-check[b-he383av14i] {
    color: var(--b9-primary-text);
    font-size: 1.25rem;
    font-weight: 800;
    line-height: 1.3;
    flex: 0 0 auto;
}

.gs-confirmed-text[b-he383av14i] { display: flex; flex-direction: column; gap: .15rem; }
.gs-confirmed-text strong[b-he383av14i] { color: var(--text-primary, #f1f5f9); font-size: 1rem; }
.gs-confirmed-time[b-he383av14i] { color: var(--text-muted, #94a3b8); font-size: .85rem; }

/* "Need help?" — the guest surface's only route to a human. A guest has no account, no app and
   no other screen, so this has to exist on both the dead end (error card) and the working
   scorecard. Quiet by design: it must never compete with the score keypad. */
.gs-help-link[b-he383av14i] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 1rem;
    color: var(--text-muted, #94a3b8);
    font-size: .95rem;
    text-decoration: underline;
}

.gs-help-link:hover[b-he383av14i],
.gs-help-link:focus-visible[b-he383av14i] {
    color: var(--text-primary, #f1f5f9);
}

.gs-help-footer[b-he383av14i] {
    display: flex;
    justify-content: center;
    padding: 1rem 0 2rem;
}
/* /Components/Pages/Help.razor.rz.scp.css */
/* Canonical brand tokens only (--text-*, --border-*, --brand*, --bg-*), verified against
   wwwroot/css/brand-tokens.css.

   NOTE for whoever edits this next: the `--color-text-primary` / `--color-border` / `--color-accent`
   names used by some older pages DO NOT EXIST. They resolve to empty, which makes the whole
   declaration invalid, so `border: 1px solid var(--color-border)` silently renders as NO border at
   all. That is this project's known invisible-token bug class — it looks like a missing style, not
   a typo, so it survives review. Every custom property below was checked in the browser. */

.help-page[b-58fq31gzic] {
    padding: 2rem 1rem 4rem;
}

.help-inner[b-58fq31gzic] {
    max-width: 680px;
    margin: 0 auto;
}

.help-inner h1[b-58fq31gzic] {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
    color: var(--text-primary);
}

.help-lede[b-58fq31gzic] {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--text-secondary);
    margin-bottom: 2rem;
}

.help-card[b-58fq31gzic] {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    padding: 1.25rem 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}

.help-card h2[b-58fq31gzic] {
    font-size: 1.15rem;
    font-weight: 600;
    margin: 0 0 0.75rem;
    color: var(--text-primary);
}

/* Body copy sits a notch above the usual 0.95rem: this page is read by someone who is already
   frustrated, often outdoors, often on a small phone. */
.help-card p[b-58fq31gzic] {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--text-secondary);
    margin: 0 0 0.75rem;
}

.help-card p:last-of-type[b-58fq31gzic] {
    margin-bottom: 0;
}

/* Scoped to links INSIDE paragraphs on purpose. As a bare `.help-card a` this rule is specificity
   (0,1,1) and silently beat `.help-action--primary` (0,1,0), painting the primary button's label
   light blue on the blue fill — unreadable, and invisible in the markup. The action buttons are
   direct children of the section, never inside a <p>, so the two rules can no longer collide. */
.help-card p a[b-58fq31gzic] {
    color: var(--brand-text, var(--brand));
    text-decoration: underline;
}

/* 48px minimum touch target, per the app-wide rule. */
.help-action[b-58fq31gzic] {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    margin-top: 1rem;
    padding: 0 1.25rem;
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-full);
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary);
    text-decoration: none;
}

.help-action:hover[b-58fq31gzic],
.help-action:focus-visible[b-58fq31gzic] {
    border-color: var(--brand);
    color: var(--text-primary);
    text-decoration: none;
}

/* White on the brand blue is the house convention for a filled control (components.css:355,
   EventSetupSteps.razor.css:69) — there is no on-brand token. It is a foreground on a dark blue
   fill, not a hardcoded light background, so it stays correct in both themes. */
.help-action--primary[b-58fq31gzic] {
    background: var(--brand);
    border-color: var(--brand);
    color: #fff;
}

.help-action--primary:hover[b-58fq31gzic],
.help-action--primary:focus-visible[b-58fq31gzic] {
    background: var(--brand-hover);
    border-color: var(--brand-hover);
    color: #fff;
}

.help-card--contact[b-58fq31gzic] {
    border-color: var(--brand);
}
/* /Components/Pages/Home.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════
   LANDING (unauthenticated)
═══════════════════════════════════════════════════════════ */
.landingv2[b-lhah5qi39q] {
    /* Marketing landing is always dark — regardless of user's theme preference */
    color-scheme: dark;
    min-height: 100vh;
    color: #f3f6fb;
    background:
        radial-gradient(1200px 500px at 88% -10%, rgba(29, 78, 216, 0.14), transparent 70%),
        radial-gradient(920px 440px at 2% 12%, rgba(34, 197, 94, 0.09), transparent 72%),
        #020617;
}

.landingv2-nav[b-lhah5qi39q] {
    position: sticky;
    top: 0;
    z-index: 20;
    max-width: 1180px;
    margin: 0 auto;
    height: 68px;
    padding: 0 1.1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(2, 6, 23, 0.88);
    backdrop-filter: blur(8px);
}

.landingv2-brand[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
}

.landingv2-nav-actions[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.landingv2-nav-link[b-lhah5qi39q] {
    color: var(--text-secondary, #c2cfdf);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
    padding: 0.42rem 0.65rem;
    border-radius: 8px;
}

.landingv2-nav-link:hover[b-lhah5qi39q] {
    color: var(--text-primary, #f3f6fb);
    background: rgba(255, 255, 255, 0.06);
}

.landingv2-nav-btn[b-lhah5qi39q] {
    color: #fff;
    background: var(--brand, #1d4ed8);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 700;
    padding: 0.48rem 0.95rem;
    border-radius: 8px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.landingv2-nav-btn:hover[b-lhah5qi39q] {
    background: var(--brand-hover, #2563eb);
    color: #fff;
}

.landingv2-main[b-lhah5qi39q] {
    max-width: 1180px;
    margin: 0 auto;
    padding: 1.8rem 1.1rem 4.4rem;
}

.landingv2-hero[b-lhah5qi39q] {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 1.35rem;
    align-items: stretch;
    padding: 2.1rem 0 1.25rem;
}

.landingv2-hero-copy[b-lhah5qi39q] {
    padding: 1.2rem 0.18rem;
}

.landingv2-eyebrow[b-lhah5qi39q] {
    margin: 0 0 0.5rem;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--text-secondary, #c2cfdf);
}

.landingv2-title[b-lhah5qi39q] {
    margin: 0;
    font-size: clamp(2.28rem, 5.2vw, 3.9rem);
    letter-spacing: -0.04em;
    line-height: 1.01;
    font-weight: 780;
    color: #f8fbff;
    max-width: 15ch;
}

.landingv2-aspire[b-lhah5qi39q] {
    margin: 0.72rem 0 0;
    font-size: 1.12rem;
    line-height: 1.45;
    color: #eaf2fb;
    font-weight: 620;
}

.landingv2-sub[b-lhah5qi39q] {
    margin: 0.55rem 0 0;
    max-width: 50ch;
    font-size: 0.98rem;
    line-height: 1.56;
    color: var(--text-helper, #b3c0d2);
}

.landingv2-cta-row[b-lhah5qi39q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.58rem;
    margin-top: 1.15rem;
}

.landingv2-cta-primary[b-lhah5qi39q],
.landingv2-cta-secondary[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    border-radius: 10px;
    text-decoration: none;
    font-size: 0.92rem;
    font-weight: 700;
    padding: 0.62rem 1.1rem;
}

.landingv2-cta-primary[b-lhah5qi39q] {
    color: #fff;
    background: linear-gradient(140deg, #1d4ed8 0%, #2563eb 100%);
    box-shadow: 0 8px 18px rgba(29, 78, 216, 0.28);
}

.landingv2-cta-primary:hover[b-lhah5qi39q] {
    color: #fff;
    background: linear-gradient(140deg, #1e40af 0%, #1d4ed8 100%);
}

/* Hero variant: larger primary, clearly subordinate secondary */
.landingv2-cta-primary--hero[b-lhah5qi39q] {
    min-height: 52px;
    font-size: 1rem;
    padding: 0.75rem 1.5rem;
    box-shadow: 0 10px 24px rgba(29, 78, 216, 0.36);
}

.landingv2-cta-secondary--hero[b-lhah5qi39q] {
    min-height: 44px;
    font-size: 0.85rem;
    opacity: 0.82;
}

.landingv2-cta-secondary--hero:hover[b-lhah5qi39q] {
    opacity: 1;
}

.landingv2-cta-secondary[b-lhah5qi39q] {
    color: var(--text-primary, #f3f6fb);
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.landingv2-cta-secondary:hover[b-lhah5qi39q] {
    color: var(--text-primary, #f3f6fb);
    background: rgba(255, 255, 255, 0.08);
}

.landingv2-signal-row[b-lhah5qi39q] {
    margin-top: 1rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.landingv2-signal[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.03);
    color: var(--text-secondary, #c2cfdf);
    padding: 0.2rem 0.66rem;
    font-size: 0.76rem;
    font-weight: 600;
}

.landingv2-hero-visual[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.92) 0%, rgba(15, 23, 42, 0.8) 100%);
    box-shadow: 0 20px 38px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    padding: 0.84rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* ── Workflow steps (P3 hero visual) ────────────────────────── */
.landingv2-workflow[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.landingv2-workflow-step[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.72rem 0.62rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.landingv2-workflow-step:first-child[b-lhah5qi39q] { border-top: none; }

.landingv2-workflow-step--final[b-lhah5qi39q] { border-bottom: none; }

.landingv2-workflow-num[b-lhah5qi39q] {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(29, 78, 216, 0.18);
    border: 1px solid rgba(59, 130, 246, 0.32);
    color: #bfdbfe;
    font-size: 0.7rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.landingv2-workflow-body[b-lhah5qi39q] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.landingv2-workflow-body strong[b-lhah5qi39q] {
    display: block;
    font-size: 0.82rem;
    font-weight: 700;
    color: #ecf3fc;
    line-height: 1.2;
}

.landingv2-workflow-body span[b-lhah5qi39q] {
    display: block;
    font-size: 0.7rem;
    color: #8fa5be;
    line-height: 1.3;
}

.landingv2-workflow-badge[b-lhah5qi39q] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.12);
    color: #9fb0c4;
}

.landingv2-workflow-badge--live[b-lhah5qi39q] {
    background: rgba(34, 197, 94, 0.12);
    border-color: rgba(34, 197, 94, 0.34);
    color: #86efac;
}

.landingv2-workflow-badge--done[b-lhah5qi39q] {
    background: rgba(29, 78, 216, 0.14);
    border-color: rgba(59, 130, 246, 0.34);
    color: #bfdbfe;
}

.landingv2-ui-panel[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 0.62rem 0.68rem;
    background: rgba(2, 6, 23, 0.52);
}

.landingv2-ui-panel header[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
    margin-bottom: 0.34rem;
    color: #ecf3fc;
    font-size: 0.73rem;
    font-weight: 700;
}

.landingv2-ui-panel header strong[b-lhah5qi39q] {
    color: #9fb0c4;
    font-size: 0.68rem;
    font-weight: 600;
}

.landingv2-ui-row[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.69rem;
    color: #c8d5e6;
    padding: 0.18rem 0;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.landingv2-ui-row:first-of-type[b-lhah5qi39q] {
    border-top: none;
}

.landingv2-chip-row[b-lhah5qi39q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.landingv2-chip-row span[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0.09rem 0.38rem;
    border-radius: 999px;
    background: rgba(29, 78, 216, 0.16);
    border: 1px solid rgba(29, 78, 216, 0.34);
    color: #bfdbfe;
    font-size: 0.66rem;
    font-weight: 600;
}

.landingv2-ui-foot[b-lhah5qi39q] {
    color: #adc0d8;
    font-size: 0.69rem;
    line-height: 1.42;
}

.landingv2-trust[b-lhah5qi39q] {
    margin-top: 1.2rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.68rem;
}

.landingv2-trust-item[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    padding: 0.72rem 0.78rem;
    background: rgba(15, 23, 42, 0.52);
}

.landingv2-trust-item strong[b-lhah5qi39q] {
    display: block;
    color: #f1f6fe;
    font-size: 0.84rem;
    font-weight: 700;
}

.landingv2-trust-item span[b-lhah5qi39q] {
    display: block;
    margin-top: 0.16rem;
    color: #b3c0d2;
    font-size: 0.75rem;
}

.landingv2-act[b-lhah5qi39q] {
    margin-top: 1.25rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.84) 0%, rgba(15, 23, 42, 0.62) 100%);
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.26);
    padding: 1.05rem;
}

.landingv2-act:target[b-lhah5qi39q],
.landingv2-act.tour-arrived[b-lhah5qi39q] {
    border-color: rgba(37, 99, 235, 0.45);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18), 0 14px 30px rgba(0, 0, 0, 0.26);
}

.landingv2-act-head[b-lhah5qi39q] {
    max-width: 72ch;
}

.landingv2-act-head h2[b-lhah5qi39q] {
    margin: 0;
    color: #f8fbff;
    font-size: clamp(1.38rem, 2.9vw, 2rem);
    letter-spacing: -0.02em;
    line-height: 1.12;
    font-weight: 760;
}

.landingv2-act-head p[b-lhah5qi39q] {
    margin: 0.34rem 0 0;
    color: #b3c0d2;
    font-size: 0.9rem;
    line-height: 1.52;
}

.landingv2-split-grid[b-lhah5qi39q] {
    margin-top: 0.86rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.68rem;
}

.landingv2-split-card[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    padding: 0.88rem;
    background: rgba(255, 255, 255, 0.02);
}

.landingv2-split-card h3[b-lhah5qi39q] {
    margin: 0;
    font-size: 1rem;
    font-weight: 720;
    color: #f3f8ff;
}

.landingv2-split-card p[b-lhah5qi39q] {
    margin: 0.38rem 0 0;
    font-size: 0.84rem;
    line-height: 1.5;
    color: #c3d0e1;
}

.landingv2-split-card ul[b-lhah5qi39q] {
    margin: 0.54rem 0 0;
    padding-left: 1rem;
    display: grid;
    gap: 0.3rem;
}

.landingv2-split-card li[b-lhah5qi39q] {
    font-size: 0.78rem;
    line-height: 1.42;
    color: #d3e0ef;
}

.landingv2-split-ops[b-lhah5qi39q] {
    border-color: rgba(59, 130, 246, 0.34);
}

.landingv2-split-player[b-lhah5qi39q] {
    border-color: rgba(34, 197, 94, 0.3);
}

.landingv2-flow-track[b-lhah5qi39q] {
    margin: 0.85rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.52rem;
}

.landingv2-flow-track li[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.02);
    padding: 0.64rem 0.7rem 0.72rem;
    min-height: 132px;
}

.landingv2-flow-track h3[b-lhah5qi39q] {
    margin: 0.22rem 0 0;
    color: #f1f6fe;
    font-size: 0.82rem;
    font-weight: 700;
}

.landingv2-flow-track p[b-lhah5qi39q] {
    margin: 0.25rem 0 0;
    color: #b3c0d2;
    font-size: 0.72rem;
    line-height: 1.36;
}

.landingv2-flow-minute li[b-lhah5qi39q] {
    position: relative;
}

.landingv2-flow-minute[b-lhah5qi39q] {
    position: relative;
}

.landingv2-flow-minute[b-lhah5qi39q]::before {
    content: "";
    position: absolute;
    left: 1.1rem;
    right: 1.1rem;
    top: 0.38rem;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(29, 78, 216, 0.16) 0%, rgba(29, 78, 216, 0.58) 100%);
}

.landingv2-flow-minute li[b-lhah5qi39q]::before {
    content: "";
    position: absolute;
    left: 0.72rem;
    right: 0.72rem;
    top: 0.58rem;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, rgba(29, 78, 216, 0.08) 0%, rgba(29, 78, 216, 0.5) 100%);
}

.landingv2-flow-minute h3[b-lhah5qi39q],
.landingv2-flow-minute p[b-lhah5qi39q] {
    position: relative;
    z-index: 1;
}

.landingv2-flow-time[b-lhah5qi39q] {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0.05rem 0.38rem;
    border-radius: 999px;
    border: 1px solid rgba(147, 197, 253, 0.36);
    background: rgba(30, 64, 175, 0.18);
    color: #bfdbfe;
    font-size: 0.64rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}

.landingv2-moat-grid[b-lhah5qi39q] {
    margin-top: 0.82rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.56rem;
}

.landingv2-moat-card[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.11);
    border-radius: 11px;
    background: rgba(255, 255, 255, 0.02);
    padding: 0.74rem 0.7rem;
}

.landingv2-moat-card h3[b-lhah5qi39q] {
    margin: 0;
    font-size: 0.84rem;
    color: #ecf4fd;
    font-weight: 690;
}

.landingv2-moat-card p[b-lhah5qi39q] {
    margin: 0.32rem 0 0;
    font-size: 0.74rem;
    line-height: 1.42;
    color: #b6c4d6;
}

.landingv2-compare-grid[b-lhah5qi39q] {
    margin-top: 0.86rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.58rem;
}

.landingv2-compare-col[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    padding: 0.74rem 0.82rem;
    background: rgba(255, 255, 255, 0.02);
}

.landingv2-compare-col h3[b-lhah5qi39q] {
    margin: 0;
    font-size: 0.92rem;
    font-weight: 700;
}

.landingv2-compare-col ul[b-lhah5qi39q] {
    margin: 0.46rem 0 0;
    padding-left: 1rem;
    display: grid;
    gap: 0.32rem;
}

.landingv2-compare-col li[b-lhah5qi39q] {
    font-size: 0.75rem;
    color: #c4d1e1;
    line-height: 1.4;
}

.landingv2-compare-col.legacy h3[b-lhah5qi39q] {
    color: #fca5a5;
}

.landingv2-compare-col.modern h3[b-lhah5qi39q] {
    color: #86efac;
}

.landingv2-proof-grid[b-lhah5qi39q] {
    margin-top: 0.86rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.58rem;
}

.landingv2-proof-card[b-lhah5qi39q] {
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.02);
    padding: 0.74rem 0.78rem;
}

.landingv2-proof-card h3[b-lhah5qi39q] {
    margin: 0;
    font-size: 0.92rem;
    color: #f1f6fe;
    font-weight: 700;
}

.landingv2-proof-card p[b-lhah5qi39q],
.landingv2-proof-card li[b-lhah5qi39q] {
    margin: 0.36rem 0 0;
    color: #b8c5d7;
    font-size: 0.76rem;
    line-height: 1.44;
}

.landingv2-proof-card ul[b-lhah5qi39q] {
    margin: 0.36rem 0 0;
    padding-left: 1rem;
}

.landingv2-final-cta[b-lhah5qi39q] {
    margin-top: 0.96rem;
    border: 1px solid rgba(255, 255, 255, 0.13);
    border-radius: 12px;
    background: linear-gradient(180deg, rgba(29, 78, 216, 0.12) 0%, rgba(15, 23, 42, 0.44) 100%);
    padding: 0.9rem 0.94rem;
}

.landingv2-final-cta h3[b-lhah5qi39q] {
    margin: 0;
    color: #f8fbff;
    font-size: 1.1rem;
    font-weight: 740;
}

.landingv2-final-cta p[b-lhah5qi39q] {
    margin: 0.32rem 0 0;
    color: #bfccdd;
    font-size: 0.8rem;
    line-height: 1.5;
}

.landingv2-subtle-link[b-lhah5qi39q] {
    display: inline-flex;
    margin-top: 0.48rem;
    color: #bcd0e7;
    text-decoration: none;
    font-size: 0.76rem;
    font-weight: 600;
    border-bottom: 1px solid rgba(188, 208, 231, 0.42);
}

.landingv2-subtle-link:hover[b-lhah5qi39q] {
    color: #d9e8fa;
    border-bottom-color: rgba(217, 232, 250, 0.72);
}

.landingv2 a:focus-visible[b-lhah5qi39q] {
    outline: none;
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.34);
}

@media (max-width: 1000px) {
    .landingv2-hero[b-lhah5qi39q] {
        grid-template-columns: 1fr;
    }

    .landingv2-title[b-lhah5qi39q] {
        max-width: 20ch;
    }

    .landingv2-split-grid[b-lhah5qi39q],
    .landingv2-flow-track[b-lhah5qi39q],
    .landingv2-trust[b-lhah5qi39q],
    .landingv2-proof-grid[b-lhah5qi39q],
    .landingv2-compare-grid[b-lhah5qi39q],
    .landingv2-moat-grid[b-lhah5qi39q] {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 680px) {
    .landingv2-nav[b-lhah5qi39q] {
        height: auto;
        padding-top: 0.68rem;
        padding-bottom: 0.68rem;
        flex-wrap: wrap;
        gap: 0.52rem;
    }

    .landingv2-main[b-lhah5qi39q] {
        padding-top: 0.84rem;
    }

    .landingv2-flow-track[b-lhah5qi39q],
    .landingv2-trust[b-lhah5qi39q],
    .landingv2-proof-grid[b-lhah5qi39q],
    .landingv2-compare-grid[b-lhah5qi39q],
    .landingv2-split-grid[b-lhah5qi39q],
    .landingv2-moat-grid[b-lhah5qi39q] {
        grid-template-columns: 1fr;
    }

    .landingv2-hero-visual[b-lhah5qi39q] {
        grid-template-columns: 1fr;
    }

    .landingv2-title[b-lhah5qi39q] {
        font-size: clamp(1.92rem, 9vw, 2.6rem);
    }

    .landingv2-aspire[b-lhah5qi39q] {
        font-size: 1rem;
    }

    .landingv2-sub[b-lhah5qi39q] {
        font-size: 0.9rem;
    }

    .landingv2-flow-minute[b-lhah5qi39q]::before {
        display: none;
    }

    .landingv2-foot-top[b-lhah5qi39q] {
        flex-direction: column;
        gap: 0.9rem;
    }
}

/* ── Landing footer (self-contained) ─────────────────────── */
.landingv2-foot[b-lhah5qi39q] {
    max-width: 1180px;
    margin: 0 auto;
    padding: 1.5rem 1.1rem 2rem;
}

.landingv2-foot-top[b-lhah5qi39q] {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 1.4rem;
    padding-top: 1.3rem;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.landingv2-foot-brand[b-lhah5qi39q] {
    max-width: 46ch;
}

.landingv2-foot-brand p[b-lhah5qi39q] {
    margin: 0.55rem 0 0;
    color: #b3c0d2;
    font-size: 0.82rem;
    line-height: 1.5;
}

.landingv2-foot-plans[b-lhah5qi39q] {
    color: #d8e4f3;
    font-weight: 600;
}

.landingv2-foot-links[b-lhah5qi39q] {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    gap: 0.5rem 1.2rem;
}

.landingv2-foot-links a[b-lhah5qi39q] {
    color: #bcd0e7;
    text-decoration: none;
    font-size: 0.85rem;
    font-weight: 600;
}

.landingv2-foot-links a:hover[b-lhah5qi39q] {
    color: #e8f1fb;
}

.landingv2-foot-bottom[b-lhah5qi39q] {
    max-width: 1180px;
    margin: 1.2rem auto 0;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.4rem;
    color: #8b99ad;
    font-size: 0.78rem;
}

.landingv2-foot-bottom a[b-lhah5qi39q] {
    color: #bcd0e7;
    text-decoration: none;
    font-weight: 600;
}

.landingv2-foot-bottom a:hover[b-lhah5qi39q] {
    color: #e8f1fb;
}


/* ═══════════════════════════════════════════════════════════
   LOADING / ONBOARDING
═══════════════════════════════════════════════════════════ */
.dash-loading[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    padding: 4rem 1.5rem;
    color: var(--b9-text-muted);
    font-size: 0.875rem;
}

.dash-loading-copy[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    gap: 0.14rem;
    max-width: 32rem;
}

.dash-loading-title[b-lhah5qi39q] {
    color: var(--b9-text);
    font-weight: 600;
}

.dash-loading-sub[b-lhah5qi39q] {
    color: var(--b9-text-soft);
}

.dash-error[b-lhah5qi39q] {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 4rem 1.5rem;
}

.dash-error-card[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.5rem;
    max-width: 28rem;
}

.dash-error-icon[b-lhah5qi39q] {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
}

.dash-error-title[b-lhah5qi39q] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-primary);
}

.dash-error-sub[b-lhah5qi39q] {
    font-size: 0.875rem;
    color: var(--text-muted);
}

.dash-onboard[b-lhah5qi39q] {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    min-height: calc(100vh - 8rem);
    padding: 3rem 1.5rem;
}

.dash-onboard-card[b-lhah5qi39q] {
    background:
        radial-gradient(120% 90% at 8% 0%, color-mix(in srgb, var(--brand, #1d4ed8) 12%, transparent), transparent 68%),
        var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: var(--b9-card-radius);
    box-shadow: var(--b9-card-shadow-md);
    padding: 2.5rem 2rem;
    max-width: 560px;
    width: 100%;
}

.dash-onboard-header[b-lhah5qi39q] {
    text-align: center;
    margin-bottom: 2rem;
}

.dash-onboard-badge[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: color-mix(in srgb, var(--brand, #1d4ed8) 16%, var(--b9-card-bg));
    color: var(--text-primary, #f3f6fb);
    font-size: 0.78rem;
    font-weight: 700;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    margin-bottom: 1rem;
    letter-spacing: 0.02em;
    border: 1px solid color-mix(in srgb, var(--brand, #1d4ed8) 38%, transparent);
}

.dash-onboard-title[b-lhah5qi39q] {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--b9-text);
    margin-bottom: 0.4rem;
    line-height: 1.3;
}

.dash-onboard-sub[b-lhah5qi39q] {
    font-size: 0.875rem;
    color: var(--b9-text-muted);
    line-height: 1.6;
    margin: 0;
}

/* ── Onboarding step list ── */
.dash-onboard-steps[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.dash-onboard-step[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border-radius: 10px;
    border: 1.5px solid var(--b9-card-border);
    background: var(--b9-card-bg);
    transition: box-shadow 0.15s;
}

.dash-step--active[b-lhah5qi39q] {
    border-color: color-mix(in srgb, var(--brand, #1d4ed8) 46%, var(--b9-card-border));
    background: color-mix(in srgb, var(--bg-elevated, #111827) 78%, var(--brand, #1d4ed8) 22%);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand, #1d4ed8) 24%, transparent);
}

.dash-step--pending[b-lhah5qi39q] {
    opacity: 0.84;
    background: color-mix(in srgb, var(--b9-card-bg) 92%, #0f172a 8%);
}

.dash-step-num[b-lhah5qi39q] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--brand, #1d4ed8);
    color: #eaf2ff;
    font-size: 0.85rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.dash-step--pending .dash-step-num[b-lhah5qi39q] {
    background: color-mix(in srgb, var(--b9-card-bg) 72%, #334155 28%);
    color: #cbd5e1;
}

.dash-step-body[b-lhah5qi39q] {
    flex: 1;
    min-width: 0;
}

.dash-step-title[b-lhah5qi39q] {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--text-primary, #f3f6fb);
    margin-bottom: 0.15rem;
}

.dash-step-desc[b-lhah5qi39q] {
    font-size: 0.78rem;
    color: var(--text-secondary, #c2cfdf);
    line-height: 1.4;
}

.dash-step--active .dash-step-title[b-lhah5qi39q] {
    color: #f8fbff;
}

.dash-step--active .dash-step-desc[b-lhah5qi39q] {
    color: #dbe9fa;
}

.dash-step--pending .dash-step-title[b-lhah5qi39q] {
    color: var(--b9-text);
}

.dash-step--pending .dash-step-desc[b-lhah5qi39q] {
    color: var(--b9-text-muted);
}

.dash-step-action[b-lhah5qi39q] {
    flex-shrink: 0;
    white-space: nowrap;
    font-weight: 700;
    box-shadow: 0 10px 20px rgba(29, 78, 216, 0.28);
    border-color: color-mix(in srgb, var(--brand, #1d4ed8) 55%, #ffffff 45%);
}

.dash-step-badge[b-lhah5qi39q] {
    flex-shrink: 0;
    font-size: 0.72rem;
    color: #cbd5e1;
    font-weight: 600;
    white-space: nowrap;
}

.dash-onboard-footer[b-lhah5qi39q] {
    text-align: center;
    font-size: 0.8rem;
    color: var(--b9-text-muted);
    margin: 0;
}

/* legacy (keep for safety) */
.dash-onboard-icon[b-lhah5qi39q] {
    font-size: 2.25rem;
    color: var(--b9-primary-text);
    display: block;
    margin-bottom: 1rem;
}

.dash-onboard-text[b-lhah5qi39q] {
    font-size: 0.875rem;
    color: var(--b9-text-muted);
    margin-bottom: 1.5rem;
    line-height: 1.6;
}


/* ═══════════════════════════════════════════════════════════
   NEW-ORG SETUP GUIDE
   Shown inside the dashboard when the org has no data yet
═══════════════════════════════════════════════════════════ */
.dash-setup-guide[b-lhah5qi39q] {
    background: color-mix(in srgb, var(--brand, #1d4ed8) 8%, var(--b9-card-bg));
    border: 1px solid color-mix(in srgb, var(--brand, #1d4ed8) 28%, transparent);
    border-radius: 12px;
    padding: 1rem 1.25rem 1.25rem;
    margin-bottom: 1.5rem;
}

.dash-setup-header[b-lhah5qi39q] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 1rem;
}

.dash-setup-icon[b-lhah5qi39q] {
    font-size: 1.25rem;
    color: var(--b9-primary-text);
    flex-shrink: 0;
    margin-top: 1px;
}

.dash-setup-title[b-lhah5qi39q] {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.3;
}

.dash-setup-sub[b-lhah5qi39q] {
    font-size: 0.8rem;
    color: var(--text-secondary);
    margin-top: 0.15rem;
    line-height: 1.4;
}

.dash-setup-steps[b-lhah5qi39q] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.75rem;
}

/* Individual step card */
.dash-setup-step[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--b9-card-bg);
    border: 1.5px solid var(--b9-card-border);
    border-radius: 10px;
    padding: 0.75rem 0.875rem;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s, border-color 0.15s;
}

a.dash-setup-step--active[b-lhah5qi39q] {
    border-color: color-mix(in srgb, var(--brand, #1d4ed8) 48%, transparent);
    background: color-mix(in srgb, var(--brand, #1d4ed8) 10%, var(--b9-card-bg));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand, #1d4ed8) 20%, transparent);
}

a.dash-setup-step--active:hover[b-lhah5qi39q] {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand, #1d4ed8) 32%, transparent);
    text-decoration: none;
    color: inherit;
}

.dash-setup-step--pending[b-lhah5qi39q] {
    opacity: 0.75;
    cursor: default;
}

.dash-setup-step-num[b-lhah5qi39q] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand, #1d4ed8);
    color: #eaf2ff;
    font-size: 0.8rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.dash-setup-step--pending .dash-setup-step-num[b-lhah5qi39q] {
    background: color-mix(in srgb, var(--b9-card-bg) 65%, #334155 35%);
    color: #94a3b8;
}

.dash-setup-step-body[b-lhah5qi39q] {
    flex: 1;
    min-width: 0;
}

.dash-setup-step-title[b-lhah5qi39q] {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.25;
    margin-bottom: 0.1rem;
}

.dash-setup-step-desc[b-lhah5qi39q] {
    font-size: 0.73rem;
    color: var(--text-secondary);
    line-height: 1.35;
}

.dash-setup-step-arrow[b-lhah5qi39q] {
    color: var(--b9-primary-text);
    flex-shrink: 0;
    font-size: 0.8rem;
}

.dash-setup-step-badge[b-lhah5qi39q] {
    font-size: 0.69rem;
    font-weight: 600;
    color: var(--text-muted);
    flex-shrink: 0;
    white-space: nowrap;
}

/* Collapse to single column on small screens */
@media (max-width: 640px) {
    .dash-setup-steps[b-lhah5qi39q] {
        grid-template-columns: 1fr;
    }
}


/* ═══════════════════════════════════════════════════════════
   DASHBOARD SHELL
═══════════════════════════════════════════════════════════ */
.dash-page[b-lhah5qi39q] {
    padding: 1.5rem 1.75rem 3rem;
    max-width: 1320px;
}


/* ── Header ─────────────────────────────────────────────── */
.dash-header[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.dash-header-left[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

/* .dash-title is gone with the duplicate H1 it styled — the shell header carries the
   page title now. Scoped CSS for a class this component no longer renders is dead
   weight, so it is deleted rather than left to look load-bearing. */

.dash-org-pill[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    font-size: 0.775rem;
    font-weight: 500;
    color: var(--b9-text-soft);
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    border-radius: 20px;
    padding: 0.2rem 0.65rem;
    line-height: 1.5;
}

.dash-header-actions[b-lhah5qi39q] {
    display: flex;
    gap: 0.5rem;
    align-items: center;
    flex-shrink: 0;
}


/* ═══════════════════════════════════════════════════════════
   WHAT IS NEXT (O04 / X09 / rethink R4)

   Five stat tiles used to be here — happening now, players, courses,
   leagues, upcoming — and on a 390px phone they were the whole first
   screen, so the commissioner met "how many things exist" when the
   question was "what do I do now". What sits here instead is the work:
   what is LIVE, then what is NEXT with its unfinished setup as one
   sentence, then what needs attention. The counts moved to .ops-stats
   at the very bottom of the page, and only when they say something.
═══════════════════════════════════════════════════════════ */
.dash-next[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-left: 4px solid var(--b9-primary);
    border-radius: 12px;
    padding: 0.9rem 1.05rem;
    margin-bottom: 1.25rem;
}

.dash-next-kicker[b-lhah5qi39q] {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--b9-text-soft);
}

.dash-next-name[b-lhah5qi39q] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--b9-text);
}

.dash-next-when[b-lhah5qi39q] {
    margin: 0;
    font-size: 0.875rem;
    color: var(--b9-text-muted);
}

/* The one sentence. Full body size, because this is the line that decides
   what happens next and it has to survive being read at arm's length. */
.dash-next-todo[b-lhah5qi39q] {
    margin: 0.15rem 0 0.35rem;
    font-size: 1rem;
    line-height: 1.4;
    color: var(--b9-text);
}

.dash-next-todo--ready[b-lhah5qi39q] {
    color: var(--b9-success-text);
}

/* Secondary by design: this page's one brand fill is "New Event" in the header. */
.dash-next-action[b-lhah5qi39q] {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0.5rem 1rem;
    border: 1px solid var(--b9-border-strong);
    border-radius: 10px;
    background: var(--b9-surface-raised);
    color: var(--b9-text);
    font-weight: 600;
    text-decoration: none;
}

.dash-next-action:hover[b-lhah5qi39q] {
    background: var(--b9-surface-alt);
    color: var(--b9-text);
    text-decoration: none;
}




/* ═══════════════════════════════════════════════════════════
   ATTENTION-NEEDED ROW
═══════════════════════════════════════════════════════════ */
/* No container box — the items float directly on the page background so the
   alerts read as crisp signals rather than a muddy panel. Stacked on a phone:
   each one is a full-width row a thumb cannot miss. */
.dash-attention-row[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    padding: 0;
    background: transparent;
    border: none;
    margin-bottom: 1.25rem;
}

.dash-attention-label[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--b9-text-soft);
    white-space: nowrap;
    flex-shrink: 0;
}

/* A NEEDS-ATTENTION SIGNAL, NOT A BUTTON.
   The tint carries the status; the message stays in ordinary reading ink so it is
   legible in both themes; the status colour appears only on the icon and on the line
   that names the destination. 48px minimum, because this is something a person taps. */
.dash-attention-item[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 48px;
    padding: 0.5rem 0.85rem;
    border-radius: 12px;
    border: 1px solid var(--b9-border);
    color: var(--b9-text);
    text-decoration: none;
    transition: border-color 0.15s;
}

.dash-attention-item:hover[b-lhah5qi39q] { border-color: var(--b9-border-strong); }

.dash-attention-item__icon[b-lhah5qi39q] {
    font-size: 1rem;
    line-height: 1;
    flex-shrink: 0;
}

.dash-attention-item__body[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
}

.dash-attention-item__text[b-lhah5qi39q] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--b9-text);
}

/* Where the tap goes, said out loud. */
.dash-attention-item__go[b-lhah5qi39q] {
    font-size: 0.8125rem;
    font-weight: 600;
}

.dash-attention-item__chev[b-lhah5qi39q] {
    margin-left: auto;
    flex-shrink: 0;
    color: var(--b9-text-soft);
    font-size: 0.9rem;
    line-height: 1;
}

/* Soft status tints — the -soft/-text token pairs, which both themes define.
   Never the solid --b9-danger / --b9-warning fill: a filled red control is this
   product's word for "destructive", and none of these delete anything. */
.dash-attention-item--warning[b-lhah5qi39q] { background: var(--b9-warning-soft); }
.dash-attention-item--warning .dash-attention-item__icon[b-lhah5qi39q],
.dash-attention-item--warning .dash-attention-item__go[b-lhah5qi39q] { color: var(--b9-warning-text); }

.dash-attention-item--danger[b-lhah5qi39q] { background: var(--b9-danger-soft); }
.dash-attention-item--danger .dash-attention-item__icon[b-lhah5qi39q],
.dash-attention-item--danger .dash-attention-item__go[b-lhah5qi39q] { color: var(--b9-danger-text); }

/* Draft events are information, not a warning — a quiet neutral surface. */
.dash-attention-item--muted[b-lhah5qi39q] { background: var(--b9-surface-muted); }
.dash-attention-item--muted .dash-attention-item__icon[b-lhah5qi39q],
.dash-attention-item--muted .dash-attention-item__go[b-lhah5qi39q] { color: var(--b9-text-muted); }

/* On a wide screen they sit side by side again; the 48px height stays. */
@media (min-width: 900px) {
    .dash-attention-row[b-lhah5qi39q] {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
    }

    .dash-attention-item[b-lhah5qi39q] { flex: 0 1 auto; }
    .dash-attention-item__chev[b-lhah5qi39q] { margin-left: 0.35rem; }
}

/* ═══════════════════════════════════════════════════════════
   TWO-COLUMN LAYOUT
═══════════════════════════════════════════════════════════ */
.dash-body[b-lhah5qi39q] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 288px;
    gap: 1.25rem;
    align-items: start;
}

.dash-main[b-lhah5qi39q] {
    min-width: 0;
}

.dash-aside[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: sticky;
    top: 1.25rem;
    min-width: 0;
}


/* ═══════════════════════════════════════════════════════════
   SHARED CARD
═══════════════════════════════════════════════════════════ */
.dash-card[b-lhah5qi39q] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: 12px;
    box-shadow: var(--b9-card-shadow);
    overflow: hidden;
    min-width: 0;
}

.dash-card-header[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid var(--b9-border);
}

.dash-card-title[b-lhah5qi39q] {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--b9-text-muted);
    /* The long card name is what gives, not the two-word link beside it. */
    min-width: 0;
}

/* "All events" is one phrase to a person, so it has to be one phrase to the line breaker too.
   In a space-between card header on a 390px phone the long card title took the room and squeezed
   this link to 75px, which broke it as "All" / "events" — two lines of a two-word link beside a
   heading. Held whole, and allowed to keep its width, it simply sits at the end of the row. */
.dash-see-all[b-lhah5qi39q] {
    font-size: 0.775rem;
    font-weight: 600;
    color: var(--b9-link, var(--b9-primary));
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    white-space: nowrap;
    flex: 0 0 auto;
    transition: color 0.12s;
}

.dash-see-all:hover[b-lhah5qi39q] {
    color: var(--b9-primary-text);
    text-decoration: underline;
}


/* ═══════════════════════════════════════════════════════════
   LIVE ALERT BAR
═══════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════
   LIVE EVENT COMMAND CARDS
═══════════════════════════════════════════════════════════ */

.live-events-section[b-lhah5qi39q] {
    margin-bottom: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    /* Offset so the "Happening Now" tile's #live-now jump doesn't tuck the
       section header under the top bar. */
    scroll-margin-top: 5rem;
}

.live-section-label[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-danger, #DC2626);
}

.live-command-card[b-lhah5qi39q] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    background: var(--bg-elevated);
    border: 1.5px solid var(--danger-soft);
    border-left: 4px solid var(--b9-danger, #DC2626);
    border-radius: 10px;
    padding: 0.875rem 1rem;
    box-shadow: 0 2px 8px rgba(220,38,38,0.12);
}

.live-cmd-left[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    flex: 2 1 22rem;
    min-width: 0;
}

/* The flex item that holds the name and its meta line. Without min-width:0 it refuses to
   shrink below its content, so a long event name pushed the whole dashboard sideways on a
   320px phone — the ellipsis on .live-cmd-name could never engage because its PARENT was
   the one that would not give. */
.live-cmd-text[b-lhah5qi39q] {
    min-width: 0;
}

.live-cmd-badge[b-lhah5qi39q] {
    flex-shrink: 0;
    background: var(--b9-danger, #DC2626);
    color: #fff;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    padding: 3px 7px;
    border-radius: 4px;
    animation: pulse-badge-b-lhah5qi39q 1.6s infinite;
}

@keyframes pulse-badge-b-lhah5qi39q {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.7; }
}

.live-cmd-name[b-lhah5qi39q] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.live-cmd-meta[b-lhah5qi39q] {
    font-size: 0.775rem;
    color: var(--text-muted);
    margin-top: 2px;
    /* The course name and player count wrap rather than widen the card. */
    overflow-wrap: anywhere;
}

/* Neutral chip distinguishing an Event from a League round in the mixed live zone. */
.live-cmd-type[b-lhah5qi39q] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 1px 6px;
    border-radius: 4px;
    background: var(--bg-raised);
    color: var(--text-secondary, var(--text-muted));
    vertical-align: 1px;
}

.live-cmd-actions[b-lhah5qi39q] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    flex: 1 1 16rem;
    min-width: 0;
    max-width: 100%;
}

.live-cmd-actions .btn[b-lhah5qi39q] {
    white-space: nowrap;
}

/* X04/X05 (UX audit 2026-09-06): "Enter Scores" on a live card is the page's main action, so it
   is the brand blue like "New Event" — white on the old green measured 3.3:1, on blue 6.7:1. */
.live-cmd-btn-score[b-lhah5qi39q] {
    background: var(--b9-primary);
    color: var(--player-text-inverse);
    border: none;
    font-weight: 600;
}
.live-cmd-btn-score:hover[b-lhah5qi39q] { background: var(--b9-primary-hover); color: var(--player-text-inverse); }

.live-cmd-btn-lb[b-lhah5qi39q] {
    background: transparent;
    color: var(--warning-text);
    border: 1.5px solid rgba(251,191,36,0.45);
    font-weight: 600;
}
.live-cmd-btn-lb:hover[b-lhah5qi39q] { background: var(--warning-soft); }

.live-cmd-btn-manage[b-lhah5qi39q] {
    background: transparent;
    color: var(--text-muted);
    border: 1.5px solid var(--border-default);
    font-weight: 600;
}
.live-cmd-btn-manage:hover[b-lhah5qi39q] { background: var(--bg-raised); }

/* Keep the dot animation available for live-section-label */
.live-dot[b-lhah5qi39q] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--b9-danger, #DC2626);
    flex-shrink: 0;
    animation: pulse-live-b-lhah5qi39q 1.6s infinite;
}

@keyframes pulse-live-b-lhah5qi39q {
    0%   { box-shadow: 0 0 0 0   rgba(220,38,38,0.5); }
    70%  { box-shadow: 0 0 0 6px rgba(220,38,38,0); }
    100% { box-shadow: 0 0 0 0   rgba(220,38,38,0); }
}


/* ═══════════════════════════════════════════════════════════
   EVENTS TABLE
═══════════════════════════════════════════════════════════ */
.etable-wrap[b-lhah5qi39q] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.etable[b-lhah5qi39q] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8125rem;
    table-layout: fixed;
}

.etable thead th[b-lhah5qi39q] {
    padding: 0.55rem 1rem;
    text-align: left;
    font-size: 0.69rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--b9-text-muted);
    /* No dark header strip — sits on the card surface for a lighter, more
       readable header. */
    background: transparent;
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
}

.etable thead th:last-child[b-lhah5qi39q] {
    text-align: right;
}

.etable th:nth-child(1)[b-lhah5qi39q],
.etable td:nth-child(1)[b-lhah5qi39q] { width: 35%; }

.etable th:nth-child(2)[b-lhah5qi39q],
.etable td:nth-child(2)[b-lhah5qi39q] { width: 16%; }

.etable th:nth-child(3)[b-lhah5qi39q],
.etable td:nth-child(3)[b-lhah5qi39q] { width: 12%; }

.etable th:nth-child(4)[b-lhah5qi39q],
.etable td:nth-child(4)[b-lhah5qi39q] { width: 13%; }

.etable th:nth-child(5)[b-lhah5qi39q],
.etable td:nth-child(5)[b-lhah5qi39q] { width: 24%; }

.etable tbody tr[b-lhah5qi39q] {
    /* Barely-there divider — rows are separated by whitespace, not hard lines. */
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    transition: background 0.1s;
}

.etable tbody tr:last-child[b-lhah5qi39q] {
    border-bottom: none;
}

.etable tbody tr:hover[b-lhah5qi39q] {
    background: var(--b9-surface-muted);
}

/* Live row: left accent + faint tint */
.erow-live[b-lhah5qi39q] {
    border-left: 3px solid var(--b9-danger);
    background: rgba(220, 38, 38, 0.03);
}

.etable td[b-lhah5qi39q] {
    padding: 0.75rem 1rem;
    color: var(--b9-text);
    vertical-align: middle;
}

/* Name + course stacked */
.etd-name[b-lhah5qi39q] {
    min-width: 180px;
}

.etd-name-link[b-lhah5qi39q] {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--b9-text);
    text-decoration: none;
    line-height: 1.3;
    transition: color 0.1s;
}

.etd-name-link:hover[b-lhah5qi39q] {
    color: var(--b9-primary-text);
    text-decoration: none;
}

/* Live row: name anchors the scan */
.erow-live .etd-name-link[b-lhah5qi39q] {
    font-weight: 700;
}

.etd-course[b-lhah5qi39q] {
    display: block;
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-top: 0.1rem;
    line-height: 1.2;
}

.etd-date[b-lhah5qi39q] {
    white-space: nowrap;
    color: var(--b9-text-muted);
    font-size: 0.8rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.etd-players[b-lhah5qi39q] {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    color: var(--b9-text-muted);
    font-size: 0.8rem;
    overflow: hidden;
    text-overflow: ellipsis;
}

.etd-status-cell[b-lhah5qi39q] {
    white-space: nowrap;
}

.etd-actions[b-lhah5qi39q] {
    min-width: 0;
}

.etd-primary-action[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 0.45rem 0.75rem;
    min-height: 34px;
    border-radius: 8px;
    font-size: 0.76rem;
    font-weight: 700;
    color: var(--b9-primary-text);
    text-decoration: none;
    background: var(--b9-primary-soft);
    border: 1px solid transparent;
    transition: background 0.1s, color 0.1s, border-color 0.1s;
    white-space: nowrap;
    line-height: 1.2;
    box-shadow: inset 0 0 0 1px rgba(22, 163, 74, 0.08);
}

.etd-primary-action:hover[b-lhah5qi39q] {
    background: var(--success-soft);
    color: var(--b9-primary-text);
    text-decoration: none;
}

.etd-primary-action-live[b-lhah5qi39q] {
    background: var(--b9-primary);
    color: var(--player-text-inverse);
    box-shadow: none;
}

.etd-primary-action-live:hover[b-lhah5qi39q] {
    background: var(--b9-primary-hover);
    color: var(--player-text-inverse);
    text-decoration: none;
}

.etd-secondary-actions[b-lhah5qi39q] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0;
    margin-top: 0.4rem;
}

/* Quiet text links (dot-separated) rather than repeated bordered pills. */
.etd-secondary-action[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0;
    border: none;
    background: transparent;
    color: var(--b9-text-soft);
    font-size: 0.72rem;
    font-weight: 500;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.12s;
}

.etd-secondary-action:not(:first-child)[b-lhah5qi39q]::before {
    content: "·";
    margin: 0 0.45rem;
    color: var(--b9-text-soft);
    opacity: 0.5;
}

.etd-secondary-action:hover[b-lhah5qi39q] {
    background: transparent;
    color: var(--b9-text);
    text-decoration: none;
}

.etd-secondary-action-lb:hover[b-lhah5qi39q] {
    background: transparent;
    color: var(--b9-warning-text);
}

/* Calm (non-live) row actions — quiet, dot-separated text links. */
.etd-calm-actions[b-lhah5qi39q] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 0;
}

.etd-calm-action[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    padding: 0.1rem 0;
    border: none;
    background: transparent;
    color: var(--b9-text-soft);
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.15;
    text-decoration: none;
    white-space: nowrap;
    transition: color 0.12s;
}

.etd-calm-action:not(:first-child)[b-lhah5qi39q]::before {
    content: "·";
    margin: 0 0.45rem;
    color: var(--b9-text-soft);
    opacity: 0.5;
}

.etd-calm-action:hover[b-lhah5qi39q] {
    background: transparent;
    color: var(--b9-text);
    text-decoration: none;
}

/* Table footer */
.etable-footer[b-lhah5qi39q] {
    padding: 0.625rem 1rem;
    border-top: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
    text-align: right;
}


/* ── Status badges ──────────────────────────────────────── */
.estatus[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    font-size: 0.69rem;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 20px;
    white-space: nowrap;
    letter-spacing: 0.02em;
}

.estatus-active[b-lhah5qi39q]    { background: var(--b9-danger-soft);      color: var(--b9-danger-text); }
.estatus-open[b-lhah5qi39q]      { background: var(--b9-success-soft);     color: var(--b9-success-text); }
.estatus-draft[b-lhah5qi39q]     { background: var(--b9-surface-muted);    color: var(--b9-text-soft); border: 1px solid var(--b9-border); }
.estatus-closed[b-lhah5qi39q]    { background: var(--b9-info-soft);        color: var(--b9-info-text); }
.estatus-cancelled[b-lhah5qi39q] { background: var(--b9-surface-muted);    color: var(--b9-text-soft); }
/* X14 — the day has been and gone and nobody started, moved or closed it. Amber, not red. */
.estatus-passed[b-lhah5qi39q]    { background: var(--b9-warning-soft);     color: var(--b9-warning-text); }

/* Live badge: pulsing dot prefix */
.estatus-active[b-lhah5qi39q]::before {
    content: '';
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
    margin-right: 5px;
    animation: pulse-live-b-lhah5qi39q 1.6s infinite;
}


/* ═══════════════════════════════════════════════════════════
   EMPTY STATE
═══════════════════════════════════════════════════════════ */
.dash-empty[b-lhah5qi39q] {
    text-align: center;
    padding: 2.5rem 1.5rem;
}

.dash-empty-icon[b-lhah5qi39q] {
    font-size: 2rem;
    color: var(--b9-text-soft);
    display: block;
    margin-bottom: 0.625rem;
}

.dash-empty-title[b-lhah5qi39q] {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--b9-text);
    margin-bottom: 0.25rem;
}

.dash-empty-text[b-lhah5qi39q] {
    font-size: 0.825rem;
    color: var(--b9-text-muted);
    margin-bottom: 0;
}


/* ═══════════════════════════════════════════════════════════
   ASIDE: QUICK ACTIONS
═══════════════════════════════════════════════════════════ */
/* 2×2 grid of flat square buttons — icon centered above the label. Saves
   vertical space and reads as a modern action launcher. */
.qa-list[b-lhah5qi39q] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    padding: 0.625rem;
}

.qa-item[b-lhah5qi39q] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 0.4rem;
    padding: 0.85rem 0.5rem;
    min-height: 78px;
    border-radius: 10px;
    border: 1px solid var(--b9-card-border);
    background: var(--b9-surface-muted);
    text-decoration: none;
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--b9-text);
    transition: background 0.1s, color 0.1s, border-color 0.1s;
    line-height: 1.25;
}

.qa-item:hover[b-lhah5qi39q] {
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    border-color: var(--b9-primary);
    text-decoration: none;
}

.qa-item-icon[b-lhah5qi39q] {
    font-size: 1.15rem;
    width: auto;
    text-align: center;
    flex-shrink: 0;
    opacity: 0.85;
}

/* Onboarding primary CTA: spans the full width as a horizontal accent button. */
.qa-item--primary[b-lhah5qi39q],
.qa-item-primary[b-lhah5qi39q] {
    grid-column: 1 / -1;
    flex-direction: row;
    gap: 0.5rem;
    min-height: 0;
    padding: 0.65rem 0.75rem;
    background: var(--b9-primary);
    color: #fff !important;
    font-weight: 600;
    border-color: transparent;
}

.qa-item--primary:hover[b-lhah5qi39q],
.qa-item-primary:hover[b-lhah5qi39q] {
    background: var(--b9-primary-hover) !important;
    color: #fff !important;
    border-color: transparent;
}

.qa-item--primary .qa-item-icon[b-lhah5qi39q],
.qa-item-primary .qa-item-icon[b-lhah5qi39q] {
    opacity: 1;
}

/* Hint text inside Quick Action items (e.g. "← Start here") */
.qa-item-hint[b-lhah5qi39q] {
    font-size: 0.69rem;
    font-weight: 500;
    opacity: 0.75;
    margin-left: 0.25rem;
}

/* ═══════════════════════════════════════════════════════════
   ASIDE: TONIGHT COMMAND CARD
═══════════════════════════════════════════════════════════ */
.tonight-body[b-lhah5qi39q] {
    padding: 0.85rem 1rem 1rem;
    display: grid;
    gap: 0.55rem;
}

.tonight-empty[b-lhah5qi39q] {
    padding: 1rem;
    color: var(--b9-text-muted);
    font-size: 0.82rem;
}

.tonight-league[b-lhah5qi39q] {
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--b9-text-soft);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.tonight-round[b-lhah5qi39q] {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--b9-text);
}

.tonight-date[b-lhah5qi39q] {
    font-size: 0.76rem;
    color: var(--b9-text-muted);
}

.tonight-status-row[b-lhah5qi39q] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.tonight-chip[b-lhah5qi39q] {
    font-size: 0.69rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 999px;
    border: 1px solid var(--b9-border);
}

.tonight-chip-ok[b-lhah5qi39q] {
    background: var(--b9-success-soft);
    color: var(--b9-success-text);
}

.tonight-chip-warn[b-lhah5qi39q] {
    background: var(--b9-warning-soft);
    color: var(--b9-warning-text);
}

.tonight-chip-neutral[b-lhah5qi39q] {
    background: var(--b9-surface-muted);
    color: var(--b9-text-soft);
}

.tonight-cta[b-lhah5qi39q] {
    margin-top: 0.15rem;
    /* Subtle vertical gradient (lighter top → deep primary) so the full-width
       blue button has depth instead of reading as one flat, vibrating block. */
    background: linear-gradient(180deg, var(--b9-primary-hover) 0%, var(--b9-primary) 100%);
    border: 1px solid var(--b9-primary);
}

.tonight-cta:hover[b-lhah5qi39q] {
    background: linear-gradient(180deg, var(--b9-primary-hover) 0%, var(--b9-primary-hover) 100%);
    border-color: var(--b9-primary-hover);
}


/* ═══════════════════════════════════════════════════════════
   ASIDE: NEXT UP WIDGET
═══════════════════════════════════════════════════════════ */
.nextup-card[b-lhah5qi39q] {
    /* Widen the aside just enough for the widget to breathe */
}

/* ── Event rows ─────────────────────────────────────────── */
.nextup-list[b-lhah5qi39q] {
    padding: 0.25rem 0;
}

.nextup-row[b-lhah5qi39q] {
    padding: 0.875rem 1rem;
}

.nextup-divider[b-lhah5qi39q] {
    height: 1px;
    background: var(--b9-border);
    margin: 0 1rem;
}

/* ── Top: name + countdown ──────────────────────────────── */
.nextup-top[b-lhah5qi39q] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}

.nextup-name-wrap[b-lhah5qi39q] {
    min-width: 0;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.nextup-name[b-lhah5qi39q] {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--b9-text);
    text-decoration: none;
    line-height: 1.3;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: color 0.12s;
}

.nextup-name:hover[b-lhah5qi39q] {
    color: var(--b9-primary-text);
    text-decoration: none;
}

.nextup-fmt[b-lhah5qi39q] {
    font-size: 0.69rem;
    font-weight: 600;
    color: var(--b9-info-text);
    background: var(--b9-info-soft);
    border-radius: 4px;
    padding: 1px 5px;
    display: inline-block;
    width: fit-content;
}

/* ── Countdown badge ────────────────────────────────────── */
.nextup-countdown[b-lhah5qi39q] {
    font-size: 0.69rem;
    font-weight: 800;
    border-radius: 5px;
    padding: 2px 7px;
    white-space: nowrap;
    flex-shrink: 0;
    letter-spacing: 0.03em;
    line-height: 1.5;
}

.cd-today[b-lhah5qi39q]  { background: var(--b9-danger-soft);   color: var(--b9-danger-text);  }
.cd-soon[b-lhah5qi39q]   { background: var(--b9-warning-soft);  color: var(--b9-warning-text); }
.cd-far[b-lhah5qi39q]    { background: var(--b9-surface-muted); color: var(--b9-text-muted);   border: 1px solid var(--b9-border); }
.cd-past[b-lhah5qi39q]   { background: var(--b9-surface-muted); color: var(--b9-text-soft);    }

/* ── Meta line ──────────────────────────────────────────── */
.nextup-meta[b-lhah5qi39q] {
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-bottom: 0.625rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Registration progress ──────────────────────────────── */
.nextup-reg[b-lhah5qi39q] {
    margin-bottom: 0.625rem;
}

.nextup-reg-header[b-lhah5qi39q] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 4px;
}

.nextup-reg-label[b-lhah5qi39q] {
    font-size: 0.75rem;
    color: var(--b9-text-muted);
    display: flex;
    align-items: center;
    gap: 4px;
}

.nextup-reg-pct[b-lhah5qi39q] {
    font-size: 0.69rem;
    font-weight: 700;
    color: var(--b9-text-soft);
}

.nextup-reg-pct-full[b-lhah5qi39q] {
    color: var(--b9-danger-text);
}

.nextup-full-badge[b-lhah5qi39q] {
    font-size: 0.69rem;
    font-weight: 700;
    background: var(--b9-danger-soft);
    color: var(--b9-danger-text);
    border-radius: 4px;
    padding: 1px 5px;
}

/* Progress bar track */
.nextup-progress[b-lhah5qi39q] {
    height: 5px;
    background: var(--b9-border);
    border-radius: 99px;
    overflow: hidden;
}

/* Progress bar fill */
.nextup-progress-fill[b-lhah5qi39q] {
    height: 100%;
    background: var(--b9-primary);
    border-radius: 99px;
    transition: width 0.4s ease;
    min-width: 2px;
}

.nextup-progress-warn[b-lhah5qi39q] { background: var(--b9-warning); }
.nextup-progress-full[b-lhah5qi39q] { background: var(--b9-danger);  }

/* Simple count (no max) */
.nextup-reg-simple[b-lhah5qi39q] {
    font-size: 0.75rem;
    color: var(--b9-text-soft);
    margin-bottom: 0.5rem;
}

/* ── Action links ───────────────────────────────────────── */
.nextup-actions[b-lhah5qi39q] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    margin-top: 0.125rem;
}

.nextup-btn[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 3px 9px;
    border-radius: 5px;
    text-decoration: none;
    transition: background 0.12s, color 0.12s;
    line-height: 1.5;
    white-space: nowrap;
}

.nextup-btn-primary[b-lhah5qi39q] {
    background: var(--b9-primary);
    color: #fff;
}

.nextup-btn-primary:hover[b-lhah5qi39q] {
    background: var(--b9-primary-hover);
    color: #fff;
    text-decoration: none;
}

.nextup-btn-ghost[b-lhah5qi39q] {
    background: var(--b9-surface-muted);
    color: var(--b9-text-muted);
    border: 1px solid var(--b9-border);
}

.nextup-btn-ghost:hover[b-lhah5qi39q] {
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    border-color: transparent;
    text-decoration: none;
}

/* ── Empty state ────────────────────────────────────────── */
.nextup-empty[b-lhah5qi39q] {
    text-align: center;
    padding: 1.75rem 1rem;
    color: var(--b9-text-muted);
}

.nextup-empty .bi[b-lhah5qi39q] {
    font-size: 1.625rem;
    display: block;
    margin-bottom: 0.5rem;
    opacity: 0.35;
}

.nextup-empty p[b-lhah5qi39q] {
    font-size: 0.8125rem;
    margin: 0;
}

/* ── Footer: compact status chips ───────────────────────── */
.nextup-footer[b-lhah5qi39q] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.5rem 1rem 0.625rem;
    border-top: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
}

.nuf-chip[b-lhah5qi39q] {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.725rem;
    font-weight: 600;
    color: var(--b9-text-muted);
}

.nuf-dot[b-lhah5qi39q] {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.nuf-dot-draft[b-lhah5qi39q] { background: var(--b9-border-strong); }
.nuf-dot-open[b-lhah5qi39q]  { background: var(--b9-success); }

.nuf-link[b-lhah5qi39q] {
    font-size: 0.725rem;
    font-weight: 600;
    /* Contrast-safe link token (see .auth-forgot-link note). */
    color: var(--b9-link);
    text-decoration: none;
    margin-left: auto;
}

.nuf-link:hover[b-lhah5qi39q] { text-decoration: underline; }


/* ═══════════════════════════════════════════════════════════
   RESPONSIVE
═══════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
    .dash-body[b-lhah5qi39q] {
        grid-template-columns: 1fr;
    }

    .dash-aside[b-lhah5qi39q] {
        position: static;
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
        gap: 1rem;
    }
}

@media (max-width: 1360px) {
    .live-cmd-actions[b-lhah5qi39q] {
        width: 100%;
        justify-content: flex-start;
    }

    .etable th:nth-child(2)[b-lhah5qi39q],
    .etable td:nth-child(2)[b-lhah5qi39q],
    .etable th:nth-child(3)[b-lhah5qi39q],
    .etable td:nth-child(3)[b-lhah5qi39q] {
        display: none;
    }

    .etable th:nth-child(1)[b-lhah5qi39q],
    .etable td:nth-child(1)[b-lhah5qi39q] { width: 44%; }

    .etable th:nth-child(4)[b-lhah5qi39q],
    .etable td:nth-child(4)[b-lhah5qi39q] { width: 18%; }

    .etable th:nth-child(5)[b-lhah5qi39q],
    .etable td:nth-child(5)[b-lhah5qi39q] { width: 38%; }
}

@media (max-width: 767px) {
    .dash-page[b-lhah5qi39q] {
        padding: 1rem 1rem 2rem;
    }

    /* X14 — every other status on this table is ONE word. "Date passed" is two, and these
       columns cannot widen for it: measured at 390px the nowrap pill ran 88px out of a 47px
       slot and sat on top of the "View Details" link beside it. It stacks onto two lines here
       instead, which brings it back to the width the one-word pills occupy. Full size — a pill
       nobody can read is not a fix. */
    .estatus-passed[b-lhah5qi39q] {
        white-space: normal;
        max-width: 4.6rem;
        text-align: center;
        line-height: 1.12;
    }

    .etd-date[b-lhah5qi39q],
    .etd-format[b-lhah5qi39q],
    .etd-players[b-lhah5qi39q] {
        display: none;
    }

    .dash-aside[b-lhah5qi39q] {
        grid-template-columns: 1fr;
    }

    .dash-onboard[b-lhah5qi39q] {
        padding: 1.25rem 0.8rem;
        min-height: auto;
    }

    .dash-onboard-card[b-lhah5qi39q] {
        padding: 1.3rem 1rem;
    }

    .dash-onboard-step[b-lhah5qi39q] {
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 0.7rem;
    }

    .dash-step-action[b-lhah5qi39q],
    .dash-step-badge[b-lhah5qi39q] {
        width: 100%;
    }

    .dash-step-action[b-lhah5qi39q] {
        justify-content: center;
    }
}

/* /Components/Pages/JoinInvitation.razor.rz.scp.css */
/* Extracted inline styles (Blazor audit Batch G). */
.ji-error-box[b-qnt4vxhp9s] { border-left-color: var(--b9-danger); }
.ji-emoji[b-qnt4vxhp9s] { font-size: 2.5rem; margin-bottom: 0.5rem; }
/* /Components/Pages/Leagues/AttendanceStatusCard.razor.rz.scp.css */
.wrd-mini-card[b-dflgjx8ut6] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1, .25rem);
}

.wrd-mini-label[b-dflgjx8ut6] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
}

.wrd-mini-value[b-dflgjx8ut6] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}

.wrd-mini-link[b-dflgjx8ut6],
.wrd-mini-sub[b-dflgjx8ut6] {
    font-size: .78rem;
    color: var(--text-secondary);
}
/* /Components/Pages/Leagues/CommissionerCommandCenter.razor.rz.scp.css */
/* ============================================================
   CommissionerCommandCenter.razor.css
   Commissioner Command Center — State+Action-first layout.
   Uses b9 design tokens. Dense but readable.
   ============================================================ */

/* ── Page shell ── */
.ccc-page[b-g3mity3656] {
    max-width: 900px;
    margin: 0 auto;
    padding: var(--space-4) var(--space-3) var(--space-8);
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.ccc-loading[b-g3mity3656],
.ccc-error[b-g3mity3656] {
    text-align: center;
    padding: var(--space-10) var(--space-4);
    color: var(--b9-text-secondary);
}

.ccc-loading-spinner[b-g3mity3656] {
    width: 36px;
    height: 36px;
    margin: 0 auto var(--space-3);
    border: 3px solid var(--b9-border);
    border-top-color: var(--b9-accent);
    border-radius: 50%;
    animation: spin-b-g3mity3656 0.7s linear infinite;
}

@keyframes spin-b-g3mity3656 { to { transform: rotate(360deg); } }

/* ── Breadcrumb ── */
.ccc-breadcrumb[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 0.85rem;
    color: var(--b9-text-secondary);
}

.ccc-back-link[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    color: var(--b9-text-secondary);
    text-decoration: none;
    transition: color 140ms;
}

.ccc-back-link:hover[b-g3mity3656] { color: var(--b9-text); }

/* 🔴 --b9-border-strong is a BACKGROUND/EDGE tint, not an ink. In dark it resolves through
   --border-default to rgba(255,255,255,0.10), so the "/" between the breadcrumbs measured
   1.23:1 on the shipped default theme and 1.41:1 in light. A separator is text and is held
   to 4.5:1; --b9-text-soft is the quietest token that is actually meant to be read.

   BackgroundTintTokensAreNotUsedAsTextGuardTests exists to catch exactly this and did not,
   because its token reader stops at the first literal and does not follow var() chains —
   --b9-border-strong's dark value is `var(--border-default)`, not an rgba() it could see.
   That hole is fixed in the same commit as this line; the guard now names this site. */
.ccc-breadcrumb-sep[b-g3mity3656] { color: var(--b9-text-soft); }

.ccc-breadcrumb-current[b-g3mity3656] {
    color: var(--b9-text);
    font-weight: 600;
}

/* Compact round-state chip inline with the breadcrumb */
.ccc-breadcrumb-status[b-g3mity3656] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.15rem 0.6rem;
    border-radius: 100px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    white-space: nowrap;
    border-width: 1px;
    border-style: solid;
    margin-left: var(--space-2);
    /* colour tokens are inherited from .ccc-state-* siblings */
}

/* ── Alert banner ── */
.ccc-alert[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    font-size: 0.9rem;
    border-left: 4px solid transparent;
}

.ccc-alert--success[b-g3mity3656] {
    background: var(--color-success-subtle);
    border-left-color: var(--color-success);
    color: var(--b9-text);
}

.ccc-alert--danger[b-g3mity3656] {
    background: var(--color-danger-subtle);
    border-left-color: var(--color-danger);
    color: var(--b9-text);
}

.ccc-alert--info[b-g3mity3656] {
    background: var(--b9-surface-raised);
    border-left-color: var(--b9-accent);
    color: var(--b9-text);
}

.ccc-alert--warning[b-g3mity3656] {
    background: var(--color-warn-subtle);
    border-left-color: var(--color-warn);
    color: var(--b9-text);
}

.ccc-mp-steps[b-g3mity3656] {
    margin: 0;
    padding-left: 1.25rem;
    display: grid;
    gap: var(--space-2);
}

.ccc-mp-step[b-g3mity3656] {
    color: var(--b9-text);
}

.ccc-mp-step__title[b-g3mity3656] {
    display: block;
    font-weight: 700;
}

.ccc-mp-step__state[b-g3mity3656] {
    display: block;
    font-size: 0.82rem;
    color: var(--b9-text-secondary);
}

.ccc-alert-dismiss[b-g3mity3656] {
    margin-left: auto;
    background: none;
    border: none;
    color: var(--b9-text-secondary);
    cursor: pointer;
    padding: 0 var(--space-1);
    font-size: 1.1rem;
    line-height: 1;
    opacity: 0.7;
    transition: opacity 140ms;
}

.ccc-alert-dismiss:hover[b-g3mity3656] { opacity: 1; }

/* ── Hero banner ── */
.ccc-hero[b-g3mity3656] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-4);
    background: var(--b9-surface-raised);
    border: 1px solid var(--b9-border);
    border-radius: var(--radius-lg);
    padding: var(--space-5) var(--space-5);
    flex-wrap: wrap;
}

.ccc-hero-kicker[b-g3mity3656] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-text-secondary);
    margin-bottom: var(--space-1);
}

.ccc-hero-title[b-g3mity3656] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--b9-text);
    margin: 0 0 var(--space-2);
    line-height: 1.2;
}

.ccc-hero-meta[b-g3mity3656] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    font-size: 0.85rem;
    color: var(--b9-text-secondary);
}

.ccc-meta-item[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

.ccc-hero-right[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: var(--space-2);
    min-width: 160px;
}

/* ── Week state badge ── */
.ccc-state-badge[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-2) var(--space-4);
    border-radius: 100px;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    white-space: nowrap;
}

.ccc-state-notready[b-g3mity3656]  { background: var(--color-danger-subtle);   color: var(--color-danger);  border: 1px solid var(--color-danger); }
.ccc-state-ready[b-g3mity3656]     { background: var(--color-success-subtle);  color: var(--color-success); border: 1px solid var(--color-success); }
.ccc-state-progress[b-g3mity3656]  { background: var(--b9-surface-raised);     color: var(--b9-primary-text);     border: 1px solid var(--b9-accent); }
.ccc-state-live[b-g3mity3656]      { background: var(--color-success-subtle);  color: var(--color-success); border: 1px solid var(--color-success); animation: pulse-live-b-g3mity3656 2s ease-in-out infinite; }
.ccc-state-finalize[b-g3mity3656]  { background: var(--color-warn-subtle);     color: var(--color-warn);    border: 1px solid var(--color-warn); }
.ccc-state-final[b-g3mity3656]     { background: var(--b9-surface-raised);     color: var(--b9-text-secondary); border: 1px solid var(--b9-border-strong); }

@keyframes pulse-live-b-g3mity3656 {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.75; }
}

.ccc-state-guidance[b-g3mity3656] {
    font-size: 0.8rem;
    color: var(--b9-text-secondary);
    text-align: right;
    max-width: 220px;
    line-height: 1.4;
    margin: 0;
}

/* ── Sections ── */
.ccc-section[b-g3mity3656] {
    background: var(--b9-surface-raised);
    border: 1px solid var(--b9-border);
    border-radius: var(--radius-lg);
    padding: var(--space-4) var(--space-5);
}

/* ── Four-card summary strip ── */
.ccc-summary-strip[b-g3mity3656] {
    padding: var(--space-3) var(--space-4);
}

.ccc-summary-grid[b-g3mity3656] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-2);
}

.ccc-summary-card[b-g3mity3656] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: var(--radius-md);
    padding: var(--space-3);
    min-width: 0;
}

.ccc-summary-title[b-g3mity3656] {
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--b9-text-secondary);
    margin: 0 0 var(--space-1);
}

.ccc-summary-headline[b-g3mity3656] {
    font-size: 0.92rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--b9-text);
    margin: 0 0 4px;
}

.ccc-summary-detail[b-g3mity3656] {
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--b9-text-secondary);
    margin: 0;
}

.ccc-summary-hint[b-g3mity3656] {
    font-size: 0.75rem;
    color: var(--b9-text-secondary);
    margin: var(--space-2) 0 0;
}

.ccc-section-head[b-g3mity3656] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-4);
    flex-wrap: wrap;
    gap: var(--space-2);
}

.ccc-section-title[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    font-size: 1rem;
    font-weight: 700;
    color: var(--b9-text);
    margin: 0 0 var(--space-4);
}

.ccc-section-head .ccc-section-title[b-g3mity3656] {
    margin: 0;
}

.ccc-checklist-score[b-g3mity3656] {
    font-size: 0.85rem;
    color: var(--b9-text-secondary);
    background: var(--b9-surface);
    padding: var(--space-1) var(--space-3);
    border-radius: 100px;
    border: 1px solid var(--b9-border);
}

.ccc-checklist-intro[b-g3mity3656] {
    margin: 0 0 var(--space-3);
    font-size: 0.78rem;
    color: var(--b9-text-secondary);
    line-height: 1.35;
}

/* ── Readiness checklist ── */
.ccc-checklist[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ccc-checklist-item[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    border-radius: var(--radius-md);
    border: 1px solid var(--b9-border);
    background: var(--b9-surface);
    transition: border-color 160ms;
    flex-wrap: wrap;
}

.ccc-check--pass[b-g3mity3656]    { border-left: 3px solid var(--color-success); }
.ccc-check--fail[b-g3mity3656]    { border-left: 3px solid var(--color-danger);  background: var(--color-danger-subtle); }
.ccc-check--neutral[b-g3mity3656] { border-left: 3px solid var(--b9-border-strong); }
.ccc-check--progress[b-g3mity3656] { border-left: 3px solid var(--b9-accent); }

.ccc-check-icon[b-g3mity3656] {
    font-size: 1.1rem;
    flex-shrink: 0;
    line-height: 1;
}

.ccc-check--pass    .ccc-check-icon[b-g3mity3656] { color: var(--color-success); }
.ccc-check--fail    .ccc-check-icon[b-g3mity3656] { color: var(--color-danger); }
.ccc-check--neutral .ccc-check-icon[b-g3mity3656] { color: var(--b9-text-secondary); }
.ccc-check--progress .ccc-check-icon[b-g3mity3656] { color: var(--b9-primary-text); }

.ccc-check-body[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1;
    min-width: 0;
}

.ccc-check-label[b-g3mity3656] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--b9-text);
}

.ccc-check-detail[b-g3mity3656] {
    font-size: 0.8rem;
    color: var(--b9-text-secondary);
}

.ccc-check-action[b-g3mity3656] {
    flex-shrink: 0;
    white-space: nowrap;
}

/* ── Primary Action Grid ── */
.ccc-actions-grid[b-g3mity3656] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: var(--space-3);
    margin-bottom: var(--space-4);
}

.ccc-action-intro[b-g3mity3656] {
    margin: 0 0 var(--space-3);
    font-size: 0.8rem;
    color: color-mix(in srgb, var(--b9-text) 72%, var(--b9-text-secondary) 28%);
    line-height: 1.35;
}

.ccc-action-btn[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-3);
    border-radius: var(--radius-lg);
    border: 2px solid transparent;
    cursor: pointer;
    text-align: center;
    transition: transform 120ms, box-shadow 140ms, border-color 140ms;
    background: var(--b9-surface);
    font-family: inherit;
    min-height: 110px;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}

.ccc-action-state[b-g3mity3656] {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 3px var(--space-2);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    border: 1px solid transparent;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}

.ccc-action-state--ready[b-g3mity3656] {
    color: color-mix(in srgb, white 18%, var(--color-success) 82%);
    background: color-mix(in srgb, var(--color-success) 18%, var(--b9-surface));
    border-color: color-mix(in srgb, var(--color-success) 62%, transparent);
}

.ccc-action-state--blocked[b-g3mity3656] {
    color: color-mix(in srgb, var(--b9-text) 82%, var(--b9-text-secondary) 18%);
    background: color-mix(in srgb, var(--b9-border-strong) 16%, var(--b9-surface-raised));
    border-color: color-mix(in srgb, var(--b9-border-strong) 68%, transparent);
}

.ccc-action-btn--recommended[b-g3mity3656] {
    border-color: color-mix(in srgb, var(--b9-accent) 70%, transparent);
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--b9-accent) 34%, transparent), inset 0 1px 0 rgba(255,255,255,0.04);
}

.ccc-action-btn:not(:disabled):hover[b-g3mity3656] {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}

.ccc-action-btn .bi[b-g3mity3656] {
    font-size: 1.7rem;
    line-height: 1;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,0.35));
}

.ccc-action-label[b-g3mity3656] {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--b9-text);
    line-height: 1.2;
}

.ccc-action-hint[b-g3mity3656] {
    font-size: 0.75rem;
    color: color-mix(in srgb, var(--b9-text) 70%, var(--b9-text-secondary) 30%);
    line-height: 1.3;
}

.ccc-action-btn--primary[b-g3mity3656] {
    border-color: var(--b9-accent);
    background: color-mix(in srgb, var(--b9-accent) 10%, var(--b9-surface));
}

.ccc-action-btn--primary .bi[b-g3mity3656] { color: var(--b9-primary-text); }

.ccc-action-btn--success[b-g3mity3656] {
    border-color: var(--color-success);
    background: var(--color-success-subtle);
}

.ccc-action-btn--success .bi[b-g3mity3656] { color: color-mix(in srgb, white 12%, var(--color-success) 88%); }

.ccc-action-btn--warning[b-g3mity3656] {
    border-color: var(--color-warn);
    background: var(--color-warn-subtle);
}

.ccc-action-btn--warning .bi[b-g3mity3656] { color: color-mix(in srgb, white 10%, var(--color-warn) 90%); }

.ccc-action-btn--danger[b-g3mity3656] {
    border-color: var(--color-danger);
    background: var(--color-danger-subtle);
}

.ccc-action-btn--danger .bi[b-g3mity3656] { color: color-mix(in srgb, white 10%, var(--color-danger) 90%); }

.ccc-action-btn--info[b-g3mity3656] {
    border-color: var(--b9-border-strong);
    background: color-mix(in srgb, var(--b9-surface-raised) 78%, var(--b9-surface) 22%);
}

.ccc-action-btn--complete[b-g3mity3656] {
    border-color: var(--color-success);
    background: var(--color-success-subtle);
    cursor: default;
}

.ccc-action-btn--complete .bi[b-g3mity3656] { color: var(--color-success); }

.ccc-action-btn--disabled[b-g3mity3656],
.ccc-action-btn:disabled[b-g3mity3656] {
    border-color: color-mix(in srgb, var(--b9-border-strong) 72%, transparent);
    background: color-mix(in srgb, var(--b9-surface-raised) 68%, var(--b9-surface) 32%);
    opacity: 0.88;
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--b9-border-strong) 78%, transparent);
    cursor: not-allowed;
}

.ccc-action-btn--disabled .bi[b-g3mity3656],
.ccc-action-btn:disabled .bi[b-g3mity3656] {
    color: color-mix(in srgb, var(--b9-text) 48%, var(--b9-text-secondary) 52%);
}

.ccc-action-btn--disabled .ccc-action-label[b-g3mity3656],
.ccc-action-btn:disabled .ccc-action-label[b-g3mity3656] {
    color: color-mix(in srgb, var(--b9-text) 88%, var(--b9-text-secondary) 12%);
}

.ccc-action-btn--disabled .ccc-action-hint[b-g3mity3656],
.ccc-action-btn:disabled .ccc-action-hint[b-g3mity3656] {
    color: color-mix(in srgb, var(--b9-text) 58%, var(--b9-text-secondary) 42%);
}

.ccc-secondary-actions-intro[b-g3mity3656] {
    margin: 0 0 var(--space-2);
    font-size: 0.78rem;
    color: color-mix(in srgb, var(--b9-text) 68%, var(--b9-text-secondary) 32%);
}

.ccc-secondary-actions[b-g3mity3656] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding-top: var(--space-3);
    border-top: 1px solid var(--b9-border);
}

/* ── Live Scoring Visibility ── */
.ccc-live-indicator[b-g3mity3656] {
    display: inline-block;
    margin-left: var(--space-2);
    padding: 2px var(--space-2);
    background: var(--color-success);
    color: var(--bg-app);
    border-radius: 3px;
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    vertical-align: middle;
    animation: pulse-live-b-g3mity3656 2s ease-in-out infinite;
}

.ccc-visibility-empty[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-6);
    color: var(--b9-text-secondary);
    font-size: 0.9rem;
    text-align: center;
}

.ccc-visibility-empty .bi[b-g3mity3656] {
    font-size: 2rem;
    opacity: 0.4;
}

.ccc-progress-block[b-g3mity3656] {
    margin-bottom: var(--space-4);
}

.ccc-progress-bar[b-g3mity3656] {
    height: 10px;
    background: var(--b9-surface);
    border-radius: 100px;
    overflow: hidden;
    border: 1px solid var(--b9-border);
    margin-bottom: var(--space-2);
}

.ccc-progress-fill[b-g3mity3656] {
    height: 100%;
    border-radius: 100px;
    background: var(--b9-accent);
    transition: width 500ms ease;
}

.ccc-progress-fill--live[b-g3mity3656]     { background: var(--color-success); }
.ccc-progress-fill--complete[b-g3mity3656]  { background: var(--color-success); }

.ccc-progress-labels[b-g3mity3656] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.8rem;
}

.ccc-progress-stat[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
}

/* --color-success / --color-warn are compat aliases for the FILLS (--b9-success, --b9-warning).
   As the writing on the light section ground the green measured 1.85:1. The -text twins are
   the same hues said the other way, and they move with the theme. */
.ccc-stat--success[b-g3mity3656] { color: var(--b9-success-text); }
.ccc-stat--warning[b-g3mity3656] { color: var(--b9-warning-text); }
.ccc-stat--muted[b-g3mity3656]   { color: var(--b9-text-secondary); }

.ccc-progress-pct[b-g3mity3656] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--b9-text);
}

.ccc-missing-head[b-g3mity3656] {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--b9-text-secondary);
    margin-bottom: var(--space-2);
}

.ccc-groups-list[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.ccc-group-row[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-3);
    background: var(--b9-surface);
    border-radius: var(--radius-sm);
    border: 1px solid var(--b9-border);
    flex-wrap: wrap;
}

.ccc-group-info[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex: 1;
}

.ccc-group-num[b-g3mity3656] {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--b9-text);
}

.ccc-group-meta[b-g3mity3656] {
    font-size: 0.8rem;
    color: var(--b9-text-secondary);
}

.ccc-group-badge[b-g3mity3656] {
    padding: 2px var(--space-2);
    border-radius: 100px;
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

.ccc-badge--missing[b-g3mity3656] { background: var(--color-danger-subtle); color: var(--color-danger); }
.ccc-badge--partial[b-g3mity3656] { background: var(--color-warn-subtle);   color: var(--color-warn); }
.ccc-badge--dns[b-g3mity3656]     { background: var(--bg-elevated, rgba(255,255,255,.06)); color: var(--text-muted); font-style: italic; }

/* Per-group roster: show WHO is in each pending group (teams or players),
   each with a scored (✓) / needs-score (○) marker. */
.ccc-group-info[b-g3mity3656] { flex-wrap: wrap; }

.ccc-group-units[b-g3mity3656] {
    flex-basis: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: 2px var(--space-3);
    margin-top: 2px;
}

.ccc-unit[b-g3mity3656] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--b9-text);
}

.ccc-unit .bi[b-g3mity3656] { font-size: 0.72rem; }
.ccc-unit-label[b-g3mity3656] { white-space: nowrap; }

.ccc-unit--done[b-g3mity3656] { color: var(--b9-text-secondary); }
.ccc-unit--done .bi[b-g3mity3656] { color: var(--color-success, #3fb950); }
.ccc-unit--pending .bi[b-g3mity3656] { color: var(--color-warn, #d29922); }

.ccc-all-submitted[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--color-success-subtle);
    border-radius: var(--radius-md);
    font-size: 0.9rem;
    color: var(--b9-text);
    border: 1px solid var(--color-success);
    flex-wrap: wrap;
}

.ccc-all-submitted .bi[b-g3mity3656] { color: var(--color-success); font-size: 1.1rem; }

.ccc-makeup-banner[b-g3mity3656] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--brand-soft, rgba(29,78,216,.08));
    border: 1px solid var(--brand, rgba(29,78,216,.35));
    border-radius: var(--radius-md);
    font-size: 0.875rem;
    color: var(--text-primary);
    margin-bottom: var(--space-3);
}

.ccc-makeup-banner .bi[b-g3mity3656] {
    color: var(--b9-primary-text);
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: 2px;
}

/* ── Communications Hub ── */
.ccc-comms-grid[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.ccc-comms-card[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: var(--radius-md);
    flex-wrap: wrap;
}

.ccc-comms-icon[b-g3mity3656] {
    font-size: 1.4rem;
    color: var(--b9-text-secondary);
    flex-shrink: 0;
    width: 36px;
    text-align: center;
}

.ccc-comms-body[b-g3mity3656] {
    flex: 1;
    min-width: 0;
}

.ccc-comms-title[b-g3mity3656] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--b9-text);
    margin-bottom: 2px;
}

.ccc-comms-desc[b-g3mity3656] {
    font-size: 0.8rem;
    color: var(--b9-text-secondary);
    line-height: 1.4;
}

/* ── Recovery grid ── */
.ccc-recovery-grid[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}

.ccc-recovery-card[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: var(--radius-md);
    flex-wrap: wrap;
}

.ccc-recovery-card > .bi[b-g3mity3656] {
    font-size: 1.2rem;
    color: var(--b9-text-secondary);
    flex-shrink: 0;
    width: 24px;
    text-align: center;
}

.ccc-recovery-body[b-g3mity3656] {
    flex: 1;
    min-width: 0;
}

.ccc-recovery-title[b-g3mity3656] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--b9-text);
    margin-bottom: 2px;
}

.ccc-recovery-desc[b-g3mity3656] {
    font-size: 0.8rem;
    color: var(--b9-text-secondary);
    line-height: 1.4;
}

/* ── Safety modal ── */
.ccc-modal-backdrop[b-g3mity3656] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: var(--space-4);
}

.ccc-modal[b-g3mity3656] {
    background: var(--b9-surface-raised);
    border: 1px solid var(--b9-border-strong);
    border-radius: var(--radius-xl);
    padding: var(--space-6) var(--space-6);
    max-width: 440px;
    width: 100%;
    box-shadow: 0 24px 64px rgba(0,0,0,0.6);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.ccc-modal-icon[b-g3mity3656] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    margin: 0 auto;
}

.ccc-modal-icon--warning[b-g3mity3656] { background: var(--color-warn-subtle);  color: var(--color-warn);   border: 2px solid var(--color-warn); }
.ccc-modal-icon--danger[b-g3mity3656]  { background: var(--color-danger-subtle); color: var(--color-danger); border: 2px solid var(--color-danger); }

.ccc-modal-title[b-g3mity3656] {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--b9-text);
    text-align: center;
    margin: 0;
}

.ccc-modal-body[b-g3mity3656] {
    font-size: 0.9rem;
    color: var(--b9-text-secondary);
    line-height: 1.6;
    margin: 0;
    text-align: center;
}

.ccc-modal-warning[b-g3mity3656] {
    color: var(--color-danger);
    font-weight: 600;
}

.ccc-modal-list[b-g3mity3656] {
    font-size: 0.9rem;
    color: var(--b9-text-secondary);
    line-height: 1.8;
    padding-left: var(--space-5);
    margin: 0;
    text-align: left;
}

.ccc-modal-email-toggle[b-g3mity3656] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-2) 0 var(--space-1);
    font-size: var(--font-size-sm, 0.9rem);
    color: var(--b9-text-secondary, #94a3b8);
    cursor: pointer;
    user-select: none;
}

.ccc-modal-email-toggle input[b-g3mity3656] {
    width: 18px;
    height: 18px;
    cursor: pointer;
    accent-color: var(--color-primary, #2563eb);
}

.ccc-modal-actions[b-g3mity3656] {
    display: flex;
    gap: var(--space-3);
    justify-content: center;
    flex-wrap: wrap;
    padding-top: var(--space-2);
}

/* ── Footer links ── */
.ccc-footer-links[b-g3mity3656] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-4);
    padding: var(--space-3) 0;
    border-top: 1px solid var(--b9-border);
}

.ccc-footer-link[b-g3mity3656] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    font-size: 0.85rem;
    color: var(--b9-text-secondary);
    text-decoration: none;
    transition: color 140ms;
}

.ccc-footer-link:hover[b-g3mity3656] { color: var(--b9-text); }

/* ── ui-btn danger variant ── */
.ui-btn--danger[b-g3mity3656] {
    background: var(--color-danger);
    color: #fff;
    border-color: var(--color-danger);
}

.ui-btn--danger:hover:not(:disabled)[b-g3mity3656] {
    background: color-mix(in srgb, var(--color-danger) 85%, #000);
}

.ui-btn--warning[b-g3mity3656] {
    background: var(--color-warn);
    color: var(--bg-app);
    border-color: var(--color-warn);
}

/* ── Responsive ── */
@media (max-width: 600px) {
    .ccc-page[b-g3mity3656] { padding: var(--space-3) var(--space-2) var(--space-6); }
    .ccc-hero[b-g3mity3656]  { flex-direction: column; }
    .ccc-hero-right[b-g3mity3656] { align-items: flex-start; }
    .ccc-state-guidance[b-g3mity3656] { text-align: left; max-width: 100%; }
    .ccc-summary-grid[b-g3mity3656] { grid-template-columns: 1fr; }
    .ccc-actions-grid[b-g3mity3656] { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1100px) {
    .ccc-summary-grid[b-g3mity3656] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* FIX 2 (Pass 2): Finalize confirmation modal — insufficient-scores warning. */
.ccc-modal-warning-banner[b-g3mity3656] {
    background: var(--b9-warning-surface, rgba(255, 193, 7, 0.15));
    border-left: 3px solid var(--b9-warning, #ffc107);
    border-radius: var(--b9-radius-sm, 4px);
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    font-size: 0.875rem;
    color: var(--b9-text, inherit);
}

/* ── Commissioner round notes ── */
.ccc-round-notes[b-g3mity3656] {
    margin: calc(var(--space-5) * -0.5) 0 0;
}

.ccc-notes-display[b-g3mity3656] {
    display: flex;
    align-items: flex-start;
    gap: 0.45rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.08));
    border: 1px solid rgba(148,163,184,0.18);
    border-radius: 8px;
    padding: 0.55rem 0.75rem;
    font-size: 0.85rem;
    color: var(--b9-text-soft, #cbd5e1);
}

.ccc-notes-icon[b-g3mity3656] {
    color: var(--b9-text-soft, #64748b);
    flex-shrink: 0;
    margin-top: 0.05rem;
}

.ccc-notes-text[b-g3mity3656] {
    flex: 1;
    line-height: 1.45;
}

.ccc-notes-edit-link[b-g3mity3656] {
    background: none;
    border: none;
    padding: 0.1rem 0.25rem;
    cursor: pointer;
    color: var(--b9-text-soft, #64748b);
    border-radius: 4px;
    font-size: 0.78rem;
    flex-shrink: 0;
    transition: color .15s;
}
.ccc-notes-edit-link:hover[b-g3mity3656] { color: var(--b9-text, #f1f5f9); }

.ccc-notes-add-link[b-g3mity3656] {
    background: none;
    border: none;
    padding: 0.35rem 0.5rem;
    cursor: pointer;
    /* --b9-text-dim is not a token, so this was #64748b in both themes: 4.24:1 on the dark
       page ground, under AA on the shipped default theme. */
    color: var(--b9-text-soft, #64748b);
    font-size: 0.82rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    border-radius: 6px;
    transition: color .15s, background .15s;
}
.ccc-notes-add-link:hover[b-g3mity3656] {
    color: var(--b9-text, #94a3b8);
    background: var(--b9-surface-muted, rgba(148,163,184,0.08));
}

.ccc-notes-edit-row[b-g3mity3656] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.ccc-notes-textarea[b-g3mity3656] {
    width: 100%;
    background: var(--b9-surface, rgba(15,23,42,0.6));
    border: 1px solid rgba(148,163,184,0.3);
    border-radius: 8px;
    padding: 0.55rem 0.75rem;
    font-size: 0.85rem;
    color: var(--b9-text, #f1f5f9);
    resize: vertical;
    outline: none;
    box-sizing: border-box;
}
.ccc-notes-textarea:focus[b-g3mity3656] {
    border-color: rgba(99,102,241,0.5);
    box-shadow: 0 0 0 2px rgba(99,102,241,0.15);
}

.ccc-notes-edit-actions[b-g3mity3656] {
    display: flex;
    gap: 0.4rem;
    align-items: center;
}

.ccc-notes-save-btn[b-g3mity3656] {
    padding: 0.28rem 0.8rem;
    font-size: 0.8rem;
    font-weight: 700;
    border-radius: 6px;
    border: none;
    background: var(--brand-soft, rgba(99,102,241,0.18));
    color: var(--brand-text, #a5b4fc);
    cursor: pointer;
    transition: opacity .15s;
    display: inline-flex;
    align-items: center;
}
.ccc-notes-save-btn:disabled[b-g3mity3656] { opacity: 0.6; cursor: not-allowed; }
.ccc-notes-save-btn:not(:disabled):hover[b-g3mity3656] { opacity: 0.8; }

.ccc-notes-cancel-btn[b-g3mity3656] {
    padding: 0.28rem 0.65rem;
    font-size: 0.8rem;
    font-weight: 600;
    border-radius: 6px;
    border: none;
    background: none;
    color: var(--b9-text-soft, #64748b);
    cursor: pointer;
    transition: color .15s;
}
.ccc-notes-cancel-btn:hover[b-g3mity3656] { color: var(--b9-text-soft, #94a3b8); }

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.ccc-spinner-xs[b-g3mity3656] { width: .75rem; height: .75rem; margin-right: .3rem; }
/* /Components/Pages/Leagues/ContestSummaryCard.razor.rz.scp.css */
.wrd-section-head[b-47x0nw0rc6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    flex-wrap: wrap;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-section-head h3[b-47x0nw0rc6] {
    margin: 0;
    font-size: 1rem;
}

.wrd-list[b-47x0nw0rc6] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2, .5rem);
}

.wrd-contest-row[b-47x0nw0rc6] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    background: var(--bg-elevated);
    padding: .5rem .625rem;
    display: flex;
    justify-content: space-between;
    gap: var(--space-2, .5rem);
    align-items: center;
}

.wrd-contest-row div[b-47x0nw0rc6] {
    display: flex;
    flex-direction: column;
}

.wrd-contest-row span[b-47x0nw0rc6] {
    font-size: .8rem;
    color: var(--text-secondary);
}

.wrd-muted[b-47x0nw0rc6] {
    margin: 0;
    color: var(--text-secondary);
}
/* /Components/Pages/Leagues/Create.razor.rz.scp.css */
/* ── League Create / Edit page ────────────────────────────────────────── */

.lc-page[b-cryy9d6th1] {
    --lc-footer-clearance: clamp(5.25rem, 12svh, 8rem);
    max-width: 920px;
    margin: 0 auto;
    padding: 1.5rem 1.25rem calc(var(--lc-footer-clearance) + env(safe-area-inset-bottom));
}

.lc-form-shell[b-cryy9d6th1] {
    display: block;
}

.lc-header[b-cryy9d6th1] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.25rem;
}

.lc-back[b-cryy9d6th1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 0.85rem;
    color: var(--b9-text-soft);
    text-decoration: none;
    transition: background .15s, color .15s, border-color .15s;
    font-size: 1rem;
    flex-shrink: 0;
    border: 1px solid color-mix(in srgb, var(--b9-border, #2d3748) 70%, transparent);
    background: color-mix(in srgb, var(--bg-surface, #111827) 88%, transparent);
}

.lc-back:hover[b-cryy9d6th1] {
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 90%, transparent);
    color: var(--b9-text);
}

.lc-title[b-cryy9d6th1] {
    font-size: clamp(1.5rem, 2.2vw, 2rem);
    font-weight: 700;
    color: var(--b9-text);
    margin: 0;
}

.lc-subtitle[b-cryy9d6th1] {
    color: var(--b9-text-soft);
    margin-top: 0.375rem;
    max-width: 42rem;
    line-height: 1.5;
}

.lc-loading[b-cryy9d6th1] {
    padding: 3rem 0;
    text-align: center;
    color: var(--b9-text-soft);
}

.lc-card[b-cryy9d6th1] {
    background: linear-gradient(180deg, color-mix(in srgb, var(--bg-surface, #111827) 96%, #1f2937 4%), color-mix(in srgb, var(--bg-surface, #111827) 98%, black 2%));
    border: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 78%, transparent);
    border-radius: 1.25rem;
    padding: 1.5rem;
    box-shadow: var(--b9-card-shadow, 0 20px 45px rgba(0, 0, 0, 0.22));
}

.lc-page-note[b-cryy9d6th1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1rem;
    align-items: flex-start;
    justify-content: space-between;
    padding: 0.9rem 1rem;
    margin-bottom: 1rem;
    border-radius: 1rem;
    border: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 72%, transparent);
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 84%, transparent);
}

.lc-page-note-copy[b-cryy9d6th1] {
    flex: 1 1 18rem;
}

.lc-page-note-title[b-cryy9d6th1] {
    font-weight: 700;
    color: var(--b9-text);
}

.lc-page-note-text[b-cryy9d6th1] {
    color: var(--b9-text-soft);
}

.lc-status-list[b-cryy9d6th1] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
    flex: 0 1 30rem;
}

.lc-status-pill[b-cryy9d6th1] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 76%, transparent);
    background: color-mix(in srgb, var(--bg-surface, #111827) 80%, transparent);
    color: var(--b9-text-soft);
    font-size: 0.78rem;
    font-weight: 600;
    white-space: nowrap;
}

.lc-status-pill-complete[b-cryy9d6th1] {
    color: color-mix(in srgb, var(--b9-success, #22c55e) 82%, white 18%);
    border-color: color-mix(in srgb, var(--b9-success, #22c55e) 28%, transparent);
    background: color-mix(in srgb, var(--b9-success, #22c55e) 10%, transparent);
}

/* An incomplete required group — the pills report real state now, so they need a
   not-done look that isn't alarming (nothing is broken, it just isn't filled in). */
.lc-status-pill-todo[b-cryy9d6th1] {
    color: color-mix(in srgb, var(--b9-warning, #f59e0b) 86%, white 14%);
    border-color: color-mix(in srgb, var(--b9-warning, #f59e0b) 32%, transparent);
    background: color-mix(in srgb, var(--b9-warning, #f59e0b) 10%, transparent);
}

.lc-status-pill-group[b-cryy9d6th1] {
    color: var(--b9-text);
    border-color: color-mix(in srgb, var(--border-subtle, #334155) 82%, transparent);
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 92%, transparent);
}

.lc-status-pill-optional[b-cryy9d6th1] {
    color: var(--b9-text-soft);
}

.lc-section-stack[b-cryy9d6th1] {
    display: grid;
    gap: 1rem;
}

.lc-section-card[b-cryy9d6th1],
.lc-disclosure[b-cryy9d6th1] {
    border: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 72%, transparent);
    border-radius: 1rem;
    background: color-mix(in srgb, var(--bg-surface, #111827) 88%, transparent);
}

.lc-section-card[b-cryy9d6th1] {
    padding: 1.25rem;
}

.lc-section-heading[b-cryy9d6th1] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.lc-section-title[b-cryy9d6th1] {
    margin: 0;
    font-size: 1.125rem;
    color: var(--b9-text);
}

.lc-section-copy[b-cryy9d6th1] {
    margin: 0.35rem 0 0;
    color: var(--b9-text-soft);
    line-height: 1.5;
}

.lc-section-chip[b-cryy9d6th1] {
    align-self: flex-start;
    padding: 0.3rem 0.6rem;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--b9-text);
    background: color-mix(in srgb, var(--b9-primary, #2563eb) 22%, transparent);
    border: 1px solid color-mix(in srgb, var(--b9-primary, #2563eb) 38%, transparent);
}

.lc-field[b-cryy9d6th1] {
    margin-bottom: 1.125rem;
}

.lc-label[b-cryy9d6th1] {
    display: block;
    font-size: 0.93rem;
    font-weight: 600;
    color: var(--b9-text);
    margin-bottom: 0.45rem;
}

.lc-required[b-cryy9d6th1] {
    color: var(--b9-danger);
}

.lc-card[b-cryy9d6th1]  .lc-input.form-control,
.lc-card[b-cryy9d6th1]  .lc-input.form-select,
.lc-card textarea.lc-input[b-cryy9d6th1],
.lc-card input.lc-input[b-cryy9d6th1],
.lc-card select.lc-input[b-cryy9d6th1] {
    font-size: 0.96rem;
    min-height: 2.85rem;
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 88%, transparent);
    border: 1px solid color-mix(in srgb, var(--b9-primary, #2563eb) 14%, var(--border-subtle, #334155) 86%);
    color: var(--b9-text);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
    pointer-events: auto;
    opacity: 1;
}

.lc-card[b-cryy9d6th1]  .lc-input.form-control:hover:not(:disabled):not([readonly]),
.lc-card[b-cryy9d6th1]  .lc-input.form-select:hover:not(:disabled):not([readonly]),
.lc-card textarea.lc-input:hover:not(:disabled):not([readonly])[b-cryy9d6th1],
.lc-card input.lc-input:hover:not(:disabled):not([readonly])[b-cryy9d6th1],
.lc-card select.lc-input:hover:not(:disabled):not([readonly])[b-cryy9d6th1] {
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 94%, #0f172a 6%);
    border-color: color-mix(in srgb, var(--b9-primary, #2563eb) 34%, white 8%);
}

.lc-card[b-cryy9d6th1]  .lc-input.form-control:focus,
.lc-card[b-cryy9d6th1]  .lc-input.form-control:focus-visible,
.lc-card[b-cryy9d6th1]  .lc-input.form-select:focus,
.lc-card[b-cryy9d6th1]  .lc-input.form-select:focus-visible,
.lc-card textarea.lc-input:focus[b-cryy9d6th1],
.lc-card textarea.lc-input:focus-visible[b-cryy9d6th1],
.lc-card input.lc-input:focus[b-cryy9d6th1],
.lc-card input.lc-input:focus-visible[b-cryy9d6th1],
.lc-card select.lc-input:focus[b-cryy9d6th1],
.lc-card select.lc-input:focus-visible[b-cryy9d6th1] {
    border-color: color-mix(in srgb, var(--b9-primary, #2563eb) 65%, white 10%);
    box-shadow: 0 0 0 0.18rem color-mix(in srgb, var(--b9-primary, #2563eb) 22%, transparent);
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 96%, #0f172a 4%);
}

.lc-card[b-cryy9d6th1]  .lc-input.form-control:disabled,
.lc-card[b-cryy9d6th1]  .lc-input.form-select:disabled,
.lc-card textarea.lc-input:disabled[b-cryy9d6th1],
.lc-card input.lc-input:disabled[b-cryy9d6th1],
.lc-card select.lc-input:disabled[b-cryy9d6th1],
.lc-card[b-cryy9d6th1]  .lc-input.form-control[readonly],
.lc-card[b-cryy9d6th1]  .lc-input.form-select[readonly],
.lc-card textarea.lc-input[readonly][b-cryy9d6th1],
.lc-card input.lc-input[readonly][b-cryy9d6th1],
.lc-card select.lc-input[readonly][b-cryy9d6th1] {
    pointer-events: none;
}

.lc-hint[b-cryy9d6th1] {
    font-size: 0.84rem;
    color: var(--b9-text-soft);
    margin-top: 0.35rem;
    line-height: 1.45;
}

.lc-validation[b-cryy9d6th1] {
    display: block;
    font-size: 0.84rem;
    color: var(--b9-danger);
    margin-top: 0.35rem;
}

.lc-row-2[b-cryy9d6th1] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1.125rem;
}

.lc-row-2 .lc-field[b-cryy9d6th1] {
    margin-bottom: 0;
}

.lc-row-tight[b-cryy9d6th1] {
    margin-bottom: 0.85rem;
}

.lc-field-tight[b-cryy9d6th1] {
    margin-top: 0.75rem;
}

.lc-check[b-cryy9d6th1] {
    color: var(--b9-text);
}

.lc-check-block[b-cryy9d6th1] {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    margin-bottom: 0.85rem;
    padding: 0.95rem 1rem;
    padding-left: 1rem;
    border: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 72%, transparent);
    border-radius: 0.9rem;
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 72%, transparent);
}

.lc-check-block .form-check-input[b-cryy9d6th1] {
    position: static;
    margin: 0.2rem 0 0;
    flex: 0 0 auto;
}

.lc-check-block .form-check-label[b-cryy9d6th1] {
    display: flex;
    flex-direction: column;
    gap: 0.22rem;
    margin: 0;
    font-weight: 600;
    line-height: 1.45;
}

.lc-check-title[b-cryy9d6th1] {
    color: var(--b9-text);
}

.lc-check-helper[b-cryy9d6th1] {
    font-size: 0.84rem;
    font-weight: 500;
    color: var(--b9-text-soft);
}

.lc-readonly-card[b-cryy9d6th1] {
    padding: 1rem;
    border-radius: 0.95rem;
    border: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 72%, transparent);
    background: color-mix(in srgb, var(--bg-surface-2, #1f2937) 78%, transparent);
}

.lc-readonly-head[b-cryy9d6th1] {
    margin-bottom: 0.75rem;
}

.lc-subsection-title[b-cryy9d6th1] {
    margin: 0;
    font-size: 1rem;
    color: var(--b9-text);
}

.lc-subsection-copy[b-cryy9d6th1] {
    margin: 0.3rem 0 0;
    color: var(--b9-text-soft);
    line-height: 1.45;
}

.lc-readonly-list[b-cryy9d6th1] {
    display: grid;
    gap: 0.65rem;
    margin-top: 0.85rem;
}

.lc-readonly-row[b-cryy9d6th1] {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: center;
    padding: 0.8rem 0.9rem;
    border-radius: 0.8rem;
    background: color-mix(in srgb, var(--bg-surface, #111827) 88%, transparent);
    border: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 68%, transparent);
    color: var(--b9-text);
}

.lc-readonly-row strong[b-cryy9d6th1] {
    font-size: 0.95rem;
}

.lc-inline-note[b-cryy9d6th1] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.85rem 1rem;
    border-radius: 0.9rem;
    color: var(--b9-text);
    background: color-mix(in srgb, var(--b9-success, #16a34a) 10%, transparent);
    border: 1px solid color-mix(in srgb, var(--b9-success, #16a34a) 30%, transparent);
    line-height: 1.5;
}

.lc-inline-note-info[b-cryy9d6th1] {
    margin-top: 0.75rem;
    background: color-mix(in srgb, var(--b9-primary, #2563eb) 10%, transparent);
    border-color: color-mix(in srgb, var(--b9-primary, #2563eb) 28%, transparent);
}

.lc-lock-note[b-cryy9d6th1] {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.85rem;
    color: var(--b9-text-soft);
    font-size: 0.84rem;
}

.lc-disclosure[b-cryy9d6th1] {
    overflow: hidden;
}

.lc-disclosure:hover[b-cryy9d6th1] {
    border-color: color-mix(in srgb, var(--b9-primary, #2563eb) 30%, var(--border-subtle, #334155) 70%);
}

.lc-disclosure-summary[b-cryy9d6th1] {
    list-style: none;
    cursor: pointer;
    display: block;
    width: 100%;
    padding: 0.95rem 1.1rem;
}

.lc-disclosure-summary[b-cryy9d6th1]::-webkit-details-marker {
    display: none;
}

.lc-disclosure-summary-row[b-cryy9d6th1] {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: start;
    gap: 0.55rem;
}

.lc-disclosure-summary-content[b-cryy9d6th1] {
    min-width: 0;
}

.lc-disclosure-chevron[b-cryy9d6th1] {
    margin-top: 0.18rem;
    color: var(--b9-text-soft);
    font-size: 0.88rem;
    transition: transform .16s ease, color .16s ease;
}

.lc-disclosure-summary:hover .lc-disclosure-chevron[b-cryy9d6th1],
.lc-disclosure-summary:hover .lc-disclosure-title[b-cryy9d6th1],
.lc-disclosure-summary:focus-visible .lc-disclosure-chevron[b-cryy9d6th1],
.lc-disclosure-summary:focus-visible .lc-disclosure-title[b-cryy9d6th1] {
    color: var(--b9-text);
}

.lc-disclosure[open] .lc-disclosure-chevron[b-cryy9d6th1] {
    transform: rotate(90deg);
    color: var(--b9-text);
}

.lc-disclosure-title[b-cryy9d6th1] {
    display: block;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--b9-text);
}

.lc-disclosure-copy[b-cryy9d6th1] {
    display: block;
    margin-top: 0.35rem;
    color: var(--b9-text-soft);
    line-height: 1.45;
    max-width: 44rem;
}

.lc-disclosure-body[b-cryy9d6th1] {
    padding: 0 1.25rem 1.25rem;
    border-top: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 70%, transparent);
}

.lc-sticky-actions[b-cryy9d6th1] {
    position: static;
    z-index: 10;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1rem;
    min-height: 52px;
    max-height: 64px;
    padding: 0.5rem 0.85rem;
    border-top: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 74%, transparent);
    border-left: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 48%, transparent);
    border-right: 1px solid color-mix(in srgb, var(--border-subtle, #334155) 48%, transparent);
    border-radius: 0.95rem 0.95rem 0 0;
    background: color-mix(in srgb, var(--bg-surface, #111827) 80%, rgba(0, 0, 0, 0.55) 20%);
    box-shadow: 0 -8px 18px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(10px);
}

.lc-sticky-actions .btn[b-cryy9d6th1] {
    min-width: 9rem;
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
}

@media (max-width: 767px) {
    .lc-page[b-cryy9d6th1] {
        --lc-footer-clearance: clamp(5rem, 14svh, 8rem);
        padding: 1rem 0.9rem calc(var(--lc-footer-clearance) + env(safe-area-inset-bottom));
    }

    .lc-card[b-cryy9d6th1] {
        padding: 1rem;
    }

    .lc-row-2[b-cryy9d6th1] {
        grid-template-columns: 1fr;
    }

    .lc-section-heading[b-cryy9d6th1] {
        flex-direction: column;
    }

    .lc-status-list[b-cryy9d6th1] {
        justify-content: flex-start;
    }

    .lc-sticky-actions[b-cryy9d6th1] {
        position: static;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        max-height: 64px;
        min-height: 52px;
        padding: 0.5rem 0.75rem;
    }

    .lc-sticky-actions .btn[b-cryy9d6th1] {
        width: auto;
        min-width: 0;
        flex: 0 1 auto;
    }

    .lc-readonly-row[b-cryy9d6th1] {
        flex-direction: column;
        align-items: flex-start;
    }
}
/* /Components/Pages/Leagues/Detail.razor.rz.scp.css */
/* ── League Detail page ───────────────────────────────────────────────── */

.ld-page[b-nxuebmc50j] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem 1.25rem 3rem;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

/* ── Header ── */

.ld-header[b-nxuebmc50j] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    min-width: 0;
}

.ld-header-left[b-nxuebmc50j] {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
    min-width: 0;
}

.ld-back[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 8px;
    color: var(--b9-text-soft);
    text-decoration: none;
    transition: background .15s, color .15s;
    font-size: 1rem;
    flex-shrink: 0;
    margin-top: .25rem;
}

.ld-back:hover[b-nxuebmc50j] {
    background: var(--b9-surface-muted);
    color: var(--b9-text);
}

.ld-title-row[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    gap: .625rem;
    flex-wrap: wrap;
}

.ld-title[b-nxuebmc50j] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--b9-text);
    margin: 0;
    line-height: 1.2;
}

.ld-meta[b-nxuebmc50j] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    font-size: .8125rem;
    color: var(--b9-text-soft);
    margin-top: .375rem;
    line-height: 1.4;
}

.ld-header-actions[b-nxuebmc50j] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    flex-shrink: 0;
    min-width: 0;
    align-items: center;
    overflow: visible;
}

.ld-safe-actions[b-nxuebmc50j] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.ld-more-actions[b-nxuebmc50j] {
    position: relative;
    overflow: visible;
}

.ld-more-actions-toggle[b-nxuebmc50j] {
    min-width: 48px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.ld-more-actions-toggle:focus-visible[b-nxuebmc50j] {
    outline: 2px solid #2563eb;
    outline-style: solid;
    outline-width: 2px;
    outline-offset: 2px;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.22);
}

/* dark is default — override outline to a lighter blue that's visible on dark */
.ld-more-actions-toggle:focus-visible[b-nxuebmc50j] {
    outline-color: #93c5fd;
    box-shadow: 0 0 0 2px rgba(147, 197, 253, 0.3);
}

html[data-theme="light"] .ld-more-actions-toggle:focus-visible[b-nxuebmc50j] {
    outline-color: #2563eb;
    box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.22);
}

.ld-more-actions-menu[b-nxuebmc50j] {
    z-index: 1080;
    min-width: 13.5rem;
    list-style: none;
    margin: .35rem 0 0;
    padding: .4rem;
    position: absolute;
    right: 0;
    top: calc(100% + 2px);
    border-radius: 10px;
    border: 1px solid var(--b9-border);
    background: var(--b9-surface-elevated, var(--b9-surface));
    box-shadow: 0 10px 24px rgba(2, 8, 23, 0.22);
}

.ld-action-item[b-nxuebmc50j] {
    width: 100%;
    border: 0;
    text-align: left;
    border-radius: 8px;
    background: transparent;
    padding: .5rem .625rem;
    display: inline-flex;
    align-items: center;
    color: var(--text-secondary);
    font-weight: 500;
}

.ld-action-item:hover[b-nxuebmc50j],
.ld-action-item:focus-visible[b-nxuebmc50j] {
    background: var(--bg-raised);
    color: var(--text-primary);
}

.ld-action-danger[b-nxuebmc50j] {
    width: 100%;
    border: 0;
    text-align: left;
    border-radius: 8px;
    background: transparent;
    padding: .5rem .625rem;
    display: inline-flex;
    align-items: center;
    color: #b91c1c !important;
    font-weight: 600;
}

.ld-action-danger:hover[b-nxuebmc50j],
.ld-action-danger:focus-visible[b-nxuebmc50j] {
    color: #ffffff !important;
    background-color: #b91c1c !important;
}

/* dark is default — danger action uses lighter red so it's visible on dark bg */
.ld-action-danger[b-nxuebmc50j] {
    color: #fecaca !important;
}

.ld-action-danger:hover[b-nxuebmc50j],
.ld-action-danger:focus-visible[b-nxuebmc50j] {
    color: #ffffff !important;
    background-color: #dc2626 !important;
}

html[data-theme="light"] .ld-action-danger[b-nxuebmc50j] {
    color: #b91c1c !important;
}

html[data-theme="light"] .ld-action-danger:hover[b-nxuebmc50j],
html[data-theme="light"] .ld-action-danger:focus-visible[b-nxuebmc50j] {
    color: #ffffff !important;
    background-color: #b91c1c !important;
}

/* ── Alerts ── */

.ld-loading[b-nxuebmc50j] {
    padding: 3rem 0;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    color: var(--b9-text-soft);
    font-size: .9375rem;
}

.ld-loading-copy[b-nxuebmc50j] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
    max-width: 34rem;
}

.ld-loading-title[b-nxuebmc50j] {
    color: var(--b9-text);
    font-weight: 600;
}

.ld-loading-sub[b-nxuebmc50j] {
    color: var(--b9-text-soft);
}

.ld-alert[b-nxuebmc50j] {
    padding: .75rem 1rem;
    border-radius: 8px;
    font-size: .875rem;
    margin-bottom: 1rem;
}

.ld-alert-success[b-nxuebmc50j] {
    background: var(--success-soft, rgba(34,197,94,0.12));
    color: var(--success-text, #4ade80);
    border: 1px solid var(--success-border, rgba(34,197,94,0.3));
}

.ld-alert-danger[b-nxuebmc50j] {
    background: var(--danger-soft, rgba(239,68,68,0.12));
    color: var(--danger-text, #f87171);
    border: 1px solid var(--danger-border, rgba(239,68,68,0.3));
}

.ld-confirm-banner[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .875rem 1.125rem;
    background: var(--warning-soft, rgba(251,191,36,0.12));
    border: 1px solid var(--warning-border, rgba(251,191,36,0.3));
    border-radius: 10px;
    font-size: .9rem;
    color: var(--b9-text);
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.ld-confirm-btns[b-nxuebmc50j] {
    display: flex;
    gap: .5rem;
    flex-shrink: 0;
}

/* ── Tabs ── */

.ld-tabs[b-nxuebmc50j] {
    display: flex;
    gap: .25rem;
    border-bottom: 2px solid var(--b9-border);
    margin-bottom: 1.25rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;    /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}

.ld-tabs[b-nxuebmc50j]::-webkit-scrollbar {
    display: none; /* Chrome/Safari/WebKit — hides the scrollbar without disabling scroll */
}

.ld-tab[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    gap: .375rem;
    padding: .625rem 1rem;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    font-size: 1rem;
    font-weight: 600;
    color: var(--b9-text-soft);
    cursor: pointer;
    transition: color .15s;
    border-radius: 6px 6px 0 0;
    flex: 0 0 auto;
}

.ld-tab:hover[b-nxuebmc50j] { color: var(--b9-text); }

/* dark is default */
.ld-tab-active[b-nxuebmc50j] {
    color: #93C5FD;
    border-bottom-color: #60A5FA;
    font-weight: 600;
}

html[data-theme="light"] .ld-tab-active[b-nxuebmc50j] {
    color: var(--b9-primary-text);
    border-bottom-color: var(--b9-primary);
}

.ld-tab-badge[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 .375rem;
    background: var(--b9-surface-muted);
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 700;
    color: var(--b9-text-soft);
}

.ld-tab-active .ld-tab-badge[b-nxuebmc50j] {
    background: var(--brand-soft, rgba(139,92,246,0.18));
    color: var(--b9-violet-text, #a78bfa);
}

/* ── Cards ── */

.ld-card[b-nxuebmc50j] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    overflow: hidden;
}

.ld-card-header[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .875rem 1.25rem;
    border-bottom: 1px solid var(--b9-border);
    background: var(--b9-surface);
}

.ld-card-title[b-nxuebmc50j] {
    font-weight: 600;
    font-size: .9375rem;
    color: var(--b9-text);
    line-height: 1.3;
}

.ld-card-hint[b-nxuebmc50j] {
    font-size: .8125rem;
    color: var(--b9-text-soft);
    line-height: 1.4;
}

/* ── Add bar ── */

.ld-add-bar[b-nxuebmc50j] {
    padding: .875rem 1.25rem;
    border-bottom: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
}

.ld-add-label[b-nxuebmc50j] {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--b9-text-soft);
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: .5rem;
}

.ld-add-row[b-nxuebmc50j] {
    display: flex;
    gap: .625rem;
    align-items: center;
    flex-wrap: wrap;
}

/* ── Player search picker ── */

.ld-search-wrap[b-nxuebmc50j] {
    position: relative;
    flex: 1 1 260px;
    max-width: 460px;
}

.ld-search-input-wrap[b-nxuebmc50j] {
    position: relative;
    display: flex;
    align-items: center;
}

.ld-search-icon[b-nxuebmc50j] {
    position: absolute;
    left: .75rem;
    color: var(--b9-text-soft);
    pointer-events: none;
    font-size: .9rem;
}

.ld-search-input[b-nxuebmc50j] {
    width: 100%;
    padding-left: 2.1rem;
    padding-right: 2.25rem;
    font-size: .9rem;
    background: var(--bg-elevated, var(--b9-surface-muted));
    border-color: var(--border-default, var(--b9-border));
    color: var(--text-primary);
}

.ld-search-input:focus[b-nxuebmc50j] {
    border-color: var(--brand-accent, #3b82f6);
    box-shadow: 0 0 0 3px rgba(59,130,246,.18);
}

.ld-search-clear-btn[b-nxuebmc50j] {
    position: absolute;
    right: .55rem;
    background: none;
    border: none;
    color: var(--b9-text-soft);
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    padding: 0 .2rem;
    opacity: .7;
}
.ld-search-clear-btn:hover[b-nxuebmc50j] { opacity: 1; color: var(--text-primary); }

/* Transparent full-screen backdrop — clicking outside closes dropdown */
.ld-search-backdrop[b-nxuebmc50j] {
    position: fixed;
    inset: 0;
    z-index: 199;
    background: transparent;
}

/* Floating suggestion list */
.ld-search-dropdown[b-nxuebmc50j] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    min-width: 100%;
    background: var(--bg-elevated, #1e2736);
    border: 1px solid var(--border-default, rgba(255,255,255,.12));
    border-radius: 10px;
    box-shadow: 0 12px 32px rgba(0,0,0,.45);
    z-index: 200;
    overflow: hidden;
    max-height: 300px;
    overflow-y: auto;
}

.ld-search-result[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: .65rem .9rem;
    background: none;
    border: none;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,.06));
    text-align: left;
    cursor: pointer;
    color: var(--text-primary);
    transition: background .1s;
    min-height: 48px; /* thumb-friendly tap target */
}

.ld-search-result:last-child[b-nxuebmc50j] { border-bottom: none; }
.ld-search-result:hover[b-nxuebmc50j], .ld-search-result:focus[b-nxuebmc50j] { background: var(--bg-raised, rgba(255,255,255,.06)); outline: none; }

.ld-search-result-name[b-nxuebmc50j] {
    font-size: .9rem;
    font-weight: 500;
}

.ld-search-hcp[b-nxuebmc50j] {
    font-size: .75rem;
    color: var(--text-muted);
    background: var(--bg-raised, rgba(255,255,255,.07));
    padding: 2px 9px;
    border-radius: 12px;
    flex-shrink: 0;
    margin-left: .5rem;
}

.ld-search-no-results[b-nxuebmc50j] {
    padding: .85rem .9rem;
    color: var(--text-muted);
    font-size: .875rem;
}

/* Selected state — chip */
.ld-search-chip[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .45rem .85rem;
    background: var(--brand-soft, rgba(59,130,246,.1));
    border: 1.5px solid var(--brand-muted, rgba(59,130,246,.35));
    border-radius: 22px;
    font-size: .9rem;
    color: var(--text-primary);
    font-weight: 500;
    min-height: 38px;
    max-width: 100%;
}

.ld-search-chip-clear[b-nxuebmc50j] {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 0 .15rem;
    font-size: 1.1rem;
    line-height: 1;
    margin-left: .2rem;
    flex-shrink: 0;
}
.ld-search-chip-clear:hover[b-nxuebmc50j] { color: var(--text-primary); }

/* Enroll button — slightly larger than the old sm button for grab-ability */
.ld-enroll-btn[b-nxuebmc50j] {
    font-size: .9rem;
    padding: .45rem 1.1rem;
    white-space: nowrap;
    flex-shrink: 0;
}

.ld-inline-error[b-nxuebmc50j] {
    font-size: .8125rem;
    color: var(--b9-danger);
    margin-top: .375rem;
}

.ld-team-grid[b-nxuebmc50j] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 1rem 1.25rem 1.25rem;
}

.ld-team-card[b-nxuebmc50j] {
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    background: var(--b9-surface-muted);
    padding: 0.9rem;
}

.ld-team-head[b-nxuebmc50j] {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    margin-bottom: 0.55rem;
}

.ld-team-help[b-nxuebmc50j] {
    color: var(--b9-text-soft);
    font-size: 0.78rem;
    margin-bottom: 0.75rem;
}

.ld-team-members[b-nxuebmc50j] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.ld-team-slot[b-nxuebmc50j] {
    min-width: 0;
}

/* ── Empty state ── */

.ld-empty[b-nxuebmc50j] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .75rem;
    padding: 3rem 1.5rem;
    text-align: center;
    color: var(--b9-text-soft);
    font-size: .9rem;
}

/* 🔴 --b9-border is 6% white in dark. An empty-state icon drawn in it is a 1.13:1 smudge —
   the picture that is supposed to tell a commissioner the section is empty rather than
   broken. It is meaningful non-text and is held to 3:1; --b9-text-soft is the same token
   the caption under it already uses, so the icon and its sentence read as one thing.

   The same line, the same token, exists at Events/Scoring.razor.css:246 (.sc-state-icon).
   That file belongs to another package and is reported, not touched. */
.ld-empty-icon[b-nxuebmc50j] {
    font-size: 2.5rem;
    color: var(--b9-text-soft);
}

.ld-empty p[b-nxuebmc50j] { margin: 0; max-width: 360px; }

/* ── Storytelling standings (Phase 1) ── */

.ls-week-strip[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .9rem;
    border: 1px solid var(--brand-ring);
    background: var(--bg-elevated);
    border-radius: 10px;
    padding: .85rem 1rem;
    margin: 0 .75rem .75rem;
    flex-wrap: wrap;
}

.ls-week-strip-main[b-nxuebmc50j] {
    min-width: 200px;
}

.ls-week-strip-label[b-nxuebmc50j] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--brand-text);
    font-weight: 700;
}

.ls-week-strip-title[b-nxuebmc50j] {
    font-size: .93rem;
    font-weight: 700;
    color: var(--b9-text);
}

.ls-week-strip-meta[b-nxuebmc50j] {
    font-size: .78rem;
    color: var(--b9-text-soft);
}

.ls-week-strip-matchups[b-nxuebmc50j] {
    font-size: .8rem;
    color: var(--b9-text);
    flex: 1 1 260px;
}

.ls-mover-card[b-nxuebmc50j] {
    border: 1px solid rgba(245, 158, 11, 0.30);
    background: var(--warning-soft);
    border-radius: 10px;
    padding: .75rem 1rem;
}

.ls-mover-label[b-nxuebmc50j] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--warning-text);
    font-weight: 700;
}

.ls-mover-team[b-nxuebmc50j] {
    font-size: .95rem;
    font-weight: 700;
    color: var(--b9-text);
}

.ls-mover-meta[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .8rem;
    color: var(--warning-text);
}

.ls-standings-list[b-nxuebmc50j] {
    display: grid;
    gap: .75rem;
}

.ls-standings-card[b-nxuebmc50j] {
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    background: var(--bg-elevated);
    padding: .85rem .95rem;
}

.ls-standings-head[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-bottom: .6rem;
}

.ls-standings-rank[b-nxuebmc50j] {
    width: 1.85rem;
    height: 1.85rem;
    border-radius: 999px;
    background: var(--brand-soft);
    color: var(--brand-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .82rem;
    font-weight: 700;
    flex-shrink: 0;
}

.ls-standings-team[b-nxuebmc50j] {
    min-width: 0;
    flex: 1;
}

.ls-standings-team-name[b-nxuebmc50j] {
    font-size: .92rem;
    font-weight: 700;
    color: var(--b9-text);
    line-height: 1.2;
}

.ls-standings-pool[b-nxuebmc50j] {
    font-size: .74rem;
    color: var(--b9-text-soft);
}

/* Admin pool picker */
.ls-pool-picker-wrap[b-nxuebmc50j] {
    position: relative;
}

.ls-pool-badge-btn[b-nxuebmc50j] {
    background: none;
    border: none;
    padding: 0;
    font-size: .74rem;
    color: var(--b9-primary-text);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: .2rem;
}

.ls-pool-badge-btn:hover[b-nxuebmc50j] {
    text-decoration: underline;
}

/* ── Pool picker sheet — centered overlay so it is never clipped by .ld-card{overflow:hidden}. ── */
.ls-pool-sheet-overlay[b-nxuebmc50j] {
    position: fixed;
    inset: 0;
    z-index: 1090;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(2, 6, 23, .72);
    backdrop-filter: blur(6px);
}

.ls-pool-sheet[b-nxuebmc50j] {
    width: min(340px, 100%);
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
    color: var(--text-primary);
    overflow: hidden;
}

.ls-pool-sheet-head[b-nxuebmc50j] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid var(--border-subtle);
}

.ls-pool-sheet-kicker[b-nxuebmc50j] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: .15rem;
}

.ls-pool-sheet-title[b-nxuebmc50j] {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
    word-break: break-word;
}

.ls-pool-sheet-close[b-nxuebmc50j] {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    border: 1px solid var(--border-subtle);
    background: var(--bg-raised);
    color: var(--text-muted);
    cursor: pointer;
}

.ls-pool-sheet-close:hover[b-nxuebmc50j] { color: var(--text-primary); }

.ls-pool-sheet-body[b-nxuebmc50j] {
    display: flex;
    flex-direction: column;
    padding: .5rem;
}

.ls-pool-sheet-opt[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 48px;
    padding: .6rem .75rem;
    border: none;
    border-radius: 10px;
    background: transparent;
    color: var(--text-primary);
    font-size: .92rem;
    font-weight: 500;
    text-align: left;
    cursor: pointer;
    transition: background .1s;
}

.ls-pool-sheet-opt:hover[b-nxuebmc50j],
.ls-pool-sheet-opt:focus-visible[b-nxuebmc50j] {
    background: var(--bg-raised);
}

.ls-pool-sheet-opt--muted[b-nxuebmc50j] {
    color: var(--text-muted);
    font-size: .86rem;
    margin-top: .15rem;
    border-top: 1px solid var(--border-subtle);
    border-radius: 0 0 10px 10px;
}

.ls-standings-trend[b-nxuebmc50j] {
    font-size: .78rem;
    font-weight: 700;
    border-radius: 999px;
    padding: .22rem .5rem;
    white-space: nowrap;
}

.ls-trend-up[b-nxuebmc50j] {
    background: var(--success-soft);
    color: var(--success-text);
}

.ls-trend-down[b-nxuebmc50j] {
    background: var(--danger-soft);
    color: var(--danger-text);
}

.ls-trend-flat[b-nxuebmc50j] {
    background: var(--bg-raised);
    color: var(--text-muted);
}

.ls-standings-metrics[b-nxuebmc50j] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
}

.ls-standings-metrics--4[b-nxuebmc50j] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.ls-metric-chip[b-nxuebmc50j] {
    background: var(--b9-surface-muted);
    border-radius: 8px;
    padding: .45rem .55rem;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.ls-metric-chip--hcp[b-nxuebmc50j] {
    border: 1px solid var(--brand-soft, rgba(99,102,241,.18));
}

.ls-metric-label[b-nxuebmc50j] {
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: var(--text-muted);
    font-weight: 700;
}

.ls-metric-value[b-nxuebmc50j] {
    font-size: .85rem;
    color: var(--b9-text);
    font-weight: 700;
}

/* ── Table ── */

.etable-wrap[b-nxuebmc50j] {
    max-width: 100%;
    overflow-x: auto;
}

.etable[b-nxuebmc50j] {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}

.etable thead th[b-nxuebmc50j] {
    padding: .625rem 1rem;
    text-align: left;
    font-size: .75rem;
    font-weight: 600;
    color: var(--b9-text-soft);
    text-transform: uppercase;
    letter-spacing: .03em;
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
    background: var(--b9-surface-muted);
    line-height: 1.3;
}

.etable tbody tr[b-nxuebmc50j] {
    border-bottom: 1px solid var(--b9-border-light, var(--b9-border));
    transition: background .12s;
}

.etable tbody tr:last-child[b-nxuebmc50j] { border-bottom: none; }
.etable tbody tr:hover[b-nxuebmc50j] { background: var(--b9-surface-muted); }
.etable tbody tr.tr-withdrawn[b-nxuebmc50j] { opacity: .55; }

.etable tbody td[b-nxuebmc50j] {
    padding: .75rem 1rem;
    vertical-align: middle;
    color: var(--b9-text);
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.td-player[b-nxuebmc50j]  { font-weight: 500; }
.td-soft[b-nxuebmc50j]    { color: var(--b9-text-soft); white-space: nowrap; }
.td-center[b-nxuebmc50j]  { text-align: center; }
.td-link[b-nxuebmc50j]    { color: var(--b9-primary-text); text-decoration: none; font-weight: 500; }
.td-link:hover[b-nxuebmc50j] { text-decoration: underline; }

/* Rank medals */
.rank-medal[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    font-size: .75rem;
    font-weight: 700;
}

.rank-1[b-nxuebmc50j] { background: rgba(253,224,71,0.22);  color: #fde047; } /* gold   */
.rank-2[b-nxuebmc50j] { background: rgba(148,163,184,0.18); color: #94a3b8; } /* silver */
.rank-3[b-nxuebmc50j] { background: rgba(217,119,6,0.18);   color: #d97706; } /* bronze */

/* Action buttons */
.etd-actions[b-nxuebmc50j] { text-align: right; white-space: nowrap; }

.etd-action-btn[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 6px;
    color: var(--b9-text-soft);
    background: none;
    border: none;
    cursor: pointer;
    transition: background .15s, color .15s;
    font-size: .9375rem;
}

.etd-action-btn:hover[b-nxuebmc50j] { background: var(--b9-surface-muted); color: var(--b9-text); }

.etd-action-remove:hover[b-nxuebmc50j] { background: var(--danger-soft, rgba(239,68,68,0.14)); color: var(--danger-text, #FCA5A5); }

/* Status badges */
.estatus[b-nxuebmc50j] {
    display: inline-block;
    padding: .2rem .6rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    white-space: nowrap;
}

.estatus-active[b-nxuebmc50j]    { background: var(--success-soft, rgba(34,197,94,0.14));  color: var(--success-text, #86EFAC); }
.estatus-open[b-nxuebmc50j]      { background: var(--info-soft,    rgba(56,189,248,0.12)); color: var(--info-text,    #7DD3FC); }
.estatus-draft[b-nxuebmc50j]     { background: var(--b9-surface-muted, rgba(148,163,184,0.1)); color: var(--b9-text-soft, #94a3b8); }
.estatus-closed[b-nxuebmc50j]    { background: var(--brand-soft,   rgba(99,102,241,0.12)); color: var(--brand-text,   #a5b4fc); }
.estatus-cancelled[b-nxuebmc50j] { background: var(--danger-soft,  rgba(239,68,68,0.14)); color: var(--danger-text,  #FCA5A5); }

/* Payment chips — clickable pill buttons on the roster */
.etd-pay-chip[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.18rem 0.55rem;
    border-radius: 100px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    border: 1px solid transparent;
    background: none;
    cursor: pointer;
    transition: opacity .15s;
    white-space: nowrap;
    line-height: 1.4;
}
.etd-pay-chip:hover[b-nxuebmc50j] { opacity: 0.75; }

.etd-pay-paid[b-nxuebmc50j] {
    background: var(--success-soft, rgba(34,197,94,0.14));
    color: var(--success-text, #86EFAC);
    border-color: rgba(34,197,94,0.28);
}
.etd-pay-unpaid[b-nxuebmc50j] {
    background: var(--warning-soft, rgba(245,158,11,0.14));
    color: var(--warning-text, #FCD34D);
    border-color: rgba(245,158,11,0.28);
}
.etd-pay-waived[b-nxuebmc50j] {
    background: var(--b9-surface-muted, rgba(148,163,184,0.1));
    color: var(--b9-text-soft, #94a3b8);
    border-color: rgba(148,163,184,0.22);
}

/* Payment summary strip above roster table */
.ld-pay-summary[b-nxuebmc50j] {
    display: flex;
    gap: 0.85rem;
    font-size: 0.8rem;
    color: var(--b9-text-soft, #94a3b8);
    padding: 0.1rem 0 0.65rem;
    flex-wrap: wrap;
    align-items: center;
}
.ld-pay-summary-item[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}
.ld-pay-dot[b-nxuebmc50j] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.ld-pay-dot-paid[b-nxuebmc50j]   { background: var(--success-text, #86EFAC); }
.ld-pay-dot-unpaid[b-nxuebmc50j] { background: var(--warning-text, #FCD34D); }
.ld-pay-dot-waived[b-nxuebmc50j] { background: var(--b9-text-soft, #94a3b8); }

/* Column widths */
.col-rank[b-nxuebmc50j]    { width: 50px;  }
.col-rounds[b-nxuebmc50j]  { width: 80px;  text-align: center; }
.col-strokes[b-nxuebmc50j] { width: 110px; text-align: center; }
.col-avg[b-nxuebmc50j]     { width: 80px;  text-align: center; }
.col-hcp[b-nxuebmc50j]     { width: 90px;  }
.col-enrolled[b-nxuebmc50j] { width: 130px; }
.col-round[b-nxuebmc50j]   { width: 70px;  text-align: center; }
.col-course[b-nxuebmc50j]  { width: 160px; }
.col-date[b-nxuebmc50j]    { width: 130px; }
.col-status[b-nxuebmc50j]  { width: 110px; }
.col-actions[b-nxuebmc50j] { width: 60px;  }

/* Responsive */
@media (max-width: 900px) {
    .ld-header[b-nxuebmc50j] { flex-direction: column; }
    .ld-header-actions[b-nxuebmc50j] { width: 100%; }
    .ld-header-actions .btn[b-nxuebmc50j] { white-space: normal; }
    .ld-safe-actions[b-nxuebmc50j] {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }
    .ld-more-actions[b-nxuebmc50j] {
        margin-left: auto;
    }
    .ld-safe-actions .btn[b-nxuebmc50j] { white-space: normal; }
    .col-course[b-nxuebmc50j], .col-enrolled[b-nxuebmc50j] { display: none; }

    .ld-card-header[b-nxuebmc50j] {
        flex-wrap: wrap;
        gap: .45rem;
    }
}

@media (max-width: 720px) {
    .ld-team-grid[b-nxuebmc50j],
    .ld-team-members[b-nxuebmc50j] {
        grid-template-columns: 1fr;
    }

    .ld-team-head[b-nxuebmc50j] {
        flex-direction: column;
        align-items: stretch;
    }
}

@media (max-width: 575px) {
    .col-hcp[b-nxuebmc50j], .col-date[b-nxuebmc50j], .col-avg[b-nxuebmc50j] { display: none; }
    .ld-tabs[b-nxuebmc50j] { overflow-x: auto; }
    .ld-tab[b-nxuebmc50j]  { white-space: nowrap; }

    .ls-week-strip[b-nxuebmc50j] {
        margin: 0 0 .75rem;
    }

    .ls-standings-metrics[b-nxuebmc50j] {
        grid-template-columns: 1fr;
    }

    .ls-standings-metrics--4[b-nxuebmc50j] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ld-card-header[b-nxuebmc50j] {
        padding: .75rem .9rem;
    }

    .etable thead th[b-nxuebmc50j],
    .etable tbody td[b-nxuebmc50j] {
        padding-left: .65rem;
        padding-right: .65rem;
    }

    .td-soft[b-nxuebmc50j] {
        white-space: normal;
    }
}

/* Round reorder cell */
.ld-round-cell[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.ld-round-arrows[b-nxuebmc50j] {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ld-arrow-btn[b-nxuebmc50j] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 18px;
    padding: 0;
    background: none;
    border: 1px solid var(--b9-border, #e2e8f0);
    border-radius: 4px;
    color: var(--b9-text-soft, #64748b);
    font-size: 0.6rem;
    cursor: pointer;
    transition: background .1s, color .1s;
    line-height: 1;
}
.ld-arrow-btn:hover:not(:disabled)[b-nxuebmc50j] {
    background: var(--b9-surface-muted, #f1f5f9);
    color: var(--b9-text, #0f172a);
}
.ld-arrow-btn:disabled[b-nxuebmc50j] {
    opacity: .3;
    cursor: default;
}

.ld-round-status[b-nxuebmc50j] {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 700;
    border-radius: 999px;
    padding: 0.12rem 0.5rem;
    letter-spacing: 0.02em;
}

.ld-rs-draft[b-nxuebmc50j]     { background: rgba(148,163,184,0.15); color: var(--text-secondary, #94a3b8); }
.ld-rs-open[b-nxuebmc50j]      { background: rgba(59,130,246,0.18);  color: #93c5fd; }
.ld-rs-active[b-nxuebmc50j]    { background: rgba(34,197,94,0.18);   color: #4ade80; }
.ld-rs-final[b-nxuebmc50j]     { background: rgba(139,92,246,0.18);  color: #c4b5fd; }
.ld-rs-cancelled[b-nxuebmc50j] { background: rgba(239,68,68,0.15);   color: #fca5a5; }

/* ════════════════════════════════════════════════════════════════════════
   LEAGUE OPERATIONS CENTER — Schedule tab wrappers (lops-*)
   Card, badge, button, and progress styles are in the scoped component
   CSS files (LeagueRoundCard.razor.css, etc.). Only page-level layout
   lives here.
   ════════════════════════════════════════════════════════════════════════ */

/* ── Toolbar: season meta + bulk action buttons ── */
.lops-toolbar[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4, 1rem);
    padding: var(--space-3, .75rem) 0 var(--space-4, 1rem);
    flex-wrap: wrap;
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: var(--space-5, 1.25rem);
}

.lops-toolbar-meta[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    gap: var(--space-2, .5rem);
    font-size: .8375rem;
    color: var(--text-muted);
    flex-wrap: wrap;
}

.lops-toolbar-actions[b-nxuebmc50j] {
    display: flex;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
    flex-shrink: 0;
}

/* ── Inline add-round form ── */
.lops-add-form[b-nxuebmc50j] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-lg, 12px);
    padding: var(--space-5, 1.25rem) var(--space-6, 1.5rem);
    margin-bottom: var(--space-5, 1.25rem);
}

.lops-add-form-inner[b-nxuebmc50j] {
    display: flex;
    gap: var(--space-4, 1rem);
    align-items: flex-end;
    flex-wrap: wrap;
}

.lops-add-field[b-nxuebmc50j] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1, .25rem);
    min-width: 140px;
}

.lops-add-field--wide[b-nxuebmc50j] { flex: 1 1 200px; }

.lops-add-label[b-nxuebmc50j] {
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
}

.lops-add-hint[b-nxuebmc50j] {
    font-size: .72rem;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: var(--text-muted);
    opacity: .7;
}

.lops-add-actions[b-nxuebmc50j] {
    display: flex;
    gap: var(--space-2, .5rem);
    align-items: center;
    flex-shrink: 0;
}

/* ── Round card list container ── */
.lops-round-list[b-nxuebmc50j] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 1rem);
}

/* ── Responsive ── */
@media (max-width: 720px) {
    .lops-toolbar[b-nxuebmc50j] { flex-direction: column; align-items: stretch; }
    .lops-toolbar-actions[b-nxuebmc50j] { flex-wrap: wrap; }
}

@media (max-width: 480px) {
    .lops-add-form-inner[b-nxuebmc50j] { flex-direction: column; }
    .lops-add-actions[b-nxuebmc50j] { width: 100%; }
}

/* ── Registration lock bar ── */
.ld-reg-lock-bar[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.6rem 0.9rem;
    background: var(--warning-soft, rgba(245,158,11,0.12));
    border-bottom: 1px solid var(--border-subtle, #334155);
    border-radius: 0.5rem 0.5rem 0 0;
    flex-wrap: wrap;
}

.ld-reg-lock-info[b-nxuebmc50j] {
    font-size: 0.85rem;
    color: var(--text-secondary, #cbd5e1);
    flex: 1 1 200px;
}

.ld-reg-lock-btn[b-nxuebmc50j] { white-space: nowrap; }

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.ld-icon-warning[b-nxuebmc50j] { color: var(--warning); }

.ls-pool-badge-btn .bi-chevron-down[b-nxuebmc50j] { font-size: 0.65rem; }

.ld-pay-count-paid[b-nxuebmc50j] { color: var(--success-text); }
.ld-pay-count-unpaid[b-nxuebmc50j] { color: var(--warning-text); }

/* Notes toggle button + invite-sent check (was hardcoded #15803d,
   unreadable on dark surfaces — now theme-aware) */
.ld-notes-btn[b-nxuebmc50j],
.ld-notes-btn .bi[b-nxuebmc50j] { font-size: .7rem; }
.ld-invite-sent[b-nxuebmc50j] { color: var(--success-text); font-size: .8rem; }

.ld-spinner-xs[b-nxuebmc50j] { width: .7rem; height: .7rem; }

.ld-notes-row[b-nxuebmc50j] { background: var(--bg-raised); }

.ld-empty--tight[b-nxuebmc50j] { padding: 1.5rem 0; }
.ld-empty--tight .ld-empty-icon[b-nxuebmc50j] { font-size: 1.5rem; }

.ld-points-input[b-nxuebmc50j] { max-width: 100px; }

.ld-flyer-actions[b-nxuebmc50j] { max-width: 400px; }

/* ── Shared confirm modal (reuses .ls-pool-sheet-overlay / .ls-pool-sheet for the frame) ── */
.ld-confirm-modal[b-nxuebmc50j] { width: min(420px, 100%); }

.ld-confirm-modal-body[b-nxuebmc50j] {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    padding: 1.1rem 1.15rem .5rem;
}

.ld-confirm-modal-icon[b-nxuebmc50j] {
    flex-shrink: 0;
    font-size: 1.25rem;
    color: var(--danger, #ef4444);
    margin-top: .1rem;
}

.ld-confirm-modal-text[b-nxuebmc50j] {
    margin: 0;
    font-size: .95rem;
    line-height: 1.4;
    color: var(--text-primary);
}

.ld-confirm-modal-btns[b-nxuebmc50j] {
    justify-content: flex-end;
    padding: .5rem 1.15rem 1.1rem;
}

/* ── "Weeks outside the season" reconciliation banner ── */
.lops-stray-banner[b-nxuebmc50j] {
    margin: .75rem 0 1rem;
    padding: .85rem 1rem;
    border: 1px solid var(--warning-border, rgba(245, 158, 11, .35));
    background: var(--warning-bg, rgba(245, 158, 11, .08));
    border-radius: 12px;
}

.lops-stray-head[b-nxuebmc50j] {
    display: flex;
    align-items: flex-start;
    gap: .55rem;
    font-size: .9rem;
    color: var(--text-primary);
}

.lops-stray-head i[b-nxuebmc50j] { color: var(--warning, #f59e0b); margin-top: .1rem; }

.lops-stray-list[b-nxuebmc50j] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-top: .7rem;
}

.lops-stray-row[b-nxuebmc50j] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}

.lops-stray-week[b-nxuebmc50j] {
    font-size: .88rem;
    font-weight: 600;
    color: var(--text-primary);
}

/* ── Season matchup schedule (ops list) ───────────────────────── */
.lops-segment-header[b-nxuebmc50j] {
    padding: 0.6rem 0.25rem 0.25rem;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.02em;
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 0.5rem;
}

.lops-inline-note[b-nxuebmc50j] {
    margin: 0.5rem 0;
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
    font-size: 0.9rem;
}

.lops-bubble-panel[b-nxuebmc50j] { display: flex; flex-direction: column; gap: 0.25rem; }
.lops-bubble-sub[b-nxuebmc50j] { color: var(--text-muted); font-size: 0.85rem; }
.lops-bubble-list[b-nxuebmc50j] { margin: 0.25rem 0 0; padding-left: 1.1rem; }
.lops-bubble-list li[b-nxuebmc50j] { margin: 0.15rem 0; }
/* /Components/Pages/Leagues/DiagnosticsDrawer.razor.rz.scp.css */
.ddx[b-7d5rlmmh2a] {
    padding: .7rem .8rem;
}

.ddx-summary[b-7d5rlmmh2a] {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
}

.ddx-summary[b-7d5rlmmh2a]::-webkit-details-marker {
    display: none;
}

.ddx-left[b-7d5rlmmh2a] {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-weight: 600;
}

.ddx-hint[b-7d5rlmmh2a] {
    color: var(--text-secondary);
    font-size: .8rem;
}

.ddx-body[b-7d5rlmmh2a] {
    margin-top: .6rem;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}
/* /Components/Pages/Leagues/FinishWeekPanel.razor.rz.scp.css */
/* Per-group roster (teams or players) with scored / needs-score markers,
   shown under each pending group on the Finish Week panel. */
.fwp-units[b-v2uft56csq] {
    display: flex;
    flex-wrap: wrap;
    gap: .15rem .75rem;
    margin-top: .25rem;
}

.fwp-unit[b-v2uft56csq] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .8rem;
    color: var(--text-primary, inherit);
}

.fwp-unit .bi[b-v2uft56csq] { font-size: .72rem; }
.fwp-unit--done[b-v2uft56csq] { color: var(--text-muted, inherit); }
.fwp-unit--done .bi[b-v2uft56csq] { color: var(--success-text, #3fb950); }
.fwp-unit--pending .bi[b-v2uft56csq] { color: var(--warning-text, #d29922); }

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.fwp-mt-3[b-v2uft56csq] { margin-top: var(--space-3); }
.fwp-mt-4[b-v2uft56csq] { margin-top: var(--space-4); }
.fwp-btn-compact[b-v2uft56csq] { padding: .25rem .75rem; font-size: .8rem; }
.fwp-choice[b-v2uft56csq] { cursor: pointer; }
/* /Components/Pages/Leagues/Flyer.razor.rz.scp.css */
/*
   Leagues/Flyer.razor.css
   All shared .flyer-* styles (including .flyer-eyebrow) are in
   wwwroot/flyer.css, loaded via <HeadContent> in FlyerLayout.razor.
   Add league-specific style overrides here only if needed.
*/
/* /Components/Pages/Leagues/Generation/GenerationFailureCallout.razor.rz.scp.css */
.gen-failure[b-xvcs50y6nb] {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}
.gen-failure-body[b-xvcs50y6nb] { display: flex; gap: .75rem; align-items: flex-start; }
.gen-failure-icon[b-xvcs50y6nb] { font-size: 1.35rem; color: #b91c1c; margin-top: .1rem; }
.gen-failure-reason[b-xvcs50y6nb] { margin-top: .25rem; font-size: .85rem; }
.gen-failure-meta[b-xvcs50y6nb] { margin-top: .4rem; font-size: .75rem; color: var(--text-muted); }
/* /Components/Pages/Leagues/Generation/GenerationStateBadge.razor.rz.scp.css */
@keyframes gen-spin-b-bzv03c4sj5 { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
.gen-badge-spin[b-bzv03c4sj5] { animation: gen-spin-b-bzv03c4sj5 1.1s linear infinite; display: inline-block; }
/* /Components/Pages/Leagues/Generation/GenerationStatusCard.razor.rz.scp.css */
.gen-status-card[b-3pkwaetfa4] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1rem;
    border-radius: 12px;
    border: 1px solid var(--border-subtle);
    background: var(--surface-2, var(--surface-card));
}

.gen-status-top[b-3pkwaetfa4] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.gen-status-title[b-3pkwaetfa4] { margin: 0; }

.gen-status-sub[b-3pkwaetfa4] {
    margin-top: .15rem;
    font-size: .85rem;
}

.gen-status-running[b-3pkwaetfa4] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

.gen-status-meta[b-3pkwaetfa4] {
    font-size: .75rem;
    color: var(--text-muted);
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.gen-status-body[b-3pkwaetfa4] { margin-top: .25rem; }
/* /Components/Pages/Leagues/Generation/StaleStateAlert.razor.rz.scp.css */
.gen-stale[b-zqto1frysj] {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}
.gen-stale-body[b-zqto1frysj] { display: flex; gap: .75rem; align-items: flex-start; }
.gen-stale-icon[b-zqto1frysj] { font-size: 1.35rem; color: #ca8a04; margin-top: .1rem; }
.gen-stale-reason[b-zqto1frysj] { margin-top: .25rem; font-size: .85rem; }
/* /Components/Pages/Leagues/GenerationAttemptHistoryDrawer.razor.rz.scp.css */
.ui-attempts__head[b-efyj2x4lnx] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.ui-attempts__list[b-efyj2x4lnx] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.ui-attempts__item[b-efyj2x4lnx] {
    padding: 0.55rem 0.7rem;
    border-radius: 6px;
    border: 1px solid var(--border-default);
    background: var(--bg-elevated);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ui-attempts__item--ok[b-efyj2x4lnx]   { border-left: 3px solid var(--success); }
.ui-attempts__item--err[b-efyj2x4lnx]  { border-left: 3px solid var(--danger); }
.ui-attempts__item--warn[b-efyj2x4lnx] { border-left: 3px solid var(--warning); }
.ui-attempts__item--run[b-efyj2x4lnx]  { border-left: 3px solid var(--brand); }
.ui-attempts__item--idle[b-efyj2x4lnx] { border-left: 3px solid var(--border-strong); }

.ui-attempts__line1[b-efyj2x4lnx] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    align-items: center;
    font-size: 0.88rem;
}

.ui-attempts__kind[b-efyj2x4lnx],
.ui-attempts__outcome[b-efyj2x4lnx] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-weight: 600;
}

.ui-attempts__reason[b-efyj2x4lnx] {
    font-size: 0.9rem;
    color: var(--text-primary);
}
/* /Components/Pages/Leagues/Index.razor.rz.scp.css */
/* ── Leagues Index page ───────────────────────────────────────────────── */

.lg-page[b-7yrqtxo9x6] {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
    max-width: var(--admin-list-page-max-width, 1120px);
    margin: 0 auto;
    padding: 1.1rem 0 2.75rem;
    overflow-x: hidden;
}

@media (max-width: 1280px) {
    .lg-header[b-7yrqtxo9x6] {
        justify-content: flex-start;
        align-items: flex-start;
    }

    .lg-header-left[b-7yrqtxo9x6] {
        flex-basis: 100%;
    }

    .lg-header-actions[b-7yrqtxo9x6] {
        margin-left: 0;
        width: 100%;
        justify-content: flex-start;
    }

    .lg-header-actions .btn[b-7yrqtxo9x6] {
        width: auto;
    }
}

.lg-header[b-7yrqtxo9x6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.lg-header-left[b-7yrqtxo9x6] {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    flex: 1 1 420px;
    min-width: 0;
}

.lg-header-copy[b-7yrqtxo9x6] {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    min-width: 0;
}

.lg-title[b-7yrqtxo9x6] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--b9-text);
    margin: 0;
}

.lg-subtitle[b-7yrqtxo9x6] {
    font-size: 0.91rem;
    color: var(--b9-text-soft);
    max-width: min(42rem, 100%);
    line-height: 1.3;
}

.lg-header-actions[b-7yrqtxo9x6] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    flex: 0 0 auto;
    margin-left: auto;
}

.lg-header-actions .btn[b-7yrqtxo9x6] {
    white-space: nowrap;
    min-width: 146px;
}

.lg-header-action-btn[b-7yrqtxo9x6] {
    min-height: 2.5rem;
}

/* State cards */
.lg-loading[b-7yrqtxo9x6] {
    padding: 3rem 0;
    text-align: center;
    color: var(--b9-text-soft);
    font-size: .9375rem;
}

.lg-empty[b-7yrqtxo9x6] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 2.75rem 1rem;
    text-align: center;
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    background: var(--b9-surface);
}

.lg-empty-icon[b-7yrqtxo9x6] {
    font-size: 2.5rem;
    color: var(--b9-text-soft);
}

.lg-empty-title[b-7yrqtxo9x6] {
    font-weight: 700;
    color: var(--b9-text);
}

.lg-empty-text[b-7yrqtxo9x6] {
    color: var(--b9-text-soft);
    font-size: .95rem;
    max-width: 420px;
    margin: 0;
}

/* Count badge */
.lg-count[b-7yrqtxo9x6] {
    font-size: .8125rem;
    color: var(--b9-text-soft);
}

/* The four lg-ops cards that used to stand between an admin and their leagues were removed by
   the UX audit (O04 / X09). Their counts now render through Components/Shared/OpsStatLine.razor
   at the foot of the page. */

/* ── Table reuse (same namespace as Home.razor.css) ──────────────────── */

.dash-card[b-7yrqtxo9x6] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 12px;
    overflow: hidden;
}

.dash-card-header[b-7yrqtxo9x6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .72rem 1rem;
    border-bottom: 1px solid var(--b9-border);
    gap: .62rem;
}

.dash-card-heading[b-7yrqtxo9x6] {
    display: flex;
    flex-direction: column;
    gap: .14rem;
    min-width: 0;
}

.dash-card-title[b-7yrqtxo9x6] {
    font-weight: 700;
    font-size: .95rem;
    color: var(--b9-text);
}

.dash-card-subtitle[b-7yrqtxo9x6] {
    font-size: .75rem;
    line-height: 1.2;
    color: var(--b9-text-soft);
}

.lg-filter-bar[b-7yrqtxo9x6] {
    display: flex;
    align-items: center;
    gap: .45rem;
    flex-wrap: wrap;
    padding: .62rem 1rem;
    border-bottom: 1px solid var(--b9-border);
    background: color-mix(in srgb, var(--b9-surface-muted) 55%, transparent);
}

.lg-filter-pill[b-7yrqtxo9x6] {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    border: 1px solid var(--b9-border);
    border-radius: 999px;
    background: transparent;
    color: var(--b9-text-soft);
    padding: .34rem .72rem;
    font-size: .77rem;
    font-weight: 600;
}

.lg-filter-pill.is-active[b-7yrqtxo9x6] {
    color: var(--b9-text);
    border-color: color-mix(in srgb, var(--b9-primary) 34%, var(--b9-border));
    background: color-mix(in srgb, var(--b9-primary) 10%, transparent);
}

.lg-filter-pill-count[b-7yrqtxo9x6] {
    display: inline-flex;
    min-width: 1.35rem;
    min-height: 1.35rem;
    align-items: center;
    justify-content: center;
    padding: 0 .32rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--b9-surface-muted) 85%, transparent);
    color: inherit;
    font-size: .72rem;
}

.lg-filter-empty[b-7yrqtxo9x6] {
    padding: 1.25rem;
    color: var(--b9-text-soft);
    font-size: .9rem;
}

.etable-wrap[b-7yrqtxo9x6] {
    overflow-x: auto;
    container-type: inline-size;
}

.etable[b-7yrqtxo9x6] {
    width: 100%;
    border-collapse: collapse;
    table-layout: auto;
    font-size: .875rem;
}

.etable thead th[b-7yrqtxo9x6] {
    padding: .56rem .8rem;
    text-align: left;
    font-size: .75rem;
    font-weight: 600;
    color: var(--b9-text-soft);
    text-transform: uppercase;
    letter-spacing: .03em;
    border-bottom: 1px solid var(--b9-border);
    white-space: nowrap;
    background: var(--b9-surface-muted);
}

.etable tbody tr[b-7yrqtxo9x6] {
    border-bottom: 1px solid var(--b9-border-light, var(--b9-border));
    transition: background .12s, box-shadow .12s;
}

.etable tbody tr:last-child[b-7yrqtxo9x6] { border-bottom: none; }
.etable tbody tr:hover[b-7yrqtxo9x6] {
    background: color-mix(in srgb, var(--b9-surface-muted) 82%, transparent);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--b9-primary) 20%, transparent);
}

.etable tbody td[b-7yrqtxo9x6] {
    padding: .68rem .8rem;
    vertical-align: middle;
    color: var(--b9-text);
}

.etable thead th:last-child[b-7yrqtxo9x6],
.etable tbody td:last-child[b-7yrqtxo9x6] {
    padding-right: 1rem;
}

.etd-name-stack[b-7yrqtxo9x6] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.etd-name-link[b-7yrqtxo9x6] {
    display: block;
    max-width: none;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
    hyphens: auto;
    font-size: .93rem;
    font-weight: 700;
    color: var(--b9-text);
    line-height: 1.25;
    text-decoration: none;
}

.lgtd-inline-meta[b-7yrqtxo9x6] {
    display: none;
    flex-wrap: wrap;
    gap: .35rem .65rem;
    font-size: .78rem;
    color: var(--b9-text-soft);
    line-height: 1.3;
}

.lgtd-inline-meta span[b-7yrqtxo9x6] {
    position: relative;
}

.lgtd-inline-meta span + span[b-7yrqtxo9x6]::before {
    content: "·";
    margin-right: .45rem;
    color: color-mix(in srgb, var(--b9-text-soft) 70%, transparent);
}

.etd-name[b-7yrqtxo9x6] {
    min-width: 200px;
}

.etd-name-link:hover[b-7yrqtxo9x6] {
    text-decoration: underline;
    color: var(--b9-primary-text);
}

.etd-format[b-7yrqtxo9x6], .etd-date[b-7yrqtxo9x6], .etd-players[b-7yrqtxo9x6], .etd-rounds[b-7yrqtxo9x6] {
    color: var(--b9-text-soft);
    font-size: .815rem;
    line-height: 1.2;
}

.etd-date[b-7yrqtxo9x6] {
    white-space: nowrap;
}

.etd-actions[b-7yrqtxo9x6] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .35rem;
    flex-wrap: nowrap;
    white-space: nowrap;
    min-width: 0;
}

.lgtd-action-stack[b-7yrqtxo9x6] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .32rem;
}

.etd-row-action[b-7yrqtxo9x6] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.1rem;
    padding: .38rem .82rem;
    border-radius: 999px;
    border: 1px solid var(--b9-border);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
    color: var(--b9-text-soft);
    background: transparent;
    text-decoration: none;
}

.etd-row-action:hover[b-7yrqtxo9x6] {
    background: var(--b9-surface-muted);
    color: var(--b9-text);
}

.etd-row-action-primary[b-7yrqtxo9x6] {
    color: var(--b9-text);
    border-color: var(--b9-border-strong, var(--b9-border));
    font-weight: 600;
    background: color-mix(in srgb, var(--b9-primary) 10%, transparent);
    min-height: 2.5rem;
    padding: .5rem 1rem;
}

.etd-row-action-secondary[b-7yrqtxo9x6] {
    color: var(--b9-text-soft);
    font-weight: 400;
}

.lgtd-secondary-actions[b-7yrqtxo9x6] {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: .2rem .55rem;
}

.lgtd-secondary-action[b-7yrqtxo9x6] {
    border: none;
    background: transparent;
    padding: .22rem .08rem;
    min-height: 1.5rem;
    font-size: .74rem;
    line-height: 1.1;
    color: var(--b9-text-soft);
    opacity: .82;
    text-decoration: none;
}

.lgtd-secondary-action:hover[b-7yrqtxo9x6] {
    color: var(--b9-text);
    opacity: 1;
    text-decoration: underline;
}

/* Status badges */
.estatus[b-7yrqtxo9x6] {
    display: inline-flex;
    align-items: center;
    padding: .16rem .48rem;
    border-radius: 999px;
    font-size: .7rem;
    font-weight: 500;
    white-space: nowrap;
    letter-spacing: .02em;
    border: 1px solid transparent;
}

.estatus-active[b-7yrqtxo9x6] {
    background: color-mix(in srgb, var(--b9-success) 8%, transparent);
    color: color-mix(in srgb, var(--b9-success) 70%, var(--b9-text));
    border-color: color-mix(in srgb, var(--b9-success) 36%, var(--b9-border));
}

.estatus-draft[b-7yrqtxo9x6] {
    background: var(--b9-surface-muted, rgba(148, 163, 184, 0.18));
    color: var(--b9-text-soft, #cbd5e1);
    border-color: var(--b9-border, rgba(148, 163, 184, 0.35));
}

.estatus-closed[b-7yrqtxo9x6] {
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    border-color: color-mix(in srgb, var(--b9-primary) 42%, transparent);
}

.estatus-cancelled[b-7yrqtxo9x6] {
    background: var(--b9-danger-soft, rgba(239, 68, 68, 0.16));
    color: var(--b9-danger-text, #fca5a5);
    border-color: var(--b9-danger, rgba(239, 68, 68, 0.45));
}

/* Column widths — Status and Actions are protected; never hidden */
.col-format[b-7yrqtxo9x6]  { width: 84px; }
.col-date[b-7yrqtxo9x6]    { width: 104px; }
.col-players[b-7yrqtxo9x6] { width: 56px; text-align: center; }
.col-rounds[b-7yrqtxo9x6]  { width: 56px; text-align: center; }
.col-status[b-7yrqtxo9x6]  { width: 92px; white-space: nowrap; }
.col-actions[b-7yrqtxo9x6] { width: 168px; white-space: nowrap; }

.col-status[b-7yrqtxo9x6],
td.col-status[b-7yrqtxo9x6] {
    text-align: left;
}

.col-players[b-7yrqtxo9x6],
.col-rounds[b-7yrqtxo9x6],
td.col-players[b-7yrqtxo9x6],
td.col-rounds[b-7yrqtxo9x6] {
    text-align: center;
}

/* Container queries — hide lower-priority columns when the table container
   is too narrow. Based on actual container width (not viewport), so the
   sidebar width is accounted for automatically.
   Order: Rounds → Players → Format → Start Date.
   Status and Actions are NEVER hidden.
   
   Column totals (fixed cols):
     All 6:  Format(84)+Date(104)+Ply(56)+Rnd(56)+Status(92)+Actions(156) = 548px
     -Rounds: 492px  → hide Rounds when container ≤ Name(200)+492 = 692px (use 700)
     -Players: 436px → hide Players when container ≤ Name(200)+436 = 636px (use 650)
     -Format: 352px  → hide Format when container ≤ Name(200)+352 = 552px (use 570)
     -Date: 248px    → hide Date when container ≤ Name(200)+248 = 448px (use 460)
*/
@container (max-width: 750px) {
    .col-rounds[b-7yrqtxo9x6] { display: none; }
}

@container (max-width: 695px) {
    .col-players[b-7yrqtxo9x6] { display: none; }
    .lgtd-inline-meta[b-7yrqtxo9x6] { display: flex; }
}

@container (max-width: 590px) {
    .col-format[b-7yrqtxo9x6] { display: none; }
    .etd-name[b-7yrqtxo9x6] { min-width: 180px; }
}

@container (max-width: 480px) {
    .col-date[b-7yrqtxo9x6] { display: none; }
    .etd-name[b-7yrqtxo9x6] { min-width: 0; }
    .etd-name-link[b-7yrqtxo9x6] {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        max-width: none;
    }
}

@media (max-width: 980px) {
    .lg-header[b-7yrqtxo9x6] {
        align-items: flex-start;
        gap: .75rem;
    }

    .lg-header-left[b-7yrqtxo9x6] {
        flex-basis: 100%;
    }

    .lg-header-actions[b-7yrqtxo9x6] {
        width: 100%;
        margin-left: 0;
    }

    .lg-header-actions .btn[b-7yrqtxo9x6] {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 620px) {
    .etd-name-link[b-7yrqtxo9x6] {
        font-size: .9rem;
    }

    .etd-row-action[b-7yrqtxo9x6] {
        font-size: .72rem;
        padding: .25rem .62rem;
    }
}

@container (max-width: 860px) {
    .etable thead[b-7yrqtxo9x6] {
        display: none;
    }

    .etable-wrap[b-7yrqtxo9x6] {
        overflow-x: hidden;
    }

    .etable[b-7yrqtxo9x6],
    .etable tbody[b-7yrqtxo9x6],
    .etable tr[b-7yrqtxo9x6],
    .etable td[b-7yrqtxo9x6] {
        display: block;
        width: 100%;
    }

    .etable tbody tr[b-7yrqtxo9x6] {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto fit-content(47%);
        column-gap: .42rem;
        row-gap: .22rem;
        align-items: start;
        padding: .56rem .74rem;
        margin: .38rem 0;
        border: 1px solid color-mix(in srgb, var(--b9-border) 84%, var(--b9-primary) 16%);
        border-radius: 10px;
        background: linear-gradient(
            180deg,
            color-mix(in srgb, var(--b9-surface) 95%, black 5%) 0%,
            color-mix(in srgb, var(--b9-surface) 89%, black 11%) 100%
        );
        box-shadow: 0 1px 0 rgba(15, 23, 42, .18), inset 0 0 0 1px color-mix(in srgb, var(--b9-surface-muted) 28%, transparent);
    }

    .etable tbody td[b-7yrqtxo9x6] {
        padding: 0;
        border: 0;
    }

    .etable tbody td.col-format[b-7yrqtxo9x6],
    .etable tbody td.col-date[b-7yrqtxo9x6],
    .etable tbody td.col-players[b-7yrqtxo9x6],
    .etable tbody td.col-rounds[b-7yrqtxo9x6] {
        display: none !important;
    }

    .lgtd-inline-meta[b-7yrqtxo9x6] {
        display: flex;
        gap: .24rem .5rem;
    }

    .etable tbody td.col-status[b-7yrqtxo9x6],
    .etable tbody td.col-actions[b-7yrqtxo9x6] {
        display: block !important;
    }

    .etable tbody td.etd-name[b-7yrqtxo9x6] {
        display: contents !important;
        min-width: 0;
    }

    .etable tbody td.col-status[b-7yrqtxo9x6] {
        display: contents !important;
    }

    .etable tbody td.col-actions[b-7yrqtxo9x6] {
        display: contents !important;
        min-width: 0;
    }

    .etd-name-stack[b-7yrqtxo9x6],
    .lgtd-action-stack[b-7yrqtxo9x6] {
        display: contents;
    }

    .etd-name-link[b-7yrqtxo9x6] {
        grid-column: 1;
        grid-row: 1;
        align-self: center;
        min-width: 0;
        font-size: .91rem;
        line-height: 1.18;
    }

    .estatus[b-7yrqtxo9x6] {
        grid-column: 2;
        grid-row: 1;
        justify-self: start;
        align-self: center;
    }

    .col-status[b-7yrqtxo9x6] {
        margin-top: 0;
        white-space: nowrap;
    }

    .etd-actions[b-7yrqtxo9x6] {
        margin-top: 0;
        white-space: normal;
    }

    .lgtd-action-stack[b-7yrqtxo9x6],
    .lgtd-secondary-actions[b-7yrqtxo9x6] {
        align-items: flex-end;
        justify-content: flex-end;
    }

    .lgtd-action-stack[b-7yrqtxo9x6] {
        gap: .12rem;
    }

    .etd-row-action[b-7yrqtxo9x6] {
        min-width: 0;
        width: auto;
        max-width: 100%;
    }

    .etd-row-action-primary[b-7yrqtxo9x6] {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        align-self: center;
        min-height: 2.18rem;
        min-width: 8.75rem;
        max-width: 100%;
        padding: .34rem .76rem;
        margin-right: .08rem;
        border-radius: 10px;
        border-color: color-mix(in srgb, var(--b9-border) 82%, var(--b9-primary) 18%);
        background: color-mix(in srgb, var(--b9-primary) 5%, transparent);
        box-shadow: inset 0 1px 0 color-mix(in srgb, white 24%, transparent);
    }

    .lgtd-secondary-actions[b-7yrqtxo9x6] {
        grid-column: 3;
        grid-row: 2;
        justify-self: end;
        align-self: start;
        max-width: 100%;
        padding-right: .08rem;
        margin-top: 0;
        gap: .08rem .34rem;
    }

    .lgtd-secondary-action[b-7yrqtxo9x6] {
        display: inline-flex;
        align-items: center;
        min-height: 1.52rem;
        padding: .08rem .12rem;
        border-radius: 5px;
        font-size: .7rem;
        line-height: 1;
        opacity: .74;
    }

    .lgtd-inline-meta[b-7yrqtxo9x6] {
        grid-column: 1 / span 2;
        grid-row: 2;
        display: inline-flex;
        align-self: start;
        justify-self: start;
        gap: .2rem .46rem;
        line-height: 1.15;
        white-space: normal;
    }
}
/* /Components/Pages/Leagues/LeagueOnCourseGamesEditor.razor.rz.scp.css */
.games[b-8gtizcogm1] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.muted[b-8gtizcogm1] {
    color: var(--text-muted, #9aa4b2);
    font-size: .85rem;
    margin: 0;
}

.list[b-8gtizcogm1] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .375rem;
}

.row-item[b-8gtizcogm1] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .625rem;
    border-radius: .5rem;
    background: var(--surface-2, rgba(255, 255, 255, .04));
    border: 1px solid var(--border, rgba(255, 255, 255, .08));
}

.icon[b-8gtizcogm1] { color: var(--b9-primary-text, #4ea1ff); }
.name[b-8gtizcogm1] { font-weight: 600; }

.hole[b-8gtizcogm1] {
    color: var(--text-muted, #9aa4b2);
    font-size: .85rem;
}

.prize[b-8gtizcogm1] {
    color: var(--text-muted, #9aa4b2);
    font-size: .8rem;
    margin-left: auto;
}

.remove[b-8gtizcogm1] {
    margin-left: auto;
    background: transparent;
    border: none;
    color: var(--text-muted, #9aa4b2);
    cursor: pointer;
    line-height: 1;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: .375rem;
    flex: 0 0 auto;
}

/* When a prize is shown it owns the right-push; the remove button sits just after it. */
.prize + .remove[b-8gtizcogm1] { margin-left: .25rem; }

.remove:hover[b-8gtizcogm1] {
    color: #ff6b6b;
    background: rgba(255, 107, 107, .12);
}

.add[b-8gtizcogm1] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

.add .form-select[b-8gtizcogm1],
.add .form-control[b-8gtizcogm1] {
    width: auto;
    min-width: 8.5rem;
}

.err[b-8gtizcogm1] {
    color: #ff6b6b;
    font-size: .8rem;
    margin: .25rem 0 0;
}
/* /Components/Pages/Leagues/LeagueOpsAttentionPanel.razor.rz.scp.css */
/* ============================================================
   LeagueOpsAttentionPanel — scoped styles
   ============================================================ */

/* ── Panel wrapper ── */
.lap[b-3wm4jeejam] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: var(--b9-card-radius);
    overflow: hidden;
    margin-bottom: var(--space-5);
}

/* ── Header bar ── */
.lap-header[b-3wm4jeejam] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    background: rgba(245,158,11,0.08);
    border-bottom: 1px solid rgba(245,158,11,0.18);
}

.lap-header-icon[b-3wm4jeejam] {
    font-size: 0.8rem;
    color: var(--b9-warning-text);
    flex-shrink: 0;
}

.lap-header-text[b-3wm4jeejam] {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--b9-warning-text);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    flex: 1;
}

.lap-count[b-3wm4jeejam] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    background: var(--b9-warning-soft);
    border-radius: var(--radius-full);
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--b9-warning-text);
}

/* ── Item list ── */
.lap-list[b-3wm4jeejam] {
    display: flex;
    flex-direction: column;
}

/* ── Individual item ── */
.lap-item[b-3wm4jeejam] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-6);
    border-bottom: 1px solid var(--border-subtle);
    transition: background var(--t-fast);
}

.lap-item:last-child[b-3wm4jeejam] { border-bottom: none; }

.lap-item:hover[b-3wm4jeejam] { background: var(--bg-raised); }

/* Severity left accents */
.lap-item--high[b-3wm4jeejam]   { border-left: 3px solid var(--b9-success); }
.lap-item--medium[b-3wm4jeejam] { border-left: 3px solid var(--b9-primary); }
.lap-item--low[b-3wm4jeejam]    { border-left: 3px solid var(--border-default); }

.lap-item-icon[b-3wm4jeejam] {
    font-size: 1rem;
    flex-shrink: 0;
}

.lap-item--high   .lap-item-icon[b-3wm4jeejam] { color: var(--b9-success-text); }
.lap-item--medium .lap-item-icon[b-3wm4jeejam] { color: var(--b9-primary-text); }
.lap-item--low    .lap-item-icon[b-3wm4jeejam] { color: var(--text-muted); }

.lap-item-body[b-3wm4jeejam] {
    flex: 1;
    min-width: 0;
}

.lap-item-text[b-3wm4jeejam] {
    font-size: 0.875rem;
    color: var(--text-primary);
    line-height: 1.45;
}

.lap-item-action[b-3wm4jeejam] {
    flex-shrink: 0;
    white-space: nowrap;
}

/* ── Responsive ── */
@media (max-width: 600px) {
    .lap-item[b-3wm4jeejam] {
        flex-wrap: wrap;
        padding: var(--space-3) var(--space-4);
    }

    .lap-item-action[b-3wm4jeejam] {
        width: 100%;
        justify-content: center;
    }

    .lap-header[b-3wm4jeejam] {
        padding: var(--space-3) var(--space-4);
    }
}
/* /Components/Pages/Leagues/LeagueOpsSummaryBar.razor.rz.scp.css */
/* ============================================================
   LeagueOpsSummaryBar — scoped styles
   ============================================================ */

.losb[b-vusb1tzmha] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-4);
    margin-bottom: var(--space-5);
}

/* Five tiles when a week has been cancelled.
   🔴 Sized off the CONTAINER, not the viewport. A width media query cannot see the
   ~338px operations sidebar, so `repeat(5, 1fr)` guarded by `min-width: 900px` still
   handed each tile ~104px on a 920px-wide laptop — under the ~84px label box the four
   tiles get today — and `.ui-stat { overflow: hidden }` then CLIPPED every label.
   Measured, not assumed. auto-fit drops to 3 (then 2) columns as the bar narrows, so
   a tile never falls below the width that already renders cleanly. */
.losb--with-cancelled[b-vusb1tzmha] {
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
}

/* Tile overrides — ensure consistent height */
.losb-tile[b-vusb1tzmha] {
    min-height: 80px;
}

/* Phones stack to two columns either way — named explicitly, and placed after the rule
   above, so the auto-fit track list cannot win on a narrow screen. */
@media (max-width: 720px) {
    .losb[b-vusb1tzmha],
    .losb--with-cancelled[b-vusb1tzmha] {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 400px) {
    .losb[b-vusb1tzmha],
    .losb--with-cancelled[b-vusb1tzmha] {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-3);
    }
}
/* /Components/Pages/Leagues/LeagueRoundCard.razor.rz.scp.css */
/* ============================================================
   LeagueRoundCard — scoped styles.
   Uses design system tokens exclusively. No hardcoded colors.
   Global ui-* classes (ui-btn, ui-badge, StatusBadge) are defined
   in components.css and need no re-declaration here.
   ============================================================ */

/* ── Card shell ── */
.rc[b-yjdiggode1] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: var(--b9-card-radius);
    box-shadow: var(--b9-card-shadow);
    overflow: hidden;
    transition: box-shadow var(--t-base) var(--t-ease),
                border-color var(--t-base) var(--t-ease);
}

.rc:hover[b-yjdiggode1] {
    box-shadow: var(--b9-card-shadow-hover);
    border-color: var(--border-default);
}

/* Active round — green left accent bar */
.rc--active[b-yjdiggode1] {
    border-left: 3px solid var(--b9-success);
}

/* Completed round — slightly faded, right-tinted */
.rc--final[b-yjdiggode1] {
    opacity: 0.78;
}

.rc--final:hover[b-yjdiggode1] {
    opacity: 1;
}

/* Cancelled round — clearly subdued */
.rc--cancelled[b-yjdiggode1] {
    opacity: 0.5;
    border-style: dashed;
}

.rc--cancelled:hover[b-yjdiggode1] {
    opacity: 0.72;
}

/* ── Header ── */
.rc-header[b-yjdiggode1] {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-5) var(--space-6);
    flex-wrap: wrap;
}

/* ── Week identity ── */
.rc-identity[b-yjdiggode1] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 0 0 auto;
    min-width: 72px;
}

.rc-weeknum[b-yjdiggode1] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--text-primary);
    white-space: nowrap;
    line-height: 1.2;
}

.rc-customname[b-yjdiggode1] {
    font-size: 0.72rem;
    color: var(--text-muted);
    font-style: italic;
}

.rc-makeup-tag[b-yjdiggode1] {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 700;
    padding: 1px 6px;
    border-radius: var(--radius-full);
    background: var(--b9-warning-soft);
    color: var(--b9-warning-text);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    width: fit-content;
}

/* ── Date / time display ── */
.rc-datetime[b-yjdiggode1] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    flex: 1;
    min-width: 0;
    flex-wrap: wrap;
}

.rc-datetime--editing[b-yjdiggode1] {
    gap: var(--space-2);
}

.rc-date-val[b-yjdiggode1] {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
}

.rc-time-val[b-yjdiggode1] {
    font-size: 0.78rem;
    color: var(--text-secondary);
    background: var(--bg-elevated);
    padding: 2px 8px;
    border-radius: var(--radius-sm);
    white-space: nowrap;
}

.rc-input-date[b-yjdiggode1] { max-width: 148px; }
.rc-input-time[b-yjdiggode1] { max-width: 118px; }

/* ── Badges row ── */
.rc-badges[b-yjdiggode1] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
    flex-shrink: 0;
}

/* Smaller indicator badges (pairings/scorecards/QR) */
.rc-sm-badge[b-yjdiggode1] {
    font-size: 0.67rem !important;
    padding: 2px 6px !important;
    gap: 3px;
}

.rc-sm-badge .bi[b-yjdiggode1] {
    font-size: 0.65rem;
}

/* ── Overflow / edit menu ── */
.rc-menu[b-yjdiggode1] {
    display: flex;
    align-items: center;
    gap: var(--space-1);
    flex-shrink: 0;
    margin-left: auto;
}

.rc-save-btn[b-yjdiggode1] {
    white-space: nowrap;
}

/* Icon-only ghost buttons in the menu */
.rc-icon-btn[b-yjdiggode1] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    background: none;
    color: var(--text-muted);
    font-size: 0.875rem;
    cursor: pointer;
    transition: background var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}

.rc-icon-btn:hover[b-yjdiggode1] {
    background: var(--bg-elevated);
    color: var(--text-primary);
    border-color: var(--border-subtle);
}

.rc-icon-btn--danger:hover[b-yjdiggode1] {
    background: var(--b9-danger-soft);
    color: var(--b9-danger-text);
    border-color: rgba(239,68,68,0.25);
}

/* ── Guidance strip ── */
.rc-guidance[b-yjdiggode1] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    font-size: 0.8125rem;
    font-weight: 500;
    border-top: 1px solid var(--border-subtle);
    line-height: 1.45;
}

.rc-guidance--action[b-yjdiggode1] {
    background: rgba(245, 158, 11, 0.07);
    color: var(--b9-warning-text);
    border-top-color: rgba(245,158,11,0.20);
}

.rc-guidance--done[b-yjdiggode1] {
    background: var(--b9-success-soft);
    color: var(--b9-success-text);
    border-top-color: rgba(34,197,94,0.20);
}

.rc-guidance-icon[b-yjdiggode1] {
    font-size: 0.875rem;
    flex-shrink: 0;
    margin-top: 1px;
}

/* ── Action bar ── */
.rc-actions[b-yjdiggode1] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-4) var(--space-6);
    border-top: 1px solid var(--border-subtle);
    background: var(--bg-elevated);
    flex-wrap: wrap;
}

/* Green "Open Scoring" button — unique to this context */
.rc-btn-open-scoring[b-yjdiggode1] {
    background: var(--b9-success);
    color: #fff;
    border-color: transparent;
}

.rc-btn-open-scoring:hover:not(:disabled)[b-yjdiggode1] {
    background: var(--b9-accent-green-hover);
    color: #fff;
}

/* "Full Ops" link — lower visual priority, pushed to the right */
.rc-manage-link[b-yjdiggode1] {
    margin-left: auto;
    color: var(--text-muted);
    font-size: 0.78rem;
}

.rc-manage-link:hover[b-yjdiggode1] {
    color: var(--text-secondary);
}

/* ── Responsive ── */
@media (max-width: 720px) {
    .rc-header[b-yjdiggode1] {
        padding: var(--space-4) var(--space-4);
        gap: var(--space-3);
    }

    .rc-menu[b-yjdiggode1] {
        margin-left: 0;
        width: 100%;
        padding-top: var(--space-2);
        border-top: 1px solid var(--border-subtle);
        justify-content: flex-end;
    }

    .rc-actions[b-yjdiggode1] {
        padding: var(--space-3) var(--space-4);
        gap: var(--space-2);
    }

    .rc-guidance[b-yjdiggode1] {
        padding: var(--space-3) var(--space-4);
    }

    .rc-manage-link[b-yjdiggode1] {
        margin-left: 0;
    }
}

@media (max-width: 480px) {
    .rc-datetime[b-yjdiggode1] {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-1);
    }

    .rc-badges[b-yjdiggode1] {
        flex-wrap: wrap;
        gap: var(--space-1);
    }

    .rc-identity[b-yjdiggode1] {
        min-width: 60px;
    }
}

/* ── Posted season matchups line (Zone 1b) ────────────────────── */
.rc-matchup-line[b-yjdiggode1] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 1rem 0;
    color: var(--text-muted);
    font-size: 0.85rem;
}

/* Week-kind select in edit mode sits beside the date/time inputs */
.rc-input-kind[b-yjdiggode1] { max-width: 21rem; }
/* /Components/Pages/Leagues/LeagueRoundNextStepBanner.razor.rz.scp.css */
.lrnsb[b-fqpdjtc6cg] {
    border-left: 3px solid var(--brand);
}

.lrnsb-title[b-fqpdjtc6cg] {
    font-size: .76rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--text-muted);
    font-weight: 700;
    margin-bottom: var(--space-1, .25rem);
}

.lrnsb-body[b-fqpdjtc6cg] {
    color: var(--text-primary);
    font-size: 1rem;
    font-weight: 600;
}
/* /Components/Pages/Leagues/LeagueSetupSteps.razor.rz.scp.css */
/* Draft-league readiness strip (UX-030). Same visual grammar as the event page's setup spine
   (Components/UI/EventSetupSteps.razor.css) so one product reads one way — tokens only. */

.ld-setup[b-oo2xlmtv92] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: .6rem;
    padding: .65rem .75rem .5rem;
    margin-bottom: 1rem;
}

.ld-setup-head[b-oo2xlmtv92] {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: .5rem;
    padding: 0 .2rem .35rem;
}

.ld-setup-title[b-oo2xlmtv92] {
    font-size: .92rem;
    font-weight: 700;
    color: var(--text-primary);
}

.ld-setup-sub[b-oo2xlmtv92] {
    font-size: .74rem;
    color: var(--text-muted);
}

.ld-setup-steps[b-oo2xlmtv92] {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: .25rem;
}

.ld-setup-step[b-oo2xlmtv92] {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .4rem .7rem;
    border: none;
    background: none;
    border-radius: .5rem;
    text-align: left;
    text-decoration: none;
    color: var(--text-muted);
    min-height: 48px;          /* comfortable touch target */
    cursor: pointer;
    transition: background .12s ease, color .12s ease;
}

.ld-setup-step:hover[b-oo2xlmtv92] {
    background: var(--bg-raised);
    color: var(--text-primary);
}

.ld-setup-mark[b-oo2xlmtv92] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    font-size: .8rem;
    font-weight: 700;
    background: var(--bg-raised);
    color: var(--text-muted);
    border: 1px solid var(--border-default);
}

.ld-setup-text[b-oo2xlmtv92] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.ld-setup-step-title[b-oo2xlmtv92] {
    font-weight: 600;
    font-size: .9rem;
    color: inherit;
}

.ld-setup-count[b-oo2xlmtv92] {
    font-weight: 700;
    color: var(--text-muted);
    margin-left: .3rem;
}

/* Ready */
.ld-setup-step.is-done .ld-setup-mark[b-oo2xlmtv92] {
    background: var(--success-soft);
    color: var(--success);
    border-color: var(--success);
}

.ld-setup-step.is-done .ld-setup-step-title[b-oo2xlmtv92],
.ld-setup-step.is-done .ld-setup-count[b-oo2xlmtv92] {
    color: var(--text-primary);
}

/* "Why isn't this ticked?" — --warning-text, NOT --warning: the plain amber fails AA at this
   size on --bg-elevated. Matches the event strip's hint exactly. */
.ld-setup-hint[b-oo2xlmtv92] {
    font-size: .68rem;
    font-weight: 600;
    color: var(--warning-text);
    margin-top: 1px;
}

@media (max-width: 575.98px) {
    .ld-setup-sub[b-oo2xlmtv92] { display: none; }
}
/* /Components/Pages/Leagues/MyLeague.razor.rz.scp.css */
.mlg-shell[b-w7fysojhby] {
    margin: 1rem 1.25rem;
}

.mlg-hero[b-w7fysojhby] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 0.9rem;
}

.mlg-kicker[b-w7fysojhby] {
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #93c5fd;
    font-weight: 700;
}

.mlg-heading[b-w7fysojhby] {
    margin: 0.1rem 0;
    font-size: 1.35rem;
    color: #f8fafc;
    font-weight: 800;
    line-height: 1.2;
}

.mlg-subline[b-w7fysojhby] {
    color: #cbd5e1;
    font-size: 0.92rem;
    margin: 0;
}

.mlg-badge[b-w7fysojhby] {
    border-radius: 999px;
    padding: 0.24rem 0.72rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: 1px solid rgba(148, 163, 184, 0.4);
    color: #cbd5e1;
}

.mlg-badge-active[b-w7fysojhby] {
    border-color: rgba(34, 197, 94, 0.6);
    color: #86efac;
}

.mlg-badge-closed[b-w7fysojhby] {
    border-color: rgba(245, 158, 11, 0.6);
    color: #fcd34d;
}

.mlg-standing-row[b-w7fysojhby] {
    display: flex;
    align-items: center;
    gap: 0;
    margin-top: 1.05rem;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.12);
}

.mlg-standing-block[b-w7fysojhby] {
    flex: 1;
    text-align: center;
    padding: 0.9rem 0.55rem;
}

.mlg-standing-divider[b-w7fysojhby] {
    width: 1px;
    align-self: stretch;
    background: rgba(255, 255, 255, 0.15);
}

.mlg-standing-rank[b-w7fysojhby] {
    font-size: 1.6rem;
    font-weight: 800;
    color: #fff;
    line-height: 1;
}

.mlg-standing-score[b-w7fysojhby] {
    font-size: 1.35rem;
}

.mlg-standing-label[b-w7fysojhby] {
    font-size: 0.74rem;
    color: rgba(255, 255, 255, 0.62);
    margin-top: 0.24rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.mlg-anchor-nav[b-w7fysojhby] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    padding: 0.75rem 0;
    margin-top: 0.85rem;
}

.mlg-anchor-link[b-w7fysojhby] {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.25rem 0.75rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    color: #cbd5e1;
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 700;
}

.mlg-anchor-link:hover[b-w7fysojhby] {
    border-color: rgba(56, 189, 248, 0.7);
    color: #e0f2fe;
}

.mlg-anchor-target[b-w7fysojhby] {
    scroll-margin-top: 5rem;
}

.mlg-panel[b-w7fysojhby] {
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 12px;
    padding: 0.9rem;
    background: rgba(15, 23, 42, 0.42);
}

.mlg-panel-title[b-w7fysojhby] {
    margin: 0 0 0.55rem;
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 800;
}

.mlg-week-card[b-w7fysojhby] {
    margin-top: 0.75rem;
}

.mlg-text[b-w7fysojhby] {
    margin: 0 0 0.35rem;
    color: #e2e8f0;
    font-size: 0.9rem;
}

.mlg-text-muted[b-w7fysojhby] {
    margin: 0;
    color: #cbd5e1;
    font-size: 0.84rem;
}

.mlg-cta-row[b-w7fysojhby] {
    margin-top: 0.65rem;
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.mlg-round-list[b-w7fysojhby] {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.mlg-round-row[b-w7fysojhby] {
    display: flex;
    justify-content: space-between;
    gap: 0.6rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding-bottom: 0.42rem;
}

.mlg-round-state[b-w7fysojhby] {
    color: #bae6fd;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.mlg-my-row[b-w7fysojhby] {
    background: rgba(34, 197, 94, 0.18) !important;
    font-weight: 700;
}

/* ── Waitlist state panel ── */
.mlg-panel--waitlist[b-w7fysojhby] {
    border-color: var(--color-warn, rgba(234,179,8,.4));
    background: var(--color-warn-subtle, rgba(234,179,8,.08));
    text-align: center;
    padding: 2rem 1.25rem;
}

.mlg-waitlist-badge[b-w7fysojhby] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--color-warn-subtle, rgba(234,179,8,.15));
    border: 1px solid var(--color-warn, rgba(234,179,8,.5));
    border-radius: 100px;
    color: var(--color-warn, #eab308);
    font-size: 1.5rem;
    font-weight: 900;
    padding: 0.3rem 1rem;
    margin-bottom: 1rem;
}
/* /Components/Pages/Leagues/Overview/HandicapDetailsDrawer.razor.rz.scp.css */
.hdd-drawer[b-x5sone92rx] {
    border: 1px solid var(--border-subtle, rgba(255,255,255,.08));
    border-radius: 10px;
    background: var(--surface-2, rgba(255,255,255,.03));
    padding: 1rem 1.15rem;
    margin: 0 0 1rem 0;
}

.hdd-header[b-x5sone92rx] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: .75rem;
}

.hdd-title[b-x5sone92rx] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary, #e5e7eb);
    margin: 0;
}

.hdd-sub[b-x5sone92rx] {
    margin: .15rem 0 0 0;
    font-size: .85rem;
    color: var(--text-muted, #94a3b8);
}

.hdd-meta[b-x5sone92rx] {
    display: flex;
    gap: 1.25rem;
    flex-wrap: wrap;
    align-items: center;
    padding: .65rem .8rem;
    border-radius: 8px;
    background: rgba(255,255,255,.02);
    margin-bottom: .85rem;
    font-size: .8rem;
}

.hdd-meta-label[b-x5sone92rx] {
    color: var(--text-muted, #94a3b8);
    margin-right: .4rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    font-size: .7rem;
    font-weight: 600;
}

.hdd-meta-value[b-x5sone92rx] {
    color: var(--text-primary, #e5e7eb);
    font-weight: 600;
}

.hdd-empty[b-x5sone92rx] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: 1rem 0 0 0;
    color: var(--text-muted, #94a3b8);
    font-size: .85rem;
}

.hdd-table[b-x5sone92rx] { font-size: .85rem; }
/* /Components/Pages/Leagues/Overview/LeagueCoreMetricsRow.razor.rz.scp.css */
.lcm-row[b-1cnrcmwrdn] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin: .25rem 0 1rem 0;
}
/* /Components/Pages/Leagues/Overview/LeagueHandicapSummaryStrip.razor.rz.scp.css */
.lhss-strip[b-v6fmtps4do] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .75rem 1rem;
    border-radius: 10px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,.08));
    background: var(--surface-2, rgba(255,255,255,.03));
    margin: 0 0 1rem 0;
    flex-wrap: wrap;
}

.lhss-facts[b-v6fmtps4do] {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    min-width: 0;
    flex: 1 1 auto;
}

.lhss-fact[b-v6fmtps4do] { min-width: 0; }

.lhss-fact-label[b-v6fmtps4do] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted, #94a3b8);
    font-weight: 600;
    margin-bottom: .1rem;
}

.lhss-fact-value[b-v6fmtps4do] {
    font-size: .9rem;
    font-weight: 600;
    color: var(--text-primary, #e5e7eb);
    max-width: 16rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lhss-divider[b-v6fmtps4do] {
    width: 1px;
    height: 1.75rem;
    background: var(--border-subtle, rgba(255,255,255,.1));
}

.lhss-actions[b-v6fmtps4do] {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.lhss-avg[b-v6fmtps4do] {
    font-size: .8rem;
    color: var(--text-muted, #94a3b8);
}
.lhss-avg strong[b-v6fmtps4do] {
    color: var(--text-primary, #e5e7eb);
    margin-left: .25rem;
}

@media (max-width: 720px) {
    .lhss-divider[b-v6fmtps4do] { display: none; }
}
/* /Components/Pages/Leagues/Overview/LeagueNextRoundCard.razor.rz.scp.css */
.lnrc-card[b-ft5ddjrgyn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .85rem 1rem;
    border-radius: 10px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,.08));
    background: linear-gradient(180deg, rgba(74,222,128,.06), rgba(74,222,128,0));
    text-decoration: none;
    color: inherit;
    margin: 0 0 1rem 0;
    transition: border-color .15s, transform .15s;
}
.lnrc-card:hover[b-ft5ddjrgyn] {
    border-color: var(--b9-accent-green-text, #4ade80);
    transform: translateY(-1px);
}

.lnrc-label[b-ft5ddjrgyn] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--b9-accent-green-text, #4ade80);
    font-weight: 700;
}

.lnrc-title[b-ft5ddjrgyn] {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--text-primary, #e5e7eb);
    margin-top: .1rem;
}

.lnrc-meta[b-ft5ddjrgyn] {
    font-size: .85rem;
    color: var(--text-muted, #94a3b8);
    margin-top: .1rem;
}

.lnrc-right[b-ft5ddjrgyn] {
    display: inline-flex;
    align-items: center;
    gap: .75rem;
}

.lnrc-status[b-ft5ddjrgyn] {
    padding: .2rem .55rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
    border: 1px solid transparent;
}
.lnrc-status--neutral[b-ft5ddjrgyn] { background: rgba(148,163,184,.15); color: #cbd5e1; border-color: rgba(148,163,184,.25); }
.lnrc-status--info[b-ft5ddjrgyn]    { background: rgba(59,130,246,.15);  color: #93c5fd; border-color: rgba(59,130,246,.3); }
.lnrc-status--success[b-ft5ddjrgyn] { background: rgba(74,222,128,.15);  color: #86efac; border-color: rgba(74,222,128,.3); }
.lnrc-status--muted[b-ft5ddjrgyn]   { background: rgba(148,163,184,.08); color: #94a3b8; border-color: rgba(148,163,184,.15); }

.lnrc-arrow[b-ft5ddjrgyn] { color: var(--text-muted, #94a3b8); font-size: 1.15rem; }
/* /Components/Pages/Leagues/Overview/MetricChip.razor.rz.scp.css */
.mc-chip[b-oqao4c8ts8] {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .5rem .85rem;
    border-radius: 10px;
    background: var(--surface-2, rgba(255,255,255,.04));
    border: 1px solid var(--border-subtle, rgba(255,255,255,.08));
    min-height: 2.75rem;
}

.mc-icon[b-oqao4c8ts8] {
    font-size: 1.05rem;
    color: var(--b9-accent-green-text, #4ade80);
    opacity: .9;
}

.mc-body[b-oqao4c8ts8] { display: flex; flex-direction: column; line-height: 1.1; }

.mc-label[b-oqao4c8ts8] {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted, #94a3b8);
    font-weight: 600;
}

/* --text-strong is not a token — nothing declares it — so #e5e7eb was this chip's colour in
   both themes, and on the light league page that is 1.18:1: the format, the tee, the handicap
   basis, all of the chip VALUES on /leagues/{id}, invisible. --text-primary is the name that
   means what the fallback was reaching for, and it resolves to #F3F6FB in dark — near enough
   to #e5e7eb that dark keeps the look it had. Same one-word fix in LeagueHandicapSummaryStrip,
   LeagueNextRoundCard and HandicapDetailsDrawer, which copied the same line. */
.mc-value[b-oqao4c8ts8] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary, #e5e7eb);
    margin-top: .1rem;
}
/* /Components/Pages/Leagues/PairingGroupCard.razor.rz.scp.css */
.pgc-card[b-wsmx9uf6mf] {
    padding: 16px;
    border-radius: 12px;
}

.pgc-head[b-wsmx9uf6mf] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}

.pgc-team[b-wsmx9uf6mf] {
    margin-top: 8px;
}

.pgc-player[b-wsmx9uf6mf] {
    margin-top: 4px;
}
/* /Components/Pages/Leagues/PairingsBoard.razor.rz.scp.css */
.wrd-pairings-grid[b-nuamybvjko] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3, .75rem);
}

.wrd-pairing-head[b-nuamybvjko] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-pairing-title[b-nuamybvjko] {
    font-weight: 700;
}

.wrd-pairing-sub[b-nuamybvjko] {
    display: flex;
    gap: var(--space-2, .5rem);
    color: var(--text-secondary);
    font-size: .78rem;
}

.wrd-pairing-teams[b-nuamybvjko] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2, .5rem);
}

.wrd-pairing-teams li[b-nuamybvjko] {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    padding: .5rem .625rem;
    background: var(--bg-elevated);
}

.wrd-pairing-teams span[b-nuamybvjko] {
    color: var(--text-secondary);
    font-size: .8rem;
}

@media (max-width: 900px) {
    .wrd-pairings-grid[b-nuamybvjko] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Leagues/PlayerLeagueClubhouse.razor.rz.scp.css */
.pdb-loading[b-gysr573gch] {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 40vh;
    color: #94a3b8;
}

.mlg-featured-shell[b-gysr573gch] {
    margin: 1rem 1.25rem;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(15, 23, 42, 0.92) 0%, rgba(2, 6, 23, 0.98) 100%);
    padding: 1.1rem 1.15rem 1rem;
    overflow: hidden;
    width: auto;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.mlg-featured-hero[b-gysr573gch] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 0.9rem;
}

.mlg-kicker[b-gysr573gch] {
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #93c5fd;
    font-weight: 700;
}

.mlg-title[b-gysr573gch] {
    margin: 0.1rem 0;
    font-size: 1.3rem;
    color: #f8fafc;
    font-weight: 800;
    line-height: 1.2;
}

.mlg-sub[b-gysr573gch] {
    color: #cbd5e1;
    font-size: 0.9rem;
}

.mlg-status-chip[b-gysr573gch] {
    border-radius: 999px;
    padding: 0.22rem 0.65rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: 1px solid rgba(148, 163, 184, 0.4);
    color: #cbd5e1;
}

.mlg-status-chip.is-active[b-gysr573gch] {
    border-color: rgba(34, 197, 94, 0.6);
    color: #86efac;
}

.mlg-status-chip.is-closed[b-gysr573gch] {
    border-color: rgba(245, 158, 11, 0.6);
    color: #fcd34d;
}

.mlg-context-bar[b-gysr573gch] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
    padding-bottom: 0.65rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    flex-wrap: wrap;
}

.mlg-context-main[b-gysr573gch] {
    min-width: 0;
    flex: 1;
}

.mlg-context-league[b-gysr573gch] {
    margin: 0;
    color: #f8fafc;
    font-size: 1.03rem;
    font-weight: 800;
    line-height: 1.2;
}

.mlg-context-course[b-gysr573gch] {
    margin: 0.16rem 0 0;
    color: var(--player-text-secondary, var(--b9-text-muted));
    font-size: 0.875rem; /* 14px floor — this line was 13.1px */
    line-height: 1.35;
    overflow-wrap: anywhere;
}

/* "Plays at" / "Run by". Same size as the name it introduces, so naming the fact costs no
   legibility — the point is that the golfer can tell WHICH club fact they are reading. */
.mlg-context-course__label[b-gysr573gch] {
    font-weight: 700;
    opacity: 0.85;
}

.mlg-context-meta[b-gysr573gch] {
    display: flex;
    align-items: center;
    gap: 0.38rem;
    flex-wrap: wrap;
}

.mlg-context-pill[b-gysr573gch] {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.04rem;
    min-height: 40px;
    padding: 0.3rem 0.6rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    background: rgba(15, 23, 42, 0.46);
    color: #cbd5e1;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    white-space: nowrap;
}

.mlg-context-pill--status[b-gysr573gch] {
    border-color: rgba(56, 189, 248, 0.4);
    color: #bae6fd;
    background: rgba(8, 47, 73, 0.5);
}

.mlg-context-pill__label[b-gysr573gch] {
    display: block;
    font-size: 0.6rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    color: rgba(148, 163, 184, 0.65);
    line-height: 1.1;
}

.mlg-context-pill--status .mlg-context-pill__label[b-gysr573gch] {
    color: rgba(186, 230, 253, 0.55);
}

.mlg-stats-grid[b-gysr573gch] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.9rem;
}

.mlg-stat[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 10px;
    padding: 0.58rem;
    background: rgba(15, 23, 42, 0.48);
}

.mlg-stat-label[b-gysr573gch] {
    display: block;
    color: #94a3b8;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
    line-height: 1.25;
}

.mlg-stat-value[b-gysr573gch] {
    display: block;
    margin-top: 0.25rem;
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.mlg-next-round-card[b-gysr573gch] {
    border: 1px solid rgba(56, 189, 248, 0.35);
    border-radius: 12px;
    padding: 0.75rem;
    background: rgba(14, 116, 144, 0.15);
    margin-bottom: 0.95rem;
}

.mlg-next-round-card h3[b-gysr573gch] {
    margin: 0 0 0.4rem;
    color: #e0f2fe;
    font-size: 1rem;
    font-weight: 800;
}

.mlg-next-round-card p[b-gysr573gch] {
    color: #dbeafe;
    font-size: 0.86rem;
}

.mlg-cta-row[b-gysr573gch] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.mlg-split-grid[b-gysr573gch] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
}

.mlg-panel[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 12px;
    padding: 0.85rem;
    background: rgba(15, 23, 42, 0.42);
    scroll-margin-top: 5rem;
}

.mlg-panel h3[b-gysr573gch] {
    margin: 0 0 0.55rem;
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 800;
}

.mlg-moment-list[b-gysr573gch] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mlg-moment-item[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 10px;
    padding: 0.7rem 0.65rem;
    background: rgba(15, 23, 42, 0.35);
}

.mlg-moment-title[b-gysr573gch] {
    color: #f8fafc;
    font-size: 0.93rem;
    font-weight: 700;
    line-height: 1.3;
}

.mlg-moment-sub[b-gysr573gch] {
    color: #cbd5e1;
    font-size: 0.82rem;
    margin-top: 0.1rem;
    line-height: 1.45;
}

.mlg-inline-link[b-gysr573gch] {
    margin-top: 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    min-height: 40px;
    padding: 0.2rem 0.35rem;
    color: #7dd3fc;
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    border-radius: 6px;
}

.mlg-inline-link:hover[b-gysr573gch] {
    color: #bae6fd;
}

.mlg-mini-table[b-gysr573gch] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.mlg-mini-table th[b-gysr573gch],
.mlg-mini-table td[b-gysr573gch] {
    padding: 0.35rem 0.4rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    color: #dbeafe;
}

.mlg-mini-table th[b-gysr573gch] {
    color: #93c5fd;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mlg-row-me td[b-gysr573gch] {
    background: rgba(34, 197, 94, 0.16);
    color: #dcfce7;
    font-weight: 700;
}

.mlg-round-list[b-gysr573gch] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.mlg-round-row[b-gysr573gch] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    color: #dbeafe;
    font-size: 0.84rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding-bottom: 0.32rem;
    line-height: 1.4;
}

.mlg-card-grid[b-gysr573gch] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
}

.mlg-league-card[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 12px;
    padding: 0.8rem;
    background: rgba(15, 23, 42, 0.58);
}

.mlg-league-head[b-gysr573gch] {
    display: flex;
    justify-content: space-between;
    gap: 0.7rem;
    margin-bottom: 0.45rem;
}

.mlg-league-head h3[b-gysr573gch] {
    margin: 0;
    color: #f8fafc;
    font-size: 0.97rem;
    font-weight: 800;
}

.mlg-league-head p[b-gysr573gch] {
    margin: 0.15rem 0 0;
    color: #cbd5e1;
    font-size: 0.82rem;
}

.mlg-league-meta[b-gysr573gch] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: 0.6rem;
}

.mlg-league-meta span[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 999px;
    padding: 0.18rem 0.5rem;
    font-size: 0.76rem;
    color: #dbeafe;
    background: rgba(15, 23, 42, 0.42);
}

.mlg-league-actions[b-gysr573gch] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

@media (min-width: 992px) {
    .mlg-featured-shell[b-gysr573gch] {
        margin: 1.2rem 1.25rem;
        padding: 1.15rem 1.2rem 1.05rem;
    }

    .mlg-stats-grid[b-gysr573gch] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .mlg-split-grid[b-gysr573gch] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mlg-card-grid[b-gysr573gch] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    .mlg-featured-shell[b-gysr573gch] {
        margin-bottom: calc(10rem + env(safe-area-inset-bottom, 0px));
    }

    .mlg-context-bar[b-gysr573gch] {
        gap: 0.45rem;
    }

    .mlg-context-meta[b-gysr573gch] {
        width: 100%;
    }

    .mlg-context-pill[b-gysr573gch] {
        font-size: 0.68rem;
    }

    .mlg-context-meta[b-gysr573gch] {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.35rem;
    }

    .mlg-context-pill[b-gysr573gch] {
        min-height: 44px;
        white-space: normal;
    }

    .mlg-context-pill__label[b-gysr573gch] {
        white-space: nowrap;
    }
}

/* ═══════════════════════════════════════════════════════════════
   RANK HERO  — premium standing display
   ═══════════════════════════════════════════════════════════════ */
.mlg-rank-hero[b-gysr573gch] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(250, 204, 21, 0.35);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(120, 53, 15, 0.35) 0%, rgba(30, 27, 75, 0.5) 100%);
}

.mlg-rank-badge[b-gysr573gch] {
    display: flex;
    align-items: baseline;
    gap: 0.1rem;
    flex-shrink: 0;
    min-width: 3.5rem;
    justify-content: center;
}

.mlg-rank-num[b-gysr573gch] {
    font-size: 2.6rem;
    font-weight: 900;
    color: #fde68a;
    line-height: 1;
    letter-spacing: -0.02em;
}

.mlg-rank-ord[b-gysr573gch] {
    font-size: 1rem;
    font-weight: 800;
    color: #fcd34d;
    align-self: flex-start;
    margin-top: 0.35rem;
}

.mlg-rank-detail[b-gysr573gch] {
    flex: 1;
    min-width: 0;
}

.mlg-rank-status[b-gysr573gch] {
    color: #fef3c7;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.mlg-rank-sub[b-gysr573gch] {
    color: #d1d5db;
    font-size: 0.84rem;
    margin-top: 0.2rem;
}

/* ═══════════════════════════════════════════════════════════════
   SECTION NAV TABS
   ═══════════════════════════════════════════════════════════════ */
.mlg-section-nav[b-gysr573gch] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-bottom: 0.85rem;
    padding: 0.6rem 0;
    border-top: 1px solid rgba(148, 163, 184, 0.16);
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.mlg-nav-tab[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.3rem 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.32);
    color: #cbd5e1;
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 700;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
    background: transparent;
}

button.mlg-nav-tab[b-gysr573gch] {
    appearance: none;
    cursor: pointer;
}

.mlg-nav-tab:hover[b-gysr573gch],
.mlg-nav-tab:focus-visible[b-gysr573gch] {
    border-color: rgba(56, 189, 248, 0.7);
    color: #e0f2fe;
    background: rgba(56, 189, 248, 0.08);
    outline: none;
}

.mlg-nav-tab.is-active[b-gysr573gch] {
    border-color: rgba(34, 197, 94, 0.6);
    background: rgba(34, 197, 94, 0.14);
    color: #dcfce7;
}

/* ═══════════════════════════════════════════════════════════════
   TODAY IN LEAGUE card variant
   ═══════════════════════════════════════════════════════════════ */
.mlg-next-round-card--today[b-gysr573gch] {
    border-color: rgba(34, 197, 94, 0.55);
    background: rgba(20, 83, 45, 0.25);
}

.mlg-next-round-card--today h3[b-gysr573gch] {
    color: #bbf7d0;
}

/* ═══════════════════════════════════════════════════════════════
   MOMENT ITEM — header row with icon
   ═══════════════════════════════════════════════════════════════ */
.mlg-moment-header[b-gysr573gch] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
}

.mlg-moment-icon[b-gysr573gch] {
    font-size: 1rem;
    color: #93c5fd;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.mlg-moment-sub[b-gysr573gch] {
    color: #cbd5e1;
    font-size: 0.84rem;
    margin-top: 0;
    padding-left: 1.5rem;
}

/* ═══════════════════════════════════════════════════════════════
   COMMAND BANNER — round context + primary action
   ═══════════════════════════════════════════════════════════════ */
.mlg-command-banner[b-gysr573gch] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    background: linear-gradient(135deg, rgba(2, 44, 80, 0.72) 0%, rgba(5, 25, 55, 0.85) 100%);
    border: 1px solid rgba(56, 189, 248, 0.32);
    border-radius: 14px;
    padding: 0.85rem 1rem;
    margin-bottom: 0.85rem;
    flex-wrap: wrap;
}

.mlg-command-banner__context[b-gysr573gch] {
    flex: 1;
    min-width: 0;
}

.mlg-command-banner > .mlg-cta-btn[b-gysr573gch] {
    max-width: 100%;
}

.mlg-command-banner__week[b-gysr573gch] {
    color: #e0f2fe;
    font-size: 0.96rem;
    font-weight: 800;
    line-height: 1.25;
}

.mlg-command-banner__status[b-gysr573gch] {
    color: #93c5fd;
    font-size: 0.82rem;
    margin-top: 0.2rem;
}

/* When scores open, banner gets green emphasis */
.mlg-command-banner:has(.mlg-cta-btn--scores)[b-gysr573gch] {
    border-color: rgba(34, 197, 94, 0.45);
    background: linear-gradient(135deg, rgba(5, 46, 22, 0.72) 0%, rgba(2, 30, 15, 0.88) 100%);
}

/* ═══════════════════════════════════════════════════════════════
   CTA BUTTONS
   ═══════════════════════════════════════════════════════════════ */
/* X03: 44px is the WCAG minimum, not this project's. "View Pairings", "Week Details" and
   "View Full Standings" all sat 4px under the 48 the same buttons get elsewhere; the
   --scores variant below was already at 48, which is what made the difference visible. */
.mlg-cta-btn[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--touch-target-min, 48px);
    padding: 0.5rem 1.25rem;
    border-radius: 10px;
    border: 1px solid rgba(148, 163, 184, 0.42);
    background: rgba(30, 41, 59, 0.7);
    color: #e2e8f0;
    font-size: 0.9rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    appearance: none;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    white-space: normal;
    text-align: center;
}

.mlg-cta-btn:hover[b-gysr573gch],
.mlg-cta-btn:focus-visible[b-gysr573gch] {
    background: rgba(56, 189, 248, 0.12);
    border-color: rgba(56, 189, 248, 0.6);
    color: #e0f2fe;
    outline: none;
}

.mlg-cta-btn--scores[b-gysr573gch] {
    background: rgba(21, 128, 61, 0.85);
    border-color: rgba(34, 197, 94, 0.55);
    color: #dcfce7;
    font-size: 1rem;
    padding: 0.6rem 1.6rem;
    min-height: 48px;
}

.mlg-cta-btn--scores:hover[b-gysr573gch],
.mlg-cta-btn--scores:focus-visible[b-gysr573gch] {
    background: rgba(22, 163, 74, 0.9);
    border-color: rgba(74, 222, 128, 0.7);
    color: #f0fdf4;
}

.mlg-cta-btn--pairings[b-gysr573gch] {
    background: rgba(14, 116, 144, 0.7);
    border-color: rgba(56, 189, 248, 0.55);
    color: #e0f2fe;
}

.mlg-cta-btn--pairings:hover[b-gysr573gch],
.mlg-cta-btn--pairings:focus-visible[b-gysr573gch] {
    background: rgba(14, 116, 144, 0.9);
    border-color: rgba(56, 189, 248, 0.8);
    color: #f0f9ff;
}

.mlg-cta-btn--ghost[b-gysr573gch] {
    background: transparent;
    border-color: rgba(148, 163, 184, 0.28);
    color: #94a3b8;
    font-size: 0.84rem;
}

.mlg-cta-btn--ghost:hover[b-gysr573gch],
.mlg-cta-btn--ghost:focus-visible[b-gysr573gch] {
    background: rgba(148, 163, 184, 0.08);
    border-color: rgba(148, 163, 184, 0.5);
    color: #cbd5e1;
}

.mlg-cta-btn--muted[b-gysr573gch] {
    border-color: rgba(148, 163, 184, 0.22);
    color: #94a3b8;
}

/* ═══════════════════════════════════════════════════════════════
   COMMAND CARDS — always-visible stacked sections
   ═══════════════════════════════════════════════════════════════ */
.mlg-command-card[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 14px;
    padding: 0.9rem 1rem;
    background: rgba(15, 23, 42, 0.48);
    margin-bottom: 0.75rem;
}

.mlg-command-card__hd[b-gysr573gch] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
    flex-wrap: wrap;
}

.mlg-command-card__label[b-gysr573gch] {
    color: #f8fafc;
    font-size: 0.82rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.mlg-command-card__purpose[b-gysr573gch] {
    margin: 0.22rem 0 0;
    color: #93c5fd;
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1.35;
}

.mlg-command-card__purpose--inline[b-gysr573gch] {
    display: block;
    margin-top: 0.18rem;
}

.mlg-command-card__meta[b-gysr573gch] {
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 600;
}

.mlg-command-card__empty[b-gysr573gch] {
    color: #64748b;
    font-size: 0.86rem;
    margin: 0;
}

.mlg-command-card__actions[b-gysr573gch] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-top: 0.75rem;
}

.mlg-text-btn[b-gysr573gch] {
    appearance: none;
    background: transparent;
    border: none;
    color: #93c5fd;
    font-size: 0.84rem;
    font-weight: 700;
    padding: 0;
    cursor: pointer;
}

.mlg-text-btn:hover[b-gysr573gch],
.mlg-text-btn:focus-visible[b-gysr573gch] {
    color: #e0f2fe;
    outline: none;
}

.mlg-inline-pairings-panel[b-gysr573gch] {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(148, 163, 184, 0.16);
}

.mlg-inline-pairings-panel__hd[b-gysr573gch] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
}

.mlg-standings-summary[b-gysr573gch] {
    margin: 0 0 0.7rem;
    color: #dbeafe;
    font-size: 0.94rem;
    font-weight: 700;
    line-height: 1.4;
}

/* Reduced-weight standings card */
.mlg-command-card--standings[b-gysr573gch] {
    padding: 0.75rem 0.85rem;
    background: rgba(15, 23, 42, 0.36);
    border-color: rgba(148, 163, 184, 0.15);
}

/* Plain-text status standings */
.mlg-standings-status[b-gysr573gch] {
    display: flex;
    flex-direction: column;
    gap: 0.28rem;
}

.mlg-standings-status__primary[b-gysr573gch] {
    margin: 0;
    color: #e2e8f0;
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.35;
}

.mlg-standings-status__line[b-gysr573gch] {
    margin: 0;
    color: #94a3b8;
    font-size: 0.84rem;
    font-weight: 500;
    line-height: 1.35;
}

.mlg-standings-preview-wrap[b-gysr573gch] {
    margin-top: 0.65rem;
    overflow-x: auto;
}

.mlg-standings-preview-table[b-gysr573gch] {
    min-width: 100%;
}

.mlg-standings-preview-table td:first-child[b-gysr573gch],
.mlg-standings-preview-table th:first-child[b-gysr573gch] {
    width: 4.5rem;
    white-space: nowrap;
}

.mlg-standings-preview-table td:last-child[b-gysr573gch],
.mlg-standings-preview-table th:last-child[b-gysr573gch] {
    text-align: right;
    white-space: nowrap;
}

.mlg-standings-preview-name[b-gysr573gch] {
    color: #e2e8f0;
    font-weight: 700;
}

.mlg-standings-you-chip[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    margin-left: 0.35rem;
    padding: 0.08rem 0.35rem;
    border-radius: 999px;
    border: 1px solid rgba(56, 189, 248, 0.35);
    color: #bae6fd;
    background: rgba(8, 47, 73, 0.55);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    vertical-align: middle;
}

@media (max-width: 767.98px) {
    .mlg-standings-preview-table[b-gysr573gch] {
        font-size: 0.78rem;
    }

    .mlg-standings-preview-table th[b-gysr573gch],
    .mlg-standings-preview-table td[b-gysr573gch] {
        padding: 0.33rem 0.32rem;
    }
}

/* Collapse variant (Schedule accordion) */
.mlg-command-card--collapse[b-gysr573gch] {
    padding: 0;
    overflow: hidden;
}

.mlg-collapse-toggle[b-gysr573gch] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 0.9rem 1rem;
    background: transparent;
    border: none;
    cursor: pointer;
    appearance: none;
    color: inherit;
}

.mlg-collapse-toggle:hover[b-gysr573gch] {
    background: rgba(148, 163, 184, 0.06);
}

.mlg-command-card--collapse .mlg-round-list[b-gysr573gch],
.mlg-command-card--collapse .mlg-command-card__empty[b-gysr573gch] {
    padding: 0 1rem 0.9rem;
}

.mlg-collapse-icon[b-gysr573gch] {
    color: #64748b;
    flex-shrink: 0;
    transition: transform 0.2s;
}

.mlg-collapse-icon.is-open[b-gysr573gch] {
    transform: rotate(180deg);
}

/* ═══════════════════════════════════════════════════════════════
   ROUND DETAIL ROWS — tee time / players / group
   ═══════════════════════════════════════════════════════════════ */
.mlg-round-detail[b-gysr573gch] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    margin-bottom: 0.1rem;
}

.mlg-round-detail__row[b-gysr573gch] {
    display: flex;
    gap: 0.75rem;
    padding: 0.45rem 0.55rem;
    border-radius: 8px;
    background: rgba(15, 23, 42, 0.32);
    flex-wrap: wrap;
}

.mlg-round-detail__row--me[b-gysr573gch] {
    background: rgba(14, 116, 144, 0.14);
    border: 1px solid rgba(56, 189, 248, 0.22);
}

.mlg-round-detail__lbl[b-gysr573gch] {
    color: #64748b;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
    min-width: 5.5rem;
    flex-shrink: 0;
    align-self: center;
}

.mlg-round-detail__val[b-gysr573gch] {
    color: #e2e8f0;
    font-size: 0.88rem;
    font-weight: 600;
    flex: 1;
    align-self: center;
    min-width: 0;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* ═══════════════════════════════════════════════════════════════
   PAIRING GROUPS — team-based pairings display
   ═══════════════════════════════════════════════════════════════ */
.mlg-pairing-group[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 10px;
    padding: 0.8rem 0.85rem;
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.58) 0%, rgba(15, 23, 42, 0.38) 100%);
    margin-bottom: 0.5rem;
}

.mlg-pairing-group--me[b-gysr573gch] {
    border-color: rgba(56, 189, 248, 0.36);
    background: linear-gradient(180deg, rgba(8, 47, 73, 0.62) 0%, rgba(15, 23, 42, 0.44) 100%);
    box-shadow: inset 0 1px 0 rgba(125, 211, 252, 0.12);
}

.mlg-pairing-group__hd[b-gysr573gch] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.7rem;
    color: #dbeafe;
    font-size: 0.84rem;
    flex-wrap: wrap;
}

.mlg-pairing-group__title-block[b-gysr573gch] {
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.mlg-pairing-group__hd strong[b-gysr573gch] {
    color: #f8fafc;
    font-size: 0.98rem;
}

.mlg-pairing-group__sub[b-gysr573gch] {
    color: #93c5fd;
    font-size: 0.75rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
}

.mlg-pairing-group__facts[b-gysr573gch] {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.mlg-pairing-group__fact[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0.22rem 0.55rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid rgba(148, 163, 184, 0.18);
    color: #e0f2fe;
    font-size: 0.76rem;
    font-weight: 700;
}

.mlg-pairing-group__team[b-gysr573gch] {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    padding: 0.55rem 0;
    border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.mlg-pairing-group__team--me[b-gysr573gch] {
    background: rgba(30, 41, 59, 0.75);
    border-top-color: rgba(56, 189, 248, 0.2);
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    margin: 0;
}

.mlg-pairing-group__team-topline[b-gysr573gch] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.4rem;
    flex-wrap: wrap;
}

.mlg-pairing-group__name[b-gysr573gch] {
    color: #f1f5f9;
    font-size: 0.92rem;
    font-weight: 700;
}

.mlg-pairing-group__players[b-gysr573gch] {
    color: #94a3b8;
    font-size: 0.8rem;
}

.mlg-inline-badge[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0.18rem 0.52rem;
    border-radius: 999px;
    background: rgba(8, 47, 73, 0.78);
    border: 1px solid rgba(56, 189, 248, 0.32);
    color: #bae6fd;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

/* ═══════════════════════════════════════════════════════════════
   LEADERBOARD — polished standings preview
   ═══════════════════════════════════════════════════════════════ */
.mlg-leaderboard-hero[b-gysr573gch] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.8rem;
    align-items: center;
    padding: 0.95rem 1rem;
    border-radius: 14px;
    border: 1px solid rgba(56, 189, 248, 0.22);
    background: linear-gradient(135deg, rgba(8, 47, 73, 0.6) 0%, rgba(15, 23, 42, 0.7) 100%);
    margin-bottom: 0.8rem;
}

.mlg-leaderboard-hero--mine[b-gysr573gch] {
    box-shadow: inset 0 1px 0 rgba(186, 230, 253, 0.14);
}

.mlg-leaderboard-hero__rank[b-gysr573gch] {
    display: flex;
    align-items: flex-start;
    gap: 0.08rem;
    min-width: 3.25rem;
}

.mlg-leaderboard-hero__rank-num[b-gysr573gch] {
    color: #f8fafc;
    font-size: 2.2rem;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -0.03em;
}

.mlg-leaderboard-hero__rank-ord[b-gysr573gch] {
    color: #93c5fd;
    font-size: 0.92rem;
    font-weight: 800;
    margin-top: 0.28rem;
}

.mlg-leaderboard-hero__body[b-gysr573gch] {
    min-width: 0;
}

.mlg-leaderboard-hero__title[b-gysr573gch] {
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.2;
}

.mlg-leaderboard-hero__sub[b-gysr573gch] {
    margin-top: 0.16rem;
    color: #cbd5e1;
    font-size: 0.82rem;
    line-height: 1.35;
}

.mlg-leaderboard-hero__score[b-gysr573gch] {
    text-align: right;
}

.mlg-leaderboard-hero__score-value[b-gysr573gch] {
    display: block;
    color: #e0f2fe;
    font-size: 1.2rem;
    font-weight: 900;
    line-height: 1.1;
}

.mlg-leaderboard-hero__score-label[b-gysr573gch] {
    display: block;
    margin-top: 0.12rem;
    color: #94a3b8;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.mlg-leaderboard-list[b-gysr573gch] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mlg-leaderboard-list:empty[b-gysr573gch] {
    display: none;
}

.mlg-leaderboard-item[b-gysr573gch] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    align-items: center;
    padding: 0.75rem 0.85rem;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: rgba(15, 23, 42, 0.48);
}

.mlg-leaderboard-item--mine[b-gysr573gch] {
    border-color: rgba(56, 189, 248, 0.32);
    background: linear-gradient(135deg, rgba(8, 47, 73, 0.46) 0%, rgba(15, 23, 42, 0.58) 100%);
}

.mlg-leaderboard-item__rank[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 3rem;
    min-height: 2.2rem;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    background: rgba(30, 41, 59, 0.9);
    color: #e2e8f0;
    font-size: 0.86rem;
    font-weight: 800;
}

.mlg-leaderboard-item__body[b-gysr573gch] {
    min-width: 0;
}

.mlg-leaderboard-item__title-row[b-gysr573gch] {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.mlg-leaderboard-item__title[b-gysr573gch] {
    color: #f8fafc;
    font-size: 0.92rem;
    font-weight: 800;
    line-height: 1.2;
}

.mlg-leaderboard-item__sub[b-gysr573gch] {
    margin-top: 0.18rem;
    color: #94a3b8;
    font-size: 0.8rem;
    line-height: 1.35;
}

.mlg-leaderboard-item__metric[b-gysr573gch] {
    text-align: right;
}

.mlg-leaderboard-item__metric-value[b-gysr573gch] {
    display: block;
    color: #e0f2fe;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1.1;
}

.mlg-leaderboard-item__metric-label[b-gysr573gch] {
    display: block;
    margin-top: 0.12rem;
    color: #64748b;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

@media (max-width: 767.98px) {
    .mlg-featured-shell[b-gysr573gch] {
        margin-left: 0.75rem;
        margin-right: 0.75rem;
    }

    .mlg-leaderboard-hero[b-gysr573gch],
    .mlg-leaderboard-item[b-gysr573gch] {
        grid-template-columns: 1fr;
        gap: 0.55rem;
    }

    .mlg-leaderboard-hero__score[b-gysr573gch],
    .mlg-leaderboard-item__metric[b-gysr573gch] {
        text-align: left;
    }

    .mlg-leaderboard-item__rank[b-gysr573gch] {
        width: fit-content;
    }

    .mlg-pairing-group__facts[b-gysr573gch] {
        width: 100%;
    }
}

/* ═══════════════════════════════════════════════════════════════
   FINALIZED ROUND SUMMARY — supporting context below command banner
   ═══════════════════════════════════════════════════════════════ */
.mlg-finalized-summary[b-gysr573gch] {
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 12px;
    padding: 0.7rem 0.9rem;
    background: rgba(15, 23, 42, 0.32);
    margin-bottom: 0.75rem;
}

.mlg-finalized-summary__hd[b-gysr573gch] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 0.5rem;
}

.mlg-finalized-summary__badge[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 0.1rem 0.45rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.35);
    background: rgba(30, 41, 59, 0.65);
    color: #94a3b8;
    font-size: 0.67rem;
    font-weight: 800;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    flex-shrink: 0;
}

.mlg-finalized-summary__title[b-gysr573gch] {
    color: #cbd5e1;
    font-size: 0.88rem;
    font-weight: 700;
}

.mlg-finalized-summary__note[b-gysr573gch] {
    color: #64748b;
    font-size: 0.82rem;
}

.mlg-finalized-summary__actions[b-gysr573gch] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

@media (max-width: 479.98px) {
    .mlg-command-banner[b-gysr573gch],
    .mlg-command-card__actions[b-gysr573gch],
    .mlg-finalized-summary__actions[b-gysr573gch] {
        flex-direction: column;
        align-items: stretch;
    }

    .mlg-command-banner > .mlg-cta-btn[b-gysr573gch],
    .mlg-command-card__actions > .mlg-cta-btn[b-gysr573gch],
    .mlg-finalized-summary__actions > .mlg-cta-btn[b-gysr573gch] {
        width: 100%;
    }
}

/* ── Small ghost button modifier ── */
/* X03: "small" is about how much of the page a button claims, not about how hard it is to hit.
   This modifier is on "View Scorecard", "View Standings", "View Results" — and on an "Enter
   Scores" — so at 36px the week rows on /leagues/{id}/my handed a golfer the smallest taps on
   the page for the things she came to press. The lighter font and tighter padding still read
   small; the tap area does not. */
.mlg-cta-btn--sm[b-gysr573gch] {
    min-height: var(--touch-target-min, 48px);
    padding: 0.3rem 0.85rem;
    font-size: 0.8rem;
}

@media (max-width: 767.98px) {
    .mlg-finalized-summary__hd[b-gysr573gch] {
        gap: 0.35rem;
    }
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.mlg-moment-sub--flush[b-gysr573gch] { padding-left: 0; }
.mlg-glance-sub[b-gysr573gch] { padding-left: 0; margin-top: 0.35rem; margin-bottom: 0.25rem; }
.mlg-round-sub[b-gysr573gch] { padding-left: 0; margin-bottom: 0.45rem; }

.mlg-round-list--spaced[b-gysr573gch] { margin-top: 0.65rem; }

/* Pool-stretch headers in the season schedule ("Weeks 3–8 · Pool A & Pool B matchups") */
.mlg-segment-header[b-gysr573gch] {
    padding: 0.5rem 0 0.2rem;
    font-weight: 600;
    color: var(--text-muted);
    letter-spacing: 0.02em;
    border-bottom: 1px solid var(--border-subtle);
    margin-bottom: 0.4rem;
}

/* Was a conditional inline style; the class already toggled with it */
.mlg-round-row--active[b-gysr573gch] {
    border-left: 3px solid var(--b9-accent, var(--b9-primary, #2f7a3a));
    padding-left: 0.5rem;
}

.mlg-scorecard-cta-gap[b-gysr573gch] { margin-right: 0.35rem; }
.mlg-badge-gap[b-gysr573gch] { margin-right: 0.4rem; }
.mlg-badge-cancelled[b-gysr573gch] { background: var(--b9-surface-3); }
.mlg-command-card__empty--spaced[b-gysr573gch] { margin-top: 0.5rem; }

/* ── "Follow me": share the league's public board so friends and family can watch ──
   Mirrors the event hub's mev-follow-btn in behaviour and copy, restyled to this
   surface's idiom (the event button sits on a coloured hero; this one sits on the
   dark clubhouse panel, so it borrows the mlg-cta-btn palette instead of white-on-
   translucent, which would be invisible here). 48px min target per the touch rule. */
.mlg-follow-row[b-gysr573gch] {
    display: flex;
    justify-content: flex-start;
    margin: 0 0 0.75rem;
}

.mlg-follow-btn[b-gysr573gch] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 48px;
    padding: 0.55rem 1.15rem;
    border-radius: 999px;
    border: 1px solid rgba(56, 189, 248, 0.55);
    background: rgba(8, 47, 73, 0.55);
    color: #e0f2fe;
    font-size: 0.9rem;
    font-weight: 700;
    cursor: pointer;
    appearance: none;
    transition: transform 0.08s ease, background 0.15s ease, border-color 0.15s ease;
}

.mlg-follow-btn:hover[b-gysr573gch],
.mlg-follow-btn:focus-visible[b-gysr573gch] {
    background: rgba(14, 116, 144, 0.7);
    border-color: rgba(125, 211, 252, 0.75);
    outline: none;
}

.mlg-follow-btn:active[b-gysr573gch] { transform: scale(0.97); }

.mlg-follow-btn i[b-gysr573gch] { font-size: 1rem; }
/* /Components/Pages/Leagues/PlayerLeaguesHub.razor.rz.scp.css */
.mlg-featured-shell[b-5fbndl8ovw] {
    margin: 1rem 1.25rem;
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(15, 23, 42, 0.92) 0%, rgba(2, 6, 23, 0.98) 100%);
    padding: 1.1rem 1.15rem 1rem;
    overflow: hidden;
}

.mlg-featured-hero[b-5fbndl8ovw] {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    align-items: flex-start;
    margin-bottom: 0.9rem;
}

.mlg-kicker[b-5fbndl8ovw] {
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #93c5fd;
    font-weight: 700;
}

.mlg-title[b-5fbndl8ovw] {
    margin: 0.1rem 0;
    font-size: 1.3rem;
    /* Dark-only literal: 1.01:1 on the light page -- the page title was invisible. */
    color: var(--player-text-primary, var(--b9-text));
    font-weight: 800;
    line-height: 1.2;
}

.mlg-sub[b-5fbndl8ovw] {
    /* Dark-only literal: 1.41:1 on the light page. */
    color: var(--player-text-secondary, var(--b9-text-muted));
    font-size: 0.9rem;
}

.mlg-status-chip[b-5fbndl8ovw] {
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.6rem;
    padding: 0.2rem 0.62rem;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    border: 1px solid var(--player-border, var(--b9-border));
    color: var(--player-text-secondary, var(--b9-text-muted));
    background: var(--player-surface-elev, var(--b9-surface-muted));
    white-space: nowrap;
}

.mlg-status-chip.is-active[b-5fbndl8ovw] {
    border-color: var(--b9-success);
    color: var(--b9-success-text);
}

.mlg-status-chip.is-closed[b-5fbndl8ovw] {
    border-color: var(--b9-warning);
    color: var(--b9-warning-text);
}

/* Meaningful player-facing status variants */
.mlg-status-chip.is-scoring-live[b-5fbndl8ovw] {
    border-color: var(--b9-success);
    color: var(--b9-success-text);
    animation: pulse-green-b-5fbndl8ovw 2s ease-in-out infinite;
}

@keyframes pulse-green-b-5fbndl8ovw {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.6; }
}

.mlg-status-chip.is-today[b-5fbndl8ovw] {
    border-color: var(--player-link, var(--b9-link));
    color: var(--player-link, var(--b9-link));
}

.mlg-status-chip.is-scores-open[b-5fbndl8ovw] {
    border-color: var(--b9-success);
    color: var(--b9-success-text);
    background: color-mix(in srgb, var(--b9-success) 14%, var(--player-surface-elev, var(--b9-surface-muted)) 86%);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--b9-success) 32%, transparent);
    font-weight: 700;
}

.mlg-status-chip.is-pairings-posted[b-5fbndl8ovw] {
    border-color: color-mix(in srgb, var(--player-link, var(--b9-link)) 75%, var(--player-border, var(--b9-border)));
    color: var(--player-link, var(--b9-link));
}

.mlg-status-chip.is-upcoming[b-5fbndl8ovw] {
    border-color: var(--player-border, var(--b9-border));
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mlg-status-chip.is-in-season[b-5fbndl8ovw] {
    border-color: var(--player-border, var(--b9-border));
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mlg-status-chip.is-finalized[b-5fbndl8ovw] {
    border-color: var(--player-border, var(--b9-border));
    color: var(--player-text-secondary, var(--b9-text-muted));
    opacity: 0.78;
}

.mlg-stats-grid[b-5fbndl8ovw] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin-bottom: 0.9rem;
}

.mlg-stat[b-5fbndl8ovw] {
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 10px;
    padding: 0.58rem;
    background: rgba(15, 23, 42, 0.48);
}

.mlg-stat-label[b-5fbndl8ovw] {
    display: block;
    color: #94a3b8;
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
}

.mlg-stat-value[b-5fbndl8ovw] {
    display: block;
    margin-top: 0.25rem;
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 700;
}

.mlg-next-round-card[b-5fbndl8ovw] {
    border: 1px solid rgba(56, 189, 248, 0.35);
    border-radius: 12px;
    padding: 0.75rem;
    background: rgba(14, 116, 144, 0.15);
    margin-bottom: 0.95rem;
}

.mlg-next-round-card h3[b-5fbndl8ovw] {
    margin: 0 0 0.4rem;
    color: #e0f2fe;
    font-size: 1rem;
    font-weight: 800;
}

.mlg-next-round-card p[b-5fbndl8ovw] {
    color: #dbeafe;
    font-size: 0.86rem;
}

.mlg-cta-row[b-5fbndl8ovw] {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.mlg-split-grid[b-5fbndl8ovw] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.7rem;
}

.mlg-panel[b-5fbndl8ovw] {
    border: 1px solid rgba(148, 163, 184, 0.22);
    border-radius: 12px;
    padding: 0.85rem;
    background: rgba(15, 23, 42, 0.42);
    scroll-margin-top: 5rem;
}

.mlg-panel h3[b-5fbndl8ovw] {
    margin: 0 0 0.55rem;
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 800;
}

.mlg-moment-list[b-5fbndl8ovw] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.mlg-moment-item[b-5fbndl8ovw] {
    border: 1px solid rgba(148, 163, 184, 0.18);
    border-radius: 10px;
    padding: 0.7rem 0.65rem;
    background: rgba(15, 23, 42, 0.35);
}

.mlg-moment-title[b-5fbndl8ovw] {
    color: #f8fafc;
    font-size: 0.93rem;
    font-weight: 700;
    line-height: 1.3;
}

.mlg-moment-sub[b-5fbndl8ovw] {
    color: #cbd5e1;
    font-size: 0.82rem;
    margin-top: 0.1rem;
}

.mlg-inline-link[b-5fbndl8ovw] {
    margin-top: 0.5rem;
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    min-height: 40px;
    padding: 0.2rem 0.35rem;
    color: #7dd3fc;
    font-size: 0.84rem;
    font-weight: 700;
    text-decoration: none;
    border-radius: 6px;
}

.mlg-inline-link:hover[b-5fbndl8ovw] {
    color: #bae6fd;
}

.mlg-mini-table[b-5fbndl8ovw] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
}

.mlg-mini-table th[b-5fbndl8ovw],
.mlg-mini-table td[b-5fbndl8ovw] {
    padding: 0.35rem 0.4rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.18);
    color: #dbeafe;
}

.mlg-mini-table th[b-5fbndl8ovw] {
    color: #93c5fd;
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mlg-row-me td[b-5fbndl8ovw] {
    background: rgba(34, 197, 94, 0.16);
    color: #dcfce7;
    font-weight: 700;
}

.mlg-round-list[b-5fbndl8ovw] {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.mlg-round-row[b-5fbndl8ovw] {
    display: flex;
    justify-content: space-between;
    gap: 0.5rem;
    color: #dbeafe;
    font-size: 0.84rem;
    border-bottom: 1px solid rgba(148, 163, 184, 0.14);
    padding-bottom: 0.32rem;
}

.mlg-card-grid[b-5fbndl8ovw] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.85rem;
}

.mlg-league-card[b-5fbndl8ovw] {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 14px;
    padding: 0.92rem 0.95rem;
    background: var(--player-surface-card, var(--b9-surface-alt));
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

.mlg-league-head[b-5fbndl8ovw] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.mlg-league-head h3[b-5fbndl8ovw] {
    margin: 0;
    color: var(--player-text-primary, var(--b9-text));
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.28;
}

.mlg-league-head p[b-5fbndl8ovw] {
    margin: 0.15rem 0 0;
    color: var(--player-text-secondary, var(--b9-text-muted));
    font-size: 0.875rem; /* 14px floor — this line was 13.1px */
}

/* "Plays at" / "Run by" — the card and /leagues/{id}/my now show the SAME club fact, and say
   which one it is. Same size as the name, so the label costs nothing to read. */
.mlg-league-venue__label[b-5fbndl8ovw] {
    font-weight: 700;
    opacity: 0.85;
}

.mlg-league-meta[b-5fbndl8ovw] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.42rem;
    margin-bottom: 0.55rem;
}

.mlg-league-meta span[b-5fbndl8ovw] {
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 999px;
    padding: 0.2rem 0.52rem;
    font-size: 0.76rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    background: var(--player-surface-elev, var(--b9-surface-muted));
}

.mlg-league-meta span:first-child[b-5fbndl8ovw] {
    color: var(--player-text-primary, var(--b9-text));
    font-weight: 600;
}

.mlg-league-actions[b-5fbndl8ovw] {
    display: flex;
    align-items: center;
    gap: 0.62rem;
    flex-wrap: wrap;
    margin-top: auto;
}

/* X03: this card's "Enter Scores" measured 318×42 while the identical "Enter Scores" on /my
   measured 48. The same tap, two sizes, one of them under the floor. The floor is the token, and
   padding still decides how the button looks. */
.mlg-card-cta[b-5fbndl8ovw] {
    min-height: var(--touch-target-min, 48px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.46rem 0.88rem;
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.015em;
    border-radius: 10px;
}

.mlg-card-cta-primary[b-5fbndl8ovw] {
    border: 1px solid var(--player-link, var(--b9-link));
    color: var(--player-link, var(--b9-link));
    background: color-mix(in srgb, var(--player-link, var(--b9-link)) 10%, var(--player-surface-card, var(--b9-surface-alt)) 90%);
}

.mlg-card-cta-primary:hover[b-5fbndl8ovw],
.mlg-card-cta-primary:focus-visible[b-5fbndl8ovw] {
    border-color: var(--player-link, var(--b9-link));
    color: var(--player-text-inverse, var(--b9-surface));
    background: var(--player-link, var(--b9-link));
}

/* X04/X05 (UX audit 2026-09-06): the card's one solid button is the brand blue. White on the
   green status fill measured 2.28:1; white on --b9-primary measures 6.7:1 in both themes.
   Green stays a STATUS colour (the chip above the card), never a button fill. */
.mlg-card-cta-primary.is-enter-scores[b-5fbndl8ovw] {
    border-color: var(--b9-primary);
    color: var(--player-text-inverse);
    background: var(--b9-primary);
    box-shadow: 0 0 0 1px color-mix(in srgb, var(--b9-primary) 28%, transparent);
}

.mlg-card-cta-primary.is-enter-scores:hover[b-5fbndl8ovw],
.mlg-card-cta-primary.is-enter-scores:focus-visible[b-5fbndl8ovw] {
    border-color: var(--b9-primary-hover);
    color: var(--player-text-inverse);
    background: var(--b9-primary-hover);
}

/* "League Home" is a text link, but it is a link a person taps on a phone, so it gets the same
   floor as the button above it. It measured 32px tall. */
.mlg-card-cta-secondary[b-5fbndl8ovw] {
    min-height: var(--touch-target-min, 48px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.25rem 0.35rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    font-size: 0.78rem;
    font-weight: 600;
    text-decoration: none;
}

.mlg-card-cta-secondary:hover[b-5fbndl8ovw],
.mlg-card-cta-secondary:focus-visible[b-5fbndl8ovw] {
    color: var(--player-link, var(--b9-link));
    text-decoration: underline;
}

@media (max-width: 520px) {
    .mlg-league-head[b-5fbndl8ovw] {
        flex-direction: column;
        gap: 0.45rem;
    }

    .mlg-league-actions[b-5fbndl8ovw] {
        flex-direction: column;
        align-items: stretch;
        gap: 0.35rem;
    }

    .mlg-card-cta[b-5fbndl8ovw] {
        width: 100%;
        justify-content: center;
    }

    .mlg-card-cta-secondary[b-5fbndl8ovw] {
        width: 100%;
        justify-content: center;
        /* This override is what actually shipped on a 390px phone: it cut the link back to 32px
           under the base rule above. The phone is where the floor matters most. */
        min-height: var(--touch-target-min, 48px);
    }
}

@media (max-width: 430px) {
    .mlg-featured-shell[b-5fbndl8ovw] {
        margin: 0.8rem;
        padding: 0.9rem;
    }

    .mlg-stats-grid[b-5fbndl8ovw] {
        grid-template-columns: 1fr;
    }

    .mlg-rank-hero[b-5fbndl8ovw] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.55rem;
    }
}

@media (min-width: 992px) {
    .mlg-featured-shell[b-5fbndl8ovw] {
        margin: 1.2rem 1.25rem;
        padding: 1.15rem 1.2rem 1.05rem;
    }

    .mlg-stats-grid[b-5fbndl8ovw] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .mlg-split-grid[b-5fbndl8ovw] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mlg-card-grid[b-5fbndl8ovw] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ═══════════════════════════════════════════════════════════════
   RANK HERO  — premium standing display
   ═══════════════════════════════════════════════════════════════ */
.mlg-rank-hero[b-5fbndl8ovw] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 0.85rem;
    padding: 0.85rem 1rem;
    border: 1px solid rgba(250, 204, 21, 0.35);
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(120, 53, 15, 0.35) 0%, rgba(30, 27, 75, 0.5) 100%);
}

.mlg-rank-badge[b-5fbndl8ovw] {
    display: flex;
    align-items: baseline;
    gap: 0.1rem;
    flex-shrink: 0;
    min-width: 3.5rem;
    justify-content: center;
}

.mlg-rank-num[b-5fbndl8ovw] {
    font-size: 2.6rem;
    font-weight: 900;
    color: #fde68a;
    line-height: 1;
    letter-spacing: -0.02em;
}

.mlg-rank-ord[b-5fbndl8ovw] {
    font-size: 1rem;
    font-weight: 800;
    color: #fcd34d;
    align-self: flex-start;
    margin-top: 0.35rem;
}

.mlg-rank-detail[b-5fbndl8ovw] {
    flex: 1;
    min-width: 0;
}

.mlg-rank-status[b-5fbndl8ovw] {
    color: #fef3c7;
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.2;
}

.mlg-rank-sub[b-5fbndl8ovw] {
    color: #d1d5db;
    font-size: 0.84rem;
    margin-top: 0.2rem;
}

/* ═══════════════════════════════════════════════════════════════
   SECTION NAV TABS
   ═══════════════════════════════════════════════════════════════ */
.mlg-section-nav[b-5fbndl8ovw] {
    display: flex;
    gap: 0.35rem;
    flex-wrap: wrap;
    margin-bottom: 0.85rem;
    padding: 0.6rem 0;
    border-top: 1px solid rgba(148, 163, 184, 0.16);
    border-bottom: 1px solid rgba(148, 163, 184, 0.16);
}

.mlg-nav-tab[b-5fbndl8ovw] {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 0.3rem 0.85rem;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.32);
    color: #cbd5e1;
    text-decoration: none;
    font-size: 0.84rem;
    font-weight: 700;
    transition: border-color 0.15s, color 0.15s, background 0.15s;
    background: transparent;
}

button.mlg-nav-tab[b-5fbndl8ovw] {
    appearance: none;
    cursor: pointer;
}

.mlg-nav-tab:hover[b-5fbndl8ovw],
.mlg-nav-tab:focus-visible[b-5fbndl8ovw] {
    border-color: rgba(56, 189, 248, 0.7);
    color: #e0f2fe;
    background: rgba(56, 189, 248, 0.08);
    outline: none;
}

.mlg-nav-tab.is-active[b-5fbndl8ovw] {
    border-color: rgba(34, 197, 94, 0.6);
    background: rgba(34, 197, 94, 0.14);
    color: #dcfce7;
}

/* ═══════════════════════════════════════════════════════════════
   TODAY IN LEAGUE card variant
   ═══════════════════════════════════════════════════════════════ */
.mlg-next-round-card--today[b-5fbndl8ovw] {
    border-color: rgba(34, 197, 94, 0.55);
    background: rgba(20, 83, 45, 0.25);
}

.mlg-next-round-card--today h3[b-5fbndl8ovw] {
    color: #bbf7d0;
}

/* ═══════════════════════════════════════════════════════════════
   MOMENT ITEM — header row with icon
   ═══════════════════════════════════════════════════════════════ */
.mlg-moment-header[b-5fbndl8ovw] {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.2rem;
}

.mlg-moment-icon[b-5fbndl8ovw] {
    font-size: 1rem;
    color: #93c5fd;
    flex-shrink: 0;
    margin-top: 0.1rem;
}

.mlg-moment-sub[b-5fbndl8ovw] {
    color: #cbd5e1;
    font-size: 0.84rem;
    margin-top: 0;
    padding-left: 1.5rem;
}


/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.plh-section[b-5fbndl8ovw] { margin: 1rem 1.25rem; }
.plh-subtitle[b-5fbndl8ovw] { font-size: 1.05rem; }
/* /Components/Pages/Leagues/PublicStandings.razor.rz.scp.css */
/* ================================================================
   PUBLIC STANDINGS PAGE — dark-first scoped styles
   Shared layout (cards, hero, org band) is in wwwroot/public-page.css
================================================================ */

/* ── Standings table ── */
.etable-wrap[b-nc73mw4wjz] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.etable[b-nc73mw4wjz] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.etable thead th[b-nc73mw4wjz] {
    padding: 0.55rem 0.9rem;
    text-align: left;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #94a3b8);
    background: rgba(255,255,255,0.04);
    border-bottom: 1.5px solid var(--border-subtle, rgba(255,255,255,0.1));
    white-space: nowrap;
}

.etable tbody tr[b-nc73mw4wjz] {
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    transition: background 0.1s;
}

.etable tbody tr:last-child[b-nc73mw4wjz] { border-bottom: none; }

.etable tbody tr:hover[b-nc73mw4wjz] {
    background: rgba(255,255,255,0.04);
}

.etable tbody td[b-nc73mw4wjz] {
    padding: 0.65rem 0.9rem;
    color: var(--text-primary, #f1f5f9);
}

.col-rank[b-nc73mw4wjz]    { width: 40px; text-align: center; }
.col-rounds[b-nc73mw4wjz]  { width: 60px; }
.col-strokes[b-nc73mw4wjz] { width: 72px; }
.col-avg[b-nc73mw4wjz]     { width: 62px; }

.td-rank[b-nc73mw4wjz]   { text-align: center; font-weight: 700; font-size: 0.8rem; color: var(--text-muted, #64748b); }
.td-player[b-nc73mw4wjz] { font-weight: 600; color: var(--text-primary, #f1f5f9); }
.td-center[b-nc73mw4wjz] { text-align: center; }

/* Team name + members sub-line */
.pub-team-name-cell[b-nc73mw4wjz] {
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    font-size: 0.88rem;
    line-height: 1.3;
}

.pub-team-members-sub[b-nc73mw4wjz] {
    font-size: 0.73rem;
    color: var(--text-muted, #64748b);
    font-weight: 400;
    margin-top: 1px;
    line-height: 1.35;
}

/* Points cell highlight.
   #60A5FA is the dark theme's readable blue and measures 2.54:1 on the light theme's white
   card. --b9-primary-text is the same intent with a light twin: 7.02→9.90:1 on the dark card,
   8.72:1 on the white one. This file already reached for that token in .pub-icon-blue; the
   five other blues here were hand-typed, and every one of them broke in light. */
.pub-pts-cell[b-nc73mw4wjz] {
    font-weight: 700;
    color: var(--b9-primary-text);
}

/* ── Rank medals ── */
.rank-medal[b-nc73mw4wjz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 0.72rem;
    font-weight: 800;
    /* The numeral was white on gold, silver and bronze: 2.15:1, 2.56:1 and 3.45:1 — in BOTH
       themes, so this was never a light-mode bug, only one nobody had measured. A single
       character is still text and still owes 4.5:1. Dark lettering is what a real medal is
       engraved with, and it is the token that already answers "what can be written ON a bright
       fill". Even pure black fails on the old dark ends of silver (4.41:1) and bronze (4.27:1),
       so those two ends lift one step; gold is untouched. Worst pairing now 5.22:1. */
    color: var(--b9-status-fill-ink, #04140A);
}

.rank-1[b-nc73mw4wjz] { background: linear-gradient(135deg, #f59e0b, #d97706); }
.rank-2[b-nc73mw4wjz] { background: linear-gradient(135deg, #94a3b8, #7c8aa0); }
.rank-3[b-nc73mw4wjz] { background: linear-gradient(135deg, #c2793b, #b8783e); }

/* ── Compact team chip grid ── */
.pub-team-grid[b-nc73mw4wjz] {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.4rem;
    padding: 0.85rem 1rem;
}

@media (max-width: 900px) { .pub-team-grid[b-nc73mw4wjz] { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .pub-team-grid[b-nc73mw4wjz] { grid-template-columns: repeat(2, 1fr); } }

.pub-team-chip[b-nc73mw4wjz] {
    background: rgba(255,255,255,0.05);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 8px;
    padding: 0.5rem 0.65rem;
}

.pub-team-chip-name[b-nc73mw4wjz] {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    line-height: 1.3;
}

.pub-team-chip-members[b-nc73mw4wjz] {
    font-size: 0.7rem;
    color: var(--text-muted, #64748b);
    margin-top: 2px;
    line-height: 1.3;
}

/* standings count badge */
.pub-standings-count[b-nc73mw4wjz] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,0.08);
    border-radius: 1rem;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--text-muted, #94a3b8);
    padding: 1px 8px;
    margin-left: 0.4rem;
    vertical-align: middle;
}

/* ── Compact pairings table ── */
.pub-pairings-wrap[b-nc73mw4wjz] {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.pub-pairings-table[b-nc73mw4wjz] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
}

.pub-pairings-table thead th[b-nc73mw4wjz] {
    padding: 0.5rem 0.8rem;
    text-align: left;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #64748b);
    background: rgba(255,255,255,0.04);
    border-bottom: 1.5px solid var(--border-subtle, rgba(255,255,255,0.1));
    white-space: nowrap;
}

.pub-pairings-table tbody tr[b-nc73mw4wjz] {
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    transition: background 0.1s;
}

.pub-pairings-table tbody tr:last-child[b-nc73mw4wjz] { border-bottom: none; }
.pub-pairings-table tbody tr:hover[b-nc73mw4wjz] { background: rgba(255,255,255,0.04); }

.pub-pairings-table tbody td[b-nc73mw4wjz] {
    padding: 0.5rem 0.8rem;
    vertical-align: middle;
    color: var(--text-primary, #f1f5f9);
}

.pub-pair-th-group[b-nc73mw4wjz] { width: 52px; }
.pub-pair-th-hole[b-nc73mw4wjz]  { width: 52px; }
.pub-pair-th-time[b-nc73mw4wjz]  { width: 88px; }

.pub-pair-group[b-nc73mw4wjz] { font-weight: 800; color: var(--text-primary, #f1f5f9); text-align: center; }
.pub-pair-hole[b-nc73mw4wjz]  { font-weight: 700; color: var(--b9-primary-text); text-align: center; }
.pub-pair-time[b-nc73mw4wjz]  { font-size: 0.8rem; color: var(--text-secondary, #cbd5e1); white-space: nowrap; }

.pub-pair-teams[b-nc73mw4wjz] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.3rem;
}

.pub-pair-team[b-nc73mw4wjz] {
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
    background: rgba(255,255,255,0.07);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.1));
    border-radius: 4px;
    padding: 2px 8px;
    white-space: nowrap;
}

/* ── Pool filter tabs ── */
.pub-pool-tabs[b-nc73mw4wjz] {
    display: flex;
    gap: 0.25rem;
    padding: 0.75rem 1rem 0.5rem;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    overflow-x: auto;
    scrollbar-width: none;
}

.pub-pool-tabs[b-nc73mw4wjz]::-webkit-scrollbar { display: none; }

.pub-pool-tab[b-nc73mw4wjz] {
    flex-shrink: 0;
    background: none;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.1));
    border-radius: 1.5rem;
    padding: 0.3rem 1rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--text-muted, #94a3b8);
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}

.pub-pool-tab:hover[b-nc73mw4wjz] {
    background: rgba(255,255,255,0.06);
    color: var(--text-primary, #f1f5f9);
}

/* The active filter is the one thing on this page that says WHICH standings you are reading,
   and in light it was pale blue on its own pale blue tint: 2.06:1 for the label and 2.54:1 for
   the ring that marks it. The tint is unchanged; ink and edge take the token — 7.08:1 and
   8.72:1 in light, 7.72:1 and 9.90:1 in dark. */
.pub-pool-tab--active[b-nc73mw4wjz] {
    background: rgba(96,165,250,0.15);
    border-color: var(--b9-primary-text);
    color: var(--b9-primary-text);
}

/* ── Seeding-period notice ── */
.pub-seeding-notice[b-nc73mw4wjz] {
    background: rgba(96,165,250,0.06);
    border-left: 3px solid #60a5fa;
    padding: 0.6rem 0.9rem;
    font-size: 0.83rem;
    color: var(--text-secondary, #cbd5e1);
    margin: 0.5rem 0.75rem 0.25rem;
    border-radius: 0 6px 6px 0;
}

.pub-seeding-notice i[b-nc73mw4wjz] { color: var(--b9-primary-text); margin-right: 0.3rem; }

/* ── Empty state ── */
.pub-empty-state[b-nc73mw4wjz] {
    text-align: center;
    padding: 2rem 1rem;
    color: var(--text-muted, #64748b);
}

.pub-empty-icon[b-nc73mw4wjz]  { font-size: 2rem; display: block; margin-bottom: 0.6rem; }
.pub-empty-title[b-nc73mw4wjz] { font-size: 1rem; font-weight: 700; color: var(--text-secondary, #cbd5e1); margin: 0 0 0.25rem; }
.pub-empty-sub[b-nc73mw4wjz]   { font-size: 0.85rem; margin: 0; }

/* ── Format note (inside standings card) ── */
.pub-format-note[b-nc73mw4wjz] {
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    background: rgba(255,255,255,0.03);
    color: var(--text-secondary, #cbd5e1);
    margin: 0.6rem 0.75rem;
    border-radius: 8px;
    padding: 0.55rem 0.8rem;
    font-size: 0.82rem;
}

.pub-format-note i[b-nc73mw4wjz] { color: var(--b9-primary-text); }

/* ── Info callout ── */
.ps-info-callout[b-nc73mw4wjz] {
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.1));
    border-radius: 0.375rem;
    background: rgba(255,255,255,0.04);
    color: var(--text-primary, #f1f5f9);
    padding: 0.6rem 0.9rem;
}

/* ── Matchplay note inside standings ── */
.pub-matchplay-empty[b-nc73mw4wjz] { color: var(--text-muted, #64748b); }

/* ── Loading states ── */
.pub-state-page[b-nc73mw4wjz] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 60vh;
    text-align: center;
    padding: 2rem 1.5rem;
    color: var(--text-primary, #f1f5f9);
}

.pub-state-icon[b-nc73mw4wjz]  { font-size: 3.5rem; margin-bottom: 1.25rem; line-height: 1; }
.pub-state-title[b-nc73mw4wjz] { font-size: 1.4rem; font-weight: 800; margin: 0 0 0.5rem; }
.pub-state-sub[b-nc73mw4wjz]   { font-size: 0.9rem; color: var(--text-secondary, #94a3b8); max-width: 340px; line-height: 1.6; }

/* ── Season Highlights tiles ──
   A compact, glanceable row of fun-stat tiles beside the standings. Each tile: an icon +
   short label + bold team + one value line. Text wraps (never clips) so long team names stay
   readable for everyone. 3 across on desktop, 2 on tablet, 1 on phone. */
.pub-highlights-grid[b-nc73mw4wjz] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
    padding: 0.9rem 1.1rem 1.1rem;
}

@media (max-width: 760px) { .pub-highlights-grid[b-nc73mw4wjz] { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .pub-highlights-grid[b-nc73mw4wjz] { grid-template-columns: 1fr; } }

.pub-highlight-tile[b-nc73mw4wjz] {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    min-height: 64px;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
    border-radius: 12px;
    padding: 0.7rem 0.85rem;
}

.pub-highlight-icon[b-nc73mw4wjz] {
    /* G03: Bootstrap icons, not emoji — they draw the same on every phone and never fall back to
       a tofu box. One colour keeps the row calm. */
    font-size: 1.5rem;
    line-height: 1;
    width: 2rem;
    text-align: center;
    flex-shrink: 0;
    color: var(--b9-warning-text);
}

.pub-highlight-body[b-nc73mw4wjz] { min-width: 0; }

.pub-highlight-label[b-nc73mw4wjz] {
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #94a3b8);
}

.pub-highlight-team[b-nc73mw4wjz] {
    font-size: 0.95rem;
    font-weight: 800;
    color: var(--text-primary, #f1f5f9);
    line-height: 1.25;
    margin-top: 1px;
}

.pub-highlight-value[b-nc73mw4wjz] {
    font-size: 0.8rem;
    color: var(--text-secondary, #cbd5e1);
    margin-top: 1px;
    line-height: 1.3;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
/* Section-header icon accents (page is dark-first; fallback form
   matches this file's existing convention) */
.pub-icon-gold[b-nc73mw4wjz]  { color: var(--warning, #f59e0b); }
.pub-icon-teal[b-nc73mw4wjz]  { color: #0f766e; }
.pub-icon-blue[b-nc73mw4wjz]  { color: var(--b9-primary-text); }
.pub-icon-amber[b-nc73mw4wjz] { color: #b45309; }

.pub-empty-note[b-nc73mw4wjz] { color: var(--text-muted, #94a3b8); }
.pub-empty-icon[b-nc73mw4wjz] { font-size: 2.5rem; display: block; margin-bottom: .75rem; }

.pub-result-gap[b-nc73mw4wjz] { margin-left: .4rem; }

/* ── Phones: the points have to be on the screen ─────────────
   At 390px the team standings table measured 412px inside a 361px card, so the Points column
   — the one number a standings board exists for — sat from 351 to 426 and was simply not there
   when the page loaded. .etable-wrap scrolls, so it was reachable by swiping sideways, but
   nothing on the row said "swipe": the golfer saw a rank, a team and a week count and no score.
   Two changes, both width-only: drop the lowest-value column (Weeks — the row still opens a
   week-by-week detail on tap) and pull the cell padding in from 0.9rem to 0.5rem. Desktop keeps
   every column. */
@media (max-width: 480px) {
    .pub-col-weeks[b-nc73mw4wjz] { display: none; }

    .etable thead th[b-nc73mw4wjz],
    .etable tbody td[b-nc73mw4wjz] {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }
}
/* /Components/Pages/Leagues/QrStatusPanel.razor.rz.scp.css */
.wrd-section-head[b-1e5a7ww2ky] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    flex-wrap: wrap;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-section-head h3[b-1e5a7ww2ky] {
    margin: 0;
    font-size: 1rem;
}

.wrd-scorecard-summary[b-1e5a7ww2ky] {
    display: flex;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
    color: var(--text-secondary);
    font-size: .82rem;
}

.wrd-muted[b-1e5a7ww2ky] {
    margin: 0;
    color: var(--text-secondary);
}
/* /Components/Pages/Leagues/RoundAlertCallout.razor.rz.scp.css */
.wrd-alert[b-f5xuyufr2c] {
    border: 1px solid var(--border-subtle);
    border-left-width: 3px;
    border-radius: var(--radius-md, 10px);
    padding: var(--space-3, .75rem);
    background: var(--bg-elevated);
    display: flex;
    flex-direction: column;
    gap: var(--space-2, .5rem);
}

.wrd-alert-head[b-f5xuyufr2c] {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .87rem;
    font-weight: 700;
}

.wrd-alert-body[b-f5xuyufr2c] {
    margin: 0;
    color: var(--text-secondary);
    font-size: .82rem;
}

.wrd-alert--danger[b-f5xuyufr2c] { border-left-color: var(--b9-danger, #EF4444); }
.wrd-alert--warning[b-f5xuyufr2c] { border-left-color: var(--b9-warning, #F59E0B); }
.wrd-alert--success[b-f5xuyufr2c] { border-left-color: var(--b9-success, #22C55E); }
.wrd-alert--info[b-f5xuyufr2c] { border-left-color: var(--b9-info, #38BDF8); }
/* /Components/Pages/Leagues/RoundDiagnosticsPanel.razor.rz.scp.css */
.round-diag[b-f54zsa14c1] { padding: 1rem 1.25rem; }
.round-diag__head[b-f54zsa14c1] { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.round-diag__list[b-f54zsa14c1] { list-style: none; padding: 0; margin: 0.75rem 0 0 0; }
.round-diag__item[b-f54zsa14c1] { display: flex; gap: 0.75rem; padding: 0.5rem 0; border-top: 1px solid var(--border-subtle, rgba(0,0,0,0.06)); }
.round-diag__item:first-child[b-f54zsa14c1] { border-top: none; }
.round-diag__item i[b-f54zsa14c1] { font-size: 1.1rem; line-height: 1.4; flex: 0 0 auto; }
.round-diag__label[b-f54zsa14c1] { font-weight: 600; }
.round-diag__msg[b-f54zsa14c1] { color: var(--text-muted, #6b7280); font-size: 0.925rem; }
.round-diag__item--ok i[b-f54zsa14c1] { color: var(--success, #16a34a); }
.round-diag__item--warning i[b-f54zsa14c1] { color: var(--warning, #d97706); }
.round-diag__item--error i[b-f54zsa14c1] { color: var(--danger, #dc2626); }
.round-diag__item--skipped i[b-f54zsa14c1] { color: var(--text-muted, #9ca3af); }
.round-diag__item--skipped .round-diag__label[b-f54zsa14c1] { color: var(--text-muted, #6b7280); }
/* /Components/Pages/Leagues/RoundPrimaryActionBar.razor.rz.scp.css */
.wrd-actions[b-3d8x2wu003] {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
}
/* /Components/Pages/Leagues/RoundProgressStrip.razor.rz.scp.css */
/* ============================================================
   RoundProgressStrip — scoped styles
   Uses only design system tokens from brand-tokens.css
   ============================================================ */

/* ── Cancelled fallback ── */
.rps--cancelled[b-atevzjiac0] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-6);
    font-size: 0.78rem;
    color: var(--text-muted);
    font-style: italic;
    border-top: 1px solid var(--border-subtle);
    background: var(--bg-elevated);
}

/* ── Strip container ── */
.rps[b-atevzjiac0] {
    display: flex;
    align-items: flex-start;
    padding: var(--space-4) var(--space-6);
    background: var(--bg-elevated);
    border-top: 1px solid var(--border-subtle);
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.rps[b-atevzjiac0]::-webkit-scrollbar { display: none; }

/* ── Individual step ── */
.rps-step[b-atevzjiac0] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-1);
    flex: 1;
    min-width: 64px;
    position: relative;
}

/* ── Connector line between dots (on all steps except first) ── */
.rps-step:not(:first-child)[b-atevzjiac0]::before {
    content: '';
    position: absolute;
    top: 9px;           /* vertical center of 18px dot */
    left: -50%;
    right: 50%;
    height: 1px;
    background: var(--border-subtle);
    z-index: 0;
    transition: background var(--t-slow) var(--t-ease);
}

/* Color connectors after completed steps */
.rps-step--done + .rps-step--done[b-atevzjiac0]::before,
.rps-step--done + .rps-step--current[b-atevzjiac0]::before {
    background: var(--b9-success);
    opacity: 0.45;
}

/* ── Dot ── */
.rps-dot[b-atevzjiac0] {
    position: relative;
    z-index: 1;
    width: 18px;
    height: 18px;
    border-radius: var(--radius-full);
    border: 2px solid var(--border-subtle);
    background: var(--bg-elevated);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.6rem;
    flex-shrink: 0;
    transition: background var(--t-base), border-color var(--t-base), box-shadow var(--t-base);
}

.rps-step--done .rps-dot[b-atevzjiac0] {
    background: var(--b9-success);
    border-color: var(--b9-success);
    color: #fff;
}

.rps-step--current .rps-dot[b-atevzjiac0] {
    background: var(--brand);
    border-color: var(--brand);
    box-shadow: 0 0 0 3px var(--brand-ring);
    animation: rps-pulse-b-atevzjiac0 2.4s ease-in-out infinite;
}

.rps-step--pending .rps-dot[b-atevzjiac0] {
    background: transparent;
    border-color: var(--border-default);
}

/* ── Label ── */
.rps-label[b-atevzjiac0] {
    font-size: 0.68rem;
    font-weight: 500;
    color: var(--text-muted);
    white-space: nowrap;
    text-align: center;
    letter-spacing: 0.01em;
}

.rps-step--done .rps-label[b-atevzjiac0]    { color: var(--b9-success-text); font-weight: 600; }
.rps-step--current .rps-label[b-atevzjiac0] { color: var(--b9-primary-text); font-weight: 700; }

/* ── Pulse animation for active step ── */
@keyframes rps-pulse-b-atevzjiac0 {
    0%, 100% { box-shadow: 0 0 0 3px var(--brand-ring); }
    50%       { box-shadow: 0 0 0 5px rgba(29,78,216,0.12); }
}

/* ── Responsive ── */
@media (max-width: 520px) {
    .rps[b-atevzjiac0]         { padding: var(--space-3) var(--space-4); }
    .rps-step[b-atevzjiac0]    { min-width: 52px; }
    .rps-label[b-atevzjiac0]   { font-size: 0.62rem; }
}
/* /Components/Pages/Leagues/RoundResultsPanel.razor.rz.scp.css */
.wrd-section-head[b-yrmvhbgu1s] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    flex-wrap: wrap;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-section-head h3[b-yrmvhbgu1s] {
    margin: 0;
    font-size: 1rem;
}

.wrd-scoring-grid[b-yrmvhbgu1s] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-2, .5rem);
}

.wrd-results-meta[b-yrmvhbgu1s] {
    margin-top: var(--space-2, .5rem);
    color: var(--text-secondary);
    font-size: .84rem;
}

.wrd-history[b-yrmvhbgu1s] {
    margin-top: var(--space-3, .75rem);
    display: flex;
    flex-direction: column;
    gap: var(--space-2, .5rem);
}

.wrd-history-item[b-yrmvhbgu1s] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    background: var(--bg-elevated);
    padding: .55rem .7rem;
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.wrd-history-item span[b-yrmvhbgu1s],
.wrd-history-item p[b-yrmvhbgu1s] {
    margin: 0;
    color: var(--text-secondary);
    font-size: .82rem;
}

.wrd-muted[b-yrmvhbgu1s] {
    margin: 0;
    color: var(--text-secondary);
}

@media (max-width: 900px) {
    .wrd-scoring-grid[b-yrmvhbgu1s] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/Pages/Leagues/RoundSetupCompactCard.razor.rz.scp.css */
.rsc-card[b-mdxrt5lvuc] {
    padding: .7rem .8rem;
}

.rsc-head[b-mdxrt5lvuc] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .4rem;
}

.rsc-actions[b-mdxrt5lvuc] {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .4rem;
}

.rsc-grid[b-mdxrt5lvuc] {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem .9rem;
    color: var(--text-secondary);
    font-size: .84rem;
}
/* /Components/Pages/Leagues/RoundSummaryStrip.razor.rz.scp.css */
.rss[b-kilctubbdb] {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: var(--space-2, .5rem);
}

@media (max-width: 1100px) {
    .rss[b-kilctubbdb] {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .rss[b-kilctubbdb] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/Pages/Leagues/ScorecardPanel.razor.rz.scp.css */
.wrd-section-head[b-e20tjto8pj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    flex-wrap: wrap;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-section-head h3[b-e20tjto8pj] {
    margin: 0;
    font-size: 1rem;
}

.wrd-scorecard-summary[b-e20tjto8pj] {
    display: flex;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
    color: var(--text-secondary);
    font-size: .82rem;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-list[b-e20tjto8pj] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .25rem;
    color: var(--text-secondary);
    font-size: .84rem;
}

.wrd-muted[b-e20tjto8pj] {
    margin: 0;
    color: var(--text-secondary);
}
/* /Components/Pages/Leagues/ScoringProgressPanel.razor.rz.scp.css */
.wrd-section-head[b-3q3pb0emdf] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    flex-wrap: wrap;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-section-head h3[b-3q3pb0emdf] {
    margin: 0;
    font-size: 1rem;
}

.wrd-scoring-grid[b-3q3pb0emdf] {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-2, .5rem);
    margin-bottom: var(--space-2, .5rem);
}

@media (max-width: 900px) {
    .wrd-scoring-grid[b-3q3pb0emdf] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/Pages/Leagues/StartAssignmentBoard.razor.rz.scp.css */
.wrd-start-meta[b-569i060iq8] {
    display: flex;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-start-grid[b-569i060iq8] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-2, .5rem);
}

.wrd-start-item[b-569i060iq8] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    padding: .5rem .625rem;
    display: flex;
    flex-direction: column;
    gap: .125rem;
    background: var(--bg-elevated);
}

.wrd-start-item span[b-569i060iq8] {
    color: var(--text-secondary);
    font-size: .78rem;
}

.wrd-muted[b-569i060iq8] {
    margin: 0;
    color: var(--text-secondary);
}

@media (max-width: 800px) {
    .wrd-start-grid[b-569i060iq8] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* /Components/Pages/Leagues/StartMethodCard.razor.rz.scp.css */
.start-method[b-68n7mlhils] { padding: 1rem 1.25rem; }
.start-method__head[b-68n7mlhils] { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }

.start-method__form[b-68n7mlhils] { margin-top: 0.75rem; display: flex; flex-direction: column; gap: 1rem; }

.start-method__options[b-68n7mlhils] {
    border: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.5rem;
}
.start-method__options > legend[b-68n7mlhils] { margin-bottom: 0.35rem; }

.start-method__option[b-68n7mlhils] {
    display: flex;
    gap: 0.625rem;
    align-items: flex-start;
    border: 1px solid var(--border-subtle, rgba(0,0,0,0.12));
    border-radius: 0.5rem;
    padding: 0.625rem 0.75rem;
    cursor: pointer;
    transition: border-color 120ms ease, background-color 120ms ease;
}
.start-method__option:hover[b-68n7mlhils] { border-color: var(--accent, #2563eb); }
.start-method__option--active[b-68n7mlhils] {
    border-color: var(--accent, #2563eb);
    background-color: color-mix(in srgb, var(--accent, #2563eb) 6%, transparent);
}
.start-method__option input[type="radio"][b-68n7mlhils] { margin-top: 0.25rem; flex: 0 0 auto; }

.start-method__option-label[b-68n7mlhils] { display: flex; align-items: center; gap: 0.4rem; }
.start-method__option-desc[b-68n7mlhils] { color: var(--text-muted, #6b7280); font-size: 0.85rem; margin-top: 0.2rem; }

.start-method__time[b-68n7mlhils] { display: flex; flex-direction: column; gap: 0.35rem; max-width: 10rem; }

.start-method__actions[b-68n7mlhils] { display: flex; gap: 0.5rem; justify-content: flex-end; }

/* Disabled fieldset dims the radio group while parent is saving. */
.start-method__options[disabled][b-68n7mlhils] { opacity: 0.6; pointer-events: none; }
/* /Components/Pages/Leagues/Teams/AutoCreateTeamsModal.razor.rz.scp.css */
.auto-create-modal[b-uunle0py7h] { max-width: 520px; }

.auto-create-warning[b-uunle0py7h] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .55rem .75rem;
    background: var(--warning-soft, rgba(245,158,11,.12));
    border: 1px solid color-mix(in srgb, var(--warning, #F59E0B) 35%, transparent);
    border-radius: 8px;
    color: var(--warning-text, #ca8a04);
    font-size: .85rem;
    margin: 0 0 1rem;
}

.auto-create-options[b-uunle0py7h] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.auto-create-option[b-uunle0py7h] {
    position: relative;
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .85rem 1rem;
    border-radius: 10px;
    border: 2px solid var(--border-subtle);
    background: transparent;
    cursor: pointer;
    text-align: left;
    transition: border-color .15s ease, background .15s ease, transform .15s ease;
    color: var(--text-primary);
}

.auto-create-option:hover:not(.auto-create-option--disabled)[b-uunle0py7h] {
    border-color: var(--brand, #1d4ed8);
    background: var(--brand-soft, rgba(29,78,216,.08));
    transform: translateY(-1px);
}

.auto-create-option--selected[b-uunle0py7h] {
    border-color: var(--brand, #1d4ed8);
    background: var(--brand-soft, rgba(29,78,216,.08));
    box-shadow: 0 0 0 1px var(--brand, #1d4ed8);
}

.auto-create-option--disabled[b-uunle0py7h] {
    opacity: .55;
    cursor: not-allowed;
}

.auto-create-option-icon[b-uunle0py7h] {
    font-size: 1.4rem;
    color: var(--b9-primary-text);
    width: 2.25rem;
    text-align: center;
}

.auto-create-option-body[b-uunle0py7h] { flex: 1; }
.auto-create-option-title[b-uunle0py7h] { font-weight: 600; font-size: .95rem; }
.auto-create-option-desc[b-uunle0py7h] { font-size: .8rem; color: var(--text-muted); margin-top: .15rem; }

.auto-create-option-check[b-uunle0py7h] {
    color: var(--b9-primary-text);
    font-size: 1.15rem;
}
/* /Components/Pages/Leagues/Teams/PlayerSlot.razor.rz.scp.css */
.player-slot[b-fergo0pr2m] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.player-slot-label[b-fergo0pr2m] {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
    font-weight: 600;
}

.player-slot-meta[b-fergo0pr2m] {
    margin-left: .35rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}
/* /Components/Pages/Leagues/Teams/TeamCard.razor.rz.scp.css */
/* TeamCard — focused single-team editor */

.team-card[b-h0mu6t6cei] {
    display: flex;
    flex-direction: column;
    gap: .9rem;
    padding: 1rem;
    border-radius: 16px;
    border: 1px solid var(--border-subtle);
    background: var(--surface-2, var(--surface-card));
    transition: border-color .15s ease, box-shadow .15s ease;
    min-width: 0;
    width: 100%;
    max-width: 100%;
    /* This card is also .ui-card, which globally sets overflow:hidden. Override so the
       floating player picker + "More" menu can open downward without being clipped:
       clip the x-axis (keeps horizontal-blowout protection) but keep the y-axis visible.
       clip+visible is a valid pair — unlike hidden+visible, which the browser forces back
       to auto/hidden (and clip+hidden is forced back to hidden/hidden, defeating the fix). */
    overflow-x: clip;
    overflow-y: visible;
}

.team-card--complete[b-h0mu6t6cei] {
    border-color: rgba(16,185,129,.45);
}

.team-card--incomplete[b-h0mu6t6cei] {
    border-color: rgba(234,179,8,.40);
    background: linear-gradient(0deg, rgba(234,179,8,.03), rgba(234,179,8,.03)), var(--surface-2, var(--surface-card));
}

.team-card-head[b-h0mu6t6cei] {
    display: none;
}

.team-card-top-row[b-h0mu6t6cei] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: .75rem;
    min-width: 0;
}

.team-card-title-wrap[b-h0mu6t6cei] {
    min-width: 0;
    flex: 1;
}

.team-card-title[b-h0mu6t6cei] {
    margin: 0;
    font-size: 1.02rem;
    overflow-wrap: anywhere;
}

.team-card-subtitle[b-h0mu6t6cei] {
    margin-top: .2rem;
    font-size: .85rem;
    color: var(--text-muted);
    font-weight: 600;
}

.team-card-more[b-h0mu6t6cei] {
    position: relative;
}

.team-card-more summary[b-h0mu6t6cei] {
    list-style: none;
}

.team-card-more summary[b-h0mu6t6cei]::-webkit-details-marker {
    display: none;
}

.team-card-more-menu[b-h0mu6t6cei] {
    position: absolute;
    right: 0;
    top: calc(100% + .25rem);
    z-index: 10;
    min-width: 10rem;
    max-width: min(18rem, 90vw);
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: .4rem;
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    background: var(--surface-2, var(--surface-card));
    box-shadow: 0 10px 28px rgba(2, 6, 23, .15);
}

.team-card-more-menu :global(.ui-btn)[b-h0mu6t6cei] {
    justify-content: flex-start;
}

.team-card-remove-btn[b-h0mu6t6cei] {
    color: var(--danger, #ef4444);
}

.team-card-remove-btn:hover:not(:disabled)[b-h0mu6t6cei] {
    color: var(--danger, #ef4444);
    background: rgba(239, 68, 68, .08);
}

.team-card-roster[b-h0mu6t6cei] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    min-width: 0;
}

.team-card-role-row[b-h0mu6t6cei] {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    padding: .35rem 0;
    border-bottom: 1px solid var(--border-subtle);
    min-width: 0;
}

.team-card-role-row:last-child[b-h0mu6t6cei] {
    border-bottom: 0;
}

.team-card-role[b-h0mu6t6cei] {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--text-muted);
    font-weight: 700;
}

.team-card-player[b-h0mu6t6cei] {
    text-align: right;
    font-weight: 600;
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.team-card-actions-row[b-h0mu6t6cei] {
    display: flex;
    justify-content: flex-start;
}

.team-card-player--empty[b-h0mu6t6cei] {
    color: var(--text-muted);
    font-style: italic;
    font-weight: 400;
}

.team-card-editor[b-h0mu6t6cei] {
    display: flex;
    flex-direction: column;
    gap: .8rem;
    min-width: 0;
}

.team-card-field-group[b-h0mu6t6cei] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.team-card-slot-group[b-h0mu6t6cei] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.team-card-slot-row[b-h0mu6t6cei] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.team-card-editor-label[b-h0mu6t6cei] {
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
    font-weight: 700;
}

.team-card-field-hint[b-h0mu6t6cei] {
    font-size: .78rem;
    color: var(--text-muted);
    line-height: 1.4;
}

.team-card-editor-actions[b-h0mu6t6cei] {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}

.team-card-actions-bottom[b-h0mu6t6cei] {
    display: flex;
    justify-content: flex-end;
    min-width: 0;
}

@media (max-width: 640px) {
    .team-card-top-row[b-h0mu6t6cei] {
        flex-direction: column;
        align-items: stretch;
    }

    .team-card-role-row[b-h0mu6t6cei] {
        flex-direction: column;
        gap: .2rem;
    }

    .team-card-player[b-h0mu6t6cei] {
        text-align: left;
    }

    .team-card-editor-actions .ui-btn[b-h0mu6t6cei] {
        flex: 1;
    }
}
/* /Components/Pages/Leagues/Teams/TeamHandicapBadge.razor.rz.scp.css */
.team-hcp[b-6xbldip35u] {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.team-hcp-pill[b-6xbldip35u] { white-space: nowrap; }

.team-hcp-help[b-6xbldip35u] {
    background: transparent;
    border: 0;
    padding: 0;
    color: var(--b9-link, #60a5fa);
    text-decoration: underline;
    font-size: .75rem;
    cursor: pointer;
}
.team-hcp-help:hover[b-6xbldip35u] { opacity: .85; }
/* /Components/Pages/Leagues/Teams/TeamPlayerPicker.razor.rz.scp.css */
/* TeamPlayerPicker — pill-based player picker with search */

/* ── Container ─────────────────────────────────────────────── */

.tpp[b-5j38ene0mt] {
    position: relative;
    width: 100%;
    min-width: 0;
}

/* ── Empty / Tap-to-pick button ─────────────────────────────── */

.tpp-empty-btn[b-5j38ene0mt] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .7rem .875rem;
    border: 2px dashed var(--border-subtle);
    border-radius: 10px;
    background: transparent;
    color: var(--text-muted);
    font-size: .92rem;
    cursor: pointer;
    transition: border-color .15s, background .15s, color .15s;
    text-align: left;
    min-height: 48px;
}

.tpp-empty-btn:hover:not(:disabled)[b-5j38ene0mt] {
    border-color: var(--brand, #6366f1);
    color: var(--b9-primary-text);
    background: var(--brand-soft, rgba(99,102,241,.08));
}

.tpp-empty-btn:disabled[b-5j38ene0mt],
.tpp--disabled .tpp-empty-btn[b-5j38ene0mt] {
    opacity: .45;
    cursor: not-allowed;
}

/* ── Selected chip ─────────────────────────────────────────── */

.tpp-chip[b-5j38ene0mt] {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .4rem .65rem .4rem .4rem;
    border: 1px solid rgba(34, 197, 94, .45);
    border-radius: 999px;
    background: rgba(34, 197, 94, .07);
    min-width: 0;
    max-width: 100%;
}

.tpp-chip-initials[b-5j38ene0mt] {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--brand-soft, rgba(99,102,241,.12));
    color: var(--b9-primary-text);
    font-size: .7rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: .02em;
}
.tpp-chip-photo[b-5j38ene0mt] {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}

.tpp-chip-name[b-5j38ene0mt] {
    flex: 1;
    font-weight: 600;
    font-size: .93rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--text-primary);
}

.tpp-chip-remove[b-5j38ene0mt] {
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    padding: 3px 5px;
    border-radius: 4px;
    font-size: .7rem;
    line-height: 1;
    transition: color .12s, background .12s;
}

.tpp-chip-remove:hover[b-5j38ene0mt] {
    color: var(--danger, #ef4444);
    background: rgba(239, 68, 68, .08);
}

/* ── Search panel (floating) ───────────────────────────────── */

.tpp-panel[b-5j38ene0mt] {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    right: 0;
    z-index: 200;
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    background: var(--bg-elevated, #1e293b);
    box-shadow: 0 16px 40px rgba(2, 6, 23, .28);
    overflow: hidden;
    min-width: 200px;
}

.tpp-search-row[b-5j38ene0mt] {
    display: flex;
    align-items: center;
    gap: .375rem;
    padding: .55rem .7rem;
    border-bottom: 1px solid var(--border-subtle);
}

.tpp-search-icon[b-5j38ene0mt] {
    color: var(--text-muted);
    font-size: .85rem;
    flex-shrink: 0;
}

.tpp-search-input[b-5j38ene0mt] {
    flex: 1;
    border: none;
    background: transparent;
    color: var(--text-primary);
    font-size: .93rem;
    outline: none;
    min-width: 0;
    padding: 0;
}

.tpp-search-input[b-5j38ene0mt]::placeholder {
    color: var(--text-muted);
}

.tpp-cancel[b-5j38ene0mt] {
    flex-shrink: 0;
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    padding: 2px 4px;
    font-size: .875rem;
    border-radius: 4px;
    line-height: 1;
    transition: color .12s;
}

.tpp-cancel:hover[b-5j38ene0mt] {
    color: var(--text-primary);
}

/* ── Player list ───────────────────────────────────────────── */

.tpp-list[b-5j38ene0mt] {
    max-height: 230px;
    overflow-y: auto;
    padding: .3rem;
}

.tpp-list-item[b-5j38ene0mt] {
    width: 100%;
    display: flex;
    align-items: center;
    gap: .625rem;
    padding: .5rem .625rem;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: var(--text-primary);
    font-size: .93rem;
    cursor: pointer;
    text-align: left;
    transition: background .1s;
    min-height: 44px;
}

.tpp-list-item:hover[b-5j38ene0mt] {
    background: var(--bg-raised, rgba(255, 255, 255, .06));
}

.tpp-list-photo[b-5j38ene0mt] {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    object-fit: cover;
}
.tpp-list-initials[b-5j38ene0mt] {
    flex-shrink: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--bg-raised, rgba(255, 255, 255, .08));
    color: var(--text-secondary);
    font-size: .7rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    letter-spacing: .02em;
}

.tpp-list-name[b-5j38ene0mt] {
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tpp-no-match[b-5j38ene0mt] {
    padding: .875rem .625rem;
    color: var(--text-muted);
    font-size: .88rem;
    text-align: center;
}

/* ── Backdrop (click-outside to close) ─────────────────────── */

.tpp-backdrop[b-5j38ene0mt] {
    position: fixed;
    inset: 0;
    z-index: 199;
}

/* ── Light theme ───────────────────────────────────────────── */

html[data-theme="light"] .tpp-panel[b-5j38ene0mt] {
    background: #fff;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

html[data-theme="light"] .tpp-list-item:hover[b-5j38ene0mt] {
    background: rgba(0, 0, 0, .04);
}

html[data-theme="light"] .tpp-list-initials[b-5j38ene0mt] {
    background: rgba(0, 0, 0, .06);
    color: var(--text-secondary);
}
/* /Components/Pages/Leagues/Teams/TeamsGrid.razor.rz.scp.css */
.teams-grid[b-3z3uc7jzhf] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    /* clip (not hidden) so it never forces overflow-y:auto and clips a card's open menu. */
    overflow-x: clip;
}

@media (min-width: 1400px) {
    .teams-grid[b-3z3uc7jzhf] { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 1024px) {
    .teams-grid[b-3z3uc7jzhf] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .teams-grid[b-3z3uc7jzhf] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Leagues/Teams/TeamsHeader.razor.rz.scp.css */
.teams-header[b-zu63ag3gsd] {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-start;
    justify-content: space-between;
    padding: .85rem 1rem;
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    background: var(--surface-2, var(--surface-card));
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
    max-height: 220px;
}

.teams-header-titles[b-zu63ag3gsd] {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    min-width: 0;
    max-width: 100%;
    flex: 1;
}

.teams-header-helper[b-zu63ag3gsd] {
    margin: 0;
}

.teams-header-availability[b-zu63ag3gsd] {
    margin: 0;
    font-size: .9rem;
    color: var(--text-muted);
    font-weight: 600;
}

.teams-header-actions[b-zu63ag3gsd] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    min-width: 0;
    max-width: 100%;
}

@media (max-width: 540px) {
    .teams-header[b-zu63ag3gsd] {
        padding: .85rem;
        max-height: none;
        gap: .75rem;
    }

    .teams-header-actions[b-zu63ag3gsd] { width: 100%; }
    .teams-header-actions .ui-btn[b-zu63ag3gsd] { flex: 1; min-width: 0; }
}
/* /Components/Pages/Leagues/Teams/TeamsPage.razor.rz.scp.css */
.teams-page[b-1k89tfup4w] {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    min-width: 0;
    /* clip (not hidden) so it never forces overflow-y:auto and clips an open menu. */
    overflow-x: clip;
}

.teams-page > *[b-1k89tfup4w] {
    max-width: 100%;
    min-width: 0;
}

.teams-page-status[b-1k89tfup4w] { margin: 0; }

.teams-scorer-note[b-1k89tfup4w] {
    margin: -.25rem 0 0;
    color: var(--text-muted);
    font-size: .88rem;
}

.teams-next-step[b-1k89tfup4w] {
    margin: 0;
}

.teams-empty[b-1k89tfup4w] {
    padding: 1.5rem 1rem;
    text-align: center;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.teams-sticky-actions[b-1k89tfup4w] {
    position: sticky;
    bottom: .75rem;
    z-index: 8;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .8rem 1rem;
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    background: var(--surface-2, var(--surface-card));
    box-shadow: 0 10px 26px rgba(2, 6, 23, .12);
}

.teams-sticky-copy[b-1k89tfup4w] {
    display: flex;
    flex-direction: column;
    gap: .1rem;
    font-weight: 700;
}

.teams-sticky-count[b-1k89tfup4w] {
    font-size: .8rem;
    font-weight: 400;
    color: var(--text-muted);
}

.teams-sticky-buttons[b-1k89tfup4w] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
    min-width: 0;
}

@media (max-width: 680px) {
    .teams-page[b-1k89tfup4w] {
        gap: 1rem;
        max-width: 100%;
    }

    .teams-sticky-actions[b-1k89tfup4w] {
        position: static;
        bottom: auto;
        box-shadow: none;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .teams-sticky-buttons[b-1k89tfup4w] {
        width: 100%;
    }

    .teams-sticky-buttons .ui-btn[b-1k89tfup4w] {
        flex: 1;
        min-height: 2.6rem;
    }

    .teams-page .ui-btn[b-1k89tfup4w] {
        min-height: 44px;
    }
}
/* /Components/Pages/Leagues/Teams/TeamsSummaryBar.razor.rz.scp.css */
.teams-summary-grid[b-boy57frskb] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-auto-rows: 1fr;
}

.teams-summary-card[b-boy57frskb] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    padding: 1rem;
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    background: var(--surface-2, var(--surface-card));
    min-width: 0;
    min-height: 110px;
    justify-content: center;
    text-align: center;
}

.teams-summary-card--warning[b-boy57frskb] {
    border-color: rgba(234,179,8,.45);
    background: linear-gradient(0deg, rgba(234,179,8,.04), rgba(234,179,8,.04)), var(--surface-2, var(--surface-card));
}

.teams-summary-card--ok[b-boy57frskb] {
    border-color: rgba(16,185,129,.45);
}

.teams-summary-card-title[b-boy57frskb] {
    font-size: .8rem;
    color: var(--text-muted);
    font-weight: 600;
}

.teams-summary-card-value[b-boy57frskb] {
    font-size: 2rem;
    font-weight: 800;
    line-height: 1;
    color: var(--text-primary);
}

.teams-summary-card-suffix[b-boy57frskb] {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-muted);
    margin-left: .2rem;
}

.teams-summary-plain-warning[b-boy57frskb] {
    margin: .6rem 0 0;
    font-size: .96rem;
    color: #f2c94c;
    font-weight: 600;
}

@media (max-width: 940px) {
    .teams-summary-grid[b-boy57frskb] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .teams-summary-grid[b-boy57frskb] {
        grid-template-columns: 1fr;
    }

    .teams-summary-card[b-boy57frskb] {
        min-height: 88px;
    }
}
/* /Components/Pages/Leagues/Teams/UnassignedPlayersPanel.razor.rz.scp.css */
.unassigned-panel[b-w2f2qyf6pv] {
    padding: 1rem;
    border-radius: 16px;
    border: 1px solid var(--border-subtle);
    background: var(--surface-2, var(--surface-card));
    display: flex;
    flex-direction: column;
    gap: .6rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: hidden;
}

.unassigned-panel-title[b-w2f2qyf6pv] {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    margin: 0;
    color: var(--text-primary);
}

.unassigned-panel-summary[b-w2f2qyf6pv] {
    margin: 0;
    color: var(--text-muted);
    font-weight: 600;
}

.unassigned-list[b-w2f2qyf6pv] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .45rem;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.unassigned-list-item[b-w2f2qyf6pv] {
    height: auto;
    padding: 1rem;
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    background: var(--surface-base, var(--surface-card));
    font-size: .9rem;
    min-width: 0;
    overflow-wrap: anywhere;
}

@media (max-width: 980px) {
    .unassigned-list[b-w2f2qyf6pv] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .unassigned-list[b-w2f2qyf6pv] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Leagues/WeeklyRoundActionBar.razor.rz.scp.css */
.wrail[b-k04zb1rjks] {
    padding: 16px;
    border-radius: 12px;
}

.wrail-head[b-k04zb1rjks] {
    margin-bottom: 0.75rem;
}

.wrail-title[b-k04zb1rjks] {
    margin: 0;
    font-size: 0.95rem;
    font-weight: 700;
}

.wrail-sub[b-k04zb1rjks] {
    margin: 0.25rem 0 0;
    color: var(--b9-text-muted);
    font-size: 0.8rem;
}

.wrail-list[b-k04zb1rjks] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.55rem;
}

.wrail-step[b-k04zb1rjks] {
    display: grid;
    grid-template-columns: 32px 1fr;
    gap: 0.65rem;
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    padding: 0.65rem;
    background: var(--b9-surface);
}

.wrail-step--current[b-k04zb1rjks] {
    border-color: var(--b9-primary);
    box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.1);
}

.wrail-step--locked[b-k04zb1rjks] {
    opacity: 0.88;
}

.wrail-step--complete[b-k04zb1rjks] {
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
}

.wrail-step-num[b-k04zb1rjks] {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 0.8rem;
    background: var(--b9-surface-muted);
    color: var(--b9-text-soft);
}

.wrail-step--current .wrail-step-num[b-k04zb1rjks] {
    background: var(--b9-primary);
    color: #fff;
}

.wrail-step--complete .wrail-step-num[b-k04zb1rjks] {
    background: var(--b9-success-soft);
    color: var(--b9-success-text);
}

.wrail-step-row[b-k04zb1rjks] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.wrail-step-title[b-k04zb1rjks] {
    font-weight: 700;
    font-size: 0.86rem;
}

.wrail-step-state[b-k04zb1rjks] {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--b9-text-muted);
}

.wrail-current-action[b-k04zb1rjks] {
    margin-top: 0.5rem;
    display: grid;
    gap: 0.45rem;
}

.wrail-step-help[b-k04zb1rjks] {
    margin: 0.42rem 0 0;
    color: var(--b9-text-muted);
    font-size: 0.76rem;
    line-height: 1.35;
}

.wrail-step--complete .wrail-step-help[b-k04zb1rjks],
.wrail-step--complete .wrail-current-action[b-k04zb1rjks] {
    display: none;
}

.wrail-more[b-k04zb1rjks] {
    margin-top: 0.75rem;
    border-top: 1px solid var(--b9-border);
    padding-top: 0.5rem;
}

.wrail-more summary[b-k04zb1rjks] {
    cursor: pointer;
    color: var(--b9-text-muted);
    font-size: 0.78rem;
    font-weight: 600;
}

.wrail-more-actions[b-k04zb1rjks] {
    margin-top: 0.55rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

@media (max-width: 760px) {
    .wrail-step[b-k04zb1rjks] {
        grid-template-columns: 28px 1fr;
    }

    .wrail-current-action :global(.ui-btn)[b-k04zb1rjks],
    .wrail-more-actions :global(.ui-btn)[b-k04zb1rjks] {
        width: 100%;
        justify-content: center;
    }
}
/* /Components/Pages/Leagues/WeeklyRoundAttentionPanel.razor.rz.scp.css */
.wrd-attention[b-da6pyvni3f] {
    border-left: 3px solid var(--b9-warning, #F59E0B);
}

.wrd-attention-head[b-da6pyvni3f] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    margin-bottom: var(--space-3, .75rem);
}

.wrd-attention-title[b-da6pyvni3f] {
    font-size: .98rem;
    font-weight: 700;
}

.wrd-attention-sub[b-da6pyvni3f] {
    color: var(--text-secondary);
    font-size: .82rem;
}

.wrd-attention-list[b-da6pyvni3f] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2, .5rem);
}
/* /Components/Pages/Leagues/WeeklyRoundDetailPage.razor.rz.scp.css */
.wrd-page[b-6sn3ptzeqj] {
    max-width: 1240px;
    margin: 0 auto;
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 16px;
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.wrd-page > *[b-6sn3ptzeqj] {
    min-width: 0;
}

.wrd-page .ui-btn[b-6sn3ptzeqj] {
    white-space: normal;
}

/* ── Admin Scoring Status Card ── */
.wrd-admin-scoring-card[b-6sn3ptzeqj] {
    border: 2px solid var(--success);
    border-radius: 12px;
    background: var(--success-soft);
    padding: 1rem 1.25rem;
}

.wrd-admin-scoring-head[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.wrd-admin-scoring-title[b-6sn3ptzeqj] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--success-text);
    margin: 0 0 .2rem 0;
}

.wrd-admin-scoring-sub[b-6sn3ptzeqj] {
    font-size: .85rem;
    color: var(--success-text);
    margin: 0;
}

.wrd-admin-scoring-groups[b-6sn3ptzeqj] {
    margin-top: .75rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    border-top: 1px solid rgba(34, 197, 94, 0.24);
    padding-top: .75rem;
}

.wrd-admin-scoring-group-row[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
}

.wrd-admin-scoring-group-label[b-6sn3ptzeqj] {
    flex: 1;
    font-size: .875rem;
    font-weight: 600;
    color: var(--success-text);
}

.wrd-admin-scoring-group-status[b-6sn3ptzeqj] {
    font-size: .8rem;
    padding: .2rem .6rem;
    border-radius: 9999px;
    font-weight: 600;
}

.wrd-status-partial[b-6sn3ptzeqj] {
    background: var(--warning-soft);
    color: var(--warning-text);
}

.wrd-status-missing[b-6sn3ptzeqj] {
    background: var(--danger-soft);
    color: var(--danger-text);
}

/* Per-group roster (teams or players) with scored / needs-score markers. */
.wrd-admin-scoring-units[b-6sn3ptzeqj] {
    flex-basis: 100%;
    display: flex;
    flex-wrap: wrap;
    gap: .15rem .75rem;
    margin-top: .1rem;
}

.wrd-unit[b-6sn3ptzeqj] {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .8rem;
    font-weight: 500;
    color: var(--text-primary, inherit);
}

.wrd-unit .bi[b-6sn3ptzeqj] { font-size: .72rem; }
.wrd-unit--done[b-6sn3ptzeqj] { color: var(--text-muted, inherit); }
.wrd-unit--done .bi[b-6sn3ptzeqj] { color: var(--success-text); }
.wrd-unit--pending .bi[b-6sn3ptzeqj] { color: var(--warning-text); }

.wrd-reopen-banner[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    border: 1px solid var(--warning);
    border-radius: 12px;
    background: var(--warning-soft);
    padding: .9rem 1.1rem;
}

.wrd-reopen-banner-body[b-6sn3ptzeqj] {
    font-size: .9rem;
    color: var(--warning-text);
}

/* Re-finalize banner — green, shown after corrections have been entered */
.wrd-refinalize-banner[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
    border: 1px solid var(--success, #22c55e);
    border-radius: 12px;
    background: var(--success-soft, rgba(34,197,94,.10));
    padding: .9rem 1.1rem;
}

.wrd-refinalize-banner .wrd-reopen-banner-body[b-6sn3ptzeqj] {
    color: var(--success-text, var(--text-primary));
}

.ui-btn--xs[b-6sn3ptzeqj] {
    font-size: .78rem;
    padding: .3rem .75rem;
}

.wrd-advanced-tools[b-6sn3ptzeqj] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    background: var(--bg-elevated);
    padding: 0.5rem 0.75rem;
}

.wrd-advanced-tools > summary[b-6sn3ptzeqj] {
    cursor: pointer;
    font-size: 0.82rem;
    color: var(--text-secondary);
    font-weight: 600;
}

.wrd-advanced-tools[open][b-6sn3ptzeqj] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.wrd-section[b-6sn3ptzeqj] {
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 1rem);
}

.wrd-moments-strip[b-6sn3ptzeqj] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    background: var(--bg-elevated);
    padding: .75rem;
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.wrd-moments-head[b-6sn3ptzeqj] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
}

.wrd-moments-head h3[b-6sn3ptzeqj] {
    margin: 0;
    font-size: .95rem;
}

.wrd-moments-head a[b-6sn3ptzeqj] {
    font-size: .78rem;
}

.wrd-moments-list[b-6sn3ptzeqj] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
}

.wrd-moment-item[b-6sn3ptzeqj] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    padding: .55rem .65rem;
    background: var(--bg-surface);
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    gap: .2rem;
}

.wrd-moment-item strong[b-6sn3ptzeqj] {
    font-size: .84rem;
}

.wrd-moment-item span[b-6sn3ptzeqj] {
    color: var(--text-secondary);
    font-size: .78rem;
    line-height: 1.35;
}

/* --text-tertiary is not a token, so the date on every moment in the week's timeline was
   #6b7280 in both themes — 3.69:1 on the dark page, under AA on the shipped default. */
.wrd-moment-item em[b-6sn3ptzeqj] {
    font-style: normal;
    font-size: .72rem;
    color: var(--text-muted, #6b7280);
}

.wrd-overview-grid[b-6sn3ptzeqj] {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: var(--space-4, 1rem);
}

.wrd-overview-actions h3[b-6sn3ptzeqj],
.wrd-overview-grid h3[b-6sn3ptzeqj] {
    margin: 0 0 var(--space-2, .5rem);
    font-size: 1rem;
}

.wrd-muted[b-6sn3ptzeqj] {
    margin: 0;
    color: var(--text-secondary);
    font-size: .9rem;
    line-height: 1.45;
}

.wrd-section-head h2[b-6sn3ptzeqj],
.wrd-section-head h3[b-6sn3ptzeqj],
.wrd-row-head strong[b-6sn3ptzeqj],
.wrd-next-action strong[b-6sn3ptzeqj],
.wrd-group-sub-item strong[b-6sn3ptzeqj] {
    color: var(--text-primary);
    line-height: 1.3;
}

.wrd-next-action span[b-6sn3ptzeqj],
.wrd-group-sub-item span[b-6sn3ptzeqj],
.wrd-moment-item span[b-6sn3ptzeqj],
.wrd-form-field label[b-6sn3ptzeqj] {
    line-height: 1.4;
}

.wrd-list[b-6sn3ptzeqj] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2, .5rem);
}

.wrd-next-action[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    padding: var(--space-3, .75rem);
    background: var(--bg-elevated);
}

.wrd-next-action strong[b-6sn3ptzeqj],
.wrd-next-action span[b-6sn3ptzeqj] {
    display: block;
}

.wrd-next-action span[b-6sn3ptzeqj] {
    color: var(--text-secondary);
    font-size: .84rem;
}

.wrd-action-row[b-6sn3ptzeqj] {
    display: flex;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
}

.wrd-card-list[b-6sn3ptzeqj] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-3, .75rem);
}

.wrd-row-head[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-2, .5rem);
    margin-bottom: var(--space-1, .25rem);
}

.wrd-inline-form[b-6sn3ptzeqj] {
    display: grid;
    grid-template-columns: minmax(150px, 1fr) minmax(180px, 1fr) auto;
    gap: var(--space-2, .5rem);
    margin-top: var(--space-2, .5rem);
}

.wrd-two-col[b-6sn3ptzeqj] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4, 1rem);
}

.wrd-section-head[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    flex-wrap: wrap;
}

.wrd-section-head h2[b-6sn3ptzeqj],
.wrd-section-head h3[b-6sn3ptzeqj] {
    margin: 0;
    font-size: 1rem;
}

.wrd-group-sub-list[b-6sn3ptzeqj] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2, .5rem);
}

.wrd-group-sub-item[b-6sn3ptzeqj] {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-md, 10px);
    padding: .55rem .7rem;
    background: var(--bg-elevated);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-2, .5rem);
}

.wrd-group-sub-item strong[b-6sn3ptzeqj],
.wrd-group-sub-item span[b-6sn3ptzeqj] {
    display: block;
}

.wrd-group-sub-item span[b-6sn3ptzeqj] {
    font-size: .8rem;
    color: var(--text-secondary);
}

.wrd-group-sub-state[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    gap: var(--space-2, .5rem);
}

.wrd-overlay[b-6sn3ptzeqj] {
    position: fixed;
    inset: 0;
    background: rgba(2, 6, 23, .62);
    z-index: 70;
}

.wrd-drawer[b-6sn3ptzeqj] {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: min(440px, 100vw);
    background: var(--bg-surface);
    border-left: 1px solid var(--border-default);
    z-index: 71;
    display: flex;
    flex-direction: column;
}

.wrd-drawer-head[b-6sn3ptzeqj] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-4, 1rem);
    border-bottom: 1px solid var(--border-subtle);
}

.wrd-drawer-head h3[b-6sn3ptzeqj] {
    margin: 0;
    font-size: 1.05rem;
}

.wrd-drawer-close[b-6sn3ptzeqj] {
    border: 0;
    background: transparent;
    color: var(--text-secondary);
}

.wrd-drawer-body[b-6sn3ptzeqj] {
    padding: var(--space-4, 1rem);
    display: flex;
    flex-direction: column;
    gap: var(--space-3, .75rem);
    overflow-y: auto;
}

.wrd-form-field[b-6sn3ptzeqj] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.wrd-form-field label[b-6sn3ptzeqj] {
    font-size: .78rem;
    color: var(--text-secondary);
    font-weight: 600;
    letter-spacing: 0.01em;
}

.wrd-drawer-actions[b-6sn3ptzeqj] {
    margin-top: auto;
    padding: var(--space-4, 1rem);
    border-top: 1px solid var(--border-subtle);
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2, .5rem);
}

.wrd-modal[b-6sn3ptzeqj] {
    position: fixed;
    z-index: 72;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(520px, calc(100vw - 2rem));
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg, 12px);
    padding: var(--space-5, 1.25rem);
}

.wrd-modal h3[b-6sn3ptzeqj] {
    margin: 0 0 var(--space-2, .5rem);
    font-size: 1.05rem;
}

.wrd-modal p[b-6sn3ptzeqj] {
    margin: 0;
    color: var(--text-secondary);
}

.wrd-modal-actions[b-6sn3ptzeqj] {
    margin-top: var(--space-4, 1rem);
    display: flex;
    justify-content: flex-end;
    gap: var(--space-2, .5rem);
}

.wrd-player-briefing[b-6sn3ptzeqj] {
    max-width: 980px;
}

.wrd-player-hero[b-6sn3ptzeqj],
.wrd-player-card[b-6sn3ptzeqj] {
    border: 1px solid rgba(148, 163, 184, 0.24);
    border-radius: 14px;
    padding: 1rem;
    background: linear-gradient(160deg, rgba(15, 23, 42, 0.92) 0%, rgba(2, 6, 23, 0.98) 100%);
    color: #e2e8f0;
}

.wrd-player-card[b-6sn3ptzeqj] {
    background: rgba(15, 23, 42, 0.68);
    border-color: rgba(148, 163, 184, 0.2);
}

/* Commissioner note callout — shown between hero and primary-action card */
.wrd-commissioner-note[b-6sn3ptzeqj] {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    background: var(--b9-surface-muted, rgba(148,163,184,0.07));
    border: 1px solid rgba(148,163,184,0.22);
    border-left: 3px solid var(--brand-soft, rgba(99,102,241,0.5));
    border-radius: 8px;
    padding: 0.65rem 0.9rem;
    font-size: 0.875rem;
    color: var(--b9-text-soft, #cbd5e1);
}
.wrd-commissioner-note .bi[b-6sn3ptzeqj] {
    color: var(--b9-text-soft, #64748b);
    font-size: 0.95rem;
    flex-shrink: 0;
    margin-top: 0.05rem;
}
.wrd-commissioner-note-text[b-6sn3ptzeqj] {
    margin: 0;
    line-height: 1.5;
}

.wrd-player-hero-head[b-6sn3ptzeqj] {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    align-items: flex-start;
    margin-bottom: .85rem;
}

.wrd-player-kicker[b-6sn3ptzeqj] {
    font-size: .74rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #93c5fd;
    font-weight: 700;
}

.wrd-player-title[b-6sn3ptzeqj] {
    margin: .12rem 0;
    font-size: 1.35rem;
    color: #f8fafc;
    font-weight: 800;
    line-height: 1.2;
}

.wrd-player-subtitle[b-6sn3ptzeqj] {
    margin: 0;
    color: #cbd5e1;
    font-size: .92rem;
}

.wrd-player-summary-line[b-6sn3ptzeqj] {
    margin: .45rem 0 0;
    color: #e0f2fe;
    font-size: .9rem;
    font-weight: 700;
    line-height: 1.4;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.wrd-player-status-chip[b-6sn3ptzeqj] {
    border-radius: 999px;
    padding: .25rem .65rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    border: 1px solid rgba(34, 197, 94, 0.55);
    color: #86efac;
    background: rgba(20, 83, 45, 0.32);
    white-space: nowrap;
}

.wrd-player-meta-grid[b-6sn3ptzeqj],
.wrd-player-summary-grid[b-6sn3ptzeqj],
.wrd-player-group-grid[b-6sn3ptzeqj] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .6rem;
}

.wrd-player-meta-item[b-6sn3ptzeqj] {
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 10px;
    padding: .52rem .6rem;
    background: rgba(15, 23, 42, 0.36);
}

.wrd-player-meta-label[b-6sn3ptzeqj] {
    display: block;
    color: #94a3b8;
    font-size: .72rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    font-weight: 700;
}

.wrd-player-meta-value[b-6sn3ptzeqj] {
    display: block;
    margin-top: .2rem;
    color: #f8fafc;
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.3;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.wrd-player-card-title[b-6sn3ptzeqj] {
    margin: 0 0 .4rem;
    color: #f8fafc;
    font-size: 1.02rem;
    font-weight: 800;
}

.wrd-player-card-copy[b-6sn3ptzeqj] {
    color: #cbd5e1;
    font-size: .86rem;
    margin: 0;
}

.wrd-player-note[b-6sn3ptzeqj] {
    margin-top: .75rem;
    color: #fde68a;
    font-size: .84rem;
}

.wrd-player-actions[b-6sn3ptzeqj] {
    margin-top: .65rem;
    display: flex;
    gap: .45rem;
    flex-wrap: wrap;
}

.wrd-player-actions-secondary .ui-btn[b-6sn3ptzeqj] {
    background: transparent;
}

.wrd-player-btn-disabled[b-6sn3ptzeqj] {
    opacity: .72;
    cursor: not-allowed;
}

.wrd-player-list-wrap[b-6sn3ptzeqj] {
    border: 1px solid rgba(148, 163, 184, 0.16);
    border-radius: 10px;
    padding: .65rem;
    background: rgba(15, 23, 42, 0.34);
    margin-top: .65rem;
}

.wrd-player-list-head[b-6sn3ptzeqj] {
    font-size: .72rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #93c5fd;
    font-weight: 700;
    margin-bottom: .35rem;
}

.wrd-player-list-item[b-6sn3ptzeqj] {
    padding: .35rem 0;
    border-top: 1px solid rgba(148, 163, 184, 0.14);
    color: #e2e8f0;
    font-size: .9rem;
}

.wrd-player-team-name[b-6sn3ptzeqj] {
    display: block;
    color: #f8fafc;
    font-weight: 700;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.wrd-player-team-members[b-6sn3ptzeqj] {
    display: block;
    margin-top: .12rem;
    color: #cbd5e1;
    font-size: .82rem;
    line-height: 1.35;
}

.wrd-player-list-item:first-of-type[b-6sn3ptzeqj] {
    border-top: 0;
    padding-top: 0;
}

@media (max-width: 960px) {
    .wrd-page[b-6sn3ptzeqj] {
        padding: 16px;
        gap: 12px;
    }

    .wrd-player-hero-head[b-6sn3ptzeqj] {
        flex-direction: column;
        align-items: flex-start;
    }

    .wrd-player-meta-grid[b-6sn3ptzeqj],
    .wrd-player-summary-grid[b-6sn3ptzeqj],
    .wrd-player-group-grid[b-6sn3ptzeqj] {
        grid-template-columns: 1fr;
    }

    .wrd-player-title[b-6sn3ptzeqj] {
        font-size: 1.2rem;
    }

    .wrd-player-actions-primary .ui-btn[b-6sn3ptzeqj],
    .wrd-player-actions-secondary .ui-btn[b-6sn3ptzeqj] {
        min-height: 44px;
    }

    .wrd-player-actions-primary .ui-btn[b-6sn3ptzeqj] {
        width: 100%;
        justify-content: center;
    }

    .wrd-player-actions-secondary[b-6sn3ptzeqj] {
        gap: .35rem;
    }

    .wrd-player-actions-secondary .ui-btn[b-6sn3ptzeqj] {
        flex: 1 1 calc(50% - .35rem);
        justify-content: center;
    }

    .wrd-moments-list[b-6sn3ptzeqj] {
        grid-template-columns: 1fr;
    }

    .wrd-overview-grid[b-6sn3ptzeqj],
    .wrd-two-col[b-6sn3ptzeqj],
    .wrd-card-list[b-6sn3ptzeqj] {
        grid-template-columns: 1fr;
    }

    .wrd-inline-form[b-6sn3ptzeqj] {
        grid-template-columns: 1fr;
    }

    .wrd-group-sub-item[b-6sn3ptzeqj] {
        flex-direction: column;
        align-items: flex-start;
    }

    .wrd-next-action[b-6sn3ptzeqj] {
        align-items: flex-start;
    }
}
/* /Components/Pages/Leagues/WeeklyRoundHeader.razor.rz.scp.css */
.wrd-header[b-kbn02na9rl] {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-4, 1rem);
    align-items: start;
}

.wrd-kicker[b-kbn02na9rl] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-muted);
    margin-bottom: var(--space-1, .25rem);
}

.wrd-title[b-kbn02na9rl] {
    margin: 0 0 var(--space-2, .5rem);
    font-size: 1.55rem;
}

.wrd-meta-line[b-kbn02na9rl] {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2, .5rem);
    color: var(--text-secondary);
    font-size: .87rem;
    margin-bottom: var(--space-2, .5rem);
}

.wrd-meta-line span[b-kbn02na9rl] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.wrd-header-actions[b-kbn02na9rl] {
    min-width: 280px;
}

@media (max-width: 980px) {
    .wrd-header[b-kbn02na9rl] {
        grid-template-columns: 1fr;
    }

    .wrd-header-actions[b-kbn02na9rl] {
        min-width: 0;
    }
}
/* /Components/Pages/Leagues/WeeklyRoundHeaderCompact.razor.rz.scp.css */
.wrhc[b-t2zutmvpeg] {
    padding: .9rem 1rem;
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    background: var(--bg-surface);
    box-shadow: var(--b9-card-shadow);
}

.wrhc-top[b-t2zutmvpeg] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    flex-wrap: wrap;
}

.wrhc-title[b-t2zutmvpeg] {
    margin: 0;
    font-size: 1.15rem;
    line-height: 1.2;
}

.wrhc-sub[b-t2zutmvpeg] {
    margin-top: .35rem;
    color: var(--text-secondary);
    font-size: .86rem;
    line-height: 1.35;
}
/* /Components/Pages/Leagues/WeeklyRoundStatusChips.razor.rz.scp.css */
.wrs-chips[b-ehwo90w4ah] {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
}
/* /Components/Pages/Leagues/WeeklyRoundStatusStrip.razor.rz.scp.css */
.wrs-strip[b-9w9au1jkhg] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
/* /Components/Pages/Leagues/WeeklyRoundStatusSummary.razor.rz.scp.css */
.wrd-status-grid[b-mro21l5n0r] {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3, .75rem);
}

.wrd-mini-card[b-mro21l5n0r] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1, .25rem);
}

.wrd-mini-label[b-mro21l5n0r] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
}

.wrd-mini-value[b-mro21l5n0r] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary);
}

.wrd-mini-link[b-mro21l5n0r],
.wrd-mini-sub[b-mro21l5n0r] {
    font-size: .78rem;
    color: var(--text-secondary);
}

@media (max-width: 900px) {
    .wrd-status-grid[b-mro21l5n0r] {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .wrd-status-grid[b-mro21l5n0r] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Leagues/WeeklyRoundTabNav.razor.rz.scp.css */
.wrd-tabs[b-y02aegg9cq] {
    display: flex;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
}

.wrd-tab[b-y02aegg9cq] {
    border: 1px solid var(--border-subtle);
    background: var(--bg-surface);
    color: var(--text-secondary);
    border-radius: var(--radius-md, 10px);
    padding: .5rem .75rem;
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .82rem;
    font-weight: 600;
}

.wrd-tab--active[b-y02aegg9cq] {
    border-color: var(--brand);
    background: color-mix(in srgb, var(--brand) 18%, var(--bg-elevated));
    color: var(--text-primary);
}
/* /Components/Pages/Leagues/WeeklyScorecards.razor.rz.scp.css */
.spc-topbar[b-bc91uhphhy] {
    max-width: 1180px;
    margin: 0.9rem auto 0.25rem;
    padding: 0 1rem;
}

.spc-wrap[b-bc91uhphhy] {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0.65rem 1rem 2rem;
}

.spc-header-card[b-bc91uhphhy] {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    padding: 1rem;
    box-shadow: var(--b9-card-shadow);
}

.spc-header-row[b-bc91uhphhy] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.8rem;
}

.spc-header-row h1[b-bc91uhphhy] {
    margin: 0;
    font-size: 1.35rem;
    color: var(--text-primary);
}

.spc-header-row p[b-bc91uhphhy] {
    margin: 0.2rem 0 0;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.spc-ready-badge[b-bc91uhphhy] {
    font-size: 0.8rem;
    padding: 0.45rem 0.6rem;
}

.spc-kpis[b-bc91uhphhy] {
    margin-top: 0.85rem;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.6rem;
}

.spc-kpi[b-bc91uhphhy] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    padding: 0.65rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.12rem;
}

.spc-kpi-label[b-bc91uhphhy] {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--text-muted);
}

.spc-kpi-value[b-bc91uhphhy] {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-primary);
}

.spc-metadata[b-bc91uhphhy] {
    margin-top: 0.45rem;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.spc-metadata--qr-on[b-bc91uhphhy] {
    color: var(--success, #22c55e);
}

.spc-metadata--qr-upgrade[b-bc91uhphhy] {
    margin-top: 0.75rem;
    background: var(--brand-soft, rgba(34,197,94,.08));
    border: 1px solid var(--brand-soft, rgba(34,197,94,.2));
    border-radius: 8px;
    padding: 0.6rem 0.9rem;
    color: var(--text-secondary, #cbd5e1);
    font-size: 0.8125rem;
    line-height: 1.5;
}

.spc-upgrade-link[b-bc91uhphhy] {
    display: inline-block;
    margin-top: 0.3rem;
    color: var(--b9-primary-text);
    font-weight: 600;
    text-decoration: none;
}

.spc-actions[b-bc91uhphhy] {
    margin-top: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.spc-hero-panel[b-bc91uhphhy] {
    margin-top: 0.9rem;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    padding: 0.85rem;
    box-shadow: var(--b9-card-shadow);
}

.spc-panel-head h3[b-bc91uhphhy] {
    margin: 0;
    color: var(--text-primary);
    font-size: 1rem;
}

.spc-panel-head p[b-bc91uhphhy] {
    margin: 0.15rem 0 0.6rem;
    font-size: 0.83rem;
    color: var(--text-secondary);
}

.spc-preview-frame[b-bc91uhphhy] {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    overflow: hidden;
    background: var(--bg-surface);
    height: 620px;
}

.spc-preview-frame iframe[b-bc91uhphhy] {
    width: 100%;
    height: 100%;
    border: 0;
}

.spc-empty[b-bc91uhphhy] {
    min-height: 260px;
    border: 1px dashed var(--border-default);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-secondary);
    font-size: 0.9rem;
}

.spc-admin-accordion[b-bc91uhphhy] {
    margin-top: 0.9rem;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    box-shadow: var(--b9-card-shadow);
}

.spc-admin-accordion summary[b-bc91uhphhy] {
    cursor: pointer;
    padding: 0.8rem 0.95rem;
    user-select: none;
    font-weight: 600;
    color: var(--text-primary);
}

.spc-admin-body[b-bc91uhphhy] {
    border-top: 1px solid var(--border-subtle);
    padding: 0.85rem 0.95rem 0.95rem;
}

.spc-admin-list[b-bc91uhphhy] {
    margin: 0;
    display: grid;
    gap: 0.55rem;
}

.spc-admin-list div[b-bc91uhphhy] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    padding: 0.5rem 0.65rem;
}

.spc-admin-list dt[b-bc91uhphhy] {
    margin: 0;
    font-size: 0.74rem;
    text-transform: uppercase;
    color: var(--text-muted);
}

.spc-admin-list dd[b-bc91uhphhy] {
    margin: 0.15rem 0 0;
    font-size: 0.88rem;
    color: var(--text-primary);
    font-weight: 600;
}

.spc-empty-sm[b-bc91uhphhy] {
    border: 1px dashed var(--border-default);
    border-radius: 10px;
    padding: 0.75rem;
    text-align: center;
    color: var(--text-secondary);
    font-size: 0.88rem;
}

.spc-state[b-bc91uhphhy] {
    min-height: 42vh;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    color: var(--text-secondary);
}

.spc-overlay[b-bc91uhphhy] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.45);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    z-index: 1080;
}

.spc-confirm-card[b-bc91uhphhy] {
    width: min(32rem, 100%);
}

@media (max-width: 980px) {
    .spc-header-row[b-bc91uhphhy] {
        flex-direction: column;
        align-items: flex-start;
    }

    .spc-kpis[b-bc91uhphhy] {
        grid-template-columns: 1fr;
    }

    .spc-preview-frame[b-bc91uhphhy] {
        height: 440px;
    }
}

/* Transparent overlay that closes the "More" menu on an outside click.
   Sits just below Bootstrap's .dropdown-menu (z-index 1000) so the menu stays clickable. */
.spc-dropdown-backdrop[b-bc91uhphhy] {
    position: fixed;
    inset: 0;
    z-index: 999;
    background: transparent;
}

@media print {
    .no-print[b-bc91uhphhy] {
        display: none !important;
    }
}

/* ── "More" menu alignment without Bootstrap JS ────────────────────────
   The app ships Bootstrap CSS only; .dropdown-menu-end needs Popper's
   [data-bs-popper] attribute to apply right-alignment, so without it the
   menu opens LEFT-edge-aligned and runs past the right of narrow screens.
   Right-align it to its .dropdown parent and cap the width to the phone
   viewport. */
.dropdown .dropdown-menu.show[b-bc91uhphhy] {
    right: 0;
    left: auto;
    max-width: min(92vw, 320px);
}
/* /Components/Pages/Leagues/WeeklyWorkflowAccordion.razor.rz.scp.css */
.wwa[b-8v32pubbhw] {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}
/* /Components/Pages/Leagues/WeeklyWorkflowStep.razor.rz.scp.css */
.wwstep[b-mh21rfbpxw] {
    padding: 16px;
    border-radius: 12px;
}

.wwstep-head[b-mh21rfbpxw] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    border: 0;
    background: transparent;
    color: inherit;
    padding: 0;
    text-align: left;
}

.wwstep-left[b-mh21rfbpxw] {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
}

.wwstep-num[b-mh21rfbpxw] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--text-muted);
}

.wwstep-title[b-mh21rfbpxw] {
    font-size: 15px;
}

.wwstep-right[b-mh21rfbpxw] {
    display: flex;
    align-items: center;
    gap: 8px;
}

.wwstep-summary[b-mh21rfbpxw] {
    margin-top: 8px;
    color: var(--text-secondary);
    font-size: 13px;
}

.wwstep-body[b-mh21rfbpxw] {
    margin-top: 12px;
}
/* /Components/Pages/Leagues/WeeklyWorkflowStepCard.razor.rz.scp.css */
.wwsc[b-djz5r600dc] {
    padding: .7rem .8rem;
}

.wwsc-head[b-djz5r600dc] {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    border: 0;
    background: transparent;
    color: inherit;
    padding: 0;
    text-align: left;
}

.wwsc-left[b-djz5r600dc] {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    flex-wrap: wrap;
}

.wwsc-step[b-djz5r600dc] {
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--text-muted);
}

.wwsc-title[b-djz5r600dc] {
    font-size: .96rem;
}

.wwsc-right[b-djz5r600dc] {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.wwsc-summary[b-djz5r600dc] {
    margin-top: .45rem;
    color: var(--text-secondary);
    font-size: .84rem;
}

.wwsc-body[b-djz5r600dc] {
    margin-top: .65rem;
}
/* /Components/Pages/Leagues/WorkflowStepCard.razor.rz.scp.css */
.wsc[b-gu8fx8h12z] {
    padding: var(--space-4, 1rem);
    display: flex;
    flex-direction: column;
    gap: var(--space-3, .75rem);
}

.wsc-head[b-gu8fx8h12z] {
    display: flex;
    justify-content: space-between;
    gap: var(--space-3, .75rem);
    flex-wrap: wrap;
}

.wsc-left[b-gu8fx8h12z] {
    display: flex;
    gap: var(--space-3, .75rem);
}

.wsc-step[b-gu8fx8h12z] {
    width: 32px;
    height: 32px;
    border-radius: 999px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: .68rem;
    font-weight: 700;
    color: var(--text-secondary);
    flex-shrink: 0;
}

.wsc-title[b-gu8fx8h12z] {
    margin: 0;
    font-size: 1.05rem;
}

.wsc-desc[b-gu8fx8h12z] {
    margin: .15rem 0 0;
    color: var(--text-secondary);
    font-size: .84rem;
}

.wsc-right[b-gu8fx8h12z] {
    display: flex;
    gap: var(--space-2, .5rem);
    align-items: center;
}

.wsc-actions[b-gu8fx8h12z] {
    display: flex;
    gap: var(--space-2, .5rem);
    flex-wrap: wrap;
}

.wsc-body[b-gu8fx8h12z] {
    border-top: 1px solid var(--border-subtle);
    padding-top: var(--space-3, .75rem);
}
/* /Components/Pages/MyDashboard.razor.rz.scp.css */
/* ================================================================
   PLAYER DASHBOARD (/my)
   ================================================================ */

.pdb-loading[b-7m3d3vvvo2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 5rem 1rem;
    color: var(--text-muted, #64748b);
}

.pfeed-page[b-7m3d3vvvo2] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
}

.pfeed-today[b-7m3d3vvvo2],
.pfeed-section[b-7m3d3vvvo2] {
    border: 1px solid rgba(148, 163, 184, 0.18);
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.82) 0%, rgba(2, 6, 23, 0.92) 100%);
    border-radius: 14px;
    padding: 1rem;
}

.pfeed-today-head[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 0.85rem;
}

.pfeed-avatar[b-7m3d3vvvo2] {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(145deg, #16a34a 0%, #15803d 100%);
    color: #f8fafc;
    font-weight: 800;
    letter-spacing: 0.02em;
    overflow: hidden;
    flex-shrink: 0;
}
.pfeed-avatar--photo[b-7m3d3vvvo2] {
    background: transparent;
}

.pfeed-title[b-7m3d3vvvo2] {
    margin: 0;
    font-size: 1.1rem;
    color: #f8fafc;
    font-weight: 800;
}

.pfeed-sub[b-7m3d3vvvo2] {
    margin: 0;
    color: #94a3b8;
    font-size: 0.92rem;
}

.pfeed-today-card[b-7m3d3vvvo2] {
    background: rgba(15, 118, 110, 0.16);
    border: 1px solid rgba(20, 184, 166, 0.35);
    border-radius: 12px;
    padding: 0.95rem;
}

.pfeed-today-meta[b-7m3d3vvvo2] {
    font-size: 0.76rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #5eead4;
    font-weight: 700;
    margin-bottom: 0.35rem;
}

.pfeed-today-title[b-7m3d3vvvo2] {
    margin: 0;
    font-size: 1.18rem;
    color: #f8fafc;
    font-weight: 800;
}

.pfeed-today-note[b-7m3d3vvvo2] {
    margin: 0.45rem 0 0;
    color: #cbd5e1;
    line-height: 1.5;
    font-size: 0.95rem;
}

.pfeed-today-chips[b-7m3d3vvvo2] {
    margin-top: 0.75rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.pfeed-chip[b-7m3d3vvvo2] {
    border: 1px solid rgba(94, 234, 212, 0.32);
    border-radius: 999px;
    padding: 0.3rem 0.55rem;
    color: #ccfbf1;
    font-size: 0.8rem;
    background: rgba(15, 23, 42, 0.45);
}

.pfeed-today-actions[b-7m3d3vvvo2] {
    margin-top: 0.85rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.pfeed-btn-primary[b-7m3d3vvvo2],
.pfeed-btn-secondary[b-7m3d3vvvo2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border-radius: 10px;
    padding: 0.55rem 0.9rem;
    min-height: 48px;
    font-weight: 700;
    font-size: var(--font-size-base, 1rem);
    line-height: 1.25;
}

/* X05 (UX audit 2026-09-06): the page's main action is the brand blue, the same colour the
   app and the ops shell use for theirs. Green is a status colour here, never a button fill. */
.pfeed-btn-primary[b-7m3d3vvvo2] {
    background: var(--b9-primary);
    color: var(--player-text-inverse);
    border: 1px solid var(--b9-primary-active);
}

.pfeed-btn-primary:hover[b-7m3d3vvvo2] {
    background: var(--b9-primary-hover);
    color: var(--player-text-inverse);
}

/* ================================================================
   The Today card in DAYLIGHT
   ----------------------------------------------------------------
   The Today/section cards are painted with a hardcoded near-opaque dark gradient and inked with
   dark-only literals (#f8fafc titles, #94a3b8 subs, #cbd5e1 notes, #5eead4 teal). Every one of
   those PASSES a contrast probe in light mode -- light text on a dark slab always does -- which is
   why the audit harness never flagged this card. It just looked wrong: a black hero stranded on a
   white page, directly above a correctly-light "Back9Ops app" card.

   Only the light half is restated here, so the shipped dark look is untouched by construction
   rather than by inspection. The teal stays: it is how the card says "this is live right now", and
   flattening it to grey would cost the page its one moment of urgency. Teal-300 (#5eead4) reads
   1.18:1 on the light tint, so daylight gets teal-800 (#115e59) -- 6.06:1 on the tint it sits on,
   7.58:1 on the card.
   ================================================================ */
html[data-theme="light"] .pfeed-today[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-section[b-7m3d3vvvo2] {
    background: var(--b9-card-bg);
    border-color: var(--b9-card-border);
}

html[data-theme="light"] .pfeed-title[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-today-title[b-7m3d3vvvo2] {
    color: var(--player-text-primary);
}

html[data-theme="light"] .pfeed-sub[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-today-note[b-7m3d3vvvo2] {
    color: var(--player-text-secondary);
}

html[data-theme="light"] .pfeed-today-meta[b-7m3d3vvvo2] {
    color: #115E59;
}

html[data-theme="light"] .pfeed-chip[b-7m3d3vvvo2] {
    background: rgba(15, 118, 110, 0.10);
    border-color: rgba(15, 118, 110, 0.30);
    color: #115E59;
}

/* The secondary action is a dark slate slab with a cyan edge -- correct on the dark hero, but on
   the light card it reads as a second, heavier button competing with the blue primary. In daylight
   it becomes what a secondary should be: the card's own surface, teal edge, teal ink (7.58:1). */
html[data-theme="light"] .pfeed-btn-secondary[b-7m3d3vvvo2] {
    background: var(--b9-card-bg);
    color: #115E59;
    border-color: rgba(15, 118, 110, 0.45);
}

html[data-theme="light"] .pfeed-btn-secondary:hover[b-7m3d3vvvo2] {
    background: rgba(15, 118, 110, 0.08);
    border-color: rgba(15, 118, 110, 0.70);
    color: #134E4A;
}

/* The rest of the feed. .pfeed-section is the same dark slab as .pfeed-today, and everything
   inside it -- the feed rows, the stat tiles, the upcoming card, the quick actions, the empty
   states -- is inked for that slab. Converting the shell without these turned the page white
   underneath grey-on-grey text: the harness went from 0 failures to 42 on this page alone, all of
   them here. Light needs the whole family or none of it. */
html[data-theme="light"] .pfeed-section-title[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-stat-label[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-empty[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-action-disabled[b-7m3d3vvvo2] {
    color: var(--player-text-secondary);
}

html[data-theme="light"] .pfeed-feed-item[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-stat-card[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-action[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-empty[b-7m3d3vvvo2] {
    background: var(--bg-elevated);
    border-color: var(--b9-card-border);
}

html[data-theme="light"] .pfeed-feed-item:hover[b-7m3d3vvvo2] {
    background: var(--bg-raised);
    border-color: rgba(15, 118, 110, 0.45);
}

html[data-theme="light"] .pfeed-feed-icon[b-7m3d3vvvo2] {
    background: var(--bg-raised);
    color: var(--player-text-secondary);
}

html[data-theme="light"] .pfeed-feed-title[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-stat-value[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-upcoming-name[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-action[b-7m3d3vvvo2] {
    color: var(--player-text-primary);
}

html[data-theme="light"] .pfeed-feed-text[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-upcoming-meta[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-empty-note[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-action-disabled small[b-7m3d3vvvo2] {
    color: var(--player-text-secondary);
}

/* The action links keep their "this is a link" blue; the dark theme's pale cyan is 1.53:1 once
   the row turns light. */
html[data-theme="light"] .pfeed-feed-link[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-inline-link[b-7m3d3vvvo2] {
    color: var(--b9-link);
    border-color: color-mix(in srgb, var(--b9-link) 45%, transparent);
}

html[data-theme="light"] .pfeed-feed-link:hover[b-7m3d3vvvo2],
html[data-theme="light"] .pfeed-inline-link:hover[b-7m3d3vvvo2] {
    color: var(--b9-link-hover);
}

html[data-theme="light"] .pfeed-stat-id[b-7m3d3vvvo2] {
    color: var(--b9-indigo-text);
}

html[data-theme="light"] .pfeed-upcoming-card[b-7m3d3vvvo2] {
    background: rgba(14, 116, 144, 0.10);
    border-color: rgba(14, 116, 144, 0.30);
}

html[data-theme="light"] .pfeed-action:hover[b-7m3d3vvvo2] {
    border-color: rgba(15, 118, 110, 0.60);
    color: var(--player-text-primary);
}

/* X13: the Player+ promo is an invitation, not a live event — plain surface, no hero tint, and
   its button is the page's secondary so the Today card keeps the one blue primary. */
.pfeed-promo-card[b-7m3d3vvvo2] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    padding: 0.95rem;
}

.pfeed-promo-card .pfeed-today-meta[b-7m3d3vvvo2] {
    color: var(--text-muted);
}

.pfeed-btn-secondary[b-7m3d3vvvo2] {
    background: rgba(15, 23, 42, 0.78);
    color: #f8fafc;
    border: 2px solid rgba(103, 232, 249, 0.72);
    font-weight: 600;
}

.pfeed-btn-secondary:hover[b-7m3d3vvvo2] {
    background: rgba(30, 41, 59, 0.9);
    border-color: rgba(125, 211, 252, 0.95);
    color: #ffffff;
}

.pfeed-btn-secondary:focus-visible[b-7m3d3vvvo2] {
    outline: 2px solid #7dd3fc;
    outline-offset: 2px;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.28);
}

@media (max-width: 479.98px) {
    .pfeed-today-actions[b-7m3d3vvvo2] {
        flex-direction: column;
        align-items: stretch;
    }

    .pfeed-btn-primary[b-7m3d3vvvo2],
    .pfeed-btn-secondary[b-7m3d3vvvo2] {
        width: 100%;
        justify-content: center;
        white-space: normal;
        text-align: center;
    }
}

.pfeed-section-title[b-7m3d3vvvo2] {
    margin: 0;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #94a3b8;
    font-weight: 700;
}

.pfeed-feed-list[b-7m3d3vvvo2] {
    margin-top: 0.7rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.pfeed-feed-item[b-7m3d3vvvo2] {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    border-radius: 10px;
    padding: 0.65rem 0.7rem;
    border: 1px solid rgba(148, 163, 184, 0.2);
    background: rgba(15, 23, 42, 0.4);
}

.pfeed-feed-item:hover[b-7m3d3vvvo2] {
    border-color: rgba(94, 234, 212, 0.4);
    background: rgba(15, 23, 42, 0.62);
}

.pfeed-tone-live[b-7m3d3vvvo2] { border-color: rgba(34, 197, 94, 0.45); }
.pfeed-tone-info[b-7m3d3vvvo2] { border-color: rgba(56, 189, 248, 0.45); }
.pfeed-tone-comm[b-7m3d3vvvo2] { border-color: rgba(168, 85, 247, 0.4); }
.pfeed-tone-up[b-7m3d3vvvo2] { border-color: rgba(245, 158, 11, 0.45); }
.pfeed-tone-result[b-7m3d3vvvo2] { border-color: rgba(250, 204, 21, 0.45); }

.pfeed-feed-icon[b-7m3d3vvvo2] {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 23, 42, 0.75);
    color: #e2e8f0;
}

.pfeed-feed-body[b-7m3d3vvvo2] {
    min-width: 0;
    flex: 1;
}

.pfeed-feed-title[b-7m3d3vvvo2] {
    font-weight: 700;
    color: #f8fafc;
    font-size: 0.9rem;
    line-height: 1.35;
}

.pfeed-feed-text[b-7m3d3vvvo2] {
    color: #e2e8f0;
    font-size: 0.875rem;
    line-height: 1.45;
    margin-top: 0.1rem;
}

.pfeed-feed-link[b-7m3d3vvvo2],
.pfeed-inline-link[b-7m3d3vvvo2] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    min-width: 48px;
    padding: 0.55rem 0.9rem;
    border: 1px solid rgba(125, 211, 252, 0.5);
    border-radius: 8px;
    color: #7dd3fc;
    font-weight: 700;
    font-size: var(--font-size-base, 1rem);
    line-height: 1.25;
    text-decoration: none;
    white-space: nowrap;
}

.pfeed-feed-link:hover[b-7m3d3vvvo2],
.pfeed-inline-link:hover[b-7m3d3vvvo2] {
    color: #bae6fd;
}

.pfeed-stats-grid[b-7m3d3vvvo2] {
    margin-top: 0.7rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
}

.pfeed-stat-card[b-7m3d3vvvo2] {
    border: 1px solid rgba(148, 163, 184, 0.2);
    border-radius: 10px;
    padding: 0.7rem;
    background: rgba(15, 23, 42, 0.45);
}

.pfeed-stat-label[b-7m3d3vvvo2] {
    color: #94a3b8;
    font-size: 0.74rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-weight: 700;
}

.pfeed-stat-value[b-7m3d3vvvo2] {
    margin-top: 0.3rem;
    color: #f8fafc;
    font-size: 1.05rem;
    font-weight: 800;
}

.pfeed-stat-id[b-7m3d3vvvo2] {
    font-family: "Courier New", monospace;
    font-size: 0.76rem;
    letter-spacing: 0.04em;
    color: #a5b4fc;
}

.pfeed-section-row[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pfeed-upcoming-card[b-7m3d3vvvo2] {
    margin-top: 0.7rem;
    border-radius: 10px;
    padding: 0.8rem;
    border: 1px solid rgba(56, 189, 248, 0.35);
    background: rgba(14, 116, 144, 0.15);
}

.pfeed-upcoming-name[b-7m3d3vvvo2] {
    color: #f8fafc;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.3;
}

.pfeed-upcoming-meta[b-7m3d3vvvo2] {
    margin-top: 0.25rem;
    color: #cbd5e1;
    font-size: 0.86rem;
}

.pfeed-actions-grid[b-7m3d3vvvo2] {
    margin-top: 0.7rem;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

.pfeed-action[b-7m3d3vvvo2] {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.65rem 0.75rem;
    min-height: 56px;
    border-radius: 10px;
    text-decoration: none;
    border: 1px solid rgba(148, 163, 184, 0.28);
    color: #e2e8f0;
    background: rgba(15, 23, 42, 0.42);
    font-weight: 700;
    font-size: var(--font-size-lg, 18px);
    line-height: 1.2;
}

.pfeed-action:hover[b-7m3d3vvvo2] {
    border-color: rgba(22, 163, 74, 0.7);
    color: #f8fafc;
}

.pfeed-action-disabled[b-7m3d3vvvo2] {
    border-style: dashed;
    color: #94a3b8;
    background: rgba(15, 23, 42, 0.22);
    cursor: not-allowed;
}

.pfeed-action-disabled small[b-7m3d3vvvo2] {
    margin-top: 0.2rem;
    font-size: 0.7rem;
    font-weight: 600;
    color: #64748b;
    text-align: center;
}

.pfeed-empty[b-7m3d3vvvo2] {
    margin-top: 0.65rem;
    border-radius: 10px;
    border: 1px dashed rgba(148, 163, 184, 0.35);
    background: rgba(15, 23, 42, 0.35);
    padding: 0.8rem;
    color: #94a3b8;
    font-size: 0.9rem;
}

.pfeed-empty p[b-7m3d3vvvo2] {
    margin: 0;
}

.pfeed-empty-actions[b-7m3d3vvvo2] {
    margin-top: 0.55rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.pfeed-empty-note[b-7m3d3vvvo2] {
    margin-top: 0.55rem !important;
    color: #cbd5e1;
    font-size: 0.82rem;
}

@media (min-width: 992px) {
    .pfeed-page[b-7m3d3vvvo2] {
        padding: 1.25rem;
        gap: 1.1rem;
    }

    .pfeed-today[b-7m3d3vvvo2],
    .pfeed-section[b-7m3d3vvvo2] {
        padding: 1.15rem;
    }

    .pfeed-stats-grid[b-7m3d3vvvo2],
    .pfeed-actions-grid[b-7m3d3vvvo2] {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* ── Tonight's Round / Active League Scoring Card ── */
.pdb-tonight-card[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: var(--success-soft);
    border: 2px solid rgba(34,197,94,0.45);
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
}

.pdb-tonight-bar[b-7m3d3vvvo2] {
    width: 4px;
    min-height: 48px;
    background: var(--success-text);
    border-radius: 2px;
    flex-shrink: 0;
}

.pdb-tonight-body[b-7m3d3vvvo2] {
    flex: 1;
    min-width: 0;
}

.pdb-tonight-label[b-7m3d3vvvo2] {
    margin-bottom: .25rem;
}

.pdb-tonight-title[b-7m3d3vvvo2] {
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: .2rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pdb-tonight-sub[b-7m3d3vvvo2] {
    font-size: .85rem;
    color: var(--success-text);
}

.pdb-tonight-actions[b-7m3d3vvvo2] {
    display: flex;
    gap: .5rem;
    flex-shrink: 0;
    flex-wrap: wrap;
}

.pdb-tonight-btn-primary[b-7m3d3vvvo2] {
    display: inline-flex;
    align-items: center;
    padding: .6rem 1.25rem;
    background: #16a34a;
    color: #fff;
    border-radius: 8px;
    font-weight: 700;
    font-size: .9rem;
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s;
}

.pdb-tonight-btn-primary:hover[b-7m3d3vvvo2] {
    background: #15803d;
    color: #fff;
}

.pdb-tonight-btn-secondary[b-7m3d3vvvo2] {
    display: inline-flex;
    align-items: center;
    padding: .6rem 1rem;
    background: transparent;
    color: var(--success-text);
    border: 1.5px solid rgba(34,197,94,0.45);
    border-radius: 8px;
    font-size: .875rem;
    text-decoration: none;
    white-space: nowrap;
}

.pdb-tonight-btn-secondary:hover[b-7m3d3vvvo2] {
    background: var(--success-soft);
    color: var(--success-text);
}

/* ── Unlinked state ── */
.pdb-unlinked[b-7m3d3vvvo2] {
    max-width: 480px;
    margin: 4rem auto;
    text-align: center;
    padding: 0 1.5rem;
}

.pdb-unlinked-icon[b-7m3d3vvvo2] {
    font-size: 3.5rem;
    color: var(--text-muted, #64748b);
    margin-bottom: 1.25rem;
}

.pdb-unlinked-title[b-7m3d3vvvo2] {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin-bottom: 0.75rem;
}

.pdb-unlinked-sub[b-7m3d3vvvo2] {
    font-size: 0.9375rem;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

/* Pending join request banners */
.pdb-pending-requests[b-7m3d3vvvo2] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
    width: 100%;
    max-width: 460px;
}

.pdb-pending-request-item[b-7m3d3vvvo2] {
    display: flex;
    align-items: flex-start;
    gap: 0.375rem;
    font-size: 0.875rem;
    padding: 0.625rem 0.875rem;
    background: rgba(234, 179, 8, 0.1);
    border: 1px solid rgba(234, 179, 8, 0.25);
    border-radius: 8px;
    color: #fbbf24;
    line-height: 1.5;
    text-align: left;
}

.pdb-pending-request-item i[b-7m3d3vvvo2] {
    margin-top: 1px;
    flex-shrink: 0;
}

.pdb-unlinked-steps[b-7m3d3vvvo2] {
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
    text-align: left;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.07));
    border-radius: 12px;
    padding: 1.25rem 1.25rem;
    margin-bottom: 1.25rem;
}

.pdb-unlinked-step[b-7m3d3vvvo2] {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    font-size: 0.9rem;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.5;
}

.pdb-unlinked-step-num[b-7m3d3vvvo2] {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 1px;
}

.pdb-unlinked-hint[b-7m3d3vvvo2] {
    font-size: 0.875rem;
    color: var(--text-muted, #64748b);
}

.pdb-link[b-7m3d3vvvo2] {
    /* Contrast-safe link token, not brand-fill (see .auth-forgot-link note). */
    color: var(--b9-link);
    text-decoration: none;
}

.pdb-link:hover[b-7m3d3vvvo2] {
    text-decoration: underline;
}

/* ── Player header ── */
.pdb-header[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem 1.25rem 1rem;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}

.pdb-avatar[b-7m3d3vvvo2] {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-size: 1.25rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
    overflow: hidden;
}
.pdb-avatar--photo[b-7m3d3vvvo2] {
    background: transparent;
}

.pdb-header-info[b-7m3d3vvvo2] {
    flex: 1;
    min-width: 0;
}

.pdb-name[b-7m3d3vvvo2] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin: 0 0 0.25rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pdb-org[b-7m3d3vvvo2] {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
}

.pdb-org-link[b-7m3d3vvvo2] {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    text-decoration: none;
    border-radius: 5px;
    padding: 0.15rem 0.3rem;
    margin: -0.15rem -0.3rem;
    transition: background 0.15s, color 0.15s;
}

.pdb-org-link:hover[b-7m3d3vvvo2] {
    color: var(--b9-primary-text);
    background: rgba(22, 163, 74, 0.08);
}

.pdb-org-ext[b-7m3d3vvvo2] {
    font-size: 0.65rem;
    opacity: 0.6;
}

.pdb-b9id-chip[b-7m3d3vvvo2] {
    display: inline-flex;
    align-items: center;
    margin-top: 0.35rem;
    font-size: 0.72rem;
    font-weight: 600;
    font-family: 'Courier New', monospace;
    letter-spacing: 0.05em;
    padding: 0.15rem 0.55rem;
    background: rgba(99, 102, 241, 0.12);
    border: 1px solid rgba(99, 102, 241, 0.25);
    border-radius: 999px;
    color: #818cf8;
    cursor: default;
    user-select: all;
}

.pdb-hcp-chip[b-7m3d3vvvo2] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.5rem 0.875rem;
    background: rgba(22, 163, 74, 0.12);
    border: 1px solid rgba(22, 163, 74, 0.25);
    border-radius: 10px;
    flex-shrink: 0;
}

.pdb-hcp-label[b-7m3d3vvvo2] {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--b9-primary-text);
}

.pdb-hcp-value[b-7m3d3vvvo2] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    line-height: 1.2;
}

/* ── Sections ── */
.pdb-section[b-7m3d3vvvo2] {
    padding: 1.25rem 1.25rem 0.5rem;
}

.pdb-section-title[b-7m3d3vvvo2] {
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted, #64748b);
    margin-bottom: 0.875rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pdb-section-count[b-7m3d3vvvo2] {
    font-size: 0.8125rem;
    font-weight: 600;
    background: rgba(255,255,255,0.08);
    padding: 0.1em 0.5em;
    border-radius: 999px;
    color: var(--text-secondary, #94a3b8);
}

/* ── Multi-org section cards ── */
.pdb-org-section-list[b-7m3d3vvvo2] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.pdb-org-section-card[b-7m3d3vvvo2] {
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.07));
    border-radius: 10px;
    padding: 0.875rem 1rem;
}

.pdb-osc-header[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.pdb-osc-name[b-7m3d3vvvo2] {
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--text-primary, #f1f5f9);
    text-decoration: none;
}
.pdb-osc-name:hover[b-7m3d3vvvo2] { color: var(--b9-primary-text); }

.pdb-osc-chips[b-7m3d3vvvo2] {
    display: flex;
    gap: 0.375rem;
    flex-wrap: wrap;
}

.pdb-osc-chip[b-7m3d3vvvo2] {
    font-size: 0.7rem;
    font-weight: 600;
    padding: 0.15rem 0.5rem;
    background: rgba(255,255,255,0.07);
    border-radius: 999px;
    color: var(--text-secondary, #94a3b8);
}
.pdb-osc-chip-active[b-7m3d3vvvo2] {
    background: rgba(239,68,68,0.12);
    color: #f87171;
    display: flex;
    align-items: center;
}
.pdb-osc-chip-muted[b-7m3d3vvvo2] { opacity: .6; }

.pdb-osc-events[b-7m3d3vvvo2] {
    margin-top: 0.625rem;
    border-top: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    padding-top: 0.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.pdb-osc-event-row[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.825rem;
}

.pdb-osc-event-dot[b-7m3d3vvvo2] {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    background: var(--text-muted, #64748b);
}
.pdb-bar--active.pdb-osc-event-dot[b-7m3d3vvvo2] { background: #f87171; }
.pdb-bar--open.pdb-osc-event-dot[b-7m3d3vvvo2]   { background: var(--b9-primary, #16a34a); }

.pdb-osc-event-name[b-7m3d3vvvo2] {
    color: var(--text-secondary, #94a3b8);
    text-decoration: none;
}
.pdb-osc-event-name:hover[b-7m3d3vvvo2] { color: var(--text-primary, #f1f5f9); }

/* ── Empty state ── */
.pdb-empty[b-7m3d3vvvo2] {
    text-align: center;
    padding: 2.5rem 1rem;
    background: rgba(255,255,255,0.03);
    border-radius: 12px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}

.pdb-empty-icon[b-7m3d3vvvo2] {
    font-size: 2.5rem;
    color: var(--text-muted, #64748b);
    display: block;
    margin-bottom: 0.75rem;
}

.pdb-empty-msg[b-7m3d3vvvo2] {
    font-size: 0.9375rem;
    color: var(--text-secondary, #94a3b8);
    margin: 0;
}

/* ── Event list ── */
.pdb-event-list[b-7m3d3vvvo2] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.pdb-event-card[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.875rem 1rem;
    background: var(--bg-card, rgba(255,255,255,0.04));
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    border-radius: 10px;
    transition: background 0.15s;
}

.pdb-event-card:hover[b-7m3d3vvvo2] {
    background: rgba(255,255,255,0.06);
}

.pdb-ec-left[b-7m3d3vvvo2] {
    flex-shrink: 0;
    text-align: center;
    min-width: 44px;
}

.pdb-ec-date[b-7m3d3vvvo2] {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--b9-primary-text);
}

.pdb-ec-body[b-7m3d3vvvo2] {
    flex: 1;
    min-width: 0;
}

.pdb-ec-name[b-7m3d3vvvo2] {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
    text-decoration: none;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.3rem;
}

.pdb-ec-name:hover[b-7m3d3vvvo2] {
    text-decoration: underline;
}

.pdb-ec-meta[b-7m3d3vvvo2] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.pdb-ec-format[b-7m3d3vvvo2] {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
}

.pdb-ec-actions[b-7m3d3vvvo2] {
    flex-shrink: 0;
}

/* ── Past events hint ── */
.pdb-past-hint[b-7m3d3vvvo2] {
    font-size: 0.9rem;
    color: var(--text-secondary, #94a3b8);
}

.pdb-link[b-7m3d3vvvo2] {
    /* Contrast-safe link token, not brand-fill (see .auth-forgot-link note). */
    color: var(--b9-link);
    text-decoration: none;
    font-weight: 500;
}

.pdb-link:hover[b-7m3d3vvvo2] {
    text-decoration: underline;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.pfeed-section-title--compact[b-7m3d3vvvo2] { font-size: 0.95rem; }
/* /Components/Pages/MyInbox.razor.rz.scp.css */
/* Moved from a page-embedded <style> block (audit Batch D): scoped to this component,
   font sizes converted px→rem, and hardcoded colors replaced with brand tokens so both
   themes render correctly (the status-icon colors now flip with [data-theme]). */

/* ── Inbox layout ────────────────────────────────────────────────── */
.inbox-page[b-x1d3shtd0m]      { max-width:720px; margin:0 auto; padding:24px 16px 48px; }
.inbox-header[b-x1d3shtd0m]    { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; gap:12px; flex-wrap:wrap; }
.inbox-title[b-x1d3shtd0m]     { font-size:1.375rem; font-weight:700; color:var(--b9-text); margin:0; }
.inbox-badge[b-x1d3shtd0m]     { background:var(--b9-primary-soft); color:var(--b9-primary-text); border:1px solid var(--b9-border); border-radius:999px; padding:2px 10px; font-size:0.75rem; font-weight:700; }
.inbox-actions[b-x1d3shtd0m]   { display:flex; gap:8px; }
.inbox-btn[b-x1d3shtd0m]       { background:var(--b9-surface-alt); border:1.5px solid var(--b9-border); border-radius:8px; padding:6px 14px; font-size:0.8125rem; font-weight:600; color:var(--b9-text-muted); cursor:pointer; transition:background .15s, border-color .15s, color .15s; }
.inbox-btn:hover[b-x1d3shtd0m] { background:var(--b9-surface-muted); border-color:var(--b9-border-strong); color:var(--b9-text); }
.inbox-btn-primary[b-x1d3shtd0m]       { background:var(--b9-primary); border-color:var(--b9-primary); color:var(--player-text-inverse); }
.inbox-btn-primary:hover[b-x1d3shtd0m] { background:var(--b9-primary-hover); }

/* ── Filter tabs ─────────────────────────────────────────────────── */
/* flex-wrap: on a 320px phone the fourth tab wraps to a second row
   instead of widening the page. */
.inbox-tabs[b-x1d3shtd0m]   { display:flex; flex-wrap:wrap; gap:0; margin-bottom:16px; border-bottom:1.5px solid var(--b9-border); }
.inbox-tab[b-x1d3shtd0m]    { padding:8px 16px; font-size:0.8125rem; font-weight:600; color:var(--b9-text-muted); background:none; border:none; border-bottom:2.5px solid transparent; cursor:pointer; margin-bottom:-1.5px; transition:color .15s; }
.inbox-tab--active[b-x1d3shtd0m] { color:var(--b9-primary-text); border-bottom-color:var(--b9-primary); font-weight:700; }

/* ── Notification card ───────────────────────────────────────────── */
.inbox-list[b-x1d3shtd0m]       { display:flex; flex-direction:column; gap:8px; }
.inbox-card[b-x1d3shtd0m]       { background:var(--b9-surface-alt); border:1.5px solid var(--b9-border); border-radius:12px; padding:16px 18px; display:flex; gap:14px; cursor:pointer; transition:border-color .15s, background .15s; position:relative; }
.inbox-card:hover[b-x1d3shtd0m] { border-color:var(--b9-border-strong); background:var(--b9-surface-muted); }
.inbox-card--unread[b-x1d3shtd0m] { border-left:3.5px solid var(--b9-primary); background:var(--b9-primary-soft); }
.inbox-card--read[b-x1d3shtd0m]   { opacity:.8; }

.inbox-icon[b-x1d3shtd0m]     { flex-shrink:0; width:36px; height:36px; border-radius:50%; background:var(--b9-primary-soft); color:var(--b9-primary-text); display:flex; align-items:center; justify-content:center; font-size:1rem; }
.inbox-icon--event[b-x1d3shtd0m]  { background:var(--b9-success-soft); color:var(--b9-success-text); }
.inbox-icon--league[b-x1d3shtd0m] { background:var(--b9-warning-soft); color:var(--b9-warning-text); }
.inbox-icon--admin[b-x1d3shtd0m]  { background:var(--b9-info-soft); color:var(--b9-info-text); }
.inbox-icon--system[b-x1d3shtd0m] { background:var(--b9-badge-neutral-bg); color:var(--b9-text-muted); }

.inbox-body[b-x1d3shtd0m]     { flex:1; min-width:0; }
.inbox-subject[b-x1d3shtd0m]  { font-size:0.875rem; font-weight:600; color:var(--b9-text); margin:0 0 4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.inbox-subject--unread[b-x1d3shtd0m] { font-weight:700; }
.inbox-preview[b-x1d3shtd0m]  { font-size:0.8125rem; color:var(--b9-text-muted); margin:0 0 6px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.inbox-meta[b-x1d3shtd0m]     { display:flex; align-items:center; gap:8px; }
.inbox-category[b-x1d3shtd0m] { font-size:0.6875rem; font-weight:700; color:var(--b9-text-soft); text-transform:uppercase; letter-spacing:.04em; }
.inbox-time[b-x1d3shtd0m]     { font-size:0.75rem; color:var(--b9-text-soft); margin-left:auto; }
.inbox-unread-dot[b-x1d3shtd0m] { width:8px; height:8px; border-radius:50%; background:var(--b9-primary); flex-shrink:0; margin-top:4px; }

/* Hidden via opacity (not display:none) so the buttons stay in the keyboard
   tab order — tabbing onto one triggers :focus-within and reveals them. */
.inbox-card-actions[b-x1d3shtd0m] { position:absolute; right:14px; top:14px; display:flex; gap:4px; opacity:0; pointer-events:none; }
.inbox-card:hover .inbox-card-actions[b-x1d3shtd0m],
.inbox-card:focus-within .inbox-card-actions[b-x1d3shtd0m] { opacity:1; pointer-events:auto; }

/* Touch devices have no hover — keep the actions visible, and reserve room
   on the card so the buttons never sit on top of the title text. */
@media (hover: none) {
    .inbox-card-actions[b-x1d3shtd0m] { opacity:1; pointer-events:auto; }
    .inbox-card[b-x1d3shtd0m] { padding-right:108px; }
}
.inbox-act-btn[b-x1d3shtd0m]  { background:none; border:none; width:44px; height:44px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:1rem; color:var(--b9-text-muted); cursor:pointer; }
.inbox-act-btn:hover[b-x1d3shtd0m] { background:var(--b9-surface-muted); color:var(--b9-text); }

.inbox-action-btn[b-x1d3shtd0m] { margin-top:8px; display:inline-block; background:var(--b9-primary); color:var(--player-text-inverse); border-radius:8px; padding:7px 16px; font-size:0.8125rem; font-weight:700; text-decoration:none; }
.inbox-action-btn:hover[b-x1d3shtd0m] { background:var(--b9-primary-hover); color:var(--player-text-inverse); }

/* ── Expanded view ───────────────────────────────────────────────── */
.inbox-expanded[b-x1d3shtd0m] { border-color:var(--b9-primary); background:var(--b9-primary-soft); }
.inbox-full-body[b-x1d3shtd0m] { font-size:0.875rem; color:var(--b9-text); white-space:pre-wrap; line-height:1.7; margin:0 0 10px; }

/* ── Empty state ─────────────────────────────────────────────────── */
.inbox-empty[b-x1d3shtd0m]      { text-align:center; padding:48px 0; color:var(--b9-text-soft); }
.inbox-empty-icon[b-x1d3shtd0m] { font-size:2.5rem; margin-bottom:12px; }
.inbox-empty-title[b-x1d3shtd0m] { font-size:1rem; font-weight:700; color:var(--b9-text); margin:0 0 6px; }
.inbox-empty-sub[b-x1d3shtd0m]   { font-size:0.8125rem; margin:0; color:var(--b9-text-muted); }

/* ── Preferences link ─────────────────────────────────────────────── */
.inbox-pref-link[b-x1d3shtd0m]  { font-size:0.75rem; color:var(--b9-text-soft); text-align:center; margin-top:24px; }
.inbox-pref-link a[b-x1d3shtd0m] { color:var(--b9-link); }

.inbox-btn:focus-visible[b-x1d3shtd0m],
.inbox-tab:focus-visible[b-x1d3shtd0m],
.inbox-act-btn:focus-visible[b-x1d3shtd0m],
.inbox-action-btn:focus-visible[b-x1d3shtd0m],
.inbox-pref-link a:focus-visible[b-x1d3shtd0m] {
    outline: 2px solid var(--b9-link);
    outline-offset: 2px;
}
/* /Components/Pages/MyLeaderboards.razor.rz.scp.css */
/* ================================================================
   MY LEADERBOARDS — /my/leaderboards
   A plain list: name · one-line status · chevron. Tokens only.
   ================================================================ */

.mlb-page[b-uextkxbnfp] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 1.25rem 1rem 3rem;
}

/* Header row: title + a quiet Home link */
.mlb-header[b-uextkxbnfp] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.mlb-title[b-uextkxbnfp] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--text-primary);
}

.mlb-home-link[b-uextkxbnfp] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: var(--touch-target-min);
    padding: 0 0.5rem;
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--b9-primary-text);
    text-decoration: none;
    white-space: nowrap;
}

.mlb-home-link:hover[b-uextkxbnfp] { text-decoration: underline; }

/* Card */
.mlb-card[b-uextkxbnfp] {
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    padding: 1rem;
}

.mlb-card-title[b-uextkxbnfp] {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary);
}

/* The list */
.mlb-list[b-uextkxbnfp] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* One row = one link. Name wraps; nothing is ever clipped. */
.mlb-row[b-uextkxbnfp] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    min-height: 64px;
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-subtle);
    background: var(--bg-elevated);
    color: inherit;
    text-decoration: none;
    transition: border-color 160ms ease;
}

.mlb-row:hover[b-uextkxbnfp],
.mlb-row:focus-visible[b-uextkxbnfp] {
    border-color: var(--brand);
}

.mlb-row-body[b-uextkxbnfp] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.mlb-row-name[b-uextkxbnfp] {
    font-size: var(--font-size-base);
    font-weight: 700;
    line-height: 1.3;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.mlb-row-status[b-uextkxbnfp] {
    font-size: 0.875rem;
    line-height: 1.4;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
}

.mlb-row-chevron[b-uextkxbnfp] {
    flex-shrink: 0;
    font-size: var(--font-size-base);
    color: var(--text-muted);
}

/* Empty state */
.mlb-empty[b-uextkxbnfp] {
    text-align: center;
    padding: 1.25rem 0.5rem;
}

.mlb-empty-icon[b-uextkxbnfp] {
    display: block;
    margin-bottom: 0.5rem;
    font-size: 2rem;
    color: var(--text-muted);
}

.mlb-empty-title[b-uextkxbnfp] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary);
}

.mlb-empty-body[b-uextkxbnfp] {
    margin: 0.35rem 0 0;
    font-size: var(--font-size-base);
    color: var(--text-secondary);
}

.mlb-link-btn[b-uextkxbnfp] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--touch-target-min);
    min-width: var(--touch-target-min);
    margin-top: 1rem;
    padding: 0.6rem 1rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-default);
    background: var(--bg-elevated);
    color: var(--text-primary);
    font-size: var(--font-size-base);
    font-weight: 700;
    text-decoration: none;
}

/* ────────────────────────────────────────────────────────────────
   Narrow phones (iPhone SE, 320px). The name is the only thing on
   the row that matters, so the gutters shrink before it does: with
   the audit's padding it sat in a 148px column and "Test Monday
   Night League" needed three lines.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 360px) {
    .mlb-page[b-uextkxbnfp] { padding-left: 0.625rem; padding-right: 0.625rem; }
    .mlb-card[b-uextkxbnfp] { padding: 0.75rem; }
    .mlb-row[b-uextkxbnfp]  { padding-left: 0.5rem; padding-right: 0.5rem; gap: 0.5rem; }
}
/* /Components/Pages/MyProfile.razor.rz.scp.css */
/* ══════════════════════════════════════════════════════════════════════════════
   MY PROFILE — Self-service player page
   /my-profile
══════════════════════════════════════════════════════════════════════════════ */

/* ── Loading ── */
.mp-loading[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 40vh;
    gap: .75rem;
}

/* ── Unlinked state ── */
.mp-unlinked[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    max-width: 440px;
    margin: 5rem auto;
    padding: 0 1.5rem;
}
.mp-unlinked-icon[b-jgiabi29m8] {
    font-size: 3rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    margin-bottom: 1rem;
}
.mp-unlinked-title[b-jgiabi29m8] {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--player-text-primary, var(--b9-text));
    margin-bottom: .5rem;
}
.mp-unlinked-sub[b-jgiabi29m8] {
    font-size: .9rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    line-height: 1.6;
}

/* ── Page wrapper ── */
.mp-page[b-jgiabi29m8] {
    max-width: 980px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
    color: var(--player-text-primary, var(--b9-text));
}

/* ══════════════════════
   HEADER / IDENTITY CARD
══════════════════════ */

.mp-header[b-jgiabi29m8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1.25rem;
    margin-bottom: 1.75rem;
}

.mp-header-left[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0; /* let the name block shrink instead of widening the page */
}

.mp-header-left > div[b-jgiabi29m8] {
    min-width: 0;
}

.mp-avatar[b-jgiabi29m8] {
    flex-shrink: 0;
    width: 3.25rem;
    height: 3.25rem;
    border-radius: 50%;
    background: linear-gradient(145deg, var(--b9-link, #2563eb) 0%, color-mix(in srgb, var(--b9-link, #2563eb) 75%, #000) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: -.02em;
    text-transform: uppercase;
    user-select: none;
}

.mp-name[b-jgiabi29m8] {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--player-text-primary, var(--b9-text));
    line-height: 1.2;
    margin: 0 0 .2rem;
    overflow-wrap: anywhere; /* email-style display names break instead of overflowing */
}

.mp-org[b-jgiabi29m8] {
    font-size: .8125rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

/* ── Header stat chips ── */
.mp-header-chips[b-jgiabi29m8] {
    display: grid;
    grid-template-columns: repeat(2, minmax(110px, 1fr));
    gap: .625rem;
    align-items: stretch;
    min-width: 236px;
}

.mp-stat-chip[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    min-height: 84px;
    padding: .6rem .85rem;
    border-radius: 8px;
    border: 1px solid var(--player-border, var(--b9-border));
    background: var(--player-surface-card, var(--b9-surface-alt));
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}
.mp-chip-label[b-jgiabi29m8] {
    font-size: .65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--player-text-secondary, var(--b9-text-muted));
    margin-bottom: .1rem;
    width: 100%;
    text-align: left;
}
.mp-chip-value[b-jgiabi29m8] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--player-text-primary, var(--b9-text));
    line-height: 1.2;
    width: 100%;
    text-align: left;
}
.mp-chip-hcp    .mp-chip-value[b-jgiabi29m8] { color: var(--b9-primary-text); }
.mp-chip-active .mp-chip-value[b-jgiabi29m8] { color: var(--b9-success-text); }
.mp-chip-inactive .mp-chip-value[b-jgiabi29m8] { color: var(--player-text-secondary, var(--b9-text-muted)); }

.mp-chip-sub[b-jgiabi29m8] {
    font-size: .6rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    margin-top: .15rem;
    white-space: nowrap;
    width: 100%;
    text-align: left;
}
.mp-chip-sub-stale[b-jgiabi29m8] {
    /* The warning FILL as ink measured 2.15:1 on the light card; -text is the ink twin. */
    color: var(--b9-warning-text);
    font-weight: 600;
}

.mp-chip-ghin-val[b-jgiabi29m8] {
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .04em;
    color: var(--player-text-primary, var(--b9-text));
}

.mp-chip-b9id[b-jgiabi29m8] {
    background: var(--b9-indigo-soft);
    border-color: var(--b9-indigo-border);
    min-width: 168px;
}

.mp-chip-b9id-val[b-jgiabi29m8] {
    font-size: .78rem;
    font-weight: 700;
    font-family: 'Courier New', monospace;
    letter-spacing: .05em;
    color: var(--b9-indigo-text);
    user-select: all;
    white-space: nowrap;
}

/* ══════════════════════
   LEAGUE MOMENTS
══════════════════════ */

.mp-moments-grid[b-jgiabi29m8] {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}

.mp-moment-card[b-jgiabi29m8] {
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 12px;
    padding: 1rem;
    background: var(--player-surface-card, var(--b9-surface-alt));
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

.mp-moment-card h3[b-jgiabi29m8] {
    margin: 0;
    font-size: 1rem;
    color: var(--player-text-primary, var(--b9-text));
}

.mp-moment-sub[b-jgiabi29m8] {
    margin: .4rem 0 1rem;
    font-size: .875rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-moment-toggle[b-jgiabi29m8] {
    margin-bottom: .5rem;
}

.mp-moment-toggle label[b-jgiabi29m8] {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-size: .9rem;
    color: var(--player-text-primary, var(--b9-text));
}

.mp-moment-toggle input[b-jgiabi29m8] {
    accent-color: var(--player-link, var(--b9-link));
    width: 1rem;
    height: 1rem;
}

.mp-moment-status[b-jgiabi29m8] {
    margin-top: .65rem;
    font-size: .85rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-moment-head[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .75rem;
}

.mp-moment-list[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

.mp-moment-item[b-jgiabi29m8] {
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 10px;
    padding: .75rem;
    background: var(--player-surface-elev, var(--b9-surface-muted));
}

.mp-moment-item-unread[b-jgiabi29m8] {
    border-left: 3px solid var(--player-link, var(--b9-link));
    background: color-mix(in srgb, var(--player-link, var(--b9-link)) 10%, var(--player-surface-card, var(--b9-surface-alt)) 90%);
}

.mp-moment-meta[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .15rem;
}

.mp-moment-meta span[b-jgiabi29m8] {
    font-size: .78rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-moment-item p[b-jgiabi29m8] {
    margin: .45rem 0;
    font-size: .9rem;
    color: var(--player-text-primary, var(--b9-text));
}

.mp-moment-actions[b-jgiabi29m8] {
    display: flex;
    gap: .45rem;
}

.mp-empty-tight[b-jgiabi29m8] {
    padding: 1rem .5rem;
}

/* ══════════════
   TAB BAR
══════════════ */

.mp-tabs[b-jgiabi29m8] {
    display: flex;
    gap: .25rem;
    border-bottom: 2px solid var(--player-border, var(--b9-border));
    margin-bottom: 1.5rem;
    /* Wrap instead of scroll so every tab stays visible on narrow phones —
       a horizontally-scrolled tab strip hid "League Moments" off-screen. */
    flex-wrap: wrap;
}

.mp-tab[b-jgiabi29m8] {
    background: none;
    border: none;
    padding: .55rem .9rem;
    font-size: .875rem;
    font-weight: 500;
    color: var(--player-text-secondary, var(--b9-text-muted));
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    border-radius: 6px 6px 0 0;
    transition: color .15s, border-color .15s;
    display: flex;
    align-items: center;
    gap: .3rem;
    white-space: nowrap;
}
.mp-tab:hover[b-jgiabi29m8] { color: var(--player-text-primary, var(--b9-text)); }
.mp-tab.active[b-jgiabi29m8] {
    color: var(--player-link, var(--b9-link));
    border-bottom-color: var(--player-link, var(--b9-link));
    font-weight: 600;
}
.mp-tab-badge[b-jgiabi29m8] {
    background: var(--player-link, var(--b9-link));
    color: #fff;
    font-size: .65rem;
    font-weight: 700;
    line-height: 1;
    padding: .2em .45em;
    border-radius: 999px;
}
.mp-tab:not(.active) .mp-tab-badge[b-jgiabi29m8] {
    background: var(--player-surface-elev, var(--b9-surface-muted));
    color: var(--player-text-secondary, var(--b9-text-muted));
}

/* ══════════════════════
   EMPTY STATE
══════════════════════ */

.mp-empty[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 3.5rem 1rem;
}
.mp-empty-icon[b-jgiabi29m8] {
    font-size: 2.5rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    margin-bottom: 1rem;
    display: block;
}
.mp-empty-title[b-jgiabi29m8] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--player-text-primary, var(--b9-text));
    margin: 0 0 .35rem;
}
.mp-empty-sub[b-jgiabi29m8] {
    font-size: .875rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    max-width: 340px;
    line-height: 1.55;
    margin: 0;
}

.mp-empty-cta[b-jgiabi29m8] {
    margin-top: .9rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: .65rem 1.05rem;
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--b9-primary, #16a34a) 72%, #000 28%);
    background: var(--b9-primary, #16a34a);
    color: #f8fafc;
    text-decoration: none;
    font-size: var(--font-size-base, 1rem);
    font-weight: 700;
    line-height: 1.25;
}

.mp-empty-cta:hover[b-jgiabi29m8] {
    background: color-mix(in srgb, var(--b9-primary, #16a34a) 82%, #000 18%);
    color: #ffffff;
}

.mp-empty-cta:focus-visible[b-jgiabi29m8] {
    outline: 2px solid color-mix(in srgb, var(--b9-primary, #16a34a) 60%, #ffffff 40%);
    outline-offset: 2px;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--b9-primary, #16a34a) 28%, transparent 72%);
}

.mp-loading-inline[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    padding: 2rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    font-size: .875rem;
}

.mp-empty-compact[b-jgiabi29m8] {
    padding: 1.5rem 1rem;
}

.mp-upcoming-stack[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.mp-subsection[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.mp-subsection-head[b-jgiabi29m8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.mp-subsection-title[b-jgiabi29m8] {
    margin: 0;
    font-size: 1rem;
    font-weight: 700;
    color: var(--player-text-primary, var(--b9-text));
}

.mp-subsection-sub[b-jgiabi29m8] {
    margin: .2rem 0 0;
    font-size: .875rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-subsection-count[b-jgiabi29m8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    border-radius: 999px;
    background: var(--player-surface-elev, var(--b9-surface-muted));
    color: var(--player-text-primary, var(--b9-text));
    border: 1px solid var(--player-border, var(--b9-border));
    font-size: .82rem;
    font-weight: 700;
}

.mp-week-list[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.mp-week-card[b-jgiabi29m8] {
    background: var(--player-surface-card, var(--b9-surface-alt));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}

.mp-week-top[b-jgiabi29m8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem .8rem;
}

.mp-week-left[b-jgiabi29m8] {
    flex: 1;
    min-width: 0;
}

/* ══════════════════════
   UPCOMING EVENT CARDS
══════════════════════ */

.mp-event-list[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.mp-event-card[b-jgiabi29m8] {
    background: var(--player-surface-card, var(--b9-surface-alt));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
    transition: box-shadow .15s;
}
.mp-event-card:hover[b-jgiabi29m8] { box-shadow: 0 3px 10px rgba(0,0,0,.09); }

.mp-ec-top[b-jgiabi29m8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem .8rem;
}

.mp-ec-left[b-jgiabi29m8] { flex: 1; min-width: 0; }

.mp-ec-countdown[b-jgiabi29m8] {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: .3rem;
}
.cd-today[b-jgiabi29m8]  { color: var(--b9-primary-text); }
.cd-soon[b-jgiabi29m8]   { color: #d97706; }
.cd-far[b-jgiabi29m8]    { color: var(--player-text-secondary, var(--b9-text-muted)); }
.cd-past[b-jgiabi29m8]   { color: var(--player-text-secondary, var(--b9-text-muted)); opacity: .7; }

.mp-ec-name[b-jgiabi29m8] {
    font-size: .9375rem;
    font-weight: 600;
    color: var(--player-text-primary, var(--b9-text));
    text-decoration: none;
    line-height: 1.3;
    display: block;
    margin-bottom: .4rem;
}
.mp-ec-name:hover[b-jgiabi29m8] { color: var(--player-link, var(--b9-link)); text-decoration: underline; }

.mp-ec-meta[b-jgiabi29m8] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem .9rem;
    font-size: .875rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-ec-right[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .4rem;
    flex-shrink: 0;
}

/* Status badges */
.mp-ec-status-badge[b-jgiabi29m8] {
    font-size: .72rem;
    font-weight: 700;
    padding: .2em .65em;
    border-radius: 6px;
    text-transform: uppercase;
    letter-spacing: .05em;
    white-space: nowrap;
}
.mp-status-open[b-jgiabi29m8]      { background: var(--success-soft); color: var(--success-text); }
.mp-status-active[b-jgiabi29m8]    { background: var(--brand-soft); color: var(--brand-text); }
.mp-status-closed[b-jgiabi29m8]    { background: color-mix(in srgb, var(--player-surface-elev, var(--b9-surface-muted)) 85%, #000 15%); color: var(--player-text-secondary, var(--b9-text-muted)); }
.mp-status-cancelled[b-jgiabi29m8] { background: var(--danger-soft); color: var(--danger-text); }
.mp-status-draft[b-jgiabi29m8]     { background: var(--warning-soft); color: var(--warning-text); }

.mp-ec-hcp-snap[b-jgiabi29m8] {
    font-size: .74rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-ec-footer[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .75rem;
    padding: .6rem 1.1rem;
    border-top: 1px solid var(--player-border, var(--b9-border));
    background: var(--player-surface-elev, var(--b9-surface-muted));
}

.mp-ec-link[b-jgiabi29m8] {
    font-size: var(--font-size-base, 1rem);
    font-weight: 600;
    color: var(--player-text-secondary, var(--b9-text-muted));
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    min-width: 48px;
    padding: .55rem .9rem;
    line-height: 1.25;
    border-radius: 8px;
    border: 1px solid var(--player-border, var(--b9-border));
    background: var(--player-surface-card, var(--b9-surface-alt));
    transition: color .12s;
}
.mp-ec-link:hover[b-jgiabi29m8] { color: var(--player-link, var(--b9-link)); }
.mp-ec-link-primary[b-jgiabi29m8] { color: var(--player-link, var(--b9-link)); }

.mp-withdraw-btn[b-jgiabi29m8] {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    background: transparent;
    border: 1.5px solid rgba(252, 165, 165, .55);
    color: #fca5a5;
    border-radius: 6px;
    padding: .3rem .8rem;
    font-size: .8125rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .12s, color .12s;
    line-height: 1.4;
}
.mp-withdraw-btn:hover:not(:disabled)[b-jgiabi29m8] {
    background: rgba(239, 68, 68, .12);
}
.mp-withdraw-btn:disabled[b-jgiabi29m8] { opacity: .55; cursor: not-allowed; }

/* ══════════════════════
   HISTORY TAB
══════════════════════ */

.mp-history-summary[b-jgiabi29m8] {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1.25rem;
}
.mp-hs-chip[b-jgiabi29m8] {
    background: var(--player-surface-card, var(--b9-surface-alt));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 6px;
    padding: .3rem .75rem;
    font-size: .82rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}
.mp-hs-chip strong[b-jgiabi29m8] { color: var(--player-text-primary, var(--b9-text)); }

.mp-history-list[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .625rem;
}

.mp-hc[b-jgiabi29m8] {
    background: var(--player-surface-card, var(--b9-surface-alt));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.mp-hc-top[b-jgiabi29m8] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem;
    padding: .875rem 1rem .6rem;
}
.mp-hc-left[b-jgiabi29m8] { flex: 1; min-width: 0; }
.mp-hc-name[b-jgiabi29m8] {
    font-size: .9375rem;
    font-weight: 600;
    color: var(--player-text-primary, var(--b9-text));
    margin-bottom: .25rem;
    line-height: 1.3;
}
.mp-hc-meta[b-jgiabi29m8] {
    font-size: .78rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}
.mp-hc-badges[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .3rem;
    flex-shrink: 0;
}
.mp-badge[b-jgiabi29m8] {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: .15em .55em;
    border-radius: 4px;
    white-space: nowrap;
}
.mp-badge-fmt[b-jgiabi29m8]      { background: var(--brand-soft); color: var(--brand-text); }
.mp-badge-active[b-jgiabi29m8]   { background: var(--brand-soft); color: var(--brand-text); }
.mp-badge-closed[b-jgiabi29m8]   { background: color-mix(in srgb, var(--player-surface-elev, var(--b9-surface-muted)) 85%, #000 15%); color: var(--player-text-secondary, var(--b9-text-muted)); }
.mp-badge-cancelled[b-jgiabi29m8]{ background: var(--danger-soft); color: var(--danger-text); }
.mp-badge-open[b-jgiabi29m8]     { background: var(--success-soft); color: var(--success-text); }
.mp-badge-draft[b-jgiabi29m8]    { background: var(--warning-soft); color: var(--warning-text); }

.mp-hc-bottom[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .5rem 1rem .75rem;
    border-top: 1px solid var(--player-border, var(--b9-border));
    background: var(--player-surface-elev, var(--b9-surface-muted));
}
.mp-hc-scores[b-jgiabi29m8] {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}
.mp-score-pill[b-jgiabi29m8] {
    background: var(--player-surface-card, var(--b9-surface-alt));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 4px;
    padding: .1rem .5rem;
    font-size: .78rem;
    color: var(--player-text-primary, var(--b9-text));
}
.mp-score-total[b-jgiabi29m8] {
    background: var(--b9-primary, #0d6efd);
    border-color: var(--b9-primary, #0d6efd);
    color: #fff;
    font-weight: 700;
}
.mp-hc-no-scores[b-jgiabi29m8] {
    font-size: .78rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}
.mp-hc-link[b-jgiabi29m8] {
    font-size: .78rem;
    font-weight: 600;
    color: var(--player-link, var(--b9-link));
    text-decoration: none;
    margin-left: auto;
    white-space: nowrap;
}
.mp-hc-link:hover[b-jgiabi29m8] { text-decoration: underline; }

/* ══════════════════════
   EDIT PROFILE TAB
══════════════════════ */

/* ── Profile photo upload section ──────────────────────────────────────── */
.mp-photo-section[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    background: var(--player-surface-elev, var(--b9-surface-muted));
    border-radius: 10px;
    border: 1px solid var(--player-border, var(--b9-border));
    flex-wrap: wrap;
}

.mp-photo-preview[b-jgiabi29m8] {
    flex-shrink: 0;
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    background: linear-gradient(145deg, var(--b9-link, #2563eb) 0%, color-mix(in srgb, var(--b9-link, #2563eb) 75%, #000) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    font-weight: 700;
    text-transform: uppercase;
    user-select: none;
    overflow: hidden;
}

.mp-photo-actions[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.mp-photo-upload-btn[b-jgiabi29m8] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .375rem .75rem;
    font-size: .875rem;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 6px;
    background: var(--player-surface-card, var(--b9-surface-alt));
    color: var(--player-text-primary, var(--b9-text));
    transition: background .15s, border-color .15s;
}

.mp-photo-upload-btn:hover[b-jgiabi29m8] {
    background: var(--b9-card-bg-hover, rgba(255,255,255,.08));
    border-color: var(--b9-brand, #22c55e);
}

.mp-photo-remove-btn[b-jgiabi29m8] {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .3rem .65rem;
    font-size: .8125rem;
    font-weight: 500;
    cursor: pointer;
    border: 1px solid var(--b9-danger, #ef4444);
    border-radius: 6px;
    background: transparent;
    /* The border keeps the bright fill; the label needs the ink twin (#EF4444 measures
       3.76:1 on the light card). */
    color: var(--b9-danger-text);
    transition: background .15s;
}

.mp-photo-remove-btn:hover[b-jgiabi29m8] {
    background: var(--b9-danger-soft, rgba(239,68,68,.1));
}

.mp-edit-card[b-jgiabi29m8] {
    background: var(--player-surface-card, var(--b9-surface-alt));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(0,0,0,.06);
    margin-bottom: 1rem;
}
.mp-edit-card-header[b-jgiabi29m8] {
    padding: .875rem 1.25rem;
    font-size: .875rem;
    font-weight: 700;
    color: var(--player-text-primary, var(--b9-text));
    background: var(--player-surface-elev, var(--b9-surface-muted));
    border-bottom: 1px solid var(--player-border, var(--b9-border));
}
.mp-edit-card-body[b-jgiabi29m8] { padding: 1.5rem 1.25rem; }

.mp-field-row[b-jgiabi29m8] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}
.mp-field-row-narrow[b-jgiabi29m8] { grid-template-columns: 180px 1fr; }

.mp-field[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.mp-label[b-jgiabi29m8] {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--player-text-primary, var(--b9-text));
}

.mp-input[b-jgiabi29m8] {
    display: block;
    width: 100%;
    padding: .45rem .75rem;
    font-size: .875rem;
    border: 1.5px solid var(--player-border, var(--b9-border));
    border-radius: 7px;
    background: var(--player-surface-elev, var(--b9-surface-muted));
    color: var(--player-text-primary, var(--b9-text));
    transition: border-color .15s, box-shadow .15s;
    line-height: 1.5;
}
.mp-input:focus[b-jgiabi29m8] {
    outline: none;
    border-color: var(--player-link, var(--b9-link));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--player-link, var(--b9-link)) 22%, transparent);
}
.mp-input:disabled[b-jgiabi29m8] {
    background: color-mix(in srgb, var(--player-surface-elev, var(--b9-surface-muted)) 88%, #000 12%);
    color: var(--player-text-secondary, var(--b9-text-muted));
    cursor: not-allowed;
}
.mp-input-mono[b-jgiabi29m8] { font-family: ui-monospace, "Cascadia Code", monospace; letter-spacing: .04em; }

.mp-hint[b-jgiabi29m8] {
    font-size: .75rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    line-height: 1.4;
}
.mp-validation[b-jgiabi29m8] {
    font-size: .75rem;
    color: #dc3545;
}

/* Canonical (cross-org) display name block */
.mp-canonical-block[b-jgiabi29m8] {
    background: rgba(99, 102, 241, 0.05);
    border: 1px solid rgba(99, 102, 241, 0.18);
    border-radius: 8px;
    padding: .875rem 1rem 1rem;
    margin-bottom: 1.25rem;
}

.mp-canonical-title[b-jgiabi29m8] {
    font-size: .8125rem;
    font-weight: 700;
    color: var(--b9-indigo-text);
    margin-bottom: .25rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.mp-canonical-hint[b-jgiabi29m8] {
    font-size: .8rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
    margin-bottom: .75rem;
    line-height: 1.5;
}

/* Read-only block (email / org) */
.mp-edit-readonly-block[b-jgiabi29m8] {
    background: var(--player-surface-elev, var(--b9-surface-muted));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 8px;
    padding: .75rem 1rem;
    margin-bottom: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: .45rem;
}
.mp-ro-item[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .8125rem;
}
.mp-ro-label[b-jgiabi29m8] { color: var(--player-text-secondary, var(--b9-text-muted)); min-width: 100px; }
.mp-ro-value[b-jgiabi29m8] { color: var(--player-text-primary, var(--b9-text)); font-weight: 500; }

.mp-error-msg[b-jgiabi29m8] {
    background: rgba(239, 68, 68, .12);
    color: #fca5a5;
    border: 1px solid rgba(252, 165, 165, .45);
    border-radius: 7px;
    padding: .6rem .9rem;
    font-size: .8125rem;
    margin-bottom: 1rem;
}

.mp-edit-actions[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.mp-save-btn[b-jgiabi29m8] {
    display: inline-flex;
    align-items: center;
    padding: .5rem 1.3rem;
    background: var(--player-link, var(--b9-link));
    color: #fff;
    border: none;
    border-radius: 7px;
    font-size: .875rem;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 1px 3px color-mix(in srgb, var(--player-link, var(--b9-link)) 35%, transparent);
    transition: background .15s, box-shadow .15s;
    line-height: 1.4;
}
.mp-save-btn:hover:not(:disabled)[b-jgiabi29m8] {
    background: color-mix(in srgb, var(--player-link, var(--b9-link)) 85%, #000);
    box-shadow: 0 2px 6px color-mix(in srgb, var(--player-link, var(--b9-link)) 45%, transparent);
}
.mp-save-btn:disabled[b-jgiabi29m8] { opacity: .6; cursor: not-allowed; }

.mp-saved-confirm[b-jgiabi29m8] {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--b9-success-text);
    display: flex;
    align-items: center;
}

/* Account link card */
.mp-account-link-card[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    gap: .875rem;
    background: var(--player-surface-card, var(--b9-surface-alt));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 10px;
    padding: .9rem 1.1rem;
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

.mp-account-link-card-advanced[b-jgiabi29m8] {
    margin-top: 1rem;
}
.mp-alc-icon[b-jgiabi29m8] {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 8px;
    background: color-mix(in srgb, var(--player-link, var(--b9-link)) 14%, transparent);
    color: var(--player-link, var(--b9-link));
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}
.mp-alc-text[b-jgiabi29m8] {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.mp-alc-text strong[b-jgiabi29m8] {
    font-size: .875rem;
    font-weight: 600;
    color: var(--player-text-primary, var(--b9-text));
}
.mp-alc-text span[b-jgiabi29m8] {
    font-size: .78rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}
.mp-alc-link[b-jgiabi29m8] {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--player-link, var(--b9-link));
    text-decoration: none;
    white-space: nowrap;
    display: flex;
    align-items: center;
}
.mp-alc-link:hover[b-jgiabi29m8] { text-decoration: underline; }

/* ══════════════════════
   RESPONSIVE
══════════════════════ */

@media (max-width: 640px) {
    .mp-page[b-jgiabi29m8] { padding: 1.25rem 1rem 3rem; }

    .mp-header[b-jgiabi29m8] { flex-direction: column; gap: .875rem; }

    .mp-header-chips[b-jgiabi29m8] {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        min-width: 0;
    }

    .mp-chip-b9id[b-jgiabi29m8] { min-width: 0; }

    .mp-ec-top[b-jgiabi29m8] { flex-direction: column; gap: .5rem; }
    .mp-ec-right[b-jgiabi29m8] { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }

    .mp-field-row[b-jgiabi29m8],
    .mp-field-row-narrow[b-jgiabi29m8] { grid-template-columns: 1fr; }

    .mp-account-link-card[b-jgiabi29m8] { flex-wrap: wrap; }
    .mp-alc-link[b-jgiabi29m8] { width: 100%; }
    .mp-settings-grid[b-jgiabi29m8] { grid-template-columns: 1fr; }
    .mp-week-top[b-jgiabi29m8] { flex-direction: column; gap: .5rem; }
    .mp-subsection-head[b-jgiabi29m8] { flex-direction: column; }
}

/* ── Handicap trend ── */
.mp-hcp-trend[b-jgiabi29m8] {
    background: var(--player-surface-elev, var(--b9-surface-muted));
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 10px;
    padding: .875rem 1rem;
    margin-bottom: 1.25rem;
}
.mp-hcp-trend-label[b-jgiabi29m8] {
    font-size: .75rem;
    font-weight: 600;
    color: var(--player-text-secondary, var(--b9-text-muted));
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .625rem;
}
.mp-hcp-trend-row[b-jgiabi29m8] {
    display: flex;
    align-items: flex-end;
    gap: .75rem;
    flex-wrap: wrap;
}
.mp-hcp-pip[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .2rem;
    cursor: default;
}
.mp-hcp-pip-val[b-jgiabi29m8] {
    background: var(--b9-primary, #0d6efd);
    color: #fff;
    font-size: .8125rem;
    font-weight: 700;
    border-radius: 6px;
    padding: .25rem .55rem;
    min-width: 3rem;
    text-align: center;
}
.mp-hcp-pip-date[b-jgiabi29m8] {
    font-size: .7rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}
.mp-hcp-delta[b-jgiabi29m8] {
    font-size: .875rem;
    font-weight: 700;
    padding: .25rem .625rem;
    border-radius: 6px;
    align-self: center;
    margin-left: auto;
}
.mp-hcp-delta-better[b-jgiabi29m8] {
    background: var(--success-soft);
    color: var(--success-text);
}
.mp-hcp-delta-higher[b-jgiabi29m8] {
    background: var(--danger-soft);
    color: var(--danger-text);
}

/* ── Email mismatch badge ── */
.mp-ro-mismatch[b-jgiabi29m8] {
    font-size: .75rem;
    font-weight: 600;
    color: #fcd34d;
    background: rgba(245, 158, 11, .14);
    border-radius: 4px;
    padding: .1rem .4rem;
    cursor: default;
}

.mp-settings-grid[b-jgiabi29m8] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    width: 100%;
}

.mp-settings-card[b-jgiabi29m8] {
    border: 1px solid var(--player-border, var(--b9-border));
    border-radius: 12px;
    padding: 1rem;
    background: var(--player-surface-card, var(--b9-surface-alt));
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}

.mp-settings-kicker[b-jgiabi29m8] {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-settings-title[b-jgiabi29m8] {
    margin: .35rem 0 .25rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--player-text-primary, var(--b9-text));
}

.mp-settings-copy[b-jgiabi29m8] {
    margin: 0;
    font-size: .85rem;
    line-height: 1.55;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-settings-list[b-jgiabi29m8] {
    display: flex;
    flex-direction: column;
    gap: .55rem;
    margin-top: .9rem;
}

.mp-settings-row[b-jgiabi29m8] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .6rem .75rem;
    border-radius: 10px;
    background: var(--player-surface-elev, var(--b9-surface-muted));
    border: 1px solid var(--player-border, var(--b9-border));
    font-size: .84rem;
    color: var(--player-text-secondary, var(--b9-text-muted));
}

.mp-settings-row strong[b-jgiabi29m8] {
    color: var(--player-text-primary, var(--b9-text));
    font-size: .82rem;
}

.mp-settings-row-theme[b-jgiabi29m8] {
    align-items: center;
}

.mp-settings-row-theme[b-jgiabi29m8]  .theme-toggle.mp-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: .45rem;
    min-height: 40px;
    min-width: 170px;
    padding: 0 .7rem;
    border-radius: 10px;
    border: 1px solid var(--player-border, var(--b9-border));
    background: var(--player-surface-card, var(--b9-surface-alt));
    color: var(--player-text-primary, var(--b9-text));
}

.mp-settings-row-theme[b-jgiabi29m8]  .theme-toggle.mp-theme-toggle:hover {
    border-color: var(--player-link, var(--b9-link));
    color: var(--player-link, var(--b9-link));
}

.mp-settings-row-theme[b-jgiabi29m8]  .theme-toggle.mp-theme-toggle .theme-toggle-label {
    font-size: .8rem;
    font-weight: 600;
    white-space: nowrap;
}

.mp-settings-actions[b-jgiabi29m8] {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin-top: 1rem;
}

.mp-action-btn[b-jgiabi29m8],
.mp-mini-btn[b-jgiabi29m8] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    border-radius: 10px;
    text-decoration: none;
    font-size: .82rem;
    font-weight: 700;
    border: 1px solid transparent;
    cursor: pointer;
}

.mp-action-btn[b-jgiabi29m8] {
    padding: .48rem .8rem;
}

.mp-mini-btn[b-jgiabi29m8] {
    padding: .4rem .65rem;
    background: var(--player-surface-elev, var(--b9-surface-muted));
    color: var(--player-text-primary, var(--b9-text));
    border-color: var(--player-border, var(--b9-border));
}

.mp-mini-btn:hover:not(:disabled)[b-jgiabi29m8] {
    border-color: var(--player-link, var(--b9-link));
    color: var(--player-link, var(--b9-link));
}

.mp-action-btn-primary[b-jgiabi29m8] {
    background: var(--player-link, var(--b9-link));
    color: #fff;
}

.mp-action-btn-primary:hover[b-jgiabi29m8] {
    background: color-mix(in srgb, var(--player-link, var(--b9-link)) 85%, #000);
    color: #fff;
}

.mp-action-btn-secondary[b-jgiabi29m8] {
    background: var(--player-surface-elev, var(--b9-surface-muted));
    border-color: var(--player-border, var(--b9-border));
    color: var(--player-text-primary, var(--b9-text));
}

.mp-action-btn-secondary:hover[b-jgiabi29m8] {
    border-color: var(--player-link, var(--b9-link));
    color: var(--player-link, var(--b9-link));
}

/* My clubs — a golfer can belong to more than one (X7). */
.mp-clubs[b-jgiabi29m8] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.3rem;
}

.mp-club-chip[b-jgiabi29m8] {
  border: 1px solid var(--border-subtle, #1E3A52);
  border-radius: 999px;
  padding: 0.1rem 0.6rem;
  font-size: 0.8rem;
  color: var(--text-muted, #9FB0C4);
}
/* /Components/Pages/MySchedule.razor.rz.scp.css */
/* ================================================================
   MY SCHEDULE — /my/schedule
   One date-ordered list: when · what · where · chevron. Tokens only.
   ================================================================ */

.msc-page[b-0p871sv32d] {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    padding: 1.25rem 1rem 3rem;
}

/* Header row: title + a quiet Home link */
.msc-header[b-0p871sv32d] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.msc-title[b-0p871sv32d] {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--text-primary);
}

.msc-home-link[b-0p871sv32d] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: var(--touch-target-min);
    padding: 0 0.5rem;
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--b9-primary-text);
    text-decoration: none;
    white-space: nowrap;
}

.msc-home-link:hover[b-0p871sv32d] { text-decoration: underline; }

/* Card */
.msc-card[b-0p871sv32d] {
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    border-radius: var(--radius-lg);
    padding: 1rem;
}

.msc-card-title[b-0p871sv32d] {
    margin: 0 0 0.75rem;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary);
}

/* The list */
.msc-list[b-0p871sv32d] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* One row = one link, 64px tall, nothing clipped */
.msc-row[b-0p871sv32d] {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    min-height: 64px;
    padding: 0.65rem 0.75rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-subtle);
    background: var(--bg-elevated);
    color: inherit;
    text-decoration: none;
    transition: border-color 160ms ease;
}

.msc-row:hover[b-0p871sv32d],
.msc-row:focus-visible[b-0p871sv32d] {
    border-color: var(--brand);
}

/* Day block: "Sat / Sep 12" */
.msc-when[b-0p871sv32d] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    padding: 0.35rem 0.4rem;
    border-radius: var(--radius-md);
    background: var(--brand-soft);
    color: var(--b9-primary-text);
    flex-shrink: 0;
    line-height: 1.2;
}

.msc-when-day[b-0p871sv32d] {
    font-size: 0.875rem;
    font-weight: 600;
}

.msc-when-date[b-0p871sv32d] {
    font-size: var(--font-size-base);
    font-weight: 800;
}

/* Only printed when the day is in another year: "Jan 5" alone could read as last January */
.msc-when-year[b-0p871sv32d] {
    font-size: 0.875rem;
    font-weight: 600;
}

.msc-body[b-0p871sv32d] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.msc-name[b-0p871sv32d] {
    font-size: var(--font-size-base);
    font-weight: 700;
    line-height: 1.3;
    color: var(--text-primary);
    overflow-wrap: anywhere;
}

.msc-meta[b-0p871sv32d] {
    font-size: 0.875rem;
    line-height: 1.4;
    color: var(--text-secondary);
    overflow-wrap: anywhere;
}

.msc-chevron[b-0p871sv32d] {
    flex-shrink: 0;
    font-size: var(--font-size-base);
    color: var(--text-muted);
}

/* Empty state */
.msc-empty[b-0p871sv32d] {
    text-align: center;
    padding: 1.25rem 0.5rem;
}

.msc-empty-icon[b-0p871sv32d] {
    display: block;
    margin-bottom: 0.5rem;
    font-size: 2rem;
    color: var(--text-muted);
}

.msc-empty-title[b-0p871sv32d] {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary);
}

.msc-empty-body[b-0p871sv32d] {
    margin: 0.35rem 0 0;
    font-size: var(--font-size-base);
    color: var(--text-secondary);
}

.msc-empty-actions[b-0p871sv32d] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

.msc-link-btn[b-0p871sv32d] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--touch-target-min);
    min-width: var(--touch-target-min);
    padding: 0.6rem 1rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--border-default);
    background: var(--bg-elevated);
    color: var(--text-primary);
    font-size: var(--font-size-base);
    font-weight: 700;
    text-decoration: none;
}
/* /Components/Pages/Org/ClubPage.razor.rz.scp.css */
/* Club page editor — one calm card, the same tokens as every settings surface. */

.cp-container[b-2ua4yola63] {
    max-width: 860px;
}

/* 🔴 --bg-card IS NOT A TOKEN. It is declared nowhere in this codebase, so `var(--bg-card,
   #101827)` never had a fallback — #101827 was the value, in every theme, always. In dark
   that is invisible (it is roughly --bg-elevated), which is why this survived; in light the
   card stayed near-black while every token inside it flipped, and the form's own headings
   and labels went #1A1A1A on #101827 = 1.02:1. Forty of them. That was the worst single
   number in the 2026-09-06 audit, and it was one undefined name.

   The card is a FORM — "Club name", "Tagline", "Contact email" — not a preview of the club's
   public page, so it is not one of the surfaces that stay dark on purpose: it follows the
   theme like every other settings card, and --bg-surface is the token that means what the
   fallback was reaching for. #1A1A1A on #FFFFFF is 17.4:1. Dark is unchanged: --bg-surface
   resolves to #0F172A there, within a hair of the #101827 that was hardcoded.

   The same defect, same shape, lives at MyDashboard.razor.css:1018 — a player surface, so
   another package's to fix; reported, not touched. */
.cp-card[b-2ua4yola63] {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
    border-radius: 14px;
    padding: 1.5rem 1.75rem 1.75rem;
}

.cp-heading[b-2ua4yola63] {
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    margin: 1.6rem 0 0.9rem;
    padding-bottom: 0.4rem;
    border-bottom: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
}

.cp-card .cp-heading:first-child[b-2ua4yola63] {
    margin-top: 0;
}

.cp-row[b-2ua4yola63] {
    margin-bottom: 1.1rem;
}

.cp-label[b-2ua4yola63] {
    display: block;
    font-weight: 600;
    font-size: 0.92rem;
    margin-bottom: 0.35rem;
}

.cp-input[b-2ua4yola63] {
    max-width: 560px;
}

.cp-color[b-2ua4yola63] {
    width: 64px;
    height: 48px;
    padding: 4px;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.15));
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
}

.cp-hero-preview[b-2ua4yola63] {
    width: 100%;
    max-width: 560px;
    height: 150px;
    border-radius: 10px;
    background-size: cover;
    background-position: center;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.12));
}

.cp-sections[b-2ua4yola63] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 560px;
}

.cp-section-row[b-2ua4yola63] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    background: var(--bg-elevated, rgba(255, 255, 255, 0.03));
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
    border-radius: 10px;
    padding: 0.55rem 0.8rem;
}

.cp-section-arrows[b-2ua4yola63] {
    display: flex;
    gap: 0.25rem;
}

.cp-section-arrows .btn[b-2ua4yola63] {
    min-width: 34px;
}

.cp-section-name[b-2ua4yola63] {
    font-weight: 600;
}

.cp-logo-preview[b-2ua4yola63] {
    width: 72px;
    height: 72px;
    object-fit: contain;
    border-radius: 10px;
    background: #fff;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.12));
}

/* Two short fields that belong on one line on a desk, and stack on a phone. */
.cp-row-split[b-2ua4yola63] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

@media (max-width: 600px) {
    .cp-row-split[b-2ua4yola63] {
        grid-template-columns: 1fr;
    }
}
/* /Components/Pages/Org/OrgLanding.razor.rz.scp.css */
/* ================================================================
   ORG LANDING PAGE (/org/{id})
   Public-facing club/org page — uses PublicLayout
   ================================================================ */

/* ── Loading / Not Found ── */
.ol-loading[b-jdbembhlfs],
.ol-notfound[b-jdbembhlfs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 5rem 1.5rem;
    text-align: center;
    color: var(--text-muted, #64748b);
}

.ol-nf-icon[b-jdbembhlfs] {
    font-size: 3.5rem;
    margin-bottom: 1rem;
}

/* ================================================================
   HERO
   ================================================================ */
.ol-hero[b-jdbembhlfs] {
    /* 🔴 This band is --bg-sidebar, which tokens.css keeps DARK in BOTH themes on purpose. Its
       lettering therefore cannot come from the theme's own text tokens: in light mode
       --text-primary flips to #1A1A1A and --text-secondary to #475569, which is how a club's own
       name ended up at 1.20:1 on its own page for anyone carrying a light preference. These are
       the BAND's ink, not the theme's, and they stay put. */
    --ol-hero-ink:      #F3F6FB;   /* the dark theme's --text-primary */
    /* The band's softer ink. Everything muted inside the band takes THIS, not --text-muted:
       that token flips with the theme, and this band is dark in both, so a theme-muted grey
       here was a colour chosen for a surface that is not underneath it. */
    --ol-hero-ink-soft: #94A3B8;

    /* The green was the gradient's SECOND STOP, i.e. a translucent wash over whatever the page
       behind it happened to be — dark in dark mode, near-white in light, so the band faded out
       from under its own lettering. Painting the tint as a LAYER over an opaque --bg-sidebar base
       keeps the band dark in both themes and leaves the dark-mode look where it was. */
    background:
        linear-gradient(160deg, rgba(22, 163, 74, 0) 0%, rgba(22, 163, 74, 0.10) 100%),
        var(--bg-sidebar, #0B1220);
    /* Everything in the band inherits the band's ink, so a chip or a hint that never set a colour
       of its own cannot fall through to --text-primary and go near-black on a dark ground. */
    color: var(--ol-hero-ink);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    padding: 2.5rem 1.25rem 2rem;

    /* 🔴 A club with no photo got a thin flat strip with no presence — the single biggest reason
       the live page read as a dashboard rather than a golf course's front door. Most clubs will
       not have uploaded a photo on day one, so the NO-PHOTO state has to carry itself.

       A photograph is still far better and nothing here pretends otherwise; this is the floor,
       not the ceiling. Height gives the club's name room to be a masthead instead of a table
       caption, and the two soft washes give the band depth so it reads as designed rather than
       as an empty container. Both washes are painted OVER the opaque --bg-sidebar base, never
       as a translucent tint over the page, which is the bug the comment above records. */
    position: relative;
    min-height: 210px;
    display: flex;
    align-items: center;
}

/* Overridden to `none` for the photo case further down — a photo brings its own depth and does
   not need a second gradient fighting it. */
.ol-hero[b-jdbembhlfs]::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(120% 90% at 12% 0%,
            color-mix(in srgb, var(--ol-accent, #16a34a) 22%, transparent) 0%, transparent 62%),
        radial-gradient(90% 80% at 100% 100%,
            rgba(255, 255, 255, 0.05) 0%, transparent 58%);
}

/* The photo case paints its own scrim; a second wash on top of it only muddies the picture. */
.ol-hero.has-photo[b-jdbembhlfs]::before { content: none; }

/* Everything in the band must sit above the wash. */
/* Above the wash — and `width: 100%` because .ol-hero is now a flex container: without it the
   inner block shrinks to its content, and `margin: 0 auto` below then centres a narrow column
   with a dead gap beside it. That is exactly what it did on the first attempt. */
.ol-hero-inner[b-jdbembhlfs] { position: relative; z-index: 2; width: 100%; }

/* With the band carrying real height, the club's name can be a masthead. Clamped so a long club
   name on a phone does not wrap into four lines. */
.ol-hero .ol-org-name[b-jdbembhlfs] {
    font-size: clamp(1.75rem, 4.4vw, 2.6rem);
    letter-spacing: -0.015em;
}

.ol-hero-inner[b-jdbembhlfs] {
    max-width: 900px;
    margin: 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.ol-hero-avatar[b-jdbembhlfs] {
    width: 64px;
    height: 64px;
    border-radius: 14px;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-size: 1.75rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
    box-shadow: 0 4px 16px rgba(22,163,74,0.3);
    overflow: hidden;
}

.ol-hero-logo-img[b-jdbembhlfs] {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 14px;
}

.ol-org-description[b-jdbembhlfs] {
    font-size: 0.95rem;
    color: var(--ol-hero-ink-soft);
    margin: 0 0 0.45rem;
    line-height: 1.5;
}

.ol-hero-info[b-jdbembhlfs] {
    flex: 1;
    min-width: 0;
}

.ol-org-name[b-jdbembhlfs] {
    font-size: 1.75rem;
    font-weight: 800;
    color: var(--ol-hero-ink);
    margin: 0 0 0.375rem;
    line-height: 1.2;
}

.ol-org-location[b-jdbembhlfs] {
    font-size: 0.9rem;
    color: var(--ol-hero-ink-soft);
    margin: 0 0 0.75rem;
}

.ol-hero-meta[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ol-meta-chip[b-jdbembhlfs] {
    display: inline-flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 500;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    text-decoration: none;
    transition: opacity 0.15s;
}

.ol-chip-active[b-jdbembhlfs] {
    background: rgba(22, 163, 74, 0.15);
    color: #4ade80;
    border: 1px solid rgba(22, 163, 74, 0.25);
}

/* The course facts chip that replaced "Active Organization". Quieter than the old green pill —
   it is a statement of fact, not a status badge, so it reads as part of the club's identity
   rather than as something that could turn red. Takes the BAND's ink, never the theme's: this
   sits on --bg-sidebar, which is dark in both themes. */
.ol-chip-course[b-jdbembhlfs] {
    background: rgba(255, 255, 255, 0.09);
    color: var(--ol-hero-ink);
    border: 1px solid rgba(255, 255, 255, 0.16);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.01em;
}

.ol-chip-email[b-jdbembhlfs] {
    background: rgba(255,255,255,0.05);
    color: var(--ol-hero-ink-soft);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.ol-chip-email:hover[b-jdbembhlfs] {
    opacity: 0.8;
}

.ol-hero-cta[b-jdbembhlfs] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.375rem;
    flex-shrink: 0;
}

.ol-signin-btn[b-jdbembhlfs] {
    min-width: 140px;
}

/* 🔴 The one thing in the band that still took its ink from the THEME. Everything else inherits
   --ol-hero-ink, but Bootstrap's own .btn-outline-secondary sets a colour, so inheritance never
   reaches it: in light mode that is slate #475569, which MEASURED 1.90:1 against the scrimmed
   band — the club's Sign In button, unreadable, for anyone carrying a light preference. Same bug
   as the club name above it, one selector further down. The band's border was worse than the
   ink: rgba(0,0,0,0.12) is invisible on a dark ground, so the control had no visible edge either.

   Pinned to the band's ink rather than the theme's, like every other rule in this block. */
.ol-hero .btn-outline-secondary[b-jdbembhlfs] {
    color: var(--ol-hero-ink);
    border-color: rgba(255, 255, 255, 0.40);
    background-color: transparent;
}

.ol-hero .btn-outline-secondary:hover[b-jdbembhlfs],
.ol-hero .btn-outline-secondary:focus-visible[b-jdbembhlfs] {
    /* Inverted on hover: the band's ink becomes the fill, and the text goes to the band's own
       dark. Both directions stay above 4.5:1. */
    color: #0F172A;
    background-color: var(--ol-hero-ink);
    border-color: var(--ol-hero-ink);
}

.ol-cta-hint[b-jdbembhlfs] {
    font-size: 0.8rem;
    color: var(--ol-hero-ink-soft);
    margin: 0;
    text-align: right;
}

.ol-cta-new-account[b-jdbembhlfs] {
    font-size: 0.78rem;
    color: var(--ol-hero-ink-soft);
    text-align: right;
    text-decoration: none;
    margin-top: 0.1rem;
    transition: color 0.15s;
}

.ol-cta-new-account:hover[b-jdbembhlfs] {
    color: var(--b9-primary-text);
}

/* ── Join-request CTA states ── */
.ol-join-success[b-jdbembhlfs],
.ol-join-pending[b-jdbembhlfs] {
    font-size: 0.875rem;
    padding: 0.625rem 0.875rem;
    border-radius: 8px;
    text-align: right;
}

.ol-join-success[b-jdbembhlfs] {
    background: rgba(34, 197, 94, 0.12);
    color: #4ade80;
    border: 1px solid rgba(34, 197, 94, 0.25);
}

.ol-join-pending[b-jdbembhlfs] {
    background: rgba(234, 179, 8, 0.1);
    color: #fbbf24;
    border: 1px solid rgba(234, 179, 8, 0.25);
}

/* ── Inline join form ── */
.ol-join-form[b-jdbembhlfs] {
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.1));
    border-radius: 12px;
    padding: 1rem;
    width: 280px;
    max-width: 100%;
}

.ol-join-form-title[b-jdbembhlfs] {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-muted, #64748b);
    margin: 0 0 0.75rem;
}

.ol-join-form .form-control[b-jdbembhlfs] {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.1);
    color: var(--text-primary, #f1f5f9);
    font-size: 0.85rem;
}

.ol-join-form .form-control:focus[b-jdbembhlfs] {
    background: rgba(255,255,255,0.09);
    border-color: var(--b9-primary, #16a34a);
    box-shadow: 0 0 0 0.2rem rgba(22,163,74,0.25);
    color: var(--text-primary, #f1f5f9);
}

.ol-join-form .form-control[b-jdbembhlfs]::placeholder {
    color: var(--text-muted, #64748b);
}

.ol-join-form .alert-sm[b-jdbembhlfs] {
    font-size: 0.8rem;
}

@media (max-width: 600px) {
    .ol-join-form[b-jdbembhlfs] {
        width: 100%;
    }

    .ol-join-success[b-jdbembhlfs],
    .ol-join-pending[b-jdbembhlfs] {
        text-align: center;
    }
}

@media (max-width: 600px) {
    .ol-hero-inner[b-jdbembhlfs] {
        flex-direction: column;
    }

    .ol-hero-cta[b-jdbembhlfs] {
        align-items: stretch;
        width: 100%;
    }

    .ol-cta-hint[b-jdbembhlfs] {
        text-align: center;
    }

    /* 🔴 The event's NAME is the one piece of text that says which event it is, and it was the
       piece that got ellipsised: at 375px the two buttons took two thirds of the row and
       "LC Calcutta — Rounds 2–3" rendered as "LC Calcu…", while the DATE wrapped to two lines.
       The layout was spending its width on everything except the thing you read first.

       flex-wrap on its own is a no-op here, which is why .ol-league-card has carried one for ages
       without it ever doing anything: .ol-ec-body is flex:1 with min-width:0, so it shrinks rather
       than wrapping. It has to be told to take the whole line. */
    .ol-event-card[b-jdbembhlfs],
    .ol-league-card[b-jdbembhlfs] {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .ol-ec-body[b-jdbembhlfs] {
        flex-basis: 100%;
    }

    .ol-ec-name[b-jdbembhlfs] {
        /* A name with a line to itself should use it rather than being cut short. */
        white-space: normal;
    }

    .ol-ec-actions[b-jdbembhlfs] {
        width: 100%;
    }

    .ol-ec-actions .btn[b-jdbembhlfs] {
        flex: 1;
    }
}

/* ================================================================
   BODY / SECTIONS
   ================================================================ */
.ol-body[b-jdbembhlfs] {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1.25rem 3rem;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.ol-section[b-jdbembhlfs] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.ol-section-header[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.25rem;
}

.ol-section-title[b-jdbembhlfs] {
    font-size: 0.875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--text-muted, #64748b);
    display: flex;
    align-items: center;
    margin: 0;
}

/* Live pulse dot */
.ol-live-dot[b-jdbembhlfs] {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--success, #22c55e);
    margin-right: 0.625rem;
    animation: ol-pulse-b-jdbembhlfs 1.8s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes ol-pulse-b-jdbembhlfs {
    0%, 100% { opacity: 1; transform: scale(1); }
    50%       { opacity: 0.4; transform: scale(0.75); }
}

/* ================================================================
   EVENT CARDS
   ================================================================ */
.ol-event-list[b-jdbembhlfs] {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
}

.ol-event-card[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    border-radius: 12px;
    transition: background 0.15s, border-color 0.15s;
}

.ol-event-card:hover[b-jdbembhlfs] {
    background: rgba(255,255,255,0.07);
    border-color: rgba(255,255,255,0.1);
}

.ol-card-active[b-jdbembhlfs] {
    border-left: 3px solid var(--success, #22c55e);
}

.ol-card-past[b-jdbembhlfs] {
    border-left: 3px solid var(--b9-border, #334155);
    opacity: 0.88;
}

.ol-past-list .ol-ec-date[b-jdbembhlfs] {
    color: var(--text-muted, #94a3b8);
}

.ol-ec-body[b-jdbembhlfs] {
    flex: 1;
    min-width: 0;
}

.ol-ec-date[b-jdbembhlfs] {
    font-size: 0.8125rem;
    font-weight: 600;
    /* --b9-primary itself is 2.8:1 as text on this card. --b9-primary-text is the palette's
       readable-on-dark variant of the same blue (10.5:1) — no new hue, see the brand lock. */
    color: var(--b9-primary-text, #93C5FD);
    margin-bottom: 0.2rem;
}

.ol-ec-name[b-jdbembhlfs] {
    font-size: 1rem;
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
    text-decoration: none;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.3rem;
}

.ol-ec-name:hover[b-jdbembhlfs] {
    text-decoration: underline;
}

.ol-ec-meta[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.ol-ec-format[b-jdbembhlfs] {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
}

.ol-ec-players[b-jdbembhlfs] {
    font-size: 0.8125rem;
    color: var(--text-secondary, #94a3b8);
}

.ol-ec-full[b-jdbembhlfs] {
    color: #f59e0b;
}

.ol-ec-actions[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.ol-lb-btn[b-jdbembhlfs],
.ol-register-btn[b-jdbembhlfs],
.ol-detail-btn[b-jdbembhlfs] {
    white-space: nowrap;
}

/* ================================================================
   EMPTY STATE
   ================================================================ */
.ol-empty[b-jdbembhlfs] {
    text-align: center;
    padding: 3rem 1rem;
    background: rgba(255,255,255,0.02);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.05));
    border-radius: 14px;
}

.ol-empty-icon[b-jdbembhlfs] {
    font-size: 2.75rem;
    color: var(--text-muted, #64748b);
    display: block;
    margin-bottom: 1rem;
}

.ol-empty-title[b-jdbembhlfs] {
    font-size: 1.0625rem;
    font-weight: 600;
    color: var(--text-secondary, #94a3b8);
    margin: 0 0 0.4rem;
}

.ol-empty-sub[b-jdbembhlfs] {
    font-size: 0.9rem;
    color: var(--text-muted, #64748b);
    margin: 0;
}

/* ── League cards ───────────────────────────────────────────── */
.ol-league-card[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    background: var(--bg-elevated, #1e293b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 0.75rem;
    flex-wrap: wrap;
}

.ol-league-header[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-bottom: 0.3rem;
}

.ol-league-status[b-jdbembhlfs] {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 2px 9px;
    border-radius: 999px;
}

.ol-league-status--active[b-jdbembhlfs] {
    background: var(--success-soft, rgba(34,197,94,0.15));
    color: var(--success-text, #4ade80);
    border: 1px solid rgba(34,197,94,0.25);
}

.ol-league-status--complete[b-jdbembhlfs] {
    background: rgba(148,163,184,0.12);
    color: var(--text-secondary, #94a3b8);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

.ol-league-status--draft[b-jdbembhlfs] {
    background: rgba(255,255,255,0.06);
    color: var(--text-muted, #64748b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}

/* ── Coming soon / starts-soon labels ──────────────────────── */
.ol-ec-starts-soon[b-jdbembhlfs] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--success-text, #4ade80);
}

/* X14 — the same chip, but the day has gone. --success-text is the "go" green this chip wears
   for "Starts today!"; a date that has been and gone is not good news and must not be painted as
   it. Muted, and it keeps the chip's size so the meta row does not jump. */
.ol-ec-starts-soon.ol-ec-date-passed[b-jdbembhlfs] {
    color: var(--b9-text-soft);
}

.ol-coming-soon-badge[b-jdbembhlfs] {
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--warning-text, #fbbf24);
    letter-spacing: 0.03em;
}

.ol-card-coming-soon[b-jdbembhlfs] {
    opacity: 0.88;
    border-style: dashed;
}

/* ── Next round countdown strip on league card ──────────────── */
.ol-next-round[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.45rem;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--text-muted, #64748b);
}

.ol-next-round--live[b-jdbembhlfs] {
    color: var(--success-text, #4ade80);
}

.ol-next-round .ol-live-dot[b-jdbembhlfs] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--success, #22c55e);
    box-shadow: 0 0 6px rgba(34,197,94,.7);
    animation: dot-pulse 1.5s infinite;
    flex-shrink: 0;
}

/* ── Season progress bar ────────────────────────────────────── */
.ol-season-progress[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 0.5rem;
}

.ol-season-bar-wrap[b-jdbembhlfs] {
    flex: 1;
    height: 5px;
    background: rgba(255,255,255,0.08);
    border-radius: 4px;
    overflow: hidden;
    max-width: 140px;
}

.ol-season-bar[b-jdbembhlfs] {
    height: 100%;
    background: linear-gradient(90deg, var(--success, #22c55e), #4ade80);
    border-radius: 4px;
    transition: width 0.4s ease;
}

.ol-season-label[b-jdbembhlfs] {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--text-muted, #64748b);
    white-space: nowrap;
}

/* ── Recent results podium teaser ───────────────────────────── */
.ol-podium-card[b-jdbembhlfs] {
    background: var(--bg-elevated, rgba(255,255,255,0.04));
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 0.75rem;
    padding: 0.85rem 1rem;
    margin-bottom: 0.75rem;
}

.ol-podium-header[b-jdbembhlfs] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    margin-bottom: 0.6rem;
    flex-wrap: wrap;
}

.ol-podium-event[b-jdbembhlfs] {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-secondary, #94a3b8);
}

.ol-podium-date[b-jdbembhlfs] {
    font-size: 0.72rem;
    color: var(--text-muted, #64748b);
}

.ol-podium-entries[b-jdbembhlfs] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.ol-podium-entry[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.ol-podium-medal[b-jdbembhlfs] {
    font-size: 1rem;
    flex-shrink: 0;
    width: 1.4rem;
    text-align: center;
}

.ol-podium-name[b-jdbembhlfs] {
    flex: 1;
    min-width: 0;                 /* without this the ellipsis never fires inside a flex row */
    display: flex;
    flex-direction: column;
    font-weight: 600;
    color: var(--text-primary, #f1f5f9);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* A scramble podium names the team, then the people in it — the reason anyone looks. */
.ol-podium-members[b-jdbembhlfs] {
    display: block;
    font-size: 0.7rem;
    font-weight: 500;
    color: var(--text-muted, #64748b);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ol-podium-score[b-jdbembhlfs] {
    font-weight: 700;
    color: var(--text-secondary, #94a3b8);
    min-width: 2.2rem;
    text-align: right;
}

.ol-podium-relpar[b-jdbembhlfs] {
    font-size: 0.75rem;
    font-weight: 700;
    min-width: 2rem;
    text-align: right;
}

.ol-podium-under[b-jdbembhlfs] { color: var(--success-text, #4ade80); }
.ol-podium-even[b-jdbembhlfs]  { color: var(--text-muted, #64748b); }
.ol-podium-over[b-jdbembhlfs]  { color: var(--danger-text, #f87171); }

/* ── Season highlight reel ──────────────────────────────────── */
.ol-highlight-strip[b-jdbembhlfs] {
    display: flex;
    gap: 0.5rem;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 0.5rem 0 0.75rem;
    flex-wrap: wrap;
}

.ol-highlight-strip[b-jdbembhlfs]::-webkit-scrollbar { display: none; }

.ol-highlight-item[b-jdbembhlfs] {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.8rem;
    background: var(--bg-elevated, rgba(255,255,255,0.05));
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 999px;
    white-space: nowrap;
    font-size: 0.78rem;
    flex-shrink: 0;
}

.ol-highlight-emoji[b-jdbembhlfs] {
    font-size: 0.95rem;
    line-height: 1;
}

.ol-highlight-text[b-jdbembhlfs] {
    font-weight: 600;
    color: var(--text-secondary, #94a3b8);
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.ol-icon-warning[b-jdbembhlfs] { color: var(--warning); }
.ol-icon-success[b-jdbembhlfs] { color: var(--success); }

/* ================================================================
   CLUB PAGE CUSTOMIZATION (OrgPageSettings)
   The org's accent arrives as --ol-accent/--ol-accent-ink on .ol-page
   (service-sanitized #RRGGBB; ink computed for contrast). Layout and
   typography stay Back9Ops — the accent touches buttons and headers.
   ================================================================ */

/* 🔴 --ol-accent-text is the accent LIGHTENED until it reads on a near-black card, so on a white
   one it is the least readable form of the colour there is — a club's forest green arrives as a
   pale mint at about 1.5:1. The server cannot choose between the two: the theme is in the
   visitor's localStorage, not in the request. So it sends both and the THEME picks here.

   🔴 It picks through a THIRD name, and that is not decoration. --ol-accent-text arrives in the
   element's own style="" attribute, and an inline custom property beats any stylesheet rule no
   matter how specific — a rule here that re-declared --ol-accent-text under the light theme would
   never win, and the club page would go on writing the dark-ground value on its white cards while
   every test that only read the stylesheet said it was fixed. Found by driving the page, not by
   reading it. So the rules below consume a name the server never sets.

   The fallback chain in each branch is the same one every other rule in this file uses, for a club
   that set no accent (Lake City is one) or typed something the sanitiser rejected. */
.ol-page[b-jdbembhlfs] {
    --ol-accent-writing: var(--ol-accent-text, var(--b9-primary-text, #93C5FD));
}

html[data-theme="light"] .ol-page[b-jdbembhlfs] {
    --ol-accent-writing: var(--ol-accent-text-light, var(--b9-primary-text, #1E40AF));
}

/* The photo fills the band it now lives inside. An <img> rather than a background so the
   preload scanner can find it — this is the page's largest paint. */
.ol-hero-photo[b-jdbembhlfs] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 0;
}

/* ── The photo case, and ONLY the photo case ──────────────────────
   A club with no hero keeps the band exactly as it was: no scrim, no minimum height, no ink
   override. A 260px darkened rectangle over nothing is not a premium page. */
.ol-hero.has-photo[b-jdbembhlfs] {
    position: relative;
    overflow: hidden;
    /* min-height, never height: the band carries the CTA column AND the inline join form, which
       stack at 375px. A fixed height would clip the form. It also reserves the box, so the image
       arriving costs no layout shift. */
    min-height: clamp(260px, 34vw, 420px);
    /* Over a scrimmed blown-out sky the softer ink needs lifting: #94A3B8 measures ~3.3:1 there,
       #CBD5E1 ~5.3:1. The no-photo band keeps its own value. */
    --ol-hero-ink-soft: #CBD5E1;
}

/* Three stops, not a flat darken — the difference between a photograph and a dark rectangle.
   Only the top ~22% carries no text, so that strip is lightly veiled and the sky still reads as
   sky. Everything below it — the name, the address, the buttons, the hint and the join form —
   sits under 0.72 or more.

   Tuned against the worst case in golf photography, a blown-out white sky, and MEASURED in the
   browser: not the centre pixel under each element, which flatters, but the BRIGHTEST pixel it
   covers, sampled on a grid. A first attempt at 0.35/45% measured 8:1 on centre pixels and only
   3.3:1 on the worst one — the exact trap this project's notes warn about, composite the alpha or
   the measurement lies. The band is also taller on a real desktop (420px at the clamp's top),
   where proportionally more photograph sits above the text. */
.ol-hero.has-photo[b-jdbembhlfs]::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(8,13,22,0.30) 0%,
        rgba(8,13,22,0.72) 22%,
        rgba(8,13,22,0.90) 100%);
    z-index: 1;
    pointer-events: none;
}

.ol-hero.has-photo .ol-hero-inner[b-jdbembhlfs] {
    position: relative;
    z-index: 2;
}

.ol-welcome[b-jdbembhlfs] {
    /* --bg-card and --accent-primary are not tokens in this codebase, so both declarations always
       fell through to a hardcoded dark literal and never flipped. In light mode that put the
       welcome headline — which inherits --text-primary, #1A1A1A — on #101827, at 1.02:1.
       --bg-surface and --brand are real and theme-aware. */
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-left: 4px solid var(--ol-accent, var(--brand));
    border-radius: 12px;
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
}

.ol-welcome-title[b-jdbembhlfs] {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 0.3rem;
}

.ol-welcome-text[b-jdbembhlfs] {
    margin: 0;
    color: var(--text-muted, #94a3b8);
    white-space: pre-line;
}

/* ── Next open tee times strip ── */
.ol-tt-day[b-jdbembhlfs] {
    color: var(--text-muted, #94a3b8);
    font-size: 0.9rem;
}

.ol-tt-strip[b-jdbembhlfs] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-items: stretch;
}

.ol-tt-chip[b-jdbembhlfs] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.1rem;
    min-width: 96px;
    min-height: 56px;
    padding: 0.5rem 0.9rem;
    border-radius: 10px;
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.12));
    background: var(--bg-surface);
    text-decoration: none;
    color: var(--text-primary);
}

.ol-tt-chip:hover[b-jdbembhlfs] {
    border-color: var(--ol-accent, var(--brand));
}

.ol-tt-time[b-jdbembhlfs] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ol-tt-open[b-jdbembhlfs] {
    font-size: 0.78rem;
    color: var(--text-muted, #94a3b8);
}

.ol-tt-more[b-jdbembhlfs] {
    align-self: center;
    padding: 0.5rem 0.9rem;
    /* The accent as TEXT, not the raw accent: --ol-accent-text is lightened until it clears
       AA (ClubPageAccentPalette). The raw value measured 3.1:1 here. */
    color: var(--ol-accent-writing);
    text-decoration: none;
    font-weight: 600;
    min-height: 48px;
    display: flex;
    align-items: center;
}

/* ── The club's accent, where it's safe to speak ── */
.ol-themed[b-jdbembhlfs]  .btn-primary,
.ol-themed .btn-primary[b-jdbembhlfs] {
    background-color: var(--ol-accent);
    border-color: var(--ol-accent);
    color: var(--ol-accent-ink, #ffffff);
}

.ol-themed .ol-section-title[b-jdbembhlfs] {
    border-left: 4px solid var(--ol-accent);
    padding-left: 0.6rem;
}

.ol-themed .ol-welcome[b-jdbembhlfs] {
    border-left-color: var(--ol-accent);
}

/* The date is the one place the accent has to work as lettering, so it takes the derived
   readable form rather than --ol-accent. Borders and fills above keep the raw accent: they
   are decoration, and decoration is not held to the text contrast bar. */
.ol-themed .ol-ec-date[b-jdbembhlfs] {
    color: var(--ol-accent-writing);
}

/* Past events are deliberately de-emphasised, so their date stays muted even for a themed
   club — the accent would pull the eye to the oldest thing on the page. */
.ol-themed .ol-past-list .ol-ec-date[b-jdbembhlfs] {
    color: var(--text-muted, #9FB0C4);
}

/* ── The podium card IS the way into the full board ─────────── */
a.ol-podium-card[b-jdbembhlfs] {
    display: block;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

a.ol-podium-card:hover[b-jdbembhlfs],
a.ol-podium-card:focus-visible[b-jdbembhlfs] {
    border-color: var(--ol-accent, var(--b9-primary, #3b82f6));
    background: var(--bg-raised);   /* --bg-hover is not a token here */
}

a.ol-podium-card:focus-visible[b-jdbembhlfs] {
    outline: 2px solid var(--ol-accent, var(--b9-primary, #3b82f6));
    outline-offset: 2px;
}

.ol-podium-more[b-jdbembhlfs] {
    display: block;
    margin-top: 0.6rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    /* The accent is readable as TEXT only through its -text variant; the raw accent on a dark
       card measures ~3:1. See ClubPageAccentPalette. */
    color: var(--ol-accent-writing);
}

@media (prefers-reduced-motion: reduce) {
    a.ol-podium-card[b-jdbembhlfs] { transition: none; }
}

/* ── When the button cannot say "Register Now", the card says why ─── */
.ol-ec-regnote[b-jdbembhlfs] {
    font-size: 0.78rem;
    color: var(--text-muted, #64748b);
    margin: 0.15rem 0 0.35rem;
}

/* ── When a board last moved, and the card for one nobody closed ─── */
.ol-ec-dateline[b-jdbembhlfs] {
    font-size: 0.72rem;
    color: var(--text-muted, #64748b);
    margin-top: 0.3rem;
    font-variant-numeric: tabular-nums;
}

.ol-card-pending[b-jdbembhlfs] {
    border-left: 3px solid var(--border-subtle, rgba(255,255,255,0.14));
}

/* ── Which course, for a club that has more than one ─────────── */
.ol-course-chips[b-jdbembhlfs] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0 0 0.6rem;
}

.ol-course-chip[b-jdbembhlfs] {
    min-height: 48px;              /* the house touch-target rule */
    padding: 0.4rem 0.9rem;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.12));
}

.ol-course-chip.is-active[b-jdbembhlfs] {
    border-color: var(--ol-accent, var(--brand));
    background: var(--bg-raised);
}

.ol-course-chip:focus-visible[b-jdbembhlfs] {
    outline: 2px solid var(--ol-accent, var(--brand));
    outline-offset: 2px;
}

/* ── The line between a club's live business and its history ─────── */
.ol-subhead[b-jdbembhlfs] {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: var(--text-muted, #64748b);
    margin: 0.9rem 0 0.15rem;
}

/* ── A tee sheet with nothing open still says so ─────────────────── */
.ol-tt-none[b-jdbembhlfs] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    border: 1px dashed var(--border-subtle, rgba(255,255,255,0.14));
    border-radius: 12px;
    background: var(--bg-surface);
}

.ol-tt-none-line[b-jdbembhlfs] {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-secondary);
}

.ol-tt-none-actions[b-jdbembhlfs] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.ol-tt-none-actions .btn[b-jdbembhlfs] {
    min-height: 48px;
}

/* ── What it costs and when you can play ─────────────────────────── */
.ol-tt-facts[b-jdbembhlfs] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.9rem;
    margin: 0 0 0.6rem;
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.ol-tt-fact strong[b-jdbembhlfs] {
    color: var(--text-primary);
    font-weight: 600;
}

.ol-tt-count[b-jdbembhlfs] {
    color: var(--text-muted);
}

/* The course's own words about today — CourseBookingSettings.GolferNote, promoted. */
.ol-tt-note[b-jdbembhlfs] {
    margin: 0 0 0.6rem;
    padding: 0.5rem 0.75rem;
    border-radius: 8px;
    font-size: 0.85rem;
    background: var(--bg-elevated);
    color: var(--text-secondary);
    border-left: 3px solid var(--ol-accent, var(--brand));
}

/* ── The course itself ───────────────────────────────────────────── */
.ol-course-card[b-jdbembhlfs] {
    background: var(--bg-elevated, rgba(255,255,255,0.04));
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
    padding: 0.9rem 1rem;
    margin-bottom: 0.6rem;
}

.ol-course-head[b-jdbembhlfs] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin-bottom: 0.6rem;
}

.ol-course-name[b-jdbembhlfs] {
    font-weight: 700;
    color: var(--text-primary);
}

.ol-course-holes[b-jdbembhlfs] {
    font-size: 0.8rem;
    color: var(--text-muted, #64748b);
}

/* A table is the honest shape for this, so it scrolls inside its own box rather than
   pushing the page sideways on a phone. */
.tablewrap-x[b-jdbembhlfs] {
    overflow-x: auto;
}

.ol-tee-table[b-jdbembhlfs] {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    /* Four of the five columns are numbers that should line up. */
    font-variant-numeric: tabular-nums;
}

.ol-tee-table th[b-jdbembhlfs] {
    text-align: left;
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-muted, #64748b);
    padding: 0.3rem 0.75rem 0.3rem 0;
    white-space: nowrap;
}

.ol-tee-table td[b-jdbembhlfs] {
    padding: 0.35rem 0.75rem 0.35rem 0;
    color: var(--text-secondary);
    border-top: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    white-space: nowrap;
}

.ol-tee-table td:first-child[b-jdbembhlfs] {
    color: var(--text-primary);
    font-weight: 600;
}

/* One quiet line where a 300px empty card used to sit. A club with no tournament this week is
   not shut, and the page should not look like it is. Deliberately NOT .ol-empty: that treatment
   is for a section that genuinely has nothing to say, and this one is a footnote under a page
   that is already carrying the course. */
.ol-quiet-line[b-jdbembhlfs] {
    margin: 0.25rem 0 1.75rem;
    padding: 0.85rem 1rem;
    font-size: 0.9rem;
    color: var(--text-muted);
    background: var(--bg-surface, rgba(255,255,255,0.02));
    border: 1px dashed var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 12px;
}
/* /Components/Pages/PlayerPlus/GameBoardView.razor.rz.scp.css */
/* Shared board view: leaderboard + settlement. Dark-first, readable. */

.gbv-head[b-45rpg8rars] { margin-bottom: 14px; }
.gbv-title[b-45rpg8rars] { font-size: 1.5rem; margin: 0 0 4px; color: var(--text-primary); }
.gbv-meta[b-45rpg8rars] { color: var(--text-muted); font-size: 0.95rem; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.gbv-live[b-45rpg8rars] { display: inline-flex; align-items: center; gap: 6px; font-weight: 800; font-size: 0.78rem; color: var(--text-primary); }
.gbv-dot[b-45rpg8rars] { width: 8px; height: 8px; border-radius: 999px; background: #36d399; display: inline-block; animation: gbv-pulse-b-45rpg8rars 1.6s infinite; }
@keyframes gbv-pulse-b-45rpg8rars { 0%,100% { opacity: 1; } 50% { opacity: 0.35; } }
.gbv-final[b-45rpg8rars] { font-weight: 800; font-size: 0.78rem; color: var(--text-muted); }

.gbv-card[b-45rpg8rars] {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 14px;
}

.gbv-card-title[b-45rpg8rars] {
    font-weight: 700; font-size: 1.1rem; color: var(--text-primary);
    margin-bottom: 10px; display: flex; align-items: center; gap: 8px;
}
.gbv-prelim[b-45rpg8rars], .gbv-brag[b-45rpg8rars] { color: var(--text-muted); }
.gbv-prelim[b-45rpg8rars] { font-size: 0.78rem; font-weight: 600; border: 1px solid var(--border-subtle); border-radius: 999px; padding: 1px 8px; }
.gbv-empty[b-45rpg8rars] { color: var(--text-muted); padding: 16px 0; text-align: center; }
.gbv-waiting[b-45rpg8rars] {
    color: var(--text-muted); font-size: 0.9rem; margin-bottom: 10px;
    padding: 8px 10px; border: 1px solid var(--border-subtle); border-radius: 8px;
    background: var(--bg-surface-subtle, transparent);
}

/* The card contains only static content (no floating menus), so horizontal
   containment is safe: if the table ever exceeds a very narrow phone, the
   card pans instead of the whole page scrolling sideways. */
.gbv-card[b-45rpg8rars] { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.gbv-table[b-45rpg8rars] { width: 100%; border-collapse: collapse; }
.gbv-table th[b-45rpg8rars] {
    text-align: left; color: var(--text-muted); font-weight: 600;
    font-size: 0.82rem; padding: 6px 8px; border-bottom: 1px solid var(--border-subtle);
}
.gbv-table td[b-45rpg8rars] { padding: 10px 8px; color: var(--text-primary); border-bottom: 1px solid var(--border-subtle); }
.gbv-table tr:last-child td[b-45rpg8rars] { border-bottom: none; }
.gbv-pos[b-45rpg8rars] { width: 40px; color: var(--text-muted); }
.gbv-name[b-45rpg8rars] { font-weight: 600; }
.gbv-thru[b-45rpg8rars] { color: var(--text-muted); }
.gbv-num[b-45rpg8rars] { text-align: right; width: 56px; }

/* Rank chip + leader emphasis (mirrors the Game Hub team card). */
.gbv-rank[b-45rpg8rars] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; border-radius: 999px;
    background: var(--bg-raised); color: var(--text-muted);
    font-weight: 800; font-size: 0.85rem;
}
.gbv-rank-leader[b-45rpg8rars] { background: #f59e0b; color: #0b1220; }
.gbv-row-leader td[b-45rpg8rars] { background: rgba(245, 158, 11, 0.12); }

/* Scoped overrides: plain .gbv-up/.gbv-down lose to `.gbv-table td` on specificity. */
.gbv-table td.gbv-up[b-45rpg8rars] { color: #36d399; }
.gbv-table td.gbv-down[b-45rpg8rars] { color: #f87272; }
.gbv-table td.gbv-even[b-45rpg8rars] { color: var(--text-muted); }

.gbv-headline[b-45rpg8rars] { color: var(--text-primary); font-weight: 600; margin-bottom: 10px; }

.gbv-lines[b-45rpg8rars] { display: grid; gap: 6px; }
.gbv-line[b-45rpg8rars] {
    display: grid;
    grid-template-columns: 1fr auto auto;
    gap: 10px;
    align-items: baseline;
    padding: 8px 10px;
    background: var(--bg-raised);
    border-radius: 10px;
}
.gbv-line-name[b-45rpg8rars] { font-weight: 600; color: var(--text-primary); }
.gbv-line-detail[b-45rpg8rars] { color: var(--text-muted); font-size: 0.85rem; text-align: right; }
.gbv-line-amt[b-45rpg8rars] { font-weight: 800; font-variant-numeric: tabular-nums; min-width: 72px; text-align: right; }
.gbv-up[b-45rpg8rars] { color: #36d399; }
.gbv-down[b-45rpg8rars] { color: #f87272; }
.gbv-even[b-45rpg8rars] { color: var(--text-muted); }

.gbv-settle[b-45rpg8rars] { margin-top: 14px; border-top: 1px solid var(--border-subtle); padding-top: 12px; }
.gbv-settle-title[b-45rpg8rars] { font-weight: 600; color: var(--text-muted); margin-bottom: 8px; font-size: 0.9rem; }
.gbv-transfer[b-45rpg8rars] { color: var(--text-primary); padding: 6px 0; }
.gbv-transfer-amt[b-45rpg8rars] { font-weight: 800; margin-left: 4px; }

.gbv-brag[b-45rpg8rars] { display: flex; align-items: center; gap: 10px; }

/* Narrow phones: tighter cells so the 6-column board fits without panning. */
@media (max-width: 380px) {
    .gbv-card[b-45rpg8rars] { padding: 12px 10px; }
    .gbv-table th[b-45rpg8rars] { padding: 6px 5px; }
    .gbv-table td[b-45rpg8rars] { padding: 10px 5px; }
    .gbv-pos[b-45rpg8rars] { width: 30px; }
    .gbv-num[b-45rpg8rars] { width: 44px; }
}

/* "Settle up" links — authenticated board only. Provider chips that open the payee's own app. */
.gbv-settle-up[b-45rpg8rars] { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 6px; }
.gbv-settle-lead[b-45rpg8rars] { font-size: 0.8rem; color: var(--text-muted); }
.gbv-settle-link[b-45rpg8rars] {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    font-size: 0.8rem;
    font-weight: 600;
    border: 1px solid var(--border-default);
    border-radius: 999px;
    color: var(--brand-text, #56c7ff);
    text-decoration: none;
}
.gbv-settle-link:hover[b-45rpg8rars] { background: var(--bg-elevated); }
.gbv-settle-copy[b-45rpg8rars] { font-size: 0.8rem; color: var(--text-muted); }
.gbv-settle-copy code[b-45rpg8rars] { color: var(--text-primary); }
.gbv-settle-note[b-45rpg8rars] { margin-top: 8px; font-size: 0.72rem; color: var(--text-muted); }
/* /Components/Pages/PlayerPlus/GameHubPage.razor.rz.scp.css */
/* Game hub — host controls + share + players. Dark-first, 48px targets. */

.gh-wrap[b-8r6z654uak] { max-width: 680px; margin: 0 auto; padding: 16px 16px 64px; }

.gh-missing[b-8r6z654uak] { max-width: 480px; margin: 48px auto; text-align: center; color: var(--text-primary); display: grid; gap: 10px; justify-items: center; }

.gh-back[b-8r6z654uak] { color: var(--text-muted); text-decoration: none; font-size: 0.95rem; display: inline-flex; gap: 6px; align-items: center; min-height: 40px; }
.gh-back:hover[b-8r6z654uak] { color: var(--text-primary); }

.gh-head[b-8r6z654uak] { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }

.gh-title[b-8r6z654uak] { font-size: 1.45rem; margin: 2px 0 4px; color: var(--text-primary); }
.gh-meta[b-8r6z654uak] { color: var(--text-muted); font-size: 0.95rem; }
.gh-stakes[b-8r6z654uak] { margin-top: 2px; font-weight: 600; color: var(--text-primary); }

.gh-status[b-8r6z654uak] {
    flex: 0 0 auto;
    font-size: 0.8rem; font-weight: 700;
    padding: 4px 12px; border-radius: 999px;
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
}
.gh-status-active[b-8r6z654uak] { background: var(--success-soft); }
.gh-status-draft[b-8r6z654uak], .gh-status-open[b-8r6z654uak] { background: var(--bg-raised); }
.gh-status-closed[b-8r6z654uak] { background: var(--bg-raised); color: var(--text-muted); }
/* Active but its day has passed — waiting on the host to finish it, not being played. */
.gh-status-unfinished[b-8r6z654uak] { background: var(--warning-soft); }

.gh-error[b-8r6z654uak], .gh-notice[b-8r6z654uak] {
    display: flex; gap: 10px; align-items: center;
    border: 1px solid var(--border-subtle);
    border-radius: 12px; padding: 12px 14px; margin: 10px 0;
    color: var(--text-primary);
}
.gh-error[b-8r6z654uak] { background: var(--warning-soft); }
.gh-notice[b-8r6z654uak] { background: var(--success-soft); }

.gh-actions[b-8r6z654uak] { display: grid; gap: 10px; margin: 14px 0 18px; }

.gh-btn[b-8r6z654uak] {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 50px; padding: 0 20px;
    border-radius: 12px; font-size: 1.02rem; font-weight: 700;
    cursor: pointer; text-decoration: none; border: 1px solid transparent;
}
.gh-btn-primary[b-8r6z654uak] { background: var(--brand); color: #fff; }
.gh-btn-primary:hover[b-8r6z654uak] { background: var(--brand-hover); }
.gh-btn-secondary[b-8r6z654uak] { background: var(--bg-raised); color: var(--text-primary); border-color: var(--border-subtle); }
.gh-btn:disabled[b-8r6z654uak] { opacity: 0.55; cursor: default; }
.gh-wide[b-8r6z654uak] { width: 100%; }

.gh-card[b-8r6z654uak] {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    padding: 18px;
    margin-bottom: 16px;
}

.gh-card-title[b-8r6z654uak] { font-weight: 700; font-size: 1.1rem; color: var(--text-primary); }
.gh-count[b-8r6z654uak] { color: var(--text-muted); font-weight: 500; font-size: 0.92rem; }
.gh-card-sub[b-8r6z654uak] { color: var(--text-muted); font-size: 0.95rem; margin: 6px 0 10px; }
.gh-spectate-sub[b-8r6z654uak] { margin-top: 14px; }

.gh-linkrow[b-8r6z654uak] { display: flex; flex-wrap: wrap; gap: 8px; }

.gh-link[b-8r6z654uak] {
    flex: 1 1 10rem;
    min-width: 0; /* the link input shrinks; Copy wraps below on tiny phones */
    min-height: 48px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    color: var(--text-muted);
    padding: 0 12px;
    font-size: 0.88rem;
    text-overflow: ellipsis;
}

.gh-players[b-8r6z654uak] { display: grid; gap: 6px; margin-top: 10px; }

.gh-player[b-8r6z654uak] {
    display: flex; justify-content: space-between; align-items: center; gap: 10px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    padding: 10px 14px;
    min-height: 56px;
    flex-wrap: wrap;
}

.gh-player-name[b-8r6z654uak] { font-weight: 600; color: var(--text-primary); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.gh-player-right[b-8r6z654uak] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

.gh-chip[b-8r6z654uak] {
    font-size: 0.72rem; font-weight: 700;
    background: var(--brand-soft);
    color: var(--text-primary);
    padding: 1px 8px; border-radius: 999px;
}
.gh-chip-muted[b-8r6z654uak] { background: var(--bg-surface); border: 1px solid var(--border-subtle); color: var(--text-muted); }

.gh-hcp[b-8r6z654uak] { color: var(--text-muted); font-size: 0.9rem; }

.gh-mini[b-8r6z654uak] {
    background: none; border: 1px solid var(--border-subtle);
    color: var(--text-primary);
    border-radius: 999px; padding: 4px 12px;
    min-height: 36px;
    cursor: pointer; font-size: 0.85rem;
}
.gh-mini-muted[b-8r6z654uak] { color: var(--text-muted); }

.gh-addguest[b-8r6z654uak] { margin-top: 16px; border-top: 1px solid var(--border-subtle); padding-top: 14px; }
.gh-addguest-title[b-8r6z654uak] { font-weight: 600; color: var(--text-primary); margin-bottom: 8px; }

.gh-addguest-row[b-8r6z654uak] { display: flex; gap: 8px; flex-wrap: wrap; }

.gh-input[b-8r6z654uak] {
    flex: 1; min-width: 110px;
    min-height: 48px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    color: var(--text-primary);
    padding: 0 12px; font-size: 0.98rem;
}
.gh-input:focus[b-8r6z654uak] { outline: none; border-color: var(--brand-soft); }
.gh-hcp-input[b-8r6z654uak] { max-width: 90px; flex: 0 0 auto; }

.gh-hint[b-8r6z654uak] { color: var(--text-muted); font-size: 0.88rem; margin-top: 8px; }
.gh-center[b-8r6z654uak] { text-align: center; }

/* ── Teams (Scramble / Best Ball) ── */
.gh-team-auto[b-8r6z654uak] { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }
.gh-team-auto .gh-hint[b-8r6z654uak] { margin-top: 0; }

/* Elite team card: identity color, rank circle, and live score once started. */
.gh-team-card[b-8r6z654uak] {
    display: flex; align-items: center; gap: 12px;
    background: var(--gh-accent-soft, var(--bg-raised));
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    padding: 12px 14px;
    margin-bottom: 8px;
}
.gh-team-rank[b-8r6z654uak] {
    flex: 0 0 auto;
    width: 34px; height: 34px; border-radius: 999px;
    background: var(--gh-accent, var(--brand));
    color: var(--bg-surface);
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 0.95rem;
}
.gh-team-main[b-8r6z654uak] { flex: 1 1 auto; min-width: 0; }
.gh-team-headline[b-8r6z654uak] { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gh-team-name[b-8r6z654uak] { font-weight: 700; color: var(--text-primary); }
.gh-team-leading[b-8r6z654uak] {
    font-size: 0.7rem; font-weight: 700;
    color: var(--gh-accent-text, var(--text-primary));
    background: color-mix(in srgb, var(--gh-accent) 22%, transparent);
    padding: 2px 9px; border-radius: 999px;
}
.gh-team-memberline[b-8r6z654uak] { color: var(--text-muted); font-size: 0.9rem; margin-top: 2px; }
.gh-team-members[b-8r6z654uak] { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.gh-team-score[b-8r6z654uak] { flex: 0 0 auto; text-align: right; line-height: 1; }
.gh-team-vspar[b-8r6z654uak] { font-weight: 800; font-size: 1.3rem; }
.gh-team-thru[b-8r6z654uak] { color: var(--text-muted); font-size: 0.78rem; margin-top: 4px; }
.gh-score-under[b-8r6z654uak] { color: #86EFAC; }
.gh-score-over[b-8r6z654uak] { color: #FCA5A5; }
.gh-score-even[b-8r6z654uak] { color: var(--text-primary); }
.gh-team-chip[b-8r6z654uak] {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--brand-soft);
    color: var(--text-primary);
    border-radius: 999px; padding: 5px 10px;
    font-size: 0.9rem;
}
.gh-chip-x[b-8r6z654uak] {
    background: none; border: none; cursor: pointer;
    color: var(--text-muted); font-size: 1.05rem; line-height: 1;
    padding: 0 2px; min-width: 24px; min-height: 24px;
}
.gh-chip-x:hover[b-8r6z654uak] { color: var(--text-primary); }

.gh-unassigned[b-8r6z654uak] { margin-top: 12px; border-top: 1px solid var(--border-subtle); padding-top: 12px; }
.gh-assign-row[b-8r6z654uak] {
    display: flex; gap: 10px; align-items: center; justify-content: space-between;
    flex-wrap: wrap; margin-bottom: 8px;
}
.gh-assign-name[b-8r6z654uak] { font-weight: 600; color: var(--text-primary); }
.gh-assign-actions[b-8r6z654uak] { display: flex; gap: 6px; flex-wrap: wrap; }
.gh-mini-primary[b-8r6z654uak] { border-color: var(--brand-soft); color: var(--brand-text, var(--text-primary)); }
/* /Components/Pages/PlayerPlus/JoinGamePage.razor.rz.scp.css */
/* Join-by-link landing — centered card, works signed-out, dark-first. */

.jg-shell[b-5uk95sglv5] {
    min-height: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    background: var(--bg-elevated, #0d1117);
}

.jg-card[b-5uk95sglv5] {
    width: 100%;
    max-width: 420px;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 20px;
    padding: 30px 24px;
    text-align: center;
    display: grid;
    gap: 12px;
    justify-items: center;
}

.jg-loading[b-5uk95sglv5] { color: var(--text-muted); padding: 24px 0; }

.jg-badge[b-5uk95sglv5] {
    width: 56px; height: 56px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 999px;
    background: var(--brand-soft);
    color: var(--text-primary);
    font-size: 1.5rem;
}
.jg-badge-dead[b-5uk95sglv5] { background: var(--bg-raised); color: var(--text-muted); }

.jg-kicker[b-5uk95sglv5] {
    color: var(--text-muted);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.jg-title[b-5uk95sglv5] { font-size: 1.4rem; margin: 0; color: var(--text-primary); }

.jg-sub[b-5uk95sglv5] { color: var(--text-muted); margin: 0; font-size: 1rem; }

.jg-error[b-5uk95sglv5] {
    width: 100%;
    background: var(--warning-soft);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    padding: 10px 14px;
    color: var(--text-primary);
    font-size: 0.95rem;
}

.jg-btn[b-5uk95sglv5] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 100%;
    min-height: 50px;
    border-radius: 12px;
    font-size: 1.02rem; font-weight: 700;
    text-decoration: none; cursor: pointer;
    border: 1px solid transparent;
}
.jg-btn-primary[b-5uk95sglv5] { background: var(--brand); color: #fff; }
.jg-btn-primary:hover[b-5uk95sglv5] { background: var(--brand-hover); }
.jg-btn-primary:disabled[b-5uk95sglv5] { opacity: 0.6; cursor: default; }
.jg-btn-secondary[b-5uk95sglv5] { background: var(--bg-raised); color: var(--text-primary); border-color: var(--border-subtle); }

.jg-fine[b-5uk95sglv5] { color: var(--text-muted); font-size: 0.88rem; margin: 2px 0 0; }
/* /Components/Pages/PlayerPlus/MyGamesPage.razor.rz.scp.css */
/* My Games list — dark-first, big targets. */

.pg-wrap[b-pzof3ok1xn] { max-width: 760px; margin: 0 auto; padding: 16px 16px 48px; }

.pg-empty[b-pzof3ok1xn] { max-width: 560px; margin: 48px auto; text-align: center; color: var(--text-primary); }

.pg-header[b-pzof3ok1xn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 0 16px;
}

.pg-title[b-pzof3ok1xn] { font-size: 1.5rem; margin: 0; color: var(--text-primary); }

.pg-btn[b-pzof3ok1xn] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 0 20px;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
}

.pg-btn-primary[b-pzof3ok1xn] { background: var(--brand); color: #fff; }
.pg-btn-primary:hover[b-pzof3ok1xn] { background: var(--brand-hover); }
.pg-btn-secondary[b-pzof3ok1xn] { background: var(--bg-raised); color: var(--text-primary); border-color: var(--border-subtle); }

.pg-upsell[b-pzof3ok1xn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    background: var(--bg-surface);
    border: 1px solid var(--brand-soft);
    border-radius: 16px;
    padding: 18px;
    margin-bottom: 18px;
    flex-wrap: wrap;
}

.pg-upsell-title[b-pzof3ok1xn] { font-weight: 700; font-size: 1.1rem; color: var(--text-primary); }
.pg-upsell-sub[b-pzof3ok1xn] { color: var(--text-muted); margin-top: 2px; max-width: 420px; }

.pg-none[b-pzof3ok1xn] {
    text-align: center;
    color: var(--text-muted);
    padding: 48px 16px;
    font-size: 1.05rem;
}
.pg-none i[b-pzof3ok1xn] { font-size: 2rem; display: block; margin-bottom: 8px; }
.pg-none-sub[b-pzof3ok1xn] { font-size: 0.95rem; }

.pg-list[b-pzof3ok1xn] { display: grid; gap: 10px; }

.pg-card[b-pzof3ok1xn] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    padding: 16px;
    text-decoration: none;
    min-height: 64px;
}
.pg-card:hover[b-pzof3ok1xn] { border-color: var(--brand-soft); }

.pg-card-name[b-pzof3ok1xn] { font-weight: 700; font-size: 1.05rem; color: var(--text-primary); }
.pg-card-meta[b-pzof3ok1xn] { color: var(--text-muted); font-size: 0.92rem; margin-top: 2px; }

.pg-card-side[b-pzof3ok1xn] {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex: 0 0 auto;
}

.pg-status[b-pzof3ok1xn] {
    font-size: 0.78rem;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 999px;
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
}
.pg-status-active[b-pzof3ok1xn] { background: var(--success-soft); }
.pg-status-draft[b-pzof3ok1xn], .pg-status-open[b-pzof3ok1xn] { background: var(--bg-raised); }
.pg-status-closed[b-pzof3ok1xn] { background: var(--bg-raised); color: var(--text-muted); }
/* An Active game whose day has passed: nobody is playing it, but it is not finished either — it is
   waiting on the host. Amber rather than the green "live" pill, which was the whole bug. */
.pg-status-unfinished[b-pzof3ok1xn] { background: var(--warning-soft); }

.pg-card-count[b-pzof3ok1xn] { color: var(--text-muted); font-size: 0.85rem; }

.pg-host-chip[b-pzof3ok1xn] {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--text-muted);
    border: 1px solid var(--border-subtle);
    padding: 1px 8px;
    border-radius: 999px;
}
/* /Components/Pages/PlayerPlus/NewGamePage.razor.rz.scp.css */
/* New game wizard — one calm page, numbered steps, dark-first. */

.ng-wrap[b-e5fbb4eh8o] { max-width: 640px; margin: 0 auto; padding: 16px 16px 64px; }

.ng-gate[b-e5fbb4eh8o] { max-width: 480px; margin: 48px auto; text-align: center; color: var(--text-primary); display: grid; gap: 12px; justify-items: center; }

.ng-back[b-e5fbb4eh8o] { color: var(--text-muted); text-decoration: none; font-size: 0.95rem; display: inline-flex; gap: 6px; align-items: center; min-height: 40px; }
.ng-back:hover[b-e5fbb4eh8o] { color: var(--text-primary); }

.ng-title[b-e5fbb4eh8o] { font-size: 1.5rem; margin: 4px 0 14px; color: var(--text-primary); }

.ng-error[b-e5fbb4eh8o] {
    display: flex; gap: 10px; align-items: center;
    background: var(--warning-soft);
    border: 1px solid var(--border-subtle);
    border-radius: 12px; padding: 12px 14px; margin-bottom: 14px;
    color: var(--text-primary);
}

.ng-section[b-e5fbb4eh8o] { margin-bottom: 22px; }

.ng-label[b-e5fbb4eh8o] { font-weight: 700; color: var(--text-primary); margin-bottom: 10px; font-size: 1.02rem; }
.ng-sublabel[b-e5fbb4eh8o] { font-weight: 600; color: var(--text-muted); margin: 12px 0 8px; }

.ng-formats[b-e5fbb4eh8o] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 560px) { .ng-formats[b-e5fbb4eh8o] { grid-template-columns: 1fr; } }

.ng-format[b-e5fbb4eh8o] {
    display: grid; gap: 4px; text-align: left;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 14px; padding: 14px;
    cursor: pointer; min-height: 72px;
    color: var(--text-primary);
}
.ng-format-on[b-e5fbb4eh8o] { border-color: var(--brand-soft); background: var(--bg-raised); box-shadow: 0 0 0 1px var(--brand-soft) inset; }
.ng-format-name[b-e5fbb4eh8o] { font-weight: 800; font-size: 1.02rem; }
.ng-format-blurb[b-e5fbb4eh8o] { color: var(--text-muted); font-size: 0.88rem; }

.ng-input[b-e5fbb4eh8o] {
    width: 100%;
    min-height: 48px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    color: var(--text-primary);
    padding: 0 14px;
    font-size: 1rem;
}
.ng-input:focus[b-e5fbb4eh8o] { outline: none; border-color: var(--brand-soft); }
.ng-date[b-e5fbb4eh8o] { max-width: 220px; }

.ng-hint[b-e5fbb4eh8o] { color: var(--text-muted); font-size: 0.9rem; margin-top: 8px; }
.ng-center[b-e5fbb4eh8o] { text-align: center; }

.ng-results[b-e5fbb4eh8o] { display: grid; gap: 8px; margin-top: 10px; }

.ng-result[b-e5fbb4eh8o] {
    display: flex; justify-content: space-between; gap: 10px; align-items: center;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 12px; padding: 12px 14px;
    cursor: pointer; min-height: 52px; text-align: left;
    color: var(--text-primary);
}
.ng-result:hover[b-e5fbb4eh8o] { border-color: var(--brand-soft); }
.ng-result-name[b-e5fbb4eh8o] { font-weight: 600; }
.ng-result-loc[b-e5fbb4eh8o] { color: var(--text-muted); font-size: 0.9rem; flex: 0 0 auto; }

.ng-picked[b-e5fbb4eh8o] {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    background: var(--bg-raised);
    border: 1px solid var(--brand-soft);
    border-radius: 12px; padding: 12px 14px;
}
.ng-picked-name[b-e5fbb4eh8o] { font-weight: 700; color: var(--text-primary); }
.ng-picked-loc[b-e5fbb4eh8o] { color: var(--text-muted); font-size: 0.9rem; }
.ng-change[b-e5fbb4eh8o] { background: none; border: none; color: var(--text-muted); text-decoration: underline; cursor: pointer; min-height: 40px; }

.ng-tees[b-e5fbb4eh8o] { display: flex; flex-wrap: wrap; gap: 8px; }
.ng-tee[b-e5fbb4eh8o] {
    min-height: 44px; padding: 0 16px;
    border-radius: 999px;
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    color: var(--text-primary);
    cursor: pointer; font-size: 0.95rem;
}
.ng-tee-on[b-e5fbb4eh8o] { border-color: var(--brand-soft); background: var(--bg-raised); box-shadow: 0 0 0 1px var(--brand-soft) inset; }

.ng-money[b-e5fbb4eh8o] { display: flex; align-items: center; gap: 10px; }
.ng-money-prefix[b-e5fbb4eh8o], .ng-money-suffix[b-e5fbb4eh8o] { color: var(--text-primary); font-weight: 600; }
.ng-money-input[b-e5fbb4eh8o] { max-width: 120px; text-align: right; }

.ng-toggle[b-e5fbb4eh8o] {
    display: flex; align-items: center; gap: 10px;
    margin-top: 14px; color: var(--text-primary); cursor: pointer;
    min-height: 44px; font-size: 1rem;
}
.ng-toggle input[b-e5fbb4eh8o] { width: 20px; height: 20px; }

.ng-btn[b-e5fbb4eh8o] {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 50px; padding: 0 22px;
    border-radius: 12px; font-size: 1.05rem; font-weight: 700;
    cursor: pointer; text-decoration: none; border: 1px solid transparent;
}
.ng-btn-primary[b-e5fbb4eh8o] { background: var(--brand); color: #fff; }
.ng-btn-primary:hover[b-e5fbb4eh8o] { background: var(--brand-hover); }
.ng-btn-primary:disabled[b-e5fbb4eh8o] { opacity: 0.55; cursor: default; }
.ng-btn-secondary[b-e5fbb4eh8o] { background: var(--bg-raised); color: var(--text-primary); border-color: var(--border-subtle); }

.ng-create[b-e5fbb4eh8o] { width: 100%; margin-top: 6px; }
/* /Components/Pages/PlayerPlus/PlayerPlusPage.razor.rz.scp.css */
/* Player+ upgrade/manage page — dark-first, token-based, grandmother-readable. */

.pp-wrap[b-wxyd3bkr7s] {
    max-width: 760px;
    margin: 0 auto;
    padding: 16px 16px 48px;
}

.pp-empty[b-wxyd3bkr7s] {
    max-width: 560px;
    margin: 48px auto;
    text-align: center;
    color: var(--text-primary);
}

/* ── Hero ── */
.pp-hero[b-wxyd3bkr7s] { text-align: center; padding: 24px 8px 8px; }

.pp-hero-badge[b-wxyd3bkr7s] {
    display: inline-block;
    padding: 4px 14px;
    border-radius: 999px;
    background: var(--brand-soft);
    color: var(--text-primary);
    font-weight: 700;
    letter-spacing: 0.12em;
    font-size: 0.8rem;
}

.pp-hero-title[b-wxyd3bkr7s] {
    margin: 14px 0 8px;
    font-size: 1.7rem;
    line-height: 1.25;
    color: var(--text-primary);
}

.pp-hero-sub[b-wxyd3bkr7s] {
    color: var(--text-muted);
    font-size: 1.05rem;
    max-width: 540px;
    margin: 0 auto;
}

/* ── Banners ── */
.pp-banner[b-wxyd3bkr7s] {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 16px 0;
    padding: 12px 16px;
    border-radius: 12px;
    font-size: 1rem;
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
}
.pp-banner-info[b-wxyd3bkr7s] { background: var(--bg-raised); }
.pp-banner-warn[b-wxyd3bkr7s] { background: var(--warning-soft); }

.pp-link[b-wxyd3bkr7s] {
    background: none;
    border: none;
    color: var(--text-primary);
    text-decoration: underline;
    cursor: pointer;
    font-size: 1rem;
    padding: 4px 8px;
    min-height: 32px;
}

/* ── Cards ── */
.pp-card[b-wxyd3bkr7s] {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    padding: 20px;
}

.pp-prices[b-wxyd3bkr7s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-top: 18px;
}

@media (max-width: 640px) {
    .pp-prices[b-wxyd3bkr7s] { grid-template-columns: 1fr; }
}

.pp-price-card[b-wxyd3bkr7s] { text-align: center; position: relative; }

.pp-price-best[b-wxyd3bkr7s] { border-color: var(--brand-soft); }

.pp-price-flag[b-wxyd3bkr7s] {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--brand-soft);
    color: var(--text-primary);
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 3px 12px;
    white-space: nowrap;
}

.pp-price-name[b-wxyd3bkr7s] { color: var(--text-muted); font-weight: 600; margin-bottom: 4px; }

.pp-price-amount[b-wxyd3bkr7s] {
    font-size: 2rem;
    font-weight: 800;
    color: var(--text-primary);
}

.pp-price-per[b-wxyd3bkr7s] { font-size: 1rem; font-weight: 500; color: var(--text-muted); }

.pp-price-perks[b-wxyd3bkr7s] {
    list-style: none;
    padding: 0;
    margin: 14px 0 18px;
    color: var(--text-primary);
    font-size: 0.98rem;
    display: grid;
    gap: 6px;
}

/* ── Buttons (48px touch targets) ── */
.pp-btn[b-wxyd3bkr7s] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 22px;
    border-radius: 12px;
    font-size: 1.02rem;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
    border: 1px solid transparent;
    width: 100%;
}

.pp-btn-primary[b-wxyd3bkr7s] {
    background: var(--brand);
    color: #fff;
}
.pp-btn-primary:hover[b-wxyd3bkr7s] { background: var(--brand-hover); }
.pp-btn-primary:disabled[b-wxyd3bkr7s] { opacity: 0.6; cursor: default; }

.pp-btn-secondary[b-wxyd3bkr7s] {
    background: var(--bg-raised);
    color: var(--text-primary);
    border-color: var(--border-subtle);
}

/* ── Active state ── */
.pp-active-card[b-wxyd3bkr7s] { margin-top: 18px; }

.pp-active-row[b-wxyd3bkr7s] { display: flex; gap: 14px; align-items: flex-start; }

.pp-active-check[b-wxyd3bkr7s] { font-size: 1.6rem; color: var(--text-primary); }

.pp-active-title[b-wxyd3bkr7s] { font-size: 1.15rem; font-weight: 700; color: var(--text-primary); }

.pp-active-sub[b-wxyd3bkr7s] { color: var(--text-muted); margin-top: 2px; }

.pp-pastdue[b-wxyd3bkr7s] { color: var(--text-primary); }

.pp-active-actions[b-wxyd3bkr7s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 16px;
}

@media (max-width: 520px) {
    .pp-active-actions[b-wxyd3bkr7s] { grid-template-columns: 1fr; }
}

/* ── Free-week (no-card trial) ── */
.pp-trial-card[b-wxyd3bkr7s] { text-align: center; margin-top: 18px; }

.pp-trial-badge[b-wxyd3bkr7s] {
    display: inline-block;
    padding: 4px 14px;
    border-radius: 999px;
    background: var(--brand-soft);
    color: var(--text-primary);
    font-weight: 700;
    font-size: 0.82rem;
}

.pp-trial-title[b-wxyd3bkr7s] {
    margin: 12px 0 6px;
    font-size: 1.4rem;
    color: var(--text-primary);
}

.pp-trial-card .pp-price-perks[b-wxyd3bkr7s] { justify-items: center; }

.pp-btn-lg[b-wxyd3bkr7s] { min-height: 54px; font-size: 1.08rem; }

/* ── Keep hosting (trial → paid) ── */
.pp-keep[b-wxyd3bkr7s] {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--border-subtle);
}

.pp-keep-title[b-wxyd3bkr7s] {
    color: var(--text-primary);
    font-weight: 600;
    margin-bottom: 10px;
}

.pp-keep-actions[b-wxyd3bkr7s] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

@media (max-width: 520px) {
    .pp-keep-actions[b-wxyd3bkr7s] { grid-template-columns: 1fr; }
}

.pp-keep .pp-fineprint[b-wxyd3bkr7s] { margin-top: 10px; }

/* ── How it works ── */
.pp-how[b-wxyd3bkr7s] { margin-top: 34px; }

.pp-how-title[b-wxyd3bkr7s] { font-size: 1.15rem; color: var(--text-primary); margin-bottom: 12px; }

.pp-how-grid[b-wxyd3bkr7s] { display: grid; gap: 10px; }

.pp-how-step[b-wxyd3bkr7s] {
    display: flex;
    gap: 12px;
    align-items: center;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    border-radius: 12px;
    padding: 12px 14px;
    color: var(--text-primary);
    font-size: 1rem;
}

.pp-how-num[b-wxyd3bkr7s] {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: var(--brand-soft);
    font-weight: 800;
}

.pp-fineprint[b-wxyd3bkr7s] {
    color: var(--text-muted);
    font-size: 0.9rem;
    text-align: center;
    margin-top: 12px;
}
/* /Components/Pages/PlayerPlus/WatchGamePage.razor.rz.scp.css */
/* No-account spectator view — full-bleed, dark, works signed-out. */

.wg-shell[b-ogrskxzbev] {
    min-height: 100dvh;
    background: var(--bg-elevated, #0d1117);
    padding: 16px;
}

.wg-inner[b-ogrskxzbev] { max-width: 680px; margin: 0 auto; }

.wg-loading[b-ogrskxzbev] { color: var(--text-muted); text-align: center; padding: 60px 0; }

.wg-dead[b-ogrskxzbev] { text-align: center; color: var(--text-primary); padding: 48px 16px; display: grid; gap: 10px; justify-items: center; }
.wg-badge[b-ogrskxzbev] {
    width: 56px; height: 56px; border-radius: 999px;
    display: flex; align-items: center; justify-content: center;
    background: var(--bg-raised); color: var(--text-muted); font-size: 1.5rem;
}
.wg-cta[b-ogrskxzbev], .wg-join[b-ogrskxzbev] {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 48px; padding: 0 20px; border-radius: 12px;
    background: var(--brand); color: #fff;
    text-decoration: none; font-weight: 700;
}

.wg-foot[b-ogrskxzbev] { text-align: center; margin-top: 18px; display: grid; gap: 12px; justify-items: center; }
.wg-livenote[b-ogrskxzbev] { color: var(--text-muted); display: inline-flex; align-items: center; gap: 8px; }
.wg-dot[b-ogrskxzbev] { width: 8px; height: 8px; border-radius: 999px; background: #36d399; display: inline-block; }
.wg-join[b-ogrskxzbev] { background: var(--bg-surface); border: 1px solid var(--border-subtle); }
/* /Components/Pages/Players/Create.razor.rz.scp.css */
/* Extracted inline styles (Blazor audit Batch G). */
.pc-container[b-qk4498vwa7] { max-width: 640px; }
.pc-flex-grow[b-qk4498vwa7] { flex: 1; }
/* /Components/Pages/Players/Detail.razor.rz.scp.css */
/* ================================================================
   PLAYER DETAIL — scoped styles
   Tab bar + tournament history cards
================================================================ */

/* ── Tab Bar ─────────────────────────────────────────────────── */

.player-tabs[b-r2g50hiesu] {
    display: flex;
    gap: 2px;
    border-bottom: 2px solid var(--b9-border);
    margin-bottom: 1.25rem;
}

.player-tab[b-r2g50hiesu] {
    background: none;
    border: none;
    padding: 0.5rem 1.125rem 0.625rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--b9-text-muted);
    cursor: pointer;
    position: relative;
    border-radius: 0;
    transition: color 0.14s ease;
    display: flex;
    align-items: center;
    gap: 4px;
}

.player-tab:hover[b-r2g50hiesu] {
    color: var(--b9-text);
}

.player-tab.active[b-r2g50hiesu] {
    color: var(--b9-primary-text);
}

.player-tab.active[b-r2g50hiesu]::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--b9-primary);
    border-radius: 2px 2px 0 0;
}

.tab-count[b-r2g50hiesu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--b9-primary-soft);
    color: var(--b9-primary-text);
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    margin-left: 2px;
}

/* ── History Summary Chips ───────────────────────────────────── */

.history-summary[b-r2g50hiesu] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.stat-chip[b-r2g50hiesu] {
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    border-radius: 8px;
    padding: 0.35rem 0.875rem;
    font-size: 0.8rem;
    color: var(--b9-text-muted);
    line-height: 1.5;
}

.stat-chip strong[b-r2g50hiesu] {
    color: var(--b9-text);
    font-weight: 700;
}

/* ── History Event Cards ─────────────────────────────────────── */

.history-card[b-r2g50hiesu] {
    background: var(--b9-card-bg);
    border: 1px solid var(--b9-card-border);
    border-radius: var(--b9-card-radius);
    padding: 0.875rem 1.125rem;
    margin-bottom: 0.5rem;
    box-shadow: var(--b9-card-shadow);
    transition: box-shadow 0.14s ease;
}

.history-card:hover[b-r2g50hiesu] {
    box-shadow: var(--b9-card-shadow-md);
}

.hc-top[b-r2g50hiesu] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.5rem;
    margin-bottom: 0.3rem;
    flex-wrap: wrap;
}

.hc-event-name[b-r2g50hiesu] {
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--b9-text);
    line-height: 1.3;
    flex: 1 1 200px;
}

.hc-badges[b-r2g50hiesu] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    flex-shrink: 0;
}

/* Base badge */
.hc-badge[b-r2g50hiesu] {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    padding: 0.2em 0.55em;
    border-radius: 5px;
    line-height: 1.4;
}

.badge-fmt[b-r2g50hiesu] {
    background: var(--b9-info-soft);
    color: var(--b9-info-text);
}

.badge-status-draft[b-r2g50hiesu]     { background: var(--b9-warning-soft);  color: var(--b9-warning-text); }
.badge-status-open[b-r2g50hiesu]      { background: var(--b9-primary-soft);  color: var(--b9-primary-text); }
.badge-status-active[b-r2g50hiesu]    { background: var(--b9-success-soft);  color: var(--b9-success-text); }
.badge-status-closed[b-r2g50hiesu]    { background: var(--b9-surface-muted); color: var(--b9-text-muted);   }
.badge-status-cancelled[b-r2g50hiesu] { background: var(--b9-danger-soft);   color: var(--b9-danger-text);  }

/* ── Meta row ────────────────────────────────────────────────── */

.hc-meta[b-r2g50hiesu] {
    display: flex;
    gap: 1rem;
    font-size: 0.775rem;
    color: var(--b9-text-soft);
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}

/* ── Bottom row: scores + leaderboard link ───────────────────── */

.hc-bottom[b-r2g50hiesu] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.hc-scores[b-r2g50hiesu] {
    display: flex;
    gap: 0.3rem;
    flex-wrap: wrap;
    align-items: center;
}

.round-score-pill[b-r2g50hiesu] {
    background: var(--b9-surface-muted);
    border: 1px solid var(--b9-border);
    border-radius: 6px;
    padding: 0.2rem 0.55rem;
    font-size: 0.775rem;
    font-weight: 600;
    color: var(--b9-text-muted);
}

.round-total-pill[b-r2g50hiesu] {
    background: var(--b9-primary-soft);
    border: 1px solid transparent;
    border-radius: 6px;
    padding: 0.2rem 0.6rem;
    font-size: 0.775rem;
    font-weight: 700;
    color: var(--b9-primary-text);
}

.hc-link[b-r2g50hiesu] {
    font-size: 0.775rem;
    font-weight: 600;
    color: var(--b9-primary-text);
    text-decoration: none;
    white-space: nowrap;
    flex-shrink: 0;
}

.hc-link:hover[b-r2g50hiesu] {
    text-decoration: underline;
}

/* ── Empty state ─────────────────────────────────────────────── */

.history-empty[b-r2g50hiesu] {
    text-align: center;
    padding: 3.5rem 1rem;
    color: var(--b9-text-muted);
}

.history-empty .bi[b-r2g50hiesu] {
    font-size: 2.5rem;
    display: block;
    margin-bottom: 0.875rem;
    opacity: 0.35;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.pd-container[b-r2g50hiesu] { max-width: 680px; }

/* Read-only B9 Player ID field (indigo tint, one-off) */
.pd-b9id-input[b-r2g50hiesu] {
    letter-spacing: .06em;
    background: rgba(99,102,241,.07);
    color: #818cf8;
    border-color: rgba(99,102,241,.3);
}

/* !important needed to beat Bootstrap .border-0 on the card */
.pd-callout-info[b-r2g50hiesu] { border-left: 4px solid var(--b9-info) !important; }
.pd-callout-warning[b-r2g50hiesu] { border-left: 4px solid var(--b9-warning) !important; }

.pd-divider[b-r2g50hiesu] { border-color: #e2e8f0; }

.pd-btn-xs[b-r2g50hiesu] { font-size: .75rem; }
.pd-flex-grow[b-r2g50hiesu] { flex: 1; min-width: 200px; }
.pd-note-xs[b-r2g50hiesu] { font-size: .775rem; }
/* /Components/Pages/Players/HandicapImport.razor.rz.scp.css */
/* ── Top Bar ─────────────────────────────────────────────────────────────── */

.hm-bar[b-md8o33xxb9] {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--b9-surface-alt);
    border-bottom: 1px solid var(--b9-border);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
}

.hm-bar-left[b-md8o33xxb9] {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    min-width: 0;
}

.hm-bar-right[b-md8o33xxb9] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-shrink: 0;
}

.hm-back[b-md8o33xxb9] {
    flex-shrink: 0;
}

.hm-title[b-md8o33xxb9] {
    font-size: 1.125rem;
    font-weight: 700;
    margin: 0;
    color: var(--b9-text);
    line-height: 1.3;
}

/* ── Stats Strip ────────────────────────────────────────────────────────── */

.hm-stats[b-md8o33xxb9] {
    display: flex;
    gap: 0.625rem;
    flex-wrap: wrap;
}

.hm-stat[b-md8o33xxb9] {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: var(--b9-surface-alt);
    border: 1px solid var(--b9-border);
    border-radius: 10px;
    padding: 0.625rem 1.125rem;
    min-width: 90px;
    box-shadow: var(--b9-card-shadow);
}

.hm-stat-val[b-md8o33xxb9] {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.1;
    color: var(--b9-text);
}

.hm-stat-lbl[b-md8o33xxb9] {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--b9-text-muted);
    margin-top: 2px;
    white-space: nowrap;
}

/* The three big numbers at the top of the page were written in the status FILLS. On the white
   stat card that is 2.28:1 for the green count and 2.15:1 for the amber one — a headline number
   an admin is meant to read across the room. The -text twins are the same three hues said as
   writing, and they resolve to the fills' pale forms in dark, so the card keeps its colour. */
.hm-stat-success .hm-stat-val[b-md8o33xxb9] { color: var(--b9-success-text); }
.hm-stat-warning .hm-stat-val[b-md8o33xxb9] { color: var(--b9-warning-text); }
.hm-stat-danger  .hm-stat-val[b-md8o33xxb9] { color: var(--b9-danger-text);  }
.hm-stat-muted   .hm-stat-val[b-md8o33xxb9] { color: var(--b9-text-soft); }

/* ── CSV Import Panel ───────────────────────────────────────────────────── */

.hm-csv-panel[b-md8o33xxb9] {
    background: var(--b9-surface-alt);
    border: 1px solid var(--b9-primary-soft);
    border-radius: var(--b9-card-radius);
    box-shadow: var(--b9-card-shadow-md);
    overflow: hidden;
}

.hm-csv-header[b-md8o33xxb9] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.875rem 1.25rem;
    background: var(--b9-primary-soft);
    border-bottom: 1px solid var(--b9-border);
}

.hm-csv-body[b-md8o33xxb9] {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.875rem;
}

.hm-csv-instructions[b-md8o33xxb9] {
    background: var(--b9-surface-muted);
    border-radius: 8px;
    padding: 0.875rem 1rem;
    font-size: 0.875rem;
}

.hm-csv-format[b-md8o33xxb9] {
    display: inline-block;
    background: var(--b9-dark-surface-raise);
    color: var(--b9-accent-green);
    padding: 0.25rem 0.625rem;
    border-radius: 6px;
    font-size: 0.8rem;
    letter-spacing: 0.03em;
}

.hm-csv-textarea[b-md8o33xxb9] {
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 0.8125rem;
    min-height: 120px;
    resize: vertical;
    background: var(--b9-surface-muted);
    border-color: var(--b9-border);
}

.hm-csv-textarea:focus[b-md8o33xxb9] {
    background: var(--b9-surface-alt);
    border-color: var(--b9-primary);
    box-shadow: 0 0 0 0.2rem rgba(30, 64, 175, 0.15);
}

.hm-csv-actions[b-md8o33xxb9] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.hm-csv-preview[b-md8o33xxb9] {
    border-top: 1px solid var(--b9-border);
}

.hm-csv-preview-header[b-md8o33xxb9] {
    padding: 0.625rem 1.25rem;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--b9-text-muted);
    background: var(--b9-surface-muted);
}

.hm-csv-apply[b-md8o33xxb9] {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--b9-border);
    background: var(--b9-surface-muted);
    flex-wrap: wrap;
}

/* ── Roster Table ───────────────────────────────────────────────────────── */

.hm-table th[b-md8o33xxb9],
.hm-table td[b-md8o33xxb9] {
    vertical-align: middle;
}

.hm-table .col-ghin[b-md8o33xxb9]    { width: 140px; }
.hm-table .col-hcp[b-md8o33xxb9]     { width: 130px; }
.hm-table .col-updated[b-md8o33xxb9] { width: 140px; }
.hm-table .col-save[b-md8o33xxb9]    { width: 80px;  text-align: right; }

.hm-player-link[b-md8o33xxb9] {
    color: var(--b9-text);
}

.hm-player-link:hover[b-md8o33xxb9] {
    color: var(--b9-primary-text);
}

.hm-dirty-dot[b-md8o33xxb9] {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--b9-warning);
    margin-left: 6px;
    vertical-align: middle;
}

.hm-row-dirty[b-md8o33xxb9] {
    background: var(--b9-warning-soft) !important;
}

.hm-ghin-input[b-md8o33xxb9] {
    font-family: 'SFMono-Regular', Consolas, monospace;
    font-size: 0.8125rem;
    letter-spacing: 0.06em;
    max-width: 120px;
}

.hm-hcp-input[b-md8o33xxb9] {
    text-align: center;
    font-weight: 600;
    max-width: 90px;
}

.hm-input-changed[b-md8o33xxb9] {
    border-color: var(--b9-primary) !important;
    background: var(--b9-primary-soft) !important;
}

.hm-save-row-btn[b-md8o33xxb9] {
    white-space: nowrap;
    min-width: 56px;
}

/* ── Freshness badges ───────────────────────────────────────────────────── */

.hm-freshness[b-md8o33xxb9] {
    font-size: 0.75rem;
    font-weight: 600;
    white-space: nowrap;
}

/* Same defect, once per row: "48d ago" in the amber fill measured 2.04:1 on the light table
   and "No date" in the red fill 3.57:1, on a 1,229-row roster. */
.hf-fresh[b-md8o33xxb9]  { color: var(--b9-success-text); }
.hf-recent[b-md8o33xxb9] { color: var(--b9-text-soft); }
.hf-aging[b-md8o33xxb9]  { color: var(--b9-warning-text); }
.hf-stale[b-md8o33xxb9]  { color: var(--b9-danger-text);  }
.hf-never[b-md8o33xxb9]  { color: var(--b9-text-soft); font-style: italic; font-weight: 400; }

/* ── Responsive ─────────────────────────────────────────────────────────── */

@media (max-width: 640px) {
    .hm-stats[b-md8o33xxb9] {
        gap: 0.5rem;
    }

    .hm-stat[b-md8o33xxb9] {
        min-width: 72px;
        padding: 0.5rem 0.75rem;
    }

    .hm-stat-val[b-md8o33xxb9] {
        font-size: 1.25rem;
    }

    .hm-table .col-updated[b-md8o33xxb9] { display: none; }
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.hi-td-fit[b-md8o33xxb9] { width: 1%; }
/* /Components/Pages/Players/Import.razor.rz.scp.css */
.pi-csv-example-wrap[b-erd4opn80k] {
    width: 100%;
}

.pi-csv-example-label[b-erd4opn80k] {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: 0.5rem;
}

.pi-csv-example-surface[b-erd4opn80k] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    padding: 20px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    line-height: 1.6;
    overflow-x: auto;
}

.pi-csv-example-head[b-erd4opn80k] {
    color: var(--text-primary);
    font-weight: 600;
}

.pi-csv-example-row[b-erd4opn80k] {
    color: var(--text-secondary);
}

.pi-csv-help[b-erd4opn80k] {
    color: var(--text-secondary);
    font-size: 0.875rem;
}

.pi-csv-help-line[b-erd4opn80k] {
    margin: 0;
}

.pi-csv-help-heading[b-erd4opn80k] {
    margin: 0.45rem 0 0.2rem;
    color: var(--text-primary);
    font-weight: 700;
}

.pi-csv-help-list[b-erd4opn80k] {
    margin: 0 0 0.25rem 1.1rem;
    padding: 0;
}

.pi-csv-help-list li[b-erd4opn80k] {
    margin: 0;
}

.pi-preview-card[b-erd4opn80k] {
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
}

.pi-preview-header[b-erd4opn80k] {
    color: var(--text-primary);
}

.pi-preview-header .badge[b-erd4opn80k] {
    font-weight: 700;
}

.pi-preview-table-wrap[b-erd4opn80k] {
    overflow-x: auto;
}

.pi-preview-table[b-erd4opn80k] {
    color: var(--text-primary);
    margin-bottom: 0;
}

.pi-preview-table thead th[b-erd4opn80k] {
    color: var(--text-primary);
    font-weight: 700;
    background: var(--bg-surface);
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.pi-preview-table tbody td[b-erd4opn80k] {
    color: var(--text-primary);
    background: transparent;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.pi-preview-secondary[b-erd4opn80k] {
    color: var(--text-secondary) !important;
}

.pi-name-cell[b-erd4opn80k] {
    color: var(--text-primary) !important;
    font-weight: 600;
}

.pi-preview-row:hover td[b-erd4opn80k] {
    background: rgba(255, 255, 255, 0.03);
}

.pi-handicap-badge[b-erd4opn80k] {
    background: var(--bg-surface);
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.pi-container[b-erd4opn80k] { max-width: 900px; }
.pi-th-num[b-erd4opn80k] { width: 40px; }
/* /Components/Pages/Players/Index.razor.rz.scp.css */
/* Players index page-level consistency (Phase 3U) */

.pl-page-header[b-j9jbzs7oiw] {
  margin-bottom: 1.25rem;
}

.pl-page-header-copy[b-j9jbzs7oiw] {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.pl-page-subtitle[b-j9jbzs7oiw] {
  font-size: 0.95rem;
  color: var(--b9-text-soft);
  max-width: 42rem;
}

.pl-empty-card[b-j9jbzs7oiw] {
  border: 1px solid var(--b9-border) !important;
  background: var(--b9-surface);
  border-radius: 12px;
}

.pl-empty-body[b-j9jbzs7oiw] {
  max-width: 560px;
  margin: 0 auto;
}

.pl-empty-icon[b-j9jbzs7oiw] {
  font-size: 2.5rem !important;
  color: var(--b9-text-soft) !important;
}

.pl-empty-title[b-j9jbzs7oiw] {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--b9-text);
  margin-bottom: 0.45rem;
}

.pl-empty-text[b-j9jbzs7oiw] {
  font-size: 0.95rem;
  color: var(--b9-text-soft);
  margin: 0 auto 1rem;
  max-width: 34rem;
}

.pl-empty-action[b-j9jbzs7oiw] {
  min-width: 140px;
}

/* Keep roster player identity line readable in dark and light themes. */
.roster-player-name[b-j9jbzs7oiw] {
  color: var(--text-primary);
  font-weight: 600;
  line-height: 1.2;
}

.roster-player-meta[b-j9jbzs7oiw] {
  color: var(--text-muted);
  font-size: 0.875rem;
  line-height: 1.35;
  margin-top: 0.2rem;
}

/* ── Dark-shell contrast locks (Phase 3AC) ──────────────────────────────── */

.pl-roster-head th[b-j9jbzs7oiw] {
  background: var(--bg-elevated, #111827) !important;
  color: var(--text-primary, #F3F6FB) !important;
  border-bottom: 1px solid var(--border-subtle, #1E3A52) !important;
}

.pl-search-icon[b-j9jbzs7oiw] {
  background: var(--bg-raised, #1E293B) !important;
  color: var(--text-muted, #9FB0C4) !important;
  border-color: var(--border-subtle, #1E3A52) !important;
}

.pl-hcp-badge[b-j9jbzs7oiw] {
  background: var(--bg-raised, #1E293B) !important;
  color: var(--text-primary, #F3F6FB) !important;
  border: 1px solid var(--border-default, #2D4A6A) !important;
}

.pl-utility-actions[b-j9jbzs7oiw] {
  border-right: 1px solid var(--border-subtle, #1E3A52);
  padding-right: 0.5rem;
  margin-right: 0.25rem;
}

.pl-utility-actions .btn[b-j9jbzs7oiw] {
  min-height: 48px;
  min-width: 48px;
  padding: 0.55rem 0.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.25;
  font-size: var(--font-size-base, 1rem);
  white-space: nowrap;
}

/* Merge row button — muted/secondary appearance so it doesn't compete with Edit */
.pl-row-merge-action[b-j9jbzs7oiw] {
  min-width: 40px;
  min-height: 40px;
  padding: 0.45rem 0.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  color: var(--text-muted, #9FB0C4);
  border-color: var(--border-subtle, #1E3A52);
  background: transparent;
}
.pl-row-merge-action:hover[b-j9jbzs7oiw] {
  color: var(--warning, #f59e0b);
  border-color: var(--warning, #f59e0b);
  background: color-mix(in srgb, var(--warning, #f59e0b) 10%, transparent);
}

/* Players row action touch target: keep table dense but make Edit safely tappable.

   The three colours below were typed for a near-black page: #93c5fd is the pale blue that
   reads on charcoal, and rgba(15,23,42,0.42) is a wash of the dark page ground. On a white
   table row that wash composites to a mid grey and the pale blue on it measured 1.56:1 — on
   every Edit button in the roster, 50 of them at a time. The ink is written through the token
   that already answers this per theme, and #93c5fd IS what that token resolves to in dark, so
   dark keeps the colour it shipped with.

   The wash goes rather than being made theme-aware: composited over the dark page ground it
   is rgb(8,13,31) against rgb(2,6,23), a difference nobody can see, and every other outline
   button in the app is transparent at rest. It was only ever visible as the defect. */
.pl-row-edit-action[b-j9jbzs7oiw] {
  min-width: 48px;
  min-height: 48px;
  padding: 0.55rem 0.9rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1.25;
  font-size: var(--font-size-base, 1rem);
  font-weight: 600;
  color: var(--b9-primary-text);
  border-color: var(--b9-primary-text);
  background: transparent;
}

.pl-row-edit-action:hover[b-j9jbzs7oiw] {
  border-color: var(--b9-primary, #2563eb);
  background: color-mix(in srgb, var(--b9-primary, #2563eb) 12%, transparent);
}

.pl-row-edit-action:focus-visible[b-j9jbzs7oiw] {
  outline: 2px solid var(--b9-primary, #2563eb);
  outline-offset: 2px;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--b9-primary, #2563eb) 26%, transparent);
}

/* ── Player Merge Modal (pm-*) ─────────────────────────────────────────── */

.pm-overlay[b-j9jbzs7oiw] {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.65);
  z-index: 1050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.pm-dialog[b-j9jbzs7oiw] {
  background: var(--bg-elevated, #1E293B);
  border: 1px solid var(--border-default, #2D4A6A);
  border-radius: 12px;
  width: 100%;
  max-width: 540px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}

.pm-dialog-header[b-j9jbzs7oiw] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--border-subtle, #1E3A52);
}

.pm-dialog-title[b-j9jbzs7oiw] {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text-primary, #F3F6FB);
}

.pm-dialog-close[b-j9jbzs7oiw] {
  background: none;
  border: none;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--text-muted, #9FB0C4);
  cursor: pointer;
  padding: 0.25rem 0.5rem;
  border-radius: 6px;
  transition: color 0.15s, background 0.15s;
}
.pm-dialog-close:hover[b-j9jbzs7oiw] {
  color: var(--text-primary, #F3F6FB);
  background: var(--bg-raised, #2D3748);
}

.pm-dialog-body[b-j9jbzs7oiw] {
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.pm-dialog-footer[b-j9jbzs7oiw] {
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--border-subtle, #1E3A52);
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}

/* Source card (shown in step 1 to remind admin who is being deleted) */
.pm-source-card[b-j9jbzs7oiw] {
  background: color-mix(in srgb, var(--danger, #ef4444) 10%, transparent);
  border: 1px solid var(--danger, #ef4444);
  border-radius: 8px;
  padding: 0.75rem 1rem;
}

.pm-badge[b-j9jbzs7oiw] {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  display: inline-block;
  margin-bottom: 0.4rem;
}

.pm-badge--delete[b-j9jbzs7oiw] {
  background: var(--danger, #ef4444);
  color: #fff;
}

.pm-badge--keep[b-j9jbzs7oiw] {
  background: var(--success, #22c55e);
  color: #fff;
}

.pm-card-name[b-j9jbzs7oiw] {
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary, #F3F6FB);
  line-height: 1.3;
}

.pm-card-meta[b-j9jbzs7oiw] {
  font-size: 0.875rem;
  color: var(--text-muted, #9FB0C4);
  margin-top: 0.15rem;
}

.pm-card-warn[b-j9jbzs7oiw] {
  font-size: 0.8rem;
  color: var(--warning, #f59e0b);
  margin-top: 0.4rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.pm-hint[b-j9jbzs7oiw] {
  font-size: 0.9rem;
  color: var(--text-muted, #9FB0C4);
  margin: 0;
}

/* Search picker in merge modal */
.pm-search-wrap[b-j9jbzs7oiw] {
  position: relative;
}

.pm-search-input-row[b-j9jbzs7oiw] {
  display: flex;
  align-items: center;
  background: var(--bg-surface, #0F172A);
  border: 1px solid var(--border-default, #2D4A6A);
  border-radius: 8px;
  padding: 0 0.75rem;
  transition: border-color 0.15s;
}
.pm-search-input-row:focus-within[b-j9jbzs7oiw] {
  border-color: var(--b9-primary, #2563eb);
}

.pm-search-icon[b-j9jbzs7oiw] {
  color: var(--text-muted, #9FB0C4);
  flex-shrink: 0;
  margin-right: 0.5rem;
  font-size: 0.9rem;
}

.pm-search-input[b-j9jbzs7oiw] {
  flex: 1;
  background: transparent;
  border: none;
  padding: 0.7rem 0;
  font-size: 0.95rem;
  color: var(--text-primary, #F3F6FB);
  outline: none;
  min-height: 48px;
}
.pm-search-input[b-j9jbzs7oiw]::placeholder {
  color: var(--text-muted, #9FB0C4);
}

.pm-search-backdrop[b-j9jbzs7oiw] {
  position: fixed;
  inset: 0;
  z-index: 198;
  cursor: default;
}

.pm-search-dropdown[b-j9jbzs7oiw] {
  /* In-flow (relative, no offsets) so the results panel can never be clipped by the
     dialog's own scroll (.pm-dialog has overflow-y auto) — the dialog grows/scrolls to it.
     z-index keeps it above the click-away backdrop. */
  position: relative;
  z-index: 200;
  background: var(--bg-elevated, #1E293B);
  border: 1px solid var(--border-default, #2D4A6A);
  border-radius: 8px;
  max-height: 240px;
  overflow-y: auto;
  list-style: none;
  margin: 0.25rem 0 0;
  padding: 0.25rem 0;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

.pm-search-result[b-j9jbzs7oiw] {
  padding: 0.6rem 1rem;
  cursor: pointer;
  min-height: 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transition: background 0.1s;
}
.pm-search-result:hover[b-j9jbzs7oiw] {
  background: color-mix(in srgb, var(--b9-primary, #2563eb) 12%, transparent);
}

.pm-result-name[b-j9jbzs7oiw] {
  font-weight: 600;
  color: var(--text-primary, #F3F6FB);
  font-size: 0.95rem;
}

.pm-result-meta[b-j9jbzs7oiw] {
  font-size: 0.8rem;
  color: var(--text-muted, #9FB0C4);
}

.pm-search-no-results[b-j9jbzs7oiw] {
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: var(--text-muted, #9FB0C4);
  text-align: center;
}

/* Selected player chip (step 1, after choosing target) */
.pm-target-selected[b-j9jbzs7oiw] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: color-mix(in srgb, var(--success, #22c55e) 10%, transparent);
  border: 1px solid var(--success, #22c55e);
  border-radius: 8px;
  padding: 0.65rem 1rem;
  min-height: 56px;
}

.pm-target-info[b-j9jbzs7oiw] {
  flex: 1;
  min-width: 0;
}

.pm-target-name[b-j9jbzs7oiw] {
  font-weight: 700;
  color: var(--text-primary, #F3F6FB);
  font-size: 0.95rem;
}

.pm-target-meta[b-j9jbzs7oiw] {
  font-size: 0.8rem;
  color: var(--text-muted, #9FB0C4);
}

.pm-target-clear[b-j9jbzs7oiw] {
  background: none;
  border: none;
  color: var(--text-muted, #9FB0C4);
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
  flex-shrink: 0;
  transition: color 0.15s;
}
.pm-target-clear:hover[b-j9jbzs7oiw] {
  color: var(--danger, #ef4444);
}

/* Preview cards (step 2) */
.pm-preview-cards[b-j9jbzs7oiw] {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.pm-preview-card[b-j9jbzs7oiw] {
  flex: 1;
  border-radius: 8px;
  padding: 0.75rem 1rem;
  min-width: 0;
}

.pm-preview-card--delete[b-j9jbzs7oiw] {
  background: color-mix(in srgb, var(--danger, #ef4444) 10%, transparent);
  border: 1px solid var(--danger, #ef4444);
}

.pm-preview-card--keep[b-j9jbzs7oiw] {
  background: color-mix(in srgb, var(--success, #22c55e) 10%, transparent);
  border: 1px solid var(--success, #22c55e);
}

.pm-preview-arrow[b-j9jbzs7oiw] {
  font-size: 1.5rem;
  color: var(--text-muted, #9FB0C4);
  flex-shrink: 0;
}

.pm-transfer-list[b-j9jbzs7oiw] {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  font-size: 0.9rem;
  color: var(--text-primary, #F3F6FB);
}

.pm-warning-box[b-j9jbzs7oiw] {
  background: color-mix(in srgb, var(--warning, #f59e0b) 10%, transparent);
  border: 1px solid var(--warning, #f59e0b);
  border-radius: 8px;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  color: var(--text-primary, #F3F6FB);
}

@media (max-width: 480px) {
  .pm-preview-cards[b-j9jbzs7oiw] {
    flex-direction: column;
    align-items: stretch;
  }
  .pm-preview-arrow[b-j9jbzs7oiw] {
    text-align: center;
    transform: rotate(90deg);
  }
  .pm-dialog-footer[b-j9jbzs7oiw] {
    flex-direction: column-reverse;
  }
  .pm-dialog-footer .btn[b-j9jbzs7oiw] {
    width: 100%;
    justify-content: center;
  }
}

/* ── Possible duplicates review (Phase 4) ─────────────────────────────────── */

/* 🔴 --surface-raised IS NOT A TOKEN (the real name is --bg-raised). Nothing declares it, so
   #14263A was the background in every theme — and in light the two review cards at the top of
   /players ("N records combined", "N possible duplicates") stayed near-black while their own
   text took the light theme's near-black ink: 1.13:1 for the heading and the count, 2.03:1 for
   the explanation and the Review button. Fourteen unreadable elements on the page an admin
   opens to tidy up their roster. --bg-raised is #1E293B in dark — the same slab this was
   drawing — and #E2E8F0 in light. */
.dup-card[b-j9jbzs7oiw] {
  border: 1px solid var(--border-default, #2D4A6A) !important;
  background: var(--bg-raised, #14263A);
}

.dup-icon[b-j9jbzs7oiw] {
  color: var(--b9-primary-text);
}

.dup-pair[b-j9jbzs7oiw] {
  border-top: 1px solid var(--border-subtle, #1E3A52);
  padding: 1rem 0 1.25rem;
}

.dup-reason[b-j9jbzs7oiw] {
  color: var(--text-primary, #F3F6FB);
  font-size: 0.9rem;
  margin-bottom: 0.75rem;
}

.dup-sides[b-j9jbzs7oiw] {
  display: flex;
  gap: 0.75rem;
  align-items: stretch;
}

/* --surface-default is the same phantom as --surface-raised above: the two records being
   compared sat on a hardcoded #0E1B2A in both themes. Only visible once the card is opened,
   which is why the probe never reached it — the same defect all the same. */
.dup-side[b-j9jbzs7oiw] {
  flex: 1 1 0;
  min-width: 0;
  border: 1px solid var(--border-subtle, #1E3A52);
  border-radius: 10px;
  padding: 0.75rem 0.85rem;
  background: var(--bg-surface, #0E1B2A);
}

.dup-side--keep[b-j9jbzs7oiw] {
  border-color: var(--brand, #2F6FEB);
}

.dup-side-tag[b-j9jbzs7oiw] {
  display: inline-block;
  font-size: 0.7rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted, #9FB0C4);
  margin-bottom: 0.25rem;
}

.dup-side--keep .dup-side-tag[b-j9jbzs7oiw] {
  color: var(--b9-primary-text);
}

.dup-side-name[b-j9jbzs7oiw] {
  color: var(--text-primary, #F3F6FB);
  font-weight: 600;
  overflow-wrap: anywhere;
}

.dup-side-meta[b-j9jbzs7oiw] {
  color: var(--text-muted, #9FB0C4);
  font-size: 0.82rem;
  overflow-wrap: anywhere;
}

.dup-actions[b-j9jbzs7oiw] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.85rem;
}

.dup-actions .btn[b-j9jbzs7oiw] {
  min-height: 44px;
}

@media (max-width: 560px) {
  .dup-sides[b-j9jbzs7oiw] {
    flex-direction: column;
  }
  .dup-actions .btn[b-j9jbzs7oiw] {
    width: 100%;
    justify-content: center;
  }
}

.undo-row[b-j9jbzs7oiw] {
  padding: 0.35rem 0;
}

.undo-row .btn[b-j9jbzs7oiw] {
  min-height: 44px;
}

/* Course member badge (tee sheet P1) — matches the hcp badge treatment, success-toned. */
.pl-member-badge[b-j9jbzs7oiw] {
  background: var(--success-soft, rgba(34, 197, 94, .14)) !important;
  color: var(--text-primary, #F3F6FB) !important;
  border: 1px solid var(--border-default, #2D4A6A) !important;
}
/* /Components/Pages/Privacy.razor.rz.scp.css */
.privacy-page[b-o4hla7xhr7] {
    padding: 2rem 1rem 4rem;
}

.privacy-inner[b-o4hla7xhr7] {
    max-width: 680px;
    margin: 0 auto;
}

.privacy-inner h1[b-o4hla7xhr7] {
    font-size: 2rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
    color: var(--text-primary);
}

.privacy-updated[b-o4hla7xhr7] {
    font-size: 0.85rem;
    color: var(--text-muted);
    margin-bottom: 2rem;
}

.privacy-inner h2[b-o4hla7xhr7] {
    font-size: 1.2rem;
    font-weight: 600;
    margin-top: 2rem;
    margin-bottom: 0.5rem;
    color: var(--text-primary);
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 0.25rem;
}

.privacy-inner h3[b-o4hla7xhr7] {
    font-size: 1rem;
    font-weight: 600;
    margin-top: 1.25rem;
    margin-bottom: 0.25rem;
    color: var(--text-primary);
}

.privacy-inner p[b-o4hla7xhr7],
.privacy-inner li[b-o4hla7xhr7] {
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--text-secondary);
    margin-bottom: 0.75rem;
}

.privacy-inner ul[b-o4hla7xhr7] {
    padding-left: 1.5rem;
    margin-bottom: 0.75rem;
}

.privacy-inner a[b-o4hla7xhr7] {
    color: var(--brand-text, var(--brand));
    text-decoration: underline;
}
/* /Components/Pages/Rounds/Setup.razor.rz.scp.css */
/* ── Step pills ─────────────────────────────────────────────────────── */
.rsw-steps[b-9zof3wj2ch] {
    display: flex;
    gap: .5rem;
    flex-wrap: wrap;
}

.rsw-step[b-9zof3wj2ch] {
    border: 1px solid var(--border-subtle);
    background: var(--bg-elevated);
    color: var(--text-secondary);
    border-radius: 999px;
    padding: .35rem .9rem;
    font-size: .8rem;
    display: flex;
    align-items: center;
    gap: .4rem;
    cursor: pointer;
    transition: border-color .15s, color .15s;
}

.rsw-step-num[b-9zof3wj2ch] {
    width: 1.2rem;
    height: 1.2rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: .72rem;
    color: var(--text-muted);
    flex-shrink: 0;
}

.rsw-step-active[b-9zof3wj2ch] {
    border-color: var(--brand, #2563eb);
    color: var(--brand-text, #60a5fa);
}

.rsw-step-active .rsw-step-num[b-9zof3wj2ch] {
    background: var(--brand, #2563eb);
    color: #fff;
}

.rsw-step-done[b-9zof3wj2ch] {
    border-color: var(--success, #22c55e);
    color: var(--success-text, #4ade80);
}

.rsw-step-done .rsw-step-num[b-9zof3wj2ch] {
    background: var(--success, #22c55e);
    color: #fff;
}

/* ── Hole map grid cards ─────────────────────────────────────────────── */
.rsw-hole[b-9zof3wj2ch] {
    border: 1px solid var(--border-subtle);
    border-radius: .6rem;
    padding: .5rem .45rem;
    min-height: 5rem;
    background: var(--bg-elevated);
    transition: border-color .15s;
}

.rsw-hole-pref[b-9zof3wj2ch] {
    border-color: var(--success, #22c55e);
    background: var(--success-soft, rgba(34,197,94,0.12));
}

.rsw-hole-avoid[b-9zof3wj2ch] {
    border-color: var(--warning, #f59e0b);
    background: var(--warning-soft, rgba(245,158,11,0.12));
}

.rsw-hole-title[b-9zof3wj2ch] {
    font-size: .7rem;
    font-weight: 700;
    color: var(--text-muted);
    margin-bottom: .3rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.rsw-chip[b-9zof3wj2ch] {
    display: inline-block;
    background: var(--brand-soft, rgba(29,78,216,0.18));
    color: var(--brand-text, #60a5fa);
    font-size: .72rem;
    font-weight: 600;
    border-radius: 999px;
    padding: .12rem .45rem;
    margin: .06rem;
}

.rsw-empty[b-9zof3wj2ch] {
    color: var(--text-muted);
    font-size: .75rem;
}

/* ── Legend strip ────────────────────────────────────────────────────── */
.rsw-legend[b-9zof3wj2ch] {
    display: flex;
    gap: 1rem;
    font-size: .78rem;
    color: var(--text-muted);
    margin-bottom: .75rem;
    flex-wrap: wrap;
}

.rsw-legend-dot[b-9zof3wj2ch] {
    width: .65rem;
    height: .65rem;
    border-radius: 50%;
    display: inline-block;
    margin-right: .3rem;
}

.rsw-legend-dot--pref[b-9zof3wj2ch]  { background: var(--success, #22c55e); }
.rsw-legend-dot--avoid[b-9zof3wj2ch] { background: var(--warning, #f59e0b); }
.rsw-legend-dot--plain[b-9zof3wj2ch] { background: var(--border-subtle); }

/* ── Flight preview cards ────────────────────────────────────────────── */
.rsw-flight-card[b-9zof3wj2ch] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: .6rem;
    padding: 1rem;
}

.rsw-flight-name[b-9zof3wj2ch] {
    font-weight: 700;
    color: var(--text-primary);
    margin-bottom: .15rem;
}

/* Inline-editable flight title on the Review screen: reads as the card heading until focused. */
.rsw-flight-name-input[b-9zof3wj2ch] {
    font-weight: 700;
    color: var(--text-primary);
    background: transparent;
    border-color: transparent;
    padding-left: .35rem;
    padding-right: .35rem;
}

.rsw-flight-name-input:hover[b-9zof3wj2ch] {
    border-color: var(--border-subtle);
}

.rsw-flight-name-input:focus[b-9zof3wj2ch] {
    background: var(--bg-elevated);
    border-color: var(--border-subtle);
}

.rsw-flight-summary[b-9zof3wj2ch] {
    font-size: .8rem;
    color: var(--text-muted);
    margin-bottom: .5rem;
}

.rsw-flight-members[b-9zof3wj2ch] {
    font-size: .82rem;
    color: var(--text-secondary);
    padding-left: 1rem;
    margin: 0;
}

/* ── Extracted inline styles (Blazor audit Batch G) ────────── */
.rsw-readonly-field[b-9zof3wj2ch] { background: var(--bg-elevated); color: var(--text-primary); }
.rsw-badge-xs[b-9zof3wj2ch] { font-size: .7rem; }
.rsw-flight-table[b-9zof3wj2ch] { max-width: 520px; }
.rsw-td-flight[b-9zof3wj2ch] { width: 190px; }

/* ── Flight repair board ─────────────────────────────────────────────────────
   Same select-then-place gesture as the team builder so learning one screen
   teaches the other (WCAG 3.2.4). Replaces the per-row <select> — GOV.UK calls
   the select element a last resort, and eight flights in a dropdown is open,
   scroll, hunt, commit, where eight cards is one tap. */
.rsw-flight-cards[b-9zof3wj2ch] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
    gap: 0.5rem;
    margin-bottom: 0.9rem;
}

.rsw-flight-card[b-9zof3wj2ch] {
    border: 1.5px solid var(--border-default);
    border-radius: 10px;
    padding: 0.55rem 0.65rem;
    background: var(--bg-elevated);
    min-height: var(--touch-target-min, 48px);
}

.rsw-flight-card--target[b-9zof3wj2ch] {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px var(--brand-ring);
    cursor: pointer;
}

.rsw-flight-card--target:hover[b-9zof3wj2ch] { background: var(--brand-soft); }
.rsw-flight-card:focus-visible[b-9zof3wj2ch] { outline: none; box-shadow: var(--b9-focus-ring); }

.rsw-flight-meta[b-9zof3wj2ch] {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 0.25rem;
    font-variant-numeric: tabular-nums;
}

.rsw-flight-drop[b-9zof3wj2ch] {
    margin-top: 0.3rem;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--brand-text, var(--brand));
}

.rsw-subject-list[b-9zof3wj2ch] {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    max-height: 32rem;
    overflow-y: auto;
}

.rsw-chip[b-9zof3wj2ch] { min-height: var(--touch-target-min, 48px); }
.rsw-chip:focus-visible[b-9zof3wj2ch] { outline: none; box-shadow: var(--b9-focus-ring); }

/* De-emphasised, never removed — a subject that vanishes reads as "did I break it?" */
.rsw-chip--assigned[b-9zof3wj2ch] { opacity: 0.62; }

.rsw-chip-flight[b-9zof3wj2ch] {
    font-size: 0.68rem;
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 20px;
    background: var(--bg-raised);
    color: var(--text-secondary);
    white-space: nowrap;
}

.rsw-chip-flight--none[b-9zof3wj2ch] { color: var(--b9-warning, var(--text-muted)); }

/* Counter carries the fix, not just the complaint (WCAG 3.3.3). */
.rsw-counter[b-9zof3wj2ch] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.75rem;
    border-radius: 8px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    font-size: 0.85rem;
}

.rsw-selbar[b-9zof3wj2ch] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    padding: 0.55rem 0.85rem;
    margin-bottom: 0.75rem;
    border-radius: 10px;
    background: var(--brand);
    color: #fff;
}

.rsw-selbar-count[b-9zof3wj2ch] { font-weight: 700; font-variant-numeric: tabular-nums; }
.rsw-selbar-hint[b-9zof3wj2ch] { font-size: 0.85rem; opacity: 0.9; }

.rsw-selbar-clear[b-9zof3wj2ch] {
    margin-left: auto;
    min-height: var(--touch-target-min, 48px);
    padding: 0 0.85rem;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.6);
    background: transparent;
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}






.rsw-selbar-clear:focus-visible[b-9zof3wj2ch] { outline: 2px solid var(--brand); outline-offset: 2px; }
/* /Components/Pages/TeeSheet/BookingManage.razor.rz.scp.css */
.pb-page[b-2mnad3enop] {
    max-width: 560px;
    margin: 0 auto;
    padding: 28px 16px 80px;
}
.pb-card[b-2mnad3enop] {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    padding: 26px 22px;
}
.pb-h1[b-2mnad3enop] { font-size: 1.6rem; font-weight: 800; margin: 0 0 4px; color: var(--text-primary); }
.pb-h2[b-2mnad3enop] { font-size: 1.25rem; font-weight: 700; margin: 18px 0 12px; color: var(--text-primary); }
.pb-sub[b-2mnad3enop] { color: var(--text-secondary); margin: 0 0 8px; font-size: 1.02rem; }
.pb-muted[b-2mnad3enop] { color: var(--text-muted); }
.pb-note[b-2mnad3enop], .pb-rates[b-2mnad3enop] { color: var(--text-secondary); margin: 4px 0; font-size: .95rem; }
.pb-state[b-2mnad3enop] { font-size: 1.05rem; padding: 14px 0; }

.pb-member-line[b-2mnad3enop] { margin: 8px 0 0; color: var(--text-secondary); }
.pb-memberbadge[b-2mnad3enop] {
    background: var(--success-soft);
    color: var(--text-primary);
    border-radius: 999px;
    padding: 3px 11px;
    font-size: .8rem;
    font-weight: 700;
}
.pb-sizerow[b-2mnad3enop] { display: flex; gap: 10px; }
.pb-sizebtn[b-2mnad3enop] {
    flex: 1;
    min-height: 56px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 12px;
    font-weight: 800;
    font-size: 1.2rem;
    cursor: pointer;
}
.pb-btn[b-2mnad3enop] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    background: var(--brand);
    border: none;
    color: #fff;
    border-radius: 12px;
    padding: 10px 22px;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
}
.pb-btn:hover[b-2mnad3enop] { background: var(--brand-hover); }
.pb-btn-big[b-2mnad3enop] { width: 100%; min-height: 60px; font-size: 1.2rem; margin-top: 20px; }
.pb-btn-quiet[b-2mnad3enop] {
    background: none;
    border: 1px solid var(--border-strong);
    color: var(--text-primary);
    font-weight: 600;
}
.pb-btn-quiet:hover[b-2mnad3enop] { background: var(--bg-raised); }

.pb-error[b-2mnad3enop] {
    margin: 14px 0 0;
    color: var(--text-primary);
    background: var(--danger-soft);
    border-radius: 10px;
    padding: 12px 14px;
}
.pb-confirm-line[b-2mnad3enop] { font-size: 1.3rem; line-height: 1.6; margin: 12px 0 16px; color: var(--text-primary); }

/* Module pass 2026-08-18: keep the confirm page's promise — change AND cancel,
   the policy said before it bites, and the calendar file one tap away. */
.pb-manage-actions[b-2mnad3enop] { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 4px; }
.pb-mini[b-2mnad3enop] { color: var(--text-muted); font-size: .85rem; margin: 6px 0 14px; }

/* Changing the party without losing the booking (TS-014). */
.pb-partyedit[b-2mnad3enop] { margin: 18px 0; }
.pb-partylabel[b-2mnad3enop] { margin-bottom: 6px; }
/* /Components/Pages/TeeSheet/MyBookings.razor.rz.scp.css */
.mb-page[b-hgns0sluy6] { max-width: 640px; margin: 0 auto; padding: 24px 16px 80px; }
.mb-h1[b-hgns0sluy6] { font-size: 1.5rem; font-weight: 800; margin: 0 0 16px; color: var(--text-primary); }
.mb-muted[b-hgns0sluy6] { color: var(--text-muted); }
.mb-card[b-hgns0sluy6] {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    padding: 16px 18px;
    margin-bottom: 12px;
}
.mb-row[b-hgns0sluy6] { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.mb-row-past[b-hgns0sluy6] { opacity: .65; }
.mb-when[b-hgns0sluy6] { display: flex; flex-direction: column; min-width: 110px; }
.mb-date[b-hgns0sluy6] { color: var(--text-muted); font-size: .88rem; }
.mb-time[b-hgns0sluy6] { color: var(--text-primary); font-weight: 800; font-size: 1.15rem; }
.mb-what[b-hgns0sluy6] { flex: 1; display: flex; flex-direction: column; min-width: 160px; }
.mb-course[b-hgns0sluy6] { color: var(--text-primary); font-weight: 600; }
.mb-meta[b-hgns0sluy6] { color: var(--text-muted); font-size: .88rem; }
.mb-cancelled[b-hgns0sluy6] { color: var(--danger); }
.mb-actions[b-hgns0sluy6] { display: flex; gap: 8px; }
.mb-btn[b-hgns0sluy6] { min-height: 48px; }

/* Module pass 2026-08-18: the list splits into what's ahead and what's history. */
.mb-section[b-hgns0sluy6] {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    color: var(--text-muted);
    margin: 18px 0 8px;
}
/* /Components/Pages/TeeSheet/PublicBooking.razor.rz.scp.css */
/* The grandmother page: three screens, giant targets, plain words. */

.pb-page[b-znu7ultqik] {
    max-width: 560px;
    margin: 0 auto;
    padding: 28px 16px 80px;
}
.pb-card[b-znu7ultqik] {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    padding: 26px 22px;
}
.pb-h1[b-znu7ultqik] { font-size: 1.6rem; font-weight: 800; margin: 0 0 4px; color: var(--text-primary); }
.pb-h2[b-znu7ultqik] { font-size: 1.25rem; font-weight: 700; margin: 18px 0 12px; color: var(--text-primary); }
.pb-sub[b-znu7ultqik] { color: var(--text-secondary); margin: 0 0 8px; font-size: 1.02rem; }
.pb-muted[b-znu7ultqik] { color: var(--text-muted); }
.pb-note[b-znu7ultqik], .pb-rates[b-znu7ultqik] { color: var(--text-secondary); margin: 4px 0; font-size: .95rem; }
.pb-state[b-znu7ultqik] { font-size: 1.05rem; padding: 14px 0; }

.pb-member-line[b-znu7ultqik] { margin: 8px 0 0; color: var(--text-secondary); }
.pb-memberbadge[b-znu7ultqik] {
    background: var(--success-soft);
    color: var(--text-primary);
    border-radius: 999px;
    padding: 3px 11px;
    font-size: .8rem;
    font-weight: 700;
}

.pb-daystrip[b-znu7ultqik] {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 8px 0 12px;
    /* Swipe, don't scrollbar: the raw bar under the chips was the ugliest pixel on the
       page. Snap keeps a chip from being sliced at the edge mid-swipe. */
    scrollbar-width: none;
    scroll-snap-type: x proximity;
}
.pb-daystrip[b-znu7ultqik]::-webkit-scrollbar { display: none; }
.pb-daybtn[b-znu7ultqik] { scroll-snap-align: start; }
.pb-daybtn[b-znu7ultqik] {
    flex: 0 0 auto;
    min-width: 86px;
    min-height: 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 12px;
    cursor: pointer;
}
.pb-daybtn-on[b-znu7ultqik] { border-color: var(--brand); background: var(--brand); color: #fff; }
.pb-daybtn-on .pb-day-dow[b-znu7ultqik], .pb-daybtn-on .pb-day-num[b-znu7ultqik] { color: #fff; }
.pb-day-dow[b-znu7ultqik] { font-weight: 700; }
.pb-day-num[b-znu7ultqik] { color: var(--text-muted); font-size: .82rem; }

/* The strip's little prices — Friday $28, Saturday $35, visible before tapping.
   Tabular digits so the chips line up; selected chip flips to white like its siblings. */
.pb-day-price[b-znu7ultqik] {
    font-size: .8rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--b9-primary-text);
}
.pb-daybtn-on .pb-day-price[b-znu7ultqik] { color: #fff; }

.pb-times[b-znu7ultqik] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: 10px;
    margin-top: 6px;
}
.pb-timebtn[b-znu7ultqik] {
    min-height: 56px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 12px;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
}
.pb-timebtn:hover[b-znu7ultqik] { border-color: var(--brand); }
.pb-time-open[b-znu7ultqik] { font-size: .78rem; font-weight: 600; color: var(--text-muted); }

.pb-blocked-note[b-znu7ultqik] {
    margin: 12px 0 0;
    color: var(--text-secondary);
    background: var(--warning-soft);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: .95rem;
}

.pb-back[b-znu7ultqik] {
    background: none;
    border: none;
    color: var(--text-secondary);
    padding: 6px 0;
    min-height: 48px;
    cursor: pointer;
    font-size: .95rem;
}

.pb-label[b-znu7ultqik] { display: block; margin: 16px 0 6px; color: var(--text-secondary); font-size: .95rem; }
.pb-input[b-znu7ultqik] {
    width: 100%;
    min-height: 52px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 12px;
    padding: 10px 14px;
    font-size: 1.05rem;
}
.pb-input:focus[b-znu7ultqik] { outline: none; border-color: var(--brand); box-shadow: var(--b9-focus-ring); }

.pb-sizerow[b-znu7ultqik] { display: flex; gap: 10px; }
.pb-sizebtn[b-znu7ultqik] {
    flex: 1;
    min-height: 56px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 12px;
    font-weight: 800;
    font-size: 1.2rem;
    cursor: pointer;
}
.pb-sizebtn-on[b-znu7ultqik] { border-color: var(--brand); box-shadow: var(--b9-focus-ring); background: var(--bg-elevated); }

/* Holes: two big targets carrying the price, so the choice and its cost are one decision.
   Taller than the party-size row because each button holds two lines. */
.pb-holesrow[b-znu7ultqik] { display: flex; gap: 10px; }
.pb-holesbtn[b-znu7ultqik] {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 64px;
    padding: 8px 6px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 12px;
    cursor: pointer;
}
.pb-holesnum[b-znu7ultqik] { font-weight: 800; font-size: 1.05rem; }
.pb-holesprice[b-znu7ultqik] { color: var(--text-secondary); font-size: .95rem; font-variant-numeric: tabular-nums; }
.pb-turnnote[b-znu7ultqik] { margin-top: 8px; }

/* The rest of the price list — quieter than the headline rate, but on the same screen.
   Tight spacing so riding + classes read as one small card, not three paragraphs. */
.pb-rates-extra[b-znu7ultqik] { margin-top: 2px; font-size: .95rem; color: var(--text-secondary); }

.pb-btn[b-znu7ultqik] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 52px;
    background: var(--brand);
    border: none;
    color: #fff;
    border-radius: 12px;
    padding: 10px 22px;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
}
.pb-btn:hover[b-znu7ultqik] { background: var(--brand-hover); }
.pb-btn-big[b-znu7ultqik] { width: 100%; min-height: 60px; font-size: 1.2rem; margin-top: 20px; }
.pb-btn-quiet[b-znu7ultqik] {
    background: none;
    border: 1px solid var(--border-strong);
    color: var(--text-primary);
    font-weight: 600;
}
.pb-btn-quiet:hover[b-znu7ultqik] { background: var(--bg-raised); }

.pb-error[b-znu7ultqik] {
    margin: 14px 0 0;
    color: var(--text-primary);
    background: var(--danger-soft);
    border-radius: 10px;
    padding: 12px 14px;
}

.pb-waitrow[b-znu7ultqik] { margin-top: 18px; }
.pb-waitform[b-znu7ultqik] { display: flex; flex-direction: column; gap: 10px; margin-top: 8px; }
.pb-memberask[b-znu7ultqik] { margin-top: 18px; color: var(--text-muted); }
.pb-memberask summary[b-znu7ultqik] { cursor: pointer; min-height: 48px; display: flex; align-items: center; }

.pb-confirm[b-znu7ultqik] { text-align: center; }
.pb-confirm-icon[b-znu7ultqik] { font-size: 3rem; color: var(--success); display: block; margin-bottom: 8px; }
.pb-confirm-line[b-znu7ultqik] { font-size: 1.3rem; line-height: 1.6; margin: 12px 0 16px; color: var(--text-primary); }


/* Pre-book reassurance sits quietly under the big button. */
.pb-reassure[b-znu7ultqik] { margin-top: 10px; text-align: center; }

/* ── Time groups: Morning / Afternoon / Twilight (the tested slot-picker shape) ── */
.pb-timegroup[b-znu7ultqik] { margin-top: 18px; }
.pb-timegroup:first-of-type[b-znu7ultqik] { margin-top: 4px; }
.pb-timegroup-head[b-znu7ultqik] {
    display: flex;
    align-items: baseline;
    gap: 10px;
    border-bottom: 1px solid var(--border-subtle);
    padding-bottom: 6px;
    margin-bottom: 4px;
}
.pb-timegroup-label[b-znu7ultqik] { font-weight: 800; font-size: 1.02rem; color: var(--text-primary); }
.pb-timegroup-price[b-znu7ultqik] {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--b9-primary-text);
}
.pb-timegroup-count[b-znu7ultqik] { margin-left: auto; color: var(--text-muted); font-size: .85rem; }

.pb-main-title[b-znu7ultqik] { margin-top: 0; }

/* ── Desktop: a real layout, not a phone column in an ocean ──
   Two panes inside one card: the club + day list hold the left rail (sticky, so the
   days stay in reach while times scroll), times own the right. The card wears the
   club's accent as a hairline crown. */
@media (min-width: 960px) {
    .pb-page.pb-browse[b-znu7ultqik] { max-width: 1080px; }
    .pb-page.pb-browse .pb-card[b-znu7ultqik] {
        padding: 30px 34px 34px;
        border-top: 3px solid var(--brand, #2f6bff);
    }

    .pb-browsegrid[b-znu7ultqik] {
        display: grid;
        grid-template-columns: 300px minmax(0, 1fr);
        gap: 34px;
        align-items: start;
        margin-top: 10px;
    }
    .pb-rail[b-znu7ultqik] { position: sticky; top: 24px; }

    /* The strip turns into a day LIST: one row per day, price on the right — no
       horizontal scrolling, no clipped chips, every day visible at once. */
    .pb-rail .pb-daystrip[b-znu7ultqik] {
        flex-direction: column;
        overflow: visible;
        gap: 6px;
        padding: 4px 0 0;
    }
    .pb-rail .pb-daybtn[b-znu7ultqik] {
        display: grid;
        /* auto, not a fixed column: "Tomorrow" is longer than "Sat" and must never
           collide with its date. */
        grid-template-columns: auto 1fr auto;
        column-gap: 10px;
        align-items: center;
        justify-items: start;
        width: 100%;
        min-height: 52px;
        padding: 0 14px;
        text-align: left;
    }
    .pb-rail .pb-day-num[b-znu7ultqik] { font-size: .92rem; }
    .pb-rail .pb-day-price[b-znu7ultqik] { justify-self: end; }

    .pb-times[b-znu7ultqik] { grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); }
}


/* The set of time sections. Purely a handle — the sections already own their own spacing
   (.pb-timegroup margin-top), so this adds no gap of its own and the day looks unchanged. */
.pb-timesets[b-znu7ultqik] { display: block; }

/* A tee time somebody else already holds. Marked on the chip AND stated plainly on the
   commit screen — a golfer choosing a time is choosing whether to share it (TS-023). */
.pb-time-shared[b-znu7ultqik] {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--text-muted);
}
.pb-sharednote[b-znu7ultqik] { border-left: 3px solid var(--brand); padding-left: 10px; }

/* Reaching a phone-only guest: the one thing between them and a booking they can find again. */
.pb-noemail[b-znu7ultqik] { margin: 12px 0 16px; text-align: left; }
.pb-noemail-row[b-znu7ultqik] { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.pb-noemail-row .pb-input[b-znu7ultqik] { flex: 1 1 12rem; }

/* Which course (TS-008). Only drawn when the club sells more than one online. */
.pb-courserow[b-znu7ultqik] { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }
.pb-coursebtn[b-znu7ultqik] {
    flex: 1 1 10rem;
    min-height: 52px;
    padding: 8px 14px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 12px;
    font-weight: 700;
    cursor: pointer;
}

/* Booking closed online (UX audit G05): the way forward stacks under the sentence, full
   width, so both taps are big and obvious on a phone. */
.pb-closed-actions[b-znu7ultqik] { display: flex; flex-direction: column; gap: 10px; margin-top: 16px; }
.pb-closed-actions .pb-btn[b-znu7ultqik] { width: 100%; text-decoration: none; }

/* A phone number is a single unbreakable thing. Without this the hyphen in "345-3221" is a
   break opportunity like any other and the number split across two lines. */
.pb-phone[b-znu7ultqik] { white-space: nowrap; }

/* And so is the instruction beside it. The digits were held together while the words were not,
   so the button broke as "Call the pro" / "shop:" / "(651) 345-3221" — three lines to say one
   thing. The whole phrase now moves to the next line together, or not at all. */
.pb-calllabel[b-znu7ultqik] { white-space: nowrap; }
/* /Components/Pages/TeeSheet/StationHome.razor.rz.scp.css */
/* Front desk home — a handful of doors, each big enough to hit without aiming.
   Design tokens only; the tiles read in both themes. */
.sh-page[b-s1glcqvb1a] {
    max-width: 960px;
}

.sh-switch[b-s1glcqvb1a] {
    min-height: 48px;
}

.sh-tiles[b-s1glcqvb1a] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 1rem;
}

.sh-tile[b-s1glcqvb1a] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.25rem 1.4rem;
    min-height: 128px;
    border: 1px solid var(--border-subtle, rgba(128, 128, 128, 0.25));
    border-radius: 14px;
    background: var(--bg-surface, rgba(128, 128, 128, 0.06));
    text-decoration: none;
    color: inherit;
    transition: border-color 120ms ease, transform 120ms ease;
}

.sh-tile:hover[b-s1glcqvb1a],
.sh-tile:focus-visible[b-s1glcqvb1a] {
    border-color: var(--brand, #2f6bff);
    transform: translateY(-1px);
}

.sh-tile-icon[b-s1glcqvb1a] {
    font-size: 1.6rem;
    color: var(--b9-primary-text);
}

.sh-tile-title[b-s1glcqvb1a] {
    font-size: 1.15rem;
    font-weight: 700;
}

.sh-tile-sub[b-s1glcqvb1a] {
    color: var(--text-muted, #8a94a6);
    font-size: 0.9rem;
}
/* /Components/Pages/TeeSheet/StationPinGate.razor.rz.scp.css */
/* ── Front desk station: the who's-working gate ─────────────────────────
   A full-screen curtain, not a modal — the surface behind it must be
   unreadable and untappable until a person owns the session.
   Counter-friendly targets throughout. */
.ts-station-gate[b-mu5upxd0t8] {
    position: fixed;
    inset: 0;
    z-index: 1100;
    background: var(--bg-app, #0b1020);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
}

.ts-station-card[b-mu5upxd0t8] {
    width: min(92vw, 520px);
    text-align: center;
}

.ts-station-names[b-mu5upxd0t8] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: center;
}

.ts-station-name[b-mu5upxd0t8] {
    min-height: 56px;
    min-width: 140px;
    font-size: 1.05rem;
    font-weight: 600;
}

.ts-pin-dots[b-mu5upxd0t8] {
    display: flex;
    gap: 0.6rem;
    justify-content: center;
    margin-bottom: 0.75rem;
}

.ts-pin-dot[b-mu5upxd0t8] {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid var(--border-strong, rgba(255, 255, 255, 0.35));
}

.ts-pin-dot.on[b-mu5upxd0t8] {
    background: var(--brand, #2f6bff);
    border-color: var(--brand, #2f6bff);
}

.ts-pin-pad[b-mu5upxd0t8] {
    display: grid;
    grid-template-columns: repeat(3, 84px);
    gap: 0.5rem;
    justify-content: center;
}

.ts-pin-key[b-mu5upxd0t8] {
    min-height: 56px;
    font-size: 1.25rem;
    font-variant-numeric: tabular-nums;
}

.ts-pin-cancel[b-mu5upxd0t8] {
    font-size: 0.95rem;
}
/* /Components/Pages/TeeSheet/TeeSheetPage.razor.rz.scp.css */
/* Staff tee sheet — calm, token-driven, phone-first (staff live on phones). */

.ts-subtitle[b-h56xbr1o2x] { font-size: .95rem; }

.ts-teaser[b-h56xbr1o2x] {
    max-width: 640px;
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    padding: 28px;
}
.ts-teaser-icon[b-h56xbr1o2x] { font-size: 2rem; color: var(--b9-primary-text); display: block; margin-bottom: 10px; }
.ts-teaser-copy[b-h56xbr1o2x] { color: var(--text-secondary); }

.ts-course-pick[b-h56xbr1o2x] { min-height: 48px; max-width: 240px; }
.ts-toolbtn[b-h56xbr1o2x], .ts-cta[b-h56xbr1o2x], .ts-datebtn[b-h56xbr1o2x], .ts-todaybtn[b-h56xbr1o2x], .ts-primary[b-h56xbr1o2x] { min-height: 48px; }

/* ── One obvious action ────────────────────────────────────────────────────
   The sheet used to open with eleven outline buttons and nothing filled, so
   the brightest thing on a phone was the date chip. This is the counter's job
   — sell the next tee time — and it is the only filled control up here. It
   keeps the brand fill Bootstrap's .btn-primary already gives it; the rules
   below only make it read as the first thing on the row. */
.ts-primary[b-h56xbr1o2x] {
    font-weight: 600;
    /* Never the runt of a wrapped row: on a phone it takes the line it needs. */
    flex: 1 1 auto;
    min-width: 190px;
}
.ts-tools .ts-toolbtn[b-h56xbr1o2x] { flex: 0 1 auto; }

/* ── The "More" drawer ─────────────────────────────────────────────────────
   Opens in the flow directly under the toolbar rather than floating, so a
   thumb never chases it and nothing is hidden behind an overlay on a small
   screen. Same buttons as before, same handlers — just no longer competing
   with the day's work for attention. */
.ts-more[b-h56xbr1o2x] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 1240px;
    margin: 0 0 14px;
    padding: 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
}

.ts-datebar[b-h56xbr1o2x] {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-bottom: 14px;
    /* One row always: the strip scrolls INSIDE itself, controls never wrap under. */
    flex-wrap: nowrap;
    min-width: 0;
}
.ts-daystrip[b-h56xbr1o2x] { flex: 1 1 auto; min-width: 0; }
.ts-datebar > .ts-datebtn[b-h56xbr1o2x], .ts-datebar > .ts-todaybtn[b-h56xbr1o2x], .ts-datebar > .ts-calbtn[b-h56xbr1o2x] { flex: 0 0 auto; }
.ts-dateinput[b-h56xbr1o2x] { min-height: 48px; max-width: 190px; }
.ts-datebtn[b-h56xbr1o2x] { min-width: 48px; }

.ts-closed[b-h56xbr1o2x] {
    display: flex;
    gap: 10px;
    align-items: center;
    color: var(--text-muted);
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    border-radius: var(--b9-card-radius);
    padding: 22px;
    max-width: 640px;
}

.ts-blockstrip[b-h56xbr1o2x] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.ts-blockchip[b-h56xbr1o2x] {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    background: var(--warning-soft);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 999px;
    padding: 8px 14px;
    font-size: .86rem;
}
.ts-blockchip-tentative[b-h56xbr1o2x] { border-style: dashed; }
/* A crossover block closes nothing on the first tee, so it must not carry the warning colour
   a real closure does — same strip, visibly different claim (TS-018). */
.ts-blockchip-open[b-h56xbr1o2x] { background: var(--bg-raised); }
.ts-blockchip-note[b-h56xbr1o2x] {
    color: var(--text-secondary);
    font-weight: 600;
    font-size: .78rem;
    white-space: nowrap;
}
.ts-blockchip-time[b-h56xbr1o2x] { color: var(--text-muted); }
/* The most destructive control on the sheet — it puts tee times back ON SALE — and it was the
   smallest, at roughly 22x26px. The hit area is expanded rather than the chip: negative margins
   pull the 48px target back over the chip's own padding, so the strip looks unchanged and the
   thumb still lands. */
.ts-blockchip-x[b-h56xbr1o2x] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    background: none;
    border: none;
    color: var(--text-muted);
    padding: 0;
    margin: -12px -10px -12px 0;
    border-radius: 999px;
    cursor: pointer;
}
.ts-blockchip-x:hover[b-h56xbr1o2x] { color: var(--danger); }

.ts-grid[b-h56xbr1o2x] {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    overflow: hidden;
}
.ts-row[b-h56xbr1o2x] {
    display: flex;
    align-items: stretch;
    gap: 10px;
    border-bottom: 1px solid var(--border-subtle);
    min-height: 56px;
}
.ts-row:last-child[b-h56xbr1o2x] { border-bottom: none; }
.ts-row-blocked[b-h56xbr1o2x] { background: var(--warning-soft); }

.ts-time[b-h56xbr1o2x] {
    flex: 0 0 92px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 6px 0 14px;
    /* The time is the sheet's primary column — it had been sitting in the same lowest-emphasis
       tier as incidental labels, which is exactly backwards for the thing staff scan first. */
    color: var(--text-primary);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    font-size: .92rem;
}

.ts-cell[b-h56xbr1o2x] {
    flex: 1;
    /* A flex item's default min-width is auto, so it refuses to shrink below its content and the
       grid's overflow:hidden takes the difference off the right-hand edge. These guards used to
       live only inside @media (min-width: 900px) — i.e. everywhere EXCEPT the phone staff
       actually work on. */
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 8px 14px 8px 0;
}

.ts-blockband[b-h56xbr1o2x] {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-secondary);
    font-size: .9rem;
    padding-right: 14px;
}

.ts-bookingchip[b-h56xbr1o2x] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 10px;
    padding: 6px 12px;
    cursor: pointer;
    text-align: left;
    min-width: 0;
    overflow: hidden;
}
.ts-bookingchip:hover[b-h56xbr1o2x] { border-color: var(--border-strong); }
/* Ellipsis, not a hard cut: a truncated name still reads as a name, where a clipped one just
   ends mid-letter and looks like a rendering fault. */
.ts-chipname[b-h56xbr1o2x] {
    font-weight: 600;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ts-chipsize[b-h56xbr1o2x] { color: var(--text-muted); font-variant-numeric: tabular-nums; }

.ts-memberbadge[b-h56xbr1o2x] {
    background: var(--success-soft);
    color: var(--text-primary);
    border-radius: 999px;
    padding: 2px 9px;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
}

/* ── Find a booking on another day (TS-012) ─────────────────────────────── */
.ts-searchbar[b-h56xbr1o2x] { margin: 12px 0 0; }
.ts-searchfield[b-h56xbr1o2x] {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 480px;
}
.ts-searchfield > i[b-h56xbr1o2x] { position: absolute; left: 12px; color: var(--text-muted); }
.ts-searchfield input[b-h56xbr1o2x] { padding-left: 36px; min-height: 48px; }
.ts-searchclear[b-h56xbr1o2x] {
    position: absolute;
    right: 6px;
    min-width: 48px;
    min-height: 48px;
    background: none;
    border: 0;
    color: var(--text-muted);
    cursor: pointer;
}
.ts-searchclear:hover[b-h56xbr1o2x] { color: var(--text-primary); }

.ts-searchresults[b-h56xbr1o2x] {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-width: 640px;
}
.ts-searchnote[b-h56xbr1o2x] { color: var(--text-muted); font-size: .9rem; margin: 6px 0; }
.ts-searchhit[b-h56xbr1o2x] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px;
    width: 100%;
    min-height: 48px;
    text-align: left;
    padding: 8px 14px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    border-radius: 10px;
    color: var(--text-primary);
    cursor: pointer;
}
.ts-searchhit:hover[b-h56xbr1o2x] { border-color: var(--brand); }
.ts-hitwhen[b-h56xbr1o2x] { font-weight: 700; font-variant-numeric: tabular-nums; }
.ts-hitwho[b-h56xbr1o2x] { color: var(--text-primary); }
.ts-hitmeta[b-h56xbr1o2x] { color: var(--text-muted); font-size: .85rem; margin-left: auto; }
.ts-hitcancelled[b-h56xbr1o2x] { color: var(--danger); font-weight: 600; }
.ts-hitcheckedin[b-h56xbr1o2x] { color: var(--success-text, var(--text-secondary)); font-weight: 600; }

/* ── Who's waiting (TS-021) ─────────────────────────────────────────────── */
.ts-toolcount[b-h56xbr1o2x] {
    display: inline-block;
    margin-left: 6px;
    padding: 0 7px;
    border-radius: 999px;
    background: var(--brand);
    /* White on brand blue, matching every other primary chip in the app. */
    color: #fff;
    font-size: .78rem;
    font-weight: 700;
}
.ts-waitlist[b-h56xbr1o2x] {
    margin-top: 12px;
    padding: 12px 14px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
}
.ts-waitlist-head[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.ts-waitrow[b-h56xbr1o2x] {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 10px;
    padding: 8px 0;
    border-top: 1px solid var(--border-subtle);
}
.ts-waitcontact[b-h56xbr1o2x] { display: flex; flex-wrap: wrap; gap: 12px; margin-left: auto; }
.ts-waitbadge[b-h56xbr1o2x] {
    background: var(--warning-soft);
    border-radius: 999px;
    padding: 1px 9px;
    font-size: .78rem;
    font-weight: 700;
}

/* Round length. Only ever drawn when a group is playing something other than this course's
   usual round, so it must read as an exception at a glance without shouting. */
.ts-holesbadge[b-h56xbr1o2x] {
    background: var(--bg-raised);
    border: 1px solid var(--border-strong);
    color: var(--text-secondary);
    border-radius: 999px;
    padding: 1px 8px;
    font-size: .78rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ts-holesline[b-h56xbr1o2x] { color: var(--text-secondary); }

/* The turn on a nine played twice — stated before the booking is taken, never discovered. */
.ts-turnnote[b-h56xbr1o2x] {
    margin: 8px 0 0;
    color: var(--text-secondary);
    font-size: .86rem;
}

.ts-bookbtn[b-h56xbr1o2x] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 48px;
    background: none;
    border: 1px dashed var(--border-strong);
    color: var(--text-muted);
    border-radius: 10px;
    padding: 6px 14px;
    cursor: pointer;
}
.ts-bookbtn:hover[b-h56xbr1o2x] { color: var(--text-primary); border-color: var(--brand); }

/* Dialogs */
.ts-overlay[b-h56xbr1o2x] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .55);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    z-index: 1050;
}
.ts-modal[b-h56xbr1o2x] {
    width: min(440px, 100%);
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    box-shadow: var(--b9-card-shadow-md);
    padding: 22px;
    max-height: 92vh;
    overflow-y: auto;
}
.ts-modal-sub[b-h56xbr1o2x] { font-size: .88rem; margin-bottom: 14px; }
.ts-label[b-h56xbr1o2x] { display: block; margin: 14px 0 6px; color: var(--text-secondary); font-size: .88rem; }
.ts-modal-actions[b-h56xbr1o2x] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }

.ts-sizerow[b-h56xbr1o2x] { display: flex; gap: 8px; }
.ts-sizebtn[b-h56xbr1o2x] {
    flex: 1;
    min-height: 48px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    color: var(--text-primary);
    border-radius: 10px;
    font-weight: 700;
    font-size: 1.05rem;
    cursor: pointer;
}
.ts-sizebtn-on[b-h56xbr1o2x] { border-color: var(--brand); background: var(--bg-surface); box-shadow: var(--b9-focus-ring); }
/* Two wide targets rather than four narrow ones — a holes row has at most two answers. */
.ts-holesbtn[b-h56xbr1o2x] { font-size: 1rem; }

.ts-timerow[b-h56xbr1o2x] { display: flex; gap: 12px; }
.ts-timerow > div[b-h56xbr1o2x] { flex: 1; }

.ts-check[b-h56xbr1o2x] { display: flex; gap: 10px; align-items: center; margin-top: 14px; color: var(--text-secondary); }
.ts-check input[b-h56xbr1o2x] { width: 20px; height: 20px; }

.ts-matchlist[b-h56xbr1o2x] {
    border: 1px solid var(--border-default);
    border-radius: 10px;
    margin-top: 6px;
    overflow: hidden;
}
.ts-matchrow[b-h56xbr1o2x] {
    display: flex;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    background: var(--bg-raised);
    border: none;
    border-bottom: 1px solid var(--border-subtle);
    color: var(--text-primary);
    padding: 12px 14px;
    min-height: 48px;
    cursor: pointer;
    text-align: left;
}
.ts-matchrow:last-child[b-h56xbr1o2x] { border-bottom: none; }
.ts-matchrow:hover[b-h56xbr1o2x] { background: var(--bg-surface); }
.ts-matchrow-hi[b-h56xbr1o2x] { background: var(--bg-surface); box-shadow: inset 3px 0 0 var(--brand); }
.ts-matchwho[b-h56xbr1o2x] { display: flex; flex-direction: column; gap: 2px; min-width: 0; text-align: left; }
.ts-matchmail[b-h56xbr1o2x] {
    color: var(--text-muted);
    font-size: .78rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ts-matchhint[b-h56xbr1o2x] {
    margin: 0;
    padding: 8px 14px;
    background: var(--bg-raised);
    border-top: 1px dashed var(--border-subtle);
    color: var(--text-muted);
    font-size: .78rem;
}

/* The tagged state: the field becomes a chip — one identity, visibly attached. */
.ts-pickedfield[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--bg-raised);
    border: 1px solid var(--brand);
    border-radius: 10px;
    padding: 6px 8px 6px 14px;
    min-height: 48px;
}
.ts-pickedname[b-h56xbr1o2x] { font-weight: 600; }
.ts-pickedclear[b-h56xbr1o2x] {
    margin-left: auto;
    background: none;
    border: none;
    color: var(--b9-primary-text);
    font-size: .85rem;
    font-weight: 600;
    cursor: pointer;
    padding: 10px 12px;
    min-height: 48px;
}
.ts-pickedclear:hover[b-h56xbr1o2x] { text-decoration: underline; }
.ts-pickedwhy[b-h56xbr1o2x] { margin: 6px 0 0; color: var(--text-muted); font-size: .78rem; }

@media (max-width: 640px) {
    .ts-time[b-h56xbr1o2x] { flex-basis: 74px; font-size: .85rem; }
    .ts-page[b-h56xbr1o2x] { padding-left: 10px !important; padding-right: 10px !important; }
}

/* Conflict queue — the human decides; nothing auto-cancels. */
.ts-conflicts[b-h56xbr1o2x] {
    background: var(--warning-soft);
    border: 1px solid var(--border-strong);
    border-radius: var(--b9-card-radius);
    padding: 14px 18px;
    margin-bottom: 14px;
}
.ts-conflicts-head[b-h56xbr1o2x] { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; margin-bottom: 8px; color: var(--text-primary); }
.ts-conflicts-sub[b-h56xbr1o2x] { color: var(--text-muted); font-size: .85rem; }
.ts-conflict-row[b-h56xbr1o2x] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 10px 0;
    border-top: 1px solid var(--border-subtle);
}
.ts-conflict-what[b-h56xbr1o2x] { color: var(--text-secondary); }
.ts-conflict-actions[b-h56xbr1o2x] { display: flex; gap: 8px; flex-wrap: wrap; }
.ts-conflict-actions .btn[b-h56xbr1o2x] { min-height: 48px; }

/* GolfNow channel badge — marks slots sold on the marketplace so nobody sells them twice. */
.ts-gnbadge[b-h56xbr1o2x] {
    font-size: .78rem;
    font-weight: 700;
    padding: 0.05rem 0.4rem;
    border-radius: 6px;
    background: rgba(16, 122, 61, 0.18);
    color: var(--success-text);
    border: 1px solid rgba(52, 211, 153, 0.35);
}

.ts-hint[b-h56xbr1o2x] {
    font-size: 0.78rem;
}

/* ── Move mode, undo, and check-in ── */
.ts-movebar[b-h56xbr1o2x],
.ts-undobar[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.55rem 0.9rem;
    border-radius: 10px;
    margin-bottom: 0.75rem;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.12));
    background: var(--bg-elevated);
}

.ts-movebar[b-h56xbr1o2x] {
    border-color: var(--brand);
}

.ts-movehere[b-h56xbr1o2x] {
    border-color: var(--brand);
    color: var(--brand-text);
    font-weight: 700;
}

.ts-chip-checkedin[b-h56xbr1o2x] {
    opacity: 0.85;
    border-style: solid;
}

.ts-checkin-mark[b-h56xbr1o2x] {
    color: var(--success-text);
}

.ts-actionstack[b-h56xbr1o2x] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 0.75rem;
}

.ts-actionstack .btn[b-h56xbr1o2x] {
    min-height: 48px;
}

/* The who's-working gate styles moved with the markup into StationPinGate.razor.css
   (scoped CSS only applies to the component that owns the markup). */

/* ── "Bring your tee sheet with you" import ────────────────────────────── */
.ts-import-modal[b-h56xbr1o2x] {
    width: min(94vw, 640px);
}

.ts-import-text[b-h56xbr1o2x] {
    font-family: var(--font-mono, ui-monospace, monospace);
    font-size: 0.85rem;
}

.ts-import-counts[b-h56xbr1o2x] {
    display: flex;
    gap: 1rem;
    margin: 0.5rem 0;
    font-weight: 600;
    font-size: 0.9rem;
}

.ts-imp-ok[b-h56xbr1o2x]   { color: var(--success-text, #4ade80); }
.ts-imp-dup[b-h56xbr1o2x]  { color: var(--text-muted, #94a3b8); }
.ts-imp-warn[b-h56xbr1o2x] { color: var(--warning-text, #fbbf24); }

.ts-import-rows[b-h56xbr1o2x] {
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.08));
    border-radius: 10px;
    padding: 0.35rem 0.6rem;
}

.ts-import-row[b-h56xbr1o2x] {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.2rem 0;
}

.ts-imp-chip[b-h56xbr1o2x] {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    align-self: center;
    background: var(--warning, #f59e0b);
}

.ts-imp-chip.ts-imp-ok[b-h56xbr1o2x]  { background: var(--success, #22c55e); }
.ts-imp-chip.ts-imp-dup[b-h56xbr1o2x] { background: var(--border-strong, #64748b); }

.ts-import-what[b-h56xbr1o2x] { font-weight: 600; white-space: nowrap; }

.ts-impbadge[b-h56xbr1o2x] {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0.1rem 0.35rem;
    border-radius: 6px;
    background: var(--bg-elevated, rgba(255, 255, 255, 0.08));
    color: var(--text-secondary, #94a3b8);
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.12));
}

.ts-standing[b-h56xbr1o2x] {
    color: var(--brand-text, #7ea6ff);
}

/* ── Day strip — the counter's two-week world ──────────────────────────── */
.ts-daystrip[b-h56xbr1o2x] {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: thin;
    padding-bottom: 2px;
}

.ts-daybtn[b-h56xbr1o2x] {
    flex: 0 0 auto;
    min-width: 68px;
    min-height: 52px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    border-radius: 10px;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.12));
    background: var(--bg-elevated, rgba(255, 255, 255, 0.03));
    color: var(--text-primary, #e6ecf7);
    cursor: pointer;
}

.ts-daybtn:hover[b-h56xbr1o2x] {
    border-color: var(--border-strong, rgba(255, 255, 255, 0.28));
}

.ts-day-dow[b-h56xbr1o2x] {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted, #8b96ab);
}

.ts-day-num[b-h56xbr1o2x] {
    font-size: 0.9rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ts-daybtn-today[b-h56xbr1o2x] {
    border-color: var(--brand, #2f6bff);
}

.ts-daybtn-today .ts-day-dow[b-h56xbr1o2x] {
    color: var(--brand-text, #7ea6ff);
}

.ts-daybtn-on[b-h56xbr1o2x],
.ts-daybtn-on:hover[b-h56xbr1o2x] {
    background: var(--brand, #2f6bff);
    border-color: var(--brand, #2f6bff);
}

.ts-daybtn-on .ts-day-dow[b-h56xbr1o2x],
.ts-daybtn-on .ts-day-num[b-h56xbr1o2x] {
    color: #fff;
}

/* The rare-case calendar: a real date input hiding behind the icon, so the
   native picker opens on tap and keyboards/screen readers still reach it. */
.ts-calbtn[b-h56xbr1o2x] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    border: 1px solid var(--border-subtle, rgba(255, 255, 255, 0.12));
    border-radius: 10px;
    color: var(--text-secondary, #aab4c6);
}

.ts-calbtn .ts-dateinput[b-h56xbr1o2x] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

/* ── The sheet reads as a sheet (2026-08-18 wide-screen redesign) ──────────────
   Research verdict: elite sheets are capacity bars with class colors and a "now"
   orientation, and the top competitor complaints are dated looks, clutter, and
   losing your place. Width is capped so 2000px monitors get a sheet, not a smear;
   each row's chips grow by party size so a full time reads full from across the
   shop; today dims its own history and draws a line at now. */
.ts-headrow[b-h56xbr1o2x], .ts-datebar[b-h56xbr1o2x], .ts-conflicts[b-h56xbr1o2x], .ts-movebar[b-h56xbr1o2x], .ts-undobar[b-h56xbr1o2x],
.ts-daypulse[b-h56xbr1o2x], .ts-grid[b-h56xbr1o2x] { max-width: 1240px; }

.ts-daypulse[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0 0 12px;
}
.ts-pulsebar[b-h56xbr1o2x] {
    flex: 1;
    height: 6px;
    border-radius: 999px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    overflow: hidden;
}
.ts-pulsebar span[b-h56xbr1o2x] {
    display: block;
    height: 100%;
    background: var(--brand);
    border-radius: 999px;
    transition: width .3s ease;
}
.ts-pulsetext[b-h56xbr1o2x] {
    color: var(--text-secondary);
    font-size: .85rem;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
/* Phones: the sentence wraps under a full-width bar — never clipped. */
@media (max-width: 640px) {
    .ts-daypulse[b-h56xbr1o2x] { flex-direction: column; align-items: stretch; gap: 6px; }
    .ts-pulsebar[b-h56xbr1o2x] { width: 100%; }
    .ts-pulsetext[b-h56xbr1o2x] { white-space: normal; }
}

.ts-period[b-h56xbr1o2x] {
    padding: 18px 14px 6px;
    color: var(--text-muted);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--border-subtle);
}

.ts-nowline[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    padding: 0 14px;
    border-bottom: 2px solid var(--brand);
}
.ts-nowline span[b-h56xbr1o2x] {
    color: var(--b9-primary-text);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    padding: 3px 0;
}

/* History fades so the eye lands on now; hover wakes a row for late check-ins. */
.ts-row-past[b-h56xbr1o2x] { opacity: .55; transition: opacity .15s ease; }
.ts-row-past:hover[b-h56xbr1o2x], .ts-row-past:focus-within[b-h56xbr1o2x] { opacity: 1; }

/* ── Off-grid rows ──────────────────────────────────────────────────────────
   A live booking the current interval or hours no longer land on. Marked with a
   word as well as a tint — never colour alone — because the counter has to be
   able to tell at a glance that this one needs moving. */
.ts-row-offgrid[b-h56xbr1o2x] {
    background: var(--warning-soft);
    border-left: 3px solid var(--warning, #d18b1f);
}

.ts-offgrid-tag[b-h56xbr1o2x] {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--text-primary);
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    white-space: nowrap;
}

.ts-offgrid-note[b-h56xbr1o2x] {
    font-size: .82rem;
    color: var(--text-muted);
    padding: 6px 10px;
    align-self: center;
}

/* ── Golfer contact on the booking dialog ───────────────────────────────── */
.ts-contact[b-h56xbr1o2x] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 14px;
    font-size: .9rem;
}

/* 48px minimum: this is the control a counter person taps to phone a golfer, one-handed,
   with someone waiting — it is exactly the case the touch-target rule exists for. */
.ts-contact-link[b-h56xbr1o2x] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 48px;
    padding: 0 10px;
    border-radius: 8px;
    color: var(--text-primary);
    text-decoration: none;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
}

.ts-contact-link:hover[b-h56xbr1o2x], .ts-contact-link:focus-visible[b-h56xbr1o2x] { border-color: currentColor; }

.ts-contact-none[b-h56xbr1o2x] { color: var(--text-muted); font-size: .85rem; }

/* The conflict queue's own contact affordance — same job, tighter row. */
.ts-conflict-contact[b-h56xbr1o2x] {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 48px;
    padding: 0 8px;
    margin-left: 8px;
    border-radius: 8px;
    font-size: .85rem;
    color: var(--text-primary);
    text-decoration: none;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
    white-space: nowrap;
}

.ts-conflict-contact:hover[b-h56xbr1o2x], .ts-conflict-contact:focus-visible[b-h56xbr1o2x] { border-color: currentColor; }

/* ── Who turned up: per-player attendance on the booking dialog ─────────── */
.ts-attendance[b-h56xbr1o2x] {
    margin-bottom: 14px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
}

.ts-attend-row[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 4px 0;
}

.ts-attend-who[b-h56xbr1o2x] {
    font-size: .92rem;
    color: var(--text-primary);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ts-attend-actions[b-h56xbr1o2x] { display: flex; gap: 6px; flex: 0 0 auto; }

/* 48px: this is tapped once per golfer with a queue at the counter. */
.ts-attend-btn[b-h56xbr1o2x] {
    min-height: 48px;
    min-width: 84px;
    padding: 0 12px;
    border-radius: 8px;
    font-size: .85rem;
    font-weight: 600;
    color: var(--text-primary);
    background: var(--bg-surface);
    border: 1px solid var(--border-subtle);
    cursor: pointer;
}

.ts-attend-btn:hover:not(:disabled)[b-h56xbr1o2x] { border-color: currentColor; }

/* Selected state carries a fill AND the word it already contains — never colour alone. */
.ts-attend-on[b-h56xbr1o2x] { background: var(--success-soft); border-color: var(--success, #2e7d52); }
.ts-attend-no.ts-attend-on[b-h56xbr1o2x] { background: var(--danger-soft); border-color: var(--danger, #b3392f); }

.ts-closurebar[b-h56xbr1o2x] { margin-bottom: 12px; }

/* Live bookings stranded on a day that was closed after they were made. */
.ts-closed-strays[b-h56xbr1o2x] { margin-top: 14px; }

.ts-closed-strays-lead[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--warning-soft);
    color: var(--text-primary);
    font-size: .9rem;
}

/* The time column is a fixed flex-basis, so the tag needs to be allowed to sit under the
   time rather than fight it for width on a narrow sheet. */
.ts-row-offgrid .ts-time[b-h56xbr1o2x] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    row-gap: 2px;
}

/* Seat-track rows: chips grow by ×party (inline flex-grow), the open button takes
   the rest — the row itself becomes the utilization bar. */
@media (min-width: 900px) {
    .ts-cell[b-h56xbr1o2x] { flex-wrap: nowrap; }
    .ts-bookingchip[b-h56xbr1o2x] { flex-basis: 0; min-width: 130px; overflow: hidden; }
    .ts-chipname[b-h56xbr1o2x] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .ts-memberbadge[b-h56xbr1o2x], .ts-gnbadge[b-h56xbr1o2x], .ts-impbadge[b-h56xbr1o2x], .ts-chipsize[b-h56xbr1o2x] { flex-shrink: 0; }
    .ts-bookbtn[b-h56xbr1o2x] { flex-basis: 0; min-width: 112px; justify-content: center; }
}

/* Phones: the day strip earns its width back — compact chips, chevrons slim, and
   the standalone Today button yields (the TODAY chip is right there). */
@media (max-width: 640px) {
    .ts-todaybtn[b-h56xbr1o2x] { display: none; }
    .ts-datebtn[b-h56xbr1o2x] { min-width: 48px; padding-left: 8px; padding-right: 8px; }
    .ts-daybtn[b-h56xbr1o2x] { padding: 6px 10px; }
    .ts-day-dow[b-h56xbr1o2x] { font-size: .78rem; }
    .ts-day-num[b-h56xbr1o2x] { font-size: .8rem; }
}

/* The one-tap clock fix, sitting inside its warning banner. */
.ts-tzfix[b-h56xbr1o2x] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-top: .5rem;
}

/* Changing a party without destroying the booking (TS-014). */
.ts-party[b-h56xbr1o2x] { margin-top: 12px; }
.ts-dropbtn[b-h56xbr1o2x] {
    min-height: 48px;
    padding: 6px 12px;
    background: none;
    border: 1px solid var(--border-default);
    border-radius: 10px;
    color: var(--text-secondary);
    cursor: pointer;
    white-space: nowrap;
}
.ts-dropbtn:hover[b-h56xbr1o2x] { color: var(--danger); border-color: var(--danger); }
.ts-addplayer[b-h56xbr1o2x] { min-height: 48px; margin-top: 8px; }

/* The staff note, editable at the counter rather than hidden in a title attribute. */
.ts-noteedit[b-h56xbr1o2x] { margin: 10px 0 4px; }
.ts-notesave[b-h56xbr1o2x] { min-height: 48px; margin-top: 8px; }
/* /Components/Pages/TeeSheet/TeeSheetPrint.razor.rz.scp.css */
/* The starter's paper. Deliberately single-look — black on white, because it is going through
   a pro-shop laser printer and the person reading it is standing at the first tee. */

.tp-page[b-ynaj7pf0os] { max-width: 1000px; margin: 0 auto; padding: 20px 16px 40px; }
.tp-muted[b-ynaj7pf0os] { color: var(--text-muted); }

.tp-toolbar[b-ynaj7pf0os] {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}
.tp-daynav[b-ynaj7pf0os] { display: flex; gap: 8px; margin-left: auto; }
.tp-toolbar .btn[b-ynaj7pf0os] { min-height: 48px; }

/* Screen preview shows the page as it will print: a white sheet, whatever the app theme. */
.tp-paper[b-ynaj7pf0os] {
    background: #fff;
    color: #111;
    border: 1px solid var(--border-default);
    border-radius: 8px;
    padding: 24px 22px;
}

.tp-head[b-ynaj7pf0os] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
    border-bottom: 2px solid #111;
    padding-bottom: 10px;
    margin-bottom: 14px;
}
.tp-title[b-ynaj7pf0os] { font-size: 1.5rem; font-weight: 800; margin: 0; color: #111; }
.tp-date[b-ynaj7pf0os] { font-size: 1.05rem; margin: 2px 0 0; color: #333; }
.tp-counts[b-ynaj7pf0os] { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: .92rem; }
.tp-printed[b-ynaj7pf0os] { color: #555; font-size: .82rem; }

.tp-closed[b-ynaj7pf0os] {
    font-weight: 800;
    letter-spacing: .04em;
    border: 2px solid #111;
    padding: 8px 12px;
    margin: 0 0 14px;
}

.tp-blocks[b-ynaj7pf0os] { margin: 0 0 14px; padding-left: 18px; font-size: .92rem; }
.tp-blocks li[b-ynaj7pf0os] { margin-bottom: 2px; }

.tp-table[b-ynaj7pf0os] { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tp-table th[b-ynaj7pf0os] {
    text-align: left;
    border-bottom: 1.5px solid #111;
    padding: 6px 8px;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.tp-table td[b-ynaj7pf0os] {
    border-bottom: 1px solid #ccc;
    padding: 8px;
    vertical-align: top;
}
.tp-c-time[b-ynaj7pf0os] { white-space: nowrap; font-weight: 700; font-variant-numeric: tabular-nums; width: 6.5rem; }
.tp-c-num[b-ynaj7pf0os] { text-align: center; width: 2.5rem; font-variant-numeric: tabular-nums; }
.tp-c-holes[b-ynaj7pf0os] { width: 5rem; font-variant-numeric: tabular-nums; }
.tp-c-contact[b-ynaj7pf0os] { width: 11rem; font-variant-numeric: tabular-nums; }
.tp-c-in[b-ynaj7pf0os] { width: 3rem; text-align: center; }

/* A pen box, because the fallback this exists for has no working screen to tap. */
.tp-box[b-ynaj7pf0os] {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 1.5px solid #111;
}

.tp-tag[b-ynaj7pf0os] {
    display: inline-block;
    margin-left: 6px;
    padding: 0 6px;
    border: 1px solid #666;
    border-radius: 3px;
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #333;
}
.tp-names[b-ynaj7pf0os] { display: block; font-size: .82rem; color: #444; }
.tp-offgrid td[b-ynaj7pf0os] { background: #f2f2f2; }

@media print {
    /* Chrome off, ink on. Everything the starter needs is inside .tp-paper. */
    .tp-noprint[b-ynaj7pf0os] { display: none !important; }
    .tp-page[b-ynaj7pf0os] { padding: 0; max-width: none; }
    .tp-paper[b-ynaj7pf0os] { border: none; border-radius: 0; padding: 0; }
    /* A day sheet that splits a group across a page break is a group the starter misses. */
    .tp-table tr[b-ynaj7pf0os] { break-inside: avoid; }
    .tp-table thead[b-ynaj7pf0os] { display: table-header-group; }
}
/* /Components/Pages/TeeSheet/TeeSheetQrKit.razor.rz.scp.css */
.qk-page[b-tdemktg9b3] { max-width: 640px; margin: 0 auto; padding: 24px 16px 60px; }
.qk-muted[b-tdemktg9b3] { color: var(--text-muted); }
.qk-card[b-tdemktg9b3] {
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    padding: 24px;
}
.qk-toolbar[b-tdemktg9b3] { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 8px; }
.qk-btn[b-tdemktg9b3] { min-height: 48px; }

/* The printed card is deliberately single-look: black on white, at the counter. */
.qk-cardstock[b-tdemktg9b3] {
    background: #ffffff;
    color: #101418;
    border: 1px solid var(--border-default);
    border-radius: 14px;
    max-width: 420px;
    margin: 18px auto 0;
    padding: 34px 30px;
    text-align: center;
}
.qk-org[b-tdemktg9b3] { font-size: 1rem; letter-spacing: .08em; text-transform: uppercase; color: #4a5560; }
.qk-headline[b-tdemktg9b3] { font-size: 1.7rem; font-weight: 800; margin: 6px 0 18px; }
.qk-qr[b-tdemktg9b3] { max-width: 240px; margin: 0 auto; }
.qk-qr[b-tdemktg9b3]  svg { width: 100%; height: auto; display: block; }
.qk-sub[b-tdemktg9b3] { font-size: 1.05rem; font-weight: 600; margin-top: 16px; }
.qk-sub2[b-tdemktg9b3] { font-size: .9rem; color: #4a5560; margin-top: 6px; }

@media print {
    .qk-noprint[b-tdemktg9b3] { display: none !important; }
    .qk-page[b-tdemktg9b3] { padding: 0; max-width: none; }
    .qk-cardstock[b-tdemktg9b3] { border: none; margin: 0 auto; }
}
/* /Components/Pages/TeeSheet/TeeSheetReports.razor.rz.scp.css */
/* End-of-day numbers. Big figures, few of them — the reader is standing at a counter at the
   end of a shift, not sitting down to analyse anything. */

.tr-page[b-9p65f3tk1m] { max-width: 900px; margin: 0 auto; padding: 20px 16px 48px; }
.tr-muted[b-9p65f3tk1m] { color: var(--text-muted); }

.tr-head[b-9p65f3tk1m] { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.tr-back[b-9p65f3tk1m] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    color: var(--text-secondary);
    text-decoration: none;
}
.tr-back:hover[b-9p65f3tk1m] { color: var(--text-primary); }
.tr-title[b-9p65f3tk1m] { font-size: 1.5rem; font-weight: 800; margin: 0; }

.tr-rangebar[b-9p65f3tk1m] { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.tr-rangebtn[b-9p65f3tk1m] { min-height: 48px; }
.tr-csv[b-9p65f3tk1m] { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; }

.tr-range[b-9p65f3tk1m] { color: var(--text-secondary); margin: 0 0 14px; }

.tr-cards[b-9p65f3tk1m] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 26px;
}
.tr-card[b-9p65f3tk1m] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 16px 18px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
}
/* Rounds played is the number the shift is reconciled against — it leads. */
.tr-card-lead[b-9p65f3tk1m] { border-color: var(--brand); }
.tr-num[b-9p65f3tk1m] { font-size: 2rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.tr-lab[b-9p65f3tk1m] { color: var(--text-secondary); font-size: .9rem; }
.tr-sub[b-9p65f3tk1m] { color: var(--text-muted); font-size: .82rem; }

.tr-h2[b-9p65f3tk1m] { font-size: 1.05rem; font-weight: 700; margin: 0 0 10px; }

.tr-sources[b-9p65f3tk1m] { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.tr-sources li[b-9p65f3tk1m] { display: flex; align-items: center; gap: 12px; }
.tr-srcname[b-9p65f3tk1m] { flex: 0 0 14rem; font-size: .92rem; }
.tr-srcbar[b-9p65f3tk1m] {
    flex: 1;
    height: 12px;
    background: var(--bg-raised);
    border-radius: 999px;
    overflow: hidden;
}
.tr-srcfill[b-9p65f3tk1m] { display: block; height: 100%; background: var(--brand); }
.tr-srcnum[b-9p65f3tk1m] { flex: 0 0 3rem; text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }

@media (max-width: 560px) {
    .tr-srcname[b-9p65f3tk1m] { flex-basis: 8rem; font-size: .85rem; }
    .tr-csv[b-9p65f3tk1m] { margin-left: 0; }
}
/* /Components/Pages/TeeSheet/TeeSheetSetup.razor.rz.scp.css */
/* Tee sheet setup — the two-minute wizard. */

.tss-card[b-unhtqfmel7] {
    max-width: 680px;
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    border-radius: var(--b9-card-radius);
    padding: 26px;
}

.tss-days[b-unhtqfmel7] { display: flex; flex-direction: column; gap: 10px; }
.tss-dayrow[b-unhtqfmel7] {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    padding: 10px 12px;
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    background: var(--bg-elevated);
}
.tss-dayrow-closed[b-unhtqfmel7] { opacity: .75; }
.tss-dayname[b-unhtqfmel7] {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 150px;
    min-height: 48px;
    color: var(--text-primary);
    font-weight: 600;
    cursor: pointer;
}
.tss-dayname input[b-unhtqfmel7] { width: 20px; height: 20px; }
.tss-daytimes[b-unhtqfmel7] { display: flex; gap: 12px; flex-wrap: wrap; }
.tss-daytimes label[b-unhtqfmel7] { display: flex; flex-direction: column; gap: 4px; }
.tss-daytimes input[b-unhtqfmel7] { min-height: 48px; }
.tss-mini[b-unhtqfmel7] { color: var(--text-muted); font-size: .8rem; }
.tss-closednote[b-unhtqfmel7] { color: var(--text-muted); }

.tss-pair[b-unhtqfmel7] { display: flex; gap: 16px; flex-wrap: wrap; }
.tss-pair label[b-unhtqfmel7] { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 200px; }
.tss-pair select[b-unhtqfmel7] { min-height: 48px; }

.tss-coming[b-unhtqfmel7] {
    margin-top: 26px;
    border: 1px dashed var(--border-strong);
    border-radius: 10px;
    padding: 16px 18px;
    color: var(--text-muted);
}
.tss-coming-copy[b-unhtqfmel7] { margin: 0; font-size: .9rem; }

.tss-actions[b-unhtqfmel7] { display: flex; justify-content: flex-end; gap: 10px; margin-top: 24px; }
.tss-btn[b-unhtqfmel7] { min-height: 48px; min-width: 120px; }

/* Senior/junior/resident savings, laid out as the small grid a price sign already is:
   a row label and one box per length sold. Columns collapse to one when the course sells
   a single length, so nobody stares at an empty second column. */
.tss-discounts[b-unhtqfmel7] { display: flex; flex-direction: column; gap: 8px; }
.tss-discount-row[b-unhtqfmel7] {
    display: grid;
    grid-template-columns: 9rem minmax(0, 1fr) minmax(0, 1fr);
    gap: 12px;
    align-items: center;
}
.tss-discounts-single .tss-discount-row[b-unhtqfmel7] { grid-template-columns: 9rem minmax(0, 1fr); }
.tss-discount-head[b-unhtqfmel7] { color: var(--text-muted); }
.tss-discount-row input[b-unhtqfmel7] { min-height: 48px; }

@media (max-width: 560px) {
    .tss-discount-row[b-unhtqfmel7] { grid-template-columns: 1fr 1fr; }
    .tss-discount-row > label:first-child[b-unhtqfmel7] { grid-column: 1 / -1; }
    .tss-discount-head[b-unhtqfmel7] { display: none; }
}

/* The live check: what a golfer will actually read, before anything is saved. */
.tss-ratepreview[b-unhtqfmel7] {
    margin-top: 14px;
    padding: 12px 14px;
    background: var(--bg-raised);
    border: 1px solid var(--border-default);
    border-radius: 10px;
}
.tss-ratepreview p[b-unhtqfmel7] { color: var(--text-secondary); }

.tss-check[b-unhtqfmel7] { display: flex; gap: 10px; align-items: flex-start; color: var(--text-primary); }
.tss-check input[b-unhtqfmel7] { width: 20px; height: 20px; margin-top: 2px; }

.tss-mow-day[b-unhtqfmel7] { max-width: 160px; min-height: 48px; }
.tss-mow-x[b-unhtqfmel7] { min-height: 48px; min-width: 48px; margin-left: auto; }

/* Standing tee times add row — one line on desktop, stacks on phones. */
.tss-standing-add[b-unhtqfmel7] {
    display: grid;
    grid-template-columns: 150px 130px 90px 1fr auto;
    gap: 0.5rem;
    align-items: center;
}

@media (max-width: 720px) {
    .tss-standing-add[b-unhtqfmel7] {
        grid-template-columns: 1fr 1fr;
    }
}

/* ── Rates v2: the season list ── */
.tss-season-list[b-unhtqfmel7] {
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tss-season-row[b-unhtqfmel7] {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 10px 14px;
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
}

.tss-season-name[b-unhtqfmel7] { font-weight: 700; }
.tss-season-dates[b-unhtqfmel7] { color: var(--text-muted); font-size: .9rem; }
.tss-season-prices[b-unhtqfmel7] {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    margin-left: auto;
}

.tss-season-add[b-unhtqfmel7] {
    border: 1px dashed var(--border-strong);
    border-radius: 10px;
    padding: 12px 14px;
}

/* ── Module pass 2026-08-18: the wizard stops being a wall ─────────────────────
   Research: group long settings into named sections and let people jump; put
   hierarchy before scroll. The card widens, the day rows compress to one line,
   and a sticky chip rail names the six sections. */
.tss-card[b-unhtqfmel7] { max-width: 860px; }

.tss-jumpnav[b-unhtqfmel7] {
    position: sticky;
    top: 0;
    z-index: 5;
    display: flex;
    gap: 8px;
    max-width: 860px;
    padding: 10px 0;
    margin-bottom: 8px;
    background: var(--bg-app);
    overflow-x: auto;
    scrollbar-width: none;
}

/* A jumped-to heading lands BELOW the sticky rail, never underneath it. */
.tss-card h2[id][b-unhtqfmel7], .tss-card h3[id][b-unhtqfmel7] { scroll-margin-top: 72px; }
.tss-jumpnav[b-unhtqfmel7]::-webkit-scrollbar { display: none; }
.tss-jumpnav button[b-unhtqfmel7] {
    flex: 0 0 auto;
    min-height: 48px;
    padding: 6px 14px;
    background: var(--bg-surface);
    border: 1px solid var(--border-default);
    color: var(--text-secondary);
    border-radius: 999px;
    font-size: .86rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}
.tss-jumpnav button:hover[b-unhtqfmel7] { color: var(--text-primary); border-color: var(--brand); }

/* Desktop: a day is one line — label beside input, seven rows read as a table. */
@media (min-width: 900px) {
    .tss-daytimes label[b-unhtqfmel7] { flex-direction: row; align-items: center; gap: 8px; }
}

/* Placeholders are hints, not data: at full brightness the rates card looks
   pre-filled ("28"/"35" read as saved prices — it fooled a careful reviewer,
   so it will fool a club owner). Bootstrap's form-control lacks the muting the
   b9-input family has; scoped here where the confusion bit. */
.tss-card input[b-unhtqfmel7]::placeholder { color: var(--text-muted); opacity: .55; }

/* The club's own GolfNow address — the one thing on the card someone has to copy exactly,
   so it gets room and a handle rather than sitting inside a paragraph. */
.tss-gn-address[b-unhtqfmel7] {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    padding: .5rem .75rem;
    border-radius: 8px;
    background: var(--bg-raised);
    border: 1px solid var(--border-subtle);
}

.tss-gn-address code[b-unhtqfmel7] {
    font-size: .95rem;
    font-weight: 600;
    color: var(--text-primary);
    word-break: break-all;
}

.tss-gn-steps[b-unhtqfmel7] {
    padding-left: 1.1rem;
    margin-bottom: .75rem;
}

.tss-gn-steps li[b-unhtqfmel7] { margin-bottom: .4rem; }

/* The GolfNow ingest history — the only record that exists, since the mail provider keeps none. */
.tss-gn-activity[b-unhtqfmel7] {
    margin-top: 1rem;
    padding-top: .75rem;
    border-top: 1px solid var(--border-subtle);
}

.tss-gn-activity-head[b-unhtqfmel7] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin-bottom: .5rem;
}

.tss-gn-outcome[b-unhtqfmel7] {
    display: inline-block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 1px 7px;
    border-radius: 4px;
}

.tss-gn-ok[b-unhtqfmel7]   { background: var(--success-soft, rgba(34,197,94,0.15));  color: var(--success, #22C55E); }
.tss-gn-bad[b-unhtqfmel7]  { background: var(--danger-soft,  rgba(220,38,38,0.15));  color: var(--b9-danger, #DC2626); }
.tss-gn-meh[b-unhtqfmel7]  { background: var(--bg-raised);                            color: var(--text-secondary, var(--text-muted)); }
/* /Components/Security/RouteAccessGate.razor.rz.scp.css */
.route-gate-loading[b-aj7g1hpe4k] {
    min-height: 46vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.route-gate-loading-state[b-aj7g1hpe4k] {
    width: min(100%, 540px);
}
/* /Components/Shared/AdminOrgOverrideBanner.razor.rz.scp.css */
/* Admin org-override banner (extracted from inline styles, Blazor audit Batch G).
   --brand-strong was never defined; its #1D4ED8 fallback equals --brand. */
.aob-banner[b-aus6x6np9p] {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .6rem 1rem;
    margin-bottom: 1rem;
    border-radius: 10px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-left: 4px solid var(--brand);
    color: var(--text-primary);
}

.aob-banner > .bi-shield-lock-fill[b-aus6x6np9p] { color: var(--b9-primary-text); }

.aob-exit[b-aus6x6np9p] { margin-left: auto; }
/* /Components/Shared/Billing/FeatureLockedModal.razor.rz.scp.css */
/* ================================================================
   FEATURE LOCKED MODAL — paywall upgrade prompt overlay
   ================================================================ */

.fl-overlay[b-jxis6ikkl5] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(2, 6, 23, 0.72);
    backdrop-filter: blur(6px);
}

.fl-modal[b-jxis6ikkl5] {
    position: relative;
    width: min(440px, 100%);
    background: var(--b9-card-bg, #0f172a);
    border: 1px solid var(--b9-card-border, rgba(255, 255, 255, 0.08));
    border-radius: 16px;
    box-shadow: var(--b9-card-shadow-xl, 0 25px 50px rgba(0, 0, 0, 0.5));
    color: var(--b9-text, #f1f5f9);
    overflow: hidden;
}

.fl-modal-header[b-jxis6ikkl5] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.25rem 0;
}

.fl-modal-title-row[b-jxis6ikkl5] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
}

.fl-lock-icon[b-jxis6ikkl5] {
    font-size: 1.25rem;
    color: #f59e0b;
    flex-shrink: 0;
}

.fl-title[b-jxis6ikkl5] {
    font-size: 1.125rem;
    font-weight: 700;
    margin: 0;
    color: var(--text-primary, #f1f5f9);
}

.fl-close-btn[b-jxis6ikkl5] {
    background: transparent;
    border: none;
    padding: 0.25rem;
    color: var(--text-muted, #64748b);
    cursor: pointer;
    flex-shrink: 0;
    line-height: 1;
    margin-top: 2px;
}

.fl-close-btn:hover[b-jxis6ikkl5] {
    color: var(--text-secondary, #94a3b8);
}

.fl-modal-body[b-jxis6ikkl5] {
    padding: 1rem 1.25rem 0;
}

.fl-description[b-jxis6ikkl5] {
    font-size: 0.9375rem;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.6;
    margin-bottom: 1rem;
}

.fl-plan-badge[b-jxis6ikkl5] {
    display: inline-flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--b9-primary-text);
    background: rgba(22, 163, 74, 0.1);
    border: 1px solid rgba(22, 163, 74, 0.25);
    border-radius: 6px;
    padding: 0.3125rem 0.75rem;
}

.fl-modal-footer[b-jxis6ikkl5] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem;
}

.fl-btn-primary[b-jxis6ikkl5] {
    display: block;
    text-align: center;
    padding: 0.625rem 1rem;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    font-weight: 600;
    font-size: 0.9375rem;
    border-radius: 8px;
    text-decoration: none;
    transition: background 0.15s;
}

.fl-btn-primary:hover[b-jxis6ikkl5] {
    background: #15803d;
    color: #fff;
}

.fl-btn-secondary[b-jxis6ikkl5] {
    display: block;
    text-align: center;
    padding: 0.5625rem 1rem;
    border: 1px solid var(--b9-border, rgba(255, 255, 255, 0.1));
    color: var(--text-secondary, #94a3b8);
    font-size: 0.875rem;
    border-radius: 8px;
    text-decoration: none;
}

.fl-btn-secondary:hover[b-jxis6ikkl5] {
    border-color: rgba(255, 255, 255, 0.2);
    color: var(--text-primary, #f1f5f9);
}

.fl-btn-ghost[b-jxis6ikkl5] {
    background: transparent;
    border: none;
    color: var(--text-muted, #64748b);
    font-size: 0.8125rem;
    cursor: pointer;
    padding: 0.25rem;
    text-align: center;
    width: 100%;
}

.fl-btn-ghost:hover[b-jxis6ikkl5] {
    color: var(--text-secondary, #94a3b8);
}
/* /Components/Shared/Billing/SoftLimitWarning.razor.rz.scp.css */
/* ================================================================
   SOFT LIMIT WARNING — inline plan-limit nudge banner
   ================================================================ */

.slw-banner[b-aflagudi0z] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.875rem;
    background: rgba(245, 158, 11, 0.08);
    border: 1px solid rgba(245, 158, 11, 0.28);
    border-radius: 8px;
    font-size: 0.875rem;
    flex-wrap: wrap;
}

.slw-icon[b-aflagudi0z] {
    color: #f59e0b;
    flex-shrink: 0;
}

.slw-message[b-aflagudi0z] {
    color: var(--text-secondary, #94a3b8);
    flex: 1;
    min-width: 0;
}

.slw-cta[b-aflagudi0z] {
    color: #f59e0b;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.slw-cta:hover[b-aflagudi0z] {
    text-decoration: underline;
}
/* /Components/Shared/Billing/TrialBanner.razor.rz.scp.css */
/* ================================================================
   TRIAL BANNER — top-of-content subscription trial status strip
   ================================================================ */

.trial-banner[b-6rkg7pnvvd] {
    background: linear-gradient(90deg, rgba(22, 163, 74, 0.12) 0%, rgba(21, 128, 61, 0.06) 100%);
    border: 1px solid rgba(22, 163, 74, 0.28);
    border-radius: 8px;
    margin-bottom: 1.25rem;
}

.trial-banner-inner[b-6rkg7pnvvd] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.625rem 1rem;
}

.trial-banner-content[b-6rkg7pnvvd] {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    flex-wrap: wrap;
}

.trial-banner-icon[b-6rkg7pnvvd] {
    font-size: 1.05rem;
    color: var(--b9-success-text);
    flex-shrink: 0;
}

.trial-banner-text[b-6rkg7pnvvd] {
    font-size: 0.875rem;
    color: var(--text-primary, #f1f5f9);
}

.trial-banner-text strong[b-6rkg7pnvvd] {
    color: var(--b9-success-text);
}

.trial-banner-cta[b-6rkg7pnvvd] {
    display: inline-flex;
    align-items: center;
    min-height: var(--touch-target-min, 48px);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--b9-success-text);
    text-decoration: underline;
    white-space: nowrap;
}

.trial-banner-cta:hover[b-6rkg7pnvvd] {
    text-decoration: underline;
}

.trial-banner-dismiss[b-6rkg7pnvvd] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    background: transparent;
    border: none;
    padding: 0.25rem;
    color: var(--text-muted, #64748b);
    cursor: pointer;
    flex-shrink: 0;
    line-height: 1;
}

.trial-banner-dismiss:hover[b-6rkg7pnvvd] {
    color: var(--text-secondary, #94a3b8);
}

/* Expired-trial variant — amber warning instead of the green "active" look */
.trial-banner--expired[b-6rkg7pnvvd] {
    background: linear-gradient(90deg, rgba(217, 119, 6, 0.14) 0%, rgba(180, 83, 9, 0.07) 100%);
    border-color: rgba(217, 119, 6, 0.35);
}

.trial-banner--expired .trial-banner-icon[b-6rkg7pnvvd],
.trial-banner--expired .trial-banner-text strong[b-6rkg7pnvvd],
.trial-banner--expired .trial-banner-cta[b-6rkg7pnvvd] {
    color: var(--b9-warning-text, #f59e0b);
}
/* /Components/Shared/BlockingReasonList.razor.rz.scp.css */
.ui-blocking-list[b-vzz7sj434x] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.ui-blocking-list__item[b-vzz7sj434x] {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    padding: 0.55rem 0.7rem;
    border-radius: 6px;
    border: 1px solid transparent;
    line-height: 1.35;
}

.ui-blocking-list__item i[b-vzz7sj434x] {
    flex-shrink: 0;
    font-size: 1.05em;
    margin-top: 0.1rem;
}

.ui-blocking-list__item--error[b-vzz7sj434x] {
    background: var(--danger-soft);
    color: var(--danger-text);
    border-color: rgba(239,68,68,0.28);
}

.ui-blocking-list__item--warning[b-vzz7sj434x] {
    background: var(--warning-soft);
    color: var(--warning-text);
    border-color: rgba(251,191,36,0.28);
}

.ui-blocking-list__msg[b-vzz7sj434x] {
    font-weight: 500;
}

.ui-blocking-list code[b-vzz7sj434x] {
    font-size: 0.78em;
    opacity: 0.85;
}
/* /Components/Shared/EventBrandingEditor.razor.rz.scp.css */
.eb-editor[b-wo3rr4va2q] { display: flex; flex-direction: column; gap: .9rem; }

.eb-block[b-wo3rr4va2q] {
    border: 1px solid var(--border-subtle);
    border-radius: 10px;
    padding: .75rem .85rem;
    background: var(--bg-surface);
}

.eb-head[b-wo3rr4va2q] { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem .6rem; margin-bottom: .55rem; }
.eb-title[b-wo3rr4va2q] { font-weight: 600; font-size: .9rem; color: var(--text-primary); }
.eb-opt[b-wo3rr4va2q] { font-weight: 400; color: var(--text-muted); font-size: .8rem; }
.eb-badge[b-wo3rr4va2q] {
    font-size: .68rem;
    color: var(--text-muted);
    background: var(--brand-soft);
    border-radius: 999px;
    padding: .12rem .5rem;
}

.eb-row[b-wo3rr4va2q] { display: flex; align-items: center; gap: .85rem; flex-wrap: wrap; }

.eb-preview[b-wo3rr4va2q] {
    width: 92px; height: 60px;
    border: 1px dashed var(--border-subtle);
    border-radius: 8px;
    display: flex; align-items: center; justify-content: center;
    overflow: hidden;
    background: var(--bg-elevated);
    flex: 0 0 auto;
}
.eb-preview img[b-wo3rr4va2q] { max-width: 100%; max-height: 100%; object-fit: contain; }
.eb-preview-sponsor[b-wo3rr4va2q] { width: 120px; }
.eb-empty[b-wo3rr4va2q] { color: var(--text-muted); font-size: 1.3rem; opacity: .6; }

.eb-actions[b-wo3rr4va2q] { display: flex; flex-direction: column; align-items: flex-start; gap: .3rem; }
.eb-upload[b-wo3rr4va2q] {
    display: inline-flex; align-items: center;
    cursor: pointer;
    font-size: .8rem; font-weight: 600;
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    border-radius: 8px;
    padding: .35rem .7rem;
    margin: 0;
    background: var(--bg-elevated);
    min-height: 2.2rem;
}
.eb-upload:hover[b-wo3rr4va2q] { background: var(--brand-soft); }

.eb-msg[b-wo3rr4va2q] { font-size: .78rem; margin-top: .45rem; }
.eb-err[b-wo3rr4va2q] { color: var(--danger, #ef4444); }

/* Saved, but it will not print sharply. Amber, not red — the file IS on the sponsor's row, and
   colouring a caveat like a failure is how an organizer learns to ignore both.
   --b9-warning-text (not --b9-warning) is the ink variant: the fill colour as text measures
   about 3:1 on this dark surface. */
.eb-warn[b-wo3rr4va2q] { color: var(--b9-warning-text, #FCD34D); }
.eb-ok[b-wo3rr4va2q] { color: var(--success, #22c55e); }
.eb-hint[b-wo3rr4va2q] { font-size: .72rem; color: var(--text-muted); margin-top: .4rem; }

.eb-locked[b-wo3rr4va2q] {
    font-size: .8rem; color: var(--text-muted);
    background: var(--bg-elevated);
    border: 1px dashed var(--border-subtle);
    border-radius: 8px;
    padding: .55rem .7rem;
}
.eb-locked a[b-wo3rr4va2q] { font-weight: 600; }

.eb-sponsor-name[b-wo3rr4va2q] { display: flex; gap: .5rem; margin-bottom: .6rem; }
.eb-sponsor-name input[b-wo3rr4va2q] { flex: 1 1 auto; }

/* ── Sponsor wall rows ─────────────────────────────────────────────────────── */
.eb-wall-row[b-wo3rr4va2q] {
    display: flex; align-items: center; gap: .7rem;
    padding: .5rem 0;
    border-top: 1px solid var(--border-subtle);
}
.eb-wall-row:first-of-type[b-wo3rr4va2q] { border-top: none; }
.eb-wall-mid[b-wo3rr4va2q] { flex: 1 1 auto; display: flex; flex-direction: column; gap: .4rem; min-width: 0; }
.eb-wall-actions[b-wo3rr4va2q] { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.eb-upload-sm[b-wo3rr4va2q] {
    display: inline-flex; align-items: center;
    cursor: pointer; margin: 0;
    font-size: .74rem; font-weight: 600;
    color: var(--text-primary);
    border: 1px solid var(--border-subtle);
    border-radius: 7px;
    padding: .25rem .55rem;
    background: var(--bg-elevated);
}
.eb-upload-sm:hover[b-wo3rr4va2q] { background: var(--brand-soft); }
.eb-iconbtn[b-wo3rr4va2q] {
    display: inline-flex; align-items: center; justify-content: center;
    width: 2rem; height: 2rem;
    border: 1px solid var(--border-subtle);
    border-radius: 7px;
    background: var(--bg-elevated);
    color: var(--text-muted);
    cursor: pointer;
}
.eb-iconbtn:hover:not(:disabled)[b-wo3rr4va2q] { background: var(--brand-soft); color: var(--text-primary); }
.eb-iconbtn:disabled[b-wo3rr4va2q] { opacity: .4; cursor: default; }
.eb-iconbtn-danger:hover:not(:disabled)[b-wo3rr4va2q] { color: var(--danger, #ef4444); }

/* Route to the dedicated sponsor screens — the sidebar editor handles a few sponsors,
   that page handles a hundred and owns tee-box assignment. */
.eb-manage-link[b-wo3rr4va2q] {
    display: inline-flex;
    align-items: center;
    margin-bottom: 0.6rem;
    padding: 0.5rem 0.75rem;
    border: 1px solid var(--b9-border-strong);
    border-radius: 8px;
    background: var(--b9-surface-muted);
    color: var(--b9-primary-text);
    font-size: 0.8rem;
    font-weight: 600;
    text-decoration: none;
    min-height: 40px;
}

.eb-manage-link:hover[b-wo3rr4va2q] {
    border-color: var(--b9-primary);
    color: var(--b9-primary-text);
}

/* Event accent colour — shown so an organiser can see what was detected from their
   photo, and overrule it. Design tokens only; never raw colours. */
.eb-accent[b-wo3rr4va2q] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 0.6rem;
}

.eb-accent-label[b-wo3rr4va2q] {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--b9-text-muted);
}


/* A native colour input is the one control every browser and screen reader already
   understands — 48px tall so it stays a comfortable touch target on a phone. */
.eb-accent-input[b-wo3rr4va2q] {
    width: 52px;
    height: 48px;
    padding: 2px;
    border: 1px solid var(--b9-border-strong);
    border-radius: 8px;
    background: var(--b9-surface-muted);
    cursor: pointer;
}

.eb-accent-hex[b-wo3rr4va2q] {
    font-size: 0.75rem;
    color: var(--b9-text-muted);
    text-transform: uppercase;
}
/* /Components/Shared/GetTheAppCard.razor.rz.scp.css */
.getapp-section[b-sicjegqppg] {
    margin-top: 1rem;
}

.getapp-heading[b-sicjegqppg] {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-muted);
    margin: 0 0 0.5rem;
}

.getapp-card[b-sicjegqppg] {
    position: relative;
    background: var(--brand-soft);
    border: 1px solid var(--brand-ring);
    border-radius: 12px;
    padding: 0.95rem;
}

.getapp-meta[b-sicjegqppg] {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    margin-bottom: 0.35rem;
}

.getapp-title[b-sicjegqppg] {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text-primary);
    margin: 0 0 0.25rem;
}

.getapp-note[b-sicjegqppg] {
    font-size: 0.875rem;
    color: var(--text-secondary);
    margin: 0 0 0.85rem;
    max-width: 34rem;
}

.getapp-dismiss[b-sicjegqppg] {
    position: absolute;
    top: 0.35rem;
    right: 0.35rem;
    /* 48px, not the 44 of WCAG 2.5.5: this project's floor is 48 (CLAUDE.md), and dismissing a
       card you did not ask for should not be the hardest thing to hit on the page. */
    width: var(--touch-target-min, 48px);
    height: var(--touch-target-min, 48px);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: var(--text-muted);
    font-size: 0.95rem;        /* glyph stays modest inside the larger hit area */
    cursor: pointer;
}

.getapp-dismiss:hover[b-sicjegqppg] {
    background: var(--bg-raised);
    color: var(--text-primary);
}
/* /Components/Shared/OnboardingBanner.razor.rz.scp.css */
/* ================================================================
   ONBOARDING BANNER
   First-run setup wizard — course detail page, new orgs only
   ================================================================ */

.ob-banner[b-r1dnh30f2p] {
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    background: linear-gradient(135deg,
        rgba(22, 163, 74, 0.07) 0%,
        rgba(16, 185, 129, 0.05) 50%,
        rgba(59, 130, 246, 0.04) 100%);
    padding: 1.25rem 1.5rem 1.5rem;
}

.ob-banner-inner[b-r1dnh30f2p] {
    max-width: 960px;
    margin: 0 auto;
}

/* ── Header row ── */
.ob-header[b-r1dnh30f2p] {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    gap: 1rem;
}

.ob-header-left[b-r1dnh30f2p] {
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
}

.ob-rocket[b-r1dnh30f2p] {
    font-size: 1.625rem;
    color: var(--b9-primary-text);
    flex-shrink: 0;
    margin-top: 2px;
}

.ob-title[b-r1dnh30f2p] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    line-height: 1.3;
}

.ob-subtitle[b-r1dnh30f2p] {
    font-size: 0.875rem;
    color: var(--text-muted, #64748b);
    margin-top: 0.2rem;
}

.ob-dismiss[b-r1dnh30f2p] {
    background: none;
    border: none;
    padding: 0.25rem 0.375rem;
    color: var(--text-muted, #64748b);
    cursor: pointer;
    border-radius: 6px;
    line-height: 1;
    transition: color 0.15s, background 0.15s;
    flex-shrink: 0;
}

.ob-dismiss:hover[b-r1dnh30f2p] {
    color: var(--text-primary, #f1f5f9);
    background: rgba(255,255,255,0.06);
}

/* ── Steps row ── */
.ob-steps[b-r1dnh30f2p] {
    display: flex;
    align-items: flex-start;
    gap: 0;
    flex-wrap: wrap;
}

.ob-step[b-r1dnh30f2p] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    flex: 1;
    min-width: 180px;
    padding: 1rem 1.25rem;
    border-radius: 12px;
    border: 1px solid transparent;
    transition: border-color 0.15s;
}

.ob-step-done[b-r1dnh30f2p] {
    background: rgba(22, 163, 74, 0.07);
    border-color: rgba(22, 163, 74, 0.2);
}

.ob-step-active[b-r1dnh30f2p] {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.1);
    box-shadow: 0 0 0 1px rgba(99, 102, 241, 0.2);
}

.ob-step-pending[b-r1dnh30f2p] {
    background: rgba(255,255,255,0.02);
    border-color: rgba(255,255,255,0.04);
    opacity: 0.7;
}

/* Step icon / number circle */
.ob-step-check[b-r1dnh30f2p] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.875rem;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}

.ob-step-num[b-r1dnh30f2p] {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.12);
    color: var(--text-secondary, #94a3b8);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    font-weight: 700;
    flex-shrink: 0;
    margin-top: 1px;
}

.ob-step-num-done[b-r1dnh30f2p] {
    background: var(--b9-primary, #16a34a);
    border-color: transparent;
    color: #fff;
}

/* Step body */
.ob-step-body[b-r1dnh30f2p] {
    flex: 1;
    min-width: 0;
}

.ob-step-label[b-r1dnh30f2p] {
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin-bottom: 0.2rem;
}

.ob-step-detail[b-r1dnh30f2p] {
    font-size: 0.8125rem;
    color: var(--text-muted, #64748b);
    line-height: 1.45;
    margin-bottom: 0.5rem;
}

.ob-step-cta[b-r1dnh30f2p] {
    display: inline-flex;
    align-items: center;
    font-size: 0.8125rem;
    font-weight: 600;
    padding: 0.3rem 0.75rem;
    border-radius: 7px;
    background: var(--b9-primary, #16a34a);
    color: #fff;
    text-decoration: none;
    transition: opacity 0.15s;
}

.ob-step-cta:hover[b-r1dnh30f2p] {
    opacity: 0.85;
    color: #fff;
}

.ob-step-cta-muted[b-r1dnh30f2p] {
    background: rgba(255,255,255,0.08);
    color: var(--text-secondary, #94a3b8);
}

/* Arrow dividers between steps */
.ob-step-divider[b-r1dnh30f2p] {
    display: flex;
    align-items: center;
    padding: 0 0.375rem;
    color: var(--text-muted, #4b5563);
    font-size: 0.8rem;
    align-self: center;
    flex-shrink: 0;
}

/* All-done state */
.ob-complete[b-r1dnh30f2p] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 1rem;
    padding: 0.75rem 1rem;
    background: rgba(22, 163, 74, 0.1);
    border: 1px solid rgba(22, 163, 74, 0.25);
    border-radius: 10px;
    font-size: 0.875rem;
    color: #4ade80;
}

.ob-dismiss-text[b-r1dnh30f2p] {
    background: none;
    border: none;
    padding: 0;
    color: rgba(74, 222, 128, 0.7);
    font-size: 0.8125rem;
    cursor: pointer;
    text-decoration: underline;
    margin-left: auto;
}

/* Mobile: stack steps vertically */
@media (max-width: 700px) {
    .ob-steps[b-r1dnh30f2p] {
        flex-direction: column;
        gap: 0.5rem;
    }

    .ob-step-divider[b-r1dnh30f2p] {
        display: none;
    }

    .ob-step[b-r1dnh30f2p] {
        min-width: 0;
    }
}
/* /Components/Shared/OrgPaywallGuard.razor.rz.scp.css */
/* ================================================================
   ORG PAYWALL GUARD — suspended/cancelled org block screen
   ================================================================ */

.paywall-block[b-ew1is4i13o] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 5rem 2rem;
    max-width: 520px;
    margin: 0 auto;
}

.paywall-icon[b-ew1is4i13o] {
    font-size: 4rem;
    color: #f59e0b;
    margin-bottom: 1.25rem;
    line-height: 1;
}

.paywall-icon-cancelled[b-ew1is4i13o] {
    color: #ef4444;
}

.paywall-title[b-ew1is4i13o] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-primary, #f1f5f9);
    margin-bottom: 0.75rem;
}

.paywall-sub[b-ew1is4i13o] {
    font-size: 0.9375rem;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.6;
    margin-bottom: 0.5rem;
}

.paywall-note[b-ew1is4i13o] {
    font-size: 0.875rem;
    color: var(--text-muted, #64748b);
}

.paywall-link[b-ew1is4i13o] {
    color: var(--b9-primary-text);
    text-decoration: none;
    font-weight: 500;
}

.paywall-link:hover[b-ew1is4i13o] {
    text-decoration: underline;
}
/* /Components/Shared/ReactionBar.razor.rz.scp.css */
/* W2 reaction bar.

   Lives in its OWN scoped stylesheet because Blazor CSS isolation is per-component: rules written in
   Leaderboard.razor.css carry that page's scope attribute and would never match markup this component
   renders. The --lb-* palette is declared on .lb-page and custom properties cascade through the DOM
   regardless of scope attributes, so the colours below inherit correctly when this sits inside the
   board; the fallbacks keep it legible anywhere else. */

.lb-react[b-urgkxvef9z] {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 0.55rem 0.75rem 0.7rem;
    border-top: 1px solid var(--lb-border, #28446f);
    margin-top: 0.5rem;
}

.lb-react-actions[b-urgkxvef9z] {
    display: flex;
    flex-wrap: wrap;          /* never pushes the board sideways on a 375px phone */
    gap: 0.4rem;
    align-items: center;
}

.lb-react-btn[b-urgkxvef9z] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    min-height: 48px;         /* touch-target rule */
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    border: 1px solid var(--lb-border, #28446f);
    background: transparent;
    color: var(--lb-text-soft, #c5d6ef);
    font-size: 0.85rem;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    appearance: none;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, transform 0.08s ease;
}

.lb-react-btn:hover[b-urgkxvef9z],
.lb-react-btn:focus-visible[b-urgkxvef9z] {
    background: var(--lb-accent-soft, rgba(86, 199, 255, 0.12));
    border-color: var(--lb-accent, #56c7ff);
    color: var(--lb-text, #f8fbff);
    outline: none;
}

.lb-react-btn:active[b-urgkxvef9z] { transform: scale(0.97); }

/* The viewer's own reaction — reads as "on" without relying on colour alone (aria-pressed carries
   the same state for assistive tech). */
.lb-react-btn--mine[b-urgkxvef9z] {
    background: var(--lb-accent-soft, rgba(86, 199, 255, 0.12));
    border-color: var(--lb-accent, #56c7ff);
    color: var(--lb-text, #f8fbff);
    font-weight: 800;
}

.lb-react-glyph[b-urgkxvef9z] { font-size: 1rem; line-height: 1; }

.lb-react-word[b-urgkxvef9z] { white-space: nowrap; }

.lb-react-n[b-urgkxvef9z] {
    min-width: 1.1rem;
    padding: 0 0.3rem;
    border-radius: 999px;
    background: var(--lb-card-2, #132746);
    color: var(--lb-text, #f8fbff);
    font-size: 0.75rem;
    font-weight: 800;
    text-align: center;
}

/* Read-only view for spectators and non-members: the same counts, no controls they cannot use. */
.lb-react-actions--readonly[b-urgkxvef9z] { gap: 0.5rem; }

.lb-react-chip[b-urgkxvef9z] {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    border: 1px solid var(--lb-border, #28446f);
    color: var(--lb-text-soft, #c5d6ef);
    font-size: 0.8rem;
}

.lb-react-names[b-urgkxvef9z] {
    font-size: 0.75rem;
    color: var(--lb-text-muted, #9db3d2);
    line-height: 1.35;
    overflow-wrap: anywhere;   /* long name lists wrap instead of widening the row */
}
/* /Components/Shared/SafeRetryCallout.razor.rz.scp.css */
.ui-retry-callout[b-xkvksgt7ph] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem 0.9rem;
    border-radius: 8px;
    border: 1px solid transparent;
}

.ui-retry-callout__head[b-xkvksgt7ph] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.95rem;
}

.ui-retry-callout__head i[b-xkvksgt7ph] { font-size: 1.15em; }

.ui-retry-callout__body[b-xkvksgt7ph] {
    font-size: 0.88rem;
    line-height: 1.4;
    opacity: 0.9;
}

.ui-retry-callout__actions[b-xkvksgt7ph] {
    margin-top: 0.1rem;
}

.ui-retry-callout--safe[b-xkvksgt7ph] {
    background: var(--success-soft);
    color: var(--success-text);
    border-color: rgba(34,197,94,0.28);
}
.ui-retry-callout--blocked[b-xkvksgt7ph] {
    background: var(--warning-soft);
    color: var(--warning-text);
    border-color: rgba(251,191,36,0.28);
}
.ui-retry-callout--neutral[b-xkvksgt7ph] {
    background: var(--bg-raised);
    color: var(--text-muted);
    border-color: var(--border-default);
}
/* /Components/Shared/ScorePad.razor.rz.scp.css */
/* Score keypad — the tap-once entry the product settled on when −/+ steppers were vetoed.

   These are the event card's own pad rules, copied deliberately rather than shared: that page's
   copies are entangled with .msc-large-type / .msc-simple-mode variants which only exist there,
   and rewriting the tournament-morning surface to fix a casual round is the wrong risk. The two
   are held to one contract by ScoreEntryUsesTapOnceNumbersTests instead; deduplicating them is a
   follow-up, and the class names are identical so that follow-up is a deletion, not a rewrite.

   Component-scoped, so nothing here can reach any other page. */

.msc-scorepad-backdrop[b-xsnt2qigj6] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, 0.5);
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: 1200;
}
.msc-scorepad[b-xsnt2qigj6] {
    width: min(500px, 100%);
    background: var(--b9-surface-alt, #0f172a);
    border-radius: 16px 16px 0 0;
    padding: 0.95rem;
    border-top: 1px solid var(--b9-border, rgba(255,255,255,0.12));
}
.msc-scorepad-head[b-xsnt2qigj6] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--b9-text, #f3f6fb);
}
.msc-scorepad-meta[b-xsnt2qigj6] {
    margin-top: 0.45rem;
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
}
.msc-scorepad-meta span[b-xsnt2qigj6] {
    font-size: 0.74rem;
    font-weight: 700;
    color: var(--b9-text-muted, #c2cfdf);
    background: var(--b9-surface-muted, #111827);
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 999px;
    padding: 0.12rem 0.42rem;
}
.msc-scorepad-close[b-xsnt2qigj6] {
    border: none;
    background: transparent;
    color: var(--b9-text-soft, #9fb0c4);
}
.msc-scorepad-value[b-xsnt2qigj6] {
    margin-top: 0.6rem;
    font-size: 2rem;
    font-weight: 900;
    text-align: center;
    color: var(--b9-text, #f3f6fb);
    background: var(--b9-surface-muted, #111827);
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    border-radius: 12px;
    padding: 0.35rem;
}
.msc-scorepad-value.is-selected[b-xsnt2qigj6] {
    border-color: #1d4ed8;
    box-shadow: 0 0 0 3px rgba(29, 78, 216, 0.18);
    background: rgba(30, 64, 175, 0.24);
}
.msc-scorepad-relpar[b-xsnt2qigj6] {
    margin-top: 0.35rem;
    text-align: center;
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}
.msc-scorepad-grid[b-xsnt2qigj6] {
    margin-top: 0.7rem;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.45rem;
}
.msc-scorepad-key[b-xsnt2qigj6] {
    min-height: 52px;
    border-radius: 12px;
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    font-size: 1.2rem;
    font-weight: 800;
}
.msc-scorepad-key-sub[b-xsnt2qigj6] {
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--b9-text, #f3f6fb);
    background: var(--b9-surface-muted, #111827);
}
.msc-scorepad-key:focus-visible[b-xsnt2qigj6],
.msc-scorepad-action:focus-visible[b-xsnt2qigj6],
.msc-scorepad-close:focus-visible[b-xsnt2qigj6] {
    outline: 2px solid #60a5fa;
    outline-offset: 1px;
}
.msc-scorepad-actions[b-xsnt2qigj6] {
    margin-top: 0.6rem;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}
.msc-scorepad-action[b-xsnt2qigj6] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    border-radius: 8px;
    padding: 0.3rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 700;
}
.msc-scorepad-action.apply[b-xsnt2qigj6] {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff;
}
.msc-scorepad-key:focus-visible[b-xsnt2qigj6],
.msc-scorepad-action:focus-visible[b-xsnt2qigj6],
.msc-scorepad-close:focus-visible[b-xsnt2qigj6] {
    outline: 2px solid #60a5fa;
    outline-offset: 1px;
}

.msc-scorepad-actions[b-xsnt2qigj6] {
    margin-top: 0.6rem;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

.msc-scorepad-action[b-xsnt2qigj6] {
    border: 1px solid var(--b9-border, rgba(255,255,255,0.12));
    background: var(--b9-surface-alt, #0f172a);
    border-radius: 8px;
    padding: 0.3rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 700;
}

.msc-scorepad-action.apply[b-xsnt2qigj6] {
    border-color: #1d4ed8;
    background: #1d4ed8;
    color: #fff;
}

/* Every key is a real thumb target — the reason the stepper was slow was tapping it repeatedly. */
.msc-scorepad-key[b-xsnt2qigj6] {
    min-height: 52px;
}

.diff-under[b-xsnt2qigj6] { color: #86efac; }
.diff-over[b-xsnt2qigj6]  { color: #93c5fd; }
.diff-even[b-xsnt2qigj6]  { color: rgba(255,255,255,0.55); }
/* /Components/Shared/StoreBadges.razor.rz.scp.css */
/* App Store + Google Play download buttons.
   Store badges are conventionally black in both light and dark UIs, so these use fixed
   near-black colors rather than theme tokens (only the caption/attribution follow the theme). */

.storebadges[b-2c9sce6m9o] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.storebadges-caption[b-2c9sce6m9o] {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    color: var(--text-muted, #9fb0c4);
}

.storebadges-row[b-2c9sce6m9o] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
}

.storebadge[b-2c9sce6m9o] {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    min-height: 48px;              /* touch target */
    padding: 0.5rem 0.95rem;
    background: #000;
    color: #fff;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 10px;
    transition: transform 0.12s ease, background 0.12s ease, border-color 0.12s ease;
}

.storebadge:hover[b-2c9sce6m9o] {
    background: #111;
    border-color: rgba(255, 255, 255, 0.30);
    transform: translateY(-1px);
    color: #fff;
}

.storebadge:focus-visible[b-2c9sce6m9o] {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

.storebadge-glyph[b-2c9sce6m9o] {
    font-size: 1.6rem;
    line-height: 1;
}

.storebadge-text[b-2c9sce6m9o] {
    display: flex;
    flex-direction: column;
    line-height: 1.05;
    text-align: left;
}

.storebadge-small[b-2c9sce6m9o] {
    font-size: 0.625rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.9;
}

.storebadge-big[b-2c9sce6m9o] {
    font-size: 1rem;
    font-weight: 600;
}

.storebadges-attr[b-2c9sce6m9o] {
    margin: 0.25rem 0 0;
    max-width: 34rem;
    font-size: 0.625rem;
    line-height: 1.4;
    opacity: 0.8;
    color: var(--text-muted, #9fb0c4);
}
/* /Components/UI/AdminCommandCenterLayout.razor.rz.scp.css */
/* Extracted from inline styles (Blazor audit Batch G). */
.accl-badge-slot[b-60z5r2ac32] {
    margin-left: .5rem;
    vertical-align: middle;
}
/* /Components/UI/AppRadioGroup.razor.rz.scp.css */
/* Reset default fieldset chrome (extracted from inline styles). */
.arg-fieldset[b-4vpfygxpx8] {
    border: none;
    margin: 0;
    padding: 0;
}
/* /Components/UI/CloneEventDialog.razor.rz.scp.css */
/* Lifted verbatim from Events/Index.razor.css when the dialog became shared — same look, now on
   both doors. Tokens only, so it lands correctly in either theme. */

.clone-backdrop[b-fffui2bbjz] {
    position: fixed;
    inset: 0;
    background: rgba(15, 23, 42, .45);
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.clone-modal[b-fffui2bbjz] {
    background: var(--b9-surface);
    border: 1px solid var(--b9-border);
    border-radius: 14px;
    width: 100%;
    max-width: 460px;
    box-shadow: 0 8px 32px rgba(15, 23, 42, .28);
    overflow: hidden;
    /* A form, not a one-line confirm: on a short screen the body scrolls and the buttons stay put. */
    display: flex;
    flex-direction: column;
    max-height: 90vh;
}

.clone-modal-header[b-fffui2bbjz] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1.1rem 1.25rem .9rem;
    border-bottom: 1px solid var(--b9-border);
}

.clone-modal-title[b-fffui2bbjz] {
    font-size: 1rem;
    font-weight: 700;
    color: var(--b9-text);
}

.clone-modal-close[b-fffui2bbjz] {
    background: none;
    border: none;
    color: var(--b9-text-soft);
    cursor: pointer;
    font-size: .875rem;
    /* A close button is a touch target like any other: padding alone left it 38px wide. */
    padding: .75rem;
    min-width: 48px;
    min-height: 48px;
    line-height: 1;
}

.clone-modal-body[b-fffui2bbjz] {
    padding: 1.25rem;
    overflow-y: auto;
}

.clone-source-note[b-fffui2bbjz] {
    font-size: .8125rem;
    color: var(--b9-text-soft);
    background: color-mix(in srgb, var(--b9-surface-muted) 75%, transparent);
    border: 1px solid var(--b9-border);
    border-radius: 7px;
    padding: .65rem .875rem;
    margin-bottom: 1rem;
    line-height: 1.55;
}

.clone-brings[b-fffui2bbjz] {
    display: inline-block;
    margin-top: .35rem;
}

.clone-field[b-fffui2bbjz] {
    margin-bottom: .875rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.clone-label[b-fffui2bbjz] {
    font-size: .8125rem;
    font-weight: 600;
    color: var(--b9-text);
}

.clone-input[b-fffui2bbjz] {
    display: block;
    width: 100%;
    padding: .6rem .75rem;
    font-size: .875rem;
    border: 1.5px solid var(--b9-border);
    border-radius: 7px;
    background: color-mix(in srgb, var(--b9-surface) 92%, black 8%);
    color: var(--b9-text);
    transition: border-color .15s, box-shadow .15s;
}

.clone-input:focus[b-fffui2bbjz] {
    outline: none;
    border-color: var(--b9-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--b9-primary) 14%, transparent);
}

.clone-check[b-fffui2bbjz] {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    margin: .25rem 0 .875rem;
}

.clone-check-label[b-fffui2bbjz] {
    font-size: .8125rem;
    color: var(--b9-text);
    line-height: 1.4;
    cursor: pointer;
}

.clone-validation[b-fffui2bbjz] {
    display: block;
    font-size: .8125rem;
    color: var(--b9-danger-text, #fca5a5);
    line-height: 1.5;
}

.clone-plans-link[b-fffui2bbjz] {
    display: inline-block;
    margin-top: .3rem;
    font-weight: 600;
    color: var(--b9-primary-text);
    text-decoration: none;
}

.clone-plans-link:hover[b-fffui2bbjz] {
    text-decoration: underline;
}

.clone-modal-footer[b-fffui2bbjz] {
    display: flex;
    justify-content: flex-end;
    gap: .6rem;
    padding: .9rem 1.25rem;
    border-top: 1px solid var(--b9-border);
    background: color-mix(in srgb, var(--b9-surface-muted) 55%, transparent);
}
/* /Components/UI/ConfirmDialog.razor.rz.scp.css */
/* Shared confirm dialog (UX-016) — same visual grammar as the league schedule's
   in-page confirm, promoted to a reusable component. Tokens only; dark-theme safe. */

.cd-overlay[b-cuemm51fwd] {
    position: fixed;
    inset: 0;
    z-index: 1080;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.45);
    padding: 1rem;
}

.cd-modal[b-cuemm51fwd] {
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 14px;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.35);
    max-width: 460px;
    width: 100%;
    padding: 1.1rem 1.2rem 1rem;
}

.cd-body[b-cuemm51fwd] {
    display: flex;
    align-items: flex-start;
    gap: .7rem;
    margin-bottom: 1rem;
}

.cd-icon[b-cuemm51fwd] {
    color: var(--b9-warning);
    font-size: 1.25rem;
    line-height: 1.3;
    flex-shrink: 0;
}

.cd-text[b-cuemm51fwd] {
    color: var(--text-primary);
    font-size: .92rem;
    line-height: 1.5;
    /* The messages carry deliberate paragraph breaks and bullet lists. */
    white-space: pre-line;
    overflow-wrap: anywhere;
}

.cd-btns[b-cuemm51fwd] {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    flex-wrap: wrap;
}

/* ≥48px touch targets — these are decision buttons, often tapped on a phone at the course. */
.cd-btn[b-cuemm51fwd] {
    min-height: 48px;
    padding: .55rem 1.1rem;
}
/* /Components/UI/EventAnnouncementBanner.razor.rz.scp.css */
/* Amber on near-black. Deliberately NOT the app's alert-warning: this renders on a public page, a
   public leaderboard and a dark TV board, three surfaces with different palettes, so it carries its
   own colours rather than inheriting three different ones. Measured 11.4:1 — comfortably AA, and it
   has to survive a bright clubhouse and a phone in daylight. */
.ann[b-34k3zc194m] {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
    padding: 0.6rem 0.9rem;
    margin-bottom: 0.75rem;
    border-radius: 10px;
    background: #FEF3C7;
    color: #1F1300;
    border-left: 5px solid #B45309;
    font-size: 1rem;
    line-height: 1.35;
}

.ann-icon[b-34k3zc194m] { font-size: 1.1em; }
.ann-text[b-34k3zc194m] { font-weight: 700; }

.ann-time[b-34k3zc194m] {
    font-weight: 500;
    opacity: 0.85;
    white-space: nowrap;
    font-size: 0.85em;
}

/* The clubhouse TV. "Done means" is at least 28px at 1080p and read at three metres — clamp's floor
   is 28px so a small panel cannot shrink below it, and it scales up with the board like the rest of
   the tv-board type does. */
.ann--tv[b-34k3zc194m] {
    font-size: clamp(28px, 2.2vw, 2.4rem);
    padding: 0.7rem 1.2rem;
    margin-bottom: 1rem;
    border-radius: 14px;
    border-left-width: 10px;
}
/* /Components/UI/EventSetupSteps.razor.rz.scp.css */
.setup-steps[b-fwoy2u5l26] {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: .25rem;
    padding: .5rem .75rem;
    margin-bottom: 1rem;
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: .6rem;
}

.setup-step[b-fwoy2u5l26] {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .4rem .7rem;
    border-radius: .5rem;
    text-decoration: none;
    color: var(--text-muted);
    min-height: 48px;          /* comfortable touch target */
    transition: background .12s ease, color .12s ease;
}

.setup-step:hover[b-fwoy2u5l26] {
    background: var(--bg-raised);
    color: var(--text-primary);
}

/* Every step is a LINK, and the tiles read as labels until the mouse is already on one.
   Underlining the title on hover and on keyboard focus is the plainest "this goes
   somewhere" a tile can carry. */
.setup-step:hover .setup-step-title[b-fwoy2u5l26],
.setup-step:focus-visible .setup-step-title[b-fwoy2u5l26] {
    text-decoration: underline;
}

/* Keyboard users had only the browser's default ring on an element styled as a tile.
   The offset stays inside the strip's .25rem gap so the ring never sits on a neighbour.

   --text-primary, not --brand: this outline REPLACES the browser's own focus indicator, so it
   has to clear WCAG 1.4.11's 3:1 on its own. Brand blue (#1D4ED8) against the strip's elevated
   background measures roughly 2.6:1 on the app's default dark theme — a focus ring you have to
   hunt for is the one indicator that must never be subtle. The body-text token is the highest-
   contrast colour either theme already guarantees. */
.setup-step:focus-visible[b-fwoy2u5l26] {
    outline: 2px solid var(--text-primary);
    outline-offset: 1px;
    background: var(--bg-raised);
    color: var(--text-primary);
}

.setup-step-mark[b-fwoy2u5l26] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    font-size: .8rem;
    font-weight: 700;
    background: var(--bg-raised);
    color: var(--text-muted);
    border: 1px solid var(--border-default);
}

.setup-step-text[b-fwoy2u5l26] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.setup-step-title[b-fwoy2u5l26] {
    font-weight: 600;
    font-size: .9rem;
    color: inherit;
}

.setup-step-sub[b-fwoy2u5l26] {
    font-size: .7rem;
    color: var(--text-muted);
}

/* Current page */
.setup-step.is-current[b-fwoy2u5l26] {
    background: var(--brand-soft);
    color: var(--text-primary);
}
.setup-step.is-current .setup-step-mark[b-fwoy2u5l26] {
    background: var(--brand);
    color: #fff;
    border-color: var(--brand);
}
.setup-step.is-current .setup-step-title[b-fwoy2u5l26] {
    color: var(--text-primary);
}

/* Completed step */
.setup-step.is-done .setup-step-mark[b-fwoy2u5l26] {
    background: var(--success-soft);
    color: var(--success);
    border-color: var(--success);
}
.setup-step.is-done .setup-step-title[b-fwoy2u5l26] {
    color: var(--text-primary);
}

/* NO "next step" ring here, deliberately.
   A first pass marked the first unfinished step with `inset 0 0 0 1px var(--border-default)`
   plus a brand-edged number. On the app's DEFAULT dark theme that ring composites to roughly
   1.33:1 against the strip it sits on and the number edge to about 2.18:1 — both under the 3:1
   WCAG 1.4.11 floor for a non-text cue, and the number edge only ~1.66:1 away from the plain
   ring every LATER step keeps. A signal that cannot be seen is decoration that costs specificity
   and reads as an unstyled state; better none than one that only shows up in a screenshot on a
   bright monitor. The hover/focus affordance above is what A11 actually asked for — "these tiles
   are links" — and it carries its own contrast because it changes background AND underlines.
   If a next-step cue is wanted later it needs a token that clears 3:1 on --bg-elevated
   (--brand-soft or a real accent fill), not a hairline. */

.setup-steps-arrow[b-fwoy2u5l26] {
    display: flex;
    align-items: center;
    color: var(--text-muted);
    opacity: .6;
    font-size: .9rem;
}

@media (max-width: 575.98px) {
    .setup-step-sub[b-fwoy2u5l26] { display: none; }   /* keep compact on small phones */
    .setup-steps-arrow[b-fwoy2u5l26] { font-size: .8rem; }
}

/* "Why isn't this ticked?" — the one line that stops a grey step reading as a broken app.
   Small and quiet so it never competes with the step's own name.

   --warning-text, NOT --warning: the plain --warning amber (#D97706 in light) lands at about
   2.9:1 on --bg-elevated, which fails AA for text this size. --warning-text is the token meant
   for warning COPY and measures ~4.6:1 light / ~12:1 dark. */
.setup-step-hint[b-fwoy2u5l26] {
    font-size: .68rem;
    font-weight: 600;
    color: var(--warning-text);
    margin-top: 1px;
}
/* /Components/UI/GpsYardagePanel.razor.rz.scp.css */
.b9gps[b-vjo52odn7s] {
    margin: 10px 0 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.b9gps-toggle[b-vjo52odn7s] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 999px;
    border: 1px solid var(--border-subtle);
    background: var(--bg-elevated);
    color: var(--text-muted);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.b9gps-toggle:hover[b-vjo52odn7s] { color: var(--text-primary); }

.b9gps-toggle-on[b-vjo52odn7s] {
    background: var(--brand-soft);
    border-color: var(--brand-ring);
    color: var(--brand-text);
}

.b9gps-toggle i[b-vjo52odn7s] { font-size: 1rem; }

.b9gps-readout[b-vjo52odn7s] {
    width: 100%;
    max-width: 420px;
    background: var(--bg-elevated);
    border: 1px solid var(--border-subtle);
    border-radius: 16px;
    padding: 14px 12px 10px;
}

.b9gps-nums[b-vjo52odn7s] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 8px;
}

.b9gps-side[b-vjo52odn7s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
}

.b9gps-side-lbl[b-vjo52odn7s] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-muted);
}

.b9gps-side-val[b-vjo52odn7s] {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--text-primary);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.b9gps-center[b-vjo52odn7s] {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 6px;
}

.b9gps-center-val[b-vjo52odn7s] {
    font-size: 3rem;
    font-weight: 800;
    color: var(--brand-text);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}

.b9gps-center-lbl[b-vjo52odn7s] {
    font-size: 0.6875rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--text-muted);
    margin-top: 2px;
}

.b9gps-status[b-vjo52odn7s] {
    text-align: center;
    margin-top: 10px;
    font-size: 0.75rem;
    color: var(--text-muted);
}
/* /Components/UI/InlineAlert.razor.rz.scp.css */
/* Extracted from inline styles (Blazor audit Batch G). */
.ia-title[b-ldmxyjih27] { margin-bottom: 2px; }
/* /Components/UI/LoadingSkeleton.razor.rz.scp.css */
/* Extracted from inline styles (Blazor audit Batch G). */
.lsk-card[b-7n5364yp17] { min-height: 120px; }
/* /Components/UI/LoadingState.razor.rz.scp.css */
/* Sized spinner inside the state icon (extracted from inline styles). */
.ls-spinner[b-vi8fj3enjp] {
    width: 1.75rem;
    height: 1.75rem;
    border-width: 3px;
}
/* /Components/UI/UndoBar.razor.rz.scp.css */
/* UndoBar — inline "you can take that back" strip. Tokens only, no raw colours. */

.ub[b-z4csmqf1gd] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    padding: 0.6rem 0.9rem;
    margin-bottom: 1rem;
    border-radius: 10px;
    border: 1px solid var(--b9-success, var(--border-default));
    background: var(--bg-raised);
    color: var(--text-primary);
}

.ub-icon[b-z4csmqf1gd] { color: var(--b9-success, var(--brand)); flex-shrink: 0; }

.ub-msg[b-z4csmqf1gd] { font-weight: 600; flex: 1 1 auto; }

.ub-btn[b-z4csmqf1gd] {
    min-height: var(--touch-target-min, 48px);
    padding: 0 1rem;
    border-radius: 8px;
    border: 1.5px solid var(--brand);
    background: transparent;
    color: var(--brand-text, var(--brand));
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
}

.ub-btn:hover:not(:disabled)[b-z4csmqf1gd] { background: var(--brand); color: var(--text-primary); }
.ub-btn:disabled[b-z4csmqf1gd] { opacity: 0.55; cursor: not-allowed; }

.ub-x[b-z4csmqf1gd] {
    min-width: var(--touch-target-min, 48px);
    min-height: var(--touch-target-min, 48px);
    border: none;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    flex-shrink: 0;
}

.ub-x:hover[b-z4csmqf1gd] { color: var(--text-primary); }

.ub-btn:focus-visible[b-z4csmqf1gd],
.ub-x:focus-visible[b-z4csmqf1gd] { outline: none; box-shadow: var(--b9-focus-ring); }
