/* ===========================
   GRAND NATIONAL STYLESHEET
   =========================== */

/* CSS variables inherited from base.css — all depth via var() tokens */

/* Body override */
.gn-body {
  background: #0a0f1c;
  color: #f5f0e8;
}

/* Header tweak */
.gn-header {
  background: rgba(10, 15, 28, 0.97);
  border-bottom: 1px solid rgba(212,175,55,0.25);
}

.gn-badge {
  background: var(--gn-red) !important;
  color: #fff !important;
  font-size: 10px !important;
  letter-spacing: 0.1em !important;
}

/* ===== HERO ===== */
.gn-hero {
  position: relative;
  min-height: 520px;
  display: flex;
  align-items: center;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 20% 50%, rgba(26,107,60,0.25) 0%, transparent 55%),
    radial-gradient(ellipse at 80% 30%, rgba(192,57,43,0.18) 0%, transparent 50%),
    linear-gradient(160deg, #0a0f1c 0%, #0d1f3c 50%, #0a0f1c 100%);
}

.gn-hero-overlay {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23c8a951' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
  opacity: 0.7;
}

/* Animated fence strip at bottom of hero */
.gn-fence-strip {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 32px;
  display: flex;
  overflow: hidden;
}

.fence-marker {
  flex: 1;
  border-left: 2px solid rgba(212,175,55,0.12);
  height: 100%;
}

.fence-marker:nth-child(4n) {
  border-left-color: rgba(212,175,55,0.35);
  background: linear-gradient(to top, rgba(212,175,55,0.08), transparent);
}

.gn-hero-content {
  position: relative;
  z-index: 2;
  max-width: 1280px;
  margin: 0 auto;
  padding: 60px 40px;
  width: 100%;
}

.gn-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1em;
  color: var(--gn-gold);
  text-transform: uppercase;
  animation: fadeUp 0.5s ease both;
}

.gn-year {
  background: var(--gn-gold);
  color: var(--gn-navy);
  padding: 3px 10px;
  border-radius: 3px;
  font-weight: 700;
  font-size: 12px;
}

.gn-divider { opacity: 0.4; }

.gn-title {
  display: flex;
  flex-direction: column;
  line-height: 0.9;
  margin-bottom: 18px;
  animation: fadeUp 0.5s 0.08s ease both;
}

.gn-title-line1 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(52px, 7vw, 96px);
  font-weight: 700;
  font-style: italic;
  color: rgba(255,255,255,0.9);
}

.gn-title-line2 {
  font-family: 'Playfair Display', serif;
  font-size: clamp(64px, 9vw, 128px);
  font-weight: 900;
  color: var(--gn-gold);
  letter-spacing: -0.02em;
}

.gn-subtitle {
  font-size: 15px;
  color: rgba(255,255,255,0.5);
  margin-bottom: 32px;
  font-weight: 300;
  letter-spacing: 0.05em;
  animation: fadeUp 0.5s 0.16s ease both;
}

.gn-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: 36px;
  animation: fadeUp 0.5s 0.24s ease both;
}

.gn-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px 28px;
  border-left: 1px solid rgba(212,175,55,0.2);
}

.gn-stat:first-child { border-left: none; padding-left: 0; }

.gn-stat-num {
  font-family: 'Playfair Display', serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--gn-gold);
  line-height: 1;
}

.gn-stat-label {
  font-size: 11px;
  color: rgba(255,255,255,0.45);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-top: 4px;
}

.gn-verdict {
  background: rgba(212,175,55,0.08);
  border: 1px solid rgba(212,175,55,0.25);
  border-left: 4px solid var(--gn-gold);
  border-radius: 6px;
  padding: 18px 22px;
  max-width: 760px;
  animation: fadeUp 0.5s 0.3s ease both;
}

.gn-verdict-label {
  display: block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: var(--gn-gold);
  margin-bottom: 8px;
}

.gn-verdict p {
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255,255,255,0.82);
}

/* ===== CONTAINER ===== */
.gn-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 40px;
}

/* ===== SECTION TITLES ===== */
.gn-section-title {
  font-family: 'Playfair Display', serif;
  font-size: 28px;
  font-weight: 700;
  color: var(--gn-gold);
  margin-bottom: 28px;
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.gn-section-icon {
  font-size: 20px;
}

.gn-section-sub {
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  font-weight: 400;
  color: rgba(255,255,255,0.35);
  margin-left: 4px;
}

/* ===== FANCIES / MARKET MOVERS ===== */
.gn-fancies-section {
  padding: 56px 0 48px;
  background: linear-gradient(to bottom, #0a0f1c, #0e1929);
}

.gn-fancies-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  gap: 16px;
}

.gn-fancy-card {
  background: var(--c-navy-card);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 20px;
  transition: all 0.2s;
}

.gn-fancy-card:hover {
  background: rgba(255,255,255,0.07);
  border-color: rgba(212,175,55,0.3);
  transform: translateY(-2px);
}

.gn-fancy-card--fav {
  border-color: rgba(212,175,55,0.45);
  background: rgba(212,175,55,0.07);
  box-shadow: 0 0 24px rgba(212,175,55,0.12);
}

.gn-fancy-top {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}

.gn-fancy-silk {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 15px;
  color: white;
  text-shadow: 0 1px 3px rgba(0,0,0,0.6);
  flex-shrink: 0;
}

.gn-fancy-info { flex: 1; }

.gn-fancy-name {
  font-weight: 600;
  font-size: 15px;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
}

.gn-fancy-meta {
  font-size: 12px;
  color: rgba(255,255,255,0.45);
  margin-top: 2px;
}

.gn-fancy-odds {
  font-family: 'Playfair Display', serif;
  font-size: 24px;
  font-weight: 700;
  color: var(--gn-gold);
  flex-shrink: 0;
}

.gn-fancy-connections {
  font-size: 13px;
  color: rgba(255,255,255,0.55);
  line-height: 1.8;
  margin-bottom: 10px;
  border-top: 1px solid rgba(255,255,255,0.07);
  padding-top: 10px;
}

.gn-conn-label {
  font-size: 10px;
  font-weight: 700;
  color: rgba(212,175,55,0.7);
  letter-spacing: 0.05em;
}

.gn-fancy-ratings {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.gn-rating {
  font-size: 11px;
  font-weight: 600;
  background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.65);
  padding: 2px 8px;
  border-radius: 100px;
}

.gn-form-str {
  font-family: monospace;
  font-size: 12px;
  color: rgba(255,255,255,0.35);
  margin-left: auto;
}

.gn-fancy-comment {
  font-size: 12px;
  color: rgba(255,255,255,0.45);
  line-height: 1.55;
  margin-top: 10px;
  border-top: 1px solid var(--c-navy-raised);
  padding-top: 10px;
}

/* Fav tag */
.gn-fav-tag {
  background: var(--gn-gold);
  color: var(--gn-navy);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.1em;
  padding: 2px 7px;
  border-radius: 3px;
}

.gn-fav-tag--sm {
  font-size: 8px;
  padding: 1px 5px;
}

/* ===== FORECAST STRIP ===== */
.gn-forecast-strip {
  background: var(--gn-red);
  padding: 14px 0;
}

.gn-forecast-strip .gn-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
}

.gn-forecast-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  color: rgba(255,255,255,0.7);
  flex-shrink: 0;
}

.gn-forecast-text {
  font-size: 14px;
  color: #fff;
  font-weight: 500;
}

/* ===== RACECARD TABLE ===== */
.gn-racecard-section {
  padding: 56px 0 48px;
  background: #0e1929;
}

/* Filter bar */
.gn-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}

.gn-filter-btn {
  background: var(--c-navy-raised);
  border: 1px solid rgba(255,255,255,0.12);
  color: rgba(255,255,255,0.6);
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 500;
  padding: 8px 18px;
  border-radius: 100px;
  cursor: pointer;
  transition: all 0.2s;
}

.gn-filter-btn:hover {
  background: rgba(255,255,255,0.1);
  color: #fff;
}

.gn-filter-btn.active {
  background: var(--gn-gold);
  border-color: var(--gn-gold);
  color: var(--gn-navy);
  font-weight: 600;
}

/* Table */
.gn-table-wrap {
  overflow-x: auto;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
}

.gn-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  background: rgba(255,255,255,0.02);
}

