/* _content/Club.Manager.Web/Components/Layout/MainLayout.razor.rz.scp.css */
.cm-shell[b-aluo5o5mxh] {
    display: grid;
    grid-template-rows: var(--header-height) 1fr;
    grid-template-columns: var(--sidebar-width) 1fr;
    grid-template-areas:
        "header header"
        "sidebar body";
    min-height: 100vh;
    background: var(--bg);
}

.cm-shell[data-sidebar-collapsed="true"][b-aluo5o5mxh] {
    grid-template-columns: var(--sidebar-collapsed-width) 1fr;
}

/* ============================================================================
   Header
   ============================================================================ */

.cm-shell__header[b-aluo5o5mxh] {
    grid-area: header;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 480px) auto;
    align-items: center;
    gap: var(--space-4);
    padding: 0 var(--space-4);
    background: var(--surface);
    border-bottom: var(--rule-thickness-bold) solid var(--hairline-strong);
    position: sticky;
    top: 0;
    z-index: 30;
}

.cm-shell__header-left[b-aluo5o5mxh] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    min-width: 0;
}

.cm-shell__header-right[b-aluo5o5mxh] {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    justify-self: end;
}

.cm-shell__toggle[b-aluo5o5mxh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--fg-muted);
    cursor: pointer;
    transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
}

.cm-shell__toggle:hover[b-aluo5o5mxh],
.cm-shell__toggle:focus-visible[b-aluo5o5mxh] {
    color: var(--accent);
    background: var(--accent-soft);
    border-color: var(--accent-dim);
    outline: none;
}

.cm-shell__toggle .material-icons[b-aluo5o5mxh] {
    font-size: 1.25rem;
    line-height: 1;
}

/* Logo: yellow mark + condensed all-caps wordmark. The mark uses tabular mono
   so the "CM" reads as a sport-broadcast scoreboard pair, not generic logo
   text. Wordmark is the only Anton text in the header — keeps the broadcast
   personality without it screaming. */
.cm-shell__logo[b-aluo5o5mxh] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    text-decoration: none;
    color: var(--fg);
}

.cm-shell__logo:hover[b-aluo5o5mxh],
.cm-shell__logo:focus-visible[b-aluo5o5mxh] {
    color: var(--fg);
    text-decoration: none;
    outline: none;
}

.cm-shell__logo-mark[b-aluo5o5mxh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--radius-sm);
    background: var(--accent);
    color: var(--accent-fg);
    font-size: 0.875rem;
    font-weight: var(--weight-bold);
    letter-spacing: 0.02em;
}

.cm-shell__logo-text[b-aluo5o5mxh] {
    font-size: 1.125rem;
    letter-spacing: 0.04em;
    color: var(--fg);
}

[data-sidebar-collapsed="true"] .cm-shell__logo-text[b-aluo5o5mxh] {
    display: none;
}

/* Scope chip — the current club (and team) name pinned next to the wordmark. Reads as
   "you are inside DEFAULT CLUB" without forcing the page to re-state it in the eyebrow.
   The separator (· then › for team) keeps the chain readable; both names are clickable
   back to their respective dashboards. */
.cm-shell__scope[b-aluo5o5mxh] {
    color: var(--accent);
    text-decoration: none;
    font-size: 1.125rem;
    letter-spacing: 0.04em;
    transition: color 120ms ease;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 240px;
}

.cm-shell__scope:hover[b-aluo5o5mxh],
.cm-shell__scope:focus-visible[b-aluo5o5mxh] {
    color: color-mix(in srgb, var(--accent) 80%, white);
    text-decoration: none;
    outline: none;
}

.cm-shell__scope-sep[b-aluo5o5mxh] {
    color: var(--fg-dim);
    font-size: 1.125rem;
    user-select: none;
}

[data-sidebar-collapsed="true"] .cm-shell__scope[b-aluo5o5mxh],
[data-sidebar-collapsed="true"] .cm-shell__scope-sep[b-aluo5o5mxh] {
    /* Collapsed-sidebar mode shrinks the wordmark; hide scope chip too to free
       header real estate for the search bar. */
    display: none;
}

@media (max-width: 980px) {
    .cm-shell__scope[b-aluo5o5mxh] {
        max-width: 140px;
    }
}

/* Search */
.cm-shell__header-search[b-aluo5o5mxh] {
    position: relative;
    display: flex;
    align-items: center;
    justify-self: stretch;
}

.cm-shell__search-icon[b-aluo5o5mxh] {
    position: absolute;
    left: var(--space-3);
    color: var(--fg-dim);
    font-size: 1.125rem;
    pointer-events: none;
}

.cm-shell__search-input[b-aluo5o5mxh] {
    width: 100%;
    height: 36px;
    padding: 0 var(--space-3) 0 calc(var(--space-3) + 1.5rem);
    border: 1px solid var(--hairline);
    border-radius: var(--radius-md);
    background: var(--bg);
    color: var(--fg);
    font-family: var(--type-body);
    font-size: var(--fs-caption);
    transition: border-color 120ms ease, background 120ms ease;
}

.cm-shell__search-input[b-aluo5o5mxh]::placeholder {
    color: var(--fg-dim);
}

.cm-shell__search-input:focus[b-aluo5o5mxh] {
    outline: none;
    border-color: var(--accent);
    background: var(--surface-raised);
}

/* Logout icon button — same shape as the theme toggle for visual symmetry. */
.cm-shell__logout[b-aluo5o5mxh] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    color: var(--fg-muted);
    text-decoration: none;
    transition: color 120ms ease, background 120ms ease;
}

.cm-shell__logout:hover[b-aluo5o5mxh],
.cm-shell__logout:focus-visible[b-aluo5o5mxh] {
    color: var(--semantic-danger);
    background: color-mix(in srgb, var(--semantic-danger) 12%, transparent);
    outline: none;
    text-decoration: none;
}

.cm-shell__logout .material-icons[b-aluo5o5mxh] {
    font-size: 1.125rem;
}

/* ============================================================================
   Sidebar
   ============================================================================ */

.cm-shell__sidebar[b-aluo5o5mxh] {
    grid-area: sidebar;
    background: var(--surface);
    border-right: 1px solid var(--hairline);
    overflow: hidden;  /* inner nav handles its own scroll */
    transition: width 160ms ease;
}

/* ============================================================================
   Body
   ============================================================================ */

.cm-shell__body[b-aluo5o5mxh] {
    grid-area: body;
    padding: var(--space-5);
    overflow-x: hidden;
    min-width: 0;  /* prevent grid blowout on long content */
}

/* ============================================================================
   Responsive — below 880px the sidebar overlays the body instead of pushing it.
   Toggle still controls visibility; the body sits underneath at full width.
   ============================================================================ */
