*{box-sizing:border-box}body{margin:0;background:#101b15;color:#f7f8f0;font:16px/1.5 system-ui,sans-serif}main{max-width:760px;margin:auto;padding:24px 30px 48px;text-align:center}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}header img{width:88px;border-radius:12px}.badge{font-size:10px;letter-spacing:1px;border:1px solid #4b5c42;border-radius:20px;padding:8px 12px;color:#c2d0b6}.eyebrow{font-size:11px;letter-spacing:3px;color:#c6f42e}h1{font-size:clamp(42px,8vw,66px);line-height:1.04;letter-spacing:-2px;margin:20px 0}.court-label{font-weight:700;letter-spacing:3px;margin:25px}.hint{font-size:12px;color:#aeba9f;max-width:600px;margin:15px auto}label{display:block;margin:12px 0;font-weight:600}input{width:100%;max-width:480px;background:#f7f8f0;color:#101b15;border:0;border-radius:40px;padding:18px 24px;font:inherit}button,.button{display:inline-block;border:0;border-radius:30px;background:#c6f42e;color:#10200d;padding:16px 30px;font:700 16px system-ui,sans-serif;text-decoration:none;cursor:pointer;margin:12px 6px}#start,#stop{display:block;width:140px;height:140px;border-radius:50%;margin:28px auto;background:#f32135;color:white;font-size:24px;border:5px solid #ffc9ce;box-shadow:0 0 0 12px #f3213528}.secondary{background:#283926;color:#f7f8f0;border:1px solid #557043}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #c6f42e;outline-offset:5px}video{width:100%;max-height:240px;background:black;border-radius:16px;object-fit:contain}#timer{font-size:28px;font-variant-numeric:tabular-nums}#status{font-size:14px;min-height:24px;color:#d7e5c9}progress{width:100%;accent-color:#c6f42e}details{margin-top:30px;border-top:1px solid #354830;padding-top:20px;text-align:left;font-size:13px}#history a{display:block;padding:12px;color:#d5eeab}.replay{max-width:1100px;text-align:left}.replay h1{font-size:44px}.replay header img{width:80px}.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.video-card{padding:20px;background:#1e3024;border:1px solid #354830;border-radius:16px}.video-card:first-child{grid-column:1/-1}.video-card video{max-height:none;aspect-ratio:16/9}.video-card p{font-size:13px;color:#b5c5a9}.video-card .button{font-size:13px;margin-left:0}.render-source{position:fixed;width:2px;height:2px;left:0;bottom:0;opacity:.01;pointer-events:none}[hidden]{display:none!important}@media(max-width:620px){main{padding:18px}.badge{font-size:8px}.video-grid{grid-template-columns:1fr}.replay h1{font-size:34px}}
/* Indoor court background supplied by the user, with mockup UI removed. */
body:has(.controller){background:#101b15 url('/assets/indoor-court.png') left bottom/cover fixed no-repeat;min-height:100vh;position:relative}body:has(.controller)::before{content:'';position:fixed;inset:0;background:linear-gradient(180deg,rgba(4,17,17,.57),rgba(4,17,17,.25) 60%,rgba(4,17,17,.65));pointer-events:none}.controller{position:relative;z-index:1;text-shadow:0 2px 8px #0008}.controller .hint,.controller #status{color:#f0f5ec;text-shadow:0 1px 5px #000}.controller .badge{background:#10231db8;border-color:#9eb09a}.controller input,.controller button,.controller .button{text-shadow:none}.controller details{background:#10231dba;border:1px solid #9ba99a55;border-radius:12px;padding:15px}.controller header img{box-shadow:0 4px 24px #0005}@media(max-width:620px){body:has(.controller){background-position:left bottom;background-attachment:scroll}}

.controller header{justify-content:center;position:relative;flex-wrap:wrap;gap:12px}.controller header img{width:126px;height:126px;object-fit:contain}.controller header .badge{position:absolute;right:0;top:12px}.countdown{margin:20px auto;padding:18px 30px;background:#0c201de0;border:1px solid #c6f42e88;border-radius:18px;max-width:350px}.countdown span{font-size:11px;letter-spacing:3px;color:#c6f42e}.countdown #timer{font-size:64px;font-weight:750;line-height:1;margin:12px 0;letter-spacing:2px}.countdown small{font-size:11px;color:#d3dfcb}@media(max-width:620px){.controller header .badge{position:static}.controller header{flex-direction:column}.controller header img{width:110px;height:110px}}
/* Compact tablet header keeps the brand and session controls in view. */
.controller header{margin-bottom:12px;min-height:64px;flex-direction:row;justify-content:space-between;gap:10px}.controller header img{display:block;width:72px;height:72px;max-width:100%;object-fit:contain;border-radius:10px}.controller header .badge{position:static;max-width:190px;font-size:9px}.controller h1{font-size:clamp(34px,5vw,48px);margin:14px 0}.controller .eyebrow{margin:10px 0}.controller .court-label{margin:16px 0}.controller #start{margin:20px auto;width:120px;height:120px}@media(max-width:620px){.controller header{flex-direction:row}.controller header img{width:64px;height:64px}.controller header .badge{font-size:8px;max-width:170px}.controller{padding-top:14px}}
/* Brand-first controller: a centered mark on a deliberate dark plate. */
.controller{max-width:680px;padding-top:20px}.controller header{justify-content:center;flex-direction:column;gap:10px;margin:0 auto 18px}.controller header a{display:block;background:#000;border:1px solid #c6f42e65;border-radius:18px;padding:0 16px;box-shadow:0 8px 32px #0007}.controller header img{width:150px;height:150px;border-radius:0;object-fit:contain;box-shadow:none}.controller header .badge{background:#10231dcc;font-size:8px;max-width:none;padding:5px 10px}.controller h1{font-size:clamp(28px,4vw,38px);line-height:1.1;margin:10px 0}.controller .eyebrow{font-size:9px;margin:8px 0;letter-spacing:2px}.controller .court-label{margin:12px 0;font-size:15px}.controller label{font-size:14px}.controller input{padding:15px 20px}.controller #start{width:112px;height:112px;margin:20px auto}.controller .hint{font-size:11px;line-height:1.45}.controller #status{font-size:12px}.controller details{margin-top:18px}@media(max-width:620px){.controller{padding:16px 18px 28px}.controller header{flex-direction:column;margin-bottom:12px}.controller header img{width:132px;height:132px}.controller header a{padding:0 20px}.controller header .badge{max-width:none}.controller h1{font-size:30px}}
.controller #start,.controller #stop{display:flex;align-items:center;justify-content:center;padding:0;line-height:1;text-align:center;letter-spacing:0;flex-shrink:0}

.recording-indicator{color:#c6f42e;font-weight:700;font-size:13px;letter-spacing:2px;margin:20px 0}.controller #stop{width:150px;height:150px;max-width:100%;margin:28px auto;font-size:28px;padding:0;display:flex;align-items:center;justify-content:center}.controller:has(#recording:not([hidden])) .countdown{margin-top:20px}.controller:has(#recording:not([hidden])) header{margin-bottom:10px}

.controller .button,.controller progress{background:var(--client-accent,#c6f42e);color:var(--client-accent-text,#10200d);accent-color:var(--client-accent,#c6f42e)}

.replay-page #watch-videos article{margin:28px 0;text-align:left}.replay-page #watch-videos h2{font-size:20px;margin:0 0 12px}.replay-page .watch-actions{display:flex;justify-content:flex-start;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px}.replay-page .watch-actions .button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:44px;margin:0;padding:10px 16px;border-radius:9px;font-size:13px;line-height:1.2;font-weight:600}.replay-page .watch-actions .secondary{background:transparent;border-color:#52644f;color:#e1e9d8}.replay-page .watch-share-note{font-size:11px;line-height:1.5;color:#aeba9f;margin:8px 0 24px;max-width:520px}.watch-actions [hidden]{display:none!important}
/* Client badge blended into the controller action; LodiCam header stays intact. */
.controller #start.client-branded-control,.controller #stop.client-branded-control{position:relative;isolation:isolate;overflow:hidden;padding:0;display:grid;place-items:center}
.controller .controller-client-logo{position:absolute;inset:10%;width:80%;height:80%;object-fit:contain;opacity:.24;pointer-events:none;z-index:-1;border-radius:50%;mix-blend-mode:luminosity}
.controller .controller-action-label{position:relative;color:#fff;text-shadow:0 2px 6px #0009;font-weight:800;pointer-events:none}
.controller header img{background:transparent;object-fit:contain;border-radius:0}
/* Controller co-branding stays separate from the recording actions. */
.controller .controller-brand-pair{display:flex;align-items:center;justify-content:center;gap:18px}
.controller .controller-brand-pair>img:first-child{width:120px;height:96px;object-fit:contain;margin:0}
.controller .controller-brand-divider{display:block;width:1px;height:54px;background:#ffffff50}
.controller .controller-brand-pair .controller-venue-logo{width:68px;height:68px;object-fit:contain;margin:0;border-radius:50%;background:transparent}
.controller #start{background:#b5f000;color:#101b15;border-color:#eaffc7;text-shadow:none}
.controller #start:hover:not(:disabled){background:#c6f42e}
.controller #stop{background:#f32135;color:#fff;border-color:#ffe5e8}
.controller #stop:hover:not(:disabled){background:#ff3548}
@media(max-width:480px){.controller .controller-brand-pair{gap:14px}.controller .controller-brand-pair>img:first-child{width:100px;height:80px}.controller .controller-brand-pair .controller-venue-logo{width:58px;height:58px}}
/* Restore the centered controller composition and original brand prominence. */
body:has(.controller){display:flex;flex-direction:column;align-items:center;min-height:100svh}
body:has(.controller)>.controller{width:100%;max-width:680px;margin:auto;padding:30px 28px;text-align:center}
.controller header{width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;margin:0 auto 18px}
.controller .controller-brand-pair{width:100%;justify-content:center;align-self:center;gap:22px}
.controller .controller-brand-pair>img:first-child{width:150px;height:150px;object-fit:contain}
.controller .controller-brand-pair .controller-venue-logo{width:88px;height:88px}
.controller .controller-brand-divider{height:70px}
.controller header .badge{position:static;align-self:center;margin:0}
.controller #start{box-shadow:0 0 0 12px #b5f00028}
@media(max-width:620px){body:has(.controller)>.controller{padding:24px 18px}.controller .controller-brand-pair{gap:18px}.controller .controller-brand-pair>img:first-child{width:132px;height:132px}.controller .controller-brand-pair .controller-venue-logo{width:76px;height:76px}.controller .controller-brand-divider{height:60px}}
.controller .controller-brand-pair .controller-venue-logo{width:150px;height:150px;object-fit:contain}
@media(max-width:620px){.controller .controller-brand-pair .controller-venue-logo{width:132px;height:132px}}
@media(max-width:360px){.controller .controller-brand-pair>img:first-child,.controller .controller-brand-pair .controller-venue-logo{width:116px;height:116px}.controller .controller-brand-pair{gap:12px}}
/* Responsive controller: fluid branding, touch targets, and short-screen spacing. */
body:has(.controller){width:100%;min-width:0;overflow-x:clip;min-height:100svh}
body:has(.controller)>.controller{width:100%;min-width:0;padding:clamp(16px,3vh,30px) clamp(14px,4vw,28px)}
.controller>*{max-width:100%;min-width:0}.controller form,.controller section{width:100%;min-width:0}
.controller .controller-brand-pair{gap:clamp(12px,3vw,22px);flex-wrap:nowrap;min-width:0}
.controller .controller-brand-pair>img:first-child,.controller .controller-brand-pair .controller-venue-logo{width:clamp(72px,26vw,150px);height:clamp(72px,26vw,150px);flex-shrink:1;min-width:0;max-height:20svh;object-fit:contain}
.controller .controller-brand-divider{height:clamp(40px,10vh,70px);flex-shrink:0}
.controller header .badge{max-width:100%;white-space:normal;overflow-wrap:anywhere}
.controller input,.controller select{max-width:min(100%,480px);min-width:0;min-height:48px;font-size:16px}
.controller #status,.controller .hint{overflow-wrap:anywhere}
.controller #start,.controller #stop{width:clamp(96px,17vh,140px);height:clamp(96px,17vh,140px);margin:20px auto;font-size:24px}
.controller .countdown{width:min(100%,350px);padding:16px 20px}.controller .countdown #timer{font-size:clamp(44px,9vw,64px)}
@media(max-height:740px){.controller header{gap:8px;margin-bottom:10px}.controller .controller-brand-pair>img:first-child,.controller .controller-brand-pair .controller-venue-logo{width:112px;height:112px;max-width:26vw}.controller h1{font-size:30px;margin:8px 0}.controller .court-label{margin:8px 0}.controller .hint{margin:10px auto}.controller label{margin:8px 0}.controller #start,.controller #stop{margin:16px auto}.controller .countdown{margin:12px auto}.controller .recording-indicator{margin:10px 0}}
@media(max-height:540px){body:has(.controller)>.controller{padding-top:12px;padding-bottom:12px}.controller header{gap:6px;margin-bottom:6px}.controller .controller-brand-pair>img:first-child,.controller .controller-brand-pair .controller-venue-logo{width:72px;height:72px}.controller .controller-brand-divider{height:40px}.controller .eyebrow{margin:4px 0;font-size:8px}.controller h1{font-size:26px;margin:6px 0}.controller .court-label{margin:6px 0;font-size:13px}.controller input{padding:12px 18px}.controller #start,.controller #stop{width:90px;height:90px;margin:14px auto}.controller .countdown{padding:10px 16px;margin:8px auto}.controller .countdown #timer{font-size:44px;margin:8px 0}.controller #status{margin:8px 0}.controller>.hint{font-size:10px}}
@media(max-width:380px){.controller h1{font-size:28px}.controller .controller-brand-pair>img:first-child,.controller .controller-brand-pair .controller-venue-logo{max-width:25vw}.controller #status{font-size:11px}}
.controller #session-form .controller-instruction{font-size:15px;line-height:1.5;font-weight:500;margin:12px auto 0;max-width:none;color:#fff;white-space:nowrap;font-size:clamp(10px,2.2vw,15px)}
.controller{--record-control-size:clamp(96px,17vh,140px)}.controller #start,.controller #stop{width:var(--record-control-size);height:var(--record-control-size);min-width:var(--record-control-size);min-height:var(--record-control-size);max-width:none;max-height:none;border-width:5px;font-size:24px;padding:0}@media(max-height:540px){.controller{--record-control-size:90px}}
