:root {
  color-scheme: light;
  --af-page: #F8F8F8;
  --af-surface: #FFFFFF;
  --af-ink: #000000;
  --af-muted: #595959;
  --af-primary: #F80000;
  --af-primary-text: #000000;
  --af-primary-pressed: #B80000;
  --af-primary-pressed-text: #FFFFFF;
  --af-nav: #000000;
  --af-nav-text: #F8F8F8;
  --af-nav-muted: #D0E0E0;
  --af-border: #767676;
  --af-rule: #D0E0E0;
  --af-success: #166534;
  --af-warning: #854D0E;
  --af-danger: #B80000;
  --af-heading: "Source Serif 4", Georgia, serif;
  --af-data: "IBM Plex Sans", Arial, sans-serif;
  --af-radius: 8px;
  --af-chip-radius: 4px;
  --af-space-1: 4px;
  --af-space-2: 8px;
  --af-space-3: 12px;
  --af-space-4: 16px;
  --af-space-6: 24px;
  --af-space-8: 32px;
  --af-target: 48px;
  --af-topbar: 64px;
  --af-tabbar: 64px;
  --af-safe-top: env(safe-area-inset-top, 0px);
  --af-safe-bottom: env(safe-area-inset-bottom, 0px);
}

* { box-sizing: border-box; }
html { background: var(--af-page); color: var(--af-ink); font-family: var(--af-data); font-size: 16px; line-height: 1.5; font-variant-numeric: tabular-nums; }
body { margin: 0; }
img { max-width: 100%; }
svg { width: 18px; height: 18px; flex-shrink: 0; vertical-align: middle; }
h1, h2, h3, legend { font-family: var(--af-heading); overflow-wrap: anywhere; }
h1 { font-size: 32px; line-height: 36px; font-weight: 700; margin: 0 0 16px; }
h2 { font-size: 24px; line-height: 30px; font-weight: 600; margin: 0 0 16px; }
h3 { font-size: 20px; line-height: 26px; margin: 0 0 8px; }
p { margin: 0 0 16px; }
a { color: var(--af-ink); text-underline-offset: 3px; overflow-wrap: anywhere; }
button, input, select, textarea { font: inherit; }
button, .button { min-height: var(--af-target); padding: 12px 16px; background: var(--af-primary); color: var(--af-primary-text); border: 1px solid var(--af-primary); border-radius: var(--af-radius); font: 600 16px/24px var(--af-data); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-align: center; text-decoration: none; white-space: normal; }
button:active, .button:active { background: var(--af-primary-pressed); color: var(--af-primary-pressed-text); border-color: var(--af-primary-pressed); }
.secondary, button.danger { background: var(--af-surface); color: var(--af-ink); border-color: var(--af-ink); }
button.danger { color: var(--af-danger); border-color: currentColor; }
button:disabled { opacity: .65; cursor: wait; }
:focus-visible { outline: 2px solid white; box-shadow: 0 0 0 4px black; }
label { display: block; font-weight: 500; margin: 0 0 16px; }
input, select, textarea { display: block; width: 100%; min-width: 0; min-height: var(--af-target); color: var(--af-ink); background: var(--af-surface); border: 1px solid var(--af-border); border-radius: var(--af-radius); padding: 11px 12px; margin-top: 8px; font-size: 16px; }
textarea { resize: vertical; }
input[type=checkbox], input[type=radio] { display: inline-block; width: 24px; height: 24px; min-height: 24px; margin: 12px 12px 12px 0; vertical-align: middle; accent-color: black; }
label:has(input[type=checkbox]), label:has(input[type=radio]) { min-height: 48px; }
input[type=file] { max-width: 100%; padding: 9px; }
small, .muted { color: var(--af-muted); }
small { font-size: 14px; line-height: 20px; }
.eyebrow, dt { font: 600 12px/16px var(--af-data); letter-spacing: .08em; text-transform: uppercase; }
.eyebrow { margin-bottom: 8px; }
.public-shell { max-width: 912px; padding: 0 16px; margin: 0 auto; }
.admin-shell { max-width: 1120px; margin: 0 auto; }
.af-admin main { padding: 24px 16px calc(var(--af-tabbar) + var(--af-safe-bottom) + 32px); }
.af-topbar { position: sticky; top: 0; z-index: 20; background: var(--af-nav); color: var(--af-nav-text); display: flex; align-items: center; gap: 12px; min-height: calc(var(--af-topbar) + var(--af-safe-top)); padding: calc(8px + var(--af-safe-top)) 16px 8px; }
.af-topbar > a:first-child { flex-shrink: 0; display: flex; align-items: center; min-height: 48px; }
.af-topbar img { height: 32px; width: auto; }
.af-topbar h1 { font-size: 22px; line-height: 28px; margin: 0; flex: 1; min-width: 0; }
.af-topbar .button { flex-shrink: 0; }
.af-tabs { position: fixed; z-index: 30; inset: auto 0 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: var(--af-nav); padding-bottom: var(--af-safe-bottom); }
.af-tabs a { min-height: var(--af-tabbar); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border-top: 3px solid transparent; color: var(--af-nav-muted); text-decoration: none; font: 600 11px/14px var(--af-data); }
.af-tabs [aria-current=page] { color: var(--af-nav-text); border-top-color: var(--af-primary); }
.af-tabs svg { width: 22px; height: 22px; }
.af-editing .af-tabs { display: none; }
.site-footer { max-width: 1120px; margin: 24px auto 0; padding: 24px 16px; border-top: 1px solid var(--af-rule); color: var(--af-muted); display: flex; flex-wrap: wrap; gap: 16px; font-size: 14px; }
.af-admin .site-footer { margin-top: 0; padding-bottom: calc(var(--af-tabbar) + var(--af-safe-bottom) + 24px); }
.site-footer a { margin-left: auto; }
.panel, fieldset, .card { min-width: 0; margin: 0 0 24px; padding: 24px; border: 1px solid var(--af-rule); border-radius: var(--af-radius); background: var(--af-surface); }
fieldset { border-color: var(--af-border); }
legend { padding: 0 8px; font-size: 20px; }
.form-grid, .grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
.full { grid-column: 1 / -1; }
.actions, .toolbar, .page-actions, .inline-form { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin: 0 0 24px; }
.actions > a:not(.button), .open-link { display: inline-flex; min-height: 48px; align-items: center; }
.inline-form { align-items: end; }
.inline-form label { flex: 1; min-width: 140px; margin: 0; }
.table-wrap, .table-scroll, .overflow { width: 100%; max-width: 100%; overflow-x: auto; }
table { width: 100%; border-collapse: collapse; text-align: left; font: 400 15px/22px var(--af-data); margin-bottom: 24px; }
th, td { padding: 12px; border-bottom: 1px solid var(--af-rule); vertical-align: top; }
th { font-weight: 600; }
td input, td select { min-width: 80px; }
.chip { display: inline-flex; align-items: center; gap: 4px; background: white; color: var(--af-ink); border: 1px solid currentColor; border-radius: var(--af-chip-radius); padding: 4px 8px; font: 600 12px/16px var(--af-data); text-transform: none; letter-spacing: normal; vertical-align: middle; max-width: 100%; }
.chip svg { width: 14px; height: 14px; }
.chip.muted, .provenance { color: var(--af-muted); }
.success { color: var(--af-success); }
.stale { color: var(--af-warning); }
.expired, .error { color: var(--af-danger); }
.error { padding: 16px; border: 1px solid currentColor; border-radius: var(--af-radius); background: white; }
.roster-list, .player-list { list-style: none; padding: 0; margin: 0; }
.roster-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--af-rule); }
.player-summary, .player-row { display: flex; align-items: center; gap: 12px; }
.player-summary > div, .player-row-copy { min-width: 0; flex: 1; }
.player-summary h2, .player-row h3 { font-size: 20px; line-height: 26px; margin: 0 0 4px; }
.player-summary p, .player-row p { margin: 0 0 4px; font-size: 15px; }
.avatar, .player-row img, .initials { width: 48px; height: 64px; flex-shrink: 0; object-fit: cover; background: var(--af-surface); }
.initials { display: flex; align-items: center; justify-content: center; border: 1px solid var(--af-rule); font-weight: 600; }
.roster-facts { grid-column: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; }
dd { margin: 4px 0 0; overflow-wrap: anywhere; }
.roster-facts dd { font-size: 15px; }
.roster-facts .stale { margin-top: 4px; }
.roster-row > .open-link { grid-column: 2; grid-row: 1 / 3; align-self: center; }
.open-link { padding: 0 8px; flex-shrink: 0; }
.player-row { padding: 16px 0; border-bottom: 1px solid var(--af-rule); }
.club-hero { background: var(--af-nav); color: var(--af-nav-text); padding: 24px; border-bottom: 3px solid var(--af-primary); }
.club-hero .crest { height: 64px; width: auto; margin-bottom: 16px; }
.club-hero p { margin-bottom: 8px; }
.club-hero h1 { max-width: 65ch; }
.language-toggle { margin-left: auto; min-width: 48px; min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
.club-hero .language-toggle { float: right; color: var(--af-nav-text); }
.lead { font-size: 18px; line-height: 28px; max-width: 65ch; margin: 24px 0; }
.partner-strip { padding: 16px; border: 1px solid var(--af-rule); margin-bottom: 32px; color: var(--af-muted); }
.roster-section { margin: 32px 0; }
.club-footer { margin: 32px 0; color: var(--af-muted); }
.dossier { background: white; max-width: 880px; margin: 0 auto; padding: 0 24px 24px; }
.dossier-strip { margin: 0 -24px; padding: 12px 24px; display: flex; align-items: center; gap: 12px; background: black; color: var(--af-nav-text); border-bottom: 3px solid var(--af-primary); }
.dossier-strip img { height: 40px; width: auto; display: block; }
.dossier-strip > a:first-child { flex-shrink: 0; }
.dossier-strip small { display: block; color: var(--af-nav-muted); }
.dossier-strip a { color: var(--af-nav-text); }
.publication { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 24px 0; color: var(--af-muted); font-size: 14px; }
.identity { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 24px; padding: 0 0 24px; }
.portrait { position: relative; width: 96px; height: 128px; overflow: hidden; }
.portrait > img { width: 100%; height: 100%; object-fit: cover; }
.watermark { position: absolute; bottom: 0; left: 0; right: 0; background: black; color: white; font-size: 10px; padding: 2px 4px; }
.identity h1 { font-size: 32px; line-height: 36px; }
.nickname { color: var(--af-muted); }
.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin: 16px 0 0; }
.facts dd { font-weight: 600; font-size: 15px; line-height: 22px; }
.facts small { display: block; margin-top: 4px; }
.facts .minor-note { font-weight: 400; color: var(--af-muted); font-size: 14px; line-height: 20px; }
.dossier > section:not(.identity) { border-top: 1px solid var(--af-rule); padding-top: 24px; margin-top: 24px; }
.bio { max-width: 65ch; white-space: pre-line; }
.stat-group { padding: 16px 0; border-bottom: 1px solid var(--af-rule); }
.stat-group h3 { font: 600 16px/24px var(--af-data); }
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 16px 0 0; }
.stat-grid dd { font-size: 24px; line-height: 30px; font-weight: 600; }
.video-card { border: 1px solid var(--af-rule); border-radius: var(--af-radius); margin: 16px 0; overflow: hidden; }
.video-preview > img, .video-preview > span { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: var(--af-page); }
.video-preview > span { display: grid; place-items: center; font-size: 24px; }
.video-preview > div { padding: 16px; }
.video-preview p { font-size: 14px; color: var(--af-muted); margin-bottom: 4px; }
.video-card > a { display: flex; align-items: center; min-height: 48px; padding: 12px 16px; }
details > summary { cursor: pointer; min-height: 48px; padding: 12px 16px; }
.video-card summary { display: flex; align-items: center; gap: 12px; padding: 0 16px; border-top: 1px solid var(--af-rule); }
.play-target { display: inline-flex; width: 48px; height: 48px; justify-content: center; align-items: center; }
.video-card iframe, .video-card video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; }
.trust-strip { border-top: 1px solid var(--af-rule); margin-top: 24px; padding-top: 24px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 14px; color: var(--af-muted); }
.dossier-actions { margin-top: 24px; }
.dossier-actions > a { margin-bottom: 16px; }
.contact-action { display: flex; flex-direction: column; width: 100%; gap: 0; }
.contact-action small { color: black; font-weight: 400; }
.contact-action:active small { color: white; }
.enquiry-form { padding-top: 24px; }
.pre-wrap { white-space: pre-wrap; overflow-wrap: anywhere; }
.narrow, .message-page { max-width: 480px; margin: 48px auto; }
.af-login, .af-login .public-shell { background: black; color: white; min-height: 100dvh; }
.af-login .narrow { padding: 48px 0; margin: 0 auto; }
.login-crest { display: block; height: 96px; width: auto; margin: 0 auto 32px; }
.af-login h1, .af-login .narrow > p { text-align: center; }
.af-login form { color: black; background: white; padding: 24px; border-radius: var(--af-radius); margin: 24px 0; }
.af-login form button { width: 100%; }
.af-login .narrow > a { color: white; display: inline-flex; min-height: 48px; align-items: center; }
.print-contact { display: none; }
[hidden] { display: none !important; }
@media (max-width: 599px) {
  .af-admin main { padding-top: 16px; }
  .af-topbar { gap: 8px; }
  .panel, fieldset, .card { padding: 16px; }
  .form-grid, .grid { grid-template-columns: minmax(0, 1fr); }
  .roster-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .roster-row > .open-link { grid-row: 1; }
  .roster-facts { grid-column: 1 / -1; }
  .dossier { padding: 0 16px 24px; }
  .dossier-strip { margin: 0 -16px; padding: 12px 16px; gap: 8px; }
  .identity { gap: 16px; }
  .identity .facts { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr); }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dossier table { min-width: 520px; }
  .club-hero { padding: 24px 16px; }
}
@media (max-width: 359px) { .identity { grid-template-columns: minmax(0, 1fr); } .facts { grid-template-columns: minmax(0, 1fr); } }
@media print {
  @page { size: A4; margin: 12mm; }
  html, body, .public-shell, .dossier { color: black; background: white; }
  .public-shell { max-width: none; padding: 0; }
  .dossier { padding: 0; max-width: none; }
  .dossier-strip { margin: 0; padding: 0 0 12px; background: white; color: black; border-bottom: 1px solid var(--af-rule); }
  .dossier-strip small, .dossier-strip a { color: black; }
  nav, .site-footer, .language-toggle, .dossier-actions, button, .button, .videos, .enquiry-form { display: none !important; }
  .print-contact { display: block; margin-top: 24px; }
  .dossier a[href^="http"]::after { content: ' (' attr(href) ')'; font-size: 10px; overflow-wrap: anywhere; }
  .dossier .provenance { display: inline; }
  .table-scroll { overflow: visible; }
  .identity, .stat-group, tr { break-inside: avoid; }
  h2, h3 { break-after: avoid; }
  .dossier section { margin-top: 16px !important; padding-top: 16px !important; }
}
.source-list { padding-left: 20px; }
.source-list li { margin: 12px 0; }
.source-metadata { display: block; flex-basis: 100%; font-weight: 400; }
.provenance { flex-wrap: wrap; }
.stat-sources { scroll-margin-top: 24px; font-size: 14px; line-height: 20px; margin-top: 16px; }
.stat-sources p { margin-bottom: 4px; }
.stat-sources ul { margin: 0; padding-left: 20px; }
@media (max-width: 599px) { .af-admin .table-scroll table { min-width: 420px; } }

:root {
  --public-page:#F8F8F8; --public-surface:#FFF; --public-hero:#000; --public-rule:#D0E0E0;
  --public-accent:#F80000; --public-pressed:#B80000; --public-muted:#555; --public-win:#17603A;
  --public-radius:12px; --public-max:1100px; --public-gap:16px; --public-tab-height:64px;
}