@media (max-width: 880px) {
    .cm-shell[b-aluo5o5mxh] {
        grid-template-columns: 0 1fr;
    }

    .cm-shell[data-sidebar-collapsed="false"] .cm-shell__sidebar[b-aluo5o5mxh] {
        position: fixed;
        top: var(--header-height);
        left: 0;
        bottom: 0;
        width: var(--sidebar-width);
        z-index: 20;
        box-shadow: 4px 0 24px -8px rgba(0, 0, 0, 0.4);
    }

    .cm-shell[data-sidebar-collapsed="true"] .cm-shell__sidebar[b-aluo5o5mxh] {
        display: none;
    }

    .cm-shell__header-search[b-aluo5o5mxh] {
        display: none;  /* search shrinks first on small screens */
    }
}
/* _content/Club.Manager.Web/Components/Layout/Sidebar.razor.rz.scp.css */
/* Sidebar — Editorial pattern (sections, padded items, filled-active, mono count tags)
   mapped onto the project's Broadcast tokens. The reference is concept B's left nav:
   small uppercase section labels, thin outlined icons, a filled-cream block on the
   active row with yellow accent on the icon. No left accent bar — the row itself
   carries the active state.

   IMPORTANT — Blazor CSS isolation gotcha:
   <NavLink> is a child component, so the <a> it renders does NOT get this file's
   scope attribute and would-be selectors like `.cm-sidebar__item[b-xxxx]` won't
   match it. Selectors that target the <a> (item, active state, hover) MUST go
   through `.cm-sidebar__nav ::deep` so the scope is lifted past the NavLink boundary.
   Elements written directly in Sidebar.razor (nav, section, section-label) don't
   need ::deep because they're in this component's own render context. */

.cm-sidebar__nav[b-ztmcgvlt4q] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 18px 14px;
    height: 100%;
    overflow-y: auto;
}

/* Sections sit with breathing room rather than a hairline divider — the spacing and
   the small uppercase label do the grouping work. */
.cm-sidebar__section[b-ztmcgvlt4q] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cm-sidebar__section + .cm-sidebar__section[b-ztmcgvlt4q] {
    margin-top: var(--space-3);
}

.cm-sidebar__section-label[b-ztmcgvlt4q] {
    margin: 0;
    padding: 10px 8px 6px;
    font-family: var(--type-body);
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--fg-dim);
    font-weight: var(--weight-semibold);
}

.cm-sidebar__section:first-child .cm-sidebar__section-label[b-ztmcgvlt4q] {
    padding-top: 0;
}

/* The <a> below comes from NavLink — needs ::deep to escape this file's scope. */
.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    color: var(--fg-muted);
    text-decoration: none;
    border-radius: 6px;
    font-family: var(--type-body);
    font-size: 13px;
    font-weight: var(--weight-medium);
    white-space: nowrap;
    transition: background 120ms ease, color 120ms ease;
}

.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item:hover {
    color: var(--fg);
    background: var(--surface-raised);
    text-decoration: none;
}

/* Active row inverts the column: cream-on-near-black becomes near-black-on-cream.
   The icon picks up the brand accent so the active item reads as both "selected"
   and "branded" without an extra bar. NavLink applies this class dynamically, so
   it lands on the NavLink-rendered <a> — same scope-escape applies. */
.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item--active,
.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item--active:hover {
    background: var(--fg);
    color: var(--bg);
}

/* Icons + labels + tags are spans authored inside the NavLink markup in Sidebar.razor,
   so they ARE in this component's render scope. But the rules that select them via the
   parent <a>'s state (hover / active) need ::deep because the parent <a> isn't. */
.cm-sidebar__icon[b-ztmcgvlt4q] {
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
    line-height: 1;
    opacity: 0.7;
}

.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item:hover .cm-sidebar__icon {
    opacity: 1;
}

.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item--active .cm-sidebar__icon,
.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item--active:hover .cm-sidebar__icon {
    opacity: 1;
    color: var(--accent);
}

.cm-sidebar__label[b-ztmcgvlt4q] {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Numeric count next to the label — mono font, dim by default, slightly less dim
   on the inverted active row. */
.cm-sidebar__tag[b-ztmcgvlt4q] {
    margin-left: auto;
    font-family: var(--type-data);
    font-variant-numeric: tabular-nums;
    font-size: 10px;
    font-weight: var(--weight-medium);
    color: var(--fg-dim);
    letter-spacing: 0.02em;
}

.cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item--active .cm-sidebar__tag {
    color: color-mix(in srgb, var(--bg) 60%, transparent);
}

/* Collapsed (icon-only) state — driven by the parent layout's data attribute. */
:global([data-sidebar-collapsed="true"]) .cm-sidebar__section-label[b-ztmcgvlt4q],
:global([data-sidebar-collapsed="true"]) .cm-sidebar__label[b-ztmcgvlt4q],
:global([data-sidebar-collapsed="true"]) .cm-sidebar__tag[b-ztmcgvlt4q] {
    display: none;
}

:global([data-sidebar-collapsed="true"]) .cm-sidebar__nav[b-ztmcgvlt4q]  .cm-sidebar__item {
    justify-content: center;
    padding-left: var(--space-2);
    padding-right: var(--space-2);
}
/* _content/Club.Manager.Web/Components/Layout/UserChip.razor.rz.scp.css */
.cm-user-chip[b-ww7qugwmfs] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) var(--space-2);
    border-radius: var(--radius-md);
    color: var(--fg);
    text-decoration: none;
    transition: background 120ms ease;
    max-width: 220px;
}

.cm-user-chip:hover[b-ww7qugwmfs],
.cm-user-chip:focus-visible[b-ww7qugwmfs] {
    background: var(--surface-raised);
    color: var(--fg);
    text-decoration: none;
    outline: none;
}

.cm-user-chip__avatar[b-ww7qugwmfs] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--accent);
    color: var(--accent-fg);
    font-family: var(--type-body);
    font-weight: var(--weight-bold);
    font-size: 0.75rem;
    letter-spacing: 0.02em;
    flex-shrink: 0;
}

.cm-user-chip__text[b-ww7qugwmfs] {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    min-width: 0;
}