.gn-table thead {
  background: rgba(212,175,55,0.1);
  border-bottom: 1px solid rgba(212,175,55,0.2);
}

.gn-table th {
  padding: 13px 14px;
  text-align: left;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(212,175,55,0.7);
  font-weight: 600;
  white-space: nowrap;
}

.gn-table th.gc-odds { text-align: right; }

.gn-row {
  border-bottom: 1px solid rgba(255,255,255,0.05);
  transition: background 0.15s;
}

.gn-row:hover { background: var(--c-navy-card); }

.gn-row--fav {
  background: rgba(212,175,55,0.06);
}

.gn-row.gn-row--hidden { display: none; }

.gn-table td {
  padding: 12px 14px;
  vertical-align: middle;
  color: rgba(255,255,255,0.85);
}

.gn-silk {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 12px;
  color: white;
  text-shadow: 0 1px 3px rgba(0,0,0,0.6);
  flex-shrink: 0;
}

.gn-horse-name {
  font-weight: 600;
  font-size: 14px;
  color: #fff;
}

.gn-row-comment {
  font-size: 11.5px;
  color: rgba(255,255,255,0.4);
  margin-top: 4px;
  max-width: 300px;
  line-height: 1.5;
}

/* SR badge (replaces OR bar) */
.gn-sr-badge {
  font-family: var(--font-display);
  font-size: 13px;
  font-weight: 900;
  color: var(--c-gold);
}

/* OR bar (legacy, hidden) */
.gn-or-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255,255,255,0.8);
  white-space: nowrap;
}

.gn-or-fill {
  /* purely decorative; actual OR value shown as text */
  display: none;
}

.gn-form {
  font-family: monospace;
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.05em;
}

.gn-jockey {
  font-size: 13px;
  color: rgba(255,255,255,0.8);
  font-weight: 500;
}

.gn-trainer {
  font-size: 12px;
  color: rgba(255,255,255,0.4);
  margin-top: 2px;
}

.gc-ts, .gc-rpr {
  font-size: 13px;
  color: rgba(255,255,255,0.5);
  font-weight: 500;
}

.gc-odds { text-align: right; }

.gn-odds-pill {
  display: inline-block;
  background: rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.9);
  font-family: 'Playfair Display', serif;
  font-size: 15px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 6px;
  white-space: nowrap;
  border: 1px solid rgba(255,255,255,0.1);
}

.gn-odds-pill--fav {
  background: var(--gn-gold);
  color: var(--gn-navy);
  border-color: var(--gn-gold);
  box-shadow: 0 0 12px rgba(212,175,55,0.35);
}

.gn-odds-pill--long {
  background: rgba(192,57,43,0.15);
  color: rgba(255,180,180,0.85);
  border-color: rgba(192,57,43,0.2);
  font-size: 13px;
}

/* ===== COURSE SECTION ===== */
.gn-course-section {
  padding: 56px 0 64px;
  background: linear-gradient(to bottom, #0e1929, #0a0f1c);
}

.gn-course-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
}

.gn-course-fact {
  flex: 1;
  min-width: 160px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(212,175,55,0.15);
  padding: 24px 20px;
  border-radius: 8px;
  text-align: center;
}

.gcf-num {
  display: block;
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  font-weight: 700;
  color: var(--gn-gold);
  margin-bottom: 8px;
  line-height: 1.2;
}

.gcf-label {
  font-size: 12px;
  color: rgba(255,255,255,0.45);
  line-height: 1.5;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
  .gn-hero-content { padding: 40px 20px 60px; }
  .gn-container { padding: 0 20px; }
  .gn-title-line1 { font-size: 40px; }
  .gn-title-line2 { font-size: 56px; }
  .gn-stats-row { gap: 0; }
  .gn-stat { padding: 12px 16px; }
  .gn-stat-num { font-size: 20px; }
  .gn-fancies-grid { grid-template-columns: 1fr 1fr; }
  .gn-table th.gc-ts, .gn-table td.gc-ts { display: none; }
  .gn-row-comment { display: none; }
}

@media (max-width: 480px) {
  .gn-fancies-grid { grid-template-columns: 1fr; }
  .gn-title-line2 { font-size: 44px; }
  .gn-course-facts { flex-direction: column; }
}

/* Depth refresh — cards feel raised */
.gn-fancy-card {
  box-shadow: var(--shadow-card);
}
.gn-fancy-card:hover {
  box-shadow: var(--shadow-raised);
}
.gn-rating {
  background: rgba(212,175,55,0.09);
  border: 1px solid rgba(212,175,55,0.18);
  color: var(--c-gold);
}
/* Emerald for vote leaders */
.gn-row--vote-leader { background: rgba(26,92,64,0.07) !important; }
.gn-row--vote-leader .gn-odds-pill { box-shadow: 0 0 14px rgba(45,158,107,0.28); }
/* Live banner */
.gn-vote-banner { background: rgba(212,175,55,0.07); }
/* OR bar — gold */
.gn-or-fill { background: linear-gradient(90deg, var(--c-gold), var(--c-gold-lt)); }
/* Racecard table header */
.gc-header { background: rgba(212,175,55,0.08); }

/* ── GN depth refresh ── */
.gn-fancy-card {
  background: var(--c-navy-card) !important;
  border-color: var(--c-border-md) !important;
  box-shadow: var(--shadow-card);
}
.gn-fancy-card:hover {
  background: var(--c-navy-raised) !important;
  box-shadow: var(--shadow-raised);
  transform: translateY(-3px);
}
.gn-racecard-section table {
  background: var(--c-navy-card);
}
.gn-row { background: var(--c-navy-card); }
.gn-row:nth-child(even) { background: var(--c-navy-mid); }
.gn-row:hover { background: var(--c-navy-raised) !important; }
.gn-row--fav { background: rgba(212,175,55,0.07) !important; }

/* Emerald vote leader */
.gn-row--vote-leader {
  background: rgba(26,92,64,0.12) !important;
  border-left: 2px solid var(--c-emerald-lt);
}
/* Section backgrounds — alternate clearly */
.gn-fancies-section { background: var(--c-navy); }
.gn-racecard-section { background: var(--c-midnight); }
.gn-course-section   { background: var(--c-navy); }

/* Rating chips */
.gn-rating {
  background: rgba(212,175,55,0.10);
  border: 1px solid rgba(212,175,55,0.22);
  color: var(--c-gold);
  font-size: 11px; padding: 2px 8px; border-radius: 3px;
}
/* Green nodes on timeline */
.decl-node--done { background: var(--c-emerald) !important; border-color: var(--c-emerald-lt) !important; }

/* ── GN mobile readability ── */
@media (max-width: 640px) {
  /* Table text — bump up from 11-12px */
  .gn-horse-name    { font-size: 14px !important; }
  .gn-jockey        { font-size: 13px !important; }
  .gn-trainer       { font-size: 12px !important; opacity: 1 !important; }
  .gn-row-comment   { font-size: 13px !important; line-height: 1.65 !important; }
  .gn-fancy-comment { font-size: 14px !important; line-height: 1.72 !important; }
  .gn-fancy-name    { font-size: 16px !important; }
  /* Racecard hide less critical columns to give text room */
  .gc-ts, .gc-form { display: none; }
  /* Expand horse name column */
  .gc-horse { font-size: 14px !important; }
  /* Odds larger on mobile */
  .gn-odds-pill { font-size: 14px !important; padding: 5px 10px !important; }
}

/* ── Horse profile link ── */
.gn-horse-link {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(212,175,55,0.25);
  transition: color 0.18s, border-color 0.18s;
}
.gn-horse-link:hover {
  color: var(--c-gold);
  border-bottom-color: var(--c-gold);
}

/* ═══════════════════════════════════════════════════════════════
   RUNNER STATUS FLAGS
   scratched   - hidden (filtered in view, never reaches template)
   decs_7_days - shown with amber 7-day badge
   decs_48_hrs - normal display (default)
   non_runner  - red strikethrough, dimmed, NR badge
═══════════════════════════════════════════════════════════════ */

/* ── Status badges ────────────────────────────────────────────── */
.gn-status-badge {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: var(--r-pill);
  vertical-align: middle;
  margin-left: 5px;
  line-height: 1.6;
}

.gn-status-badge--nr {
  background: rgba(192,57,43,0.18);
  color: #E05C4C;
  border: 1px solid rgba(192,57,43,0.3);
}

