/* ----------------------------------------------------------------
   Ardmore Rovers design tokens and shared components.

   Loaded after the Canvas theme and custom.css, so these values win.
   Tokens are documented in DESIGN.md. Component classes use the
   `ar-` prefix so they never collide with Canvas or Bootstrap.
----------------------------------------------------------------- */

:root {
    /* Brand: crest burgundy */
    --ar-burgundy: #821E30;          /* accents, links, icons */
    --ar-burgundy-dark: #5C0F1E;     /* primary buttons, header bands */
    --ar-burgundy-darker: #4A0C18;   /* pressed states */
    --ar-burgundy-tint: #F4E3E6;     /* selected rows, active tabs */

    /* Neutrals */
    --ar-ink: #1A1716;
    --ar-muted: #5E5956;
    --ar-hairline: #ECEAE7;
    --ar-border: #D9D4CF;
    --ar-page: #F7F6F4;
    --ar-card: #FFFFFF;

    /* Status (always paired with an icon and a word) */
    --ar-good-bg: #E3F4E8;    --ar-good-fg: #135C31;
    --ar-warn-bg: #FFF4D6;    --ar-warn-fg: #6B4E00;
    --ar-bad-bg: #FDE7E7;     --ar-bad-fg: #8A1C1C;
    --ar-neutral-bg: #EEF0F2; --ar-neutral-fg: #3D4550;

    /* Programme accent */
    --ar-gold: #F2B705;

    /* Type */
    --ar-font-display: 'Barlow Condensed', 'Arial Narrow', Arial, sans-serif;
    --ar-font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;

    /* Shape and depth */
    --ar-radius-sm: 10px;
    --ar-radius: 16px;
    --ar-radius-lg: 20px;
    --ar-shadow-1: 0 1px 2px rgba(20, 10, 10, 0.04), 0 2px 8px rgba(20, 10, 10, 0.04);
    --ar-shadow-2: 0 8px 24px rgba(20, 10, 10, 0.08);
    --ar-shadow-3: 0 24px 48px rgba(20, 10, 10, 0.16);

    /* Canvas theme hooks */
    --cnvs-themecolor: #5C0F1E;
    --cnvs-themecolor-rgb: 92, 15, 30;
}

/* ---------- Display type ---------- */

.ar-display {
    font-family: var(--ar-font-display);
    font-weight: 800;
    text-transform: uppercase;
    line-height: 0.95;
    letter-spacing: 0;
}

.ar-display-italic {
    font-family: var(--ar-font-display);
    font-weight: 900;
    font-style: italic;
    text-transform: uppercase;
    line-height: 0.9;
}

.ar-eyebrow {
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ar-burgundy);
}

.ar-tabular { font-variant-numeric: tabular-nums; }

/* ---------- Status pills ---------- */

.ar-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    padding: 0.3rem 0.75rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
}

.ar-pill i { font-size: 0.875em; }

.ar-pill--good    { background: var(--ar-good-bg);    color: var(--ar-good-fg); }
.ar-pill--warn    { background: var(--ar-warn-bg);    color: var(--ar-warn-fg); }
.ar-pill--bad     { background: var(--ar-bad-bg);     color: var(--ar-bad-fg); }
.ar-pill--neutral { background: var(--ar-neutral-bg); color: var(--ar-neutral-fg); }
.ar-pill--outline { background: #FFFFFF; color: var(--ar-neutral-fg); box-shadow: inset 0 0 0 1px #C9CDD2; }

/* ---------- Stat tiles ---------- */

.ar-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
    gap: 0.75rem;
    margin: 0 0 0.75rem;
}

.ar-stat {
    display: flex;
    flex-direction: column-reverse;   /* value shows above label; screen readers read label first */
    gap: 0.25rem;
    padding: 0.875rem 1rem;
    border-radius: 12px;
    background: var(--ar-page);
}

.ar-stat dt {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--ar-muted);
}

.ar-stat dd {
    margin: 0;
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: 2rem;
    line-height: 1;
    color: var(--ar-ink);
}

.ar-stat--good dd { color: var(--ar-good-fg); }
.ar-stat--warn dd { color: var(--ar-warn-fg); }
.ar-stat--bad dd  { color: var(--ar-bad-fg); }

.ar-stats__note {
    font-size: 0.875rem;
    color: var(--ar-muted);
}

/* ---------- Cards and buttons ---------- */

.ar-card {
    background: var(--ar-card);
    border: 0;
    border-radius: var(--ar-radius);
    box-shadow: var(--ar-shadow-1);
}

.ar-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 44px;
    padding: 0 1.25rem;
    border: 0;
    border-radius: var(--ar-radius-sm);
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
}

.ar-btn--primary { background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-btn--primary:hover,
.ar-btn--primary:focus-visible { background: var(--ar-burgundy-darker); color: #FFFFFF; }

.ar-btn--secondary { background: #FFFFFF; color: var(--ar-ink); box-shadow: inset 0 0 0 1px var(--ar-border); }
.ar-btn--secondary:hover,
.ar-btn--secondary:focus-visible { background: var(--ar-page); color: var(--ar-ink); }

/* Several account templates use `card-header text-white` without a background
   class, which left white text on Canvas's near-white header fill. Give those
   headers the brand fill so the text is readable. */
.card-header.text-white:not([class*="bg-"]) {
    background-color: var(--ar-burgundy-dark);
    border-bottom-color: var(--ar-burgundy-darker);
}

/* Canvas colours headings separately, so they need telling too. */
.card-header.text-white:not([class*="bg-"]) :is(h1, h2, h3, h4, h5, h6) {
    color: #FFFFFF;
}

/* Burgundy links are unreadable on the dark footer (about 1.7:1). */
#footer.dark a:not(.social-icon) {
    color: #F4DCE0;
}

#footer.dark a:not(.social-icon):hover,
#footer.dark a:not(.social-icon):focus-visible {
    color: #FFFFFF;
}

/* ================================================================
   Managers Area (Phase 2)
================================================================ */

.ar-muted { color: var(--ar-muted); }

.ar-page-head { margin-bottom: 1.25rem; }
.ar-page-head h1 {
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    text-transform: uppercase;
    line-height: 1;
    margin: 0.25rem 0 0.375rem;
    color: var(--ar-ink);
}
.ar-page-head p { margin: 0; color: var(--ar-muted); }

.ar-section-title {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 1.5rem 0 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--ar-ink);
}
.ar-section-title small { font-weight: 500; color: var(--ar-muted); }

/* ---------- Chips (team switcher, tags) ---------- */

.ar-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}

.ar-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 36px;
    padding: 0 0.875rem;
    border-radius: 999px;
    background: #FFFFFF;
    box-shadow: inset 0 0 0 1px var(--ar-border);
    color: var(--ar-ink);
    font-size: 0.875rem;
    font-weight: 600;
    text-decoration: none;
}
a.ar-chip:hover { background: var(--ar-page); color: var(--ar-ink); }
.ar-chip[aria-current="page"] {
    background: var(--ar-burgundy-dark);
    box-shadow: none;
    color: #FFFFFF;
}
.ar-chip--static { min-height: 28px; font-weight: 500; font-size: 0.8125rem; background: var(--ar-page); box-shadow: none; }
.ar-chip--on-dark { background: rgba(255, 255, 255, 0.16); color: #FFFFFF; }

/* ---------- Tabs (server-side links) ---------- */

.ar-tabs {
    display: flex;
    gap: 0.25rem;
    padding: 0.25rem;
    margin: 0 0 1rem;
    border-radius: 12px;
    background: var(--ar-hairline);
    list-style: none;
    max-width: 560px;
}
.ar-tabs li { flex: 1; }
.ar-tabs a {
    white-space: nowrap;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    min-height: 44px;
    border-radius: 9px;
    color: var(--ar-muted);
    font-weight: 600;
    text-decoration: none;
}
.ar-tabs a:hover { color: var(--ar-ink); }
.ar-tabs a[aria-current="page"] { background: #FFFFFF; color: var(--ar-ink); box-shadow: var(--ar-shadow-1); }
.ar-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    padding: 0 0.375rem;
    border-radius: 999px;
    background: var(--ar-page);
    font-size: 0.75rem;
    color: var(--ar-ink);
}

/* ---------- Result needed ---------- */

.ar-needed {
    padding: 1rem 1.125rem;
    margin: 0 0 1rem;
    border-radius: var(--ar-radius);
    background: var(--ar-warn-bg);
    color: var(--ar-warn-fg);
}
.ar-needed h2 {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--ar-warn-fg);
}
.ar-needed ul { margin: 0; padding: 0; list-style: none; }
.ar-needed li + li { margin-top: 0.625rem; padding-top: 0.625rem; border-top: 1px solid rgba(107, 78, 0, 0.18); }
.ar-needed__item { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; }
.ar-needed__match { flex: 1 1 12rem; color: var(--ar-ink); }
.ar-needed__match strong { display: block; }
.ar-needed__match span { font-size: 0.875rem; color: var(--ar-warn-fg); }

/* ---------- Fixture cards ---------- */

.ar-fixtures { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.75rem; }

.ar-fixture {
    display: flex;
    gap: 1rem;
    padding: 1rem;
    background: var(--ar-card);
    border-radius: var(--ar-radius);
    box-shadow: var(--ar-shadow-1);
}

.ar-datebox {
    flex: 0 0 64px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 0.25rem;
    border-radius: 12px;
    background: var(--ar-ink);
    color: #FFFFFF;
    text-align: center;
    line-height: 1.1;
    align-self: flex-start;
}
.ar-datebox--home { background: var(--ar-burgundy-dark); }
.ar-datebox__day { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; }
.ar-datebox__num { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.75rem; }
.ar-datebox__side { font-size: 0.6875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.9; }

.ar-fixture__body { flex: 1; min-width: 0; }
.ar-fixture__teams { margin: 0 0 0.25rem; font-size: 1rem; font-weight: 700; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-fixture__teams .ar-vs { font-weight: 500; color: var(--ar-muted); padding: 0 0.25rem; }
.ar-fixture__meta { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem 0.875rem; font-size: 0.875rem; color: var(--ar-muted); }
.ar-fixture__meta i { margin-right: 0.25rem; }
.ar-fixture__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 0.75rem; }
.ar-fixture__score {
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: 1.5rem;
    color: var(--ar-ink);
    white-space: nowrap;
}

.ar-link-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    padding: 0 0.875rem;
    border-radius: var(--ar-radius-sm);
    color: var(--ar-burgundy-dark);
    font-weight: 600;
    text-decoration: none;
    box-shadow: inset 0 0 0 1px var(--ar-border);
    background: #FFFFFF;
}
.ar-link-btn:hover { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-darker); }

.ar-btn--sm { min-height: 40px; padding: 0 1rem; font-size: 0.9375rem; }

/* ---------- Results ---------- */

.ar-record {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin: 0 0 1rem;
    max-width: 420px;
}

.ar-result {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    height: 2rem;
    padding: 0 0.5rem;
    border-radius: 8px;
    font-weight: 700;
    font-size: 0.875rem;
    flex: 0 0 auto;
}
.ar-result--win  { background: var(--ar-good-bg); color: var(--ar-good-fg); }
.ar-result--draw { background: var(--ar-neutral-bg); color: var(--ar-neutral-fg); }
.ar-result--loss { background: var(--ar-bad-bg); color: var(--ar-bad-fg); }
.ar-result--none { background: var(--ar-warn-bg); color: var(--ar-warn-fg); }

.ar-results { margin: 0; padding: 0; list-style: none; background: var(--ar-card); border-radius: var(--ar-radius); box-shadow: var(--ar-shadow-1); }
.ar-results li { display: flex; align-items: center; gap: 0.875rem; padding: 0.875rem 1rem; }
.ar-results li + li { border-top: 1px solid var(--ar-hairline); }
.ar-results__match { flex: 1; min-width: 0; }
.ar-results__match strong { display: block; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-results__match span { font-size: 0.875rem; color: var(--ar-muted); }

.ar-empty {
    padding: 2rem 1rem;
    text-align: center;
    background: var(--ar-card);
    border-radius: var(--ar-radius);
    box-shadow: var(--ar-shadow-1);
    color: var(--ar-muted);
}
.ar-empty i { font-size: 2rem; color: var(--ar-muted); }
.ar-empty h2, .ar-empty h3 { font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); margin: 0.5rem 0 0.25rem; }

@media (max-width: 575.98px) {
    /* Icon-only Edit on phones so team names get the width; the word stays for screen readers. */
    .ar-results .ar-link-btn { padding: 0; width: 44px; justify-content: center; }
    .ar-results .ar-edit-word {
        position: absolute; width: 1px; height: 1px; overflow: hidden;
        clip: rect(0 0 0 0); white-space: nowrap;
    }
    .ar-results li { gap: 0.625rem; padding: 0.75rem; }
}

/* ---------- Roster board ---------- */

.ar-team-head {
    padding: 1.25rem;
    border-radius: var(--ar-radius) var(--ar-radius) 0 0;
    background: var(--ar-burgundy-dark);
    color: #FFFFFF;
}
.ar-team-head h2 {
    margin: 0 0 0.5rem;
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: 1.75rem;
    text-transform: uppercase;
    line-height: 1;
    color: #FFFFFF;
}
.ar-team-head .ar-chips { margin: 0; }
.ar-team-body { padding: 1.25rem; }

.ar-segbar {
    display: flex;
    height: 10px;
    margin: 0 0 1rem;
    border-radius: 999px;
    overflow: hidden;
    background: var(--ar-hairline);
}
.ar-segbar span { display: block; height: 100%; }
.ar-segbar .is-good { background: #2E8B57; }
.ar-segbar .is-warn { background: var(--ar-gold); }
.ar-segbar .is-bad  { background: #C0392B; }
.ar-segbar .is-neutral { background: #8A929C; }

.ar-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 1.25rem 0 0.75rem;
}
.ar-filter button {
    min-height: 36px;
    padding: 0 0.875rem;
    border: 0;
    border-radius: 999px;
    background: #FFFFFF;
    box-shadow: inset 0 0 0 1px var(--ar-border);
    color: var(--ar-ink);
    font-size: 0.875rem;
    font-weight: 600;
}
.ar-filter button[aria-pressed="true"] { background: var(--ar-ink); box-shadow: none; color: #FFFFFF; }
.ar-filter[hidden] { display: none; }
.ar-filter__status { margin-left: auto; font-size: 0.875rem; color: var(--ar-muted); }

.ar-roster { margin: 0; padding: 0; list-style: none; }
.ar-roster li { display: flex; align-items: center; gap: 0.875rem; padding: 0.75rem 0; }
.ar-roster li + li { border-top: 1px solid var(--ar-hairline); }
.ar-roster li[hidden] { display: none; }

.ar-avatar {
    flex: 0 0 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--ar-burgundy-tint);
    color: var(--ar-burgundy-darker);
    font-weight: 700;
    font-size: 0.875rem;
}
.ar-roster__who { flex: 1; min-width: 0; }
.ar-roster__who strong { display: block; color: var(--ar-ink); }
.ar-roster__who span { display: block; font-size: 0.875rem; color: var(--ar-muted); overflow-wrap: anywhere; }
.ar-roster__who a { color: var(--ar-burgundy); }

.ar-side-card { padding: 1.125rem; margin-bottom: 1rem; }
.ar-side-card h2 { font-size: 1rem; font-weight: 700; margin: 0 0 0.75rem; color: var(--ar-ink); }
.ar-side-list { margin: 0; padding: 0; list-style: none; }
.ar-side-list li { padding: 0.625rem 0; font-size: 0.9375rem; }
.ar-side-list li + li { border-top: 1px solid var(--ar-hairline); }
.ar-side-list strong { display: block; color: var(--ar-ink); }
.ar-side-list span { font-size: 0.875rem; color: var(--ar-muted); }
.ar-side-list a { color: var(--ar-burgundy); font-weight: 600; text-decoration: none; }
.ar-side-list a:hover { text-decoration: underline; }

/* ---------- Score sheet ---------- */

.ar-sheet { max-width: 560px; margin: 0 auto; padding: 1.5rem; }
.ar-sheet__match { margin: 0 0 1.25rem; }
.ar-sheet__match h2 {
    font-size: 1.375rem;
    font-weight: 700;
    color: var(--ar-ink);
    margin: 0.25rem 0;
    overflow-wrap: anywhere;
}

.ar-fieldset { border: 0; padding: 0; margin: 0 0 1.5rem; min-width: 0; }
.ar-fieldset legend, .ar-label {
    display: block;
    margin: 0 0 0.5rem;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--ar-ink);
    float: none;
}
.ar-hint { display: block; margin: -0.25rem 0 0.5rem; font-size: 0.875rem; color: var(--ar-muted); }

.ar-segmented {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.25rem;
    padding: 0.25rem;
    border-radius: 12px;
    background: var(--ar-hairline);
}
.ar-segmented input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ar-segmented label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin: 0;
    padding: 0 0.5rem;
    border-radius: 9px;
    color: var(--ar-muted);
    font-weight: 600;
    text-align: center;
    cursor: pointer;
}
.ar-segmented input:checked + label { background: #FFFFFF; color: var(--ar-ink); box-shadow: var(--ar-shadow-1); }
.ar-segmented input:focus-visible + label { outline: 3px solid var(--ar-burgundy); outline-offset: 1px; }

.ar-score-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 0;
}
.ar-score-row + .ar-score-row { border-top: 1px solid var(--ar-hairline); }
.ar-score-row__team { flex: 1; min-width: 0; }
.ar-score-row__team label { display: block; margin: 0; font-weight: 700; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-score-row__team span { font-size: 0.8125rem; color: var(--ar-muted); }

.ar-stepper { display: flex; align-items: center; gap: 0.5rem; }
.ar-stepper button {
    width: 48px;
    height: 48px;
    border: 0;
    border-radius: 12px;
    background: var(--ar-page);
    box-shadow: inset 0 0 0 1px var(--ar-border);
    color: var(--ar-ink);
    font-size: 1.375rem;
    line-height: 1;
}
.ar-stepper button:hover { background: var(--ar-hairline); }
.ar-stepper input {
    width: 64px;
    height: 64px;
    border: 1px solid var(--ar-border);
    border-radius: 12px;
    text-align: center;
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: 2rem;
    color: var(--ar-ink);
    -moz-appearance: textfield;
}
.ar-stepper input::-webkit-outer-spin-button,
.ar-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.ar-input {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 0.625rem 0.875rem;
    border: 1px solid var(--ar-border);
    border-radius: var(--ar-radius-sm);
    background: #FFFFFF;
    color: var(--ar-ink);
    font-size: 1rem;
}
.ar-input:focus, .ar-stepper input:focus { border-color: var(--ar-burgundy); box-shadow: 0 0 0 3px rgba(130, 30, 48, 0.2); outline: none; }
.ar-input[aria-invalid="true"], .ar-stepper input[aria-invalid="true"] { border-color: var(--ar-bad-fg); border-width: 2px; }

.ar-field { margin: 0 0 1.25rem; }
.ar-field[hidden], .ar-fieldset[hidden] { display: none; }
.ar-field-error { display: flex; align-items: center; gap: 0.375rem; margin: 0.375rem 0 0; font-size: 0.875rem; font-weight: 600; color: var(--ar-bad-fg); }
.ar-field-error[hidden] { display: none; }

.ar-error-summary {
    padding: 1rem 1.125rem;
    margin: 0 0 1.25rem;
    border-radius: var(--ar-radius-sm);
    background: var(--ar-bad-bg);
    color: var(--ar-bad-fg);
    box-shadow: inset 4px 0 0 var(--ar-bad-fg);
}
.ar-error-summary[hidden] { display: none; }
.ar-error-summary h2 { font-size: 1rem; font-weight: 700; margin: 0 0 0.375rem; color: var(--ar-bad-fg); }
.ar-error-summary ul { margin: 0; padding-left: 1.125rem; }
.ar-error-summary a { color: var(--ar-bad-fg); font-weight: 600; }
.ar-error-summary:focus { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }

.ar-sheet__actions { display: grid; gap: 0.5rem; }
.ar-sheet__actions .ar-btn { width: 100%; min-height: 52px; font-size: 1.0625rem; }
.ar-lock-note { display: flex; align-items: center; justify-content: center; gap: 0.375rem; margin: 0.75rem 0 0; font-size: 0.875rem; color: var(--ar-muted); }

.ar-back {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-height: 44px;
    color: var(--ar-burgundy);
    font-weight: 600;
    text-decoration: none;
}
.ar-back:hover { text-decoration: underline; color: var(--ar-burgundy-darker); }

.ar-btn:focus-visible,
.ar-back:focus-visible,
.ar-chip:focus-visible,
.ar-tabs a:focus-visible,
.ar-link-btn:focus-visible,
.ar-filter button:focus-visible,
.ar-stepper button:focus-visible,
.ar-side-list a:focus-visible,
.ar-roster__who a:focus-visible {
    /* Gold is too faint on white (under 3:1); burgundy is about 8:1. */
    outline: 3px solid var(--ar-burgundy);
    outline-offset: 2px;
}

/* ================================================================
   Public site (Phase 3)
================================================================ */

.ar-section-heading { font-size: clamp(2rem, 4vw, 3rem); margin: 0 0 1.25rem; color: var(--ar-ink); }
.ar-fx-div {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ar-muted);
}

/* ---------- Hero slider ---------- */

.ar-hero {
    position: relative;
    overflow: hidden;
    background: #2A0810;
    color: #FFFFFF;
}

.ar-slide {
    position: relative;
    display: flex;
    align-items: center;
    min-height: clamp(560px, 78vh, 820px);
    padding: 7rem 0 9rem;
    overflow: hidden;
}
.ar-slide[hidden] { display: none; }

.ar-slide__bg,
.ar-slide__shade,
.ar-slide__video,
.ar-slide__wipe {
    position: absolute;
    inset: 0;
}
.ar-slide__bg { width: 100%; height: 100%; object-fit: cover; animation: ar-kenburns 9s ease-out both; }
.ar-slide__video { overflow: hidden; pointer-events: none; }
.ar-slide__video iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max(100%, 177.78vh);
    height: max(100%, 56.25vw);
    border: 0;
    transform: translate(-50%, -50%);
}
.ar-slide__shade {
    background: linear-gradient(100deg, rgba(42, 8, 16, 0.97) 0%, rgba(92, 15, 30, 0.9) 48%, rgba(92, 15, 30, 0.55) 100%);
}

.ar-slide--feature { background: var(--ar-burgundy-dark); }

