/* Fight schedule grid — James 2026-10-06 (fight schedule redesign).
   List/accordion on mobile (existing .fhtv-cal rows, untouched), rich photo
   grid on desktop. Scoped to body.fight-night. Loaded only by /sports/fight/. */
.fight-night .fhtv-sgrid{
  display:none;
}.fight-night .fhtv-sgrid-credit{
  display:none;
  margin:10px 2px 0; font-size:11px; letter-spacing:.06em;
  color:rgba(var(--desert-ink-rgb), .38);
}@media (min-width:900px){/* Desktop: the upcoming accordion list steps aside for the photo grid. */
  .fight-night .fhtv-cal--upcoming{ display:none; }.fight-night .fhtv-sgrid{
    display:grid; gap:18px;
    grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
    align-items:stretch;
  }.fight-night .fhtv-sgrid-credit{ display:block; }.fight-night .fhtv-scard{
    display:flex; flex-direction:column;
    background:linear-gradient(180deg, rgba(var(--desert-card-rgb), .96), rgba(var(--desert-card-rgb), .96));
    border:1px solid rgba(var(--desert-ink-rgb), .13); border-radius:16px;
    overflow:hidden; position:relative;
    transition:transform .22s ease, border-color .22s ease, box-shadow .22s ease;
  }.fight-night .fhtv-scard:hover{
    transform:translateY(-4px);
    border-color:rgba(var(--desert-accent-rgb), .55);
    box-shadow:0 18px 44px rgba(var(--desert-shadow-rgb), .55), 0 0 26px rgba(var(--desert-accent-rgb), .14);
  }.fight-night .fhtv-scard--boxing:hover{ border-color:rgba(var(--color-warn-rgb), .55); box-shadow:0 18px 44px rgba(var(--desert-shadow-rgb), .55), 0 0 26px rgba(var(--color-warn-rgb), .12); }.fight-night .fhtv-scard-media{
    position:relative; display:block; aspect-ratio:16/9; overflow:hidden;
    background:linear-gradient(135deg, var(--desert-ink) 0%, var(--desert-ink) 55%, var(--desert-card) 100%);
  }.fight-night .fhtv-scard-media img{
    width:100%; height:100%; object-fit:cover; display:block;
    transition:transform .5s ease;
  }.fight-night .fhtv-scard:hover .fhtv-scard-media img{ transform:scale(1.045); }.fight-night .fhtv-scard-media::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(var(--desert-card-rgb), .05) 40%, rgba(var(--desert-card-rgb), .72) 100%);
    pointer-events:none;
  }.fight-night .fhtv-scard-badges{
    position:absolute; z-index:2; top:12px; left:12px; right:12px;
    display:flex; align-items:center; gap:8px; flex-wrap:wrap;
  }.fight-night .fhtv-scard-when-chip{
    margin-left:auto;
    font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
    color:var(--desert-card); background:rgba(var(--desert-card-rgb), .62); border:1px solid rgba(var(--desert-ink-rgb), .25);
    -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
    padding:4px 11px; border-radius:999px;
  }.fight-night .fhtv-scard-when-chip.is-soon{
    background:rgba(var(--desert-accent-rgb), .78); border-color:rgba(var(--desert-accent-rgb), .9);
  }.fight-night .fhtv-scard-body{
    display:flex; flex-direction:column; gap:6px; flex:1;
    padding:16px 18px 18px;
  }.fight-night .fhtv-scard-when{
    margin:0; font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
    color:rgba(var(--desert-ink-rgb), .62);
  }.fight-night .fhtv-scard-name{
    margin:2px 0 0; font-size:20px; line-height:1.2; letter-spacing:-.01em; color:var(--desert-card);
  }.fight-night .fhtv-scard-name a{ color:inherit; text-decoration:none; }.fight-night .fhtv-scard-name a:hover{ color:var(--desert-accent-soft); text-decoration:underline; text-underline-offset:3px; }.fight-night .fhtv-scard-main{
    margin:0; font-size:14px; font-weight:600; color:rgba(var(--desert-ink-rgb), .9);
  }.fight-night .fhtv-scard .fhtv-titlebelt{ align-self:flex-start; margin:2px 0; }.fight-night .fhtv-scard-venue{
    margin:0; font-size:13px; color:rgba(var(--desert-ink-rgb), .55);
  }.fight-night .fhtv-scard-watch{
    margin:10px 0 0; padding-top:12px; border-top:1px solid rgba(var(--desert-ink-rgb), .1);
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  }.fight-night .fhtv-scard-watch .fhtv-broadcast-label{
    font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
    color:rgba(var(--desert-ink-rgb), .5);
  }.fight-night .fhtv-scard-detail{
    margin:2px 0 0; font-size:12px; color:rgba(var(--desert-ink-rgb), .5);
  }.fight-night .fhtv-scard-link{
    margin-top:auto; padding-top:10px;
    font-size:13px; font-weight:800; color:var(--desert-accent-soft); text-decoration:none;
    display:inline-flex; align-items:center; gap:6px;
  }.fight-night .fhtv-scard-link:hover{ color:var(--desert-accent-soft); }.fight-night .fhtv-scard-link .arr{ transition:transform .18s ease; }.fight-night .fhtv-scard-link:hover .arr{ transform:translateX(3px); }
}@media (prefers-reduced-motion: reduce){.fight-night .fhtv-scard,
  .fight-night .fhtv-scard-media img,
  .fight-night .fhtv-scard-link .arr{ transition:none; }.fight-night .fhtv-scard:hover{ transform:none; }.fight-night .fhtv-scard:hover .fhtv-scard-media img{ transform:none; }
}

