/* Jazz-specific pages, including the public registration journey. Shared
   components come from workspace.css; only program-specific surfaces live here. */
body.le-jazz-views {
    --workspace-accent: #6425a0;
    --workspace-hover: #4e187f;
    --workspace-on-accent: #fff;
    --jazz-accent: var(--workspace-accent);
    --jazz-accent-soft: var(--workspace-soft);
}
[data-bs-theme="dark"] body.le-jazz-views {
    --workspace-accent: #c69aef;
    --workspace-hover: #debcfa;
    --workspace-on-accent: #261332;
}
/* Keep the dark authenticated shell on one canvas; cards retain their surface. */
:root[data-bs-theme="dark"] body.le-jazz-bantam-shell.le-workspace :is(.le-jazz-bantam-masthead, .le-sidebar-panel, .le-shell-content, .le-footer) {
    background: var(--le-bg);
}
body.le-jazz-views :is(.le-jazz-help-launch, .le-jazz-help-grid article, .le-jazz-help-section-open, .coach-team-card, .le-action-center) {
    background: var(--le-surface);
    border: 1px solid var(--le-border);
    border-radius: 14px;
    box-shadow: none;
}
body.le-jazz-views :is(.le-jazz-help-launch-icon, .le-jazz-help-number) { background: var(--workspace-soft); color: var(--workspace-accent); }
body.le-jazz-views :is(.le-jazz-help-head h1, .le-jazz-help-section-head h2, .le-section-heading h2) { text-transform: none; letter-spacing: -.025em; }
body.le-jazz-views .le-jazz-help-jumps a { color: var(--workspace-accent); background: var(--le-surface); border: 1px solid var(--le-border); border-radius: 8px; padding: .6rem .85rem; }
body.le-jazz-views .jazz-requirements { background: var(--le-surface); color: var(--le-text); border: 1px solid var(--le-border); border-radius: 14px; padding: 1.25rem; }
body.le-jazz-views .jazz-requirements > p { color: var(--le-text-muted); font-size: .875rem; }
body.le-jazz-views .jazz-requirements li { padding: .65rem 0; border-top: 1px solid var(--le-border-soft); align-items: baseline; font-size: .875rem; }
body.le-jazz-views .jazz-requirements li strong { text-align: right; }
body.le-jazz-views .jazz-requirements h2 { font-size: 1rem; }
:root body.le-workspace.le-jazz-views .le-sidebar-panel .le-sidebar-nav .le-sidebar-link.active { color: var(--workspace-accent); background: var(--workspace-soft); box-shadow: none; }
:root body.le-workspace.le-jazz-views .le-sidebar-panel .le-sidebar-nav .le-sidebar-link.active .le-sidebar-icon { color: var(--workspace-accent); }
body.le-jazz-views .badge.text-bg-primary { color: var(--workspace-accent) !important; background-color: var(--workspace-soft) !important; }
body.le-jazz-views .le-reg-hero { background: var(--le-surface); color: var(--le-text); border: 1px solid var(--le-border); border-radius: 14px; box-shadow: none; }
body.le-jazz-views .le-reg-hero::after { display: none; }
body.le-jazz-views .le-reg-hero :is(h1, p) { color: var(--le-text); }
body.le-jazz-views .le-reg-hero .le-reg-eyebrow { color: var(--workspace-accent); }
body.le-jazz-views .le-reg-hero .le-reg-lede { color: var(--le-text-muted); }
body.le-jazz-views .le-reg-hero .le-reg-chip { color: var(--workspace-accent); background: var(--workspace-soft); border-color: transparent; }
body.le-jazz-views .jb-invite { --jb-purple: var(--workspace-accent); --jb-purple-hover: var(--workspace-hover); --jb-pink: var(--workspace-accent); background: var(--le-bg); }
body.le-jazz-views .jb-invite-card { border: 1px solid var(--le-border); border-radius: 14px; box-shadow: none; }
body.le-jazz-views .jb-invite h1 { font-weight: 650; letter-spacing: -.035em; }
/* The campaign page uses its own classes and inline stylesheet. The scoped
   specificity here keeps its light/dark palette aligned with the portal. */