/* Picture over photo: the background photo blurred and darkened behind a framed picture. */
.ar-slide--picture { background: var(--ar-ink); }
.ar-slide--picture .ar-slide__bg { opacity: 0.35; filter: blur(6px); transform: scale(1.06); animation: none; }
.ar-slide--picture .ar-slide__shade { background: linear-gradient(100deg, rgba(26, 23, 22, 0.92) 0%, rgba(26, 23, 22, 0.6) 55%, rgba(26, 23, 22, 0.35) 100%); }
.ar-slide__frame--picture { flex-basis: 520px; transform: rotate(3deg); }
/* Photo layout with a front image: a cut-out (e.g. the crest) standing upright, no frame. */
.ar-slide__emblem { flex: 0 1 440px; display: flex; justify-content: center; }
.ar-slide__emblem img { display: block; width: 100%; max-width: 440px; height: auto; max-height: 460px; object-fit: contain; filter: drop-shadow(0 40px 60px rgba(0, 0, 0, 0.5)); }
.ar-slide:not([hidden]) .ar-slide__emblem { animation: ar-emblem-in 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
@keyframes ar-emblem-in { from { opacity: 0; transform: translateX(60px); } to { opacity: 1; transform: none; } }
/* With a picture sharing the row, keep the title to whole words. */
@media (min-width: 992px) {
    .ar-slide--picture .ar-slide__title { font-size: clamp(3.25rem, 6vw, 6.5rem); overflow-wrap: normal; }
}
.ar-slide__frame--picture img { max-height: 560px; width: 100%; object-fit: contain; background: #FFFFFF; }
.ar-slide:not([hidden]) .ar-slide__frame--picture { animation-name: ar-slidein-right; }
@keyframes ar-slidein-right { from { opacity: 0; transform: translateX(60px) rotate(3deg); } to { opacity: 1; transform: rotate(3deg); } }
.ar-slide__wipe {
    background: var(--ar-gold);
    clip-path: polygon(64% 0, 100% 0, 100% 100%, 50% 100%);
}

.ar-slide__watermark {
    position: absolute;
    right: -2rem;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--ar-font-display);
    font-weight: 900;
    font-size: clamp(10rem, 28vw, 26rem);
    line-height: 0.8;
    color: transparent;
    -webkit-text-stroke: 2px rgba(255, 255, 255, 0.12);
    pointer-events: none;
    white-space: nowrap;
}
.ar-slide--feature .ar-slide__watermark { right: auto; left: 2rem; top: auto; bottom: -3rem; transform: none; -webkit-text-stroke-color: rgba(255, 255, 255, 0.1); }

.ar-slide__inner {
    position: relative;
    display: flex;
    align-items: center;
    gap: 3rem;
}
.ar-slide__copy { flex: 1 1 0; max-width: 720px; }

.ar-slide__tag {
    display: inline-block;
    margin: 0 0 1.5rem;
    padding: 0.5rem 0.875rem;
    border-radius: 999px;
    background: #FFFFFF;
    color: var(--ar-burgundy-dark);
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.ar-slide--feature .ar-slide__tag { background: var(--ar-gold); color: var(--ar-ink); }

.ar-slide__title {
    margin: 0 0 1.5rem;
    font-family: var(--ar-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(3.25rem, 8.5vw, 8rem);
    line-height: 0.88;
    text-transform: uppercase;
    color: #FFFFFF;
    overflow-wrap: anywhere;
}
.ar-slide__subtitle {
    max-width: 34rem;
    margin: 0 0 2rem;
    font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
    line-height: 1.5;
    color: #F4DCE0;
}
.ar-slide__buttons { display: flex; flex-wrap: wrap; gap: 0.75rem; }

.ar-hero-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    min-height: 52px;
    padding: 0 1.5rem;
    border-radius: 12px;
    font-weight: 700;
    text-decoration: none;
}
.ar-hero-btn--primary { background: #FFFFFF; color: var(--ar-burgundy-dark); }
.ar-hero-btn--primary:hover { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-darker); }
.ar-hero-btn--ghost { color: #FFFFFF; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.6); }
.ar-hero-btn--ghost:hover { background: rgba(255, 255, 255, 0.12); color: #FFFFFF; }
.ar-slide--feature .ar-hero-btn--primary { background: var(--ar-gold); color: var(--ar-ink); }
.ar-slide--feature .ar-hero-btn--primary:hover { background: #FFD24A; color: var(--ar-ink); }

.ar-slide__frame {
    flex: 0 1 560px;
    margin: 0;
    padding: 0.875rem 0.875rem 1.125rem;
    background: #FFFFFF;
    border-radius: 6px;
    transform: rotate(-3deg);
    box-shadow: 0 40px 80px rgba(0, 0, 0, 0.45);
}
.ar-slide__frame img { display: block; width: 100%; height: auto; border-radius: 3px; }

/* Entry animation for the visible slide */
.ar-slide:not([hidden]) .ar-slide__copy > * { animation: ar-rise 0.6s cubic-bezier(0.2, 0.7, 0.2, 1) both; }
.ar-slide:not([hidden]) .ar-slide__copy > *:nth-child(2) { animation-delay: 0.08s; }
.ar-slide:not([hidden]) .ar-slide__copy > *:nth-child(3) { animation-delay: 0.16s; }
.ar-slide:not([hidden]) .ar-slide__copy > *:nth-child(4) { animation-delay: 0.24s; }
.ar-slide:not([hidden]) .ar-slide__frame { animation: ar-slidein 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) both; }

@keyframes ar-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes ar-slidein { from { opacity: 0; transform: translateX(60px) rotate(-3deg); } to { opacity: 1; transform: rotate(-3deg); } }
@keyframes ar-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }

/* Controls */
.ar-hero__controls {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 1.25rem 0 1.5rem;
    background: linear-gradient(to top, rgba(20, 4, 8, 0.7), rgba(20, 4, 8, 0));
}
.ar-hero__controls-inner { display: flex; align-items: flex-end; gap: 2rem; }
.ar-hero__buttons { display: flex; align-items: center; gap: 0.5rem; }
.ar-hero__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.4);
    color: #FFFFFF;
    font-size: 1.125rem;
}
.ar-hero__icon:hover { background: rgba(255, 255, 255, 0.24); }
.ar-hero__icon[hidden] { display: none; }
.ar-hero__count { margin: 0 0 0 0.5rem; font-family: var(--ar-font-display); font-weight: 700; font-size: 1.25rem; color: #FFFFFF; }

.ar-hero__picker {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 1rem;
    flex: 1;
    margin: 0;
    padding: 0;
    list-style: none;
}
.ar-hero__picker button {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.5rem;
    width: 100%;
    min-height: 44px;
    padding: 0.25rem 0 0;
    border: 0;
    background: none;
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.875rem;
    font-weight: 600;
    text-align: left;
}
.ar-hero__picker button[aria-pressed="true"] { color: #FFFFFF; }
.ar-hero__num { font-family: var(--ar-font-display); font-weight: 800; }
.ar-hero__progress { display: block; flex-basis: 100%; height: 3px; margin-top: 0.375rem; background: rgba(255, 255, 255, 0.25); border-radius: 2px; overflow: hidden; }
.ar-hero__progress span { display: block; height: 100%; width: 0; background: #FFFFFF; }

.ar-hero a:focus-visible,
.ar-hero button:focus-visible,
.ar-next a:focus-visible,
.ar-numbers a:focus-visible,
.ar-tile:focus-visible {
    outline: 3px solid var(--ar-gold);
    outline-offset: 3px;
}

@media (max-width: 991.98px) {
    .ar-slide__frame, .ar-slide__emblem { display: none; }
    /* A framed poster or chart carries information, so on smaller screens it sits under the text. */
    .ar-slide--picture .ar-slide__inner { flex-direction: column; align-items: flex-start; gap: 2rem; }
    .ar-slide--picture .ar-slide__frame--picture { display: block; flex: none; width: min(100%, 420px); transform: none; }
    .ar-slide:not([hidden]) .ar-slide__frame--picture { animation: none; }
    .ar-slide__wipe { clip-path: polygon(82% 0, 100% 0, 100% 100%, 70% 100%); }
}
@media (max-width: 767.98px) {
    .ar-slide { min-height: 0; padding: 4rem 0 7rem; }
    .ar-slide__shade { background: linear-gradient(180deg, rgba(42, 8, 16, 0.8) 0%, rgba(92, 15, 30, 0.94) 60%); }
    .ar-slide__watermark { display: none; }
    .ar-hero__picker { display: none; }
    .ar-hero__controls { padding: 1rem 0; }
    .ar-hero-btn { min-height: 48px; padding: 0 1.125rem; }
}

@media (prefers-reduced-motion: reduce) {
    .ar-slide__bg,
    .ar-slide:not([hidden]) .ar-slide__copy > *,
    .ar-slide:not([hidden]) .ar-slide__frame,
    .ar-slide:not([hidden]) .ar-slide__emblem { animation: none; }
}

/* ---------- Match centre ---------- */

.ar-matchday { padding: 3rem 0 1rem; background: var(--ar-page); }
.ar-matchday__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
/* Next match two thirds + latest results one third; then the senior card takes two thirds
   beside the results, or the full width under the next match. */
.ar-matchday__grid > .ar-next { grid-column: span 2; }
.ar-matchday__grid > .ar-seniorcard { grid-column: span 2; }
.ar-matchday__grid.has-next > .ar-seniorcard,
.ar-matchday__grid > .ar-seniorcard:only-child,
.ar-matchday__grid > .ar-next:not(:has(+ .ar-latest)) { grid-column: 1 / -1; }
.ar-matchday__grid > .ar-latest, .ar-matchday__grid > .ar-seniorcard { align-self: stretch; }

.ar-next {
    padding: 2rem;
    border-radius: var(--ar-radius-lg);
    background: linear-gradient(135deg, var(--ar-burgundy-dark), var(--ar-burgundy-darker));
    color: #FFFFFF;
    box-shadow: var(--ar-shadow-2);
}
.ar-next__eyebrow {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0 0 1rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #F4DCE0;
}
.ar-next__teams {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.875rem;
    margin: 0 0 0.75rem;
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1;
    text-transform: uppercase;
    color: #FFFFFF;
}
.ar-next__vs { font-size: 0.6em; color: var(--ar-gold); }
.ar-next__when { margin: 0 0 1.5rem; color: #F4DCE0; }
.ar-next__when i { margin-right: 0.375rem; }

.ar-countdown dl { display: flex; gap: 0.75rem; margin: 0 0 1.5rem; }
.ar-countdown dl > div {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    min-width: 84px;
    padding: 0.75rem 0.5rem;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.1);
}
.ar-countdown dd { margin: 0; font-family: var(--ar-font-display); font-weight: 800; font-size: 2.5rem; line-height: 1; font-variant-numeric: tabular-nums; }
.ar-countdown dt { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #F4DCE0; }
.ar-next__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

.ar-latest { padding: 2rem; display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.ar-latest__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 0.75rem; }
.ar-latest__head .ar-eyebrow { font-size: 0.75rem; }
.ar-latest__nav { display: flex; align-items: center; gap: 0.5rem; }
.ar-latest__btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--ar-border); color: var(--ar-ink); cursor: pointer; }
.ar-latest__btn:hover { background: var(--ar-page); }
.ar-latest__btn:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-latest__btn:disabled { opacity: 0.4; cursor: default; }
.ar-latest__count { min-width: 3.5rem; text-align: center; font-size: 0.875rem; font-weight: 600; color: var(--ar-muted); font-variant-numeric: tabular-nums; }
.ar-latest__track {
    position: relative; /* keeps the slides' screen-reader text inside the track, or it widens the page */ display: flex; margin: 0 0 0.75rem; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.ar-latest__track::-webkit-scrollbar { display: none; }
.ar-latest__slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; }
.ar-latest__div { margin: 0; font-size: 0.875rem; font-weight: 700; color: var(--ar-burgundy); }
.ar-latest__score {
    margin: 0.25rem 0 0.5rem;
    font-family: var(--ar-font-display);
    font-weight: 900;
    font-size: clamp(3rem, 5vw, 5rem);
    line-height: 1;
    white-space: nowrap;
    color: var(--ar-ink);
}
.ar-latest__line { display: flex; align-items: center; flex-wrap: wrap; gap: 0.5rem; margin: 0 0 0.25rem; font-size: 1.0625rem; color: var(--ar-ink); }

.ar-weekend { margin: 2.5rem 0 1rem; }
.ar-weekend__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.ar-weekend__head h2 { margin: 0; font-size: clamp(2rem, 4vw, 3rem); color: var(--ar-ink); }
.ar-weekend__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 0.75rem;
    margin: 0 0 1rem;
    padding: 0;
    list-style: none;
}
.ar-weekend__item {
    display: flex;
    gap: 0.875rem;
    padding: 0.875rem 1rem;
    border-radius: var(--ar-radius-sm);
    background: var(--ar-card);
    box-shadow: var(--ar-shadow-1), inset 4px 0 0 var(--ar-border);
}
.ar-weekend__item[hidden] { display: none; }
.ar-weekend__item.is-home { box-shadow: var(--ar-shadow-1), inset 4px 0 0 var(--ar-burgundy); }
.ar-weekend__item.is-away { box-shadow: var(--ar-shadow-1), inset 4px 0 0 var(--ar-ink); }
.ar-weekend__item.is-off { box-shadow: var(--ar-shadow-1), inset 4px 0 0 #8A8580; }
.ar-weekend__when { display: flex; flex-direction: column; min-width: 3.25rem; }
.ar-weekend__when span { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-muted); }
.ar-weekend__when strong { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.5rem; line-height: 1.1; color: var(--ar-ink); }
.ar-weekend__match { min-width: 0; }
.ar-weekend__match strong { display: block; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-weekend__match .ar-muted { font-size: 0.875rem; }

@media (max-width: 991.98px) {
    .ar-matchday__grid { grid-template-columns: minmax(0, 1fr); }
    .ar-matchday__grid > * { grid-column: 1 / -1 !important; }
}
@media (max-width: 575.98px) {
    .ar-next, .ar-latest { padding: 1.5rem; }
    .ar-countdown dl > div { min-width: 0; flex: 1; }
}

/* ---------- Get involved ---------- */

.ar-involved { padding: 2rem 0 3rem; background: var(--ar-page); }
.ar-lottowrap { padding: 0 0 2.5rem; background: var(--ar-page); }
.ar-lotto { display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; border-radius: 24px; background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-lotto__photo { display: block; width: 100%; height: 200px; object-fit: cover; }
.ar-lotto__body { display: flex; flex-direction: column; justify-content: center; gap: 0.875rem; padding: 1.5rem 1.25rem 1.75rem; }
.ar-lotto__eyebrow { margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: #F2B705; }
.ar-lotto__title { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.25rem, 4.5vw, 3.5rem); line-height: 0.95; text-transform: uppercase; color: #FFFFFF; }
.ar-lotto__body > p:not(.ar-lotto__eyebrow) { margin: 0; max-width: 34rem; font-size: 1.0625rem; line-height: 1.55; color: #F3E9EA; }
.ar-lotto__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; }
.ar-lotto__note { font-size: 0.8125rem; color: #E2CFD2; }
.ar-lotto .ar-btn--white:focus-visible { outline: 3px solid #FFFFFF; outline-offset: 3px; }
@media (min-width: 768px) {
    .ar-lotto { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); min-height: 340px; }
    .ar-lotto__photo { height: 100%; }
    .ar-lotto__body { padding: 3rem 3.5rem; }
}
.ar-homenews { padding: 1rem 0 3.5rem; background: var(--ar-page); }
.ar-homenews__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.5rem 1rem; margin-bottom: 1.25rem; }
.ar-homenews__head .ar-section-heading { margin: 0; }
.ar-homenews .ar-newscard__title { font-size: 1.125rem; }
.ar-involved__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}
.ar-tile {
    position: relative;
    display: block;
    height: 280px;
    border-radius: var(--ar-radius);
    overflow: hidden;
    background: var(--ar-ink);
    color: #FFFFFF;
    text-decoration: none;
}
.ar-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.ar-tile::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(26, 23, 22, 0.1) 20%, rgba(26, 23, 22, 0.92) 78%);
}
.ar-tile:hover img { transform: scale(1.05); }
.ar-tile__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; display: flex; flex-direction: column; gap: 0.25rem; padding: 1.25rem; }
.ar-tile__tag { align-self: flex-start; padding: 0.25rem 0.625rem; border-radius: 999px; background: var(--ar-gold); color: var(--ar-ink); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.ar-tile__title { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.875rem; line-height: 1; text-transform: uppercase; color: #FFFFFF; }
.ar-tile__text { color: #F1ECEA; font-size: 0.9375rem; }
.ar-tile:hover, .ar-tile:focus-visible { color: #FFFFFF; }
@media (prefers-reduced-motion: reduce) { .ar-tile img { transition: none; } .ar-tile:hover img { transform: none; } }

/* ---------- Club in numbers ---------- */

.ar-numbers { padding: 3.5rem 0; background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-numbers__motto {
    margin: 0 0 1.75rem;
    font-family: var(--ar-font-display);
    font-weight: 900;
    font-style: italic;
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1;
    text-transform: uppercase;
    text-align: center;
}
.ar-numbers__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin: 0; }
.ar-numbers__grid > div { display: flex; flex-direction: column-reverse; align-items: center; text-align: center; }
.ar-numbers__grid dd { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-size: clamp(2.75rem, 6vw, 4.5rem); line-height: 1; }
.ar-numbers__grid dt { font-weight: 600; color: #F4DCE0; }
@media (max-width: 575.98px) { .ar-numbers__grid { grid-template-columns: repeat(2, 1fr); row-gap: 1.75rem; } }

/* ---------- Public fixtures ---------- */

.ar-fx-filters { display: grid; gap: 1rem; padding: 1.25rem; margin-bottom: 1.25rem; }
.ar-fx-filters__row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.ar-fx-field { flex: 1 1 200px; }
.ar-fx-field .ar-label { margin-bottom: 0.375rem; }
.ar-fx-actions { display: flex; align-items: center; gap: 1rem; }
.ar-fx-mine { min-height: 44px; }
.ar-fx-filters__row--top { align-items: center; }
.ar-fx-switches { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; flex: 1 1 auto; }
.ar-fx-homeaway { flex: 0 1 20rem; }
.ar-fx-filters .ar-tabs { width: 100%; }
.ar-fx-actions .ar-btn { min-height: 48px; }
@media (max-width: 575.98px) { .ar-fx-view, .ar-fx-homeaway { flex-basis: 100%; } }
.ar-tabs a { padding: 0 1rem; }

.ar-fx-day { margin-bottom: 2rem; }
.ar-fx-day__title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.875rem; margin: 0 0 0.75rem; font-size: 1rem; font-weight: 500; color: var(--ar-muted); }
.ar-fx-day__title .ar-display { font-size: 2rem; color: var(--ar-ink); }

.ar-fx-rows { margin: 0; padding: 0; list-style: none; background: var(--ar-card); border-radius: var(--ar-radius); box-shadow: var(--ar-shadow-1); overflow: hidden; }
.ar-fx-row {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 0.5rem 1rem;
    padding: 1rem 1.25rem;
    box-shadow: inset 4px 0 0 var(--ar-border);
}
.ar-fx-row + .ar-fx-row { border-top: 1px solid var(--ar-hairline); }
.ar-fx-row.is-home { box-shadow: inset 4px 0 0 var(--ar-burgundy); }
.ar-fx-row.is-away { box-shadow: inset 4px 0 0 var(--ar-ink); }
.ar-fx-row.is-off { box-shadow: inset 4px 0 0 #8A8580; background: #FBFAF9; }
.ar-fx-row__time { display: flex; flex-direction: column; }
.ar-fx-row__time time { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.5rem; line-height: 1; color: var(--ar-ink); }
.ar-fx-side { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-muted); margin-top: 0.25rem; }
.ar-fx-row h3 { margin: 0.125rem 0 0.25rem; font-size: 1rem; font-weight: 700; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-fx-row .ar-vs { font-weight: 500; color: var(--ar-muted); }
.ar-fx-row__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: flex-end; }

@media (max-width: 767.98px) {
    .ar-fx-row { grid-template-columns: 56px minmax(0, 1fr); padding: 1rem; }
    .ar-fx-row__status, .ar-fx-row__actions { grid-column: 2; justify-content: flex-start; }
    .ar-fx-actions { width: 100%; }
    .ar-fx-actions .ar-btn { flex: 1; }
}

/* ================================================================
   My family (Phase 4)
================================================================ */

.ar-todo {
    margin: 0 0 1.5rem;
    padding: 1.125rem 1.25rem;
    border-radius: var(--ar-radius);
    background: var(--ar-warn-bg);
    color: var(--ar-warn-fg);
}
.ar-todo__title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--ar-warn-fg);
}
.ar-todo__list { margin: 0; padding: 0; list-style: none; }
.ar-todo__list li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; }
.ar-todo__list li + li { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid rgba(107, 78, 0, 0.18); }
.ar-todo__list strong { display: block; color: var(--ar-ink); font-size: 1.0625rem; }
.ar-todo__list span { color: var(--ar-warn-fg); }

.ar-avatar { flex: 0 0 44px; width: 44px; height: 44px; }
.ar-avatar--solid { background: var(--ar-burgundy-dark); color: #FFFFFF; }

/* Programmes strip: a tinted band so it stands out without taking much room. */
.ar-programmes {
    margin: 0 0 1rem;
    padding: 1.25rem;
    border-radius: var(--ar-radius);
    background: var(--ar-burgundy-tint);
}
.ar-programmes__head h2 { margin: 0 0 0.875rem; font-size: 2rem; color: var(--ar-burgundy-darker); }
.ar-programmes__list { display: grid; gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.ar-programmes__list li {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    padding: 0.75rem 0.875rem;
    border-radius: var(--ar-radius-sm);
    background: #FFFFFF;
}
.ar-programmes__mark {
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 1px;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    background: var(--ar-ink);
    color: var(--ar-gold);
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: 0.9375rem;
}
.ar-programmes__mark i { font-size: 0.625rem; }
.ar-programmes__text { flex: 1; min-width: 0; }
.ar-programmes__text h3 { margin: 0; font-size: 1rem; font-weight: 700; color: var(--ar-ink); }
.ar-programmes__text span { font-size: 0.875rem; color: var(--ar-muted); }

.ar-coming { margin: 0; padding: 0; list-style: none; }
/* My family overview: one column on phones (coming up, players, payments, programmes);
   on desktop players fill the left column and the rest stack on the right. */
.ar-famgrid { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
.ar-famgrid > .ar-side-card { margin: 0; padding: 1.25rem 1.5rem; }
@media (min-width: 992px) {
    .ar-famgrid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); grid-template-areas: "players coming" "players pay" "players progs"; grid-template-rows: auto auto 1fr; }
    .ar-famgrid__players { grid-area: players; }
    .ar-famgrid__coming { grid-area: coming; }
    .ar-famgrid__pay { grid-area: pay; }
    .ar-famgrid__progs { grid-area: progs; }
}
.ar-kidlist { margin: 0; padding: 0; list-style: none; }
.ar-kidlist li { display: flex; align-items: center; gap: 0.75rem; min-height: 64px; padding: 0.625rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-kidlist .ar-avatar { flex-shrink: 0; }
.ar-kidlist__who { flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 0.25rem; }
.ar-kidlist__who .ar-pill { white-space: normal; }
.ar-kidlist__act { flex-shrink: 0; display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; color: var(--ar-burgundy); text-decoration: underline; white-space: nowrap; }
.ar-kidlist__act:hover { color: var(--ar-burgundy-dark); }
.ar-kidlist__add { margin-top: 0.5rem; padding-left: 0; }
.ar-proglist { margin: 0; padding: 0; list-style: none; }
.ar-proglist li { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.75rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-proglist li > div { display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; }
.ar-proglist .ar-muted { font-size: 0.875rem; }
.ar-coming li { display: flex; align-items: center; gap: 0.75rem; padding: 0.625rem 0; }
.ar-coming li + li { border-top: 1px solid var(--ar-hairline); }
.ar-coming__date {
    flex: 0 0 44px;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.25rem 0;
    border-radius: 8px;
    background: var(--ar-ink);
    color: #FFFFFF;
    font-family: var(--ar-font-display);
    font-weight: 800;
    font-size: 1.25rem;
    line-height: 1.05;
}
.ar-coming__date.is-home { background: var(--ar-burgundy-dark); }
.ar-coming__date span { font-family: var(--ar-font-body); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.ar-coming__text { flex: 1; min-width: 0; }
.ar-coming__text strong { display: block; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-coming__text span { display: block; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-coming__text .ar-coming__who { margin-top: 0.125rem; font-weight: 600; color: var(--ar-burgundy-dark); }
.ar-coming__who i { margin-right: 0.25rem; }

.ar-money { margin: 0 0 0.25rem; font-family: var(--ar-font-display); font-weight: 800; font-size: 2.75rem; line-height: 1; color: var(--ar-ink); }

@media (max-width: 575.98px) {
    .ar-programmes__list li { flex-wrap: wrap; }
    .ar-programmes__text { flex: 1 1 calc(100% - 58px); }
    .ar-programmes__list li > .ar-btn, .ar-programmes__list li > .ar-pill { margin-left: 58px; }
}

/* ================================================================
   Registration & payment (Phase 5)
================================================================ */

.ar-stepper-nav { display: flex; gap: 0.5rem; margin: 0 0 1.5rem; padding: 0; list-style: none; counter-reset: none; }
.ar-stepper-nav li { display: flex; align-items: center; gap: 0.5rem; flex: 1; padding-bottom: 0.625rem; border-bottom: 3px solid var(--ar-hairline); color: var(--ar-muted); font-weight: 600; font-size: 0.9375rem; }
.ar-stepper-nav li.is-current { border-bottom-color: var(--ar-burgundy-dark); color: var(--ar-ink); }
.ar-stepper-nav li.is-done { border-bottom-color: var(--ar-good-fg); color: var(--ar-ink); }
.ar-stepper-nav__dot { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--ar-hairline); color: var(--ar-ink); font-size: 0.8125rem; font-weight: 700; flex: 0 0 28px; }
.is-current .ar-stepper-nav__dot { background: var(--ar-burgundy-dark); color: #FFFFFF; }
.is-done .ar-stepper-nav__dot { background: var(--ar-good-bg); color: var(--ar-good-fg); }

.ar-reg-title { font-size: clamp(1.75rem, 3.5vw, 2.5rem); margin: 0 0 0.5rem; color: var(--ar-ink); }
.ar-note { display: flex; gap: 0.5rem; padding: 0.75rem 1rem; border-radius: var(--ar-radius-sm); background: var(--ar-neutral-bg); color: var(--ar-neutral-fg); }

/* Player cards */
.ar-reg-player { margin: 0 0 0.75rem; padding: 1rem 1.125rem; border: 0; min-width: 0; }
.ar-reg-player.is-selected { box-shadow: inset 0 0 0 2px var(--ar-burgundy), var(--ar-shadow-1); }
.ar-reg-player__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.ar-reg-player__who strong { display: block; color: var(--ar-ink); }
.ar-reg-player__who span { display: block; font-size: 0.875rem; color: var(--ar-muted); }
.ar-reg-player__fee { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.375rem; color: var(--ar-ink); }
.ar-reg-player__details { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--ar-hairline); }
.ar-reg-player__details[hidden] { display: none; }
.ar-kit { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 0 0.75rem; }
.ar-kit .ar-field[hidden] { display: none; }
select.ar-input { appearance: auto; }

/* Custom checkbox that keeps the native input focusable */
.ar-check { position: relative; display: flex; align-items: center; gap: 0.75rem; margin: 0; cursor: pointer; flex: 1; }
.ar-check__input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ar-check__box {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 26px;
    width: 26px; height: 26px; border-radius: 7px; background: #FFFFFF;
    box-shadow: inset 0 0 0 2px var(--ar-border); color: transparent; font-size: 1rem;
}
.ar-check__input:checked + .ar-check__box { background: var(--ar-burgundy-dark); box-shadow: none; color: #FFFFFF; }
.ar-check__input:focus-visible + .ar-check__box { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-check__input[aria-invalid="true"] + .ar-check__box { box-shadow: inset 0 0 0 2px var(--ar-bad-fg); }
.ar-check--inline { align-items: flex-start; font-size: 0.9375rem; color: var(--ar-ink); }
.ar-check--inline .ar-check__box { margin-top: 1px; }
.ar-conduct a { color: var(--ar-burgundy); font-weight: 600; }

.ar-add-player { margin-top: 1rem; padding: 0; }
.ar-add-player summary { display: flex; align-items: center; gap: 0.5rem; min-height: 52px; padding: 0 1.125rem; color: var(--ar-burgundy); font-weight: 700; cursor: pointer; list-style: none; }
.ar-add-player summary::-webkit-details-marker { display: none; }
.ar-add-player summary::after { content: '+'; margin-left: auto; font-size: 1.25rem; }
.ar-add-player[open] summary::after { content: '\2212'; }
.ar-add-player summary:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: -3px; border-radius: var(--ar-radius); }
.ar-add-player__form { padding: 0 1.125rem 1.125rem; }

/* Summary sidebar */
.ar-reg-summary { position: sticky; top: 1rem; }
.ar-reg-lines { margin: 0 0 1rem; padding: 0; list-style: none; }
.ar-reg-lines li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.625rem 0; border-bottom: 1px solid var(--ar-hairline); }
.ar-reg-lines li > span:first-child strong { display: block; color: var(--ar-ink); }
.ar-reg-lines li > span:first-child span { display: block; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-reg-saving { color: var(--ar-good-fg); font-weight: 600; }
.ar-reg-total { display: flex; align-items: baseline; justify-content: space-between; margin: 0 0 0.5rem; }
.ar-reg-total span { font-weight: 600; color: var(--ar-ink); }
.ar-reg-total strong { font-family: var(--ar-font-display); font-weight: 900; font-size: 2.25rem; color: var(--ar-ink); }

/* Payment plans */
.ar-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0.75rem; }
.ar-plan { position: relative; }
.ar-plan input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.ar-plan label {
    display: flex; flex-direction: column; gap: 0.25rem; height: 100%; margin: 0; padding: 1.125rem;
    border-radius: var(--ar-radius); background: var(--ar-card); box-shadow: var(--ar-shadow-1); cursor: pointer;
}
.ar-plan input:checked + label { box-shadow: inset 0 0 0 2px var(--ar-burgundy), var(--ar-shadow-2); }
.ar-plan input:focus-visible + label { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-plan input:disabled + label { cursor: not-allowed; background: var(--ar-page); box-shadow: none; }
.ar-plan__title { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-weight: 700; color: var(--ar-ink); }
.ar-plan__big { font-family: var(--ar-font-display); font-weight: 900; font-size: 2rem; line-height: 1.1; color: var(--ar-ink); }
.ar-plan__note { font-size: 0.875rem; color: var(--ar-muted); }

.ar-schedule { margin: 0 0 0.75rem; padding: 0; list-style: none; }
.ar-schedule li { display: flex; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px solid var(--ar-hairline); }
.ar-schedule li:first-child span { font-weight: 700; color: var(--ar-ink); }

/* Done */
.ar-done { text-align: center; margin: 0 auto 2rem; max-width: 36rem; }
.ar-done__icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--ar-good-bg); color: var(--ar-good-fg); font-size: 2rem; }
.ar-done h2 { font-size: clamp(2rem, 5vw, 3rem); margin: 0.75rem 0 0.5rem; color: var(--ar-ink); }
.ar-next-steps { margin: 0; padding-left: 1.25rem; }
.ar-next-steps li { padding: 0.375rem 0; }

/* Dialog */
.ar-dialog { width: min(920px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 1.25rem; border: 0; border-radius: var(--ar-radius); box-shadow: var(--ar-shadow-3); }
.ar-dialog::backdrop { background: rgba(26, 23, 22, 0.55); }
.ar-dialog__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.ar-dialog__head h2 { margin: 0; font-size: 1.25rem; font-weight: 700; }
.ar-dialog__close { background: var(--ar-page); color: var(--ar-ink); box-shadow: inset 0 0 0 1px var(--ar-border); }
.ar-size-guide { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.ar-size-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.ar-size-table caption { caption-side: top; padding: 0 0 0.375rem; font-weight: 700; color: var(--ar-ink); }
.ar-size-table th, .ar-size-table td { padding: 0.375rem 0.5rem; border-bottom: 1px solid var(--ar-hairline); text-align: left; }
.ar-size-table thead th { color: var(--ar-muted); font-weight: 600; }

@media (max-width: 575.98px) {
    .ar-stepper-nav li { font-size: 0.8125rem; }
    .ar-reg-summary { position: static; }
}
@media (max-width: 991.98px) { .ar-reg-summary { position: static; } }
.ar-programmes__fit { display: flex; align-items: center; gap: 0.25rem; margin-top: 0.125rem; font-size: 0.8125rem; font-weight: 600; color: var(--ar-good-fg); }
.ar-programmes__fit.is-none { color: var(--ar-muted); font-weight: 500; }

button.ar-back { padding: 0; border: 0; background: none; }
.ar-btn:disabled, .ar-btn[aria-busy="true"] { opacity: 0.6; cursor: not-allowed; }

/* ================================================================
   Club admin & coordinators (Phase 6)
================================================================ */

.ar-kpis { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 1rem; margin: 0 0 1.5rem; }
.ar-kpi { display: flex; flex-direction: column; gap: 0.25rem; padding: 1.125rem 1.25rem; }
.ar-kpi dt { font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-muted); }
.ar-kpi dd { display: flex; flex-direction: column; gap: 0.25rem; margin: 0; }
.ar-kpi__value { font-family: var(--ar-font-display); font-weight: 900; font-size: 2.75rem; line-height: 1; color: var(--ar-ink); }
.ar-kpi--hero .ar-kpi__value { font-size: 3.5rem; color: var(--ar-burgundy-dark); }
.ar-kpi__of { font-weight: 600; color: var(--ar-ink); }
.ar-kpi__note { font-size: 0.875rem; color: var(--ar-muted); }
.ar-kpi__note a { color: var(--ar-burgundy); font-weight: 600; }
.ar-kpi__note--bad { display: flex; align-items: center; gap: 0.25rem; color: var(--ar-bad-fg); font-weight: 600; }
.ar-meter { display: block; height: 8px; margin: 0.375rem 0 0.125rem; border-radius: 999px; background: var(--ar-hairline); overflow: hidden; }
.ar-meter span { display: block; height: 100%; max-width: 100%; border-radius: 999px; background: var(--ar-burgundy); }

/* Weekly bars: one series, one hue; the current week is darker. */
.ar-bars { display: flex; align-items: flex-end; gap: 2px; height: 180px; padding-bottom: 1.5rem; border-bottom: 1px solid var(--ar-hairline); }
.ar-bars__col { position: relative; flex: 1; display: flex; align-items: flex-end; height: 100%; outline: none; }
.ar-bars__bar { display: block; width: 100%; min-height: 2px; border-radius: 4px 4px 0 0; background: #B86A7A; }
.ar-bars__col.is-current .ar-bars__bar { background: var(--ar-burgundy); }
.ar-bars__col:hover .ar-bars__bar,
.ar-bars__col:focus-visible .ar-bars__bar { background: var(--ar-burgundy-dark); }
.ar-bars__col:focus-visible { box-shadow: 0 0 0 2px var(--ar-burgundy); border-radius: 4px; }
.ar-bars__label { position: absolute; left: 50%; bottom: -1.5rem; transform: translateX(-50%); font-size: 0.75rem; color: var(--ar-muted); white-space: nowrap; }
.ar-bars__col:hover::after,
.ar-bars__col:focus-visible::after {
    content: attr(data-tip);
    position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); z-index: 2;
    padding: 0.375rem 0.625rem; border-radius: 8px; background: var(--ar-ink); color: #FFFFFF;
    font-size: 0.8125rem; white-space: nowrap; pointer-events: none;
}
.ar-table-toggle { margin-top: 0.75rem; }
.ar-table-toggle summary { cursor: pointer; color: var(--ar-burgundy); font-weight: 600; font-size: 0.875rem; }

/* Horizontal bars with a target tick */
.ar-hbars { margin: 0; padding: 0; list-style: none; display: grid; gap: 0.625rem; }
.ar-hbars li { display: grid; grid-template-columns: 7rem 1fr 5.5rem; align-items: center; gap: 0.75rem; }
.ar-hbars__name { font-weight: 600; color: var(--ar-ink); font-size: 0.9375rem; }
.ar-hbars__track { position: relative; height: 12px; border-radius: 999px; background: var(--ar-hairline); }
.ar-hbars__bar { display: block; height: 100%; border-radius: 999px; background: var(--ar-burgundy); }
.ar-hbars__target { position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px; background: var(--ar-ink); }
.ar-hbars__value { text-align: right; font-weight: 700; color: var(--ar-ink); }
.ar-legend-target { display: inline-block; width: 2px; height: 12px; margin-right: 0.25rem; vertical-align: middle; background: var(--ar-ink); }

.ar-attention { margin: 0; padding: 0; list-style: none; }
.ar-attention li + li { border-top: 1px solid var(--ar-hairline); }
.ar-attention a { display: flex; align-items: center; gap: 0.75rem; min-height: 48px; padding: 0.375rem 0; color: var(--ar-ink); text-decoration: none; }
.ar-attention a:hover span:nth-child(2) { text-decoration: underline; }
.ar-attention a:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; border-radius: 6px; }
.ar-attention a > span:nth-child(2) { flex: 1; }
.ar-attention i { color: var(--ar-muted); }
.ar-attention__count { display: inline-flex; align-items: center; justify-content: center; min-width: 2.5rem; height: 2rem; padding: 0 0.5rem; border-radius: 8px; font-weight: 800; }
.ar-attention__count--warn { background: var(--ar-warn-bg); color: var(--ar-warn-fg); }
.ar-attention__count--bad { background: var(--ar-bad-bg); color: var(--ar-bad-fg); }
.ar-attention__count--neutral { background: var(--ar-neutral-bg); color: var(--ar-neutral-fg); }

/* Expected players on Teams & managers */

@media (max-width: 991.98px) { .ar-kpis { grid-template-columns: repeat(2, 1fr); } .ar-kpi--hero { grid-column: 1 / -1; } }
@media (max-width: 575.98px) { .ar-kpis { grid-template-columns: 1fr; } .ar-hbars li { grid-template-columns: 5.5rem 1fr 4.5rem; } }
.ar-medical { display: flex; align-items: flex-start; gap: 0.25rem; margin-top: 0.25rem; font-size: 0.8125rem; font-weight: 600; color: var(--ar-bad-fg); }
.ar-medical i { margin-top: 0.125rem; }
.ar-programme-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ar-programme-card { overflow: hidden; display: flex; flex-direction: column; }
.ar-programme-card__band { display: flex; align-items: center; justify-content: space-between; padding: 0.875rem 1.125rem; background: var(--ar-burgundy-dark); }
.ar-programme-card__body { padding: 1rem 1.125rem 1.125rem; display: flex; flex-direction: column; flex: 1; }
.ar-programme-card__body h3 { margin: 0 0 0.25rem; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-programme-card__total { margin: 0 0 0.5rem; color: var(--ar-muted); }
.ar-programme-card__total strong { font-family: var(--ar-font-display); font-weight: 900; font-size: 2.25rem; color: var(--ar-ink); margin-right: 0.25rem; }
.ar-programme-card .ar-segbar { margin-bottom: 0.625rem; }
.ar-programme-closedhead { margin: 0 0 0.25rem; font-size: 1.25rem; font-weight: 700; color: var(--ar-ink); }
.ar-programme-closed { padding: 1.25rem 1.5rem; }
.ar-programme-closed h3 { margin: 0 0 0.25rem; font-size: 1.125rem; font-weight: 700; }
.ar-programme-closed > p { margin: 0 0 0.5rem; font-size: 0.875rem; }
.ar-programme-closed ul { margin: 0; padding: 0; list-style: none; }
.ar-programme-closed li { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; min-height: 48px; border-top: 1px solid var(--ar-hairline); font-size: 0.9375rem; }
.ar-programme-closed li a, .ar-programme-closed__all { font-weight: 700; color: var(--ar-burgundy); }
.ar-programme-closed__all { display: inline-flex; align-items: center; min-height: 44px; }
.ar-programme-card__split { display: flex; flex-wrap: wrap; gap: 0.25rem 0.875rem; margin: 0 0 1rem; font-size: 0.875rem; color: var(--ar-ink); margin-top: auto; }
.ar-programme-card__split i { margin-right: 0.25rem; }
.ar-good { color: var(--ar-good-fg); }
.ar-bad { color: var(--ar-bad-fg); }

/* ================================================================
   Site chrome: header, page title band, sponsors, footer
================================================================ */

.ar-header { position: relative; z-index: 30; background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-header__inner { display: flex; align-items: center; gap: 2rem; min-height: 92px; }

.ar-brand { display: inline-flex; align-items: center; gap: 0.875rem; color: #FFFFFF; text-decoration: none; flex-shrink: 0; }
.ar-brand:hover { color: #FFFFFF; }
.ar-brand__crest { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: #FFFFFF; }
.ar-brand__crest img { width: 50px; height: 50px; object-fit: contain; }
.ar-brand__text { display: flex; flex-direction: column; line-height: 1; }
.ar-brand__name { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.625rem; text-transform: uppercase; color: #FFFFFF; }
.ar-brand__sub { margin-top: 0.25rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: #F4DCE0; }

.ar-nav { display: flex; align-items: center; gap: 1.5rem; flex: 1; }
.ar-nav__list { display: flex; align-items: center; gap: clamp(0.9rem, 1.6vw, 1.75rem); margin: 0; padding: 0; list-style: none; flex: 1; }
.ar-nav__list > li { position: relative; display: flex; align-items: center; }
.ar-nav__link { display: inline-flex; align-items: center; min-height: 44px; color: #F4DCE0; font-weight: 600; font-size: 0.9375rem; text-decoration: none; white-space: nowrap; }
.ar-nav__link:hover { color: #FFFFFF; }
.ar-nav__link[aria-current="page"] { color: #FFFFFF; box-shadow: inset 0 -2px 0 #FFFFFF; }
.ar-nav__sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 44px; border: 0; background: none; color: #F4DCE0; }
.ar-nav__sub-toggle[aria-expanded="true"] i { transform: rotate(180deg); }
.ar-nav__sub { position: absolute; top: 100%; left: -1rem; z-index: 40; min-width: 240px; margin: 0; padding: 0.5rem; list-style: none; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-3); }
.ar-nav__sub[hidden] { display: none; }
.ar-nav__sub a { display: flex; align-items: center; min-height: 44px; padding: 0 0.75rem; border-radius: 10px; color: var(--ar-ink); font-weight: 600; text-decoration: none; }
.ar-nav__sub a:hover { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-darker); }

.ar-header__actions { display: flex; align-items: center; gap: 1rem; margin-left: auto; }
.ar-header__search { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; color: #FFFFFF; font-size: 1.125rem; }
.ar-header__search:hover { background: rgba(255, 255, 255, 0.14); color: #FFFFFF; }
.ar-header__login { color: #FFFFFF; font-weight: 600; text-decoration: none; white-space: nowrap; flex-shrink: 0; }
.ar-header__login:hover { color: #FFFFFF; text-decoration: underline; }
.ar-header__join { display: inline-flex; align-items: center; min-height: 46px; padding: 0 1.25rem; border-radius: 12px; background: #FFFFFF; color: var(--ar-burgundy-dark); font-weight: 700; text-decoration: none; white-space: nowrap; flex-shrink: 0; }
.ar-header__join:hover { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-darker); }

.ar-areas { position: relative; }
.ar-areas__toggle { display: inline-flex; white-space: nowrap; align-items: center; gap: 0.625rem; min-height: 48px; padding: 0 0.5rem 0 1.125rem; border: 0; border-radius: 999px; background: #FFFFFF; color: var(--ar-burgundy-dark); font-weight: 700; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25); }
.ar-areas__avatar { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--ar-burgundy-dark); color: #FFFFFF; font-size: 0.75rem; }
.ar-areas__panel { position: absolute; right: 0; top: calc(100% + 10px); z-index: 40; width: 300px; padding: 0.5rem; border-radius: var(--ar-radius); background: #FFFFFF; color: var(--ar-ink); box-shadow: var(--ar-shadow-3); }
.ar-areas__panel[hidden] { display: none; }
.ar-areas__who { margin: 0 0 0.375rem; padding: 0.75rem; border-bottom: 1px solid var(--ar-hairline); }
.ar-areas__who strong { display: block; }
.ar-areas__who span { font-size: 0.8125rem; color: var(--ar-muted); }
.ar-areas__panel ul { margin: 0; padding: 0; list-style: none; }
.ar-areas__panel ul a { display: flex; flex-direction: column; justify-content: center; min-height: 52px; padding: 0.25rem 0.75rem; border-radius: 10px; color: var(--ar-ink); text-decoration: none; }
.ar-areas__panel ul a:hover { background: var(--ar-burgundy-tint); }
.ar-areas__panel ul span { font-size: 0.8125rem; color: var(--ar-muted); }
.ar-areas__logout { display: flex; align-items: center; min-height: 44px; margin-top: 0.375rem; padding: 0 0.75rem; border-top: 1px solid var(--ar-hairline); color: var(--ar-muted); text-decoration: none; }
.ar-areas__logout:hover { color: var(--ar-ink); text-decoration: underline; }

.ar-header__menu-toggle { display: none; align-items: center; gap: 0.375rem; min-height: 44px; margin-left: auto; padding: 0 0.875rem; border: 0; border-radius: 10px; background: rgba(255, 255, 255, 0.14); color: #FFFFFF; font-weight: 600; }
.ar-header__menu-toggle i { font-size: 1.375rem; }

.ar-header a:focus-visible, .ar-header button:focus-visible { outline: 3px solid var(--ar-gold); outline-offset: 2px; }
.ar-nav__sub a:focus-visible, .ar-areas__panel a:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: -3px; }

/* Homepage: the header sits over the hero slider. */
body:has(.ar-hero) .ar-header { position: absolute; top: 0; left: 0; right: 0; background: linear-gradient(180deg, rgba(20, 4, 8, 0.55), rgba(20, 4, 8, 0)); }

@media (max-width: 991.98px) {
    .ar-header__inner { flex-wrap: wrap; min-height: 76px; gap: 1rem; }
    .ar-brand__crest { width: 48px; height: 48px; }
    .ar-brand__crest img { width: 42px; height: 42px; }
    .ar-brand__name { font-size: 1.375rem; }
    .ar-header__menu-toggle { display: inline-flex; }
    .ar-nav { display: none; flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 0.5rem; padding: 0 0 1rem; }
    .ar-nav.is-open { display: flex; }
    .ar-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
    .ar-nav__list > li { flex-wrap: wrap; border-top: 1px solid rgba(255, 255, 255, 0.14); }
    .ar-nav__link { flex: 1; min-height: 52px; font-size: 1.0625rem; }
    .ar-nav__link[aria-current="page"] { box-shadow: inset 3px 0 0 #FFFFFF; padding-left: 0.75rem; }
    .ar-nav__sub-toggle { width: 52px; height: 52px; }
    .ar-nav__sub { position: static; flex-basis: 100%; min-width: 0; margin-bottom: 0.5rem; box-shadow: none; }
    .ar-header__actions { flex-wrap: wrap; margin: 0.5rem 0 0; gap: 0.75rem; }
    .ar-areas { width: 100%; }
    .ar-areas__panel { position: static; width: auto; margin-top: 0.5rem; }
    body:has(.ar-hero) .ar-header { position: relative; background: var(--ar-burgundy-dark); }
    body.ar-nav-open:has(.ar-hero) .ar-header { position: relative; }
}
@media (max-width: 479.98px) {
    .ar-header__inner { gap: 0.75rem; }
    .ar-brand { gap: 0.625rem; }
    .ar-brand__crest { width: 42px; height: 42px; }
    .ar-brand__crest img { width: 36px; height: 36px; }
    .ar-brand__name { font-size: 1.125rem; }
    .ar-brand__sub { font-size: 0.625rem; letter-spacing: 0.14em; }
}

/* Page title band */
.ar-pagehead { position: relative; overflow: hidden; background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-pagehead__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.16; pointer-events: none; }
.ar-pagehead__inner { position: relative; padding-top: 1.5rem; padding-bottom: 3rem; }
.ar-pagehead__title { margin: 0 0 0.625rem; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.5rem, 7vw, 5.5rem); line-height: 0.9; text-transform: uppercase; color: #FFFFFF; overflow-wrap: anywhere; }
.ar-pagehead__sub { font-size: 1.0625rem; color: #F4DCE0; max-width: 46rem; }
.ar-pagehead__sub:empty { display: none; }
.ar-pagehead__sub p { margin: 0; }

/* Sponsors */
.ar-sponsors { padding: 3.5rem 0 3rem; background: var(--ar-page); }
.ar-sponsors__title { margin: 0 0 1rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ar-muted); }
.ar-sponsors__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ar-sponsors__grid a { display: flex; align-items: center; justify-content: center; height: 104px; border-radius: var(--ar-radius); background: #FFFFFF; overflow: hidden; box-shadow: var(--ar-shadow-1); }
.ar-sponsors__grid img { width: 100%; height: 100%; object-fit: contain; }
.ar-sponsors__grid a:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }

/* Footer */
.ar-footer { padding: 3.5rem 0 1.5rem; background: var(--ar-ink); color: #D8D2CE; font-size: 0.9375rem; }
.ar-footer a { color: #D8D2CE; text-decoration: none; }
.ar-footer a:hover { color: #FFFFFF; text-decoration: underline; }
.ar-footer a:focus-visible { outline: 3px solid var(--ar-gold); outline-offset: 2px; }
.ar-footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; }
.ar-footer__brand p { margin: 1rem 0 0; line-height: 1.6; }
.ar-footer__brand .ar-brand__name { font-size: 1.5rem; }
.ar-footer h2 { margin: 0 0 0.75rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #FFFFFF; }
.ar-footer ul { margin: 0; padding: 0; list-style: none; }
.ar-footer nav li { padding: 0.3125rem 0; }
.ar-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2.5rem; padding-top: 1.25rem; border-top: 1px solid rgba(255, 255, 255, 0.12); }
.ar-footer__bottom p { margin: 0; color: #A8A19C; }
.ar-footer__social { display: flex; gap: 0.5rem; }
.ar-footer__social a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, 0.08); }
.ar-footer__social a:hover { background: rgba(255, 255, 255, 0.18); text-decoration: none; }
@media (max-width: 767.98px) { .ar-footer__grid { grid-template-columns: 1fr 1fr; } .ar-footer__brand { grid-column: 1 / -1; } }

/* ==========================================================================
   Area header: slim white bar for My family, Managers, Programmes and Club
   admin. Sits under the dark area strip and replaces the public header.
   ========================================================================== */
.ar-areahead-bar { position: relative; z-index: 30; background: #FFFFFF; box-shadow: 0 1px 0 var(--ar-hairline); }
.ar-areahead-bar__inner { display: flex; align-items: center; gap: 2rem; min-height: 64px; }
.ar-areahead-bar__brand { display: inline-flex; align-items: center; gap: 0.625rem; flex-shrink: 0; color: var(--ar-ink); text-decoration: none; }
.ar-areahead-bar__brand img { width: 36px; height: 36px; object-fit: contain; }
.ar-areahead-bar__brand span { font-family: var(--ar-font-display); font-weight: 700; font-size: 1.25rem; text-transform: uppercase; white-space: nowrap; }
.ar-areahead-bar__brand:hover { color: var(--ar-burgundy-dark); }
.ar-areahead-bar__nav { flex: 1; min-width: 0; }
.ar-areahead-bar__nav ul { display: flex; gap: 0.25rem; margin: 0; padding: 0; list-style: none; overflow-x: auto; scrollbar-width: none; }
.ar-areahead-bar__nav ul::-webkit-scrollbar { display: none; }
.ar-areahead-bar__nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.875rem; border-radius: 8px; color: var(--ar-muted); font-size: 0.875rem; font-weight: 500; text-decoration: none; white-space: nowrap; }
.ar-areahead-bar__nav a:hover { background: #F1EFEC; color: var(--ar-ink); }
.ar-areahead-bar__nav a[aria-current="page"] { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-weight: 600; }
.ar-areahead-bar__account { margin-left: auto; flex-shrink: 0; }
.ar-areahead-bar__avatar { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--ar-ink); color: #FFFFFF; font-size: 0.8125rem; font-weight: 600; }
.ar-areahead-bar__avatar:hover, .ar-areahead-bar__avatar[aria-expanded="true"] { background: var(--ar-burgundy-dark); }
.ar-areahead-bar .ar-areas { width: auto; }
.ar-areahead-bar .ar-areas__panel { position: absolute; right: 0; top: calc(100% + 10px); width: 300px; margin: 0; }

/* Crest (to the club website) + area switcher. */
.ar-areahead-bar__crest { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; margin-right: -1.25rem; border-radius: 10px; }
.ar-areahead-bar__crest img { width: 36px; height: 36px; object-fit: contain; }
.ar-areahead-bar__crest:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-areaswitch { flex-shrink: 0; }
.ar-areaswitch__button { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; padding: 0 0.625rem; border: 0; border-radius: 10px; background: none; color: var(--ar-ink); font-family: var(--ar-font-display); font-size: 1.25rem; font-weight: 700; text-transform: uppercase; white-space: nowrap; }
.ar-areaswitch__button i { color: var(--ar-burgundy-dark); font-size: 0.875rem; -webkit-text-stroke: 1px; transition: transform 0.15s ease; }
.ar-areaswitch__button:hover, .ar-areaswitch__button[aria-expanded="true"] { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }
.ar-areaswitch__button[aria-expanded="true"] i { transform: rotate(180deg); }
.ar-areaswitch__button:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-areahead-bar .ar-areaswitch__panel { left: 0; right: auto; width: 340px; }
.ar-areaswitch__title { margin: 0.375rem 0.75rem 0.5rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ar-muted); }
.ar-areaswitch__panel ul a { position: relative; min-height: 56px; padding-right: 2.5rem; }
.ar-areaswitch__panel ul a[aria-current="page"] { background: var(--ar-burgundy-tint); }
.ar-areaswitch__panel ul a[aria-current="page"]::after { content: "\F26E"; position: absolute; right: 0.875rem; top: 50%; transform: translateY(-50%); font-family: "bootstrap-icons"; font-size: 1.25rem; color: var(--ar-burgundy-dark); }
.ar-areaswitch__site { display: flex; align-items: center; gap: 0.75rem; min-height: 56px; margin-top: 0.375rem; padding: 0.25rem 0.75rem; border-top: 1px solid var(--ar-hairline); color: var(--ar-ink); text-decoration: none; }
.ar-areaswitch__site i { color: var(--ar-burgundy-dark); }
.ar-areaswitch__site > span { display: flex; flex-direction: column; }
.ar-areaswitch__site > span > span { font-size: 0.8125rem; color: var(--ar-muted); }
.ar-areaswitch__site:hover { background: var(--ar-burgundy-tint); border-radius: 0 0 10px 10px; }
.ar-areahead-bar__crest + .ar-areahead-bar__brand { margin-left: 0.5rem; }

@media (max-width: 767.98px) {
    .ar-areahead-bar__inner { flex-wrap: wrap; gap: 0 0.5rem; min-height: 0; padding-top: 0.5rem; }
    .ar-areahead-bar__crest { margin-right: 0; }
    .ar-areahead-bar__brand { min-height: 48px; }
    .ar-areahead-bar__crest + .ar-areahead-bar__brand { margin-left: 0; }
    .ar-areaswitch { flex: 1; min-width: 0; }
    .ar-areaswitch__button { max-width: 100%; font-size: 1.125rem; }
    /* The switcher panel spans the phone: position it against the header, not the button. */
    .ar-areahead-bar .ar-areaswitch { position: static; }
    .ar-areahead-bar__inner { position: relative; }
    .ar-areahead-bar .ar-areaswitch__panel { left: 0.625rem; right: 0.625rem; top: calc(100% - 3rem); width: auto; }
    /* Section tabs get their own row that scrolls sideways, with a fade on the edge that has more. */
    .ar-areahead-bar__nav { order: 3; flex-basis: 100%; position: relative; margin: 0.25rem calc(var(--bs-gutter-x, 1.5rem) * -0.5) 0; border-top: 1px solid var(--ar-hairline); }
    .ar-areahead-bar__nav ul { gap: 0.125rem; padding: 0.375rem calc(var(--bs-gutter-x, 1.5rem) * 0.5); scroll-padding-inline: 2.5rem; }
    .ar-areahead-bar__nav::before,
    .ar-areahead-bar__nav::after { content: ""; position: absolute; top: 1px; bottom: 0; width: 2.5rem; pointer-events: none; opacity: 0; transition: opacity 0.15s ease; }
    .ar-areahead-bar__nav::before { left: 0; background: linear-gradient(to right, #FFFFFF 20%, rgba(255, 255, 255, 0)); }
    .ar-areahead-bar__nav::after { right: 0; background: linear-gradient(to left, #FFFFFF 20%, rgba(255, 255, 255, 0)); }
    .ar-areahead-bar__nav.has-more-start::before,
    .ar-areahead-bar__nav.has-more-end::after { opacity: 1; }
}

/* In-area page title: no burgundy band, just a big italic heading on the page. */
.ar-areatitle { padding-top: 2rem; padding-bottom: 0.25rem; }
/* Canvas gives #content a tall top padding meant for pages under a banner. */
.ar-areatitle ~ #content .content-wrap { padding-top: 1.75rem; }
.ar-areatitle__title { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.25rem, 5vw, 3.5rem); line-height: 0.95; text-transform: uppercase; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-areatitle__sub { margin-top: 0.5rem; font-size: 1rem; color: var(--ar-muted); max-width: 46rem; }
.ar-areatitle__sub:empty { display: none; }
.ar-areatitle__sub p { margin: 0; }

/* ==========================================================================
   Log in / create account, and the small account status cards
   (check your inbox, link expired, forgot password).
   ========================================================================== */
.ar-auth-page, #content.ar-auth-page { padding: 2.5rem 0 4rem; background: var(--ar-page); }
.ar-auth__group--narrow { max-width: 360px; }
.ar-auth { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); overflow: hidden; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-auth__brand { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1.5rem; padding: 3rem; background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-auth__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.14; pointer-events: none; }
.ar-auth__crest { position: relative; width: 120px; height: 120px; filter: drop-shadow(0 16px 32px rgba(0, 0, 0, 0.4)); }
.ar-auth__headline { position: relative; margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.75rem, 5vw, 4.25rem); line-height: 0.88; text-transform: uppercase; color: #FFFFFF; }
.ar-auth__ticks { position: relative; display: grid; gap: 0.875rem; margin: 0; padding: 0; list-style: none; color: #F4DCE0; font-size: 1rem; }
.ar-auth__ticks li { display: flex; align-items: center; gap: 0.75rem; }
.ar-auth__ticks i { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; background: rgba(255, 255, 255, 0.14); color: #FFFFFF; }
.ar-auth__main { padding: 2.5rem 3.5rem 3rem; min-width: 0; }
.ar-auth__switch { display: inline-flex; gap: 0.25rem; padding: 0.25rem; margin-bottom: 1.75rem; border-radius: 14px; background: var(--ar-hairline); }
.ar-auth__switch a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 1.375rem; border-radius: 11px; color: var(--ar-muted); font-weight: 600; text-decoration: none; }
.ar-auth__switch a:hover { color: var(--ar-ink); }
.ar-auth__switch a[aria-current="page"] { background: #FFFFFF; color: var(--ar-ink); box-shadow: var(--ar-shadow-1); }
.ar-auth__panel[hidden] { display: none; }
.ar-auth__title { margin: 0 0 0.375rem; font-family: var(--ar-font-display); font-weight: 800; font-size: 2.75rem; line-height: 1; text-transform: uppercase; color: var(--ar-ink); }
.ar-auth__lead { margin: 0 0 1.25rem; color: var(--ar-muted); }
.ar-auth__form { max-width: 560px; margin-top: 1.25rem; }
.ar-auth__group { margin: 0 0 0.5rem; padding: 0; border: 0; min-width: 0; }
.ar-auth__group legend { float: none; margin: 0 0 0.75rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ar-burgundy); }
.ar-auth__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; }
.ar-auth__label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ar-auth__label-row a { font-size: 0.875rem; font-weight: 600; }
.ar-auth__submit { min-height: 54px; padding: 0 2rem; font-size: 1rem; }
.ar-auth__note { margin: 1rem 0 0; font-size: 0.875rem; color: var(--ar-muted); }
.ar-auth textarea.ar-input { min-height: 48px; height: 76px; resize: vertical; }
.ar-optional { font-weight: 500; color: var(--ar-muted); }
.ar-error-summary h3 { font-size: 1rem; font-weight: 700; margin: 0 0 0.375rem; color: var(--ar-bad-fg); }

/* Show / hide password */
.ar-reveal { position: relative; }
.ar-reveal .ar-input { padding-right: 5rem; }
.ar-reveal__btn { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); min-height: 40px; padding: 0 0.75rem; border: 0; border-radius: 8px; background: transparent; color: var(--ar-burgundy); font-weight: 600; font-size: 0.875rem; }
.ar-reveal__btn:hover { background: var(--ar-burgundy-tint); }

/* Callouts */
.ar-callout { margin: 0 0 1.25rem; padding: 1rem 1.125rem; border-radius: var(--ar-radius-sm); }
.ar-callout p { margin: 0 0 0.75rem; }
.ar-callout p:last-child { margin-bottom: 0; }
.ar-callout--warn { background: var(--ar-warn-bg); color: var(--ar-warn-fg); }
.ar-callout--bad { background: var(--ar-bad-bg); color: var(--ar-bad-fg); }
.ar-callout--info { background: var(--ar-burgundy-tint); color: #4A3036; }

/* Centred status card (check your inbox, link expired, forgot password) */
.ar-status-card { max-width: 560px; margin: 0 auto; padding: 2.5rem 2.25rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); text-align: center; }
.ar-status-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 88px; height: 88px; margin-bottom: 1rem; border-radius: 50%; background: var(--ar-burgundy-dark); color: #FFFFFF; font-size: 2.25rem; }
.ar-status-card__icon--warn { background: var(--ar-warn-bg); color: var(--ar-warn-fg); }
.ar-status-card__title { margin: 0 0 0.75rem; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.25rem, 6vw, 3rem); line-height: 0.95; text-transform: uppercase; color: var(--ar-ink); }
.ar-status-card__text { margin: 0 auto 0.75rem; max-width: 26rem; color: var(--ar-muted); line-height: 1.55; }
.ar-status-card__text strong { color: var(--ar-ink); }
.ar-status-card__form { max-width: 380px; margin: 1.25rem auto 0; text-align: left; }
.ar-status-card__form .ar-btn { width: 100%; min-height: 52px; }
.ar-status-card__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.625rem; margin-top: 1.25rem; }
.ar-status-card__foot { margin: 1.25rem 0 0; font-size: 0.875rem; color: var(--ar-muted); }

@media (max-width: 991.98px) {
    .ar-auth { grid-template-columns: 1fr; }
    .ar-auth__brand { padding: 1.75rem 1.5rem; gap: 1rem; flex-direction: row; flex-wrap: wrap; align-items: center; }
    .ar-auth__crest { width: 64px; height: 64px; }
    .ar-auth__headline { flex: 1 1 200px; font-size: 2.25rem; }
    .ar-auth__ticks { display: none; }
    .ar-auth__main { padding: 1.5rem 1.25rem 2rem; }
}
@media (max-width: 575.98px) {
    .ar-auth-page { padding: 1rem 0 2.5rem; }
    .ar-auth__grid { grid-template-columns: 1fr; }
    .ar-auth__switch { display: flex; }
    .ar-auth__switch a { flex: 1; justify-content: center; padding: 0 0.75rem; }
    .ar-auth__submit { width: 100%; }
    .ar-status-card { padding: 2rem 1.25rem; }
}

/* Card problem at checkout */
.ar-pay-error h2 { font-size: 1.0625rem; font-weight: 700; margin: 0 0 0.375rem; color: var(--ar-bad-fg); }
.ar-pay-error p { margin: 0 0 0.375rem; font-size: 0.9375rem; line-height: 1.5; }
.ar-pay-error p:last-child { margin-bottom: 0; }
.ar-reg-saving-note { font-size: 0.8125rem; color: var(--ar-good-fg); margin-top: -0.25rem; }
.ar-status-card__icon--tint { background: var(--ar-burgundy-tint); color: var(--ar-burgundy); }

/* ==========================================================================
   Admin lists: status chips with counts, filter bar, data table, drawer
   ========================================================================== */
a.ar-chip { min-height: 44px; }
.ar-chip__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ar-muted); }
.ar-chip--good .ar-chip__dot { background: #1E8A4C; }
.ar-chip--warn .ar-chip__dot { background: #C99A1E; }
.ar-chip--bad .ar-chip__dot { background: #C22D2D; }
.ar-chip__count { margin-left: 0.25rem; padding: 0 0.4rem; border-radius: 999px; background: var(--ar-page); color: var(--ar-muted); font-size: 0.75rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ar-chip[aria-current="page"] .ar-chip__dot { background: #FFFFFF; }
.ar-chip[aria-current="page"] .ar-chip__count { background: rgba(255, 255, 255, 0.18); color: #FFFFFF; }

.ar-filterbar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; margin: 0 0 1.25rem; }
.ar-filterbar__search { display: flex; align-items: center; gap: 0.5rem; flex: 1 1 260px; min-height: 46px; padding: 0 0.875rem; border-radius: var(--ar-radius-sm); background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--ar-border); color: var(--ar-muted); margin: 0; }
.ar-filterbar__search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font-size: 0.9375rem; color: var(--ar-ink); }
.ar-filterbar__search:focus-within { box-shadow: inset 0 0 0 2px var(--ar-burgundy); }
.ar-filterbar__select { display: flex; align-items: center; gap: 0.5rem; min-height: 46px; margin: 0; padding: 0 0.75rem; border-radius: var(--ar-radius-sm); background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--ar-border); font-size: 0.875rem; color: var(--ar-muted); white-space: nowrap; }
.ar-filterbar__select select { max-width: 200px; border: 0; background: transparent; font-weight: 600; font-size: 0.875rem; color: var(--ar-ink); }
.ar-filterbar__clear { font-weight: 600; font-size: 0.875rem; }
.ar-filterbar__export { margin-left: auto; }

.ar-table-card { overflow: hidden; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-table { width: 100%; margin: 0; border-collapse: collapse; }
.ar-table thead th { padding: 0.75rem 1rem; background: #FAF9F7; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-muted); text-align: left; white-space: nowrap; }
.ar-table thead th.text-end { text-align: right; }
.ar-table tbody th, .ar-table tbody td { padding: 0.875rem 1rem; border-top: 1px solid var(--ar-hairline); vertical-align: middle; font-size: 0.9375rem; font-weight: 400; color: var(--ar-ink); }
.ar-table tbody th strong { font-weight: 700; }
.ar-table tbody tr.is-alert { background: #FBF3F4; }
.ar-table__sub { display: block; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-table__warn { color: var(--ar-bad-fg); font-weight: 600; }
.ar-table__empty { padding: 2.5rem 1rem !important; text-align: center; color: var(--ar-muted); }
.ar-table__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.875rem 1rem; border-top: 1px solid var(--ar-hairline); font-size: 0.875rem; color: var(--ar-muted); }
.ar-table__foot .ar-table__sub { display: inline; }
.ar-pager { display: flex; align-items: center; gap: 1rem; }
.ar-pager a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.ar-tag { display: inline-flex; align-items: center; margin-left: 0.25rem; padding: 0.125rem 0.4rem; border-radius: 6px; background: #F1EFEC; font-size: 0.75rem; font-weight: 700; color: #3D3936; }

@media (max-width: 767.98px) {
    /* Rows become cards on phones. */
    .ar-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .ar-table--stack tbody tr { display: grid; grid-template-columns: 1fr auto; gap: 0.25rem 1rem; padding: 0.875rem 1rem; border-top: 1px solid var(--ar-hairline); }
    .ar-table--stack tbody th, .ar-table--stack tbody td { display: block; padding: 0; border: 0; text-align: left !important; }
    .ar-table--stack tbody th { grid-column: 1 / -1; }
    .ar-table--stack tbody td[data-label]::before { content: attr(data-label); display: block; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-muted); }
    .ar-table--stack tbody td:last-child { grid-column: 1 / -1; }
    .ar-table--stack tbody td:last-child .ar-btn { width: 100%; }
    .ar-filterbar__export { margin-left: 0; }
}

/* Side drawer built on <dialog> */
.ar-drawer { position: fixed; inset: 0 0 0 auto; width: min(460px, 100vw); max-width: 100vw; height: 100%; max-height: 100%; margin: 0; padding: 1.5rem; border: 0; background: #FFFFFF; color: var(--ar-ink); box-shadow: var(--ar-shadow-3); overflow-y: auto; }
.ar-drawer::backdrop { background: rgba(26, 23, 22, 0.45); }
.ar-drawer__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1rem; }
.ar-drawer__head h2 { margin: 0.25rem 0; font-family: var(--ar-font-display); font-weight: 800; font-size: 2rem; line-height: 1; text-transform: uppercase; color: var(--ar-ink); }
.ar-drawer__head .ar-eyebrow { margin: 0; }
.ar-drawer__sub { margin: 0; font-size: 0.875rem; color: var(--ar-muted); }
.ar-drawer__close { flex-shrink: 0; width: 44px; height: 44px; border: 0; border-radius: 12px; background: #F1EFEC; color: var(--ar-ink); }
.ar-drawer__close:hover { background: var(--ar-hairline); }
.ar-drawer__facts { display: grid; grid-template-columns: 110px 1fr; gap: 0.625rem 1rem; margin: 0 0 1.5rem; font-size: 0.9375rem; }
.ar-drawer__facts dt { font-weight: 600; color: var(--ar-muted); }
.ar-drawer__facts dd { margin: 0; overflow-wrap: anywhere; }
.ar-drawer__form { padding-top: 1.25rem; border-top: 1px solid var(--ar-hairline); }
.ar-drawer__form h3 { margin: 0 0 1rem; font-size: 1rem; font-weight: 700; }
.ar-drawer__kit { margin: 0 0 1.25rem; padding: 0; border: 0; }
.ar-drawer__kit > div { display: grid; grid-template-columns: 70px 1fr; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
.ar-drawer__kit label { font-size: 0.875rem; font-weight: 600; }
.ar-drawer__actions { display: flex; flex-wrap: wrap; gap: 0.625rem; }
body.ar-drawer-open { overflow: hidden; }

/* ==========================================================================
   Mailshot composer: three steps on the left, live preview on the right
   ========================================================================== */
.ar-composer__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 1.25rem; }
.ar-composer__top a { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; font-weight: 600; }
.ar-composer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 1.75rem; align-items: start; }
.ar-composer__main { display: grid; gap: 1.125rem; min-width: 0; }
.ar-composer__main > form { display: grid; gap: 1.125rem; }
.ar-composer__step { padding: 1.375rem 1.5rem; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-composer__step h2 { display: flex; align-items: center; gap: 0.625rem; margin: 0 0 1.125rem; font-size: 1rem; font-weight: 700; color: var(--ar-ink); }
.ar-composer__step h2 span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ar-burgundy-dark); color: #FFFFFF; font-size: 0.8125rem; }
.ar-composer .form-control, .ar-composer .form-select { min-height: 48px; border: 1px solid var(--ar-border); border-radius: var(--ar-radius-sm); font-size: 1rem; color: var(--ar-ink); }
.ar-composer .form-control:focus, .ar-composer .form-select:focus { border-color: var(--ar-burgundy); box-shadow: 0 0 0 3px rgba(130, 30, 48, 0.2); }
.ar-composer__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0 1rem; }
.ar-composer__note { margin: 0 0 0.75rem; font-size: 0.875rem; color: var(--ar-muted); }
.ar-composer__check { display: flex; align-items: flex-start; gap: 0.75rem; margin: 0 0 1rem; padding: 0.875rem 1rem; border-radius: 12px; background: var(--ar-page); cursor: pointer; font-size: 0.875rem; color: var(--ar-muted); }
.ar-composer__check input { flex-shrink: 0; width: 20px; height: 20px; margin: 0.125rem 0 0; accent-color: var(--ar-burgundy-dark); }
.ar-composer__check strong { display: block; font-size: 0.9375rem; color: var(--ar-ink); }
.ar-composer__count { display: flex; align-items: center; gap: 0.875rem; margin: 0 0 0.5rem; padding: 0.875rem 1rem; border-radius: 12px; background: var(--ar-ink); color: #FFFFFF; }
.ar-composer__count i { font-size: 1.375rem; }
.ar-composer__count strong { margin-right: 0.25rem; font-family: var(--ar-font-display); font-size: 1.75rem; font-weight: 800; }
.ar-composer .mailshot-wysiwyg-wrap { overflow: hidden; border: 1px solid var(--ar-border); border-radius: 12px; }
.ar-composer .ql-toolbar.ql-snow { border: 0; border-bottom: 1px solid var(--ar-hairline); background: #FAF9F7; }
.ar-composer .ql-container.ql-snow { border: 0; font-size: 1rem; }
.ar-composer__advanced { margin: 0 0 1rem; padding: 0.75rem 1rem; border-radius: 12px; background: var(--ar-page); }
.ar-composer__advanced summary { min-height: 32px; display: flex; align-items: center; cursor: pointer; font-weight: 600; font-size: 0.9375rem; }
.ar-composer__advanced[open] summary { margin-bottom: 0.75rem; }
.ar-composer__label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.ar-composer__save { display: flex; gap: 0.625rem; }
.ar-composer__test { display: flex; align-items: flex-end; gap: 0.625rem; margin: 0 0 1.25rem; }
.ar-composer__test .ar-field { flex: 1; }
.ar-composer__send { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding-top: 1.125rem; border-top: 1px solid var(--ar-hairline); }
.ar-composer__send .ar-btn { min-height: 52px; padding: 0 1.5rem; font-size: 1rem; }
.ar-composer__preview { position: sticky; top: 1.5rem; }
.ar-composer__preview h2 { margin: 0 0 0.75rem; }
.ar-composer__frame { overflow: hidden; border-radius: var(--ar-radius); background: #F7F6F4; box-shadow: var(--ar-shadow-2); }
.ar-composer__frame iframe { display: block; width: 100%; height: 720px; border: 0; }

@media (max-width: 1199.98px) {
    .ar-composer { grid-template-columns: 1fr; }
    .ar-composer__preview { position: static; }
}
@media (max-width: 575.98px) {
    .ar-composer__step { padding: 1.125rem 1rem; }
    .ar-composer__test { flex-direction: column; align-items: stretch; }
    .ar-composer__frame iframe { height: 560px; }
}

/* ==========================================================================
   My family · Players
   ========================================================================== */
.ar-players { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 1.5rem; align-items: start; }
.ar-players__list { display: grid; gap: 0.875rem; min-width: 0; }
.ar-players__note { margin: 0.25rem 0 0; font-size: 0.875rem; color: var(--ar-muted); }
.ar-player-card { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.125rem 1.25rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-player-card.is-editing { box-shadow: inset 0 0 0 2px var(--ar-burgundy-dark), var(--ar-shadow-1); }
.ar-player-card__avatar { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; background: var(--ar-burgundy-dark); color: #FFFFFF; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.375rem; }
.ar-player-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin-bottom: 0.25rem; }
.ar-player-card__head h2 { margin: 0; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-player-card__meta { margin: 0; font-size: 0.875rem; color: var(--ar-muted); }
.ar-player-card__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.5rem; }
.ar-player-add { display: flex; align-items: center; justify-content: center; gap: 0.5rem; min-height: 72px; border-radius: var(--ar-radius-lg); box-shadow: inset 0 0 0 2px var(--ar-border); color: var(--ar-burgundy-dark); font-weight: 700; text-decoration: none; }
.ar-player-add:hover { background: #FFFFFF; color: var(--ar-burgundy-darker); }
.ar-players__panel { position: sticky; top: 1.5rem; padding: 1.5rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-players__panel-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 1rem; }
.ar-players__panel-head h2 { margin: 0; font-size: 1.25rem; font-weight: 700; color: var(--ar-ink); }
.ar-players__panel-head .ar-drawer__close { display: inline-flex; align-items: center; justify-content: center; }
.ar-players__gender { border: 0; padding: 0; min-width: 0; }
.ar-segmented--2 { grid-template-columns: repeat(2, 1fr); }
.ar-players__actions { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.ar-players__danger { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--ar-hairline); font-size: 0.875rem; color: var(--ar-muted); }
.ar-danger-link { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; color: #A3212B; font-weight: 700; }
.ar-danger-link:hover { color: #7E1720; }
.ar-btn--danger { background: #A3212B; color: #FFFFFF; }
.ar-btn--danger:hover, .ar-btn--danger:focus-visible { background: #7E1720; color: #FFFFFF; }

@media (max-width: 991.98px) {
    .ar-players { grid-template-columns: 1fr; }
    .ar-players__panel { position: static; }
}
@media (max-width: 575.98px) {
    .ar-player-card { grid-template-columns: 48px minmax(0, 1fr); }
    .ar-player-card__avatar { width: 48px; height: 48px; font-size: 1.125rem; }
    .ar-player-card__actions { grid-column: 1 / -1; justify-content: stretch; }
    .ar-player-card__actions .ar-btn { flex: 1; }
}

/* Confirm dialog for deletes and bulk changes (<dialog class="ar-confirm">) */
.ar-confirm { width: min(480px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 1.75rem; border: 0; border-radius: 24px; background: #FFFFFF; color: var(--ar-ink); box-shadow: 0 24px 60px rgba(20, 10, 10, 0.25); }
.ar-confirm::backdrop { background: rgba(26, 23, 22, 0.5); }
.ar-confirm__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 1rem; border-radius: 16px; background: var(--ar-bad-bg); color: #A3212B; font-size: 1.5rem; }
.ar-confirm__eyebrow { margin: 0 0 0.25rem; color: var(--ar-muted); }
.ar-confirm__title { margin: 0 0 1rem; font-size: 1.5rem; font-weight: 800; color: var(--ar-ink); }
.ar-confirm__facts { margin: 0 0 1rem; }
.ar-confirm__facts > div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.625rem 0; border-bottom: 1px solid var(--ar-hairline); font-size: 0.9375rem; }
.ar-confirm__facts dt { font-weight: 400; color: var(--ar-muted); }
.ar-confirm__facts dd { margin: 0; font-weight: 700; text-align: right; }
.ar-confirm__note { display: flex; gap: 0.625rem; align-items: flex-start; margin: 0 0 1.25rem; padding: 0.875rem 1rem; border-radius: 12px; background: var(--ar-warn-bg); color: #4A3700; font-size: 0.875rem; line-height: 1.5; }
.ar-confirm__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 0.625rem; }
/* The same card as a full page when JavaScript is off. */
.ar-confirm--page { display: block; position: static; margin: 0 auto; box-shadow: var(--ar-shadow-1); }
.ar-players__panel { scroll-margin-top: 1rem; }

/* ==========================================================================
   My family · My details
   ========================================================================== */
.ar-details { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 1.5rem; align-items: start; }
.ar-details__form { display: grid; gap: 1.25rem; min-width: 0; }
.ar-details__card { padding: 1.5rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-details__card h2 { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-details__card .ar-field:last-child { margin-bottom: 0; }
.ar-details__card textarea.ar-input { min-height: 48px; height: 76px; }
.ar-details__actions { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.ar-details__always { display: flex; gap: 0.625rem; align-items: flex-start; margin: 1rem 0 0; padding: 0.875rem 1rem; border-radius: 12px; background: var(--ar-page); font-size: 0.875rem; color: #3D3936; }
.ar-details__side { display: grid; gap: 1.25rem; }
.ar-details__card--side { padding: 1.25rem; }
.ar-details__card--side h2 { margin: 0; font-size: 1.0625rem; }
.ar-details__card--side p, .ar-details__card--side ul { margin: 0.75rem 0; font-size: 0.875rem; color: var(--ar-muted); }
.ar-details__card--side ul { padding-left: 1.125rem; line-height: 1.6; color: #3D3936; }
.ar-details__card--side a:not(.ar-btn) { font-size: 0.875rem; font-weight: 700; }
.ar-details__side-head { display: flex; align-items: center; gap: 0.75rem; }
.ar-details__side-head > span { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.25rem; }

/* Switch: a real checkbox drawn as a toggle */
.ar-switch { position: relative; display: flex; align-items: flex-start; gap: 0.875rem; margin: 0; cursor: pointer; }
.ar-switch input { position: absolute; opacity: 0; width: 48px; height: 28px; margin: 0; cursor: pointer; }
.ar-switch__track { position: relative; flex-shrink: 0; width: 48px; height: 28px; border-radius: 999px; background: #8A8580; transition: background 0.15s; }
.ar-switch__track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 24px; height: 24px; border-radius: 50%; background: #FFFFFF; transition: transform 0.15s; }
.ar-switch input:checked + .ar-switch__track { background: var(--ar-burgundy-dark); }
.ar-switch input:checked + .ar-switch__track::after { transform: translateX(20px); }
.ar-switch input:focus-visible + .ar-switch__track { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-switch__text { display: flex; flex-direction: column; gap: 0.125rem; font-size: 0.875rem; color: var(--ar-muted); }
.ar-switch__text strong { font-size: 0.9375rem; color: var(--ar-ink); }

@media (max-width: 991.98px) {
    .ar-details { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .ar-details__card { padding: 1.125rem 1rem; }
}

/* ==========================================================================
   Club admin · Fixtures list
   ========================================================================== */
.ar-fxadmin__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0.625rem; margin: 0 0 1.25rem; }
.ar-fxadmin__actions > form, .ar-fxadmin__actions > details { margin: 0; }
.ar-fxadmin__tiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.875rem; margin: 0 0 1.25rem; }
.ar-fxtile { display: flex; flex-direction: column; gap: 0.25rem; padding: 1rem 1.125rem; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); color: #3D3936; text-decoration: none; font-size: 0.875rem; font-weight: 600; }
.ar-fxtile strong { font-family: var(--ar-font-display); font-weight: 800; font-size: 2.125rem; line-height: 1; color: var(--ar-ink); }
.ar-fxtile--warn strong { color: #8A5A00; }
.ar-fxtile--bad strong { color: #A3212B; }
.ar-fxtile--bur strong { color: var(--ar-burgundy-dark); }
.ar-fxtile:hover { color: var(--ar-ink); box-shadow: var(--ar-shadow-2); }
.ar-fxtile[aria-current="page"] { box-shadow: inset 0 0 0 2px var(--ar-burgundy-dark), var(--ar-shadow-1); }
.ar-fxadmin__showing { margin: -0.5rem 0 1rem; font-size: 0.9375rem; }
.ar-filterbar__dates input { border: 0; background: transparent; font-size: 0.875rem; color: var(--ar-ink); }

.ar-fxtable__day th { padding: 1.125rem 1rem 0.625rem !important; background: #FFFFFF; border-top: 1px solid #E6E2DE !important; font-family: var(--ar-font-display); font-weight: 900 !important; font-style: italic; font-size: 1.375rem !important; text-transform: uppercase; }
.ar-fxtable__day th span { margin-left: 0.75rem; font-family: var(--ar-font-body, Inter, sans-serif); font-style: normal; font-weight: 500; font-size: 0.875rem; text-transform: none; color: var(--ar-muted); }
.ar-fxrow__time { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.25rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ar-tag--plain { margin-left: 0; white-space: nowrap; }
.ar-fxrow__match { min-width: 320px; }
.ar-fxrow__line { display: flex; align-items: center; gap: 0.625rem; }
.ar-fxrow__line .ar-outcome { flex-shrink: 0; margin-right: 0; }
.ar-fxrow__teams { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.5rem; }
.ar-fxrow__teams > span:not(.ar-score) { white-space: nowrap; }
.ar-fxrow__teams .is-us { font-weight: 700; }
.ar-fxrow__v { color: #8A8580; }
.ar-score { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 0.375rem; border-radius: 7px; background: var(--ar-ink); color: #FFFFFF; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.25rem; font-variant-numeric: tabular-nums; }
.ar-fxrow__noref { display: inline-flex; align-items: center; gap: 0.375rem; color: #6B4E00; font-weight: 600; }
.ar-fxrow__lock { display: inline-flex; margin-left: 0.375rem; color: var(--ar-muted); vertical-align: middle; }
.ar-fxrow__actions { white-space: nowrap; text-align: right; }
.ar-fxrow__actions > * { vertical-align: middle; }

/* Result tints: a coloured left edge, a light row fill and a letter badge */
.ar-outcome { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 26px; margin-right: 0.625rem; padding: 0 0.4rem; border-radius: 999px; color: #FFFFFF; font-size: 0.75rem; font-weight: 800; letter-spacing: 0.04em; vertical-align: middle; }
.ar-outcome--win { background: #135C31; }
.ar-outcome--draw { background: #7A5600; }
.ar-outcome--loss { background: #A3212B; }
.ar-outcome--off, .ar-outcome--wo { background: #5E5956; }
.ar-fxrow--win { background: #EEF8F1; }
.ar-fxrow--draw { background: #FFF7E3; }
.ar-fxrow--loss { background: #FDF0F0; }
.ar-fxrow--off, .ar-fxrow--wo { background: #F1EFEC; }
.ar-fxrow--win > td:first-child { box-shadow: inset 5px 0 0 #1E8A4C; }
.ar-fxrow--draw > td:first-child { box-shadow: inset 5px 0 0 #C99A1E; }
.ar-fxrow--loss > td:first-child { box-shadow: inset 5px 0 0 #C8414B; }
.ar-fxrow--off > td:first-child, .ar-fxrow--wo > td:first-child { box-shadow: inset 5px 0 0 #9A938E; }
.ar-fxkey { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; margin-top: 1rem; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-fxkey strong { color: var(--ar-ink); }
.ar-fxkey > span { display: inline-flex; align-items: center; gap: 0.25rem; }
.ar-fxkey .ar-outcome { margin-right: 0.25rem; min-width: 26px; height: 22px; font-size: 0.6875rem; }

/* Small menus built on <details> */
.ar-menu { position: relative; display: inline-block; }
.ar-menu > summary { list-style: none; cursor: pointer; }
.ar-menu > summary::-webkit-details-marker { display: none; }
.ar-menu__panel { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 240px; padding: 0.375rem; border-radius: 12px; background: #FFFFFF; box-shadow: var(--ar-shadow-3); text-align: left; }
.ar-menu__panel > a, .ar-menu__panel > button { display: flex; align-items: center; gap: 0.5rem; width: 100%; min-height: 44px; padding: 0 0.75rem; border: 0; border-radius: 8px; background: none; color: var(--ar-ink); font-size: 0.875rem; font-weight: 600; text-align: left; text-decoration: none; white-space: nowrap; }
.ar-menu__panel > a:hover, .ar-menu__panel > button:hover { background: var(--ar-burgundy-tint); }
.ar-menu__danger { color: #A3212B !important; }
.ar-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 10px; color: var(--ar-muted); }
.ar-icon-btn:hover { background: #F1EFEC; color: var(--ar-ink); }

@media (max-width: 1199.98px) {
    .ar-fxadmin__tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
    .ar-fxadmin__actions { margin-top: 0; justify-content: flex-start; }
    .ar-fxadmin__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-fxtable__day { display: block !important; }
    .ar-fxtable .ar-fxrow__match { min-width: 0; }
    .ar-fxrow--win, .ar-fxrow--draw, .ar-fxrow--loss, .ar-fxrow--off, .ar-fxrow--wo { box-shadow: inset 5px 0 0 var(--ar-fx-edge, transparent); }
    .ar-fxrow--win { --ar-fx-edge: #1E8A4C; } .ar-fxrow--draw { --ar-fx-edge: #C99A1E; } .ar-fxrow--loss { --ar-fx-edge: #C8414B; }
    .ar-fxrow--off, .ar-fxrow--wo { --ar-fx-edge: #9A938E; }
    .ar-fxrow > td:first-child { box-shadow: none !important; }
    .ar-fxrow__actions { display: flex !important; gap: 0.5rem; }
    .ar-fxrow__actions .ar-btn { flex: 1; }
}

/* ==========================================================================
   Club admin · Add / edit fixture
   ========================================================================== */
.ar-crumbs { margin: 0 0 1rem; font-size: 0.875rem; color: var(--ar-muted); }
.ar-crumbs a { font-weight: 600; }
.ar-fxform { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 1.5rem; align-items: start; }
.ar-fxform__main { display: grid; gap: 1.25rem; min-width: 0; }
.ar-fxform__side { position: sticky; top: 1.5rem; display: grid; gap: 1.25rem; }
.ar-fxform__save { display: grid; gap: 0.625rem; }
.ar-fxform__save .ar-btn { width: 100%; min-height: 50px; }
.ar-fxform__told { padding: 1.25rem; border-radius: var(--ar-radius-lg); background: var(--ar-burgundy-tint); color: #4A3036; }
.ar-fxform__told h2 { margin: 0 0 0.75rem; font-size: 1.0625rem; font-weight: 700; color: var(--ar-burgundy-darker); }
.ar-fxform__told ul { display: grid; gap: 0.625rem; margin: 0 0 0.75rem; padding: 0; list-style: none; font-size: 0.875rem; line-height: 1.5; }
.ar-fxform__told li { display: flex; gap: 0.625rem; }
.ar-fxform__told-sub { margin: 0.75rem 0 0.5rem; font-size: 0.8125rem; }
.ar-input--score { max-width: 120px; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.5rem; text-align: center; }
.ar-checkcards { display: grid; gap: 0.625rem; }
.ar-checkcard { display: flex; align-items: flex-start; gap: 0.75rem; margin: 0; padding: 0.875rem 1rem; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--ar-border); background: #FFFFFF; cursor: pointer; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-checkcard input { flex-shrink: 0; width: 20px; height: 20px; margin: 0.125rem 0 0; accent-color: var(--ar-burgundy-dark); }
.ar-checkcard strong { display: block; font-size: 0.9375rem; color: var(--ar-ink); }
.ar-checkcard:has(input:checked) { box-shadow: inset 0 0 0 2px var(--ar-burgundy-dark); background: #FBF5F6; }
.ar-checkcard--light { box-shadow: none; }
.ar-fxform [hidden] { display: none !important; }
@media (max-width: 991.98px) {
    .ar-fxform { grid-template-columns: 1fr; }
    .ar-fxform__side { position: static; }
}

/* ==========================================================================
   Club admin · Kit orders
   ========================================================================== */
.ar-kit__top { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 1rem; }
.ar-kit__stage strong { margin-right: 0.375rem; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.25rem; }
.ar-kit__check { width: 44px; }
.ar-kit__check input { width: 20px; height: 20px; accent-color: var(--ar-burgundy-dark); }
.ar-size { display: inline-flex; min-width: 56px; justify-content: center; padding: 0.25rem 0.5rem; border-radius: 6px; background: #F1EFEC; font-size: 0.8125rem; font-weight: 700; white-space: nowrap; }
.ar-btn.has-note { box-shadow: inset 0 0 0 1px var(--ar-burgundy); color: var(--ar-burgundy-dark); }
.ar-bulkbar { position: sticky; bottom: 1rem; z-index: 25; display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; width: fit-content; max-width: 100%; margin: 1rem auto 0; padding: 0.625rem 0.625rem 0.625rem 1.25rem; border-radius: 16px; background: var(--ar-ink); color: #FFFFFF; box-shadow: 0 16px 40px rgba(20, 10, 10, 0.3); }
.ar-bulkbar[hidden] { display: none; }
.ar-bulkbar__main { background: #FFFFFF; color: var(--ar-ink); }
.ar-bulkbar__main:hover { background: var(--ar-burgundy-tint); color: var(--ar-ink); }
.ar-bulkbar__alt { background: rgba(255, 255, 255, 0.14); color: #FFFFFF; }
.ar-bulkbar__alt:hover { background: rgba(255, 255, 255, 0.24); color: #FFFFFF; }
.ar-bulkbar__note input { min-height: 40px; width: 200px; padding: 0 0.75rem; border: 0; border-radius: 10px; background: rgba(255, 255, 255, 0.12); color: #FFFFFF; }
.ar-bulkbar__note input::placeholder { color: #D8D2CE; }
.ar-bulkbar__clear { min-height: 40px; padding: 0 0.5rem; border: 0; background: none; color: #D8D2CE; font-weight: 600; }
@media (max-width: 767.98px) {
    .ar-kit__check { position: absolute; }
    .ar-table--stack tbody td.ar-kit__check { grid-column: auto; }
    /* The row checkbox sits over the card's top-left corner; keep the name clear of it. */
    .ar-table--stack tbody td.ar-kit__check + th { padding-left: 2.25rem; }
    .ar-bulkbar { width: 100%; }
    .ar-bulkbar__note input { width: 100%; }
}

/* ==========================================================================
   Club admin · Messages (emails and phone alerts)
   ========================================================================== */
.ar-msgs__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin: 0 0 1rem; }
.ar-msgs__new { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.ar-msgs__filters { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem; margin: 0 0 1rem; }
.ar-msgs__alert { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; }
.ar-msgs__alert p { margin: 0; }
.ar-msgs__name { display: flex; align-items: center; gap: 0.75rem; }
.ar-msgs__name a { font-weight: 700; color: var(--ar-ink); }
.ar-msgs__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 40px; height: 40px; border-radius: 12px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }

/* Phone lock-screen preview for phone alerts */
.ar-phone { width: 320px; max-width: 100%; margin: 0 auto; padding: 12px; border-radius: 46px; background: var(--ar-ink); }
.ar-phone__screen { position: relative; height: 560px; overflow: hidden; border-radius: 36px; background: var(--ar-burgundy-dark); }
.ar-phone__bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.3; }
.ar-phone__time { position: relative; margin: 0; padding-top: 72px; text-align: center; color: #FFFFFF; font-size: 4rem; font-weight: 300; line-height: 1; }
.ar-phone__note { position: absolute; left: 12px; right: 12px; top: 190px; display: flex; gap: 10px; padding: 12px 14px; border-radius: 18px; background: rgba(250, 248, 246, 0.95); }
.ar-phone__note img { width: 36px; height: 36px; flex-shrink: 0; border-radius: 9px; background: #FFFFFF; }
.ar-phone__note > div { min-width: 0; flex: 1; }
.ar-phone__head { display: flex; justify-content: space-between; gap: 8px; margin: 0 0 2px; font-size: 0.8125rem; color: var(--ar-ink); }
.ar-phone__head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ar-phone__head span { flex-shrink: 0; color: var(--ar-muted); font-size: 0.75rem; }
.ar-phone__body { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; margin: 0; font-size: 0.8125rem; line-height: 1.35; color: #3D3936; }
.ar-composer__test .ar-composer__note { flex: 1; }

/* ==========================================================================
   Public pages · Committee, venues, constitution & policies, sponsors
   ========================================================================== */
.ar-public { padding: 2.5rem 0 4rem; background: var(--ar-page); }
.ar-public__h2 { margin: 0 0 1rem; font-size: 2.25rem; }
.ar-public__note { margin: 1.25rem 0 0; color: var(--ar-muted); }
.ar-btn--white { background: #FFFFFF; color: var(--ar-ink); }
.ar-btn--white:hover, .ar-btn--white:focus-visible { background: var(--ar-burgundy-tint); color: var(--ar-ink); }
.ar-eyebrow--gold { color: #F2B705; }

/* Safeguarding panel */
.ar-safeguard { display: flex; flex-wrap: wrap; align-items: center; gap: 1.125rem; margin: 0 0 2.5rem; padding: 1.375rem 1.5rem; border-radius: var(--ar-radius-lg); background: var(--ar-ink); color: #FFFFFF; }
.ar-safeguard > div { flex: 1 1 280px; }
.ar-safeguard__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; flex-shrink: 0; border-radius: 14px; background: #F2B705; color: var(--ar-ink); font-size: 1.5rem; }
.ar-safeguard__role { margin: 0 0 0.25rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: #F2B705; }
.ar-safeguard h2 { margin: 0 0 0.25rem; font-size: 1.125rem; font-weight: 700; color: #FFFFFF; }
.ar-safeguard p { margin: 0; font-size: 0.9375rem; color: #D8D2CE; }
.ar-safeguard a:not(.ar-btn) { color: #FFFFFF; font-weight: 700; }
.ar-safeguard--compact { margin: 0; align-items: flex-start; }

/* Committee */
/* Committee: one compact row per person in a card per section; Children's Officer in the side column on desktop. */
.ar-committee { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 992px) {
    .ar-committee { grid-template-columns: minmax(0, 1fr) 22rem; }
    .ar-committee__safeguard { grid-column: 2; grid-row: 1; position: sticky; top: 1rem; }
    .ar-committee__sections { grid-column: 1; grid-row: 1; }
}
.ar-committee__safeguard { margin: 0; }
.ar-committee__safeguard .ar-btn { width: 100%; justify-content: center; }
.ar-people { margin: 0 0 1.25rem; padding: 1.375rem 1.5rem 0.75rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); scroll-margin-top: 1rem; }
.ar-people__head { margin: 0 0 0.5rem; }
.ar-people__head h2 { margin: 0; font-size: 2rem; }
.ar-people__head p { margin: 0.125rem 0 0; font-size: 0.875rem; color: var(--ar-muted); }
.ar-people__list { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 2rem; margin: 0; padding: 0; list-style: none; }
@media (min-width: 768px) { .ar-people__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ar-person { display: flex; align-items: center; gap: 0.75rem; min-height: 68px; padding: 0.625rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-person__who { flex: 1; min-width: 0; }
.ar-person__role { margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-burgundy); }
.ar-person__name { margin: 0.125rem 0 0; font-size: 1rem; font-weight: 700; color: var(--ar-ink); }
.ar-person__tbc { font-weight: 500; color: var(--ar-muted); }
.ar-person__actions { display: flex; gap: 0.5rem; flex-shrink: 0; }
.ar-person__btn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.125rem; text-decoration: none; }
.ar-person__btn:hover { background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-person__btn:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }

/* Venues */
.ar-venues { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ar-venue { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1.25rem 1.375rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-venue__num { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--ar-burgundy-dark); color: #FFFFFF; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.5rem; }
.ar-venue h2 { margin: 0 0 0.25rem; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-venue p { margin: 0 0 0.5rem; font-size: 0.9375rem; color: var(--ar-muted); }
.ar-venue__eircode { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 36px; padding: 0 0.625rem; border: 0; border-radius: 8px; background: #F1EFEC; color: var(--ar-ink); font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.04em; }
.ar-venue__eircode:hover { background: var(--ar-hairline); }

/* Constitution & policies */
.ar-docs { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 360px); gap: 1.5rem; align-items: start; }
.ar-docs__main, .ar-docs__side { display: grid; gap: 1.25rem; }
.ar-doclist { margin: 0; padding: 0; list-style: none; }
.ar-doclist li { display: flex; align-items: center; gap: 0.875rem; min-height: 68px; padding: 0.5rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-doclist li:first-child { border-top: 0; }
.ar-doclist li > i { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 48px; flex-shrink: 0; border-radius: 8px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.25rem; }
.ar-doclist li > span { flex: 1; display: flex; flex-direction: column; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-doclist li > span strong { font-size: 1rem; color: var(--ar-ink); }
.ar-docs__which { padding: 1.25rem; border-radius: var(--ar-radius-lg); background: var(--ar-burgundy-tint); color: #4A3036; }
.ar-docs__which h2 { margin: 0 0 0.75rem; font-size: 1.0625rem; font-weight: 700; color: var(--ar-burgundy-darker); }
.ar-docs__which dl { display: grid; gap: 0.5rem; margin: 0 0 0.75rem; }
.ar-docs__which dt { font-size: 0.9375rem; color: var(--ar-ink); }
.ar-docs__which dd { margin: 0 0 0.25rem; font-size: 0.875rem; }
.ar-docs__which p { margin: 0; font-size: 0.8125rem; }

/* Sponsors */
.ar-sponsors__grid--page { margin-bottom: 2.5rem; }
.ar-partner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 1.5rem; align-items: start; }
.ar-partner__pitch { display: flex; flex-direction: column; gap: 0.875rem; align-items: flex-start; padding: 2rem; border-radius: 24px; background: var(--ar-burgundy-dark); color: #F4DCE0; }
.ar-partner__pitch .ar-eyebrow { margin: 0; }
.ar-partner__title { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 0.92; text-transform: uppercase; color: #FFFFFF; }
.ar-partner__pitch p { margin: 0; line-height: 1.6; }
.ar-partner__packs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ar-pack { padding: 1.375rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-pack--wide { grid-column: 1 / -1; }
.ar-pack__icon { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; margin-bottom: 0.75rem; border-radius: 14px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.375rem; }
.ar-pack h3 { margin: 0 0 0.375rem; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-pack p { margin: 0 0 0.5rem; font-size: 0.9375rem; color: var(--ar-muted); }
.ar-pack dl { display: grid; gap: 0.25rem; margin: 0; }
.ar-pack dt { margin-top: 0.5rem; padding-top: 0.5rem; border-top: 1px solid var(--ar-hairline); font-size: 0.9375rem; color: var(--ar-ink); }
.ar-pack dd { margin: 0; font-size: 0.875rem; color: var(--ar-muted); }

@media (max-width: 991.98px) {
    .ar-docs, .ar-partner { grid-template-columns: 1fr; }
    .ar-venues { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .ar-venue { grid-template-columns: 44px minmax(0, 1fr); }
    .ar-venue__num { width: 44px; height: 44px; font-size: 1.25rem; }
    .ar-venue > .ar-btn { grid-column: 1 / -1; }
    .ar-partner__packs { grid-template-columns: 1fr; }
    .ar-public { padding: 1.5rem 0 3rem; }
    .ar-doclist li > i { display: none; }
}

/* ---------- News list and story ---------- */

.ar-newsbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.ar-newsbar__search { position: relative; flex: 0 1 280px; }
.ar-newsbar__search i { position: absolute; left: 0.875rem; top: 50%; transform: translateY(-50%); color: var(--ar-muted); pointer-events: none; }
.ar-newsbar__search .ar-input { padding-left: 2.375rem; border-radius: 999px; }
.ar-newsbar__status { margin: -0.5rem 0 1.5rem; color: var(--ar-muted); }

.ar-newsphoto { position: relative; display: flex; align-items: center; justify-content: center; aspect-ratio: 16 / 10; overflow: hidden; background: var(--ar-burgundy-dark); }
.ar-newsphoto > img:not(.ar-newsphoto__crest) { width: 100%; height: 100%; object-fit: cover; }
.ar-newsphoto__crest { width: 30%; max-width: 96px; height: auto; border-radius: 50%; background: #FFFFFF; opacity: 0.9; }
.ar-newsphoto--thumb { flex-shrink: 0; width: 88px; aspect-ratio: 4 / 3; border-radius: 12px; }

.ar-newsmeta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; margin: 0 0 0.5rem; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-newsmeta__tag { display: inline-flex; align-items: center; min-height: 24px; padding: 0 0.625rem; border-radius: 999px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }

.ar-lead { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); margin-bottom: 1.5rem; overflow: hidden; border-radius: 24px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-lead__photo { aspect-ratio: auto; min-height: 320px; }
.ar-lead__body { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 0.75rem; padding: 2.5rem; }
.ar-lead__body p { margin: 0; color: var(--ar-muted); line-height: 1.6; }
.ar-lead__title { margin: 0; font-family: var(--ar-font-display); font-weight: 800; font-size: clamp(1.875rem, 3.2vw, 2.75rem); line-height: 1; text-transform: uppercase; color: var(--ar-ink); }

.ar-newsgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.ar-newscard { position: relative; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-newscard:focus-within { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-newscard__body { padding: 1.25rem 1.375rem 1.5rem; }
.ar-newscard__body p:last-child { margin: 0; color: var(--ar-muted); font-size: 0.9375rem; line-height: 1.55; }
.ar-newscard__title { margin: 0 0 0.5rem; font-size: 1.1875rem; font-weight: 700; line-height: 1.3; }
.ar-newscard__title a { color: var(--ar-ink); text-decoration: none; }
.ar-newscard__title a::after { content: ""; position: absolute; inset: 0; }
.ar-newscard__title a:focus { outline: none; }
.ar-newscard:hover .ar-newscard__title a { color: var(--ar-burgundy); text-decoration: underline; }

.ar-newspager { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: 2rem; }
.ar-newspager__count { color: var(--ar-muted); font-size: 0.875rem; }

.ar-storyhead__back { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; color: #F4DCE0; font-weight: 600; text-decoration: none; }
.ar-storyhead__back:hover { color: #FFFFFF; text-decoration: underline; }
.ar-storyhead__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; margin: 0.5rem 0 0.75rem; color: #F4DCE0; font-size: 0.9375rem; }
.ar-storyhead__meta .ar-newsmeta__tag { background: #F2B705; color: var(--ar-ink); }
.ar-storyhead__title { margin: 0; max-width: 56rem; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.25rem, 5.5vw, 4.25rem); line-height: 0.95; text-transform: uppercase; color: #FFFFFF; overflow-wrap: anywhere; }

.ar-story { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 2rem; align-items: start; }
.ar-story__main { padding: 2rem 2.25rem; border-radius: 24px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-story__figure { margin: 0 0 1.5rem; overflow: hidden; border-radius: 16px; }
.ar-story__figure img { display: block; width: 100%; height: auto; }
.ar-story__intro { margin: 0 0 1.25rem; font-size: 1.25rem; font-weight: 500; line-height: 1.5; color: var(--ar-ink); }
.ar-story__body { max-width: 44rem; font-size: 1.0625rem; line-height: 1.7; color: var(--ar-ink); }
.ar-story__body h2, .ar-story__body h3 { margin: 1.75rem 0 0.75rem; font-weight: 700; color: var(--ar-ink); }
.ar-story__body h2 { font-size: 1.5rem; }
.ar-story__body h3 { font-size: 1.25rem; }
.ar-story__body img { max-width: 100%; height: auto; border-radius: 12px; }
.ar-story__body ul, .ar-story__body ol { padding-left: 1.5rem; }
.ar-story__body a { color: var(--ar-burgundy); text-decoration: underline; }
.ar-story__tags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--ar-hairline); }
.ar-story__tags .ar-eyebrow { margin: 0; }
.ar-story__side { display: grid; gap: 1.25rem; }
.ar-story__sidetitle { margin: 0 0 1rem; font-size: 1rem; font-weight: 700; color: var(--ar-ink); }
.ar-story__share { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.ar-story__more { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ar-story__more a { display: flex; align-items: center; gap: 0.875rem; color: var(--ar-ink); text-decoration: none; }
.ar-story__more a:hover strong { color: var(--ar-burgundy); text-decoration: underline; }
.ar-story__moretext { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.75rem; color: var(--ar-muted); }
.ar-story__moretext strong { font-size: 0.9375rem; line-height: 1.3; color: var(--ar-ink); }

@media (max-width: 991.98px) {
    .ar-lead, .ar-story { grid-template-columns: 1fr; }
    .ar-lead__photo { min-height: 0; aspect-ratio: 16 / 9; }
    .ar-newsgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .ar-newsgrid { grid-template-columns: 1fr; }
    .ar-newsbar__search { flex-basis: 100%; }
    .ar-lead__body { padding: 1.5rem; }
    .ar-story__main { padding: 1.25rem; border-radius: 18px; }
}

/* ---------- Search and not-found ---------- */

.ar-searchbox { position: relative; display: flex; gap: 0.5rem; max-width: 40rem; margin-top: 1rem; }
.ar-searchbox > i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: var(--ar-muted); pointer-events: none; }
.ar-searchbox input { flex: 1; min-width: 0; min-height: 52px; padding: 0 1rem 0 2.75rem; border: 0; border-radius: 14px; background: #FFFFFF; color: var(--ar-ink); font-size: 1rem; }
.ar-searchbox input:focus-visible { outline: 3px solid #F2B705; outline-offset: 2px; }
.ar-searchbox .ar-btn { min-height: 52px; }

.ar-search { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2rem; align-items: start; }
.ar-search__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1.25rem; }
.ar-search__count { margin: 0; color: var(--ar-muted); }
.ar-search__count strong { color: var(--ar-ink); }
.ar-search__side { display: grid; gap: 1.25rem; }
.ar-hits { display: grid; gap: 0.875rem; margin: 0; padding: 0; list-style: none; }
.ar-hit { position: relative; padding: 1.25rem 1.5rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-hit:focus-within { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-hit p:last-child { margin: 0; color: var(--ar-muted); line-height: 1.55; }
.ar-hit__title { margin: 0 0 0.375rem; font-size: 1.1875rem; font-weight: 700; }
.ar-hit__title a { color: var(--ar-ink); text-decoration: none; }
.ar-hit__title a::after { content: ""; position: absolute; inset: 0; }
.ar-hit__title a:focus { outline: none; }
.ar-hit:hover .ar-hit__title a { color: var(--ar-burgundy); text-decoration: underline; }
.ar-newsmeta__tag--plain { background: var(--ar-page); color: var(--ar-muted); }
.ar-linklist { margin: 0; padding: 0; list-style: none; }
.ar-linklist li + li { border-top: 1px solid var(--ar-hairline); }
.ar-linklist a { display: flex; align-items: center; justify-content: space-between; min-height: 48px; color: var(--ar-ink); font-weight: 600; text-decoration: none; }
.ar-linklist a:hover { color: var(--ar-burgundy); text-decoration: underline; }

.ar-errorpage { position: relative; overflow: hidden; background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-errorpage__inner { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 2rem; min-height: 60vh; padding-top: 3rem; padding-bottom: 4rem; }
.ar-errorpage__title { margin: 0 0 1rem; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.75rem, 7vw, 5.5rem); line-height: 0.9; text-transform: uppercase; color: #FFFFFF; }
.ar-errorpage__lead { max-width: 34rem; margin: 0; font-size: 1.125rem; line-height: 1.6; color: #F4DCE0; }
.ar-errorpage__links { margin-top: 2rem; }
.ar-errorpage__links h2 { margin: 0 0 0.75rem; font-size: 0.9375rem; font-weight: 600; color: #F4DCE0; }
.ar-errorpage__code { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(8rem, 20vw, 16rem); line-height: 0.8; color: rgba(255, 255, 255, 0.12); }
a.ar-chip--on-dark:hover { background: rgba(255, 255, 255, 0.28); color: #FFFFFF; }

@media (max-width: 991.98px) {
    .ar-search { grid-template-columns: 1fr; }
    .ar-errorpage__inner { grid-template-columns: 1fr; }
    .ar-errorpage__code { display: none; }
}
@media (max-width: 575.98px) {
    .ar-searchbox { flex-wrap: wrap; }
    .ar-searchbox .ar-btn { flex: 1 0 100%; }
    .ar-searchbox > i { top: 26px; }
}

/* ---------- Side columns that stack under the main content ----------
   On narrow screens a right-hand column drops below the main content.
   .ar-stackside gives it a clear break: a rule and a small label taken
   from data-stack-label, so it no longer reads as part of the form above. */

.ar-players__jump { display: none; }

@media (max-width: 991.98px) {
    .ar-stackside { margin-top: 1rem; padding-top: 1.25rem; border-top: 2px solid var(--ar-border); }
    .ar-stackside[data-stack-label]::before {
        content: attr(data-stack-label);
        display: block;
        margin-bottom: 0.875rem;
        font-size: 0.75rem;
        font-weight: 700;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--ar-burgundy);
    }
    /* Players: the add/edit form is a separate task, so it gets a framed panel with a tinted header. */
    .ar-players__panel { margin-top: 1rem; padding: 0 0 1.25rem; overflow: hidden; border-top: 4px solid var(--ar-burgundy); }
    .ar-players__panel > * { margin-left: 1.25rem; margin-right: 1.25rem; }
    .ar-players__panel > .ar-players__panel-head { margin: 0 0 1.25rem; padding: 1rem 1.25rem; background: var(--ar-burgundy-tint); }
    .ar-players__jump { display: inline-flex; justify-self: start; }
}

/* ---------- My family · Payments and Update card ---------- */

.ar-backlink { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; margin-bottom: 0.5rem; font-weight: 600; text-decoration: none; }
.ar-backlink:hover { text-decoration: underline; }
.ar-callout--good { background: var(--ar-good-bg); color: var(--ar-good-fg); }

.ar-paytiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.ar-paytile { display: flex; flex-direction: column; gap: 0.375rem; padding: 1.25rem 1.375rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-paytile .ar-eyebrow { margin: 0; color: var(--ar-muted); }
.ar-paytile__value { margin: 0; font-family: var(--ar-font-display); font-weight: 800; font-size: 2.5rem; line-height: 1; color: var(--ar-ink); }
.ar-paytile__value--due { color: var(--ar-burgundy-dark); }
.ar-paytile__value--good { color: var(--ar-good-fg); }
.ar-paytile__sub { margin: 0; font-size: 0.875rem; line-height: 1.45; color: var(--ar-muted); }
.ar-paytile__link { font-size: 0.875rem; font-weight: 700; }

.ar-payments__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 1.125rem 1.25rem; }
.ar-payments__head h2 { margin: 0; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-payments__pick { width: 2.5rem; }
.ar-payments__check { width: 20px; height: 20px; accent-color: var(--ar-burgundy-dark); }
.ar-payments__action { text-align: right; white-space: nowrap; }
.ar-payments__note { margin: 1rem 0 0; font-size: 0.875rem; color: var(--ar-muted); }

.ar-cardupdate { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.ar-cardupdate__form h2, .ar-cardupdate__plans h2 { margin: 0 0 0.375rem; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-cardupdate__element { display: flex; flex-direction: column; justify-content: center; min-height: 52px; margin: 0.375rem 0 0.25rem; }
.ar-cardupdate__actions { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 1rem; }
.ar-cardupdate__form .ar-callout { margin: 1rem 0 0; }
.ar-cardupdate__plans { display: grid; gap: 1rem; }
.ar-cardupdate__status { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; margin: 0.5rem 0 0.25rem; }
.ar-cardupdate__status .ar-hint { margin: 0; }
.ar-instalments { margin: 0.5rem 0 0; padding: 0; list-style: none; }
.ar-instalments li { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr) auto; align-items: center; gap: 0.75rem; padding: 0.75rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-instalments__date { font-size: 0.875rem; color: var(--ar-muted); }
.ar-instalments__name { font-weight: 600; }

@media (max-width: 991.98px) {
    .ar-cardupdate { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
    .ar-paytiles { grid-template-columns: 1fr 1fr; }
    .ar-paytiles .ar-paytile:last-child { grid-column: 1 / -1; }
    .ar-paytile__value { font-size: 2rem; }
    .ar-table--stack tbody tr:has(.ar-payments__check) { padding-left: 3rem; position: relative; }
    .ar-table--stack tbody td.ar-payments__pick { position: absolute; left: 1rem; top: 1rem; }
    .ar-payments__action { white-space: normal; }
}
.ar-payments__phone { display: none; }
@media (max-width: 767.98px) {
    /* Payments on a phone: name, plan and amounts in one card, status top right. */
    .ar-payments__phone { display: inline; }
    .ar-payments .ar-table--stack tbody td[data-label]:not([data-label="Status"]) { display: none; }
    .ar-payments .ar-table--stack tbody th { grid-column: 1; grid-row: 1; }
    .ar-payments .ar-table--stack tbody td[data-label="Status"] { grid-column: 2; grid-row: 1; }
    .ar-payments .ar-table--stack tbody td[data-label="Status"]::before { display: none; }
    .ar-payments .ar-table--stack tbody td.ar-payments__action.is-empty { display: none; }
}

/* ---------- Programme & camp sign-up (step 1: players) ---------- */

.ar-proghero { position: relative; overflow: hidden; background: var(--ar-ink); color: #FFFFFF; }
.ar-proghero__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.5rem; padding-top: 1.75rem; padding-bottom: 2rem; }
.ar-proghero__text { display: flex; flex-direction: column; align-items: flex-start; gap: 0.625rem; min-width: 0; }
.ar-proghero__back { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; color: #D8D2CE; font-weight: 600; text-decoration: none; }
.ar-proghero__back:hover { color: #FFFFFF; text-decoration: underline; }
.ar-proghero__badge { padding: 0.375rem 0.75rem; border-radius: 999px; background: #F2B705; color: var(--ar-ink); font-size: 0.75rem; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
.ar-proghero__title { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 0.9; text-transform: uppercase; color: #FFFFFF; overflow-wrap: anywhere; }
.ar-proghero__accent { color: #F2B705; }
.ar-proghero__meta { margin: 0; font-size: 1rem; color: #D8D2CE; }
.ar-proghero__steps { display: flex; align-items: center; gap: 1.25rem; margin: 0; padding: 0; list-style: none; font-size: 0.875rem; color: #D8D2CE; }
.ar-proghero__steps li { display: flex; align-items: center; gap: 0.5rem; }
.ar-proghero__steps span { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.4); font-size: 0.8125rem; }
.ar-proghero__steps [aria-current] { color: #FFFFFF; font-weight: 700; }
.ar-proghero__steps [aria-current] span { background: #F2B705; box-shadow: none; color: var(--ar-ink); }

.ar-progfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0.75rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.ar-progfacts li { display: flex; flex-direction: column; gap: 0.125rem; padding: 0.875rem 1rem; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); font-size: 0.875rem; color: var(--ar-muted); }
.ar-progfacts strong { font-size: 1rem; color: var(--ar-ink); }
.ar-progfacts em { font-style: normal; font-weight: 700; color: var(--ar-burgundy); }

.ar-signup-booked { margin: 0 0 1.25rem; padding: 1rem 1.25rem; border-radius: var(--ar-radius); background: var(--ar-good-bg); color: var(--ar-good-fg); }
.ar-signup-booked h2 { margin: 0 0 0.5rem; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-good-fg); }
.ar-signup-booked ul { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; margin: 0; padding: 0; list-style: none; }
.ar-signup-booked li { display: flex; align-items: center; gap: 0.375rem; }
.ar-signup-booked li span { font-size: 0.8125rem; }

.ar-signup { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.75rem; align-items: start; }
.ar-signup__main { display: flex; flex-direction: column; gap: 0.875rem; min-width: 0; }
.ar-signup__heading { margin: 0; font-size: 1.25rem; font-weight: 700; color: var(--ar-ink); }
.ar-signup__players { display: grid; gap: 0.875rem; }
.ar-signup__add { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; font-weight: 700; text-decoration: none; }
.ar-signup__add:hover { text-decoration: underline; }
.ar-signup__summary { position: sticky; top: 1.5rem; display: flex; flex-direction: column; gap: 0.75rem; padding: 1.5rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-2, 0 8px 24px rgba(20, 10, 10, 0.08)); }
.ar-signup__summary-title { margin: 0; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.625rem; text-transform: uppercase; color: var(--ar-ink); }
.ar-signup__total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 0.75rem; border-top: 1px solid var(--ar-hairline); }
.ar-signup__total span { font-weight: 600; }
.ar-signup__total strong { font-family: var(--ar-font-display); font-weight: 800; font-size: 2.75rem; line-height: 1; font-variant-numeric: tabular-nums; color: var(--ar-ink); }
.ar-signup__hint { margin: 0; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-signup__hint:empty { display: none; }
.ar-signup__submit { justify-content: center; min-height: 52px; }

.ar-signup-player { display: flex; flex-direction: column; gap: 0.875rem; padding: 1.125rem 1.25rem; border-radius: 18px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-signup-player.selected { box-shadow: inset 0 0 0 2px var(--ar-burgundy), 0 4px 16px rgba(20, 10, 10, 0.06); }
.ar-signup-player__head { display: flex; align-items: center; gap: 0.875rem; }
.ar-signup-player__head input[type="checkbox"] { flex-shrink: 0; width: 24px; height: 24px; margin: 0; accent-color: var(--ar-burgundy-dark); }
.ar-signup-player__avatar { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: #F1EFEC; color: var(--ar-muted); font-family: var(--ar-font-display); font-weight: 800; font-size: 1.125rem; }
.ar-signup-player.selected .ar-signup-player__avatar { background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-signup-player__name { display: flex; flex-direction: column; gap: 0.125rem; margin: 0; font-size: 1.0625rem; font-weight: 700; color: var(--ar-ink); cursor: pointer; }
.ar-signup-player__meta { font-size: 0.875rem; font-weight: 400; color: var(--ar-muted); }
.ar-signup-player:has(input[type="checkbox"]:disabled) { background: #F1EFEC; box-shadow: none; }
.ar-signup-player:has(.ar-signup-player__head input:disabled) .ar-signup-player__name { color: var(--ar-muted); cursor: default; }
.ar-signup-player__fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0.75rem; }
.ar-signup-player__fields .ar-field { margin: 0; }
.ar-signup-player select, .ar-signup-player input[type="text"] {
    width: 100%; min-height: 48px; padding: 0 0.875rem; border: 0; border-radius: 10px; background: #FFFFFF;
    box-shadow: inset 0 0 0 1px var(--ar-border); font: inherit; font-size: 0.9375rem; color: var(--ar-ink);
}
.ar-signup-player select:focus-visible, .ar-signup-player input[type="text"]:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 1px; }
.ar-signup-player__kit { min-width: 0; margin: 0; padding: 0; border: 0; }
.ar-signup-player__kit .ar-hint { margin: 0 0 0.5rem; }
.ar-signup-player__options { display: flex; flex-wrap: wrap; gap: 0.625rem; min-width: 0; margin: 0; padding: 0; border: 0; }
.ar-signup-option { flex: 1 1 160px; display: flex; align-items: center; gap: 0.625rem; min-height: 52px; padding: 0.625rem 0.875rem; border-radius: 12px; box-shadow: inset 0 0 0 1px var(--ar-border); font-weight: 600; cursor: pointer; }
.ar-signup-option input { width: 20px; height: 20px; margin: 0; accent-color: var(--ar-burgundy-dark); }
.ar-signup-option:has(input:checked) { box-shadow: inset 0 0 0 2px var(--ar-burgundy-dark); }

.ar-quarters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.875rem; }
.ar-quarter { display: flex; flex-direction: column; gap: 0.5rem; padding: 1.125rem 1.25rem; border-radius: 16px; background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--ar-border); cursor: pointer; }
.ar-quarter.selected { box-shadow: inset 0 0 0 2px var(--ar-burgundy-dark); }
.ar-quarter.is-paid { background: var(--ar-page); cursor: default; }
.ar-quarter__top { display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; font-size: 1.0625rem; }
.ar-quarter__top input { width: 22px; height: 22px; margin: 0; accent-color: var(--ar-burgundy-dark); }
.ar-quarter.is-paid .ar-quarter__top input { display: none; }
.ar-quarter .ar-pill { align-self: flex-start; }
.ar-quarter__price { font-weight: 700; }

@media (max-width: 991.98px) {
    .ar-signup { grid-template-columns: 1fr; }
    .ar-signup__summary { position: static; }
    .ar-quarters { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .ar-proghero__steps { gap: 0.75rem; }
}
.ar-proghero .ar-proghero__title > span.ar-proghero__accent { color: #F2B705; }
.ar-progfacts em { font-family: inherit; }
.ar-proghero + #content .content-wrap { padding-top: 2rem; }

/* ---------- Programme & camp payment (step 2) ---------- */

.ar-paystep { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.ar-paystep h2 { margin: 0 0 0.5rem; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-paystep__lines { margin: 0 0 0.75rem; padding: 0; list-style: none; }
.ar-paystep__lines li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 56px; padding: 0.5rem 0; border-bottom: 1px solid var(--ar-hairline); font-variant-numeric: tabular-nums; }
.ar-paystep__lines li > span:first-child { display: flex; flex-direction: column; }
.ar-paystep__pay .ar-signup__submit { width: 100%; margin-top: 1rem; }
.ar-paystep__pay .ar-callout { margin: 1rem 0 0; }
@media (max-width: 767.98px) {
    .ar-paystep { grid-template-columns: 1fr; }
}

/* ---------- Managers · Overview ---------- */

.ar-mgr { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.5rem; align-items: start; }
.ar-mgr__teams, .ar-mgr__side { display: grid; gap: 1.25rem; }
.ar-mgr__sidetitle { margin: 0 0 0.75rem; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-mgrteam .ar-eyebrow { margin: 0; }
.ar-mgrteam__name { margin: 0.25rem 0 0.25rem; font-family: var(--ar-font-display); font-weight: 800; font-size: 2.25rem; line-height: 1; text-transform: uppercase; color: var(--ar-ink); }
.ar-mgrteam__target { margin: 1rem 0; }
.ar-mgrteam__target p { display: flex; justify-content: space-between; margin: 0; font-size: 0.9375rem; }
.ar-mgrteam__target p span { color: var(--ar-muted); }
.ar-mgrteam__next { display: flex; align-items: center; gap: 1rem; margin: 1rem 0; padding: 0.875rem 1rem; border-radius: 14px; box-shadow: inset 0 0 0 1px var(--ar-hairline); }
.ar-mgrteam__next .ar-eyebrow { margin: 0 0 0.125rem; }
.ar-mgrteam__next strong { display: block; font-size: 1rem; }
.ar-mgrteam__date { flex-shrink: 0; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 12px; background: var(--ar-burgundy-dark); color: #FFFFFF; font-size: 0.6875rem; font-weight: 700; }
.ar-mgrteam__date strong { font-size: 1.25rem; line-height: 1; }
.ar-mgrteam__actions { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.ar-needs { margin: 0; padding: 0; list-style: none; }
.ar-needs li + li { border-top: 1px solid var(--ar-hairline); }
.ar-needs a { display: flex; align-items: center; gap: 0.75rem; min-height: 56px; padding: 0.5rem 0; color: var(--ar-ink); text-decoration: none; }
.ar-needs a > span:nth-child(2) { flex: 1; min-width: 0; }
.ar-needs a:hover strong { color: var(--ar-burgundy); text-decoration: underline; }
.ar-needs__icon { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 8px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }
.ar-needs__icon--bad { background: var(--ar-bad-bg); color: var(--ar-bad-fg); }
.ar-needs__icon--warn { background: var(--ar-warn-bg); color: var(--ar-warn-fg); }
@media (max-width: 991.98px) {
    .ar-mgr { grid-template-columns: 1fr; }
}

/* ---------- Managers · Pitches ---------- */

.ar-pitches { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 1.5rem; align-items: start; }
.ar-pitches__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 1.125rem 1.25rem 0.5rem; }
.ar-pitches__head h2, .ar-pitches__form h2 { margin: 0; font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-pitches__date { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; padding: 0 1.25rem 1rem; }
.ar-pitches__date .ar-label { margin: 0; }
.ar-pitches__date .ar-input { width: auto; min-height: 40px; }
.ar-pitchdays { margin: 0; padding: 0; list-style: none; }
.ar-pitchdays__date { margin: 0; padding: 0.625rem 1.25rem; background: #FAF9F7; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ar-muted); }
.ar-pitchdays__list { margin: 0; padding: 0; list-style: none; }
.ar-booking { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 0.875rem 1.25rem; border-top: 1px solid var(--ar-hairline); }
.ar-booking.is-mine { box-shadow: inset 3px 0 0 var(--ar-burgundy); }
.ar-booking__what strong { display: block; font-size: 0.9375rem; }
.ar-booking__actions { display: flex; gap: 0.375rem; }
.ar-booking__delete { color: var(--ar-bad-fg); }
.ar-booking__who { font-size: 0.8125rem; color: var(--ar-muted); text-align: right; }
.ar-pitches__form { position: sticky; top: 1.5rem; }
.ar-pitches__form .ar-hint { margin: 0.25rem 0 1rem; }
.ar-pitches__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.ar-pitches__actions { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-top: 0.5rem; }
.ar-pitches__actions .ar-btn--primary { flex: 1; justify-content: center; }
@media (max-width: 991.98px) {
    .ar-pitches { grid-template-columns: 1fr; }
    .ar-pitches__form { position: static; }
}
@media (max-width: 575.98px) {
    .ar-booking { grid-template-columns: 1fr; gap: 0.375rem; }
    .ar-booking__who { text-align: left; }
}
.ar-btn--ghost { background: transparent; box-shadow: none; color: var(--ar-burgundy); }
.ar-btn--ghost:hover { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }

/* ---------- Managers · Coaching materials ---------- */

.ar-pill--bur { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }
.ar-coach__filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem; margin: 0 0 1rem; padding: 1rem 1.125rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-coach__filters .ar-field { flex: 1 1 160px; margin: 0; }
.ar-coach__filters .ar-field:first-of-type { flex-basis: 240px; }
.ar-coach__apply { display: flex; gap: 0.5rem; }
.ar-coach__count { margin: 0 0 1rem; font-size: 0.9375rem; color: var(--ar-muted); }
.ar-coach__count strong { color: var(--ar-ink); }
.ar-coach__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.ar-coachcard { display: flex; flex-direction: column; gap: 0.625rem; padding: 1.25rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-coachcard__top { display: flex; justify-content: space-between; align-items: flex-start; }
.ar-coachcard__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.25rem; }
.ar-coachcard__title { margin: 0; font-size: 1.0625rem; font-weight: 700; line-height: 1.3; color: var(--ar-ink); overflow-wrap: anywhere; }
.ar-coachcard__tags { display: flex; flex-wrap: wrap; gap: 0.375rem; margin: 0; }
.ar-coachcard .ar-hint { margin: 0; }
.ar-coachcard__open { margin-top: auto; align-self: flex-start; }
@media (max-width: 991.98px) { .ar-coach__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .ar-coach__grid { grid-template-columns: 1fr; } }

/* ---------- Managers · Guide ---------- */

.ar-guide { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 2rem; align-items: start; }
.ar-guide__toc { position: sticky; top: 1.5rem; }
.ar-guide__toc .ar-eyebrow { margin: 0 0 0.5rem; color: var(--ar-muted); }
.ar-guide__toc ol { margin: 0; padding: 0; list-style: none; }
.ar-guide__toc a { display: flex; align-items: center; min-height: 40px; padding: 0 0.75rem; border-radius: 10px; color: var(--ar-ink); text-decoration: none; }
.ar-guide__toc a:hover { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }
.ar-guide__sections { display: grid; gap: 1rem; }
.ar-guide__step { display: flex; gap: 1rem; align-items: flex-start; scroll-margin-top: 1rem; }
.ar-guide__step:focus { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-guide__step h2 { margin: 0.25rem 0 0.5rem; font-size: 1.25rem; font-weight: 700; color: var(--ar-ink); }
.ar-guide__step p { margin: 0 0 0.625rem; line-height: 1.6; }
.ar-guide__num { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--ar-burgundy-dark); color: #FFFFFF; font-weight: 700; }
@media (max-width: 991.98px) {
    .ar-guide { grid-template-columns: 1fr; }
    .ar-guide__toc { position: static; }
}
#content .ar-mgrteam .ar-mgrteam__name { font-size: 2.25rem; line-height: 1; }
#content .ar-guide__toc h2.ar-eyebrow { font-size: 0.75rem; }

/* ---------- Coordinators · one programme ---------- */

.ar-coordhero { background: #F2B705; color: var(--ar-ink); }
.ar-coordhero__inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1.25rem; padding-top: 1.5rem; padding-bottom: 1.75rem; }
.ar-coordhero__text { display: flex; flex-direction: column; align-items: flex-start; gap: 0.375rem; min-width: 0; }
.ar-coordhero__back { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; color: var(--ar-ink); font-weight: 700; text-decoration: none; }
.ar-coordhero__back:hover { color: var(--ar-ink); text-decoration: underline; }
.ar-coordhero__title { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.25rem, 5vw, 3.75rem); line-height: 0.9; text-transform: uppercase; color: var(--ar-ink); }
.ar-coordhero__meta { margin: 0; font-size: 0.9375rem; font-weight: 500; color: #3D2A00; }
.ar-coordhero__export { background: var(--ar-ink); color: #FFFFFF; }
.ar-coordhero__export:hover { background: #000000; color: #FFFFFF; }
.ar-proghero + #content .content-wrap, .ar-coordhero + #content .content-wrap { padding-top: 2rem; }

.ar-coordstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 0 0 1.25rem; }
.ar-coordstats > div { display: flex; flex-direction: column-reverse; gap: 0.25rem; padding: 1rem 1.25rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-coordstats dt { font-size: 0.8125rem; font-weight: 500; color: var(--ar-muted); }
.ar-coordstats dd { margin: 0; font-family: var(--ar-font-display); font-weight: 800; font-size: 2.5rem; line-height: 1; color: var(--ar-ink); }
.ar-coordstats dd small { font-size: 1rem; font-weight: 600; color: var(--ar-muted); }
.ar-coordstats .is-good dd { color: var(--ar-good-fg); }
.ar-coordstats .is-warn dd { color: var(--ar-warn-fg); }

.ar-coordslots { margin: 0 0 1.25rem; }
.ar-coordslots h2, .ar-lateaccess h2 { margin: 0 0 0.625rem; font-size: 1rem; font-weight: 700; color: var(--ar-ink); }
.ar-coordslots ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0.75rem; margin: 0; padding: 0; list-style: none; }
.ar-coordslots li { display: flex; flex-direction: column; gap: 0.125rem; padding: 0.75rem 1rem; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); font-size: 0.875rem; color: var(--ar-muted); }
.ar-coordslots li strong { font-size: 1.125rem; color: var(--ar-ink); }
.ar-coordslots li em { font-style: normal; font-weight: 700; color: var(--ar-good-fg); }
.ar-coordslots li.is-full { box-shadow: inset 0 0 0 2px var(--ar-bad-fg); }
.ar-coordslots li.is-full em { color: var(--ar-bad-fg); }

.ar-lateaccess { margin: 0 0 1.25rem; }
.ar-lateaccess__form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.75rem; margin: 0.75rem 0 1rem; }
.ar-lateaccess__form .ar-field { flex: 1 1 220px; margin: 0; }
.ar-coordslots li em { font-family: inherit; }

/* ---------- Club admin · Teams & managers ---------- */

.ar-coordstats dt a { color: inherit; text-decoration: underline; }
.ar-teamtarget { margin: 0 0 1.25rem; }
.ar-teamtarget h2 { margin: 0 0 0.375rem; font-size: 1rem; font-weight: 700; color: var(--ar-ink); }
.ar-teamtarget p { margin: 0 0 0.375rem; }
.ar-teamfilter__check { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 48px; padding: 0 0.875rem; border-radius: 10px; box-shadow: inset 0 0 0 1px var(--ar-border); font-weight: 600; cursor: pointer; }
.ar-teamfilter__check input { width: 18px; height: 18px; accent-color: var(--ar-burgundy-dark); }
/* Teams & managers: one collapsible section per age group. Fixed column widths so every group lines up. */
.ar-agetools { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin: 0 0 1rem; }
.ar-agetools[hidden] { display: none; }
.ar-agetools__find { position: relative; flex: 0 1 22rem; min-width: 0; }
.ar-agetools__find i { position: absolute; left: 0.875rem; top: 50%; transform: translateY(-50%); color: var(--ar-muted); pointer-events: none; }
.ar-agetools__find .ar-input { padding-left: 2.5rem; }
.ar-agetools .ar-link-btn { margin-left: auto; }
.ar-agegroups { display: flex; flex-direction: column; gap: 0.625rem; }
.ar-agegroup { border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); overflow: hidden; }
.ar-agegroup[hidden], .ar-agegroup__table tr[hidden] { display: none !important; }
.ar-agegroup__sum { display: grid; grid-template-columns: 13rem 7rem minmax(12rem, 16rem) 1fr 1.5rem; align-items: center; gap: 1.25rem; min-height: 64px; padding: 0.75rem 1.5rem; list-style: none; cursor: pointer; }
.ar-agegroup__sum::-webkit-details-marker { display: none; }
.ar-agegroup__sum:hover { background: #FAF9F7; }
.ar-agegroup__sum:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: -3px; }
.ar-agegroup__name { font-size: 1.125rem; font-weight: 700; color: var(--ar-ink); }
.ar-agegroup__teams { font-size: 0.875rem; color: var(--ar-muted); }
.ar-agegroup__players { display: flex; flex-direction: column; gap: 0.375rem; font-size: 0.875rem; color: var(--ar-muted); }
.ar-agegroup__players strong { color: var(--ar-ink); }
.ar-agegroup .ar-meter { width: 100%; max-width: 12.5rem; height: 6px; margin: 0; }
.ar-agegroup .ar-meter .is-full { background: var(--ar-good-fg); }
.ar-agegroup__status .ar-pill { gap: 0.375rem; }
.ar-agegroup__chev { justify-self: end; color: var(--ar-burgundy-dark); font-size: 1.125rem; -webkit-text-stroke: 0.5px; transition: transform 0.15s ease; }
.ar-agegroup[open] .ar-agegroup__chev { transform: rotate(180deg); }
.ar-agegroup__table { table-layout: fixed; width: 100%; margin: 0; border-top: 1px solid var(--ar-hairline); }
.ar-agegroup__c-team { width: 14.25rem; }
.ar-agegroup__c-players { width: 17.25rem; }
.ar-agegroup__c-edit { width: 8rem; }
.ar-agegroup__table th:first-child, .ar-agegroup__table td:first-child { padding-left: 1.5rem; }
.ar-agegroup__table th:last-child, .ar-agegroup__table td:last-child { padding-right: 1.5rem; }
.ar-agegroup__count { display: block; font-size: 0.875rem; color: var(--ar-muted); }
.ar-agegroup__count strong { color: var(--ar-ink); }
.ar-agegroup__count + .ar-meter { margin-top: 0.375rem; }
@media (max-width: 991.98px) {
    .ar-agegroup__sum { grid-template-columns: minmax(0, 1fr) auto; gap: 0.375rem 0.75rem; padding: 0.875rem 1rem; }
    .ar-agegroup__name { grid-column: 1; grid-row: 1; }
    .ar-agegroup__chev { grid-column: 2; grid-row: 1; }
    .ar-agegroup__teams, .ar-agegroup__players, .ar-agegroup__status { grid-column: 1 / -1; }
    .ar-agegroup__teams { display: none; }
    .ar-agegroup__players .ar-meter { display: none; }
    .ar-agetools__find { flex-basis: 100%; }
}
@media (max-width: 767.98px) {
    /* Stacked cards: drop the fixed desktop columns so each card uses the full width. */
    .ar-agegroup__table, .ar-agegroup__table tbody { display: block; width: 100%; table-layout: auto; }
    .ar-agegroup__table colgroup { display: none; }
    .ar-agegroup__table th:first-child, .ar-agegroup__table td:first-child { padding-left: 0; }
    .ar-agegroup__table th:last-child, .ar-agegroup__table td:last-child { padding-right: 0; }
    .ar-agegroup__table td[data-label="Players"] .ar-meter { max-width: none; }
}
.ar-teamedit { margin: 0 0 1.5rem; }
.ar-teamedit h3, .ar-teamedit__h { margin: 0 0 0.5rem; font-size: 1rem; font-weight: 700; color: var(--ar-ink); }
.ar-teamedit__row { display: flex; gap: 0.5rem; }
.ar-teamedit__row .ar-input { width: 7rem; }
.ar-teamedit__now { margin: 0.5rem 0 0; font-size: 0.875rem; color: var(--ar-muted); }
.ar-teamedit__now strong { color: var(--ar-ink); }
.ar-teammgrs { margin: 0 0 1.25rem; padding: 0; list-style: none; }
.ar-teammgrs li { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.75rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-usersearch__results { margin: 0.75rem 0 0; padding: 0; list-style: none; }
.ar-usersearch__hit { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.25rem 0.75rem; padding: 0.75rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-usersearch__hit form { grid-column: 2; grid-row: 1 / span 2; }
.ar-usersearch__name { font-weight: 700; }

/* ---------- Membership ---------- */
.ar-member { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.ar-member__club, .ar-member__ddsl { display: flex; flex-direction: column; gap: 1rem; padding: 2rem; border-radius: var(--ar-radius-lg); }
.ar-member__ddsl { background: var(--ar-ink); color: #FFFFFF; }
.ar-member__ddsl .ar-ticks li { color: #FFFFFF; }
.ar-member__ddsl .ar-ticks li::before { color: #7FD8A2; }
.ar-member__ddsl .ar-btn { align-self: flex-start; }
.ar-member .ar-eyebrow { margin: 0; }
.ar-public .ar-member__title { margin: 0; font-family: var(--ar-font-display); font-size: 2.5rem; font-weight: 800; line-height: 1; text-transform: uppercase; color: inherit; }
.ar-member__lead { margin: 0; font-size: 1rem; color: var(--ar-muted); }
.ar-member__ddsl .ar-member__lead { color: #D8D2CE; }
.ar-member__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.ar-member__actions .ar-btn i { margin-left: 0.375rem; margin-right: 0; }
.ar-ticks { display: flex; flex-direction: column; gap: 0.625rem; margin: 0; padding: 0; list-style: none; }
.ar-ticks li { position: relative; padding-left: 1.625rem; line-height: 1.5; }
.ar-ticks li::before { content: "\F633"; font-family: "bootstrap-icons"; position: absolute; left: 0; top: 0.0625rem; color: var(--ar-good-fg); }
.ar-member__steps { margin-top: 2.5rem; }
.ar-member__steps .ar-display { margin: 0 0 1rem; font-size: 2.25rem; }
.ar-member__steps ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin: 0; padding: 0; list-style: none; }
.ar-member__steps li { display: flex; flex-direction: column; gap: 0.625rem; padding: 1.5rem; border-radius: 20px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-member__steps li > span { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--ar-burgundy-dark); color: #FFFFFF; font-weight: 800; }
.ar-member__steps h3 { margin: 0; font-size: 1.125rem; }
.ar-member__steps p { margin: 0; color: var(--ar-muted); line-height: 1.5; }
.ar-member__faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2.5rem; align-items: start; }
.ar-member__faq h2 { font-size: 1.25rem; }
.ar-member__faq .ar-ticks + .ar-hint { margin: 1rem 0 0; }

/* ---------- Contact ---------- */
.ar-routes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin: 0 0 1.5rem; padding: 0; list-style: none; }
.ar-route { display: flex; flex-direction: column; gap: 0.625rem; padding: 1.375rem; border-radius: 20px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-route__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.25rem; }
.ar-public .ar-route h2 { margin: 0; font-size: 1.125rem; font-weight: 700; }
.ar-route p { margin: 0; color: var(--ar-muted); line-height: 1.5; }
.ar-route a { margin-top: auto; font-size: 0.875rem; font-weight: 700; color: var(--ar-burgundy); overflow-wrap: anywhere; }
.ar-safeguard .ar-btn { overflow-wrap: anywhere; }
.ar-clubhouse { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); padding: 0; overflow: hidden; }
.ar-clubhouse > div { display: flex; flex-direction: column; gap: 0.875rem; padding: 2rem; }
.ar-clubhouse .ar-eyebrow, .ar-clubhouse h2, .ar-clubhouse p { margin: 0; }
.ar-clubhouse p { line-height: 1.6; color: var(--ar-muted); }
.ar-clubhouse p strong { color: var(--ar-ink); }
.ar-clubhouse__actions { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.ar-clubhouse__img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; }

/* ---------- Cookie policy (legal reading layout) ---------- */
.ar-legal { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 2rem; align-items: start; }
.ar-legal__toc { position: sticky; top: 6rem; padding: 1.125rem 1.25rem; border-radius: 18px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-legal__toc .ar-eyebrow { margin: 0 0 0.5rem; color: var(--ar-muted); }
.ar-legal__toc ul { margin: 0; padding: 0; list-style: none; }
.ar-legal__toc a { display: block; padding: 0.5rem 0; border-top: 1px solid var(--ar-hairline); color: var(--ar-ink); text-decoration: none; }
.ar-legal__toc a:hover, .ar-legal__toc a:focus-visible { color: var(--ar-burgundy); text-decoration: underline; }
.ar-legal__body { max-width: 72ch; padding: 2.5rem 2.75rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-legal__body h2 { margin: 2rem 0 0.75rem; font-size: 1.5rem; font-weight: 700; scroll-margin-top: 6rem; }
.ar-legal__body h2:first-child { margin-top: 0; }
.ar-legal__body p, .ar-legal__body li { font-size: 1.0625rem; line-height: 1.7; color: #2B2725; }
.ar-legal__body ul { margin: 0 0 1rem; padding-left: 1.25rem; }
.ar-legal__body li { margin-bottom: 0.375rem; }
.ar-legal__body a { color: var(--ar-burgundy); }
.ar-legal__table { margin: 0.5rem 0 1rem; }
.ar-legal__table td { font-size: 0.9375rem; line-height: 1.55; vertical-align: top; }
.ar-legal__table th[scope="row"] { vertical-align: top; }
.ar-legal__choice { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1rem; margin: 0.5rem 0 1rem; }
.ar-legal__choice .ar-hint { margin: 0; }

@media (max-width: 991.98px) {
    .ar-member, .ar-member__faq { grid-template-columns: 1fr; }
    .ar-member__steps ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ar-clubhouse { grid-template-columns: 1fr; }
    .ar-clubhouse__img { min-height: 180px; max-height: 220px; }
    .ar-legal { grid-template-columns: 1fr; }
    .ar-legal__toc { position: static; }
    .ar-legal__toc ul { columns: 2; column-gap: 1.25rem; }
}
@media (max-width: 575.98px) {
    .ar-member__club, .ar-member__ddsl { padding: 1.5rem; }
    .ar-public .ar-member__title { font-size: 2rem; }
    .ar-member__steps ol { grid-template-columns: 1fr; }
    .ar-legal__body { padding: 1.5rem 1.25rem; }
    .ar-legal__toc ul { columns: 1; }
}

/* ---------- Tournament team entry (public) ---------- */
.ar-tourhero__places { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
.ar-tourhero__places p { margin: 0; }
.ar-tourhero__label { font-size: 0.875rem; color: #D8D2CE; }
.ar-tourhero__count { font-family: var(--ar-font-display); font-size: 3.5rem; font-weight: 800; line-height: 1; color: #FFFFFF; }
.ar-tourhero__count span { font-size: 1.75rem; color: #D8D2CE; }
.ar-tourhero__meter { width: 260px; max-width: 100%; height: 10px; border-radius: 999px; background: rgba(255, 255, 255, 0.2); overflow: hidden; }
.ar-tourhero__meter span { display: block; height: 100%; background: #F2B705; }
.ar-tourhero__facts { display: flex; flex-wrap: wrap; gap: 1rem 3rem; margin: 0; padding: 1.25rem 0 1.75rem; border-top: 1px solid rgba(255, 255, 255, 0.15); }
.ar-tourhero__facts > div { display: flex; flex-direction: column; gap: 0.125rem; }
.ar-tourhero__facts dt { font-size: 0.8125rem; font-weight: 500; color: #D8D2CE; }
.ar-tourhero__facts dd { margin: 0; font-size: 1.0625rem; font-weight: 700; color: #FFFFFF; }
.ar-tourhero .ar-proghero__inner { padding-left: 0; padding-right: 0; }
.ar-tour { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 1.75rem; align-items: start; }
#content .ar-tour h2 { margin: 0 0 0.5rem; font-size: 1.125rem; font-weight: 700; }
#content .ar-tour__entry > h2 { font-size: 1.5rem; }
.ar-tour__entry { padding: 2rem; }
.ar-tour__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; margin-top: 1rem; }
.ar-tour__wide { grid-column: 1 / -1; }
.ar-tour__foot { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 0.5rem; padding-top: 1rem; border-top: 1px solid var(--ar-hairline); }
.ar-tour__fee { margin: 0; font-size: 0.9375rem; }
.ar-tour__fee strong { margin-left: 0.5rem; font-family: var(--ar-font-display); font-size: 2rem; font-weight: 800; line-height: 1; }
.ar-tour__foot .ar-btn i { margin-left: 0.375rem; margin-right: 0; }
.ar-tour__side { display: flex; flex-direction: column; gap: 1.25rem; }
.ar-tour__side .ar-details__card p { margin: 0 0 0.75rem; }
.ar-tour__groups { display: grid; grid-template-columns: auto 1fr; gap: 0.625rem 1rem; margin: 0; }
.ar-tour__groups > div { display: contents; }
.ar-tour__groups dt { font-weight: 700; }
.ar-tour__groups dd { margin: 0; color: var(--ar-muted); }
.ar-tour__flyer { display: block; overflow: hidden; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); color: var(--ar-burgundy); font-weight: 700; text-decoration: none; }
.ar-tour__flyer img { display: block; width: 100%; max-height: 220px; object-fit: cover; }
.ar-tour__flyer > span { display: block; padding: 0.875rem 1.25rem; }
.ar-tour__flyer:hover > span, .ar-tour__flyer:focus-visible > span { text-decoration: underline; }
.ar-paystep__email { overflow-wrap: anywhere; text-align: right; }
@media (max-width: 991.98px) {
    .ar-tour { grid-template-columns: 1fr; }
    .ar-tourhero__places { align-items: flex-start; }
}
@media (max-width: 575.98px) {
    .ar-tour__entry { padding: 1.5rem 1.25rem; }
    .ar-tour__grid { grid-template-columns: 1fr; }
    .ar-tour__foot .ar-btn { width: 100%; justify-content: center; }
    .ar-tourhero__facts { gap: 0.875rem 1.5rem; }
    .ar-tourhero__facts > div { flex: 1 1 40%; }
    .ar-tourhero__count { font-size: 2.75rem; }
}

/* ---------- Wagtail content pages (home/standard_page.html) ---------- */
.ar-content__crumbs ol { display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; margin: 0 0 1.25rem; padding: 0; list-style: none; font-size: 0.875rem; color: var(--ar-muted); }
.ar-content__crumbs li + li::before { content: "/"; margin-right: 0.5rem; color: var(--ar-border); }
.ar-content__crumbs a { color: var(--ar-muted); }
.ar-content__crumbs a:hover, .ar-content__crumbs a:focus-visible { color: var(--ar-burgundy); }
.ar-content__crumbs [aria-current] { color: var(--ar-ink); font-weight: 600; }
.ar-content__subnav { margin-bottom: 1.5rem; }
.ar-legal--single { grid-template-columns: minmax(0, 1fr); }
.ar-legal--single .ar-legal__body { max-width: 820px; margin: 0 auto; width: 100%; }
.ar-content__toc summary { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; min-height: 44px; list-style: none; cursor: pointer; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ar-muted); }
.ar-content__toc summary::-webkit-details-marker { display: none; }
.ar-content__toc-count { display: none; align-items: center; gap: 0.375rem; font-size: 0.875rem; font-weight: 500; letter-spacing: 0; text-transform: none; }
.ar-content__toc-count i { transition: transform 0.15s ease; }
.ar-content__toc[open] .ar-content__toc-count i { transform: rotate(180deg); }
.ar-content__updated { margin: 0 0 1rem; font-size: 0.875rem !important; color: var(--ar-muted) !important; }
.ar-richtext > :last-child { margin-bottom: 0; }
.ar-richtext h3 { margin: 1.5rem 0 0.5rem; font-size: 1.1875rem; font-weight: 700; scroll-margin-top: 6rem; }
.ar-richtext h4 { margin: 1.25rem 0 0.5rem; font-size: 1.0625rem; font-weight: 700; }
.ar-richtext p { margin: 0 0 1rem; }
.ar-richtext ol { margin: 0 0 1rem; padding-left: 1.5rem; }
.ar-richtext ol li { font-size: 1.0625rem; line-height: 1.7; color: #2B2725; margin-bottom: 0.375rem; }
.ar-richtext blockquote { margin: 1.25rem 0; padding: 1rem 1.25rem; font-size: 1.0625rem; line-height: 1.6; font-style: normal; border-radius: 16px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }
.ar-richtext blockquote p { color: inherit; }
.ar-richtext img { max-width: 100%; height: auto; border-radius: 12px; }
.ar-richtext table { width: 100%; margin: 0 0 1rem; border-collapse: collapse; font-size: 0.9375rem; }
.ar-richtext th, .ar-richtext td { padding: 0.625rem 0.75rem; border-top: 1px solid var(--ar-hairline); text-align: left; vertical-align: top; }
.ar-richtext hr { margin: 2rem 0; border: 0; border-top: 1px solid var(--ar-hairline); }
.ar-richtext .responsive-object, .ar-richtext iframe { max-width: 100%; }
.ar-content__children { margin-top: 2.5rem; }
.ar-content__cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.ar-content__card { display: flex; flex-direction: column; gap: 0.5rem; height: 100%; padding: 1.375rem; border-radius: 20px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); color: var(--ar-ink); text-decoration: none; }
.ar-content__card strong { font-size: 1.125rem; }
.ar-content__card > span:not(.ar-content__read) { color: var(--ar-muted); line-height: 1.5; }
.ar-content__read { display: inline-flex; align-items: center; gap: 0.375rem; margin-top: auto; padding-top: 0.25rem; font-size: 0.875rem; font-weight: 700; color: var(--ar-burgundy); }
.ar-content__card:hover strong, .ar-content__card:focus-visible strong { color: var(--ar-burgundy); text-decoration: underline; }
@media (max-width: 991.98px) {
    .ar-content__toc-count { display: inline-flex; }
    .ar-content .ar-legal__toc { padding: 0.25rem 1rem; }
    .ar-content .ar-legal__toc ul { padding-bottom: 0.5rem; }
}

/* ---------- Cookie consent banner (components/cookie_consent.html) ---------- */
.ar-cookiebar { position: fixed; right: 1.5rem; bottom: 1.5rem; z-index: 1090; width: min(760px, calc(100% - 3rem)); }
.ar-cookiebar[hidden] { display: none; }
.ar-cookiebar__card { display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem 1.75rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; color: var(--ar-ink); box-shadow: 0 -2px 0 var(--ar-burgundy-dark), 0 20px 50px rgba(20, 10, 10, 0.28); }
.ar-cookiebar__text { display: flex; gap: 0.875rem; align-items: flex-start; }
.ar-cookiebar__icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.25rem; }
.ar-cookiebar .ar-cookiebar__title { margin: 0 0 0.375rem; font-size: 1.1875rem; font-weight: 700; color: var(--ar-ink); }
.ar-cookiebar__title:focus { outline: none; }
.ar-cookiebar__title:focus-visible { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
.ar-cookiebar p { margin: 0; font-size: 0.9375rem; line-height: 1.55; color: #2B2725; }
.ar-cookiebar p a { font-weight: 700; color: var(--ar-burgundy); }
.ar-cookiebar__actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.625rem; }
.ar-cookiebar__actions .ar-btn { justify-content: center; }
@media (max-width: 575.98px) {
    .ar-cookiebar { right: 0; bottom: 0; width: 100%; }
    .ar-cookiebar__card { padding: 1.25rem 1rem calc(1rem + env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; }
    .ar-cookiebar__actions { grid-template-columns: 1fr; }
}

/* ---------- Enter result: goals and who played (manager/fixture-score.html) ---------- */
.ar-goals[hidden], .ar-played[hidden] { display: none; }
.ar-goals__count { margin: 0 0 0.5rem; font-size: 0.875rem; font-weight: 700; color: var(--ar-muted); }
.ar-goals__count:empty { display: none; }
.ar-goals__count.is-done { color: var(--ar-good-fg); }
.ar-goals__list { margin: 0 0 0.75rem; padding: 0; list-style: none; }
.ar-goal { display: grid; grid-template-columns: 32px minmax(0, 1fr) 44px; gap: 0.75rem; align-items: start; padding: 0.875rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-goal__num { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; margin-top: 1.75rem; border-radius: 50%; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 0.875rem; font-weight: 800; }
.ar-goal__fields { display: grid; grid-template-columns: minmax(0, 1.4fr) 96px minmax(0, 1.2fr); gap: 0 0.75rem; align-items: start; }
.ar-goal__fields .ar-field { margin-bottom: 0.5rem; }
.ar-goal__name { grid-column: 1 / -1; }
.ar-goal__name[hidden] { display: none; }
.ar-goal__scorer { grid-column: 1; grid-row: 1; }
.ar-goal__minute { grid-column: 2; grid-row: 1; }
.ar-goal__assist { grid-column: 3; grid-row: 1; }
.ar-goal__own { grid-column: 1 / -1; min-height: 44px; font-size: 0.9375rem; }
.ar-goal__remove { width: 44px; height: 44px; margin-top: 1.5rem; border: 0; border-radius: 10px; background: transparent; color: var(--ar-muted); font-size: 1.125rem; }
.ar-goal__remove:hover, .ar-goal__remove:focus-visible { background: var(--ar-bad-bg); color: var(--ar-bad-fg); }
.ar-goal__remove[hidden] { display: none; }
.ar-played__head { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-bottom: 0.75rem; }
.ar-played__head .ar-hint { flex: 1 1 260px; margin: 0; }
.ar-played__count { font-size: 0.875rem; font-weight: 600; color: var(--ar-muted); }
.ar-played__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.5rem; margin: 0; padding: 0; list-style: none; }
.ar-played__item { min-height: 48px; padding: 0 0.75rem; border-radius: 10px; background: var(--ar-page); font-size: 0.9375rem; }
.ar-played__item .ar-pill { margin-left: 0.25rem; }
.ar-played__shirt { display: inline-block; min-width: 1.5rem; margin-right: 0.375rem; font-weight: 800; color: var(--ar-burgundy-dark); }
#goal-mismatch { margin-bottom: 1rem; }
#goal-mismatch:focus { outline: 3px solid var(--ar-burgundy); outline-offset: 2px; }
@media (max-width: 575.98px) {
    .ar-goal { grid-template-columns: minmax(0, 1fr) 44px; }
    .ar-goal__num { display: none; }
    .ar-goal__fields { grid-template-columns: 88px minmax(0, 1fr); }
    .ar-goal__scorer { grid-column: 1 / -1; grid-row: auto; }
    .ar-goal__minute { grid-column: 1; grid-row: auto; }
    .ar-goal__assist { grid-column: 2; grid-row: auto; }
    .ar-goal__remove { margin-top: 1.5rem; }
}
.ar-sheet--wide { max-width: 880px; }

/* ---------- Results with scorers (manager/fixtures-results.html) ---------- */
.ar-results__match .ar-results__scorers { display: flex; align-items: baseline; gap: 0.375rem; margin-top: 0.125rem; font-size: 0.875rem; color: var(--ar-ink); }
.ar-results__match .ar-results__scorers i { color: var(--ar-burgundy); }
.ar-results__match .ar-results__scorers--none { color: var(--ar-muted); font-style: italic; }
.ar-topscorers { margin-top: 1.5rem; max-width: 480px; }
#content .ar-topscorers h3 { margin: 0 0 0.5rem; font-size: 1.125rem; font-weight: 700; }
.ar-topscorers ol { margin: 0; padding: 0; list-style: none; }
.ar-topscorers li { display: flex; justify-content: space-between; align-items: baseline; padding: 0.625rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-topscorers strong { font-family: var(--ar-font-display); font-size: 1.5rem; font-weight: 800; line-height: 1; }
.ar-latest__scorers { display: flex; align-items: baseline; gap: 0.375rem; margin: 0 0 0.5rem; font-size: 0.9375rem; }
.ar-latest__scorers i { color: var(--ar-burgundy); }

/* ---------- Squad details (manager/team-status.html) ---------- */
.ar-avatar--shirt { background: var(--ar-burgundy-dark); color: #FFFFFF; font-family: var(--ar-font-display); font-size: 1.25rem; font-weight: 800; }
.ar-captain { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin-left: 0.25rem; border-radius: 50%; background: var(--ar-gold, #F2B705); color: var(--ar-ink); font-size: 0.75rem; font-weight: 800; vertical-align: 2px; }
.ar-roster__who .ar-roster__role { color: var(--ar-ink); }
.ar-roster__role .ar-pill { vertical-align: 1px; }
.ar-roster__end { display: flex; flex-direction: column; align-items: flex-end; gap: 0.375rem; margin-left: auto; }
.ar-roster__acts { display: flex; gap: 0.25rem; }
.ar-squadstats { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); }
.ar-squadstats__leaders { display: flex; flex-direction: column; gap: 0.375rem; margin: 0 0 1.25rem; padding: 0; list-style: none; font-size: 0.9375rem; }
.ar-squadstats__leaders li { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.375rem; }
.ar-squadstats__leaders i { color: var(--ar-burgundy); }
.ar-team-head__msg { margin-top: 0.875rem; }
.ar-squadform { display: flex; flex-direction: column; gap: 1rem; }
.ar-squadform__row { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 0.875rem; }
.ar-squadform .ar-field { margin: 0; }
.ar-squadform .ar-callout { margin: 0; }
.ar-squadform__actions { display: flex; gap: 0.625rem; }
.ar-squadform__actions .ar-btn--primary { flex: 1; justify-content: center; }

/* ---------- Message your team (manager/message-team.html) ---------- */
.ar-msgteam { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 1.5rem; align-items: start; margin-top: 1rem; }
#content .ar-msgteam h2 { margin: 0 0 0.75rem; font-size: 1.25rem; font-weight: 700; }
.ar-msgteam__to { display: flex; gap: 0.625rem; align-items: center; margin: 0 0 0.375rem; padding: 0.75rem 0.875rem; border-radius: 12px; background: var(--ar-page); }
.ar-msgteam__send { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem 1rem; }
.ar-msgteam__side { display: flex; flex-direction: column; gap: 1.25rem; }
.ar-msgteam__sent { margin: 0; padding: 0; list-style: none; }
.ar-msgteam__sent li { display: flex; flex-direction: column; padding: 0.625rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-msgteam__sent span { font-size: 0.8125rem; color: var(--ar-muted); }
.ar-pushpreview { padding: 0.875rem; border-radius: 26px; background: var(--ar-ink); }
.ar-pushpreview__card { display: flex; flex-direction: column; gap: 0.125rem; padding: 0.75rem 0.875rem; border-radius: 16px; background: rgba(255, 255, 255, 0.94); font-size: 0.875rem; line-height: 1.35; overflow-wrap: anywhere; }
.ar-pushpreview__app { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ar-muted); }
@media (max-width: 991.98px) {
    .ar-msgteam { grid-template-columns: 1fr; }
}

/* ---------- Player stats (player_stats.html) ---------- */
.ar-pstats { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1.5rem; align-items: start; margin-top: 1rem; }
.ar-pstats__main { display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.ar-pstats__hero { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.ar-pstats__hero > div { flex: 1 1 200px; }
.ar-pstats__hero .ar-avatar { flex: 0 0 64px; width: 64px; height: 64px; font-size: 1.75rem; }
.ar-pstats__who { margin: 0 0 0.375rem; font-size: 1rem; color: var(--ar-ink); }
.ar-pstats__tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; }
.ar-pstats__tiles > div { padding: 1.25rem 1.375rem; border-radius: var(--ar-radius-lg); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-pstats__tiles dt { font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ar-muted); }
.ar-pstats__tiles dd { margin: 0.25rem 0 0; font-family: var(--ar-font-display); font-size: 2.75rem; font-weight: 800; line-height: 1; color: var(--ar-ink); }
.ar-pstats__tiles .is-goals dd { color: var(--ar-burgundy-dark); }
.ar-pstats__games-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 0.75rem; margin-bottom: 0.75rem; }
#content .ar-pstats h2 { margin: 0; font-size: 1.25rem; font-weight: 700; }
.ar-pstats__season { display: flex; align-items: flex-end; gap: 0.5rem; }
.ar-pstats__season .ar-label { margin: 0 0 0.75rem; }
.ar-pstats__history ul { margin: 0.75rem 0 0; padding: 0; list-style: none; }
.ar-pstats__history li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.625rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-player-card__stats { color: var(--ar-ink) !important; font-weight: 600; }
@media (max-width: 991.98px) {
    .ar-pstats { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .ar-pstats__tiles { gap: 0.5rem; }
    .ar-pstats__tiles > div { padding: 0.875rem; }
    .ar-pstats__tiles dt { font-size: 0.6875rem; letter-spacing: 0.06em; }
    .ar-pstats__tiles dd { font-size: 2rem; }
}

/* ---------- Notifications: header bell and inbox ---------- */
.ar-notifbell { position: relative; margin-left: auto; }
.ar-notifbell__button { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 12px; background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); font-size: 1.25rem; }
.ar-notifbell__button:hover, .ar-notifbell__button[aria-expanded="true"] { background: #EBD2D7; }
.ar-notifbell__count { position: absolute; top: 3px; right: 3px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: var(--ar-burgundy); color: #FFFFFF; font-size: 0.6875rem; font-weight: 800; line-height: 18px; text-align: center; }
.ar-notifbell__panel { width: min(420px, calc(100vw - 2rem)); padding: 0; overflow: hidden; }
.ar-notifbell__head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.875rem 1rem; }
.ar-notifbell__head form { margin: 0; }
.ar-notifbell__title { margin: 0; font-size: 1.0625rem; font-weight: 700; color: var(--ar-ink); }
.ar-notifbell__empty { margin: 0; padding: 0 1rem 1rem; font-size: 0.9375rem; }
.ar-notifbell__all { display: block; padding: 0.875rem 1rem; border-top: 1px solid var(--ar-hairline); text-align: center; font-weight: 700; color: var(--ar-burgundy); }
.ar-notiflist { margin: 0; padding: 0; list-style: none; }
.ar-notif a { display: flex; align-items: flex-start; gap: 0.875rem; padding: 1rem; border-top: 1px solid var(--ar-hairline); color: var(--ar-ink); text-decoration: none; }
.ar-notif.is-unread a { background: #FCF8F9; }
.ar-notif a:hover, .ar-notif a:focus-visible { background: var(--ar-page); }
.ar-notif a:hover strong { text-decoration: underline; }
.ar-noticon { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 40px; height: 40px; border-radius: 12px; font-size: 1.125rem; }
.ar-noticon--bur { background: var(--ar-burgundy-tint); color: var(--ar-burgundy-dark); }
.ar-noticon--good { background: var(--ar-good-bg); color: var(--ar-good-fg); }
.ar-noticon--warn { background: var(--ar-warn-bg); color: var(--ar-warn-fg); }
.ar-noticon--neutral { background: var(--ar-neutral-bg); color: var(--ar-neutral-fg); }
.ar-notif__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.125rem; }
.ar-notif__text strong { font-weight: 600; }
.ar-notif.is-unread .ar-notif__text strong { font-weight: 800; }
.ar-notif__text > span { font-size: 0.875rem; line-height: 1.45; color: var(--ar-muted); overflow-wrap: anywhere; }
.ar-notif__when { flex-shrink: 0; font-size: 0.8125rem; color: var(--ar-muted); white-space: nowrap; }
.ar-notif__dot { flex: 0 0 10px; height: 10px; margin-top: 6px; border-radius: 50%; background: var(--ar-burgundy); }
.ar-notiflist--compact .ar-notif__text > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ar-notifpage { max-width: 820px; padding: 0; overflow: hidden; }
.ar-notifpage__bar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 1rem 1.25rem; }
.ar-notifpage__bar form { margin: 0; }
.ar-notifpage .ar-table__foot { padding: 0.75rem 1.25rem; border-top: 1px solid var(--ar-hairline); }
.ar-notifpage .ar-empty { margin: 0; }
.ar-notifpage__note { max-width: 820px; margin: 1rem 0 0; font-size: 0.875rem; }
@media (max-width: 575.98px) {
    .ar-notif a { padding: 0.875rem; gap: 0.75rem; }
    .ar-notif__when { display: none; }
}
.ar-notifbell + .ar-areahead-bar__account { margin-left: -1.25rem; }
@media (max-width: 991.98px) {
    .ar-notifbell { margin-right: 0; }
    .ar-notifbell + .ar-areahead-bar__account { margin-left: 0; }
}
.ar-areahead-bar .ar-notifbell__panel { width: min(420px, calc(100vw - 2rem)); padding: 0; }
.ar-roster__who .ar-roster__role .ar-pill { display: inline-flex; margin: 0 0.125rem; }
.ar-roster__who strong .ar-captain { display: inline-flex; }
.ar-roster__who .ar-roster__role .visually-hidden { display: inline; }
/* The bell panel reuses .ar-areas__panel; undo the account menu's stacked link style. */
.ar-notifbell__panel ul.ar-notiflist a { flex-direction: row; justify-content: flex-start; min-height: 0; padding: 0.875rem 1rem; border-radius: 0; }
.ar-notifbell__panel ul.ar-notiflist .ar-notif__text > span { font-size: 0.8125rem; }
.ar-notifbell__panel .ar-notif__when { font-size: 0.75rem; }
.ar-notifbell__markall { padding: 0.25rem 0; border: 0; background: none; color: var(--ar-burgundy); font-size: 0.875rem; font-weight: 700; text-decoration: underline; }
.ar-notifbell__markall:hover { color: var(--ar-burgundy-dark); }

/* ---------- Flash messages (components/messages.html) ----------
   Bootstrap's .alert keeps the dismiss behaviour; these set the look. */
.alert.ar-flash { display: flex; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.25rem; padding: 1rem 3.25rem 1rem 1.125rem; border: 0; border-radius: 14px; font-size: 0.9375rem; line-height: 1.5; box-shadow: none; }
.ar-flash > i { flex-shrink: 0; margin-top: 0.125rem; font-size: 1.125rem; }
.ar-flash__text { flex: 1; min-width: 0; }
.ar-flash__text a { color: inherit; font-weight: 700; text-decoration: underline; }
.ar-flash--good { background: var(--ar-good-bg); color: var(--ar-good-fg); }
.ar-flash--bad { background: var(--ar-bad-bg); color: var(--ar-bad-fg); }
.ar-flash--warn { background: var(--ar-warn-bg); color: var(--ar-warn-fg); }
.ar-flash--info { background: var(--ar-neutral-bg); color: var(--ar-neutral-fg); }
.ar-flash .btn-close { top: 50%; right: 0.5rem; width: 44px; height: 44px; padding: 0; transform: translateY(-50%); opacity: 0.7; background-size: 0.75rem; }
.ar-flash .btn-close:hover { opacity: 1; }
.ar-flash .btn-close:focus-visible { opacity: 1; box-shadow: 0 0 0 3px var(--ar-burgundy); }

/* ---------- Club admin fixture: Goalscorers card (admin/fixture_form.html) ---------- */
.ar-fxgoals { max-width: 880px; margin-top: 1.5rem; }
#content .ar-fxgoals h2 { margin: 0 0 0.375rem; font-size: 1.25rem; font-weight: 700; }
.ar-fxgoals .ar-goals { margin: 0.5rem 0 1rem; }

/* ---------- Club crests (club_badge tag) ---------- */
.ar-crest { flex-shrink: 0; width: var(--crest, 40px); height: var(--crest, 40px); border-radius: 50%; background: #FFFFFF; object-fit: contain; }
.ar-crest--initials { display: inline-flex; align-items: center; justify-content: center; box-shadow: inset 0 0 0 2px var(--ar-border); color: var(--ar-ink); font-size: calc(var(--crest, 40px) * 0.3); font-weight: 800; letter-spacing: 0.02em; line-height: 1; }
.ar-teamline { display: inline-flex; align-items: center; gap: 0.5rem; min-width: 0; }

/* ---------- DDSL import ---------- */
.ar-ddsl__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem 1rem; margin: 0 0 1.25rem; }
.ar-ddsl__head form { margin: 0; }
.ar-ddsl__stats { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin-bottom: 1.25rem; }
.ar-ddsl__group { margin: 1.75rem 0 0; }
.ar-ddsl__group > h2 { margin: 0 0 0.75rem; font-size: 1.25rem; font-weight: 700; color: var(--ar-ink); }
.ar-ddsl__card { margin-bottom: 1rem; }
.ar-ddsl__cardhead { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.75rem; }
.ar-ddsl__meta { margin: 0 0 0.375rem; font-size: 0.875rem; color: var(--ar-muted); }
.ar-ddsl__meta strong { color: var(--ar-burgundy-dark); }
.ar-ddsl__teams { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem; margin: 0; font-size: 1.0625rem; font-weight: 700; color: var(--ar-ink); }
.ar-ddsl__v { color: var(--ar-muted); }
.ar-ddsl__actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
.ar-ddsl__diff { margin: 0; }
.ar-ddsl__new { padding: 0.125rem 0.5rem; border-radius: 6px; background: var(--ar-warn-bg); color: var(--ar-warn-fg); font-weight: 700; }
.ar-ddsl__done summary { cursor: pointer; font-weight: 700; min-height: 44px; display: flex; align-items: center; }
.ar-ddsl__done ul { margin: 0.5rem 0 0; padding: 0; list-style: none; }
.ar-ddsl__done li { padding: 0.5rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-ddsl__pending .ar-count { margin-left: 0.375rem; }

/* Crests in the homepage match centre and fixture lists */
.ar-next__teams { align-items: center; }
.ar-next__side { display: inline-flex; align-items: center; gap: 0.75rem; }
.ar-next__side .ar-crest { box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.18); }
@media (max-width: 575.98px) { .ar-next__side .ar-crest { --crest: 48px; width: 48px; height: 48px; } }
.ar-next__ref { display: inline-flex; align-items: center; margin-left: 1rem; }
.ar-latest__board { display: flex; align-items: center; gap: 1rem; min-width: 0; }
@media (min-width: 992px) and (max-width: 1199.98px) {
    .ar-latest__board { gap: 0.625rem; }
    .ar-latest__head { flex-wrap: wrap; }
}
.ar-latest__board .ar-latest__score { margin: 0.25rem 0 0.5rem; }
.ar-latest__crest { display: inline-flex; flex-shrink: 0; }
.ar-teams { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.625rem; }
.ar-maplink { display: inline-flex; align-items: center; gap: 0.25rem; font-weight: 600; text-decoration: underline; }
.ar-maplink i { font-size: 0.75em; }
.ar-fixture__meta strong { font-weight: 600; color: var(--ar-ink); }

/* ---------- Public fixtures: Upcoming / Results and the weekly results list ---------- */
.ar-weeknav { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; margin: 1.25rem 0 0.75rem; }
.ar-weeknav__label { text-align: center; }
.ar-weeknav__label h2 { margin: 0; font-family: var(--ar-font-display); font-weight: 800; font-size: clamp(1.25rem, 3vw, 1.75rem); text-transform: uppercase; color: var(--ar-ink); }
.ar-weeknav__label p { margin: 0; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-weeknav .is-disabled { opacity: 0.45; pointer-events: none; }
.ar-weeknav__sr { display: none; }
@media (max-width: 575.98px) {
    .ar-weeknav__word { display: none; }
    .ar-weeknav__sr { display: inline; }
    .ar-weeknav .ar-btn { padding: 0 0.875rem; }
}
.ar-fx-rule { display: flex; gap: 0.5rem; align-items: flex-start; margin: 0 0 1rem; font-size: 0.875rem; color: var(--ar-muted); }
.ar-rs-row { display: flex; flex-direction: column; gap: 0.5rem; padding: 1rem 1.25rem; border-top: 1px solid var(--ar-hairline); }
.ar-rs-row.is-off { background: #FAF9F7; }
.ar-rs-row__board { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 1rem; }
.ar-rs-row__team { display: flex; align-items: center; gap: 0.625rem; min-width: 0; font-weight: 600; color: var(--ar-ink); }
/* row-reverse puts the badge on the right; flex-start then packs the team against the score. */
.ar-rs-row__team--home { justify-content: flex-start; flex-direction: row-reverse; text-align: right; }
.ar-rs-row__score { display: inline-flex; align-items: center; justify-content: center; min-width: 5.5rem; height: 44px; padding: 0 0.75rem; border-radius: 10px; background: var(--ar-ink); color: #FFFFFF; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.5rem; }
.ar-rs-row__score.is-off { background: #F1EFEC; color: var(--ar-muted); }
.ar-rs-row .ar-fixture__meta { justify-content: center; }
@media (max-width: 575.98px) {
    .ar-rs-row__board { grid-template-columns: minmax(0, 1fr) auto; gap: 0.5rem 0.75rem; }
    .ar-rs-row__team--home { flex-direction: row; justify-content: flex-start; text-align: left; }
    .ar-rs-row__score { grid-column: 2; grid-row: 1 / span 2; min-width: 4.5rem; }
    .ar-rs-row__team--away { grid-row: 2; }
    .ar-rs-row .ar-fixture__meta { justify-content: flex-start; }
}

/* ==========================================================================
   Logged-in areas · clearer surfaces (Round 14)
   A warm grey page behind the cards, a visible edge on every card, and
   repeated items as separate cards on phones. body.ar-area is set in base.html
   for signed-in pages in the accounts app; public pages are unchanged.
   ========================================================================== */
body.ar-area {
    --ar-area-bg: #EFEBE7;
    --ar-card-line: #E0DAD4;
    --ar-shadow-1: 0 0 0 1px var(--ar-card-line), 0 1px 2px rgba(20, 10, 10, 0.06);
    background: var(--ar-area-bg);
}
body.ar-area #wrapper,
body.ar-area #content,
body.ar-area .content-wrap { background: var(--ar-area-bg); }

/* Number tiles: white cards with an edge (they were light grey, which vanished on the grey page). */
body.ar-area .ar-stat { background: #FFFFFF; box-shadow: var(--ar-shadow-1); }

/* Filter rows folded behind a "Filters" button on phones; open (and the button hidden) from 768px. */
.ar-filterfold { display: contents; }
.ar-filterfold > summary { list-style: none; cursor: pointer; }
.ar-filterfold > summary::-webkit-details-marker { display: none; }
.ar-filterfold__body { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; }
@media (min-width: 768px) {
    .ar-filterfold[open] > summary { display: none; }
}
@media (max-width: 767.98px) {
    .ar-filterfold { display: block; flex: 0 0 auto; }
    .ar-filterfold[open] { flex: 1 1 100%; }
    .ar-filterfold__body { margin-top: 0.625rem; padding: 0.875rem; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
    .ar-filterfold__body > * { flex: 1 1 100%; }
    .ar-filterfold__body .ar-filterbar__select select { max-width: none; flex: 1; }
}

@media (max-width: 767.98px) {
    /* Lists of rows (registrations, kit, payments, fixtures, messages, sign-ups): each row its own card. */
    body.ar-area .ar-table-card { overflow: visible; background: transparent; box-shadow: none; border-radius: 0; }
    body.ar-area .ar-table-card .ar-table--stack tbody { display: flex; flex-direction: column; gap: 0.75rem; }
    body.ar-area .ar-table-card .ar-table--stack tbody tr { border-top: 0; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
    body.ar-area .ar-table-card .ar-table--stack tbody tr.is-alert { background: #FFFFFF; box-shadow: inset 4px 0 0 var(--ar-bad-fg), var(--ar-shadow-1); }
    body.ar-area .ar-table-card .ar-table--stack tbody tr.is-due { box-shadow: inset 4px 0 0 #C98A00, var(--ar-shadow-1); }
    body.ar-area .ar-table-card .ar-table__foot { margin-top: 0.75rem; border-top: 0; border-radius: var(--ar-radius); background: #FFFFFF; box-shadow: var(--ar-shadow-1); }

    body.ar-area .ar-table-card .ar-table--stack tbody tr[class*="ar-fxrow--"] { box-shadow: inset 5px 0 0 var(--ar-fx-edge, transparent), var(--ar-shadow-1); }
    /* Date headings in the fixtures list stay headings, not cards. */
    body.ar-area .ar-table-card .ar-table--stack tbody tr.ar-fxtable__day { padding: 0.75rem 0.25rem 0; background: transparent; box-shadow: none; border-radius: 0; }
    body.ar-area .ar-table-card .ar-fxtable__day th { padding: 0 !important; background: transparent; border-top: 0 !important; }

    /* Squad list: each player a card inside the team card. */
    body.ar-area .ar-roster { display: flex; flex-direction: column; gap: 0.625rem; }
    body.ar-area .ar-roster li { flex-wrap: wrap; align-items: flex-start; padding: 0.75rem; border-radius: 12px; background: #FFFFFF; box-shadow: 0 0 0 1px var(--ar-card-line); }
    body.ar-area .ar-roster li .ar-roster__who { flex: 1 1 0; }
    body.ar-area .ar-roster li .ar-roster__end { flex: 1 1 100%; flex-direction: row; justify-content: space-between; align-items: center; margin: 0; padding-top: 0.5rem; border-top: 1px solid var(--ar-hairline); }
    body.ar-area .ar-roster li + li { border-top: 0; }
    body.ar-area .ar-roster li[data-status="failed"], body.ar-area .ar-roster li[data-status="retry"] { box-shadow: inset 4px 0 0 var(--ar-bad-fg), 0 0 0 1px var(--ar-card-line); }
    body.ar-area .ar-roster li[data-status="pending"] { box-shadow: inset 4px 0 0 #C98A00, 0 0 0 1px var(--ar-card-line); }
}

/* ==========================================================================
   Senior teams (FAI Connect feed): homepage card
   ========================================================================== */
.ar-seniorcard { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 1.25rem; padding: 2rem 2.25rem; border-radius: 24px; background: var(--ar-burgundy-dark); color: #FFFFFF; }
.ar-seniorcard__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.ar-seniorcard__eyebrow { margin: 0 0 0.375rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ar-gold); }
.ar-seniorcard__title { margin: 0; font-family: var(--ar-font-display); font-weight: 900; font-style: italic; font-size: clamp(2.25rem, 4vw, 3.25rem); line-height: 0.9; text-transform: uppercase; color: #FFFFFF; }
.ar-seniorcard__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; }
.ar-seniorcard__sub { margin: 0 0 0.25rem; font-size: 0.8125rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: #E6D3D6; }
.ar-seniorcard__list { margin: 0; padding: 0; list-style: none; }
.ar-seniorcard__list li { display: flex; align-items: center; gap: 0.75rem; padding: 0.625rem 0; border-top: 1px solid rgba(255, 255, 255, 0.16); }
.ar-seniorcard__what { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.125rem; }
.ar-seniorcard__what strong { color: #FFFFFF; font-size: 0.9375rem; }
.ar-seniorcard__what span { font-size: 0.8125rem; color: #E6D3D6; }
.ar-seniorcard__score { font-family: var(--ar-font-display); font-weight: 800; font-size: 1.75rem; color: #FFFFFF; }
.ar-seniorcard__wdl { width: 32px; height: 32px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; font-weight: 800; color: #FFFFFF; background: rgba(255, 255, 255, 0.2); }
.ar-seniorcard__wdl--win { background: #1E7A43; }
.ar-seniorcard__wdl--draw { background: #8A5A00; }
.ar-seniorcard__wdl--loss { background: #B3261E; }
.ar-seniorcard .ar-crest--initials { background: #FFFFFF; }
@media (max-width: 1199.98px) and (min-width: 992px) {
    .ar-seniorcard__grid { gap: 1.5rem; }
}
@media (max-width: 767.98px) {
    .ar-seniorcard { padding: 1.5rem 1.25rem; }
    .ar-seniorcard__grid { grid-template-columns: 1fr; gap: 1.25rem; }
    /* On phones the button follows the lists. */
    .ar-seniorcard__head { display: contents; }
    .ar-seniorcard__grid { order: 1; }
    .ar-seniorcard__all { order: 2; width: 100%; justify-content: center; }
}

/* ==========================================================================
   Senior teams page: every match, date on the left, competition highlighted
   ========================================================================== */
.ar-srlist { overflow: hidden; border-radius: 20px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-srlist__title { margin: 0; padding: 1rem 1.25rem; font-family: var(--ar-font-display); font-size: 1.625rem; font-style: italic; font-weight: 800; text-transform: uppercase; }
.ar-srlist__rows { margin: 0; padding: 0; list-style: none; }
.ar-srrow {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr) 13.5rem;
    grid-template-areas: "date board comp" "date board where";
    column-gap: 1rem;
    align-items: center;
    padding: 0.875rem 1.25rem;
    border-top: 1px solid var(--ar-hairline);
}
.ar-srrow p { margin: 0; }
.ar-srrow.is-off { background: #FAF9F7; }
.ar-srrow__date { grid-area: date; font-weight: 700; font-size: 0.9375rem; color: var(--ar-burgundy); }
.ar-srrow__comp { grid-area: comp; align-self: end; }
.ar-srrow__pill { display: inline-block; padding: 0.1875rem 0.625rem; border-radius: 999px; background: #F3E6E8; color: var(--ar-burgundy-dark); font-size: 0.75rem; font-weight: 700; line-height: 1.35; }
.ar-srrow__where { grid-area: where; align-self: start; margin-top: 0.25rem !important; font-size: 0.8125rem; color: var(--ar-muted); }
.ar-srrow__where i { margin-right: 0.25rem; }
.ar-srrow__board { grid-area: board; display: grid; grid-template-columns: minmax(0, 1fr) 5.5rem minmax(0, 1fr); gap: 1rem; align-items: center; }
.ar-srrow__team { display: flex; align-items: center; gap: 0.625rem; min-width: 0; font-weight: 700; font-size: 0.9375rem; color: var(--ar-ink); }
.ar-srrow__team > span:not(.ar-crest) { overflow-wrap: anywhere; }
.ar-srrow__team--home { justify-content: flex-end; text-align: right; }
.ar-srrow__time { justify-self: center; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.5rem; color: var(--ar-muted); text-align: center; }
.ar-srrow__time--status { font-family: inherit; font-size: 0.875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.ar-srrow__score { justify-self: center; padding: 0.125rem 0.75rem; border-radius: 10px; background: var(--ar-ink); color: #FFFFFF; font-family: var(--ar-font-display); font-weight: 800; font-size: 1.625rem; white-space: nowrap; }
@media (max-width: 767.98px) {
    .ar-srlist { border-radius: 16px; }
    .ar-srrow { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "date comp" "board board" "where where"; row-gap: 0.625rem; padding: 0.875rem 1rem; }
    .ar-srrow__comp { align-self: center; text-align: right; }
    .ar-srrow__board { grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 0.625rem; }
    .ar-srrow__team { flex-direction: column; gap: 0.375rem; font-size: 0.875rem; text-align: center; }
    .ar-srrow__team--home { flex-direction: column-reverse; text-align: center; }
    .ar-srrow__time, .ar-srrow__score { font-size: 1.375rem; }
    .ar-srrow__time--status { font-size: 0.8125rem; }
    .ar-srrow__where { margin-top: 0 !important; }
}
/* Senior results: competition dropdown (names can be long) */
.ar-seniors__comp { margin: 0; }
.ar-seniors__comp .ar-filterbar__select { flex: 1 1 320px; max-width: 560px; min-width: 0; }
.ar-seniors__comp .ar-filterbar__select select { flex: 1; min-width: 0; max-width: none; text-overflow: ellipsis; }
@media (max-width: 575.98px) {
    .ar-seniors__comp .ar-filterbar__select { flex-basis: 100%; max-width: none; }
    .ar-seniors__comp .ar-btn { width: 100%; justify-content: center; }
}
/* Admin fixture page: managers' contact details */
.ar-fxcontacts { margin-top: 1.25rem; }
.ar-fxcontacts__list { margin: 0; padding: 0; list-style: none; }
.ar-fxcontacts__list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.25rem 1rem; align-items: center; padding: 0.75rem 0; border-top: 1px solid var(--ar-hairline); }
.ar-fxcontacts__list li:first-child { border-top: 0; }
.ar-fxcontacts__ways { display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; justify-content: flex-end; }
.ar-fxcontacts__ways a { display: inline-flex; align-items: center; gap: 0.375rem; min-height: 44px; font-weight: 600; overflow-wrap: anywhere; }
@media (max-width: 767.98px) {
    .ar-fxcontacts__list li { grid-template-columns: minmax(0, 1fr); }
    .ar-fxcontacts__ways { justify-content: flex-start; }
}

/* ==========================================================================
   Provisional fixtures (league spreadsheet): parents and managers only
   ========================================================================== */
.ar-prov { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--ar-hairline); }
.ar-prov__title { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; margin: 0 0 0.5rem; font-size: 1rem; font-weight: 700; }
.ar-prov__tag { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.125rem 0.625rem; border-radius: 999px; background: #FFFFFF; box-shadow: inset 0 0 0 1.5px #A8861A; color: #5A4A00; font-size: 0.75rem; font-weight: 700; }
.ar-prov__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 0.5rem; }
.ar-prov__item { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: 0.75rem; align-items: start; padding: 0.75rem 0.875rem; border-radius: 12px; background: #FBFAF8; border: 1.5px dashed #A79E96; }
.ar-prov__date { font-weight: 700; color: var(--ar-burgundy); font-size: 0.875rem; }
.ar-prov__match { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; }
.ar-prov__match .ar-teamline span { overflow-wrap: anywhere; }
.ar-prov__meta { font-size: 0.8125rem; color: var(--ar-muted); }
.ar-prov__note { display: flex; gap: 0.5rem; margin: 0.75rem 0 0; font-size: 0.8125rem; color: var(--ar-muted); }
@media (max-width: 575.98px) {
    .ar-prov__item { grid-template-columns: minmax(0, 1fr); gap: 0.375rem; }
}

/* Admin: provisional upload, preview and status strip */
.ar-provstrip { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 0 0 1.25rem; padding: 1rem 1.25rem; border-radius: 16px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); border-left: 4px solid #A8861A; }
.ar-provstrip__icon { width: 40px; height: 40px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: #FFF4D6; color: #5A4A00; font-size: 1.125rem; }
.ar-provstrip__text { flex: 1 1 280px; min-width: 0; }
.ar-provstrip__text h2 { margin: 0; font-size: 1rem; font-weight: 700; }
.ar-provstrip__text p { margin: 0.125rem 0 0; font-size: 0.8125rem; color: var(--ar-muted); overflow-wrap: anywhere; }
.ar-provstrip__actions { display: flex; align-items: center; gap: 0.5rem; }
.ar-provstrip__actions form { margin: 0; }
.ar-provup__rules { margin: 0 0 1.25rem; padding-left: 1.25rem; }
.ar-provup__rules li { margin-bottom: 0.25rem; }
.ar-provup__form { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; }
.ar-provup__form input[type="file"] { max-width: 100%; }
.ar-provprev__stats { margin-bottom: 1.5rem; }
.ar-provprev__group { margin-bottom: 1.5rem; }
.ar-provprev__group h2 { font-size: 1.25rem; }
.ar-provprev__date { font-weight: 700; color: var(--ar-burgundy); white-space: nowrap; }
.ar-provprev__pick { min-width: 220px; min-height: 44px; }
.ar-provprev__skipped { margin-bottom: 1rem; }
.ar-provprev__skipped summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; }
.ar-provprev__skipped .ar-table-card { margin-top: 0.75rem; }
.ar-provprev__confirm { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.125rem 1.375rem; border-radius: 16px; background: #FFFFFF; box-shadow: var(--ar-shadow-1); }
.ar-provprev__confirm p { margin: 0; }
.ar-menu__panel > form { margin: 0; }
.ar-menu__panel > form > button { display: flex; align-items: center; gap: 0.5rem; width: 100%; min-height: 44px; padding: 0 0.75rem; border: 0; border-radius: 8px; background: none; color: var(--ar-ink); font-size: 0.875rem; font-weight: 600; text-align: left; white-space: nowrap; }
.ar-menu__panel > form > button:hover { background: var(--ar-burgundy-tint); }
