:root{--ink:#111a27;--muted:#667386;--line:#dce4ed;--paper:#fff;--bg:#edf2f6;--orange:#f26522;--orange-deep:#bd4306;--blue:#102946;--blue-2:#1d4269;--green:#168259;--shadow:0 12px 36px #11294712}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at top right,#e5effa 0,transparent 26rem),var(--bg);color:var(--ink);font:15px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.basketball-app{max-width:1600px;margin:auto;padding:18px}
.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:20px;padding:12px 4px 22px}
.back{color:var(--blue);font-weight:850;text-decoration:none}
.brand{display:flex;align-items:center;gap:14px}
.brand img{width:150px;max-height:64px;object-fit:contain;background:var(--blue);border-radius:9px;padding:5px}
.brand h1{margin:0;font-size:1.45rem}
.brand p{margin:2px 0 0;color:var(--muted);font-weight:600}
.sync-tools{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.sync-status,.muted{color:var(--muted);font-size:.8rem;font-weight:700}
.sync-status.ok{color:var(--green)}
button,select,input{font:inherit}
button{border:0;border-radius:8px;padding:8px 11px;background:var(--blue);color:#fff;font-weight:800;cursor:pointer}
button:hover{filter:brightness(1.12)}
button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #f2652255;outline-offset:2px}
.tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);margin-bottom:18px}
.tabs button{background:transparent;color:var(--muted);border-radius:8px 8px 0 0}
.tabs button.active{color:var(--orange-deep);box-shadow:inset 0 -3px var(--orange)}
.tab-panel{display:none}
.tab-panel.active{display:block}
.tab-panel[hidden]{display:none!important}
.hero-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.hero-stats article,.panel,.team-summary{background:var(--paper);border:1px solid var(--line);border-radius:13px;box-shadow:0 1px 2px #13233a0a}
.hero-stats article{padding:14px 16px;background:linear-gradient(135deg,#102946,#1d4975);color:#fff}
.hero-stats span{display:block;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;opacity:.75}
.hero-stats strong{font-size:1.75rem}
.two-columns,.match-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:14px}
.panel{padding:15px;margin-bottom:14px}
.panel-head{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:10px}
.panel h2{margin:0;font-size:1rem}
.panel a,.team-picker a,.match-picker a{color:var(--orange-deep);font-weight:800;text-decoration:none;font-size:.85rem}
.standings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.group{border:1px solid var(--line);border-radius:9px;overflow:hidden}
.group h3{font-size:.83rem;margin:0;padding:7px 9px;background:#edf2f6}
.group table{border-collapse:collapse;width:100%;font-size:.78rem}
.group td,.group th{padding:5px 7px;text-align:right;border-top:1px solid #edf0f2}
.group td:nth-child(2),.group th:nth-child(2){text-align:left}
.schedule{display:grid;gap:7px;max-height:620px;overflow:auto}
.game-row{display:grid;grid-template-columns:78px 1fr auto;gap:8px;align-items:center;border-bottom:1px solid #edf0f2;padding:7px 0;font-size:.82rem}
.game-row strong{font-size:.86rem}
.game-row.live strong{color:var(--green)}
.format-copy{color:var(--muted);margin:0}

/* Team desk: a fixed, browseable national-team rail and visual roster cards. */
.teams-layout{display:grid;grid-template-columns:275px minmax(0,1fr);gap:16px;align-items:start}
.team-directory{position:sticky;top:12px;padding:13px}
.team-directory .panel-head{margin-bottom:8px}
.team-search-label{display:block;color:var(--muted);font-size:.7rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;margin:7px 0 4px}
.team-directory input{width:100%;border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fafcff}
.team-directory-list{display:grid;gap:3px;max-height:calc(100vh - 230px);min-height:340px;overflow:auto;padding:8px 2px 2px}
.team-directory-item{display:grid;grid-template-columns:30px 1fr auto;gap:9px;align-items:center;width:100%;padding:8px 8px;background:transparent;color:var(--ink);text-align:left;border-radius:8px}
.team-directory-item:hover{background:#f3f7fb}
.team-directory-item.active{background:#e6f0fa;color:var(--blue);box-shadow:inset 3px 0 var(--orange)}
.team-directory-item strong{font-size:.86rem}
.team-directory-item small{color:var(--muted);font-weight:800}
.flag-image,.team-flag{width:28px;height:20px;object-fit:contain;filter:drop-shadow(0 1px 1px #13233a2e)}
.flag-fallback{width:28px;text-align:center;font-size:1.15rem;line-height:20px}
.team-picker,.match-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.team-picker label,.match-picker label{font-weight:850}
.team-picker select,.match-picker select{min-width:260px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}
.team-summary{padding:0;margin-bottom:14px;display:grid;grid-template-columns:minmax(220px,1.15fr) repeat(4,minmax(100px,1fr));gap:0;overflow:hidden}
.team-summary>div{padding:14px;border-right:1px solid var(--line)}
.team-summary>div:last-child{border:0}
.team-summary .team-identity{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#132e4d,#1c4974);color:#fff}
.team-summary .team-identity img{width:46px;height:34px;object-fit:contain}
.team-summary strong,.team-summary span{display:block}
.team-summary span{font-size:.71rem;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.04em}
.team-summary .team-identity span{color:#cddff0}
.team-summary .team-identity strong{font-size:1.1rem}
.panel-hint{color:var(--muted);font-size:.75rem;font-weight:700}
.roster{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.player-card{position:relative;display:grid;grid-template-columns:70px 1fr;gap:10px;min-height:102px;padding:9px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(120deg,#fff,#fbfcfe);cursor:pointer;overflow:hidden;transition:transform .15s,box-shadow .15s,border-color .15s}
.player-card:hover,.player-card:focus-visible{transform:translateY(-2px);border-color:#b5c9da;box-shadow:var(--shadow);outline:none}
.player-card:focus-visible{outline:3px solid #f2652255}
.player-photo,.coach-photo{width:70px;height:84px;object-fit:cover;object-position:center top;border-radius:7px;background:#dbe5ee}
.player-photo-fallback,.coach-photo-fallback{width:70px;height:84px;border-radius:7px;background:linear-gradient(145deg,#274f76,#102946);color:#fff;display:grid;place-items:center;font-size:1.15rem;font-weight:900}
.player-number{position:absolute;left:6px;top:5px;min-width:23px;padding:1px 4px;border-radius:5px;background:#f26522;color:#fff;text-align:center;font-size:.72rem;font-weight:950}
.player-info{min-width:0;padding-top:2px}
.player-info b{display:block;font-size:.92rem;line-height:1.15}
.player-info small{display:block;color:var(--muted);font-size:.75rem;font-weight:650;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-meta{display:flex;gap:5px;align-items:center;margin-top:8px;flex-wrap:wrap}
.player-chip{font-size:.68rem;font-weight:850;background:#eff4f8;color:#31475e;padding:2px 5px;border-radius:4px}
.captain{color:var(--orange-deep);font-weight:900}
.player-hover{display:none;position:absolute;z-index:3;left:7px;right:7px;bottom:7px;padding:8px;border-radius:7px;background:#102946ee;color:#fff;font-size:.71rem;box-shadow:0 5px 14px #10294644}
.player-card:hover .player-hover,.player-card:focus-visible .player-hover{display:block}
.coaches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.coach{display:grid;grid-template-columns:45px 1fr;gap:9px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:7px}
.coach-photo,.coach-photo-fallback{width:45px;height:52px}
.coach b{font-size:.85rem;line-height:1.1}
.coach small{display:block;color:var(--muted);font-size:.73rem;font-weight:650;margin-top:3px}

/* Match operation desk */
.ticker-note{padding:10px 12px;border-radius:8px;background:#fff4e9;color:#87500f;font-weight:650}
.scoreboard{display:grid;grid-template-columns:1fr 190px 1fr;align-items:center;text-align:center;padding:22px;background:linear-gradient(145deg,#fff,#f7fafc)}
.score-team strong{display:block;font-size:1.12rem}
.match-team-flag{display:block;height:31px;margin:0 auto 3px}
.match-team-flag img{height:28px;max-width:42px;object-fit:contain}
.score-team div{display:flex;justify-content:center;align-items:center;gap:8px;margin:8px 0}
.score-team button{background:var(--orange);font-size:1.2rem;padding:2px 10px}
.score-team output{min-width:52px;font-size:2.7rem;font-weight:950}
.score-team span,.game-state small{font-size:.75rem;color:var(--muted);font-weight:800}
.game-state select,.game-state input{width:100%;padding:7px;border:1px solid var(--line);border-radius:7px;margin:3px 0;text-align:center;font-weight:800}
.manual-badge{display:block;font-size:.61rem;letter-spacing:.08em;font-weight:900;color:var(--orange-deep);margin-bottom:4px}
.event-form{display:grid;grid-template-columns:1fr 1fr 1.3fr auto;gap:7px}
.event-form select,.event-form input{border:1px solid var(--line);border-radius:8px;padding:8px;background:white}
.quick-score,.foul-controls{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.quick-score button{background:#e8611e;font-size:.78rem}
.foul-controls button{background:#556270;font-size:.8rem}
.foul-controls #undoEvent{background:#8f3217}
.event-log{list-style:none;padding:0;margin:0;max-height:300px;overflow:auto}
.event-log li{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #edf0f2;padding:8px 1px;font-size:.83rem}
.event-log .score-event{font-weight:900;color:var(--orange-deep)}
.rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.rules-grid .panel{margin:0}
.rule-wide{grid-column:1/-1}
.rule-wide ul{padding-left:20px;color:var(--muted)}

/* Detail dialog intentionally uses the same compact, data-first visual language as WM2026. */
.player-dialog{width:min(650px,calc(100vw - 28px));padding:0;border:0;border-radius:15px;box-shadow:0 24px 80px #1029465a;color:var(--ink)}
.player-dialog::backdrop{background:#10294699;backdrop-filter:blur(3px)}
.dialog-close{position:absolute;right:11px;top:11px;z-index:3;width:32px;height:32px;padding:0;border-radius:50%;background:#fff;color:var(--blue);font-size:1.4rem;line-height:1}
.player-detail-hero{display:grid;grid-template-columns:175px 1fr;min-height:205px;background:linear-gradient(135deg,#102946,#1d4b76);color:#fff}
.player-detail-hero img,.player-detail-hero .player-photo-fallback{width:175px;height:205px;border-radius:0;object-fit:cover}
.player-detail-copy{padding:28px 24px 18px}
.player-detail-copy .eyebrow{font-size:.7rem;font-weight:900;letter-spacing:.08em;color:#b7d2eb}
.player-detail-copy h2{font-size:1.65rem;line-height:1.05;margin:7px 35px 4px 0}
.player-detail-copy p{margin:0;color:#dbe9f4;font-weight:650}
.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.detail-grid div{padding:12px;background:#fff}
.detail-grid span{display:block;color:var(--muted);font-size:.67rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.detail-grid strong{font-size:.93rem}
.detail-actions{padding:14px 16px;display:flex;justify-content:space-between;align-items:center}
.detail-actions a{color:var(--orange-deep);font-weight:850;text-decoration:none}
.detail-stat-line{padding:0 16px 15px;color:var(--muted);font-size:.83rem;font-weight:700}

@media(max-width:1100px){.roster{grid-template-columns:repeat(2,minmax(0,1fr))}
.coaches{grid-template-columns:repeat(2,minmax(0,1fr))}
.team-summary{grid-template-columns:repeat(3,1fr)}
.team-summary .team-identity{grid-column:span 3}
}
@media(max-width:850px){.topbar{grid-template-columns:1fr;gap:10px}
.sync-tools{justify-content:start}
.two-columns,.match-grid,.teams-layout{grid-template-columns:1fr}
.team-directory{position:static}
.team-directory-list{max-height:245px;grid-template-columns:repeat(2,minmax(0,1fr))}
.standings{grid-template-columns:1fr}
.hero-stats{grid-template-columns:repeat(2,1fr)}
.scoreboard{grid-template-columns:1fr;padding:14px;gap:10px}
.game-state{order:-1}
.event-form{grid-template-columns:1fr 1fr}
.rules-grid{grid-template-columns:1fr}
.rule-wide{grid-column:auto}
}
@media(max-width:500px){.basketball-app{padding:10px}
.brand img{width:112px}
.brand h1{font-size:1.15rem}
.tabs{overflow:auto}
.tabs button{white-space:nowrap}
.event-form{grid-template-columns:1fr}
.game-row{grid-template-columns:70px 1fr}
.game-row>:last-child{grid-column:2}
.team-picker select,.match-picker select{min-width:0;width:100%}
.team-directory-list{grid-template-columns:1fr}
.roster,.coaches{grid-template-columns:1fr}
.team-summary{grid-template-columns:repeat(2,1fr)}
.team-summary .team-identity{grid-column:span 2}
.team-summary>div{border-bottom:1px solid var(--line)}
.player-detail-hero{grid-template-columns:105px 1fr;min-height:160px}
.player-detail-hero img,.player-detail-hero .player-photo-fallback{width:105px;height:160px}
.player-detail-copy{padding:22px 14px}
.detail-grid{grid-template-columns:repeat(2,1fr)}
}


/* Dense three-column roster workspace: navigation, people, always-visible detail. */
.teams-layout{grid-template-columns:250px minmax(440px,1fr) 325px}
.team-content{min-width:0}
.team-inspector{position:sticky;top:12px;min-height:530px;padding:0;overflow:hidden}
.team-inspector-empty{padding:26px 18px;color:var(--muted)}
.inspector-hero{background:linear-gradient(145deg,#102946,#1d4b76);color:#fff;padding:18px;text-align:center}
.inspector-hero img,.inspector-hero .player-photo-fallback{width:150px;height:178px;object-fit:contain;margin:auto;border-radius:9px;background:transparent}
.inspector-hero h2{font-size:1.3rem;margin:10px 0 3px}
.inspector-hero p{margin:0;color:#d5e5f3;font-size:.84rem;font-weight:650}
.inspector-details{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}
.inspector-details div{background:#fff;padding:10px 12px}
.inspector-details span{display:block;color:var(--muted);font-size:.65rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.inspector-details strong{font-size:.86rem}
.inspector-note{padding:14px 16px;color:var(--muted);font-size:.79rem;font-weight:650}
.inspector-link{display:block;margin:0 16px 16px;padding:9px;text-align:center;background:#f26522;color:#fff;border-radius:8px;text-decoration:none;font-size:.82rem;font-weight:850}
.roster{display:grid;grid-template-columns:1fr;gap:4px}
.player-card{display:grid;grid-template-columns:31px 48px minmax(150px,1fr) 92px;align-items:center;min-height:58px;padding:5px 9px;border-radius:8px;overflow:visible}
.player-card:hover,.player-card.selected{transform:none;border-color:#9db8ce;box-shadow:none;background:#eff6fc}
.player-card.selected{box-shadow:inset 3px 0 #f26522}
.player-photo,.player-photo-fallback{width:42px;height:48px;border-radius:5px;object-fit:contain;background:#e8eef4}
.player-number{position:static;justify-self:center;background:transparent;color:var(--orange-deep);font-size:.85rem}
.player-info{padding:0}
.player-info b{font-size:.87rem}
.player-info small{display:inline;margin:0;font-size:.73rem;white-space:normal}
.player-info small+small:before{content:" · "}
.player-meta{justify-content:flex-end;margin:0;flex-wrap:nowrap}
.player-hover{display:none!important}
.coaches{grid-template-columns:1fr;gap:4px}
.coach{grid-template-columns:42px 1fr auto;padding:5px 8px}
.coach-photo,.coach-photo-fallback{width:36px;height:42px;object-fit:contain;background:#e8eef4}
.panel-hint{display:none}

/* Automatic, court-first basketball matchcenter. */
.auto-sync-status{font-size:.76rem;font-weight:850;color:var(--green);padding:6px 9px;border-radius:999px;background:#e8f7ef}
.ticker-note{margin:0 0 12px}
.matchcenter{padding:0;overflow:hidden}
.live-score-header{display:grid;grid-template-columns:1fr 220px 1fr;align-items:center;padding:16px 28px;background:linear-gradient(135deg,#102946,#1b4a75);color:#fff}
.score-side{display:flex;align-items:center;gap:10px;font-size:1.05rem}
.score-side.away{justify-content:flex-end;text-align:right}
.match-team-flag{height:32px;min-width:42px}
.match-team-flag img{width:42px;height:30px;object-fit:contain}
.official-score{text-align:center}
.official-score span{display:block;color:#bed6e9;font-size:.62rem;letter-spacing:.09em;font-weight:900}
.official-score b{display:flex;align-items:center;justify-content:center;gap:10px;font-size:2.35rem;line-height:1.05}
.official-score output{color:#fff;font-weight:950}
.official-score i{font-style:normal;color:#f26522}
.official-score small{display:block;font-weight:800;color:#d4e8f6}
.matchcenter-layout{display:grid;grid-template-columns:220px minmax(350px,1fr) 235px 220px;min-height:545px;background:#f7fafc}
.lineup-column{padding:13px;border-right:1px solid var(--line);background:#fff}
.lineup-column.away{border-right:0;border-left:1px solid var(--line)}
.lineup-heading{border-bottom:1px solid var(--line);padding:0 2px 9px;margin-bottom:5px}
.lineup-heading h2{font-size:.94rem;margin:0}
.lineup-heading small{color:var(--muted);font-size:.69rem;font-weight:750}
.lineup-list{display:grid;gap:3px}
.lineup-player{display:grid;grid-template-columns:31px 1fr auto;align-items:center;gap:6px;width:100%;padding:5px 3px;border:0;border-radius:6px;background:transparent;color:var(--ink);text-align:left}
.lineup-player:hover,.lineup-player.selected{background:#edf5fb}
.lineup-player img,.lineup-player .lineup-avatar{width:28px;height:32px;object-fit:contain;border-radius:4px;background:#e9eff4}
.lineup-player b{font-size:.75rem;line-height:1.05}
.lineup-player small{color:var(--muted);font-size:.64rem;font-weight:750}
.lineup-player .jersey{color:var(--orange-deep);font-size:.9rem;font-weight:900}
.court-wrap{position:relative;padding:16px 12px;background:#d89755}
.court-label{text-align:center;color:#fff8;letter-spacing:.1em;font-size:.61rem;font-weight:900;margin-bottom:8px}
.basketball-court{position:relative;min-height:458px;border:3px solid #fff9;background:linear-gradient(90deg,#dba060,#e7b878 50%,#dba060);overflow:hidden}
.basketball-court:before{content:"";position:absolute;left:50%;top:0;bottom:0;border-left:3px solid #fff9}
.basketball-court:after{content:"";position:absolute;left:50%;top:50%;width:92px;height:92px;border:3px solid #fff9;border-radius:50%;transform:translate(-50%,-50%)}
.court-key{position:absolute;top:50%;width:27%;height:44%;border:3px solid #fff9;transform:translateY(-50%)}
.court-key.home{left:0;border-left:0}
.court-key.away{right:0;border-right:0}
.court-player{position:absolute;z-index:2;width:62px;transform:translate(-50%,-50%);text-align:center;color:#fff;cursor:pointer}
.court-player img,.court-player .lineup-avatar{display:block;width:45px;height:51px;margin:auto;object-fit:contain;border-radius:7px;background:#163c61;box-shadow:0 2px 8px #3d190744}
.court-player b{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.65rem;text-shadow:0 1px 2px #3d1907}
.court-player small{display:inline-block;padding:1px 4px;border-radius:4px;background:#102946de;font-size:.6rem;font-weight:900}
.court-player.away img,.court-player.away .lineup-avatar{background:#f26522}
.court-note{margin:8px 4px 0;color:#fff;font-size:.7rem;font-weight:650;text-align:center}
.match-detail{padding:13px;border-left:1px solid var(--line);background:#fff}
.match-player-detail{min-height:265px}
.match-player-empty{padding:16px 2px;color:var(--muted);font-size:.8rem;font-weight:650}
.match-player-profile{text-align:center}
.match-player-profile img,.match-player-profile .lineup-avatar{width:98px;height:115px;object-fit:contain;margin:auto;background:#e8eef4;border-radius:8px}
.match-player-profile h2{font-size:1rem;margin:8px 0 1px}
.match-player-profile p{font-size:.75rem;color:var(--muted);font-weight:650;margin:0}
.match-player-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:11px;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.match-player-stats div{padding:6px 2px;border-right:1px solid var(--line)}
.match-player-stats div:last-child{border:0}
.match-player-stats span{display:block;color:var(--muted);font-size:.6rem;font-weight:900}
.match-player-stats strong{font-size:.85rem}
.match-facts{border-top:1px solid var(--line);padding-top:10px}
.match-facts h2{font-size:.85rem;margin:0 0 5px}
.match-facts dl{margin:0}
.match-facts dl div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #edf1f4;padding:6px 0}
.match-facts dt{color:var(--muted);font-size:.72rem;font-weight:750}
.match-facts dd{margin:0;text-align:right;font-size:.72rem;font-weight:900}
.team-inspector .player-photo-fallback{display:grid}

@media(max-width:1250px){.teams-layout{grid-template-columns:220px minmax(380px,1fr) 285px}
.matchcenter-layout{grid-template-columns:185px minmax(300px,1fr) 210px 185px}
}
@media(max-width:1000px){.teams-layout{grid-template-columns:220px 1fr}
.team-inspector{grid-column:2;position:static;min-height:0}
.matchcenter-layout{grid-template-columns:190px minmax(320px,1fr) 210px}
.lineup-column.away{grid-column:1;grid-row:2;border-left:0;border-right:1px solid var(--line)}
.court-wrap{grid-row:span 2}
.match-detail{grid-column:3;grid-row:span 2}
}
@media(max-width:760px){.teams-layout{grid-template-columns:1fr}
.team-directory{position:static}
.team-inspector{grid-column:auto}
.player-card{grid-template-columns:31px 43px 1fr}
.player-meta{display:none}
.live-score-header{grid-template-columns:1fr 125px 1fr;padding:12px}
.score-side{font-size:.82rem}
.matchcenter-layout{grid-template-columns:1fr}
.court-wrap{grid-row:auto;min-height:430px}
.lineup-column,.lineup-column.away,.match-detail{grid-column:auto;grid-row:auto;border:0;border-top:1px solid var(--line)}
.lineup-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.match-detail{min-height:0}
.match-player-detail{min-height:0}
.court-note{padding-bottom:4px}
}


.lineup-player .lineup-avatar-fallback{display:grid;place-items:center;width:28px;height:32px;border-radius:4px;background:#e9eff4}
.court-player .lineup-avatar-fallback{display:grid;place-items:center;width:45px;height:51px;margin:auto;border-radius:7px;background:#163c61}
.match-player-profile .lineup-avatar-fallback{display:grid;place-items:center;width:98px;height:115px;margin:auto;border-radius:8px;background:#e8eef4}


/* Shared My Notes component: the same entry model, archive, formatting and reordering affordances used in football. */
.inspector-notes,.match-notes{padding:0 12px 14px}
.team-inspector .app-notes-component{border-top:1px solid var(--line)}
.app-notes-component{font-size:.75rem}
.app-notes-component textarea{font:inherit}
.match-detail .app-notes-component{margin-top:12px}
.inline-officials{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.inline-officials h2{font-size:.85rem;margin:0 0 5px}
.inline-officials button{display:block;width:100%;padding:5px 0;background:transparent;color:var(--ink);border-radius:0;border-bottom:1px solid #edf1f4;text-align:left}
.inline-officials button:hover{color:var(--orange-deep)}
.inline-officials small{display:block;color:var(--muted);font-size:.66rem}
.officials-toolbar{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:14px}
.officials-toolbar h2{margin:0;font-size:1.15rem}
.officials-toolbar p{margin:3px 0 0}
.officials-toolbar label{font-weight:800;font-size:.8rem}
.officials-toolbar input{display:block;margin-top:4px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}
.officials-layout{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(460px,1.2fr);gap:14px}
.official-directory,.official-inspector{min-height:480px}
.official-row{display:grid;grid-template-columns:42px 1fr auto;gap:9px;align-items:center;width:100%;padding:7px;background:transparent;color:var(--ink);text-align:left;border-radius:8px;border-bottom:1px solid #edf1f4}
.official-row:hover,.official-row.selected{background:#eff6fc}
.official-row.selected{box-shadow:inset 3px 0 var(--orange)}
.official-avatar,.official-avatar-fallback{width:34px;height:39px;object-fit:contain;border-radius:5px;background:#e8eef4}
.official-avatar-fallback{display:grid;place-items:center;font-size:.65rem;font-weight:900}
.official-row b{display:block;font-size:.84rem}
.official-row small{display:block;color:var(--muted);font-size:.7rem;font-weight:650}
.official-row em{font-style:normal;color:var(--muted);font-size:.7rem;font-weight:850}
.official-detail-head{display:flex;gap:15px;align-items:center;padding:16px;background:linear-gradient(135deg,#102946,#1d4b76);color:#fff}
.official-detail-photo,.official-detail-photo-fallback{width:88px;height:104px;object-fit:contain;border-radius:8px;background:#fff1}
.official-detail-photo-fallback{display:grid;place-items:center;font-weight:900}
.official-detail-head span{font-size:.67rem;color:#c7deef;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.official-detail-head h2{margin:4px 0;font-size:1.15rem}
.official-detail-head p{margin:0;color:#dcecf7;font-size:.8rem}
.official-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line)}
.official-detail-grid div{padding:11px;background:#fff}
.official-detail-grid span{display:block;color:var(--muted);font-size:.65rem;font-weight:850;text-transform:uppercase}
.official-detail-grid strong{font-size:.8rem}
@media(max-width:760px){.officials-toolbar,.officials-layout{display:block}
.officials-toolbar label{margin-top:12px;display:block}
.officials-toolbar input{width:100%}
.official-inspector{margin-top:14px}
}

/* Shared environment header: identical structure and interaction contract to the other event workspaces. */
:root{--ui-font-scale:1;--panel:#fff;--panel-strong:#f5f8fb;--panel-soft:#edf2f6;--text:#111a27;--accent:#f26522;--accent-strong:#bd4306;--accent-dark:#102946}
.basketball-app{max-width:none;padding:0}
.basketball-workspace{max-width:1600px;margin:auto;padding:18px}
.basketball-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;padding:10px 14px;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 1px 0 #16202908}
.basketball-topbar .brand-block{display:flex;align-items:center;justify-self:start;gap:11px;min-width:230px}
.basketball-brand-mark{display:grid;place-items:center;width:44px;height:44px;overflow:hidden;border-radius:8px;background:var(--blue);padding:3px}
.basketball-brand-mark img{width:100%;height:100%;object-fit:contain}
.basketball-topbar h1{margin:0;font-size:1.12rem;line-height:1.1}
.header-meta{margin:3px 0 0;color:var(--muted);font-size:.75rem;font-weight:700}
.basketball-topbar .view-tabs{display:inline-flex;align-items:center;justify-self:center;gap:3px;max-width:min(760px,100%);height:44px;padding:4px;border:2px solid var(--orange);border-radius:8px;background:#fff3eb}
.basketball-topbar .view-tabs button{min-width:auto;height:34px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:var(--ink);font-size:.78rem;white-space:nowrap}
.basketball-topbar .view-tabs button.active{background:var(--orange);color:#fff;box-shadow:none}
.basketball-topbar .app-menu{position:relative;justify-self:end}
.basketball-topbar .menu-button{display:grid;place-items:center;gap:3px;width:42px;height:38px;padding:0;background:#fff}
.basketball-topbar .menu-button span{display:block;width:18px;height:2px;border-radius:2px;background:var(--ink)}
.basketball-topbar .menu-panel{position:absolute;top:calc(100% + 6px);right:0;z-index:30;display:grid;width:min(520px,calc(100vw - 28px))}
.basketball-topbar .menu-panel[hidden]{display:none!important}
.basketball-menu-sync{display:grid;gap:9px;padding:0 12px 12px}
.basketball-menu-sync button{justify-self:start}
.basketball-menu-sync label{color:var(--muted);font-size:.78rem;font-weight:800}
.basketball-menu-sync input{vertical-align:middle}
.basketball-topbar .menu-close{background:transparent;color:var(--ink)}
.basketball-topbar .ad-menu-panel button{font:inherit}
.basketball-topbar .sync-status.ok{color:var(--green)}
.basketball-court{background:repeating-linear-gradient(90deg,#d79a57 0 34px,#e8bd7f 35px 69px),linear-gradient(90deg,#dba060,#e7b878 50%,#dba060)}
.basketball-court:before{border-left-width:2px}
.basketball-court:after{width:88px;height:88px;border-width:2px}
.court-key{width:23%;height:42%;border-width:2px;background:rgba(255,247,228,.09)}
.court-three{position:absolute;top:50%;width:31%;height:70%;border:2px solid #fff9;transform:translateY(-50%);pointer-events:none}
.court-three.home{left:0;border-left:0;border-radius:0 52% 52% 0}
.court-three.away{right:0;border-right:0;border-radius:52% 0 0 52%}
.court-free{position:absolute;top:50%;width:68px;height:68px;border:2px solid #fff9;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.court-free.home{left:23%}.court-free.away{left:77%}
.court-restricted{position:absolute;top:50%;width:48px;height:48px;border:2px solid #fff9;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}
.court-restricted.home{left:7%}.court-restricted.away{left:93%}
.court-basket{position:absolute;z-index:1;top:50%;width:14px;height:14px;border:3px solid #fff;border-radius:50%;transform:translateY(-50%);filter:drop-shadow(0 1px 1px #7d451d)}
.court-basket:before{content:"";position:absolute;top:50%;width:5px;height:56px;background:#fff;transform:translateY(-50%)}
.court-basket:after{content:"";position:absolute;top:50%;width:24px;height:3px;background:#fff;transform:translateY(-50%)}
.court-basket.home{left:5%}.court-basket.home:before{left:-11px}.court-basket.home:after{left:-20px}.court-basket.away{right:5%}.court-basket.away:before{right:-11px}.court-basket.away:after{right:-20px}
.court-player{z-index:3}
.group-live{display:grid;grid-template-columns:auto 1fr auto;gap:7px;align-items:center;padding:7px 8px;border-top:1px solid #d7ebdf;background:#effaf3;font-size:.72rem}.group-live span{padding:2px 5px;border-radius:4px;background:var(--green);color:#fff;font-size:.62rem;font-weight:950;letter-spacing:.05em}.group-live strong{color:#126445}.group-live small{color:var(--muted);font-weight:800;white-space:nowrap}
.game-row{width:100%;border:0;border-radius:6px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.game-row:hover,.game-row:focus-visible{background:#eff6fc;outline:2px solid #f2652255;outline-offset:1px}.game-row.live{background:#f1fbf5}.match-selection-label{color:var(--muted);font-size:.72rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.match-picker #activeMatchLabel{font-size:.92rem}
.match-hover-toggle{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:.74rem;font-weight:800;white-space:nowrap}.match-hover-toggle input{accent-color:var(--orange)}
/* `hidden` must win over the reusable fallback display rules; otherwise each portrait fallback becomes a second grid cell. */
.player-photo-fallback[hidden],.coach-photo-fallback[hidden],.lineup-avatar-fallback[hidden],.bench-coach-photo-fallback[hidden],.official-avatar-fallback[hidden],.official-detail-photo-fallback[hidden]{display:none!important}
.team-picker{justify-content:flex-end;margin-bottom:5px}.team-profile-link{padding:6px 0}.player-card{grid-template-columns:28px 46px minmax(0,1fr) auto;min-height:54px;padding:4px 8px;gap:7px}.player-photo{width:42px;height:46px}.player-info{min-width:0}.player-info b{overflow:hidden;color:var(--ink);font-size:.86rem;white-space:nowrap;text-overflow:ellipsis}.player-info small{color:#536477;font-size:.69rem}.player-meta{gap:3px}.player-chip{font-size:.62rem;padding:2px 4px}.officials-team-entry{margin-top:8px;border-top:1px solid var(--line);color:var(--blue)}.officials-team-entry.active{background:#e6f0fa;box-shadow:inset 3px 0 var(--orange)}.officials-team-icon{display:grid;place-items:center;width:28px;font-size:1.05rem}.officials-team-content{grid-column:2/4;min-width:0}.officials-team-layout{display:grid;grid-template-columns:minmax(330px,.85fr) minmax(380px,1.15fr);gap:14px}.officials-team-content .official-directory,.officials-team-content .official-inspector{min-height:520px}
/* Dense, hover-first match desk: both benches stay visible without pushing the court away. */
.matchcenter-layout{grid-template-columns:minmax(250px,.76fr) minmax(600px,1.8fr) minmax(250px,.76fr);min-height:492px}.lineup-column{padding:9px}.lineup-heading{padding:0 1px 6px;margin-bottom:2px}.lineup-heading h2{font-size:.9rem}.lineup-heading small{font-size:.66rem}.lineup-list{gap:1px}.lineup-player{grid-template-columns:28px 25px minmax(0,1fr);gap:5px;min-height:30px;padding:2px 3px;border-radius:4px}.lineup-player img,.lineup-player .lineup-avatar,.lineup-player .lineup-avatar-fallback{width:23px;height:26px;border-radius:3px}.lineup-player b{display:block;overflow:hidden;color:var(--ink);font-size:.74rem;line-height:1.12;white-space:nowrap;text-overflow:ellipsis}.lineup-player small{display:none}.lineup-player .jersey{color:var(--orange-deep);font-size:.65rem;text-align:right}.bench-coaches{display:grid;gap:2px;margin-top:6px;padding-top:5px;border-top:1px solid var(--line)}.bench-coaches>small{color:var(--muted);font-size:.61rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.bench-coach{display:grid;grid-template-columns:25px minmax(0,1fr);gap:5px;align-items:center;padding:2px 0}.bench-coach-photo,.bench-coach-photo-fallback{width:23px;height:26px;object-fit:contain;border-radius:3px;background:#e9eff4}.bench-coach-photo-fallback{display:grid;place-items:center;font-size:.56rem;font-weight:900}.bench-coach b{display:block;overflow:hidden;color:var(--ink);font-size:.67rem;white-space:nowrap;text-overflow:ellipsis}.bench-coach small{display:block;color:var(--muted);font-size:.58rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.basketball-court{min-height:418px}.court-wrap{padding:11px 9px}.match-hover-card{position:absolute;z-index:8;right:18px;top:36px;width:min(230px,42%);padding:10px;border:1px solid #fff8;border-radius:10px;background:#fffffff2;box-shadow:0 12px 30px #49240d55;opacity:0;transform:translateY(-5px);pointer-events:none;transition:opacity .14s ease,transform .14s ease}.match-hover-card.is-visible{opacity:1;transform:none}.match-hover-card .match-player-detail{min-height:0}.match-hover-card .match-player-profile img,.match-hover-card .match-player-profile .lineup-avatar,.match-hover-card .match-player-profile .lineup-avatar-fallback{width:70px;height:82px}.match-hover-card .match-player-profile h2{font-size:.9rem}.match-hover-card .match-player-profile p{font-size:.67rem}.match-hover-card .match-player-stats{margin-top:7px}.match-hover-card .match-player-stats div{padding:4px 1px}
.match-hover-card.is-click-open{pointer-events:auto;max-height:calc(100vh - 120px);overflow:auto}.match-hover-close{display:none;position:sticky;z-index:2;float:right;top:0;right:0;width:24px;height:24px;padding:0;border-radius:50%;background:#102946;color:#fff;font-size:1.1rem;line-height:1}.match-hover-card.is-click-open .match-hover-close{display:block}.match-player-live{display:flex;align-items:center;gap:5px;margin:7px 0;padding:5px 6px;border-radius:5px;background:#eaf8f0;color:#126445;font-size:.63rem}.match-player-live span{padding:1px 4px;border-radius:3px;background:#168259;color:#fff;font-weight:950;letter-spacing:.04em}.match-player-live strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.match-player-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.match-player-stats span{font-size:.55rem}.match-player-bio{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0}.match-player-bio div{min-width:0;padding:4px 5px;border-radius:4px;background:#f1f5f8}.match-player-bio dt{color:var(--muted);font-size:.55rem;font-weight:900;text-transform:uppercase}.match-player-bio dd{margin:1px 0 0;overflow:hidden;color:var(--ink);font-size:.64rem;font-weight:750;line-height:1.18;text-overflow:ellipsis;white-space:nowrap}.match-profile-link{display:block;margin:6px 0;color:var(--orange-deep);font-size:.66rem;font-weight:900;text-decoration:none}.match-hover-card .basket-notes{border-top:1px solid var(--line);padding-top:7px}.match-hover-card .basket-notes h3{margin:0 0 5px;font-size:.75rem}.match-hover-card .app-notes-component{font-size:.67rem}
.match-hover-card{width:min(680px,88%);padding:12px}.match-player-layout{display:grid;grid-template-columns:minmax(260px,1.05fr) minmax(230px,.95fr);gap:12px;text-align:left}.match-player-summary{text-align:center}.match-player-summary .match-player-bio,.match-player-summary .match-profile-link,.match-player-summary .live-stat-source{text-align:left}.match-player-notes-column{min-width:0;padding-left:12px;border-left:1px solid var(--line)}.match-player-notes-column .basket-notes{border:0;padding:0}.match-player-notes-column .app-notes-component{font-size:.72rem}.live-stat-source{margin:7px 0;color:var(--muted);font-size:.64rem;font-weight:700;line-height:1.25}.game-row{position:relative;overflow:visible}.game-row-hover{position:absolute;z-index:10;left:0;top:calc(100% + 4px);display:none;width:min(430px,calc(100vw - 64px));padding:10px;border:1px solid #d7e1ea;border-radius:8px;background:#fffffff8;box-shadow:0 12px 30px #1129472a;color:var(--ink);text-align:left}.game-row:hover .game-row-hover,.game-row:focus-visible .game-row-hover{display:grid;gap:4px}.game-row-hover em{color:var(--orange-deep);font-size:.68rem;font-style:normal;font-weight:900}.game-row-hover span{font-size:.7rem;font-weight:700;line-height:1.25}.game-row-hover .game-note-preview{margin-top:3px;padding-top:6px;border-top:1px solid var(--line);color:#4b5b6c}.lineup-avatar-fallback,.bench-coach-photo-fallback{color:#fff!important;font-weight:900}.lineup-player .lineup-avatar-fallback{font-size:.55rem}.court-player .lineup-avatar-fallback{font-size:.75rem}.court-player.away .lineup-avatar-fallback{background:#f26522}
@media(max-width:760px){.match-hover-card{width:calc(100% - 18px);right:9px}.match-player-layout{grid-template-columns:1fr}.match-player-notes-column{padding:10px 0 0;border-top:1px solid var(--line);border-left:0}.game-row-hover{left:auto;right:0;width:min(390px,calc(100vw - 34px))}}
.match-facts{display:flex;gap:14px;flex-wrap:wrap;padding:7px 13px;border-bottom:1px solid var(--line);background:#f7fafc;color:var(--muted);font-size:.7rem}.match-facts span{display:flex;gap:5px;align-items:flex-start}.match-facts b{color:var(--ink);font-weight:750}
.quarter-scores{display:flex;justify-content:center;gap:4px;margin:5px 0 0}.quarter-scores span{display:grid;grid-template-columns:auto auto;gap:3px;padding:2px 4px;border:1px solid #ffffff35;border-radius:4px;color:#d4e7f5;font-size:.56rem;font-weight:800}.quarter-scores span.current{border-color:#f26522;background:#ffffff16;color:#fff}.quarter-scores b{font-size:.54rem;color:#f6b98f}.schedule .game-row{grid-template-columns:154px minmax(0,1fr) auto;min-height:42px}.schedule .game-row>span:first-child{white-space:nowrap}.stage-rail{align-self:start;padding:12px;position:sticky;top:12px}.stage-rail h2{margin:0 0 9px;font-size:.95rem}.stage-rail div{display:grid;gap:3px}.stage-rail span{display:grid;gap:2px;padding:8px;border-radius:7px;background:#f6f9fb}.stage-rail span.active{background:#e6f0fa;box-shadow:inset 3px 0 var(--orange)}.stage-rail b{font-size:.77rem}.stage-rail small{color:var(--muted);font-size:.65rem;font-weight:700}.teams-layout{height:calc(100vh - 98px);overflow:hidden}.team-directory,.team-content,.team-inspector{max-height:calc(100vh - 98px);overflow-y:auto;scrollbar-gutter:stable}.team-directory{overflow:hidden}.team-directory-list{max-height:none;height:calc(100vh - 272px)}.team-content{padding-right:2px}.team-inspector{position:sticky;top:0}
.match-player-summary .lineup-avatar,.match-player-summary .lineup-avatar-fallback{display:block;width:62px;height:74px;margin:auto;object-fit:contain;border-radius:7px;background:#e8eef4}.match-player-summary .lineup-avatar-fallback{display:grid;place-items:center}
@media(min-width:851px){#overview{display:grid;grid-template-columns:182px minmax(0,1fr);column-gap:14px;align-items:start}#overview>.hero-stats{grid-column:1/-1}#overview>.two-columns,#overview>.panel{grid-column:2}.stage-rail{grid-column:1;grid-row:2}}
@media(max-width:850px){.teams-layout{height:auto;overflow:visible}.team-directory,.team-content,.team-inspector{max-height:none;overflow:visible}.team-directory-list{height:auto;max-height:245px}.stage-rail{position:static;margin-bottom:14px}.stage-rail div{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule .game-row{grid-template-columns:130px minmax(0,1fr) auto}}
@media(max-width:1080px){.matchcenter-layout{grid-template-columns:200px minmax(360px,1fr) 200px}.lineup-column{padding:7px}.lineup-player b{font-size:.67rem}}@media(max-width:760px){.officials-team-content{grid-column:auto}.officials-team-layout{grid-template-columns:1fr}.matchcenter-layout{grid-template-columns:1fr;min-height:0}.court-wrap{grid-row:auto;min-height:400px}.lineup-column,.lineup-column.away{grid-column:auto;grid-row:auto;border:0;border-top:1px solid var(--line)}.lineup-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.lineup-player{padding:4px}.match-hover-toggle{width:100%}}
@media(max-width:1100px){.basketball-topbar{grid-template-columns:1fr auto}.basketball-topbar .view-tabs{grid-column:1/-1;grid-row:2;justify-self:start;overflow:auto;max-width:100%}.basketball-topbar .app-menu{grid-column:2;grid-row:1}}
@media(max-width:650px){.basketball-workspace{padding:10px}.basketball-topbar{padding:9px 10px}.basketball-topbar .brand-block{min-width:0}.header-meta{display:none}.basketball-topbar .view-tabs{width:100%;justify-content:flex-start}.basketball-topbar .view-tabs button{font-size:.72rem;padding:0 8px}}

/* Tournament progression belongs underneath the live group tables, not in an overlay rail. */
#stageRail{display:none!important}
.standings{display:block}
.standings-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.knockout-path{margin-top:16px;padding-top:15px;border-top:2px solid #e4edf4}
.knockout-path header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px}
.knockout-path h3{margin:0;font-size:1.06rem}.knockout-path header p{margin:0;color:var(--muted);font-size:.72rem;font-weight:650;text-align:right}
.knockout-section-title{margin:13px 0 7px;color:var(--muted);font-size:.7rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.knockout-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.knockout-grid.final-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.knockout-card{min-width:0;padding:9px;border:1px solid #dce6ee;border-radius:8px;background:linear-gradient(145deg,#fff,#f6f9fc);box-shadow:0 1px 1px #11294708}
.knockout-card h4{margin:0 0 6px;color:var(--blue);font-size:.72rem}.knockout-card div{display:grid;gap:3px;color:var(--ink);font-size:.68rem;font-weight:750;line-height:1.2}.knockout-card span,.knockout-card b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.knockout-card b{color:var(--orange-deep)}
.venue-overview{margin-top:14px}.venue-overview .panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.venue-overview .panel-head p{margin:0;color:var(--muted);font-size:.72rem;font-weight:650}.venue-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px;margin-top:10px}.venue-cards article{display:grid;grid-template-columns:29px minmax(0,1fr);gap:8px;align-items:start;padding:10px;border:1px solid #dce6ee;border-radius:8px;background:#f8fafc}.venue-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:7px;background:#e5eff8;color:var(--blue);font-size:1rem}.venue-cards b,.venue-cards small{display:block}.venue-cards b{font-size:.8rem}.venue-cards small{margin-top:2px;color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.35}
@media(min-width:851px){#overview{display:block}.stage-rail{display:none!important}}
@media(max-width:850px){.standings-groups{grid-template-columns:1fr}.knockout-path header{display:block}.knockout-path header p{margin-top:4px;text-align:left}.knockout-grid,.knockout-grid.final-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.knockout-grid,.knockout-grid.final-grid{grid-template-columns:1fr}}

/* Tournament overview: a compact editorial fixture rail followed by the full
   group stage. The rail remains horizontally scrollable on every viewport. */
.fixture-rail-panel{padding-bottom:12px}.fixture-rail-head{align-items:center}.fixture-filters{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.fixture-filters label{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);font-size:.68rem;font-weight:800;white-space:nowrap}.fixture-filters input{accent-color:var(--orange)}.fixture-filters a{color:var(--orange-deep);font-size:.72rem;font-weight:900;text-decoration:none;white-space:nowrap}.fixture-rail{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;padding:3px 2px 7px;scroll-snap-type:x proximity;scrollbar-gutter:stable}.fixture-card{position:relative;display:block;flex:0 0 245px;min-height:132px;border:1px solid #dce6ee;border-radius:9px;background:#fff;box-shadow:0 1px 2px #11294710;scroll-snap-align:start;overflow:hidden}.fixture-card.live{border-color:#a6dcc4;background:#f1fbf5}.fixture-card.finished{background:#f8fafc}.fixture-card-main{display:grid;grid-template-rows:auto 1fr auto;gap:6px;width:100%;height:100%;min-height:132px;padding:11px 37px 10px 11px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.fixture-card-main:hover,.fixture-card-main:focus-visible{background:#f7fbff;outline:2px solid #f2652266;outline-offset:-2px}.fixture-card-status{color:var(--orange-deep);font-size:.66rem;font-weight:950;letter-spacing:.05em;text-transform:uppercase}.fixture-card.live .fixture-card-status{color:#087b50}.fixture-card-teams{display:grid;gap:5px;min-width:0}.fixture-card-teams>span{display:flex;align-items:center;gap:6px;min-width:0}.fixture-card-teams b{overflow:hidden;font-size:.79rem;text-overflow:ellipsis;white-space:nowrap}.fixture-card-teams i{display:none}.fixture-card-main>strong{position:absolute;right:11px;bottom:28px;color:var(--blue);font-size:1.1rem;letter-spacing:-.04em}.fixture-card-main>small{overflow:hidden;color:var(--muted);font-size:.62rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.fixture-star{position:absolute;z-index:2;right:7px;top:7px;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:#edf2f6;color:#7a8998;font-size:1.12rem;line-height:1;cursor:pointer}.fixture-star:hover,.fixture-star:focus-visible,.fixture-star.active{background:#fff1df;color:var(--orange-deep);outline:0}.fixture-empty{margin:2px 0;color:var(--muted);font-weight:700}.group-stage-panel{overflow:hidden}.overview-groups{display:grid!important;grid-template-columns:repeat(4,minmax(250px,1fr))!important;gap:12px;overflow-x:auto;padding-bottom:4px}.overview-group{min-width:250px}.overview-group table{margin-bottom:0}.group-fixtures{display:grid;gap:4px;margin:10px -1px -1px;padding-top:9px;border-top:1px solid var(--line)}.group-fixtures h4{margin:0 0 2px;color:var(--muted);font-size:.62rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.group-fixture{display:grid;grid-template-columns:76px minmax(0,1fr) 42px;gap:4px;align-items:center;width:100%;padding:5px;border:0;border-radius:5px;background:#f7fafc;color:var(--ink);text-align:left;cursor:pointer}.group-fixture.live{background:#eaf8f0}.group-fixture:hover,.group-fixture:focus-visible{background:#fff1e7;outline:1px solid #f2652266}.group-fixture>span{color:var(--muted);font-size:.58rem;font-weight:900;line-height:1.15}.group-fixture.live>span{color:#087b50}.group-fixture strong{display:flex;align-items:center;gap:3px;min-width:0;overflow:hidden}.group-fixture strong .inline-team-flag{width:18px;height:13px;flex-basis:18px}.group-fixture strong b{overflow:hidden;max-width:calc(50% - 19px);font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.group-fixture strong i{flex:0 0 auto;color:var(--muted);font-size:.65rem;font-style:normal}.group-fixture em{color:var(--blue);font-size:.68rem;font-style:normal;font-weight:900;white-space:nowrap}.knockout-overview{display:grid;gap:14px;margin-top:14px}.knockout-overview .knockout-path{margin:0;padding-top:0;border-top:0}.knockout-overview .knockout-path header{margin-bottom:10px}.knockout-overview .knockout-path h2{margin:0;color:var(--ink);font-size:1.04rem}.knockout-overview .knockout-path p{margin:3px 0 0;color:var(--muted);font-size:.7rem;font-weight:650;text-align:left}
@media(max-width:950px){.overview-groups{grid-template-columns:repeat(2,minmax(250px,1fr))!important}.fixture-rail-head{align-items:flex-start;flex-direction:column}.fixture-filters{justify-content:flex-start}}@media(max-width:650px){.fixture-card{flex-basis:220px}.overview-groups{grid-template-columns:1fr!important}.group-fixture{grid-template-columns:72px minmax(0,1fr) 40px}.fixture-filters{gap:5px}.fixture-filters label{font-size:.64rem}}

/* Fixed team slots keep every second-team flag vertically aligned. */
.group-fixture strong{display:grid;grid-template-columns:18px minmax(0,1fr) 10px 18px minmax(0,1fr);gap:2px;align-items:center;min-width:0;overflow:hidden}.group-fixture strong .inline-team-flag{width:18px;height:13px;flex-basis:auto}.group-fixture strong b{max-width:none;overflow:hidden;font-size:.64rem;text-overflow:ellipsis;white-space:nowrap}.group-fixture strong i{flex:initial;color:var(--muted);font-size:.65rem;font-style:normal;text-align:center}

/* Knockout pairs are two explicit team rows, never clipped text fragments. */
.knockout-card{padding:11px 12px}.knockout-card h4{margin-bottom:8px;color:var(--blue);font-size:.76rem}.knockout-card .knockout-pair{display:grid;gap:5px}.knockout-card .knockout-side{display:grid;grid-template-columns:22px 28px minmax(0,1fr);gap:6px;align-items:center;min-width:0;padding:4px 5px;border-radius:5px;background:#f4f8fb;color:var(--ink);font-size:.74rem;line-height:1.15}.knockout-card .knockout-side .inline-team-flag{width:22px;height:15px;flex-basis:auto}.knockout-card .knockout-seed{display:block;overflow:visible;color:var(--orange-deep);font-size:.66rem;font-weight:950;white-space:nowrap}.knockout-card .knockout-name{display:block;overflow:hidden;color:var(--ink);font-size:.74rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.knockout-card .knockout-reference{grid-template-columns:minmax(0,1fr);background:#fff7f1}.knockout-card .knockout-reference .knockout-seed{overflow:hidden;text-overflow:ellipsis}.knockout-card.final .knockout-side{background:#fff3e8}
.knockout-card .flag-fallback[hidden]{display:none!important}

/* Official game-page boxscore detail: dense enough for a hover, complete enough for commentary. */
.match-player-boxscore{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:8px 0;text-align:left}.match-player-boxscore div{min-width:0;padding:4px;border:1px solid #dce6ee;border-radius:4px;background:#fff}.match-player-boxscore dt{color:var(--muted);font-size:.52rem;font-weight:900;letter-spacing:.03em;white-space:nowrap}.match-player-boxscore dd{margin:2px 0 0;overflow:hidden;color:var(--ink);font-size:.66rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}

/* Keep the match desk dense, but let each bench use the whole available column first. */
.inline-team-flag{width:22px;height:15px;flex:0 0 22px;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 1px 1px #13233a2e)}
.team-with-flag,.game-teams,.group-live-teams,.knockout-team{display:inline-flex;align-items:center;gap:5px;min-width:0}
.game-teams{overflow:hidden;white-space:nowrap}.game-teams span{overflow:hidden;text-overflow:ellipsis}.game-teams i{padding:0 1px;color:var(--muted);font-style:normal}
.group-live-teams{justify-content:flex-start}.knockout-card .knockout-team,.knockout-card .knockout-reference{display:inline-flex;align-items:center;gap:4px;min-width:0}.knockout-card .knockout-team span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.knockout-card .inline-team-flag{width:18px;height:13px;flex-basis:18px}.group table .inline-team-flag{width:20px;height:14px;flex-basis:20px}
@media(min-width:761px){.matchcenter-layout{height:clamp(492px,calc(100vh - 250px),820px)}.lineup-column{display:flex;flex-direction:column;min-height:0;max-height:100%;overflow:hidden}.lineup-list{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-gutter:stable}.bench-coaches{flex:0 0 auto}}

/* Compact, per-player FIBA boxscore signal on the benches. */
.lineup-name{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px;min-width:0}.lineup-name b{grid-column:1;min-width:0}.lineup-name small{grid-column:1}.lineup-live-stat{grid-column:2;grid-row:1;color:#0f7c54;font-size:.56rem;font-style:normal;font-weight:900;letter-spacing:-.02em;white-space:nowrap}.lineup-live-stat.inactive{color:#91a0ae}

/* A schedule tooltip must sit above subsequent match rows and remain opaque. */
.schedule .game-row:hover,.schedule .game-row:focus-visible{z-index:20;isolation:isolate}.schedule .game-row-hover{z-index:30;background:#fff!important;opacity:1;box-shadow:0 14px 34px #11294738}

/* Matchcentre context cards: staff and venues use the same opaque, click-open
   pattern as player profiles so no information is lost against the court. */
.bench-coach{width:100%;border:0;border-radius:4px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.bench-coach:hover,.bench-coach:focus-visible{background:#eff6fc;outline:1px solid #f2652255}.match-fact-button{display:inline;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.match-fact-button:hover,.match-fact-button:focus-visible{color:var(--orange-deep);text-decoration:underline;outline:0}.match-fact-button small{font-size:.65rem}.match-venue-button{display:inline-flex;gap:5px;align-items:flex-start}.match-hover-card{background:#fff!important;isolation:isolate}.match-context-layout{display:grid;grid-template-columns:minmax(260px,1.05fr) minmax(230px,.95fr);gap:12px;text-align:left}.match-context-summary{min-width:0;text-align:center}.match-context-photo,.match-context-photo-fallback{display:block;width:78px;height:94px;margin:0 auto 6px;object-fit:contain;border-radius:7px;background:#e8eef4}.match-context-photo-fallback{display:grid;place-items:center;color:var(--blue);font-size:1.5rem;font-weight:900}.match-context-kicker{display:block;color:var(--orange-deep);font-size:.6rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.match-context-summary h2{margin:3px 0;font-size:1.02rem}.match-context-summary>p{margin:0;color:var(--muted);font-size:.7rem;font-weight:700}.match-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0;text-align:left}.match-context-grid div{min-width:0;padding:5px;border-radius:4px;background:#f1f5f8}.match-context-grid dt{color:var(--muted);font-size:.55rem;font-weight:900;text-transform:uppercase}.match-context-grid dd{margin:2px 0 0;overflow:hidden;color:var(--ink);font-size:.65rem;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.match-venue-photo,.match-venue-photo-fallback{display:block;width:100%;height:118px;margin:0 0 8px;object-fit:cover;border-radius:7px;background:#e8eef4}.match-venue-photo-fallback{display:grid;place-items:center;color:var(--blue);font-size:2rem;font-weight:900}.venue-context-copy,.venue-context-history{margin:7px 0!important;text-align:left;line-height:1.3}.venue-context-history{padding-top:7px;border-top:1px solid var(--line);font-size:.66rem!important}.venue-image-credit{font-size:.56rem!important;text-align:left}.match-context-links{text-align:left}.match-context-links a{color:var(--orange-deep);font-size:.67rem;font-weight:900;text-decoration:none}.venue-cards{align-items:stretch}.venue-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:9px;width:100%;padding:9px;border:1px solid #dce6ee;border-radius:8px;background:#f8fafc;color:var(--ink);text-align:left;cursor:pointer}.venue-card:hover,.venue-card:focus-visible{border-color:#f26522;background:#fff7f1;outline:0;box-shadow:0 4px 14px #11294714}.venue-card .venue-photo,.venue-card .venue-photo-fallback{width:92px;height:76px;margin:0;object-fit:cover;border-radius:6px}.venue-card .venue-photo-fallback{display:grid;place-items:center}.venue-card-copy{min-width:0}.venue-card-copy b,.venue-card-copy small{display:block}.venue-card-copy b{font-size:.8rem}.venue-card-copy small{margin-top:3px;color:var(--muted);font-size:.66rem;font-weight:700;line-height:1.25}
@media(max-width:760px){.match-context-layout{grid-template-columns:1fr}.venue-card{grid-template-columns:76px minmax(0,1fr)}.venue-card .venue-photo,.venue-card .venue-photo-fallback{width:76px;height:65px}}
.venue-card{position:relative}.venue-card:hover,.venue-card:focus-visible{z-index:4}.venue-card-hover{position:absolute;z-index:5;right:7px;left:7px;bottom:calc(100% - 3px);display:none;gap:4px;padding:9px;border:1px solid #d7e1ea;border-radius:7px;background:#fff!important;box-shadow:0 12px 30px #11294732;color:var(--ink)}.venue-card:hover .venue-card-hover,.venue-card:focus-visible .venue-card-hover{display:grid}.venue-card-hover b{color:var(--orange-deep);font-size:.72rem}.venue-card-hover small{font-size:.65rem;font-weight:700;line-height:1.28}

/* Compact scoreboard: teams frame the flags and score; match context sits under it. */
.live-score-header{grid-template-columns:minmax(0,1fr) minmax(250px,320px) minmax(0,1fr);gap:14px;padding:13px 28px}.score-side.home{justify-content:flex-end;text-align:right}.score-side.away{justify-content:flex-start;text-align:left}.score-side strong{min-width:0;overflow:hidden;font-size:1.06rem;text-overflow:ellipsis;white-space:nowrap}.official-score{display:flex;flex-direction:column;align-items:center}.official-score time{display:block;margin-top:3px;color:#d4e8f6;font-size:.66rem;font-weight:800}.official-score .auto-sync-status{margin-top:6px;padding:3px 7px;background:#ffffff18;color:#bcebd5;font-size:.62rem;line-height:1.2}.official-score a{margin-top:5px;color:#f6b98f;font-size:.68rem;font-weight:900;text-decoration:none}.official-score a:hover{text-decoration:underline}.official-score b{margin-top:1px}.official-score small{margin-top:1px}
@media(max-width:760px){.live-score-header{grid-template-columns:minmax(0,1fr) 124px minmax(0,1fr);gap:5px;padding:11px 9px}.score-side{gap:5px}.score-side strong{font-size:.76rem}.match-team-flag,.match-team-flag img{min-width:30px;width:30px;height:22px}.official-score b{font-size:1.85rem}.official-score .auto-sync-status{max-width:124px}.official-score a{font-size:.61rem}.official-score time{font-size:.59rem}}
.live-score-header{align-items:stretch}.score-side{min-height:112px;gap:14px}.score-side strong{font-size:clamp(1.25rem,2vw,1.75rem)}.match-team-flag,.match-team-flag img{width:68px;height:48px;min-width:68px}.official-score .auto-sync-status{display:none}
@media(max-width:760px){.score-side{min-height:76px;gap:6px}.score-side strong{font-size:.84rem}.match-team-flag,.match-team-flag img{min-width:36px;width:36px;height:26px}}
/* Keep all five score elements together instead of distributing teams across
   the full viewport. Three-character score cells prevent 9:12 and 102:97
   from shifting the flags or country names. */
.live-score-header{display:flex;align-items:center;justify-content:center;gap:18px;padding:12px 24px}.score-side{flex:0 1 auto;min-height:0;gap:9px}.score-side.home{justify-content:flex-end}.score-side.away{justify-content:flex-start}.score-side strong{max-width:220px;font-size:clamp(1.15rem,1.8vw,1.55rem)}.match-team-flag,.match-team-flag img{display:block;width:58px;height:40px;min-width:58px;object-fit:fill}.official-score{flex:0 0 242px}.official-score b{gap:7px}.official-score output{display:inline-block;width:3ch}.official-score #homeScore{text-align:right}.official-score #awayScore{text-align:left}
@media(max-width:760px){.live-score-header{display:grid;grid-template-columns:minmax(0,1fr) 126px minmax(0,1fr);gap:4px;padding:10px 8px}.score-side{min-width:0;gap:4px}.score-side strong{max-width:100%;font-size:.8rem}.match-team-flag,.match-team-flag img{width:34px;height:24px;min-width:34px}.official-score{width:126px;flex:auto}.official-score output{width:2.35ch}}

/* Court cards must show the complete name at a glance: given name above the
   surname, never an ellipsis. */
.court-player{display:flex;flex-direction:column;align-items:center;width:112px;padding:7px 4px 6px;border:0;border-radius:12px;background:#102f50;color:#fff;font:inherit;line-height:1.05}.court-player .court-name{display:block;width:100%;margin-top:4px;text-align:center}.court-player .court-first-name{display:block;overflow:visible;padding:0;background:transparent;color:#cdddea;font-size:.57rem;font-weight:750;line-height:1.08;white-space:normal}.court-player .court-name b{display:block;overflow:visible;color:#fff;font-size:.76rem;line-height:1.12;text-shadow:0 1px 2px #0b1e32;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}.court-player .court-jersey{display:inline-block;margin-top:3px;padding:2px 5px;border-radius:4px;background:#0a2139e6;color:#fff;font-size:.62rem;font-weight:900;line-height:1}.court-player.away{background:#f26522}.court-player.away .court-jersey{background:#9f3514e6}
@media(max-width:760px){.court-player{width:82px;padding:4px 2px;border-radius:8px}.court-player .court-first-name{font-size:.49rem}.court-player .court-name b{font-size:.62rem}.court-player .court-jersey{font-size:.53rem}}

/* A wider court prevents lineup cards touching; compact score badges put the
   official live points at the right edge of each bench row. */
@media(min-width:1081px){.matchcenter-layout{grid-template-columns:minmax(195px,.55fr) minmax(720px,2.2fr) minmax(195px,.55fr)}}
#homeLineupMeta,#awayLineupMeta{display:none}.lineup-heading{padding-bottom:8px}.lineup-live-stat{display:inline-flex;grid-column:2;grid-row:1;align-items:center;align-self:center;gap:2px;margin:0;padding:2px 4px;border:1px solid #b9e6cf;border-radius:999px;background:#eaf8f0;color:#087149;font-size:.59rem;font-style:normal;font-weight:900;line-height:1;letter-spacing:0;white-space:nowrap}.lineup-live-stat span{font-size:.64rem;line-height:1}.lineup-live-stat strong{color:inherit!important;font-size:.65rem!important;line-height:1!important}.lineup-live-stat i{font-size:.5rem;font-style:normal;font-weight:900}.lineup-live-stat mark{padding:1px 2px;border-radius:2px;background:#f26522;color:#fff;font-size:.44rem;font-weight:950;line-height:1}.lineup-live-stat.top-scorer{border-color:#f2a06f;background:#fff2e9;color:#c64c12}.lineup-live-stat.inactive{border-color:#dbe4ec;background:#f3f6f8;color:#91a0ae}
@media(max-width:1080px) and (min-width:761px){.matchcenter-layout{grid-template-columns:minmax(170px,.56fr) minmax(430px,1.8fr) minmax(170px,.56fr)}.lineup-live-stat{padding:2px 3px;font-size:.54rem}.lineup-live-stat mark{display:none}}

/* Notes are working copy: keep the title immediately connected to the first
   note/count rather than spending vertical space inside the hover. */
.basketball-app .app-notes-component{gap:1px}.basketball-app .app-notes-component .league-note-head{margin-bottom:0;gap:3px}.basketball-app .app-notes-component .league-note-head span{margin-top:0}.basketball-app .app-notes-component .league-note-list{gap:2px}.basketball-app .app-notes-component .league-note-empty,.basketball-app .app-notes-component .league-note-readonly-entry{padding:4px 6px}

/* Preserve readable list leading, but halve the gap after a note heading. */
.basketball-app .formatted-note-block .note-bullets{margin:.5em 0 .35em 1.1em;padding-left:.7em}

/* Keep a long profile/notes hover inside the court panel and make its full
   content reachable. Each bench remains its own single scroll surface. */
@media(min-width:761px){.lineup-column{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.lineup-list{flex:0 0 auto;overflow:visible}.match-hover-card.is-visible{top:10px;bottom:10px;max-height:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;pointer-events:auto}.match-hover-card.is-click-open{max-height:none;overflow-y:auto}}

/* The player profile and the personal-notes column are separate reading
   surfaces. A long notes list must never drag the biography along with it. */
@media(min-width:761px){.match-hover-card.is-visible{overflow:hidden!important}.match-hover-card.is-visible .match-player-detail{height:100%;min-height:0}.match-hover-card.is-visible .match-player-layout,.match-hover-card.is-visible .match-context-layout{height:100%;min-height:0;align-items:stretch}.match-hover-card.is-visible .match-player-summary,.match-hover-card.is-visible .match-context-summary,.match-hover-card.is-visible .match-player-notes-column{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.match-hover-card.is-click-open .match-hover-close{position:absolute;top:10px;right:10px;float:none}}

/* The score is a compact entry point to the official ticker and the
   match-specific notes. Keep the existing matchcenter link independently
   clickable inside it. */
.official-score[data-match-result]{padding:4px 8px;border:1px solid transparent;border-radius:9px;cursor:pointer;transition:background .14s,border-color .14s}.official-score[data-match-result]:hover,.official-score[data-match-result]:focus-visible{border-color:#f6b98f;background:#ffffff10;outline:0}.match-result-summary{text-align:left}.match-result-summary h2{margin:4px 0;text-align:center;font-size:1.05rem}.match-result-summary h2 b{color:var(--orange-deep)}.match-result-summary>p{text-align:center}.match-result-periods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:8px 0}.match-result-period{display:grid;gap:2px;padding:5px;border:1px solid #dce6ee;border-radius:5px;background:#f7fafc;text-align:center}.match-result-period b{color:var(--muted);font-size:.58rem}.match-result-period strong{color:var(--ink);font-size:.72rem}.match-result-period.current{border-color:#f26522;background:#fff2e9}.match-result-period.current b{color:var(--orange-deep)}

/* A little more bench width lets the commentator read the FIBA position
   without sacrificing the central court. */
@media(min-width:1081px){.matchcenter-layout{grid-template-columns:minmax(235px,.7fr) minmax(650px,2fr) minmax(235px,.7fr)}}

/* Header utility controls replace the verbose venue/officials strip. They keep
   match context within the blue scoreboard while leaving the score untouched. */
.live-score-header{position:relative}.match-header-tools{position:absolute;bottom:10px;z-index:3;display:flex;gap:7px}.match-header-tools-left{left:13px}.match-header-tools-right{right:13px}.match-header-icon{display:grid;place-items:center;width:31px;height:31px;padding:0;border:1px solid #d4e8f680;border-radius:50%;background:#ffffff12;color:#fff;cursor:pointer;transition:background .14s,border-color .14s,transform .14s}.match-header-icon:hover,.match-header-icon:focus-visible{border-color:#f6b98f;background:#ffffff2a;outline:0;transform:translateY(-1px)}.match-header-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* A live-table hover is a reading surface, not a profile. It is refreshed from
   the FIBA overview alongside the selected game’s five-second game poll. */
.live-table-context,.officials-context{height:100%;min-height:0;padding:3px;text-align:left;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.live-table-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:2px 2px 8px;border-bottom:1px solid var(--line)}.live-table-heading h2,.officials-context h2{margin:2px 0;color:var(--ink);font-size:1.04rem}.live-table-heading p,.officials-context header p{margin:0;color:var(--muted);font-size:.68rem;font-weight:700}.live-table-heading a{flex:0 0 auto;margin-top:5px;color:var(--orange-deep);font-size:.66rem;font-weight:900;text-decoration:none}.live-table-standing{margin-top:9px;border:1px solid #dce6ee;border-radius:7px;overflow:hidden}.live-table-standing header{display:flex;justify-content:space-between;padding:5px 7px;background:#f0f5f8;color:var(--blue);font-size:.62rem;font-weight:950;letter-spacing:.04em}.live-table-standing header small{color:#0f7c54;font-size:.58rem}.live-table-standing table{width:100%;border-collapse:collapse;font-size:.66rem}.live-table-standing th,.live-table-standing td{padding:5px 4px;border-bottom:1px solid #e8eef3;text-align:center}.live-table-standing th{color:var(--muted);font-size:.54rem;text-transform:uppercase}.live-table-standing td:nth-child(2){text-align:left;white-space:nowrap}.live-table-standing td b{margin-left:3px;color:var(--ink)}.live-table-games h3,.live-table-other h3{margin:10px 2px 5px;color:var(--blue);font-size:.72rem}.live-table-games .parallel-heading{margin-top:9px}.live-table-game{display:grid;grid-template-columns:64px minmax(0,1fr) 78px;align-items:center;gap:5px;padding:6px;border-bottom:1px solid #e8eef3;background:#f8fafc}.live-table-game.current{border:1px solid #9ce0bf;border-radius:6px;background:#eaf8f0}.live-table-game>span{color:var(--muted);font-size:.56rem;font-weight:950;letter-spacing:.02em}.live-table-game.current>span{color:#0b7a52}.live-table-game strong{display:flex;align-items:center;justify-content:center;gap:3px;min-width:0;color:var(--ink);font-size:.67rem}.live-table-game strong b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-table-game strong i{padding:0 3px;color:var(--orange-deep);font-size:.7rem;font-style:normal;white-space:nowrap}.live-table-game em{color:var(--muted);font-size:.58rem;font-style:normal;font-weight:800;text-align:right}.live-table-empty{margin:7px 2px;color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.35}.officials-context-list{display:grid;gap:5px;margin-top:10px}.officials-context-list button{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;padding:5px;border:1px solid #dce6ee;border-radius:6px;background:#f8fafc;color:var(--ink);text-align:left;cursor:pointer}.officials-context-list button:hover,.officials-context-list button:focus-visible{border-color:#f6b98f;background:#fff7f1;outline:0}.official-context-photo,.official-context-photo-fallback{width:30px;height:34px;object-fit:contain;border-radius:4px;background:#e8eef4}.official-context-photo-fallback{display:grid;place-items:center;color:var(--blue);font-size:.58rem;font-weight:900}.officials-context-list b,.officials-context-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.officials-context-list b{font-size:.72rem}.officials-context-list small,.officials-context-list em{color:var(--muted);font-size:.59rem;font-style:normal;font-weight:700}
@media(min-width:761px){.match-hover-card.is-visible .live-table-context,.match-hover-card.is-visible .officials-context{height:100%;overflow-y:auto}.match-hover-card.is-visible:has(.live-table-context),.match-hover-card.is-visible:has(.officials-context){overflow:hidden!important}}
@media(max-width:760px){.match-header-tools{bottom:5px;gap:4px}.match-header-tools-left{left:6px}.match-header-tools-right{right:6px}.match-header-icon{width:25px;height:25px}.match-header-icon svg{width:14px;height:14px}.live-table-game{grid-template-columns:48px minmax(0,1fr) 54px;padding:5px 3px}.live-table-game strong{font-size:.59rem}.live-table-game em{font-size:.52rem}.live-table-heading a{font-size:.57rem}}

/* Full official tournament line per player: the match boxscore stays separate
   above, while the World Cup aggregate mirrors FIBA’s detailed-stat columns. */
.wm-performance{margin:9px 0;padding:7px;border:1px solid #dce6ee;border-radius:7px;background:#fbfcfd;text-align:left}.wm-performance header{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin:0 0 6px}.wm-performance header span{color:var(--orange-deep);font-size:.55rem;font-weight:950;letter-spacing:.045em}.wm-performance header b{color:var(--muted);font-size:.57rem;white-space:nowrap}.wm-performance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0}.wm-performance-grid div,.wm-shooting-grid div{min-width:0;padding:4px;border-radius:4px;background:#eef3f7}.wm-performance-grid dt,.wm-shooting-grid dt{color:var(--muted);font-size:.53rem;font-weight:900;line-height:1.05}.wm-performance-grid dd,.wm-shooting-grid dd{margin:2px 0 0;color:var(--ink);font-size:.66rem;font-weight:900;line-height:1.1}.wm-shooting-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin:5px 0 0}.wm-shooting-grid dd{font-size:.59rem;white-space:nowrap}.wm-shooting-grid dd small{display:block;margin-top:1px;color:#0f7c54;font-size:.52rem;font-weight:900}.match-hover-card .wm-performance{font-size:inherit}

/* FIBA Appendix D: show the live route as a projection and retain every
   tie-break input in the table calculation before revealing possible paths. */
.advancement-context{margin-top:11px;padding-top:8px;border-top:1px solid var(--line)}.advancement-context>h3{margin:0 2px;color:var(--blue);font-size:.72rem}.advancement-context>p{margin:3px 2px 6px;color:var(--muted);font-size:.6rem;font-weight:700}.advancement-context>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.advancement-path{min-width:0;padding:6px;border:1px solid #dce6ee;border-radius:6px;background:#f8fafc}.advancement-path.eliminated{opacity:.72}.advancement-path header{display:grid;grid-template-columns:20px minmax(0,1fr);gap:4px;align-items:center}.advancement-path header .inline-team-flag{grid-row:span 2;width:20px;height:14px;min-width:20px}.advancement-path header b{overflow:hidden;color:var(--ink);font-size:.67rem;text-overflow:ellipsis;white-space:nowrap}.advancement-path header small{color:var(--orange-deep);font-size:.55rem;font-weight:900}.advancement-path p{margin:6px 0 3px;color:var(--muted);font-size:.56rem;font-weight:800}.advancement-path>div{display:flex;flex-wrap:wrap;align-items:center;gap:3px}.advancement-path>div .inline-team-flag{width:18px;height:12px;min-width:18px}.advancement-path>div b{font-size:.6rem}.advancement-path>div small{margin-left:2px;color:var(--orange-deep);font-size:.52rem;font-weight:900}.advancement-path>div i{color:var(--muted);font-size:.52rem;font-style:normal}.advancement-path>em{display:block;margin-top:5px;color:#0f7c54;font-size:.55rem;font-style:normal;font-weight:800;line-height:1.2}

/* Officials are deliberately three independent columns: the crew list stays
   visible while the selected person’s official profile and notes can scroll. */
.officials-workspace{display:grid;grid-template-columns:minmax(138px,.72fr) minmax(205px,1fr) minmax(230px,.95fr);height:100%;min-height:0;text-align:left}.officials-crew-column,.officials-person-column,.officials-notes-column{min-width:0;min-height:0;padding:4px 9px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.officials-crew-column{padding-left:2px;border-right:1px solid var(--line)}.officials-person-column{text-align:center}.officials-person-column .match-context-grid,.officials-person-column .match-profile-link{text-align:left}.officials-notes-column{padding-right:2px;border-left:1px solid var(--line)}.officials-crew-column h2,.officials-person-column h2{margin:2px 0;color:var(--ink);font-size:.94rem}.officials-crew-column header p,.officials-person-column>p{margin:0;color:var(--muted);font-size:.62rem;font-weight:700}.officials-workspace .officials-context-list{margin-top:8px}.officials-workspace .officials-context-list button{grid-template-columns:27px minmax(0,1fr);padding:4px}.officials-workspace .officials-context-list button.selected{border-color:#f26522;background:#fff3eb}.officials-workspace .official-context-photo,.officials-workspace .official-context-photo-fallback{width:25px;height:29px}.match-hover-card:has(.officials-workspace){width:min(920px,94%)}
@media(max-width:760px){.advancement-context>div{grid-template-columns:1fr}.officials-workspace{grid-template-columns:1fr;height:auto}.officials-crew-column,.officials-notes-column{border:0;border-bottom:1px solid var(--line)}.officials-person-column{text-align:left}.officials-person-column .match-context-photo,.officials-person-column .match-context-photo-fallback{margin-left:0}.match-hover-card:has(.officials-workspace){width:calc(100% - 18px)}}

/* Make an unresolved bracket slot self-explanatory: current holder first,
   then every team which can still reach that position. */
.advancement-path>div{display:grid;grid-template-columns:1fr;gap:4px}.advancement-path>div>i{display:none}.advancement-slot{display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:4px;border-radius:4px;background:#edf3f7}.advancement-slot>small{width:100%;color:var(--muted)!important;font-size:.53rem!important;font-weight:900}.advancement-slot .inline-team-flag{width:18px;height:12px;min-width:18px}.advancement-slot>b{font-size:.62rem!important}.advancement-slot.uncertain{display:block}.advancement-slot.uncertain strong,.advancement-slot.uncertain em{display:block;color:var(--ink);font-size:.59rem;font-style:normal;font-weight:800;line-height:1.35}.advancement-slot.uncertain strong{margin:2px 0}.advancement-slot.uncertain em{color:#0f7c54}.advancement-slot.uncertain em .inline-team-flag{display:inline-block;margin:0 2px -1px 4px}
.live-table-played{margin-top:10px;padding-top:8px;border-top:1px solid var(--line)}.live-table-played h3{margin:0 2px 5px;color:var(--blue);font-size:.72rem}.played-team-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.played-team-columns>article{min-width:0;border:1px solid #dce6ee;border-radius:6px;overflow:hidden;background:#f8fafc}.played-team-columns>article>header{display:flex;align-items:center;gap:4px;padding:4px 5px;background:#edf3f7}.played-team-columns>article>header .inline-team-flag{width:18px;height:12px;min-width:18px}.played-team-columns>article>header b{overflow:hidden;color:var(--ink);font-size:.63rem;text-overflow:ellipsis;white-space:nowrap}.played-team-columns>article>p{margin:5px;color:var(--muted);font-size:.56rem;font-weight:700}.played-result{display:grid;grid-template-columns:minmax(0,1fr) 14px auto;gap:3px;align-items:center;padding:4px 5px;border-top:1px solid #e7edf2}.played-result span{display:flex;align-items:center;min-width:0;gap:3px}.played-result span .inline-team-flag{width:17px;height:11px;min-width:17px}.played-result span b{overflow:hidden;color:var(--ink);font-size:.59rem;text-overflow:ellipsis;white-space:nowrap}.played-result em{display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#f3d9d9;color:#a73232;font-size:.49rem;font-style:normal;font-weight:950}.played-result.won em{background:#dff3e8;color:#087149}.played-result strong{color:var(--ink);font-size:.61rem;white-space:nowrap}@media(max-width:760px){.played-team-columns{grid-template-columns:1fr}}
.lineup-player .lineup-name small{display:block;overflow:hidden;color:var(--muted);font-size:.57rem;font-weight:750;line-height:1.08;text-overflow:ellipsis;white-space:nowrap}

/* Team names are entry points too: their hover opens the same complete,
   note-enabled team dossier as a player card without changing the score flow. */
.match-team-button,.lineup-team-button{margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:900;text-align:inherit;cursor:pointer}.match-team-button{max-width:220px;overflow:hidden;font-size:clamp(1.15rem,1.8vw,1.55rem);text-overflow:ellipsis;white-space:nowrap}.match-team-button:hover,.match-team-button:focus-visible,.lineup-team-button:hover,.lineup-team-button:focus-visible{color:#f6b98f;text-decoration:underline;outline:0}.lineup-team-button{color:var(--ink);font-size:inherit;text-align:left}.lineup-team-button:hover,.lineup-team-button:focus-visible{color:var(--orange-deep)}.match-context-team-flag,.match-context-team-flag+.flag-fallback{display:block;width:78px;height:56px;margin:0 auto 7px;object-fit:fill}.match-team-summary .match-context-grid{margin-top:10px}.team-context-record{margin:7px 0 0!important;padding-top:7px;border-top:1px solid var(--line);color:var(--ink)!important;font-size:.68rem!important;line-height:1.32}.team-context-record b{color:var(--orange-deep)}.team-context-links{margin:8px 0 0;text-align:left}.team-context-links a{color:var(--orange-deep);font-size:.67rem;font-weight:900;text-decoration:none}.team-context-links a:hover{text-decoration:underline}
@media(max-width:760px){.match-team-button{max-width:100%;font-size:.8rem}.match-context-team-flag,.match-context-team-flag+.flag-fallback{width:56px;height:40px}}

.team-context-history{margin:7px 0 0!important;padding-top:7px;border-top:1px solid var(--line);color:var(--ink)!important;font-size:.68rem!important;line-height:1.32}.team-context-history b{color:var(--orange-deep)}

/* Four equal live-stat tiles fit one line; history is a separate editorial
   dossier tile instead of competing with live match values. */
.team-context-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:8px 0;text-align:left}.team-context-stats div{min-width:0;padding:5px;border-radius:4px;background:#f1f5f8}.team-context-stats dt{overflow:hidden;color:var(--muted);font-size:.52rem;font-weight:900;letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap}.team-context-stats dd{margin:2px 0 0;overflow:hidden;color:var(--ink);font-size:.71rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.team-history-tile{margin-top:8px;padding:8px;border:1px solid #f0c1a5;border-radius:7px;background:#fff7f1;text-align:left}.team-history-tile>span{display:block;color:var(--orange-deep);font-size:.58rem;font-weight:950;letter-spacing:.06em}.team-history-tile p{margin:4px 0!important;color:var(--ink)!important;font-size:.67rem!important;font-weight:700;line-height:1.3}.team-history-tile a{color:var(--orange-deep);font-size:.65rem;font-weight:900;text-decoration:none}.team-history-tile a:hover{text-decoration:underline}
@media(max-width:760px){.team-context-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Live analysis is a compact desk surface: it keeps the two teams in one
   visual scan while leaving the official boxscore as the single data source. */
.match-analytics-context{height:100%;min-height:0;padding:3px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;text-align:left}.match-hover-card:has(.match-analytics-context){width:min(920px,94%)}.analytics-team-labels{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:9px 2px;color:var(--ink);font-size:.76rem;font-weight:900}.analytics-team-labels span{display:flex;align-items:center;gap:5px;min-width:0}.analytics-team-labels span:last-child{justify-content:flex-end;text-align:right}.analytics-team-labels .inline-team-flag{width:20px;height:13px;min-width:20px}.analytics-team-labels b{padding:2px 5px;border-radius:4px;background:#eaf8f0;color:#087149;font-size:.56rem;letter-spacing:.05em}.analytics-section{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}.analytics-section h3{margin:0 2px 6px;color:var(--blue);font-size:.74rem}.match-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.match-compare-row{min-width:0;padding:6px;border:1px solid #dce6ee;border-radius:6px;background:#f8fafc}.match-compare-row>div:first-child{display:grid;grid-template-columns:1fr auto 1fr;gap:4px;align-items:baseline}.match-compare-row>div:first-child strong{color:var(--ink);font-size:.77rem}.match-compare-row>div:first-child strong:last-child{text-align:right}.match-compare-row>div:first-child span{color:var(--muted);font-size:.56rem;font-weight:900;text-align:center;text-transform:uppercase}.match-compare-bars{display:flex;height:5px;gap:2px;margin-top:5px;overflow:hidden;border-radius:999px;background:#e4ebf0}.match-compare-bars i,.match-compare-bars b{display:block;height:100%}.match-compare-bars i{margin-left:auto;background:#123a61}.match-compare-bars b{background:#f26522}.match-compare-row small{display:block;margin-top:4px;color:var(--muted);font-size:.54rem;font-weight:700;text-align:center}.analytics-shooting{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.analytics-shooting div{display:grid;grid-template-columns:1fr auto 1fr;gap:3px;align-items:center;min-width:0;padding:6px;border-radius:6px;background:#f1f5f8}.analytics-shooting strong{overflow:hidden;color:var(--ink);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.analytics-shooting strong:last-child{text-align:right}.analytics-shooting b{color:var(--orange-deep);font-size:.56rem}.analytics-note{margin:5px 2px 0;color:var(--muted);font-size:.58rem;font-weight:650;line-height:1.25}.match-leaders{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.match-leader-team{border:1px solid #dce6ee;border-radius:6px;overflow:hidden;background:#f8fafc}.match-leader-team header{display:flex;align-items:center;gap:5px;padding:5px 6px;background:#edf3f7}.match-leader-team header .inline-team-flag{width:18px;height:12px;min-width:18px}.match-leader-team header b{overflow:hidden;color:var(--ink);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.match-leader-team>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#dce6ee}.match-leader-team span{min-width:0;padding:5px;background:#fff}.match-leader-team small,.match-leader-team strong{display:block}.match-leader-team small{color:var(--muted);font-size:.53rem;font-weight:900}.match-leader-team strong{overflow:hidden;margin-top:2px;color:var(--ink);font-size:.61rem;text-overflow:ellipsis;white-space:nowrap}.analytics-discipline>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.analytics-discipline article{display:grid;gap:3px;padding:6px;border-radius:6px;background:#fff7f1}.analytics-discipline article b{display:flex;align-items:center;gap:5px;color:var(--ink);font-size:.66rem}.analytics-discipline article b .inline-team-flag{width:18px;height:12px;min-width:18px}.analytics-discipline article span{color:#58697a;font-size:.61rem;font-weight:700;line-height:1.25}.quarter-momentum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.quarter-momentum span{display:grid;gap:2px;min-width:0;padding:6px;border:1px solid #dce6ee;border-radius:6px;background:#f8fafc;text-align:center}.quarter-momentum span.home{border-color:#aec8df;background:#f0f7fc}.quarter-momentum span.away{border-color:#f6c2a4;background:#fff5ef}.quarter-momentum span.even{background:#f4f6f8}.quarter-momentum b{color:var(--muted);font-size:.55rem}.quarter-momentum strong{color:var(--ink);font-size:.74rem}.quarter-momentum small{overflow:hidden;color:#526475;font-size:.53rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.analytics-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.analytics-form article{border:1px solid #dce6ee;border-radius:6px;overflow:hidden;background:#f8fafc}.analytics-form article header{display:flex;align-items:center;gap:5px;padding:5px 6px;background:#edf3f7}.analytics-form article header .inline-team-flag{width:18px;height:12px;min-width:18px}.analytics-form article header b{color:var(--ink);font-size:.66rem}.analytics-form article p{margin:6px;color:var(--muted);font-size:.59rem;font-weight:700}.analytics-form-result{display:grid;grid-template-columns:17px minmax(0,1fr) 14px auto;gap:4px;align-items:center;padding:4px 6px;border-top:1px solid #e7edf2}.analytics-form-result .inline-team-flag{width:17px;height:11px;min-width:17px}.analytics-form-result b{overflow:hidden;color:var(--ink);font-size:.6rem;text-overflow:ellipsis;white-space:nowrap}.analytics-form-result em{display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:#f3d9d9;color:#a73232;font-size:.49rem;font-style:normal;font-weight:950}.analytics-form-result.won em{background:#dff3e8;color:#087149}.analytics-form-result strong{color:var(--ink);font-size:.6rem;white-space:nowrap}.analytics-lineup p,.analytics-unavailable{margin:4px 2px;color:#58697a;font-size:.63rem;font-weight:700;line-height:1.35}.player-vs-tournament{margin-top:7px;padding:7px;border:1px solid #c7e4d5;border-radius:6px;background:#f2fbf6;text-align:left}.player-vs-tournament header{display:flex;justify-content:space-between;gap:5px;color:#0d7b52;font-size:.54rem;font-weight:950;letter-spacing:.04em}.player-vs-tournament header small{color:#617283;font-size:.5rem;letter-spacing:0}.player-vs-tournament>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-top:5px}.player-vs-tournament span{min-width:0;padding:3px;border-radius:4px;background:#fff}.player-vs-tournament b,.player-vs-tournament strong,.player-vs-tournament small{display:block}.player-vs-tournament b{color:var(--muted);font-size:.5rem}.player-vs-tournament strong{color:var(--ink);font-size:.7rem}.player-vs-tournament small{overflow:hidden;color:#0e7450;font-size:.48rem;font-weight:750;text-overflow:ellipsis;white-space:nowrap}@media(min-width:761px){.match-hover-card.is-visible .match-analytics-context{height:100%;overflow-y:auto}.match-hover-card.is-visible:has(.match-analytics-context){overflow:hidden!important}}@media(max-width:760px){.match-hover-card:has(.match-analytics-context){width:calc(100% - 18px)}.match-comparison,.match-leaders,.analytics-form,.analytics-discipline>div{grid-template-columns:1fr}.analytics-shooting{grid-template-columns:repeat(2,minmax(0,1fr))}.player-vs-tournament header{display:block}.quarter-momentum small{font-size:.46rem}}

/* Crew names are editorially important. They must never inherit the compact
   one-line truncation used for live-table rows; portrait fallbacks are hidden
   until the corresponding image genuinely fails. */
.official-context-photo-fallback[hidden]{display:none!important}.officials-workspace{grid-template-columns:minmax(230px,.88fr) minmax(245px,1fr) minmax(270px,1.02fr)}.officials-workspace .officials-context-list button{grid-template-columns:31px minmax(0,1fr);align-items:start;gap:7px;padding:7px}.officials-workspace .official-context-photo,.officials-workspace .official-context-photo-fallback{width:30px;height:35px}.officials-workspace .officials-context-list b,.officials-workspace .officials-context-list small{overflow:visible;text-overflow:clip;white-space:normal;word-break:normal}.officials-workspace .officials-context-list b{font-size:.72rem;line-height:1.2}.officials-workspace .officials-context-list small{margin-top:2px;font-size:.61rem;line-height:1.18}@media(max-width:760px){.officials-workspace{grid-template-columns:1fr}.officials-workspace .officials-context-list button{grid-template-columns:34px minmax(0,1fr)}}

/* Venue facts contain editorial details, not labels: never truncate values. */
.venue-context-grid dd{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;word-break:normal!important;line-height:1.25!important}

/* Total team fouls are summed from the official player boxscore and sit
   directly beneath the score, without claiming a quarter-specific bonus. */
.team-fouls-scoreline{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:5px;width:100%;margin:3px 0 0;color:#d9e8f4}.team-fouls-scoreline>span{display:flex;align-items:center;gap:4px}.team-fouls-scoreline>span:last-child{justify-content:flex-end}.team-fouls-scoreline b{display:inline;color:#fff;font-size:.95rem;line-height:1.1}.team-fouls-scoreline small{color:#b9d7e9;font-size:.5rem;font-weight:950;letter-spacing:.055em;white-space:nowrap}@media(max-width:760px){.team-fouls-scoreline{gap:2px;margin-top:2px}.team-fouls-scoreline b{font-size:.85rem}.team-fouls-scoreline small{font-size:.44rem}}

/* The final-phase desk keeps the table useful after the group stage: retain
   the exact official seeds, the live route, and expandable group standings. */
.knockout-live-route{margin-top:9px;padding:8px;border:1px solid #d7e4ed;border-radius:7px;background:#f8fbfd}.knockout-live-route header h3{margin:2px 0 6px;color:var(--ink);font-size:.84rem}.knockout-live-seeds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.knockout-live-seeds>span{display:flex;align-items:center;gap:4px;min-width:0;padding:6px;border-radius:5px;background:#eef4f8}.knockout-live-seeds .inline-team-flag{width:20px;height:13px;min-width:20px}.knockout-live-seeds b{overflow:hidden;color:var(--ink);font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.knockout-live-seeds small{margin-left:auto;color:var(--orange-deep);font-size:.54rem;font-weight:950;white-space:nowrap}.knockout-live-route>p{margin:7px 1px 0;color:#0c7950;font-size:.6rem;font-weight:850;line-height:1.3}.knockout-group-snapshots{margin-top:8px;border-top:1px solid var(--line);padding-top:6px}.knockout-group-snapshots summary{color:var(--blue);font-size:.6rem;font-weight:900;cursor:pointer}.knockout-group-snapshots>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:6px}.knockout-group-snapshots article{min-width:0;border:1px solid #dce6ee;border-radius:5px;overflow:hidden;background:#fff}.knockout-group-snapshots h4{margin:0;padding:4px 5px;background:#edf3f7;color:var(--blue);font-size:.58rem}.knockout-group-snapshots article>span{display:grid;grid-template-columns:15px 18px minmax(0,1fr) auto;gap:2px;align-items:center;padding:3px 4px;border-top:1px solid #edf1f4;color:var(--muted);font-size:.55rem}.knockout-group-snapshots .inline-team-flag{width:17px;height:11px;min-width:17px}.knockout-group-snapshots b{overflow:hidden;color:var(--ink);font-size:.56rem;text-overflow:ellipsis;white-space:nowrap}.knockout-group-snapshots em{color:var(--muted);font-size:.52rem;font-style:normal;font-weight:800;white-space:nowrap}.player-vs-tournament>div{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:760px){.knockout-live-seeds,.knockout-group-snapshots>div{grid-template-columns:1fr}.player-vs-tournament>div{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* The arena section is a compact editorial dossier, not a tooltip. */
.venue-overview{margin-top:16px}.venue-overview-head a{color:var(--orange-deep);font-size:.72rem;font-weight:900;text-decoration:none;white-space:nowrap}.venue-profile-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:12px}.venue-profile-cards .venue-profile-card{display:block;width:100%;padding:0;overflow:hidden;border:1px solid #d8e3eb;border-radius:11px;background:#fff;color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 2px 5px #1129470d}.venue-profile-cards .venue-profile-card:hover,.venue-profile-cards .venue-profile-card:focus-visible{border-color:#f26522;background:#fff;outline:0;box-shadow:0 9px 25px #1129471c}.venue-profile-cards .venue-profile-card:hover .venue-gallery img,.venue-profile-cards .venue-profile-card:focus-visible .venue-gallery img{transform:scale(1.025)}.venue-gallery{display:grid;grid-template-columns:1fr 1fr;gap:2px;height:190px;background:#e7edf2}.venue-gallery figure{position:relative;min-width:0;height:190px;margin:0;overflow:hidden;background:#e7edf2}.venue-gallery img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.venue-gallery-fallback{display:grid;place-items:center;width:100%;height:100%;color:var(--blue);font-size:2rem}.venue-gallery-fallback[hidden]{display:none!important}.venue-gallery figcaption{position:absolute;left:8px;bottom:8px;padding:3px 6px;border-radius:4px;background:#102946d9;color:#fff;font-size:.6rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.venue-profile-copy{display:block;padding:14px}.venue-card-kicker{display:block;margin-bottom:5px;color:var(--orange-deep);font-size:.61rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.venue-profile-copy> b{display:block;color:var(--blue);font-size:1.12rem;line-height:1.1}.venue-alias{display:block;margin-top:3px;color:var(--muted);font-size:.72rem;font-weight:800}.venue-description{display:block;margin:10px 0;color:#415264;font-size:.74rem;font-weight:650;line-height:1.42}.venue-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0}.venue-facts>span{display:block;min-width:0;padding:7px;border-radius:6px;background:#f1f5f8}.venue-facts small,.venue-facts strong{display:block}.venue-facts small{overflow:hidden;color:var(--muted);font-size:.56rem;font-weight:950;letter-spacing:.04em;text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase}.venue-facts strong{margin-top:3px;overflow:hidden;color:var(--ink);font-size:.68rem;font-weight:850;line-height:1.2;text-overflow:ellipsis}.venue-detail-line,.venue-history{display:block;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);color:#435365;font-size:.69rem;font-weight:650;line-height:1.36}.venue-detail-line b,.venue-history b{display:block;margin-bottom:2px;color:var(--blue);font-size:.61rem;font-weight:950;letter-spacing:.05em;text-transform:uppercase}.venue-history{color:var(--ink)}.venue-card-foot{display:block;margin-top:10px;color:var(--muted);font-size:.6rem;font-weight:700;line-height:1.25}.venue-profile-cards .venue-card-hover{display:none!important}
@media(max-width:850px){.venue-profile-cards{grid-template-columns:1fr}.venue-gallery,.venue-gallery figure{height:175px}}@media(max-width:520px){.venue-overview-head{align-items:flex-start;flex-direction:column}.venue-gallery,.venue-gallery figure{height:130px}.venue-profile-copy{padding:11px}.venue-facts{gap:5px}.venue-facts>span{padding:6px}}

/* The matchcentre venue dossier mirrors the expanded overview card. */
.venue-context-gallery{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:0 0 9px}.venue-context-gallery figure{position:relative;height:116px;margin:0;overflow:hidden;border-radius:7px;background:#e8eef4}.venue-context-gallery img{display:block;width:100%;height:100%;object-fit:cover}.venue-context-gallery .venue-gallery-fallback{font-size:1.5rem}.venue-context-gallery figcaption{position:absolute;bottom:5px;left:5px;padding:2px 4px;border-radius:3px;background:#102946d9;color:#fff;font-size:.52rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.venue-context-grid{grid-template-columns:1fr 1fr}.venue-context-grid dd{font-size:.6rem!important}@media(max-width:760px){.venue-context-gallery figure{height:105px}}

/* Let team names use the scoreboard space, wrapping when the viewport is narrow. */
.live-score-header .score-side{flex:1 1 0;min-width:0}
.live-score-header .match-team-button,.live-score-header .score-side strong{flex:0 1 auto;min-width:0;max-width:none;overflow:visible;white-space:normal;text-overflow:clip;overflow-wrap:anywhere;line-height:1.15}
.live-score-header .match-team-flag{flex:0 0 auto;margin:0}

/* Navigation links fill their menu row just like button actions. */
.basketball-app .ad-menu-direct .ad-menu-action{display:block;box-sizing:border-box;width:100%;}

/* Share the portrait column with the shirt number, leaving room for names and alerts. */
@media(min-width:761px){
.basketball-app .lineup-player{grid-template-columns:32px minmax(0,1fr);grid-template-rows:auto auto;column-gap:6px;row-gap:1px;}
.basketball-app .lineup-player>.lineup-avatar,.basketball-app .lineup-player>.lineup-avatar-fallback{grid-column:1;grid-row:1;justify-self:center;align-self:end;}
.basketball-app .lineup-player>.jersey{grid-column:1;grid-row:2;justify-self:center;align-self:start;line-height:1.1;}
.basketball-app .lineup-player>.lineup-name{grid-column:2;grid-row:1 / 3;min-width:0;}
}

/* Keep club logos proportional, with a larger square canvas for round crests. */
.live-score-header .match-team-flag,.live-score-header .match-team-flag img{width:68px;height:68px;min-width:68px;object-fit:contain;}
@media(max-width:760px){.live-score-header .match-team-flag,.live-score-header .match-team-flag img{width:38px;height:38px;min-width:38px;}}

/* Team identity is already shown in the scoreboard. */
.basketball-app .lineup-heading{display:none;}
