/* Shared accessibility corrections and progressive enhancements. */
:root{
  /* Preserve sport identity while meeting WCAG AA for normal text on #fffdf8
     and for white text when the filter is active. */
  --sport-basketball:#b35a00!important;
  --sport-hockey:#437492!important;
}

.skip-link{
  position:fixed;
  left:16px;
  top:12px;
  z-index:10000;
  transform:translateY(-180%);
  padding:10px 14px;
  border:2px solid var(--ink,#112b3c);
  border-radius:10px;
  background:#fffdf8;
  color:#112b3c;
  font-weight:900;
  text-decoration:none;
  box-shadow:0 4px 18px rgba(17,43,60,.18);
}
.skip-link:focus{transform:translateY(0)}

/* Team colors remain visible in the card border/swatch; the semantic badge
   uses a stable high-contrast treatment regardless of a team's primary color. */
.my-team-card .favorite-badge{
  background:var(--ink)!important;
  color:#fff!important;
  border:2px solid var(--team-primary)!important;
}

.filter-live-status{
  margin:10px 0 0;
  color:var(--muted,#625d55);
  font-size:.78rem;
  font-weight:750;
}

.data-load-error{
  margin:18px 0 28px;
  padding:28px;
  border:1px solid var(--line,#d8cdb9);
  border-left:6px solid var(--red,#b74235);
  border-radius:16px;
  background:#fffdf8;
  color:var(--ink,#112b3c);
  box-shadow:0 8px 28px rgba(17,43,60,.08);
}
.data-load-error__kicker{
  margin-bottom:8px;
  color:var(--red,#8f3028);
  font-size:.75rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.data-load-error h1{margin:0 0 10px;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.05}
.data-load-error p{max-width:62ch;margin:0;color:var(--muted,#625d55);line-height:1.55}
.data-load-error__actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.data-load-error__actions button,.data-load-error__actions a{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 15px;
  border:2px solid var(--ink,#112b3c);
  border-radius:999px;
  font:inherit;
  font-weight:850;
  text-decoration:none;
  cursor:pointer;
}
.data-load-error__actions button{background:var(--ink,#112b3c);color:#fff}
.data-load-error__actions a{background:transparent;color:var(--ink,#112b3c)}

.map-filter-controls{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
  margin-left:auto;
}
.map-filter-controls button{
  min-height:44px;
  padding:8px 11px;
  border:1px solid rgba(255,255,255,.38)!important;
  border-radius:999px;
  background:rgba(255,255,255,.08)!important;
  color:#fff!important;
  font:inherit;
  font-size:.76rem;
  font-weight:850;
  cursor:pointer;
}
.map-filter-controls button.active,.map-filter-controls button[aria-pressed="true"]{
  background:#fff!important;
  color:var(--ink,#112b3c)!important;
}
.map-filter-status{
  min-width:116px;
  color:rgba(255,255,255,.86);
  font-size:.72rem;
  font-weight:750;
  text-align:right;
}
.leaflet-marker-icon[hidden]{display:none!important}

.map-text-alternative{
  margin-top:12px;
  border-top:1px solid var(--line,#d8cdb9);
  padding-top:10px;
}
.map-text-alternative summary{
  cursor:pointer;
  font-weight:850;
  color:var(--ink,#112b3c);
}
.map-text-alternative ul{
  columns:2;
  column-gap:28px;
  margin:12px 0 0;
  padding-left:20px;
}
.map-text-alternative li{break-inside:avoid;margin:0 0 8px;line-height:1.35}
.map-text-alternative a{font-weight:800;color:inherit}
@media(max-width:700px){
  .map-text-alternative ul{columns:1}
  .data-load-error{padding:22px 18px}
  .geo-map-toolbar,.atlas-toolbar{flex-wrap:wrap}
  .map-filter-controls{order:3;width:100%;justify-content:flex-start;margin-left:0}
  .map-filter-status{margin-left:auto}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    transition-delay:0s!important;
  }
  .leaflet-zoom-animated,.leaflet-pan-anim .leaflet-tile,.leaflet-fade-anim .leaflet-tile{transition:none!important}
}
