.scoreboard-header { justify-content: space-between; }
.cbtm-logo { display: block; width: clamp(90px, 10vw, 180px); max-height: 9vh; object-fit: contain; object-position: left center; }
.competitor { position: relative; }
.competitor-presentation { display:inline-flex; max-width:100%; flex-direction:column; align-items:center; }
.competitor-name { display:flex; align-items:center; gap:clamp(8px,1vw,18px); }
.competitor-name-two { justify-content:flex-end; }
.competitor h1 { margin: 0; overflow: visible; font-size:clamp(25px,3.5vw,66px); line-height: 1.05; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
.competitor h1.match-winner { color:#ffe331; text-shadow:0 0 10px rgba(255,227,49,.65),0 0 24px rgba(255,193,7,.3); }
.winner-trophy { flex:0 0 auto; font-size:clamp(25px,3.5vw,66px); line-height:1; filter:drop-shadow(0 0 10px rgba(255,215,40,.6)); animation:winner-in 600ms ease-out both; }
.winner-trophy[hidden] { display:none!important; }
.tv-timeout-clock { position:absolute; z-index:10; top:50%; left:50%; width:clamp(170px,20vw,300px); aspect-ratio:1; transform:translate(-50%,-50%); border:clamp(12px,1.4vw,21px) solid #277841; border-radius:50%; background:#fff; color:#277841; box-shadow:0 8px 35px #000,inset 0 0 0 2px #dbe8df; }
.tv-timeout-clock[hidden] { display:none; }
.tv-timeout-face { position:absolute; inset:4%; overflow:hidden; border-radius:50%; background:radial-gradient(circle,transparent 0 72%,#fff 73% 100%); }
.tv-timeout-face::before { content:""; position:absolute; inset:0; border-radius:50%; background:repeating-conic-gradient(#277841 0 1deg,transparent 1deg 6deg); mask:radial-gradient(circle,transparent 0 78%,#000 79% 100%); -webkit-mask:radial-gradient(circle,transparent 0 78%,#000 79% 100%); }
.tv-timeout-mark { position:absolute; left:50%; top:-1%; width:4px; height:11%; margin-left:-2px; border-radius:3px; background:#277841; transform-origin:2px 470%; }
.tv-timeout-mark:nth-child(2) { transform:rotate(90deg); }.tv-timeout-mark:nth-child(3) { transform:rotate(180deg); }.tv-timeout-mark:nth-child(4) { transform:rotate(270deg); }
.tv-timeout-hand { position:absolute; z-index:2; left:50%; top:50%; width:clamp(4px,.4vw,7px); height:37%; transform:translate(-50%,-100%) rotate(0deg); transform-origin:50% 100%; border-radius:5px; background:#ff9700; box-shadow:0 0 4px #0005; }
.tv-timeout-center { position:absolute; z-index:3; left:50%; top:50%; width:42%; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; transform:translate(-50%,-50%); border-radius:50%; background:#277841; color:#fff; box-shadow:0 2px 9px #0005; }
.tv-timeout-clock strong { color:#fff; font-size:clamp(35px,5vw,78px); line-height:.85; }
.tv-timeout-clock small { margin-top:.22em; font-size:clamp(10px,1.2vw,20px); font-weight:900; }
.score-center { display: flex; min-width: 0; flex-direction: column; align-items: center; gap: 1.2vh; }
.score-center .current-score { width: 100%; }
.match-label { padding: .35em 1.5em; color: #fff; font-size: clamp(13px, 1.5vw, 28px); letter-spacing: .08em; }
.match-label small { display: block; margin-top: .2em; font-size: .48em; letter-spacing: .04em; text-align: center; }
.history-column { display:flex; min-width:0; height:100%; flex-direction:column; justify-content:center; }
.history-column-two { align-items:flex-end; }
.penalties { display: flex; min-height: 2.2em; gap: .45em; margin-top: 2vh; flex-wrap: wrap; }
.penalties-two { justify-content: flex-end; }
.applied-card { width:clamp(20px,1.8vw,34px); height:clamp(29px,2.6vw,49px); display:inline-grid; place-items:center; border:1px solid #bbb; border-radius:3px; background:#fff; color:#222; font:900 clamp(10px,.95vw,18px)/1 Arial,sans-serif; box-shadow:0 2px 4px #0007; animation:indicator-in .25s ease-out; }
.applied-card--yellow { border-color:#ffc735; background:#ffc735; }
.applied-card--yellow-red { border-color:#ffc735; background:linear-gradient(#ffc735 50%,#f21d10 50%); }
.applied-card--red { border-color:#f21d10; background:#f21d10; color:#fff; }
.set-history { gap: 1.2vh; font-size: clamp(20px, 2.5vw, 48px); white-space: nowrap; }
.set-history div { display: flex; align-items: baseline; gap: .35em; }
.set-history-two div { justify-content: flex-end; }
.set-history div::before, .set-history-two div::after { content: none; }
.set-history div small { font-size: .58em; font-weight: 300; color: white; }
.set-history div span { color: var(--display-yellow); }
.scoreboard-qr[hidden] { display:none; }
.value-changed { animation: value-pulse .32s ease-out; }
.connection-lost .live-badge { opacity: .45; }
.connection-lost .live-badge span { background: #777; box-shadow: none; }
.scoreboard-qr { position: fixed; right: 1.2vw; bottom: 4.5vh; z-index: 5; display: flex; width: 112px; flex-direction: column; align-items: center; gap: 4px; padding: 4px; border-radius: 7px; background: rgba(255,255,255,.9); color: #06162f; box-shadow: 0 3px 14px rgba(0,0,0,.35); font: 700 10px/1.15 Arial,sans-serif; text-align: center; }
.scoreboard-qr img { display: block; width: 104px; height: 104px; }
.fullscreen-button { position: fixed; top: 1.8vh; right: 1.4vw; z-index: 20; min-width: 48px; min-height: 44px; padding: 7px 11px; border: 2px solid #fff; border-radius: 7px; background: rgba(5,8,18,.88); color: #fff; font: 800 clamp(10px,1vw,15px)/1 Arial,sans-serif; cursor: pointer; touch-action: manipulation; }
.fullscreen-button:focus { outline: 3px solid var(--display-yellow); outline-offset: 2px; }
html.fullscreen-fallback, html.fullscreen-fallback body { width: 100%; height: 100%; overflow: hidden; }
html.fullscreen-fallback body { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 2147483646; }
.live-badge { margin-right: clamp(58px,8vw,110px); }
@keyframes value-pulse { 50% { color: #fff; transform: scale(1.04); } }
@keyframes indicator-in { from { opacity: 0; transform: translateY(-5px); } }
@keyframes winner-in { from { opacity:0; transform:translateY(-8px) scale(.92); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (prefers-reduced-motion: reduce) { .value-changed, .applied-card, .winner-trophy { animation: none; } }
@media (max-width: 700px) { .penalties { min-height: 1.4em; } .scoreboard-qr { right: 6px; bottom: 36px; width: 72px; font-size: 8px; } .scoreboard-qr img { width: 64px; height: 64px; } }
@media (max-width: 700px) { .fullscreen-button { top: 7px; right: 7px; padding: 5px; font-size: 0; } .fullscreen-button::before { content: "\26F6"; font-size: 25px; } }
@media (max-width: 700px) and (orientation: portrait) {
    .olympic-scoreboard { grid-template-rows: 10vh 25vh 55vh 10vh; }
    .competitors { grid-template-columns: minmax(0,1fr) 44px 44px minmax(0,1fr); gap: 5px; padding: 1vh 8px; }
    .competitor h1 { font-size: clamp(14px,4.7vw,24px); }
    .set-score { width: 42px; min-width: 0; font-size: clamp(28px,9vw,48px); }
    .match-area { grid-template-columns: minmax(28px,12vw) minmax(0,1fr) minmax(28px,12vw); gap: 4px; padding: 1vh 6px; }
    .current-score { min-height: 37vh; grid-template-columns: 7px minmax(0,1fr) auto minmax(0,1fr) 7px; }
    .current-score strong { font-size: clamp(58px,22vw,120px); letter-spacing: -.1em; }
    .score-divider { font-size: clamp(34px,10vw,60px); }
    .set-history { font-size: clamp(14px,5vw,28px); white-space: normal; }
    .match-label { padding-inline: .8em; font-size: 12px; }
    .scoreboard-qr { display: none; }
    .scoreboard-footer { padding-inline: 8px; font-size: 10px; }
}
