/* Tournament and spectator UI. Uses the same tokens and card language as battle.css. */
html:is([data-ui-theme="neomorphism"], [data-ui-theme="glassmorphism"], [data-ui-theme="skeuomorphism"], [data-ui-theme="claymorphism"], [data-ui-theme="competition"], [data-ui-theme="cube-sticker"], [data-ui-theme="terminal"], [data-ui-theme="midnight-neon"], [data-ui-theme="paper"]) :is(.competition-modal-content, .competition-bracket-content, .competition-qr-content, .competition-scan-content, .competition-player-detail-content, .competition-host-page, .competition-projector-screen, .competition-judge-page, .competition-timer-page, .competition-scramble-page, .competition-scorecard-page) {
  background: var(--card-bg) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color) !important;
  box-shadow: var(--shadow-soft);
}

html:is([data-ui-theme="neomorphism"], [data-ui-theme="glassmorphism"], [data-ui-theme="skeuomorphism"], [data-ui-theme="claymorphism"], [data-ui-theme="competition"], [data-ui-theme="cube-sticker"], [data-ui-theme="terminal"], [data-ui-theme="midnight-neon"], [data-ui-theme="paper"]) :is(.competition-modal-header, .competition-mode-tab, .competition-form-grid input, .competition-form-grid select, .competition-notice, .competition-live-bar, .competition-player-card, .competition-judge-card, .competition-live-timer-card, .spectator-card, .bracket-match, .competition-scramble-card, .competition-scorecard-sheet-grid) {
  background-color: var(--surface-1) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

html[data-ui-theme="glassmorphism"] :is(.competition-modal-content, .competition-bracket-content, .competition-qr-content, .competition-scan-content, .competition-player-detail-content) {
  backdrop-filter: blur(20px) saturate(130%);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
}
.competition-modal,.competition-bracket-modal,.competition-qr-modal,.competition-scan-modal{display:none;position:fixed;inset:0;z-index:10020;background:rgba(0,0,0,.64);backdrop-filter:blur(4px);align-items:center;justify-content:center;padding:18px}
.competition-toast{position:fixed;z-index:10050;left:50%;bottom:24px;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#262626;color:#fff;border-radius:8px;padding:10px 14px;font-size:.82rem;transition:opacity .2s,transform .2s}.competition-toast.show{opacity:1;transform:translate(-50%,0)}
.competition-modal.show,.competition-bracket-modal.show,.competition-qr-modal.show,.competition-scan-modal.show{display:flex}
.competition-modal-content,.competition-bracket-content,.competition-qr-content{width:min(94vw,760px);max-height:92vh;overflow:auto;background:var(--container-bg,#fff);color:var(--text-color,#333);border-radius:16px;box-shadow:0 14px 48px rgba(0,0,0,.35);animation:competitionIn .22s ease}
@keyframes competitionIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.competition-bracket-content{width:min(96vw,1100px)}.competition-qr-content{width:min(94vw,360px)}.competition-scan-content{width:min(94vw,520px);background:var(--container-bg,#fff);color:var(--text-color,#333);border-radius:16px;overflow:hidden}.competition-scan-content video{display:block;width:100%;max-height:62vh;object-fit:cover;background:#111}.competition-scan-help{padding:13px 18px;font-size:.82rem;color:var(--text-secondary,#777)}
.competition-modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 22px;border-bottom:1px solid var(--border-color,#e5e5e5)}
.competition-modal-title{font-size:1.2rem;font-weight:750}.competition-modal-subtitle{font-size:.78rem;color:var(--text-secondary,#777);margin-top:3px}.competition-close{border:0;background:none;color:var(--text-secondary,#777);font-size:1.2rem;cursor:pointer;padding:6px}.competition-close:hover{color:var(--primary-color,#a57865)}
.competition-view{padding:20px 22px}.competition-view.hidden{display:none!important}
.competition-mode-tabs{display:flex;gap:8px;margin-bottom:18px}.competition-mode-tab{flex:1;border:2px solid var(--border-color,#e2e2e2);border-radius:10px;background:transparent;color:var(--text-secondary,#666);padding:12px 10px;font-weight:700;cursor:pointer}.competition-mode-tab.active{background:var(--primary-color,#a57865);border-color:var(--primary-color,#a57865);color:#fff}
.competition-notice,.competition-form-info{display:flex;gap:9px;align-items:flex-start;padding:11px 12px;border-radius:9px;background:rgba(33,150,243,.1);border-left:3px solid #2196f3;color:var(--text-secondary,#666);font-size:.82rem;margin-bottom:18px}.competition-notice i,.competition-form-info i{color:#2196f3;margin-top:2px}
.competition-mode-panel{display:none}.competition-mode-panel.active{display:block}.competition-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:16px}.competition-form-grid label,.competition-join-box label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:700;color:var(--text-secondary,#666)}.competition-form-grid input,.competition-form-grid select,.competition-join-box input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--border-color,#ddd);border-radius:8px;background:var(--surface-1,var(--container-bg,#fff));color:var(--text-color,#333);font:inherit;font-weight:400}.competition-form-grid input:focus,.competition-form-grid select:focus,.competition-join-box input:focus{outline:2px solid rgba(165,120,101,.3);border-color:var(--primary-color,#a57865)}
.competition-action-row,.competition-dashboard-actions{display:flex;gap:10px;flex-wrap:wrap}.competition-btn{border:1px solid var(--border-color,#d9d9d9);background:transparent;color:var(--text-color,#444);border-radius:8px;padding:10px 13px;cursor:pointer;font-weight:700;font-size:.82rem}.competition-btn:hover{border-color:var(--primary-color,#a57865);color:var(--primary-color,#a57865)}.competition-btn.primary{border-color:var(--primary-color,#a57865);background:var(--primary-color,#a57865);color:#fff}.competition-btn.small{padding:7px 10px;font-size:.74rem}.competition-btn:disabled{opacity:.55;cursor:not-allowed}.competition-join-box{display:flex;align-items:end;gap:10px;border-top:1px solid var(--border-color,#eee);margin-top:16px;padding-top:16px}.competition-join-box label{flex:1}
.competition-advanced-options{margin:-2px 0 16px;border:1px solid var(--border-color,#ddd);border-radius:10px;background:color-mix(in srgb,var(--container-bg,#fff) 92%,var(--primary-color,#a57865) 8%)}.competition-advanced-options summary{display:flex;align-items:center;gap:8px;padding:11px 12px;color:var(--text-color,#333);font-size:.82rem;font-weight:750;cursor:pointer}.competition-advanced-options summary::marker{color:var(--primary-color,#a57865)}.competition-advanced-options summary i{color:var(--primary-color,#a57865)}.competition-advanced-options>p{margin:0;padding:0 12px 11px;color:var(--text-secondary,#777);font-size:.75rem;line-height:1.4}.competition-advanced-options .competition-advanced-grid{padding:0 12px 12px;margin:0}
.competition-tournament-estimate{margin:-3px 0 16px;padding:12px;border:1px solid rgba(165,120,101,.38);border-radius:10px;background:rgba(165,120,101,.08);color:var(--text-color,#333)}.competition-tournament-estimate:empty{display:none}.competition-tournament-estimate header{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.competition-tournament-estimate h4{margin:0;font-size:.84rem}.competition-tournament-estimate header strong{color:var(--primary-color,#a57865);font-size:.92rem}.competition-tournament-estimate-stats{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.competition-tournament-estimate-stats span{padding:4px 7px;border-radius:5px;background:var(--container-bg,#fff);font-size:.7rem;color:var(--text-secondary,#777)}.competition-tournament-estimate ul{display:grid;gap:4px;margin:8px 0;padding:0;list-style:none;font-size:.73rem}.competition-tournament-estimate li{display:flex;justify-content:space-between;gap:8px}.competition-tournament-estimate small{display:block;color:var(--text-secondary,#777);font-size:.68rem;line-height:1.35}
.competition-error{min-height:20px;margin-top:12px;color:#b23b32;font-size:.82rem;font-weight:600}.competition-added-players{display:flex;flex-wrap:wrap;gap:8px;min-height:38px;padding:10px;border:1px dashed var(--border-color,#d8d8d8);border-radius:9px;margin-bottom:15px}.competition-player-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:99px;background:rgba(165,120,101,.12);font-size:.8rem}.competition-player-chip button{border:0;background:none;color:inherit;cursor:pointer;padding:0}.muted{color:var(--text-secondary,#888);font-size:.8rem}
.competition-dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}.competition-dashboard-head h3{margin:3px 0 0;font-size:1.25rem}.eyebrow{font-size:.67rem;letter-spacing:.11em;font-weight:800;color:var(--primary-color,#a57865)}.competition-room-share{font-size:.83rem;color:var(--text-secondary,#777);margin-top:6px}.competition-room-share strong{font-size:1.15rem;color:var(--text-color,#333);letter-spacing:.08em}.competition-live-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:9px;background:rgba(0,0,0,.045);margin-bottom:15px;font-size:.82rem;font-weight:700}.dark-mode .competition-live-bar,[data-theme="dark"] .competition-live-bar{background:rgba(255,255,255,.08)}
.competition-current-match{padding:15px;border:1px solid rgba(165,120,101,.35);background:rgba(165,120,101,.08);border-radius:11px;margin-bottom:15px}.competition-match-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-color,#a57865);font-weight:800}.competition-match-versus{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;font-size:1rem;font-weight:750}.competition-match-versus .vs{font-size:.72rem;color:var(--text-secondary,#777)}.competition-player-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px}.competition-player-card{padding:11px;border:1px solid var(--border-color,#e2e2e2);border-radius:9px}.competition-player-card strong{display:block;margin-bottom:5px}.competition-status{font-size:.74rem;color:var(--text-secondary,#777)}.competition-status::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#a0a0a0;margin-right:5px}.competition-status.live::before{background:#37a866}.competition-status.done::before{background:var(--primary-color,#a57865)}.competition-host-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.competition-host-actions .competition-btn{flex:0 0 auto}
.competition-inline-panel{margin:10px 0;padding:12px 14px;border:1px solid rgba(165,120,101,.35);border-radius:10px;background:rgba(165,120,101,.08);color:var(--text-color,#333)}.competition-inline-panel.hidden{display:none!important}.competition-inline-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.competition-inline-head strong{display:block;font-size:.9rem;margin-top:3px}.competition-inline-match{margin-top:8px}.competition-inline-match .competition-match-versus{font-size:.88rem}
.competition-inline-status{margin-top:8px;font-size:.78rem;font-weight:700;color:var(--text-secondary,#777)}.competition-inline-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;margin:9px 0}.competition-inline-players .competition-player-card{padding:8px;background:rgba(255,255,255,.04)}.competition-inline-panel>#competition-inline-bracket{margin-top:2px}
.competition-tournament-mode #times-panel>.battle-sidebar:not(.competition-battle-sidebar){display:none!important}.competition-battle-sidebar{overflow:hidden}.competition-battle-sidebar .battle-sidebar-header-actions{align-items:flex-start;justify-content:flex-end}.competition-sidebar-match{margin-top:5px;font-size:.78rem;color:var(--text-secondary,#777);max-width:210px;line-height:1.3}.competition-battle-sidebar .battle-player{cursor:default;padding:9px 10px}.competition-battle-sidebar .battle-player-info{gap:3px}.competition-battle-sidebar .battle-player-actions{min-width:62px;gap:3px}.competition-battle-sidebar .battle-player-time{font-size:.82rem}.competition-battle-sidebar .battle-player-status{font-size:.7rem;padding:4px 8px}.competition-battle-sidebar .battle-sidebar-chat-list>.muted{font-size:.8rem;padding:4px}
body.competition-tournament-mode.competition-sidebar-open .container{margin-left:350px!important;width:calc(100% - 350px)!important;transform:none!important;transform-origin:center center}
.competition-player-detail-modal{position:fixed;inset:0;z-index:10030;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.68);backdrop-filter:blur(4px)}.competition-player-detail-content{width:min(92vw,430px);max-height:82vh;overflow:auto;background:var(--container-bg,#fff);color:var(--text-color,#333);border-radius:16px;box-shadow:0 16px 55px rgba(0,0,0,.4);animation:competitionIn .2s ease}.competition-player-detail-body{padding:16px 18px}.competition-player-detail-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px}.competition-player-detail-stats span{padding:9px;border-radius:8px;background:rgba(0,0,0,.045);font-size:.7rem;color:var(--text-secondary,#777)}.dark-mode .competition-player-detail-stats span,[data-theme="dark"] .competition-player-detail-stats span{background:rgba(255,255,255,.07)}.competition-player-detail-stats strong{display:block;margin-top:3px;color:var(--text-color,#333);font-size:.78rem}.competition-player-history{display:flex;flex-direction:column;gap:6px}.competition-player-history-row{display:grid;grid-template-columns:48px 1fr auto auto;align-items:center;gap:7px;padding:9px 8px;border:1px solid var(--border-color,#ddd);border-radius:8px;font-size:.72rem}.competition-player-history-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-player-history-row em{font-style:normal;color:var(--primary-color,#a57865);font-weight:700}.competition-battle-sidebar .battle-player:focus-visible{outline:2px solid var(--primary-color,#a57865);outline-offset:2px}
.competition-session-mode .event-selector,.competition-session-mode #new-scramble,body.battle-mode .event-selector,body.battle-mode #new-scramble{display:none!important}.competition-session-mode #quick-stats-box,.competition-session-mode #stats-container,body.battle-mode #quick-stats-box,body.battle-mode #stats-container{display:none!important}.competition-camera-box{grid-area:stats;display:none;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--border-color,#2b2927);border-radius:12px;background:var(--container-bg,#211e1c);color:var(--text-color,#eee);min-height:0;box-sizing:border-box}.competition-camera-box.hidden{display:none!important}.competition-session-mode .competition-camera-box{display:flex!important}.competition-camera-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.competition-camera-heading strong{font-size:.9rem}.competition-camera-heading span{font-size:.7rem;color:var(--text-secondary,#999)}.competition-camera-stage{position:relative;min-height:130px;flex:1 1 auto;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:9px;background:#121110}.competition-camera-stage video{display:block;width:100%;height:100%;min-height:130px;object-fit:cover}.competition-camera-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:130px;color:var(--text-secondary,#999);font-size:.78rem}.competition-camera-placeholder i{font-size:1.5rem;color:var(--primary-color,#a57865)}.competition-camera-actions{display:flex;gap:7px;flex-wrap:wrap}.competition-camera-actions .competition-btn{padding:8px 10px;font-size:.72rem}.competition-camera-error{min-height:16px;color:#d86a5f;font-size:.7rem}.competition-sidebar-resizer{flex:0 0 8px;position:relative;cursor:row-resize;border-top:1px solid rgba(165,120,101,.22);border-bottom:1px solid rgba(165,120,101,.22);background:rgba(165,120,101,.06);touch-action:none}.competition-sidebar-resizer::after{content:"";position:absolute;left:25%;right:25%;top:3px;height:2px;border-top:2px dotted var(--text-secondary,#777);opacity:.7}.competition-battle-sidebar .battle-sidebar-players{flex:0 0 var(--competition-players-height,45%)}.competition-battle-sidebar .battle-sidebar-chat{flex:1 1 auto;min-height:150px}
.competition-host-actions .custom-result-entry{flex:1 1 100%;display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--border-color,#e2e2e2);border-radius:9px;padding:10px}.custom-result-entry>div{display:flex;gap:6px}.custom-result-input{width:92px;box-sizing:border-box;padding:8px;border:1px solid var(--border-color,#ddd);border-radius:7px;background:var(--input-bg,var(--container-bg,#fff));color:var(--text-color,#333)}
.custom-result-inputs{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.custom-result-inputs .custom-result-input{min-width:78px}
.competition-bracket-board{display:flex;gap:12px;overflow:auto;padding:20px}.bracket-round{min-width:190px;display:flex;flex-direction:column;gap:10px}.bracket-round h4{margin:0 0 3px;font-size:.75rem;color:var(--text-secondary,#777);text-transform:uppercase;letter-spacing:.08em}.bracket-match{border:1px solid var(--border-color,#ddd);border-radius:9px;padding:10px;font-size:.78rem;background:rgba(0,0,0,.025)}.dark-mode .bracket-match,[data-theme="dark"] .bracket-match{background:rgba(255,255,255,.04)}.bracket-match.active{border-color:#37a866}.bracket-match.finished{border-color:var(--primary-color,#a57865)}.bracket-player{display:flex;justify-content:space-between;gap:5px;padding:4px 0}.bracket-player.winner{font-weight:800;color:var(--primary-color,#a57865)}.bracket-score{color:var(--text-secondary,#777);font-size:.72rem}.bracket-vs{border-top:1px solid var(--border-color,#eee);margin-top:3px;padding-top:3px;text-align:center;color:var(--text-secondary,#888);font-size:.65rem}
.competition-bracket-board{align-items:stretch;min-height:360px}.bracket-round{position:relative;min-width:220px;gap:8px}.bracket-round-matches{flex:1 1 auto;min-height:300px;display:flex;flex-direction:column;justify-content:space-around;gap:20px}.bracket-match{position:relative;z-index:1}.bracket-round:not(:last-child) .bracket-match::after{content:"";position:absolute;top:50%;right:-13px;width:13px;border-top:1px solid rgba(165,120,101,.7)}.bracket-round:not(:last-child) .bracket-match:nth-child(odd)::before{content:"";position:absolute;top:50%;right:-13px;width:13px;height:calc(100% + 20px);border-right:1px solid rgba(165,120,101,.7);border-top:1px solid rgba(165,120,101,.7);border-radius:0 5px 0 0;transform:translateX(13px)}.bracket-round:not(:first-child) .bracket-match:nth-child(even)::before{content:"";position:absolute;top:calc(-50% - 10px);left:-13px;width:13px;height:calc(50% + 10px);border-left:1px solid rgba(165,120,101,.7);border-bottom:1px solid rgba(165,120,101,.7);border-radius:0 0 0 5px;transform:translateX(-1px)}.bracket-score{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px;max-width:120px}.bracket-score .spectator-solve-time{white-space:nowrap}.spectator-solve-time{display:inline-block}.spectator-solve-time.is-best{color:#22c55e;font-weight:800}.spectator-solve-time.is-worst{color:#ef4444;font-weight:800}.spectator-match-solves{display:grid;gap:3px;margin-top:8px;padding-top:7px;border-top:1px solid rgba(165,120,101,.18);font-size:.68rem;color:var(--text-secondary,#777)}.spectator-match-solves>span{display:flex;gap:4px;min-width:0}.spectator-match-solves>span>span{display:flex;flex-wrap:wrap;gap:3px}.spectator-match-card .spectator-solve-time{font-weight:700;color:var(--text-color,#333)}.spectator-match-card .spectator-solve-time.is-best{color:#22c55e}.spectator-match-card .spectator-solve-time.is-worst{color:#ef4444}
.competition-bracket-board{position:relative}.bracket-connections{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:visible}.bracket-round:not(:last-child) .bracket-match::before,.bracket-round:not(:last-child) .bracket-match::after,.bracket-round:not(:first-child) .bracket-match::before{content:none!important}.bracket-match{background:var(--card-bg,var(--container-bg,#1c1a19))!important}
.bracket-match.bye{border-style:dashed;opacity:.88}.bracket-bye-note{padding:5px 0 3px;border-top:1px solid rgba(165,120,101,.18);text-align:center;color:var(--primary-color,#a57865);font-size:.68rem;font-weight:700}.bracket-bye-note i{margin-right:4px}
.competition-projector-podium{width:min(1100px,calc(100% - 300px));box-sizing:border-box;margin:0 auto;padding:18px}.competition-projector-podium>div{max-width:100%;margin:0 auto}.competition-podium-place{max-width:100%;box-sizing:border-box}.competition-podium-place strong{min-width:0;overflow-wrap:anywhere}
@media(max-width:700px){.competition-projector-podium{width:calc(100% - 20px);margin-bottom:105px;padding:14px 10px}}
.competition-qr-body{text-align:center;padding:20px}.competition-qr-body img{display:block;width:190px;height:190px;margin:0 auto 15px;background:#fff}.competition-qr-body code{display:block;word-break:break-all;font-size:.72rem;color:var(--text-secondary,#777);margin-bottom:15px}
.spectator-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.spectator-card{padding:13px;border:1px solid var(--border-color,#ddd);border-radius:10px}.spectator-card .spectator-name{font-weight:800}.spectator-card .spectator-time{font-size:1.15rem;margin:7px 0}.spectator-card .spectator-wins{font-size:.74rem;color:var(--text-secondary,#777)}.spectator-card.is-live{border-color:#37a866;box-shadow:0 0 0 1px rgba(55,168,102,.14)}.spectator-card.is-done{border-color:var(--primary-color,#a57865)}
.spectator-grid.hidden,.spectator-match-switcher.hidden{display:none!important}.spectator-match-switcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:15px}.spectator-match-card{min-width:0;text-align:left;padding:12px;border:1px solid var(--border-color,#ddd);border-radius:10px;background:transparent;color:var(--text-color,#333);cursor:pointer}.spectator-match-card:hover,.spectator-match-card.is-selected{border-color:#37a866;box-shadow:0 0 0 1px rgba(55,168,102,.14)}.spectator-match-card.is-selected{background:rgba(55,168,102,.09)}.spectator-match-card span,.spectator-match-card small{display:block}.spectator-match-number{font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary,#777);font-weight:800}.spectator-match-card strong{display:block;margin:6px 0;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spectator-match-card strong em{font-style:normal;color:var(--text-secondary,#777);font-size:.7rem}.spectator-match-card small{font-size:.68rem;color:var(--text-secondary,#777);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spectator-camera-result{position:absolute;right:9px;bottom:9px;z-index:1;max-width:calc(100% - 18px);padding:5px 8px;border-radius:5px;background:rgba(0,0,0,.72);color:#fff;font-size:.72rem;font-weight:800;text-align:right;white-space:nowrap}.spectator-camera-result:empty{display:none}
@media(max-width:560px){.competition-form-grid{grid-template-columns:1fr}.competition-join-box{align-items:stretch;flex-direction:column}.competition-dashboard-head{flex-direction:column}.competition-dashboard-actions{width:100%}.competition-dashboard-actions .competition-btn{flex:1}.competition-match-versus{font-size:.9rem}.competition-view{padding:16px}.competition-mode-tabs{gap:5px}.competition-mode-tab{font-size:.76rem;padding:10px 6px}}
.competition-camera-box{position:relative;padding:0;overflow:hidden;aspect-ratio:16/10;background:#111}.competition-camera-stage{position:absolute;inset:0;display:block;min-height:0;height:100%;overflow:hidden;background:#111;cursor:pointer}.competition-camera-stage:focus-visible{outline:2px solid var(--primary-color,#a57865);outline-offset:-2px}.competition-camera-stage video{position:absolute;inset:0;width:100%;height:100%;min-height:0;object-fit:contain;background:#111}.competition-camera-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;min-height:0;color:var(--primary-color,#a57865);font-size:1.45rem}.competition-camera-controls{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-start;justify-content:flex-end;flex-direction:column;gap:7px;padding:14px;background:rgba(0,0,0,.58);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}.competition-camera-controls .competition-btn,.competition-camera-error{pointer-events:auto}.competition-camera-box:hover .competition-camera-controls,.competition-camera-box.controls-visible .competition-camera-controls,.competition-camera-box:focus-within .competition-camera-controls,.competition-camera-box:not(.has-stream) .competition-camera-controls{opacity:1;visibility:visible}.competition-camera-controls .competition-btn{padding:8px 10px;font-size:.72rem}.competition-camera-error{min-height:16px;color:#ffb5aa;font-size:.7rem}.spectator-cameras{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:15px}.spectator-cameras.hidden{display:none!important}.spectator-camera-card{position:relative;aspect-ratio:16/10;overflow:hidden;border:1px solid #37a866;border-radius:10px;background:#111;box-shadow:0 0 0 1px rgba(55,168,102,.14)}.spectator-camera-card video{display:block;width:100%;height:100%;object-fit:contain;background:#111}.spectator-camera-name,.spectator-camera-live{position:absolute;top:9px;padding:4px 7px;border-radius:5px;background:rgba(0,0,0,.62);color:#fff;font-size:.72rem;font-weight:700}.spectator-camera-name{left:9px}.spectator-camera-live{right:9px;color:#8ff0b5;font-size:.64rem;letter-spacing:.08em}
body.no-element-boxes .competition-camera-box,body.no-element-boxes .competition-camera-stage{border:none!important;background:transparent!important;box-shadow:none!important}
body.no-element-boxes .competition-camera-stage video{background:transparent!important}
.competition-battle-sidebar .battle-sidebar-header>div:first-child{min-width:0;flex:1 1 auto}.competition-sidebar-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;max-width:100%}.competition-sidebar-title-row .battle-sidebar-title{display:block;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-sidebar-event{flex:0 0 auto;white-space:nowrap;color:var(--text-color,#eee);font-size:.92rem;font-weight:700}
.competition-camera-box{width:100%;max-width:100%;min-width:0;min-height:0;align-self:stretch}.competition-camera-controls{top:auto;min-height:54px;height:auto;flex-direction:row;align-items:center;justify-content:flex-start;flex-wrap:nowrap;padding:8px 10px;transform:translateY(100%);opacity:0;visibility:hidden;background:rgba(0,0,0,.68);transition:transform .24s ease,opacity .2s ease,visibility .2s ease}.competition-camera-box:hover .competition-camera-controls,.competition-camera-box.controls-visible .competition-camera-controls,.competition-camera-box:focus-within .competition-camera-controls,.competition-camera-box:not(.has-stream) .competition-camera-controls{transform:translateY(0);opacity:1;visibility:visible}.competition-camera-controls #competition-camera-close{margin-left:auto}.competition-camera-error{position:absolute;left:10px;right:10px;bottom:calc(100% + 4px);min-height:0;padding:4px 7px;border-radius:5px;background:rgba(0,0,0,.72)}@media(max-width:1024px){.main-content .competition-camera-box{width:100%;max-width:100%;aspect-ratio:16/10;height:auto;max-height:34vh}}@media(max-width:768px){.main-content .competition-camera-box{width:100%;min-width:0;max-height:32vh;aspect-ratio:16/10}.competition-camera-controls{min-height:50px;padding:7px 8px;gap:5px}.competition-camera-controls .competition-btn{padding:7px 8px;font-size:.68rem}}@media(max-width:480px){.main-content .competition-camera-box{max-height:30vh}.competition-camera-controls{flex-wrap:wrap}.competition-camera-controls #competition-camera-close{margin-left:auto}}

/* The base mobile-landscape layout flattens .main-content into the container
   grid. Keep the tournament camera in the former stats column and let its
   fixed ratio follow the short viewport instead of stretching across rows. */
@media screen and (orientation:landscape) and (max-height:450px){
  body.competition-session-mode .competition-camera-box{
    grid-area:unset!important;
    grid-column:1!important;
    grid-row:3 / 6!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    max-height:calc(100dvh - 16px)!important;
    align-self:center!important;
    justify-self:stretch!important;
    aspect-ratio:16 / 10!important;
    overflow:hidden;
  }

  body.competition-session-mode .competition-camera-stage{
    width:100%;
    min-width:0;
    min-height:0;
  }

  body.competition-session-mode .competition-camera-controls{
    min-width:0;
    max-width:100%;
    max-height:100%;
    flex-wrap:wrap;
    align-content:flex-end;
    overflow:auto;
    padding:6px;
  }

  body.competition-session-mode .competition-camera-controls .competition-btn{
    min-width:0;
    max-width:100%;
    white-space:normal;
  }
}

/* Spectator mode is a viewing surface, so use the full viewport and give the
   two players in the live match equal camera space on larger screens. */
.competition-modal.competition-spectator-fullscreen{
  padding:0;
  align-items:stretch;
  justify-content:stretch;
}
.competition-modal.competition-spectator-fullscreen .competition-modal-content{
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  border-radius:0;
  display:flex;
  flex-direction:column;
}
.competition-modal.competition-spectator-fullscreen .competition-view{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
}
.competition-modal.competition-spectator-fullscreen .competition-spectator-live:not(.hidden){
  min-height:100%;
  display:flex;
  flex-direction:column;
}
.competition-modal.competition-spectator-fullscreen .spectator-cameras{
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  box-sizing:border-box;
}
.competition-modal.competition-spectator-fullscreen .spectator-camera-card{
  min-width:0;
  width:100%;
}
.competition-modal.competition-spectator-fullscreen .spectator-match-switcher{
  margin-top:auto;
  padding-top:15px;
}

@media(max-width:768px){
  body.competition-tournament-mode.competition-sidebar-open .container{margin-left:0!important;width:100%!important;transform:none!important;}
  .competition-modal.competition-spectator-fullscreen .spectator-cameras{
    grid-template-columns:1fr;
  }
}

body.competition-host-page-mode,body.competition-projector-page{overflow:hidden;background:#121110}
body.competition-host-page-mode> :not(#competition-host-page),body.competition-projector-page> :not(#competition-projector-screen){display:none!important}
.competition-host-page,.competition-projector-screen{position:fixed;inset:0;z-index:20000;overflow:auto;padding:28px;box-sizing:border-box;background:var(--container-bg,#171514);color:var(--text-color,#eee)}
.competition-host-page-header,.competition-projector-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;max-width:1200px;margin:0 auto 24px}.competition-host-page-header h1,.competition-projector-header h1{margin:5px 0;font-size:clamp(1.4rem,3vw,2.2rem)}.competition-host-page-header p,.competition-projector-header p{margin:0;color:var(--text-secondary,#aaa)}.competition-host-page-links,.competition-host-page-toolbar,.competition-host-add,.competition-host-player-list,.competition-host-pagination,.competition-host-actions{max-width:1200px;margin-left:auto;margin-right:auto}.competition-host-page-links{display:flex;align-items:center;gap:10px;padding:13px;border:1px solid var(--border-color,#332f2c);border-radius:10px;margin-bottom:18px}.competition-host-page-links span{font-weight:800}.competition-host-page-links code{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary,#aaa)}.competition-host-page-toolbar{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px}.competition-host-page-toolbar h2{margin:0}.competition-host-page-toolbar h2 span{font-size:.8rem;color:var(--text-secondary,#aaa)}.competition-host-page-toolbar p{margin:5px 0 0;color:var(--text-secondary,#aaa);font-size:.8rem}.competition-host-page-toolbar input,.competition-host-add input,.competition-host-player-row input{box-sizing:border-box;padding:10px 12px;border:1px solid var(--border-color,#3b3633);border-radius:8px;background:#201d1b;color:var(--text-color,#eee);font:inherit}.competition-host-page-toolbar input{width:min(100%,280px)}.competition-host-add{display:flex;gap:8px;margin-bottom:14px}.competition-host-add input{flex:1}.competition-host-player-list{display:flex;flex-direction:column;gap:8px}.competition-host-player-row{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--border-color,#332f2c);border-radius:9px;background:rgba(255,255,255,.025)}.competition-host-player-number{width:28px;color:var(--text-secondary,#aaa);text-align:center}.competition-host-player-row input{flex:1;min-width:0}.competition-host-player-result{width:70px;text-align:right;color:var(--text-secondary,#aaa)}.competition-host-player-row .danger{color:#e87569}.competition-host-pagination{display:flex;align-items:center;justify-content:center;gap:15px;margin-top:16px}.competition-host-pagination span{font-size:.8rem;color:var(--text-secondary,#aaa)}.competition-host-page-error{max-width:520px;margin:15vh auto;text-align:center}.competition-host-page-error h1{margin-bottom:8px}.competition-host-page-error p{color:var(--text-secondary,#aaa)}.competition-host-page .competition-host-actions{margin-top:24px}.competition-projector-screen{padding:24px;display:flex;flex-direction:column}.competition-projector-header{width:100%;margin-bottom:15px}.competition-projector-code{font-size:clamp(1.2rem,3vw,2rem);letter-spacing:.12em;color:var(--primary-color,#a57865)}.competition-projector-body{flex:1;min-height:0;display:flex;flex-direction:column;gap:16px}.competition-projector-body>.competition-bracket-board{width:100%;height:100%;max-height:calc(100vh - 145px);min-height:0;overflow:auto;box-sizing:border-box}.competition-projector-podium{padding:18px;border:1px solid rgba(165,120,101,.45);border-radius:14px;text-align:center;background:linear-gradient(135deg,rgba(165,120,101,.14),rgba(255,255,255,.03));animation:competitionPodiumIn .55s ease both}.competition-projector-podium h2{margin:0 0 12px}.competition-projector-podium>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.competition-podium-place{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:9px;background:rgba(0,0,0,.2);animation:competitionPodiumIn .45s ease both}.competition-podium-place b{color:var(--primary-color,#a57865)}.podium-place-1{order:1;transform:scale(1.08);box-shadow:0 0 18px rgba(245,196,85,.25)}.podium-place-2{order:2}.podium-place-3{order:3}.competition-projector-error{margin:auto;text-align:center;font-size:1.2rem}@keyframes competitionPodiumIn{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:700px){.competition-host-page,.competition-projector-screen{padding:16px}.competition-host-page-header,.competition-projector-header,.competition-host-page-toolbar{flex-direction:column;align-items:stretch}.competition-host-page-header>.competition-btn{align-self:flex-end}.competition-host-page-links{flex-wrap:wrap}.competition-host-page-links code{flex-basis:100%;order:3}.competition-host-player-row{flex-wrap:wrap}.competition-host-player-number{width:20px}.competition-host-player-result{margin-left:auto}.competition-host-player-row .competition-btn{font-size:.68rem;padding:7px}.competition-projector-screen .competition-bracket-board{padding:12px}.competition-projector-header{gap:8px}.competition-projector-code{align-self:flex-end}}
.competition-projector-header{justify-content:flex-start}.competition-projector-header h1{margin:0;font-size:clamp(1.7rem,4vw,3rem)}.competition-projector-body>.competition-bracket-board{max-height:calc(100vh - 110px);padding-bottom:150px}.competition-projector-qr{position:fixed;right:24px;bottom:22px;z-index:4;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px;border:1px solid rgba(165,120,101,.55);border-radius:12px;background:rgba(18,17,16,.94);color:var(--text-color,#eee);text-decoration:none;box-shadow:0 8px 28px rgba(0,0,0,.35)}.competition-projector-qr img{display:block;width:clamp(92px,11vw,150px);height:auto;aspect-ratio:1;background:#fff}.competition-projector-qr span{font-size:.72rem;font-weight:700;white-space:nowrap}
@media(max-width:700px){.competition-projector-screen .competition-bracket-board{padding:12px 12px 115px}.competition-projector-qr{right:12px;bottom:12px;padding:7px}.competition-projector-qr img{width:84px}.competition-projector-qr span{font-size:.62rem}}
.competition-host-page-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.competition-host-page-tab{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:112px;padding:9px 14px;border:1px solid rgba(165,120,101,.4);border-radius:9px;background:rgba(165,120,101,.1);color:var(--text-color,#eee);font-size:.82rem;font-weight:750;text-decoration:none;transition:background .18s ease,border-color .18s ease,transform .18s ease}.competition-host-page-tab:hover{border-color:rgba(165,120,101,.8);background:rgba(165,120,101,.24);transform:translateY(-1px)}.competition-host-page-tab i{color:var(--primary-color,#a57865)}
@media(max-width:700px){.competition-host-page-tabs{gap:6px;margin-top:13px}.competition-host-page-tab{flex:1 1 0;min-width:0;padding:8px 7px;font-size:.72rem}.competition-host-page-tab i{font-size:.75rem}}
body.competition-scramble-page-mode{overflow:auto;background:#121110}body.competition-scramble-page-mode>:not(#competition-scramble-page){display:none!important}.competition-scramble-page{min-height:100vh;box-sizing:border-box;padding:clamp(18px,4vw,54px);background:#121110;color:var(--text-color,#eee)}.competition-scramble-page-header{width:min(100%,1440px);height:auto!important;min-height:0!important;box-sizing:border-box;margin:0 auto 20px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:0 0 20px!important;border-bottom:1px solid var(--border-color,#332f2c)}.competition-scramble-page-header>div{min-width:0}.competition-scramble-page-header h1{margin:5px 0 8px;font-size:clamp(1.8rem,4vw,3rem);line-height:1.1}.competition-scramble-page-header p{margin:0;color:var(--text-secondary,#aaa)}.competition-scramble-room{flex:none;padding:9px 13px;border:1px solid rgba(165,120,101,.38);border-radius:9px;background:rgba(165,120,101,.1);font-weight:800;color:var(--primary-color,#c08f7a)}.competition-scramble-notice,.competition-scramble-round,.competition-scramble-empty{width:min(100%,1440px);margin-left:auto;margin-right:auto;box-sizing:border-box}.competition-scramble-notice{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;border:1px solid rgba(78,156,218,.28);border-radius:10px;background:rgba(48,137,209,.09);color:var(--text-secondary,#bbb);font-size:.82rem}.competition-scramble-notice i{color:#4da3e6}.competition-scramble-round{margin-bottom:15px;border:1px solid var(--border-color,#332f2c);border-radius:14px;background:rgba(255,255,255,.018);overflow:hidden}.competition-scramble-round>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;cursor:pointer;list-style:none;font-weight:800}.competition-scramble-round>summary::-webkit-details-marker{display:none}.competition-scramble-round>summary small{font-size:.72rem;font-weight:700;color:var(--primary-color,#b98a76)}.competition-scramble-round[open]>summary{border-bottom:1px solid var(--border-color,#332f2c)}.competition-scramble-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:14px;padding:16px}.competition-scramble-card{min-width:0;padding:15px;border:1px solid rgba(165,120,101,.25);border-radius:12px;background:linear-gradient(135deg,rgba(38,34,31,.94),rgba(24,21,20,.97));box-shadow:0 12px 28px rgba(0,0,0,.16)}.competition-scramble-card.is-backup{border-style:dashed;background:rgba(255,255,255,.018)}.competition-scramble-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px;font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--primary-color,#b98a76)}.competition-scramble-card-head em{padding:3px 7px;border-radius:999px;background:rgba(165,120,101,.18);font-size:.62rem;font-style:normal}.competition-scramble-text{min-height:3.2em;font-family:var(--font-primary,sans-serif);font-size:clamp(.84rem,1.25vw,1.02rem);font-weight:650;line-height:1.55;overflow-wrap:anywhere}.competition-scramble-visual{height:220px;margin-top:13px;display:grid;place-items:center;overflow:hidden;border-top:1px solid rgba(165,120,101,.18);padding-top:13px;color:var(--text-secondary,#888);font-size:.75rem}.competition-scramble-visual svg{display:block;width:100%!important;height:100%!important;max-width:320px;max-height:205px}.competition-scramble-visual-unavailable{color:var(--text-secondary,#777)}.competition-scramble-pending{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:10px;min-height:160px;color:var(--text-secondary,#aaa)}.competition-scramble-empty{margin-top:12vh;padding:42px 24px;border:1px dashed rgba(165,120,101,.38);border-radius:14px;text-align:center;color:var(--text-secondary,#aaa)}.competition-scramble-empty i{font-size:2.2rem;color:var(--primary-color,#b98a76)}.competition-scramble-empty h2{margin:14px 0 7px;color:var(--text-color,#eee)}.competition-scramble-empty p{margin:0}
@media(max-width:700px){.competition-scramble-page{padding:16px 12px}.competition-scramble-page-header{gap:10px}.competition-scramble-page-header h1{font-size:1.55rem}.competition-scramble-room{padding:7px 9px;font-size:.72rem}.competition-scramble-grid{grid-template-columns:1fr;padding:11px;gap:11px}.competition-scramble-visual{height:190px}.competition-scramble-text{font-size:.84rem}.competition-scramble-notice{align-items:flex-start}}
.competition-host-page{display:flex;flex-direction:column}.competition-host-page>header.competition-host-page-header{min-height:0;padding:0}.competition-host-page-header{order:0}.competition-host-page-links{order:1;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.competition-host-actions{order:2;width:min(100%,1200px)}.competition-host-page-toolbar{order:3;width:min(100%,1200px)}.competition-host-add{order:4;width:min(100%,1200px)}.competition-host-player-list{order:5;width:min(100%,1200px)}.competition-host-pagination{order:6;width:min(100%,1200px)}.competition-host-results-heading{margin-bottom:10px}.competition-host-results-heading h2{margin:0;font-size:1.15rem}.competition-host-results-heading p{margin:5px 0 0;color:var(--text-secondary,#aaa);font-size:.8rem}.competition-host-actions .custom-result-entry{align-items:flex-start;flex-direction:column}.competition-host-actions .custom-result-entry>strong{font-size:.9rem}.competition-host-actions .custom-result-inputs{width:100%;justify-content:flex-start}.competition-host-actions .custom-result-input{flex:1;min-width:92px}
@media(max-width:700px){.competition-host-page-links{grid-template-columns:1fr auto;row-gap:8px}.competition-host-page-links code{grid-column:1/-1;grid-row:2}.competition-host-page-links button{grid-column:2;grid-row:1}.competition-host-actions .custom-result-inputs{display:grid;grid-template-columns:1fr 1fr}.competition-host-actions .custom-result-save{grid-column:1/-1}}
.competition-host-recovery{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 15px;padding:12px;border:1px solid rgba(165,120,101,.35);border-radius:9px;background:rgba(165,120,101,.08)}.competition-host-recovery span{font-size:.82rem}.competition-host-recovery strong{letter-spacing:.08em}.competition-player-qr-content{width:min(92vw,420px);background:var(--container-bg,#fff);color:var(--text-color,#333);border-radius:16px;overflow:hidden}.competition-player-qr-body{padding:18px;text-align:center}.competition-player-qr-body img{display:block;width:220px;height:220px;margin:0 auto 14px;background:#fff}.competition-player-qr-body code{display:block;word-break:break-all;font-size:.7rem;color:var(--text-secondary,#777)}.competition-player-qr-body p{font-size:.8rem;color:var(--text-secondary,#777)}.competition-host-score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%}.competition-host-score-grid h3{margin:0 0 8px;font-size:.82rem}.competition-host-score-row{display:grid;grid-template-columns:minmax(90px,1fr) auto;align-items:end;gap:7px;margin-bottom:7px}.competition-host-score-row label,.competition-judge-score-row label{display:grid;gap:4px;font-size:.68rem;color:var(--text-secondary,#aaa)}.competition-host-score-row .custom-result-input{width:100%}.competition-penalty-toggles,.competition-judge-penalties{display:flex;gap:3px}.competition-penalty-toggles .competition-btn,.competition-judge-penalties .competition-btn{padding:7px 8px;font-size:.65rem}.competition-penalty-toggles .competition-btn.active,.competition-judge-penalties .competition-btn.active{border-color:var(--primary-color,#a57865);background:rgba(165,120,101,.25);color:var(--text-color,#eee)}.competition-host-export-actions{display:flex;gap:8px;flex-wrap:wrap}.competition-host-judges{order:7;width:min(100%,1200px);margin:24px auto 0;padding-top:18px;border-top:1px solid var(--border-color,#332f2c)}.competition-host-judges h2{margin:0 0 10px}.competition-host-judges h2 span{font-size:.8rem;color:var(--text-secondary,#aaa)}.competition-host-judge-row{display:grid;grid-template-columns:minmax(130px,1fr) minmax(160px,1fr) auto;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid rgba(165,120,101,.15)}.competition-host-judge-row input{box-sizing:border-box;width:100%;padding:8px 10px;border:1px solid var(--border-color,#3b3633);border-radius:7px;background:#201d1b;color:var(--text-color,#eee);font:inherit}.competition-host-disposition{font-size:.7rem;color:#e87569;font-weight:700}.competition-judge-page-mode{background:#121110}.competition-judge-page-mode> :not(#competition-judge-page){display:none!important}.competition-judge-page{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;overflow:auto;padding:20px;box-sizing:border-box;background:#121110;color:var(--text-color,#eee)}.competition-judge-card{width:min(100%,560px);padding:clamp(20px,5vw,40px);box-sizing:border-box;border:1px solid var(--border-color,#3b3633);border-radius:16px;background:var(--container-bg,#171514);box-shadow:0 16px 55px rgba(0,0,0,.3)}.competition-judge-card h1{margin:6px 0 8px;font-size:clamp(1.5rem,4vw,2.2rem)}.competition-judge-card>p{color:var(--text-secondary,#aaa);line-height:1.5}.competition-judge-card>input{box-sizing:border-box;width:100%;margin:12px 0;padding:11px 12px;border:1px solid var(--border-color,#3b3633);border-radius:8px;background:#201d1b;color:var(--text-color,#eee);font:inherit}.competition-judge-score-list{display:grid;gap:10px;margin:20px 0}.competition-judge-score-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;padding:10px;border:1px solid var(--border-color,#332f2c);border-radius:9px}.competition-judge-score-row input{box-sizing:border-box;width:100%;padding:9px;border:1px solid var(--border-color,#3b3633);border-radius:7px;background:#201d1b;color:var(--text-color,#eee);font:inherit}.competition-judge-penalties{align-self:end}.competition-judge-card .competition-form-info{margin-top:12px}.competition-host-page .competition-error{min-height:0}
@media(max-width:700px){.competition-host-recovery{align-items:stretch;flex-direction:column}.competition-host-score-grid{grid-template-columns:1fr}.competition-host-score-row{grid-template-columns:1fr}.competition-host-judge-row{grid-template-columns:1fr auto}.competition-host-judge-row input{grid-column:1/-1;grid-row:1}.competition-host-judge-row span{grid-column:1;grid-row:2}.competition-host-judge-row button{grid-column:2;grid-row:2}.competition-judge-page{padding:12px}.competition-judge-score-row{grid-template-columns:1fr}.competition-judge-penalties{justify-content:stretch}.competition-judge-penalties .competition-btn{flex:1}}
.competition-host-page-header>div{min-width:0}.competition-host-page-header p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-host-actions{flex-direction:column;align-items:stretch;box-sizing:border-box}.competition-host-results-heading{width:100%;flex:0 0 auto}.competition-host-actions .custom-result-entry{width:100%;box-sizing:border-box}
.competition-host-page-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;width:100%;height:auto!important;min-height:0!important;padding:0!important;margin:0 auto 24px!important}.competition-host-page-header>div{min-width:0}.competition-host-page-header h1{line-height:1.12}.competition-host-page-header p{margin-top:10px!important;line-height:1.4;white-space:normal;overflow:visible}
.competition-host-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.competition-host-page{align-items:stretch!important}.competition-host-page-header,.competition-host-page-links,.competition-host-page-toolbar,.competition-host-add,.competition-host-player-list,.competition-host-pagination,.competition-host-actions,.competition-host-judges{width:100%;max-width:1200px;box-sizing:border-box;flex:0 0 auto}.competition-host-page-header{min-height:0!important;padding:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px;height:auto!important}.competition-host-page-header>div{min-width:0}.competition-host-page-header h1{line-height:1.12;overflow:hidden;text-overflow:ellipsis}.competition-host-page-header p{margin-top:10px!important;line-height:1.4;white-space:normal;overflow:visible}.competition-host-page-links{min-height:50px}.competition-host-page-links span{white-space:nowrap}.competition-host-page-links code{min-width:0}
@media(max-width:700px){.competition-host-page-header{grid-template-columns:minmax(0,1fr) auto;gap:10px}.competition-host-page-header>.competition-btn{align-self:start}.competition-host-page-header h1{font-size:clamp(1.35rem,7vw,2rem)}}
.competition-host-player-row{flex-wrap:wrap}.competition-host-inline-scores{flex:1 0 100%;min-width:0;margin-top:8px;padding:10px 0 0;border-top:1px solid rgba(165,120,101,.2)}.competition-host-inline-score-heading{display:flex;justify-content:space-between;gap:10px;margin-bottom:7px;font-size:.72rem}.competition-host-inline-score-heading span{color:var(--text-secondary,#aaa)}.competition-host-inline-score-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px}.competition-host-inline-score{display:grid;grid-template-columns:minmax(80px,1fr) auto;align-items:end;gap:5px}.competition-host-inline-score label{display:grid;gap:4px;font-size:.65rem;color:var(--text-secondary,#aaa)}.competition-host-inline-score .custom-result-input{width:100%;min-width:0;padding:8px}.competition-host-inline-score .competition-penalty-toggles{flex-wrap:nowrap}.competition-host-inline-scores>[data-host-score-save]{margin-top:8px}.competition-player-qr-content{position:relative;z-index:1}.competition-player-qr-body a{display:block;cursor:zoom-in}.competition-player-qr-body img{object-fit:contain}
@media(max-width:700px){.competition-host-inline-score-list{grid-template-columns:1fr}.competition-host-inline-score{grid-template-columns:minmax(0,1fr) auto}.competition-host-inline-scores{padding-top:8px}}
.competition-judge-assignment-content{width:min(92vw,560px)}.competition-judge-assignment-body{display:grid;gap:8px;max-height:62vh;overflow:auto;padding:15px}.competition-judge-assignment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--border-color,#332f2c);border-radius:9px;background:rgba(255,255,255,.025)}.competition-judge-assignment-row.is-finished{border-color:rgba(55,168,102,.7);background:rgba(55,168,102,.08)}.competition-judge-assignment-row>div{min-width:0;display:grid;gap:4px}.competition-judge-assignment-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.competition-judge-assignment-row span{font-size:.72rem;color:var(--text-secondary,#aaa)}.competition-judge-assignment-row.is-finished span{color:#75d79a}
.competition-host-inline-scores{display:none}.competition-host-inline-scores.is-open{display:block}
.competition-projector-screen{overflow:hidden;align-items:stretch}.competition-projector-header{display:flex!important;justify-content:center!important;align-items:center!important;width:100%!important;max-width:none!important;margin:0 0 18px!important;text-align:center}.competition-projector-header h1{width:100%;margin:0!important;text-align:center}.competition-projector-body{width:100%;align-self:stretch;min-width:0}.competition-projector-body>.competition-bracket-board{width:100%;max-width:none;margin:0;flex:1 1 auto;min-width:0;overflow:auto}
.competition-projector-body>.competition-bracket-board{isolation:isolate}.competition-projector-body>.competition-bracket-board .bracket-connections{z-index:0!important}.competition-projector-body>.competition-bracket-board .bracket-round,.competition-projector-body>.competition-bracket-board .bracket-match{position:relative;z-index:1}
body.competition-timer-page-mode{overflow:hidden;background:#121110}body.competition-timer-page-mode>:not(#competition-timer-page){display:none!important}.competition-timer-page{position:fixed;inset:0;z-index:20000;overflow:auto;box-sizing:border-box;padding:28px clamp(18px,4vw,64px);background:#121110;color:var(--text-color,#eee)}.competition-timer-page-header,.competition-live-timer-toolbar{width:min(100%,1200px);margin:0 auto;display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.competition-timer-page-header{padding-bottom:22px;border-bottom:1px solid var(--border-color,#332f2c)}.competition-timer-page-header>div:first-child{min-width:0}.competition-timer-page-header h1{margin:5px 0 8px;font-size:clamp(1.7rem,4vw,2.7rem);line-height:1.1}.competition-timer-page-header p,.competition-live-timer-toolbar p{margin:0;color:var(--text-secondary,#aaa);line-height:1.5;max-width:720px}.competition-timer-page-header-actions{display:flex;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}.competition-timer-page-header-actions a{text-decoration:none}.competition-live-timer-toolbar{margin-top:24px;align-items:center}.competition-live-timer-toolbar h2{margin:0;font-size:1.25rem}.competition-live-timer-toolbar h2 span{font-size:.76rem;color:var(--text-secondary,#aaa)}.competition-live-timer-grid{width:min(100%,1200px);margin:15px auto 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}.competition-live-timer-card{display:flex;min-height:244px;flex-direction:column;gap:15px;padding:16px;border:1px solid var(--border-color,#332f2c);border-radius:13px;background:var(--container-bg,#171514);box-shadow:0 8px 24px rgba(0,0,0,.12)}.competition-live-timer-card.is-connected{border-color:rgba(55,168,102,.72);background:linear-gradient(135deg,rgba(55,168,102,.1),rgba(255,255,255,.02))}.competition-live-timer-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px}.competition-live-timer-card label{display:grid;gap:5px;font-size:.72rem;color:var(--text-secondary,#aaa)}.competition-live-timer-card input,.competition-live-timer-card select{box-sizing:border-box;width:100%;min-width:0;padding:9px 10px;border:1px solid var(--border-color,#3b3633);border-radius:7px;background:#201d1b;color:var(--text-color,#eee);font:inherit}.competition-live-timer-status{display:flex;align-items:center;gap:7px;min-height:20px;font-size:.78rem}.competition-live-timer-status>span:last-child{margin-left:auto;max-width:47%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary,#aaa);font-size:.7rem}.competition-live-timer-dot{width:8px;height:8px;border-radius:50%;background:#777}.is-connected .competition-live-timer-dot{background:#48c978;box-shadow:0 0 10px rgba(72,201,120,.6)}.competition-live-timer-assignment{margin-top:1px}.competition-live-timer-readout{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:auto;padding-top:13px;border-top:1px solid rgba(165,120,101,.18)}.competition-live-timer-readout span{font-size:.72rem;color:var(--text-secondary,#aaa)}.competition-live-timer-readout strong{font-family:monospace;font-size:1.25rem}.competition-live-timer-actions{display:flex;gap:8px;flex-wrap:wrap}.competition-live-timer-actions .competition-btn:first-child{flex:1}.competition-live-timer-empty{grid-column:1/-1;padding:46px 20px;text-align:center;border:1px dashed rgba(165,120,101,.4);border-radius:13px;color:var(--text-secondary,#aaa)}.competition-live-timer-empty i{font-size:2rem;color:var(--primary-color,#a57865)}.competition-live-timer-empty h2{margin:10px 0 5px;color:var(--text-color,#eee);font-size:1.15rem}.competition-live-timer-empty p{margin:0}.competition-live-timer-note{width:min(100%,1200px);margin:18px auto 0;color:var(--text-secondary,#aaa);font-size:.76rem;line-height:1.5}
@media(max-width:700px){.competition-timer-page{padding:16px}.competition-timer-page-header,.competition-live-timer-toolbar{flex-direction:column;align-items:stretch;gap:13px}.competition-timer-page-header-actions{justify-content:stretch}.competition-timer-page-header-actions .competition-btn{flex:1;text-align:center}.competition-live-timer-toolbar>.competition-btn{align-self:flex-start}.competition-live-timer-grid{grid-template-columns:1fr}.competition-live-timer-card{min-height:0}.competition-live-timer-card-head{grid-template-columns:minmax(0,1fr) auto}.competition-live-timer-actions .competition-btn{min-height:40px}}
body.competition-timer-page-mode{overflow:hidden}.competition-timer-page{display:grid;place-items:center;padding:clamp(12px,3vw,42px);overflow:hidden}.competition-audience-timer-grid{width:min(100%,1500px);height:min(100%,900px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(390px,100%),1fr));gap:clamp(12px,2vw,28px);align-content:center}.competition-audience-timer-cell{min-width:0;min-height:clamp(180px,28vh,350px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:clamp(10px,2vh,22px);padding:clamp(18px,3vw,40px);box-sizing:border-box;border:1px solid rgba(165,120,101,.4);border-radius:18px;background:linear-gradient(135deg,rgba(38,34,31,.95),rgba(20,18,17,.97));box-shadow:0 18px 44px rgba(0,0,0,.24);text-align:center}.competition-audience-timer-cell.is-running{border-color:rgba(72,201,120,.78);box-shadow:0 0 28px rgba(72,201,120,.13),0 18px 44px rgba(0,0,0,.24)}.competition-audience-timer-cell>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1.35rem,3.4vw,3rem);line-height:1.1}.competition-audience-timer-cell>span{font-family:monospace;font-variant-numeric:tabular-nums;font-size:clamp(3.8rem,10vw,10rem);letter-spacing:-.08em;line-height:.9;color:#e3c1ab}.competition-audience-timer-cell.is-running>span{color:#83e5a7}.competition-host-live-timers{order:2;width:100%;max-width:1200px;box-sizing:border-box;margin:18px auto 4px;padding:18px;border:1px solid rgba(165,120,101,.3);border-radius:13px;background:rgba(255,255,255,.018)}.competition-host-live-timers+.competition-host-actions{order:3}.competition-host-live-timers .competition-live-timer-toolbar{width:100%;margin:0 0 15px}.competition-host-live-timers .competition-live-timer-grid{width:100%;margin:0}.competition-host-live-timers .competition-live-timer-empty{padding:28px 16px}
@media(max-width:700px){.competition-timer-page{padding:12px}.competition-audience-timer-grid{height:100%;grid-template-columns:1fr;align-content:stretch;overflow:auto}.competition-audience-timer-cell{min-height:calc((100vh - 36px)/2)}.competition-audience-timer-cell>span{font-size:clamp(3.4rem,18vw,6rem)}.competition-host-live-timers{padding:13px}.competition-host-live-timers .competition-live-timer-toolbar{flex-direction:column;align-items:stretch}.competition-host-live-timers .competition-live-timer-toolbar>.competition-btn{align-self:flex-start}}
.competition-audience-timer-grid.is-2x2{grid-template-columns:repeat(2,minmax(0,1fr));}
@media(max-width:700px){.competition-audience-timer-grid.is-2x2{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.competition-audience-timer-grid.is-2x2 .competition-audience-timer-cell{min-height:calc((100vh - 34px)/2);padding:12px}.competition-audience-timer-grid.is-2x2 .competition-audience-timer-cell>strong{font-size:clamp(.95rem,4.5vw,1.6rem)}.competition-audience-timer-grid.is-2x2 .competition-audience-timer-cell>span{font-size:clamp(2.5rem,10vw,5.5rem)}}
.competition-audience-timer-cell>strong{font-family:var(--font-primary,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);font-weight:700;line-height:1.35;padding:.08em .05em .18em;overflow:hidden}
.competition-combined-screen{padding:18px 24px}.competition-combined-body{height:100%;min-height:0;gap:12px}.competition-combined-body>.competition-bracket-board{flex:1 1 auto;height:auto;max-height:none;min-height:0;padding:8px 12px 8px}.competition-combined-timers{flex:0 0 auto;width:min(100%,1500px);margin:0 auto}.competition-combined-timers .competition-audience-timer-grid{width:100%;height:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}.competition-combined-timers .competition-audience-timer-cell{min-height:clamp(120px,17vh,220px);padding:14px 16px;border-radius:12px}.competition-combined-timers .competition-audience-timer-cell>strong{font-size:clamp(.9rem,1.7vw,1.55rem)}.competition-combined-timers .competition-audience-timer-cell>span{font-size:clamp(2.8rem,6vw,6rem)}
.competition-combined-body.is-finished{height:auto;min-height:100%}.competition-combined-body.is-finished>.competition-bracket-board{flex:0 0 min(58vh,620px);min-height:360px}.competition-combined-footer{display:flex;align-items:flex-end;gap:28px;width:100%;min-width:0}.competition-combined-podium{flex:1 1 auto;width:auto;margin:0;min-width:0}.competition-combined-footer .competition-projector-qr{position:static;flex:0 0 auto;margin:0}@media(max-width:700px){.competition-combined-footer{align-items:stretch;flex-direction:column;gap:12px}.competition-combined-podium{width:100%;margin:0}.competition-combined-footer .competition-projector-qr{align-self:center}}
@media(max-width:900px){.competition-combined-screen{padding:12px}.competition-combined-body>.competition-bracket-board{padding:4px 4px 8px}.competition-combined-timers .competition-audience-timer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.competition-combined-timers .competition-audience-timer-cell{min-height:110px}}
@media(max-width:560px){.competition-combined-body{overflow:auto}.competition-combined-body>.competition-bracket-board{flex:0 0 58vh;min-height:360px}.competition-combined-timers .competition-audience-timer-grid{grid-template-columns:1fr 1fr;gap:8px}.competition-combined-timers .competition-audience-timer-cell{min-height:104px;padding:10px}.competition-combined-timers .competition-audience-timer-cell>strong{font-size:.9rem}.competition-combined-timers .competition-audience-timer-cell>span{font-size:clamp(2.2rem,12vw,4rem)}}
.competition-timer-audience-shell{position:relative;width:min(100%,1500px);height:min(100%,900px);min-height:0}
.competition-timer-audience-shell .competition-audience-timer-grid{width:100%;height:100%;margin:0}
.competition-timer-audience-qr{position:absolute;z-index:5;left:50%;top:50%;display:grid;place-items:center;width:clamp(126px,12vw,168px);aspect-ratio:1;box-sizing:border-box;padding:11px;transform:translate(-50%,-50%);border:1px solid rgba(165,120,101,.55);border-radius:18px;background:linear-gradient(135deg,rgba(38,34,31,.98),rgba(20,18,17,.99));box-shadow:0 14px 32px rgba(0,0,0,.34);transition:transform .18s ease,box-shadow .18s ease}
.competition-timer-audience-qr:hover{transform:translate(-50%,-50%) scale(1.03);box-shadow:0 17px 38px rgba(0,0,0,.46)}
.competition-timer-audience-qr img{display:block;width:100%;height:100%;padding:3px;box-sizing:border-box;object-fit:contain;border-radius:6px;background:#fff}
.competition-timer-audience-shell.is-single .competition-timer-audience-qr{left:auto;top:auto;right:24px;bottom:24px;transform:none}
.competition-timer-audience-shell.is-single .competition-timer-audience-qr:hover{transform:scale(1.03)}
@media(max-width:700px){.competition-timer-audience-shell{height:100%}.competition-timer-audience-qr{width:clamp(94px,21vw,122px);padding:8px;border-radius:14px}.competition-timer-audience-qr img{padding:2px;border-radius:4px}}
@media(max-width:700px){.competition-timer-audience-shell.is-single .competition-timer-audience-qr{right:12px;bottom:12px}}
.competition-combined-timers .competition-audience-timer-grid.is-count-1{width:min(100%,455px);grid-template-columns:minmax(0,455px);margin-left:auto;margin-right:0}.competition-combined-timers .competition-audience-timer-grid.is-count-2{width:min(100%,920px);grid-template-columns:repeat(2,minmax(0,455px));margin-left:auto;margin-right:0}.competition-combined-timers .competition-audience-timer-grid.is-count-3{width:min(100%,1385px);grid-template-columns:repeat(3,minmax(0,455px));margin-left:auto;margin-right:0}.competition-combined-timers .competition-audience-timer-grid.is-count-4{width:100%;grid-template-columns:repeat(4,minmax(0,1fr));margin-left:auto;margin-right:0}
@media(max-width:900px){.competition-combined-timers .competition-audience-timer-grid.is-count-1,.competition-combined-timers .competition-audience-timer-grid.is-count-2,.competition-combined-timers .competition-audience-timer-grid.is-count-3,.competition-combined-timers .competition-audience-timer-grid.is-count-4{width:100%;grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0;margin-right:0}}
.competition-bracket-modal{z-index:10060!important;pointer-events:auto!important}.competition-bracket-modal.show{display:flex!important}.competition-bracket-content{position:relative;z-index:1;pointer-events:auto}.competition-player-detail-content{width:min(94vw,680px);max-height:min(86vh,760px)}.competition-player-detail-extra{margin-top:7px}.competition-player-history-row{grid-template-columns:58px minmax(90px,1fr) minmax(80px,1.3fr) auto}.competition-player-history-result{overflow-wrap:anywhere}.spectator-player-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 14px}.spectator-player-toolbar label{font-size:.82rem;font-weight:800;color:var(--text-secondary,#777)}.spectator-player-toolbar label span{font-size:.72rem;font-weight:600}.spectator-player-toolbar input{width:min(100%,280px);box-sizing:border-box;padding:10px 12px;border:1px solid var(--border-color,#ddd);border-radius:8px;background:var(--input-bg,var(--container-bg,#fff));color:var(--text-color,#333);font:inherit}.spectator-player-toolbar input:focus{outline:2px solid rgba(165,120,101,.3);border-color:var(--primary-color,#a57865)}.spectator-card{cursor:pointer;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.spectator-card:hover,.spectator-card:focus-visible{border-color:var(--primary-color,#a57865);box-shadow:0 0 0 1px rgba(165,120,101,.2);transform:translateY(-1px);outline:none}.spectator-card-hint{display:block;margin-top:9px;color:var(--text-secondary,#888);font-size:.64rem}.competition-player-detail-extra span{min-width:0}.competition-player-detail-extra strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:560px){.spectator-player-toolbar{align-items:stretch;flex-direction:column;gap:7px}.spectator-player-toolbar input{width:100%}.competition-player-detail-modal{padding:10px}.competition-player-detail-content{width:100%;max-height:90vh;border-radius:12px}.competition-player-detail-body{padding:13px}.competition-player-detail-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.competition-player-detail-stats span{padding:8px 6px;font-size:.64rem}.competition-player-detail-stats strong{font-size:.74rem}.competition-player-history-row{grid-template-columns:1fr auto;gap:5px}.competition-player-history-row strong{grid-column:1/-1}.competition-player-history-result{grid-column:1/-1}.competition-player-history-row em{justify-self:end}}
.competition-scorecard-page-mode{background:#121110}.competition-scorecard-page-mode> :not(#competition-scorecard-page){display:none!important}.competition-scorecard-page{min-height:100vh;box-sizing:border-box;padding:clamp(18px,4vw,48px);background:#121110;color:var(--text-color,#eee)}.competition-scorecard-page-header{width:min(100%,1400px);margin:0 auto 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.competition-scorecard-page-header h1{margin:5px 0 7px;font-size:clamp(1.7rem,4vw,3rem);line-height:1.1}.competition-scorecard-page-header p{margin:0;color:var(--text-secondary,#aaa)}.competition-scorecard-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.competition-scorecard-actions a{text-decoration:none}.competition-scorecard-help{width:min(100%,1400px);box-sizing:border-box;margin:0 auto 18px;padding:11px 14px;border:1px solid rgba(165,120,101,.3);border-radius:10px;background:rgba(165,120,101,.08);color:var(--text-secondary,#bbb);font-size:.78rem}.competition-scorecard-help i{margin-right:7px;color:var(--primary-color,#b98a76)}.competition-scorecard-sheet-grid{width:min(100%,210mm);margin:0 auto}.competition-scorecard-sheet{display:grid;grid-template-columns:repeat(2,105mm);grid-template-rows:repeat(2,148.5mm);width:210mm;min-height:297mm;box-sizing:border-box;background:#fff}.competition-scorecard-card{width:105mm;height:148.5mm;box-sizing:border-box;padding:8mm;background:#fff;color:#111;border:1px dashed #777;font-family:Arial,sans-serif;font-size:10px;line-height:1.25;overflow:hidden}.competition-scorecard-card header{display:flex;align-items:baseline;justify-content:center;gap:8px;margin-bottom:7mm;text-align:center}.competition-scorecard-card header strong{font-size:15px}.competition-scorecard-card header span{font-size:9px;color:#444}.competition-scorecard-fields{display:grid;grid-template-columns:minmax(0,1fr) 21mm 21mm;margin-bottom:4mm}.competition-scorecard-fields>span{min-height:7mm;padding:2mm;border:1px solid #111;margin:-1px 0 0 -1px}.competition-scorecard-fields b{display:block;margin-top:1mm;font-weight:400;min-height:4mm}.competition-scorecard-identity{grid-template-columns:17mm minmax(0,1fr)}.competition-scorecard-table-head,.competition-scorecard-attempt{display:grid;grid-template-columns:9mm 14mm minmax(0,1fr) 14mm 14mm}.competition-scorecard-table-head{margin-top:8mm;text-align:center;font-size:8px}.competition-scorecard-table-head span{padding:1mm 0}.competition-scorecard-attempt{min-height:11mm}.competition-scorecard-attempt>*{display:flex;align-items:center;justify-content:center;border:1px solid #111;margin:-1px 0 0 -1px;padding:1mm;min-width:0;overflow:hidden}.competition-scorecard-attempt>b{font-size:13px}.competition-scorecard-attempt>span:nth-child(3){justify-content:flex-start;padding-left:2mm}.competition-scorecard-attempts{margin-bottom:4mm}.competition-scorecard-attempts+.competition-scorecard-attempt{grid-template-columns:9mm 28mm minmax(0,1fr) 14mm 14mm}.competition-scorecard-attempts+.competition-scorecard-attempt>span:nth-child(2){justify-content:flex-start}.competition-scorecard-card footer{display:flex;justify-content:space-between;gap:8px;margin-top:7mm;font-size:9px}.competition-scorecard-card.is-blank{background:#fff}.competition-scorecard-card.is-blank header strong{font-size:14px}
@media(max-width:700px){.competition-scorecard-page{padding:16px 12px}.competition-scorecard-page-header{flex-direction:column;gap:13px}.competition-scorecard-actions{width:100%;justify-content:stretch}.competition-scorecard-actions .competition-btn{flex:1;text-align:center}.competition-scorecard-help{font-size:.72rem}.competition-scorecard-sheet-grid{width:100%;overflow:auto}.competition-scorecard-sheet{transform-origin:top left;transform:scale(.86);margin-bottom:-82px}}
@media print{@page{size:A4 portrait;margin:0}.competition-scorecard-page-mode{background:#fff!important}.competition-scorecard-page{padding:0!important;background:#fff!important;color:#111!important}.competition-scorecard-page-header,.competition-scorecard-help{display:none!important}.competition-scorecard-sheet-grid{width:210mm!important;margin:0!important}.competition-scorecard-sheet{break-after:page;page-break-after:always}.competition-scorecard-sheet:last-child{break-after:auto;page-break-after:auto}.competition-scorecard-card{border:1px solid #111}}
.competition-scramble-round.is-live{border-color:rgba(72,201,120,.8);box-shadow:0 0 0 1px rgba(72,201,120,.14)}.competition-scramble-round.is-live>summary{background:rgba(72,201,120,.08)}.competition-scramble-round.is-live>summary small{color:#48c978}.competition-scramble-page-header{align-items:center}.competition-scramble-page-header .competition-scramble-print-button{flex:none}.competition-scramble-print-document{display:none}
@media(max-width:700px){.competition-scramble-page-header{align-items:stretch}.competition-scramble-page-header .competition-scramble-print-button{width:100%}}
@media print{@page{size:A4 portrait;margin:0}.competition-scramble-page-mode{background:#fff!important}.competition-scramble-page{padding:0!important;background:#fff!important;color:#111!important}.competition-scramble-page-header,.competition-scramble-notice,.competition-scramble-round,.competition-scramble-empty{display:none!important}.competition-scramble-print-document{display:block!important}.competition-scramble-print-page{width:210mm;min-height:297mm;box-sizing:border-box;padding:9mm 10mm 7mm;background:#fff;color:#000;break-after:page;page-break-after:always;font-family:Arial,sans-serif}.competition-scramble-print-page:last-child{break-after:auto;page-break-after:auto}.competition-scramble-print-page>header{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:end;gap:5mm;margin-bottom:5mm;text-align:center;font-size:10px}.competition-scramble-print-page>header span:first-child{text-align:left}.competition-scramble-print-page>header span:last-child{text-align:right}.competition-scramble-print-page>header strong{font-size:14px}.competition-scramble-print-table{border:1px solid #111}.competition-scramble-print-row{display:grid;grid-template-columns:11mm minmax(0,1fr) 57mm;min-height:34mm;border-top:1px solid #111}.competition-scramble-print-row:first-child{border-top:0}.competition-scramble-print-number{display:flex;align-items:center;justify-content:center;border-right:1px solid #111;font-size:11px}.competition-scramble-print-text{display:flex;align-items:center;padding:4mm;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.competition-scramble-print-visual{display:grid;place-items:center;min-width:0;padding:2mm;background:#ccc;border-left:1px solid #111;overflow:hidden}.competition-scramble-print-visual svg{display:block;width:52mm!important;height:30mm!important;max-width:52mm!important;max-height:30mm!important}.competition-scramble-print-extra-title{display:flex;align-items:center;justify-content:center;height:7mm;border-top:1px solid #111;border-bottom:1px solid #111;font-size:10px;font-weight:700}.competition-scramble-print-page>footer{margin-top:5mm;text-align:center;font-size:10px}.competition-scramble-print-pending{padding:20mm;text-align:center;font-size:12px}}
.competition-host-page-toolbar select,.competition-host-judge-tools select,.competition-host-judge-tools input,.competition-host-judge-assignment select{box-sizing:border-box;padding:9px 10px;border:1px solid var(--border-color,#3b3633);border-radius:8px;background:#201d1b;color:var(--text-color,#eee);font:inherit}.competition-host-page-toolbar{flex-wrap:wrap}.competition-host-page-toolbar select{min-height:42px}.competition-host-judge-tools{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:12px 0}.competition-host-judge-tools label,.competition-host-judge-assignment{display:grid;gap:5px;font-size:.7rem;color:var(--text-secondary,#aaa)}.competition-host-add-judge{display:flex;gap:8px}.competition-host-add-judge input{min-width:180px}.competition-host-judge-assignment{min-width:150px}.competition-host-judge-row{grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) minmax(150px,1fr) auto auto}.competition-host-judge-row>span{color:var(--text-secondary,#aaa);font-size:.76rem}
@media(max-width:700px){.competition-host-page-toolbar select{width:100%}.competition-host-judge-tools{align-items:stretch;flex-direction:column}.competition-host-add-judge{width:100%}.competition-host-add-judge input{min-width:0;flex:1}.competition-host-judge-row{grid-template-columns:1fr auto}.competition-host-judge-row input,.competition-host-judge-assignment{grid-column:1/-1}.competition-host-judge-assignment{width:100%}}
#competition-judge-route-fallback{position:fixed;inset:0;z-index:21000;display:grid;place-items:center;padding:24px;box-sizing:border-box;background:#121110;color:#eee}#competition-judge-route-fallback[hidden]{display:none!important}#competition-judge-route-fallback section{display:grid;gap:10px;max-width:360px;padding:24px;border:1px solid #3b3633;border-radius:14px;background:#171514;text-align:center}#competition-judge-route-fallback span{color:#aaa;font-size:.85rem}.competition-host-judge-row.competition-host-player-row{display:flex;align-items:center;gap:9px}.competition-host-judge-row.competition-host-player-row>span:not(.competition-host-player-number):not(.competition-host-player-result){min-width:95px;color:var(--text-secondary,#aaa);font-size:.72rem}.competition-host-judge-row.competition-host-player-row input{flex:1;min-width:0}
.competition-judge-page{padding-bottom:104px}.competition-judge-inspection-card{display:grid;gap:18px;text-align:center}.competition-judge-page [data-judge-tab-panel][hidden]{display:none!important}.competition-judge-inspection-card>p{margin:0;color:var(--text-secondary,#aaa);line-height:1.5}.competition-judge-inspection-clock{font-family:monospace;font-variant-numeric:tabular-nums;font-size:clamp(4.2rem,17vw,7.5rem);font-weight:800;letter-spacing:-.09em;line-height:.9;color:#83e5a7;text-shadow:0 0 24px rgba(72,201,120,.15)}.competition-judge-inspection-clock[data-phase="plus2"]{color:#f2c464;text-shadow:0 0 24px rgba(242,196,100,.16)}.competition-judge-inspection-clock[data-phase="dnf"]{color:#ec746b;text-shadow:0 0 24px rgba(236,116,107,.16)}.competition-judge-inspection-status{min-height:20px;font-size:.8rem;font-weight:700;color:var(--text-secondary,#aaa)}.competition-judge-inspection-actions{display:flex;gap:9px;justify-content:center}.competition-judge-inspection-actions .competition-btn{min-width:130px}.competition-judge-inspection-scale{display:flex;justify-content:space-between;gap:8px;padding-top:13px;border-top:1px solid rgba(165,120,101,.2);font-size:.72rem;color:var(--text-secondary,#aaa)}.competition-judge-inspection-scale b{font-weight:700;color:#f2c464}.competition-judge-inspection-scale b:last-child{color:#ec746b}.competition-judge-inspection-scale em{display:block;font-style:normal;font-size:.63rem}.competition-judge-tabs{position:fixed;z-index:2;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(calc(100vw - 24px),420px);padding:6px;border:1px solid rgba(165,120,101,.35);border-radius:14px;background:rgba(29,26,24,.96);box-shadow:0 12px 34px rgba(0,0,0,.38);backdrop-filter:blur(12px)}.competition-judge-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;border:0;border-radius:10px;background:transparent;color:var(--text-secondary,#aaa);font:inherit;font-weight:700;cursor:pointer}.competition-judge-tabs button.active{background:rgba(165,120,101,.24);color:var(--text-color,#eee);box-shadow:inset 0 0 0 1px rgba(165,120,101,.38)}
.competition-scramble-pending.is-error{flex-direction:column;color:#e87569}.competition-scramble-pending.is-error i{font-size:1.2rem}
.competition-direct-spectator-page #competition-modal > .competition-modal-content > .competition-modal-header{display:none!important}
.competition-direct-spectator-page #spectator-stop{display:none!important}

/* Tournament-bracket presentation: compact match tables with a formal round flow. */
.competition-bracket-board{gap:52px;padding:26px 30px 38px;min-height:420px;background:radial-gradient(circle at 50% -15%,rgba(182,143,86,.13),transparent 38%),linear-gradient(135deg,rgba(255,255,255,.028),transparent 42%)}
.bracket-round{min-width:270px;gap:15px}
.bracket-round-heading{position:sticky;top:0;z-index:3;display:grid;gap:3px;padding:11px 14px;border:1px solid rgba(165,120,101,.35);border-radius:11px;background:linear-gradient(135deg,rgba(165,120,101,.2),rgba(255,255,255,.035));text-align:center;box-shadow:0 8px 22px rgba(0,0,0,.12)}
.bracket-round-heading>span{font-size:.6rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--primary-color,#c89a7c)}
.bracket-round h4{margin:0;color:var(--text-color,#eee);font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.05rem,1.55vw,1.4rem);font-weight:800;letter-spacing:0;text-transform:none}
.bracket-round-matches{min-height:330px}
.bracket-match{overflow:hidden;border:1px solid rgba(165,120,101,.36)!important;border-radius:12px!important;padding:0!important;background:linear-gradient(135deg,rgba(42,37,34,.98),rgba(25,23,22,.98))!important;box-shadow:0 12px 28px rgba(0,0,0,.2);font-size:.82rem}
.bracket-match.active{border-color:rgba(72,201,120,.9)!important;box-shadow:0 0 0 1px rgba(72,201,120,.2),0 12px 28px rgba(0,0,0,.2)}
.bracket-match.finished{border-color:rgba(196,151,91,.72)!important}
.bracket-match-rows{display:grid}
.bracket-player{min-height:42px;box-sizing:border-box;align-items:center;gap:10px;margin:0!important;padding:9px 11px!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.1)}
.bracket-player:last-child{border-bottom:0}
.bracket-player-name{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
.bracket-player-name .fa-trophy{flex:none;color:#efc75e;font-size:.76rem;text-shadow:0 0 12px rgba(239,199,94,.42)}
.bracket-player.winner{color:var(--text-color,#fff)!important;background:linear-gradient(90deg,rgba(179,136,77,.3),rgba(179,136,77,.08));font-weight:850}
.bracket-player-bye{color:var(--text-secondary,#a99f98);font-style:italic}
.bracket-score{display:flex;justify-content:flex-end;gap:4px;max-width:53%;min-width:0;color:#e8d4c7;font-variant-numeric:tabular-nums;font-size:.72rem;font-weight:700}
.bracket-score-dash{color:var(--text-secondary,#968b84)}
.bracket-vs{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;min-height:28px;margin:0!important;padding:7px 11px!important;border-top:1px solid rgba(165,120,101,.22)!important;background:rgba(0,0,0,.15);text-align:left!important;font-size:.64rem}
.bracket-match-state{padding:3px 6px;border-radius:999px;background:rgba(165,120,101,.17);color:var(--primary-color,#d0a286);font-size:.58rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.bracket-match.active .bracket-match-state{background:rgba(72,201,120,.15);color:#82e9a8}.bracket-match.finished .bracket-match-state{background:rgba(239,199,94,.14);color:#efc75e}
.bracket-match-summary{overflow:hidden;color:var(--text-secondary,#b7aaa1);text-align:right;text-overflow:ellipsis;white-space:nowrap}
.bracket-match.bye{border-style:dashed!important;opacity:.92}.bracket-match.bye .bracket-match-state{background:rgba(165,120,101,.2)}
.bracket-connections path{filter:drop-shadow(0 0 3px rgba(196,151,91,.24))}
.bracket-champion{position:relative;z-index:1;align-self:center;display:grid;justify-items:center;gap:7px;min-width:235px;padding:20px 18px;border:2px solid rgba(230,181,73,.76);border-radius:16px;background:radial-gradient(circle at 50% 0,rgba(239,199,94,.28),transparent 56%),linear-gradient(135deg,rgba(68,47,20,.95),rgba(22,20,18,.98));box-shadow:0 0 0 5px rgba(230,181,73,.08),0 18px 44px rgba(0,0,0,.34);text-align:center}
.bracket-champion-cup{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#f9df86,#a96f18);color:#40290b;font-size:1.4rem;box-shadow:0 0 24px rgba(239,199,94,.45)}
.bracket-champion>span{color:#f1ce67;font-size:.65rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase}.bracket-champion>strong{max-width:100%;overflow:hidden;color:#fff4de;font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:700px){.competition-bracket-board{gap:36px;padding:16px 18px 28px}.bracket-round{min-width:245px}.bracket-round-heading{padding:9px 10px}.bracket-match{font-size:.76rem}.bracket-player{min-height:39px;padding:8px 9px!important}.bracket-champion{min-width:205px;padding:16px 13px}.bracket-champion>strong{font-size:1.15rem}}
.competition-projector-screen.competition-projector-bracket-only{padding:18px}.competition-projector-bracket-only .competition-projector-body{height:100%;min-height:0}.competition-projector-bracket-only .competition-projector-body>.competition-bracket-board{height:100%;max-height:none;padding-top:0}
.competition-bracket-board{gap:26px;align-items:stretch}
.competition-bracket-board .bracket-round{z-index:1;min-width:294px;align-self:flex-start;height:max-content;min-height:100%;box-sizing:border-box;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.competition-bracket-board .bracket-round-heading{position:sticky;top:0;z-index:4;margin:0 0 14px;padding:13px 14px 12px;border:1px solid rgba(165,120,101,.45);border-radius:11px;background:#332923;box-shadow:0 8px 18px rgba(0,0,0,.28)}
.competition-bracket-board .bracket-round-matches{padding-bottom:8px}
.competition-bracket-board .bracket-connections{z-index:2!important}.competition-bracket-board .bracket-match{z-index:3!important}
@media(max-width:700px){.competition-projector-screen.competition-projector-bracket-only{padding:10px}.competition-projector-bracket-only .competition-projector-body>.competition-bracket-board{padding:0 10px 10px}.competition-bracket-board{gap:16px}.competition-bracket-board .bracket-round{min-width:262px}.competition-bracket-board .bracket-round-heading{margin:0 0 11px;padding:10px 9px;border-radius:10px}}
.competition-judge-inspection-card{position:relative;isolation:isolate;overflow:hidden;align-content:center;justify-items:center;min-height:430px;padding:clamp(24px,7vw,56px);border-color:rgba(165,120,101,.48);background:radial-gradient(circle at 50% 24%,rgba(165,120,101,.2),transparent 42%),linear-gradient(145deg,#25201e,#151313 72%);box-shadow:0 20px 50px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.04)}.competition-judge-inspection-card:before{content:"";position:absolute;z-index:-1;top:18%;left:50%;width:min(70vw,330px);height:min(70vw,330px);transform:translate(-50%,-50%);border:1px solid rgba(165,120,101,.16);border-radius:50%;box-shadow:0 0 0 24px rgba(165,120,101,.025),0 0 0 48px rgba(165,120,101,.018)}.competition-judge-inspection-card .eyebrow{color:#d0a085;letter-spacing:.18em}.competition-judge-inspection-card h1{margin:0;font-size:clamp(1.35rem,4vw,2rem);letter-spacing:-.02em}.competition-judge-inspection-clock{display:grid;place-items:center;width:min(72vw,320px);aspect-ratio:1;border:1px solid rgba(165,120,101,.42);border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.08),rgba(15,14,13,.9) 66%);box-shadow:0 0 0 8px rgba(165,120,101,.06),0 18px 45px rgba(0,0,0,.35),inset 0 0 35px rgba(0,0,0,.35);font-size:clamp(3.2rem,15vw,6.8rem);letter-spacing:-.08em;line-height:1}.competition-judge-inspection-status{min-height:20px;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}.competition-judge-inspection-actions{width:100%;margin-top:2px}.competition-judge-inspection-actions .competition-btn{width:min(100%,250px);min-height:52px;border-radius:14px;box-shadow:0 10px 24px rgba(0,0,0,.25)}.competition-judge-inspection-actions .competition-btn i{margin-right:7px}.competition-judge-inspection-scale{width:min(100%,360px);padding-top:16px;border-top-color:rgba(165,120,101,.28);font-variant-numeric:tabular-nums}.competition-judge-inspection-clock[data-phase="inspection"]{color:#83e5a7}.competition-judge-inspection-clock[data-phase="plus2"]{color:#f2c464}.competition-judge-inspection-clock[data-phase="dnf"]{color:#ec746b}.competition-judge-inspection-actions .competition-btn.danger{border-color:rgba(236,116,107,.52);background:rgba(236,116,107,.14);color:#ffaaa1}
.competition-live-timer-assignment.is-automatic{display:grid;gap:4px;padding:10px;border:1px solid rgba(72,201,120,.28);border-radius:8px;background:rgba(72,201,120,.06);color:var(--text-secondary,#aaa);font-size:.72rem}.competition-live-timer-assignment.is-automatic strong{color:var(--text-color,#eee);font-size:.88rem}.competition-live-timer-assignment.is-automatic small{font-size:.68rem;color:#83e5a7}.competition-judge-next{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px;border:1px solid rgba(165,120,101,.28);border-radius:11px;background:rgba(165,120,101,.06)}.competition-judge-next>div{display:grid;gap:3px;min-width:0}.competition-judge-next strong{font-size:.82rem}.competition-judge-next span{font-size:.68rem;line-height:1.35;color:var(--text-secondary,#aaa)}.competition-judge-next .competition-btn{white-space:nowrap}.competition-judge-next .competition-btn:disabled{opacity:.45;cursor:not-allowed}@media(max-width:520px){.competition-judge-next{align-items:stretch;flex-direction:column}.competition-judge-next .competition-btn{width:100%}}
.competition-host-player-result{display:grid;gap:3px}.competition-host-player-result small{font-size:.63rem;color:var(--text-secondary,#aaa)}
/* Host dashboard responsive layout. Keep dense management controls usable on phones. */
.competition-host-page{padding:clamp(12px,3vw,28px);overflow-x:hidden!important}.competition-host-page>*{min-width:0}.competition-host-page-header>div{min-width:0}.competition-host-page-header .competition-btn{white-space:nowrap}.competition-host-page-toolbar input,.competition-host-add input{min-width:0;max-width:100%}.competition-host-player-row,.competition-host-judge-row{max-width:100%;box-sizing:border-box}.competition-host-player-row .competition-btn,.competition-host-judge-row .competition-btn{min-width:0;white-space:nowrap}
@media(max-width:800px){.competition-host-page-header{gap:12px}.competition-host-page-links{gap:8px}.competition-host-page-toolbar{align-items:stretch}.competition-host-page-toolbar input{width:100%}.competition-host-live-timers{margin-top:14px}.competition-host-judge-tools{width:100%}}
@media(max-width:560px){.competition-host-page{padding:12px 10px}.competition-host-page-header{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important;margin-bottom:16px!important}.competition-host-page-header h1{font-size:clamp(1.2rem,7vw,1.7rem)!important;overflow-wrap:anywhere}.competition-host-page-header p{font-size:.76rem!important}.competition-host-page-header>.competition-btn{padding:8px 10px;font-size:.72rem}.competition-host-page-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:6px}.competition-host-page-tab{width:100%;box-sizing:border-box;min-width:0}.competition-host-page-links{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center;padding:10px!important}.competition-host-page-links span{font-size:.78rem;white-space:normal}.competition-host-page-links code{grid-column:1/-1;grid-row:2;width:100%;font-size:.68rem}.competition-host-page-links button{grid-column:2;grid-row:1}.competition-host-page-toolbar{display:grid;grid-template-columns:1fr;gap:9px;margin-bottom:10px}.competition-host-page-toolbar h2{font-size:1.1rem}.competition-host-page-toolbar input,.competition-host-add input{width:100%;min-height:42px}.competition-host-add{display:grid;grid-template-columns:1fr;gap:7px}.competition-host-add .competition-btn{width:100%}.competition-host-player-row,.competition-host-judge-row.competition-host-player-row{display:grid!important;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:7px;padding:9px}.competition-host-player-number{width:auto;grid-column:1;grid-row:1;align-self:start}.competition-host-player-row>input{grid-column:2;grid-row:1;min-width:0;width:100%}.competition-host-player-row>.competition-host-player-result{grid-column:2;grid-row:2;width:auto;margin:0;text-align:left;justify-self:start}.competition-host-player-row>.competition-btn{grid-column:2;min-height:34px}.competition-host-player-row>.competition-btn:not(.danger){justify-self:stretch}.competition-host-inline-scores{grid-column:1/-1}.competition-host-inline-score-list{grid-template-columns:1fr}.competition-host-player-row>.competition-host-disposition{grid-column:2}.competition-host-judges{margin-top:18px;padding-top:14px}.competition-host-judges h2{font-size:1.1rem}.competition-host-judge-row:not(.competition-host-player-row){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.competition-host-judge-row:not(.competition-host-player-row) input{grid-column:1/-1;grid-row:1;width:100%}.competition-host-judge-row:not(.competition-host-player-row)>span{grid-column:1;grid-row:2;min-width:0;overflow-wrap:anywhere}.competition-host-judge-row:not(.competition-host-player-row)>.competition-btn{grid-column:2;grid-row:2}.competition-host-actions{width:100%;gap:7px}.competition-host-actions>.competition-btn{width:100%;min-height:40px}.competition-host-actions .custom-result-entry{padding:9px}.competition-host-export-actions{display:grid;grid-template-columns:1fr}.competition-host-export-actions .competition-btn{width:100%}.competition-host-pagination{gap:8px}.competition-host-pagination .competition-btn{flex:1}.competition-host-live-timers{padding:10px;margin-left:0;margin-right:0}.competition-host-live-timers .competition-live-timer-toolbar{gap:8px}.competition-host-live-timers .competition-live-timer-toolbar>.competition-btn{width:100%;align-self:stretch}.competition-host-live-timers .competition-live-timer-grid{grid-template-columns:1fr}.competition-host-judge-tools,.competition-host-add-judge{display:grid;grid-template-columns:1fr;gap:7px}.competition-host-add-judge input,.competition-host-judge-assignment{width:100%;min-width:0}.competition-host-judge-tools .competition-btn{width:100%}}
@media(max-width:380px){.competition-host-page-tab{font-size:.67rem;padding:8px 4px;gap:4px}.competition-host-page-tab i{font-size:.68rem}.competition-host-page-header>.competition-btn{padding:7px 8px;font-size:.66rem}.competition-host-player-row{font-size:.82rem}.competition-host-player-row>.competition-btn{font-size:.65rem;padding:7px 6px}}
/* Printable A6 scorecards: labels stay above their writing cells, like official scorecards. */
body.competition-scorecard-page-mode{height:auto!important;min-height:100%!important;overflow:auto!important;background:#121110!important}
.competition-scorecard-page{position:relative;min-height:100dvh;overflow:visible!important;padding-bottom:48px}
.competition-scorecard-sheet-grid{overflow:visible!important;padding-bottom:1px}
.competition-scorecard-card{padding:7mm;border:1px dashed #777;font-size:9px;line-height:1.2}
.competition-scorecard-card header{display:block;min-height:0!important;height:auto!important;margin:0 0 3mm!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;text-align:center}.competition-scorecard-card header strong{display:block;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#111!important;font-size:15px;line-height:1.15}.competition-scorecard-card header span{display:none}
.competition-scorecard-field-block{margin-bottom:3.2mm}.competition-scorecard-field-labels{display:grid;grid-template-columns:minmax(0,1fr) 21mm 21mm;min-height:4mm}.competition-scorecard-field-labels span{padding-left:1mm;font-size:8px;line-height:1.2}.competition-scorecard-fields{margin:0}.competition-scorecard-fields>span{display:flex;align-items:center;min-height:7mm;box-sizing:border-box;margin:-1px 0 0 -1px;padding:1.6mm;font-weight:400}.competition-scorecard-identity-block{margin-top:3mm;margin-bottom:0}.competition-scorecard-identity-block .competition-scorecard-field-labels,.competition-scorecard-identity{grid-template-columns:17mm minmax(0,1fr)}
.competition-scorecard-table-head{margin-top:7mm;grid-template-columns:9mm 14mm minmax(0,1fr) 14mm 14mm;font-size:8px}.competition-scorecard-table-head span{padding:0 0 1.5mm}.competition-scorecard-attempt{grid-template-columns:9mm 14mm minmax(0,1fr) 14mm 14mm;min-height:9.5mm}.competition-scorecard-attempt>*{box-sizing:border-box;margin:-1px 0 0 -1px;padding:1mm}.competition-scorecard-attempt>b{font-size:12px}.competition-scorecard-attempts{margin:0}.competition-scorecard-cutoff-divider{position:relative;height:2.5mm;margin:0 0 0 9mm}.competition-scorecard-cutoff-divider::after{position:absolute;top:50%;right:0;left:0;content:"";border-top:1.6px dashed #111;transform:translateY(-50%)}.competition-scorecard-extra-label{margin:3.5mm 0 1mm 9mm;font-size:8px}.competition-scorecard-extra-attempt{margin:0}.competition-scorecard-card footer{margin-top:5mm;font-size:8px}
@media(max-width:700px){body.competition-scorecard-page-mode{overflow:auto!important}.competition-scorecard-sheet-grid{width:100%!important;overflow-x:auto!important;overflow-y:visible!important;padding-bottom:14px}.competition-scorecard-sheet{transform:none!important;margin:0!important}.competition-scorecard-page{padding:16px 12px 32px}}
@media print{body.competition-scorecard-page-mode{overflow:visible!important}.competition-scorecard-page{min-height:0!important;padding:0!important}.competition-scorecard-sheet-grid{overflow:visible!important}.competition-scorecard-card{border:1px solid #111}}
@media print{@page{size:A4 portrait;margin:6mm}.competition-scorecard-sheet-grid{display:grid!important;width:100%!important;justify-content:center!important}.competition-scorecard-sheet{width:198mm!important;height:285mm!important;min-height:285mm!important;grid-template-columns:repeat(2,98mm)!important;grid-template-rows:repeat(2,141mm)!important;gap:0!important;place-content:center!important;transform:translateY(7mm)!important;background:#fff}.competition-scorecard-card{width:98mm!important;height:141mm!important;padding:6.5mm!important}}
.competition-scorecard-card{font-size:10px}.competition-scorecard-field-labels,.competition-scorecard-fields{grid-template-columns:minmax(0,1fr) 15mm 15mm}.competition-scorecard-identity-block .competition-scorecard-field-labels,.competition-scorecard-identity{grid-template-columns:12mm minmax(0,1fr)}.competition-scorecard-table-head,.competition-scorecard-attempt{grid-template-columns:7mm 11mm minmax(0,1fr) 11mm 11mm}.competition-scorecard-attempt>b{margin:0!important;padding:0 1mm 0 0!important;border:0!important;background:transparent!important;font-size:16px!important;font-weight:800!important}.competition-scorecard-extra-label{margin-left:0;font-size:9px}.competition-scorecard-card footer{font-size:9px}
.competition-scorecard-page-header{position:relative!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:start!important;min-height:0!important;height:auto!important;margin:0 auto 12px!important;padding:0 0 10px!important;overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important}.competition-scorecard-page-header>div,.competition-scorecard-page-header h1,.competition-scorecard-page-header p,.competition-scorecard-page-header .eyebrow,.competition-scorecard-actions{position:static!important}.competition-scorecard-page-header h1{display:block!important;margin:7px 0!important;line-height:1.1!important}.competition-scorecard-page-header p{display:block!important;margin:0!important;line-height:1.35!important}.competition-scorecard-help{position:relative!important;clear:both!important;margin:0 auto 18px!important}
.competition-scorecard-card footer{box-sizing:border-box;justify-content:space-between!important;gap:8px!important;padding:0 6mm!important}
.competition-scorecard-field-labels span:nth-child(2),.competition-scorecard-field-labels span:nth-child(3){padding-left:0;text-align:center}
.competition-scorecard-card{font-size:10.5px}.competition-scorecard-field-labels span{font-size:8.5px}.competition-scorecard-table-head{font-size:8.5px}.competition-scorecard-extra-label,.competition-scorecard-card footer{font-size:9.5px}
.competition-scorecard-field-block{width:calc(100% - 7mm);margin-left:7mm}
.competition-scorecard-field-labels,.competition-scorecard-fields{grid-template-columns:minmax(0,1fr) 11mm 11mm}.competition-scorecard-identity-block .competition-scorecard-field-labels,.competition-scorecard-identity{grid-template-columns:11mm minmax(0,1fr)}
.competition-scorecard-fields>span,.competition-scorecard-attempt>span{border-width:1.25px}
.competition-scorecard-field-block:not(.competition-scorecard-identity-block) .competition-scorecard-fields>span:nth-child(2),.competition-scorecard-field-block:not(.competition-scorecard-identity-block) .competition-scorecard-fields>span:nth-child(3){justify-content:center}
.competition-scorecard-identity-block .competition-scorecard-field-labels span:nth-child(2){padding-left:1mm;text-align:left}
.competition-scorecard-card{border-width:1.4px!important}.competition-scorecard-fields>span,.competition-scorecard-attempt>span{border-width:1.6px!important}
.competition-scorecard-card footer span:first-child{margin-left:4mm}
@media print{.competition-scorecard-page-header,.competition-scorecard-help{display:none!important}}
/* Compact host dashboard: preserve a full-width title and use action grids on phones. */
@media(max-width:560px){.competition-host-page-header{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:10px!important}.competition-host-page-header>div:first-child{width:100%}.competition-host-header-actions{order:-1;display:flex;justify-content:flex-end;gap:7px;width:100%}.competition-host-header-actions .competition-btn{flex:0 1 auto;min-height:40px;padding:8px 10px;font-size:.72rem}.competition-host-page-header h1{max-width:none!important;font-size:clamp(1.55rem,8vw,2rem)!important;overflow:visible!important;text-overflow:clip!important}.competition-host-page-tabs{margin-top:14px}.competition-host-player-row,.competition-host-judge-row.competition-host-player-row{display:flex!important;flex-wrap:wrap;align-items:center;gap:7px}.competition-host-player-number{flex:0 0 22px;width:22px;align-self:center}.competition-host-player-row>input{flex:1 1 calc(100% - 31px);width:auto;min-width:0}.competition-host-player-row>.competition-host-player-result{flex:0 0 calc(100% - 29px);width:auto;margin:0 0 0 29px;text-align:left}.competition-host-player-row>.competition-btn{flex:1 1 calc(33.333% - 6px);width:auto;min-height:36px}.competition-host-player-row>.competition-btn.danger{flex-basis:calc(50% - 4px)}.competition-host-player-row>.competition-host-disposition{flex:0 0 calc(100% - 29px);margin-left:29px}.competition-host-inline-scores{flex:0 0 100%}.competition-host-inline-score-list{grid-template-columns:1fr}.competition-host-judge-row.competition-host-player-row>span:not(.competition-host-player-number):not(.competition-host-player-result){flex:1 1 calc(100% - 31px);min-width:0}.competition-host-judge-row.competition-host-player-row input{flex:1 1 calc(100% - 31px)}.competition-host-judge-row.competition-host-player-row .competition-host-judge-assignment{flex:0 0 100%}.competition-host-judge-row.competition-host-player-row .competition-btn{flex:1 1 calc(33.333% - 6px)}.competition-host-player-row .competition-btn{justify-content:center}.competition-host-page-tab{min-height:40px}.competition-host-page-tab span{white-space:nowrap}}
/* Scorecard preview controls and A4 sheet work cleanly on touch screens. */
@media(max-width:700px){.competition-scorecard-page{padding:16px 12px 28px}.competition-scorecard-page-header{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important;margin-bottom:12px!important;padding-bottom:0!important}.competition-scorecard-page-header>div{width:100%}.competition-scorecard-page-header h1{font-size:clamp(1.55rem,8vw,2.25rem)!important;overflow-wrap:anywhere}.competition-scorecard-page-header p{font-size:.8rem!important}.competition-scorecard-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%!important;gap:8px!important}.competition-scorecard-actions .competition-btn{width:100%;min-width:0;min-height:42px;padding:9px 8px;font-size:.76rem}.competition-scorecard-help{margin-bottom:12px!important;padding:10px 11px;font-size:.72rem}.competition-scorecard-sheet-grid{box-sizing:border-box;width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;padding:8px!important;border:1px solid rgba(165,120,101,.3);border-radius:10px;background:rgba(255,255,255,.025);-webkit-overflow-scrolling:touch;scrollbar-color:rgba(185,138,118,.8) transparent;scrollbar-width:thin}.competition-scorecard-sheet{box-shadow:0 8px 28px rgba(0,0,0,.32)}.competition-scorecard-sheet-grid::after{content:"Swipe sideways to preview the full A4 sheet";display:block;width:max-content;margin:8px 0 0;color:var(--text-secondary,#aaa);font-size:.68rem}}
@media(max-width:390px){.competition-scorecard-page{padding:12px 9px 24px}.competition-scorecard-page-header h1{font-size:1.5rem!important}.competition-scorecard-actions{grid-template-columns:1fr}.competition-scorecard-actions .competition-btn{font-size:.78rem}.competition-scorecard-help{font-size:.68rem}}
/* Let each A4 scorecard use its available space without oversized five-solve cells. */
.competition-scorecard-card.competition-scorecard-solves-5 .competition-scorecard-attempt,.competition-scorecard-card.competition-scorecard-solves-3 .competition-scorecard-attempt,.competition-scorecard-card.competition-scorecard-solves-1 .competition-scorecard-attempt{min-height:10.5mm}
/* A little breathing room under the title on the four-up A4 scorecard sheet. */
.competition-scorecard-sheet .competition-scorecard-card header{margin-bottom:5mm!important}
/* Larger type across every scorecard: A4 sheets, A6 print, and the page preview. */
.competition-scorecard-card{font-size:12px}.competition-scorecard-card header strong{font-size:17px}.competition-scorecard-field-labels span{font-size:9.5px}.competition-scorecard-table-head{font-size:9.5px}.competition-scorecard-attempt>b{font-size:18px!important}.competition-scorecard-extra-label,.competition-scorecard-card footer{font-size:10.5px}
.competition-scorecard-card.competition-scorecard-photo-download footer span:first-child{margin-left:10mm}
/* Multiple-event setup stays compact while making every event easy to scan. */
.competition-multiple-events-picker{display:grid;gap:10px;margin:0 0 16px;padding:13px;border:1px solid rgba(185,138,118,.32);border-radius:10px;background:rgba(185,138,118,.07)}.competition-multiple-events-picker>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.competition-multiple-events-picker strong{font-size:.86rem}.competition-multiple-events-picker small{color:var(--text-secondary,#aaa);font-size:.72rem}.competition-multiple-events-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:7px}.competition-multiple-event{display:grid;place-items:center;gap:5px;min-height:72px;padding:7px 5px;border:1px solid var(--border-color,#3b3633);border-radius:9px;background:rgba(0,0,0,.14);color:var(--text-secondary,#aaa);font:inherit;font-size:.64rem;font-weight:800;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease}.competition-multiple-event:hover{border-color:rgba(185,138,118,.75);transform:translateY(-1px)}.competition-multiple-event .puzzle-icon{width:28px;height:28px;margin:0;filter:grayscale(1) opacity(.55)}.competition-multiple-event.selected{border-color:var(--primary-color,#b98a76);background:rgba(185,138,118,.18);color:var(--text-color,#eee);box-shadow:0 0 0 1px rgba(185,138,118,.16)}.competition-multiple-event.selected .puzzle-icon{filter:brightness(0) invert(1)}
.competition-added-players{display:grid;gap:6px}.competition-custom-player-entry{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;border:1px solid var(--border-color,#3b3633);border-radius:8px;background:rgba(255,255,255,.025)}.competition-custom-player-entry strong{min-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.competition-custom-player-events{display:flex;flex:1;justify-content:flex-end;gap:4px;min-width:0}.competition-custom-player-events .puzzle-icon{width:17px;height:17px;margin:0;filter:brightness(0) invert(1)}.competition-custom-player-actions{display:flex;align-items:center;gap:4px;margin-left:4px}.competition-custom-player-actions .competition-btn{padding:5px 8px;font-size:.68rem}.competition-custom-player-actions [data-remove-custom]{border:0;background:transparent;color:var(--danger-color,#e77);font-size:1rem;cursor:pointer;padding:4px}
@media(max-width:560px){.competition-multiple-events-picker>div:first-child{display:grid;gap:4px}.competition-multiple-events-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.competition-multiple-event{min-height:66px;font-size:.6rem}}
@media(max-width:560px){.competition-custom-player-entry{display:grid;grid-template-columns:minmax(0,1fr) auto}.competition-custom-player-events{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,17px);justify-content:start}.competition-custom-player-entry strong{min-width:0}}
.competition-multiple-event-tile{position:relative;min-width:0}.competition-multiple-event-tile .competition-multiple-event{width:100%;height:100%}.competition-multiple-event-edit{position:absolute;right:5px;top:5px;width:22px;height:22px;border:0;border-radius:6px;background:rgba(0,0,0,.28);color:var(--text-color,#fff);font-size:.62rem;cursor:pointer;opacity:.8}.competition-multiple-event-edit:hover{opacity:1;background:var(--primary-color,#b98a76)}.competition-event-settings{display:grid;gap:10px;margin:0 0 16px;padding:12px;border:1px solid rgba(185,138,118,.4);border-radius:10px;background:rgba(185,138,118,.08)}.competition-event-settings header{display:flex;align-items:center;gap:8px}.competition-event-settings header .puzzle-icon{width:22px;height:22px;margin:0;filter:brightness(0) invert(1)}.competition-event-settings header .competition-btn{margin-left:auto}.competition-event-settings-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.competition-event-settings-grid label{display:grid;gap:4px;font-size:.7rem;font-weight:700}.competition-event-settings-grid input,.competition-event-settings-grid select{min-width:0;width:100%;box-sizing:border-box}.competition-event-estimate{align-items:center}.competition-event-estimate>span:first-child{display:flex;align-items:center;gap:6px;font-weight:700}.competition-event-estimate .puzzle-icon{width:16px;height:16px;margin:0;filter:brightness(0) invert(1)}
@media(max-width:700px){.competition-event-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Select and print a single player scorecard without changing the A4 batch layout. */
.competition-scorecard-round-picker{display:grid;gap:3px;min-width:112px;color:var(--text-secondary,#aaa);font-size:.65rem;font-weight:800;text-align:left}.competition-scorecard-round-picker select{min-width:112px;box-sizing:border-box;padding:8px 27px 8px 9px;border:1px solid var(--border-color,#332f2c);border-radius:8px;background:var(--input-bg,var(--container-bg,#1d1a18));color:var(--text-color,#eee);font:inherit;font-size:.76rem}.competition-scorecard-round-picker select:focus{outline:2px solid rgba(185,138,118,.32);border-color:var(--primary-color,#b98a76)}.competition-scorecard-custom-player-content{width:min(94vw,620px)}.competition-scorecard-custom-player-body{padding:15px}.competition-scorecard-custom-player-controls{display:grid;grid-template-columns:145px minmax(0,1fr) auto;gap:10px;margin-bottom:12px}.competition-scorecard-custom-player-controls label{display:grid;gap:5px;color:var(--text-secondary,#aaa);font-size:.72rem;font-weight:700}.competition-scorecard-custom-player-controls select,.competition-scorecard-custom-player-controls input{width:100%;min-width:0;box-sizing:border-box;padding:10px 11px;border:1px solid var(--border-color,#332f2c);border-radius:8px;background:var(--input-bg,var(--container-bg,#1d1a18));color:var(--text-color,#eee);font:inherit}.competition-scorecard-custom-player-controls select:focus,.competition-scorecard-custom-player-controls input:focus{outline:2px solid rgba(185,138,118,.32);border-color:var(--primary-color,#b98a76)}.competition-scorecard-custom-player-controls .competition-scorecard-empty-toggle{display:flex;align-items:center;align-self:end;gap:7px;min-height:42px;white-space:nowrap}.competition-scorecard-custom-player-controls .competition-scorecard-empty-toggle input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--primary-color,#b98a76)}.competition-scorecard-custom-player-list{display:grid;gap:7px;max-height:min(54vh,430px);overflow:auto;padding-right:2px}.competition-scorecard-custom-player-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--border-color,#332f2c);border-radius:9px;background:rgba(255,255,255,.025)}.competition-scorecard-custom-player-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.88rem}.competition-scorecard-custom-player-actions{display:flex;align-items:center;gap:6px}.competition-scorecard-custom-player-row .competition-btn{flex:0 0 auto;min-width:38px;padding:8px 10px}.competition-scorecard-custom-player-list .muted{margin:8px 0;text-align:center}.competition-scorecard-single-player-print{display:none}
@media(max-width:560px){.competition-scorecard-custom-player-content{width:100%;max-height:90vh}.competition-scorecard-custom-player-body{padding:12px}.competition-scorecard-custom-player-controls{grid-template-columns:1fr;gap:8px}.competition-scorecard-custom-player-list{max-height:48vh}.competition-scorecard-custom-player-row{padding:10px}.competition-scorecard-custom-player-row strong{font-size:.84rem}}
@media print{body.competition-scorecard-single-player-print-mode,body.competition-scorecard-single-player-print-mode .competition-scorecard-page{background:#fff!important}body.competition-scorecard-single-player-print-mode .competition-scorecard-page{min-height:0!important;padding:0!important}body.competition-scorecard-single-player-print-mode .competition-scorecard-page>:not(#competition-scorecard-single-player-print){display:none!important}body.competition-scorecard-single-player-print-mode #competition-scorecard-single-player-print{display:block!important;width:105mm!important;height:148.5mm!important;margin:0!important;background:#fff!important;overflow:hidden!important}body.competition-scorecard-single-player-print-mode #competition-scorecard-single-player-print .competition-scorecard-card{display:block!important;width:105mm!important;height:148.5mm!important;margin:0!important;padding:7mm!important;background:#fff!important;color:#111!important;border:1px solid #111!important}}

/* Tournament pages inherit the app theme too. Keep printed scorecards intentionally white. */
@media screen{
  body.light-mode.competition-host-page-mode,html.light-mode body.competition-host-page-mode,body[data-theme="light"].competition-host-page-mode,html[data-theme="light"] body.competition-host-page-mode,
  body.light-mode.competition-projector-page,html.light-mode body.competition-projector-page,body[data-theme="light"].competition-projector-page,html[data-theme="light"] body.competition-projector-page,
  body.light-mode.competition-judge-page-mode,html.light-mode body.competition-judge-page-mode,body[data-theme="light"].competition-judge-page-mode,html[data-theme="light"] body.competition-judge-page-mode,
  body.light-mode.competition-timer-page-mode,html.light-mode body.competition-timer-page-mode,body[data-theme="light"].competition-timer-page-mode,html[data-theme="light"] body.competition-timer-page-mode,
  body.light-mode.competition-scramble-page-mode,html.light-mode body.competition-scramble-page-mode,body[data-theme="light"].competition-scramble-page-mode,html[data-theme="light"] body.competition-scramble-page-mode,
  body.light-mode.competition-scorecard-page-mode,html.light-mode body.competition-scorecard-page-mode,body[data-theme="light"].competition-scorecard-page-mode,html[data-theme="light"] body.competition-scorecard-page-mode{
    background:#f6f4f1!important;
    color:#2b2623;
    color-scheme:light;
  }

  :is(.light-mode,[data-theme="light"]) .competition-host-page,
  :is(.light-mode,[data-theme="light"]) .competition-projector-screen,
  :is(.light-mode,[data-theme="light"]) .competition-judge-page,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page,
  :is(.light-mode,[data-theme="light"]) .competition-scramble-page,
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-page{
    --container-bg:#f6f4f1;
    --card-bg:#fff;
    --text-color:#2b2623;
    --text-secondary:#706864;
    --border-color:rgba(67,49,39,.17);
    background:#f6f4f1!important;
    color:#2b2623;
  }

  :is(.light-mode,[data-theme="light"]) .competition-host-page-links,
  :is(.light-mode,[data-theme="light"]) .competition-host-player-row,
  :is(.light-mode,[data-theme="light"]) .competition-host-live-timers,
  :is(.light-mode,[data-theme="light"]) .competition-scramble-round,
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-sheet-grid{
    background:rgba(255,255,255,.68)!important;
    border-color:rgba(105,75,59,.25)!important;
  }

  :is(.light-mode,[data-theme="light"]) .competition-host-page-toolbar input,
  :is(.light-mode,[data-theme="light"]) .competition-host-add input,
  :is(.light-mode,[data-theme="light"]) .competition-host-player-row input,
  :is(.light-mode,[data-theme="light"]) .competition-host-judge-row input,
  :is(.light-mode,[data-theme="light"]) .competition-judge-card>input,
  :is(.light-mode,[data-theme="light"]) .competition-judge-score-row input,
  :is(.light-mode,[data-theme="light"]) .competition-live-timer-card input,
  :is(.light-mode,[data-theme="light"]) .competition-live-timer-card select,
  :is(.light-mode,[data-theme="light"]) .custom-result-input{
    background:#fff!important;
    color:#2b2623!important;
    border-color:rgba(105,75,59,.3)!important;
  }

  :is(.light-mode,[data-theme="light"]) .competition-judge-card,
  :is(.light-mode,[data-theme="light"]) .competition-live-timer-card,
  :is(.light-mode,[data-theme="light"]) .competition-player-card,
  :is(.light-mode,[data-theme="light"]) .competition-judge-score-row,
  :is(.light-mode,[data-theme="light"]) .competition-spectator-live .spectator-card,
  :is(.light-mode,[data-theme="light"]) .spectator-match-card{
    background:#fff!important;
    color:#2b2623;
    border-color:rgba(105,75,59,.25)!important;
    box-shadow:0 8px 22px rgba(63,42,29,.08);
  }

  :is(.light-mode,[data-theme="light"]) .competition-scramble-card{
    background:linear-gradient(135deg,#fff,#f5efea)!important;
    border-color:rgba(105,75,59,.28)!important;
    box-shadow:0 10px 24px rgba(63,42,29,.08);
  }
  :is(.light-mode,[data-theme="light"]) .competition-scramble-card.is-backup{background:#faf7f4!important}
  :is(.light-mode,[data-theme="light"]) .competition-scramble-notice,
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-help,
  :is(.light-mode,[data-theme="light"]) .competition-host-recovery,
  :is(.light-mode,[data-theme="light"]) .competition-judge-next{background:rgba(165,120,101,.1)!important;color:#57463d}

  :is(.light-mode,[data-theme="light"]) .competition-audience-timer-cell{
    background:linear-gradient(135deg,#fff,#f1e8e1)!important;
    border-color:rgba(105,75,59,.34)!important;
    box-shadow:0 14px 34px rgba(63,42,29,.12);
  }
  :is(.light-mode,[data-theme="light"]) .competition-audience-timer-cell>span{color:#795743}
  :is(.light-mode,[data-theme="light"]) .competition-projector-qr,
  :is(.light-mode,[data-theme="light"]) .competition-judge-tabs{background:rgba(255,255,255,.94)!important;color:#2b2623;border-color:rgba(105,75,59,.3)!important;box-shadow:0 10px 28px rgba(63,42,29,.14)}

  :is(.light-mode,[data-theme="light"]) .competition-bracket-board .bracket-round-heading{
    background:linear-gradient(135deg,#f2e7de,#fff)!important;
    border-color:rgba(105,75,59,.38)!important;
    box-shadow:0 7px 17px rgba(63,42,29,.1);
  }
  :is(.light-mode,[data-theme="light"]) .bracket-match{
    background:linear-gradient(135deg,#fff,#f7f1ec)!important;
    border-color:rgba(105,75,59,.35)!important;
    box-shadow:0 9px 21px rgba(63,42,29,.09);
  }
  :is(.light-mode,[data-theme="light"]) .bracket-player{border-bottom-color:rgba(105,75,59,.16)!important}
  :is(.light-mode,[data-theme="light"]) .bracket-player.winner{color:#2b2623!important;background:linear-gradient(90deg,rgba(189,147,88,.25),rgba(189,147,88,.05))!important}
  :is(.light-mode,[data-theme="light"]) .bracket-score{color:#5e4436}
  :is(.light-mode,[data-theme="light"]) .bracket-vs{background:rgba(105,75,59,.055)!important;border-top-color:rgba(105,75,59,.18)!important}

  :is(.light-mode,[data-theme="light"]) .competition-judge-inspection-card{
    background:radial-gradient(circle at 50% 24%,rgba(165,120,101,.2),transparent 42%),linear-gradient(145deg,#fff,#eee4dd 72%)!important;
    box-shadow:0 20px 45px rgba(63,42,29,.13),inset 0 1px rgba(255,255,255,.8);
  }
  :is(.light-mode,[data-theme="light"]) .competition-judge-inspection-clock{
    background:radial-gradient(circle at 50% 42%,#fff,#eaded5 66%)!important;
    box-shadow:0 0 0 8px rgba(165,120,101,.09),0 18px 38px rgba(63,42,29,.15),inset 0 0 28px rgba(105,75,59,.1);
  }
}

/* Scramble route: a compact, touch-friendly layout from tablet down to narrow phones. */
.competition-scramble-page{overflow-x:hidden}
.competition-scramble-page-header,.competition-scramble-round,.competition-scramble-grid,.competition-scramble-card{min-width:0}
.competition-scramble-round>summary{min-height:52px}
.competition-scramble-round>summary>span{min-width:0;overflow-wrap:anywhere}
.competition-scramble-text{word-break:normal;overflow-wrap:anywhere}
@media(max-width:900px){
  .competition-scramble-page{padding:clamp(14px,3vw,24px)}
  .competition-scramble-page-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-bottom:16px;padding-bottom:16px!important}
  .competition-scramble-page-header .competition-scramble-print-button{grid-column:1/-1;width:100%;min-height:44px}
  .competition-scramble-page-header h1{font-size:clamp(1.5rem,6vw,2.2rem);overflow-wrap:anywhere}
  .competition-scramble-page-header p{font-size:.84rem;line-height:1.45}
  .competition-scramble-grid{grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:12px;padding:12px}
  .competition-scramble-card{padding:13px}
  .competition-scramble-visual{height:190px}
}
@media(max-width:560px){
  .competition-scramble-page{padding:calc(12px + env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
  .competition-scramble-page-header{grid-template-columns:1fr;gap:9px}
  .competition-scramble-room{justify-self:start;max-width:100%;overflow-wrap:anywhere}
  .competition-scramble-page-header .competition-scramble-print-button{font-size:.8rem}
  .competition-scramble-notice{gap:8px;margin-bottom:12px;padding:10px 11px;font-size:.76rem;line-height:1.4}
  .competition-scramble-notice i{margin-top:2px}
  .competition-scramble-round{margin-bottom:11px;border-radius:11px}
  .competition-scramble-round>summary{align-items:flex-start;flex-wrap:wrap;gap:5px 10px;padding:13px 12px;font-size:.92rem}
  .competition-scramble-round>summary small{flex:0 0 100%;font-size:.68rem}
  .competition-scramble-grid{grid-template-columns:1fr;padding:9px;gap:9px}
  .competition-scramble-card{padding:12px;border-radius:10px}
  .competition-scramble-card-head{margin-bottom:8px;font-size:.72rem}
  .competition-scramble-text{min-height:0;font-size:.88rem;line-height:1.55}
  .competition-scramble-visual{height:168px;margin-top:10px;padding-top:10px}
  .competition-scramble-visual svg{max-width:100%;max-height:158px}
  .competition-scramble-pending{min-height:118px;padding:16px;text-align:center;font-size:.8rem}
  .competition-scramble-empty{margin-top:8vh;padding:32px 18px}
}
@media(max-width:360px){
  .competition-scramble-page-header h1{font-size:1.42rem}
  .competition-scramble-round>summary{padding:12px 10px}
  .competition-scramble-card{padding:10px}
  .competition-scramble-visual{height:148px}
  .competition-scramble-visual svg{max-height:138px}
}

/* Custom tournament setup: add names where they are entered, not in the footer. */
.competition-player-entry{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:700;color:var(--text-secondary,#666)}
.competition-player-input-row{display:flex;align-items:stretch;gap:8px;min-width:0}
.competition-form-grid .competition-player-input-row input{min-width:0;flex:1}
.competition-player-add-button{display:grid;flex:0 0 46px;place-items:center;padding:0!important;font-size:1rem!important}
.competition-judge-scan-short,.competition-create-short{display:none}
@media(max-width:560px){
  #competition-custom-panel .competition-action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #competition-custom-panel .competition-action-row .competition-btn{display:flex;align-items:center;justify-content:center;min-width:0;min-height:42px;padding:9px 8px;font-size:.78rem}
  #competition-custom-panel .competition-create-full,#competition-custom-panel .competition-judge-scan-full{display:none}
  #competition-custom-panel .competition-create-short,#competition-custom-panel .competition-judge-scan-short{display:inline}
  #competition-custom-panel .competition-player-add-button{flex-basis:44px;min-height:44px}
}
@media(max-width:360px){
  #competition-custom-panel .competition-action-row{grid-template-columns:1fr}
}

/* Tournament creation is a workspace: give the form the whole viewport while
   keeping the regular dashboard and spectator surfaces independent. */
.competition-modal.competition-setup-fullscreen{padding:clamp(8px,1.5vw,24px);align-items:stretch;justify-content:stretch}
.competition-modal.competition-setup-fullscreen .competition-modal-content{width:100%;max-width:none;height:100%;max-height:none;overflow:hidden;display:flex;flex-direction:column;border-radius:18px}
.competition-modal.competition-setup-fullscreen .competition-modal-header{flex:0 0 auto;padding:18px clamp(20px,3vw,42px)}
.competition-modal.competition-setup-fullscreen .competition-modal-title{font-size:clamp(1.2rem,1.8vw,1.6rem)}
.competition-modal.competition-setup-fullscreen .competition-view{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:clamp(20px,3vw,42px)}
.competition-modal.competition-setup-fullscreen #competition-setup-view>.competition-mode-tabs,.competition-modal.competition-setup-fullscreen #competition-setup-view>.competition-notice,.competition-modal.competition-setup-fullscreen #competition-setup-view>.competition-mode-panel,.competition-modal.competition-setup-fullscreen #competition-setup-view>.competition-error{width:min(100%,1180px);box-sizing:border-box;margin-left:auto;margin-right:auto}
.competition-modal.competition-setup-fullscreen .competition-mode-tabs{max-width:720px;margin-bottom:22px}
.competition-modal.competition-setup-fullscreen .competition-mode-tab{min-height:52px;font-size:.92rem}
.competition-modal.competition-setup-fullscreen .competition-notice{margin-bottom:22px}
.competition-modal.competition-setup-fullscreen .competition-form-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.competition-modal.competition-setup-fullscreen .competition-form-grid label,.competition-modal.competition-setup-fullscreen .competition-player-entry{font-size:.86rem}
.competition-modal.competition-setup-fullscreen .competition-form-grid input,.competition-modal.competition-setup-fullscreen .competition-form-grid select{min-height:46px;padding:12px 13px;font-size:.95rem}
.competition-modal.competition-setup-fullscreen #competition-custom-panel .competition-player-entry{grid-column:2 / -1;grid-row:2}
.competition-modal.competition-setup-fullscreen .competition-advanced-options{margin:0 0 20px}
.competition-modal.competition-setup-fullscreen .competition-advanced-options .competition-advanced-grid{grid-template-columns:repeat(4,minmax(0,1fr));padding:0 14px 14px;margin:0}
.competition-modal.competition-setup-fullscreen .competition-added-players{min-height:56px;padding:12px;margin-bottom:18px}
.competition-modal.competition-setup-fullscreen .competition-tournament-estimate{margin:0 0 18px;padding:14px}
.competition-modal.competition-setup-fullscreen .competition-action-row{padding-top:2px}
.competition-modal.competition-setup-fullscreen .competition-action-row .competition-btn{min-height:46px;padding:11px 16px;font-size:.88rem}
@media(max-width:1000px){.competition-modal.competition-setup-fullscreen .competition-form-grid,.competition-modal.competition-setup-fullscreen .competition-advanced-options .competition-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.competition-modal.competition-setup-fullscreen .competition-player-entry,.competition-modal.competition-setup-fullscreen #competition-custom-panel .competition-player-entry{grid-column:1 / -1;grid-row:auto}}
@media(max-width:620px){.competition-modal.competition-setup-fullscreen{padding:0}.competition-modal.competition-setup-fullscreen .competition-modal-content{border-radius:0}.competition-modal.competition-setup-fullscreen .competition-modal-header{padding:calc(14px + env(safe-area-inset-top)) 16px 14px}.competition-modal.competition-setup-fullscreen .competition-modal-subtitle{font-size:.72rem}.competition-modal.competition-setup-fullscreen .competition-view{padding:16px 14px calc(18px + env(safe-area-inset-bottom))}.competition-modal.competition-setup-fullscreen .competition-mode-tabs{position:sticky;top:-16px;z-index:2;margin:0 -14px 16px;padding:12px 14px;background:var(--container-bg,#fff);border-bottom:1px solid var(--border-color,#ddd)}.competition-modal.competition-setup-fullscreen .competition-mode-tab{min-height:44px;padding:8px 6px;font-size:.78rem}.competition-modal.competition-setup-fullscreen .competition-notice{margin-bottom:16px}.competition-modal.competition-setup-fullscreen .competition-form-grid,.competition-modal.competition-setup-fullscreen .competition-advanced-options .competition-advanced-grid{grid-template-columns:1fr;gap:12px}.competition-modal.competition-setup-fullscreen .competition-player-entry,.competition-modal.competition-setup-fullscreen #competition-custom-panel .competition-player-entry{grid-column:auto;grid-row:auto}.competition-modal.competition-setup-fullscreen .competition-advanced-options summary{padding:12px}.competition-modal.competition-setup-fullscreen .competition-action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.competition-modal.competition-setup-fullscreen .competition-action-row .competition-btn{display:flex;align-items:center;justify-content:center;min-width:0;padding:10px 8px;font-size:.78rem}.competition-modal.competition-setup-fullscreen .competition-tournament-estimate li{align-items:flex-start;flex-direction:column;gap:1px}.competition-modal.competition-setup-fullscreen .competition-close{padding:8px;font-size:1.35rem}}
@media(max-width:360px){.competition-modal.competition-setup-fullscreen .competition-action-row{grid-template-columns:1fr}}

/* Tournament headers are page content, not app chrome. Avoid inherited header panels. */
.competition-host-page>header.competition-host-page-header,
.competition-projector-screen>header.competition-projector-header,
.competition-timer-page>header.competition-timer-page-header,
.competition-scramble-page>header.competition-scramble-page-header,
.competition-scorecard-page>header.competition-scorecard-page-header{
  height:auto!important;
  min-height:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  color:var(--text-color,#eee)!important;
}

@media screen{
  :is(.light-mode,[data-theme="light"]) .competition-host-page-header,
  :is(.light-mode,[data-theme="light"]) .competition-projector-header,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page-header,
  :is(.light-mode,[data-theme="light"]) .competition-scramble-page-header,
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-page-header{
    background:transparent!important;
    color:#2b2623!important;
  }
  :is(.light-mode,[data-theme="light"]) .competition-host-page-header h1,
  :is(.light-mode,[data-theme="light"]) .competition-projector-header h1,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page-header h1,
  :is(.light-mode,[data-theme="light"]) .competition-scramble-page-header h1,
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-page-header h1,
  :is(.light-mode,[data-theme="light"]) .competition-host-page h2,
  :is(.light-mode,[data-theme="light"]) .competition-host-page h3,
  :is(.light-mode,[data-theme="light"]) .competition-host-page-error h1,
  :is(.light-mode,[data-theme="light"]) .competition-host-page-error h2,
  :is(.light-mode,[data-theme="light"]) .competition-projector-error,
  :is(.light-mode,[data-theme="light"]) .competition-judge-page h1,
  :is(.light-mode,[data-theme="light"]) .competition-judge-page h2,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page h2{
    color:#2b2623!important;
  }
  :is(.light-mode,[data-theme="light"]) .competition-host-page :is(p,label,.muted,.competition-host-player-number,.competition-host-player-result,.competition-host-results-heading span,.competition-host-judges h2 span),
  :is(.light-mode,[data-theme="light"]) .competition-judge-page :is(p,label,.muted,.competition-judge-next span),
  :is(.light-mode,[data-theme="light"]) .competition-timer-page :is(p,label,.muted,.competition-live-timer-status>span:last-child,.competition-live-timer-readout span),
  :is(.light-mode,[data-theme="light"]) .competition-scramble-page :is(p,.muted,.competition-scramble-pending,.competition-scramble-empty),
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-page :is(p,.muted,.competition-scorecard-help){
    color:#655b55!important;
  }
  :is(.light-mode,[data-theme="light"]) .competition-host-page select,
  :is(.light-mode,[data-theme="light"]) .competition-host-page input,
  :is(.light-mode,[data-theme="light"]) .competition-host-page .custom-result-input,
  :is(.light-mode,[data-theme="light"]) .competition-judge-page select,
  :is(.light-mode,[data-theme="light"]) .competition-judge-page input,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page select,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page input{
    background:#fff!important;
    color:#2b2623!important;
    border-color:rgba(105,75,59,.3)!important;
  }
  :is(.light-mode,[data-theme="light"]) .competition-host-page select option,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page select option{background:#fff!important;color:#2b2623!important}
  :is(.light-mode,[data-theme="light"]) .competition-host-page .competition-btn:not(.primary),
  :is(.light-mode,[data-theme="light"]) .competition-judge-page .competition-btn:not(.primary),
  :is(.light-mode,[data-theme="light"]) .competition-timer-page .competition-btn:not(.primary),
  :is(.light-mode,[data-theme="light"]) .competition-scramble-page .competition-btn:not(.primary),
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-page .competition-btn:not(.primary){background:#fff;color:#352d28;border-color:rgba(105,75,59,.25)}
  :is(.light-mode,[data-theme="light"]) .competition-host-page .competition-btn.danger,
  :is(.light-mode,[data-theme="light"]) .competition-judge-page .competition-btn.danger,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page .competition-btn.danger{color:#b53b35!important}
  :is(.light-mode,[data-theme="light"]) .competition-host-page .competition-btn.primary,
  :is(.light-mode,[data-theme="light"]) .competition-judge-page .competition-btn.primary,
  :is(.light-mode,[data-theme="light"]) .competition-timer-page .competition-btn.primary,
  :is(.light-mode,[data-theme="light"]) .competition-scramble-page .competition-btn.primary,
  :is(.light-mode,[data-theme="light"]) .competition-scorecard-page .competition-btn.primary{color:#fff!important}
}

@media screen{
  :is(.light-mode,[data-theme="light"]) .competition-judge-penalties .competition-btn.active,
  :is(.light-mode,[data-theme="light"]) .competition-penalty-toggles .competition-btn.active{
    background:#9b6f5b!important;
    border-color:#744c3b!important;
    color:#fff!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.38),0 0 0 2px rgba(155,111,91,.18);
    font-weight:800;
  }
}

/* A timer result, including its penalty marker, is always a single value. */
.competition-audience-timer-cell>[data-audience-timer-value],
.competition-live-timer-readout strong{display:block;max-width:100%;white-space:nowrap;overflow:visible}
.competition-audience-timer-cell{container-type:inline-size;min-width:0}
.competition-audience-timer-cell>[data-audience-timer-value]{font-size:clamp(2.25rem,7vw,7.5rem)}
@media(max-width:700px){.competition-audience-timer-cell>[data-audience-timer-value]{font-size:clamp(2.25rem,14vw,5.5rem)}}
@media(max-width:560px){.competition-combined-timers .competition-audience-timer-cell>[data-audience-timer-value]{font-size:clamp(1.8rem,10vw,3.5rem)}}
.competition-audience-timer-grid.is-count-2 .competition-audience-timer-cell>[data-audience-timer-value]{font-size:clamp(2rem,5.5vw,5.5rem)}
.competition-audience-timer-grid.is-count-3 .competition-audience-timer-cell>[data-audience-timer-value],.competition-audience-timer-grid.is-count-4 .competition-audience-timer-cell>[data-audience-timer-value]{font-size:clamp(1.7rem,4.4vw,4.5rem)}
@media(max-width:700px){.competition-audience-timer-grid.is-count-2 .competition-audience-timer-cell>[data-audience-timer-value]{font-size:clamp(1.7rem,8.5vw,3.6rem)}.competition-audience-timer-grid.is-count-3 .competition-audience-timer-cell>[data-audience-timer-value],.competition-audience-timer-grid.is-count-4 .competition-audience-timer-cell>[data-audience-timer-value]{font-size:clamp(1.5rem,7vw,3rem)}}
/* Long formatted results scale from the available card width, instead of spilling outside it. */
@supports (width:1cqw){.competition-audience-timer-cell>[data-audience-timer-value].is-wide{font-size:clamp(1.2rem,calc(138cqw / var(--audience-timer-character-count)),4.5rem)!important}.competition-audience-timer-cell>[data-audience-timer-value].is-extra-wide{font-size:clamp(1.1rem,calc(126cqw / var(--audience-timer-character-count)),3.75rem)!important}}

@media screen{
  :is(.light-mode,[data-theme="light"]) .competition-judge-penalties .competition-btn[aria-pressed="true"]{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:3px;
    color:#fff!important;
    border-width:2px!important;
    box-shadow:0 0 0 2px rgba(43,38,35,.14)!important;
  }
  :is(.light-mode,[data-theme="light"]) .competition-judge-penalties .competition-btn[aria-pressed="true"]::before{content:"✓";font-weight:900}
  :is(.light-mode,[data-theme="light"]) .competition-judge-penalties .competition-btn[data-judge-penalty="OK"][aria-pressed="true"]{background:#267a50!important;border-color:#145638!important}
  :is(.light-mode,[data-theme="light"]) .competition-judge-penalties .competition-btn[data-judge-penalty="+2"][aria-pressed="true"]{background:#a46116!important;border-color:#76430b!important}
  :is(.light-mode,[data-theme="light"]) .competition-judge-penalties .competition-btn[data-judge-penalty="DNF"][aria-pressed="true"]{background:#af3f3b!important;border-color:#812622!important}
}

@media screen{
  :is(.dark-mode,[data-theme="dark"]) .competition-judge-penalties .competition-btn[aria-pressed="true"]{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:3px;
    color:#fff!important;
    border-width:2px!important;
    box-shadow:0 0 0 2px rgba(255,255,255,.12),0 5px 13px rgba(0,0,0,.24)!important;
    font-weight:800;
  }
  :is(.dark-mode,[data-theme="dark"]) .competition-judge-penalties .competition-btn[aria-pressed="true"]::before{content:"✓";font-weight:900}
  :is(.dark-mode,[data-theme="dark"]) .competition-judge-penalties .competition-btn[data-judge-penalty="OK"][aria-pressed="true"]{background:#24784d!important;border-color:#62d695!important}
  :is(.dark-mode,[data-theme="dark"]) .competition-judge-penalties .competition-btn[data-judge-penalty="+2"][aria-pressed="true"]{background:#9b5c12!important;border-color:#f0bd59!important}
  :is(.dark-mode,[data-theme="dark"]) .competition-judge-penalties .competition-btn[data-judge-penalty="DNF"][aria-pressed="true"]{background:#a63735!important;border-color:#f1847e!important}
}

/* This is intentionally separate from the timer's typing-mode keypad. */
.competition-judge-keypad-backdrop{position:fixed;inset:0;z-index:24000;display:flex;align-items:flex-end;background:transparent;opacity:0;pointer-events:none;transition:opacity .22s ease}.competition-judge-keypad-backdrop.is-open{opacity:1;pointer-events:auto}.competition-judge-keypad{width:100vw;box-sizing:border-box;padding:10px max(12px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border:1px solid rgba(165,120,101,.42);border-bottom:0;border-radius:18px 18px 0 0;background:var(--container-bg,#171514);color:var(--text-color,#eee);box-shadow:0 -16px 46px rgba(0,0,0,.35);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);touch-action:manipulation}.competition-judge-keypad-backdrop.is-open .competition-judge-keypad{transform:translateY(0)}.competition-judge-keypad-handle{width:42px;height:4px;margin:0 auto 10px;border-radius:999px;background:rgba(165,120,101,.55)}.competition-judge-keypad-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.competition-judge-keypad-grid button{display:grid;place-items:center;min-height:clamp(52px,10vh,74px);border:1px solid rgba(165,120,101,.42);border-radius:11px;background:linear-gradient(135deg,rgba(165,120,101,.52),rgba(120,82,65,.52));color:var(--text-color,#eee);font:800 clamp(1.15rem,5vw,1.55rem)/1 var(--font-primary,inherit);cursor:pointer;-webkit-tap-highlight-color:transparent}.competition-judge-keypad-grid button:active{transform:scale(.97);background:rgba(165,120,101,.78)}.competition-judge-keypad-grid .is-backspace{background:rgba(165,120,101,.18);font-size:clamp(1.05rem,4vw,1.35rem)}.competition-judge-keypad-grid .is-backspace i{pointer-events:none}.competition-judge-score-row input[readonly]{caret-color:var(--primary-color,#a57865);cursor:text}
@media screen{ :is(.light-mode,[data-theme="light"]) .competition-judge-keypad{background:#fff;color:#2b2623;border-color:rgba(105,75,59,.3)}:is(.light-mode,[data-theme="light"]) .competition-judge-keypad-grid button{background:linear-gradient(135deg,#c59a87,#a87561);border-color:#8b604e;color:#fff}:is(.light-mode,[data-theme="light"]) .competition-judge-keypad-grid .is-backspace{background:#f3e8e2;color:#5c4034;border-color:#c7a898}}
@media(prefers-reduced-motion:reduce){.competition-judge-keypad-backdrop,.competition-judge-keypad{transition:none}}
.competition-judge-keypad-backdrop.is-open{pointer-events:none}.competition-judge-keypad{pointer-events:auto}
.competition-judge-page{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.competition-judge-score-row{grid-template-columns:1fr;align-items:stretch}
.competition-judge-score-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
.competition-judge-score-head>span{font-size:.7rem;color:var(--text-secondary,#aaa)}
.competition-judge-row-actions{display:flex;justify-content:flex-end;gap:5px;min-height:28px}
.competition-judge-row-actions .competition-btn{padding:5px 9px;font-size:.65rem}
.competition-judge-row-actions .competition-btn.icon-only{min-width:30px;padding:5px 8px}
.competition-judge-row-actions .competition-btn[hidden]{display:none!important}
.competition-judge-score-row>label{display:block}
.competition-judge-score-row>label input{display:block}
.competition-judge-score-row>input{display:block}
.competition-judge-page-mode>#competition-judge-numeric-keypad{display:flex!important}
.competition-host-player-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.95rem}
.competition-host-judge-status{display:inline-flex;align-items:baseline;gap:4px;min-width:max-content;color:var(--text-secondary,#aaa);font-size:.76rem;white-space:nowrap}.competition-host-judge-status small{font-size:.76rem;color:inherit}
@media(max-width:560px){.competition-host-player-row>.competition-host-player-name{flex:1 1 calc(100% - 31px)}}
.bracket-score-cycle{position:relative;display:grid;align-items:center;width:100%;min-height:2.55em;overflow:hidden}.bracket-score-cycle-view{grid-area:1/1;display:flex;align-items:center;justify-content:flex-end;gap:5px;width:100%;transition:opacity .45s ease,transform .45s ease}.bracket-score-cycle-result{animation:bracketScoreResultCycle 10s ease-in-out infinite}.bracket-score-cycle-result em{padding:2px 4px;border-radius:4px;background:rgba(165,120,101,.2);color:var(--primary-color,#d0a286);font-size:.57rem;font-style:normal;font-weight:850;letter-spacing:.04em}.bracket-score-cycle-result strong{color:#f0d9c9;font-size:.82rem}.bracket-score-cycle-solves{flex-wrap:wrap;gap:3px;animation:bracketScoreSolvesCycle 10s ease-in-out infinite}.bracket-score-cycle-solves .spectator-solve-time{font-size:.68rem}@keyframes bracketScoreResultCycle{0%,45%{opacity:1;transform:translateY(0)}50%,95%{opacity:0;transform:translateY(-6px)}100%{opacity:1;transform:translateY(0)}}@keyframes bracketScoreSolvesCycle{0%,45%{opacity:0;transform:translateY(6px)}50%,95%{opacity:1;transform:translateY(0)}100%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){.bracket-score-cycle-result,.bracket-score-cycle-solves{animation:none}.bracket-score-cycle-result{opacity:1}.bracket-score-cycle-solves{opacity:0}}
.competition-multi-solve-result{display:block;margin-top:3px;color:#efc75e;font-size:.66rem;font-weight:800;letter-spacing:.03em}.competition-podium-place .competition-multi-solve-result{margin-left:auto;margin-top:0}.bracket-champion .competition-multi-solve-result{color:#f1ce67}
.spectator-card.is-assigned{border-color:#37a866;box-shadow:0 0 0 1px rgba(55,168,102,.2),0 10px 24px rgba(55,168,102,.08)}.spectator-multi-solve-time{display:flex;align-items:baseline;gap:6px}.spectator-multi-solve-time>span,.competition-player-history-multi>strong{color:#efc75e;font-size:.68rem;font-weight:850;letter-spacing:.04em}.spectator-multi-solve-time>strong{font:inherit;font-weight:800}.competition-player-history-multi{display:grid;gap:4px;min-width:0}.competition-player-history-solves{display:flex;flex-wrap:wrap;gap:3px;font-size:.67rem}.competition-player-history-solves .spectator-solve-time{white-space:nowrap}
.competition-host-judges .competition-host-judge-row.competition-host-player-row{display:flex;align-items:center;gap:9px;margin-top:8px;padding:9px 10px;border:1px solid var(--border-color,#332f2c);border-radius:9px;background:rgba(255,255,255,.025)}.competition-host-judge-row.competition-host-player-row>.competition-host-player-name{font-size:.95rem;color:var(--text-color,#eee)}.competition-host-judge-row.competition-host-player-row>.competition-host-judge-status{margin-left:auto;font-size:.95rem;color:var(--text-secondary,#aaa)}
.competition-btn.competition-host-time-progress{border:2px solid transparent!important;background:linear-gradient(var(--container-bg,#171514),var(--container-bg,#171514)) padding-box,conic-gradient(from -90deg,#48c978 calc(var(--host-solve-progress,0) * 1turn),rgba(165,120,101,.45) 0) border-box!important;color:var(--text-color,#eee)}.competition-btn.competition-host-time-progress:hover{color:var(--text-color,#eee)}
.competition-host-player-list>.competition-host-player-row,.competition-host-judges .competition-host-judge-row.competition-host-player-row{min-height:68px;box-sizing:border-box}.competition-host-judge-row.competition-host-player-row>.competition-host-player-number{font-size:1rem}.competition-host-judge-row.competition-host-player-row>.competition-host-player-name{font-size:.95rem!important}.competition-host-judge-row.competition-host-player-row>.competition-host-judge-status{font-size:1rem!important}