.gn-status-badge--7day {
  background: rgba(212,175,55,0.12);
  color: var(--c-gold);
  border: 1px solid rgba(212,175,55,0.25);
}

/* ── Non-runner horse name — red strikethrough ────────────────── */
a.gn-horse-name--nr,
a.gn-horse-link--nr,
.gn-horse-name--nr {
  text-decoration: line-through !important;
  text-decoration-color: #C0392B !important;
  text-decoration-thickness: 2px !important;
  color: var(--c-text-35) !important;
  pointer-events: none;
  cursor: default;
}

/* ── Non-runner racecard row ──────────────────────────────────── */
.gn-row--nr {
  opacity: 0.55;
  background: rgba(192,57,43,0.04) !important;
}
.gn-row--nr:hover {
  background: rgba(192,57,43,0.06) !important;
  transform: none !important;
}
.gn-row--nr .gn-odds-pill {
  background: rgba(255,255,255,0.04);
  color: var(--c-text-35);
  border-color: var(--c-border);
}
.gn-row--nr .gn-silk {
  opacity: 0.4;
  filter: grayscale(0.8);
}

/* ── 7-day entry row — subtle amber tint ─────────────────────── */
.gn-row--7day {
  opacity: 0.82;
}

/* ── Non-runner fancy card ────────────────────────────────────── */
.gn-fancy-card--nr {
  opacity: 0.5;
  filter: grayscale(0.4);
  border-color: rgba(192,57,43,0.2) !important;
}
.gn-fancy-card--nr .gn-fancy-silk {
  filter: grayscale(0.7);
}

/* ── Non-runner count label in section subtitle ───────────────── */
.gn-nr-count {
  color: #E05C4C;
  font-weight: 600;
}

/* ── 7-day fancy card ─────────────────────────────────────────── */
.gn-fancy-card--7day {
  border-color: rgba(212,175,55,0.15) !important;
}

/* ═══════════════════════════════════════════════════════════════
   AI STAR RATING
   Replaces RPR / TS pills on the racecard.
   Stars are gold (filled) and dimmed (empty).
   Hovering shows the LLM one-line reason as a tooltip.
═══════════════════════════════════════════════════════════════ */

.gn-ai-stars {
  display: inline-flex;
  align-items: center;
  gap: 1px;
  font-size: 15px;
  line-height: 1;
  color: var(--c-gold);
  letter-spacing: -1px;
  cursor: help;
  /* Empty stars are dimmed gold */
  background: none;
  border: none;
  font-family: inherit;
}

/* Unfilled stars — same character, much lower opacity */
.gn-ai-stars {
  /* CSS trick: first colour filled, second colour empty star */
  /* We render both ★ and ☆ as distinct chars so colour is direct */
}

/* Any ☆ character inside the stars span */
.gn-ai-stars {
  /* Gold for ★, dimmed for ☆ — handled via character opacity below */
}

/* Small variant for racecard table rows */
.gn-ai-stars--sm {
  font-size: 13px;
  letter-spacing: -1.5px;
  cursor: help;
}

/* Colour: filled ★ = gold, empty ☆ = subdued */
/* Django template renders "★★★☆☆" — we target the cell */
.gc-stars .gn-ai-stars--sm,
.gn-fancy-ratings .gn-ai-stars {
  color: var(--c-gold);
  /* Empty stars inside appear as dim gold via opacity on the char itself */
  /* We use a CSS filter trick: the ☆ chars will be styled by JS below */
}

/* Pending — not yet rated */
.gn-ai-stars--pending {
  color: var(--c-text-35);
  font-size: 12px;
}

/* Vote pill update — now uses paw emoji */
.gn-votes-col .gn-vote-pill,
.gc-votes-col .gn-vote-pill {
  font-size: 12px;
  color: var(--c-text-55);
}

/* AI reason tooltip (native title attr — good enough for desktop) */
/* For a richer tooltip, JS could intercept hover */
[title].gn-ai-stars:hover::after {
  content: attr(title);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--c-navy-raised);
  border: 1px solid var(--c-border-gold);
  color: var(--c-text-75);
  font-size: 12px;
  padding: 6px 10px;
  border-radius: var(--r-sm);
  white-space: nowrap;
  max-width: 280px;
  white-space: normal;
  z-index: 100;
  pointer-events: none;
  box-shadow: var(--shadow-raised);
}
.gn-fancy-ratings { position: relative; }
.gc-stars          { position: relative; }

/* ═══════════════════════════════════════════════════════════════
   RACECARD SORT HEADERS
═══════════════════════════════════════════════════════════════ */

.gn-sort-th {
  user-select: none;
  white-space: nowrap;
  transition: color 0.15s;
}
.gn-sort-th:hover {
  color: var(--c-gold);
}
.gn-sort-th--active {
  color: var(--c-gold) !important;
}

.gn-sort-icon {
  display: inline-block;
  font-size: 10px;
  margin-left: 3px;
  opacity: 0.4;
  vertical-align: middle;
  transition: opacity 0.15s;
}
.gn-sort-th:hover .gn-sort-icon {
  opacity: 0.7;
}
.gn-sort-icon--active {
  opacity: 1 !important;
  color: var(--c-gold);
}

/* ═══════════════════════════════════════════════════════════════
   CLAUDE'S PICK SECTION
═══════════════════════════════════════════════════════════════ */

.gn-claude-pick-section {
  padding: var(--space-7) 0;
}

.gn-claude-pick {
  background: linear-gradient(135deg,
    rgba(204,138,90,0.08) 0%,
    rgba(17,17,24,0.0) 60%);
  border: 1px solid rgba(204,138,90,0.25);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: 0 0 40px rgba(204,138,90,0.06);
}

/* ── Header ─────────────────────────────────────────────────── */
.gn-claude-pick__header {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--c-border);
  background: rgba(0,0,0,0.2);
}

.gn-claude-pick__logo {
  flex-shrink: 0;
}

.gn-claude-pick__title-block { flex: 1; min-width: 0; }
.gn-claude-pick__eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(204,138,90,0.9);
  margin-bottom: 3px;
}
.gn-claude-pick__subtitle {
  font-size: 12px;
  color: var(--c-text-35);
}

/* Confidence badge */
.gn-claude-pick__confidence {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: var(--r-pill);
  border: 1px solid;
  flex-shrink: 0;
}
.gn-claude-conf--high {
  color: var(--c-emerald-lt);
  border-color: rgba(45,189,122,0.3);
  background: rgba(45,189,122,0.08);
}
.gn-claude-conf--medium {
  color: var(--c-gold);
  border-color: rgba(212,175,55,0.3);
  background: rgba(212,175,55,0.06);
}
.gn-claude-conf--speculative {
  color: var(--c-text-55);
  border-color: var(--c-border);
  background: transparent;
}

/* ── How Claude works ───────────────────────────────────────── */
.gn-claude-pick__method {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-bottom: 1px solid var(--c-border);
}

.gn-claude-method-step {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-5);
  border-right: 1px solid var(--c-border);
}
.gn-claude-method-step:last-child { border-right: none; }

.gn-claude-method-step__num {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(204,138,90,0.15);
  border: 1px solid rgba(204,138,90,0.3);
  color: rgba(204,138,90,0.9);
  font-size: 12px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.gn-claude-method-step strong {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-100);
  margin-bottom: 5px;
}
.gn-claude-method-step p {
  font-size: 12px;
  color: var(--c-text-55);
  line-height: 1.6;
  margin: 0;
}

/* ── The pick ───────────────────────────────────────────────── */
.gn-claude-pick__selection {
  display: flex;
  align-items: center;
  gap: var(--space-7);
  padding: var(--space-6) var(--space-6);
  border-bottom: 1px solid var(--c-border);
  background: rgba(204,138,90,0.04);
}

.gn-claude-pick__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-35);
  margin-bottom: 8px;
}

.gn-claude-pick__horse-name {
  font-family: var(--font-display);
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 900;
  line-height: 1;
}

.gn-claude-horse-link {
  color: var(--c-text-100);
  text-decoration: none;
  border-bottom: 2px solid rgba(204,138,90,0.4);
  transition: color 0.18s, border-color 0.18s;
}
.gn-claude-horse-link:hover {
  color: rgba(204,138,90,0.9);
  border-bottom-color: rgba(204,138,90,0.9);
}

