/* CSB live scorekeeping: shared fixture state, focused mobile scoring. */
.csb-live { --live-red:var(--color-winner-score,#b52b3a); --live-red-bg:var(--color-winner-score-bg,#fbe9ec); color:var(--color-ink); }
body .csb-live [hidden] { display:none!important; }
.csb-live-index { padding-top:28px; padding-bottom:64px; }
body .site-container.csb-live-index { max-width:1040px; }
.live-topline { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin-bottom:22px; font-size:13px; }
.live-topline a,.live-score-footer a { color:var(--color-brand-hover); text-decoration:none; }
.live-topline a:hover,.live-score-footer a:hover { text-decoration:underline; }
.live-connection { padding:5px 9px; border-radius:5px; color:#456582; background:#e4edf7; font-size:11px; }
.live-connection.is-offline { background:#f8eadc; color:#875529; }
.live-fixture-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-bottom:24px; border-bottom:1px solid var(--color-line); margin-bottom:24px; }
.live-fixture-heading h2 { font-size:clamp(21px,3vw,30px); margin:8px 0 10px; }
.live-fixture-heading h2 span { color:var(--color-muted); }
.live-fixture-heading p { margin:0; font-size:13px; color:var(--color-muted); }
.live-fixture-heading .live-eyebrow { font-size:10px; letter-spacing:.12em; font-weight:600; color:var(--color-brand); }
.live-fixture-score { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; text-align:center; gap:6px 10px; flex-shrink:0; }
.live-fixture-score strong { font-family:var(--font-display); font-size:34px; color:#738197; }
.live-fixture-score small { grid-column:1/-1; color:var(--color-muted); font-size:10px; }
body .csb-live .is-winning { color:var(--live-red); }
.live-selection-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:26px 0 16px; }
.live-selection-heading h3 { font-size:21px; margin:0; }
.live-selection-heading>span { color:var(--color-muted); font-size:12px; }
.live-game-list { display:grid; grid-template-columns:minmax(0,1fr); }
.live-report-list { --report-columns:40px 112px minmax(0,1fr) 76px minmax(0,1fr) 224px; overflow:hidden; border:1px solid #d0dced; border-radius:7px; background:white; }
.live-report-columns,.live-report-row { display:grid; grid-template-columns:var(--report-columns); align-items:center; gap:14px; padding:12px 16px; }
.live-report-columns { background:#e3edf9; color:#385675; font-size:11px; font-weight:600; line-height:1.5; }
.live-report-columns>span:nth-child(4) { text-align:center; }
.live-game-card { min-width:0; border:0; border-bottom:1px solid #e1e8f2; background:white; }
.live-game-card:last-child { border-bottom:0; }
.live-report-row { min-height:100px; box-sizing:border-box; }
.live-report-row[data-status=running] { background:#f0f5fd; }
.live-report-row.live-report-block-start { border-top:2px solid #b8cbe3; }
.live-game-number { display:grid; place-items:center; width:30px; height:30px; border:1px solid #b8c9df; border-radius:4px; background:#f4f7fc; color:#486384; font-family:var(--font-display); font-weight:600; font-size:15px; }
.live-report-discipline { display:grid; gap:4px; min-width:0; }
.live-report-discipline strong { font-size:12px; font-weight:600; }
.live-report-discipline>span { font-size:10px; color:var(--color-muted); }
.live-report-player { min-width:0; font-size:13px; font-weight:500; line-height:1.65; white-space:pre-line; overflow-wrap:anywhere; }
.live-report-player::before { display:none; }
.live-mini-score { display:flex; align-items:center; justify-content:center; gap:6px; font-variant-numeric:tabular-nums; }
.live-mini-score b { min-width:22px; text-align:center; font-family:var(--font-display); font-size:23px; color:#738197; }
.live-status { margin-left:auto; padding:4px 6px; border-radius:4px; font-size:10px; background:#f1f4f8; color:#5e718b; white-space:nowrap; }
.live-report-row[data-status=running] .live-status { background:#d4e3f7; color:#365a87; }
.live-report-action { display:grid; grid-template-columns:1fr auto; align-items:center; justify-items:stretch; gap:6px 8px; min-width:0; }
.live-report-action .live-status { grid-column:1; grid-row:1; margin:0; justify-self:start; }
.live-report-action>small { grid-column:2; grid-row:1; text-align:right; font-size:10px; line-height:1.5; color:var(--color-muted); }
.live-report-action .live-game-open { grid-column:1/-1; grid-row:2; width:100%; font-size:11px; }
.live-report-action .live-game-open:not(.live-button-primary) { border-color:transparent; background:transparent; color:#647995; justify-content:flex-start; padding-left:0; font-weight:500; }
.live-report-action .live-game-open.live-button-primary { box-shadow:0 2px 5px #34567d20; }
.live-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:42px; box-sizing:border-box; padding:10px 14px; border:1px solid #c9d7e9; border-radius:6px; background:white; color:var(--color-brand-hover); font:inherit; font-size:12px; font-weight:600; text-decoration:none; text-align:center; cursor:pointer; }
.live-button:hover { background:#edf3fc; }
.live-button-primary { background:#41658f; border-color:#41658f; color:white; }
.live-button-primary:hover { background:#36577e; }
.live-button:disabled,.live-point-button:disabled { opacity:.45; cursor:default; }
.live-button.is-selected { background:#dbe8f8; border-color:#7895bb; }
.live-notice,.live-feedback { padding:12px 15px; border:1px solid #d4e0ee; border-radius:6px; background:#eaf1fa; font-size:13px; line-height:1.6; }
.live-feedback { border-color:#e5b5bf; background:#fff1f3; color:#943746; }
.live-finalize { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:26px; padding:20px; background:#e7effa; border:1px solid var(--color-line); border-radius:6px; }
.live-finalize p { max-width:580px; margin:0; color:var(--color-muted); font-size:12px; }
.live-obs-links { margin-top:24px; padding:16px; border:1px solid var(--color-line); border-radius:6px; background:white; }
.live-obs-links summary { cursor:pointer; font-size:13px; font-weight:600; }
.live-obs-links label { display:grid; gap:6px; margin-top:14px; font-size:12px; }
.live-obs-links input { width:100%; box-sizing:border-box; padding:9px; border:1px solid var(--color-line); border-radius:4px; font:inherit; font-size:12px; color:var(--color-muted); }
.csb-score-body { margin:0; }
.csb-scorekeeper { width:min(720px,calc(100% - 32px)); margin:auto; padding:20px 0 30px; }
.live-score-heading { margin-bottom:20px; text-align:center; }
.live-score-heading>p { margin:0 0 8px; color:var(--color-muted); font-size:12px; overflow-wrap:anywhere; }
.live-score-heading h1 { margin:0 0 13px; font-size:clamp(20px,3vw,30px); }
.live-score-heading>div { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px; font-size:12px; color:var(--color-muted); }
.live-score-heading .live-status { margin:0; }
.live-clock { display:inline-flex; align-items:center; gap:6px; padding:4px 9px; border:1px solid #cfdaea; border-radius:5px; background:#e8eff8; color:#45617f; }
.live-clock svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.live-clock time { min-width:3.5ch; font-family:var(--font-display); font-size:19px; font-weight:600; line-height:1.2; font-variant-numeric:tabular-nums; }
.live-clock.is-running { color:#2c527e; border-color:#b4c7df; }

.live-control-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:15px 0; padding:12px 14px; background:#e5eef9; border-radius:6px; font-size:12px; }
.live-lag-panel { padding:18px; margin-bottom:18px; border:1px solid var(--color-line); background:white; border-radius:7px; text-align:center; }
.live-lag-panel h2 { margin:0 0 14px; font-size:18px; }
.live-lag-panel>div { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.live-lag-panel>div .live-button { flex:1; max-width:350px; }
.live-team-pairing { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.live-team-pairing>div { min-width:0; }
.live-team-pairing label { display:block; margin-bottom:6px; font-size:11px; color:var(--color-muted); }
.live-team-pairing select { box-sizing:border-box; width:100%; min-height:46px; padding:9px; background:white; border:1px solid #bdcde2; border-radius:5px; color:var(--color-ink); font:inherit; font-size:14px; }
.live-score-play-area { display:contents; }
.live-scoreboard { --flip-digits:1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto auto auto auto; align-content:center; gap:16px 0; width:100%; max-width:calc(520px * var(--flip-digits)); margin:0 auto; }
.live-score-side { display:contents; }
.live-score-side[data-score-side=home]>* { grid-column:1; }
.live-score-side[data-score-side=away]>* { grid-column:2; }
.live-score-player { grid-row:1; display:flex; flex-direction:column; align-items:center; min-width:0; padding:0; }
.live-score-side .live-flip-score { grid-row:3; position:relative; display:flex; align-items:flex-start; justify-content:center; gap:10px; box-sizing:border-box; min-width:0; width:100%; height:auto; margin:0; padding:17px 12px 12px; background:linear-gradient(105deg,#1c2226,#080c0e 65%,#171d20); border-top:4px solid #30383c; border-bottom:8px solid #070b0d; box-shadow:0 7px 10px -6px #18212d88; perspective:1000px; }
.live-score-side[data-score-side=home] .live-flip-score { border-left:7px solid #13191c; border-radius:5px 0 0 5px; padding-right:10px; }
.live-score-side[data-score-side=away] .live-flip-score { border-right:7px solid #13191c; border-radius:0 5px 5px 0; padding-left:10px; }
.live-flip-leaf { position:relative; display:grid; place-items:center; flex:1; min-width:0; height:auto; aspect-ratio:2/3; box-sizing:border-box; container-type:size; border:1px solid #006598; border-radius:4px 4px 6px 6px; background:linear-gradient(105deg,#0789c2,#007ab2 76%,#006fa6); box-shadow:2px 3px 0 #00567b,inset 0 1px 0 #ffffff40; transform-origin:50% 0; }
.live-score-side[data-score-side=home] .live-flip-leaf { border-color:#be341e; background:linear-gradient(105deg,#ed4d29,#e54122 76%,#d3371c); box-shadow:2px 3px 0 #a92e1b,inset 0 1px 0 #ffffff50; }
.live-flip-leaf::before,.live-flip-leaf::after { content:""; position:absolute; z-index:1; top:-14px; left:19%; width:7px; height:24px; border:2px solid #aab4ba; border-right-color:#404a52; border-left-color:#e3e8eb; border-radius:50%; background:linear-gradient(90deg,transparent 45%,#ffffff35); box-shadow:1px 0 1px #03080b80; transform:rotate(-12deg); }
.live-flip-leaf::after { left:auto; right:19%; transform:rotate(-7deg); }
.live-flip-digit { display:block; color:#faf7ec; font-family:var(--font-body,Arial,sans-serif); font-weight:750; font-size:clamp(110px,24vw,260px); font-size:min(85cqh,118cqw); line-height:1; letter-spacing:-.065em; padding-right:.065em; font-variant-numeric:tabular-nums; text-shadow:0 1px 1px #17232e30; transform:scaleX(.94); }
.live-flip-leaf.is-turning { animation:csb-card-turn .24s ease-out; }
@keyframes csb-card-turn { from { transform:rotateX(-23deg); filter:brightness(.8); } to { transform:rotateX(0); filter:brightness(1); } }
@media(prefers-reduced-motion:reduce) { .live-flip-leaf.is-turning { animation:none; } }
.live-score-side .live-point-button { grid-row:4; width:calc(100% - 8px); }
.live-score-side[data-score-side=home] .live-point-button { justify-self:start; border-color:#e5b9af; background:#fff0ea; color:#a83925; }
.live-score-side[data-score-side=away] .live-point-button { justify-self:end; }
.live-break-indicator { display:grid; place-items:center; width:52px; height:52px; flex-shrink:0; margin:0 0 12px; opacity:0; }
.live-break-indicator.is-starting { opacity:1; }
.live-cue-ball { display:block; width:44px; height:44px; border-radius:50%; background:url('../images/csb/cue-ball-pro-cup.svg') center/contain no-repeat; border:1px solid #d5c9bb; box-shadow:0 3px 7px #243a572e; }
.live-score-side h2 { display:flex; flex:1; justify-content:center; align-items:center; box-sizing:border-box; width:100%; min-height:64px; margin:0; padding:12px 14px; border:0; background:linear-gradient(180deg,#e9f0fa,#e2ecf8); color:#29415f; font-family:var(--font-body); font-size:clamp(14px,2.2vw,22px); font-weight:600; line-height:1.4; white-space:pre-line; overflow-wrap:anywhere; text-align:center; letter-spacing:-.02em; }
.live-score-side[data-score-side=home] h2 { border-radius:7px 0 0 0; box-shadow:inset 0 -2px 0 #d49a8d; }
.live-score-side[data-score-side=away] h2 { border-radius:0 7px 0 0; box-shadow:inset 0 -2px 0 #88a6c8; }

.live-point-button { width:100%; min-height:80px; border:1px solid #c4d4e9; border-radius:7px; background:#e6effb; color:#345b8b; font-family:var(--font-display); font-size:36px; font-weight:600; cursor:pointer; touch-action:manipulation; }
.live-point-button span { display:block; font-family:var(--font-body); font-size:11px; font-weight:500; }
.live-point-button:not(:disabled):active { background:#ccdff7; }
.live-score-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; width:100%; max-width:calc(520px * var(--flip-digits,1)); margin:18px auto 0; justify-self:center; }
.live-undo-button { width:100%; min-height:64px; padding:14px 24px; border-color:#9db3d0; background:#e2ecf9; font-size:19px; gap:12px; touch-action:manipulation; }
.live-undo-button svg,.live-fullscreen-button svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.live-undo-button:hover { background:#d5e4f6; }
.live-corrections { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:14px; }
.live-topline-tools { display:flex; align-items:center; gap:10px; }
.live-fullscreen-button { min-width:44px; min-height:44px; padding:9px; }
.live-fullscreen-help { padding:9px 12px; color:var(--color-muted); font-size:11px; line-height:1.5; }
html.csb-score-fullscreen { background:var(--color-surface,#f2f6fc); }
.csb-score-fullscreen .csb-score-body { margin:0; }
.csb-score-fullscreen .csb-scorekeeper { box-sizing:border-box; width:100%; height:100vh; height:100dvh; max-width:none; margin:0; padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); display:flex; flex-direction:column; overflow:auto; }
.csb-score-fullscreen .live-topline { margin-bottom:8px; flex-shrink:0; }
.csb-score-fullscreen .live-score-heading { margin-bottom:10px; }
.csb-score-fullscreen .live-score-heading>p { display:none; }
.csb-score-fullscreen .live-score-heading h1 { margin-bottom:6px; font-size:20px; }
.csb-score-fullscreen .live-scoreboard { flex:1 0 auto; }
.csb-score-fullscreen .csb-scorekeeper[data-has-control=true] [data-control-bar] { display:none; }
.csb-score-fullscreen .live-rack-history,.csb-score-fullscreen .live-score-footer { display:none; }
.csb-score-fullscreen .live-score-actions { margin-top:12px; flex-shrink:0; }
.csb-score-fullscreen .live-round-note { padding:10px 4px; }
.live-round-note { padding:14px 4px; text-align:center; font-size:12px; color:var(--color-muted); }
.live-rack-history { padding-top:18px; border-top:1px solid var(--color-line); }
.live-rack-history h2 { font-size:18px; margin:0 0 14px; }
.live-rack-history ol { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.live-rack-history li { display:grid; grid-template-columns:24px minmax(0,1fr) 50px 76px; align-items:center; gap:10px; min-height:56px; box-sizing:border-box; padding:10px 12px; border:1px solid var(--color-line); border-radius:5px; background:white; font-size:12px; }
.live-rack-history li>span:first-child { color:var(--color-muted); }
.live-rack-history li strong { color:var(--live-red); }
.live-rack-time { align-self:center; justify-self:end; color:var(--color-muted); font-size:12px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.live-rack-history li>span:nth-child(2) { overflow-wrap:anywhere; }

.live-score-footer { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:16px; margin-top:22px; padding-top:18px; border-top:1px solid var(--color-line); color:var(--color-muted); font-size:12px; }
.live-score-footer strong { font-family:var(--font-display); font-size:22px; }
.live-dialog { box-sizing:border-box; width:min(460px,calc(100% - 28px)); padding:26px; border:1px solid #cfdbeb; border-radius:9px; background:white; color:var(--color-ink); box-shadow:0 24px 100px #20365033; }
.live-dialog::backdrop { background:#1a2b455c; }
.live-dialog h2 { margin:0 0 16px; font-size:23px; }
.live-dialog p { font-size:14px; line-height:1.65; }
.live-dialog form>div { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:22px; }
.report-live-access { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:18px; padding:18px; margin:0 0 22px; background:#e7effa; border:1px solid #cbd9ed; border-radius:6px; }
.report-live-access strong { font-size:15px; }
.report-live-access p { margin:6px 0 12px; font-size:12px; color:var(--color-muted); }
.report-live-access summary { padding:10px 0; font-size:12px; color:var(--color-brand-hover); cursor:pointer; }
.report-live-qr { display:grid; place-items:center; width:216px; max-width:100%; padding:12px; box-sizing:border-box; background:white; border-radius:5px; }
.report-live-qr img,.report-live-qr canvas { max-width:100%; height:auto; }
body .report-page .game-section-heading .report-live-game-link { margin-left:auto; color:var(--color-brand-hover); font-size:10px; white-space:nowrap; }
body .report-page .game-section-heading .report-live-game-link+small { margin-left:0; }
.csb-permission-field { grid-column:1/-1; padding-top:12px; border-top:1px solid var(--color-line); }
.csb-permission-field label { display:flex; align-items:center; gap:10px; }
.csb-permission-field input[type=checkbox] { width:18px; height:18px; }
.csb-permission-field small { display:block; margin-top:6px; color:var(--color-muted); font-size:12px; }
.csb-overlay-body { margin:0; background:transparent; }
.csb-overlay { padding:18px; }
.live-overlay-heading { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:24px; padding:22px 26px; background:#f3f7fdf5; border:1px solid #d1def0; border-radius:7px; }
.live-overlay-heading>strong { font-family:var(--font-display); font-size:28px; }
.live-overlay-heading>strong:last-child { text-align:right; }
.live-overlay-heading>div { display:flex; gap:14px; align-items:center; font-family:var(--font-display); font-size:42px; }
.live-overlay-heading>div span { font-size:26px; color:var(--color-muted); }
.live-overlay-list { display:grid; gap:7px; margin-top:14px; }
.live-overlay-row { display:grid; grid-template-columns:34px 100px minmax(0,1fr) 100px minmax(0,1fr) 96px; gap:14px; align-items:center; padding:13px 18px; background:#f7fafff5; border:1px solid #d8e3f1; border-radius:5px; font-size:15px; }
.live-overlay-row.running { background:#e2edfcf5; border-color:#93afd4; }
.live-overlay-row>:last-child { font-size:12px; color:var(--color-muted); }
.live-overlay-row>strong { font-weight:500; }
.live-overlay-row.finished>strong { font-weight:600; }
.live-overlay-score { display:flex; justify-content:center; gap:12px; font-family:var(--font-display); font-size:25px; }
@media(max-width:900px) {
.live-report-columns { display:none; }
.live-report-row { grid-template-columns:34px minmax(0,1fr) 52px minmax(0,1fr); gap:10px; padding:14px 12px; }
.live-report-row>.live-game-number { grid-column:1; grid-row:1; }
.live-report-discipline { grid-column:2/-1; grid-row:1; display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; }
.live-report-home { grid-column:2; grid-row:2; }
.live-report-row>.live-mini-score { grid-column:3; grid-row:2; }
.live-report-away { grid-column:4; grid-row:2; }
.live-report-player { font-size:12px; }
.live-report-player::before { content:attr(data-side-label); display:block; margin-bottom:2px; color:var(--color-muted); font-size:9px; font-weight:500; }
.live-report-action { grid-column:2/-1; grid-row:3; grid-template-columns:1fr auto; align-items:center; gap:7px 8px; }
.live-report-action .live-status { grid-column:1; grid-row:1; }
.live-report-action>small { grid-column:2; grid-row:1; max-width:190px; text-align:right; }
.live-report-action .live-game-open { grid-column:1/-1; grid-row:2; min-height:44px; font-size:12px; }
.live-report-action .live-game-open:not(.live-button-primary) { min-height:32px; }
.live-report-row>.live-mini-score { gap:3px; }
.live-report-row>.live-mini-score b { min-width:16px; font-size:21px; }
}
@media(max-width:560px) {
.csb-scorekeeper { width:calc(100% - 20px); padding-top:12px; }
.live-topline { gap:8px; margin-bottom:18px; font-size:12px; }
.live-connection { padding:4px 6px; font-size:9px; }
.live-fixture-heading { align-items:flex-start; gap:12px; }
.live-fixture-heading h2 { font-size:21px; }
.live-fixture-score strong { font-size:28px; }
.live-fixture-score small { max-width:78px; font-size:9px; }
.live-scoreboard { gap:12px 0; }
.live-score-player { padding:0; }
.live-score-side .live-flip-score { padding-top:15px; padding-bottom:9px; padding-left:8px; padding-right:8px; gap:8px; }
.live-flip-leaf::before,.live-flip-leaf::after { top:-12px; height:20px; width:6px; }
.live-score-side h2 { min-height:60px; padding:10px 8px; font-size:14px; }

.live-break-indicator { margin-bottom:8px; }
.live-fullscreen-label { display:none; }
.live-topline-tools { gap:6px; }
.live-undo-button { width:100%; }
.live-point-button { min-height:75px; }
.live-point-button span { font-size:10px; }
.live-control-bar { align-items:flex-start; flex-direction:column; font-size:11px; }
.live-finalize { align-items:stretch; flex-direction:column; padding:16px; }
.live-team-pairing { gap:8px; }
.live-team-pairing label { font-size:10px; }
.live-team-pairing select { padding:6px; font-size:12px; }
.live-dialog { padding:20px; }
body .report-page .game-section-heading .report-live-game-link { margin-left:auto; font-size:9px; }
body .report-page .game-section-heading .report-live-game-link+small { display:none; }
}
@media print { .report-live-access,.report-live-game-link { display:none!important; } }

html.csb-overlay-document { background:transparent; }

/* Team rubbers expand into the one-rack rounds from the report. */
.live-team-collapse>summary { list-style:none; cursor:pointer; }
.live-team-collapse>summary::-webkit-details-marker { display:none; }
.live-team-collapse>summary [data-game-open]::after { content:"⌄"; margin-left:6px; }
.live-team-collapse[open]>summary [data-game-open]::after { content:"⌃"; }
.live-team-round-list { padding:16px; background:#f0f5fc; border-top:1px solid #d0dced; }
.live-team-round-heading { display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:14px; font-size:12px; }
.live-team-round-heading>a { color:var(--color-brand-hover); font-size:11px; text-decoration:none; }
.live-team-round-columns,.live-team-round-row { display:grid; grid-template-columns:42px minmax(0,1fr) 70px minmax(0,1fr) 218px; align-items:center; gap:12px; padding:10px 12px; }
.live-team-round-columns { color:#48617e; background:#e0eafa; font-size:10px; }
.live-team-round-row { min-height:88px; background:white; border-bottom:1px solid #dce5f1; }
.live-team-round-row[data-round-status-value=running] { background:#e8f0fc; }
.live-team-round-number { display:grid; justify-items:center; gap:3px; color:#456281; font-size:14px; }
.live-team-round-number>small { font-size:9px; font-weight:500; }
.live-team-round-player { display:flex; align-items:center; gap:5px; min-width:0; }
.live-team-round-player>strong { min-width:0; font-size:12px; font-weight:500; line-height:1.5; overflow-wrap:anywhere; }
.live-team-round-break { flex-shrink:0; }
.live-team-round-break .live-cue-ball { width:18px; height:18px; border-width:0; box-shadow:0 1px 3px #20344a2e; }
.live-team-round-action { display:grid; grid-template-columns:1fr auto; align-items:center; gap:5px; }
.live-team-round-action>.live-status { margin:0; justify-self:start; }
.live-team-round-action>time { color:var(--color-muted); font-size:10px; font-variant-numeric:tabular-nums; }
.live-team-round-action>.live-button { grid-column:1/-1; font-size:11px; }
.live-round-start { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px; margin:0 0 14px; padding:12px; border-radius:6px; background:#e5eefb; font-size:12px; }
.live-team-pairing strong { display:block; font-size:15px; padding:10px; background:#e5eefb; border-radius:5px; }
.live-team-pairing small { display:block; margin-bottom:5px; font-size:10px; color:var(--color-muted); }
.live-next-round { align-self:center; margin:14px auto 0; }
@media(max-width:900px) {
.live-team-round-list { padding:10px; }
.live-team-round-columns { display:none; }
.live-team-round-row { grid-template-columns:24px minmax(0,1fr) 44px minmax(0,1fr); gap:8px; padding:12px 8px; }
.live-team-round-row>.live-team-round-number { grid-column:1; grid-row:1; }
.live-team-round-home { grid-column:2; grid-row:1; }
.live-team-round-row>.live-mini-score { grid-column:3; grid-row:1; gap:3px; }
.live-team-round-row>.live-mini-score b { min-width:14px; font-size:19px; }
.live-team-round-away { grid-column:4; grid-row:1; }
.live-team-round-action { grid-column:2/-1; grid-row:2; }
.live-team-round-player>strong { font-size:11px; }
.live-team-round-heading { font-size:11px; }
}

.live-team-progress { display:flex; justify-content:center; align-items:center; gap:12px; margin:0 0 14px; padding:8px 12px; background:#e6eef9; border-radius:5px; font-size:12px; }
.live-team-progress strong { font-family:var(--font-display); font-size:22px; }
.live-team-progress small { color:var(--color-muted); font-size:10px; }

/* Compact OBS source: fixed fixture/current scores above a continuous result ticker. */
.live-obs-links select { width:100%; min-width:0; padding:9px; border:1px solid var(--color-line); border-radius:4px; background:#fff; font:inherit; }
.live-obs-ribbon { margin-top:18px; padding-top:4px; border-top:1px solid var(--color-line); }
.live-obs-ribbon p { color:var(--color-muted); font-size:12px; line-height:1.6; }
.csb-ribbon { height:128px; width:100%; box-sizing:border-box; display:grid; grid-template-rows:84px 42px; overflow:hidden; border:1px solid #466180; border-radius:5px; background:#142337f5; color:#f2f6fc; font-family:var(--font-body); }
.live-ribbon-main { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); min-height:0; }
.live-ribbon-fixture,.live-ribbon-current { min-width:0; padding:8px 18px; }
.live-ribbon-fixture { background:linear-gradient(110deg,#253e5bf0,#1a304bf0); border-right:1px solid #57708e; }
.live-ribbon-current { display:flex; flex-direction:column; justify-content:center; }
.live-ribbon-caption { display:flex; justify-content:space-between; align-items:center; gap:12px; min-width:0; line-height:14px; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:#bdcee4; }
.live-ribbon-caption>span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.live-ribbon-caption small { flex-shrink:0; font:inherit; font-size:10px; letter-spacing:.04em; color:#f7be7c; }
.live-ribbon-caption [data-ribbon-current-status] { color:#e0eafb; }
.live-ribbon-scoreline { display:grid; grid-template-columns:minmax(0,1fr) 80px minmax(0,1fr); align-items:center; gap:14px; height:40px; }
.live-ribbon-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:clamp(13px,1.08vw,22px); font-weight:650; line-height:1.2; }
.live-ribbon-name:last-child { text-align:right; }
.live-ribbon-total,.live-ribbon-current-points { display:flex; align-items:center; justify-content:center; gap:9px; padding:1px 8px; border-radius:3px; background:#e7eef8; color:#2f455f; font:700 30px/1.1 var(--font-display); font-variant-numeric:tabular-nums; }
.live-ribbon-total>span,.live-ribbon-current-points>span { font-size:20px; color:#6d819c; }
.live-ribbon-round { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#b8cce3; font-size:11px; line-height:13px; text-align:center; }
.live-ribbon-results { min-width:0; display:flex; align-items:stretch; border-top:1px solid #4d6580; background:#e4edf9f7; color:#283e59; }
.live-ribbon-results-label { display:flex; align-items:center; flex-shrink:0; padding:0 20px; background:#36567c; color:#f1f6ff; font-size:11px; letter-spacing:.1em; z-index:1; }
.live-ribbon-window { flex:1; min-width:0; overflow:hidden; position:relative; display:flex; align-items:center; }
.live-ribbon-track { display:flex; width:max-content; flex-shrink:0; animation:csb-ribbon-scroll var(--ribbon-duration,60s) linear infinite; will-change:transform; }
.live-ribbon-cycle { display:flex; align-items:center; flex-shrink:0; gap:36px; padding-right:36px; }
.live-ribbon-result { display:inline-flex; align-items:center; gap:12px; flex-shrink:0; white-space:nowrap; font-size:18px; font-weight:450; }
.live-ribbon-result-number { display:inline-flex; align-items:center; justify-content:center; min-width:25px; height:25px; border:1px solid #b7c8de; border-radius:3px; font-size:13px; color:#476586; }
.live-ribbon-result-score { display:inline-flex; gap:5px; font:700 23px/1 var(--font-display); font-variant-numeric:tabular-nums; }
.live-ribbon-result-score>span { font-weight:400; color:#7b8da4; }
.live-ribbon-winner { font-weight:700; }
.live-ribbon-empty { display:block; padding:0 18px; font-size:13px; line-height:30px; color:inherit; opacity:.8; }
@keyframes csb-ribbon-scroll { from { transform:translateX(0); } to { transform:translateX(-50%); } }
@media(max-width:1000px) {
    .live-ribbon-fixture,.live-ribbon-current { padding-left:10px; padding-right:10px; }
    .live-ribbon-scoreline { grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr); gap:6px; }
    .live-ribbon-total,.live-ribbon-current-points { font-size:26px; gap:6px; }
    .live-ribbon-caption { font-size:9px; letter-spacing:.03em; }
}
@media(prefers-reduced-motion:reduce) {
    .live-ribbon-track { animation:none; }
    .live-ribbon-window { overflow-x:auto; }
    .live-ribbon-cycle[aria-hidden=true] { display:none; }
}

.live-timeout { grid-row:2; display:flex; justify-content:center; align-items:center; gap:6px; min-width:0; padding:0 4px; }
.live-timeout-button { min-height:32px; padding:6px 10px; border-color:#185da6; background:#236dbd; color:#fff; font-size:11px; font-weight:750; line-height:18px; letter-spacing:.06em; }
.live-timeout-button:enabled:hover { border-color:#164c87; background:#195a9e; }
.live-timeout-button:enabled { box-shadow:0 2px 5px #1e5b9d26; }
.live-timeout-button.is-used { opacity:1; border-color:#d4d9df; background:#e9edf1; color:#929ba7; cursor:default; }
.live-score-display { grid-row:3; position:relative; min-width:0; }
.live-timeout-countdown { --timeout-clock-size:clamp(32px,7vw,52px); --timeout-stop-height:44px; --timeout-gap:12px; container-type:size; position:absolute; inset:22px 12px 16px; z-index:2; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:var(--timeout-gap); border:1px solid #bacde65c; border-radius:5px; background:#182a41ed; box-shadow:0 4px 18px #0d182b33; }
.live-timeout-caption { display:block; max-width:calc(100% - 12px); color:#e6f0ff; font-size:min(calc((100cqw - 12px) / 5),max(12px,calc(100cqh - var(--timeout-clock-size) * 1.1 - var(--timeout-stop-height) - var(--timeout-gap) * 2 - 12px))); font-weight:800; line-height:1; letter-spacing:.04em; white-space:nowrap; text-align:center; }
.live-timeout-clock { font-size:var(--timeout-clock-size); font-weight:700; font-variant-numeric:tabular-nums; line-height:1.1; color:#fff; }
.live-timeout-stop { min-width:100px; min-height:44px; border-color:#bccde1; background:#f4f7fc; color:#344e6e; font-weight:700; }
.live-timeout-countdown.is-overdue .live-timeout-clock { color:#ff7d88; }
.live-timeout-countdown.is-overdue.is-running .live-timeout-clock { animation:csb-timeout-alert 1s ease-in-out infinite; }
.live-history-description { display:flex; min-width:0; flex-direction:column; gap:4px; }
.live-history-description>span { font-weight:500; }
.live-history-description small,.live-history-result small { font-size:10px; line-height:1.4; color:var(--color-muted); }
.live-history-result { display:flex; flex-direction:column; align-items:flex-end; gap:4px; font-variant-numeric:tabular-nums; }
.live-history-result strong { font-size:12px; line-height:1.4; }
.live-rack-history .live-timeout-entry strong { color:var(--color-ink); }
@media(max-width:420px) { .live-rack-history li { grid-template-columns:22px minmax(0,1fr) 42px 64px; gap:8px; padding:10px; } }
@media(max-width:380px) { .live-timeout-countdown { --timeout-gap:8px; inset:21px 9px 13px; } .live-timeout-stop { min-width:88px; } }
@keyframes csb-timeout-alert { 50% { opacity:.3; } }
@media (prefers-reduced-motion:reduce) { .live-timeout-countdown.is-overdue.is-running .live-timeout-clock { animation:none; } }

/* Fullscreen reserves its header and actions; only the score cards use the remaining space. */
html.csb-score-fullscreen,.csb-score-fullscreen body { height:100%; overflow:hidden; }
.csb-score-fullscreen .csb-scorekeeper { display:grid; grid-template-rows:32px auto auto minmax(0,1fr) auto; gap:6px; position:relative; overflow:hidden; padding:max(8px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left)); }
.csb-score-fullscreen .live-topline { grid-row:1; margin:0; min-height:0; flex-wrap:nowrap; gap:6px; }
.csb-score-fullscreen .live-topline-tools { gap:5px; }
.csb-score-fullscreen .live-fullscreen-button { min-height:32px; padding:4px 8px; }
.csb-score-fullscreen .live-fullscreen-label { display:none; }
.csb-score-fullscreen .live-connection { font-size:9px; padding:4px 6px; }
.csb-score-fullscreen .live-score-heading { grid-row:2; margin:0; }
.csb-score-fullscreen .live-score-heading h1 { margin:0 0 3px; font-size:clamp(14px,2.5vh,20px); line-height:1.2; }
.csb-score-fullscreen .live-score-heading>div { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:4px 9px; font-size:11px; line-height:1.2; }
.csb-score-fullscreen .live-clock { padding:3px 8px; font-size:14px; }
.csb-score-fullscreen .live-clock svg { width:16px; height:16px; }
.csb-score-fullscreen .live-team-pairing { grid-row:3; margin:0; padding:3px 10px; font-size:11px; }
.csb-score-fullscreen .live-team-pairing small { display:none; }
.csb-score-fullscreen .live-scoreboard { grid-row:4; align-self:center; height:100%; min-height:0; max-height:min(510px,calc((100vw - 24px) * .75 / var(--flip-digits) + 132px)); max-width:calc(520px * var(--flip-digits)); grid-template-rows:auto 28px minmax(0,1fr) 44px; align-content:stretch; gap:6px 0; }
.csb-score-fullscreen .live-score-player { position:relative; min-height:0; overflow:visible; }
.csb-score-fullscreen .live-score-side h2 { min-height:40px; max-height:none; padding:6px 34px; font-size:clamp(12px,2.2vh,18px); line-height:1.25; }
.csb-score-fullscreen .live-break-indicator { position:absolute; z-index:1; left:5px; top:50%; transform:translateY(-50%); margin:0; width:26px; height:26px; }
.csb-score-fullscreen .live-cue-ball { width:24px; height:24px; }
.csb-score-fullscreen .live-timeout-button { min-height:28px; padding:4px 10px; line-height:18px; font-size:10px; }
.csb-score-fullscreen .live-score-display { min-height:0; height:100%; container-type:size; }
.csb-score-fullscreen .live-score-side .live-flip-score { --leaf-height:min(calc(100cqh - 32px),calc((100cqw - 28px - (var(--flip-digits) - 1) * 8px) / var(--flip-digits) * var(--score-card-ratio,1.5))); height:100%; min-height:0; align-items:center; padding-top:16px; padding-bottom:8px; gap:8px; border-top-width:3px; border-bottom-width:5px; }
.csb-score-fullscreen .live-flip-leaf { flex:0 1 auto; height:max(0px,var(--leaf-height)); width:calc(max(0px,var(--leaf-height)) / var(--score-card-ratio,1.5)); }
.csb-score-fullscreen .live-score-side .live-point-button { height:100%; min-height:0; padding:2px; font-size:26px; line-height:1; }
.csb-score-fullscreen .live-point-button span { font-size:9px; margin-top:3px; }
.csb-score-fullscreen .live-score-actions { grid-row:5; display:flex; flex-wrap:nowrap; margin:0; gap:6px; min-height:44px; }
.csb-score-fullscreen .live-score-actions>.live-button { flex:1; min-width:0; min-height:44px; margin:0; padding:6px 10px; font-size:12px; }
.csb-score-fullscreen .live-score-actions>.live-undo-button { width:auto; max-width:none; font-size:16px; }
.csb-score-fullscreen .live-team-progress,.csb-score-fullscreen .live-round-note { display:none!important; }
.csb-score-fullscreen .live-control-bar,.csb-score-fullscreen .live-lag-panel,.csb-score-fullscreen .live-round-start { position:absolute; z-index:5; left:12px; right:12px; width:auto; max-width:600px; margin:0 auto; padding:14px; box-shadow:0 8px 28px #1a355b33; }
.csb-score-fullscreen .live-control-bar { top:112px; }
.csb-score-fullscreen .live-lag-panel,.csb-score-fullscreen .live-round-start { top:50%; transform:translateY(-50%); max-height:calc(100dvh - 150px); overflow:auto; }
.csb-score-fullscreen .live-lag-panel h2 { margin-top:0; font-size:17px; }
.csb-score-fullscreen .live-notice,.csb-score-fullscreen .live-feedback,.csb-score-fullscreen [data-login],.csb-score-fullscreen [data-edit-lineup],.csb-score-fullscreen .live-fullscreen-help { position:absolute; z-index:6; left:12px; right:12px; top:110px; max-height:90px; margin:0; overflow:auto; }
.csb-score-fullscreen .live-feedback { top:70px; }
.csb-score-fullscreen .live-timeout-countdown { --timeout-clock-size:clamp(26px,6vh,48px); --timeout-stop-height:32px; --timeout-gap:4px; inset:8px 8px 10px; }
.csb-score-fullscreen .live-timeout-stop { min-height:32px; padding:4px 12px; }
@media(max-height:430px) { .csb-score-fullscreen .live-score-heading>div { font-size:10px; } .csb-score-fullscreen .live-score-side h2 { min-height:32px; max-height:none; padding-top:4px; padding-bottom:4px; } }

@media(orientation:landscape) and (max-height:600px) {
    .csb-score-fullscreen .csb-scorekeeper { grid-template-columns:minmax(155px,25%) minmax(0,1fr); grid-template-rows:auto minmax(0,1fr) auto; gap:6px 12px; }
    .csb-score-fullscreen .live-topline { grid-column:1; grid-row:1; flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:4px; }
    .csb-score-fullscreen .live-score-heading { grid-column:1; grid-row:2; align-self:center; }
    .csb-score-fullscreen .live-score-heading h1 { font-size:18px; line-height:1.3; }
    .csb-score-fullscreen .live-score-heading>div { font-size:11px; gap:8px; }
    .csb-score-fullscreen .live-score-heading [data-game-discipline],.csb-score-fullscreen .live-score-heading [data-game-race] { flex-basis:100%; }
    .csb-score-fullscreen .live-team-pairing { position:absolute; left:10px; bottom:70px; width:calc(25% - 20px); flex-direction:column; gap:4px; padding:0; border:0; }
    .csb-score-fullscreen .live-scoreboard { grid-column:2; grid-row:1/4; max-height:none; max-width:none; }
    .csb-score-fullscreen .live-score-actions { grid-column:1; grid-row:3; flex-wrap:wrap; }
    .csb-score-fullscreen .live-score-actions>.live-button { flex-basis:100%; }
    .csb-score-fullscreen .live-control-bar { top:55px; }
    .csb-score-fullscreen .live-topline-tools { width:100%; }
    .csb-score-fullscreen .live-connection { flex:1; min-width:0; white-space:normal; line-height:1.25; }
    .csb-score-fullscreen .live-fullscreen-button { flex-shrink:0; }
}

.live-table-entry { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:18px 0; }
.live-table-entry>span { color:var(--color-muted); font-size:12px; }
.live-report-action .live-assigned-table { grid-column:1/-1; grid-row:4; color:#345b86; font-size:11px; font-weight:600; }

.live-report-action .live-table-assignment { grid-column:1/-1; grid-row:3; display:flex; align-items:center; gap:6px; min-width:0; padding-top:7px; border-top:1px solid #dbe4f0; }
.live-table-assignment label { color:#496381; font-size:11px; }
.live-table-assignment select { flex:1; min-width:0; width:0; min-height:34px; box-sizing:border-box; padding:6px; border:1px solid #bbcee5; border-radius:5px; background:#fff; color:var(--color-ink); font:inherit; font-size:11px; }
.live-assigned-table { padding:4px 7px; border-radius:4px; background:#e7effa; }

.live-score-side h2 { text-wrap:balance; }
@media(orientation:portrait) and (max-width:600px) {
    .csb-score-fullscreen .csb-scorekeeper { grid-template-rows:auto minmax(0,1fr) auto auto minmax(0,auto) minmax(0,1fr); }
    .csb-score-fullscreen .live-score-heading { grid-row:3; }
    .csb-score-fullscreen .live-team-pairing { grid-row:4; }
    .csb-score-fullscreen .live-score-play-area { grid-row:5; display:grid; grid-template-rows:minmax(0,auto) auto; align-content:center; gap:12px; min-height:0; }
    .csb-score-fullscreen .live-scoreboard { --score-card-ratio:1.5; grid-row:auto; align-self:center; height:auto; max-height:100%; grid-template-rows:auto 32px auto 64px; gap:12px 0; }
    .csb-score-fullscreen .live-score-actions { grid-row:auto; }
    .csb-score-fullscreen .live-score-player { display:grid; grid-template-rows:28px auto; justify-items:center; align-items:stretch; }
    .csb-score-fullscreen .live-break-indicator { position:static; transform:none; width:26px; height:26px; margin:0; }
    .csb-score-fullscreen .live-score-side h2 { min-height:44px; padding:8px 6px; font-size:clamp(14px,4vw,18px); }
    .csb-score-fullscreen .csb-scorekeeper[data-game-kind=pair] .live-score-side h2 { font-size:clamp(12px,3.4vw,16px); padding:6px; }
    .csb-score-fullscreen .live-score-display { height:auto; container-type:normal; }
    .csb-score-fullscreen .live-score-side .live-flip-score { height:auto; }
    .csb-score-fullscreen .live-flip-leaf { flex:1; width:auto; height:auto; aspect-ratio:2/3; }
    .csb-score-fullscreen .live-flip-digit { font-size:min(105cqh,150cqw); transform:none; }
    .csb-score-fullscreen .live-score-actions>.live-button { min-height:52px; }
}

@media(orientation:portrait) and (max-width:600px) and (max-height:700px) {
    .csb-score-fullscreen .csb-scorekeeper { grid-template-rows:auto auto auto minmax(0,1fr); }
    .csb-score-fullscreen .live-score-heading { grid-row:2; }
    .csb-score-fullscreen .live-team-pairing { grid-row:3; }
    .csb-score-fullscreen .live-score-play-area { grid-row:4; grid-template-rows:minmax(0,1fr) auto; gap:6px; }
    .csb-score-fullscreen .live-scoreboard { height:100%; grid-template-rows:auto 28px minmax(0,1fr) 44px; gap:6px 0; }
    .csb-score-fullscreen .live-score-display { height:100%; container-type:size; }
    .csb-score-fullscreen .live-score-side .live-flip-score { height:100%; }
    .csb-score-fullscreen .live-flip-leaf { flex:0 1 auto; height:max(0px,var(--leaf-height)); width:calc(max(0px,var(--leaf-height)) / 1.5); }
    .csb-score-fullscreen .live-score-actions>.live-button { min-height:44px; }
}
