:root {
  --cfb-navy: #112740;
  --cfb-navy-deep: #0a192b;
  --cfb-gold: #d6a431;
  --cfb-gold-soft: #fff5dc;
  --cfb-paper: #fbfaf6;
  --cfb-rule: #e3ddd1;
  --cfb-focus: #1261a0;
}

html, body { overflow-x: clip; }
.cfb-board-page { background: #eceae4; }
.cfb-shell { width: min(1420px, calc(100% - 32px)); margin: 0 auto; padding: 42px 0 64px; }
.cfb-hero { margin-bottom: 22px; display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; }
.cfb-kicker { margin: 0 0 7px; color: #76540c; font-size: 11px; font-weight: 900; letter-spacing: .17em; text-transform: uppercase; }
.cfb-hero h1 { margin: 0; color: var(--cfb-navy-deep); font-family: var(--bw-font-display); font-size: clamp(46px, 7vw, 76px); font-weight: 900; letter-spacing: -.025em; line-height: .92; }
.cfb-hero__dek { max-width: 690px; margin: 13px 0 0; color: var(--bw-muted); font-size: 16px; line-height: 1.5; }
.cfb-beta-stamp { min-width: 190px; border: 1px solid #c69a36; border-radius: 16px; padding: 12px 16px; display: flex; align-items: center; gap: 12px; background: var(--cfb-gold-soft); color: var(--cfb-navy-deep); box-shadow: var(--bw-shadow); }
.cfb-beta-stamp > span { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: var(--cfb-gold); font-family: var(--bw-font-display); font-size: 25px; font-weight: 900; }
.cfb-beta-stamp strong, .cfb-beta-stamp small { display: block; }
.cfb-beta-stamp strong { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.cfb-beta-stamp small { margin-top: 2px; color: var(--bw-muted); font-weight: 700; }

.cfb-slate-bar { border-radius: 18px; padding: 16px 20px; display: grid; grid-template-columns: minmax(160px,.65fr) minmax(180px,.8fr) minmax(280px,1.3fr); gap: 22px; align-items: center; background: var(--cfb-navy); color: #fff; box-shadow: var(--bw-shadow); }
.cfb-slate-bar__label { display: block; margin-bottom: 4px; color: #b5c5d6; font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.cfb-slate-bar strong { font-size: 14px; }
.cfb-slate-bar__boundary { border-left: 1px solid rgba(255,255,255,.2); padding-left: 22px; display: flex; gap: 10px; align-items: center; }
.cfb-slate-bar__boundary > span { color: var(--cfb-gold); font-size: 24px; }
.cfb-slate-bar__boundary p { margin: 0; color: #d5dee7; font-size: 12px; line-height: 1.4; }

.cfb-controls { margin-top: 18px; border: 1px solid #d7d1c5; border-radius: 17px; padding: 14px; display: grid; grid-template-columns: auto minmax(330px,1fr) minmax(300px,.9fr) auto; align-items: end; gap: 12px; background: rgba(251,250,246,.97); box-shadow: 0 8px 24px rgba(17,39,64,.08); z-index: 10; }
.cfb-controls[hidden] { display: none; }
.cfb-controls__week label, .cfb-filter-group legend { display: block; margin-bottom: 6px; color: #566273; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.cfb-controls__week select { min-height: 42px; max-width: 210px; border: 1px solid #aeb7c1; border-radius: 10px; padding: 7px 34px 7px 10px; color: var(--cfb-navy); background: #fff; font: inherit; font-size: 12px; font-weight: 800; }
.cfb-filter-group { min-width: 0; margin: 0; border: 0; padding: 0; }
.cfb-filter-chips { display: flex; gap: 6px; overflow-x: auto; padding: 1px; scrollbar-width: thin; }
.cfb-filter-chips button, .cfb-reset, .cfb-empty-state button { min-height: 42px; border: 1px solid #b8c0c8; border-radius: 999px; padding: 7px 12px; flex: none; color: var(--cfb-navy); background: #fff; font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; }
.cfb-filter-chips button span { margin-left: 3px; color: #596777; font-variant-numeric: tabular-nums; }
.cfb-filter-chips button[aria-pressed="true"] { border-color: var(--cfb-navy); background: var(--cfb-navy); color: #fff; }
.cfb-filter-chips button[aria-pressed="true"] span { color: #d9e3ed; }
.cfb-reset { border-color: #9b760f; color: #644900; background: var(--cfb-gold-soft); }
.cfb-controls button:focus-visible, .cfb-controls select:focus-visible, .cfb-accordion summary:focus-visible, .cfb-quote-details summary:focus-visible, .cfb-empty-state button:focus-visible { outline: 3px solid var(--cfb-focus); outline-offset: 3px; }

.cfb-board-summary { margin-top: 11px; padding: 0 4px; display: flex; align-items: center; flex-wrap: wrap; gap: 5px 15px; color: #556170; font-size: 12px; }
.cfb-board-summary[hidden] { display: none; }
.cfb-board-summary strong { color: var(--cfb-navy); font-size: 14px; }
.cfb-board-summary span + span::before { content: "•"; margin-right: 15px; color: #9b760f; }

.cfb-loading { margin-top: 22px; }
.cfb-loading[hidden] { display: none; }
.cfb-skeleton-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
.cfb-skeleton-card { min-height: 370px; overflow: hidden; border: 1px solid var(--cfb-rule); border-radius: 20px; padding: 100px 24px 24px; background: var(--cfb-paper); box-shadow: var(--bw-shadow); position: relative; }
.cfb-skeleton-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 78px; background: #d6dce2; }
.cfb-skeleton-card span, .cfb-skeleton-card div { display: block; border-radius: 999px; background: linear-gradient(90deg,#e4e1da 20%,#f3f1eb 50%,#e4e1da 80%); background-size: 220% 100%; animation: cfb-shimmer 1.4s ease infinite; }
.cfb-skeleton-card span { width: 55%; height: 24px; }
.cfb-skeleton-card div { height: 16px; margin-top: 26px; }
.cfb-skeleton-card div:nth-child(3) { width: 80%; }
.cfb-skeleton-card div:nth-child(4) { width: 62%; }
@keyframes cfb-shimmer { to { background-position: -220% 0; } }
@media (prefers-reduced-motion: reduce) { .cfb-skeleton-card span, .cfb-skeleton-card div { animation: none; background: #e4e1da; } }

.cfb-state-card, .cfb-empty-state { margin-top: 22px; border: 1px solid var(--cfb-rule); border-radius: 20px; padding: 28px; background: var(--cfb-paper); box-shadow: var(--bw-shadow); }
.cfb-state-card { display: flex; gap: 16px; align-items: center; }
.cfb-state-card strong, .cfb-empty-state strong { font-family: var(--bw-font-display); font-size: 22px; }
.cfb-state-card p, .cfb-empty-state p { margin: 5px 0 0; color: var(--bw-muted); line-height: 1.5; }
.cfb-state-card--access { display: block; padding: 42px 28px; text-align: center; }
.cfb-state-card--access .bw-button { margin: 18px 5px 0; }
.cfb-state-card--error { border-color: #d99b94; background: #fff6f5; }
.cfb-empty-state { text-align: center; }
.cfb-empty-state button { margin: 18px 4px 0; }

.cfb-game-list { margin-top: 18px; }
.cfb-date-group { margin-top: 30px; }
.cfb-date-group:first-child { margin-top: 0; }
.cfb-date-group > h2 { margin: 0 0 15px; color: var(--cfb-navy-deep); font-family: var(--bw-font-display); font-size: 30px; letter-spacing: -.015em; }
.cfb-game-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; align-items: start; }
.cfb-game-slot { min-width: 0; }
.cfb-game-slot > h3 { margin: 0 0 10px; display: flex; align-items: center; gap: 12px; color: #5d6875; font-size: 12px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.cfb-game-slot > h3::after { content: ""; height: 1px; flex: 1; background: #d6d1c7; }
.cfb-game-card { min-width: 0; overflow: hidden; border: 1px solid var(--cfb-rule); border-radius: 20px; background: var(--cfb-paper); box-shadow: 0 10px 30px rgba(17,39,64,.1); }
.cfb-game-card--degraded { border-color: #c89b3b; }
.cfb-game-card--unavailable { border-color: #aeb7c1; }
.cfb-game-card__head { min-height: 78px; padding: 13px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; background: var(--cfb-navy); color: #fff; }
.cfb-game-card__meta { margin: 0 0 4px; color: #bdcad7; font-size: 10px; line-height: 1.4; }
.cfb-game-card__head h2 { margin: 0; font-family: var(--bw-font-display); font-size: clamp(19px,2vw,25px); line-height: 1.05; }
.cfb-experimental-badge { max-width: 112px; border-radius: 999px; padding: 7px 10px; flex: none; background: var(--cfb-gold); color: #1d1606; font-size: 9px; font-weight: 900; letter-spacing: .05em; text-align: center; text-transform: uppercase; }
.cfb-warning { border-bottom: 1px solid #d5ab55; padding: 11px 18px; display: flex; align-items: center; gap: 10px; background: #fff4d9; color: #583e06; font-size: 12px; }
.cfb-warning strong { flex: none; font-size: 10px; letter-spacing: .08em; }

.cfb-matchup { padding: 26px 17px 20px; display: grid; grid-template-columns: minmax(0,1fr) 72px minmax(0,1fr); gap: 10px; align-items: center; }
.cfb-team { min-width: 0; text-align: center; }
.cfb-team-mark { width: 68px; height: 68px; margin: 0 auto 10px; display: grid; place-items: center; color: var(--team-primary,var(--cfb-navy)); }
.cfb-team-mark img { width: 68px; height: 68px; display: block; object-fit: contain; }
.cfb-team-mark--compact { width: 46px; height: 46px; margin: 0; }
.cfb-team-mark--compact img { width: 46px; height: 46px; }
.cfb-team-fallback { font-family: var(--bw-font-display); font-size: 21px; font-weight: 900; }
.cfb-team-mark.logo-failed { outline: 0; }
.cfb-team h3 { min-height: 2.1em; margin: 0; font-family: var(--bw-font-display); font-size: 20px; line-height: 1.05; }
.cfb-team__classification { margin: 5px 0 0; color: var(--bw-muted); font-size: 9px; font-weight: 900; text-transform: uppercase; }
.cfb-team__score { margin-top: 13px; color: var(--cfb-navy); font-family: var(--bw-font-display); font-size: 36px; font-weight: 900; line-height: .95; }
.cfb-team__score span, .cfb-team__prob span { display: block; margin-bottom: 3px; color: #5e6975; font-family: var(--bw-font-sans); font-size: 9px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.cfb-team__score span { margin-top: 5px; margin-bottom: 0; }
.cfb-team__prob { margin-top: 8px; font-family: var(--bw-font-display); font-size: 25px; font-weight: 900; }
.cfb-probability { min-width: 0; text-align: center; }
.cfb-probability__label { color: #5d6875; font-size: 8px; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.cfb-probability__track { width: 16px; height: 108px; margin: 7px auto; border-radius: 999px; display: flex; flex-direction: column; overflow: hidden; background: #e8e3d9; box-shadow: inset 0 0 0 1px rgba(17,39,64,.1); }
.cfb-probability__track span { display: block; width: 100%; }
.cfb-probability__vs { color: var(--cfb-navy); font-family: var(--bw-font-display); font-weight: 900; }
.cfb-probability__total { margin-top: 3px; color: var(--bw-muted); font-size: 9px; }

.cfb-no-call { margin: 0 17px 17px; border: 1px solid #d3c18d; border-radius: 11px; padding: 10px 12px; background: #fffdf7; }
.cfb-no-call p { margin: 0; color: var(--cfb-navy); font-size: 11px; line-height: 1.45; }
.cfb-no-call strong { font-weight: 900; }
.cfb-accordions { border-top: 1px solid var(--cfb-rule); }
.cfb-accordion { border-bottom: 1px solid var(--cfb-rule); background: #fff; }
.cfb-accordion:last-child { border-bottom: 0; }
.cfb-accordion summary { min-height: 52px; padding: 13px 17px; display: flex; align-items: center; justify-content: space-between; gap: 10px; list-style: none; cursor: pointer; }
.cfb-accordion summary::-webkit-details-marker { display: none; }
.cfb-accordion summary::after { content: "+"; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; flex: none; background: #f0ede7; color: var(--cfb-navy); font-size: 18px; font-weight: 900; }
.cfb-accordion[open] > summary::after { content: "–"; }
.cfb-accordion__title { font-family: var(--bw-font-display); font-size: 18px; font-weight: 900; }
.cfb-accordion__state { margin-left: 7px; color: #66717d; font-family: var(--bw-font-sans); font-size: 10px; font-weight: 800; }
.cfb-accordion__headline { margin-left: 5px; color: #546270; font-family: var(--bw-font-sans); font-size: 11px; font-weight: 850; }
.cfb-accordion__body { border-top: 1px solid var(--cfb-rule); padding: 14px 16px 17px; background: #faf9f5; }
.cfb-accordion__unavailable { min-height: 52px; padding: 13px 17px; display: flex; align-items: center; justify-content: space-between; color: #687480; }
.cfb-accordion__unavailable > span:last-child { font-size: 10px; font-weight: 900; text-transform: uppercase; }

.cfb-table-wrap { max-width: 100%; overflow: hidden; border: 1px solid #d8d4cb; border-radius: 11px; background: #fff; }
.cfb-market-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 10px; }
.cfb-market-table th, .cfb-market-table td { border-bottom: 1px solid #e7e3dc; padding: 9px 7px; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.cfb-market-table thead th { color: #5e6975; background: #f4f2ed; font-size: 8px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.cfb-market-table tbody th { color: var(--cfb-navy); font-size: 11px; }
.cfb-market-table tbody tr:last-child > * { border-bottom: 0; }
.cfb-market-table--exact th:first-child { width: 24%; }
.cfb-best-price { color: #664b06; font-weight: 900; }
.cfb-offer-primary { display: block; color: var(--cfb-navy); font-size: 14px; }
.cfb-offer-probability { margin-top: 4px; display: block; color: #5d6875; font-size: 9px; }
.cfb-offer-probability strong { display: block; color: var(--cfb-navy); font-size: 11px; }
.cfb-quote-state { margin-top: 6px; border: 1px solid #aeb7c1; border-radius: 999px; padding: 2px 5px; display: inline-block; color: #4d5966; font-size: 7px; font-weight: 900; letter-spacing: .04em; }
.cfb-offer-missing { color: #596572; font-size: 9px; font-weight: 900; text-transform: uppercase; }
.cfb-quote-details { margin-top: 6px; }
.cfb-quote-details summary { min-height: 26px; padding: 3px 0; display: inline-flex; color: #4b5967; font-size: 9px; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.cfb-quote-details summary::after { display: none; }
.cfb-quote-details div { margin-top: 4px; display: grid; gap: 2px; color: #67727e; font-size: 8px; line-height: 1.4; }
.cfb-comparison-row td { padding: 5px 8px 8px; color: #675016; background: #fffaf0; font-size: 8px; font-weight: 900; letter-spacing: .03em; }
.cfb-market-note { margin: 0; color: var(--bw-muted); font-size: 11px; line-height: 1.5; }

.cfb-model-section + .cfb-model-section { margin-top: 14px; }
.cfb-model-section h4 { margin: 0 0 7px; color: #5c6875; font-size: 9px; letter-spacing: .08em; text-transform: uppercase; }
.cfb-model-grid { margin: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.cfb-model-grid > div { border: 1px solid var(--cfb-rule); border-radius: 9px; padding: 9px; background: #fff; }
.cfb-model-grid dt { color: #67727e; font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.cfb-model-grid dd { margin: 4px 0 0; color: var(--cfb-navy); font-size: 10px; font-weight: 800; line-height: 1.4; }
.cfb-model-limit { margin: 13px 0 0; border-left: 3px solid var(--cfb-gold); padding-left: 10px; color: #5f6a76; font-size: 10px; line-height: 1.5; }

.cfb-locked-game { padding: 28px 18px; text-align: center; }
.cfb-locked-matchup, .cfb-unavailable-matchup { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; }
.cfb-locked-matchup span:not(.cfb-team-mark):not(.cfb-team-fallback), .cfb-unavailable-matchup strong { max-width: 140px; color: var(--cfb-navy); font-family: var(--bw-font-display); font-size: 17px; }
.cfb-locked-matchup b, .cfb-unavailable-matchup > span:not(.cfb-team-mark):not(.cfb-team-fallback) { color: #687480; font-size: 10px; text-transform: uppercase; }
.cfb-locked-game p { margin: 14px auto 0; max-width: 510px; color: var(--bw-muted); font-size: 12px; line-height: 1.5; }
.cfb-game-card--condensed .cfb-game-card__head { min-height: 66px; }
.cfb-unavailable-matchup { padding: 18px 16px 8px; }
.cfb-unavailable-message { padding: 6px 18px 19px; text-align: center; }
.cfb-unavailable-message > strong { color: #4c5966; font-size: 10px; letter-spacing: .08em; }
.cfb-unavailable-message p { margin: 5px 0 0; color: #626e7a; font-size: 11px; }
.cfb-unavailable-message details { margin-top: 8px; color: #52606e; font-size: 10px; }

.cfb-boundary-note { margin-top: 34px; border-left: 4px solid var(--cfb-gold); padding: 4px 0 4px 18px; }
.cfb-boundary-note h2 { margin: 0 0 7px; font-family: var(--bw-font-display); font-size: 22px; }
.cfb-boundary-note p { max-width: 900px; margin: 0; color: var(--bw-muted); font-size: 13px; line-height: 1.6; }
.cfb-footer { padding: 28px max(20px,calc((100vw - 1180px)/2)); background: var(--cfb-navy-deep); color: #b4c3d1; font-size: 11px; line-height: 1.55; }
.cfb-footer__line { margin-top: 8px; }
.cfb-footer a { color: #fff; }

@media (max-width: 1023px) {
  .cfb-shell { width: min(760px,calc(100% - 28px)); }
  .cfb-controls { grid-template-columns: auto 1fr; }
  .cfb-filter-group { grid-column: span 1; }
  .cfb-reset { align-self: end; }
  .cfb-game-grid, .cfb-skeleton-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .cfb-shell { width: min(100% - 20px,620px); padding-top: 26px; }
  .cfb-hero { align-items: flex-start; flex-direction: column; gap: 16px; }
  .cfb-beta-stamp { min-width: 0; }
  .cfb-slate-bar { grid-template-columns: 1fr 1fr; gap: 13px; }
  .cfb-slate-bar__boundary { grid-column: 1/-1; border-left: 0; border-top: 1px solid rgba(255,255,255,.2); padding: 11px 0 0; }
  .cfb-controls { position: sticky; top: max(8px,env(safe-area-inset-top)); grid-template-columns: minmax(0,1fr) auto; padding: 10px; backdrop-filter: blur(12px); transition: transform .2s ease, opacity .2s ease; }
  .cfb-controls--scroll-hidden { opacity: 0; pointer-events: none; transform: translateY(calc(-100% - max(8px,env(safe-area-inset-top)))); }
  .cfb-controls__week { min-width: 0; }
  .cfb-controls__week select { width: 100%; max-width: none; }
  .cfb-filter-group { grid-column: 1/-1; }
  .cfb-reset { grid-column: 2; grid-row: 1; }
  .cfb-board-summary { font-size: 10px; }
  .cfb-board-summary span + span::before { margin-right: 8px; }
  .cfb-date-group > h2 { font-size: 25px; }
  .cfb-matchup { grid-template-columns: minmax(0,1fr) 54px minmax(0,1fr); padding-inline: 10px; gap: 5px; }
  .cfb-team-mark { width: 58px; height: 58px; }
  .cfb-team-mark img { width: 48px; height: 48px; }
  .cfb-team h3 { font-size: 18px; }
  .cfb-team__score { font-size: 31px; }
  .cfb-team__prob { font-size: 22px; }
  .cfb-probability__track { height: 96px; width: 14px; }
  .cfb-game-card__head { align-items: flex-start; }
  .cfb-model-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .cfb-controls { transition: none; }
}

@media (max-width: 520px) {
  .cfb-hero h1 { font-size: 44px; }
  .cfb-slate-bar { grid-template-columns: 1fr; }
  .cfb-slate-bar__boundary { grid-column: 1; }
  .cfb-game-card__head { flex-direction: column; }
  .cfb-experimental-badge { max-width: none; }
  .cfb-market-table, .cfb-market-table tbody, .cfb-market-table tr, .cfb-market-table th, .cfb-market-table td { display: block; width: 100%; }
  .cfb-market-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .cfb-market-table tr { border-bottom: 1px solid #ddd8cf; }
  .cfb-market-table tbody th { border-bottom: 1px solid #eeeae3; background: #f5f3ee; }
  .cfb-market-table td::before { content: attr(data-label); display: block; margin-bottom: 4px; color: #697480; font-size: 8px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
  .cfb-market-table .cfb-comparison-row td::before { display: none; }
  .cfb-market-table th, .cfb-market-table td { padding: 9px 10px; }
  .cfb-unavailable-matchup { display: grid; grid-template-columns: 46px 1fr; justify-items: start; text-align: left; }
  .cfb-unavailable-matchup > span:not(.cfb-team-mark):not(.cfb-team-fallback) { display: none; }
}