.gn-claude-pick__shortlist {
  margin-top: 10px;
  font-size: 12px;
  color: var(--c-text-35);
}

.gn-claude-pick__supporting {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gn-claude-supp {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 14px;
  background: var(--c-navy-mid);
  border-radius: var(--r-md);
  border: 1px solid var(--c-border);
}
.gn-claude-supp--danger {
  border-color: rgba(192,57,43,0.2);
}
.gn-claude-supp__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-text-35);
  min-width: 80px;
}
.gn-claude-supp__horse {
  font-size: 14px;
  font-weight: 700;
  color: var(--c-text-100);
  text-decoration: none;
}
.gn-claude-supp__horse:hover { color: var(--c-gold); }
.gn-claude-supp--danger .gn-claude-supp__horse { color: #E05C4C; }
.gn-claude-supp--danger .gn-claude-supp__horse:hover { color: #ff7060; }

/* ── Reasoning ──────────────────────────────────────────────── */
.gn-claude-pick__reasoning {
  padding: var(--space-5) var(--space-6);
  border-bottom: 1px solid var(--c-border);
}
.gn-claude-pick__reasoning-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-35);
  margin-bottom: var(--space-4);
}
.gn-claude-pick__reasoning p {
  font-size: 14px;
  color: var(--c-text-75);
  line-height: 1.8;
  margin-bottom: 10px;
}
.gn-claude-pick__reasoning p:last-child { margin-bottom: 0; }

/* ── Footer ─────────────────────────────────────────────────── */
.gn-claude-pick__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-4) var(--space-6);
  font-size: 11px;
  color: var(--c-text-35);
  background: rgba(0,0,0,0.15);
  gap: var(--space-4);
  flex-wrap: wrap;
}
.gn-claude-pick__disclaimer {
  font-style: italic;
}

/* ── Mobile ─────────────────────────────────────────────────── */
@media (max-width: 768px) {
  .gn-claude-pick__method {
    grid-template-columns: 1fr;
  }
  .gn-claude-method-step {
    border-right: none;
    border-bottom: 1px solid var(--c-border);
  }
  .gn-claude-method-step:last-child { border-bottom: none; }
  .gn-claude-pick__selection {
    flex-direction: column;
    align-items: flex-start;
  }
  .gn-claude-pick__supporting {
    width: 100%;
  }
}

/* ── Vote toast notifications ────────────────────────────────── */
.gn-vote-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  opacity: 0;
  padding: 12px 24px;
  border-radius: var(--r-pill);
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  z-index: 9999;
  pointer-events: none;
  transition: opacity 0.25s, transform 0.25s;
  white-space: nowrap;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.gn-vote-toast--in {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
.gn-vote-toast--success {
  background: var(--c-emerald);
  border: 1px solid rgba(45,189,122,0.4);
}
.gn-vote-toast--error {
  background: #C0392B;
  border: 1px solid rgba(192,57,43,0.5);
}

/* ── User's vote row — gold left border ─────────────────────── */
.gn-row--my-vote {
  border-left: 3px solid var(--c-gold) !important;
}

/* ── Leader row — emerald tint ──────────────────────────────── */
.gn-row--vote-leader {
  background: rgba(26,92,64,0.08) !important;
}

/* ── Voting closed state on profile page ────────────────────── */
.vote-section__rule--closed {
  color: #E05C4C;
  font-weight: 600;
}
.vote-btn--disabled,
.vote-btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  pointer-events: none;
}

/* ═════════════════════════════════════════════════════════════
   THE RACE ENGINE — page-level styles
   (Existing gn-* styles are preserved for runner table)
═════════════════════════════════════════════════════════════ */

/* ── HERO ── */
.re-hero {
  position: relative;
  background: var(--c-midnight);
  min-height: 0;
  display: flex;
  align-items: flex-start;
  overflow: hidden;
  padding-bottom: 0;
}

.re-hero__bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 65% 80% at -5% 60%, rgba(10,30,60,0.9) 0%, transparent 55%),
    radial-gradient(ellipse 55% 70% at 108% 40%, rgba(100,15,50,0.35) 0%, transparent 55%),
    radial-gradient(ellipse 40% 55% at 60% 70%, rgba(50,10,80,0.3) 0%, transparent 50%),
    #060812;
}

.re-fence-post {
  flex: 1;
  border-left: 1px solid rgba(212,175,55,0.07);
}

.re-hero__vignette {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(6,8,18,0.3) 0%, transparent 30%, transparent 60%, rgba(6,8,18,0.9) 100%);
  z-index: 1;
  pointer-events: none;
}

.re-hero__inner {
  position: relative;
  z-index: 2;
  padding: var(--space-6) 0 52px;
}

/* Eyebrow */
.re-eyebrow {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.re-eyebrow__kicker {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.28em;
  color: var(--c-red);
  text-transform: uppercase;
  background: rgba(192,57,43,0.1);
  border: 1px solid rgba(192,57,43,0.25);
  padding: 3px 10px;
  border-radius: var(--r-pill);
}

.re-eyebrow__sep { color: rgba(255,255,255,0.15); font-size: 12px; }

.re-eyebrow__item {
  font-size: 12px;
  font-weight: 500;
  color: var(--c-text-55);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.re-eyebrow__item--gold { color: var(--c-gold); }

/* Title */
.re-title {
  display: flex;
  flex-direction: column;
  line-height: 0.92;
  margin: 0 0 16px;
  animation: fadeUp 0.5s 0.08s ease both;
}

/* "This Saturday" — italic, lighter, same as original gn-title-line1 */
.re-title__eyeline {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(32px, 4.5vw, 64px);
  font-weight: 700;
  font-style: italic;
  color: rgba(255,255,255,0.88);
  letter-spacing: 0.01em;
}

/* Race name — bold, gold, dominant, same as original gn-title-line2 */
.re-title__name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(48px, 7vw, 112px);
  font-weight: 900;
  color: var(--c-gold);
  letter-spacing: -0.02em;
  line-height: 0.9;
}

.re-subtitle {
  font-size: 15px;
  color: var(--c-text-55);
  margin: 0 0 28px;
  line-height: 1.5;
}

/* Stats bar */
.re-stats-bar {
  display: flex;
  gap: 0;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.re-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 20px;
  border-right: 1px solid rgba(255,255,255,0.08);
  min-width: 80px;
}

.re-stat:first-child { padding-left: 0; }
.re-stat:last-child  { border-right: none; }

.re-stat__num {
  font-family: var(--font-display);
  font-size: 22px;
  font-weight: 900;
  color: var(--c-gold);
  line-height: 1;
}

.re-stat__label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--c-text-35);
  text-transform: uppercase;
  margin-top: 4px;
}

.re-tagline {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--c-text-35);
  text-transform: uppercase;
  margin: 0;
}

/* ── THREE SIGNALS ── */
.re-signals-section {
  background: #07080f;
  border-bottom: 1px solid rgba(255,255,255,0.05);
  padding: 56px 0 48px;
}

.re-signals-header {
  text-align: center;
  margin-bottom: 36px;
}

.re-signals-intro {
  font-size: 15px;
  color: var(--c-text-55);
  font-style: italic;
  line-height: 1.6;
}

.re-signals-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: rgba(255,255,255,0.06);
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 20px;
}

.re-signal {
  background: #0a0c14;
  padding: 32px 28px;
  position: relative;
  transition: background 0.2s;
}
.re-signal:hover { background: #0d1018; }

.re-signal__icon { font-size: 24px; margin-bottom: 10px; }

.re-signal__num {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 900;
  color: var(--c-gold);
  margin-bottom: 10px;
  line-height: 1;
}

.re-signal--ai .re-signal__num  { color: #4cdb78; }
.re-signal--votes .re-signal__num { color: var(--c-orange); }

.re-signal__title {
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--c-text-100);
  margin: 0 0 9px;
}

.re-signal__text {
  font-size: 13px;
  line-height: 1.75;
  color: var(--c-text-55);
  margin: 0 0 14px;
}

.re-signal__tag {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.18em;
  color: var(--c-text-35);
  text-transform: uppercase;
  border: 1px solid rgba(255,255,255,0.08);
  padding: 3px 8px;
  border-radius: 3px;
}

/* Signal top accent bar */
.re-signal--sr::before    { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--c-gold); }
.re-signal--ai::before    { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: #4cdb78; }
.re-signal--votes::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--c-orange); }

