/* CFB visual clarity refresh — front-end only.
   Makes model preference, favorite/underdog state, matchup leverage and actionable reads
   immediately scannable across the college-football experience. */

:root{
  --cfb-favored:#73d35b;
  --cfb-favored-soft:rgba(115,211,91,.14);
  --cfb-underdog:#ff9a43;
  --cfb-underdog-soft:rgba(255,154,67,.14);
  --cfb-neutral:#7f8aa3;
  --cfb-gold:#d5a83d;
}

/* Shared CFB surface polish */
.cfb-page .card,
.cfb-page .panel,
.cfb-page section,
[data-cfb-page] .card,
[data-cfb-page] .panel{
  border-color:rgba(141,160,198,.18);
}

.cfb-page button,
.cfb-page .btn,
[data-cfb-page] button,
[data-cfb-page] .btn{
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;
}

.cfb-page button:hover,
.cfb-page .btn:hover,
[data-cfb-page] button:hover,
[data-cfb-page] .btn:hover{
  transform:translateY(-1px);
}

/* Game IQ hero/read clarity */
.cfb-gq-hero{
  position:relative;
  overflow:hidden;
}

.cfb-gq-hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(100deg,rgba(115,211,91,.055),transparent 42%,rgba(255,154,67,.045));
}

.cfb-gq-read{
  border:1px solid rgba(141,160,198,.18);
  border-radius:14px;
  padding:14px 16px;
  background:rgba(9,16,31,.62);
}

.cfb-gq-read[data-cfb-read-side="favored"]{
  border-color:rgba(115,211,91,.42);
  box-shadow:0 0 0 1px rgba(115,211,91,.06),0 10px 28px rgba(0,0,0,.12);
}

.cfb-gq-read[data-cfb-read-side="favored"] > b{
  color:var(--cfb-favored);
}

.cfb-gq-read[data-cfb-read-side="underdog"]{
  border-color:rgba(255,154,67,.42);
}

.cfb-gq-read[data-cfb-read-side="underdog"] > b{
  color:var(--cfb-underdog);
}

/* Injected model-lean strip */
.cfb-model-lean{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  gap:12px;
  align-items:center;
  margin:14px 0 0;
  padding:14px 16px;
  border:1px solid rgba(141,160,198,.18);
  border-radius:14px;
  background:rgba(10,18,34,.78);
}

.cfb-model-lean__team{
  min-width:0;
}

.cfb-model-lean__team:last-child{
  text-align:right;
}

.cfb-model-lean__label{
  display:block;
  margin-bottom:4px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#7f8aa3;
}

.cfb-model-lean__team.is-favored .cfb-model-lean__label,
.cfb-model-lean__team.is-favored strong{
  color:var(--cfb-favored);
}

.cfb-model-lean__team.is-underdog .cfb-model-lean__label,
.cfb-model-lean__team.is-underdog strong{
  color:var(--cfb-underdog);
}

.cfb-model-lean__team strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#f4f7fb;
  font-size:15px;
}

.cfb-model-lean__team small{
  display:block;
  margin-top:3px;
  color:#9aa5b8;
  font-size:11px;
}

.cfb-model-lean__vs{
  color:#657086;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
}

