/* PLUSA 2.0 accessibility view: a light, high-contrast theme, turned on by the header button
   (assets/league-access.js sets data-access on <html>). Loads after league.css and only changes
   the look, never the layout.

   Targets WCAG 2.1 AA: body text at least 4.5:1, controls, input borders and focus rings at least
   3:1. On white: ink #0f172a 17.9:1, label #334155 10.5:1, muted #475569 7.6:1, blue #0b57d0 6.4:1,
   control border #6b7280 4.8:1, red #b91c1c 6.5:1, green border #15803d 5:1.
   Plus no glow, glass, spotlight, grid texture, background lights or animation, and type about 6%
   larger. Status chips keep their text labels, so nothing depends on color alone. */

:root[data-access] {
  --bg: #f3f5f9;
  --panel: #ffffff;
  --ink: #0f172a;
  --muted: #475569;
  --label: #334155;
  --blue: #0b57d0;
  --blue-hi: #0b57d0;
  --blue-dark: #083f9c;
  --blue-tint: #e8f0fe;
  --line: #6b7280;
  --card-line: #8b95a5;
  --divider: #d5dbe4;
  --green: #15803d;
  --red: #b91c1c;
  /* System cursors here, so the operating system's cursor size and color settings (which custom
     cursors ignore) apply for people who rely on them. */
  --cur-default: default;
  --cur-point: pointer;
  --cur-input: text;
  --cur-help: help;
  --cur-key: pointer;
  --cur-phone: pointer;
  --cur-move: move;
  --cur-cross: crosshair;
  --cur-ew: ew-resize;
  --cur-ns: ns-resize;
  --cur-off: not-allowed;
  font-size: 106.25%;
  color-scheme: light;
}

/* ---- Effects off ----------------------------------------------------------------------------- */
:root[data-access] *,
:root[data-access] *::before,
:root[data-access] *::after {
  text-shadow: none !important;
  box-shadow: none !important;
  filter: none !important;
  transition: none !important;
}
:root[data-access] body { background: var(--bg); color: var(--ink); }
:root[data-access] body::before,
:root[data-access] .l-orb,
:root[data-access] .glass::before,
:root[data-access] .glass::after { display: none; }

/* ---- Focus: a thick blue ring on everything you can reach by keyboard -------------------------- */
:root[data-access] :focus-visible {
  outline: 3px solid var(--blue) !important;
  outline-offset: 2px;
}
:root[data-access] input:focus-visible,
:root[data-access] select:focus-visible { outline-offset: 1px; }

/* ---- Links ------------------------------------------------------------------------------------ */
:root[data-access] a { color: var(--blue); }
:root[data-access] a:hover { color: var(--blue-dark); }
:root[data-access] main a:not(.l-btn):not(.l-pill),
:root[data-access] .d-modal a,
:root[data-access] .l-footer a { text-decoration: underline; text-underline-offset: 2px; }

/* ---- Header ----------------------------------------------------------------------------------- */
:root[data-access] .l-header { background: var(--panel); border-bottom: 1px solid var(--card-line); }
:root[data-access] .l-brand, :root[data-access] .d-team { color: var(--ink); }
:root[data-access] .l-brand b { color: var(--blue); }
:root[data-access] .l-header nav a:not(.l-pill) { color: var(--label); }
:root[data-access] .l-header .l-pill { border-color: var(--blue); background: var(--panel); color: var(--blue); }
:root[data-access] .l-header .l-pill:hover { background: var(--blue-tint); color: var(--blue-dark); }

