/* VoxCourt controller (tablet) — clear match setup. Scoped to the controller screens only. */
html:not(#vcA) body .controller-shell{padding:14px 18px 44px!important}
html:not(#vcA) body .controller-shell>.controller-head{max-width:1100px!important;width:auto!important;margin:0 auto 18px!important;padding:10px 18px!important;border:1px solid rgba(125,238,241,.2)!important;border-radius:18px!important;top:10px!important;box-shadow:0 14px 34px rgba(0,0,0,.28)}
html:not(#vcA) body .controller-shell>.controller-head img{height:30px!important;width:auto!important}
html:not(#vcA) body .controller-shell>.controller-main{max-width:1100px!important;width:auto!important;margin:0 auto!important}
html:not(#vcA) body .controller-live-meta{padding:4px 6px 0!important}
html:not(#vcA) body .controller-live-meta h1{font-size:clamp(1.3rem,3.2vw,2rem)!important}
html:not(#vcA) body .controller-match-setup{padding:clamp(18px,3vw,34px)!important;border-radius:24px!important;background:linear-gradient(160deg,rgba(15,58,82,.55),rgba(6,24,34,.92))!important;border:1px solid rgba(125,238,241,.2)!important}
html:not(#vcA) body .controller-match-setup header{padding-bottom:4px;border-bottom:1px solid rgba(125,238,241,.14);margin-bottom:2px}
html:not(#vcA) body .controller-match-setup header h2{font-size:clamp(1.6rem,4vw,2.3rem)!important}
html:not(#vcA) body #bookingSetupPanel{margin-bottom:0!important;padding:16px 18px!important;border-radius:16px!important;background:rgba(18,198,211,.07)!important;border:1px solid rgba(125,238,241,.22)!important}
html:not(#vcA) body #loadBookingPlayers{min-height:46px;padding:0 20px;border-radius:12px;border:1px solid rgba(125,238,241,.4);background:rgba(125,238,241,.14);color:#e8fdff;font-weight:800;cursor:pointer}
html:not(#vcA) body #loadBookingPlayers:disabled{opacity:.45;cursor:default}
/* players: two clear columns, side A and side B */
html:not(#vcA) body #matchSetupForm>.controller-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px 18px!important}
html:not(#vcA) body #matchSetupForm>.controller-setup-grid>label:not([data-player]){grid-column:1/-1!important;grid-row:1!important;max-width:380px}
html:not(#vcA) body #matchSetupForm label[data-player]{display:grid!important;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:8px;align-content:start;padding:14px 16px 16px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(125,238,241,.14);border-left-width:5px;color:#9fc4cf}
html:not(#vcA) body #matchSetupForm label[data-player^="A"]{border-left-color:#35d6dd}
html:not(#vcA) body #matchSetupForm label[data-player^="B"]{border-left-color:#ff9f5a}
html:not(#vcA) body #matchSetupForm label[data-player="A1"]{grid-column:1;grid-row:2}
html:not(#vcA) body #matchSetupForm label[data-player="A2"]{grid-column:1;grid-row:3}
html:not(#vcA) body #matchSetupForm label[data-player="B1"]{grid-column:2;grid-row:2}
html:not(#vcA) body #matchSetupForm label[data-player="B2"]{grid-column:2;grid-row:3}
html:not(#vcA) body #matchSetupForm label[data-player] input{grid-column:1;grid-row:2;min-width:0;min-height:52px!important;font-size:1.05rem!important}
html:not(#vcA) body #matchSetupForm label[data-player] .controller-player-scan{grid-column:2;grid-row:2;width:auto!important;min-height:52px!important;padding:0 16px;border-radius:12px;border:1px solid rgba(125,238,241,.4);background:rgba(125,238,241,.12);color:#d8fbfc;font-weight:800;font-size:.8rem;cursor:pointer}
html:not(#vcA) body #matchSetupForm select,html:not(#vcA) body #matchSetupForm #teamSize{background:#f4fbfd!important;background-color:#f4fbfd!important;background-image:none!important;color:#0f2a3d!important;opacity:1!important;-webkit-text-fill-color:#0f2a3d!important}
html:not(#vcA) body #matchSetupForm .controller-field select,html:not(#vcA) body #matchSetupForm .controller-field input{min-height:52px!important}
html:not(#vcA) body #matchSetupForm .controller-rule-panel{border-radius:16px!important;padding:18px 20px!important}
html:not(#vcA) body #startMatch{position:sticky;bottom:14px;z-index:6;min-height:62px!important;font-size:1.1rem!important;border-radius:16px!important;box-shadow:0 14px 34px rgba(0,0,0,.4),0 0 0 6px rgba(4,16,24,.55)!important}
@media (max-width:700px){
 html:not(#vcA) body .controller-shell{padding:10px 10px 36px!important}
 html:not(#vcA) body #matchSetupForm>.controller-setup-grid{grid-template-columns:1fr!important}
 html:not(#vcA) body #matchSetupForm label[data-player="A1"],html:not(#vcA) body #matchSetupForm label[data-player="A2"],html:not(#vcA) body #matchSetupForm label[data-player="B1"],html:not(#vcA) body #matchSetupForm label[data-player="B2"]{grid-column:1!important;grid-row:auto!important}
 html:not(#vcA) body .controller-match-setup{padding:16px!important}
}

/* ===== live match: two columns (score + points left, replay / photos / voice right) ===== */
html:not(#vcA) body .vcc-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
html:not(#vcA) body .vcc-col{display:grid;gap:16px;min-width:0;align-content:start}
html:not(#vcA) body .vcc-right:not(:has(>:not([hidden]))){display:none}
html:not(#vcA) body .vcc-cols:not(:has(.vcc-right>:not([hidden]))){grid-template-columns:minmax(0,1fr)}
@media (min-width:1000px){
 html:not(#vcA) body .vcc-cols:has(.vcc-right>:not([hidden])){grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
 html:not(#vcA) body .vcc-cols:has(.vcc-right>:not([hidden])) .vcc-left{position:sticky;top:84px}
}
html:not(#vcA) body .controller-shell>.controller-main{max-width:1240px!important}
html:not(#vcA) body .controller-shell>.controller-head{max-width:1240px!important}
/* score */
html:not(#vcA) body #scorePanel{padding:14px!important;gap:12px!important;border-radius:20px!important}
html:not(#vcA) body #scorePanel article{padding:14px 16px!important;border-radius:16px!important}
html:not(#vcA) body #scorePanel article b{font-size:clamp(4rem,9vw,6.6rem)!important;line-height:.95!important}
html:not(#vcA) body #scorePanel article strong{font-size:1rem!important}
/* big point buttons */
html:not(#vcA) body #pointControls{display:grid!important;grid-template-columns:1fr 1fr;gap:14px!important}
html:not(#vcA) body #pointControls>button{min-height:150px!important;padding:16px!important;border-radius:20px!important;display:grid!important;align-content:center;justify-items:center;gap:8px;color:#fff!important;border:2px solid transparent!important;cursor:pointer;box-shadow:0 12px 28px rgba(0,0,0,.3)!important}
html:not(#vcA) body #pointControls>button:first-child{background:linear-gradient(160deg,#0f6f7a,#0a3f4c)!important;border-color:#35d6dd!important}
html:not(#vcA) body #pointControls>button:last-child{background:linear-gradient(160deg,#5a3f9a,#33245f)!important;border-color:#b58cff!important}
html:not(#vcA) body #pointControls>button span{color:#d9f6f8!important;font-size:.78rem!important;letter-spacing:.14em}
html:not(#vcA) body #pointControls>button strong{color:#fff!important;font-size:clamp(1.1rem,2.4vw,1.7rem)!important;line-height:1.15;text-align:center}
html:not(#vcA) body #pointControls>button:active{transform:scale(.985)}
html:not(#vcA) body #pointControls>button:disabled{opacity:.45;cursor:not-allowed}
html:not(#vcA) body #secondaryControls{display:grid!important;grid-template-columns:1fr 1fr;gap:12px!important}
html:not(#vcA) body #secondaryControls button{min-height:54px!important;border-radius:14px!important;background:rgba(255,255,255,.06)!important;color:#e8f5fd!important;border:1px solid rgba(125,238,241,.28)!important;font-weight:800;cursor:pointer}
html:not(#vcA) body #secondaryControls button:last-child{color:#ffd08a!important;border-color:rgba(255,190,90,.45)!important}
html:not(#vcA) body #secondaryControls button:disabled{opacity:.45}
/* replay */
html:not(#vcA) body #controllerReplayPanel{padding:16px!important;border-radius:20px!important}
html:not(#vcA) body #controllerReplayStage{height:auto!important;aspect-ratio:16/9;max-height:340px;min-height:0!important}
html:not(#vcA) body #controllerReplayVideo{width:100%!important;height:100%!important;object-fit:contain}
html:not(#vcA) body #controllerReplayPanel button:not(.controller-replay-primary){background:rgba(255,255,255,.07)!important;color:#e8f5fd!important;border:1px solid rgba(125,238,241,.25)!important;border-radius:12px!important;min-height:44px;font-weight:800;cursor:pointer}
html:not(#vcA) body #controllerReplayPanel button.active{background:rgba(18,198,211,.25)!important;border-color:#35d6dd!important}
html:not(#vcA) body #controllerReplayPanel .controller-replay-head,html:not(#vcA) body #controllerReplayPanel .controller-replay-settings{gap:8px}
html:not(#vcA) body #controllerReplayPanel .controller-replay-stage-top button{min-height:36px}
/* photos: compact */
html:not(#vcA) body #controllerPhotoPanel{padding:14px 16px!important;border-radius:20px!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-preview{aspect-ratio:16/9!important;max-height:120px!important;height:auto!important;min-height:0!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-card{padding:10px!important;gap:6px!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-actions button:not(.controller-photo-remove){background:rgba(255,255,255,.07)!important;color:#e8f5fd!important;border:1px solid rgba(125,238,241,.25)!important;border-radius:11px!important;min-height:42px;font-weight:800}
/* voice, lifecycle */
html:not(#vcA) body #controllerVoicePanel{padding:14px 16px!important;border-radius:20px!important}
html:not(#vcA) body #controllerVoicePanel .controller-voice-readout{gap:8px!important}
html:not(#vcA) body #lifecycleControls{padding:14px 18px!important;border-radius:20px!important;display:flex!important;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
html:not(#vcA) body #lifecycleControls h2{font-size:1.2rem!important;margin:2px 0!important}
html:not(#vcA) body #endMatch,html:not(#vcA) body #abortMatch{min-height:46px;padding:0 18px;border-radius:12px;font-weight:800;cursor:pointer}
html:not(#vcA) body #feedback{margin:6px 0 0!important;text-align:center}
@media (max-width:700px){
 html:not(#vcA) body #pointControls>button{min-height:120px!important}
 html:not(#vcA) body #controllerReplayStage{max-height:220px}
}
html:not(#vcA) body #scorePanel article{display:grid!important;align-content:start;position:relative}
html:not(#vcA) body #scorePanel article strong{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;line-height:1.2;padding-right:70px}
html:not(#vcA) body #scorePanel .controller-server{position:absolute!important;top:12px;right:12px;margin:0!important}

/* ===== v2: replay = one button -> full screen player; voice = one button -> popup; compact photos ===== */
html:not(#vcA) body #controllerReplayPanel:not(.vcc-open),html:not(#vcA) body #controllerVoicePanel:not(.vcc-open){display:none!important}
html:not(#vcA) body.vcc-lock,html:not(#vcA) body.vcc-lock{overflow:hidden!important}
html:not(#vcA) body .vcc-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:12px}
html:not(#vcA) body .vcc-toolbar button{min-height:84px;border-radius:18px;border:1px solid rgba(125,238,241,.3);background:rgba(255,255,255,.06);color:#e8f5fd;font-weight:900;font-size:1.05rem;cursor:pointer;display:grid;gap:4px;place-items:center;padding:10px}
html:not(#vcA) body .vcc-toolbar button small{font-size:.72rem;font-weight:700;color:#9fc4cf;letter-spacing:.04em}
html:not(#vcA) body .vcc-toolbar .vcc-replay-btn{background:linear-gradient(135deg,#35dedb,#0aa6b3);color:#031416;border-color:transparent;box-shadow:0 12px 28px rgba(0,0,0,.3)}
html:not(#vcA) body .vcc-toolbar .vcc-replay-btn small{color:#05363b}
html:not(#vcA) body .vcc-toolbar button:active{transform:scale(.985)}
html:not(#vcA) body .vcc-close{position:absolute;top:10px;right:10px;z-index:5;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.55);color:#fff;font-size:26px;line-height:1;cursor:pointer;display:grid;place-items:center}
/* full-screen replay player */
html:not(#vcA) body #controllerReplayPanel.vcc-open{position:fixed!important;inset:0!important;z-index:10000;margin:0!important;padding:10px!important;border-radius:0!important;background:#02080c!important;display:flex!important;flex-direction:column;gap:8px;border:0!important}
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-head,
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-timeline,
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplaySeekBack,
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplaySeekForward,
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-tool-group:has(.controller-replay-zoom),
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-status,
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplayFullscreen,html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplayBackScore{display:none!important}
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-bottom{display:flex!important;justify-content:center;flex:none}
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplayLoad{flex:none;width:auto;max-width:none;padding:0 28px}
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplayBody{flex:1;min-height:0;display:flex!important;flex-direction:column;gap:8px}
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplayStage{flex:1;min-height:0;max-height:none!important;aspect-ratio:auto!important;height:auto!important;border-radius:14px}
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-camera-row,
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-main-controls,
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-tools{display:flex!important;gap:8px;justify-content:center;flex:none}
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-tool-group{background:none!important;padding:0!important;display:flex;align-items:center;gap:8px}
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-tool-group>span{display:none}
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplaySpeedButtons{display:flex;gap:8px}
html:not(#vcA) body #controllerReplayPanel.vcc-open button:not(.vcc-close){min-height:52px!important;min-width:84px;flex:1;max-width:220px}
html:not(#vcA) body #controllerReplayPanel.vcc-open #controllerReplayPlayPause{flex:2;max-width:320px;background:linear-gradient(135deg,#35dedb,#0aa6b3)!important;color:#031416!important;border:0!important}
html:not(#vcA) body #controllerReplayPanel.vcc-open .controller-replay-stage-top{pointer-events:none}
/* voice popup */
html:not(#vcA) body #controllerVoicePanel.vcc-open{position:fixed!important;z-index:10000;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 24px);overflow:auto;margin:0!important;box-shadow:0 0 0 100vmax rgba(2,8,12,.78),0 30px 80px rgba(0,0,0,.6)!important;background:#0a2230!important}
/* compact photos */
html:not(#vcA) body #controllerPhotoPanel{padding:10px 12px!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-head h2{font-size:.95rem!important;margin:0!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-head .controller-kicker{display:none}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-preview{aspect-ratio:auto!important;height:56px!important;max-height:56px!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-placeholder{font-size:1.2rem!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-card{padding:8px!important}
html:not(#vcA) body #controllerPhotoPanel .controller-photo-actions button:not(.controller-photo-remove){min-height:36px!important;font-size:.8rem}
html:not(#vcA) body #controllerPhotoStatus{display:none}
html:not(#vcA) body #controllerVoicePanel .controller-voice-head{padding-right:58px}