.cm-user-chip__name[b-ww7qugwmfs] {
    font-family: var(--type-body);
    font-size: var(--fs-caption);
    font-weight: var(--weight-semibold);
    color: var(--fg);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cm-user-chip__role[b-ww7qugwmfs] {
    font-family: var(--type-body);
    font-size: var(--fs-micro);
    font-weight: var(--weight-medium);
    color: var(--fg-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
/* _content/Club.Manager.Web/Components/Pages/Announcements/AnnouncementDetail.razor.rz.scp.css */
.cm-announcement__body[b-rrw2p9tyt3] {
    white-space: pre-wrap;
    font-size: var(--fs-body);
    line-height: 1.6;
    color: var(--fg);
}

.cm-reply[b-rrw2p9tyt3] {
    display: flex;
    align-items: flex-start;
    gap: var(--space-3);
    padding: var(--space-3);
}

.cm-reply__lead[b-rrw2p9tyt3] {
    flex-shrink: 0;
}

.cm-reply__body[b-rrw2p9tyt3] {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.cm-reply__head[b-rrw2p9tyt3] {
    display: flex;
    align-items: baseline;
    gap: var(--space-2);
}

/* Pushes the reply's delete button to the far right so the author name + timestamp
   reads naturally on the left while the destructive action sits out of the way. */
.cm-reply__delete[b-rrw2p9tyt3] {
    margin-left: auto;
}

.cm-reply__text[b-rrw2p9tyt3] {
    white-space: pre-wrap;
    color: var(--fg);
    line-height: 1.55;
}
/* _content/Club.Manager.Web/Components/Pages/Clubs/BlockEditorDialog.razor.rz.scp.css */
/* Two-column shell for the block editor dialog. Form column on the left scrolls
   independently; preview pane on the right is sticky so it stays in view while the form
   is long. Footer spans both columns. Collapses to a single stacked column under 980px so
   the editor is still usable on phones / narrow modals. */

.block-editor-grid[b-oz5a2s1x5b] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: 1fr auto;
    gap: 1.25rem;
    align-items: start;
    width: 100%;
    min-height: 480px;
}

.block-editor-form[b-oz5a2s1x5b] {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.block-editor-preview[b-oz5a2s1x5b] {
    grid-column: 2;
    grid-row: 1;
    position: sticky;
    top: 0;
    align-self: start;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.block-editor-preview__header[b-oz5a2s1x5b] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 0 0.25rem;
}

.block-editor-preview__label[b-oz5a2s1x5b] {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--rz-text-secondary-color);
}

/* Inline zoom button group. Plain buttons (not Radzen) keep the markup light and avoid
   visual clashes with the form's Radzen controls. Active state mirrors a segmented control. */
.block-editor-preview__zoom[b-oz5a2s1x5b] {
    display: inline-flex;
    border: 1px solid var(--rz-base-300);
    border-radius: 6px;
    overflow: hidden;
}

.block-editor-preview__zoom-btn[b-oz5a2s1x5b] {
    appearance: none;
    background: transparent;
    border: 0;
    border-left: 1px solid var(--rz-base-300);
    padding: 0.25rem 0.6rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--rz-text-secondary-color);
    cursor: pointer;
    line-height: 1.2;
}

.block-editor-preview__zoom-btn:first-child[b-oz5a2s1x5b] {
    border-left: 0;
}

.block-editor-preview__zoom-btn:hover[b-oz5a2s1x5b] {
    background: var(--rz-base-100);
    color: var(--rz-text-color);
}

.block-editor-preview__zoom-btn.is-active[b-oz5a2s1x5b] {
    background: var(--rz-primary);
    color: var(--rz-on-primary, #fff);
}

/* Wrapper that owns the CSS zoom value. Block content lives inside; the stage stays at 1x
   so its border + background chrome don't scale with the content. */
.block-editor-preview__zoomer[b-oz5a2s1x5b] {
    width: 100%;
}

/* Stage: where the rendered block lives. Boxed so the admin can tell where the preview
   starts and ends (vs. the surrounding dialog chrome), with overflow guarded so absurdly
   wide hero layouts don't blow out the dialog width. */
.block-editor-preview__stage[b-oz5a2s1x5b] {
    border: 1px solid var(--rz-base-300);
    border-radius: 8px;
    overflow: auto;
    background: var(--rz-base-50, #fff);
    max-height: 78vh;
}

.block-editor-footer[b-oz5a2s1x5b] {
    grid-column: 1 / -1;
    grid-row: 2;
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--rz-base-300);
}

@media (max-width: 980px) {
    .block-editor-grid[b-oz5a2s1x5b] {
        grid-template-columns: 1fr;
    }

    .block-editor-form[b-oz5a2s1x5b],
    .block-editor-preview[b-oz5a2s1x5b] {
        grid-column: 1;
        position: static;
    }

    .block-editor-preview__stage[b-oz5a2s1x5b] {
        max-height: 60vh;
    }
}
/* _content/Club.Manager.Web/Components/Pages/Landing.razor.rz.scp.css */
/* Sign-in modal — editorial paper card overlaid on a dimmed cream wash.
   Reuses landing.css custom properties (--paper, --ink, --accent, etc.) which
   are inherited from the .lm-root ancestor. All elements are authored directly
   in Landing.razor, so the scope attribute lands on them and no ::deep needed. */

/* The "Sign in" mast button — strip default <button> chrome so it visually
   matches the anchor links it sits next to. */
.lm-signin-trigger[b-aisd802shs] {
    background: transparent;
    border: none;
    padding: 0;
    font: inherit;
    color: inherit;
    cursor: pointer;
}

.lm-signin-trigger.lm-btn[b-aisd802shs] {
    /* When .lm-btn is also applied (footer Sign in), restore the button's
       intended padding/border the .lm-btn rules expect. */
    padding: 9px 14px;
    border: 1px solid currentColor;
}

/* Overlay covers viewport; dim the underlying page with a warm-ink wash so
   the cream paper modal sits above without the cold pure-black feel of a
   default backdrop. */
.lm-modal-overlay[b-aisd802shs] {
    position: fixed;
    inset: 0;
    background: rgba(26, 22, 16, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
    padding: 24px;
    animation: lm-modal-overlay-in-b-aisd802shs 140ms ease-out;
}

@keyframes lm-modal-overlay-in-b-aisd802shs {
    from { opacity: 0; }
    to { opacity: 1; }
}

.lm-modal[b-aisd802shs] {
    background: var(--paper);
    color: var(--ink);
    border-top: 2px solid var(--ink);
    border-radius: 4px;
    width: 100%;
    max-width: 440px;
    padding: 32px 32px 28px;
    position: relative;
    box-shadow: 0 24px 60px rgba(26, 22, 16, 0.35);
    animation: lm-modal-in-b-aisd802shs 180ms ease-out;
}

@keyframes lm-modal-in-b-aisd802shs {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.lm-modal-close[b-aisd802shs] {
    position: absolute;
    top: 10px;
    right: 12px;
    background: transparent;
    border: none;
    font-size: 22px;
    line-height: 1;
    color: var(--muted);
    cursor: pointer;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.lm-modal-close:hover[b-aisd802shs] {
    color: var(--ink);
    background: var(--paper-2);
}

.lm-modal-eyebrow[b-aisd802shs] {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 500;
    margin-bottom: 8px;
}

.lm-modal-title[b-aisd802shs] {
    font-family: 'DM Serif Display', serif;
    font-size: 36px;
    line-height: 1;
    margin: 0 0 10px;
    letter-spacing: -0.01em;
}

.lm-modal-deck[b-aisd802shs] {
    font-family: 'Newsreader', serif;
    font-style: italic;
    font-size: 14px;
    color: var(--muted);
    margin: 0 0 20px;
}

.lm-modal-deck a[b-aisd802shs] {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
}

.lm-modal-deck a:hover[b-aisd802shs] {
    text-decoration: underline;
}

.lm-modal-error[b-aisd802shs] {
    background: rgba(168, 40, 31, 0.10);
    border: 1px solid rgba(168, 40, 31, 0.3);
    color: var(--danger, #a8281f);
    padding: 10px 12px;
    border-radius: 4px;
    font-size: 13px;
    margin-bottom: 16px;
}

.lm-modal-form[b-aisd802shs] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.lm-field[b-aisd802shs] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lm-field-label[b-aisd802shs] {
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 500;
}

.lm-field input[b-aisd802shs] {
    appearance: none;
    -webkit-appearance: none;
    background: var(--paper-2);
    border: 1px solid var(--rule);
    border-radius: 4px;
    padding: 10px 12px;
    font-family: 'Manrope', sans-serif;
    font-size: 14px;
    color: var(--ink);
    transition: border-color 140ms ease, background 140ms ease;
}

.lm-field input:focus[b-aisd802shs] {
    outline: none;
    border-color: var(--ink);
    background: var(--paper);
}

.lm-field input:hover[b-aisd802shs] {
    border-color: var(--rule-hi);
}

.lm-modal-submit[b-aisd802shs] {
    margin-top: 4px;
    width: 100%;
    justify-content: center;
}
/* _content/Club.Manager.Web/Components/Pages/Matches/Scorecard.razor.rz.scp.css */
/* Scoped CSS for the live scorecard. Sized for mobile-first use (parent tapping on a
   phone in the stands); scales up cleanly on desktop. All sizing uses comfortable touch
   targets — minimum 44px tall for any tappable control. */

.cm-scorecard[b-mkcqkv1txl] {
    padding: 0.75rem;
    max-width: 760px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.cm-scorecard__header[b-mkcqkv1txl] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.cm-scorecard__back[b-mkcqkv1txl] {
    background: var(--rz-base-200);
    border: 1px solid var(--rz-border);
    border-radius: 999px;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.cm-scorecard__title[b-mkcqkv1txl] {
    flex: 1;
}

.cm-scorecard__matchup[b-mkcqkv1txl] {
    font-size: 1.25rem;
    font-weight: 700;
}

.cm-scorecard__meta[b-mkcqkv1txl] {
    font-size: 0.85rem;
    color: var(--rz-text-secondary-color);
}

/* --- Scoreboard --- */

.cm-scorecard__scoreboard[b-mkcqkv1txl] {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0.5rem;
    align-items: center;
    background: var(--rz-base-200);
    border-radius: 12px;
    padding: 1rem 0.75rem;
}

.cm-score-col[b-mkcqkv1txl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
}

.cm-score-label[b-mkcqkv1txl] {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    color: var(--rz-text-secondary-color);
}

.cm-score-controls[b-mkcqkv1txl] {
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.cm-score-btn[b-mkcqkv1txl] {
    width: 48px;
    height: 48px;
    border-radius: 999px;
    border: none;
    font-size: 1.5rem;
    font-weight: 700;
    cursor: pointer;
    background: var(--rz-primary);
    color: white;
}

.cm-score-btn:disabled[b-mkcqkv1txl] {
    opacity: 0.35;
    cursor: not-allowed;
}

.cm-score-btn--minus[b-mkcqkv1txl] {
    background: var(--rz-base-300);
    color: var(--rz-text-color);
}

.cm-score-value[b-mkcqkv1txl] {
    min-width: 56px;
    text-align: center;
    font-size: 2.5rem;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
}

.cm-scorecard__divider[b-mkcqkv1txl] {
    display: flex;
    align-items: center;
}

.cm-end-set-btn[b-mkcqkv1txl] {
    background: var(--rz-warning);
    color: var(--rz-text-color);
    border: none;
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    font-weight: 600;
    cursor: pointer;
    min-height: 44px;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transform: rotate(180deg);
}

.cm-end-set-btn:disabled[b-mkcqkv1txl] {
    opacity: 0.35;
    cursor: not-allowed;
}

@media (min-width: 600px) {
    .cm-end-set-btn[b-mkcqkv1txl] {
        writing-mode: horizontal-tb;
        transform: none;
        padding: 0.6rem 1rem;
    }
}

/* --- Previous sets strip --- */

.cm-prev-sets[b-mkcqkv1txl] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.85rem;
}

.cm-prev-sets__label[b-mkcqkv1txl] {
    color: var(--rz-text-secondary-color);
    font-weight: 600;
}

.cm-prev-set[b-mkcqkv1txl] {
    padding: 0.2rem 0.5rem;
    border-radius: 999px;
    background: var(--rz-base-200);
    color: var(--rz-text-color);
}

.cm-prev-set--won[b-mkcqkv1txl] {
    background: rgba(34, 197, 94, 0.15);
}

.cm-prev-set--lost[b-mkcqkv1txl] {
    background: rgba(239, 68, 68, 0.12);
}

/* --- Section headings --- */

.cm-section-heading[b-mkcqkv1txl] {
    margin: 0.5rem 0 0.25rem;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--rz-text-secondary-color);
}

.cm-swap-hint[b-mkcqkv1txl] {
    background: rgba(250, 204, 21, 0.18);
    border: 1px solid rgba(250, 204, 21, 0.4);
    border-radius: 8px;
    padding: 0.5rem 0.75rem;
    font-size: 0.9rem;
}

.cm-link-btn[b-mkcqkv1txl] {
    background: none;
    border: none;
    color: var(--rz-primary);
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
    font: inherit;
}

.cm-empty-hint[b-mkcqkv1txl] {
    font-size: 0.9rem;
    color: var(--rz-text-secondary-color);
    padding: 0.75rem;
    background: var(--rz-base-200);
    border-radius: 8px;
    text-align: center;
}

/* --- On-court player card --- */

.cm-on-court[b-mkcqkv1txl] {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cm-player-card[b-mkcqkv1txl] {
    background: var(--rz-base-100);
    border: 1px solid var(--rz-border);
    border-radius: 12px;
    padding: 0.6rem 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cm-player-card--swapping[b-mkcqkv1txl] {
    border-color: var(--rz-warning);
    background: rgba(250, 204, 21, 0.08);
}

.cm-player-card__head[b-mkcqkv1txl] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cm-player-card__name[b-mkcqkv1txl] {
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.cm-player-card__jersey[b-mkcqkv1txl] {
    background: var(--rz-base-300);
    border-radius: 6px;
    padding: 0.1rem 0.4rem;
    font-size: 0.8rem;
    font-variant-numeric: tabular-nums;
}

.cm-sub-btn[b-mkcqkv1txl] {
    background: var(--rz-base-200);
    border: 1px solid var(--rz-border);
    border-radius: 8px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* --- Stat chips inside on-court card --- */

.cm-stat-row[b-mkcqkv1txl] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.4rem;
}

.cm-stat-chip[b-mkcqkv1txl] {
    display: grid;
    grid-template-columns: 36px 1fr 36px;
    align-items: stretch;
    background: var(--rz-base-200);
    border-radius: 8px;
    min-height: 44px;
    overflow: hidden;
}

.cm-stat-chip__minus[b-mkcqkv1txl],
.cm-stat-chip__plus[b-mkcqkv1txl] {
    border: none;
    background: var(--rz-base-300);
    font-size: 1.1rem;
    font-weight: 700;
    cursor: pointer;
}

.cm-stat-chip__plus[b-mkcqkv1txl] {
    background: rgba(34, 197, 94, 0.25);
}

.cm-stat-chip__minus:disabled[b-mkcqkv1txl],
.cm-stat-chip__plus:disabled[b-mkcqkv1txl] {
    opacity: 0.35;
    cursor: not-allowed;
}

.cm-stat-chip__body[b-mkcqkv1txl] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.15rem 0.3rem;
}

.cm-stat-chip__value[b-mkcqkv1txl] {
    font-size: 1rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.cm-stat-chip__label[b-mkcqkv1txl] {
    font-size: 0.7rem;
    color: var(--rz-text-secondary-color);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* --- Bench --- */

.cm-bench-row[b-mkcqkv1txl] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.cm-bench-chip[b-mkcqkv1txl] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: var(--rz-base-200);
    border: 1px solid var(--rz-border);
    border-radius: 999px;
    padding: 0.4rem 0.8rem;
    cursor: pointer;
    font-size: 0.9rem;
    min-height: 40px;
}

.cm-bench-chip:disabled[b-mkcqkv1txl] {
    opacity: 0.4;
    cursor: not-allowed;
}

.cm-bench-chip__jersey[b-mkcqkv1txl] {
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    color: var(--rz-text-secondary-color);
}

.cm-scorecard__footer[b-mkcqkv1txl] {
    margin-top: 0.5rem;
}
/* _content/Club.Manager.Web/Components/Pages/Public/PublicClubAnnouncementDetail.razor.rz.scp.css */
.public-announcement[b-f63j32niav] {
    max-width: 760px;
}

.public-announcement__eyebrow[b-f63j32niav] {
    margin: 0 0 0.5rem 0;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--public-accent, var(--rz-primary));
}

.public-announcement__title[b-f63j32niav] {
    margin: 0 0 0.75rem 0;
    font-size: 2rem;
    line-height: 1.2;
    color: var(--rz-text-color);
}

.public-announcement__meta[b-f63j32niav] {
    margin: 0 0 1.5rem 0;
    color: var(--rz-text-secondary-color);
    font-size: 0.95rem;
}

.public-announcement__body[b-f63j32niav] {
    white-space: pre-wrap;
    color: var(--rz-text-color);
    line-height: 1.7;
    font-size: 1.0625rem;
}

.public-announcement__cta[b-f63j32niav] {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--rz-base-300);
}

.public-announcement__cta-link[b-f63j32niav] {
    display: inline-block;
    padding: 0.65rem 1.25rem;
    border-radius: 999px;
    background: var(--public-accent, var(--rz-primary));
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    letter-spacing: 0.02em;
    transition: opacity 120ms ease;
}

.public-announcement__cta-link:hover[b-f63j32niav],
.public-announcement__cta-link:focus-visible[b-f63j32niav] {
    opacity: 0.85;
    color: #ffffff;
    text-decoration: none;
}
/* _content/Club.Manager.Web/Components/Shared/AttentionList.razor.rz.scp.css */
.cm-attention-list[b-wxztvmhje5] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}
/* _content/Club.Manager.Web/Components/Shared/AttentionRow.razor.rz.scp.css */
.cm-attention-row[b-ed7ow9otqm] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--hairline);
}

.cm-attention-row:last-child[b-ed7ow9otqm] {
    border-bottom: 0;
}

.cm-attention-row__count[b-ed7ow9otqm] {
    font-size: 1.75rem;
    line-height: 1;
    color: var(--accent);
    min-width: 2.5ch;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.cm-attention-row--warning .cm-attention-row__count[b-ed7ow9otqm] { color: var(--semantic-warning); }
.cm-attention-row--danger  .cm-attention-row__count[b-ed7ow9otqm] { color: var(--semantic-danger); }
.cm-attention-row--success .cm-attention-row__count[b-ed7ow9otqm] { color: var(--semantic-success); }

.cm-attention-row__body[b-ed7ow9otqm] {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.cm-attention-row__title[b-ed7ow9otqm] {
    margin: 0;
    color: var(--fg);
    font-weight: var(--weight-semibold);
    overflow: hidden;
    text-overflow: ellipsis;
}

.cm-attention-row__subtitle[b-ed7ow9otqm] {
    margin: 0;
    color: var(--fg-muted);
    font-size: var(--fs-caption);
}

.cm-attention-row__cta[b-ed7ow9otqm] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    flex-shrink: 0;
}

.cm-attention-row__meta[b-ed7ow9otqm] {
    color: var(--fg-muted);
}

/* Stub flag — light right-side stripe to signal placeholder data. */
.cm-attention-row[data-stub="true"][b-ed7ow9otqm]::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: repeating-linear-gradient(
        45deg,
        var(--fg-dim) 0 4px,
        transparent 4px 8px
    );
    opacity: 0.4;
}

.cm-attention-row[data-stub="true"][b-ed7ow9otqm] {
    position: relative;
}
/* _content/Club.Manager.Web/Components/Shared/BreadcrumbTrail.razor.rz.scp.css */
.cm-breadcrumb[b-xfkfytsofi] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    font-family: var(--type-body);
    font-size: var(--fs-micro);
    font-weight: var(--weight-semibold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--fg-muted);
}

.cm-breadcrumb__link[b-xfkfytsofi] {
    color: var(--fg-muted);
    text-decoration: none;
    transition: color 120ms ease;
}

.cm-breadcrumb__link:hover[b-xfkfytsofi],
.cm-breadcrumb__link:focus-visible[b-xfkfytsofi] {
    color: var(--accent);
    text-decoration: none;
    outline: none;
}

.cm-breadcrumb__current[b-xfkfytsofi] {
    color: var(--fg);
}

.cm-breadcrumb__sep[b-xfkfytsofi] {
    color: var(--fg-dim);
    font-weight: var(--weight-regular);
    user-select: none;
}
/* _content/Club.Manager.Web/Components/Shared/EmptyState.razor.rz.scp.css */
.cm-empty-state[b-8rg0w531dw] {
    margin: var(--space-6) auto;
    max-width: 520px;
    padding: var(--space-6) var(--space-5);
    border: 1px dashed var(--hairline-strong);
    border-radius: var(--radius-md);
    background: color-mix(in srgb, var(--accent) 4%, transparent);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-2);
}

.cm-empty-state__icon[b-8rg0w531dw] {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--accent-soft);
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-2);
}

.cm-empty-state__icon .material-icons[b-8rg0w531dw] {
    font-size: 1.75rem;
}

.cm-empty-state__title[b-8rg0w531dw] {
    margin: 0;
    font-size: 1.5rem;
    color: var(--fg);
}

.cm-empty-state__body[b-8rg0w531dw] {
    margin: 0;
    color: var(--fg-muted);
    font-size: var(--fs-body);
    line-height: 1.55;
    max-width: 42ch;
}

.cm-empty-state__action[b-8rg0w531dw] {
    margin-top: var(--space-3);
}

.cm-empty-state__extra[b-8rg0w531dw] {
    margin-top: var(--space-3);
    width: 100%;
}
/* _content/Club.Manager.Web/Components/Shared/EventAttendanceSection.razor.rz.scp.css */
.cm-attendance[b-ksfx06913k] {
    display: flex;
    flex-direction: column;
}

.cm-attendance__row[b-ksfx06913k] {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--hairline);
}

.cm-attendance__row:last-child[b-ksfx06913k] {
    border-bottom: 0;
}

.cm-attendance__name[b-ksfx06913k] {
    font-family: var(--type-body);
    font-weight: var(--weight-semibold);
    color: var(--fg);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cm-attendance__when[b-ksfx06913k] {
    color: var(--fg-muted);
    font-size: var(--fs-caption);
    white-space: nowrap;
}
/* _content/Club.Manager.Web/Components/Shared/EventRsvpSection.razor.rz.scp.css */
.cm-rsvp__self[b-def3invb2i] {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3);
    margin-bottom: var(--space-3);
    background: var(--surface-raised);
    border-radius: var(--radius-md);
    border: 1px solid var(--hairline);
}

.cm-rsvp__self-label[b-def3invb2i] {
    font-family: var(--type-body);
    font-weight: var(--weight-semibold);
    color: var(--fg);
}

.cm-rsvp__self-when[b-def3invb2i] {
    color: var(--fg-muted);
    font-size: var(--fs-caption);
}

.cm-rsvp__summary[b-def3invb2i] {
    margin-bottom: var(--space-2);
}

.cm-rsvp__missing-head[b-def3invb2i] {
    margin-top: var(--space-4);
    padding-top: var(--space-2);
    border-top: 1px solid var(--hairline);
    margin-bottom: var(--space-2);
}

.cm-rsvp__grid[b-def3invb2i] {
    display: flex;
    flex-direction: column;
}

.cm-rsvp__row[b-def3invb2i] {
    display: grid;
    grid-template-columns: auto 1fr auto auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-2) 0;
    border-bottom: 1px solid var(--hairline);
}