/* Insight bar */
.re-insight-bar {
  background: rgba(212,175,55,0.05);
  border: 1px solid rgba(212,175,55,0.15);
  border-radius: 6px;
  padding: 14px 20px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.re-insight-bar__label {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: var(--c-gold);
  text-transform: uppercase;
  flex-shrink: 0;
  margin-top: 2px;
}

.re-insight-bar__text {
  font-size: 13px;
  color: var(--c-text-55);
  line-height: 1.65;
  font-style: italic;
}

/* ── FOX'S VERDICT — Immersive standout ── */
.re-verdict {
  position: relative;
  padding: 64px 0;
  overflow: hidden;
  background: #06080f;
  border-top: 1px solid rgba(212,175,55,0.12);
  border-bottom: 1px solid rgba(212,175,55,0.12);
}

/* Atmospheric gold-tinted background */
.re-verdict__bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 100% at 50% 50%, rgba(200,169,81,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 40% 60% at 0% 50%, rgba(200,169,81,0.04) 0%, transparent 50%);
}

/* Animated glow behind the fox portrait */
.re-verdict__glow {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,169,81,0.08), transparent 65%);
  filter: blur(60px);
  animation: verdictGlow 4s ease-in-out infinite;
  pointer-events: none;
}

@keyframes verdictGlow {
  0%, 100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1); }
  50%       { opacity: 1;   transform: translate(-50%, -50%) scale(1.1); }
}

.re-verdict__inner {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 48px;
  align-items: flex-start;
  max-width: 900px;
  margin: 0 auto;
}

/* Fox portrait */
.re-verdict__portrait {
  position: relative;
  flex-shrink: 0;
}

.re-verdict__fox-svg {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  filter: drop-shadow(0 0 24px rgba(200,169,81,0.5));
  animation: foxFloat 5s ease-in-out infinite;
}

@keyframes foxFloat {
  0%, 100% { transform: translateY(0);   filter: drop-shadow(0 0 24px rgba(200,169,81,0.5)); }
  50%       { transform: translateY(-5px); filter: drop-shadow(0 0 38px rgba(200,169,81,0.75)); }
}

/* Pulsing ring around portrait */
.re-verdict__fox-ring {
  position: absolute;
  inset: -8px;
  border-radius: 50%;
  border: 1px solid rgba(200,169,81,0.3);
  animation: ringPulse 3s ease-in-out infinite;
}

@keyframes ringPulse {
  0%, 100% { opacity: 0.3; transform: scale(1); }
  50%       { opacity: 0.8; transform: scale(1.06); }
}

/* Content side */
.re-verdict__content { flex: 1; }

.re-verdict__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

/* Live badge */
.re-verdict__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(200,169,81,0.12);
  border: 1px solid rgba(212,175,55,0.35);
  color: var(--c-gold);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: var(--r-pill);
  box-shadow: 0 0 16px rgba(200,169,81,0.12);
}

.re-verdict__badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-gold);
  animation: pulseDot 2s ease-in-out infinite;
  flex-shrink: 0;
}

.re-verdict__race-tag {
  font-size: 11px;
  font-weight: 600;
  color: var(--c-text-35);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* The quote — the centrepiece */
.re-verdict__quote {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(18px, 2.4vw, 26px);
  font-weight: 700;
  font-style: italic;
  line-height: 1.55;
  color: var(--c-text-100);
  margin: 0 0 20px;
  padding: 0;
  border: none;
  /* Gold text shadow for subtle glow */
  text-shadow: 0 0 40px rgba(200,169,81,0.15);
  /* Left accent line */
  padding-left: 24px;
  border-left: 3px solid var(--c-gold);
  position: relative;
}

.re-verdict__footer {
  display: flex;
  align-items: center;
  gap: 20px;
}

.re-verdict__cta {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-gold);
  border-bottom: 1px solid rgba(212,175,55,0.3);
  padding-bottom: 2px;
  transition: border-color 0.2s, color 0.2s;
  letter-spacing: 0.02em;
}
.re-verdict__cta:hover {
  color: var(--c-gold-lt);
  border-color: var(--c-gold);
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .re-verdict { padding: 48px 0; }
  .re-verdict__inner { flex-direction: column; gap: 24px; align-items: center; text-align: center; }
  .re-verdict__header { justify-content: center; }
  .re-verdict__quote { padding-left: 0; border-left: none; border-top: 2px solid var(--c-gold); padding-top: 20px; font-size: clamp(16px, 4.5vw, 22px); }
  .re-verdict__footer { justify-content: center; }
}

/* ── AI SECTION ── */
.re-ai-section {
  padding: 56px 0;
  background: #060812;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}

.re-ai-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.re-ai-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 8px;
  padding: 20px;
  position: relative;
  transition: background 0.2s;
}
.re-ai-card:hover { background: rgba(255,255,255,0.05); }

.re-ai-card--claude::before  { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: #cc8a5a; border-radius: 8px 8px 0 0; }
.re-ai-card--chatgpt::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: #10a37f; border-radius: 8px 8px 0 0; }
.re-ai-card--gemini::before  { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: #4285f4; border-radius: 8px 8px 0 0; }

.re-ai-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}

a.re-ai-card__header-link {
  text-decoration: none;
  color: inherit;
  border-radius: 6px;
  margin: -6px;
  padding: 6px;
  transition: background 0.15s ease, color 0.15s ease;
}
a.re-ai-card__header-link:hover {
  background: rgba(255,255,255,0.06);
}
a.re-ai-card__header-link:hover .re-ai-card__name {
  color: var(--c-text-100);
}
a.re-ai-card__header-link:focus-visible {
  outline: 2px solid rgba(212,175,55,0.55);
  outline-offset: 2px;
}

.re-ai-card__name {
  font-size: 13px;
  font-weight: 700;
  color: var(--c-text-75);
}

.re-ai-card__pick {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 900;
  color: var(--c-text-100);
  margin-bottom: 10px;
  line-height: 1.15;
}

.re-ai-card__reason {
  font-size: 13px;
  line-height: 1.7;
  color: var(--c-text-55);
  margin: 0;
}

/* Fox pick bar */
.re-fox-pick {
  background: rgba(200,169,81,0.07);
  border: 1px solid rgba(212,175,55,0.2);
  border-radius: 6px;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.re-fox-pick__label {
  font-size: 11px;
  font-weight: 700;
  color: var(--c-text-35);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  flex-shrink: 0;
}

.re-fox-pick__horse {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 900;
  color: var(--c-gold);
  flex: 1;
}

.re-fox-pick__link {
  font-size: 13px;
  color: var(--c-text-35);
  font-weight: 500;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  padding-bottom: 1px;
  transition: color 0.2s, border-color 0.2s;
}
.re-fox-pick__link:hover { color: var(--c-gold); border-color: var(--c-gold); }

/* Battleground line */
.re-battleground-line {
  font-size: 14px;
  font-style: italic;
  color: var(--c-text-35);
  text-align: center;
  margin: 0;
  line-height: 1.7;
}

/* ── RACE STATUS ── */
.re-race-status {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  font-weight: 600;
  padding: 10px 16px;
  border-radius: 6px;
  margin-bottom: 18px;
}

.re-race-status--open {
  background: rgba(76,219,120,0.08);
  border: 1px solid rgba(76,219,120,0.2);
  color: #4cdb78;
}

.re-race-status--open a { color: var(--c-gold); text-decoration: underline; }

.re-race-status--closed {
  background: rgba(192,57,43,0.08);
  border: 1px solid rgba(192,57,43,0.2);
  color: rgba(255,130,130,0.85);
}

.re-status-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #4cdb78;
  flex-shrink: 0;
  animation: pulseDot 2s ease-in-out infinite;
}

/* ── VOTE BUTTON IN TABLE ── */
.gc-vote-action { width: 70px; text-align: center; }

.re-vote-btn {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--c-text-55);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  padding: 5px 12px;
  border-radius: 4px;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}
.re-vote-btn:hover {
  background: rgba(212,175,55,0.1);
  border-color: rgba(212,175,55,0.35);
  color: var(--c-gold);
}

.re-vote-btn--active {
  background: rgba(212,175,55,0.15);
  border-color: var(--c-gold);
  color: var(--c-gold);
}

