/* MLB Research Hub — Home Run Zone grid (/mlb/research-hub/home-runs)
   Scoped under #mlb-hrz-hub so nothing leaks. Mirrors mlb-pitcher-matchups.css
   for consistency with the sibling research-hub sections. */

#mlb-hrz-hub {
  width: 100%;
  padding: 20px 20px 32px;
  box-sizing: border-box;
}

#mlb-hrz-hub .hrz-page {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

/* Filter pill bar — replaces the old title/subtitle header. Pills follow
   the same cyan-accent visual language as the drawer tabs. */
#mlb-hrz-hub .hrz-filter-host { min-height: 36px; }
#mlb-hrz-hub .hrz-filters {
  display: flex; gap: 8px; flex-wrap: wrap;
  align-items: center;
}
#mlb-hrz-hub .hrz-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 14px;
  background: rgba(148,163,184,.06);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 999px;
  color: #94a3b8;
  font-size: .78rem; font-weight: 700;
  letter-spacing: .2px;
  cursor: pointer;
  transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
}
#mlb-hrz-hub .hrz-pill:hover {
  color: #cbd5e1;
  border-color: rgba(255,255,255,.16);
}
#mlb-hrz-hub .hrz-pill.is-active {
  color: #f8fafc;
  background: rgba(34, 211, 238, .14);
  border-color: rgba(34, 211, 238, .45);
}
#mlb-hrz-hub .hrz-pill-count {
  font-size: .68rem; font-weight: 700;
  padding: 1px 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  color: #cbd5e1;
}
#mlb-hrz-hub .hrz-pill.is-active .hrz-pill-count {
  background: rgba(34, 211, 238, .22);
  color: #ecfeff;
}

/* "HR last game" chip — warm amber so it pops against the cool cyan
   tab/pill accent and the green/red tier colors. Same pill geometry
   as .hrz-hand etc. so it sits cleanly in the chip row. */
#mlb-hrz-hub .hrz-b2b-chip {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .65rem; font-weight: 700; letter-spacing: .4px;
  padding: 2px 7px; border-radius: 999px;
  background: rgba(245, 158, 11, .16);
  color: #fcd34d;
  border: 1px solid rgba(245, 158, 11, .35);
}
#mlb-hrz-hub .hrz-b2b-chip i { font-size: .7em; }

/* Drought chip — cool slate/blue so it reads as "cold streak" against
   the warm amber HR-last-game chip and the violet B2B HRs chip. The
   .is-clickable variant gets cursor + hover affordance because the
   chip carries a popover with the historical drought-break rate. */
#mlb-hrz-hub .hrz-drought-chip {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .65rem; font-weight: 700; letter-spacing: .4px;
  padding: 2px 7px; border-radius: 999px;
  background: rgba(56, 189, 248, .12);
  color: #93c5fd;
  border: 1px solid rgba(56, 189, 248, .30);
}
#mlb-hrz-hub .hrz-drought-chip.is-clickable {
  cursor: pointer;
  user-select: none;
  transition: background 120ms ease, border-color 120ms ease;
}
#mlb-hrz-hub .hrz-drought-chip.is-clickable:hover,
#mlb-hrz-hub .hrz-drought-chip[aria-expanded="true"] {
  background: rgba(56, 189, 248, .20);
  border-color: rgba(56, 189, 248, .55);
}

/* Click-to-reveal popover infra — shared between B2B HRs (violet)
   and drought (sky-blue) chips. Each chip is wrapped in a relative
   container so the popover sibling absolutely positions below it. */
#mlb-hrz-hub .hrz-popover-wrap {
  position: relative;
  display: inline-flex;
}

/* Base popover. Variant classes (.hrz-b2b-rate-popover /
   .hrz-drought-popover) override the border accent only. */