.cm-rsvp__row:last-child[b-def3invb2i] {
    border-bottom: 0;
}

.cm-rsvp__name[b-def3invb2i] {
    font-family: var(--type-body);
    font-weight: var(--weight-medium);
    color: var(--fg);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cm-rsvp__when[b-def3invb2i] {
    color: var(--fg-muted);
    font-size: var(--fs-caption);
    white-space: nowrap;
}

.cm-rsvp__badge[b-def3invb2i] {
    display: inline-flex;
    align-items: center;
    padding: 2px var(--space-2);
    border-radius: var(--radius-pill);
    font-size: var(--fs-micro);
    font-weight: var(--weight-semibold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cm-rsvp__badge--yes[b-def3invb2i] {
    background: color-mix(in srgb, var(--semantic-success) 18%, transparent);
    color: var(--semantic-success);
}

.cm-rsvp__badge--no[b-def3invb2i] {
    background: color-mix(in srgb, var(--semantic-danger) 18%, transparent);
    color: var(--semantic-danger);
}

.cm-rsvp__badge--maybe[b-def3invb2i] {
    background: color-mix(in srgb, var(--semantic-warning) 18%, transparent);
    color: var(--semantic-warning);
}

.cm-rsvp__badge--missing[b-def3invb2i] {
    background: color-mix(in srgb, var(--fg-dim) 18%, transparent);
    color: var(--fg-muted);
}

.cm-rsvp__row--missing .cm-rsvp__name[b-def3invb2i] {
    color: var(--fg-muted);
}
/* _content/Club.Manager.Web/Components/Shared/FeedList.razor.rz.scp.css */
.cm-feed[b-y0skrpcasu] {
    display: flex;
    flex-direction: column;
}

.cm-feed__list[b-y0skrpcasu] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.cm-feed__empty[b-y0skrpcasu] {
    margin: 0;
    padding: var(--space-3) 0;
    color: var(--fg-muted);
    font-size: var(--fs-caption);
    font-style: italic;
}

.cm-feed__footer[b-y0skrpcasu] {
    margin-top: var(--space-3);
    padding-top: var(--space-2);
    border-top: 1px solid var(--hairline);
}
/* _content/Club.Manager.Web/Components/Shared/FeedRow.razor.rz.scp.css */
.cm-feed-row[b-jkvli0e774] {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    border-bottom: 1px solid var(--hairline);
    min-width: 0;
}

.cm-feed-row:last-child[b-jkvli0e774] {
    border-bottom: 0;
}

.cm-feed-row__lead[b-jkvli0e774] {
    flex-shrink: 0;
    color: var(--fg-muted);
    display: inline-flex;
    align-items: center;
}

.cm-feed-row__body[b-jkvli0e774] {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cm-feed-row__trailing[b-jkvli0e774] {
    flex-shrink: 0;
    color: var(--fg-muted);
    font-family: var(--type-data);
    font-size: var(--fs-caption);
    white-space: nowrap;
}

/* Inline link variant for feed-row bodies. Body content stays in --fg / --fg-muted so the
   row reads as one block; hover underlines the anchor without recolouring everything. */
.cm-feed-row__link[b-jkvli0e774] {
    color: inherit;
    text-decoration: none;
}

.cm-feed-row__link:hover[b-jkvli0e774],
.cm-feed-row__link:focus-visible[b-jkvli0e774] {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-underline-offset: 3px;
    outline: none;
}

.cm-feed-row[data-stub="true"][b-jkvli0e774] {
    position: relative;
}

.cm-feed-row[data-stub="true"][b-jkvli0e774]::before {
    content: "";
    position: absolute;
    left: -8px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: repeating-linear-gradient(
        45deg,
        var(--fg-dim) 0 4px,
        transparent 4px 8px
    );
    opacity: 0.4;
}
/* _content/Club.Manager.Web/Components/Shared/KpiCell.razor.rz.scp.css */
.cm-kpi[b-h46x33ly8n] {
    padding: var(--space-4) var(--space-4);
    border-left: 1px solid var(--hairline);
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
    min-width: 0;
}

.cm-kpi:first-child[b-h46x33ly8n] {
    border-left: 0;
    padding-left: 0;
}

.cm-kpi__label[b-h46x33ly8n] {
    margin: 0;
    color: var(--fg-muted);
}

.cm-kpi__value[b-h46x33ly8n] {
    font-size: 2rem;
    font-weight: var(--weight-semibold);
    color: var(--fg);
    line-height: 1.05;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cm-kpi__value--accent[b-h46x33ly8n] { color: var(--accent); }
.cm-kpi__value--danger[b-h46x33ly8n] { color: var(--semantic-danger); }
.cm-kpi__value--warning[b-h46x33ly8n] { color: var(--semantic-warning); }
.cm-kpi__value--success[b-h46x33ly8n] { color: var(--semantic-success); }

.cm-kpi__substat[b-h46x33ly8n] {
    margin: 0;
    color: var(--fg-muted);
    font-family: var(--type-data);
    font-size: var(--fs-caption);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Stub data marker — subtle stripe in the corner so designers can see what's wired
   and what's placeholder. Hidden in print and at smallest viewports. */
.cm-kpi--stub[b-h46x33ly8n]::after {
    content: "STUB";
    position: absolute;
    top: 2px;
    right: 4px;
    font-size: 0.625rem;
    color: var(--fg-dim);
    letter-spacing: 0.1em;
    opacity: 0.5;
}

.cm-kpi--stub[b-h46x33ly8n] {
    position: relative;
}

@media print {
    .cm-kpi--stub[b-h46x33ly8n]::after { display: none; }
}
/* _content/Club.Manager.Web/Components/Shared/KpiStrip.razor.rz.scp.css */
.cm-kpi-strip[b-44752dhgqk] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0;
    margin: var(--space-5) 0;
    border-top: 1px solid var(--hairline);
    border-bottom: var(--rule-thickness-bold) solid var(--hairline-strong);
}
/* _content/Club.Manager.Web/Components/Shared/LocalTime.razor.rz.scp.css */
/* Small info-icon affordance for the event time zone. Scoped to LocalTime so it only
   targets the ⓘ this component renders (ShowZoneInfo). Sizes the Material Icons glyph
   down from its 24px default to sit inline with the time text, and dims it so it reads
   as a quiet hint rather than an action. */
.local-time__tzicon[b-hr2wfgtpb7] {
    font-size: 0.95em;
    line-height: 1;
    vertical-align: -0.15em;
    margin-left: 0.2em;
    opacity: 0.5;
    cursor: help;
    user-select: none;
}

.local-time__tzicon:hover[b-hr2wfgtpb7],
.local-time__tzicon:focus-visible[b-hr2wfgtpb7] {
    opacity: 0.85;
    outline: none;
}
/* _content/Club.Manager.Web/Components/Shared/PageIdentity.razor.rz.scp.css */
.cm-page-identity[b-cpzqxm7as1] {
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-4);
    border-bottom: var(--rule-thickness-bold) solid var(--hairline-strong);
}

.cm-page-identity__breadcrumbs[b-cpzqxm7as1] {
    margin-bottom: var(--space-2);
}

.cm-page-identity__eyebrow[b-cpzqxm7as1] {
    margin: 0 0 var(--space-2) 0;
    color: var(--fg-muted);
}

.cm-page-identity__main[b-cpzqxm7as1] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-5);
    flex-wrap: wrap;
}

.cm-page-identity__title-block[b-cpzqxm7as1] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-4);
    min-width: 0;
}