/* Voted row highlight */
.gn-row--voted {
  background: rgba(212,175,55,0.04) !important;
}
.gn-row--voted td { border-left: none; }
.gn-row--voted td:first-child { border-left: 2px solid var(--c-gold); }

/* ── VOTE TOAST ── */
.re-toast {
  position: fixed;
  bottom: 28px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: #1a1f2e;
  border: 1px solid rgba(212,175,55,0.3);
  color: var(--c-text-100);
  font-size: 14px;
  font-weight: 600;
  padding: 12px 24px;
  border-radius: 8px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s, transform 0.25s;
  z-index: 999;
  box-shadow: 0 8px 32px rgba(0,0,0,0.5);
  white-space: nowrap;
}
.re-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ── RESPONSIVE ── */
@media (max-width: 900px) {
  .re-signals-grid { grid-template-columns: 1fr; }
  .re-ai-grid      { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  /* Hero title */
  .re-title__eyeline { font-size: clamp(24px, 7vw, 40px); }
  .re-title__name    { font-size: clamp(38px, 11vw, 64px); }
  .re-hero__inner    { padding: var(--space-5) 0 36px; }

  /* Stats bar — 2×2 grid on mobile */
  .re-stats-bar {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .re-stat {
    padding: 10px 14px;
    border-right: 1px solid rgba(255,255,255,0.08);
    border-bottom: 1px solid rgba(255,255,255,0.08);
    align-items: flex-start;
  }
  .re-stat:first-child { padding-left: 14px; }
  .re-stat__num { font-size: 18px; }

  /* Signals — stack vertically */
  .re-signals-grid { grid-template-columns: 1fr; }
  .re-signal { padding: 24px 20px; }

  /* AI grid — stack */
  .re-ai-grid { grid-template-columns: 1fr; }

  /* Insight bar — stack label above text */
  .re-insight-bar { flex-direction: column; gap: 8px; }

  /* Fox pick — stack */
  .re-fox-pick { flex-direction: column; gap: 8px; }

  /* Hide vote action column on mobile — voting via profile */
  .gc-vote-action { display: none; }

  /* Table horizontal scroll */
  .gn-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 480px) {
  .re-title__name { font-size: clamp(32px, 10vw, 52px); }
  .re-eyebrow { gap: 6px; }
  .re-eyebrow__item { font-size: 10px; }
}

/* ===========================
   RACE ENGINE — DECISION HUB
   =========================== */
.re-decision-section {
  padding: 34px 0 18px;
  background: linear-gradient(to bottom, #0d1524, #0b1220);
  border-top: 1px solid rgba(212,175,55,0.08);
  border-bottom: 1px solid rgba(212,175,55,0.08);
}
.re-decision-head { margin-bottom: 18px; }
.re-decision-kicker {
  display: inline-block;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--c-gold);
  margin-bottom: 12px;
}
.re-decision-title { margin-bottom: 10px; }
.re-decision-sub {
  max-width: 760px;
  color: rgba(255,255,255,0.68);
  line-height: 1.7;
  margin: 0;
}
.re-decision-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.re-decision-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 22px;
  box-shadow: 0 14px 44px rgba(0,0,0,0.22);
}
.re-decision-card--you { border-color: rgba(212,175,55,0.28); }
.re-decision-card--fox { border-color: rgba(224,90,42,0.25); }
.re-decision-card--ai { border-color: rgba(16,163,127,0.25); }
.re-decision-card__label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: rgba(255,255,255,0.54);
  margin-bottom: 12px;
}
.re-decision-card__horse {
  font-family: 'Playfair Display', serif;
  font-size: clamp(26px, 3vw, 34px);
  color: var(--c-gold);
  line-height: 1;
  margin-bottom: 10px;
}
.re-decision-card__meta {
  color: rgba(255,255,255,0.7);
  font-size: 13px;
  margin-bottom: 14px;
}
.re-decision-card__copy {
  color: rgba(255,255,255,0.7);
  line-height: 1.7;
  margin: 0 0 14px;
}
.re-decision-card__link {
  color: var(--c-gold);
  text-decoration: none;
  font-weight: 700;
}
.re-decision-banner {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  padding: 14px 18px;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  color: rgba(255,255,255,0.76);
}
.re-decision-banner__pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(212,175,55,0.12);
  color: var(--c-gold);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* ===========================
   RACE ENGINE — MOBILE FIELD
   =========================== */
.re-mobile-field { display: none; }
.re-runner-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 10px 28px rgba(0,0,0,0.18);
}
.re-runner-card--fav {
  border-color: rgba(212,175,55,0.32);
  background: rgba(212,175,55,0.06);
}
.re-runner-card--picked {
  border-color: rgba(212,175,55,0.42);
  box-shadow: 0 12px 32px rgba(212,175,55,0.08);
}
.re-runner-card--nr { opacity: 0.72; }
.re-runner-card__top {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 12px;
  align-items: start;
}
.re-runner-card__silk {
  width: 44px; height: 44px; border-radius: 12px;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700;
}
.re-runner-card__horse-row {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.re-runner-card__meta {
  margin-top: 4px;
  color: rgba(255,255,255,0.64);
  font-size: 12px;
}
.re-runner-card__signals {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px;
  margin-top: 14px;
}
.re-runner-signal {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 10px;
  padding: 10px 12px;
}
.re-runner-signal--wide { grid-column: 1 / -1; }
.re-runner-signal__label {
  display:block; font-size:10px; letter-spacing:.12em; text-transform:uppercase;
  color: rgba(255,255,255,0.45); margin-bottom:5px;
}
.re-runner-signal__value { color: rgba(255,255,255,0.84); font-size: 13px; }
.re-runner-card__copy {
  margin: 12px 0 0;
  color: rgba(255,255,255,0.74);
  line-height: 1.6;
  font-size: 14px;
}
.re-vote-btn--card {
  width: 100%;
  margin-top: 14px;
  min-height: 44px;
}
.gn-row--hidden, .re-runner-card--hidden { display: none; }

@media (max-width: 980px) {
  .re-decision-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .gn-table-wrap--desktop { display: none; }
  .re-mobile-field { display: block; }
  .re-decision-section { padding: 26px 0 14px; }
  .re-decision-card { padding: 18px; }
  .re-decision-card__horse { font-size: 28px; }
  .re-race-status { line-height: 1.5; }
  .gn-filter-bar {
    overflow-x: auto;
    flex-wrap: nowrap;
    gap: 8px;
    padding-bottom: 4px;
    -webkit-overflow-scrolling: touch;
  }
  .gn-filter-btn { white-space: nowrap; }
  .re-toast {
    left: 16px;
    right: 16px;
    width: auto;
    transform: translateY(20px);
    white-space: normal;
  }
  .re-toast.show { transform: translateY(0); }
}
@media (max-width: 480px) {
  .re-decision-sub { font-size: 14px; }
  .re-runner-card { padding: 14px; }
  .re-runner-card__top { grid-template-columns: 40px 1fr auto; gap: 10px; }
  .re-runner-card__silk { width: 40px; height: 40px; border-radius: 10px; }
  .re-runner-card__signals { gap: 8px; }
}


/* ── Big Race mobile hero compression / verdict polish ───────────────── */
@media (max-width: 640px) {
  .re-hero {
    min-height: 0;
    align-items: flex-start;
  }

  .re-hero__inner {
    padding: var(--space-4) 0 14px;
  }

  .re-eyebrow {
    gap: 8px;
    margin-bottom: 10px;
  }

  .re-eyebrow__kicker {
    padding: 3px 9px;
    font-size: 8px;
    letter-spacing: 0.24em;
  }

  .re-eyebrow__item,
  .re-eyebrow__sep {
    font-size: 11px;
  }

  .re-title {
    margin-bottom: 10px;
  }

  .re-title__eyeline {
    font-size: clamp(22px, 6.8vw, 34px);
    line-height: 0.98;
  }

  .re-title__name {
    font-size: clamp(34px, 11.8vw, 56px);
    line-height: 0.88;
  }

  .re-subtitle {
    font-size: 12px;
    line-height: 1.45;
    margin-bottom: 16px;
  }

  .re-stats-bar {
    margin-bottom: 12px;
  }

  .re-stat {
    min-width: 0;
    padding: 9px 12px;
  }

  .re-stat:first-child {
    padding-left: 12px;
  }

  .re-stat__num {
    font-size: 16px;
  }

  .re-stat__label {
    font-size: 8px;
    margin-top: 3px;
  }

  .re-tagline {
    font-size: 11px;
    letter-spacing: 0.11em;
    margin-bottom: 10px;
  }

  .re-hero__verdict {
    max-width: none;
    margin-top: 0;
  }

  .gn-verdict.re-hero__verdict {
    padding: 16px 16px 18px;
    border-left-width: 3px;
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(255,255,255,0.04) 0%, rgba(212,175,55,0.08) 100%);
    box-shadow: 0 10px 28px rgba(0,0,0,0.24), inset 0 1px 0 rgba(255,255,255,0.03);
  }

  .gn-verdict.re-hero__verdict .gn-verdict-label {
    font-size: 10px;
    letter-spacing: 0.2em;
    margin-bottom: 10px;
  }

  .gn-verdict.re-hero__verdict p {
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    line-height: 1.72;
    font-weight: 500;
    color: rgba(255,255,255,0.92);
    text-wrap: pretty;
  }
}

