/* ══════════════════════════════════════════════════════════════════════
   CBB Section Theme — "Fieldhouse"
   The CBB dashboard reuses the NHL page shell (nhl-theme.css) and the NBA
   dashboard layout (nba-dashboard.css, hd-*), re-tokened here and scoped to
   .ih-page.is-cbb: the accent is a college royal blue so the two basketball
   sections never read as one. Only the accent is fixed, surfaces stay
   theme-aware. Also carries the few CBB-only atoms (KenPom rank, tempo meter,
   news category chips).
   ══════════════════════════════════════════════════════════════════════ */

.ih-page.is-cbb {
  --ice:       #1d4ed8;
  --ice-2:     #1e40af;
  --ice-dim:   rgba(29,78,216,.09);
  --ice-line:  rgba(29,78,216,.32);
  --hw-out:    #dc2626;
  --hw-out-dim: rgba(220,38,38,.12);
  --hw-q:      #b45309;
  --hw-q-dim:  rgba(180,83,9,.13);
  --hw-up:     #15803d;
  --hw-up-dim: rgba(21,128,61,.12);
  --hw-nav:    #93c5fd;
}
html[data-theme="dark"] .ih-page.is-cbb,
html[data-theme="dim"] .ih-page.is-cbb {
  --ice:       #60a5fa;
  --ice-2:     #93c5fd;
  --ice-dim:   rgba(96,165,250,.10);
  --ice-line:  rgba(96,165,250,.30);
  --hw-out:    #f87171;
  --hw-out-dim: rgba(248,113,113,.13);
  --hw-q:      #fbbf24;
  --hw-q-dim:  rgba(251,191,36,.12);
  --hw-up:     #4ade80;
  --hw-up-dim: rgba(74,222,128,.12);
}

/* Free-throw circle + a cool wash from the top, fixed behind content. */
.ih-page.is-cbb::before {
  background:
    radial-gradient(circle at 50% 0, transparent 92px, var(--ice-dim) 93px, var(--ice-dim) 95px, transparent 96px),
    radial-gradient(70% 55% at 50% 0%, var(--ice-dim), transparent 70%);
}

/* Nav-bar accents are hard-coded cyan in the shell; swap them. */
.is-cbb .ih-site button.active { background: rgba(96,165,250,.16); color: var(--hw-nav); }
.is-cbb .ih-site button:disabled { cursor: default; opacity: 1; }
.is-cbb .ih-select:focus-visible { outline-color: var(--hw-nav); }
.ih-brand-ball {
  width: 14px; height: 14px; border-radius: 50%; flex: none;
  background:
    linear-gradient(90deg, transparent 6px, #3b1d0a 6px, #3b1d0a 8px, transparent 8px),
    linear-gradient(0deg, transparent 6px, #3b1d0a 6px, #3b1d0a 8px, transparent 8px),
    #ea580c;
  box-shadow: 0 0 0 1px #7c2d12;
}

/* ── Shared atoms (same as the NBA section) ────────────────────────── */
.ih-badge.out  { background: var(--hw-out-dim); color: var(--hw-out); }
.ih-badge.q    { background: var(--hw-q-dim); color: var(--hw-q); }
.ih-badge.up   { background: var(--hw-up-dim); color: var(--hw-up); }
.hw-fresh { display: flex; gap: 14px; flex-wrap: wrap; font-family: var(--ih-mono); font-size: 11px; color: var(--text-3); margin-top: 10px; }
.hw-fresh b { color: var(--text-2); font-weight: 600; }

/* ── CBB atoms ─────────────────────────────────────────────────────── */
/* A school with no logo keeps its column so rows stay aligned. */
.cb-nologo { display: inline-block; width: 22px; height: 22px; border-radius: 50%; background: var(--ih-cell); flex: none; }
.hd-logo.cb-nologo { width: 28px; height: 28px; grid-row: span 2; }

/* KenPom rank, superscript before the team code. */
.cb-rk {
  font-family: var(--ih-mono); font-size: 9.5px; font-weight: 700; color: var(--ice);
  margin-right: 3px; vertical-align: 5px; letter-spacing: 0;
}
.cb-site { font-size: 10.5px; max-width: 55%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Pace Spots: tempo meter, scaled across the slate's own range. */
.cb-pace td { vertical-align: middle; }
.cb-pace .hd-pl .ih-logo + .ih-logo { margin-left: -14px; }
.cb-meter {
  position: relative; height: 18px; min-width: 110px; border-radius: 4px; overflow: hidden;
  background: var(--ih-cell);
}
.cb-meter i {
  position: absolute; inset: 0 auto 0 0; border-radius: 4px;
  background: linear-gradient(90deg, var(--ice-dim), var(--ice-line));
  transform-origin: left; animation: cb-grow 600ms var(--ih-ease, ease-out) both;
}
.cb-meter span { position: relative; display: block; padding: 0 8px; line-height: 18px; font-size: 11px; font-weight: 700; color: var(--text-1); }
@keyframes cb-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) { .cb-meter i { animation: none; } }

/* News category chips in the wire. */
.cb-cat {
  font-family: var(--ih-mono); font-size: 9.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  padding: 2px 6px; border-radius: 4px; background: var(--ih-cell); color: var(--text-2);
}
.cb-cat-coaching { background: var(--ice-dim); color: var(--ice); }
.cb-cat-lineup   { background: var(--hw-up-dim); color: var(--hw-up); }
.cb-cat-injury   { background: var(--hw-out-dim); color: var(--hw-out); }
.hd-wire-list b a { color: inherit; text-decoration: none; }
.hd-wire-list b a:hover { color: var(--ice); text-decoration: underline; }
.hd-wire-list b { white-space: normal; }
.cb-wire-note { padding: 10px 16px 0; margin: 0; }