.cm-page-identity__title[b-cpzqxm7as1] {
    margin: 0;
    font-size: var(--fs-display-1);
    color: var(--fg);
    line-height: 0.9;
}

/* FocusOnNavigate (Routes.razor) sets keyboard focus on the page H1 after every
   navigation so screen readers announce the new page. The default browser focus ring
   shows up as an unwanted rectangle around the title since the H1 isn't actually
   interactive. Suppress the visible outline only on the non-keyboard path —
   :focus-visible keeps a keyboard user's tab order legible. */
.cm-page-identity__title:focus[b-cpzqxm7as1] {
    outline: none;
}

.cm-page-identity__title:focus-visible[b-cpzqxm7as1] {
    outline: 2px solid var(--accent);
    outline-offset: 4px;
    border-radius: 2px;
}

/* Status pill — keyed by variant. Default is the accent colour; the named variants
   override so "Inactive" can read muted and "Warning" can use the semantic warning
   token. */
.cm-page-identity__status[b-cpzqxm7as1] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: var(--space-1) var(--space-3);
    border-radius: var(--radius-pill);
    background: var(--accent-soft);
    color: var(--accent);
    font-family: var(--type-body);
    font-size: var(--fs-micro);
    font-weight: var(--weight-semibold);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cm-page-identity__status-dot[b-cpzqxm7as1] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 3px color-mix(in srgb, currentColor 30%, transparent);
}