/* Small bordered controls */
:root[data-access] .l-lang,
:root[data-access] .d-cart,
:root[data-access] .d-icon,
:root[data-access] .d-close,
:root[data-access] .d-add,
:root[data-access] .v-btn,
:root[data-access] .v-check,
:root[data-access] .p-back,
:root[data-access] .p-chip {
  border-color: var(--line);
  background: var(--panel);
  color: var(--ink);
}
:root[data-access] .l-lang:hover,
:root[data-access] .d-icon:hover,
:root[data-access] .d-cart:hover,
:root[data-access] .v-btn:hover,
:root[data-access] .p-chip:hover { background: #eef2f7; }
:root[data-access] .d-cart span { background: var(--red); color: #fff; }

/* Language menu and cookie notice */
/* The language button matches the header pill here too. */
:root[data-access] .l-lang { border-color: var(--blue); background: var(--panel); color: var(--blue); }
:root[data-access] .l-lang:hover,
:root[data-access] .l-lang[aria-expanded="true"] { background: var(--blue-tint); color: var(--blue-dark); }
:root[data-access] .l-lang-caret { color: currentColor; }
:root[data-access] .l-lang-list { border-color: var(--card-line); background: var(--panel); box-shadow: 0 10px 26px rgba(15, 23, 42, .18); }
:root[data-access] .l-lang-list button { color: var(--ink); }
:root[data-access] .l-lang-list button:hover,
:root[data-access] .l-lang-list button:focus-visible { border-left-color: var(--blue); background: #eef2f7; color: var(--ink); }
:root[data-access] .l-lang-list button[aria-checked="true"] { border-left-color: var(--blue); color: var(--blue-dark); }
:root[data-access] .l-cookie { border-color: var(--card-line); background: var(--panel); box-shadow: 0 6px 20px rgba(15, 23, 42, .16); color: var(--ink); }
:root[data-access] .l-cookie a { color: var(--blue-dark); text-underline-offset: 2px; }
:root[data-access] .l-cookie-ok { border-color: var(--blue); background: var(--blue); color: #fff; }
:root[data-access] .l-cookie-ok:hover { background: var(--blue-dark); }
:root[data-access] .d-add.is-on,
:root[data-access] .p-chip.is-active,
:root[data-access] .v-btn[aria-expanded="true"],
:root[data-access] [data-access-toggle][aria-pressed="true"] {
  border-color: var(--blue);
  background: var(--blue);
  color: #fff;
}
:root[data-access] [data-access-toggle][aria-pressed="true"]:hover { background: var(--blue-dark); }
:root[data-access] [data-access-toggle][aria-pressed="true"] svg { color: #fff; }

/* ---- Cards (was glass) ----------------------------------------------------------------------- */
:root[data-access] .glass,
:root[data-access] .a-panel {
  border: 1px solid var(--card-line);
  background: var(--panel);
}

/* ---- Type ------------------------------------------------------------------------------------- */
:root[data-access] .l-kicker { color: var(--blue); }
:root[data-access] .l-kicker::before { background: var(--blue); }
:root[data-access] .l-title,
:root[data-access] .l-h2,
:root[data-access] .d-stat strong,
:root[data-access] .d-date strong,
:root[data-access] .d-lines b,
:root[data-access] .d-total b,
:root[data-access] .p-charge,
:root[data-access] .v-metric b,
:root[data-access] .a-name,
:root[data-access] .a-secret code,
:root[data-access] .a-codes code { color: var(--ink); }
:root[data-access] .l-title em,
:root[data-access] .l-step-num,
:root[data-access] .l-perk svg,
:root[data-access] .d-menu svg,
:root[data-access] .l-faq summary::after,
:root[data-access] .l-switch a,
:root[data-access] .p-link,
:root[data-access] .p-card-fields em { color: var(--blue); }
:root[data-access] .l-lede,
:root[data-access] .l-band .l-copy,
:root[data-access] .l-label,
:root[data-access] .d-stat-label,
:root[data-access] .d-count,
:root[data-access] .v-metric > span,
:root[data-access] .v-roster-head p,
:root[data-access] .a-steps,
:root[data-access] .a-check { color: var(--label); }
:root[data-access] .l-sub,
:root[data-access] .l-fine,
:root[data-access] .l-perk small,
:root[data-access] .l-step p,
:root[data-access] .l-copy,
:root[data-access] .l-faq p,
:root[data-access] .l-switch,
:root[data-access] .l-meta,
:root[data-access] .l-footer,
:root[data-access] .d-stat small,
:root[data-access] .d-venue-head p,
:root[data-access] .d-info small,
:root[data-access] .d-lines small,
:root[data-access] .d-remove,
:root[data-access] .d-empty,
:root[data-access] .d-join-meta,
:root[data-access] .v-foot,
:root[data-access] .v-sub,
:root[data-access] .v-hint,
:root[data-access] .v-empty,
:root[data-access] .v-event-info small,
:root[data-access] .v-metric b small,
:root[data-access] .v-table small,
:root[data-access] .v-col-label,
:root[data-access] .v-grid b,
:root[data-access] .a-codes,
:root[data-access] .a-muted,
:root[data-access] .a-table small { color: var(--muted); }
:root[data-access] .l-note { color: var(--red); }

/* ---- Chips: text label plus a tinted fill and a strong border ---------------------------------- */
:root[data-access] .chip-in { border-color: var(--green); background: #e7f6ee; color: #14532d; }
:root[data-access] .chip-open { border-color: var(--red); background: #fdecef; color: #7f1d1d; }
:root[data-access] button.chip-open:hover { background: #f9d3da; }
:root[data-access] .chip-full { border-color: var(--line); background: #eef0f3; color: #374151; }
:root[data-access] .chip-blue { border-color: var(--blue); background: var(--blue-tint); color: #0b3d91; }

/* ---- Forms ------------------------------------------------------------------------------------ */
:root[data-access] .l-field input,
:root[data-access] .a-input,
:root[data-access] .d-modal input,
:root[data-access] .d-modal select {
  border-color: var(--line);
  background: var(--panel);
  color: var(--ink);
  color-scheme: light;
}
:root[data-access] .l-field input::placeholder,
:root[data-access] .a-input::placeholder { color: var(--line); }
:root[data-access] .l-field input:focus,
:root[data-access] .a-input:focus { border-color: var(--blue); }
:root[data-access] .l-reveal { background: var(--blue-tint); color: var(--blue); }
:root[data-access] .l-check input { accent-color: var(--blue); }

:root[data-access] .l-tabs { border-color: var(--line); background: #eef2f7; }
:root[data-access] .l-tabs button { color: var(--label); }
:root[data-access] .l-tabs button[aria-selected="true"] { background: var(--blue); color: #fff; }

:root[data-access] .l-plan span { border-color: var(--line); background: var(--panel); }
/* Venue packages: the picker's card, name and price are white on the dark theme, which leaves them
   white on white here. */
:root[data-access] .v-pkg { background: var(--panel); color: var(--label); }
:root[data-access] .v-pkg strong, :root[data-access] .v-pkg-price { color: var(--ink); }
:root[data-access] .v-pkg.is-on { border-color: var(--blue); background: var(--blue-tint); box-shadow: 0 0 0 3px rgba(11, 87, 208, .3); }
:root[data-access] .l-plan input:checked + span {
  border-color: var(--blue);
  background: var(--blue-tint);
  outline: 2px solid var(--blue);
  outline-offset: -2px;
}

:root[data-access] .l-btn { background: var(--blue); color: #fff; }
:root[data-access] .l-btn:hover { background: var(--blue-dark); }
:root[data-access] .l-btn.v-danger-btn { background: var(--red); }
:root[data-access] .l-btn.v-danger-btn:hover { background: #991b1b; }
:root[data-access] .v-danger { border-color: var(--red); background: var(--panel); color: var(--red); }
:root[data-access] .v-danger:hover { background: #fdecef; }
:root[data-access] .v-btn.a-primary { border-color: var(--blue); background: var(--blue); color: #fff; }
:root[data-access] .v-btn.a-primary:hover { background: var(--blue-dark); }
:root[data-access] .v-check.is-on { border-color: var(--green); background: #e7f6ee; color: #14532d; }

/* ---- Dividers --------------------------------------------------------------------------------- */
:root[data-access] .l-switch,
:root[data-access] .d-venue-head,
:root[data-access] .d-event,
:root[data-access] .d-lines li,
:root[data-access] .l-table th,
:root[data-access] .l-table td,
:root[data-access] .l-faq details,
:root[data-access] .l-footer,
:root[data-access] .v-roster,
:root[data-access] .v-grid span,
:root[data-access] .v-metrics,
:root[data-access] .d-menu .d-menu-signout,
:root[data-access] #adminsSection,
:root[data-access] .a-form-block + .a-form-block { border-color: var(--divider); }
:root[data-access] .l-table th { color: var(--label); }
:root[data-access] .l-table td:first-child { color: var(--blue); }
:root[data-access] .l-table.a-table td:first-child { color: inherit; }

/* ---- Team dashboard --------------------------------------------------------------------------- */
:root[data-access] .d-logo { background: var(--blue); color: #fff; }
:root[data-access] .d-date { border-color: var(--line); background: #f1f5f9; color: var(--label); }
:root[data-access] .d-bar { background: #dfe5ed; }
:root[data-access] .d-bar i { background: var(--blue); }
:root[data-access] .d-scrim { background: rgba(15, 23, 42, .55); }
:root[data-access] .d-menu button { color: var(--ink); }
:root[data-access] .d-menu button:hover,
:root[data-access] .d-menu button:focus-visible { background: #eef2f7; }
:root[data-access] .d-test { border-color: var(--blue); background: #f0f6ff; color: #0b3d91; }
:root[data-access] .d-toast { border-color: var(--green); background: #ecfdf3; color: #14532d; }
/* Inner scrollbars: a grey thumb on a light track (over 3:1), blue while held. */
:root[data-access] { --sb-track: #e5e9f0; --sb-thumb: #6b7280; --sb-thumb-hi: #0b57d0; }

/* ---- Payment ---------------------------------------------------------------------------------- */
:root[data-access] .p-summary,
:root[data-access] .p-notice { border-color: var(--card-line); background: #f8fafc; color: var(--label); }

/* ---- Venue dashboard -------------------------------------------------------------------------- */
:root[data-access] .v-banner { border-color: #b45309; background: #fff7e6; color: #7c2d12; }
:root[data-access] .v-track { background: #dfe5ed; }
:root[data-access] .v-bar { background: var(--blue); }
:root[data-access] .v-col:hover .v-bar,
:root[data-access] .v-col:focus-visible .v-bar { background: var(--blue-dark); }
:root[data-access] .v-tip { border-color: var(--ink); background: var(--ink); color: #fff; }
:root[data-access] .v-table a { color: var(--ink); }
:root[data-access] .v-preview .d-event { border-color: var(--line); }

/* ---- Control panel ---------------------------------------------------------------------------- */
:root[data-access] .a-secret { border-color: var(--line); background: #f8fafc; }

/* ---- Legal Stuff, Venues, standings, results, console ---------------------------------------- */
:root[data-access] .l-back { border-color: var(--line); background: var(--panel); color: var(--ink); }
:root[data-access] .l-back:hover { background: #eef2f7; }
:root[data-access] .l-hero-link,
:root[data-access] .l-footer-links a,
:root[data-access] .lg-toc a { color: var(--blue); }
:root[data-access] .l-consent { color: var(--label); }
:root[data-access] .lg-meta { color: var(--muted); }
:root[data-access] .lg-doc { border-color: var(--card-line); background: var(--panel); color: var(--label); }
:root[data-access] .lg-doc h2,
:root[data-access] .lg-doc strong { color: var(--ink); }
:root[data-access] .lg-doc h3 { color: var(--label); }
:root[data-access] .lg-toc,
:root[data-access] .r-list li,
:root[data-access] .r-panel { border-color: var(--divider); }
:root[data-access] .s-table tr.is-me td { background: var(--blue-tint); }
:root[data-access] .r-list small { color: var(--muted); }
:root[data-access] .r-list li.is-void strong { color: var(--muted); }
:root[data-access] .v-id-note { color: #7c2d12; }
/* The console stays a terminal: white on black is 21:1. */
:root[data-access] .a-console { border-color: var(--ink); background: #000; }
:root[data-access] .a-console-out,
:root[data-access] .a-console-in label,
:root[data-access] .a-console-in input { color: #fff; }

/* ---- Rules, officials portal, scorecard, schedule --------------------------------------------- */
:root[data-access] .r-rules li { color: var(--ink); }
:root[data-access] .r-rules li::marker { color: var(--blue); }
:root[data-access] .o-shift-info small,
:root[data-access] .o-game-top,
:root[data-access] .o-side em,
:root[data-access] .o-cups small,
:root[data-access] .o-help,
:root[data-access] .o-final small { color: var(--muted); }
:root[data-access] .o-shift-info .o-pay,
:root[data-access] .o-round-title,
:root[data-access] .o-shoots,
:root[data-access] .a-day-title { color: var(--label); }
:root[data-access] .o-game { color: var(--ink); }
:root[data-access] .o-side.is-won { color: #14532d; }
:root[data-access] .o-cups strong { color: var(--ink); }
:root[data-access] .o-team { border-color: var(--line); background: #f8fafc; }
:root[data-access] .o-banner { border-color: #b45309; background: #fff7e6; color: #7c2d12; }
:root[data-access] .o-final,
:root[data-access] .o-champion { border-color: var(--green); }
:root[data-access] .o-ot { color: var(--blue); }
:root[data-access] .o-log li { border-color: var(--divider); }
:root[data-access] .a-day { border-color: var(--card-line); }
:root[data-access] .a-day.is-today { border-color: var(--blue); outline: 2px solid var(--blue); outline-offset: -2px; }
:root[data-access] .a-sched-event { background: #eef2f7; }
:root[data-access] .o-start { border-color: var(--red); }
:root[data-access] .o-start small,
:root[data-access] .o-pair-label,
:root[data-access] .o-vs { color: var(--muted); }
:root[data-access] .o-opens { color: var(--blue) !important; }
:root[data-access] .o-pair { border-color: var(--card-line); }
:root[data-access] .o-slot { border-color: var(--line); background: var(--panel); color: var(--ink); }
:root[data-access] .o-slot.is-picked { border-color: var(--blue); background: var(--blue-tint); outline: 3px solid var(--blue); outline-offset: -1px; }
:root[data-access] .o-slot.is-bye { color: var(--muted); }

/* ---- Phones ----------------------------------------------------------------------------------- */
@media (max-width: 640px) {
  /* The header is sized in px here so the larger type can't push it wider than the phone. */
  :root[data-access] .l-brand { font-size: 16px; }
  :root[data-access] .l-header .l-pill { font-size: 14.5px; }
  :root[data-access] .v-table tr { border-color: var(--card-line); background: var(--panel); }
  :root[data-access] .v-table td { border-color: var(--divider); }
  :root[data-access] .v-table td::before { color: var(--label); }
}

/* ---- Officials onboarding ---------------------------------------------------------------------- */
:root[data-access] .ob-progress button { border-color: var(--card-line); background: var(--panel); color: var(--label); }
:root[data-access] .ob-progress .ob-num { border-color: var(--card-line); color: var(--ink); }
:root[data-access] .ob-progress .is-done .ob-num { border-color: var(--green); background: #dcfce7; color: var(--green); }
:root[data-access] .ob-progress .is-current { border-color: var(--blue); background: var(--blue-tint); color: var(--blue-dark); }
:root[data-access] .ob-progress .is-current .ob-num { border-color: var(--blue); background: var(--blue); color: #fff; }
:root[data-access] .ob-h3, :root[data-access] .a-ob-h { color: var(--ink); }
:root[data-access] .ob-check, :root[data-access] .ob-summary, :root[data-access] .ob-review li { color: var(--ink); }
:root[data-access] .ob-summary { border-color: var(--card-line); background: var(--panel); }
:root[data-access] .ob-review li.is-done span { color: var(--ink); }
:root[data-access] .ob-paper, :root[data-access] .ob-doc, :root[data-access] .ob-style { border: 1px solid var(--card-line); }
:root[data-access] .ob-details summary, :root[data-access] .ob-signed a, :root[data-access] .ob-doclist a { color: var(--blue-dark); }
:root[data-access] .ob-signed { color: var(--green); }
:root[data-access] .a-tin-shown { background: #fef3c7; color: #78350f; }