#mlb-hrz-hub .hrz-popover {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 20;
  min-width: 200px;
  padding: 10px 12px;
  background: #0f172a;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0, 0, 0, .45);
  color: #e2e8f0;
  font-size: .75rem;
  line-height: 1.4;
  white-space: nowrap;
}
/* JS swaps to this when the default left-anchored popover would clip
   the card's right edge — pin to the chip's right instead. */
#mlb-hrz-hub .hrz-popover.is-right-aligned {
  left: auto;
  right: 0;
}
#mlb-hrz-hub .hrz-pop-fraction {
  color: #f1f5f9;
  font-weight: 600;
}
#mlb-hrz-hub .hrz-pop-fraction strong {
  font-weight: 700;
}
#mlb-hrz-hub .hrz-pop-headline {
  margin-top: 2px;
  color: #cbd5e1;
}
#mlb-hrz-hub .hrz-pop-meta {
  margin-top: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, .06);
  color: #94a3b8;
  font-size: .65rem;
  letter-spacing: .3px;
}

/* B2B HRs chip — violet accent. */
#mlb-hrz-hub .hrz-b2b-rate-chip {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: .65rem; font-weight: 700; letter-spacing: .4px;
  padding: 2px 7px; border-radius: 999px;
  background: rgba(139, 92, 246, .14);
  color: #c4b5fd;
  border: 1px solid rgba(139, 92, 246, .32);
  cursor: pointer;
  user-select: none;
  transition: background 120ms ease, border-color 120ms ease;
}
#mlb-hrz-hub .hrz-b2b-rate-chip:hover,
#mlb-hrz-hub .hrz-b2b-rate-chip[aria-expanded="true"] {
  background: rgba(139, 92, 246, .22);
  border-color: rgba(139, 92, 246, .55);
}
#mlb-hrz-hub .hrz-b2b-rate-popover {
  border-color: rgba(139, 92, 246, .35);
}
#mlb-hrz-hub .hrz-b2b-rate-popover .hrz-pop-fraction strong {
  color: #c4b5fd;
}

/* Drought popover — sky-blue accent matching the chip border. */
#mlb-hrz-hub .hrz-drought-popover {
  border-color: rgba(56, 189, 248, .35);
}
#mlb-hrz-hub .hrz-drought-popover .hrz-pop-fraction strong {
  color: #93c5fd;
}

/* Masonry layout — JS-distributed columns (3/2/1 by viewport). Matches
   pitcher-matchups so the two pages feel like siblings. */
#mlb-hrz-hub .hrz-grid {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
#mlb-hrz-hub .hrz-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
#mlb-hrz-hub .hrz-grid-loading { min-height: 120px; }

/* Card shell. Two click zones inside (head opens game page, body opens
   player dashboard) — same pattern as pitcher-matchups. */
#mlb-hrz-hub .hrz-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  overflow: hidden;
  min-width: 0;
}

#mlb-hrz-hub .hrz-card [data-hrz-target] {
  cursor: pointer;
  transition: background 120ms ease;
}
#mlb-hrz-hub .hrz-card [data-hrz-target]:hover {
  background: rgba(34, 211, 238, .05);
}
#mlb-hrz-hub .hrz-card [data-hrz-target]:focus-visible {
  outline: 2px solid rgba(34, 211, 238, .5);
  outline-offset: -2px;
}
#mlb-hrz-hub .hrz-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 18px 18px;
}

/* Head: matchup + time */
#mlb-hrz-hub .hrz-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 18px;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
#mlb-hrz-hub .hrz-matchup {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 700;
  color: #f8fafc;
  font-size: .92rem;
}
#mlb-hrz-hub .hrz-team-logo { width: 22px; height: 22px; object-fit: contain; }
#mlb-hrz-hub .hrz-code      { letter-spacing: .02em; }
#mlb-hrz-hub .hrz-code-own  { color: #f8fafc; }
#mlb-hrz-hub .hrz-vs        { color: #64748b; font-weight: 600; font-size: .8rem; }
#mlb-hrz-hub .hrz-time {
  font-size: .78rem; color: #94a3b8; font-weight: 600; letter-spacing: .3px;
}