body.le-jazz-views .jb {
    --purple: var(--workspace-accent);
    --purple-bright: var(--workspace-accent);
    --jb-ink: var(--le-text);
    --jb-ink-strong: var(--le-text);
    --jb-muted: var(--le-text-muted);
    --jb-band: var(--le-surface);
    --jb-band-alt: var(--le-bg);
    --jb-card-bg: var(--le-surface);
    --jb-card-border: var(--le-border);
    --jb-card-ink: var(--le-text);
    --jb-hero: var(--le-surface);
}
body.le-jazz-views .jb-hero { border-bottom: 1px solid var(--le-border); }
body.le-jazz-views .jb-hero :is(.jb-title, .jb-title .hl) { color: var(--le-text); }
body.le-jazz-views .jb-hero .jb-sub { color: var(--le-text-muted); }
body.le-jazz-views .jb-hero a:not(.btn) { color: var(--workspace-accent); }
body.le-jazz-views .jb :is(.jb-title, .jb-section-title, h3) { font-weight: 650; text-transform: none; letter-spacing: -.03em; }
body.le-jazz-views .jb :is(.jb-card, .jb-feature, .jb-shot, .jb-hero-lockup, .jb-coach-banner) { border-radius: 14px; box-shadow: none; }
body.le-jazz-views .jb-hero-badge { filter: none; }
body.le-jazz-views .jb .jb-eyebrow { color: var(--workspace-accent); background: var(--workspace-soft); border-color: transparent; letter-spacing: .08em; font-size: .7rem; }
body.le-jazz-views .jb .jb-feature-icon { color: var(--workspace-accent); background: var(--workspace-soft); }
body.le-jazz-views .jb .jb-btn-gold {
    --bs-btn-color: var(--workspace-on-accent);
    --bs-btn-bg: var(--workspace-accent);
    --bs-btn-border-color: var(--workspace-accent);
    --bs-btn-hover-color: var(--workspace-on-accent);
    --bs-btn-hover-bg: var(--workspace-hover);
    --bs-btn-hover-border-color: var(--workspace-hover);
    --bs-btn-active-color: var(--workspace-on-accent);
    --bs-btn-active-bg: var(--workspace-hover);
    --bs-btn-active-border-color: var(--workspace-hover);
}
body.le-jazz-views .jb .jb-btn-ghost {
    --bs-btn-color: var(--workspace-accent);
    --bs-btn-border-color: var(--le-border);
    --bs-btn-hover-color: var(--workspace-accent);
    --bs-btn-hover-bg: var(--workspace-soft);
    --bs-btn-hover-border-color: var(--workspace-accent);
}
body.le-jazz-views .jb .jb-stat { font-weight: 650; font-variant-numeric: tabular-nums; }
body.le-jazz-views .jb .jb-stat-label { text-transform: none; letter-spacing: 0; }
@media (max-width: 575.98px) {
    body.le-jazz-views .jazz-requirements { padding: 1rem; }
    body.le-jazz-views .jazz-requirements li { flex-wrap: wrap; }
    body.le-jazz-views .le-jazz-help-jumps a { min-height: 44px; display: inline-flex; align-items: center; }
}

/* ---------- League admin team roster (Jeff 10/25/26): header card + team card ---------- */
/* Desktop: two cards side by side, a full-width players table with a trailing
   actions column, and one-line collapsed sections. Phones keep the existing
   stacked layout; the team card becomes the usual Jazz disclosure. */