.cfb-model-lean__bar{
  grid-column:1/-1;
  display:flex;
  height:10px;
  border-radius:999px;
  overflow:hidden;
  background:#1a2438;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}

.cfb-model-lean__bar span:first-child{
  background:linear-gradient(90deg,rgba(115,211,91,.72),var(--cfb-favored));
}

.cfb-model-lean__bar span:last-child{
  background:linear-gradient(90deg,var(--cfb-underdog),rgba(255,154,67,.72));
}

.cfb-model-lean__note{
  grid-column:1/-1;
  text-align:center;
  color:#7f8aa3;
  font-size:10px;
}

/* Replace the old grey comparison meters with clear two-sided leverage */
.cfb-gq-strength{
  --cfb-away-accent:var(--cfb-favored);
  --cfb-home-accent:var(--cfb-underdog);
}

.cfb-gq-head{
  color:#cfd6e4;
}

.cfb-gq-head b[data-cfb-team-state="favored"]{
  color:var(--cfb-favored);
}

.cfb-gq-head b[data-cfb-team-state="underdog"]{
  color:var(--cfb-underdog);
}

.cfb-gq-meter{
  display:grid;
  grid-template-columns:minmax(92px,132px) minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:center;
  padding:8px 0;
}

.cfb-gq-meter > span{
  color:#cbd3e1;
  font-weight:700;
}

.cfb-gq-meter > div{
  display:flex;
  align-items:center;
  gap:9px;
}

.cfb-gq-meter > div:first-of-type{
  justify-content:flex-end;
}

.cfb-gq-meter > div b{
  min-width:28px;
  font-variant-numeric:tabular-nums;
}

.cfb-gq-meter > div:first-of-type b{
  text-align:right;
  color:var(--cfb-away-accent);
}

.cfb-gq-meter > div:last-of-type b{
  color:var(--cfb-home-accent);
}

.cfb-gq-meter i{
  position:relative;
  flex:1;
  height:7px;
  min-width:38px;
  border-radius:999px;
  overflow:hidden;
  background:#172237;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025);
}

.cfb-gq-meter i em{
  display:block;
  height:100%;
  border-radius:inherit;
  transition:width .3s ease;
}

.cfb-gq-meter > div:first-of-type i em{
  margin-left:auto;
  background:linear-gradient(90deg,rgba(115,211,91,.46),var(--cfb-away-accent));
}

.cfb-gq-meter > div:last-of-type i em{
  background:linear-gradient(90deg,var(--cfb-home-accent),rgba(255,154,67,.46));
}

/* Stronger model-v-market hierarchy */
.cfb-gq-marketgrid > div{
  border:1px solid rgba(141,160,198,.12);
  background:rgba(18,28,47,.72);
}

.cfb-gq-marketgrid > div:nth-child(2){
  border-color:rgba(115,211,91,.25);
  background:linear-gradient(180deg,rgba(115,211,91,.09),rgba(18,28,47,.72));
}

.cfb-gq-marketgrid > div:nth-child(2) b{
  color:var(--cfb-favored);
}

/* Mismatch profile — stop treating all cards as equal */
.cfb-gq-mismatch article[data-cfb-leverage="favored"]{
  border-color:rgba(115,211,91,.28);
  background:linear-gradient(180deg,rgba(115,211,91,.09),rgba(18,28,47,.62));
}
.cfb-gq-mismatch article[data-cfb-leverage="favored"] b,
.cfb-gq-mismatch article[data-cfb-leverage="favored"] em{
  color:var(--cfb-favored);
}
.cfb-gq-mismatch article[data-cfb-leverage="underdog"]{
  border-color:rgba(255,154,67,.26);
  background:linear-gradient(180deg,rgba(255,154,67,.075),rgba(18,28,47,.62));
}
.cfb-gq-mismatch article[data-cfb-leverage="underdog"] b,
.cfb-gq-mismatch article[data-cfb-leverage="underdog"] em{
  color:var(--cfb-underdog);
}

/* Weekly card / Betting IQ hierarchy */
.cfb-page [data-cfb-game],
.cfb-page .cfb-bet-card,
.cfb-page .cfb-weekly-card,
.cfb-page .cfb-command-card{
  position:relative;
}

.cfb-page [data-cfb-game][data-cfb-card-state="favored"],
.cfb-page .cfb-bet-card[data-cfb-card-state="favored"]{
  border-color:rgba(115,211,91,.30)!important;
  box-shadow:inset 3px 0 0 rgba(115,211,91,.72);
}

.cfb-page [data-cfb-game][data-cfb-card-state="underdog"],
.cfb-page .cfb-bet-card[data-cfb-card-state="underdog"]{
  border-color:rgba(255,154,67,.26)!important;
  box-shadow:inset 3px 0 0 rgba(255,154,67,.68);
}

.cfb-favored-chip,
.cfb-underdog-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:4px 8px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}

.cfb-favored-chip{
  color:var(--cfb-favored);
  border:1px solid rgba(115,211,91,.28);
  background:var(--cfb-favored-soft);
}

.cfb-underdog-chip{
  color:var(--cfb-underdog);
  border:1px solid rgba(255,154,67,.26);
  background:var(--cfb-underdog-soft);
}

@media (max-width:760px){
  .cfb-model-lean{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);padding:12px;gap:8px}
  .cfb-model-lean__team strong{font-size:13px}
  .cfb-gq-meter{grid-template-columns:84px minmax(0,1fr) minmax(0,1fr);gap:7px}
  .cfb-gq-meter > div{gap:5px}
  .cfb-gq-meter > div b{min-width:22px;font-size:11px}
}