/* ---- Upcoming Fights board (James, 2026-10-12): UFC/Boxing underline
   tabs + confirmed fight cards. Tabs are UNDERLINES, never pills. ---- */
.fight-night .fhtv-tabs{
  display:flex; gap:28px; flex-wrap:wrap;
  margin:14px 0 20px; border-bottom:1px solid rgba(var(--desert-ink-rgb), .16);
}
.fight-night .fhtv-tab{
  appearance:none; background:none; border:0; border-bottom:3px solid transparent;
  cursor:pointer; padding:0 1px 10px; margin:0 0 -1px; font:inherit;
  font-size:13px; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:var(--desert-ink-faint);
}
.fight-night .fhtv-tab:hover{ color:var(--desert-ink); }
.fight-night .fhtv-tab.is-active{ color:var(--desert-ink); border-bottom-color:var(--desert-accent); }
.fight-night .fhtv-tab-n{ font-weight:700; color:var(--desert-ink-faint); margin-left:3px; }
.fight-night .fhtv-tab.is-active .fhtv-tab-n{ color:var(--desert-accent); }
.fight-night .fhtv-empty{
  margin:6px 0 18px; font-size:14px; color:var(--desert-ink-dim);
}
/* Full card inside the accordion detail panel */
.fight-night .fhtv-bouts{ margin:14px 0 4px; border-top:1px solid rgba(var(--desert-ink-rgb), .12); padding-top:10px; }
.fight-night .fhtv-bouts-head{
  margin:10px 0 6px; font-size:11px; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--desert-accent-deep);
}
.fight-night .fhtv-bouts-head:first-child{ margin-top:0; }
.fight-night .fhtv-bout{
  display:flex; align-items:center; gap:9px;
  padding:7px 0; border-bottom:1px solid rgba(var(--desert-ink-rgb), .07);
}
.fight-night .fhtv-bout:last-child{ border-bottom:0; }
.fight-night .fhtv-bout-img{
  width:30px; height:30px; border-radius:50%; object-fit:cover; flex:none;
  background:rgba(var(--desert-ink-rgb), .08);
}
.fight-night .fhtv-bout-img--none{ display:inline-block; }
.fight-night .fhtv-bout-names{ flex:1; min-width:0; font-size:14px; line-height:1.35; color:var(--desert-ink); }
.fight-night .fhtv-bout-name{ color:inherit; text-decoration:none; font-weight:600; }
a.fhtv-bout-name:hover{ color:var(--desert-accent-deep); text-decoration:underline; text-underline-offset:2px; }
.fight-night .fhtv-bout-rec{ font-size:12px; font-weight:600; color:var(--desert-ink-faint); }
.fight-night .fhtv-bout-vs{ margin:0 5px; font-size:11px; font-weight:800; letter-spacing:.08em; color:var(--desert-ink-faint); text-transform:uppercase; }
.fight-night .fhtv-bout-tag{
  font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:var(--desert-accent); margin-left:6px; white-space:nowrap;
}
.fight-night .fhtv-bout-title{ display:block; font-size:12px; font-weight:700; color:var(--desert-accent-deep); }
.fight-night .fhtv-bout-meta{ flex:none; font-size:12px; font-weight:600; color:var(--desert-ink-faint); text-align:right; }
@media (max-width:560px){
  .fight-night .fhtv-bout-meta{ display:none; }
  .fight-night .fhtv-bout-img{ width:26px; height:26px; }
}
/* Compact main-card list inside the desktop grid card */
.fight-night .fhtv-scard-bouts-head{
  margin:8px 0 4px; font-size:11px; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--desert-accent-deep);
}
.fight-night .fhtv-scard-bouts{ list-style:none; margin:0; padding:0; }
.fight-night .fhtv-scard-bout{
  display:flex; justify-content:space-between; gap:10px;
  padding:5px 0; border-bottom:1px solid rgba(var(--desert-ink-rgb), .07);
  font-size:13px; line-height:1.35; color:var(--desert-ink);
}
.fight-night .fhtv-scard-bout:last-child{ border-bottom:0; }
.fight-night .fhtv-scard-bout-names i{ font-style:normal; font-size:11px; font-weight:600; color:var(--desert-ink-faint); }
.fight-night .fhtv-scard-bout-names em{ font-style:normal; font-size:10px; font-weight:800; letter-spacing:.08em; color:var(--desert-ink-faint); text-transform:uppercase; }
.fight-night .fhtv-scard-bout-wt{ flex:none; font-size:11px; font-weight:600; color:var(--desert-ink-faint); }
.fight-night .fhtv-scard-bouts-more{ margin:6px 0 0; font-size:12px; font-weight:600; color:var(--desert-ink-faint); }
/* Badge legibility over card photos (2026-10-12): the UFC tag + division
   label washed out on bright photography — give them the same readable
   light chip the "IN X DAYS" badge already uses. */