/* Name + chips + avatar */
#mlb-hrz-hub .hrz-name-row {
  display: flex; align-items: center;
  gap: 10px;
}
#mlb-hrz-hub .hrz-avatar {
  width: 44px; height: 44px; border-radius: 50%;
  object-fit: cover; object-position: top center;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
  display: block;
}
#mlb-hrz-hub .hrz-avatar.is-fallback {
  object-fit: contain; padding: 4px; background: rgba(255,255,255,.04);
}
#mlb-hrz-hub .hrz-avatar-wrap {
  position: relative;
  width: 44px; height: 44px;
  flex-shrink: 0;
  display: inline-block;
}
#mlb-hrz-hub .hrz-avatar-team-badge {
  position: absolute;
  right: -2px; bottom: -2px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #0b1220;
  padding: 2px;
  box-sizing: border-box;
  object-fit: contain;
  border: 1px solid rgba(255,255,255,.12);
  pointer-events: none;
}
#mlb-hrz-hub .hrz-avatar-wrap.is-fallback .hrz-avatar-team-badge { display: none; }
#mlb-hrz-hub .hrz-avatar-wrap.is-fallback .hrz-avatar {
  object-fit: contain; padding: 4px; background: rgba(255,255,255,.04);
}
#mlb-hrz-hub .hrz-name-col {
  display: flex; flex-direction: column; gap: 4px;
  min-width: 0; flex: 1;
}
#mlb-hrz-hub .hrz-name {
  font-size: 1.05rem; font-weight: 700; color: #f1f5f9;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#mlb-hrz-hub .hrz-chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
#mlb-hrz-hub .hrz-hand,
#mlb-hrz-hub .hrz-order,
#mlb-hrz-hub .hrz-vs-hand {
  font-size: .65rem; font-weight: 700; letter-spacing: .5px;
  padding: 2px 7px; border-radius: 999px;
  background: rgba(148,163,184,.10); color: #cbd5e1;
  border: 1px solid rgba(255,255,255,.06);
}
#mlb-hrz-hub .hrz-hand-l { background: rgba(79,143,247,.18);  color: #7dd3fc; }
#mlb-hrz-hub .hrz-hand-r { background: rgba(239,68,68,.18);   color: #fca5a5; }
#mlb-hrz-hub .hrz-hand-s { background: rgba(168,85,247,.18);  color: #d8b4fe; }

/* Score + tier row */
#mlb-hrz-hub .hrz-score-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px;
}
#mlb-hrz-hub .hrz-tier {
  font-size: .72rem; font-weight: 700; letter-spacing: .6px;
  padding: 4px 10px; border-radius: 999px;
  text-transform: uppercase;
}
#mlb-hrz-hub .hrz-tier-elite   { background: rgba(34,197,94,.22);  color: #bbf7d0; border: 1px solid rgba(34,197,94,.45); }
#mlb-hrz-hub .hrz-tier-target  { background: rgba(34,197,94,.12);  color: #d9f99d; border: 1px solid rgba(34,197,94,.28); }
#mlb-hrz-hub .hrz-tier-neutral { background: rgba(148,163,184,.10); color: #cbd5e1; border: 1px solid rgba(255,255,255,.08); }
#mlb-hrz-hub .hrz-tier-tough   { background: rgba(239,68,68,.18);  color: #fca5a5; border: 1px solid rgba(239,68,68,.35); }
#mlb-hrz-hub .hrz-tier-unknown { background: rgba(148,163,184,.06); color: #64748b; border: 1px solid rgba(255,255,255,.04); }

