/* =========================================================
   /oscars/forecasts/ page styles. Moved verbatim out of the page's inline
   <style> block on 2026-09-15 (Round 3 of the forecast sources overhaul).
   The Round's own styles live in forecast-round.css.
   ========================================================= */
.osc-fc-page { max-width: var(--max); margin: 0 auto; padding: 44px var(--pad) 76px; }

/* ---- Header: name + minimal lede only. Stage/scope and record moved out,
   see below, so a visitor reaches the actual contenders sooner. ---- */
.osc-fc-header { margin-bottom: 18px; }
.osc-fc-sub { font-family: var(--fb); font-size: 15px; line-height: 1.6; color: var(--sub); margin: 0; max-width: 620px; }

/* ---- Stage / scope: kept high on purpose. This is the caveat a visitor
   needs before trusting any number below, so it stays right after the
   header rather than moving down with the rest of the record. ---- */
.osc-fc-scope { display: flex; flex-direction: column; gap: 10px; margin-bottom: 22px; }

/* Stage pill + muted update stamp on one row; the "what's next" line hides
   behind the pill's (i). Moved here from oscars-shared.js's injected styles
   2026-09-22 -- only this page renders the banner. */
.osc-stage-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.osc-stage-banner {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--fb); font-size: var(--t-meta); font-weight: 600; letter-spacing: 0.03em;
  padding: 6px 12px; border-radius: var(--r-md);
}
.osc-stage-preseason  { background: rgba(251,191,36,0.12); color: #FBBF24; border: 1px solid rgba(251,191,36,0.25); }
.osc-stage-nomination { background: rgba(251,191,36,0.15); color: #FBBF24; }
.osc-stage-winner     { background: rgba(255,119,4,0.18);  color: var(--orange); }
.osc-stage-info {
  display: inline-flex; align-items: center; justify-content: center;
  margin: -4px -6px -4px 0; padding: 4px; border: 0; border-radius: var(--r-sm);
  background: none; color: inherit; opacity: 0.75; cursor: pointer;
}
.osc-stage-info:hover, .osc-stage-info[aria-expanded="true"] { opacity: 1; }
.osc-stage-info:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; }
.osc-stage-next { font-family: var(--fb); font-size: var(--t-meta); line-height: 1.5; color: var(--sub); margin: 0; }

/* ---- The record: methodology and season-record stats, in support of the
   forecast above rather than ahead of it. ---- */
.osc-fc-record { margin-top: 34px; padding-top: 26px; border-top: 1px solid var(--border); }
.osc-fc-record-title { font-family: var(--fd); font-weight: 600; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text); margin-bottom: 14px; }

.osc-fc-caveat { font-family: var(--fb); font-size: 12px; color: var(--sub); margin-top: 16px; }
.osc-fc-caveat summary { cursor: pointer; color: var(--muted); font-family: var(--fd); font-weight: 500; font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; list-style: none; }
.osc-fc-caveat summary::-webkit-details-marker { display: none; }
.osc-fc-caveat summary::before { content: "+ "; color: var(--orange); }
.osc-fc-caveat[open] summary::before { content: "\2212 "; }
.osc-fc-caveat-body { padding-top: 8px; line-height: 1.6; max-width: 620px; }
.osc-fc-caveat-body strong { color: var(--text); }

.osc-fc-navcol { display: flex; flex-direction: column; gap: 12px; margin-top: 14px; }
.osc-fc-cards { display: flex; gap: 12px; }
.osc-fc-card{ flex: 1; background: var(--card); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-3) var(--s-4); }
.osc-fc-card-label { font-family: var(--fb); font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
.osc-fc-card-value { font-family: var(--fd); font-weight: 700; font-size: 26px; color: var(--orange); line-height: 1; }
.osc-fc-card-sub { font-family: var(--fm); font-size: 10.5px; color: var(--muted); margin-top: 3px; }

/* ---- Metrics strip ---- */
.osc-fc-metrics { display: flex; gap: 14px; margin-bottom: 0; }
.osc-fc-metric{ flex: 1; background: var(--card); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--s-4); text-decoration: none; color: inherit; transition: border-color 0.12s, background 0.12s; }
a.osc-fc-metric:hover { border-color: var(--orange); background: var(--surface); }
.osc-fc-metric-label { font-family: var(--fb); font-size: 10.5px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 4px; }
.osc-fc-metric-value { font-family: var(--fd); font-weight: 700; font-size: 30px; line-height: 1; color: var(--text); }
.osc-fc-metric-value.accent { color: var(--orange); }
.osc-fc-metric-sub { font-family: var(--fm); font-size: 11px; color: var(--muted); margin-top: 4px; }

/* ---- Chart-led hero: the claim-led ranked-bars chart replaces the old
   four-tile race-snapshot summary above the fold. TRRChart.rankedBars
   (assets/js/chart-types.js), framed per CHART_STYLE.md. ---- */
.osc-fc-chart-wrap { margin-bottom: 26px; }