.cm-page-identity__status--inactive[b-cpzqxm7as1] {
    background: color-mix(in srgb, var(--fg-dim) 18%, transparent);
    color: var(--fg-muted);
}

.cm-page-identity__status--warning[b-cpzqxm7as1] {
    background: color-mix(in srgb, var(--semantic-warning) 18%, transparent);
    color: var(--semantic-warning);
}

.cm-page-identity__status--danger[b-cpzqxm7as1] {
    background: color-mix(in srgb, var(--semantic-danger) 18%, transparent);
    color: var(--semantic-danger);
}

.cm-page-identity__subtitle[b-cpzqxm7as1] {
    margin: var(--space-2) 0 0 0;
    flex-basis: 100%;
    color: var(--fg-muted);
    font-size: var(--fs-body);
}

.cm-page-identity__actions[b-cpzqxm7as1] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    flex-wrap: wrap;
}

/* Tighten the display headline on small screens — 72px doesn't fit on mobile. */
@media (max-width: 720px) {
    .cm-page-identity__title[b-cpzqxm7as1] {
        font-size: 2.5rem;
    }
}
/* _content/Club.Manager.Web/Components/Shared/PageLoading.razor.rz.scp.css */
.cm-page-loading[b-5nhhmvt76d] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: var(--space-6) var(--space-4);
    color: var(--fg-muted);
    font-family: var(--type-body);
    font-size: var(--fs-caption);
}

