:root {
    --color-ink: #17211b;
    --color-muted: #607067;
    --color-surface: #ffffff;
    --color-canvas: #f3f6f2;
    --color-border: #dce4dc;
    --color-brand: #176b45;
    --color-brand-strong: #0d4d30;
    --color-brand-soft: #e4f2ea;
    --color-warning: #b45e18;
    --color-danger: #a33b32;
    --color-danger-border: #e3aaa5;
    --color-danger-soft: #fcefed;
    --radius-small: .6rem;
    --radius-medium: 1rem;
    --radius-large: 1.6rem;
    --shadow-card: 0 20px 60px rgba(35, 55, 43, .1);
    --page-width: 76rem;
    --control-height: 2.35rem;
    --control-height-compact: 2.35rem;
    --control-height-small: 2.35rem;
    --panel-control-inset: .6rem;
    --panel-control-size: 2rem;
    --font-ui: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { min-height: 100%; color: var(--color-ink); background: var(--color-canvas); font-family: var(--font-ui); scrollbar-gutter: stable; }
body { min-height: 100vh; margin: 0; padding-bottom: 3.25rem; }
a { color: var(--color-brand-strong); font-weight: 650; text-underline-offset: .2em; }
button, input, select { font: inherit; }
:where(a, button, input, select, textarea, summary):focus-visible { outline: 3px solid rgba(23, 107, 69, .3); outline-offset: 2px; }

.field:has(> [data-address-lookup]) { position: relative; }
.member-search-completion { position: relative; min-width: 0; }
.member-search-completion input { width: 100%; }
.member-search-completion .address-lookup-results__option { overflow-wrap: anywhere; }
.address-lookup-results { position: absolute; z-index: 120; top: calc(100% - .15rem); right: 0; left: 0; max-height: 18rem; overflow-y: auto; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-surface); box-shadow: var(--shadow-card); }
.address-lookup-results__option { display: block; width: 100%; min-height: 2.75rem; padding: .65rem .8rem; border: 0; border-bottom: 1px solid var(--color-border); color: var(--color-ink); background: transparent; text-align: left; cursor: pointer; }
.address-lookup-results__option:last-child { border-bottom: 0; }
.address-lookup-results__option:hover,
.address-lookup-results__option.is-active { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.address-lookup-results__status { padding: .7rem .8rem; color: var(--color-muted); }
.address-lookup-results__status--warning { color: var(--color-warning); }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: inherit; font-size: 1.05rem; font-weight: 780; text-decoration: none; }
.brand__mark { display: grid; width: 2.35rem; height: 2.35rem; place-items: center; overflow: hidden; border-radius: .8rem; background: white; box-shadow: 0 8px 20px rgba(23, 107, 69, .24); }
.brand__mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.brand--compact .brand__mark { width: 2rem; height: 2rem; border-radius: .65rem; }
.eyebrow { margin: 0 0 .6rem; color: var(--color-brand); font-size: .75rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }

.auth-shell { background: linear-gradient(135deg, #e9f1ea 0%, #f8faf7 45%, #edf3ed 100%); }
.auth-container { display: grid; min-height: calc(100vh - 3.25rem); padding: clamp(1rem, 4vw, 3rem); place-items: center; }
.site-footer { position: fixed; z-index: 90; right: 0; bottom: 0; left: 0; display: flex; min-height: 3.25rem; padding: .85rem 1rem; border-top: 1px solid var(--color-border); gap: .55rem; flex-wrap: wrap; align-items: center; justify-content: center; color: var(--color-muted); background: rgba(243, 246, 242, .96); box-shadow: 0 -6px 20px rgba(35, 55, 43, .06); text-align: center; backdrop-filter: blur(8px); }
.site-footer a { color: inherit; }
.site-footer { transition: transform .24s ease; }
.site-footer--hidden { transform: translateY(calc(100% + 1.5rem)); }
.legal-information { width: min(100%, 68rem); }
.legal-information__heading { display: flex; gap: 1rem; align-items: flex-start; justify-content: space-between; }
.legal-information section { margin-top: 1.5rem; }
.legal-information section h2 { margin-bottom: .5rem; }
.third-party-library-list { columns: 2 18rem; padding-left: 1.25rem; }
.third-party-library-list li { margin-bottom: .35rem; break-inside: avoid; }
.support-options { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.support-option { padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: #fbfcfb; }
.support-option h3 { margin: 0 0 .85rem; }
.support-option p { display: grid; gap: .25rem; margin: .75rem 0 0; }
.support-option p span { color: var(--color-muted); font-size: .82rem; font-weight: 700; }
.support-option p strong { overflow-wrap: anywhere; }
.support-qr { display: grid; gap: .65rem; justify-items: start; margin: 0 0 1rem; }
.support-qr img { display: block; width: min(13rem, 100%); height: auto; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: white; }
.support-qr figcaption { color: var(--color-muted); font-size: .82rem; line-height: 1.45; }
@media (max-width: 560px) {
    body { padding-bottom: 5.25rem; }
    .auth-container { min-height: calc(100vh - 5.25rem); }
    .site-footer { min-height: 5.25rem; font-size: .82rem; }
    .legal-information__heading { align-items: stretch; flex-direction: column; }
}

.manager-report__heading,
.manager-report__heading.collapsible-section__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: .75rem;
}
.manager-report__title { min-width: 0; }
.manager-report__title p { margin: 0; color: var(--color-muted); line-height: 1.5; }
.manager-report__exports { display: flex; flex: 0 0 auto; align-items: center; gap: .55rem; }
.manager-report__exports .button { min-width: 4.5rem; min-height: var(--control-height-compact); }
.manager-report__period { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; margin: 1rem 0; }
.manager-report__period label { display: inline-flex; align-items: center; gap: .45rem; }
.manager-report__period input,
.manager-report__period select,
.manager-report__period .button {
    height: var(--control-height-compact);
    min-height: var(--control-height-compact);
}
.manager-report__period input,
.manager-report__period select {
    padding: .55rem .75rem;
    border: 1px solid #cbd6cd;
    border-radius: var(--radius-small);
    color: var(--color-ink);
    background: #fbfcfb;
}
.manager-report__period input[type="date"] { width: 10.5rem; }
.manager-report__period select { width: 8.5rem; }
.manager-report__period .manager-report__year { margin-inline-start: .45rem; }
.attendance-statement__form { margin-bottom: 0; }
.attendance-statement__group-field { display: grid; gap: .35rem; min-width: min(18rem, 100%); }
.attendance-statement__group-menu { position: relative; }
.attendance-statement__group-menu > summary { display: flex; width: 100%; justify-content: space-between; list-style: none; cursor: pointer; }
.attendance-statement__group-menu > summary::-webkit-details-marker { display: none; }
.attendance-statement__group-options { position: absolute; z-index: 30; top: calc(100% + .35rem); left: 0; width: max(100%, 18rem); max-width: min(24rem, 90vw); max-height: 18rem; overflow: auto; padding: .4rem; border: 1px solid var(--color-border); border-radius: .6rem; background: var(--color-surface); box-shadow: 0 .4rem 1.2rem #0002; }
.attendance-statement__group-options .checkbox-field { display: flex; min-height: 2.5rem; padding: .3rem .5rem; gap: .5rem; align-items: center; }
.manager-report__period .attendance-statement__group-options input { width: 1rem; height: 1rem; min-height: 1rem; flex: none; }
.attendance-statement__export-menu { margin-left: auto; }
.attendance-statement__export-menu .member-export-menu__options { min-width: 9rem; }
.attendance-statement__export-menu .member-export-menu__options .button { display: flex; width: 100%; }

@media (max-width: 700px) {
    .manager-report__heading,
    .manager-report__heading.collapsible-section__heading {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }
    .manager-report__title { grid-column: 1 / -1; }
    .manager-report__exports { grid-column: 1; grid-row: 2; }
    .manager-report__exports .button { min-width: 0; }
    .manager-report__period .manager-report__year { margin-inline-start: 0; }
}
@media (max-width: 560px) {
    .attendance-statement__form { align-items: stretch; }
    .attendance-statement__form > label { display: grid; gap: .35rem; }
    .attendance-statement__form > label, .attendance-statement__group-field { width: 100%; }
    .attendance-statement__form input[type="date"] { width: 100%; }
    .attendance-statement__export-menu { width: 100%; margin-left: 0; }
    .attendance-statement__export-menu > summary { width: 100%; justify-content: center; }
}
.auth-panel { display: grid; width: min(68rem, 100%); min-height: 38rem; grid-template-columns: 1.05fr .95fr; overflow: hidden; border: 1px solid rgba(255,255,255,.8); border-radius: var(--radius-large); background: var(--color-surface); box-shadow: var(--shadow-card); }
.auth-intro { display: flex; flex-direction: column; padding: clamp(2rem, 5vw, 4.5rem); color: white; background: radial-gradient(circle at 80% 15%, rgba(126, 197, 158, .28), transparent 30%), linear-gradient(145deg, #155c3c, #0b3825); }
.auth-intro__copy { margin: auto 0; max-width: 28rem; }
.auth-intro h1 { max-width: 9ch; margin: 0 0 1rem; font-size: clamp(2.6rem, 5vw, 4.6rem); line-height: .96; letter-spacing: -.05em; }
.auth-intro p { color: rgba(255,255,255,.78); font-size: 1.05rem; line-height: 1.7; }
.auth-intro .eyebrow { color: #9fd4b6; }
.security-note { margin: 2rem 0 0 !important; font-size: .82rem !important; }
.auth-card { align-self: center; padding: clamp(2rem, 5vw, 4.5rem); }
.auth-card__tools { display: flex; justify-content: flex-end; margin-bottom: 3.5rem; }
.auth-card h2 { margin: 0 0 2rem; font-size: 1.75rem; letter-spacing: -.025em; }

.language-picker { display: flex; align-items: center; gap: .5rem; }
.language-picker select, .topbar-role-switcher select { min-height: 2.35rem; padding: 0 2rem 0 .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); color: var(--color-ink); background: white; }
.form-stack { display: grid; gap: 1.25rem; }
.field { display: grid; gap: .5rem; color: var(--color-ink); font-size: .88rem; font-weight: 700; }
.field__hint { color: var(--color-muted); font-weight: 500; line-height: 1.45; }
.field input, .field select { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); outline: none; background: #fbfcfb; transition: border-color .15s, box-shadow .15s; }
.field input:focus, .field select:focus { border-color: var(--color-brand); box-shadow: 0 0 0 3px var(--color-brand-soft); }
.form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 1rem; margin-top: .5rem; }
.form-actions a { font-size: .86rem; }
.button { display: inline-flex; min-height: var(--control-height-small); align-items: center; justify-content: center; padding: .45rem .7rem; border: 0; border-radius: var(--radius-small); cursor: pointer; font-size: .82rem; font-weight: 750; text-decoration: none; }
.button--primary { color: white; background: var(--color-brand); box-shadow: 0 8px 20px rgba(23,107,69,.2); }
.button--primary:hover { background: var(--color-brand-strong); }
.button--quiet { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.button--quiet:hover { background: #d5eadf; }
.topbar__tools > .button.is-active { color: white; background: var(--color-brand); }
.alert { margin-bottom: 1.25rem; padding: .8rem 1rem; border-radius: var(--radius-small); font-size: .88rem; }
.alert--success { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.alert--info { color: #244f67; background: #eaf4f8; }
.alert--error { color: #7d2922; background: #fae9e7; }
[aria-invalid="true"] { border-color: var(--color-danger) !important; box-shadow: 0 0 0 3px rgba(163, 59, 50, .12); }
.alert--warning { color: #784512; background: #fff2dd; }
.club-tariff-notice__header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.club-tariff-notice__header form { margin: 0; flex: 0 0 auto; }
.club-tariff-notice__header .copy-value-button { width: 2.25rem; height: 2.25rem; color: inherit; }
.club-tariff-notice { overflow-wrap: anywhere; }
.club-billing-forecast .detail-list dd { overflow-wrap: anywhere; }
.post-result { position: fixed; z-index: 1000; top: 5rem; right: 1rem; max-width: min(36rem, calc(100vw - 2rem)); overflow-wrap: anywhere; box-shadow: 0 .35rem 1.25rem rgb(0 0 0 / 18%); }
.technical-detail { display: block; margin-top: .45rem; overflow-wrap: anywhere; }
.installer-diagnostics { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(125,41,34,.18); color: var(--color-ink); }
.installer-diagnostics h2 { margin: 1rem 0 .6rem; font-size: .9rem; }
.installer-diagnostics dl { display: grid; gap: .35rem; margin: 0; }
.installer-diagnostics dl > div { display: grid; grid-template-columns: minmax(9rem, .45fr) 1fr; gap: .75rem; }
.installer-diagnostics dt { color: #7d2922; font-weight: 750; }
.installer-diagnostics dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.installer-diagnostics ul { padding-left: 1.25rem; margin: .5rem 0 0; }
.installer-diagnostics li + li { margin-top: .35rem; }

.installer-shell { min-height: 100vh; background: radial-gradient(circle at 80% 0, #dfeee4, transparent 28rem), var(--color-canvas); }
.installer-container { width: min(var(--page-width), calc(100% - 2rem)); margin: 0 auto; padding: 2rem 0; }
.installer-heading { max-width: 44rem; margin-bottom: 2rem; }
.installer-heading .brand { margin-bottom: 1rem; }
.installer-heading h1 { margin: 0 0 .75rem; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; letter-spacing: -.04em; }
.installer-heading > p:last-child { max-width: 40rem; margin: 0; color: var(--color-muted); font-size: 1.05rem; line-height: 1.65; }
.installer-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: .5rem; padding: 0; margin: 0 0 1rem; list-style: none; }
.installer-steps li { display: flex; align-items: center; gap: .65rem; padding: .8rem 1rem; border-radius: var(--radius-small); color: var(--color-muted); background: rgba(255,255,255,.55); font-size: .82rem; font-weight: 750; }
.installer-steps span { display: grid; width: 1.65rem; height: 1.65rem; place-items: center; border-radius: 50%; background: #e4e9e5; font-size: .72rem; }
.installer-steps .is-current { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.installer-steps .is-current span { color: white; background: var(--color-brand); }
.installer-card { padding: clamp(1.25rem, 4vw, 2.25rem); margin-bottom: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: 0 12px 40px rgba(35,55,43,.06); }
.installer-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.installer-section-heading h2, .installer-success h2 { margin: 0; font-size: 1.35rem; letter-spacing: -.025em; }
.status-pill { padding: .4rem .65rem; border-radius: 99rem; font-size: .72rem; font-weight: 800; }
.status-pill--ok { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.status-pill--warning { color: #8a5310; background: #fff4d8; }
.status-pill--error { color: #7d2922; background: #fae9e7; }
.requirement-list { display: grid; gap: 0; padding: 0; margin: 0; list-style: none; }
.requirement-list li { display: grid; grid-template-columns: auto 1fr auto; gap: .85rem; align-items: center; padding: .9rem 0; border-top: 1px solid var(--color-border); }
.requirement-list li:first-child { border-top: 0; }
.requirement-list li > span:nth-child(2) { display: grid; gap: .15rem; }
.requirement-list small { color: var(--color-muted); }
.requirement-state { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; font-weight: 850; }
.requirement-state.is-ok { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.requirement-state.is-error { color: #7d2922; background: #fae9e7; }
.requirement-state.is-optional { color: var(--color-muted); background: #edf0ed; }
.installer-fields { display: grid; gap: 1rem; }
.installer-fields--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.installer-form .installer-fields { align-items: start; }
.installer-form .field { min-width: 0; align-content: start; }
.installer-form .field__hint { margin: 0; font-size: .8rem; }
.installer-field--wide { grid-column: 1 / -1; }
.installer-fields .field input, .installer-fields .field select { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); outline: none; background: #fbfcfb; }
.installer-fields .field input:focus, .installer-fields .field select:focus { border-color: var(--color-brand); box-shadow: 0 0 0 3px var(--color-brand-soft); }
.installer-check { display: flex; gap: .8rem; align-items: flex-start; padding: 1rem; margin-top: 1.25rem; border-radius: var(--radius-small); background: #f5f7f5; cursor: pointer; }
.installer-check input { width: 1.1rem; height: 1.1rem; margin-top: .12rem; accent-color: var(--color-brand); }
.installer-check span { display: grid; gap: .25rem; }
.installer-check small { color: var(--color-muted); line-height: 1.5; }
.installer-success { display: grid; grid-template-columns: auto 1fr; gap: 1.25rem; align-items: start; }
.installer-success__mark { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: 50%; color: white; background: var(--color-brand); font-size: 1.4rem; font-weight: 900; }
.installer-success p { color: var(--color-muted); }
.installer-success .button { margin-top: .5rem; text-decoration: none; }
.installer-security-ok { color: var(--color-brand-strong) !important; font-weight: 700; }
.installer-security-warning { padding: .75rem; border-radius: var(--radius-small); color: #7a4519 !important; background: #fff1df; }

.topbar { padding: .8rem max(1.25rem, calc((100vw - var(--page-width)) / 2)) 0; border-bottom: 1px solid var(--color-border); background: rgba(255,255,255,.9); }
.topbar__main { display: flex; flex-wrap: wrap; min-height: 2.6rem; align-items: center; justify-content: space-between; gap: 1rem; }
.topbar__context { min-width: 0; max-width: 100%; flex-wrap: wrap; }
.topbar-club { display: inline-flex; align-items: center; gap: .65rem; min-width: 0; }
.topbar__tools { margin-left: auto; }
.topbar__context, .topbar__tools { display: flex; align-items: center; gap: 1rem; }
.topbar__tools > form { margin: 0; }
.topbar__navigation-row { display: flex; align-items: center; gap: .75rem; }
.topbar__navigation-row .topbar-navigation { flex: 1 1 auto; min-width: 0; margin-top: 0; }
.topbar-free-label { flex: 0 0 auto; min-width: 5.5rem; padding: .35rem .7rem; color: white; background: var(--color-brand); line-height: 1.2; text-align: center; text-decoration: none; }
.topbar-free-label:hover { color: white; background: var(--color-brand-strong); }
.topbar-navigation { display: flex; align-items: center; gap: .25rem; min-height: 3rem; margin-top: .2rem; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.topbar-home, .topbar-back { display: inline-grid; flex: 0 0 auto; width: 2.35rem; height: 2.35rem; place-items: center; padding: 0; border: 0; border-radius: var(--radius-small); color: var(--color-brand-strong); text-decoration: none; background: transparent; }
.topbar-home svg, .topbar-back svg { width: 1.2rem; height: 1.2rem; fill: currentColor; }
.topbar-home:hover, .topbar-back:not(:disabled):hover { background: var(--color-brand-soft); }
.topbar-back:not(:disabled) { cursor: pointer; }
.topbar-back:disabled { color: #aeb8b0; cursor: default; opacity: .65; }
.topbar-home.is-active { color: var(--color-brand-strong); box-shadow: inset 0 -3px 0 var(--color-brand); }
.topbar-navigation__item { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .38rem; padding: .55rem .72rem; border-radius: var(--radius-small); color: var(--color-muted); font-size: .82rem; font-weight: 750; text-decoration: none; }
.topbar-navigation__item:hover { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.topbar-navigation__item.is-active { color: var(--color-brand-strong); box-shadow: inset 0 -3px 0 var(--color-brand); }
.topbar-navigation__attention { display: inline-grid; width: 1.15rem; height: 1.15rem; place-items: center; border-radius: 999px; color: #713b00; background: #ffd995; font-size: .72rem; font-weight: 900; line-height: 1; }
.topbar-club { display: flex; align-items: center; gap: .45rem; }
.topbar-navigation__attention svg { width: .82rem; height: .82rem; fill: currentColor; }
.topbar-club__logo, .topbar-club__placeholder { flex: 0 0 auto; width: 2rem; height: 2rem; }
.topbar-club__logo { object-fit: contain; border-radius: .45rem; background: white; }
.topbar-club__placeholder { display: grid; place-items: center; border-radius: 50%; color: var(--color-brand-strong); background: var(--color-brand-soft); font-size: .78rem; font-weight: 850; line-height: 1; text-transform: uppercase; }
.topbar-club__name { max-width: 20rem; overflow: hidden; font-size: .86rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.topbar-club-switcher { position: relative; min-width: 12rem; }
.topbar-club-switcher summary { list-style: none; }
.topbar-club-switcher summary::-webkit-details-marker { display: none; }
.topbar-club-switcher__control { display: grid; min-height: 2.35rem; grid-template-columns: 1.35rem minmax(0, 1fr) .7rem; align-items: center; gap: .55rem; padding: 0 .7rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: white; cursor: pointer; }
.topbar-club-switcher__control:hover { border-color: #abc3b2; background: #fbfcfb; }
.topbar-club-switcher[open] .topbar-club-switcher__control { border-color: var(--color-brand); box-shadow: 0 0 0 3px var(--color-brand-soft); }
.topbar-club-switcher__logo, .topbar-club-switcher__placeholder { display: block; width: 1.35rem; height: 1.35rem; border-radius: .25rem; }
.topbar-club-switcher__logo { object-fit: contain; }
.topbar-club-switcher__placeholder { display: grid; place-items: center; border-radius: 50%; color: var(--color-brand-strong); background: var(--color-brand-soft); font-size: .65rem; font-weight: 850; line-height: 1; text-transform: uppercase; }
.topbar-club-switcher__name { overflow: hidden; font-size: .86rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.topbar-club-switcher__chevron { width: .45rem; height: .45rem; border-right: 2px solid var(--color-muted); border-bottom: 2px solid var(--color-muted); transform: translateY(-2px) rotate(45deg); }
.topbar-club-switcher[open] .topbar-club-switcher__chevron { transform: translateY(2px) rotate(225deg); }
.topbar-club-switcher__options { position: absolute; z-index: 20; top: calc(100% + .35rem); left: 0; width: max-content; min-width: 100%; overflow: hidden; padding: .3rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: white; box-shadow: 0 12px 30px rgba(35,55,43,.15); }
.topbar-club-switcher__options form { margin: 0; }
.topbar-club-switcher__option { display: grid; width: 100%; min-width: 12rem; grid-template-columns: 1.35rem minmax(0, 1fr) 1rem; align-items: center; gap: .55rem; padding: .55rem .65rem; border: 0; border-radius: .45rem; color: var(--color-ink); background: transparent; font-size: .86rem; font-weight: 700; text-align: left; cursor: pointer; }
.topbar-club-switcher__option:hover, .topbar-club-switcher__option:focus-visible { background: var(--color-brand-soft); }
.topbar-club-switcher__check { color: var(--color-brand); font-weight: 900; }
.topbar-club-switcher__check::after { content: "✓"; }
.page-container { width: min(var(--page-width), calc(100% - 2.5rem)); margin: 0 auto; padding: 2rem 0 5rem; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 2rem; }
.page-heading__actions { display: flex; align-items: flex-end; gap: .75rem; flex-wrap: wrap; justify-content: flex-end; }
.page-heading--narrow { max-width: 42rem; }
.page-heading h1 { margin: 0 0 .5rem; font-size: clamp(2rem, 4vw, 3.2rem); letter-spacing: -.045em; }
.page-heading--title-only h1 { margin-bottom: 0; }
.page-heading p:last-child { margin: 0; color: var(--color-muted); }
.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.metric-card, .content-card { border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: 0 8px 30px rgba(35,55,43,.045); }
.metric-card { display: grid; min-height: 10rem; padding: 1.25rem; align-content: space-between; }
.metric-card--link,
.metric-card--link:hover,
.metric-card--link:focus,
.metric-card--link:focus-visible,
.metric-card--link:active,
.metric-card--link:visited { color: inherit; text-decoration: none; }
.metric-card--link { cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.metric-card--link:hover { transform: translateY(-2px); border-color: #9bc8b0; box-shadow: 0 12px 32px rgba(35,55,43,.1); }
.metric-card--link:focus-visible { outline: 3px solid rgba(23,117,75,.22); outline-offset: 3px; }
.metric-card span { color: var(--color-muted); font-size: .85rem; font-weight: 650; }
.metric-card strong { font-size: 2.4rem; letter-spacing: -.04em; }
.metric-card small { color: var(--color-brand); }
.metric-card--warning small { color: var(--color-warning); }
.club-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
.club-overview .metric-card { min-height: 8rem; }
.club-overview .metric-card--datetime strong { font-size: 1.25rem; letter-spacing: 0; }
.content-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-top: 1rem; }
.dashboard-calendar-card { margin-top: 1rem; overflow: hidden; }
.dashboard-calendar__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.dashboard-calendar__heading h2 { margin: 0; }
.period-switcher { display: inline-flex; gap: .2rem; padding: .2rem; border-radius: .75rem; background: #eef3ee; }
.period-switcher a { padding: .48rem .7rem; border-radius: .58rem; color: var(--color-muted); font-size: .76rem; text-decoration: none; }
.period-switcher a.is-active { color: white; background: var(--color-brand); }
.dashboard-calendar { overflow-x: auto; border-top: 1px solid var(--color-border); border-left: 1px solid var(--color-border); }
.calendar-week { --calendar-day-padding: .65rem; --calendar-event-gap: .4rem; --calendar-header-height: 1.15rem; --calendar-header-gap: .55rem; position: relative; display: grid; min-width: 59.5rem; grid-template-columns: repeat(7, minmax(8.5rem, 1fr)); }
.calendar-day { min-height: 7.2rem; grid-row: 1; padding: var(--calendar-day-padding); border-right: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); background: white; }
.calendar-day--column-1 { grid-column: 1; }
.calendar-day--column-2 { grid-column: 2; }
.calendar-day--column-3 { grid-column: 3; }
.calendar-day--column-4 { grid-column: 4; }
.calendar-day--column-5 { grid-column: 5; }
.calendar-day--column-6 { grid-column: 6; }
.calendar-day--column-7 { grid-column: 7; }
.calendar-day.is-today { box-shadow: inset 0 3px 0 var(--color-brand); }
.calendar-day > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-content: start; align-items: baseline; gap: .2rem .5rem; min-height: var(--calendar-header-height); margin-bottom: var(--calendar-header-gap); line-height: 1.15rem; }
.calendar-day > header span { color: var(--color-muted); font-size: .68rem; font-weight: 750; text-transform: uppercase; }
.calendar-day > header strong { font-size: .82rem; }
.calendar-day__events { display: grid; gap: var(--calendar-event-gap); }
.calendar-day__competition-space { display: grid; gap: var(--calendar-event-gap); margin-bottom: var(--calendar-event-gap); }
.calendar-day__competition-space span { display: block; height: 3.65rem; }
.calendar-event { display: grid; gap: .08rem; padding: .42rem .48rem; border-left: 4px solid; border-radius: .35rem; font-size: .7rem; line-height: 1.3; background: #eff5f1; }
a.calendar-event { color: inherit; text-decoration: none; transition: box-shadow .16s ease, transform .16s ease; }
a.calendar-event:hover { box-shadow: 0 3px 10px rgba(21, 45, 32, .16); transform: translateY(-1px); }
a.calendar-event:focus-visible { outline: 3px solid rgba(25, 116, 76, .3); outline-offset: 2px; }
.calendar-event strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event__heading { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .35rem; }
.calendar-event__heading strong { min-width: 0; }
.calendar-event__attendance-completed { display: inline-flex; flex: 0 0 auto; width: .6rem; height: .6rem; align-items: center; justify-content: center; border-radius: 50%; color: #fff; background: #258052; font-size: .45rem; line-height: 1; }
.calendar-event__attendance-completed > [aria-hidden="true"]::before { content: '\2713'; }
.calendar-event time { font-variant-numeric: tabular-nums; font-weight: 750; }
.calendar-event small { overflow: hidden; color: var(--color-muted); text-overflow: ellipsis; white-space: nowrap; }
.calendar-event--green { border-color: #258052; background: #e8f5ed; }
.calendar-event--blue { border-color: #3478b8; background: #eaf2fa; }
.calendar-event--amber { border-color: #c17a20; background: #fff3df; }
.calendar-event--red { border-color: #b94a42; background: #faecea; }
.calendar-event--purple { border-color: #7759aa; background: #f1ecf8; }
.calendar-event--teal { border-color: #27858a; background: #e7f5f5; }
.calendar-event--pink { border-color: #b94775; background: #faeaf1; }
.calendar-event--indigo { border-color: #4f5db7; background: #eceefe; }
.calendar-event--cyan { border-color: #16849b; background: #e5f6fa; }
.calendar-event--lime { border-color: #688b22; background: #f2f8df; }
.calendar-event--brown { border-color: #8a5a3b; background: #f5ece6; }
.calendar-event--slate { border-color: #5d6b78; background: #edf1f4; }
.calendar-event.calendar-event--competition { border-color: #8a65c7; color: #352452; background: #d9cbf4; }
.calendar-event--competition small { color: #604d7a; }
.calendar-event--competition-mobile { display: none; }
.calendar-week__competition-layer { z-index: 2; display: grid; grid-row: 1; grid-column: 1 / -1; align-self: start; gap: var(--calendar-event-gap); margin-top: calc(var(--calendar-day-padding) + var(--calendar-header-height) + var(--calendar-header-gap)); pointer-events: none; }
.calendar-competition-lane { display: grid; min-height: 3.65rem; grid-template-columns: repeat(7, minmax(8.5rem, 1fr)); }
.calendar-event--competition-span { min-width: 0; margin: 0 var(--calendar-day-padding); pointer-events: auto; }
.calendar-event--start-1 { grid-column-start: 1; }
.calendar-event--start-2 { grid-column-start: 2; }
.calendar-event--start-3 { grid-column-start: 3; }
.calendar-event--start-4 { grid-column-start: 4; }
.calendar-event--start-5 { grid-column-start: 5; }
.calendar-event--start-6 { grid-column-start: 6; }
.calendar-event--start-7 { grid-column-start: 7; }
.calendar-event--span-1 { grid-column-end: span 1; }
.calendar-event--span-2 { grid-column-end: span 2; }
.calendar-event--span-3 { grid-column-end: span 3; }
.calendar-event--span-4 { grid-column-end: span 4; }
.calendar-event--span-5 { grid-column-end: span 5; }
.calendar-event--span-6 { grid-column-end: span 6; }
.calendar-event--span-7 { grid-column-end: span 7; }
.calendar-empty { margin: 1rem 0 0; color: var(--color-muted); font-size: .84rem; }
.dashboard-secondary { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 30rem), 1fr)); gap: 1rem; align-items: start; margin-top: 1rem; }
.dashboard-attendance-alerts { margin-top: 1rem; border-color: #efc8c3; }
.dashboard-attendance-alerts > p { color: var(--color-muted); }
.dashboard-attendance-alerts__heading { display: flex; gap: 1rem; align-items: center; justify-content: space-between; }
.dashboard-attendance-alerts__heading h2 { margin: 0; }
.dashboard-attendance-alerts__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 0 1.25rem; padding: 0; margin: 1rem 0 0; list-style: none; }
.dashboard-attendance-alerts__list li { display: flex; gap: 1rem; align-items: center; justify-content: space-between; min-width: 0; padding: .8rem 0; border-top: 1px solid var(--color-border); }
.dashboard-attendance-alerts__list li > div { display: grid; min-width: 0; gap: .18rem; }
.dashboard-attendance-alerts__list small { color: var(--color-muted); }
.dashboard-attendance-alerts__list .status-pill { flex: 0 0 auto; }
.dashboard-attendance-alerts__more { margin: .8rem 0 0; font-size: .82rem; }
.dashboard-payment-summary { grid-column: 1 / -1; }
.dashboard-payment-summary__links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin-top: 1rem; }
.dashboard-payment-summary__link { display: grid; gap: .25rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); color: var(--color-ink); background: #fbfcfb; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.dashboard-payment-summary__link:hover { border-color: var(--color-brand); box-shadow: 0 6px 18px rgba(21, 45, 32, .08); transform: translateY(-1px); }
.dashboard-payment-summary__link:focus-visible { outline: 3px solid rgba(25, 116, 76, .3); outline-offset: 2px; }
.dashboard-payment-summary__link strong { color: var(--color-brand-strong); font-size: 1.8rem; line-height: 1; }
.dashboard-payment-summary__link span { color: var(--color-muted); font-size: .82rem; font-weight: 750; }
.dashboard-payment-summary__link--warning strong { color: #8a5310; }
.dashboard-payment-summary__link--overdue { border-color: #efc8c3; background: #fff7f6; }
.dashboard-payment-summary__link--overdue strong { color: #a33d35; }
.dashboard-license-alerts > p { color: var(--color-muted); }
.dashboard-license-alerts__heading { display: flex; gap: 1rem; align-items: center; justify-content: space-between; }
.dashboard-license-alerts__heading h2 { margin: 0; }
.dashboard-license-list { display: grid; gap: 0; padding: 0; margin: 1rem 0 0; list-style: none; }
.dashboard-license-list li { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: .8rem 0; border-top: 1px solid var(--color-border); }
.dashboard-license-list li > div { display: grid; min-width: 0; gap: .18rem; }
.dashboard-license-list small { color: var(--color-muted); }
.dashboard-license-list time { flex: 0 0 auto; padding: .35rem .55rem; border-radius: 999px; color: #8a5310; background: #fff4d8; font-size: .78rem; font-weight: 750; }
.dashboard-license-alerts__more { margin: .8rem 0 0; font-size: .82rem; }
.system-version-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.system-version-grid article { display: grid; gap: .55rem; }
.system-version-grid span { color: var(--color-muted); font-size: .78rem; font-weight: 750; }
.system-version-grid strong { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 1.15rem; }
.system-update-card { max-width: 60rem; }
.system-update-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.system-update-card__heading h2 { margin: 0 0 .25rem; }
.system-update-card__heading small { color: var(--color-muted); }
.migration-list { display: grid; gap: .55rem; padding: 0; margin: 1.25rem 0; list-style: none; }
.migration-list li { display: grid; grid-template-columns: 8.5rem 1fr; gap: 1rem; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.migration-list code { color: var(--color-brand-strong); font-weight: 750; }
.content-card { padding: 1.5rem; }
.page-container > .content-card + .content-card { margin-top: 1rem; }
.page-container > .content-card + .backup-overview { margin-top: 1rem; }
.content-card h2 { margin: 0 0 .45rem; }
.parent-payment-title { display: inline-flex; align-items: center; gap: .65rem; min-width: 0; }
.parent-payment-title__paid { display: inline-flex; flex: 0 0 auto; color: #16a34a; }
.parent-payment-title__paid svg { width: 2.5rem; height: 2.5rem; fill: none; stroke: currentColor; stroke-width: 3.5; stroke-linecap: round; stroke-linejoin: round; }
.parent-payment-received dd { display: flex; flex-wrap: wrap; gap: .55rem 1rem; align-items: center; }
.parent-payment-received dd > span { white-space: nowrap; }
.content-card > p:not(.eyebrow) { color: var(--color-muted); }
.collapsible-section { position: relative; }
.collapsible-section__heading { display: flex; min-height: var(--panel-control-size); padding-right: var(--panel-control-size); align-items: center; justify-content: space-between; gap: 1rem; }
.collapsible-section.is-collapsed > :not(.collapsible-section__heading):not(.section-collapse-control) { display: none !important; }
.section-collapse-control { position: absolute; top: var(--panel-control-inset); right: var(--panel-control-inset); display: inline-grid; width: var(--panel-control-size); height: var(--panel-control-size); place-items: center; padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-small); color: var(--color-brand-strong); background: var(--color-brand-soft); cursor: pointer; }
/* Draw disclosure marks around their geometric center, independently of font metrics. */
.section-collapse-control span { display: grid; place-items: center; line-height: 1; }
.section-collapse-control span::before { display: block; width: 1.25rem; height: 1.25rem; --disclosure-vertical: 0px; }
.section-collapse-control span::before,
.audit-details > summary::before,
.dashboard-metric-add > summary::before,
.detailed-permissions > summary::after { content: ''; background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor); background-position: center; background-repeat: no-repeat; background-size: .65rem 2px, 2px var(--disclosure-vertical, .65rem); forced-color-adjust: none; }
.is-collapsed .section-collapse-control span::before { --disclosure-vertical: .65rem; }
.avatar-row { display: flex; align-items: center; margin-top: 2rem; }
.avatar-row span { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; margin-right: -.4rem; border: 2px solid white; border-radius: 50%; color: var(--color-brand-strong); background: var(--color-brand-soft); font-size: .7rem; font-weight: 800; }
.avatar-row small { margin-left: 1rem; color: var(--color-muted); }
.activity-list { display: grid; gap: 1rem; padding: 0; margin: 1.25rem 0 0; list-style: none; }
.activity-list li { display: grid; grid-template-columns: .65rem 1fr; gap: .7rem; align-items: start; }
.activity-list div { display: grid; gap: .18rem; }
.activity-list small { color: var(--color-muted); }
.activity-dot { width: .55rem; height: .55rem; margin-top: .3rem; border-radius: 50%; background: var(--color-brand); box-shadow: 0 0 0 4px var(--color-brand-soft); }
.club-grid { display: grid; max-width: 52rem; gap: 1rem; }
.club-card { display: grid; grid-template-columns: auto 1fr auto; gap: 1rem; align-items: center; padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: white; box-shadow: 0 8px 30px rgba(35,55,43,.045); }
.club-card__mark { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: 50%; color: var(--color-brand-strong); background: var(--color-brand-soft); font-size: 1.15rem; font-weight: 850; text-transform: uppercase; }
.club-card__logo { width: 3rem; height: 3rem; object-fit: contain; border: 1px solid var(--color-border); border-radius: .9rem; background: white; }
.club-card h2 { margin: 0 0 .2rem; font-size: 1.05rem; }
.club-card small { color: var(--color-muted); }
.member-filter-card { margin-bottom: 1rem; }
.member-filters { display: grid; grid-template-columns: minmax(15rem, 2fr) minmax(11rem, 1fr) auto; gap: .8rem; align-items: end; }
.audit-filters { grid-template-columns: minmax(16rem, 2fr) minmax(12rem, 1fr) auto auto; margin: 1rem 0 1.25rem; }
.member-list-filters { grid-template-columns: minmax(12rem, 2fr) repeat(3, minmax(8rem, 1fr)) auto; }
.member-list-filters__actions { display: flex; gap: .55rem; align-items: center; }
.member-check-filters { grid-template-columns: minmax(14rem, 20rem) minmax(18rem, 1fr); align-items: start; }
.member-check-selection { min-width: 0; padding: .75rem 1rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.member-check-selection legend { padding: 0 .35rem; font-weight: 700; }
.member-check-selection__legend { display: flex; gap: 1rem; align-items: center; }
.member-check-selection__toggle-all { display: inline-flex; gap: .4rem; align-items: center; font-size: .88rem; font-weight: 500; cursor: pointer; }
.member-check-selection__options { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.training-history-filters { grid-template-columns: repeat(4, minmax(9rem, 1fr)) auto; }
.training-excuse-filters { grid-template-columns: minmax(14rem, 1.5fr) repeat(3, minmax(9rem, 1fr)) auto; }
.training-excuse-filters--group { grid-template-columns: minmax(14rem, 1.5fr) repeat(2, minmax(9rem, 1fr)) auto; }
.training-excuse-filters input { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.member-filters select, .member-form select { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.user-access-filter-card { margin-bottom: 1rem; padding: 1rem 1.1rem; background: rgba(255, 255, 255, .78); }
.user-access-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.user-access-toolbar .access-scope-switcher { height: var(--control-height-small); margin-bottom: 0; }
.user-access-toolbar .access-scope-switcher a { display: inline-flex; align-items: center; padding-block: 0; }
.user-access-toolbar .button { height: var(--control-height-small); }
.user-access-toolbar > .page-actions { margin-inline-start: auto; }
.user-access-filters { grid-template-columns: minmax(12rem, 1.4fr) repeat(4, minmax(8rem, 1fr)) auto; gap: .75rem 1rem; }
.user-access-filters--club { grid-template-columns: minmax(12rem, 1.4fr) repeat(2, minmax(8rem, 1fr)) auto; }
.user-access-filters > .field { min-width: 0; }
.user-access-filters__actions { display: flex; gap: .65rem; align-items: center; align-self: end; justify-content: flex-end; }
.user-access-filters__actions .button { min-width: 0; white-space: nowrap; }
.member-list-card { padding: 0; overflow: hidden; }
.member-list-summary { padding: 1rem 1.2rem; border-bottom: 1px solid var(--color-border); color: var(--color-muted); font-size: .82rem; font-weight: 750; }
.table-scroll {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
}
.data-table { width: 100%; border-collapse: collapse; }
.data-table tbody > tr:nth-child(even) { background-color: #f6f8f6; }
.data-table tbody > tr.user-access-row--globally-inactive > td { background-color: #ecefed; color: var(--color-muted); }
.data-table tbody > tr.user-access-row--globally-inactive a { color: inherit; }
.attendance-simple-help { margin: 0 0 1rem; color: var(--color-muted); }
.attendance-table tbody tr { transition: background-color .14s ease; }
.attendance-table tbody tr.attendance-row--present { background: #edf8f1; }
.attendance-presence { display: inline-flex; min-height: 2.75rem; gap: .65rem; align-items: center; cursor: pointer; font-weight: 750; }
.attendance-presence input { width: 1.45rem; height: 1.45rem; margin: 0; accent-color: var(--color-primary); cursor: pointer; }
.attendance-note-input { width: min(100%, 28rem); }
.attendance-members-panel > .pagination-bar { justify-items: end; }
.attendance-members-panel .pagination { justify-content: flex-end; }
.attendance-members-panel .pagination-summary { text-align: right; }
#attendance-sheet-form { display: grid; gap: 1rem; }
.attendance-sheet-form--after-unlock { padding-top: 1rem; }
.attendance-unlock-actions { margin-top: 1rem; }
.attendance-lock-controls { display: grid; gap: .65rem; justify-items: end; max-width: 28rem; }
.attendance-lock-controls .confirmation-check { text-align: right; }
.attendance-save-actions { flex-wrap: wrap; margin-top: .75rem; }
.attendance-lock-panel { margin-top: 1rem; }
.attendance-lock-panel > .attendance-lock-controls { min-width: 0; padding-left: 1.5rem; border-left: 1px solid var(--color-danger-border); }
.coach-profile-stats { margin-bottom: 1rem; }
.coach-profile-details { align-items: start; margin-bottom: 1rem; }
.coach-profile-filters { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin: 1.25rem 0; }
.coach-profile-filters label { display: inline-flex; gap: .5rem; align-items: center; font-size: .88rem; font-weight: 700; }
.coach-profile-filters input { width: 10.5rem; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.coach-profile-filters .button { min-height: var(--control-height); }
.coach-profile-session-table tfoot th, .coach-profile-session-table tfoot td { border-top: 2px solid var(--color-border); background: var(--color-brand-soft); }
.coach-profile-session-table tfoot th { color: var(--color-ink); text-align: right; }
.secondary-link { font-size: .82rem; }
.data-table th, .data-table td { padding: .65rem 1rem; border-bottom: 1px solid var(--color-border); text-align: left; white-space: nowrap; vertical-align: middle; }
.data-table th { color: var(--color-muted); background: #fafbfa; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
.sortable-heading { display: inline-flex; align-items: center; gap: .35rem; color: inherit; text-decoration: none; }
.sortable-heading:hover, .sortable-heading:focus-visible, .sortable-heading--active { color: var(--color-brand); }
.sortable-heading__direction--ascending::before { content: "\2191"; }
.sortable-heading__direction--descending::before { content: "\2193"; }
.data-table__actions { text-align: right !important; }
.data-table__actions a { color: var(--color-brand); font-weight: 750; }
.receipt-selections { display: grid; justify-items: end; gap: .35rem; }
.payment-receipts-column { text-align: left !important; }
.payment-receipts-column .receipt-selections { justify-items: start; }
.payment-qr-dialog { width: min(30rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: var(--radius-medium); box-shadow: 0 18px 60px rgba(21, 45, 32, .3); }
.payment-qr-dialog::backdrop { background: rgba(18, 30, 23, .42); }
.payment-qr-dialog__content { display: grid; gap: 1rem; padding: 1.25rem; }
.payment-qr-dialog__content header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.payment-qr-dialog__content h2, .payment-qr-dialog__content p { margin: 0; }
.payment-qr-dialog__heading { min-width: 0; }
.payment-qr-dialog__description { display: flex; margin-top: .25rem; align-items: center; gap: .45rem; }
.payment-qr-dialog__description > div { min-width: 0; }
.payment-qr-dialog__description p { color: var(--color-muted); overflow-wrap: anywhere; }
.payment-qr-dialog__description .copy-value-button { flex: 0 0 auto; }
.payment-qr-dialog__image { display: grid; min-height: 15.375rem; padding: 0; border: 0; place-items: center; background: transparent; cursor: copy; }
.payment-qr-dialog__image:disabled { cursor: wait; opacity: .7; }
.payment-qr-dialog__image img { display: block; width: min(15.375rem, 100%); height: auto; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fff; }
.data-table tr[data-checkbox-row] { cursor: pointer; }
.data-table tr[data-checkbox-row] > td { transition: background-color .14s ease; }
.data-table tr[data-checkbox-row]:hover > td { background: #f7faf8; }
.data-table tr[data-checkbox-row].checkbox-row--selected > td { background: var(--color-brand-soft); }
.data-table .payment-row--partial > td { background: #fff9e8; }
.data-table .payment-row--paid > td { background: #eff9f2; }
.audit-operation { display: inline-flex; align-items: center; min-height: 1.65rem; padding: .2rem .55rem; border-radius: 999px; color: var(--color-brand-strong); background: var(--color-brand-soft); font-size: .78rem; font-weight: 800; }
.audit-record { display: grid; min-width: 10rem; gap: .15rem; white-space: normal; }
.audit-record small { color: var(--color-muted); font-size: .78rem; }
.audit-details-cell { min-width: 19rem; white-space: normal !important; }
.audit-details > summary { display: inline-flex; align-items: center; gap: .4rem; color: var(--color-brand-strong); cursor: pointer; font-size: .8rem; font-weight: 750; list-style: none; }
.audit-details > summary::-webkit-details-marker { display: none; }
.audit-details > summary::before { content: ''; display: grid; width: 1.35rem; height: 1.35rem; place-items: center; border-radius: 50%; background-color: var(--color-brand-soft); font-size: 1rem; line-height: 1; }
.audit-details[open] > summary::before { --disclosure-vertical: 0px; }
.audit-details__body { display: grid; gap: .65rem; margin-top: .65rem; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fbfcfb; }
.audit-details__metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 0; }
.audit-details__metadata > div { display: grid; min-width: 0; gap: .15rem; }
.audit-details__metadata dt { color: var(--color-muted); font-size: .72rem; font-weight: 750; }
.audit-details__metadata dd { min-width: 0; margin: 0; }
.audit-details__metadata code { display: block; overflow-wrap: anywhere; color: var(--color-ink); font-size: .74rem; white-space: normal; }
.audit-details__record-id { display: grid; gap: .2rem; margin: 0; color: var(--color-muted); font-size: .75rem; }
.audit-details__record-id code { overflow-wrap: anywhere; color: var(--color-ink); font-size: .74rem; white-space: normal; }
.audit-change-list { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.audit-change-list li { display: grid; gap: .15rem; min-width: 0; }
.audit-change-list li > strong { font-size: .78rem; }
.audit-change-list li > span { color: var(--color-muted); font-size: .78rem; overflow-wrap: anywhere; }
.audit-change-values { display: flex; flex-wrap: wrap; gap: .35rem; align-items: baseline; }
.audit-change-values span:last-child { color: var(--color-ink); font-weight: 700; }
.audit-change-values span:first-child, .audit-change-values span:last-child { white-space: pre-line; }
.audit-details__empty, .audit-details__additional { margin: 0; color: var(--color-muted); font-size: .78rem; white-space: normal; }
.system-announcements { display: grid; gap: .65rem; width: min(100% - 2rem, 78rem); margin: 1rem auto 0; }
.system-announcement { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 1rem; border: 1px solid #d9c878; border-radius: var(--radius-small); background: #fff9df; color: #59480d; }
.system-announcement__content { min-width: 0; }
.system-announcement form { flex: 0 0 auto; }
.system-announcement strong { display: block; margin-bottom: .2rem; }
.system-announcement p { margin: 0; white-space: pre-line; }
.system-announcement-table { table-layout: fixed; }
.system-announcement-table__message { width: 38%; }
.system-announcement-table__target { width: 16%; }
.system-announcement-table__validity { width: 22%; }
.system-announcement-table__actions { width: 24%; }
.system-announcement-table__summary, .system-announcement-table__summary strong, .system-announcement-table__summary small { overflow-wrap: anywhere; white-space: normal; }
@media (max-width: 42rem) { .system-announcement { align-items: stretch; flex-direction: column; } .system-announcement form, .system-announcement button { width: 100%; } }
.maintenance-card { max-width: 42rem; }
.maintenance-message { white-space: pre-line; }
.status-pill--active { color: #17633a; background: #e5f5eb; }
.status-pill--inactive { color: #70511d; background: #fff2d9; }
.status-pill--archived { color: #5f6670; background: #edf0f2; }
.status-pill--former { color: #5f6670; background: #edf0f2; }
.status-pill--medical-current { color: #17633a; background: #e5f5eb; }
.status-pill--medical-upcoming { color: #70511d; background: #fff2d9; }
.status-pill--medical-expired { color: #5f6670; background: #edf0f2; }
.member-list-card .empty-state { max-width: none; border: 0; border-radius: 0; text-align: center; }
.member-bulk-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); background: #fbfcfb; }
.member-bulk-actions--inset { padding: 1rem 0 0; background: transparent; }
.member-bulk-actions > .member-bulk-action:only-child { grid-column: 1 / -1; }
.member-bulk-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .75rem 1rem; min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: white; }
.member-bulk-action--restore { border-color: #c9dfd1; background: #f5fbf7; }
.member-bulk-action--delete { border-color: var(--color-danger-border); background: var(--color-danger-soft); }
.member-bulk-action__heading { display: grid; grid-column: 1 / -1; gap: .2rem; }
.member-bulk-action__heading strong { font-size: .95rem; }
.member-bulk-action__heading span { color: var(--color-muted); font-size: .8rem; line-height: 1.45; }
.member-bulk-action .confirmation-check { min-width: 0; line-height: 1.35; }
.member-bulk-action .button { justify-self: end; white-space: nowrap; }
@media (max-width: 60rem) {
    .member-bulk-actions--long-labels .member-bulk-action { grid-template-columns: 1fr; }
}
.pagination-bar { display: grid; gap: .65rem; padding: 1rem 0 0; }
.member-list-card > .pagination-bar { padding: 1rem 1.5rem 1.25rem; border-top: 1px solid var(--color-border); }
.pagination-size { display: flex; justify-content: flex-end; }
.pagination-size label { display: flex; align-items: center; gap: .5rem; color: var(--color-muted); font-size: .9rem; font-weight: 700; }
.pagination-size select { min-height: var(--control-height); padding: .35rem 2rem .35rem .65rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: white; }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .45rem; padding: .35rem; }
.pagination__pages { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: .25rem; }
.pagination > .button { min-height: var(--control-height-small); }
.pagination__page { display: inline-flex; min-width: var(--control-height-small); min-height: var(--control-height-small); align-items: center; justify-content: center; border: 1px solid var(--color-border); border-radius: var(--radius-small); color: var(--color-brand-dark); font-size: .9rem; font-weight: 800; text-decoration: none; background: white; }
.pagination__page:hover { border-color: var(--color-brand); background: var(--color-brand-soft); }
.pagination__page--current { border-color: var(--color-brand); color: white; background: var(--color-brand); }
.pagination__ellipsis { padding: 0 .25rem; color: var(--color-muted); }
.pagination__disabled { opacity: .45; pointer-events: none; }
.pagination-summary { margin: 0; text-align: center; color: var(--color-muted); font-size: .85rem; font-weight: 700; }
.payment-charge { display: grid; gap: .8rem; margin-top: 1rem; padding: 1rem; border: 1px solid var(--color-border); border-left-width: .3rem; border-radius: var(--radius-small); background: #fbfcfb; box-shadow: 0 1px 2px rgba(21, 45, 32, .05); }
.payment-charge:first-of-type { margin-top: 1rem; }
.payment-charge--unpaid, .payment-charge--partial { border-left-color: #d2a93b; }
.payment-charge--overdue { border-left-color: var(--color-danger); }
.payment-charge--paid, .payment-charge--overpaid { border-left-color: var(--color-brand); }
.payment-charge__summary { display: grid; grid-template-columns: minmax(12rem, 2fr) minmax(10rem, 1fr) auto; gap: 1rem; align-items: center; }
.record-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: flex-start; }
.record-actions details > summary { list-style: none; cursor: pointer; }
.bulk-member-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .45rem; max-height: 22rem; overflow: auto; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.bulk-selection-tools { display: grid; gap: .65rem; }
.bulk-selection-tools .field { max-width: 32rem; }
.bulk-selection-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.bulk-selection-count { color: var(--color-muted); margin-inline-start: auto; }
.bulk-function-filter { min-width: 0; margin: 0; padding: .85rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.bulk-function-filter legend { padding: 0 .35rem; font-weight: 700; }
.bulk-function-filter__options { display: flex; flex-wrap: wrap; gap: .6rem 1rem; }
.bulk-function-filter__options .confirmation-check { min-width: 8rem; margin: 0; }
.bulk-function-filter .field-help { margin: .65rem 0 0; }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 1rem; }
.detail-grid > * { min-width: 0; }
.detail-grid .record-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.detail-grid .inline-record-form { grid-template-columns: minmax(0, 1fr) auto; }
.detail-grid .inline-record-form--three { grid-template-columns: minmax(0, .85fr) minmax(0, 1.25fr) auto; }
.detail-card { display: flex; flex-direction: column; }
.detail-card h2 { margin-top: 0; }
.panel-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.detail-card > .panel-actions { margin-top: auto; padding-top: 1rem; }
.detail-card--placeholder { background: #f8faf8; }
.detail-list { display: grid; gap: 0; margin: 0; }
.detail-list div { display: grid; grid-template-columns: minmax(9rem, .7fr) 1fr; gap: 1rem; padding: .85rem 0; border-bottom: 1px solid var(--color-border); }
.detail-list dt { color: var(--color-muted); font-size: .8rem; font-weight: 750; }
.detail-list dd { margin: 0; font-weight: 700; }
.parent-competition-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.parent-competition-title { display: inline-flex; min-width: 0; align-items: center; gap: .55rem; }
.parent-competition-title h2 { margin: 0; }
.parent-competition-documents { margin: .35rem 0 0; font-size: .88rem; }
.competition-detail-dialog { width: min(42rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: var(--radius-medium); box-shadow: 0 18px 60px rgba(21, 45, 32, .3); }
.club-billing-value { display: inline-flex; align-items: center; gap: .55rem; }
.club-tariff-dialog { width: min(56rem, calc(100vw - 2rem)); }
.club-tariff-dialog .detail-list { align-content: start; }
@media (min-width: 1101px) {
    .club-tariff-dialog .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.club-tariff-dialog .competition-detail-dialog__content header > div { min-width: 0; overflow-wrap: anywhere; }
.club-tariff-dialog .competition-detail-dialog__content header .button { flex-shrink: 0; }
.club-tariff-dialog .detail-list dd { overflow-wrap: anywhere; }
.club-tariff-dialog .detail-list dt, .club-tariff-dialog .detail-list dd { min-width: 0; }
.competition-detail-dialog::backdrop { background: rgba(18, 30, 23, .42); }
.competition-detail-dialog__content { display: grid; gap: 1rem; padding: 1.25rem; }
.competition-detail-dialog__content header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.competition-detail-dialog__content h2, .competition-detail-dialog__content h3, .competition-detail-dialog__content p { margin: 0; }
.copyable-value { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .65rem; }
.copyable-value > input { flex: 1 1 auto; min-width: 0; }
.copyable-value > .button { flex: 0 0 auto; white-space: nowrap; }
.copyable-value > span { min-width: 0; overflow-wrap: anywhere; }
.copyable-value__actions { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .35rem; }
.copy-value-button.address-map-button svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.copy-value-button { display: inline-flex; flex: 0 0 auto; width: 2rem; height: 2rem; align-items: center; justify-content: center; padding: 0; border: 1px solid var(--color-border); border-radius: var(--radius-small); color: var(--color-brand-strong); background: var(--color-brand-soft); cursor: pointer; }
.copy-value-button:hover { border-color: var(--color-brand); background: #d5eadf; }
.copy-value-button:focus-visible { outline: 3px solid rgba(23, 107, 69, .22); outline-offset: 2px; }
.copy-value-button svg { width: 1rem; height: 1rem; fill: currentColor; }
.copy-value-button.is-copied { color: #17633a; border-color: #8bc09e; background: #e5f5eb; }
.copy-value-button.is-copy-failed { color: #84271f; border-color: #df9a94; background: #fff0ef; }
.copy-value-button.is-copied svg, .copy-value-button.is-copy-failed svg { display: none; }
.copy-value-button.is-copied::before { content: '✓'; font-size: 1rem; font-weight: 900; }
.copy-value-button.is-copy-failed::before { content: '!'; font-size: 1rem; font-weight: 900; }
.danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 1rem; padding: 1.2rem; border: 1px solid var(--color-danger-border); border-radius: var(--radius-medium); background: var(--color-danger-soft); box-shadow: inset .3rem 0 0 rgba(163, 59, 50, .28); }
.danger-zone:not(form) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 28rem); align-items: center; gap: 1.25rem 2rem; }
.danger-zone:not(form) > div { min-width: 0; }
.danger-zone:not(form) > form { display: grid; min-width: 0; gap: .85rem; padding-left: 1.5rem; border-left: 1px solid var(--color-danger-border); }
.danger-zone:not(form) > form .confirmation-check { margin: 0; line-height: 1.4; }
.danger-zone:not(form) > form .button { justify-self: end; }
.danger-zone--compact-actions:not(form) { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
.danger-zone--compact-actions:not(form) > form { justify-items: end; gap: .5rem; }
.danger-zone h2 { margin: 0 0 .3rem; color: var(--color-danger); font-size: 1rem; }
.danger-zone p { margin: 0; color: var(--color-muted); }
.button--danger { color: white; background: #a5342c; }
.button--danger:hover { background: #84271f; }
.topbar-maintenance-form { margin: 0; }
.topbar-maintenance-button { white-space: nowrap; box-shadow: 0 6px 16px rgba(132, 39, 31, .22); }
.member-form { max-width: 52rem; }
.member-form--wide { width: 100%; max-width: none; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.empty-state { max-width: 42rem; padding: 2rem; border: 1px dashed #bcc9be; border-radius: var(--radius-medium); color: var(--color-muted); background: rgba(255,255,255,.55); }
.training-group-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem; margin-top: .8rem; }
.training-group-card { display: grid; grid-template-columns: auto 1fr auto; gap: .8rem; align-items: center; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); color: inherit; text-decoration: none; background: #fff; }
.training-group-card:hover { border-color: #99aa9c; box-shadow: 0 7px 20px rgba(35,55,43,.08); }
.training-group-card span:nth-child(2) { display: grid; gap: .2rem; }
.training-group-card small { color: var(--color-muted); }
.training-group-card__counts { display: flex !important; flex-wrap: wrap; gap: .25rem .75rem !important; margin-top: .35rem; }
.training-group-card__counts small { white-space: nowrap; }
.training-group-card__counts strong { color: var(--color-ink); }
.competition-list-filters { grid-template-columns: minmax(15rem, 2fr) minmax(11rem, 1fr) minmax(8rem, .7fr) auto; margin-bottom: 1rem; }
.competition-list-filters input { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.competition-placement-summary { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; }
.competition-placement-summary__item { display: inline-flex; align-items: center; gap: .35rem; white-space: nowrap; }
.placement-medal { position: relative; isolation: isolate; display: inline-flex; width: 1.25rem; height: 1.25rem; align-items: center; justify-content: center; border: 1px solid rgba(66, 54, 26, .22); border-radius: 50%; color: #352b17; box-shadow: inset 0 1px 1px rgba(255,255,255,.7), 0 1px 2px rgba(35,55,43,.16); font-size: .67rem; font-weight: 900; line-height: 1; }
.placement-medal::before, .placement-medal::after { position: absolute; z-index: -1; top: -.38rem; width: .32rem; height: .62rem; border-radius: .08rem; background: #47759d; content: ''; }
.placement-medal::before { left: .22rem; transform: rotate(-18deg); }
.placement-medal::after { right: .22rem; transform: rotate(18deg); }
.placement-medal--1 { background: linear-gradient(145deg, #fff0a8, #e4b52e); }
.placement-medal--2 { background: linear-gradient(145deg, #f7f9fa, #aeb9c1); }
.placement-medal--3 { background: linear-gradient(145deg, #f4c29b, #b66d38); }
.training-color { display: inline-block; flex: 0 0 auto; width: .8rem; height: .8rem; margin-right: .45rem; border-radius: 50%; vertical-align: .08rem; background: #4d9868; }
.smart-import-card { max-width: none; }
.smart-import-table-scroll { max-height: min(58vh, 36rem); margin: 1rem 0; overflow: auto; border-block: 1px solid var(--color-border); }
.smart-import-table { width: max-content; min-width: 100%; }
.smart-import-table th, .smart-import-table td { min-width: 13rem; max-width: 22rem; vertical-align: top; overflow-wrap: anywhere; }
.smart-import-table .bulk-select-column { width: 3rem; min-width: 3rem; max-width: 3rem; padding-inline: .4rem; vertical-align: middle; }
.smart-import-table td { white-space: normal; }
.smart-import-table thead th { position: sticky; z-index: 2; }
.smart-import-table thead tr:first-child th { top: 0; height: 2.7rem; color: var(--color-ink); white-space: nowrap; background: #eef5f0; }
.smart-import-table thead tr:first-child .bulk-select-column { z-index: 3; }
.smart-import-table__mapping th { top: 2.7rem; padding: .55rem; background: #fbfcfb; }
.smart-import-table__mapping select { width: 100%; min-width: 12rem; font-size: .86rem; }
.smart-import-card .pagination { justify-content: center; }
.smart-import-pagination { grid-template-columns: 1fr auto 1fr; align-items: center; }
.smart-import-pagination .pagination-size { justify-content: flex-start; }
.smart-import-pagination .pagination-summary { grid-column: 2; }
.smart-import-pagination .pagination { grid-column: 1 / -1; }
.smart-import-template-picker .inline-form { display: grid; grid-template-columns: minmax(16rem, 32rem) auto; gap: .75rem; align-items: end; }
.smart-import-template-picker .field { margin: 0; }
.smart-import-template-picker select { width: 100%; min-height: var(--control-height); }
.smart-import-template-picker .button { width: 100%; min-height: var(--control-height-small); }
.training-group-title { display: flex; align-items: center; gap: .45rem; }
.training-group-title > .training-color { margin-right: 0; transform: translateY(.06em); }
.training-color--green { background: #4d9868; }
.training-color--blue { background: #3979bd; }
.training-color--amber { background: #d58a25; }
.training-color--red { background: #c9574e; }
.training-color--purple { background: #815cb1; }
.training-color--teal { background: #318e8b; }
.training-color--pink { background: #c55483; }
.training-color--indigo { background: #5968c5; }
.training-color--cyan { background: #1996ad; }
.training-color--lime { background: #7ca62e; }
.training-color--brown { background: #936246; }
.training-color--slate { background: #697987; }
.training-color-select { position: relative; display: block; min-width: 0; }
.training-color-select .training-color-preview { position: absolute; z-index: 1; top: 50%; left: .9rem; width: 1rem; height: 1rem; margin: 0; pointer-events: none; transform: translateY(-50%); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08); }
.installer-fields .field .training-color-select select { padding-left: 2.55rem; }
.training-color-select.is-enhanced > select, .training-color-select.is-enhanced > .training-color-preview { display: none; }
.training-color-combobox__button { display: flex; width: 100%; min-height: var(--control-height); align-items: center; padding: .45rem 2.6rem .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); color: var(--color-ink); outline: none; background: #fbfcfb; cursor: pointer; font-weight: 700; text-align: left; }
.training-color-combobox__button::after { position: absolute; right: 1rem; width: .55rem; height: .55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; content: ''; transform: translateY(-.15rem) rotate(45deg); }
.training-color-combobox__button:focus { border-color: var(--color-brand); box-shadow: 0 0 0 3px var(--color-brand-soft); }
.training-color-combobox__button .training-color { width: 1rem; height: 1rem; margin-right: .7rem; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08); }
.training-color-combobox__menu { position: absolute; z-index: 20; top: calc(100% + .35rem); right: 0; left: 0; display: grid; max-height: 23rem; overflow-y: auto; padding: .35rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fff; box-shadow: 0 12px 30px rgba(35, 55, 43, .16); }
.training-color-combobox__menu[hidden] { display: none; }
.training-color-combobox__option { display: flex; width: 100%; min-height: var(--control-height); align-items: center; padding: .45rem .65rem; border: 0; border-radius: calc(var(--radius-small) - 2px); color: var(--color-ink); background: transparent; cursor: pointer; font-weight: 650; text-align: left; }
.training-color-combobox__option:hover, .training-color-combobox__option:focus { outline: none; background: #f1f6f2; }
.training-color-combobox__option[aria-selected="true"] { color: var(--color-brand-strong); background: var(--color-brand-soft); font-weight: 800; }
.training-color-combobox__option .training-color { width: 1rem; height: 1rem; margin-right: .7rem; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08); }
.status-pill--scheduled { color: #17633a; background: #e5f5eb; }
.status-pill--cancelled { color: #7a302a; background: #fae5e3; }
.calendar-event { position: relative; }
.calendar-event__cancellation-cross { position: absolute; inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); z-index: 1; pointer-events: none; fill: none; stroke: #d71920; stroke-width: 4px; stroke-linecap: round; }
.training-session-action { border: 0; padding: 0; background: none; color: var(--color-primary, #176448); font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; white-space: nowrap; }
.training-session-action--cancel { color: #b42318; }
.link-button { padding: 0; border: 0; color: #a5342c; background: transparent; font: inherit; font-weight: 750; cursor: pointer; }
.inline-record-form > .link-button { display: inline-flex; min-height: var(--control-height); align-items: center; }
.member-function-list { display: flex; flex-wrap: wrap; gap: .35rem; }
.member-list-table td[data-column-id="function"] .member-function-list { flex-direction: column; align-items: flex-start; gap: .2rem; }
.member-list-table td[data-column-id="function"] .status-pill { padding: 0; }
.member-list-table td[data-column-id="tags"] .member-function-list { flex-wrap: nowrap; }
.member-list-table td[data-column-id="tags"] .status-pill { padding-inline: 0; }
.member-function-pill { display: inline-flex; align-items: center; gap: .3rem; }
.member-function-pill .training-color { margin-right: 0; }
.member-name-cell { white-space: nowrap; }
.member-list-table .member-payment-column { width: 5.25rem; text-align: center; }
.js .data-table[data-configurable-columns]:not(.is-columns-ready) { visibility: hidden; }
.data-table[data-configurable-columns] thead th[data-column-id] { cursor: grab; }
.data-table[data-configurable-columns] thead th[data-column-id]:active { cursor: grabbing; }
.data-table[data-configurable-columns] thead th.is-dragging { opacity: .45; }
.data-table[data-configurable-columns] thead th.is-drop-before { box-shadow: inset 3px 0 var(--color-brand); }
.data-table[data-configurable-columns] thead th.is-drop-after { box-shadow: inset -3px 0 var(--color-brand); }
.column-context-menu { position: fixed; z-index: 100; display: grid; min-width: 14rem; max-width: min(24rem, calc(100vw - 1rem)); padding: .3rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: white; box-shadow: 0 12px 30px rgba(35, 55, 43, .2); }
.column-context-menu[hidden] { display: none; }
.column-context-menu__item { width: 100%; padding: .55rem .7rem; border: 0; border-radius: calc(var(--radius-small) - 2px); color: var(--color-ink); background: transparent; cursor: pointer; font: inherit; font-weight: 650; text-align: left; }
.column-context-menu__item:hover, .column-context-menu__item:focus-visible { outline: none; background: var(--color-brand-soft); }
.column-context-menu__separator { height: 1px; margin: .3rem .2rem; background: var(--color-border); }
.column-context-menu__group { position: relative; }
.column-context-menu__submenu-trigger { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.column-context-menu__submenu-trigger::after { width: .45rem; height: .45rem; border-top: 2px solid currentColor; border-right: 2px solid currentColor; content: ''; transform: rotate(45deg); }
.column-context-menu__submenu { position: absolute; top: -.3rem; left: calc(100% + .35rem); max-height: min(30rem, calc(100vh - 1rem)); overflow-y: auto; }
.column-context-menu__submenu--left { right: calc(100% + .35rem); left: auto; }
.member-payment-coin { display: inline-grid; place-items: center; width: 1.05rem; height: 1.05rem; flex: 0 0 1.05rem; border: 1px solid #777f86; border-radius: 50%; color: #555d64; background: linear-gradient(135deg, #f4f6f7 0%, #aeb5bb 48%, #e4e7e9 100%); box-shadow: inset 0 0 0 2px rgb(255 255 255 / 42%), 0 1px 1px rgb(0 0 0 / 16%); font-size: .56rem; font-weight: 800; line-height: 1; text-decoration: none; vertical-align: middle; }
.member-payment-coin::after { content: ""; width: .55rem; height: .55rem; border: 1px solid currentColor; border-radius: 50%; opacity: .32; }
.member-payment-coin:hover, .member-payment-coin:focus-visible { transform: translateY(-1px); box-shadow: inset 0 0 0 2px rgb(255 255 255 / 48%), 0 2px 3px rgb(0 0 0 / 24%); }
.member-payment-coin--paid { border-color: #a77612; color: #72500b; background: linear-gradient(135deg, #fff1a3 0%, #d9a62a 48%, #ffe477 100%); }
.member-payment-coin--partial { border-color: #967b45; color: #66562f; background: linear-gradient(90deg, #e3e6e8 0%, #aeb5bb 49.5%, #d4a126 50.5%, #ffe477 100%); }
.member-data-warning { display: inline-grid; width: 1.25rem; height: 1.1rem; margin-left: .3rem; padding-top: .18rem; place-items: center; clip-path: polygon(50% 0, 100% 100%, 0 100%); color: white; background: #c76a1a; font-size: .68rem; font-weight: 900; line-height: 1; vertical-align: middle; cursor: help; }
.muted-value { color: var(--color-muted); }
.checkbox-field { display: flex; align-items: center; gap: .55rem; margin-top: 1rem; }
.checkbox-field input { width: 1.1rem; height: 1.1rem; }
.field textarea { width: 100%; padding: .75rem .85rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; resize: vertical; }
.training-coaches { margin-bottom: 1rem; }
.coach-assignment-form { display: grid; grid-template-columns: minmax(14rem, 2fr) minmax(10rem, 1fr) minmax(10rem, 1fr) auto; gap: .75rem; align-items: end; margin-top: 1.2rem; }
.coach-assignment-form select { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.permission-groups { display: grid; gap: 1rem; }
.user-role-settings > .detailed-permissions { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.detailed-permissions > summary { display: flex; width: 100%; flex-wrap: wrap; align-items: center; gap: .35rem 1rem; padding: .8rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); color: var(--color-brand-strong); background: var(--color-brand-soft); cursor: pointer; list-style: none; }
.detailed-permissions > summary::-webkit-details-marker { display: none; }
.detailed-permissions > summary::after { content: ''; display: grid; flex: 0 0 auto; width: 1.75rem; height: 1.75rem; margin-left: auto; place-items: center; border-radius: 50%; color: white; background-color: var(--color-brand); font-size: 1.15rem; font-weight: 800; line-height: 1; }
.detailed-permissions[open] > summary::after { --disclosure-vertical: 0px; }
.detailed-permissions > summary span { color: var(--color-muted); font-size: .85rem; font-weight: 500; }
.detailed-permissions[open] > summary { margin-bottom: 1.25rem; padding-bottom: 1rem; border-bottom: 1px solid var(--color-border); }
.detailed-permissions .permission-group + .permission-group { padding-top: 1rem; border-top: 1px solid var(--color-border); }
.permission-table td:first-child { min-width: 20rem; white-space: normal; }
.permission-table th:nth-child(2), .permission-table td:nth-child(2) { width: 10rem; }
.permission-table th:nth-child(3), .permission-table td:nth-child(3) { width: 20rem; }
.permission-description { display: block; max-width: 38rem; margin-top: .25rem; color: var(--color-muted); white-space: normal; }
.permission-form { display: flex; align-items: center; gap: .5rem; }
.permission-form select, .permission-form .button { min-height: var(--control-height); padding-block: .45rem; }
.permission-form select { padding-inline: .65rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.member-record-section { margin-top: 1rem; }
.member-record-section h3, .detail-card h3 { margin: 1.4rem 0 .5rem; font-size: 1rem; }
.record-list { display: grid; gap: .5rem; padding: 0; margin: .75rem 0; list-style: none; }
.record-list li { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.record-list li > span { display: grid; gap: .2rem; }
.record-list small { color: var(--color-muted); }
.record-list li.record-list__editable { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; }
.record-list li.record-list__selectable { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; }
.record-list__selectable > input[type="checkbox"] { width: 1rem; height: 1rem; margin: 0; }
.record-inline-editor { display: contents; }
.record-inline-editor > summary { grid-column: 2; grid-row: 1; align-self: center; list-style: none; }
.record-inline-editor > summary::-webkit-details-marker { display: none; }
.record-inline-editor > .inline-record-form { grid-column: 1 / -1; grid-row: 2; width: 100%; padding-top: .75rem; border-top: 1px solid var(--color-border); }
.record-list__editable > .archive-confirmation { grid-column: 3; grid-row: 1; }
.inline-record-form { display: grid; grid-template-columns: repeat(3, minmax(9rem, 1fr)) auto; gap: .65rem; align-items: end; margin-top: 1rem; }
.inline-record-form--three { grid-template-columns: minmax(10rem, .8fr) minmax(14rem, 1.5fr) auto; }
.record-form-grid { display: grid; grid-template-columns: repeat(4, minmax(10rem, 1fr)); gap: .7rem; align-items: end; padding-top: 1rem; margin-top: 1rem; border-top: 1px solid var(--color-border); }
.role-form { grid-template-columns: minmax(14rem, 1fr) minmax(20rem, 2fr); align-items: start; margin-top: 0; padding: 1.5rem; }
.role-form > .record-form-grid__wide { grid-column: 1 / -1; }
.record-form-grid > .sport-active-toggle { display: inline-flex; width: fit-content; min-height: var(--control-height); align-items: center; align-self: end; gap: .5rem; margin: 0; padding: .45rem 0; }
.record-form-grid > .payment-email-option { display: inline-flex; width: fit-content; align-items: center; align-self: start; justify-self: start; gap: .55rem; margin: .15rem 0 .35rem; }
.payment-email-option input[type="checkbox"] { flex: 0 0 auto; width: 1rem; height: 1rem; margin: 0; }
.payment-email-option span { line-height: 1.35; }
.sport-active-toggle input[type="checkbox"] { flex: 0 0 auto; margin: 0; }
.sport-active-toggle span { line-height: 1.25; }
.system-mail-form { max-width: 78rem; }
.system-mail-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.system-mail-grid > label { min-width: 0; align-self: start; }
.system-mail-grid__credential { grid-column: span 2; }
.system-mail-grid > .system-mail-grid__password-clear { display: flex; grid-column: 3 / span 2; align-items: flex-start; justify-self: start; gap: .6rem; margin: 0; }
.system-mail-grid__credential small { color: var(--color-muted); font-size: .78rem; font-weight: 500; line-height: 1.4; }
.data-table .billing-forecast-value { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Billing follows the shared form grid, with widths matched to the entered values. */
.billing-settings-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: auto auto auto; align-items: start; }
.billing-settings-grid > label { min-width: 0; grid-row: span 3; grid-template-rows: subgrid; align-items: start; }
.billing-settings-grid .field__hint, #billing-settings-form > .field-help { font-size: .78rem; font-weight: 500; line-height: 1.45; }
.billing-supplier-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: auto auto auto; gap: 1rem .7rem; align-items: start; }
.billing-supplier-grid > label { min-width: 0; grid-row: span 3; grid-template-rows: subgrid; align-items: start; }
.billing-supplier-grid__name, .billing-supplier-grid__address { grid-column: span 3; }
.billing-supplier-grid__bank_account, .billing-supplier-grid__email { grid-column: span 2; }
.record-form-grid > .form-actions, .record-form > .form-actions { grid-column: 1 / -1; justify-content: flex-end; }
.integration-form { gap: 1.15rem; align-items: start; margin-top: 0; padding: 1.5rem; border-top: 1px solid var(--color-border); }
.integration-form > .record-form-grid__wide { grid-column: 1 / -1; }
.integration-form > label.record-form-grid__wide { grid-column: span 2; }
.integration-form .integration-scope-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: .75rem; }
.integration-form .integration-scope-grid label { display: flex; min-height: 5.35rem; align-items: flex-start; gap: .6rem; padding: .85rem 1rem; }
.integration-form .integration-scope-grid input { flex: 0 0 auto; margin-top: .15rem; }
.integration-form .integration-scope-grid span { min-width: 0; }
.integration-form .integration-scope-grid .permission-description { max-width: none; line-height: 1.45; }
.user-create-form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.15rem 1.25rem; align-items: start; margin-top: 0; padding: 1.5rem; }
.user-create-club-selector { display: grid; width: min(100%, 32rem); margin: 0 0 1rem; padding: 1.25rem 1.5rem; }
.user-create-club-selector .field { gap: .5rem; }
.user-create-form__role { grid-column: 1 / -1; }
.user-create-form__role select { width: min(100%, 32rem); }
.user-create-form .form-actions { grid-column: 1 / -1; justify-content: flex-end; margin-top: .15rem; padding-top: .35rem; }
.account-card { width: 100%; max-width: none; }
.account-identity { display: grid; gap: .3rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--color-border); }
.account-identity span { color: var(--color-muted); font-size: .8rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.account-profile-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; margin-top: 1.25rem; }
.account-profile-form > .account-identity, .account-profile-form > .field-help, .account-profile-form > .form-actions { grid-column: 1 / -1; }
.account-profile-form > .field-help { margin: 0; }
.account-profile-form > .form-actions { justify-content: flex-end; }
.account-passkey-list { display: grid; gap: .8rem; margin-top: 1.25rem; }
.account-passkey { display: grid; grid-template-columns: minmax(0, 1fr) minmax(22rem, 30rem); gap: 1.5rem; align-items: start; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-canvas); }
.account-passkey__details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.account-passkey__details div { display: grid; min-width: 0; gap: .3rem; }
.account-passkey__details dt { color: var(--color-muted); font-size: .76rem; font-weight: 750; }
.account-passkey__details dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.account-passkey__delete { gap: .75rem; }
.account-passkey__delete .confirmation-check { margin: 0; }
.account-password-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; margin-top: 1.25rem; }
.account-password-form > .field-help, .account-password-form > .form-actions { grid-column: 1; }
.account-password-form > .field-help { margin: 0; }
.account-password-form > .form-actions { justify-content: flex-end; }
.administrative-password-form { margin-top: 1rem; }
.administrative-password-fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.administrative-password-fields > .field-help { margin: 0; }
.access-scope-switcher { margin-bottom: 1rem; }
.global-system-access { display: grid; min-width: 20rem; gap: .3rem; white-space: normal; }
.global-system-access > div { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.global-system-access small { max-width: 34rem; color: var(--color-muted); line-height: 1.4; }
.global-user-club-summary { display: grid; min-width: 20rem; gap: .3rem; white-space: normal; }
.global-user-club-summary__heading, .global-user-club-summary__roles { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; }
.global-user-club-summary__preview { overflow: hidden; color: var(--color-muted); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.global-user-club-summary__preview small, .global-user-club-summary__roles { color: var(--color-muted); font-size: .76rem; }
.global-user-club-summary__preview small { color: var(--color-brand-strong); font-weight: 750; }
.inline-record-form > label, .record-form-grid > label, .record-form > label:not(.confirmation-check) { display: grid; gap: .5rem; color: var(--color-ink); font-size: .88rem; font-weight: 700; }
.inline-record-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.record-form-grid input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.record-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.inline-record-form select, .record-form-grid select, .record-form select,
.inline-record-form textarea, .record-form-grid textarea, .record-form textarea {
    width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd;
    border-radius: var(--radius-small); color: var(--color-ink); background: #fbfcfb;
}
.inline-record-form textarea, .record-form-grid textarea, .record-form textarea { min-height: 7rem; resize: vertical; }
.club-create-form { width: 100%; max-width: none; }
.club-create-sections { display: grid; gap: 1rem; }
.club-create-section { min-width: 0; padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: #fbfcfb; }
.club-create-section legend { padding: 0 .45rem; color: var(--color-brand-strong); font-size: .95rem; font-weight: 800; }
.club-create-section__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.15rem; align-items: start; }
.club-create-section__grid--address { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.club-create-field--span-two { grid-column: span 2; }
.club-create-field--city { grid-column: span 2; }
.club-create-field--wide { grid-column: 1 / -1; }
.club-create-form > .form-actions, .club-profile-form > .form-actions { padding-top: 1rem; border-top: 1px solid var(--color-border); }
.club-logo-editor { display: grid; gap: 1rem; }
.club-logo-upload-form { display: grid; gap: .75rem; }
.club-logo-upload-form > .form-actions { margin-top: 0; }
.club-logo-editor > .archive-confirmation { justify-self: end; }
.member-create-form { width: 100%; max-width: none; }
.member-create-sections { display: grid; gap: 1rem; }
.member-create-section { min-width: 0; padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: #fbfcfb; }
.member-create-section legend { padding: 0 .45rem; color: var(--color-brand-strong); font-size: .95rem; font-weight: 800; }
.member-create-section__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.15rem; align-items: start; }
.member-create-section__grid--membership { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.member-create-section__grid--contact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.member-create-address-meta { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(8rem, .75fr) minmax(12rem, 1.75fr) minmax(7rem, .6fr); gap: 1rem 1.15rem; align-items: start; }
.member-create-form > .form-actions { padding-top: 1rem; border-top: 1px solid var(--color-border); }
.password-field-control { position: relative; display: block; }
.password-field-control > input { padding-right: 7.2rem !important; }
.password-visibility-toggle { position: absolute; top: 50%; right: .1rem; display: inline-flex; min-height: 2.15rem; padding: .35rem .55rem; align-items: center; gap: .35rem; border: 0; border-radius: .55rem; color: var(--color-brand-strong); background: var(--color-brand-soft); font: inherit; font-size: .78rem; font-weight: 750; cursor: pointer; transform: translateY(-50%); }
.password-visibility-toggle:hover { background: #d8ebe0; }
.password-visibility-toggle:focus-visible { outline: 3px solid color-mix(in srgb, var(--color-brand) 28%, transparent); outline-offset: 1px; }
.password-visibility-toggle svg { width: 1.05rem; height: 1.05rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.user-contact-members { width: min(32rem, calc(100vw - 2rem)); white-space: normal; }
.user-contact-members header > div { min-width: 0; overflow-wrap: anywhere; }
.user-contact-members header .button { flex-shrink: 0; }
.user-contact-members__list { margin: 0; }
.user-contact-members__list li { padding: 0; }
.user-contact-members__list a { display: block; width: 100%; padding: .85rem; overflow-wrap: anywhere; }
.user-contact-members__list li:hover { background: var(--color-brand-soft); }
.inline-status-form { display: inline; margin: 0; }
.inline-status-form .status-pill { cursor: pointer; font: inherit; }
.member-list-table:not(.member-list-table--selectable) td:nth-child(3) .status-pill,
.member-list-table--selectable td:nth-child(4) .status-pill { font-weight: 500; }
.record-form-grid__wide { grid-column: span 3; }
.license-catalog-form { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; }
.license-catalog-form > .field--wide, .license-catalog-form > .form-actions { grid-column: 1 / -1; }
.license-catalog-form > .form-actions { justify-content: flex-end; }
.table-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.data-table .table-actions { flex-wrap: nowrap; }
.table-editor-row > td { padding: 0 1rem 1rem; background: #fbfcfb; }
.table-editor-row .record-form-grid { margin-top: 0; }
.table-linked-editor { margin-top: 1rem; }
.page-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.record-form-grid fieldset { grid-column: 1 / -1; min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.record-form-grid legend { padding: 0 .35rem; font-weight: 700; }
.permission-all-toggle { display: inline-flex !important; align-items: center; gap: .5rem; margin: .2rem 0 .3rem; cursor: pointer; }
.permission-all-toggle input { flex: 0 0 auto; width: 1rem; height: 1rem; margin: 0; }
.permission-group-toggle { display: inline-flex; align-items: center; gap: .45rem; cursor: pointer; }
.permission-group-toggle input { width: 1rem; height: 1rem; margin: 0; }
.contact-editor-base { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; align-items: start; }
.contact-editor-base > .field { display: grid; gap: .5rem; color: var(--color-ink); font-size: .88rem; font-weight: 700; }
.contact-editor-base__email, .contact-editor-base__phone, .contact-editor-base__address, .contact-editor-base__address-extra { grid-column: span 2; }
.contact-editor-base__city { grid-column: span 2; }
.member-contact-edit-form > .form-actions { grid-column: 1 / -1; justify-content: flex-end; margin-top: .2rem; }
.additional-contacts-editor > .field-help { margin: 0 0 .75rem; }
.additional-contacts-editor [data-additional-contact-list] { display: grid; gap: .75rem; margin-bottom: .75rem; }
.additional-contact-row { display: grid; grid-template-columns: minmax(7rem, .8fr) minmax(8rem, 1fr) minmax(8rem, 1fr) minmax(10rem, 1.25fr) auto; gap: .65rem; align-items: end; padding: .8rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fbfcfb; }
.additional-contact-row .field { display: grid; gap: .45rem; font-size: .88rem; font-weight: 700; }
.additional-contact-row__email-result { grid-column: 4; min-width: 0; }
.additional-contact-row__email-result:empty,
.additional-contact-row__email-result:has(> .email-reachability:empty) { display: none; }
.additional-contact-row__roles { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: .55rem 1.25rem; align-items: center; }
.additional-contact-row__roles .checkbox-field { margin-top: 0; }
.additional-contact-row__note { grid-column: 1 / -1; }
.additional-contact-row__note textarea { min-height: 3rem; height: 3rem; padding-block: .65rem; }
.additional-contact-row__remove { min-height: var(--control-height-small); white-space: nowrap; }
.additional-contact-summary + .additional-contact-summary { margin-top: 1rem; padding-top: .25rem; border-top: 1px solid var(--color-border); }
.form-subsection { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.form-subsection legend { padding: 0 .35rem; font-weight: 700; }
.portable-backup-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; margin-top: .75rem; }
.backup-system-section { margin-top: 1rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.backup-system-section__heading { margin-bottom: 1rem; }
.backup-system-section__heading p { margin-bottom: 0; color: var(--color-muted); }
.backup-system-section .detail-grid { margin-top: 1rem; }
.backup-maintenance-action { display: grid; gap: .65rem; margin-top: .35rem; padding-top: .85rem; border-top: 1px solid var(--color-border); }
.backup-maintenance-action .field-help, .backup-maintenance-action .status-pill { width: fit-content; margin: 0; }
.backup-maintenance-action .button { width: fit-content; }
.checkbox-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: .65rem 1rem; margin: .8rem 0 1rem; }
.checkbox-grid--single-column { grid-template-columns: minmax(0, 1fr); }
.checkbox-grid label { display: block; padding: .65rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fbfcfb; }
.club-sports-form { max-width: none; }
.sport-edit-form > .content-card + .content-card { margin-top: 1rem; }
.sport-edit-summary .record-form-grid { margin-top: 0; padding-top: 0; border-top: 0; }
.club-sport-summary { display: flex; flex-wrap: wrap; gap: .55rem; margin: .8rem 0 1rem; padding: 0; list-style: none; }
.club-sport-summary__item { display: inline-flex; min-height: 2.4rem; align-items: center; gap: .5rem; padding: .45rem .7rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fbfcfb; }
.club-sport-summary__item--primary { border-color: #a9cfb4; background: #edf7f0; }
.club-sport-summary__item code { color: var(--color-muted); }
.club-sport-summary-empty { margin: .8rem 0 1rem; }
.sport-catalog-filters { display: grid; grid-template-columns: minmax(18rem, 2fr) minmax(12rem, 1fr) auto; align-items: end; gap: .8rem; margin-bottom: 1rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fbfcfb; }
.sport-catalog-filters .field { min-width: 0; margin: 0; }
.sport-catalog-filters input, .sport-catalog-filters select { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); color: var(--color-ink); background: #fbfcfb; }
.sport-catalog-filters__count { min-width: 8rem; margin: 0; padding-bottom: .8rem; color: var(--color-muted); font-size: .85rem; font-weight: 700; text-align: right; }
.sport-catalog-filter-empty { margin-top: 1rem; }
.club-sports-primary { display: grid; grid-template-columns: minmax(16rem, 32rem) auto; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; padding-bottom: 1.15rem; border-bottom: 1px solid var(--color-border); }
.club-sports-primary .field { min-width: 0; margin: 0; }
.club-sports-primary .button { min-height: var(--control-height); }
.primary-sport-combobox { position: relative; display: block; }
.primary-sport-combobox__menu { position: absolute; z-index: 30; top: calc(100% + .3rem); right: 0; left: 0; display: grid; max-height: 20rem; overflow-y: auto; padding: .35rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fff; box-shadow: 0 12px 30px rgba(35, 55, 43, .16); }
.primary-sport-combobox__menu[hidden] { display: none; }
.primary-sport-combobox__option { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 0; border-radius: calc(var(--radius-small) - 2px); color: var(--color-ink); background: transparent; cursor: pointer; font: inherit; font-weight: 650; text-align: left; }
.primary-sport-combobox__option:hover, .primary-sport-combobox__option.is-active { outline: none; background: var(--color-brand-soft); color: var(--color-brand-strong); }
.primary-sport-combobox__option[hidden] { display: none; }
.club-sport-list .bulk-select-column { width: 3.25rem; }
.club-sport-list td { vertical-align: middle; }
.club-sport-list tr:has(input[type="checkbox"]:checked) td { background: #edf7f0; }
.selection-fieldset { min-width: 0; margin-top: 1rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.selection-fieldset legend { padding: 0 .35rem; font-weight: 700; }
.inline-record-form select, .record-form-grid select { width: 100%; min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.preserve-lines { white-space: pre-wrap; }
.record-form { display: flex; flex-wrap: wrap; gap: .75rem; align-items: end; margin-top: 1rem; }
.document-category-form, .document-upload-form { gap: 1.15rem 1.25rem; align-items: start; margin-top: 0; padding: 1.5rem; border-top: 1px solid var(--color-border); }
.document-category-form { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.document-upload-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.document-list-table { table-layout: fixed; }
.document-list-table__name { width: 32%; }
.document-list-table__description { width: 48%; }
.document-list-table__date { width: 20%; }
.document-list-table--managed .document-list-table__name { width: 29%; }
.document-list-table--managed .document-list-table__description { width: 40%; }
.document-list-table--managed .document-list-table__date { width: 20%; }
.document-list-table__actions { width: 11%; }
.document-list-table td { overflow-wrap: anywhere; }
.document-category-form > fieldset { padding: 1.15rem; background: #fbfcfb; }
.document-category-form .field-help { max-width: 48rem; margin: 0 0 .9rem; }
.document-role-grid { grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); margin: 0; }
.document-role-grid label { display: flex; min-height: var(--control-height); align-items: center; gap: .6rem; background: var(--color-surface); }
.document-role-grid input { flex: 0 0 auto; width: 1rem; height: 1rem; margin: 0; }
.document-form__wide { grid-column: 1 / -1; }
.document-file-field { padding: 1rem; border: 1px dashed #aebeb2; border-radius: var(--radius-small); background: #fbfcfb; }
.document-file-field input[type="file"] { padding: .35rem; border-style: solid; background: var(--color-surface); cursor: pointer; }
.document-file-field input[type="file"]::file-selector-button { min-height: 2.25rem; margin-right: .75rem; padding: .4rem .75rem; border: 0; border-radius: calc(var(--radius-small) - 2px); color: var(--color-brand-strong); background: var(--color-brand-soft); font: inherit; font-weight: 750; cursor: pointer; }
.document-file-field small { color: var(--color-muted); font-size: .8rem; font-weight: 500; }
.document-file-summary { display: grid; gap: .3rem; padding: .85rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: #fbfcfb; }
.document-file-summary span { color: var(--color-muted); font-size: .8rem; font-weight: 750; }
.document-file-summary strong { overflow-wrap: anywhere; }
.document-category-form > .form-actions, .document-upload-form > .form-actions { margin-top: .15rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.parent-bulk-form { display: grid; width: 100%; gap: .9rem; margin-top: 1rem; }
.parent-bulk-filters { display: grid; grid-template-columns: minmax(15rem, 2fr) minmax(10rem, 1fr) auto; gap: .8rem; align-items: end; }
.parent-bulk-table { width: 100%; }
.record-form .field--wide { flex: 1 1 100%; }
.record-form textarea { min-height: 7rem; }
.member-notes { display: grid; gap: .75rem; }
.member-note { padding: .85rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
.member-note p { white-space: pre-wrap; }
.member-photo { display: block; width: min(100%, 18rem); aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--radius-small); background: #eef2ee; }
.member-photo-card { align-content: start; }
.member-photo-card--tall { grid-row: span 2; }
.inline-create-panel { margin-top: 1rem; }
.inline-create-panel > summary { display: flex; width: fit-content; margin-inline-start: auto; list-style: none; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.training-history-button { margin-inline-start: auto; }

@media (min-width: 561px) and (max-width: 850px) {
    .billing-settings-grid, .billing-supplier-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .billing-supplier-grid > label { grid-column: auto; }
}
@media (max-width: 850px) {
    .auth-panel { grid-template-columns: 1fr; }
    .auth-intro { min-height: 18rem; }
    .auth-intro__copy { margin: 3rem 0 1rem; }
    .auth-intro h1 { font-size: 3rem; }
    .auth-card__tools { margin-bottom: 2rem; }
    .auth-panel.auth-panel--login { min-height: 0; }
    .auth-container:has(> .auth-panel--login) { align-items: start; padding-top: 0; }
    .auth-panel--login .auth-intro { min-height: 0; padding: 1.5rem 2rem; }
    .auth-panel--login .auth-intro__copy,
    .auth-panel--login .security-note { display: none; }
    .auth-panel--login .auth-card__heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.5rem; }
    .auth-panel--login .auth-card__heading h2 { order: -1; margin: 0; font-size: clamp(1.2rem, 4.5vw, 1.75rem); }
    .auth-panel--login .auth-card__tools { flex-shrink: 0; margin: 0; }
    .auth-panel--login .language-picker { margin: 0; }
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .detail-grid { grid-template-columns: 1fr; }
    .member-photo-card--tall { grid-row: auto; }
    .user-create-form { grid-template-columns: 1fr; }
    .account-profile-form, .account-password-form { grid-template-columns: 1fr; }
    .account-passkey { grid-template-columns: 1fr; }
}

@media (min-width: 1101px) {
    html { scroll-padding-top: calc(var(--sticky-topbar-height, 7rem) + 1rem); }
    .app-shell > .topbar { position: sticky; top: 0; z-index: 200; background: rgba(255, 255, 255, .9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 4px 16px rgba(35, 55, 43, .06); transition: top .24s ease; }
    .app-shell > .topbar.topbar--compact { top: calc(-1 * var(--topbar-hidden-height, 0px)); }
    .post-result { top: calc(var(--sticky-topbar-height, 7rem) + 1rem); transition: top .24s ease; }
}

@media (max-width: 1100px) {
    .user-access-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
    body { overflow-x: hidden; }
    .auth-container { padding: 0; }
    .auth-panel { min-height: 100vh; border: 0; border-radius: 0; }
    .auth-intro { min-height: 15rem; padding: 1.5rem; }
    .auth-intro__copy { margin: 2rem 0 0; }
    .auth-intro h1 { font-size: 2.35rem; }
    .security-note { display: none; }
    .auth-card { padding: 2rem 1.5rem; }
    .form-actions { width: 100%; align-items: stretch; flex-direction: column-reverse; gap: .55rem; }
    .form-actions > .button, .form-actions > button, .form-actions > a { width: 100%; }
    .account-passkey__details { grid-template-columns: 1fr; }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
    .content-grid { grid-template-columns: 1fr; }
    .metric-card { min-height: 7.5rem; padding: 1rem; }
    .metric-card strong { font-size: 2rem; }
    .club-card { grid-template-columns: auto 1fr; }
    .club-card .button { grid-column: 1 / -1; }
    .topbar { padding: .75rem 1rem 0; }
    .topbar__main { min-height: 0; align-items: stretch; flex-direction: column; gap: .7rem; }
    .topbar__context { display: grid; width: 100%; grid-template-columns: 1fr; gap: .65rem; }
    .topbar__tools { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) auto auto; gap: .5rem; }
    .topbar__tools > .language-picker, .topbar__tools > .language-picker select { width: 100%; min-width: 0; }
    .topbar__tools > .button, .topbar__tools > form > .button { min-height: var(--control-height-small); white-space: nowrap; }
    .topbar__tools > form { min-width: 0; }
    .topbar__tools > .topbar-maintenance-form { grid-column: 1 / -1; grid-row: 2; }
    .topbar__tools > .topbar-maintenance-form > .button { width: 100%; }
    .topbar-club { width: 100%; max-width: 100%; }
    .topbar-club__name { max-width: calc(100vw - 5rem); }
    .topbar-club-switcher { width: 100%; min-width: 0; }
    .topbar-club-switcher__options { width: 100%; max-width: calc(100vw - 2rem); }
    .topbar-navigation { width: calc(100vw - 2rem); min-height: 2.8rem; padding-bottom: .15rem; scroll-snap-type: x proximity; }
    .topbar-home, .topbar-back, .topbar-navigation__item { scroll-snap-align: start; }
    .page-container { width: calc(100% - 2rem); padding: 1.25rem 0 3rem; }
    .page-heading { gap: 1rem; margin-bottom: 1.25rem; }
    .page-heading h1 { overflow-wrap: anywhere; font-size: clamp(1.85rem, 10vw, 2.35rem); }
    .page-heading__actions, .page-actions { display: flex; width: 100%; flex-wrap: wrap; justify-content: flex-start; gap: .55rem; }
    .page-heading__actions > .button, .page-actions > .button { width: auto; max-width: 100%; }
    .user-access-toolbar { align-items: stretch; flex-direction: column; }
    .user-access-toolbar > .page-actions { margin-inline-start: 0; }
    .content-card { padding: 1rem; }
    .content-card h2, .collapsible-section__heading h2 { min-width: 0; overflow-wrap: anywhere; }
    .dashboard-calendar__heading { align-items: stretch; flex-direction: column; }
    .period-switcher { display: grid; width: 100%; grid-template-columns: repeat(3, 1fr); align-self: stretch; }
    .period-switcher.access-scope-switcher { grid-template-columns: repeat(2, 1fr); }
    .period-switcher a { text-align: center; }
    .dashboard-calendar { display: grid; grid-template-columns: 1fr; gap: .65rem; overflow: visible; border: 0; }
    .calendar-week { display: grid; min-width: 0; grid-template-columns: 1fr; gap: .65rem; }
    .calendar-day { min-height: 0; grid-row: auto; grid-column: 1; padding: .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
    .calendar-day.calendar-day--empty { display: none; }
    .calendar-day > header { min-height: 0; margin-bottom: .7rem; }
    .calendar-event { padding: .6rem; font-size: .78rem; }
    .calendar-event strong, .calendar-event small { overflow: visible; text-overflow: clip; white-space: normal; }
    .calendar-day__competition-space, .calendar-week__competition-layer { display: none; }
    .calendar-event--competition-mobile { display: grid; }
    .calendar-event--competition-span { display: none; }
    .installer-container { width: calc(100% - 1rem); padding: 1.5rem 0; }
    .installer-heading { padding: 0 .5rem; }
    .installer-heading .brand { margin-bottom: 1rem; }
    .installer-steps { grid-template-columns: 1fr; }
    .installer-fields--two { grid-template-columns: 1fr; }
    .installer-fields--two > span:empty { display: none; }
    .requirement-list li { grid-template-columns: auto 1fr; }
    .requirement-list li > small { grid-column: 2; }
    .installer-success { grid-template-columns: 1fr; }
    .member-filters, .parent-bulk-filters, .detail-grid, .coach-assignment-form, .inline-record-form, .record-form-grid, .payment-charge__summary,
    .detail-grid .record-form-grid, .detail-grid .inline-record-form, .detail-grid .inline-record-form--three, .portable-backup-fields, .additional-contact-row { grid-template-columns: 1fr; }
    .contact-editor-base { grid-template-columns: 1fr; }
    .coach-profile-filters { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    .coach-profile-filters label { display: grid; grid-template-columns: minmax(0, 35%) minmax(0, 1fr); align-items: center; }
    .coach-profile-filters input, .coach-profile-filters .button { width: 100%; }
    .contact-editor-base__email, .contact-editor-base__phone, .contact-editor-base__address, .contact-editor-base__address-extra, .contact-editor-base__city { grid-column: auto; }
    .additional-contact-row__email-result, .additional-contact-row__note { grid-column: auto; }
    .additional-contact-row__remove { align-self: flex-start; }
    .user-access-filters__actions, .member-list-filters__actions { display: flex; flex-wrap: wrap; gap: .55rem; }
    .user-access-filters__actions .button, .member-list-filters__actions .button { width: auto; min-width: 0; }
    :is(.member-filters, .parent-bulk-filters, .sport-catalog-filters, .filter-bar, .noticeboard-audience-filters) .field { grid-template-columns: minmax(0, 35%) minmax(0, 1fr); align-items: center; gap: .65rem; }
    .member-list-filters .field:has([data-member-search]) { grid-template-columns: minmax(0, 1fr); }
    :is(.member-filters, .parent-bulk-filters, .sport-catalog-filters, .filter-bar, .noticeboard-audience-filters, .coach-profile-filters) :is(input, select) { min-width: 0; max-width: 100%; }
    .record-form { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    .document-category-form, .document-upload-form { grid-template-columns: minmax(0, 1fr); padding: 1rem; }
    .document-form__wide { grid-column: auto; }
    .record-form-grid__wide, .system-mail-grid__credential, .system-mail-grid > .system-mail-grid__password-clear { grid-column: auto; }
    .billing-settings-grid, .billing-supplier-grid { grid-template-rows: none; }
    .billing-settings-grid > label, .billing-supplier-grid > label { grid-row: auto; grid-template-rows: none; }
    .billing-supplier-grid > label { grid-column: auto; }
    .integration-form > label.record-form-grid__wide { grid-column: auto; }
    .integration-form .integration-scope-grid { grid-template-columns: minmax(0, 1fr); }
    .integration-form .integration-scope-grid label { min-height: 0; }
    .record-form-grid fieldset, .selection-fieldset { padding: .75rem; }
    .checkbox-grid, .bulk-member-grid, .training-group-grid { grid-template-columns: minmax(0, 1fr); }
    .club-sports-primary { grid-template-columns: minmax(0, 1fr); }
    .club-sports-primary .button { width: 100%; }
    .sport-catalog-filters { grid-template-columns: minmax(0, 1fr); }
    .sport-catalog-filters__count { padding: 0; text-align: left; }
    .bulk-selection-actions { align-items: stretch; flex-direction: column; }
    .bulk-selection-actions > .button { width: 100%; }
    .bulk-selection-count { margin-inline-start: 0; text-align: center; }
    .detail-list div { grid-template-columns: 1fr; gap: .3rem; }
    .record-list li, .record-list li.record-list__editable { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; gap: .65rem; }
    .record-list li.record-list__selectable { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
    .record-list__selectable > .button, .record-list__selectable > a.button { grid-column: 1 / -1; }
    .record-list li > .button, .record-list li > a.button { width: 100%; }
    .record-list__editable > .archive-confirmation { grid-column: 1; grid-row: auto; }
    .record-inline-editor > summary { grid-column: 1; grid-row: auto; }
    .record-inline-editor > .inline-record-form { grid-column: 1; grid-row: auto; }
    .archive-confirmation { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr) auto; white-space: normal; }
    .archive-confirmation .confirmation-check { min-width: 0; }
    .panel-actions, .record-actions { display: grid; width: 100%; grid-template-columns: 1fr; }
    .panel-actions > .button, .record-actions > .button, .record-actions > a { width: 100%; }
    .permission-form { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
    .permission-form select, .permission-form .button { width: 100%; }
    .section-heading, .system-update-card__heading { align-items: stretch; flex-direction: column; }
    .migration-list li { grid-template-columns: 1fr; gap: .35rem; }
    .system-version-grid { grid-template-columns: 1fr; }
    .page-heading, .danger-zone { align-items: stretch; flex-direction: column; }
    .danger-zone:not(form) { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
    .danger-zone:not(form) > form { padding: 1rem 0 0; border-top: 1px solid var(--color-danger-border); border-left: 0; }
    .danger-zone form, .danger-zone .button { width: 100%; }
    .pagination-size { justify-content: flex-start; }
    .pagination-size label { width: 100%; justify-content: space-between; }
    .pagination { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; padding-inline: 0; }
    .pagination > .button { width: 100%; min-width: 0; min-height: var(--control-height-small); padding-inline: .4rem; }
    .pagination__pages { grid-column: 1 / -1; }
    .pagination__page { min-width: 2.75rem; min-height: 2.75rem; }
    .table-scroll { max-width: 100%; padding-bottom: .25rem; scrollbar-gutter: auto; }
    .smart-import-pagination { grid-template-columns: 1fr; }
    .smart-import-pagination .pagination-size,
    .smart-import-pagination .pagination-summary,
    .smart-import-pagination .pagination { grid-column: 1; }
    .smart-import-template-picker .inline-form { grid-template-columns: 1fr; }
    .data-table { min-width: max-content; }
    .data-table th, .data-table td { padding: .65rem .75rem; }
    .attendance-table { min-width: 100%; }
    .attendance-table thead { display: none; }
    .attendance-table tbody, .attendance-table tr, .attendance-table td { display: block; width: 100%; }
    .attendance-table tr { margin-bottom: .75rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-small); }
    .attendance-table td { border-bottom: 0; }
    .attendance-table td + td { padding-top: .25rem; }
    .attendance-table td::before { display: block; margin-bottom: .25rem; color: var(--color-muted); content: attr(data-label); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
    .attendance-note-input { width: 100%; }
    .post-result { top: auto; right: 1rem; bottom: 1rem; left: 1rem; max-width: none; }
    input:not([type="checkbox"]):not([type="radio"]), select, textarea { max-width: 100%; font-size: 16px; }
    input[type="file"] { width: 100%; }
    .empty-state { padding: 1.25rem; }
}
.confirmation-check {
    display: flex;
    gap: .6rem;
    align-items: flex-start;
    margin-bottom: 1rem;
}

.archive-confirmation {
    display: inline-flex;
    min-width: 0;
    padding: .35rem .45rem;
    border: 1px solid var(--color-border, #d9dee7);
    border-radius: .5rem;
    background: var(--color-surface-muted, #f7f8fa);
    gap: .45rem;
    align-items: center;
    white-space: nowrap;
}

.confirmation-check--compact {
    margin-bottom: 0;
    font-size: .85rem;
    align-items: center;
    gap: .35rem;
}

.bulk-select-column { width: 2.75rem; text-align: center !important; }
.bulk-select-column input { margin: 0; }
.bulk-list-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: .75rem;
    padding-top: .85rem;
}
.bulk-list-actions .confirmation-check { margin: 0; }
.member-list-card > .bulk-list-actions { margin: 0; padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); background: #fbfcfb; }
.user-access-bulk-actions .permission-description { margin-right: auto; }
.user-access-bulk-actions { flex-wrap: wrap; }
.user-access-bulk-actions > .user-account-bulk-actions { flex: 0 0 100%; width: 100%; padding: 1rem 0 0; }
.payment-overview-actions {
    display: grid;
    justify-items: end;
    gap: .75rem;
    padding-top: 1rem;
}
.payment-overview-primary-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .75rem; }
.content-card .record-actions { justify-content: flex-end; }
.payment-overview-actions > .bulk-list-actions { width: 100%; padding-top: .75rem; border-top: 1px solid var(--color-border); }

@media (max-width: 42rem) {
    .bulk-list-actions { align-items: stretch; flex-direction: column; }
    .bulk-list-actions .button { width: 100%; }
    .payment-overview-actions { justify-items: stretch; }
    .payment-overview-primary-actions { align-items: stretch; flex-direction: column; }
    .payment-overview-primary-actions > .button { width: 100%; }
    .payment-overview-actions > .bulk-list-actions { width: 100%; margin-left: 0; }
    .member-bulk-actions { grid-template-columns: 1fr; padding: 1rem; }
    .member-bulk-actions--inset { padding: 1rem 0 0; }
    .member-bulk-action { grid-template-columns: 1fr; align-items: stretch; }
    .member-bulk-action .button { width: 100%; justify-self: stretch; }
}

.selection-list { display: grid; gap: .5rem; margin: 0; padding: .75rem; border: 1px solid var(--color-border); border-radius: .75rem; }
.selection-list legend { padding: 0 .35rem; font-weight: 700; }
.selection-list__item { display: flex; align-items: center; gap: .65rem; min-height: 2.5rem; padding: .45rem .65rem; border-radius: .55rem; background: var(--color-canvas); cursor: pointer; }
.selection-list__item span { display: grid; gap: .1rem; }
.selection-list__item small { color: var(--color-danger); }
.content-card--danger-accent { border-color: var(--color-danger-border); border-top: 3px solid var(--color-danger); background: var(--color-danger-soft); }
.backup-overview .content-card, .backup-system-section .content-card { display: flex; flex-direction: column; }
.backup-overview .content-card > .stacked-form, .backup-system-section .content-card > .stacked-form { display: flex; flex: 1; flex-direction: column; }
.backup-overview .content-card > .stacked-form > .form-actions, .backup-system-section .content-card > .stacked-form > .form-actions { margin-top: auto; padding-top: 1rem; }
.backup-system-section .backup-maintenance-action { margin-top: auto; }
.backup-all-form, .backup-disaster-recovery { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.backup-disaster-recovery summary { cursor: pointer; color: var(--color-danger); font-weight: 750; }
.backup-disaster-recovery[open] summary { margin-bottom: 1rem; }
.panel-actions--split { justify-content: space-between; }
.administration-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr)); gap: 1rem; }
.administration-priority { margin-bottom: 2rem; }
.administration-groups { display: grid; gap: 2.25rem; }
.administration-section { min-width: 0; padding-top: 1.25rem; border-top: 1px solid var(--color-border); }
.administration-section__heading { display: grid; max-width: 48rem; gap: .3rem; margin-bottom: 1rem; }
.administration-section__heading h2, .administration-section__heading p { margin: 0; }
.administration-section__heading h2 { color: var(--color-brand-strong); font-size: 1.35rem; }
.administration-section__heading p { color: var(--color-muted); line-height: 1.5; }
.administration-card { display: grid; min-height: 11rem; align-content: start; gap: .65rem; padding: 1.25rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); color: var(--color-ink); background: var(--color-surface); box-shadow: var(--shadow-card); text-decoration: none; transition: transform .15s, border-color .15s; }
.administration-card:hover { transform: translateY(-2px); border-color: var(--color-brand); }
.administration-card h3, .administration-card p { margin: 0; }
.administration-card p { color: var(--color-muted); line-height: 1.5; }
.administration-card__heading { display: flex; align-items: center; gap: .55rem; }
.administration-card__open { align-self: end; color: var(--color-brand-strong); font-weight: 750; }
.administration-card--full { min-height: 7rem; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
.administration-card--full .administration-card__heading, .administration-card--full p { grid-column: 1; }
.administration-card--full .administration-card__heading { grid-row: 1; }
.administration-card--full p { grid-row: 2; }
.administration-card--full .administration-card__open { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.administration-card--attention { border-color: #edc678; background: #fff8e8; }
.administration-card--attention:hover { border-color: var(--color-warning); }
@media (max-width: 560px) {
    .administration-card--full { grid-template-columns: 1fr; }
    .administration-card--full .administration-card__heading, .administration-card--full p, .administration-card--full .administration-card__open { grid-column: 1; grid-row: auto; }
}

.archive-confirmation > .button { flex: 0 0 auto; }

button:disabled,
.button:disabled {
    cursor: not-allowed;
    opacity: .5;
}
form[aria-busy="true"] { cursor: progress; }
/* Alternate every month, including ranges that contain three months. */
.calendar-day--alternate-month {
    background-color: #fbfcfe;
    background-image: radial-gradient(circle, rgba(49, 92, 140, .13) .7px, transparent .8px);
    background-size: 7px 7px;
}

.club-logo-preview {
    display: block;
    max-width: 12rem;
    max-height: 8rem;
    object-fit: contain;
    margin-bottom: 1rem;
}

.club-logo-preview--placeholder {
    width: 6rem;
    height: 6rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: var(--color-brand-strong);
    background: var(--color-brand-soft);
    font-size: 2rem;
    font-weight: 850;
    line-height: 1;
    text-transform: uppercase;
}

/*
 * These phone overrides must follow the component definitions above.
 * Tablet and desktop presentation intentionally remains unchanged.
 */
@media (max-width: 560px) {
    .dashboard-payment-summary__links { grid-template-columns: 1fr; }

    .archive-confirmation {
        display: grid;
        width: 100%;
        grid-template-columns: minmax(0, 1fr) auto;
        white-space: normal;
    }
}

.selection-card-grid { display: grid; gap: .75rem; margin: 1rem 0; }
.selection-card-grid--single { grid-template-columns: minmax(0, 1fr); }
.selection-card { display: grid; gap: .55rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-canvas); cursor: pointer; }
.selection-card:has(input:checked) { border-color: var(--color-brand); box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand) 18%, transparent); }
.selection-card > span { display: flex; gap: .55rem; align-items: center; }
.selection-card small { color: var(--color-muted); }
.announcement-form-card { max-width: 58rem; }
.announcement-form { display: grid; gap: 1.25rem; }
.announcement-form textarea { min-height: 10rem; }
.announcement-validity { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.announcement-target { min-width: 0; padding: 1.15rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: #fbfcfb; }
.announcement-target legend { padding: 0 .4rem; color: var(--color-brand-strong); font-size: .95rem; font-weight: 800; }
.announcement-target .field-help { margin: 0 0 .75rem; color: var(--color-muted); line-height: 1.5; }
.announcement-club-table { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-small); border-collapse: separate; border-spacing: 0; background: var(--color-surface); }
.announcement-club-table thead th { color: var(--color-brand-strong); background: var(--color-brand-soft); }
.announcement-club-table tbody tr { cursor: pointer; }
.announcement-club-table tbody tr:hover td { background: #f0f6f1; }
.announcement-club-table tbody tr.checkbox-row--selected td { background: #edf7f1; }
.announcement-club-table th:last-child, .announcement-club-table td:last-child { text-align: left; }
.announcement-target input[type="checkbox"] { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; margin: 0; accent-color: var(--color-brand); }
.announcement-form > .panel-actions { margin-top: 0; padding-top: .25rem; }
.email-template-preview { max-height: 15rem; margin: 0; padding: .75rem; overflow: auto; border-radius: .5rem; background: var(--color-surface); font-family: inherit; white-space: pre-wrap; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

@media (max-width: 850px) {
    .club-create-section__grid--address { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .club-create-field--city { grid-column: auto; }
}

@media (max-width: 560px) {
    .announcement-form-card { padding: 1rem; }
    .announcement-validity { grid-template-columns: minmax(0, 1fr); }
    .announcement-target { padding: .85rem; }
    .club-create-section, .member-create-section { padding: .9rem; }
    .club-create-section__grid, .club-create-section__grid--address,
    .member-create-section__grid, .member-create-section__grid--membership,
    .member-create-section__grid--contact { grid-template-columns: minmax(0, 1fr); }
    .club-create-field--span-two, .club-create-field--city, .club-create-field--wide { grid-column: auto; }
    .member-create-address-meta { grid-column: auto; grid-template-columns: minmax(0, 1fr); }
    .password-field-control > input { padding-right: 3.2rem !important; }
    .password-visibility-toggle__label { display: none; }
}
.member-club-check-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem 1.5rem;
    align-items: center;
    margin-bottom: 1rem;
    color: var(--color-muted);
}
.member-club-match-list { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.member-club-match-list small { display: block; margin-top: .12rem; color: var(--color-muted); }
.member-check-issue-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.member-check-issue { position: relative; padding-left: 1rem; line-height: 1.4; }
.member-check-issue::before { position: absolute; top: .48em; left: 0; width: .45rem; height: .45rem; border-radius: 50%; background: var(--color-warning); content: ''; }
.member-check-issue--error::before { background: var(--color-danger); }
.member-check-issue--info::before { background: var(--color-brand); }
.member-check-issue .member-club-match-list { margin-top: .35rem; }

.email-compose-card form { display: grid; gap: 1rem; }
.email-placeholder-strip { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .65rem .75rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-canvas); }
.email-placeholder-strip__label { margin-right: .2rem; color: var(--color-muted); font-weight: 750; }
.email-placeholder { appearance: none; border: 0; border-radius: 999px; padding: .3rem .55rem; color: var(--color-brand-strong); background: var(--color-brand-soft); font: inherit; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; cursor: pointer; }
.email-placeholder:hover, .email-placeholder:focus-visible { box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-brand) 25%, transparent); }
.email-placeholder-help { border-left: 3px solid var(--color-brand-soft); padding: .2rem 0 .2rem .8rem; }
.email-placeholder-help summary { color: var(--color-brand-strong); cursor: pointer; font-weight: 750; }
.email-placeholder-help dl { display: grid; gap: .5rem; margin-bottom: 0; }
.email-placeholder-help dl > div { display: grid; grid-template-columns: minmax(10rem, auto) 1fr; gap: .75rem; }
.email-placeholder-help dt, .email-placeholder-help dd { margin: 0; }
.email-template-save-panel { display: grid; gap: .8rem; padding: .9rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-canvas); }
.email-template-save-options { display: grid; grid-template-columns: minmax(15rem, 1fr) auto; gap: 1rem; align-items: end; }
.email-template-name { margin: 0; }
.email-template-global { max-width: 24rem; margin: 0 0 .8rem; }
.email-template-save-panel > .help-text { margin: 0; }
.email-send-footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .8rem 1.25rem; align-items: end; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.email-private-delivery { grid-column: 1 / -1; margin: 0; color: var(--color-muted); }
.email-send-confirmation { margin: 0; padding: .75rem .85rem; border-radius: var(--radius-small); background: var(--color-brand-soft); }
.email-send-confirmation input { margin-top: .15rem; }
.email-send-actions { margin: 0; }
.email-draft-status { min-width: 9rem; margin-right: auto; color: var(--color-muted); font-size: .82rem; }
.email-draft-status[data-state="saving"] { color: var(--color-muted); }
.email-draft-status[data-state="saved"] { color: var(--color-brand-strong); }
.email-draft-status[data-state="failed"] { color: var(--color-danger); font-weight: 750; }
.email-body-preview { padding: 1rem; border-radius: var(--radius-small); background: var(--color-canvas); overflow-wrap: anywhere; }
.selection-summary { font-weight: 750; color: var(--color-brand-strong); }
.dashboard-medical-email-form__help { margin: 0; padding: 1.25rem 1.5rem; }
.dashboard-medical-email-form__actions { margin: 0; padding: 1rem 1.5rem; border-top: 1px solid var(--color-border); }
.member-read-only-notice { margin-bottom: 1.25rem; }
[data-member-readonly-action][aria-disabled="true"] {
    opacity: .52;
    cursor: not-allowed;
    filter: grayscale(.2);
}
a[data-member-readonly-action][aria-disabled="true"] {
    text-decoration: none;
}
@media (max-width: 760px) {
    .email-template-save-options, .email-send-footer { grid-template-columns: minmax(0, 1fr); align-items: start; }
    .email-template-global { margin: 0; }
    .email-send-actions { width: 100%; }
    .email-draft-status { width: 100%; min-width: 0; }
    .email-placeholder-help dl > div { grid-template-columns: minmax(0, 1fr); gap: .15rem; }
    .dashboard-medical-email-form__help { padding: 1rem; }
    .dashboard-medical-email-form__actions { padding: 1rem; }
    .member-list-card > .pagination-bar, .member-list-card > .bulk-list-actions { padding: 1rem; }
}
.member-performance-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin: 1rem 0;
}

.member-performance-toolbar__form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: .65rem;
}

.member-performance-toolbar__form .field {
    min-width: 12rem;
    margin: 0;
}

.performance-extremes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .75rem;
    margin: .35rem 0 .65rem;
}

.performance-extremes > span {
    display: grid;
    gap: .1rem;
}

.performance-extremes strong {
    font-size: clamp(1.15rem, 2vw, 1.65rem);
}

.member-performance-summary-card {
    min-height: 0;
    align-content: start;
    gap: .35rem;
}

.member-performance-summary-card .group-performance-cell { margin-top: 0; }
.member-performance-summary-card .performance-value strong,
.member-performance-summary-card .performance-change strong { font-size: 1rem; }

.group-performance-matrix {
    width: max-content;
    min-width: 100%;
}

.group-performance-matrix th,
.group-performance-matrix td {
    min-width: 12rem;
    vertical-align: middle;
}

.group-performance-matrix th:first-child,
.group-performance-matrix td:first-child {
    min-width: 13rem;
}

.group-performance-matrix tbody th {
    color: var(--color-ink);
    background: transparent;
    font-size: inherit;
    letter-spacing: normal;
    text-transform: none;
}

.group-performance-cell {
    display: grid;
    gap: .3rem;
    white-space: nowrap;
}

.group-performance-cell__values,
.group-performance-cell__meta {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.group-performance-cell__values > small,
.group-performance-cell__meta > small {
    color: var(--color-text-muted);
}

.performance-value,
.performance-change {
    display: inline-flex;
    align-items: center;
    gap: .15rem;
}

.performance-value svg,
.performance-change svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.performance-value--minimum { color: #9a5b20; }
.performance-value--maximum { color: var(--color-brand); }
.performance-value--range { color: #526b75; }
.performance-value--latest { color: var(--color-ink); }
.performance-change--up { color: #187443; }
.performance-change--down { color: #a54a35; }
.performance-change--stable { color: var(--color-text-muted); }
.performance-change small { color: inherit; }

.performance-value strong,
.performance-change strong {
    color: currentColor;
}

.group-performance-matrix__empty {
    color: var(--color-text-muted);
}

.group-performance-charts {
    margin-top: 1rem;
    border-top: 1px solid var(--color-border);
}

.group-performance-charts > summary {
    width: fit-content;
    padding: .7rem 0;
    color: var(--color-brand-strong);
    cursor: pointer;
    font-weight: 800;
}

.group-performance-charts__list {
    display: grid;
    gap: 1rem;
    margin-top: .75rem;
}

.performance-chart-filters {
    padding: .75rem;
    margin: .75rem 0 0;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-small);
}

.performance-chart-filters legend { font-weight: 800; }
.performance-chart-filters__actions { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .65rem; }
.performance-chart-filters__options { display: flex; flex-wrap: wrap; gap: .4rem; }

.performance-chart-filter {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .35rem .55rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    color: var(--color-ink);
    background: #fff;
    cursor: pointer;
    font-size: .82rem;
}

.performance-chart-filter input { margin: 0; }
.performance-chart-filter i { width: .75rem; height: .2rem; border-radius: 1rem; background: currentColor; }
.performance-chart-filter span { color: var(--color-ink); }
.performance-chart-filter:has(input:not(:checked)) { opacity: .48; }

.group-performance-chart {
    padding: 1rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-small);
    background: #fff;
}

.group-performance-chart header {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    margin-bottom: .5rem;
}

.group-performance-chart h3 { margin: 0; }
.group-performance-chart header small { color: var(--color-text-muted); }
.group-performance-chart__scroll { overflow-x: auto; }

.performance-chart {
    display: block;
    width: 100%;
    min-width: 42rem;
    height: auto;
}

.performance-chart__grid {
    stroke: #dfe7e1;
    stroke-width: 1;
}

.performance-chart__axis-label {
    fill: var(--color-text-muted);
    font-size: 11px;
}

.performance-chart__line {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
}

.performance-chart__point {
    fill: #fff;
    stroke: currentColor;
    stroke-width: 2.4;
}

.performance-chart__series--0 { color: #16764a; }
.performance-chart__series--1 { color: #b45c2d; }
.performance-chart__series--2 { color: #496fc1; }
.performance-chart__series--3 { color: #9a4f91; }
.performance-chart__series--4 { color: #a1831b; }
.performance-chart__series--5 { color: #287d86; }
.performance-chart__series--6 { color: #c14d5f; }
.performance-chart__series--7 { color: #6655ad; }
.performance-chart__series--8 { color: #4f7d2b; }
.performance-chart__series--9 { color: #76513b; }

.table-cell-note {
    display: block;
    margin-top: .15rem;
    color: var(--color-text-muted);
    font-weight: 400;
}

.calendar-day--interactive { cursor: pointer; }
[data-calendar-draggable] { cursor: grab; touch-action: none; user-select: none; }
[data-calendar-draggable]:active { cursor: grabbing; }
.calendar-event.is-calendar-dragging { opacity: .22; pointer-events: none; }
.calendar-drag-ghost {
    position: fixed;
    z-index: 1000;
    margin: 0;
    opacity: .92;
    pointer-events: none;
    cursor: grabbing;
    box-shadow: 0 10px 28px rgba(21, 45, 32, .24);
    transform: rotate(1deg);
}
.calendar-event.is-calendar-saving { opacity: .55; pointer-events: none; }
.calendar-day.is-calendar-drop-target { background: #f7fbf8; box-shadow: inset 0 0 0 1px rgba(25, 116, 76, .32); }
body.is-calendar-dragging { cursor: grabbing; }
.calendar-create-dialog { width: min(32rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: var(--radius-medium); box-shadow: 0 18px 60px rgba(21, 45, 32, .3); }
.calendar-create-dialog::backdrop { background: rgba(18, 30, 23, .42); }
.calendar-create-dialog__content { display: grid; gap: 1rem; padding: 1.25rem; }
.calendar-create-dialog__content h3 { margin: .15rem 0 0; }

@media (max-width: 560px) {
    .calendar-day.calendar-day--interactive, .calendar-day.calendar-day--drop-enabled { display: block; }
    .calendar-create-dialog__content .form-actions { align-items: stretch; flex-direction: column-reverse; }
    .calendar-create-dialog__content .button { width: 100%; }
}
.noticeboard-posts__list { display: grid; gap: 1.25rem; }
.noticeboard-posts__empty { padding: 1.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.noticeboard-post { min-width: 0; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: 0 8px 26px rgba(35, 55, 43, .055); }
.noticeboard-post__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.35rem 1rem; border-bottom: 1px solid #e8eee9; background: linear-gradient(180deg, #fbfcfb, #f7faf8); }
.noticeboard-post__heading { min-width: 0; }
.noticeboard-post__header h3 { margin: 0; font-size: 1.15rem; line-height: 1.35; overflow-wrap: anywhere; }
.noticeboard-post__actions { position: relative; flex: 0 0 auto; }
.noticeboard-post__actions > summary { display: grid; width: 2rem; min-width: 2rem; height: 2rem; padding: 0; place-items: center; cursor: pointer; list-style: none; font-size: 1.2rem; line-height: 1; }
.noticeboard-post__actions > summary::-webkit-details-marker { display: none; }
.noticeboard-post__menu-icon::before { content: "⋮"; }
.noticeboard-post__action-menu { position: absolute; z-index: 5; top: calc(100% + .35rem); right: 0; display: grid; min-width: 8.5rem; gap: .35rem; padding: .45rem; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-surface); box-shadow: 0 10px 28px rgba(25, 45, 33, .16); }
.noticeboard-post__action-menu .button { justify-content: flex-start; padding: .5rem .7rem; font-size: .8rem; }
.noticeboard-post__meta { display: flex; flex-wrap: wrap; gap: .3rem .8rem; align-items: center; margin: .45rem 0 0; color: var(--color-muted); font-size: .78rem; }
.noticeboard-post__meta span { color: #405247; font-weight: 700; }
.noticeboard-post__meta time::before { content: "·"; margin-right: .8rem; color: #9aa79e; }
.noticeboard-post__meta a::before { content: "·"; margin-right: .8rem; color: #9aa79e; text-decoration: none; }
.noticeboard-post:target { border-color: #82ad97; box-shadow: 0 0 0 3px rgba(38, 116, 75, .12), 0 10px 30px rgba(35, 55, 43, .08); }
.noticeboard-post__body { padding: 1.25rem 1.35rem 1.4rem; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.65; }
.noticeboard-post__body > :first-child { margin-top: 0; }
.noticeboard-post__body > :last-child { margin-bottom: 0; }
.noticeboard-post > .noticeboard-poll { margin: 0 1.35rem 1.35rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.noticeboard-posts > .pagination-bar { margin-top: 1rem; }
.noticeboard-posts > .panel-actions { margin-top: 1rem; }
@media (max-width: 560px) {
    .noticeboard-posts__list { gap: 1rem; }
    .noticeboard-post__header, .noticeboard-post__body { padding-right: 1rem; padding-left: 1rem; }
    .noticeboard-post > .noticeboard-poll { margin-right: 1rem; margin-left: 1rem; }
}

.noticeboard-form { display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; }
.noticeboard-delete-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .65rem 1rem; margin-top: .5rem; }
.noticeboard-delete-actions .confirmation-check, .noticeboard-delete-actions .form-actions { margin: 0; }
.noticeboard-access-form { grid-template-columns: minmax(10rem, 1fr) auto; }
@media (max-width: 560px) { .noticeboard-access-form { grid-template-columns: minmax(0, 1fr); } }

.noticeboard-access-form > .checkbox-field { display: flex; align-items: center; gap: .6rem; }
.noticeboard-access-form > .checkbox-field input { flex: 0 0 auto; width: auto; }
.noticeboard-search { grid-template-columns: minmax(0, 1fr) auto; margin-block: 1rem; }

.noticeboard-rich { white-space: normal; overflow-wrap: anywhere; }
.noticeboard-rich img { display: block; max-width: 100%; height: auto; margin-block: .8rem; border-radius: .4rem; }
.noticeboard-rich blockquote { margin-inline: 0; padding: .6rem 1rem; border-left: 3px solid var(--color-border); }
/* The composer uses one writing surface with grouped, application-owned tools. */
.noticeboard-compose-card .noticeboard-form .noticeboard-title-field input:not([type="hidden"]) { min-height: 3.4rem; padding: .65rem 0; border: 0; border-bottom: 1px solid var(--color-border); border-radius: 0; background: transparent; font-size: 1.65rem; font-weight: 700; letter-spacing: -.025em; }
.noticeboard-compose-card .form-actions, .noticeboard-compose-card .panel-actions { display: flex; flex-direction: row; justify-content: flex-end; flex-wrap: wrap; }
.noticeboard-compose-card .form-actions > .button, .noticeboard-compose-card .panel-actions > .button { width: auto; }
.noticeboard-title-field input::placeholder { color: #819087; font-weight: 500; }
.noticeboard-editor-frame { border: 1px solid var(--color-border); border-radius: .75rem; overflow: hidden; background: #fff; }
.noticeboard-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; padding: .6rem; border-bottom: 1px solid var(--color-border); background: #f6f9f7; }
.noticeboard-toolbar-group { display: flex; align-items: center; gap: .15rem; padding-right: .35rem; border-right: 1px solid var(--color-border); }
.noticeboard-tool { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; gap: .4rem; min-width: 2.25rem; min-height: 2.25rem; padding: .4rem; border: 0; border-radius: .4rem; background: transparent; color: #46594e; cursor: pointer; font: inherit; }
.noticeboard-tool svg { flex: 0 0 auto; }
.noticeboard-tool:hover { background: #e5eee8; color: #176b4d; }
.noticeboard-tool[aria-pressed="true"], .noticeboard-tool[aria-expanded="true"] { background: #d9eee3; color: #11573d; box-shadow: inset 0 0 0 1px #b2d3c0; }
.noticeboard-tool:focus-visible { outline: 2px solid var(--color-brand, #176b4d); outline-offset: 2px; }
.noticeboard-tool:disabled { opacity: .35; cursor: default; }
.noticeboard-block-label { margin: 0; }
.noticeboard-toolbar .noticeboard-block-label select { min-height: 2.25rem; width: auto; padding: .35rem 1.65rem .35rem .5rem; border: 0; background-color: transparent; font-size: .85rem; }
.noticeboard-preview-toggle { margin-left: auto; font-size: .8rem; font-weight: 700; }
.noticeboard-editor, .noticeboard-editor-preview { min-height: 19rem; max-height: 40rem; overflow-y: auto; padding: 1.5rem; line-height: 1.75; font-size: 1rem; }
.noticeboard-editor:focus-visible { outline: 0; box-shadow: inset 0 0 0 2px #b2d3c0; }
.noticeboard-editor[data-empty="true"]::before { content: attr(data-placeholder); float: left; height: 0; color: #819087; pointer-events: none; }
.noticeboard-editor p:first-child, .noticeboard-editor-preview h2:first-child { margin-top: 0; }
.noticeboard-editor-panel { padding: 1rem; background: #f6f9f7; border-bottom: 1px solid var(--color-border); }
.noticeboard-editor-panel .field { margin-bottom: .6rem; }
.noticeboard-editor-panel p { margin: .3rem 0 .8rem; font-size: .85rem; }
.noticeboard-file-picker input { background: #fff; }
.noticeboard-editor-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem; padding: .65rem 1rem; border-top: 1px solid #edf1ee; color: #718177; font-size: .75rem; }
.noticeboard-editor-foot [data-editor-status]:empty { display: none; }
.noticeboard-editor-foot [data-editor-status] { color: #405b4c; font-weight: 600; }
.noticeboard-poll-composer { background: #f9fbfa; }
.noticeboard-poll-composer legend { font-weight: 700; }
.noticeboard-poll-composer [data-poll-fields] { margin-top: 1rem; }
.noticeboard-poll-options { display: grid; gap: .5rem; }
.noticeboard-poll-answer { display: flex; align-items: center; gap: .5rem; }
.noticeboard-poll-answer input { min-width: 0; flex: 1; background: #fff; }
.noticeboard-poll-answer .noticeboard-tool { font-size: 1.4rem; }
.noticeboard-poll-composer .panel-actions { margin-block: .75rem 1rem; }
@media (max-width: 560px) {
    .noticeboard-editor, .noticeboard-editor-preview { padding: 1rem; min-height: 16rem; }
    .noticeboard-toolbar { padding: .4rem; gap: .25rem; }
    .noticeboard-tool { min-width: 2.4rem; min-height: 2.4rem; }
    .noticeboard-compose-card .noticeboard-form .noticeboard-title-field input:not([type="hidden"]) { font-size: 1.3rem; }
}
.noticeboard-poll-composer, .noticeboard-poll fieldset { min-width: 0; border: 1px solid var(--color-border); border-radius: .5rem; padding: 1rem; }
.noticeboard-poll { display: block; margin-top: 1.2rem; }
.noticeboard-poll legend { font-weight: 700; overflow-wrap: anywhere; }
.noticeboard-poll-option { display: grid; gap: .3rem; padding-block: .6rem; }
.noticeboard-poll-option progress { width: 100%; height: .6rem; accent-color: var(--color-primary, #2659a7); }
.noticeboard-poll .checkbox-field, .noticeboard-poll-composer .checkbox-field { display: flex; gap: .6rem; align-items: start; }
.noticeboard-poll .checkbox-field input, .noticeboard-poll-composer .checkbox-field input { width: auto; flex: 0 0 auto; margin-top: .25rem; }


.noticeboard-create-audience { min-width: 0; padding: 1rem; border: 1px solid var(--color-border); border-radius: .5rem; }
.noticeboard-create-audience legend { font-weight: 700; }
.noticeboard-audience-filters { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .75rem; align-items: end; margin-block: 1rem; }
.noticeboard-create-audience .checkbox-field input { width: auto; }
.noticeboard-create-audience .pagination { display: flex; flex-wrap: wrap; gap: .4rem; }
@media (max-width: 560px) { .noticeboard-audience-filters { grid-template-columns: minmax(0, 1fr); } }

.noticeboard-contact-form .checkbox-field, .record-form.noticeboard-contact-form > .checkbox-field { display: flex; align-items: start; gap: .65rem; }
.record-form.noticeboard-contact-form { gap: .4rem; }
.record-form.noticeboard-contact-form > .checkbox-field, .noticeboard-contact-form .form-actions { margin-top: 0; }
.noticeboard-contact-form .checkbox-field input { width: auto; flex: 0 0 auto; margin-top: .25rem; }
.noticeboard-contact-form summary { cursor: pointer; padding-block: .5rem; }
.noticeboard-contact-option { margin-block: .7rem; overflow-wrap: anywhere; }

/* Member tags and the nested smart-tag condition editor. */
.tag-rule-group { min-width: 0; margin: 1rem 0; padding: 1rem; border: 1px solid #a8bdb0; border-left: 4px solid #668874; border-radius: var(--radius-small); background: #f0f5f2; }
.tag-rule-group > legend { padding: .3rem .65rem; border: 1px solid #a8bdb0; border-radius: .4rem; color: var(--color-brand-strong); background: var(--color-surface); font-weight: 700; }
.tag-rule-group > .tag-rule-group { margin: 1.5rem 0; border-color: #86aa95; border-left-color: var(--color-brand); background: var(--color-surface); box-shadow: 0 2px 6px rgba(23, 65, 42, .08); }
.tag-rule-group > .tag-rule-group > .tag-rule-group { background: #eaf2ed; }
.tag-rule-group > .tag-rule-group > .tag-rule-group > .tag-rule-group { background: var(--color-surface); }
.tag-rule-group select, .tag-rule-group input { min-height: var(--control-height); padding: .45rem .7rem; border: 1px solid #cbd6cd; border-radius: var(--radius-small); background: #fbfcfb; }
.tag-rule-group select:focus, .tag-rule-group input:focus { border-color: var(--color-brand); box-shadow: 0 0 0 3px var(--color-brand-soft); }
.tag-rule-group > select { max-width: 100%; margin-bottom: .5rem; }
.tag-rule-row { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: .6rem 0; }
.tag-rule-row > select, .tag-rule-row > input { flex: 1 1 9rem; min-width: 0; max-width: 100%; }
.tag-rule-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; padding-top: .75rem; border-top: 1px solid #c2d3c8; }
.member-tag-selection { border: 0; padding: 0; margin: 1rem 0; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
@media (max-width: 600px) { .tag-rule-group { padding: .5rem; } .tag-rule-row { align-items: stretch; } }
@media (min-width: 761px) and (max-width: 1100px) { .member-list-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); } .member-list-filters__actions { grid-column: 1 / -1; } }

.data-table .tag-conditions-cell { min-width: 15rem; max-width: 44rem; white-space: normal; line-height: 1.65; overflow-wrap: anywhere; }

.text-action { border: 0; padding: 0; background: transparent; color: var(--color-primary, #176b4d); font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }

.topbar-role-switcher { margin: 0; max-width: 16rem; }
.topbar-role-switcher select { max-width: 100%; }

/* Keep board selection beside its content; a single board uses the full width. */
.noticeboard-workspace { min-width: 0; }
.noticeboard-mobile-picker { display: none; }
.noticeboard-workspace--split { display: grid; grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.noticeboard-sidebar { min-width: 0; padding: 1rem; }
.noticeboard-navigation { display: flex; flex-direction: column; gap: .4rem; }
.noticeboard-navigation__item { display: flex; align-items: center; justify-content: space-between; gap: .65rem; padding: .7rem .8rem; border-radius: .5rem; overflow-wrap: anywhere; text-decoration: none; }
.noticeboard-navigation__item:hover, .noticeboard-navigation__item.is-current { background: #e2f1e9; }
.noticeboard-navigation__item.is-current { font-weight: 700; box-shadow: inset 3px 0 #1b7150; }
.noticeboard-unread-badge, .noticeboard-post__unread-marker { display: inline-block; flex: 0 0 auto; width: .55rem; height: .55rem; border-radius: 50%; background: #176b4d; }
.noticeboard-post__unread-marker { margin-right: .55rem; vertical-align: .12em; }
.noticeboard-sidebar .pagination-bar { align-items: stretch; gap: .65rem; }
.noticeboard-sidebar .pagination-size { margin-left: auto; }
.noticeboard-sidebar .pagination-size label { flex-wrap: wrap; }
.noticeboard-sidebar .pagination { flex-wrap: wrap; gap: .3rem; }
.noticeboard-sidebar .pagination .button { padding: .35rem .5rem; }
.noticeboard-workspace__content { min-width: 0; }
.noticeboard-workspace__content > .page-heading { margin-top: 0; }
.noticeboard-workspace__content .page-heading { flex-wrap: wrap; gap: 1rem; }
.noticeboard-workspace__content .page-heading .panel-actions { flex-wrap: wrap; }
@media (max-width: 800px) {
    .noticeboard-workspace--split { grid-template-columns: minmax(0, 1fr); }
    .noticeboard-sidebar { display: none; }
    .noticeboard-mobile-picker { display: block; margin: 0; }
}

.noticeboard-member-table th:nth-child(-n + 4),
.noticeboard-member-table td:nth-child(-n + 4) {
    width: 1%;
    padding-inline: .45rem;
    text-align: center;
}
.noticeboard-member-table th:first-child,
.noticeboard-member-table td:first-child { min-width: 2.75rem; }
.noticeboard-member-table thead th { vertical-align: top; }
.noticeboard-member-toggle-heading {
    display: grid;
    justify-items: center;
    gap: .4rem;
    margin: 0;
}
.noticeboard-member-toggle-heading > span { min-height: .9rem; line-height: 1.2; }
.noticeboard-member-table td:nth-child(-n + 4) .checkbox-field {
    justify-content: center;
    margin: 0;
}
.noticeboard-member-table input[type="checkbox"] {
    display: block;
    width: 1.1rem;
    height: 1.1rem;
    margin: 0 auto;
}
.noticeboard-member-emails { overflow-wrap: anywhere; }

[data-excuse-value] { cursor: pointer; position: relative; padding-right: 1.8rem; }
.parent-excuse-checkbox { display: none; position: absolute; right: .4rem; top: .4rem; width: 1rem; height: 1rem; border-radius: .2rem; background: var(--color-primary, #176b48); color: white; }
[data-excuse-value][aria-checked="true"] .parent-excuse-checkbox { display: grid; place-items: center; }
[data-excuse-value][aria-checked="true"] .parent-excuse-checkbox::after { content: '✓'; }
[data-excuse-value][aria-checked="true"] { outline: 2px solid #176b48; outline-offset: -2px; }
[data-excuse-value]:focus-visible { outline: 2px solid #176b48; }

.attendance-status-control { display: inline-flex; align-items: center; gap: .65rem; }
.attendance-excuse-badge { display: inline-block; flex-shrink: 0; padding: .2rem .55rem; border-radius: .35rem; background: #fff1d6; color: #79500d; font-size: .85rem; font-weight: 750; }

@media (min-width: 1101px) {
    .attendance-members-table th:nth-child(1), .attendance-members-table td:nth-child(1),
    .attendance-members-table th:nth-child(2), .attendance-members-table td:nth-child(2) { width: 1%; }
    .attendance-members-table .attendance-note-input { width: 100%; }
}

.dashboard-nominations, .dashboard-excuses { margin-top: 1rem; }
.dashboard-nominations .member-filters { margin-bottom: 1rem; }

.competition-map iframe { display: block; border: 0; border-radius: 12px; width: 100%; }
.competition-map[hidden] { display: none; }
.competition-location { display: inline-flex; align-items: center; gap: .4rem; }
.competition-map-button { display: inline-grid; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; padding: .3rem; border: 0; border-radius: 50%; place-items: center; color: var(--color-primary); background: #e7f4ec; cursor: pointer; text-decoration: none; }
.competition-map-button:hover { background: #d6eadf; }
.competition-map-button svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 2; }
.competition-map-dialog { width: min(58rem, calc(100vw - 2rem)); padding: 0; border: 0; border-radius: var(--radius-medium); box-shadow: 0 18px 60px rgba(21, 45, 32, .3); }
.competition-map-dialog::backdrop { background: rgba(18, 30, 23, .42); }
.competition-map-dialog__content { display: grid; gap: 1rem; padding: 1rem; }
.competition-map-dialog__content header { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.competition-map-dialog__content h2, .competition-map-dialog__content p { margin: 0; }
.competition-map-dialog__content p { margin-top: .25rem; color: var(--color-muted); }
.competition-map-dialog iframe { display: block; width: 100%; height: min(480px, 60dvh); border: 0; border-radius: var(--radius-small); }
.competition-map-dialog__content header > div { min-width: 0; overflow-wrap: anywhere; }
.competition-documents { white-space: nowrap; }
.competition-document-link { display: inline-flex; text-decoration: none; }
.competition-document-icon { position: relative; display: inline-grid; width: 2rem; height: 2.35rem; padding-top: .25rem; border: 1px solid currentColor; border-radius: .25rem; place-items: center; overflow: hidden; color: #52605a; background: #fff; font-size: .6rem; font-weight: 850; line-height: 1; }
.competition-document-icon::before { position: absolute; top: -.05rem; right: -.05rem; width: .55rem; height: .55rem; border-bottom: 1px solid currentColor; border-left: 1px solid currentColor; background: #fff; content: ''; }
.competition-document-icon--pdf { color: #b42318; background: #fff7f6; }
.competition-document-icon--word { color: #175cd3; background: #f5f8ff; }
.competition-document-icon--sheet { color: #067647; background: #f3fcf7; }
.competition-document-icon--image { color: #7a5af8; background: #f8f5ff; }

/* Competition details share a consistent row layout, including upload help. */
.competition-form { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; gap: 1rem; }
.competition-form__half { grid-column: span 2; }
.competition-form__full { grid-column: 1 / -1; }
.competition-form > label, .competition-form__document { min-width: 0; }
.competition-form__document { display: grid; gap: .65rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.competition-form__document > .field { display: grid; gap: .5rem; color: var(--color-ink); font-size: .88rem; font-weight: 700; }
.competition-form__document .field-help { color: var(--color-muted); font-size: .8rem; font-weight: 400; }
.competition-form__document > p { margin: 0; overflow-wrap: anywhere; }
@media (max-width: 900px) {
    .competition-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .competition-form { grid-template-columns: minmax(0, 1fr); }
    .competition-form__half { grid-column: 1 / -1; }
}
/* Mailbox lookup is advisory and never changes the field's validity. */
.email-reachability { display: block; }
.user-email-selection { vertical-align: middle; }
.email-reachability[data-status="verified"] { color: #15803d; }
.email-reachability[data-status="unverified"] { color: #9a6700; }

.member-export-menu { position: relative; }
.member-export-menu > summary { list-style: none; cursor: pointer; gap: .5rem; }
.member-export-menu > summary::-webkit-details-marker { display: none; }
.member-export-menu__arrow { width: .4rem; height: .4rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -.2rem; }
.member-export-menu__options { position: absolute; right: 0; top: calc(100% + .35rem); z-index: 30; min-width: 12rem; padding: .4rem; border: 1px solid var(--color-border); border-radius: .6rem; background: var(--color-surface, #fff); box-shadow: 0 .4rem 1.2rem #0002; }
.member-export-menu__options form { display: grid; gap: .25rem; }
.member-export-menu__options .button { justify-content: flex-start; white-space: nowrap; }

.member-list-presets { display: flex; flex-wrap: wrap; gap: .65rem; align-items: end; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--color-border); }
.member-list-presets .field { flex: 1 1 12rem; }
.member-list-presets > .field-help { flex-basis: 100%; margin: 0; }
.member-list-presets > .field-help:empty { display: none; }

@media (max-width: 560px) {
    .attendance-lock-controls { max-width: none; justify-items: stretch; }
    .attendance-lock-controls .confirmation-check { text-align: left; }
    .attendance-lock-panel > .attendance-lock-controls { padding: 1rem 0 0; border-top: 1px solid var(--color-danger-border); border-left: 0; }
    .attendance-lock-controls .button { width: 100%; }
}

/* Configurable CSV columns use the shared scrolling table on small screens. */
.csv-export-editor input[type="number"] { min-width: 4.5rem; width: 4.5rem; }
.csv-export-editor input:not([type="number"]) { min-width: 11rem; width: 100%; }
.csv-export-editor select { min-width: 13rem; width: 100%; }

.csv-export-form { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 560px) { .csv-export-form > .form-actions { flex-direction: column; } }

html:not(.js) .csv-export-delete [data-confirm-submit] { display: none; }

.csv-export-move-cell { position: relative; width: 3.5rem; }
.csv-export-move { cursor: grab; touch-action: none; user-select: none; }
.csv-export-move:active { cursor: grabbing; }
.csv-export-editor tr.is-dragging { opacity: .45; }
.csv-export-editor tr.is-drop-before > td { box-shadow: inset 0 2px var(--color-brand); }
.csv-export-editor tr.is-drop-after > td { box-shadow: inset 0 -2px var(--color-brand); }

.csv-export-drag-ghost {
    position: fixed;
    z-index: 1000;
    opacity: .65;
    display: grid;
    grid-template-columns: 4.5rem repeat(3, minmax(0, 1fr));
    gap: .75rem;
    padding: .75rem 1rem;
    max-height: min(40vh, 18rem);
    overflow: hidden;
    border: 1px solid var(--color-brand);
    border-radius: var(--radius-medium);
    background: var(--color-surface);
    color: var(--color-ink);
    box-shadow: 0 10px 28px rgba(21, 45, 32, .24);
    pointer-events: none;
    user-select: none;
}
.csv-export-drag-ghost > div { min-width: 0; display: grid; align-content: start; gap: .25rem; }
.csv-export-drag-ghost small { color: var(--color-muted); }
.csv-export-drag-ghost span { font-weight: 600; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 560px) {
    .csv-export-drag-ghost { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: .5rem; }
}

/* Marketplace uses the shared lists, forms and panel actions at every width. */
.marketplace-sections { justify-content: flex-start; margin-bottom: 1rem; }
.marketplace-wide { grid-column: 1 / -1; }
.marketplace-photo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; }
.marketplace-photo-grid a { display: block; min-width: 0; }
.marketplace-photo-grid img { display: block; width: 100%; height: 16rem; object-fit: contain; border-radius: var(--radius-small); background: var(--color-surface); }
#marketplace-listing p, #marketplace-listing dd { overflow-wrap: anywhere; }

.marketplace-table { table-layout: fixed; min-width: 36rem; }
.marketplace-table th:first-child { width: 32%; }
.marketplace-table th:nth-child(2) { width: 48%; }
.marketplace-table th:last-child { width: 20%; }
.marketplace-table td:first-child, .marketplace-table td:nth-child(2) { white-space: normal; overflow-wrap: anywhere; }

/* Thread indentation is capped to keep deep replies readable on phones. */
.marketplace-comment { padding: 1rem 0 1rem .75rem; border-left: 2px solid var(--color-border, #ddd); border-bottom: 1px solid var(--color-border, #ddd); overflow-wrap: anywhere; }
.marketplace-comment--depth-1 { margin-left: 1rem; }
.marketplace-comment--depth-2 { margin-left: 2rem; }
.marketplace-comment--depth-3 { margin-left: 3rem; }
.marketplace-comment--depth-4 { margin-left: 4rem; }
.marketplace-comment:target { background: var(--color-surface, #f7f7f7); }
.marketplace-comment .noticeboard-post__meta { flex-wrap: wrap; }
@media (max-width: 600px) {
    .marketplace-comment--depth-2 { margin-left: 1.5rem; }
    .marketplace-comment--depth-3 { margin-left: 2rem; }
    .marketplace-comment--depth-4 { margin-left: 2.5rem; }
}

.marketplace-comment .noticeboard-post__meta a time::before { content: none; }

#marketplace-comment-editor .form-actions { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; }
#marketplace-comment-editor .form-actions > .text-action { width: auto; }
#marketplace-comments > .panel-actions > .text-action { justify-self: end; }
@media (max-width: 760px) {
    .panel-actions > .marketplace-subscription > .button { width: 100%; }
}

.marketplace-feed { margin-top: 1.5rem; }
.marketplace-post__identity .noticeboard-post__meta time::before { content: none; }
.marketplace-feed__toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.marketplace-feed__toolbar .marketplace-sections { margin-bottom: 0; }
.marketplace-feed__toolbar .list-sort { margin: 0; width: min(100%, 16rem); }
.marketplace-feed > .empty-state { width: 100%; max-width: none; }
.marketplace-post__identity { display: flex; align-items: center; gap: .8rem; min-width: 0; overflow-wrap: anywhere; }
.marketplace-post__avatar { display: grid; place-items: center; flex: 0 0 2.7rem; height: 2.7rem; border-radius: 50%; background: var(--color-brand-soft); color: var(--color-brand-strong); font-weight: 800; text-transform: uppercase; }
.marketplace-post__content { padding: 1.25rem 1.35rem; overflow-wrap: anywhere; }
.marketplace-post__content h3 { margin: 0 0 .75rem; font-size: 1.2rem; }
.marketplace-post__content p { margin: 0 0 .5rem; line-height: 1.65; }
.marketplace-post__photos { display: flex; flex-wrap: wrap; gap: .65rem; padding: 0 1.35rem 1.25rem; }
.marketplace-post__photos > a { position: relative; width: 10rem; max-width: 100%; min-width: 0; }
.marketplace-post__photos img { display: block; width: 100%; height: 7rem; object-fit: contain; border-radius: var(--radius-small); background: #eef2ef; }
.marketplace-photo-grid a[hidden] { display: none; }
.marketplace-post__more-photos { position: absolute; inset: 0; display: grid; place-content: center; background: rgba(15, 35, 25, .55); color: white; font-size: 2rem; font-weight: 800; }
.marketplace-post__footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding: 1rem 1.35rem; border-top: 1px solid var(--color-border); }
.marketplace-post__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 1.25rem; margin-left: auto; }
.marketplace-post__actions form { margin: 0; }
@media (max-width: 560px) {
    .marketplace-feed__toolbar { align-items: stretch; flex-direction: column; }
    .marketplace-feed__toolbar .list-sort { width: 100%; }
    .marketplace-post__content, .marketplace-post__footer { padding: 1rem; }
    .marketplace-post__photos { padding: 0 1rem 1rem; }
    .marketplace-post__photos > a { width: calc((100% - 1.3rem) / 3); }
    .marketplace-post__photos img { height: 5rem; }
    .marketplace-post__footer .text-action { display: inline-flex; align-items: center; min-height: 2.5rem; }
}

.marketplace-thread { padding: 0 1.35rem 1.25rem; border-top: 1px solid var(--color-border); background: #f7faf8; }
.marketplace-thread > [data-thread-status]:empty { display: none; }
.marketplace-thread .marketplace-comments { margin: 0; padding: 1rem 0 0; border: 0; border-radius: 0; box-shadow: none; background: transparent; }
.marketplace-thread .marketplace-comments h2 { font-size: 1rem; }
.marketplace-thread .marketplace-comments > .panel-actions > .text-action { justify-self: end; }
@media (max-width: 560px) { .marketplace-thread { padding-right: 1rem; padding-left: 1rem; } }

.marketplace-comment-input { margin: 1rem 0; }
.marketplace-comment-input [data-comment-error]:empty { display: none; }
.marketplace-comment-input .form-actions { margin-top: .5rem; }
.marketplace-comment-input textarea { font: inherit; }

.marketplace-photo-dialog { width: min(120rem, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); }
.marketplace-photo-dialog__stage { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .75rem; }
.marketplace-photo-dialog__stage img { display: block; width: 100%; height: auto; max-height: min(1080px, calc(100dvh - 12rem)); object-fit: contain; }
.marketplace-photo-dialog__arrow { min-width: 2.75rem; min-height: 2.75rem; padding: .5rem; }
.marketplace-photo-dialog__arrow svg { width: 1.5rem; height: 1.5rem; fill: none; stroke: currentColor; stroke-width: 2; }
.marketplace-photo-dialog [data-gallery-status]:empty, [data-photo-upload-status]:empty { display: none; }
@media (max-width: 560px) {
    .marketplace-photo-dialog { width: calc(100vw - 1rem); }
    .marketplace-photo-dialog .competition-map-dialog__content { padding: .65rem; }
    .marketplace-photo-dialog__stage { gap: .25rem; }
}

.marketplace-manage-actions { display: inline-flex; gap: .25rem; flex-shrink: 0; }
.marketplace-icon { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; padding: .5rem; border-radius: var(--radius-small); }
.marketplace-icon svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.marketplace-icon:hover { background: var(--color-brand-soft); }
.marketplace-icon--danger { color: var(--color-danger, #a43228); }
.marketplace-comment__header { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.marketplace-comment__header .noticeboard-post__meta { min-width: 0; margin: 0; }
.marketplace-delete-dialog .content-card { margin: 0; border: 0; box-shadow: none; }
.marketplace-delete-dialog { max-height: calc(100dvh - 2rem); }
.marketplace-delete-confirmation [data-comment-error]:empty { display: none; }

.marketplace-comment-compose { margin-top: 1rem; padding-left: calc(.75rem + 2px); text-align: left; }

.marketplace-delete-confirmation .form-actions,
.marketplace-comment-input .form-actions { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; }
.marketplace-delete-confirmation .form-actions > *,
.marketplace-comment-input .form-actions > * { width: auto; }
.marketplace-delete-confirmation .confirmation-check { justify-content: flex-end; }

/* Account-configurable dashboard summary cards. Menus reuse the column picker. */
.dashboard-metrics-heading { flex-direction: row; align-items: flex-end; gap: .75rem; margin-bottom: .5rem; }
.dashboard-metrics-heading > div { min-width: 0; flex: 1; }
.dashboard-metric-add { width: max-content; margin: 0 calc(var(--panel-control-inset) + 1px) 0 0; align-self: flex-end; }
.dashboard-metric-picker { position: relative; flex: 0 0 auto; }
.dashboard-metric-control { display: grid; width: var(--panel-control-size); min-height: var(--panel-control-size); padding: 0; place-items: center; font-size: 1.2rem; line-height: 1; list-style: none; cursor: pointer; }
.dashboard-metric-add > summary::before { display: block; width: 1.25rem; height: 1.25rem; }
.dashboard-metric-control::-webkit-details-marker { display: none; }
.dashboard-metric-control:focus-visible, .dashboard-metric:focus-visible { outline: 3px solid rgba(23,117,75,.35); outline-offset: 3px; }
.dashboard-metrics { grid-template-columns: repeat(var(--metric-columns, 4), minmax(0, 1fr)); }
.dashboard-metrics[data-count="1"] { --metric-columns: 1; }
.dashboard-metrics[data-count="2"] { --metric-columns: 2; }
.dashboard-metrics[data-count="3"] { --metric-columns: 3; }
.dashboard-metrics[hidden], [data-metric-add][hidden], [data-metric-error][hidden] { display: none; }
.dashboard-metric { position: relative; min-width: 0; justify-items: start; cursor: grab; touch-action: none; }
.dashboard-metric__content { display: contents; }
.dashboard-metrics[data-count="1"] .dashboard-metric { cursor: default; touch-action: auto; }
.dashboard-metric__content span { max-width: calc(100% - 2rem); }
.dashboard-metric__content:hover span { color: var(--color-brand-strong); }
.dashboard-metric__picker { position: absolute; top: var(--panel-control-inset); right: var(--panel-control-inset); }
.dashboard-metric-menu { position: absolute; top: calc(100% + .3rem); right: 0; max-height: min(32rem, calc(100dvh - 1rem)); overflow-y: auto; }
.dashboard-metric-menu form { margin: 0; }
.dashboard-metric-menu .is-current::before { content: '✓ '; }
.dashboard-metric-menu button:disabled { color: var(--color-muted); cursor: default; }
.dashboard-metric-menu button:disabled:hover { background: transparent; }
.dashboard-metric.is-metric-dragging { visibility: hidden; }
.dashboard-metric.is-metric-drop-target { outline: 2px dashed var(--color-brand); outline-offset: 3px; }
.dashboard-metric-ghost { position: fixed; z-index: 99; margin: 0; opacity: .5; pointer-events: none; cursor: grabbing; }
body.is-metric-dragging { user-select: none; cursor: grabbing; }
@media (max-width: 900px) and (min-width: 561px) {
    .dashboard-metrics[data-count="4"] { --metric-columns: 2; }
}
@media (max-width: 560px) {
    .dashboard-metrics { --metric-columns: 1 !important; }
    :root { --panel-control-size: 2.75rem; }
    .dashboard-metric__content span { max-width: calc(100% - 2.5rem); }
}

/* Small, reversible date corrections keep their controls inside the date cell. */
.date-inline-editor { min-width: 15rem; }
.date-inline-editor > summary { display: inline-flex; align-items: center; min-height: var(--control-height); list-style: none; }
.date-inline-editor > summary.date-inline-empty { text-decoration: none; }
.date-inline-editor > summary::-webkit-details-marker { display: none; }
.date-inline-editor--enhanced[open] > summary { display: none; }
.date-inline-form { display: flex; gap: .25rem; align-items: center; margin: 0; }
.date-inline-form input[type="date"] { width: 10rem; min-width: 0; min-height: var(--control-height); }
.date-inline-action { display: inline-flex; justify-content: center; align-items: center; width: 2.25rem; min-height: var(--control-height); flex-shrink: 0; }
.date-inline-action svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 560px) {
    .date-inline-form input[type="date"] { font-size: 16px; }
    .date-inline-editor { min-width: 16rem; }
    .date-inline-action { width: 2.75rem; min-height: 2.75rem; }
}

@media (max-width: 560px) { .training-coaches > .form-actions { flex-direction: column; } }

@media (max-width: 560px) { #training-members > .form-actions { flex-direction: column; } }

.input-clear { position: relative; min-width: 0; }
.input-clear > input { width: 100%; padding-right: 2.5rem; }
.input-clear > input::-webkit-search-cancel-button { -webkit-appearance: none; }
.input-clear__action { position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border-radius: var(--radius-small); color: var(--color-muted); font-size: 1.35rem; text-decoration: none; }
.input-clear__action:hover { color: var(--color-brand-strong); background: var(--color-brand-soft); }


/* Contextual help reuses the shared detail dialog and form actions. */
.interactive-help-fallback { margin-top: 1rem; padding: 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-medium); background: var(--color-surface); }
.interactive-help-fallback > summary { cursor: pointer; color: var(--color-brand-strong); font-weight: 700; }
.interactive-help-toggle { min-width: var(--control-height-small); font-weight: 800; text-decoration: none; }
.interactive-help-toggle[aria-pressed="true"] { color: white; background: var(--color-brand); }
.interactive-help-dialog { max-height: calc(100dvh - 2rem); overflow-y: auto; }
[data-help-content] { padding: 1.25rem; overflow-wrap: anywhere; }
.interactive-help__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.interactive-help__heading h2 { margin: 0; }
.interactive-help__topic { padding: .85rem 0; border-bottom: 1px solid var(--color-border); }
.interactive-help__topic h4, .interactive-help__topic p { margin: 0; }
.interactive-help__topic p { line-height: 1.6; }
.interactive-help__topic p { margin-top: .4rem; }
.interactive-help__section + .interactive-help__section { margin-top: 1rem; }
.interactive-help__section h4 { margin: 0 0 .4rem; }
.interactive-help__section p { margin: 0; line-height: 1.6; }
.interactive-help__context { padding: .85rem; border-radius: var(--radius-small); background: var(--color-brand-soft); }
.interactive-help-picking, .interactive-help-picking * { cursor: help !important; }
.interactive-help-available { outline: 2px solid var(--color-brand) !important; outline-offset: 2px; }
.topbar-navigation .interactive-help-available { outline-offset: -2px; }
.interactive-help-target { outline: 3px solid var(--color-brand) !important; outline-offset: 3px; }
.interactive-help-pick-notice { position: fixed; z-index: 160; right: 1rem; bottom: 1rem; display: flex; gap: 1rem; align-items: center; width: min(38rem, calc(100vw - 2rem)); padding: 1rem; border: 2px solid var(--color-brand); border-radius: var(--radius-medium); background: var(--color-surface); box-shadow: var(--shadow-card); }
.interactive-help-pick-notice span { line-height: 1.5; }
@media (max-width: 560px) {
    .interactive-help-pick-notice { right: .5rem; bottom: .5rem; width: calc(100vw - 1rem); gap: .5rem; }
    [data-help-content] { padding: 1rem; }
}

/* Global division view reuses the club disclosure and standard checkbox form. */
.topbar-division-switcher { max-width: 18rem; }
.division-view-form { width: 22rem; max-width: calc(100vw - 2rem); padding: 1rem; }
.division-view-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.division-view-form legend { margin-bottom: .6rem; font-weight: 750; }
.division-view-form .checkbox-label { display: flex; align-items: center; gap: .6rem; min-height: 2.4rem; overflow-wrap: anywhere; }
.division-view-form .division-view-form__choices { max-height: 16rem; overflow-y: auto; margin: .6rem 0; padding: .5rem 0; border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); }
.division-view-form .form-actions { margin-top: .6rem; }
@media (max-width: 700px) { .topbar-division-switcher { max-width: none; } }

/* Keep the complete context and account tools on one desktop row. */
@media (min-width: 1101px) {
    .topbar__main { flex-wrap: nowrap; gap: .75rem; }
    .topbar__context { flex: 1 1 auto; flex-wrap: nowrap; gap: .65rem; }
    .topbar__context > .brand { flex: 0 0 auto; gap: .5rem; font-size: .95rem; white-space: nowrap; }
    .topbar__context > .topbar-club-switcher { flex: 1 1 11rem; min-width: 8rem; max-width: 13rem; }
    .topbar__context > .topbar-club { flex: 0 1 auto; }
    .topbar-role-switcher { flex: 0 1 15rem; min-width: 0; }
    .topbar-role-switcher select { width: 100%; font-size: .86rem; }
    .topbar__tools { flex: 0 0 auto; gap: .5rem; }
    .topbar__tools .button { white-space: nowrap; }
    .topbar__tools .language-picker select { font-size: .86rem; }
}

@media (min-width: 701px) and (max-width: 1100px) {
    .topbar-division-switcher .division-view-form { right: 0; left: auto; }
}
