.basketball-player-summary {
  width: 100%; min-width: 0; min-height: 66px; position: relative;
  display: grid; grid-template-columns: 48px minmax(0,1fr) 38px 18px;
  align-items: center; gap: 11px; padding: 8px 10px;
  border: 1px solid var(--line-soft); border-radius: 11px;
  background: rgba(255,255,255,.018); color: var(--text);
  text-align: left; cursor: pointer;
  transition: border-color .15s,background .15s,transform .15s,box-shadow .15s;
}
.basketball-player-summary:hover { border-color: rgba(232,97,45,.42); background: rgba(232,97,45,.06); transform: translateY(-1px); }
.basketball-player-summary--no-rating { grid-template-columns:48px minmax(0,1fr) 18px; }
.basketball-player-summary:focus-visible { outline: none; border-color: var(--accent-strong); box-shadow: 0 0 0 3px var(--accent-soft); }
.basketball-player-summary__portrait { width: 48px; height: 48px; overflow: hidden; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.08); border-radius: 9px; background: var(--surface-3); }
.basketball-player-summary__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.basketball-player-summary__copy { min-width: 0; display: grid; gap: 2px; }
.basketball-player-summary__name { align-items: center; display: flex; gap: 6px; min-width: 0; }
.basketball-player-summary__name strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.basketball-player-summary__name em { background: rgba(232,97,45,.12); border: 1px solid rgba(232,97,45,.28); border-radius: 999px; color: #f2a06f; flex: 0 0 auto; font-size: 9px; font-style: normal; font-weight: 850; letter-spacing: .04em; line-height: 1; padding: 3px 5px; }
.basketball-player-summary__copy strong,.basketball-player-summary__copy small,.basketball-player-summary__copy > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.basketball-player-summary__copy strong { font-size: 14px; line-height: 1.35; }
.basketball-player-summary__copy small { color: var(--muted); font-size: 11px; }
.basketball-player-summary__copy > span { color: var(--muted-2); font-size: 10px; }
.basketball-player-summary__rating { width: 38px; min-height: 32px; display: grid; place-items: center; border-radius: 8px; background: var(--rating-color); color: var(--rating-ink); font-size: 12px; font-weight: 900; }
.basketball-player-summary__rating.rating-breakthrough,.basketball-player-summary__rating.rating-peak { letter-spacing: -.045em; box-shadow: 0 0 0 1px rgba(255,255,255,.16),0 7px 18px var(--rating-soft); }
.basketball-player-summary__rating.rating-peak { background: linear-gradient(145deg,#ffe49a,var(--rating-color) 58%,#e9a62c); }
.basketball-player-summary__arrow { color: var(--muted-2); font-size: 20px; font-style: normal; line-height: 1; transition: color .15s,transform .15s; }
.basketball-player-summary:hover .basketball-player-summary__arrow { color: var(--accent-strong); transform: translateX(2px); }
.basketball-player-summary--plain { border-color: transparent; background: transparent; }
.basketball-player-summary--plain:hover { border-color: rgba(232,97,45,.28); }
.basketball-collectible-card {
  --collectible-accent: var(--accent-strong,#f28a52);
  --collectible-series-layer: radial-gradient(circle at 18% 0,color-mix(in srgb,var(--collectible-accent) 13%,transparent),transparent 42%);
  position: relative; isolation: isolate; overflow: hidden;
  border: 1px solid color-mix(in srgb,var(--collectible-accent) 42%,var(--line,#354157));
  border-radius: 18px;
  background: var(--collectible-series-layer),linear-gradient(155deg,color-mix(in srgb,var(--collectible-accent) 10%,#172231),#090e16 70%);
  box-shadow: inset 0 1px rgba(255,255,255,.09),0 14px 32px rgba(0,0,0,.22);
  transition: border-color .16s,box-shadow .16s,transform .16s;
}
.basketball-collectible-card::before { content:""; position:absolute; z-index:2; inset:0 0 auto; height:4px; background:linear-gradient(90deg,transparent,var(--collectible-accent) 16% 84%,transparent); pointer-events:none; }
.basketball-collectible-card::after { content:""; position:absolute; z-index:-1; width:190px; height:310px; right:-112px; top:-92px; transform:rotate(26deg); background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--collectible-accent) 14%,transparent),transparent); pointer-events:none; }
.basketball-collectible-card:hover { border-color:var(--collectible-accent); box-shadow:inset 0 1px rgba(255,255,255,.12),0 18px 38px rgba(0,0,0,.3); transform:translateY(-2px); }
.basketball-collectible-card.tier-fringe,.basketball-collectible-card.tier-basic { --collectible-accent:#8694a8; }
.basketball-collectible-card.tier-role,.basketball-collectible-card.tier-advanced { --collectible-accent:#6f9bc9; }
.basketball-collectible-card.tier-rotation,.basketball-collectible-card.tier-premium { --collectible-accent:#e98251; }
.basketball-collectible-card.tier-all_star,.basketball-collectible-card.tier-elite { --collectible-accent:#a681ff; }
.basketball-collectible-card.tier-superstar,.basketball-collectible-card.tier-legendary { --collectible-accent:#ffca67; }
.basketball-collectible-card[data-card-series="curr"] { --collectible-series-layer:linear-gradient(125deg,rgba(232,97,45,.13),transparent 34%),radial-gradient(circle at 82% 8%,rgba(255,255,255,.06),transparent 31%); }
.basketball-collectible-card[data-card-series="class"] { --collectible-series-layer:repeating-linear-gradient(135deg,rgba(210,171,94,.07) 0 2px,transparent 2px 13px),radial-gradient(circle at 16% 0,rgba(210,171,94,.18),transparent 45%); }
.basketball-collectible-card[data-card-series="allt"] { --collectible-series-layer:radial-gradient(circle at 16% 18%,rgba(255,255,255,.13) 0 1px,transparent 2px),radial-gradient(circle at 78% 12%,rgba(166,129,255,.24),transparent 42%); background-size:34px 34px,auto; }
.basketball-collectible-card[data-card-series="generated"] { --collectible-series-layer:linear-gradient(135deg,rgba(93,205,185,.14),transparent 40%),radial-gradient(circle at 82% 0,rgba(93,205,185,.12),transparent 38%); }
.basketball-collectible-card__face { min-height:132px; margin:-4px -4px 12px; padding:17px 16px 14px; display:grid; align-content:end; gap:5px; border-bottom:1px solid color-mix(in srgb,var(--collectible-accent) 26%,transparent); background:radial-gradient(circle at 82% 24%,color-mix(in srgb,var(--collectible-accent) 22%,transparent),transparent 35%); }
.basketball-collectible-card__face header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.basketball-collectible-card__type { color:color-mix(in srgb,var(--collectible-accent) 72%,#fff); font-size:10px; font-weight:900; letter-spacing:.08em; }
.basketball-collectible-card__mark { width:52px; height:52px; display:grid; place-items:center; flex:0 0 auto; border:1px solid color-mix(in srgb,var(--collectible-accent) 52%,rgba(255,255,255,.2)); border-radius:15px 15px 15px 5px; background:color-mix(in srgb,var(--collectible-accent) 18%,#0b111a); color:var(--collectible-accent); font-size:18px; font-weight:950; box-shadow:0 9px 20px rgba(0,0,0,.28); }
.basketball-collectible-card__face h2,.basketball-collectible-card__face h3 { margin:2px 0 0; font-size:20px; letter-spacing:-.025em; }
.basketball-collectible-card__face p { margin:0; color:#aeb8c8; font-size:11px; line-height:1.45; }
.basketball-fusion-rank { --fusion-color:#aeb8c8; --fusion-soft:rgba(134,148,168,.14); min-width:62px; min-height:48px; padding:6px 9px; display:grid; place-content:center; place-items:center; gap:1px; flex:0 0 auto; border:1px solid color-mix(in srgb,var(--fusion-color) 55%,rgba(255,255,255,.12)); border-radius:14px 14px 14px 5px; background:linear-gradient(145deg,color-mix(in srgb,var(--fusion-color) 18%,#151d29),#0a0f17); box-shadow:0 9px 20px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.1); color:var(--fusion-color); line-height:1; text-align:center; }
.basketball-fusion-rank small { display:block; color:color-mix(in srgb,var(--fusion-color) 58%,#c5cfdd); font-size:8px; font-weight:900; letter-spacing:.12em; line-height:1; }
.basketball-fusion-rank strong { display:block; font-size:17px; font-weight:950; letter-spacing:-.02em; line-height:1; text-shadow:0 0 14px color-mix(in srgb,var(--fusion-color) 35%,transparent); }
.basketball-fusion-rank[data-rank="1"],.basketball-fusion-rank[data-rank="2"] { --fusion-color:#f2a06f; }
.basketball-fusion-rank[data-rank="3"],.basketball-fusion-rank[data-rank="4"] { --fusion-color:#b99aff; background:linear-gradient(145deg,rgba(166,129,255,.26),rgba(91,52,125,.14) 46%,#0a0f17); }
.basketball-fusion-rank[data-rank="5"] { --fusion-color:#ffcf6e; background:linear-gradient(145deg,rgba(255,215,118,.34),rgba(145,83,25,.2) 48%,#0a0f17); box-shadow:0 9px 24px rgba(255,175,61,.14),inset 0 1px rgba(255,255,255,.18); }
.basketball-fusion-rank--compact { min-width:0; min-height:25px; padding:3px 8px; display:inline-flex; align-items:center; justify-content:center; gap:5px; border-radius:999px; vertical-align:middle; }
.basketball-fusion-rank--compact small { letter-spacing:.06em; }
.basketball-fusion-rank--compact strong { font-size:11px; }
.basketball-player-summary--card {
  --player-card-accent: var(--collectible-accent,var(--accent-strong));
  min-height: 250px; padding: 0; overflow: hidden; isolation: isolate;
  grid-template: "portrait portrait" 178px "copy arrow" auto / minmax(0,1fr) 24px;
  align-items: stretch; gap: 0;
  border-color: color-mix(in srgb,var(--player-card-accent) 44%,var(--line));
  border-radius: 15px;
  background: linear-gradient(155deg,color-mix(in srgb,var(--player-card-accent) 8%,#182130),#090e16 68%);
  box-shadow: inset 0 1px rgba(255,255,255,.1),0 12px 30px rgba(0,0,0,.22);
}
.basketball-player-summary--card::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; z-index: 3; background: linear-gradient(90deg,transparent,var(--player-card-accent) 18% 82%,transparent); }
.basketball-player-summary--card::after { content: ""; position: absolute; z-index: -1; width: 160px; height: 260px; right: -90px; top: -70px; transform: rotate(27deg); background: linear-gradient(90deg,transparent,color-mix(in srgb,var(--player-card-accent) 16%,transparent),transparent); }
.basketball-player-summary--card .basketball-player-summary__portrait { grid-area: portrait; width: 100%; height: 178px; border: 0; border-radius: 0; position: relative; background: radial-gradient(circle at 50% 72%,color-mix(in srgb,var(--player-card-accent) 14%,transparent),transparent 56%),linear-gradient(155deg,#263244,#0d131c); }
.basketball-player-summary--card .basketball-player-summary__portrait::after { content: ""; position: absolute; inset: auto 0 0; height: 54px; background: linear-gradient(transparent,#0c121b); pointer-events: none; }
.basketball-player-summary--card .basketball-player-summary__portrait img { object-fit: contain; object-position: center bottom; filter: drop-shadow(0 10px 12px rgba(0,0,0,.35)); }
.basketball-player-summary--card .basketball-player-summary__copy { grid-area: copy; align-content: center; gap: 5px; padding: 13px 8px 14px 15px; }
.basketball-player-summary--card .basketball-player-summary__name strong { font-size: 18px; letter-spacing: -.025em; }
.basketball-player-summary--card .basketball-player-summary__copy small { color: color-mix(in srgb,var(--player-card-accent) 70%,#fff); font-weight: 800; }
.basketball-player-summary--card .basketball-player-summary__rating { position: absolute; z-index: 4; top: 13px; right: 13px; width: 56px; min-height: 56px; border: 1px solid rgba(255,255,255,.32); border-radius: 14px 14px 14px 5px; font-size: 20px; box-shadow: 0 10px 22px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.3); }
.basketball-player-summary--card .basketball-player-summary__arrow { grid-area: arrow; align-self: center; color: var(--player-card-accent); font-size: 27px; }
.basketball-player-summary--card .basketball-player-summary__corner-ribbon { align-items:center; background:linear-gradient(90deg,#286a50,#3c956f); border-block:1px solid rgba(174,237,206,.45); box-shadow:0 5px 14px rgba(0,0,0,.32); color:#e6fff2; display:flex; font-size:8px; font-weight:900; justify-content:center; letter-spacing:.06em; min-height:20px; pointer-events:none; position:absolute; right:-23px; bottom:17px; transform:rotate(-45deg); width:92px; z-index:5; }
.basketball-player-summary--card:hover { border-color: var(--player-card-accent); background: linear-gradient(155deg,color-mix(in srgb,var(--player-card-accent) 20%,#182130),#0b111a 68%); box-shadow: inset 0 1px rgba(255,255,255,.12),0 16px 34px rgba(0,0,0,.3); }
.basketball-player-summary--dense { min-height: 60px; grid-template-columns: 42px minmax(0,1fr) 36px 16px; padding: 6px 8px; }
.basketball-player-summary--dense .basketball-player-summary__portrait { width: 42px; height: 42px; }
.basketball-player-summary--dense .basketball-player-summary__rating { width: 36px; min-height: 30px; }
.basketball-player-summary--dense.basketball-player-summary--no-rating { grid-template-columns:42px minmax(0,1fr) 16px; }
@media (max-width: 390px) {
  .basketball-player-summary { grid-template-columns: 44px minmax(0,1fr) 36px 14px; gap: 8px; padding-inline: 8px; }
  .basketball-player-summary--no-rating { grid-template-columns:44px minmax(0,1fr) 14px; }
  .basketball-player-summary--dense.basketball-player-summary--no-rating { grid-template-columns:42px minmax(0,1fr) 14px; }
  .basketball-player-summary__portrait { width: 44px; height: 44px; }
  .basketball-player-summary--card { min-height: 238px; padding: 0; gap: 0; grid-template: "portrait portrait" 166px "copy arrow" auto / minmax(0,1fr) 22px; }
  .basketball-player-summary--card .basketball-player-summary__portrait { width: 100%; height: 166px; }
  .basketball-player-summary--card .basketball-player-summary__copy { padding: 12px 7px 13px 13px; }
  .basketball-player-summary--card .basketball-player-summary__rating { top: 11px; right: 11px; width: 52px; min-height: 52px; }
}
@media (prefers-reduced-motion: reduce) {
  .basketball-player-summary,.basketball-player-summary__arrow,.basketball-collectible-card { transition: none; }
  .basketball-player-summary:hover,.basketball-collectible-card:hover { transform: none; }
}

.basketball-coach-profile { min-width: 0; padding: 14px; display: grid; gap: 11px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); }
.basketball-coach-profile > header { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.basketball-coach-profile > header > div:first-child { min-width: 0; display: grid; gap: 3px; }
.basketball-coach-profile > header > div:first-child small { color: var(--accent-strong); font-size: 9px; font-weight: 850; letter-spacing: .12em; }
.basketball-coach-profile > header > div:first-child strong { overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.basketball-coach-profile__execution { display: grid; grid-template-columns: auto auto; align-items: center; gap: 1px 8px; text-align: right; }
.basketball-coach-profile__execution span { color: var(--muted); font-size: 10px; }
.basketball-coach-profile__execution b { grid-row: span 2; color: var(--accent-strong); font-size: 30px; line-height: 1; }
.basketball-coach-profile__execution small { color: var(--muted-2); font-size: 9px; }
.basketball-coach-profile__ratings,.basketball-coach-profile__styles { display: flex; flex-wrap: wrap; gap: 6px; }
.basketball-coach-profile__ratings span,.basketball-coach-profile__styles span { padding: 6px 8px; border: 1px solid var(--line-soft); border-radius: 7px; background: var(--surface-3); color: var(--muted); font-size: 10px; }
.basketball-coach-profile__ratings b,.basketball-coach-profile__styles b { color: var(--text); }
.basketball-coach-profile__styles small { color: var(--accent-strong); }
.basketball-coach-profile--compact { min-width: min(430px,42vw); padding: 12px 14px; background: rgba(10,14,20,.58); }
.basketball-coach-profile--compact .basketball-coach-profile__styles { justify-content: flex-end; }
@media (max-width: 620px) {
  .basketball-coach-profile--compact { min-width: 0; width: 100%; }
  .basketball-coach-profile--compact .basketball-coach-profile__styles { justify-content: flex-start; }
}

.basketball-game-browser { display: grid; gap: 10px; }
.basketball-game-toolbar { min-height: 56px; display: flex; align-items: center; gap: 12px; padding: 7px 8px; border: 1px solid var(--line); border-radius: 12px; background: color-mix(in srgb,var(--surface) 88%,transparent); }
.basketball-game-toolbar > span { display: flex; gap: 4px; padding: 4px; border:1px solid var(--line-soft); border-radius: 9px; background: color-mix(in srgb,var(--surface-3) 78%,transparent); }
.basketball-game-toolbar button { min-height: 44px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: var(--muted); font-weight: 750; cursor: pointer; }
.basketball-game-toolbar button[aria-pressed="true"] { background: var(--accent); color: #fff; }
.basketball-game-toolbar small { margin-left: auto; color: var(--muted); font-size: 12px; }
.basketball-game-toolbar .basketball-game-jump { border: 1px solid var(--line); background: var(--surface-2); color: var(--text); }
.basketball-game-toolbar .basketball-game-jump:hover { border-color:var(--accent); color:var(--accent-strong); }
.basketball-game-empty { min-height: 110px; display: grid; place-items: center; border: 1px dashed var(--line); border-radius: 12px; color: var(--muted); }
.basketball-game-row[hidden],.basketball-game-month[hidden],.basketball-game-empty[hidden] { display: none; }
.basketball-game-list { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); }
.basketball-game-month { margin: 0; padding: 17px 18px 11px; border-top: 1px solid var(--line); color: #d3dae3; font-size: 14px; }
.basketball-game-month:first-child { border-top: 0; }
.basketball-game-row { min-height: 58px; display: grid; grid-template-columns: 90px 52px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 8px 18px; border-top: 1px solid var(--line-soft); }
.basketball-game-row.final { background:linear-gradient(90deg,rgba(255,255,255,.025),transparent 62%); }
.basketball-game-row.final:has(.basketball-game-result.is-win) { box-shadow:inset 3px 0 #49c792; }
.basketball-game-row.final:has(.basketball-game-result.is-loss) { box-shadow:inset 3px 0 #e8612d; }
.basketball-game-row:not(.final) { background:color-mix(in srgb,var(--surface) 94%,#1d2a39); }
.basketball-game-row time { color: var(--muted); font-size: 12px; font-weight: 700; }
.basketball-game-location { color: var(--muted-2); font-size: 11px; }
.basketball-game-row > div { min-width: 0; display: flex; align-items: center; gap: 11px; }
.basketball-game-row > div b { width: 38px; color: var(--accent-strong); font-size: 12px; }
.basketball-game-row > div strong { overflow: hidden; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.basketball-game-status { padding: 5px 9px; border:1px solid var(--line-soft); border-radius: 99px; background: var(--surface-3); color: var(--muted); font-size: 11px; }
.basketball-game-status:has(.basketball-game-target) { padding:0; background:transparent; }
.basketball-game-target { min-height:38px; padding:0 12px; border:1px solid var(--line); border-radius:9px; background:var(--surface-3); color:var(--text); font:inherit; font-weight:800; cursor:pointer; }
.basketball-game-target:hover { border-color:var(--accent); color:var(--accent-strong); }
.basketball-game-score { font-size: 17px; font-weight: 800; }
.basketball-game-result { display: flex; align-items: center; gap: 10px; }
.basketball-game-outcome { width: 25px; height: 25px; display: grid; flex: 0 0 25px; place-items: center; border-radius: 7px; background: var(--surface-3); color: var(--muted); font-size: 11px; font-style: normal; font-weight: 900; }
.basketball-game-result.is-win .basketball-game-outcome { background: rgba(64,202,151,.13); color: #6ee7b7; }
.basketball-game-result.is-loss .basketball-game-outcome { background: rgba(232,97,45,.13); color: #ff9b70; }
.basketball-game-result button,.basketball-game-result a { padding: 5px 8px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-2); color: var(--muted); font-size: 10px; text-decoration: none; cursor: pointer; }
.basketball-game-result button:hover,.basketball-game-result a:hover { color: var(--text); border-color: var(--line-strong); }
.basketball-game-row.past:not(.final) { opacity: .62; }
.basketball-month-calendar { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 18px 46px rgba(0,0,0,.16); }
.basketball-month-calendar[hidden] { display:none; }
.basketball-month-calendar > header { min-height:82px; display:grid; grid-template-columns:minmax(88px,1fr) minmax(170px,1.2fr) minmax(88px,1fr); align-items:center; gap:12px; padding:12px 18px; border-bottom:1px solid var(--line); background:radial-gradient(circle at 50% -50%,rgba(232,97,45,.16),transparent 66%),var(--surface-2); }
.basketball-month-calendar > header > div { min-width:0; display:grid; justify-items:center; gap:2px; text-align:center; }
.basketball-month-calendar > header small { color:var(--muted-2); font-size:9px; font-weight:850; letter-spacing:.08em; }
.basketball-month-calendar > header h2 { margin:0; font-size:22px; letter-spacing:-.025em; }
.basketball-month-calendar > header button { width:auto; min-width:82px; height:44px; padding:0 13px; display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--surface-3) 82%,transparent); color:var(--text); cursor:pointer; }
.basketball-month-calendar > header button:first-child { justify-self:start; }
.basketball-month-calendar > header button:last-child { justify-self:end; }
.basketball-month-calendar > header button span { font-size:25px; font-weight:500; line-height:1; }
.basketball-month-calendar > header button small { color:inherit; font-size:10px; letter-spacing:0; }
.basketball-month-calendar > header button:hover:not(:disabled) { border-color:var(--accent); color:var(--accent-strong); }
.basketball-month-calendar > header button:disabled { cursor:not-allowed; opacity:.52; }
.basketball-month-calendar__weekdays { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-bottom:1px solid var(--line); background:rgba(255,255,255,.018); }
.basketball-month-calendar__weekdays span { min-width:0; padding:9px 4px; color:var(--muted); font-size:10px; font-weight:850; text-align:center; }
.basketball-month-calendar__grid { min-width:0; display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:1px; background:var(--line-soft); }
.basketball-calendar-week { display:contents; }
.basketball-calendar-day { min-width:0; min-height:116px; position:relative; padding:7px; overflow:hidden; background:linear-gradient(155deg,#111925,#0e151e); transition:background .15s,box-shadow .15s; }
.basketball-calendar-day.is-outside { background:#0c1118; opacity:.34; }
.basketball-calendar-day.is-weekend:not(.is-outside) { background:linear-gradient(155deg,#121b27,#0f161f); }
.basketball-calendar-day.is-today:not(.is-outside) { background:linear-gradient(155deg,color-mix(in srgb,var(--accent) 10%,#111925),#0e151e); }
.basketball-calendar-day.is-next { box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-strong) 68%,transparent); }
.basketball-calendar-day.is-simulating { z-index:2; background:linear-gradient(155deg,color-mix(in srgb,var(--accent) 18%,#111925),#0e151e); box-shadow:inset 0 0 0 2px var(--accent-strong),0 0 22px rgba(232,97,45,.16); animation:basketball-calendar-pulse 1.15s ease-in-out infinite alternate; }
.basketball-calendar-day.is-simulation-target { box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-strong) 58%,transparent); }
@keyframes basketball-calendar-pulse { to { box-shadow:inset 0 0 0 2px var(--accent-strong),0 0 30px rgba(232,97,45,.3); } }
.basketball-calendar-day.is-actionable:hover { z-index:1; background:#141d28; }
.basketball-calendar-day__head { width:100%; min-height:24px; display:flex; align-items:center; justify-content:space-between; gap:4px; margin:0 0 3px; padding:0 2px; border:0; border-radius:5px; background:transparent; text-align:left; }
button.basketball-calendar-day__head { cursor:pointer; }
button.basketball-calendar-day__head:hover,button.basketball-calendar-day__head:focus-visible { background:color-mix(in srgb,var(--accent-strong) 13%,transparent); outline:1px solid color-mix(in srgb,var(--accent-strong) 55%,transparent); outline-offset:2px; }
.basketball-calendar-day__head time { color:#aeb9c7; font-size:12px; font-weight:850; line-height:1; font-variant-numeric:tabular-nums; }
.basketball-calendar-day__weekday { display:none; }
.basketball-calendar-day__head span { opacity:0; color:var(--accent-strong); font-size:7px; font-weight:850; transition:opacity .15s; }
.basketball-calendar-day.is-today .basketball-calendar-day__head time { width:26px; height:26px; display:grid; place-items:center; border-radius:8px; background:var(--accent); color:#fff; box-shadow:0 4px 12px rgba(232,97,45,.24); }
.basketball-calendar-day.is-actionable:hover .basketball-calendar-day__head span,.basketball-calendar-day__head:focus-visible span,.basketball-calendar-day.is-today .basketball-calendar-day__head span,.basketball-calendar-day.is-simulating .basketball-calendar-day__head span,.basketball-calendar-day.is-simulation-target .basketball-calendar-day__head span { opacity:1; }
.basketball-calendar-day.is-simulating .basketball-calendar-day__head time,.basketball-calendar-day.is-simulating .basketball-calendar-day__head span { color:#fff; }
.basketball-calendar-day.is-next .basketball-calendar-day__head time { color:var(--accent-strong); }
.basketball-calendar-rest { min-height:72px; display:grid; place-content:center; justify-items:center; gap:7px; border:1px dashed color-mix(in srgb,var(--line) 72%,transparent); border-radius:10px; background:linear-gradient(145deg,rgba(255,255,255,.014),rgba(0,0,0,.055)); color:var(--muted-2); user-select:none; }
.basketball-calendar-rest i { width:28px; height:18px; position:relative; display:block; border:1px solid color-mix(in srgb,var(--muted-2) 46%,transparent); border-radius:3px; opacity:.48; }
.basketball-calendar-rest i::before { content:""; position:absolute; top:-1px; bottom:-1px; left:50%; border-left:1px solid currentColor; }
.basketball-calendar-rest i::after { content:""; position:absolute; top:50%; left:50%; width:7px; height:7px; border:1px solid currentColor; border-radius:50%; transform:translate(-50%,-50%); background:#111923; }
.basketball-calendar-rest span { font-size:8px; font-weight:750; letter-spacing:.02em; }
.basketball-calendar-day.is-actionable:hover .basketball-calendar-rest { border-color:color-mix(in srgb,var(--accent-strong) 32%,var(--line)); color:var(--accent-strong); }
.basketball-calendar-game { width:100%; min-width:0; min-height:76px; display:grid; grid-template-rows:minmax(0,1fr) auto; padding:6px; border:1px solid var(--line-soft); border-left:3px solid #557aa5; border-radius:10px; background:linear-gradient(145deg,rgba(84,155,255,.08),rgba(7,11,17,.62)); color:var(--text); text-align:left; text-decoration:none; transition:border-color .15s; }
.basketball-calendar-day:hover .basketball-calendar-game { border-color:color-mix(in srgb,var(--accent-strong) 34%,var(--line)); }
.basketball-calendar-game.is-home { border-left-color:#e8612d; }
.basketball-calendar-game.is-final { background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(7,11,17,.82)); }
.basketball-calendar-game.is-win { border-color:color-mix(in srgb,#49c792 34%,var(--line)); box-shadow:inset 0 -2px rgba(64,202,151,.58); }
.basketball-calendar-game.is-loss { border-color:color-mix(in srgb,#e8612d 36%,var(--line)); box-shadow:inset 0 -2px rgba(232,97,45,.62); }
.basketball-team-mark { --team-primary:#59677a; --team-secondary:#dce4ee; width:42px; height:42px; position:relative; display:grid; flex:0 0 42px; place-items:center; overflow:hidden; border:1px solid color-mix(in srgb,var(--team-primary) 44%,rgba(255,255,255,.13)); border-radius:12px; background:color-mix(in srgb,var(--team-primary) 13%,rgba(255,255,255,.035)); }
.basketball-team-mark img { position:absolute; inset:4px; width:calc(100% - 8px); height:calc(100% - 8px); object-fit:contain; filter:drop-shadow(0 3px 4px rgba(0,0,0,.34)); }
.basketball-team-mark b { padding:0 2px; color:var(--team-secondary); font-size:8px; font-weight:950; letter-spacing:-.03em; text-align:center; }
.basketball-team-link { min-width:0; display:flex; align-items:center; gap:11px; padding:8px; border:1px solid transparent; border-radius:11px; color:var(--text); text-decoration:none; transition:background .15s,border-color .15s; }
.basketball-team-link:hover { border-color:var(--line); background:rgba(255,255,255,.035); }
.basketball-team-link > span:last-child { min-width:0; display:grid; gap:2px; }
.basketball-team-link small { color:var(--muted); font-size:9px; font-weight:850; }
.basketball-team-link strong { overflow:hidden; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-team-dialog { width:min(920px,calc(100vw - 32px)); max-height:min(820px,calc(100dvh - 32px)); padding:0; overflow:hidden; border:1px solid var(--line-strong); border-radius:18px; background:#0d1218; color:var(--text); box-shadow:0 30px 90px rgba(0,0,0,.68); }
.basketball-team-dialog::backdrop { background:rgba(3,6,10,.8); backdrop-filter:blur(6px); }
.basketball-team-dialog > header { position:absolute; z-index:5; top:12px; right:12px; left:12px; display:flex; align-items:center; justify-content:space-between; pointer-events:none; }
.basketball-team-dialog > header button { min-height:38px; pointer-events:auto; }
.basketball-team-dialog > header [data-team-dialog-back] { padding:0 11px; border:1px solid var(--line); border-radius:9px; background:rgba(10,15,22,.88); color:var(--text); cursor:pointer; }
.basketball-team-dialog [data-team-dialog-content] { max-height:min(820px,calc(100dvh - 32px)); overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; }
.basketball-team-dialog__loading { min-height:320px; display:grid; place-items:center; color:var(--muted); }
.basketball-team-dialog__view .basketball-team-profile__hero { min-height:154px; padding:26px 64px 24px 28px; }
.basketball-team-dialog__view .basketball-team-profile__mark { width:86px; height:86px; flex-basis:86px; }
.basketball-team-dialog__view .basketball-team-profile__metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
.basketball-team-dialog__roster { padding:16px 18px 22px; }
.basketball-team-dialog__roster .basketball-team-roster { border:1px solid var(--line); border-radius:13px; background:var(--surface); }
.basketball-local-game-dialog { width:min(820px,calc(100vw - 30px)); max-height:min(820px,calc(100dvh - 30px)); padding:0; overflow:hidden; border:1px solid var(--line-strong); border-radius:18px; background:#0d141d; color:var(--text); box-shadow:0 30px 90px rgba(0,0,0,.7); }
.basketball-local-game-dialog::backdrop { background:rgba(2,5,9,.86); backdrop-filter:blur(7px); }
.basketball-local-game-dialog > header { min-height:112px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:24px; padding:20px 24px; border-bottom:1px solid var(--line); background:radial-gradient(circle at 0 0,rgba(232,97,45,.17),transparent 52%),linear-gradient(120deg,#182331,#0d141d); }
.basketball-local-game-dialog > header h2 { margin:4px 0 0; font-size:20px; }
.basketball-local-game-score { display:flex; align-items:center; gap:10px; font-variant-numeric:tabular-nums; }
.basketball-local-game-score strong { min-width:42px; font-size:32px; text-align:center; }
.basketball-local-game-score span { color:var(--muted); }
.basketball-local-game-dialog > header > div:last-child { display:grid; justify-items:end; gap:3px; }
.basketball-local-game-dialog > header > div:last-child b { color:var(--accent-strong); font-size:11px; }
.basketball-local-game-dialog > header > div:last-child span { font-size:18px; font-variant-numeric:tabular-nums; }
.basketball-local-game-progress { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:13px 20px; border-bottom:1px solid var(--line-soft); }
.basketball-local-game-progress progress { width:100%; height:7px; accent-color:var(--accent); }
.basketball-local-game-progress span { color:var(--muted); font-size:9px; }
.basketball-local-game-toolbar { min-height:56px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 20px; border-bottom:1px solid var(--line-soft); background:rgba(255,255,255,.018); }
.basketball-local-game-toolbar label { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:10px; font-weight:800; }
.basketball-local-game-toolbar select { min-width:128px; min-height:38px; padding:0 30px 0 10px; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); color:var(--text); }
.basketball-local-game-toolbar small { color:var(--muted); font-size:9px; }
.basketball-local-game-feed { padding:17px 20px; }
.basketball-local-game-feed > header { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:10px; }
.basketball-local-game-feed > header strong { font-size:14px; }
.basketball-local-game-feed > header small { color:var(--muted); font-size:8px; }
.basketball-local-game-feed ol { height:330px; margin:0; padding:0; overflow-y:auto; border:1px solid var(--line); border-radius:12px; background:#090f16; list-style:none; }
.basketball-local-game-feed li { min-height:45px; display:grid; grid-template-columns:48px minmax(0,1fr) 50px; align-items:center; gap:10px; padding:7px 12px; border-bottom:1px solid var(--line-soft); }
.basketball-local-game-feed li time { color:var(--accent-strong); font-size:9px; font-variant-numeric:tabular-nums; }
.basketball-local-game-feed li span { font-size:10px; line-height:1.4; }
.basketball-local-game-feed li b { font-size:11px; text-align:right; font-variant-numeric:tabular-nums; }
.basketball-local-game-dialog > footer { min-height:66px; display:flex; align-items:center; justify-content:flex-end; gap:8px; padding:11px 20px 16px; border-top:1px solid var(--line); }
.basketball-local-game-dialog > footer > div { display:flex; gap:8px; }
.basketball-local-game-dialog > footer button { min-height:44px; }
.basketball-calendar-game__mark { width:38px; height:38px; flex-basis:38px; border-color:color-mix(in srgb,var(--team-primary) 44%,rgba(255,255,255,.13)); background:color-mix(in srgb,var(--team-primary) 13%,rgba(255,255,255,.035)); }
.basketball-calendar-game__mark.has-image b { visibility:hidden; }
.basketball-calendar-game__team { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr); align-items:center; gap:7px; color:inherit; text-decoration:none; border-radius:7px; }
.basketball-calendar-game__team:hover .basketball-calendar-game__copy strong { color:var(--accent-strong); }
.basketball-calendar-game__copy { min-width:0; display:grid; gap:2px; }
.basketball-calendar-game__copy strong,.basketball-calendar-game__copy small,.basketball-calendar-game__copy em { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.basketball-calendar-game__copy strong { font-size:11px; }
.basketball-calendar-game__copy small { color:var(--muted); font-size:8px; }
.basketball-calendar-game__result { min-height:24px; margin-top:3px; padding:3px 4px 0; display:flex; align-items:center; justify-content:space-between; gap:5px; border:0; border-top:1px solid var(--line-soft); background:transparent; color:var(--text); font-size:10px; font-style:normal; font-weight:900; font-variant-numeric:tabular-nums; text-decoration:none; cursor:pointer; }
.basketball-calendar-game__result b { margin-left:auto; font-size:11px; }
.basketball-calendar-game__outcome { width:19px; height:19px; display:grid; flex:0 0 19px; place-items:center; border-radius:6px; background:rgba(232,97,45,.14); color:#ff9b70; font-size:9px; font-style:normal; font-weight:950; }
.basketball-calendar-game__result.is-win .basketball-calendar-game__outcome { background:rgba(64,202,151,.15); color:#6ee7b7; }
.basketball-calendar-game__result:hover { color:var(--accent-strong); }
.basketball-calendar-mobile-summary { display:none; }
.basketball-month-calendar > footer { min-height:48px; display:flex; align-items:center; gap:15px; padding:9px 14px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; }
.basketball-month-calendar > footer span { display:flex; align-items:center; gap:6px; }
.basketball-month-calendar > footer i { width:3px; height:14px; border-radius:99px; background:#557aa5; }
.basketball-month-calendar > footer i.is-today { width:10px; height:10px; border-radius:3px; background:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent); }
.basketball-month-calendar > footer i.is-home { background:#e8612d; }
.basketball-month-calendar > footer small { margin-left:auto; color:var(--muted); }
.basketball-month-calendar > footer .basketball-calendar-hint { color:var(--muted-2); }
.basketball-calendar-records { display:flex; align-items:center; gap:5px; margin-left:auto; }
.basketball-calendar-records > span { min-height:32px; padding:4px 9px; display:grid!important; align-content:center; gap:0!important; border:1px solid var(--line-soft); border-radius:8px; background:rgba(255,255,255,.025); }
.basketball-calendar-records small { margin:0!important; color:var(--muted-2)!important; font-size:7px; font-weight:850; }
.basketball-calendar-records b { color:var(--text); font-size:10px; font-variant-numeric:tabular-nums; }
.basketball-game-browser[data-game-view="calendar"] [data-game-list-view],.basketball-game-browser[data-game-view="calendar"] [data-game-list-tools] { display:none; }
.basketball-game-browser[data-game-view="list"] [data-month-calendar] { display:none; }

/* Shared tactics workbench. Modes provide their own roster and coach data only. */
.basketball-tactics-editor { width:100%; max-width:1120px; margin-inline:auto; }
.basketball-tactics-editor__heading { min-height:96px; display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding:20px 22px; border-bottom:1px solid var(--line); background:radial-gradient(circle at 100% 0,color-mix(in srgb,var(--accent) 13%,transparent),transparent 48%),var(--surface-2); }
.basketball-tactics-editor__heading h2,.basketball-tactics-editor__heading p { margin:3px 0 0; }
.basketball-tactics-editor__heading > div > p:last-child { color:var(--muted); font-size:13px; line-height:1.55; }
.basketball-tactics-editor__heading > span { color:var(--muted-2); font-size:11px; white-space:nowrap; }
.basketball-tactics-editor__body { display:grid; gap:16px; padding:20px; }
.basketball-tactics-panel { padding:16px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(145deg,rgba(255,255,255,.025),transparent 45%),var(--surface); }
.basketball-tactics-panel > header { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:13px; }
.basketball-tactics-panel > header > div { display:flex; align-items:center; gap:9px; }
.basketball-tactics-panel > header small { width:26px; height:26px; display:inline-flex; align-items:center; justify-content:center; border:1px solid color-mix(in srgb,var(--accent) 30%,transparent); border-radius:7px; background:color-mix(in srgb,var(--accent) 12%,transparent); color:var(--accent-strong); font-size:9px; font-weight:900; }
.basketball-tactics-panel > header h3 { margin:0; font-size:17px; }
.basketball-tactics-panel > header p { margin:0; color:var(--muted); font-size:12px; text-align:right; }
.basketball-tactics-control-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.basketball-tactics-control-grid .basketball-tactic-select { padding:10px; border:1px solid var(--line-soft); border-radius:10px; background:color-mix(in srgb,var(--surface-3) 60%,#080d14); }
.basketball-tactics-control-grid .basketball-tactic-select > span { color:var(--text); font-weight:750; }
.basketball-tactics-control-grid .basketball-tactic-select select { background:var(--surface-3); border-color:var(--line-strong); }
.basketball-tactics-coach-panel .basketball-coach-profile { margin:0; }
.basketball-coach-workbench__layout { align-items:stretch; display:grid; gap:12px; grid-template-columns:minmax(220px,.66fr) minmax(0,1.34fr); }
.basketball-coach-workbench__source { align-content:start; background:var(--surface-3); border:1px solid var(--line-soft); border-radius:11px; display:grid; gap:5px; min-width:0; padding:14px; }
.basketball-coach-workbench__source > small { color:var(--accent-strong); font-size:8px; font-weight:900; letter-spacing:.12em; }
.basketball-coach-workbench__source > span { color:var(--muted); font-size:9px; }
.basketball-coach-workbench__source > strong { color:var(--text); font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.basketball-coach-workbench__source > p { color:var(--muted-2); font-size:9px; line-height:1.55; margin:5px 0 0; }
.basketball-coach-workbench__profile { min-width:0; }
.basketball-coach-workbench__profile > .basketball-coach-profile { height:100%; }
.basketball-coach-workbench__empty { align-items:center; border:1px dashed var(--line-strong); border-radius:11px; color:var(--muted); display:flex; height:100%; margin:0; min-height:110px; padding:16px; }
.pregame-roster-filters { display:flex; gap:6px; margin:0 0 10px; overflow-x:auto; scrollbar-width:none; }
.pregame-roster-filters::-webkit-scrollbar { display:none; }
.pregame-roster-filters button { align-items:center; background:var(--surface-3); border:1px solid var(--line-soft); border-radius:999px; color:var(--muted); cursor:pointer; display:flex; flex:0 0 auto; font-size:10px; font-weight:800; gap:6px; min-height:34px; padding:6px 11px; }
.pregame-roster-filters button b { align-items:center; background:rgba(255,255,255,.06); border-radius:999px; color:var(--text); display:inline-flex; font-size:9px; justify-content:center; min-width:20px; padding:2px 5px; }
.pregame-roster-filters button.is-active { background:color-mix(in srgb,var(--accent) 14%,var(--surface-3)); border-color:color-mix(in srgb,var(--accent) 42%,var(--line)); color:var(--accent-strong); }
.basketball-tactics-rotation-panel > .basketball-lineup-board { max-width:900px; margin-inline:auto; }
.basketball-tactics-rotation-panel > .fast-scorer-plan,.basketball-tactics-rotation-panel > .pregame-roster-editor { margin-top:16px; }
.basketball-lineup-sources { display:none!important; }
.basketball-plan-slots { background:var(--surface); border:1px solid var(--line); border-radius:14px; box-sizing:border-box; max-width:100%; min-width:0; overflow:hidden; padding:18px; width:100%; }.basketball-plan-slots > header { align-items:start; display:flex; gap:24px; justify-content:space-between; min-width:0; }.basketball-plan-slots > header h2,.basketball-plan-slots > header p { margin:2px 0; }.basketball-plan-slots > header > div > p:last-child,.basketball-plan-slots > header > small { color:var(--muted); font-size:12px; line-height:1.55; }.basketball-plan-slots > header > small { max-width:38ch; text-align:right; }
.basketball-plan-slots .lineup-scheme-tabs { display:grid; gap:7px; grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:14px; }.basketball-plan-slots .lineup-scheme-tabs button { background:var(--surface-2); border:1px solid var(--line); border-radius:10px; color:var(--text); cursor:pointer; display:grid; gap:3px; min-height:76px; min-width:0; padding:10px 11px; text-align:left; }.basketball-plan-slots .lineup-scheme-tabs button > span { color:var(--muted); font-size:10px; font-weight:850; }.basketball-plan-slots .lineup-scheme-tabs em { color:var(--accent-strong); font-size:8px; font-style:normal; margin-left:5px; }.basketball-plan-slots .lineup-scheme-tabs strong { font-size:13px; }.basketball-plan-slots .lineup-scheme-tabs small { font-size:10px; }.basketball-plan-slots .lineup-scheme-tabs strong,.basketball-plan-slots .lineup-scheme-tabs small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.basketball-plan-slots .lineup-scheme-tabs button[aria-selected="true"] { background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 20%,transparent),var(--surface-2)); border-color:var(--accent); box-shadow:inset 3px 0 var(--accent); }
.basketball-plan-slots .lineup-scheme-panels { margin-top:8px; }.basketball-plan-slots .lineup-scheme-panels article { align-items:center; background:var(--surface-2); border:1px solid var(--line); border-radius:10px; display:flex; gap:14px; justify-content:space-between; padding:10px; }.basketball-plan-slots .lineup-scheme-panels article.is-active { border-color:color-mix(in srgb,var(--accent) 52%,var(--line)); }.basketball-plan-slots .lineup-scheme-panels article > div:first-child { align-items:center; display:grid; gap:4px; grid-template-columns:auto minmax(150px,260px); }.basketball-plan-slots .lineup-scheme-panels small,.basketball-plan-slots .lineup-scheme-panels span { color:var(--muted); font-size:11px; }.basketball-plan-slots .lineup-scheme-panels span { grid-column:1/-1; }.basketball-plan-slots .lineup-scheme-panels input { background:var(--surface-3); border:1px solid var(--line-strong); border-radius:7px; color:var(--text); min-height:44px; min-width:0; padding:8px; }.basketball-plan-slots .lineup-scheme-panels article > div:last-child { display:flex; gap:7px; }.basketball-plan-slots .lineup-scheme-panels button { align-items:center; background:var(--surface-3); border:1px solid var(--line-strong); border-radius:8px; color:var(--text); cursor:pointer; display:inline-flex; font:inherit; font-size:12px; font-weight:800; justify-content:center; min-height:44px; padding:9px 13px; transition:background .15s,border-color .15s,color .15s,transform .15s; white-space:nowrap; }.basketball-plan-slots .lineup-scheme-panels button:hover:not(:disabled),.basketball-plan-slots .lineup-scheme-panels button:focus-visible { background:color-mix(in srgb,var(--accent) 10%,var(--surface-3)); border-color:var(--accent); color:var(--accent-strong); }.basketball-plan-slots .lineup-scheme-panels button:active:not(:disabled) { transform:translateY(1px); }.basketball-plan-slots .lineup-scheme-panels button.primary-button { background:var(--accent); border-color:var(--accent-strong); box-shadow:0 7px 18px rgba(232,97,45,.18); color:#fff; }.basketball-plan-slots .lineup-scheme-panels button.primary-button:hover:not(:disabled),.basketball-plan-slots .lineup-scheme-panels button.primary-button:focus-visible { background:var(--accent-strong); color:#fff; }.basketball-plan-slots .lineup-scheme-panels button.lineup-preset-reset { background:transparent; color:var(--muted); }.basketball-plan-slots .lineup-scheme-panels button:disabled { box-shadow:none; cursor:not-allowed; opacity:.42; transform:none; }
.basketball-roster-workspace { border:1px solid var(--line); border-radius:14px; background:var(--surface); overflow:hidden; }.basketball-roster-workspace > summary { align-items:end; cursor:pointer; display:flex; justify-content:space-between; list-style:none; padding:18px; }.basketball-roster-workspace > summary::-webkit-details-marker { display:none; }.basketball-roster-workspace > summary h2,.basketball-roster-workspace > summary p { margin:2px 0; }.basketball-roster-workspace > summary p:last-child { color:var(--muted); font-size:12px; }.basketball-roster-workspace > summary > span { color:var(--muted); display:flex; gap:8px; }.basketball-roster-filters { border-top:1px solid var(--line); display:flex; gap:6px; overflow-x:auto; padding:12px 18px 0; }.basketball-roster-filters button { background:var(--surface-2); border:1px solid var(--line); border-radius:999px; color:var(--muted); min-height:44px; padding:7px 12px; white-space:nowrap; }.basketball-roster-filters button.is-active { border-color:var(--accent); color:var(--accent-strong); }.basketball-fixed-roster-list { display:grid; gap:9px; grid-template-columns:repeat(2,minmax(0,1fr)); padding:12px 18px 18px; }.basketball-fixed-roster-list article { min-width:0; }.basketball-fixed-roster-card { background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 5%,var(--surface-2)),var(--surface-2)); border:1px solid var(--line); border-radius:12px; overflow:hidden; }.basketball-fixed-roster-card .basketball-player-summary { background:transparent; border:0; border-radius:0; min-height:78px; width:100%; }.basketball-fixed-roster-card__plan { align-items:center; border-top:1px solid var(--line-soft); display:flex; flex-wrap:wrap; gap:6px; padding:9px 11px 11px; }.basketball-fixed-roster-card__plan span { background:var(--surface-3); border:1px solid var(--line); border-radius:999px; color:var(--muted); font-size:10px; font-weight:750; line-height:1; padding:6px 8px; white-space:nowrap; }.basketball-fixed-roster-card__plan span.is-unit { background:color-mix(in srgb,var(--accent) 12%,var(--surface-3)); border-color:color-mix(in srgb,var(--accent) 42%,var(--line)); color:var(--accent-strong); }.basketball-fixed-roster-card__plan b { color:var(--text); font-size:inherit; }
.basketball-roster-filterbar { align-items:center; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:10px 18px; justify-content:space-between; padding:12px 18px 0; }
.basketball-roster-filterbar .basketball-roster-filters { border:0; flex:1 1 auto; justify-content:flex-start; padding:0; }
.basketball-roster-filterbar .basketball-position-filter { flex:0 1 auto; }
.pregame-minute-validation { align-items:center; background:linear-gradient(110deg,color-mix(in srgb,#f0b14b 14%,var(--surface-2)),var(--surface-2)); border:1px solid color-mix(in srgb,#f0b14b 55%,var(--line)); border-radius:11px; display:flex; gap:14px; justify-content:space-between; margin:10px 0; padding:11px 12px; }
.pregame-minute-validation[hidden] { display:none; }
.pregame-minute-validation > span { display:grid; gap:3px; min-width:0; }
.pregame-minute-validation strong { color:var(--text); font-size:12px; }
.pregame-minute-validation small { color:var(--muted); font-size:10px; line-height:1.45; }
.pregame-minute-validation button { background:#d97a20; border:1px solid #f1a652; border-radius:8px; color:#fff; cursor:pointer; flex:0 0 auto; font-size:11px; font-weight:850; min-height:44px; padding:8px 13px; }
.is-invalid [data-minute-total] { color:#f0b14b; }
.basketball-lineup-workbench { background:var(--surface); border:1px solid var(--line); border-radius:16px; margin-top:16px; overflow:hidden; }
.basketball-lineup-workbench > header { align-items:end; background:linear-gradient(110deg,rgba(232,97,45,.1),transparent 52%); border-bottom:1px solid var(--line); display:flex; gap:24px; justify-content:space-between; padding:18px; }
.basketball-lineup-workbench > header h2,.basketball-lineup-workbench > header p { margin:2px 0; }.basketball-lineup-workbench > header > div > p:last-child { color:var(--muted); font-size:13px; line-height:1.55; }
.lineup-unit-tabs { display:flex; gap:5px; }.lineup-unit-tabs button { background:var(--surface-2); border:1px solid var(--line-strong); border-radius:8px; color:var(--muted); cursor:pointer; min-height:44px; padding:8px 10px; white-space:nowrap; }.lineup-unit-tabs button b { background:var(--surface-3); border-radius:999px; color:var(--text); font-size:9px; margin-left:4px; padding:3px 5px; }.lineup-unit-tabs button[aria-selected="true"] { background:var(--accent-soft); border-color:var(--accent); color:var(--text); }
.pregame-minute-editor input { min-height:44px; }
.lineup-unit-panel { padding:18px; }.lineup-unit-panel > .basketball-lineup-board { background:transparent; border:0; margin:0 auto; max-width:1080px; padding:0; }.lineup-unit-panel--tactics { background:var(--surface-2); }.lineup-unit-panel--tactics > .basketball-tactics-editor { margin:0; max-width:none; }
@media(max-width:760px) { .basketball-lineup-workbench > header { align-items:stretch; flex-direction:column; }.lineup-unit-tabs { overflow-x:auto; padding-bottom:4px; scroll-snap-type:x proximity; scrollbar-width:none; }.lineup-unit-tabs::-webkit-scrollbar { display:none; }.lineup-unit-tabs button { flex:0 0 auto; min-height:44px; scroll-snap-align:start; }.lineup-unit-panel { padding:14px; } }
@media(max-width:760px) { .basketball-plan-slots { padding:14px; }.basketball-plan-slots > header { flex-direction:column; }.basketball-plan-slots > header > small { max-width:none; text-align:left; }.basketball-plan-slots .lineup-scheme-tabs { grid-auto-columns:minmax(150px,45vw); grid-auto-flow:column; grid-template-columns:none; max-width:100%; overflow-x:auto; width:100%; }.basketball-plan-slots .lineup-scheme-panels article { align-items:stretch; flex-direction:column; }.basketball-plan-slots .lineup-scheme-panels article > div:first-child { grid-template-columns:1fr; }.basketball-plan-slots .lineup-scheme-panels span { grid-column:auto; }.basketball-plan-slots .lineup-scheme-panels article > div:last-child { display:grid; grid-template-columns:1fr 1fr; }.basketball-plan-slots .lineup-scheme-panels button { min-width:0; white-space:normal; }.basketball-plan-slots .lineup-scheme-panels button.primary-button { grid-column:1/-1; }.basketball-fixed-roster-list { grid-template-columns:1fr; padding-inline:14px; }.basketball-roster-workspace > summary { align-items:start; padding:14px; }.basketball-roster-workspace > summary > span small { display:none; }.basketball-roster-filters { padding-inline:14px; }.basketball-roster-filterbar { align-items:stretch; padding-inline:14px; }.basketball-roster-filterbar .basketball-position-filter { flex:1 1 100%; }.pregame-minute-validation { align-items:stretch; flex-direction:column; }.pregame-minute-validation button { width:100%; } }
.basketball-tactics-phase-panel .basketball-phase-strategies { gap:9px; }
.basketball-tactics-savebar { position:sticky; z-index:5; bottom:16px; margin-top:2px; padding:14px 18px; border:1px solid var(--line); border-radius:14px; background:color-mix(in srgb,#080b12 95%,transparent); box-shadow:0 14px 34px rgba(0,0,0,.28); backdrop-filter:blur(14px); }
@media (max-width:760px) {
  .basketball-tactics-editor__heading { min-height:0; align-items:flex-start; flex-direction:column; gap:8px; padding:17px 15px; }
  .basketball-tactics-editor__heading > span { white-space:normal; }
  .basketball-tactics-editor__body { padding:14px; }
  .basketball-tactics-panel { padding:14px; }
  .basketball-tactics-panel > header { align-items:flex-start; flex-direction:column; gap:6px; }
  .basketball-tactics-panel > header p { padding-left:33px; text-align:left; }
  .basketball-tactics-control-grid { grid-template-columns:1fr; }
  .basketball-tactics-savebar { bottom:calc(10px + env(safe-area-inset-bottom)); align-items:stretch; flex-direction:column; }
  .basketball-tactics-savebar button { width:100%; }
}
@media (max-width:700px) { .basketball-coach-workbench__layout { grid-template-columns:1fr; }.basketball-coach-workbench__source > strong { white-space:normal; }.pregame-roster-filters button { min-height:44px; padding-inline:13px; } }
@media (max-width: 700px) {
  .basketball-game-toolbar { align-items: stretch; flex-wrap: wrap; }
  .basketball-game-toolbar > span { width: 100%; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .basketball-game-toolbar > .basketball-game-view-toggle { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .basketball-game-toolbar button { min-height: 44px; padding-inline: 8px; }
  .basketball-game-toolbar small { margin: 0 auto 0 4px; align-self: center; }
  .basketball-game-toolbar .basketball-game-jump { flex:1 1 auto; }
  .basketball-game-row { grid-template-columns: 72px 40px minmax(0,1fr); padding-inline: 13px; }
  .basketball-game-row > :last-child { grid-column: 3; justify-self: start; }
  .basketball-game-target { min-height:44px; }
  .basketball-month-calendar { border-radius:13px; }
  .basketball-month-calendar > header { min-height:64px; grid-template-columns:48px minmax(0,1fr) 48px; gap:5px; padding:8px 7px; }
  .basketball-month-calendar > header button { min-width:44px; width:44px; height:44px; padding:0; gap:0; border-radius:10px; }
  .basketball-month-calendar > header button small { display:none; }
  .basketball-month-calendar > header button span { font-size:19px; }
  .basketball-month-calendar > header h2 { font-size:18px; }
  .basketball-month-calendar > header > div > small { font-size:7px; }
  .basketball-month-calendar__weekdays { display:none; }
  .basketball-month-calendar__grid { display:block; padding:8px; background:#0b1118; }
  .basketball-calendar-week { display:grid; gap:5px; margin-bottom:8px; padding:7px; border:1px solid var(--line-soft); border-radius:12px; background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(0,0,0,.08)); }
  .basketball-calendar-week:last-child { margin-bottom:0; }
  .basketball-calendar-week::before { content:"第 " attr(data-calendar-week) " 周"; padding:2px 5px 4px; color:var(--muted-2); font-size:8px; font-weight:900; letter-spacing:.08em; }
  .basketball-calendar-day { min-height:58px; display:grid; grid-template-columns:52px minmax(0,1fr); align-items:center; gap:7px; padding:5px; overflow:visible; border:1px solid transparent; border-radius:10px; cursor:pointer; touch-action:manipulation; }
  .basketball-calendar-day.is-outside { display:none; }
  .basketball-calendar-day.is-empty { min-height:50px; }
  .basketball-calendar-day.is-selected { z-index:1; box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent-strong) 72%,transparent); }
  .basketball-calendar-day__head { min-height:44px; display:grid; place-content:center; justify-items:center; gap:3px; margin:0; padding:4px; border-right:1px solid var(--line-soft); text-align:center; }
  button.basketball-calendar-day__head { min-height:44px; margin:0; padding:4px; }
  .basketball-calendar-day__head time { font-size:15px; }
  .basketball-calendar-day__weekday { display:block; color:var(--muted); font-size:8px; font-weight:750; }
  .basketball-calendar-day.is-today .basketball-calendar-day__head time { width:22px; height:22px; border-radius:7px; }
  .basketball-calendar-day__head span { display:none; }
  .basketball-calendar-game { min-height:52px; padding:5px 7px; display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:1fr; align-items:center; gap:8px; border-left-width:3px; border-radius:9px; text-align:left; }
  .basketball-calendar-game__team { grid-template-columns:34px minmax(0,1fr); place-items:initial; align-items:center; gap:8px; }
  .basketball-calendar-game__mark { width:34px; height:34px; flex-basis:34px; border-radius:9px; }
  .basketball-calendar-game__mark img { inset:3px; width:calc(100% - 6px); height:calc(100% - 6px); }
  .basketball-calendar-game__copy { display:grid; }
  .basketball-calendar-game__copy strong { font-size:12px; }
  .basketball-calendar-game__copy small { font-size:8px; }
  .basketball-calendar-game__result { width:auto; min-height:36px; margin:0; padding:0 2px 0 8px; justify-content:center; border-top:0; border-left:1px solid var(--line-soft); font-size:9px; }
  .basketball-calendar-game__result b { margin:0; font-size:11px; white-space:nowrap; }
  .basketball-calendar-game__outcome { width:20px; height:20px; flex-basis:20px; border-radius:6px; font-size:8px; }
  .basketball-calendar-rest { min-height:40px; display:flex; align-items:center; justify-content:flex-start; gap:8px; padding:0 10px; border-color:transparent; background:transparent; }
  .basketball-calendar-rest i { width:18px; height:12px; opacity:.3; }
  .basketball-calendar-rest span { display:block; color:var(--muted); font-size:9px; }
  .basketball-calendar-mobile-summary { display:grid; gap:10px; padding:12px; border-top:1px solid var(--line); background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 7%,var(--surface-2)),var(--surface)); }
  .basketball-calendar-week > .basketball-calendar-mobile-summary { margin:0 0 2px; border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line)); border-radius:10px; }
  .basketball-calendar-mobile-summary > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .basketball-calendar-mobile-summary > header > div { display:grid; gap:2px; }
  .basketball-calendar-mobile-summary > header small { color:var(--muted-2); font-size:7px; font-weight:900; letter-spacing:.1em; }
  .basketball-calendar-mobile-summary > header strong { font-size:14px; }
  .basketball-calendar-mobile-summary > header > span { padding:4px 7px; border:1px solid var(--line-soft); border-radius:999px; color:var(--muted); font-size:9px; }
  .basketball-calendar-mobile-summary__content { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px; border:1px solid var(--line-soft); border-radius:11px; background:rgba(255,255,255,.025); }
  .basketball-calendar-mobile-summary__team { min-width:0; display:flex; align-items:center; gap:10px; color:var(--text); text-decoration:none; }
  .basketball-calendar-mobile-summary__team > span:last-child { min-width:0; display:grid; gap:2px; }
  .basketball-calendar-mobile-summary__team small { color:var(--muted); font-size:8px; }
  .basketball-calendar-mobile-summary__team strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
  .basketball-calendar-mobile-summary__state { display:grid; flex:0 0 auto; justify-items:end; gap:2px; }
  .basketball-calendar-mobile-summary__state i { color:var(--muted); font-size:8px; font-style:normal; font-weight:900; }
  .basketball-calendar-mobile-summary__state strong { font-size:14px; font-variant-numeric:tabular-nums; }
  .basketball-calendar-mobile-summary__state.is-win i { color:#6ee7b7; }
  .basketball-calendar-mobile-summary__state.is-loss i { color:#ff9b70; }
  .basketball-calendar-mobile-summary__rest { display:grid; gap:3px; }
  .basketball-calendar-mobile-summary__rest strong { font-size:12px; }
  .basketball-calendar-mobile-summary__rest small { color:var(--muted); font-size:9px; }
  .basketball-calendar-mobile-summary__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .basketball-calendar-mobile-summary__actions > * { min-height:44px; display:grid; place-items:center; padding:8px 10px; border:1px solid var(--line); border-radius:9px; background:var(--surface-3); color:var(--text); font-size:10px; font-weight:850; text-align:center; text-decoration:none; cursor:pointer; }
  .basketball-calendar-mobile-summary__actions > :only-child { grid-column:1/-1; }
  .basketball-calendar-mobile-summary__actions > .is-primary { border-color:color-mix(in srgb,var(--accent) 55%,var(--line)); background:var(--accent); color:#fff; }
  .basketball-team-link { padding:6px 2px; }
  .basketball-team-link .basketball-team-mark { width:36px; height:36px; flex-basis:36px; }
  .basketball-team-link strong { font-size:11px; white-space:normal; }
  .basketball-team-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); margin:auto; border-radius:16px; }
  .basketball-team-dialog > header { top:10px; right:10px; left:10px; }
  .basketball-team-dialog > header button { min-width:44px; min-height:44px; }
  .basketball-team-dialog [data-team-dialog-content] { max-height:calc(100dvh - 24px); scrollbar-gutter:auto; }
  .basketball-team-dialog__view .basketball-team-profile__hero { min-height:164px; align-items:flex-start; padding:56px 14px 16px; }
  .basketball-team-dialog__view .basketball-team-profile__mark { width:68px; height:68px; flex-basis:68px; }
  .basketball-team-dialog__view .basketball-team-profile__metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .basketball-team-dialog__roster { padding:12px 10px 16px; }
  .basketball-local-game-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px); margin:auto; border-radius:16px; }
  .basketball-local-game-dialog > header { min-height:126px; grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:17px 15px; }
  .basketball-local-game-dialog > header > div:first-child { grid-column:1/-1; }
  .basketball-local-game-dialog > header > div:last-child { justify-items:end; }
  .basketball-local-game-score strong { min-width:34px; font-size:26px; }
  .basketball-local-game-progress { grid-template-columns:1fr; }
  .basketball-local-game-toolbar { align-items:stretch; flex-direction:column; gap:6px; padding:9px 10px; }
  .basketball-local-game-toolbar label { justify-content:space-between; }
  .basketball-local-game-toolbar select { min-width:160px; min-height:44px; }
  .basketball-local-game-feed { padding:12px 10px; }
  .basketball-local-game-feed ol { height:300px; }
  .basketball-local-game-feed li { grid-template-columns:38px minmax(0,1fr) 42px; padding-inline:8px; }
  .basketball-local-game-dialog > footer { display:block; width:100%; padding:10px 10px 12px; }
  .basketball-local-game-dialog > footer > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; width:100%; }
  .basketball-local-game-dialog > footer button { width:100%; white-space:nowrap; }
  .basketball-local-game-dialog > footer [data-fast-playback-skip] { grid-column:1/-1; }
  .basketball-local-game-dialog > footer > [data-local-game-result] { grid-column:1/-1; width:100%; }
  .basketball-month-calendar > footer { align-items:flex-start; flex-wrap:wrap; gap:8px 13px; }
  .basketball-month-calendar > footer .basketball-calendar-hint { order:3; width:100%; }
  .basketball-calendar-records { order:2; width:100%; margin-left:0; display:grid; grid-template-columns:1fr 1fr; }
  .basketball-calendar-records > span { min-height:36px; }
  .basketball-month-calendar > footer > small { order:4; width:100%; margin-left:0; }
}

@media (max-width: 420px) {
  .basketball-game-toolbar { gap:8px; padding:10px; }
  .basketball-game-toolbar > span { width:100%; }
  .basketball-game-toolbar > span button { flex:1 1 0; min-width:0; padding-inline:6px; }
  .basketball-game-toolbar small { margin-left:2px; }
  .basketball-calendar-day { min-height:56px; grid-template-columns:48px minmax(0,1fr); gap:5px; }
  .basketball-calendar-game { min-height:50px; }
  .basketball-calendar-game__mark { width:32px; height:32px; flex-basis:32px; border-radius:8px; }
  .basketball-calendar-mobile-summary { padding:11px 10px; }
  .basketball-calendar-mobile-summary__content { padding:9px 8px; }
  .basketball-calendar-mobile-summary__team { gap:8px; }
  .basketball-calendar-mobile-summary__team .basketball-team-mark { width:38px; height:38px; flex-basis:38px; }
  .basketball-month-calendar > footer { padding-inline:10px; }
}

.basketball-leader-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.basketball-leader-card { padding: 0; overflow: hidden; }
.basketball-leader-card > header { min-height: 52px; padding: 0 15px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.basketball-leader-card h3 { margin: 0; font-size: 17px; }
.basketball-leader-card header small { color: var(--muted); }
.basketball-leader-row { width: 100%; min-height: 58px; padding: 7px 14px; display: grid; grid-template-columns: 24px minmax(0,1fr) auto; align-items: center; gap: 9px; border: 0; border-bottom: 1px solid var(--line-soft); background: none; color: var(--text); text-align: left; }
button.basketball-leader-row { cursor: pointer; }
.basketball-leader-row:hover { background: var(--surface-2); }
.basketball-leader-row > b { color: var(--muted); font-size: 12px; }
.basketball-leader-row > span { min-width: 0; display: grid; }
.basketball-leader-row strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.basketball-leader-row small { color: var(--muted); font-size: 10px; }
.basketball-leader-row em { color: var(--accent-strong); font-size: 19px; font-style: normal; font-weight: 850; }
.basketball-leader-empty { min-height: 110px; display: grid; place-items: center; padding: 20px; color: var(--muted); font-size: 12px; text-align: center; }
@media (max-width: 900px) { .basketball-leader-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) { .basketball-leader-grid { grid-template-columns: 1fr; } }

.basketball-bracket { display: grid; grid-template-columns:repeat(4,minmax(210px,1fr)); gap:12px; overflow-x:auto; padding-bottom:8px; }
.basketball-bracket-round { min-width:210px; }
.basketball-bracket-round > header { min-height:58px; padding:8px 4px; }
.basketball-bracket-round > header small { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; }
.basketball-bracket-round > header h3 { margin:4px 0 0; font-size:15px; }
.basketball-bracket-round > div { display:grid; align-content:space-around; gap:9px; min-height:100%; }
.basketball-bracket-series { padding:9px; border:1px solid var(--line-soft); border-radius:9px; background:var(--surface-2); }
.basketball-bracket-series.is-selected { border-color:var(--accent); box-shadow:inset 3px 0 0 var(--accent); }
.basketball-bracket-series > small { display:block; margin-bottom:5px; color:var(--muted); font-size:9px; }
.basketball-bracket-series p { display:grid; grid-template-columns:20px minmax(0,1fr) 20px; gap:6px; margin:0; padding:5px 3px; color:var(--muted); font-size:11px; }
.basketball-bracket-series p + p { border-top:1px solid var(--line-soft); }
.basketball-bracket-series p.is-winner { color:var(--text); font-weight:800; }
.basketball-bracket-series i { color:var(--muted-2); font-style:normal; }
.basketball-bracket-series span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.basketball-bracket-series b { color:var(--accent-strong); text-align:right; }
.basketball-standings { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.basketball-standings-conference { overflow:hidden; border:1px solid var(--line); border-radius:var(--radius,12px); background:var(--surface); }
.basketball-standings-conference > header,.basketball-standing-row { display:grid; grid-template-columns:34px minmax(0,1fr) 62px 54px; align-items:center; gap:10px; }
.basketball-standings-conference > header { min-height:52px; padding:0 16px; border-bottom:1px solid var(--line); color:var(--muted); font-size:11px; }
.basketball-standings-conference > header h3 { grid-column:1/3; margin:0; color:var(--text); font-size:17px; }
.basketball-standing-row { min-height:56px; padding:6px 16px; border-bottom:1px solid var(--line-soft); color:var(--text); }
.basketball-standing-row:last-child { border-bottom:0; }
.basketball-standing-row:hover { background:var(--surface-2); }
.basketball-standing-row.is-selected { background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 14%,transparent),transparent); box-shadow:inset 3px 0 var(--accent); }
.basketball-standing-row > b { color:var(--muted); text-align:center; }
.basketball-standing-team { min-width:0; display:grid; grid-template-columns:38px minmax(0,1fr); align-items:center; }
.basketball-standing-team i { grid-row:1/3; color:var(--accent-strong); font-size:11px; font-style:normal; font-weight:850; }
.basketball-standing-team a,.basketball-standing-team strong { overflow:hidden; color:var(--text); font-size:13px; font-weight:700; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.basketball-standing-team a:hover { color:var(--accent-strong); }
.basketball-standing-team small { color:var(--muted); font-size:10px; }
@media(max-width:700px) { .basketball-standings { grid-template-columns:1fr; } .basketball-standings-conference > header,.basketball-standing-row { grid-template-columns:27px minmax(0,1fr) 52px 46px; padding-inline:11px; } }
.basketball-team-roster { padding:20px; border:1px solid var(--line); border-radius:var(--radius,12px); background:var(--surface); }
.basketball-team-roster > header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:13px; }
.basketball-team-roster > header p { margin:0; }
.basketball-team-roster > header small { color:var(--muted); }
.basketball-roster-filters { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.basketball-roster-filters button { min-width:44px; min-height:44px; padding:6px 10px; border:1px solid var(--line); border-radius:99px; background:var(--surface-2); color:var(--muted); font-size:11px; font-weight:750; cursor:pointer; }
.basketball-roster-filters button:hover,.basketball-roster-filters button.active { border-color:var(--accent); color:var(--text); }
.basketball-team-roster > [data-basketball-roster] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
@media(max-width:700px) { .basketball-team-roster > header { align-items:flex-start; flex-direction:column; } .basketball-roster-filters { justify-content:flex-start; } .basketball-team-roster > [data-basketball-roster] { grid-template-columns:1fr; } }
.basketball-lineup-board { --court-line:rgba(255,255,255,.48); background:linear-gradient(145deg,var(--surface),var(--surface-2)); border:1px solid var(--line); border-radius:16px; min-width:0; overflow:hidden; padding:18px; }
.basketball-lineup-board--standalone { margin:24px auto; max-width:860px; }
.basketball-lineup-board > header { align-items:flex-start; display:flex; gap:18px; justify-content:space-between; margin-bottom:14px; }.basketball-lineup-board > header h2,.basketball-lineup-board > header p { margin:2px 0; }.basketball-lineup-board > header > div > p:last-child { color:var(--muted); font-size:11px; line-height:1.5; }.basketball-lineup-board__count { background:var(--surface-3); border:1px solid var(--line-strong); border-radius:999px; color:var(--muted); font-size:10px; padding:6px 9px; white-space:nowrap; }.basketball-lineup-board__count strong { color:var(--accent-strong); font-size:14px; }.basketball-lineup-board.is-incomplete .basketball-lineup-board__count strong { color:#ff9c89; }
.basketball-lineup-board__actions { align-items:center; display:flex; flex:0 0 auto; gap:8px; }.basketball-lineup-board__actions [data-lineup-recommend] { background:var(--accent); border:1px solid var(--accent-strong); border-radius:999px; box-shadow:0 7px 18px rgba(232,97,45,.22); color:#fff; cursor:pointer; font-size:10px; font-weight:850; min-height:34px; padding:6px 12px; white-space:nowrap; }.basketball-lineup-board__actions [data-lineup-recommend]:hover,.basketball-lineup-board__actions [data-lineup-recommend]:focus-visible { background:var(--accent-strong); border-color:#ff9668; box-shadow:0 9px 22px rgba(232,97,45,.32); color:#fff; outline:none; transform:translateY(-1px); }.basketball-lineup-board__actions [data-lineup-recommend]:disabled { box-shadow:none; cursor:not-allowed; opacity:.48; transform:none; }
.basketball-lineup-board__workspace { align-items:start; display:grid; gap:14px; grid-template-columns:minmax(0,1.7fr) minmax(250px,.8fr); }
.basketball-lineup-court { aspect-ratio:1.45; background:linear-gradient(rgba(9,15,24,.28),rgba(9,15,24,.42)),repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 1px,transparent 1px 24px),linear-gradient(155deg,#9b6038,#6d3d27); border:2px solid var(--court-line); border-radius:8px 8px 42% 42%; box-shadow:inset 0 0 38px rgba(0,0,0,.25); min-height:330px; overflow:hidden; position:relative; }
.basketball-lineup-court__markings { inset:0; pointer-events:none; position:absolute; }.basketball-lineup-court__markings::before { border:2px solid var(--court-line); border-top:0; content:""; height:34%; left:50%; position:absolute; top:0; transform:translateX(-50%); width:27%; }.basketball-lineup-court__markings::after { border:2px solid var(--court-line); border-radius:50%; content:""; height:30%; left:50%; position:absolute; top:18%; transform:translateX(-50%); width:31%; }.basketball-lineup-court__markings i { border:2px solid var(--court-line); border-radius:0 0 50% 50%; border-top:0; height:68%; inset:0 7% auto; position:absolute; }.basketball-lineup-court__markings b { background:var(--court-line); height:3px; left:44%; position:absolute; top:5%; width:12%; }.basketball-lineup-court__markings span { border:2px solid var(--court-line); border-radius:0 0 50% 50%; border-top:0; height:4%; left:47%; position:absolute; top:5%; width:6%; }
.basketball-court-slot { align-content:start; background:rgba(8,13,20,.94); border:1px solid rgba(255,255,255,.22); border-radius:13px; box-shadow:0 10px 22px rgba(0,0,0,.28); display:grid; gap:1px; min-height:120px; overflow:hidden; padding:9px 9px 46px 60px; position:absolute; transform:translate(-50%,-50%); width:clamp(150px,29%,194px); z-index:1; }.basketball-court-slot:hover,.basketball-court-slot:focus-within { border-color:var(--accent-strong); box-shadow:0 12px 28px rgba(0,0,0,.36),0 0 0 2px rgba(232,97,45,.18); }.basketball-court-slot > span { align-items:center; background:var(--accent); border-radius:8px; color:#fff; display:flex; font-size:10px; font-weight:900; height:25px; justify-content:center; left:7px; position:absolute; top:6px; width:34px; z-index:2; }.basketball-court-slot img { border-radius:0 0 0 10px; bottom:46px; height:48px; left:5px; object-fit:cover; object-position:center 18%; position:absolute; width:50px; }.basketball-court-slot strong { color:var(--text); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.basketball-court-slot small { color:var(--muted); font-size:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.basketball-court-slot em { background:#f2b84b; border-radius:999px; color:#201407; font-size:7px; font-style:normal; font-weight:900; padding:3px 5px; position:absolute; right:5px; top:-8px; }.basketball-court-slot [data-live-court-player-select] { cursor:pointer; inset:0; opacity:0; position:absolute; width:100%; }.basketball-court-slot [data-court-player-select] { clip:rect(0 0 0 0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }.basketball-court-slot--pg { left:50%; top:82%; }.basketball-court-slot--sg { left:20%; top:61%; }.basketball-court-slot--sf { left:80%; top:61%; }.basketball-court-slot--pf { left:27%; top:25%; }.basketball-court-slot--c { left:68%; top:19%; }
.basketball-court-slot__player { background:transparent; border:0; color:inherit; cursor:pointer; display:grid; gap:2px; min-height:56px; min-width:0; padding:0; text-align:left; width:100%; }.basketball-court-slot__player small { display:block; padding-right:46px; }.basketball-court-slot__player:disabled { cursor:default; }.basketball-court-slot__player:focus-visible { outline:2px solid var(--accent-strong); outline-offset:3px; }
.basketball-court-slot__portrait { background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(0,0,0,.1)); border:0; border-radius:8px 8px 5px 10px; bottom:46px; cursor:pointer; height:48px; left:5px; overflow:hidden; padding:0; position:absolute; width:50px; z-index:2; }.basketball-court-slot__portrait img { bottom:0; height:100%; left:0; width:100%; }.basketball-court-slot__portrait:hover,.basketball-court-slot__portrait:focus-visible { background:rgba(232,97,45,.2); box-shadow:0 0 0 2px var(--accent-strong); outline:0; }.basketball-court-slot__portrait:disabled { cursor:default; opacity:.45; }
.basketball-court-slot__name { align-items:center; background:transparent; border:0; color:var(--text); cursor:pointer; display:flex; gap:4px; min-height:25px; min-width:0; padding:0 2px 0 0; text-align:left; width:100%; }.basketball-court-slot__name strong { flex:1; line-height:1.08; min-width:0; overflow:visible; overflow-wrap:anywhere; text-overflow:clip; white-space:normal; }.basketball-court-slot__name i { color:var(--accent-strong); flex:0 0 auto; font-size:17px; font-style:normal; line-height:1; transition:transform .16s; }.basketball-court-slot__name:hover strong,.basketball-court-slot__name:focus-visible strong { color:var(--accent-strong); }.basketball-court-slot__name:hover i,.basketball-court-slot__name:focus-visible i { transform:translateX(2px); }.basketball-court-slot__name:focus-visible { border-radius:4px; outline:2px solid var(--accent-strong); outline-offset:2px; }
.basketball-court-slot .basketball-court-slot__player { align-items:center; min-height:22px; padding:0; }.basketball-court-slot .basketball-court-slot__player small { line-height:1.15; overflow:visible; overflow-wrap:anywhere; padding:0; text-overflow:clip; white-space:normal; }.basketball-court-slot .basketball-court-slot__player:hover small,.basketball-court-slot .basketball-court-slot__player:focus-visible small { color:var(--text); }.basketball-court-slot__quick { background:rgba(255,255,255,.04); border-top:1px solid rgba(255,255,255,.13); bottom:0; display:grid; grid-template-columns:1fr 1.3fr; height:42px; left:0; position:absolute; right:0; }.basketball-court-slot__overall,.basketball-court-slot__minutes { align-content:center; color:var(--muted); display:grid; gap:2px; justify-items:center; min-width:0; padding:3px 5px; }.basketball-court-slot__overall { background:rgba(242,184,75,.035); border-right:1px solid rgba(255,255,255,.11); line-height:1; }.basketball-court-slot__overall small,.basketball-court-slot__minutes > span:first-child { color:var(--muted); font-size:9px; font-weight:800; line-height:1; overflow:visible; white-space:nowrap; }.basketball-court-slot__overall strong { color:#ffd981; font-size:15px; font-weight:900; line-height:1; }.basketball-court-slot__minutes[hidden] { display:none; }.basketball-court-slot__minutes > span:last-child { align-items:center; display:flex; gap:2px; }.basketball-court-slot__minutes input { appearance:textfield; background:rgba(255,255,255,.035); border:1px solid rgba(255,255,255,.16); border-radius:5px; color:var(--text); font:inherit; font-size:12px; font-weight:850; height:20px; min-width:0; padding:0 1px; text-align:center; width:25px; }.basketball-court-slot__minutes input::-webkit-inner-spin-button,.basketball-court-slot__minutes input::-webkit-outer-spin-button { appearance:none; margin:0; }.basketball-court-slot__minutes input:hover,.basketball-court-slot__minutes input:focus { background:rgba(232,97,45,.12); border-color:var(--accent-strong); outline:0; }.basketball-court-slot__minutes i { color:var(--muted); font-size:8px; font-style:normal; }
.basketball-court-slot.is-position-mismatch { border-color:#ff6255; box-shadow:0 12px 28px rgba(0,0,0,.4),0 0 0 2px rgba(255,71,61,.5),0 0 22px rgba(255,71,61,.2); }.basketball-court-slot.is-position-mismatch > span { background:linear-gradient(145deg,#e23e35,#a91f24); border:1px solid #ff8e83; box-shadow:0 4px 12px rgba(201,38,35,.42); color:#fff; cursor:help; overflow:visible; width:42px; }.basketball-court-slot.is-position-mismatch > span::after { align-items:center; background:#fff; border-radius:50%; color:#b51f27; content:"!"; display:flex; flex:0 0 11px; font-size:8px; height:11px; justify-content:center; line-height:1; margin-left:2px; }.basketball-court-slot.is-position-mismatch > span::before { background:#080d14; border:1px solid #ff6255; border-radius:7px; box-shadow:0 8px 22px rgba(0,0,0,.45); color:#ffe4e1; content:"该球员不适配此位置"; font-size:9px; font-weight:750; left:0; line-height:1.35; opacity:0; padding:6px 8px; pointer-events:none; position:absolute; top:calc(100% + 5px); transform:translateY(-3px); transition:opacity .14s,transform .14s; visibility:hidden; white-space:nowrap; z-index:8; }.basketball-court-slot.is-position-mismatch > span:hover::before,.basketball-court-slot.is-position-mismatch > span:focus::before { opacity:1; transform:translateY(0); visibility:visible; }.basketball-court-slot.is-position-mismatch > span:focus-visible { outline:2px solid #fff; outline-offset:2px; }
.basketball-lineup-board > footer { align-items:center; color:var(--muted); display:flex; flex-wrap:wrap; font-size:10px; gap:14px; margin-top:10px; }.basketball-lineup-board > footer span { align-items:center; display:flex; gap:5px; line-height:1.4; }.basketball-lineup-board > footer i { background:var(--accent); border-radius:3px; flex:0 0 8px; height:8px; width:8px; }.basketball-lineup-board > footer b { align-items:center; background:#f2b84b; border-radius:50%; color:#201407; display:flex; flex:0 0 16px; font-size:8px; height:16px; justify-content:center; width:16px; }.basketball-lineup-board > footer > small { margin-left:auto; }
.basketball-lineup-plan { background:color-mix(in srgb,var(--surface-2) 86%,transparent); border:1px solid var(--line); border-radius:12px; min-width:0; overflow:hidden; }.basketball-lineup-plan > header { align-items:center; border-bottom:1px solid var(--line); display:flex; gap:10px; justify-content:space-between; padding:11px 12px; }.basketball-lineup-plan > header div { display:grid; gap:2px; }.basketball-lineup-plan > header small { color:var(--accent-strong); font-size:7px; font-weight:900; letter-spacing:.12em; }.basketball-lineup-plan > header strong { font-size:12px; }.basketball-lineup-plan > header > span { color:var(--muted); font-size:8px; }.basketball-lineup-plan__players { display:grid; }.basketball-lineup-plan__players > article { border-bottom:1px solid var(--line); display:grid; gap:8px; padding:9px 10px; }.basketball-lineup-plan__identity { align-items:center; display:grid; gap:8px; grid-template-columns:28px minmax(0,1fr); }.basketball-lineup-plan__identity > b { align-items:center; background:var(--accent); border-radius:7px; color:#fff; display:flex; font-size:8px; height:27px; justify-content:center; }.basketball-lineup-plan__identity > span { display:grid; min-width:0; }.basketball-lineup-plan__identity strong,.basketball-lineup-plan__identity small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.basketball-lineup-plan__identity strong { font-size:10px; }.basketball-lineup-plan__identity small { color:var(--muted); font-size:7px; }.basketball-lineup-plan__controls { display:grid; gap:6px; grid-template-columns:70px minmax(0,1fr); }.basketball-lineup-plan__controls label { display:grid; gap:3px; }.basketball-lineup-plan__controls span { color:var(--muted); font-size:7px; }.basketball-lineup-plan__controls input,.basketball-lineup-plan__controls select,.basketball-lineup-plan__scorers select { background:var(--surface-3); border:1px solid var(--line-strong); border-radius:7px; color:var(--text); font-size:9px; min-height:32px; min-width:0; padding:5px 7px; width:100%; }.basketball-lineup-plan__duties summary { color:var(--muted); cursor:pointer; font-size:8px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.basketball-lineup-plan__duties > div { display:flex; flex-wrap:wrap; gap:4px; padding-top:7px; }.basketball-lineup-plan__duties label { cursor:pointer; }.basketball-lineup-plan__duties input { opacity:0; position:absolute; }.basketball-lineup-plan__duties label span { background:var(--surface-3); border:1px solid var(--line); border-radius:99px; color:var(--muted); display:block; font-size:7px; padding:4px 6px; }.basketball-lineup-plan__duties input:checked + span { background:color-mix(in srgb,var(--accent) 20%,var(--surface-3)); border-color:var(--accent); color:var(--text); }.basketball-lineup-plan__scorers { border-bottom:1px solid var(--line); padding:10px; }.basketball-lineup-plan__scorers > header { display:grid; gap:2px; margin-bottom:7px; }.basketball-lineup-plan__scorers > header strong { font-size:9px; }.basketball-lineup-plan__scorers > header small { color:var(--muted); font-size:7px; }.basketball-lineup-plan__scorers > div { display:grid; gap:6px; }.basketball-lineup-plan__scorers label { align-items:center; display:grid; gap:6px; grid-template-columns:58px minmax(0,1fr); }.basketball-lineup-plan__scorers label span { color:var(--muted); font-size:7px; }.basketball-lineup-plan__note { color:var(--muted); font-size:7px; line-height:1.5; margin:0; padding:9px 10px; }
@media(max-width:900px) { .basketball-lineup-board__workspace { grid-template-columns:1fr; }.basketball-lineup-plan__players { grid-template-columns:repeat(2,minmax(0,1fr)); }.basketball-lineup-plan__players > article { border-right:1px solid var(--line); } }
@media(max-width:620px) { .basketball-lineup-board { padding:12px; }.basketball-lineup-board > header { align-items:stretch; flex-direction:column; gap:8px; }.basketball-lineup-board__actions { justify-content:space-between; width:100%; }.basketball-lineup-board__actions [data-lineup-recommend] { min-height:44px; padding-inline:15px; }.basketball-lineup-board__count { align-self:center; }.basketball-lineup-court { aspect-ratio:.76; min-height:0; }.basketball-court-slot { min-height:96px; padding:0; width:33%; }.basketball-court-slot > span { border-radius:6px; font-size:8px; height:20px; left:5px; top:5px; width:27px; }.basketball-court-slot img { bottom:4px; height:44px; left:4px; width:44px; }.basketball-court-slot__portrait { bottom:4px; height:44px; left:4px; width:44px; }.basketball-court-slot__portrait img { bottom:0; height:100%; left:0; width:100%; }.basketball-court-slot__name { height:44px; min-height:44px; padding:3px 31px 0 34px; }.basketball-court-slot__name strong { overflow:hidden; overflow-wrap:normal; text-overflow:ellipsis; white-space:nowrap; }.basketball-court-slot__name i { font-size:15px; }.basketball-court-slot__quick { gap:0; }.basketball-court-slot .basketball-court-slot__player { bottom:4px; height:44px; left:52px; min-height:44px; padding:0; position:absolute; right:4px; width:auto; }.basketball-court-slot .basketball-court-slot__player small { overflow:hidden; overflow-wrap:normal; text-overflow:ellipsis; white-space:nowrap; }.basketball-court-slot__overall { background:linear-gradient(145deg,color-mix(in srgb,var(--rating-color) 72%,#fff),var(--rating-color) 58%,color-mix(in srgb,var(--rating-color) 78%,#111)); border:1px solid rgba(255,255,255,.2); border-radius:6px; color:var(--rating-ink); height:24px; min-width:26px; padding:0 3px; place-items:center; position:absolute; right:4px; top:4px; z-index:4; }.basketball-court-slot__overall small { display:none; }.basketball-court-slot__overall strong { color:inherit; font-size:10px; }.basketball-court-slot__minutes { display:none !important; }.basketball-court-slot strong { font-size:10px; }.basketball-court-slot--pg { top:86%; }.basketball-court-slot--sg { left:18%; top:58%; }.basketball-court-slot--sf { left:82%; top:58%; }.basketball-court-slot--pf { left:20%; top:25%; }.basketball-court-slot--c { left:80%; top:17%; }.basketball-lineup-plan__players { grid-template-columns:1fr; }.basketball-lineup-plan__players > article { border-right:0; }.basketball-lineup-plan__controls input,.basketball-lineup-plan__controls select,.basketball-lineup-plan__scorers select { min-height:44px; }.basketball-lineup-board > footer { align-items:start; display:grid; gap:7px; grid-template-columns:1fr; }.basketball-lineup-board > footer > small { margin-left:0; } }
.basketball-court-picker { background:transparent; border:0; color:var(--text); max-height:min(760px,calc(100dvh - 40px)); max-width:none; overflow:hidden; padding:0; width:min(720px,calc(100vw - 32px)); }.basketball-court-picker::backdrop { background:rgba(3,6,10,.82); backdrop-filter:blur(6px); }.basketball-court-picker > section { background:linear-gradient(145deg,var(--surface),var(--surface-2)); border:1px solid var(--line-strong); border-radius:18px; box-shadow:0 26px 80px rgba(0,0,0,.52); display:grid; grid-template-rows:auto minmax(0,1fr); max-height:min(760px,calc(100dvh - 40px)); overflow:hidden; }.basketball-court-picker > section > header { align-items:flex-start; border-bottom:1px solid var(--line); display:flex; gap:18px; justify-content:space-between; padding:20px 22px 16px; }.basketball-court-picker header small { color:var(--accent-strong); font-size:8px; font-weight:900; letter-spacing:.12em; }.basketball-court-picker header h2 { font-size:20px; margin:3px 0; }.basketball-court-picker header p { color:var(--muted); font-size:10px; margin:0; }.basketball-court-picker [data-court-picker-close] { align-items:center; background:var(--surface-3); border:1px solid var(--line-strong); border-radius:50%; color:var(--text); cursor:pointer; display:flex; flex:0 0 38px; font-size:21px; height:38px; justify-content:center; }.basketball-court-picker__list { display:grid; gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); overflow-y:auto; overscroll-behavior:contain; padding:14px; }.basketball-court-candidate { align-items:stretch; background:rgba(7,12,19,.58); border:1px solid var(--line); border-radius:12px; display:grid; grid-template-columns:minmax(0,1fr) 50px; min-width:0; overflow:hidden; }.basketball-court-candidate.is-current { border-color:rgba(232,97,45,.5); }.basketball-court-candidate.is-position-mismatch { opacity:.7; }.basketball-court-candidate > [data-court-candidate-select] { align-items:center; background:transparent; border:0; color:var(--text); cursor:pointer; display:grid; gap:3px 9px; grid-template-columns:40px minmax(0,1fr) 34px; min-width:0; padding:9px; text-align:left; }.basketball-court-candidate > [data-court-candidate-select]:hover { background:rgba(232,97,45,.1); }.basketball-court-candidate > [data-court-candidate-select]:disabled { cursor:default; opacity:.72; }.basketball-court-candidate__portrait { align-items:center; align-self:stretch; background:var(--surface-3); border-radius:9px; display:flex; grid-row:1/3; justify-content:center; min-height:44px; overflow:hidden; }.basketball-court-candidate__portrait img { height:100%; object-fit:cover; object-position:center 18%; width:100%; }.basketball-court-candidate__portrait i { color:var(--accent-strong); font-size:16px; font-style:normal; font-weight:900; }.basketball-court-candidate [data-court-candidate-select] > span:nth-child(2) { display:grid; min-width:0; }.basketball-court-candidate strong,.basketball-court-candidate small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.basketball-court-candidate strong { font-size:11px; }.basketball-court-candidate small { color:var(--muted); font-size:8px; }.basketball-court-candidate b { color:var(--accent-strong); font-size:16px; text-align:right; }.basketball-court-candidate em { color:#91caaa; font-size:7px; font-style:normal; grid-column:2/-1; }.basketball-court-candidate.is-position-mismatch em { color:#e99a8a; }.basketball-court-candidate__detail { background:var(--surface-3); border:0; border-left:1px solid var(--line); color:var(--muted); cursor:pointer; font-size:8px; font-weight:800; }.basketball-court-candidate__detail:hover { color:var(--accent-strong); }
@media(max-width:620px) { .basketball-court-picker { margin:auto 0 0; max-height:82dvh; width:100%; }.basketball-court-picker > section { border-bottom:0; border-radius:18px 18px 0 0; max-height:82dvh; }.basketball-court-picker > section > header { padding:16px 16px 13px; }.basketball-court-picker__list { grid-template-columns:1fr; padding:10px 10px calc(12px + env(safe-area-inset-bottom)); }.basketball-court-candidate { grid-template-columns:minmax(0,1fr) 54px; }.basketball-court-candidate__detail { min-height:54px; } }
.basketball-lineup-plan { align-self:stretch; display:flex; flex-direction:column; overflow:hidden; }
.basketball-lineup-plan > header { padding:13px 14px; }
.basketball-lineup-plan > header small { font-size:9px; }
.basketball-lineup-plan > header strong { font-size:14px; }
.basketball-lineup-plan > header > span { font-size:11px; }
.basketball-lineup-plan__players { display:block; flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:12px; scrollbar-gutter:stable; }
.basketball-lineup-plan__players > article { border:0; display:none; min-width:0; padding:0; }
.basketball-lineup-plan__players > article.is-active { align-content:start; display:grid; gap:12px; }
.basketball-lineup-plan__identity { align-items:center; background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 12%,var(--surface-3)),var(--surface-3)); border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line)); border-radius:11px; color:var(--text); display:grid; gap:10px; grid-template-columns:42px minmax(0,1fr) auto; min-width:0; padding:11px; text-align:left; }
.basketball-lineup-plan__identity > b { align-items:center; background:var(--accent); border:1px solid var(--accent-strong); border-radius:9px; box-shadow:0 6px 16px rgba(232,97,45,.22); color:#fff; display:flex; font-size:11px; height:38px; justify-content:center; margin:0; width:42px; }
.basketball-lineup-plan__identity > span { display:grid; min-width:0; }
.basketball-lineup-plan__identity strong { font-size:15px; line-height:1.25; }
.basketball-lineup-plan__identity small { color:var(--muted); display:block; font-size:11px; line-height:1.4; }
.basketball-lineup-plan .basketball-lineup-plan__detail { background:transparent; border:1px solid var(--line-strong); border-radius:999px; color:var(--muted); cursor:pointer; font-size:10px; font-weight:800; justify-self:end; min-height:32px; padding:5px 9px; width:auto; }
.basketball-lineup-plan .basketball-lineup-plan__detail:hover,.basketball-lineup-plan .basketball-lineup-plan__detail:focus-visible { background:color-mix(in srgb,var(--accent) 10%,transparent); border-color:var(--accent); color:var(--text); outline:none; }
.basketball-lineup-plan__controls { background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 7%,var(--surface-2)),var(--surface-2)); border:1px solid var(--line); border-radius:10px; display:grid; gap:10px; grid-template-columns:minmax(82px,.7fr) minmax(0,1.3fr); padding:12px; }
.basketball-lineup-plan__controls label { gap:5px; }
.basketball-lineup-plan__controls span { font-size:11px; font-weight:750; }
.basketball-lineup-plan__controls input,.basketball-lineup-plan__controls select { font-size:12px; min-height:40px; }
.basketball-lineup-plan__duties { background:rgba(7,12,19,.28); border:1px solid var(--line); border-radius:10px; display:block; padding:12px; }
.basketball-lineup-plan__duties > summary { color:var(--text); cursor:pointer; font-size:12px; font-weight:850; list-style:none; }
.basketball-lineup-plan__duties > summary::-webkit-details-marker { display:none; }
.basketball-lineup-plan__duties > summary::after { color:var(--accent-strong); content:"展开"; float:right; font-size:10px; }
.basketball-lineup-plan__duties[open] > summary::after { content:"收起"; }
.basketball-lineup-plan__duties > div { background:transparent; border:0; box-shadow:none; display:grid; gap:12px; padding:12px 0 0; }
.basketball-lineup-plan__duty-group { display:grid; gap:7px; }
.basketball-lineup-plan__duty-group > strong { color:var(--muted); font-size:11px; letter-spacing:.04em; }
.basketball-lineup-plan__duty-group > div { display:grid; gap:6px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.basketball-lineup-plan__duties label span { align-content:center; border-radius:9px; display:grid; gap:3px; min-height:60px; padding:8px 9px; }
.basketball-lineup-plan__duties label span strong { font-size:12px; line-height:1.25; }
.basketball-lineup-plan__duties label span small { color:var(--muted); font-size:10px; line-height:1.4; }
.basketball-lineup-plan__duties input:checked + span small { color:color-mix(in srgb,var(--text) 76%,var(--muted)); }
.basketball-lineup-plan .basketball-lineup-plan__duties input[data-court-plan-duty] { width:1px; min-height:1px; height:1px; }
.basketball-lineup-plan__scorers { background:rgba(7,12,19,.24); border-top:1px solid var(--line); padding:11px; }
.basketball-lineup-plan__scorers > header strong { font-size:12px; }
.basketball-lineup-plan__scorers > header small { font-size:10px; line-height:1.4; }
.basketball-lineup-plan__scorers > div { grid-template-columns:repeat(3,minmax(0,1fr)); }
.basketball-lineup-plan__scorers label { align-items:stretch; gap:3px; grid-template-columns:1fr; }
.basketball-lineup-plan__scorers label span { font-size:10px; }
.basketball-lineup-plan__scorers select { font-size:12px; }
.basketball-lineup-plan__note { border-top:1px solid var(--line); font-size:10px; padding-block:8px; }
.basketball-court-slot.is-plan-active { border-color:var(--accent-strong); box-shadow:0 12px 28px rgba(0,0,0,.36),0 0 0 3px rgba(232,97,45,.22); }
@media(min-width:901px) { .basketball-lineup-board__workspace { align-items:stretch; grid-template-columns:minmax(0,1.5fr) minmax(360px,.9fr); }.basketball-lineup-board__workspace > .basketball-lineup-court { align-self:start; min-height:0; min-width:0; width:100%; } }
@media(max-width:900px) { .basketball-lineup-board__workspace > .basketball-lineup-court { aspect-ratio:1.12; min-height:0; min-width:0; width:100%; }.basketball-lineup-plan { align-self:start; width:100%; }.basketball-lineup-plan__players { padding:10px; }.basketball-lineup-plan__controls input,.basketball-lineup-plan__controls select,.basketball-lineup-plan__scorers select { min-height:44px; }.basketball-lineup-plan__scorers > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; }.basketball-lineup-plan__scorers label { min-width:0; }.basketball-lineup-plan__duties > div { flex-wrap:wrap; } }
@media(max-width:620px) { .basketball-lineup-board__workspace > .basketball-lineup-court { aspect-ratio:.76; } }
@media(max-width:430px) { .basketball-lineup-plan__identity { grid-template-columns:38px minmax(0,1fr) auto; padding:9px; }.basketball-lineup-plan__identity > b { height:36px; width:38px; }.basketball-lineup-plan .basketball-lineup-plan__detail { min-height:44px; padding-inline:8px; }.basketball-lineup-plan__controls { grid-template-columns:72px minmax(0,1fr); padding:10px; }.basketball-lineup-plan__scorers > div { display:flex; overflow-x:auto; }.basketball-lineup-plan__scorers label { flex:0 0 76%; } }
.basketball-command-lineup-board { background:linear-gradient(145deg,var(--surface),var(--surface-2)); }
.basketball-command-lineup-board .basketball-court-slot [data-live-court-player-select] { clip-path:inset(50%); height:1px; opacity:0; overflow:hidden; position:absolute; width:1px; }
.basketball-command-lineup-board .basketball-court-slot__portrait,
.basketball-command-lineup-board .basketball-court-slot__name,
.basketball-command-lineup-board .basketball-court-slot__player { pointer-events:auto; }

/* Shared lineup controls keep the same touch targets on desktop and mobile. */
.basketball-lineup-board__actions [data-lineup-recommend] { min-height:44px; }
.basketball-lineup-plan .basketball-lineup-plan__detail { min-height:44px; }

/* Court cards keep player identity primary; ratings follow position and minutes stay secondary. */
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot { background:linear-gradient(145deg,rgba(11,17,26,.98),rgba(7,12,19,.98)); min-height:102px; padding:7px 8px 27px 62px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot > span { border-radius:6px; font-size:9px; height:20px; left:6px; top:6px; width:30px; z-index:3; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__portrait { bottom:6px; height:56px; left:5px; top:auto; width:52px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__portrait::before { background:radial-gradient(circle at 50% 30%,#647285 0 10%,transparent 11%),radial-gradient(ellipse at 50% 88%,#344152 0 30%,transparent 31%); content:""; inset:0; opacity:.72; position:absolute; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__portrait img { bottom:0; height:100%; left:0; object-fit:cover; object-position:center 18%; width:100%; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__name { align-items:flex-start; min-height:36px; padding:2px 34px 0 0; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__name strong { font-size:11px; line-height:1.12; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot .basketball-court-slot__player { align-items:baseline; display:flex; gap:5px; min-height:18px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__player > [data-court-player-meta] { flex:0 1 auto; font-size:10px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__overall { align-items:center; background:linear-gradient(145deg,color-mix(in srgb,var(--rating-color) 72%,#fff),var(--rating-color) 58%,color-mix(in srgb,var(--rating-color) 78%,#111)); border:1px solid rgba(255,255,255,.2); border-radius:7px; box-shadow:0 4px 10px rgba(0,0,0,.3); color:var(--rating-ink); display:grid; height:27px; line-height:1; min-width:29px; padding:0 4px; place-items:center; position:absolute; right:7px; top:7px; z-index:4; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__overall small { display:none; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__overall strong { color:inherit; font-size:11px; font-weight:950; letter-spacing:-.03em; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__status { align-items:center; bottom:6px; display:flex; gap:5px; justify-content:space-between; left:62px; position:absolute; right:7px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes { align-items:center; background:rgba(255,255,255,.035); border-radius:5px; color:var(--muted); display:flex; flex:0 0 auto; gap:3px; justify-content:flex-end; margin-left:auto; opacity:.76; padding:2px 4px; position:static; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes:hover,
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes:focus-within { opacity:1; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes > span:first-child { font-size:9px; font-weight:700; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes > span:last-child { gap:1px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes input { background:transparent; border:0; border-radius:0; color:color-mix(in srgb,var(--text) 76%,var(--muted)); font-size:10px; height:16px; min-height:16px; padding:0; width:21px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes i { font-size:7px; }
.basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__status em { flex:0 0 auto; font-size:9px; position:static; }
@media(max-width:620px) {
  .basketball-lineup-board__workspace > .basketball-lineup-court { aspect-ratio:.76; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot { min-height:96px; padding:0; width:33%; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot--pg { z-index:5; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot--sg,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot--sf { z-index:4; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot--pf,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot--c { z-index:3; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot:focus-within { z-index:6; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot > span { height:20px; width:28px; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot.is-position-mismatch > span { width:40px; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__portrait { bottom:4px; height:44px; left:4px; top:auto; width:44px; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__overall { right:4px; top:4px; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__name { height:44px; min-height:44px; padding:3px 31px 0 34px; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot .basketball-court-slot__player { bottom:4px; height:44px; left:52px; min-height:44px; position:absolute; right:4px; width:auto; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__status { bottom:43px; left:auto; right:4px; }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__minutes { display:none !important; }
}

/* Mode-neutral compact history used by match centers and season pages. */
.basketball-match-history { display:grid; gap:8px; }
.basketball-match-history__row { min-width:0; }
.basketball-match-history__identity { display:grid; gap:4px; min-width:0; }
.basketball-match-history__identity strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.basketball-match-history__identity small { color:var(--muted); font-size:9px; font-weight:650; }
.basketball-match-history__meta { align-items:flex-end; color:var(--muted); display:grid; font-size:10px; gap:4px; justify-items:end; line-height:1.4; text-align:right; }
.basketball-match-history__meta b { color:var(--accent-strong); font-size:9px; }
@media(max-width:620px) {
  .basketball-match-history__row { align-items:start; grid-template-columns:34px minmax(0,1fr) !important; gap:9px !important; padding:11px !important; }
  .basketball-match-history__meta { align-items:center; border-top:1px solid var(--line); grid-column:1/-1; grid-template-columns:minmax(0,1fr) auto; justify-items:start; padding-top:8px; text-align:left; width:100%; }
  .basketball-match-history__meta b { justify-self:end; }
}
.basketball-lineup-plan__controls input,
.basketball-lineup-plan__controls select,
.basketball-lineup-plan__scorers select { min-height:44px; }

/* On a phone the court is an overview, not a second copy of the editor.
   Keep only identity and the two useful glance values on each player tile;
   the selected-player panel below owns minutes, roles and detailed controls. */
@media(max-width:620px) {
  .basketball-lineup-board__workspace > .basketball-lineup-court {
    aspect-ratio:.82;
  }
  .basketball-lineup-board .basketball-court-slot,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot {
    background:linear-gradient(160deg,rgba(26,36,49,.98),rgba(7,12,19,.99));
    border-radius:10px;
    min-height:96px;
    padding:0;
    width:31%;
  }
  .basketball-lineup-board .basketball-court-slot--pg { top:86%; }
  .basketball-lineup-board .basketball-court-slot--sg { left:18%; top:55%; }
  .basketball-lineup-board .basketball-court-slot--sf { left:82%; top:55%; }
  .basketball-lineup-board .basketball-court-slot--pf { left:18%; top:19%; }
  .basketball-lineup-board .basketball-court-slot--c { left:82%; top:19%; }
  .basketball-lineup-board .basketball-court-slot__portrait,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__portrait {
    border-radius:9px;
    bottom:0;
    height:100%;
    inset:0;
    opacity:.88;
    width:100%;
    /* The portrait owns the card surface.  The small change/config controls
       below deliberately sit above only their own, non-overlapping regions. */
    z-index:2;
  }
  .basketball-lineup-board .basketball-court-slot__portrait::after {
    background:linear-gradient(180deg,rgba(5,9,14,.12) 30%,rgba(5,9,14,.92) 100%);
    content:"";
    inset:0;
    pointer-events:none;
    position:absolute;
  }
  .basketball-lineup-board .basketball-court-slot__portrait img,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__portrait img {
    height:100%;
    inset:0;
    object-fit:cover;
    object-position:center 16%;
    width:100%;
  }
  .basketball-lineup-board .basketball-court-slot > span,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot > span {
    backdrop-filter:blur(4px);
    box-shadow:0 3px 9px rgba(0,0,0,.28);
    font-size:7px;
    height:18px;
    left:5px;
    top:5px;
    width:25px;
    z-index:4;
  }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot.is-position-mismatch > span {
    width:35px;
  }
  .basketball-lineup-board .basketball-court-slot__name,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__name {
    align-items:flex-end;
    background:linear-gradient(180deg,transparent,rgba(4,8,13,.94));
    bottom:0;
    height:44px;
    inset:auto 0 0;
    min-height:44px;
    padding:20px 7px 5px;
    position:absolute;
    width:100%;
    z-index:3;
  }
  .basketball-lineup-board .basketball-court-slot__name strong,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__name strong {
    color:#fff;
    font-size:10px;
    line-height:1.15;
    overflow:hidden;
    overflow-wrap:normal;
    text-overflow:ellipsis;
    text-shadow:0 1px 4px #000;
    white-space:nowrap;
  }
  .basketball-lineup-board .basketball-court-slot__name i { display:none; }
  .basketball-lineup-board .basketball-court-slot .basketball-court-slot__player,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot .basketball-court-slot__player {
    bottom:auto;
    display:block;
    height:44px;
    left:auto;
    min-height:44px;
    padding:0;
    position:absolute;
    right:0;
    top:0;
    width:44px;
    z-index:4;
  }
  .basketball-lineup-board .basketball-court-slot__player > small { display:none; }
  .basketball-lineup-board .basketball-court-slot__overall,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__overall {
    box-shadow:0 3px 9px rgba(0,0,0,.28);
    height:21px;
    inset:5px 5px auto auto;
    min-width:25px;
    padding-inline:3px;
    position:absolute;
  }
  .basketball-lineup-board .basketball-court-slot__overall strong,
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__overall strong {
    font-size:9px;
  }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__status {
    align-items:flex-end;
    bottom:0;
    height:44px;
    left:0;
    padding:0 0 6px 6px;
    pointer-events:none;
    right:auto;
    z-index:5;
  }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__status em {
    align-items:center;
    display:flex;
    font-size:0;
    height:16px;
    justify-content:center;
    min-width:24px;
    padding:2px 4px;
    box-shadow:0 2px 7px rgba(0,0,0,.35);
  }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot__status em::after {
    content:attr(data-mobile-label);
    font-size:8px;
    letter-spacing:.01em;
    line-height:1;
  }
  .basketball-lineup-board:not(.basketball-live-lineup-board) .basketball-court-slot:has([data-court-scoring-priority]:not([hidden])) .basketball-court-slot__name {
    padding-left:35px;
  }
  .basketball-lineup-board .basketball-court-slot__minutes { display:none !important; }
  .basketball-lineup-board > footer span:nth-child(2) { display:none; }
}

/* Mode-neutral position filter used by draft and roster candidate pools. */
.basketball-position-filter { align-items:center; display:flex; gap:12px; min-width:0; }.basketball-position-filter > span { color:var(--muted); flex:0 0 auto; font-size:9px; font-weight:800; letter-spacing:.04em; }.basketball-position-filter > div { display:flex; gap:4px; min-width:0; padding:4px; border:1px solid var(--line); border-radius:11px; background:color-mix(in srgb,var(--surface-3) 78%,transparent); }.basketball-position-filter button { min-width:44px; min-height:36px; padding:0 12px; border:0; border-radius:7px; background:transparent; color:var(--muted); cursor:pointer; font:inherit; font-size:10px; font-weight:800; transition:background .16s,color .16s,box-shadow .16s; }.basketball-position-filter button:hover { color:var(--text); }.basketball-position-filter button.is-active { background:var(--accent); color:#fff; box-shadow:0 5px 14px rgba(0,0,0,.2); }
@media(max-width:620px) { .basketball-position-filter { align-items:stretch; flex-direction:column; gap:7px; }.basketball-position-filter > div { overflow-x:auto; scrollbar-width:none; }.basketball-position-filter > div::-webkit-scrollbar { display:none; }.basketball-position-filter button { flex:1 0 48px; min-height:44px; padding-inline:10px; } }
.basketball-position-filter button { min-height:44px; }

.basketball-game-plan-recommendation { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; margin:14px 0; padding:15px 16px; border:1px solid rgba(232,97,45,.34); border-radius:13px; background:linear-gradient(135deg,rgba(232,97,45,.12),rgba(14,22,33,.78) 58%); }
.basketball-game-plan-recommendation h3,.basketball-game-plan-recommendation p { margin:0; }
.basketball-game-plan-recommendation > div > p:last-child { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.55; }
.basketball-game-plan-recommendation > [data-recommend-game-plan] { min-height:44px; padding:9px 16px; border:1px solid var(--accent-strong); border-radius:9px; background:var(--accent); box-shadow:0 8px 20px rgba(232,97,45,.24); color:#fff; cursor:pointer; font:inherit; font-size:12px; font-weight:900; white-space:nowrap; }
.basketball-game-plan-recommendation > [data-recommend-game-plan]:hover,.basketball-game-plan-recommendation > [data-recommend-game-plan]:focus-visible { background:var(--accent-strong); outline:2px solid rgba(255,255,255,.22); outline-offset:2px; }
.basketball-game-plan-recommendation > aside { grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:11px; border-top:1px solid rgba(232,97,45,.22); color:var(--text); font-size:11px; line-height:1.5; }
.basketball-game-plan-recommendation > aside[hidden] { display:none; }
.basketball-game-plan-recommendation > aside button { min-height:36px; padding:6px 11px; border:1px solid rgba(232,97,45,.42); border-radius:8px; background:rgba(232,97,45,.1); color:var(--accent-strong); cursor:pointer; }
@media(max-width:620px) { .basketball-game-plan-recommendation { grid-template-columns:1fr; padding:14px; }.basketball-game-plan-recommendation > [data-recommend-game-plan] { width:100%; }.basketball-game-plan-recommendation > aside { align-items:stretch; flex-direction:column; }.basketball-game-plan-recommendation > aside button { min-height:44px; width:100%; } }

/* Mode-neutral team identity, ratings and basketball summary. */
.basketball-team-profile { overflow:hidden; border-bottom:1px solid var(--line); background:#0d1218; }
.basketball-team-profile__hero { position:relative; min-height:170px; display:flex; align-items:center; gap:24px; padding:32px max(24px,calc((100vw - var(--content,1180px))/2)); overflow:hidden; border-bottom:1px solid var(--line); background:radial-gradient(circle at 12% 25%,rgba(232,97,45,.2),transparent 34%),linear-gradient(125deg,#1b2532,#10161e 70%); }
.basketball-team-profile__hero::after { content:""; position:absolute; inset:0; pointer-events:none; background:repeating-linear-gradient(115deg,transparent 0 88px,rgba(255,255,255,.022) 89px,transparent 90px); }
.basketball-team-profile__mark,.basketball-team-profile__identity,.basketball-team-profile__ratings { position:relative; z-index:1; }
.basketball-team-profile__mark { width:104px; height:104px; flex:0 0 104px; display:grid; place-items:center; padding:8px; border:1px solid rgba(255,255,255,.14); border-radius:50%; background:rgba(255,255,255,.045); }
.basketball-team-profile__mark img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 12px 18px rgba(0,0,0,.35)); }
.basketball-team-profile__mark span { color:var(--accent-strong); font-size:24px; font-weight:900; }
.basketball-team-profile__identity { min-width:0; }
.basketball-team-profile__identity h1 { margin:7px 0 6px; font-size:clamp(36px,4.5vw,58px); line-height:1; letter-spacing:-.055em; }
.basketball-team-profile__identity > p:last-child { margin:0; color:var(--muted); line-height:1.6; }
.basketball-team-profile__ratings { display:flex; gap:8px; margin-left:auto; }
.basketball-team-profile__ratings > span { width:64px; min-height:70px; display:grid; place-items:center; align-content:center; gap:3px; border:1px solid var(--line); border-radius:10px; background:rgba(7,10,14,.58); }
.basketball-team-profile__ratings b { font-size:24px; line-height:1; }
.basketball-team-profile__ratings small { color:var(--muted); font-size:11px; }
.basketball-team-profile__metrics { width:min(var(--content,1180px),calc(100% - 48px)); display:grid; grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:8px; margin:18px auto; }
.basketball-team-profile__metrics article { min-width:0; min-height:88px; display:grid; align-content:center; gap:4px; padding:13px 14px; border:1px solid var(--line-soft); border-radius:10px; background:var(--surface); }
.basketball-team-profile__metrics small,.basketball-team-profile__metrics span { overflow:hidden; color:var(--muted); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-team-profile__metrics strong { overflow:hidden; font-size:19px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-team-profile__metrics article.is-highlight strong { color:#e5c879; }
@media(max-width:900px) { .basketball-team-profile__metrics { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .basketball-team-profile__hero { min-height:0; flex-wrap:wrap; gap:16px; padding:24px 16px; }.basketball-team-profile__mark { width:72px; height:72px; flex-basis:72px; }.basketball-team-profile__identity { flex:1; }.basketball-team-profile__identity h1 { font-size:30px; }.basketball-team-profile__ratings { width:100%; margin:0; }.basketball-team-profile__ratings > span { min-height:60px; flex:1; }.basketball-team-profile__metrics { width:calc(100% - 28px); grid-template-columns:repeat(2,minmax(0,1fr)); }.basketball-team-profile__metrics article:last-child:nth-child(odd) { grid-column:1/-1; } }
.basketball-play-in { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.basketball-play-in-conference { padding:15px; border:1px solid var(--line); border-radius:var(--radius,12px); background:var(--surface); }
.basketball-play-in-conference > header small { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.08em; }
.basketball-play-in-conference > header h3 { margin:4px 0 12px; }
.basketball-play-in-path { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.basketball-play-in-path > div { display:grid; align-content:center; gap:9px; }
.basketball-play-in-game { padding:9px; border:1px solid var(--line-soft); border-radius:9px; background:var(--surface-2); }
.basketball-play-in-game.is-selected { border-color:var(--accent); box-shadow:inset 3px 0 var(--accent); }
.basketball-play-in-game header { display:grid; margin-bottom:5px; }
.basketball-play-in-game header strong { font-size:11px; }
.basketball-play-in-game header small { color:var(--muted); font-size:9px; }
.basketball-play-in-game p { display:grid; grid-template-columns:20px minmax(0,1fr) 20px; gap:6px; margin:0; padding:5px 3px; color:var(--muted); font-size:11px; }
.basketball-play-in-game p + p { border-top:1px solid var(--line-soft); }
.basketball-play-in-game p.is-winner { color:var(--text); font-weight:800; }
.basketball-play-in-game p i { font-style:normal; }.basketball-play-in-game p span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.basketball-play-in-game p b { color:var(--accent-strong); text-align:right; }
.basketball-play-in-path aside { display:grid; gap:5px; padding:8px; border:1px dashed var(--line); border-radius:8px; }
.basketball-play-in-path aside span { display:grid; grid-template-columns:22px 1fr; gap:7px; font-size:10px; }.basketball-play-in-path aside i { font-style:normal; color:var(--accent-strong); }.basketball-play-in-path aside b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media(max-width:800px) { .basketball-play-in { grid-template-columns:1fr; } }@media(max-width:430px) { .basketball-play-in-path { grid-template-columns:1fr; } }
.nba-team-picker .team-toolbar { align-items:center; }
.nba-team-picker .team-count { margin-left:auto; white-space:nowrap; }
.nba-team-picker .team-mark > b { width:42px; height:42px; display:grid; place-items:center; border-radius:12px; background:color-mix(in srgb,var(--team-primary) 22%,var(--surface-3)); color:var(--text); font-size:12px; letter-spacing:.04em; }
.nba-team-picker .team-rating--division b { border-color:var(--line); background:var(--surface-2); color:var(--muted); font-size:16px; }
@media(max-width:700px) {
  .nba-team-picker .team-toolbar { align-items:stretch; }
  .nba-team-picker .conference-filter { width:100%; }
  .nba-team-picker .team-count { margin-left:0; }
}

.basketball-season-awards { display:grid; gap:18px; margin-top:18px; }
.basketball-season-highlights { min-width:0; margin:20px 0 0; padding:20px; border:1px solid var(--line-soft); border-radius:14px; background:var(--surface); }
.basketball-season-highlights > header { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:13px; }
.basketball-season-highlights > header h2 { margin:3px 0 0; font-size:22px; }
.basketball-season-highlights > header p:last-child { margin:5px 0 0; color:var(--muted); font-size:11px; }
.basketball-season-highlights > header > span { color:var(--muted); font-size:11px; font-weight:800; white-space:nowrap; }
.basketball-season-highlights > div { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.basketball-season-highlight { min-width:0; display:grid; grid-template-columns:32px minmax(0,1fr); gap:3px 10px; padding:13px; border:1px solid var(--line-soft); border-radius:10px; background:var(--surface-2); color:var(--text); text-decoration:none; transition:border-color .15s,transform .15s; }
.basketball-season-highlight:hover { border-color:color-mix(in srgb,var(--accent-strong) 44%,var(--line)); transform:translateY(-1px); }
.basketball-season-highlight > i { grid-row:1/3; width:32px; height:32px; display:grid; place-items:center; align-self:center; border-radius:9px; background:var(--accent-soft); color:var(--accent-strong); font-size:14px; font-style:normal; font-weight:900; }
.basketball-season-highlight > span { min-width:0; display:grid; gap:3px; }
.basketball-season-highlight small,.basketball-season-highlight em { overflow:hidden; color:var(--muted); font-size:9px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.basketball-season-highlight strong { overflow:hidden; font-size:17px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-season-highlight > em { grid-column:1/-1; margin-top:6px; }
.basketball-season-highlight > b { grid-column:1/-1; margin-top:3px; color:var(--accent-strong); font-size:10px; }
@media(max-width:900px) { .basketball-season-highlights > div { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
  .basketball-season-highlights { padding:16px; }
  .basketball-season-highlights > header { align-items:start; flex-direction:column; gap:5px; }
  .basketball-season-highlights > div { display:flex; margin-right:-16px; padding-right:16px; overflow-x:auto; scroll-snap-type:x proximity; }
  .basketball-season-highlight { flex:0 0 min(78vw,260px); min-height:124px; scroll-snap-align:start; }
}
.basketball-player-highlights { min-width:0; margin:12px 0 0; padding:20px; border:1px solid var(--line-soft); border-radius:14px; background:var(--surface); }
.basketball-player-highlights > header { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:13px; }
.basketball-player-highlights > header h2 { margin:3px 0 0; font-size:22px; }
.basketball-player-highlights > header p:last-child { margin:5px 0 0; color:var(--muted); font-size:11px; }
.basketball-player-highlights > header > span { color:var(--muted); font-size:11px; font-weight:800; white-space:nowrap; }
.basketball-player-highlights > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.basketball-player-highlight { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:9px 12px; padding:12px; border:1px solid var(--line-soft); border-radius:11px; background:linear-gradient(145deg,rgba(232,97,45,.045),var(--surface-2) 55%); }
.basketball-player-highlight > header { grid-column:1/-1; display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.basketball-player-highlight > header span { color:var(--muted); font-size:10px; font-weight:800; }
.basketball-player-highlight > header strong { color:var(--accent-strong); font-size:18px; white-space:nowrap; }
.basketball-player-highlight .basketball-player-summary { grid-column:1/-1; background:color-mix(in srgb,var(--surface-3) 72%,transparent); }
.basketball-player-highlight__box { grid-column:1/-1; min-height:44px; display:flex; align-items:center; justify-content:flex-end; padding:0 4px; color:var(--accent-strong); font-size:10px; font-weight:800; text-decoration:none; }
.basketball-player-highlight__box:hover { color:var(--text); }
.basketball-player-highlight__box.is-muted { color:var(--muted-2); }
@media(max-width:760px) { .basketball-player-highlights > div { grid-template-columns:1fr; } }
@media(max-width:600px) {
  .basketball-player-highlights { padding:16px; }
  .basketball-player-highlights > header { align-items:start; flex-direction:column; gap:5px; }
  .basketball-player-highlights > div { display:flex; margin-right:-16px; padding-right:16px; overflow-x:auto; scroll-snap-type:x proximity; }
  .basketball-player-highlight { flex:0 0 min(84vw,310px); scroll-snap-align:start; }
}
.basketball-award-winners { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.basketball-award-winner { min-width:0; display:grid; gap:12px; padding:15px; border:1px solid var(--line-soft); border-radius:12px; background:linear-gradient(145deg,rgba(217,182,94,.08),var(--surface) 62%); }
.basketball-award-winner > header { display:flex; align-items:center; gap:8px; }
.basketball-award-winner > header span { color:#d9b65e; font-size:11px; font-weight:900; letter-spacing:.1em; }
.basketball-award-winner > header small { color:var(--muted); font-size:11px; }
.basketball-award-player { background:color-mix(in srgb,var(--surface-2) 72%,transparent); }
.basketball-award-player--winner { min-height:70px; border-color:color-mix(in srgb,#d9b65e 22%,var(--line-soft)); }
.basketball-all-nba { display:grid; gap:14px; }
.basketball-all-nba h3 { margin:0 0 8px; color:var(--muted); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.basketball-all-nba section > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr)); gap:7px; }
@media(max-width:600px) {
  .basketball-award-winners { grid-template-columns:1fr; }
  .basketball-all-nba section > div { grid-template-columns:1fr; }
}

.basketball-box-score-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.basketball-replay { display:grid; gap:16px; }
.basketball-box-scoreboard { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:24px; padding:22px 26px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:radial-gradient(circle at 50% -40%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 52%),linear-gradient(135deg,#17212d,#0d141d); }
.basketball-box-scoreboard__team { min-width:0; display:flex; align-items:center; gap:14px; }
.basketball-box-scoreboard__team.is-home { justify-content:flex-end; text-align:right; }
.basketball-box-scoreboard__team > span:not(.basketball-team-mark) { min-width:0; display:grid; gap:3px; }
.basketball-box-scoreboard__team small { color:var(--muted); font-size:9px; font-weight:850; letter-spacing:.06em; }
.basketball-box-scoreboard__team strong { overflow:hidden; font-size:17px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-box-team-mark { width:62px; height:62px; flex-basis:62px; border-radius:17px; }
.basketball-box-scoreboard__score { min-width:160px; display:grid; justify-items:center; gap:4px; }
.basketball-box-scoreboard__score > small { color:var(--accent-strong); font-size:9px; font-weight:950; letter-spacing:.14em; }
.basketball-box-scoreboard__score > strong { display:flex; align-items:center; gap:12px; font-variant-numeric:tabular-nums; }
.basketball-box-scoreboard__score b { min-width:52px; font-size:42px; line-height:1; text-align:center; }
.basketball-box-scoreboard__score i { color:var(--muted-2); font-size:18px; font-style:normal; }
.basketball-box-score-stack { display: grid; gap: 14px; padding: 18px; }
.basketball-box-team { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.basketball-box-team > header { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 16px; }
.basketball-box-team__identity { min-width:0; display:flex; align-items:center; gap:11px; }
.basketball-box-team__identity .basketball-box-team-mark { width:42px; height:42px; flex-basis:42px; border-radius:12px; }
.basketball-box-team__identity > span:last-child { min-width:0; display:grid; gap:2px; }
.basketball-box-team__identity small { color:var(--muted); font-size:8px; font-weight:900; letter-spacing:.08em; }
.basketball-box-team h2 { margin: 0; overflow: hidden; font-size: 18px; text-overflow: ellipsis; white-space: nowrap; }
.basketball-box-team > header > strong { min-width:54px; color: var(--accent-strong); font-size: 28px; text-align:right; font-variant-numeric:tabular-nums; }
.basketball-team-summary { display:grid; grid-template-columns:repeat(4,minmax(64px,1.35fr)) repeat(3,minmax(34px,.65fr)); margin:0; padding:9px 12px; gap:5px; border-top:1px solid var(--line-soft); background:color-mix(in srgb,var(--surface-2) 62%,transparent); }
.basketball-team-summary div { min-width:0; display:grid; gap:3px; }
.basketball-team-summary dt { color:var(--muted); font-size:9px; font-weight:850; letter-spacing:.06em; }
.basketball-team-summary dt[data-stat-label],.basketball-box-table th[data-stat-label] { cursor:help; }
.basketball-team-summary dd { margin:0; overflow:hidden; color:var(--text); font-size:11px; font-variant-numeric:tabular-nums; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.basketball-period-scores { width:100%; display:grid; gap:5px; padding:12px 14px; overflow-x:auto; border:1px solid var(--line-soft); border-radius:12px; background:rgba(255,255,255,.018); scrollbar-gutter:stable; }
.basketball-period-row { min-width:max-content; display:grid; grid-template-columns:minmax(110px,1fr) repeat(var(--period-count,4),38px) 45px; align-items:center; gap:5px; }
.basketball-period-row span { max-width:220px; overflow:hidden; color:var(--text); font-size:12px; font-weight:750; text-overflow:ellipsis; white-space:nowrap; }
.basketball-period-row b,.basketball-period-row strong { color:var(--text); font-size:12px; text-align:center; font-variant-numeric:tabular-nums; }
.basketball-period-row strong { color:var(--accent-strong); }
.basketball-period-labels span,.basketball-period-labels b { color:var(--muted); font-size:10px; }
.basketball-box-table-wrap { max-width: 100%; overflow-x: auto; border-top: 1px solid var(--line-soft); scrollbar-gutter: stable; }
.basketball-box-table { width: 100%; min-width: 430px; border-collapse: collapse; font-size: 12px; }
.basketball-box-table--compact { min-width: 0; }
.basketball-box-table--wide { min-width: 920px; }
.basketball-box-table th,.basketball-box-table td { height: 40px; padding: 6px 9px; border-bottom: 1px solid var(--line-soft); text-align: right; white-space: nowrap; }
.basketball-box-table th { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .03em; }
.basketball-box-table thead th { position:sticky; z-index:2; top:0; background:color-mix(in srgb,var(--surface-2) 90%,#080d13); }
.basketball-box-table th:first-child,.basketball-box-table td:first-child { position: sticky; left: 0; z-index: 1; min-width: 190px; background: var(--surface); text-align: left; }
.basketball-box-table tbody tr:last-child td { border-bottom: 0; }
.basketball-box-table tbody tr:hover td { background: var(--surface-2); }
.basketball-box-table tbody tr:not(.basketball-box-group):nth-child(odd) td { background:rgba(255,255,255,.012); }
.basketball-box-table .basketball-box-group th { position:static; height:27px; padding:5px 9px; border-block:1px solid var(--line-soft); background:color-mix(in srgb,var(--surface-2) 76%,var(--surface)); color:var(--muted); font-size:9px; font-weight:900; letter-spacing:.1em; text-align:left; }
.basketball-box-player { width:100%; max-width: 220px; min-height: 44px; display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:8px; padding: 4px 0; overflow: hidden; border: 0; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.basketball-box-player-cell { max-width:220px; display:grid; gap:0; }
.basketball-box-player__portrait { width:34px; height:34px; overflow:hidden; display:grid; place-items:center; border:1px solid var(--line-soft); border-radius:9px; background:var(--surface-3); }
.basketball-box-player__portrait img { width:100%; height:100%; object-fit:cover; object-position:center 18%; }
.basketball-box-player > strong { min-width:0; overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-box-player:hover { color: var(--accent-strong); }
.basketball-box-player:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.basketball-box-player-name { cursor:default; }
.basketball-badge-trigger { width:max-content; min-height:24px; display:flex; align-items:center; gap:4px; margin:-3px 0 4px 42px; padding:3px 7px; border:1px solid rgba(217,182,94,.24); border-radius:99px; background:rgba(217,182,94,.07); color:#d9c17b; cursor:pointer; }
.basketball-badge-trigger > span { font-size:9px; }
.basketball-badge-trigger > strong { font-size:9px; }
.basketball-badge-trigger > small { padding-left:4px; border-left:1px solid rgba(217,182,94,.2); color:var(--muted); font-size:8px; }
.basketball-badge-trigger:hover,.basketball-badge-trigger[aria-expanded="true"] { border-color:rgba(217,182,94,.56); background:rgba(217,182,94,.13); color:#efd98f; }
.basketball-badge-trigger:focus-visible { outline:2px solid #d9b65e; outline-offset:2px; }
.basketball-badge-popover { position:fixed; inset:0; z-index:1200; width:min(560px,calc(100vw - 32px)); max-height:min(680px,calc(100dvh - 32px)); margin:auto; padding:0; overflow:hidden; border:1px solid rgba(217,182,94,.34); border-radius:16px; background:linear-gradient(145deg,rgba(217,182,94,.08),transparent 45%),#111923; color:var(--text); box-shadow:0 24px 70px rgba(0,0,0,.58); pointer-events:auto; }
.basketball-badge-popover::backdrop { background:rgba(2,5,9,.68); backdrop-filter:blur(3px); }
.basketball-badge-popover > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 13px; border-bottom:1px solid var(--line-soft); }
.basketball-badge-popover > header > div { min-width:0; display:grid; gap:2px; }
.basketball-badge-popover > header small { color:#d9c17b; font-size:8px; font-weight:900; letter-spacing:.08em; }
.basketball-badge-popover > header strong { overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-badge-popover__close { width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:50%; background:rgba(255,255,255,.025); color:var(--muted); font-size:21px; line-height:1; cursor:pointer; }
.basketball-badge-popover__close:hover { border-color:rgba(217,182,94,.4); color:var(--text); }
.basketball-badge-popover__body { max-height:calc(min(680px,100dvh - 32px) - 116px); overflow-y:auto; }
.basketball-badge-popover__stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; padding:10px 12px; border-bottom:1px solid var(--line-soft); }
.basketball-badge-popover__stats span { min-width:0; display:grid; justify-items:center; gap:2px; padding:7px 4px; border-radius:9px; background:rgba(255,255,255,.035); }
.basketball-badge-popover__stats small { color:var(--muted); font-size:9px; }
.basketball-badge-popover__stats strong { font-size:14px; font-variant-numeric:tabular-nums; }
.basketball-badge-popover__note { margin:0; padding:7px 12px 1px; color:#8492a2; font-size:9px; line-height:1.45; }
.basketball-badge-popover__list { display:grid; gap:3px; padding:8px; }
.basketball-badge-popover__list > div { min-height:58px; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:11px; padding:8px 10px; border-radius:10px; color:var(--text); }
.basketball-badge-popover__list > div:nth-child(odd) { background:rgba(255,255,255,.025); }
.basketball-badge-popover__icon { width:38px; height:38px; overflow:hidden; display:grid; place-items:center; border:1px solid rgba(217,182,94,.2); border-radius:9px; background:rgba(217,182,94,.07); }
.basketball-badge-popover__icon img { width:100%; height:100%; object-fit:contain; }
.basketball-badge-popover__icon i { color:#d9c17b; font-style:normal; }
.basketball-badge-popover__copy { min-width:0; display:grid; gap:2px; }
.basketball-badge-popover__copy strong { overflow:hidden; color:var(--text); font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-badge-popover__copy small { color:#d9c17b; font-size:9px; }
.basketball-badge-popover__copy p { margin:3px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.basketball-badge-popover__outcome-title { margin-top:6px; color:#b9c5d3 !important; font-size:8px !important; font-weight:850; letter-spacing:.05em; }
.basketball-badge-popover__outcome { display:flex; flex-wrap:wrap; gap:4px; margin-top:1px; }
.basketball-badge-popover__outcome em { padding:3px 6px; border:1px solid rgba(122,164,205,.18); border-radius:999px; background:rgba(122,164,205,.08); color:#ceddeb; font-size:9px; font-style:normal; font-variant-numeric:tabular-nums; white-space:nowrap; }
.basketball-badge-popover__legacy { margin-top:5px; color:#778494 !important; font-size:8px !important; }
.basketball-badge-popover__list b { color:#e4ca7e; font-size:11px; }
.basketball-stat-hint { display:none; }
@media (min-width: 851px) {
  .basketball-box-player { min-height:50px; grid-template-columns:40px minmax(0,1fr); gap:10px; }
  .basketball-box-player__portrait { width:40px; height:40px; border-radius:10px; }
  .basketball-box-player-cell:has(.basketball-badge-trigger) { position:relative; min-height:58px; }
  .basketball-box-player-cell:has(.basketball-badge-trigger) .basketball-box-player { min-height:58px; }
  .basketball-box-player-cell:has(.basketball-badge-trigger) .basketball-box-player > strong { transform:translateY(-9px); }
  .basketball-box-player-cell:has(.basketball-badge-trigger) .basketball-badge-trigger { position:absolute; left:50px; bottom:2px; max-width:calc(100% - 50px); margin:0; }
}
@media (max-width: 850px) {
  .basketball-box-score-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .basketball-stat-hint:not([hidden]) { position:fixed; z-index:1250; left:50%; bottom:max(18px,env(safe-area-inset-bottom)); display:block; max-width:calc(100vw - 32px); padding:8px 12px; border:1px solid var(--line); border-radius:999px; background:#111923; box-shadow:0 10px 28px rgba(0,0,0,.42); color:var(--text); font-size:12px; font-weight:800; white-space:nowrap; transform:translateX(-50%); pointer-events:none; }
  .basketball-box-scoreboard { grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr); gap:7px; padding:16px 10px; border-radius:13px; }
  .basketball-box-scoreboard__team { display:grid; justify-items:center; gap:6px; text-align:center; }
  .basketball-box-scoreboard__team.is-home { justify-items:center; text-align:center; }
  .basketball-box-scoreboard__team.is-home > span:not(.basketball-team-mark) { order:2; }
  .basketball-box-scoreboard__team.is-home .basketball-box-team-mark { order:1; }
  .basketball-box-scoreboard__team strong { display:none; }
  .basketball-box-scoreboard__team small { font-size:8px; white-space:nowrap; }
  .basketball-box-team-mark { width:50px; height:50px; flex-basis:50px; border-radius:14px; }
  .basketball-box-scoreboard__score { min-width:0; }
  .basketball-box-scoreboard__score > strong { gap:5px; }
  .basketball-box-scoreboard__score b { min-width:39px; font-size:32px; }
  .basketball-box-scoreboard__score i { font-size:13px; }
  .basketball-box-score-stack { padding: 10px; }
  .basketball-box-team > header { min-height: 58px; padding: 11px 13px; }
  .basketball-box-team h2 { font-size: 16px; }
  .basketball-team-summary { grid-template-columns:repeat(3,minmax(0,1fr)); padding:9px 12px; }
  .basketball-period-scores { padding:10px; border-radius:10px; scrollbar-gutter:auto; }
  .basketball-period-row { grid-template-columns:minmax(92px,1fr) repeat(var(--period-count,4),34px) 40px; }
  .basketball-box-table-wrap { scrollbar-gutter: auto; }
  .basketball-box-table--compact th:first-child,.basketball-box-table--compact td:first-child { min-width: 148px; }
  .basketball-box-table--compact th,.basketball-box-table--compact td { padding-inline: 6px; }
  .basketball-box-player { grid-template-columns:30px minmax(0,1fr); gap:6px; }
  .basketball-box-player__portrait { width:30px; height:30px; border-radius:8px; }
  .basketball-badge-trigger { margin-left:36px; }
  .basketball-badge-popover { inset:auto 10px 10px; width:auto; max-height:min(78dvh,620px); margin:0; border-radius:18px; }
  .basketball-badge-popover__body { max-height:calc(min(78dvh,620px) - 116px); }
  .basketball-badge-popover__stats { gap:4px; padding:8px; }
  .basketball-badge-popover__list > div { min-height:44px; font-size:12px; }
  .basketball-badge-popover__copy p { font-size:10px; }
  .basketball-badge-popover__outcome em { padding:3px 5px; font-size:8px; }
}

.basketball-tactic-select { min-width: 0; display: grid; gap: 5px; color: var(--muted); font-size: 10px; }
.basketball-tactic-select select { width: 100%; min-width: 0; min-height: 44px; padding: 9px 34px 9px 10px; border: 1px solid var(--line-strong); border-radius: 8px; background: var(--surface-3); color: var(--text); cursor: pointer; }
.basketball-tactic-select select:hover { border-color: rgba(232,97,45,.5); }
.basketball-tactic-select select:focus-visible { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
.basketball-tactic-options { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.basketball-tactic-options[data-tactic-options="pace"],.basketball-tactic-options[data-tactic-options="rebounding"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
.basketball-tactic-option { position: relative; min-width: 0; cursor: pointer; }
.basketball-tactic-option input { position: absolute; opacity: 0; pointer-events: none; }
.basketball-tactic-option > span { min-height: 108px; padding: 15px; display: grid; align-content: start; gap: 7px; border: 1px solid var(--line); border-radius: 11px; background: var(--surface-2); transition: border-color .16s,background .16s,transform .16s; }
.basketball-tactic-option strong { font-size: 14px; }
.basketball-tactic-option small { color: var(--muted); font-size: 12px; line-height: 1.55; }
.basketball-tactic-option:hover > span { border-color: var(--line-strong); transform: translateY(-1px); }
.basketball-tactic-option input:checked + span { border-color: rgba(232,97,45,.72); background: linear-gradient(135deg,rgba(232,97,45,.13),transparent),var(--surface-2); box-shadow: inset 0 0 0 1px rgba(232,97,45,.12); }
.basketball-tactic-option input:focus-visible + span { outline: 2px solid var(--accent-strong); outline-offset: 2px; }
.basketball-phase-strategies { display:grid; gap:12px; }
.basketball-phase-tabs { padding:5px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; border:1px solid var(--line); border-radius:13px; background:var(--surface-3); }
.basketball-phase-tabs button { min-width:0; min-height:58px; padding:8px 12px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-content:center; gap:2px 8px; border:1px solid transparent; border-radius:9px; background:transparent; color:var(--muted); cursor:pointer; text-align:left; }
.basketball-phase-tabs button em { grid-column:1/-1; font-size:8px; font-style:normal; font-weight:850; letter-spacing:.12em; }
.basketball-phase-tabs button strong { overflow:hidden; color:inherit; font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-phase-tabs button small { align-self:center; padding:3px 7px; border-radius:99px; background:rgba(255,255,255,.04); font-size:9px; white-space:nowrap; }
.basketball-phase-tabs button[aria-selected="true"] { border-color:rgba(232,97,45,.48); background:linear-gradient(135deg,rgba(232,97,45,.2),rgba(232,97,45,.06)); color:#fff; box-shadow:inset 0 0 0 1px rgba(232,97,45,.08); }
.basketball-phase-tabs button[aria-selected="true"] em,.basketball-phase-tabs button[aria-selected="true"] small { color:var(--accent-strong); }
.basketball-phase-tabs button:focus-visible { outline:2px solid var(--accent-strong); outline-offset:2px; }
.basketball-phase-dimension { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:var(--surface-2); }
.basketball-phase-dimension[hidden] { display:none; }
.basketball-phase-dimension__intro { min-height:52px; padding:10px 14px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-bottom:1px solid var(--line); }
.basketball-phase-dimension__intro strong { font-size:14px; }
.basketball-phase-dimension__intro p { margin:0; color:var(--muted); font-size:11px; line-height:1.45; text-align:right; }
.basketball-phase-dimension__body { padding:10px; display:grid; grid-template-columns:1fr; gap:7px; }
.basketball-phase-dimension__body > .basketball-phase-strategy { margin-top:12px; }
.basketball-phase-dimension__body > .basketball-phase-strategy { margin-top:0; }
.basketball-phase-strategy { min-width:0; margin:0; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:var(--surface); }
.basketball-phase-strategy > summary { min-height:60px; padding:9px 11px; display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px; cursor:pointer; list-style:none; }
.basketball-phase-strategy > summary::-webkit-details-marker { display:none; }
.basketball-phase-strategy > summary > span { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:3px 8px; }
.basketball-phase-strategy > summary em { padding:3px 7px; border:1px solid rgba(232,97,45,.28); border-radius:99px; background:rgba(232,97,45,.09); color:var(--accent-strong); font-size:9px; font-style:normal; font-weight:800; letter-spacing:.06em; }
.basketball-phase-strategy > summary > span strong { min-width:0; overflow:hidden; font-size:13px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-phase-strategy > summary > span small { grid-column:1/-1; color:var(--muted); font-size:10px; }
.basketball-phase-strategy > summary mark { min-width:112px; padding:6px 9px; display:grid; gap:2px; border:1px solid rgba(232,97,45,.24); border-radius:8px; background:rgba(232,97,45,.07); color:inherit; text-align:right; }
.basketball-phase-strategy > summary mark small { color:var(--muted); font-size:8px; }
.basketball-phase-strategy > summary mark strong { color:var(--accent-strong); font-size:11px; }
.basketball-phase-strategy > summary i { color:var(--muted); font-size:16px; font-style:normal; transition:transform .16s; }
.basketball-phase-strategy[open] > summary { border-bottom:1px solid var(--line); background:linear-gradient(90deg,rgba(232,97,45,.07),transparent 42%); }
.basketball-phase-strategy[open] > summary i { transform:rotate(180deg); }
.basketball-phase-strategy__options { padding:10px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.basketball-phase-strategy__options label { position:relative; min-width:0; height:100%; cursor:pointer; }
.basketball-phase-strategy__options input { position:absolute; opacity:0; pointer-events:none; }
.basketball-phase-strategy__options label > span { min-height:82px; height:100%; box-sizing:border-box; padding:9px 10px; display:grid; align-content:start; gap:5px; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); transition:border-color .16s,transform .16s; }
.basketball-phase-strategy__options strong { font-size:12px; }
.basketball-phase-strategy__options small { color:var(--muted); font-size:10px; line-height:1.45; }
.basketball-phase-strategy__options input:checked + span { border-color:rgba(232,97,45,.72); background:linear-gradient(135deg,rgba(232,97,45,.13),transparent),var(--surface); box-shadow:inset 0 0 0 1px rgba(232,97,45,.12); }
.basketball-phase-strategy__options input:focus-visible + span { outline:2px solid var(--accent-strong); outline-offset:2px; }
.basketball-phase-strategies--compact { grid-template-columns:1fr; grid-column:1/-1; }
.basketball-tactic-dimensions { margin-top: 18px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 8px; }
.basketball-tactic-dimensions > div { min-width: 0; padding: 11px 12px; display: flex; align-items: baseline; justify-content: space-between; gap: 8px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-2); }
.basketball-tactic-dimensions span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.basketball-tactic-dimensions strong { color: var(--accent-strong); font-size: 17px; font-variant-numeric: tabular-nums; }
.basketball-tactic-dimensions--compact > div { display: grid; align-content: center; gap: 5px; background: var(--surface-3); }
.basketball-tactic-dimensions--compact span { font-size: 11px; }
.basketball-tactic-dimensions--compact strong { font-size: 20px; }
@media (max-width: 900px) {
  .basketball-tactic-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .basketball-tactic-options[data-tactic-options="pace"],.basketball-tactic-options[data-tactic-options="rebounding"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .basketball-tactic-dimensions { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .basketball-phase-strategy__options { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .basketball-tactic-options,.basketball-tactic-options[data-tactic-options="pace"],.basketball-tactic-options[data-tactic-options="rebounding"] { grid-template-columns: 1fr; }
  .basketball-tactic-option > span { min-height: 88px; }
  .basketball-tactic-dimensions { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .basketball-phase-strategy__options { grid-template-columns:1fr; }
  .basketball-phase-tabs button { min-height:54px; padding:8px; }
  .basketball-phase-dimension__intro { display:grid; gap:3px; }
  .basketball-phase-dimension__intro p { text-align:left; }
  .basketball-phase-strategy__options label > span { min-height:0; }
  .basketball-phase-strategy > summary { grid-template-columns:minmax(0,1fr) auto; gap:7px; }
  .basketball-phase-strategy > summary mark { grid-column:1; grid-row:2; justify-self:start; min-width:0; display:flex; align-items:center; gap:6px; text-align:left; }
  .basketball-phase-strategy > summary > i { grid-column:2; grid-row:1/3; }
}
@media (prefers-reduced-motion: reduce) {
  .basketball-tactic-option > span { transition: none; }
  .basketball-tactic-option:hover > span { transform: none; }
}
/* Shared lineup duty picker: modes provide player data, this component owns the UI contract. */
.basketball-lineup-duties {
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--border-color, #d8d2c8) 78%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--panel-bg, #fff) 92%, #f28c28 8%);
}

.basketball-lineup-duties > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  min-height: 42px;
  padding: .55rem .75rem;
  cursor: pointer;
  list-style: none;
}

.basketball-lineup-duties > summary::-webkit-details-marker { display: none; }
.basketball-lineup-duties > summary span { font-weight: 750; }
.basketball-lineup-duties > summary small {
  overflow: hidden;
  color: var(--muted, #756d64);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.basketball-lineup-duties__groups {
  display: grid;
  gap: .7rem;
  padding: 0 .75rem .75rem;
}

.basketball-lineup-duties__groups fieldset { margin: 0; padding: 0; border: 0; }
.basketball-lineup-duties__groups legend {
  margin-bottom: .4rem;
  color: var(--muted, #756d64);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.basketball-lineup-duties__groups fieldset > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.basketball-lineup-duties__groups label { cursor: pointer; }
.basketball-lineup-duties .basketball-lineup-duties__groups input[data-duty] { position:absolute; width:1px; min-height:1px; height:1px; opacity:0; pointer-events:none; }
.basketball-lineup-duties__groups label span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: .32rem .62rem;
  border: 1px solid color-mix(in srgb, var(--border-color, #d8d2c8) 85%, transparent);
  border-radius: 999px;
  background: var(--panel-bg, #fff);
  font-size: .78rem;
  font-weight: 700;
}
.basketball-lineup-duties__groups label span strong { font-size:.78rem; }
.basketball-lineup-duties__groups label span small { display:none; }

.basketball-lineup-duties__groups input:checked + span {
  border-color: #d96d11;
  background: #f28c28;
  color: #24160a;
  box-shadow: 0 2px 9px rgb(217 109 17 / 18%);
}

.basketball-lineup-duties__groups input:focus-visible + span {
  outline: 3px solid rgb(242 140 40 / 28%);
  outline-offset: 2px;
}
.basketball-game-plan-summary,.basketball-game-highlights-panel { margin-top:18px; overflow:hidden; border:1px solid var(--line,rgba(255,255,255,.12)); border-radius:16px; background:linear-gradient(145deg,rgba(45,67,91,.11),transparent 38%),rgba(12,17,24,.78); box-shadow:0 12px 32px rgba(0,0,0,.13); }
.basketball-game-plan-summary > summary,.basketball-game-highlights-panel > summary { min-height:72px; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:14px 18px; cursor:pointer; list-style:none; transition:background .18s ease; }
.basketball-game-plan-summary > summary:hover,.basketball-game-highlights-panel > summary:hover { background:rgba(255,255,255,.025); }
.basketball-game-plan-summary > summary::-webkit-details-marker,.basketball-game-highlights-panel > summary::-webkit-details-marker { display:none; }
.basketball-game-plan-summary__title { display:grid; gap:3px; }
.basketball-game-plan-summary > summary small,.basketball-game-highlights-panel > summary small,.basketball-game-plan-summary article small { color:var(--muted,#96a2b5); font-size:10px; font-weight:850; letter-spacing:.08em; }
.basketball-game-plan-summary__title small { color:var(--accent-strong,#ff7540) !important; }
.basketball-game-plan-summary__title strong { font-size:17px; letter-spacing:-.01em; }
.basketball-game-plan-summary__action { display:flex; align-items:center; gap:10px; }
.basketball-game-plan-summary__action em { color:var(--muted,#96a2b5); font-size:10px; font-style:normal; }
.basketball-game-plan-summary__action i { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--muted); font-size:16px; font-style:normal; transition:transform .18s ease,border-color .18s ease; }
.basketball-game-plan-summary[open] > summary .basketball-game-plan-summary__action i,.basketball-game-highlights-panel[open] > summary .basketball-game-plan-summary__action i { border-color:rgba(232,97,45,.36); color:var(--accent-strong); transform:rotate(180deg); }
.basketball-game-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:12px; border-top:1px solid var(--line,rgba(255,255,255,.12)); background:rgba(4,8,13,.18); }
.basketball-game-plan-grid > article { position:relative; min-width:0; overflow:hidden; padding:15px; border:1px solid var(--line-soft,rgba(255,255,255,.08)); border-radius:13px; background:linear-gradient(150deg,rgba(255,255,255,.035),transparent 40%),var(--surface,#111923); }
.basketball-game-plan-grid > article::before { position:absolute; inset:0 0 auto; height:2px; background:linear-gradient(90deg,transparent,rgba(122,164,205,.62),transparent); content:""; }
.basketball-game-plan-grid > article.is-home::before { background:linear-gradient(90deg,transparent,rgba(232,97,45,.7),transparent); }
.basketball-game-plan-grid article > header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.basketball-game-plan-grid article > header > div { min-width:0; display:flex; align-items:center; gap:9px; }
.basketball-game-plan-side { flex:0 0 auto; padding:4px 7px; border:1px solid rgba(122,164,205,.2); border-radius:99px; background:rgba(122,164,205,.08); color:#b9cce0 !important; }
.basketball-game-plan-grid .is-home .basketball-game-plan-side { border-color:rgba(232,97,45,.22); background:rgba(232,97,45,.09); color:#efb092 !important; }
.basketball-game-plan-grid h3 { min-width:0; margin:0; overflow:hidden; font-size:16px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-game-plan-grid header > span { flex:0 0 auto; display:grid; justify-items:end; gap:3px; color:var(--muted,#96a2b5); font-size:11px; text-align:right; }
.basketball-game-plan-grid header > span b { color:#b8c5d3; font-size:10px; font-weight:750; }
.basketball-game-plan-tactics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; margin-top:14px; }
.basketball-game-plan-tactics > span { min-width:0; display:grid; gap:4px; padding:8px 7px; border:1px solid rgba(255,255,255,.045); border-radius:9px; background:rgba(255,255,255,.025); }
.basketball-game-plan-tactics b { overflow:hidden; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.basketball-game-plan-scorers { min-height:38px; display:grid !important; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:10px !important; margin:10px 0 8px !important; padding:8px 10px; border:1px solid rgba(217,182,94,.12); border-radius:9px; background:rgba(217,182,94,.045); }
.basketball-game-plan-scorers strong { overflow:hidden; font-size:12px !important; text-overflow:ellipsis; white-space:nowrap; }
.basketball-game-plan-phases { display:flex; flex-wrap:wrap; gap:5px; color:var(--muted,#96a2b5); font-size:10px; }
.basketball-game-plan-phases span { padding:4px 6px; border:1px solid var(--line-soft); border-radius:99px; background:rgba(255,255,255,.018); }
.basketball-game-plan-phases b { color:var(--text,#eef3f8); }
.basketball-game-plan-execution { display:flex; align-items:stretch; flex-wrap:wrap; gap:6px; margin-top:11px; padding:10px; border:1px solid rgba(117,164,255,.14); border-radius:10px; background:rgba(69,119,210,.055); }
.basketball-game-plan-execution > small { width:100%; color:#9ab8df !important; }
.basketball-game-plan-execution > span { min-width:110px; display:grid; gap:3px; padding:7px 8px; border-radius:7px; background:rgba(8,14,22,.3); color:var(--muted,#96a2b5); font-size:10px; }
.basketball-game-plan-execution b { color:var(--text,#eef3f8); font-size:11px; }
.basketball-game-plan-evidence { display:grid; grid-template-columns:1fr; gap:7px; margin-top:11px; padding-top:11px; border-top:1px solid var(--line-soft,rgba(255,255,255,.08)); }
.basketball-game-plan-evidence section { min-width:0; display:grid; align-content:start; gap:5px; padding:9px; border:1px solid rgba(255,255,255,.045); border-radius:9px; background:rgba(255,255,255,.018); }
.basketball-game-plan-evidence section > small { grid-column:1/-1; margin-bottom:2px; }
.basketball-game-plan-evidence section > span { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; font-size:10px; }
.basketball-game-plan-evidence b { min-width:0; line-height:1.45; overflow-wrap:anywhere; }
.basketball-game-plan-evidence em { color:var(--muted,#96a2b5); font-style:normal; white-space:nowrap; }
.basketball-game-plan-evidence .is-lineups > span { padding:7px 8px; border-radius:7px; background:rgba(255,255,255,.018); }
.basketball-game-plan-evidence .is-lineups b { white-space:normal; }
.basketball-game-plan-evidence .is-duties,.basketball-game-plan-evidence .is-matchups { grid-template-columns:repeat(2,minmax(0,1fr)); }
.basketball-game-plan-evidence .is-duties > span,.basketball-game-plan-evidence .is-matchups > span { min-height:42px; align-content:center; grid-template-columns:1fr; gap:2px; padding:6px 8px; border-radius:7px; background:rgba(255,255,255,.018); }
.basketball-game-plan-evidence .is-duties em,.basketball-game-plan-evidence .is-matchups em { white-space:normal; }
.basketball-game-highlights-panel .basketball-game-plan-summary__title small { color:#d9bd72 !important; }
.basketball-game-highlights { padding:12px; border-top:1px solid var(--line); background:linear-gradient(90deg,rgba(217,182,94,.055),rgba(255,255,255,.012)); }
.basketball-game-highlights > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.basketball-game-highlights article { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:8px; padding:8px 9px; border:1px solid rgba(217,182,94,.12); border-radius:9px; background:rgba(7,12,18,.3); }
.basketball-game-highlights time { padding:4px 6px; border-radius:6px; background:rgba(217,182,94,.09); color:#d8c385; font-size:9px; font-weight:850; white-space:nowrap; }
.basketball-game-highlights p { min-width:0; display:grid; gap:2px; margin:0; }
.basketball-game-highlights p strong,.basketball-game-highlights p span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.basketball-game-highlights p strong { font-size:11px; }
.basketball-game-highlights p span { color:var(--muted); font-size:9px; }
.basketball-game-highlight-score { display:flex; align-items:center; gap:5px; padding:4px 6px; border:1px solid rgba(217,182,94,.13); border-radius:7px; color:var(--muted); font-size:9px; white-space:nowrap; }
.basketball-game-highlight-score b { font-weight:750; }
.basketball-game-highlight-score i { color:rgba(217,195,133,.56); font-style:normal; }
.basketball-game-highlight-score strong { color:#e5d49e; font-size:10px; }
.basketball-game-highlights__empty { margin:0; padding:18px; color:var(--muted,#96a2b5); font-size:12px; text-align:center; }
@media (max-width:720px) {
  .basketball-game-plan-summary > summary,.basketball-game-highlights-panel > summary { min-height:64px; padding:12px 14px; }
  .basketball-game-plan-summary__action em { display:none; }
  .basketball-game-highlights { padding:9px; }
  .basketball-game-highlights > div { grid-template-columns:1fr; }
  .basketball-game-highlights article { grid-template-columns:auto minmax(0,1fr); }
  .basketball-game-highlight-score { grid-column:2; justify-self:start; }
  .basketball-game-highlights p strong,.basketball-game-highlights p span { white-space:normal; }
  .basketball-game-plan-grid { grid-template-columns:1fr; gap:9px; padding:9px; }
  .basketball-game-plan-grid > article { padding:13px; }
  .basketball-game-plan-tactics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .basketball-game-plan-tactics > span:last-child { grid-column:1/-1; }
  .basketball-game-plan-evidence { grid-template-columns:1fr; }
  .basketball-game-plan-evidence .is-duties,.basketball-game-plan-evidence .is-matchups { grid-template-columns:1fr; }
  .basketball-game-plan-evidence section > span { grid-template-columns:1fr; gap:2px; }
  .basketball-game-plan-evidence em { white-space:normal; }
}

/* Shared live matchup cards are used by local and authoritative match consoles. */
.basketball-mini-player{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-width:0;padding:7px 8px;border:1px solid var(--line,#2d394c);border-radius:10px;background:rgba(10,16,25,.82);color:var(--text,#eef3f8);cursor:pointer;text-align:left}.basketball-mini-player:hover{border-color:rgba(232,97,45,.65);background:rgba(232,97,45,.08)}.basketball-mini-player:focus-visible{outline:3px solid rgba(232,97,45,.25);outline-offset:2px}.basketball-mini-player>span:first-child{display:grid;place-items:center;width:38px;height:38px;overflow:hidden;border-radius:9px;background:linear-gradient(145deg,#263348,#111925)}.basketball-mini-player img{width:100%;height:100%;object-fit:cover}.basketball-mini-player i{font-style:normal;font-weight:900}.basketball-mini-player>span:nth-child(2){display:grid;gap:2px;min-width:0}.basketball-mini-player strong,.basketball-mini-player small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basketball-mini-player strong{font-size:11px}.basketball-mini-player small{color:var(--muted,#96a2b5);font-size:9px}.basketball-mini-player>b{display:grid;place-items:center;min-width:30px;height:30px;border-radius:8px;background:linear-gradient(145deg,#e8612d,#a93817);font-size:12px}.live-matchup-row{display:grid;grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);align-items:center;gap:9px;padding:9px;border:1px solid var(--line,#2d394c);border-radius:11px;background:rgba(7,12,19,.52)}.live-matchup-link{color:var(--muted,#96a2b5);font-size:9px;font-weight:800;text-align:center}.live-matchup-defender{display:grid;gap:7px;min-width:0}.live-matchup-defender select{order:2}.live-matchup-defender .basketball-mini-player{order:1}
@media(max-width:640px){.live-matchup-row{grid-template-columns:1fr}.live-matchup-link{text-align:left}.live-matchup-link::after{content:" ↓"}.basketball-mini-player{grid-template-columns:42px minmax(0,1fr) auto;min-height:58px}}