.cm-page-loading__dot[b-5nhhmvt76d] {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
    animation: cm-pulse-b-5nhhmvt76d 1.1s ease-in-out infinite;
}

.cm-page-loading__dot:nth-child(2)[b-5nhhmvt76d] { animation-delay: 0.18s; }
.cm-page-loading__dot:nth-child(3)[b-5nhhmvt76d] { animation-delay: 0.36s; }

.cm-page-loading__text[b-5nhhmvt76d] {
    margin-left: var(--space-2);
}

@keyframes cm-pulse-b-5nhhmvt76d {
    0%, 80%, 100% { opacity: 0.25; transform: scale(0.85); }
    40% { opacity: 1; transform: scale(1.1); }
}
/* _content/Club.Manager.Web/Components/Shared/PillButton.razor.rz.scp.css */
/* Base pill — shared by all variants. Letter-spacing + uppercase reads as a
   sport-broadcast control; the eyebrow micro-text size matches the section
   labels so the visual cadence stays consistent. */
.cm-pill[b-stisei9ljz] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    padding: 0 var(--space-4);
    height: 36px;
    border-radius: var(--radius-pill);
    border: 1px solid transparent;
    background: transparent;
    color: var(--fg);
    cursor: pointer;
    font-family: var(--type-body);
    font-size: var(--fs-caption);
    font-weight: var(--weight-semibold);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
    transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
    user-select: none;
}

.cm-pill:focus-visible[b-stisei9ljz] {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
}

.cm-pill[disabled][b-stisei9ljz] {
    opacity: 0.5;
    cursor: not-allowed;
}

.cm-pill__icon[b-stisei9ljz] {
    font-size: 1rem;
    line-height: 1;
}

.cm-pill__text[b-stisei9ljz] {
    line-height: 1;
}

/* Filled — accent CTA. Used sparingly (one per page identity row, typically). */
.cm-pill--filled[b-stisei9ljz] {
    background: var(--accent);
    color: var(--accent-fg);
    border-color: var(--accent);
}

.cm-pill--filled:hover[b-stisei9ljz],
.cm-pill--filled:focus-visible[b-stisei9ljz] {
    background: color-mix(in srgb, var(--accent) 88%, white);
    color: var(--accent-fg);
    text-decoration: none;
}

/* Outlined — secondary actions. Reads as a tab/segment when stacked horizontally. */
.cm-pill--outlined[b-stisei9ljz] {
    background: transparent;
    color: var(--fg);
    border-color: var(--hairline-strong);
}

