:root{color-scheme:dark;--bg:#0b1220;--bg2:#111d30;--panel:#172438;--line:#334058;--text:#f8fafc;--muted:#a7b6cd;--lime:#d6fa72;--cyan:#8bdde2;--orange:#faab74;--danger:#ff9597;--radius:19px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:3px}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:-.055em}em{font-style:normal;color:var(--lime)}.hidden{display:none!important}.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:800;color:var(--lime)}.lead{font-size:17px;line-height:1.7;color:var(--muted)}.muted-small{font-size:13px;line-height:1.6;color:var(--muted)}.error-text{color:var(--danger);line-height:1.5;min-height:1em}.brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;letter-spacing:.1em;white-space:nowrap}.brand b{font-weight:900}.brand-mark{font-size:29px;color:var(--lime);font-weight:300}.btn-primary{border:0;background:var(--lime);color:#18221a;border-radius:11px;padding:17px 22px;font-size:14px;font-weight:900;letter-spacing:.065em;display:flex;gap:14px;align-items:center;justify-content:space-between;transition:filter .15s,transform .15s}.btn-primary:not(:disabled):active{transform:translateY(2px)}.btn-primary:not(:disabled):hover{filter:brightness(1.07)}.btn-primary span{font-size:25px;font-weight:400}.btn-large{min-height:72px;padding:19px 27px}.btn-secondary{border:1px solid var(--line);color:var(--text);background:var(--panel);border-radius:10px;padding:11px 17px;font-weight:700}.btn-ghost{border:none;color:var(--muted);background:transparent;padding:10px 14px;text-decoration:underline;text-underline-offset:4px}.chip,.mode-chip{padding:8px 13px;border:1px solid #455367;border-radius:50px;font-size:10px;letter-spacing:.15em;font-weight:800;color:var(--muted)}.kiosk-shell{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse at 89% 20%,rgba(49,100,107,.2),transparent 40%),linear-gradient(165deg,#0b1220,#101b2b 60%,#0b1321)}.topbar,.kiosk-footer{display:flex;align-items:center;justify-content:space-between;padding:17px clamp(20px,5vw,80px);border-bottom:1px solid #29354a}.top-actions{display:flex;gap:12px;align-items:center}.icon-button{border:1px solid #36435a;color:var(--muted);border-radius:10px;background:#142137;padding:7px 12px;font-size:20px}.kiosk-footer{border-bottom:0;border-top:1px solid #253149;font-size:10px;color:#8191a8;letter-spacing:.15em}.kiosk-stage{display:grid;flex:1;padding:clamp(20px,3vw,45px) clamp(20px,5vw,80px);align-items:center;min-height:590px}.intro-layout{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:30px;max-width:1450px;width:100%;margin:0 auto}.intro-copy{max-width:630px}.intro-copy h1,.qr-copy h2{font-weight:950;font-size:clamp(60px,7.5vw,122px);line-height:1.03;margin:14px 0 23px}.intro-copy .lead{max-width:500px}.steps-inline{display:flex;gap:10px;align-items:center;font-size:11px;letter-spacing:.1em;font-weight:800;color:#d1dce8;margin:30px 0}.steps-inline i{height:1px;background:#54627a;width:22px}.check-card{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.045);padding:12px 14px;border:1px solid #334158;border-radius:10px;margin-bottom:10px;color:#b7c6d8;font-size:12px;line-height:1.45;cursor:pointer}.check-card input{accent-color:var(--lime);width:20px;height:20px;flex-shrink:0;margin:1px 0}.intro-copy .btn-primary{width:100%;max-width:430px;margin-top:19px}.intro-art{position:relative;min-height:540px;perspective:900px}.showcase-card{width:40%;height:68%;position:absolute;border:8px solid #e7f0e5;border-bottom:32px solid #e7f0e5;background:linear-gradient(155deg,#17344d,#58a9a6);color:#fff;padding:18px;box-shadow:0 36px 65px rgba(0,0,0,.45);display:flex;flex-direction:column;justify-content:space-between}.showcase-card span{font-size:35px;font-weight:900}.showcase-card b{font-size:14px;letter-spacing:.14em}.showcase-card .sport-silhouette{font-size:150px;line-height:1;opacity:.4;text-align:center}.tilt-one{left:2%;top:14%;transform:rotate(-15deg);background:linear-gradient(155deg,#163b57,#3aa0c7)}.tilt-two{left:32%;top:0;transform:rotate(7deg);z-index:2;background:linear-gradient(155deg,#3d3529,#cf8437)}.tilt-three{left:60%;top:19%;transform:rotate(16deg);background:linear-gradient(155deg,#264d47,#559f79)}.setup-panel{display:flex;gap:15px;align-items:end;padding:15px clamp(20px,5vw,80px);background:#1b2b40;flex-wrap:wrap}.setup-panel div{max-width:330px}.setup-panel h3{margin:0 0 6px}.setup-panel p{font-size:11px;margin:0;color:var(--muted)}.setup-panel label{display:grid;gap:5px;font-size:11px;color:var(--muted)}.setup-panel input{min-height:38px;min-width:210px;padding:10px;background:#0b1525;color:#fff;border:1px solid var(--line);border-radius:7px}.camera-layout{display:grid;grid-template-columns:minmax(330px,1.5fr) minmax(240px,.65fr);gap:50px;align-items:center;width:100%;max-width:1400px;margin:auto}.camera-box{width:100%;aspect-ratio:4/3;background:#020609;border-radius:24px;position:relative;overflow:hidden;border:2px solid #34475b;box-shadow:0 30px 80px #0005}.camera-box video{width:100%;height:100%;object-fit:contain;transform:scaleX(-1)}.camera-reticle{position:absolute;inset:40px;pointer-events:none}.corner{position:absolute;width:40px;height:40px;border:4px solid var(--lime)}.tl{top:0;left:0;border-right:0;border-bottom:0}.tr{top:0;right:0;border-left:0;border-bottom:0}.bl{bottom:0;left:0;border-right:0;border-top:0}.br{bottom:0;right:0;border-left:0;border-top:0}.camera-label{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.12em;font-weight:800;background:#000b;padding:9px 14px;border-radius:50px;white-space:nowrap}.camera-count{position:absolute;inset:0;display:grid;place-content:center;font-size:clamp(140px,19vw,300px);font-weight:950;color:var(--lime);background:#0007;text-shadow:0 9px 38px #0009}.camera-side h2{font-size:clamp(46px,5.5vw,90px);line-height:1.06}.camera-side p:not(.eyebrow){color:var(--muted);line-height:1.7}.camera-side .btn-primary{width:100%}.center-stage{text-align:center;max-width:650px;margin:auto}.center-stage h2{font-size:clamp(40px,6vw,86px)}.center-stage>p:not(.eyebrow){color:var(--muted)}.big-spinner{width:90px;height:90px;border:7px solid #33435a;border-top-color:var(--lime);border-radius:100%;animation:spin 1s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}.qr-layout{display:grid;grid-template-columns:1fr .75fr;gap:80px;align-items:center;max-width:1250px;width:100%;margin:auto}.qr-copy>p:not(.eyebrow){max-width:470px;color:var(--muted);line-height:1.8}.qr-copy h2{font-size:clamp(56px,6.5vw,104px)}.qr-progress{margin:35px 0;width:100%;max-width:480px}.qr-progress>span{font-size:11px;letter-spacing:.16em;color:var(--lime)}.count-bar,.progress-rail,.slide-meter{height:6px;background:#2a394d;border-radius:20px;overflow:hidden;margin-top:13px}.count-bar>div,.progress-rail>div,.slide-meter>div{height:100%;background:var(--lime);width:0;transition:width .25s linear}.qr-card{background:#eaf1ea;color:#101827;border:14px solid #1a2b3c;border-radius:26px;text-align:center;padding:25px;max-width:400px;margin:auto;box-shadow:0 22px 75px #0009}.qr-card>span{font-size:13px;letter-spacing:.16em;font-weight:900}.qr-card img{display:block;width:min(100%,315px);height:auto;aspect-ratio:1;object-fit:contain;margin:18px auto;background:white;image-rendering:auto}.qr-card p{font-weight:900;font-size:20px;margin:5px 0}.qr-card small{color:#506075}.gallery-shell{background:#0b1423;min-height:100vh;max-width:1120px;margin:auto;padding:0 clamp(18px,4vw,54px)}.gallery-header{padding:28px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2a3950}.gallery-intro{padding:60px 0 35px}.gallery-intro h1{font-size:clamp(50px,7vw,88px);line-height:1.02;max-width:900px;margin-bottom:18px}.gallery-intro>p:not(.eyebrow){color:var(--muted);line-height:1.6}.gallery-progress{border:1px solid #344158;background:#162235;padding:19px 23px;border-radius:15px;margin-top:32px}.progress-top{display:flex;justify-content:space-between;align-items:center;gap:15px}.progress-top span{font-size:12px;color:var(--lime);font-weight:900}.gallery-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:12px 0 45px}.photo-tile{background:#162237;border:1px solid #344258;border-radius:15px;overflow:hidden;min-width:0}.photo-tile .photo-preview{aspect-ratio:3/4;background:linear-gradient(145deg,#1e3545,#223144);display:flex;align-items:center;justify-content:center;position:relative}.photo-tile img{width:100%;height:100%;object-fit:contain}.photo-placeholder{font-size:40px;color:#6c7f94}.photo-status{position:absolute;bottom:9px;left:10px;background:#1b263acc;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.08em;padding:5px 9px;border-radius:5px}.photo-status.ready{color:var(--lime)}.photo-content{padding:13px}.photo-content strong{font-size:14px}.photo-content p{font-size:11px;color:var(--muted);min-height:26px;margin:8px 0}.photo-content a{display:block;border-radius:7px;padding:11px 6px;background:var(--lime);color:#17200e;text-align:center;text-decoration:none;font-size:11px;font-weight:900}.photo-content .fake-link{padding:11px;background:#304057;color:#9ba9be;border-radius:7px;font-size:11px;font-weight:900;text-align:center}.gallery-disclaimer{display:flex;gap:20px;border-top:1px solid #283850;padding:20px 0;color:#a1b3c9;font-size:12px;line-height:1.6}.gallery-disclaimer span{font-size:28px;color:var(--lime)}.gallery-footer{text-align:center;border-top:1px solid #283850;padding:25px;color:#71849b;font-size:10px;letter-spacing:.15em}.gallery-footer span{color:var(--lime)}.slide-root{height:100vh;min-height:420px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 50%,#1d2c40,#050b16 75%);overflow:hidden}.slide-header,.slide-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 3vw}.slide-header{border-bottom:1px solid #2b3d50}.slide-footer{border-top:1px solid #2b3d50;color:#8eabc4;font-size:10px;letter-spacing:.18em}.slide-header-right,.slide-controls{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:11px;letter-spacing:.1em}.live-dot{height:8px;width:8px;display:inline-block;border-radius:100%;background:#b7fa70;box-shadow:0 0 15px #b7fa70}.slide-icon,.slide-controls button{border:1px solid #415267;background:#192a3c;color:#cce0f0;border-radius:7px;padding:6px 10px}.slide-main{min-height:0;flex:1;display:flex;flex-direction:column;padding:12px 3vw}.slide-image-wrap{min-height:0;flex:1;position:relative;display:grid;place-items:center;overflow:hidden;border-radius:9px;background:#080e18}.slide-image-wrap>img{width:100%;height:100%;object-fit:contain;transition:opacity .45s ease}.slide-image-wrap>img.fade{opacity:0}.slide-waiting{text-align:center;max-width:770px}.slide-waiting>span{font-size:60px;color:var(--lime)}.slide-waiting h1{font-size:clamp(65px,8vw,140px);line-height:1}.slide-waiting p{font-size:20px;color:#aec1d6}.slide-info{display:flex;align-items:center;justify-content:space-between;gap:35px;padding:13px 0 2px}.slide-info .eyebrow{margin:0}.slide-meter{margin:0;max-width:400px;flex:1}.slide-info>span:last-child{font-size:11px;letter-spacing:.15em;color:#a2b0c6}.admin-shell{background:var(--bg);min-height:100vh;padding:0 clamp(20px,4vw,80px) 40px}.admin-header{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.admin-top-right{display:flex;gap:10px;align-items:center}.admin-title{margin:35px 0}.admin-title h1{font-size:clamp(40px,5vw,76px);margin-bottom:12px}.metrics-row{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:25px 0}.metric-card{border:1px solid var(--line);background:#172539;border-radius:14px;padding:24px}.metric-card span{display:block;color:var(--muted);font-size:11px;letter-spacing:.13em}.metric-card b{font-size:40px;letter-spacing:-.06em;display:block;margin-top:15px}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-panel{border:1px solid var(--line);background:#142033;border-radius:15px;padding:25px;min-width:0}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:15px}.panel-title h2{font-size:24px;letter-spacing:-.03em;margin:0}.admin-panel label{display:grid;gap:7px;color:#c4d2e0;font-size:12px;margin-bottom:16px}.admin-panel input,.admin-panel select,.admin-panel textarea{background:#081320;color:#fff;border:1px solid #3d4a61;border-radius:8px;padding:12px;width:100%;resize:vertical;font-size:14px}.admin-panel select{color-scheme:dark}.admin-3col{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.admin-panel h3{margin:22px 0 9px}.form-help{font-size:12px;color:#a8bcd1;line-height:1.5}.sport-edit{border:1px solid #35455b;border-radius:10px;padding:14px;margin:10px 0}.sport-edit h4{margin:0 0 10px}.sport-edit label{margin-bottom:9px}.sport-edit input[type=file]{font-size:10px}.sport-edit .btn-secondary{font-size:11px}.admin-session{border-bottom:1px solid #33455e;padding:14px 0}.admin-session .admin-session-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.admin-session h4{margin:0;font-size:13px}.admin-session p{font-size:11px;color:var(--muted)}.job-pill{display:flex;align-items:center;justify-content:space-between;border-radius:7px;background:#1f3047;padding:8px;margin-top:6px;font-size:12px}.job-pill span{color:#aebdd0}.job-pill button{padding:4px 8px;background:#30475a;border:1px solid #53667e;border-radius:5px;color:white;font-size:11px}.admin-footer{color:#8ba0b9;margin:25px 0;font-size:12px}
@media (max-width:1100px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.intro-art{min-height:460px}.showcase-card{border-width:5px;border-bottom-width:23px}.admin-columns{grid-template-columns:1fr}}
@media (max-width:750px){.topbar,.kiosk-footer{padding:13px 17px}.kiosk-footer span:last-child{display:none}.kiosk-stage{padding:20px 18px}.intro-layout,.camera-layout,.qr-layout{grid-template-columns:1fr;gap:18px}.intro-art{display:none}.intro-copy h1,.qr-copy h2{font-size:clamp(49px,12vw,76px)}.lead{font-size:15px}.steps-inline{font-size:9px}.camera-layout{padding-bottom:20px}.camera-box{max-height:60vh}.camera-side h2{font-size:42px;margin:5px 0}.camera-side .eyebrow{font-size:10px}.camera-side p:not(.eyebrow){font-size:13px}.qr-card{max-width:320px}.qr-copy .btn-primary{width:100%}.gallery-header{padding:17px 0}.gallery-header .chip{font-size:8px}.gallery-intro{padding:35px 0 20px}.gallery-intro h1{font-size:48px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.progress-top b{font-size:12px}.photo-content{padding:10px}.photo-content strong{font-size:13px}.gallery-disclaimer{font-size:11px}.slide-header{padding:9px 15px}.slide-header-right{gap:7px}.slide-main{padding:10px}.slide-info>span:last-child{display:none}.slide-footer{padding:10px;font-size:9px}.slide-footer>span{display:none}.metrics-row{grid-template-columns:repeat(2,1fr)}.admin-3col{grid-template-columns:1fr}.admin-panel{padding:17px}.admin-title h1{font-size:42px}.metric-card{padding:18px}.metric-card b{font-size:28px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Per-sport TV mode: edge-to-edge on each TV, independently configured by URL. */
.slide-root.tv-sport{height:100vh;min-height:0;background:#000}
.slide-root.tv-sport .slide-header,.slide-root.tv-sport .slide-footer,.slide-root.tv-sport .slide-info{display:none}
.slide-root.tv-sport .slide-main{padding:0;min-height:0}
.slide-root.tv-sport .slide-image-wrap{border-radius:0;background:#000}
.slide-root.tv-sport .slide-image-wrap>img{object-fit:cover;width:100%;height:100%}
.slide-root.tv-sport.contain .slide-image-wrap>img{object-fit:contain}
.slide-root.tv-sport .slide-waiting{padding:2rem}
.slide-root.tv-sport .slide-waiting h1{font-size:clamp(44px,7vw,110px)}

/* V5: technician/photographer's manual cue console. */
.operator-shell{max-width:1680px;margin:auto;padding:0 clamp(14px,3vw,50px) 35px;min-height:100vh}
.operator-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 0;border-bottom:1px solid var(--line)}
.operator-header-actions{display:flex;align-items:center;gap:12px}
.op-admin-link{font-size:12px;text-decoration:none}
.operator-heading{display:flex;align-items:center;justify-content:space-between;gap:25px;margin:30px 0 18px}
.operator-heading h1{font-size:clamp(38px,5vw,74px);margin:0 0 8px}
.operator-heading .muted-small{max-width:700px}
.operator-live-badge{border:1px solid #526174;border-radius:9px;padding:16px 22px;background:#1b293d;color:#c6d3e5;font-size:15px;font-weight:800;white-space:nowrap}
.operator-live-badge.live{background:#174b3b;color:#b7f9dd;border-color:#399f78}
.operator-alert{margin:12px 0;background:#482c35;border:1px solid #ab6676;color:#ffe7e9;border-radius:10px;padding:14px 18px;font-size:13px}
.operator-layout{display:grid;grid-template-columns:minmax(310px,0.85fr) minmax(500px,1.5fr);gap:20px}
.operator-left,.operator-right{background:#122035;border:1px solid var(--line);border-radius:17px;padding:22px;min-width:0}
.operator-section-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:17px}
.operator-section-top h2{margin:0;font-size:22px}
.operator-guest-list{display:grid;gap:8px;max-height:66vh;overflow-y:auto;padding-right:4px}
.operator-guest-card{display:flex;align-items:center;gap:13px;padding:10px;text-align:left;color:#fff;background:#182a40;border:1px solid #354a63;border-radius:12px;width:100%}
.operator-guest-card:hover{border-color:#9bb8c6}
.operator-guest-card.selected{border:2px solid var(--lime);background:#26394b;padding:9px}
.operator-guest-card.on-air{box-shadow:inset 0 0 0 1px #61c3a7}
.operator-guest-card>img{width:74px;height:88px;object-fit:cover;background:#2f4056;border-radius:7px}
.operator-guest-details{display:grid;gap:7px;min-width:0}
.operator-guest-details strong{font-size:14px;letter-spacing:.05em}
.operator-guest-details>span{color:var(--muted);font-size:12px}
.operator-guest-badges{display:flex;flex-wrap:wrap;gap:5px}
.operator-guest-badges span{padding:4px 6px;font-size:9px;letter-spacing:.05em;border-radius:5px}
.ready-tag{background:#27503a;color:#b4f8ce}.pending-tag{background:#3b4657;color:#c6cfdd}.on-air-tag{background:#3c5830;color:#d6fa72}
.operator-empty{display:grid;justify-items:center;text-align:center;padding:95px 20px;color:var(--muted);min-height:250px}
.operator-empty>span{font-size:50px;color:var(--lime)}
.operator-guest-summary{display:flex;align-items:center;gap:22px;margin-bottom:24px}
.operator-guest-summary>img{width:95px;height:116px;object-fit:cover;border-radius:12px;background:#293e51}
.operator-guest-summary strong{font-size:20px}.operator-guest-summary .eyebrow{margin:0 0 6px}
.operator-guest-summary .muted-small{margin:6px 0}
.operator-sport-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.operator-sport-preview{background:#1b2e43;border:1px solid #394d64;border-radius:11px;overflow:hidden;min-width:0}
.operator-sport-art{aspect-ratio:3/4;display:grid;place-items:center;background:#22354a}
.operator-sport-art img{width:100%;height:100%;object-fit:contain}
.operator-placeholder{font-size:10px;color:#9eb3c8;letter-spacing:.08em}
.operator-sport-label{display:grid;gap:4px;padding:9px}
.operator-sport-label strong{font-size:11px;white-space:normal;word-break:break-word}
.operator-sport-label small{font-size:9px;color:#a6bacb}
.operator-actions{display:flex;gap:14px;margin-top:24px;align-items:center}
.operator-actions .btn-primary{flex:1;justify-content:center;font-size:17px;padding:21px 16px}
.operator-actions .btn-secondary{font-size:12px;padding:18px 12px;white-space:nowrap}
.operator-tv-links{border-top:1px solid #3d4a5b;margin-top:26px;padding-top:14px}
.operator-tv-links h3{margin:5px 0 13px}
.operator-tv-links>div{display:flex;gap:8px;flex-wrap:wrap}
.operator-tv-link{color:#cbe6ec;border:1px solid #527387;border-radius:6px;padding:9px 11px;text-decoration:none;font-size:12px}
.operator-tv-link:hover{border-color:var(--lime);color:var(--lime)}
.operator-footer{padding:25px;color:#8da0b4;font-size:12px}
@media(max-width:1050px){.operator-layout{grid-template-columns:1fr}.operator-guest-list{max-height:40vh}}
@media(max-width:650px){.operator-heading{align-items:start;flex-direction:column}.operator-header{flex-wrap:wrap}.operator-sport-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.operator-actions{flex-direction:column}.operator-actions button{width:100%}}

/* Prototype fallback shown only when a guest is on air and this sport image is pending. */
.slide-root.tv-keyvisual .slide-image-wrap{background:radial-gradient(circle at 75% 10%,#2f6380 0%,transparent 36%),linear-gradient(135deg,#12233a,#153f4e 50%,#09202b)}
.slide-root.tv-keyvisual .slide-waiting{border:1px solid #6c9fa680;border-radius:22px;padding:6vw;background:#102c3f66}
.slide-root.tv-keyvisual .slide-waiting::after{content:'PROTOTYPE KEY VISUAL · NOT FINAL ARTWORK';display:block;font-size:12px;color:#e8f7fa;letter-spacing:.18em;margin-top:26px}