@media (max-width: 480px) {
  .re-hero__inner {
    padding: var(--space-3) 0 12px;
  }

  .re-eyebrow {
    margin-bottom: 8px;
  }

  .re-title__eyeline {
    font-size: clamp(20px, 6.3vw, 30px);
  }

  .re-title__name {
    font-size: clamp(32px, 10.6vw, 50px);
  }

  .re-subtitle {
    margin-bottom: 14px;
  }

  .re-stats-bar {
    grid-template-columns: 1fr 1fr;
  }

  .gn-verdict.re-hero__verdict {
    padding: 14px 14px 16px;
  }

  .gn-verdict.re-hero__verdict p {
    font-size: 15px;
    line-height: 1.68;
  }
}


/* ═══════════════════════════════════════════════════════
   FOX VERDICT CARD — Hero section, bold Fox-branded
═══════════════════════════════════════════════════════ */

.fox-verdict-card {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  padding: 28px 28px 22px;
  margin-top: 28px;
  max-width: 760px;

  /* Deep dark card with strong gold border */
  background: #07090f;
  border: 1px solid rgba(212,175,55,0.35);
  border-top: 2px solid var(--c-gold);
  box-shadow:
    0 0 0 1px rgba(212,175,55,0.08),
    0 20px 60px rgba(0,0,0,0.6),
    0 4px 20px rgba(212,175,55,0.08),
    inset 0 1px 0 rgba(212,175,55,0.1);

  animation: fadeUp 0.5s 0.35s ease both;
}

/* Verdict + official result — desktop side-by-side when both exist */
.re-hero__feature-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  align-items: stretch;
  margin-top: 28px;
}

.re-hero__feature-row--split {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.re-hero__feature-row .fox-verdict-card {
  margin-top: 0;
  max-width: 760px;
}

.re-hero__feature-row--split .fox-verdict-card {
  max-width: none;
  min-width: 0;
}

.re-hero__feature-row:not(.re-hero__feature-row--split) .re-race-result-card {
  max-width: 420px;
}

/* Official result — mirrors Fox verdict card chrome */
.re-race-result-card {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  padding: 22px 22px 18px;
  min-width: 0;

  background: #07090f;
  border: 1px solid rgba(212,175,55,0.35);
  border-top: 2px solid var(--c-gold);
  box-shadow:
    0 0 0 1px rgba(212,175,55,0.08),
    0 20px 60px rgba(0,0,0,0.6),
    0 4px 20px rgba(212,175,55,0.08),
    inset 0 1px 0 rgba(212,175,55,0.1);

  animation: fadeUp 0.5s 0.38s ease both;
}

.re-race-result-card__bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 65% 55% at 92% 12%, rgba(212,175,55,0.07) 0%, transparent 55%),
    radial-gradient(ellipse 50% 70% at 8% 80%, rgba(26,107,60,0.06) 0%, transparent 50%);
  pointer-events: none;
}

.re-race-result-card__head {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.re-race-result-card__head-left {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.re-race-result-card__kicker {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(212,175,55,0.55);
}

.re-race-result-card__race-name {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.28);
  line-height: 1.35;
}

.re-race-result-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  padding: 5px 12px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(110, 200, 140, 0.95);
  border: 1px solid rgba(110, 200, 140, 0.35);
  background: rgba(40, 90, 55, 0.2);
}

.re-race-result-card__badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(110, 200, 140, 0.95);
  box-shadow: 0 0 8px rgba(110, 200, 140, 0.65);
}

.re-race-result-card__places {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.re-race-result-card__place {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) auto auto;
  gap: 12px 14px;
  align-items: center;
  padding: 14px 0;
  border-top: 1px solid rgba(255,255,255,0.07);
}

.re-race-result-card__place:first-of-type {
  border-top: none;
  padding-top: 0;
}

.re-race-result-card__pos {
  font-family: var(--font-display, 'Playfair Display', serif);
  font-size: 22px;
  font-weight: 900;
  color: var(--c-gold);
  line-height: 1;
  text-align: center;
}

.re-race-result-card__pos-suffix {
  font-size: 11px;
  font-weight: 700;
  vertical-align: super;
  margin-left: 1px;
  opacity: 0.75;
}

.re-race-result-card__place--2 .re-race-result-card__pos,
.re-race-result-card__place--3 .re-race-result-card__pos {
  font-size: 18px;
  color: rgba(212,175,55,0.72);
}

.re-race-result-card__body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.re-race-result-card__label {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.32);
}

.re-race-result-card__horse {
  font-family: var(--font-display, 'Playfair Display', serif);
  font-size: clamp(15px, 1.5vw, 17px);
  font-weight: 800;
  color: rgba(255,255,255,0.96);
  line-height: 1.25;
}

.re-race-result-card__horse a,
a.re-race-result-card__horse {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color 0.15s ease, border-color 0.15s ease;
}

.re-race-result-card__horse a:hover,
a.re-race-result-card__horse:hover {
  color: var(--c-gold);
  border-bottom-color: rgba(212,175,55,0.45);
}

.re-race-result-card__meta {
  font-size: 11px;
  color: rgba(255,255,255,0.38);
  line-height: 1.35;
}

.re-race-result-card__silks {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 1px solid rgba(212,175,55,0.35);
  background: linear-gradient(
    135deg,
    var(--re-silk-a, #1a3a6b) 0%,
    var(--re-silk-a, #1a3a6b) 50%,
    var(--re-silk-b, #ffffff) 50%,
    var(--re-silk-b, #ffffff) 100%
  );
  box-shadow: 0 2px 10px rgba(0,0,0,0.35);
}

.re-race-result-card__sp {
  font-family: var(--font-display, 'Playfair Display', serif);
  font-size: 15px;
  font-weight: 800;
  color: var(--c-gold);
  white-space: nowrap;
  flex-shrink: 0;
  min-width: 3.2em;
  text-align: right;
}

@media (max-width: 900px) {
  .re-hero__feature-row--split {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .re-race-result-card {
    padding: 18px 16px 14px;
  }

  .re-race-result-card__place {
    grid-template-columns: 38px minmax(0, 1fr) 24px auto;
    gap: 8px 10px;
  }

  .re-race-result-card__pos {
    font-size: 18px;
  }

  .re-race-result-card__sp {
    font-size: 13px;
  }
}

/* Atmospheric gold radial glow behind content */
.fox-verdict-card__bg {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 70% 60% at 10% 50%, rgba(212,175,55,0.06) 0%, transparent 60%),
    radial-gradient(ellipse 50% 80% at 95% 20%, rgba(192,57,43,0.04) 0%, transparent 55%);
  pointer-events: none;
}

/* ── Identity row ─────────────────────────────────── */
.fox-verdict-card__identity {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.fox-verdict-card__avatar-wrap {
  position: relative;
  flex-shrink: 0;
}

.fox-verdict-card__avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: block;
  filter: drop-shadow(0 0 12px rgba(200,169,81,0.4));
  animation: foxFloat 5s ease-in-out infinite;
}

@keyframes foxFloat {
  0%, 100% { transform: translateY(0);    filter: drop-shadow(0 0 12px rgba(200,169,81,0.4)); }
  50%       { transform: translateY(-3px); filter: drop-shadow(0 0 20px rgba(200,169,81,0.65)); }
}

.fox-verdict-card__ring {
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 1px solid rgba(200,169,81,0.35);
  animation: foxRing 3s ease-in-out infinite;
}

@keyframes foxRing {
  0%, 100% { opacity: 0.35; transform: scale(1); }
  50%       { opacity: 0.8;  transform: scale(1.07); }
}

.fox-verdict-card__who {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  min-width: 0;
}

.fox-verdict-card__name {
  font-family: var(--font-display, 'Playfair Display', serif);
  font-size: 17px;
  font-weight: 900;
  color: var(--c-gold);
  letter-spacing: 0.01em;
  line-height: 1;
}

.fox-verdict-card__title {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(212,175,55,0.45);
}

.fox-verdict-card__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(212,175,55,0.1);
  border: 1px solid rgba(212,175,55,0.3);
  color: var(--c-gold);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
}

.fox-verdict-card__badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-gold);
  animation: pulseDot 2s ease-in-out infinite;
}

/* ── The verdict quote ────────────────────────────── */
.fox-verdict-card__quote {
  position: relative;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(17px, 2vw, 22px);
  font-weight: 700;
  font-style: italic;
  line-height: 1.65;
  color: rgba(255,255,255,0.96);
  margin: 0 0 20px;
  padding: 0 0 0 20px;
  border: none;
  border-left: 3px solid var(--c-gold);
  text-shadow: 0 0 30px rgba(200,169,81,0.12);
  letter-spacing: 0.01em;
}

/* Subtle opening quote mark */
.fox-verdict-card__quote::before {
  content: '\201C';
  position: absolute;
  left: -8px;
  top: -8px;
  font-size: 60px;
  line-height: 1;
  color: rgba(212,175,55,0.12);
  font-family: Georgia, serif;
  pointer-events: none;
}

/* ── Footer ───────────────────────────────────────── */
.fox-verdict-card__footer {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.07);
}