body.le-jazz-views .jazz-roster-head { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 1.125rem; align-items: stretch; }
body.le-jazz-views .jazz-roster-head__main,
body.le-jazz-views .jazz-roster-head__team {
    min-width: 0; margin: 0; background: var(--le-surface); border: 1px solid var(--le-border);
    border-radius: 14px; padding: 1.25rem 1.5rem; box-shadow: var(--le-shadow-sm);
}
body.le-jazz-views .jazz-roster-head__main {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1rem; align-items: start; align-content: start;
    grid-template-areas: "title menu" "chips chips" "hint hint";
}
body.le-jazz-views .jazz-roster-head__title { grid-area: title; min-width: 0; }
body.le-jazz-views .jazz-roster-head__menu { grid-area: menu; }
body.le-jazz-views .jazz-roster-head__main > .league-roster-status { grid-area: chips; }
body.le-jazz-views .jazz-roster-head__hint { grid-area: hint; }
body.le-jazz-views .jazz-roster-head__main h1 { font-size: 1.75rem; letter-spacing: -.02em; line-height: 1.2; }
body.le-jazz-views .jazz-roster-head__menu > .btn { min-width: 8.5rem; }
body.le-jazz-views .jazz-roster-head__menu .dropdown-menu { min-width: 16rem; }
body.le-jazz-views .jazz-roster-head__menu .dropdown-header { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--le-text-soft); font-weight: 700; margin: 0; }
body.le-jazz-views .jazz-roster-head__menu .dropdown-item { padding: .55rem 1rem; font-weight: 500; }
body.le-jazz-views .jazz-roster-head__menu form { margin: 0; }
body.le-jazz-views .jazz-roster-head__team > summary { display: none; }
body.le-jazz-views .jazz-roster-head__team > .jazz-mobile-details-content { padding-bottom: 0; }
body.le-jazz-views .jazz-roster-coach { display: grid; gap: .75rem; padding-bottom: .875rem; border-bottom: 1px solid var(--le-border-soft); }
body.le-jazz-views .jazz-roster-coach__row { display: flex; align-items: center; gap: .85rem; min-width: 0; }
body.le-jazz-views .jazz-roster-coach__row > .btn { margin-left: auto; flex-shrink: 0; }
body.le-jazz-views .jazz-roster-coach__avatar {
    flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
    background: var(--workspace-accent); color: var(--workspace-on-accent); font-weight: 800; font-size: 1.15rem;
}
body.le-jazz-views .jazz-roster-coach__role { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--le-text-soft); font-weight: 600; }
body.le-jazz-views .jazz-roster-coach__name { font-weight: 700; font-size: 1.05rem; line-height: 1.3; }
body.le-jazz-views .jazz-roster-coach__email { display: block; font-size: .85rem; }
body.le-jazz-views .jazz-roster-facts { margin: .875rem 0 0; display: grid; gap: .55rem; }
body.le-jazz-views .jazz-roster-facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: .75rem; font-size: .9rem; }
body.le-jazz-views .jazz-roster-facts dt { color: var(--le-text-muted); font-weight: 500; }
body.le-jazz-views .jazz-roster-facts dd { margin: 0; font-weight: 600; text-align: right; }
body.le-jazz-views .jazz-roster-facts dd.text-muted { font-weight: 500; }
body.le-jazz-views .jazz-roster-facts dd .badge { vertical-align: middle; }
body.le-jazz-views .jazz-roster-section > summary { display: flex; align-items: center; gap: .6rem; cursor: pointer; list-style: none; }
body.le-jazz-views .jazz-roster-section > summary::-webkit-details-marker { display: none; }
body.le-jazz-views .jazz-roster-section > summary::before {
    content: ""; flex: none; border-left: 6px solid var(--le-text-muted);
    border-top: 5px solid transparent; border-bottom: 5px solid transparent; transition: transform .15s ease;
}
body.le-jazz-views .jazz-roster-section[open] > summary::before { transform: rotate(90deg); }
body.le-jazz-views .jazz-roster-section__meta { margin-left: auto; color: var(--le-text-muted); font-weight: 500; font-size: .875rem; }
body.le-jazz-views .jazz-roster-row-actions { text-align: right; white-space: nowrap; }
body.le-jazz-views .jazz-roster-row-actions .btn-link { padding: 0; font-weight: 600; text-decoration: none; }
body.le-jazz-views .jazz-roster-row-actions .btn-link + .btn-link { margin-left: .9rem; }
body.le-jazz-views .league-roster-table .jazz-roster-number { font-weight: 600; }