#mlb-hrz-hub .hrz-score-block {
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px;
}
#mlb-hrz-hub .hrz-score { display: flex; align-items: baseline; gap: 5px; }
#mlb-hrz-hub .hrz-score-label {
  font-size: .62rem; letter-spacing: .8px; font-weight: 700; color: #64748b;
}
#mlb-hrz-hub .hrz-score-val {
  font-size: 1.1rem; font-weight: 700; color: #f8fafc;
}
/* Odds line under HR PROB — mirrors the "o0.5 +320" pattern used on
   game-detail and weather props pages. The line text stays muted; the
   +/- number gets a brighter color so it reads as the primary value. */
#mlb-hrz-hub .hrz-score-odds {
  font-size: .68rem; font-weight: 600; letter-spacing: .3px;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}
#mlb-hrz-hub .hrz-score-odds-val {
  color: #cbd5e1;
  font-weight: 700;
  margin-left: 2px;
}

/* 5 stat cells (HR/PA · Brl% · Park · Weather · Matchup) — each one is a
   click-to-open info modal (the same centered popup the prop cards use). */
#mlb-hrz-hub .hrz-stats {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
#mlb-hrz-hub .hrz-stat {
  background: rgba(148,163,184,.04);
  border: 1px solid rgba(255,255,255,.04);
  border-radius: 8px;
  padding: 10px 6px;
  text-align: center;
}
#mlb-hrz-hub .hrz-stat-label {
  font-size: .62rem; letter-spacing: .8px; font-weight: 700;
  color: #64748b; text-transform: uppercase;
  margin-bottom: 6px;
}
#mlb-hrz-hub .hrz-stat-val {
  font-size: 1rem; font-weight: 700; color: #e2e8f0;
}

/* Clickable stat box — opens its info modal on tap. */
#mlb-hrz-hub .hrz-stat-clickable {
  cursor: pointer;
  transition: background 120ms ease, border-color 120ms ease;
}
#mlb-hrz-hub .hrz-stat-clickable:hover {
  background: rgba(34, 211, 238, .06);
  border-color: rgba(34, 211, 238, .22);
}
#mlb-hrz-hub .hrz-stat-clickable:focus-visible {
  outline: 2px solid rgba(34, 211, 238, .5);
  outline-offset: 2px;
}

/* Stat tier colors — green = HR-friendly, red = tough */
#mlb-hrz-hub .hrz-green-3 { color: #bbf7d0; }
#mlb-hrz-hub .hrz-green-2 { color: #d9f99d; }
#mlb-hrz-hub .hrz-green-1 { color: #ecfccb; }
#mlb-hrz-hub .hrz-red-2   { color: #fca5a5; }
#mlb-hrz-hub .hrz-red-3   { color: #fecaca; }

#mlb-hrz-hub .hrz-empty {
  flex: 1;
  padding: 48px 24px; text-align: center;
  color: #64748b; font-style: italic;
  border: 1px dashed rgba(255,255,255,.08);
  border-radius: 12px;
}

/* Mobile / tablet single-column scale-up.
   ----------------------------------------
   Breakpoint is kept in lockstep with pickColumnCount() in
   homeRunZoneHub.js: at <=1000px the grid drops to ONE full-width card per
   row, so each card has the whole content width to work with. We use that
   room by scaling the internals fluidly with clamp(min, vw, max): the `vw`
   term grows everything as the viewport widens toward 1000px, while the
   `min` floor keeps real phones (~360-430px) from overflowing and the
   `max` ceiling stops things getting cartoonishly large near the boundary.
   Multi-column desktop (>1000px) is untouched — it never enters this block. */