.cm-pill--outlined:hover[b-stisei9ljz],
.cm-pill--outlined:focus-visible[b-stisei9ljz] {
    color: var(--accent);
    border-color: var(--accent);
    background: var(--accent-soft);
    text-decoration: none;
}

/* Danger — destructive actions (delete, revoke). Same outlined shape as the default
   secondary action so it doesn't dominate the row, but tinted red so the meaning is
   unambiguous on hover. */
.cm-pill--danger[b-stisei9ljz] {
    background: transparent;
    color: var(--semantic-danger);
    border-color: color-mix(in srgb, var(--semantic-danger) 50%, transparent);
}

.cm-pill--danger:hover[b-stisei9ljz],
.cm-pill--danger:focus-visible[b-stisei9ljz] {
    color: white;
    background: var(--semantic-danger);
    border-color: var(--semantic-danger);
    text-decoration: none;
}

/* Ghost — text-only, no border. Used for inline "View queue ›" trailing links. */
.cm-pill--ghost[b-stisei9ljz] {
    background: transparent;
    color: var(--fg-muted);
    border-color: transparent;
    padding: 0 var(--space-2);
    height: auto;
    letter-spacing: 0.04em;
}

.cm-pill--ghost:hover[b-stisei9ljz],
.cm-pill--ghost:focus-visible[b-stisei9ljz] {
    color: var(--accent);
    background: transparent;
    text-decoration: none;
}

/* Small size — matches header-row action density. */
.cm-pill--small[b-stisei9ljz] {
    height: 28px;
    padding: 0 var(--space-3);
    font-size: var(--fs-micro);
}

.cm-pill--small .cm-pill__icon[b-stisei9ljz] {
    font-size: 0.875rem;
}
/* _content/Club.Manager.Web/Components/Shared/SectionHeader.razor.rz.scp.css */
.cm-section-header[b-grpt4bcmyf] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-4);
    margin: 0 0 var(--space-4) 0;
    padding: 0 0 var(--space-2) 0;
    border-bottom: var(--rule-thickness-bold) solid var(--hairline-strong);
    flex-wrap: wrap;
}

.cm-section-header__title[b-grpt4bcmyf] {
    margin: 0;
    font-size: 1.5rem;
    color: var(--fg);
}

.cm-section-header__aside[b-grpt4bcmyf] {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-4);
}

.cm-section-header__meta[b-grpt4bcmyf] {
    color: var(--fg-muted);
}

.cm-section-header__trailing[b-grpt4bcmyf] {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
}
/* _content/Club.Manager.Web/Components/Shared/TeamCard.razor.rz.scp.css */
.cm-team-card[b-kl3f8kmqow] {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    padding: var(--space-4);
    border-left: 1px solid var(--hairline);
    text-decoration: none;
    color: var(--fg);
    transition: background 120ms ease;
}

.cm-team-card:first-child[b-kl3f8kmqow] {
    border-left: 0;
    padding-left: 0;
}

.cm-team-card:hover[b-kl3f8kmqow],
.cm-team-card:focus-visible[b-kl3f8kmqow] {
    background: var(--accent-soft);
    color: var(--fg);
    outline: none;
    text-decoration: none;
}

.cm-team-card__head[b-kl3f8kmqow] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--space-3);
}

.cm-team-card__sport[b-kl3f8kmqow] {
    color: var(--fg-muted);
}

.cm-team-card__roster[b-kl3f8kmqow] {
    color: var(--accent);
    font-weight: var(--weight-semibold);
    font-size: var(--fs-caption);
}

.cm-team-card__name[b-kl3f8kmqow] {
    margin: 0;
    font-size: 1.5rem;
    color: var(--fg);
    line-height: 1;
}

.cm-team-card__subtitle[b-kl3f8kmqow] {
    margin: 0;
    color: var(--fg-muted);
    font-size: var(--fs-caption);
}
/* _content/Club.Manager.Web/Components/Shared/TeamsStrip.razor.rz.scp.css */
.cm-teams-strip[b-1jgfxze2ga] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0;
    border-top: 1px solid var(--hairline);
    border-bottom: var(--rule-thickness-bold) solid var(--hairline-strong);
}
/* _content/Club.Manager.Web/Components/Shared/ThemeToggle.razor.rz.scp.css */
.cm-theme-toggle[b-1i3ys01nej] {
    display: inline-flex;
    margin: 0;
}

.cm-theme-toggle__btn[b-1i3ys01nej] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--fg-muted);
    cursor: pointer;
    transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
}

.cm-theme-toggle__btn:hover[b-1i3ys01nej],
.cm-theme-toggle__btn:focus-visible[b-1i3ys01nej] {
    color: var(--accent);
    background: var(--accent-soft);
    border-color: var(--accent-dim);
    outline: none;
}

.cm-theme-toggle__btn .material-icons[b-1i3ys01nej] {
    font-size: 1.25rem;
    line-height: 1;
}
/* _content/Club.Manager.Web/Components/Shared/WeekStrip.razor.rz.scp.css */
.cm-week[b-4td7d7208d] {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 0;
    border-top: 1px solid var(--hairline);
}

.cm-week__day[b-4td7d7208d] {
    border-right: 1px solid var(--hairline);
    padding: var(--space-3) var(--space-2);
    min-height: 160px;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}

.cm-week__day:last-child[b-4td7d7208d] {
    border-right: 0;
}

.cm-week__day--today[b-4td7d7208d] {
    background: var(--accent-soft);
}

.cm-week__day-head[b-4td7d7208d] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1;
}

.cm-week__day-name[b-4td7d7208d] {
    color: var(--fg-muted);
}

.cm-week__day--today .cm-week__day-name[b-4td7d7208d] {
    color: var(--accent);
}

.cm-week__day-num[b-4td7d7208d] {
    font-size: 1.25rem;
    font-weight: var(--weight-semibold);
    color: var(--fg);
}

.cm-week__chips[b-4td7d7208d] {
    display: flex;
    flex-direction: column;
    gap: var(--space-1);
}

.cm-week__chip[b-4td7d7208d] {
    padding: var(--space-1) var(--space-2);
    border-left: 3px solid var(--accent);
    background: var(--surface-raised);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-size: var(--fs-micro);
    line-height: 1.25;
    color: var(--fg);
}

.cm-week__chip-time[b-4td7d7208d] {
    display: block;
    color: var(--fg-muted);
    font-size: var(--fs-micro);
}

.cm-week__chip-title[b-4td7d7208d] {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Per-tone colour rail. Mirrors the calendar colours in TeamDashboard's scheduler so
   the same event reads the same way on both surfaces. */
.cm-week__chip--practice[b-4td7d7208d] { border-left-color: var(--semantic-info); }
.cm-week__chip--game[b-4td7d7208d]     { border-left-color: var(--semantic-danger); }
.cm-week__chip--tryout[b-4td7d7208d]   { border-left-color: var(--semantic-warning); }
.cm-week__chip--camp[b-4td7d7208d]     { border-left-color: var(--semantic-success); }

.cm-week__chip-empty[b-4td7d7208d] {
    color: var(--fg-dim);
    font-size: var(--fs-micro);
    text-align: center;
}