@media (min-width: 992px) {
    body.le-jazz-views .league-roster-table-wrap { overflow-x: auto; }
    body.le-jazz-views table.league-roster-table { width: 100%; }
    body.le-jazz-views table.league-roster-table > :not(caption) > * > * { padding: .4rem .5rem; white-space: nowrap; vertical-align: middle; }
    body.le-jazz-views table.league-roster-table tr > :first-child { min-width: 12rem; max-width: 18rem; white-space: normal; }
    body.le-jazz-views .league-roster-action > .d-flex { flex-direction: column; align-items: flex-start !important; gap: .2rem !important; }
    body.le-jazz-views .league-roster-table td[data-label="Pack"] details[open] { max-width: 18rem; white-space: normal; }
    body.le-jazz-views table.league-roster-table .badge { white-space: nowrap; }
}
@media (max-width: 991.98px) {
    /* Header: stacked, two-up button grid, team card as a disclosure row. */
    body.le-jazz-views .jazz-roster-head { grid-template-columns: minmax(0, 1fr); gap: 0; }
    body.le-jazz-views .jazz-roster-head__main,
    body.le-jazz-views .jazz-roster-head__team { border: 0; border-radius: 0; box-shadow: none; padding: 0; background: transparent; }
    body.le-jazz-views .jazz-roster-head__main h1 { font-size: 1.35rem; }
    body.le-jazz-views .jazz-roster-head__main > p.text-muted { font-size: .875rem; }
    body.le-jazz-views .jazz-roster-head__main { grid-template-columns: minmax(0, 1fr); grid-template-areas: "title" "chips" "menu" "hint"; }
    body.le-jazz-views .jazz-roster-head__menu { margin-top: .85rem; }
    body.le-jazz-views .jazz-roster-head__menu > .btn { width: 100%; min-height: 44px; }
    body.le-jazz-views .jazz-roster-head__menu .dropdown-menu { width: 100%; }
    body.le-jazz-views .jazz-roster-head__menu .dropdown-item { font-size: .95rem; padding: .65rem 1rem; white-space: normal; }
    body.le-jazz-views .jazz-roster-head__hint { margin-top: .6rem !important; font-size: .8rem; }
    body.le-jazz-views .jazz-roster-head__team { margin-top: .75rem; border-top: 1px solid var(--le-border); }
    body.le-jazz-views details.jazz-roster-head__team.jazz-mobile-details > summary {
        display: flex; align-items: center; gap: .6rem; min-height: 48px; padding: .6rem 0;
        color: var(--le-text); font-size: 1rem; font-weight: 700; list-style: none;
    }
    body.le-jazz-views .jazz-roster-head__team > summary::-webkit-details-marker { display: none; }
    body.le-jazz-views .jazz-roster-head__team > summary::before {
        content: ""; flex: none; border-left: 6px solid var(--le-text-muted);
        border-top: 5px solid transparent; border-bottom: 5px solid transparent; transition: transform .15s ease;
    }
    body.le-jazz-views .jazz-roster-head__team[open] > summary::before { transform: rotate(90deg); }
    body.le-jazz-views .jazz-roster-head__team > .jazz-mobile-details-content { padding-bottom: .75rem; }
    body.le-jazz-views .jazz-roster-coach__avatar { width: 40px; height: 40px; font-size: 1rem; }
    body.le-jazz-views .jazz-roster-coach__row > .btn { min-height: 36px; }
    body.le-jazz-views .jazz-roster-facts > div { font-size: .875rem; }

    /* Player card: name + Details toggle on one row, meta beneath, actions as a button pair. */
    body.le-jazz-views .league-roster-player .jazz-roster-player-meta { order: 1; flex-basis: 100%; font-size: .8rem; font-weight: 400; color: var(--le-text-muted); }
    body.le-jazz-views .league-roster-player .jazz-roster-player-meta strong { font-weight: 600; color: var(--le-text); }
    body.le-jazz-views .league-roster-player .jazz-roster-player-meta a { display: inline-flex; min-height: 0; font-size: .8rem; font-weight: 600; }
    body.le-jazz-views .jazz-roster-row-actions {
        grid-column: 1 / -1; display: flex; gap: .5rem; padding-top: .65rem; margin-top: .1rem;
        border-top: 1px solid var(--le-border-soft); text-align: left; white-space: normal;
    }
    body.le-jazz-views .jazz-roster-row-actions .btn-link,
    body.le-jazz-views .jazz-roster-row-actions .btn-link + .btn-link {
        flex: 1 1 0; margin-left: 0; min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
        border: 1px solid var(--le-border); border-radius: 10px; font-size: .9rem; font-weight: 600; text-decoration: none;
    }
    body.le-jazz-views .jazz-roster-row-actions .btn-link.text-danger { border-color: color-mix(in srgb, var(--le-danger) 45%, transparent); }
}