@media (max-width: 1000px) {
  /* Reclaim a little outer width for the now-full-width card. */
  #mlb-hrz-hub {
    padding-left: clamp(12px, 2vw, 20px);
    padding-right: clamp(12px, 2vw, 20px);
  }
  #mlb-hrz-hub .hrz-col { gap: 18px; }

  /* Filter pills (Top Targets / Back to Back / Top Due) — enlarged into
     comfortable touch targets. Content-width with wrap so the labels never
     get squeezed; they sit on one row once there's room (~430px+). */
  #mlb-hrz-hub .hrz-filters { gap: clamp(9px, 2vw, 14px); }
  #mlb-hrz-hub .hrz-pill {
    padding: clamp(13px, 2.9vw, 18px) clamp(18px, 4vw, 28px);
    font-size: clamp(.95rem, 2.9vw, 1.12rem);
  }
  #mlb-hrz-hub .hrz-pill-count {
    font-size: clamp(.78rem, 2.1vw, .9rem);
    padding: 2px 10px;
  }

  /* Card head — matchup logos + start time. */
  #mlb-hrz-hub .hrz-head {
    padding: clamp(15px, 2.6vw, 20px) clamp(18px, 3vw, 26px);
  }
  #mlb-hrz-hub .hrz-matchup {
    gap: clamp(8px, 1.4vw, 12px);
    font-size: clamp(.95rem, 2.7vw, 1.25rem);
  }
  #mlb-hrz-hub .hrz-team-logo {
    width: clamp(24px, 3.6vw, 32px);
    height: clamp(24px, 3.6vw, 32px);
  }
  #mlb-hrz-hub .hrz-vs   { font-size: clamp(.85rem, 2.2vw, 1.05rem); }
  #mlb-hrz-hub .hrz-time { font-size: clamp(.82rem, 2.1vw, 1rem); }

  /* Body becomes a 2-column grid: the player block (avatar + name + chips)
     sits on the left and the HR PROB score block sits on the right, on the
     SAME line; the 4 stat cells span the full width below. The tier badge
     (Elite Target / Target / …) is hidden on mobile — the score block alone
     occupies the right cell, so it lands flush against the card edge. */
  #mlb-hrz-hub .hrz-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "name  score"
      "stats stats";
    align-items: center;
    column-gap: clamp(12px, 2.4vw, 20px);
    row-gap: clamp(14px, 2.2vw, 18px);
    padding: clamp(14px, 2.4vw, 20px) clamp(18px, 3vw, 26px) clamp(18px, 3vw, 24px);
  }
  #mlb-hrz-hub .hrz-name-row  { grid-area: name; }
  #mlb-hrz-hub .hrz-score-row { grid-area: score; gap: 0; }
  #mlb-hrz-hub .hrz-stats     { grid-area: stats; }
  #mlb-hrz-hub .hrz-score-row .hrz-tier { display: none; }

  #mlb-hrz-hub .hrz-name-row { gap: clamp(10px, 1.8vw, 16px); }
  #mlb-hrz-hub .hrz-avatar,
  #mlb-hrz-hub .hrz-avatar-wrap {
    width: clamp(48px, 7vw, 64px);
    height: clamp(48px, 7vw, 64px);
  }
  #mlb-hrz-hub .hrz-avatar-team-badge {
    width: clamp(18px, 2.6vw, 24px);
    height: clamp(18px, 2.6vw, 24px);
  }
  #mlb-hrz-hub .hrz-name { font-size: clamp(1.1rem, 3.4vw, 1.5rem); }
  #mlb-hrz-hub .hrz-chips { gap: clamp(7px, 1.5vw, 10px); }
  /* Every chip that can appear under the name — batter hand, vs-pitcher
     hand, batting order, "HR last game", drought, and the B2B-rate chip —
     gets a uniform, larger pill size so the row stays legible on mobile. */
  #mlb-hrz-hub .hrz-hand,
  #mlb-hrz-hub .hrz-order,
  #mlb-hrz-hub .hrz-vs-hand,
  #mlb-hrz-hub .hrz-b2b-chip,
  #mlb-hrz-hub .hrz-drought-chip,
  #mlb-hrz-hub .hrz-b2b-rate-chip {
    font-size: clamp(.76rem, 2.1vw, .92rem);
    padding: clamp(4px, 1vw, 6px) clamp(9px, 1.9vw, 13px);
  }

  /* Score row — tier badge + the hero HR PROB number + odds line. */
  #mlb-hrz-hub .hrz-tier {
    font-size: clamp(.74rem, 2vw, .92rem);
    padding: clamp(4px, 1vw, 7px) clamp(10px, 2vw, 16px);
  }
  #mlb-hrz-hub .hrz-score-label { font-size: clamp(.64rem, 1.7vw, .78rem); }
  #mlb-hrz-hub .hrz-score-val   { font-size: clamp(1.3rem, 4.8vw, 2.1rem); }
  #mlb-hrz-hub .hrz-score-odds  { font-size: clamp(.72rem, 1.9vw, .9rem); }

  /* The 5 stat cells (HR/PA · Brl% · Park · Weather · Matchup). */
  #mlb-hrz-hub .hrz-stats { gap: clamp(8px, 1.6vw, 14px); }
  #mlb-hrz-hub .hrz-stat  { padding: clamp(11px, 2.2vw, 18px) clamp(6px, 1.2vw, 10px); }
  #mlb-hrz-hub .hrz-stat-label {
    font-size: clamp(.72rem, 1.9vw, .86rem);
    margin-bottom: clamp(6px, 1.2vw, 9px);
  }
  #mlb-hrz-hub .hrz-stat-val { font-size: clamp(1.05rem, 3.1vw, 1.5rem); }
}

