:root {
  --white: oklch(100% 0 0);
  --black: oklch(0% 0 0);
  --blue: oklch(36.5% 0.18 262.8);
  --yellow: oklch(85.1% 0.169 98.3);
  --primary: var(--blue);
  --secondary: var(--white); 
  --tertiary: var(--yellow);
  --pitch: oklch(56% 0.13 145);
  --pitch-stripe: oklch(52% 0.13 145);
  --pitch-line: oklch(100% 0 0 / 0.55);
  --warning: oklch(72% 0.17 45);
  /* Borders and dividers. Set per background (see .section, .bg-primary)
     so they always contrast with whatever they sit on. */
  --border: var(--black);
  /* Alternate table rows. */
  --row-stripe: oklch(96.5% 0 0);
  /* Form errors: dark red, readable on white (about 6:1 contrast). */
  --error: oklch(50% 0.19 27);
  --text: var(--black);
  --bp-tablet: 48rem;
  --bp-desktop: 75rem;
  --bp-max-width: 90rem;
  --font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
  --font-body: "Noto Sans", var(--font-system);
  --box-shadow: 0.125em 0.125em var(--black);
}


html,
body {
  height: 100%;
}

body {
  background-color: var(--white);
  color: var(--text);
  font-family: var(--font-body);
  display: flex;
  flex-direction: column;
}

#layout-main {
  flex-grow: 1;
  flex-shrink: 0;
  flex-basis: auto;
}

/* Focused by the skip link only to move the starting point; no ring. */
#layout-main:focus {
  outline: none;
}

/* Off-screen until tabbed to, then shown over the header. */
.skip-link {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 100;
  padding: 0.5rem 1rem;
  border: 0.125rem solid var(--black);
  background-color: var(--tertiary);
  color: var(--black);
  font-weight: 700;
  transform: translateY(-200%);
}

.skip-link:focus {
  transform: none;
}

/* Pages with a sticky heading (Events): keep what's focused clear of it. */
html:has(.events__heading) {
  scroll-padding-top: 4rem;
}

/*
 * Collapsible sections (<details>) whose <summary> is laid out with flex
 * lose the browser's open/closed triangle: draw one before their heading.
 */
.fixture__title::before,
.lineup__name::before,
.ranking__title::before,
.sport-positions__name::before {
  content: "▸" / "";
  display: inline-block;
  width: 1em;
}

details[open] > summary .fixture__title::before,
details[open] > summary .lineup__name::before,
details[open] > summary .ranking__title::before,
details[open] > summary .sport-positions__name::before {
  content: "▾" / "";
}

/* Inline SVG icons (components/icon.html.twig): a black outline, filled per use. */
.icon {
    flex-shrink: 0;
    width: 1.25em;
    height: 1.25em;
    vertical-align: middle;
}

.icon__circle {
    fill: var(--white);
    stroke: var(--black);
    stroke-width: 1.5;
}

.icon__mark {
    fill: none;
    stroke: var(--black);
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

#layout-footer {
  flex-shrink: 0;
}

h1, h2, h3, h4, h5, h6, p, label, li, a {
  color: currentColor;
}

.container {
  max-width: var(--bp-desktop);
  margin: 0 auto;
  padding-left: 2rem;
  padding-right: 2rem;
}

.section {
  padding-top: 2rem;
  padding-bottom: 2rem;
  background-color: var(--white);
  color: var(--black);
  --border: var(--black);
}


.border-tertiary {
  border-bottom-width: 0.5rem;
  border-bottom-style: solid;
  border-bottom-color: var(--tertiary);
}

.bg-primary {
  background-color: var(--primary);
  color: var(--white);
  --border: var(--black);
}


.list-reset {
  list-style: none;
  padding: 0rem;
  margin: 0rem;
}
.section__actions,
.section__intro {
    margin-bottom: 1.5rem;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.flash-messages {
    padding-top: 1rem;
}

.flash {
    padding: 0.75rem 1rem;
    border: 0.125rem solid var(--black);
    box-shadow: var(--box-shadow);
    font-weight: 700;
}

.flash + .flash {
    margin-top: 0.5rem;
}

.flash--success {
    background-color: var(--tertiary);
    color: var(--black);
}

.flash--error {
    background-color: var(--white);
    color: var(--black);
}