.fight-night .fhtv-scard-badges .fhtv-tag,
.fight-night .fhtv-scard-badges .fhtv-division{
  background:rgba(250,246,238, .88); border:1px solid rgba(var(--desert-ink-rgb), .25);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  padding:4px 10px; border-radius:4px;
  color:var(--desert-ink); font-weight:800;
}

/* Discipline micro-labels on the scoreboard strip + Upcoming sidebar
   (James 2026-10-12: every fight card must say BOXING or UFC). Small
   rectangular labels — no pills. */
.hv2-disc{
  display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.12em;
  text-transform:uppercase;padding:1px 6px;border-radius:4px;vertical-align:1px;
}
.hv2-disc--ufc{
  background:rgba(var(--desert-accent-rgb),.16);color:var(--desert-accent-deep);
  border:1px solid rgba(var(--desert-accent-rgb),.35);
}
.hv2-disc--boxing{
  background:rgba(var(--color-warn-rgb),.13);color:var(--color-warn);
  border:1px solid rgba(var(--color-warn-rgb),.35);
}
.hv2-upcoming .hv2-disc{margin-right:2px}

/* In-negotiation badge over card photos (2026-10-13) */
.fight-night .fhtv-scard-badges .fhtv-tag--neg{ background:rgba(var(--desert-accent-rgb), .95); color:#fff; border:1px solid rgba(var(--desert-accent-rgb), .9); padding:4px 10px; border-radius:4px; font-weight:800; }

/* ============ DIRECTION A SKIN — WAVE 2 (2026-10-14) ============
   Calendar spine refinement inside Package A, The Editorial Standard.
   Presentation only: the desktop photo grid cards square off to the
   editorial furniture, names take the serif display, rules go hairline
   #2C2C2C. No structure/behavior changes. */
.fight-night .fhtv-scard{ border-radius:0; border-color:#2C2C2C; }
.fight-night .fhtv-scard-name{ font-family:'Previously Display',sans-serif; }
.fight-night .fhtv-scard-watch{ border-top-color:#2C2C2C; }
.fight-night .fhtv-scard-badges .fhtv-tag,
.fight-night .fhtv-scard-badges .fhtv-division{ border-radius:0; }
.fight-night .fhtv-scard-when-chip{ border-radius:0; }
.fight-night .fhtv-bout{ border-bottom-color:#2C2C2C; }
.fight-night .fhtv-bouts{ border-top-color:#2C2C2C; }
.fight-night .fhtv-tabs{ border-bottom-color:#2C2C2C; }
.hv2-disc{ border-radius:0; }

/* ============ PERSONALITY SKIN — THE ARENA / POSTER WALL (2026-10-14) ====
   The Upcoming board becomes a poster wall: dark coal cards, event art
   graded warm, surnames at poster scale in Fraunces 900, promotion
   chips with the systematic -8deg skew, and a gold edge ONLY on cards
   whose data carries a title on the line (.fhtv-titlebelt present —
   the same field fight-tv.js renders as the belt line). Append-only;
   the accordion list + grid behavior are untouched. */
.fight-night .fhtv-scard{
  --fh-void:#000000; --fh-coal:#101010; --fh-bone:#A5ACAF;
  --fh-gold:#D7DBDD; --fh-smoke:#8C9399; --fh-ember:#FFFFFF;
  --fh-darkline:rgba(245,239,227,.16);
}
@media (min-width:900px){
  .fight-night .fhtv-scard{
    background:linear-gradient(180deg, #101010 0%, #000000 100%);
    border-color:rgba(245,239,227,.16);
  }
  .fight-night .fhtv-scard:hover{
    border-color:rgba(192,57,27,.75);
    box-shadow:0 18px 44px rgba(16,13,10,.6), 0 0 26px rgba(192,57,27,.16);
  }
  .fight-night .fhtv-scard--boxing:hover{ border-color:rgba(201,162,39,.7); }
  .fight-night .fhtv-scard-media{
    aspect-ratio:16/10;
    background:linear-gradient(135deg, #101010 0%, #000000 100%);
  }
  .fight-night .fhtv-scard-media img{
    filter:sepia(.22) contrast(1.06) saturate(.95);
  }
  .fight-night .fhtv-scard-media::after{
    background:linear-gradient(180deg, rgba(16,13,10,.04) 42%, rgba(16,13,10,.78) 100%);
  }
  .fight-night .fhtv-scard-name{
    font-family:'Previously Display',sans-serif;
    font-weight:400; text-transform:uppercase; line-height:1.04;
    font-size:22px; color:#A5ACAF; letter-spacing:0;
  }
  .fight-night .fhtv-scard-name a:hover{ color:#FFFFFF; }
  .fight-night .fhtv-scard-when{ color:#FFFFFF; }
  .fight-night .fhtv-scard-main{ color:rgba(245,239,227,.92); }
  .fight-night .fhtv-scard-venue{ color:#8C9399; }
  .fight-night .fhtv-scard-detail{ color:#8C9399; }
  .fight-night .fhtv-scard-bouts-head{ color:#FFFFFF; }
  .fight-night .fhtv-scard-bout{
    border-bottom-color:rgba(245,239,227,.12); color:rgba(245,239,227,.88);
  }
  .fight-night .fhtv-scard-bout-names i{ color:#8C9399; }
  .fight-night .fhtv-scard-bout-names em{ color:#8C9399; }
  .fight-night .fhtv-scard-bout-wt{ color:#8C9399; }
  .fight-night .fhtv-scard-bouts-more{ color:#8C9399; }
  .fight-night .fhtv-scard-watch{ border-top-color:rgba(245,239,227,.14); }
  .fight-night .fhtv-scard-watch .fhtv-broadcast-label{ color:#8C9399; }
  .fight-night .fhtv-scard-link{ color:#FFFFFF; }
  .fight-night .fhtv-scard-link:hover{ color:#FFFFFF; }
  /* gold edge — earned only: the card's data carries a title line */
  .fight-night .fhtv-scard:has(.fhtv-titlebelt){
    border-color:rgba(201,162,39,.65);
    box-shadow:inset 0 3px 0 #D7DBDD;
  }
  .fight-night .fhtv-scard .fhtv-titlebelt{
    background:rgba(201,162,39,.14); border:1px solid rgba(201,162,39,.55);
    color:#D7DBDD; transform:skewX(-8deg);
  }
  .fight-night .fhtv-scard-when-chip{
    background:rgba(16,13,10,.78); border-color:rgba(245,239,227,.3);
    color:#A5ACAF; transform:skewX(-8deg);
  }
  .fight-night .fhtv-scard-when-chip.is-soon{
    background:rgba(192,57,27,.88); border-color:rgba(192,57,27,.95);
  }
}
.fight-night .fhtv-scard-badges .fhtv-tag,
.fight-night .fhtv-scard-badges .fhtv-division{ transform:skewX(-8deg); }
.fight-night .fhtv-bouts{ border-top-color:rgba(127,110,84,.4); }
.fight-night .fhtv-bout{ border-bottom-color:rgba(127,110,84,.28); }
.fight-night .fhtv-bout-title{ color:#D7DBDD; }
.fight-night .fhtv-tabs{ border-bottom-color:rgba(127,110,84,.4); }
.fight-night .fhtv-tab.is-active{ border-bottom-color:#FFFFFF; }
.hv2-disc{ transform:skewX(-8deg); }

/* ============ SEAMLESS REFINEMENT — ARENA2 (2026-10-14, James) ============
   Poster wall goes borderless: card outlines and hover lift-shadows come
   off and the grid tightens onto the watch board's shared dark field
   (fight-hub.css #secWatch), so the wall reads as one continuous surface.
   The earned gold top edge on title cards stays — it is a data accent,
   not a box border. Presentation only. */
@media (min-width:900px){
  .fight-night .fhtv-sgrid{ gap:10px; }
  .fight-night .fhtv-scard{
    border:0; box-shadow:none;
  }
  .fight-night .fhtv-scard:hover{
    border:0; box-shadow:none; transform:none;
  }
  .fight-night .fhtv-scard--boxing:hover{ border:0; box-shadow:none; }
  .fight-night .fhtv-scard:has(.fhtv-titlebelt){
    box-shadow:inset 0 3px 0 #D7DBDD;
  }
}
/* tabs + rows on the dark watch field */
.fight-night #secWatch .fhtv-tabs{ border-bottom-color:rgba(245,239,227,.14); }
.fight-night #secWatch .fhtv-tab{ color:rgba(245,239,227,.62); }
.fight-night #secWatch .fhtv-tab:hover{ color:#A5ACAF; }
.fight-night #secWatch .fhtv-tab.is-active{ color:#FFFFFF; border-bottom-color:#FFFFFF; }
.fight-night #secWatch .fhtv-tab-n{ color:rgba(245,239,227,.45); }
.fight-night #secWatch .fhtv-tab.is-active .fhtv-tab-n{ color:#FFFFFF; }
.fight-night #secWatch .fhtv-bouts{ border-top-color:rgba(245,239,227,.10); }
.fight-night #secWatch .fhtv-bout{ border-bottom-color:rgba(245,239,227,.08); }