/* Phones — drop the 5-wide stat row to 3 columns; 5 across would be too
   cramped to read. It wraps cleanly to 3 + 2 (HR/PA · Brl% · Park /
   Weather · Matchup). */
@media (max-width: 700px) {
  #mlb-hrz-hub .hrz-stats {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Weather stat-box modal — keep the windy field (with wind arrows) + the
   Ball Flight Model, but drop the conditions strip + the conditions-detail
   grid. Scoped to .hrz-wx-modal so the prop-card weather popup is untouched. */
.hrz-wx-modal .wx-split-right,      /* conditions-detail grid (Air Density, Wind→CF, …) */
.hrz-wx-modal .wh-strip,            /* Wind / Forecast / Humidity strip */
.hrz-wx-modal .wh-pill-row,         /* roof-closed strip variant */
.hrz-wx-modal .wx-precip-warn { display: none; }
/* Field now spans full width (the right column is gone) and centers. */
.hrz-wx-modal .wx-split-row { display: block; }
.hrz-wx-modal .wx-split-left {
  display: flex; flex-direction: column; align-items: center;
  width: 100%;
}
.hrz-wx-modal .q2-wx-bottom-row { margin-top: 12px; }
.hrz-wx-modal .wx-panel-title { padding-right: 28px; }

/* Ball Flight Model: stack To LF / CF / RF vertically in the left 2/3 and
   give the hitter-conditions score the right 1/3 at full height. Replaces
   the cramped 4-across grid where each direction box was too narrow and
   every word wrapped onto its own line. */
.hrz-wx-modal .q2-wx-bottom-cards {
  grid-template-columns: 2fr 1fr;
}
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-card { grid-column: 1; }
.hrz-wx-modal .q2-wx-bottom-cards .wx-score-box {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: stretch;
}
/* With room to breathe, let the carry-card text lay out on single lines. */
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-card {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: flex-start;
  gap: 4px 8px;
  padding: 8px 12px;
}
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-breakdown { flex-basis: 100%; }

/* Uniform typography inside each ball-flight box — one font size, one
   weight, one family across the direction label, value, "vs typical" tag,
   and the breakdown line. Color still differentiates the boost value. */
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-card,
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-dir,
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-val,
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-breakdown,
.hrz-wx-modal .q2-wx-bottom-cards .wx-carry-tag {
  font-size: 13px;
  font-weight: 600;
  font-family: inherit;
  letter-spacing: normal;
  text-transform: none;
}

/* Roof-closed weather modal — just the field + a centered "Roof Closed"
   badge in place of the (moot) Ball Flight Model. */
.hrz-wx-roof-msg {
  margin-top: 14px;
  text-align: center;
}