.fox-verdict-card__race {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.25);
}

.fox-verdict-card__pick-label {
  font-size: 12px;
  color: rgba(255,255,255,0.45);
  font-weight: 500;
}

.fox-verdict-card__pick-horse {
  color: var(--c-gold);
  font-weight: 800;
  font-family: 'Playfair Display', Georgia, serif;
  font-size: 14px;
  margin-left: 4px;
}

/* ── Mobile ───────────────────────────────────────── */
@media (max-width: 640px) {
  .fox-verdict-card {
    padding: 20px 18px 18px;
    margin-top: 20px;
    border-radius: 12px;
  }
  .fox-verdict-card__identity { gap: 10px; margin-bottom: 16px; }
  .fox-verdict-card__avatar { width: 42px; height: 42px; }
  .fox-verdict-card__name { font-size: 15px; }
  .fox-verdict-card__badge { font-size: 9px; padding: 4px 10px; }
  .fox-verdict-card__quote {
    font-size: clamp(15px, 4.5vw, 19px);
    padding-left: 16px;
    border-left-width: 2px;
  }
  .fox-verdict-card__quote::before { font-size: 44px; }
  .fox-verdict-card__footer { flex-direction: column; align-items: flex-start; gap: 4px; }
}

@media (max-width: 400px) {
  .fox-verdict-card__badge { display: none; }
  .fox-verdict-card__quote { font-size: clamp(14px, 4.2vw, 17px); }
}

/* ═══════════════════════════════════════════════════════════════
   GUEST PICK SYSTEM
   - re-vote-btn--guest   : pick button for logged-out users
   - gn-row--guest-pick   : selected row highlight (desktop)
   - re-runner-card--guest-pick : selected card highlight (mobile)
   - guest-pick-bar       : sticky bottom confirmation bar
═══════════════════════════════════════════════════════════════ */

/* Guest pick button — visually matches the logged-in pick btn
   but with a dashed border to signal "provisional" state       */
.re-vote-btn--guest {
  background: rgba(212,175,55,0.06);
  border: 1px dashed rgba(212,175,55,0.35);
  color: var(--c-gold, #d4af37);
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
.re-vote-btn--guest:hover,
.re-vote-btn--guest:focus-visible {
  background: rgba(212,175,55,0.14);
  border-color: var(--c-gold, #d4af37);
  border-style: solid;
  outline: none;
}
.re-vote-btn--guest.is-selected {
  background: rgba(212,175,55,0.18);
  border-style: solid;
  border-color: var(--c-gold, #d4af37);
  color: var(--c-gold, #d4af37);
}
/* "Picked" label when selected */
.re-vote-btn--guest.is-selected::before {
  content: "✓ ";
}

/* Selected row — desktop table */
.gn-row--guest-pick td:first-child {
  border-left: 2px solid rgba(212,175,55,0.55);
}
.gn-row--guest-pick {
  background: rgba(212,175,55,0.04) !important;
}

/* Selected card — mobile */
.re-runner-card--guest-pick {
  border-color: rgba(212,175,55,0.55) !important;
  background: rgba(212,175,55,0.05) !important;
}

/* ── Sticky guest pick confirmation bar ──────────────────────── */
.guest-pick-bar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: #0f1520;
  border-top: 1px solid rgba(212,175,55,0.35);
  box-shadow: 0 -8px 32px rgba(0,0,0,0.5);
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.16,1,0.3,1);
  /* Respect safe area inset (iOS notch / home bar) */
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.guest-pick-bar.is-visible {
  transform: translateY(0);
}

.guest-pick-bar__inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  max-width: 1200px;
  margin: 0 auto;
}

.guest-pick-bar__left {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
}

.guest-pick-bar__silk {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid rgba(212,175,55,0.4);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
}

.guest-pick-bar__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.guest-pick-bar__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--c-gold, #d4af37);
  text-transform: uppercase;
  line-height: 1;
  margin-bottom: 2px;
}
.guest-pick-bar__horse {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.guest-pick-bar__odds {
  font-size: 14px;
  font-weight: 700;
  color: var(--c-gold, #d4af37);
  flex-shrink: 0;
}

.guest-pick-bar__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--c-gold, #d4af37);
  color: #0a0e1a;
  font-size: 13px;
  font-weight: 700;
  padding: 10px 18px;
  border-radius: 6px;
  text-decoration: none;
  white-space: nowrap;
  flex-shrink: 0;
  transition: background 0.15s, transform 0.12s;
  -webkit-tap-highlight-color: transparent;
  min-height: 44px;
}
.guest-pick-bar__cta:hover,
.guest-pick-bar__cta:focus-visible {
  background: #f5e49a;
  outline: none;
  transform: translateY(-1px);
}

.guest-pick-bar__clear {
  background: none;
  border: none;
  color: rgba(255,255,255,0.35);
  font-size: 14px;
  cursor: pointer;
  padding: 8px;
  flex-shrink: 0;
  border-radius: 4px;
  transition: color 0.15s;
  min-width: 36px;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-tap-highlight-color: transparent;
}
.guest-pick-bar__clear:hover { color: rgba(255,255,255,0.7); }

/* ── Mobile adjustments ──────────────────────────────────────── */
@media (max-width: 600px) {
  .guest-pick-bar__inner {
    padding: 10px 14px;
    gap: 8px;
  }
  .guest-pick-bar__cta {
    font-size: 12px;
    padding: 10px 14px;
  }
  .guest-pick-bar__horse {
    font-size: 14px;
  }
  /* On very small screens collapse the odds to save space */
  .guest-pick-bar__odds {
    display: none;
  }
}

/* Push page content up when bar is visible so it doesn't hide under it */
body.guest-pick-bar-open {
  padding-bottom: 72px;
}


/* ── Fox verdict card — Full Verdict >> link ──────────────── */
.fox-verdict-card__footer-right {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.fox-verdict-card__more-link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--c-gold);
  background: var(--c-gold-subtle);
  border: 1px solid var(--c-border-gold);
  padding: 5px 14px;
  border-radius: var(--r-pill);
  text-decoration: none;
  transition: background 0.2s, box-shadow 0.2s, transform 0.15s;
  white-space: nowrap;
}
.fox-verdict-card__more-link:hover {
  background: rgba(212,175,55,0.18);
  box-shadow: 0 4px 16px rgba(212,175,55,0.22);
  transform: translateY(-1px);
}

@media (max-width: 640px) {
  .fox-verdict-card__footer-right { flex-direction: column; align-items: flex-start; gap: 8px; }
  .fox-verdict-card__more-link    { font-size: 12px; }
}