/* ---- Top-10 ranked list ---- */
.osc-rank-list { display: flex; flex-direction: column; gap: 9px; margin-bottom: 30px; }
.osc-rank-row{
  display: grid;
  grid-template-columns: 28px 52px minmax(0,1fr) 110px;
  gap: 14px; align-items: center;
  background: var(--card); border: 1px solid var(--border); border-radius: var(--r-md);
  padding: var(--s-3) var(--s-4); cursor: pointer;
  transition: border-color 0.12s, background 0.12s;
}
.osc-rank-row:hover { border-color: var(--orange); background: var(--surface); }
.osc-rank-row.osc-rank-leader { border-left: 3px solid var(--orange); padding-left: 14px; }
.osc-rank-num { font-family: var(--fm); font-weight: 700; font-size: 14px; color: var(--muted); text-align: center; white-space: nowrap; }
.osc-rank-num-tied { font-size: 10.5px; }
.osc-rank-leader .osc-rank-num { color: var(--orange); }
.osc-rank-thumb { aspect-ratio: 2/3; border-radius: var(--r-sm); overflow: hidden; background: var(--surface); box-shadow: var(--shadow-1); }
.osc-rank-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.osc-rank-info { min-width: 0; }
.osc-rank-name { font-family: var(--fd); font-weight: 600; font-size: 14.5px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 2px; }
.osc-rank-film { font-family: var(--fm); font-size: 11px; color: var(--muted); margin-bottom: 7px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.osc-rank-sigs { display: flex; gap: 5px; flex-wrap: wrap; }
.osc-rank-sig-pill {
  font-family: var(--fm); font-size: 10px; padding: 2px 7px; border-radius: var(--r-sm);
  display: inline-flex; align-items: center; gap: 3px;
}
.osc-rank-sig-up { background: rgba(34,197,94,0.12); color: var(--live); }
.osc-rank-sig-down { background: rgba(239,68,68,0.12); color: var(--danger); }
.osc-rank-right { text-align: right; }
.osc-rank-prob-label { font-family: var(--fb); font-size: 9px; text-transform: uppercase; letter-spacing: 0.09em; color: var(--muted); margin-bottom: 3px; }
.osc-rank-prob { font-family: var(--fd); font-weight: 700; font-size: 22px; line-height: 1; color: var(--orange); white-space: nowrap; }
.osc-rank-bar-track { height: 4px; background: var(--border); border-radius: var(--r-sm); overflow: hidden; margin: 5px 0 4px; }
.osc-rank-bar { height: 100%; background: var(--orange); border-radius: var(--r-sm); }
.osc-rank-tier { font-family: var(--fb); font-size: 9.5px; color: var(--muted); }

/* ---- Untracked field row: reads as "not a name", not an anonymous nominee ---- */
.osc-untracked-row {
  display: grid; grid-template-columns: 28px 52px minmax(0,1fr) 110px;
  gap: 14px; align-items: center;
  background: transparent; border: 1px dashed var(--border); border-radius: var(--r-md);
  padding: var(--s-3) var(--s-4); margin-top: 9px; cursor: default; opacity: 0.8;
}
.osc-untracked-thumb {
  aspect-ratio: 2/3; border-radius: var(--r-sm); border: 1px dashed var(--border);
}
.osc-untracked-name { font-family: var(--fd); font-weight: 600; font-size: 14.5px; color: var(--muted); font-style: italic; }
.osc-untracked-note { font-family: var(--fm); font-size: 11px; color: var(--muted); line-height: 1.4; }
.osc-untracked-bar { height: 100%; background: var(--muted); border-radius: var(--r-sm); opacity: 0.5; }
@media (max-width: 980px) {
  .osc-untracked-row { grid-template-columns: 24px 44px minmax(0,1fr) 90px; gap: 10px; }
}

/* ---- The Rest (grid for #11+) ---- */
.osc-rest-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.osc-gate-wrap { margin-top: 20px; }
.osc-rest-title { font-family: var(--fd); font-weight: 600; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text); }
.osc-rest-note { font-family: var(--fb); font-size: 12px; color: var(--muted); }

/* ---- Lower sections: timeline + signals ---- */
.osc-fc-lower { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(0,1fr); gap: 22px; margin-top: 34px; }
.osc-fc-section{ background: var(--card); border: 1px solid var(--border); border-radius: var(--r-lg); padding: var(--s-5); }
.osc-fc-section-title { font-family: var(--fd); font-weight: 600; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text); margin-bottom: 4px; }
.osc-fc-section-note { font-family: var(--fb); font-size: 12px; color: var(--muted); line-height: 1.5; margin-bottom: 16px; }

@media (max-width: 980px) {
  .osc-fc-lower { grid-template-columns: 1fr; }
  .osc-fc-metrics { flex-wrap: wrap; }
.osc-fc-metric{ min-width: 140px; }
.osc-rank-row{ grid-template-columns: 24px 44px minmax(0,1fr) 90px; gap: 10px; }
}
@media (max-width: 680px) {
  .osc-fc-page { padding: 28px 20px 60px; }
.osc-rank-row{ grid-template-columns: 20px 40px minmax(0,1fr) 76px; gap: 8px; padding: var(--s-2) var(--s-3); }
  .osc-rank-name { font-size: 13px; }
  .osc-rank-prob { font-size: 18px; }
  .osc-rank-sigs { display: none; }
}

/* Forecast cards are clickable; history cards are not. The rest of
   .osc-field-* lives in assets/css/oscars.css. */
.osc-field-card { cursor: pointer; }
.osc-field-poster { transition: transform 0.15s ease; }
.osc-field-card:hover .osc-field-poster { transform: translateY(-3px); }
