:root{--bg:#080b12;--panel:#0f1521;--panel-2:#121a27;--border:#29364a;--text:#f8fafc;--muted:#94a3b8;--yellow:#facc15;--teal:#2dd4bf;--blue:#60a5fa;--pink:#fb7185;--purple:#c084fc;--danger:#f87171}*{box-sizing:border-box}html{color-scheme:dark}body{background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;margin:0}button,input,select{font:inherit}.hidden{display:none!important}.app-shell{background:radial-gradient(circle at 50% -20%,#1d2c42 0,#0c111b 42%,#080b12 75%);min-height:100vh;padding:22px 28px 34px}.topbar{align-items:center;border-bottom:1px solid #263144;display:flex;justify-content:space-between;margin:0 auto 18px;max-width:1500px;padding-bottom:18px}.brand-lockup{align-items:center;display:flex;gap:14px}.brand-lockup p,.muted-label,.section-kicker{color:#8290a5;font-size:11px;font-weight:800;letter-spacing:.15em;margin:0 0 4px}.brand-lockup h1{font-size:22px;letter-spacing:-.025em;margin:0}.brand-mark{align-items:center;background:#111827;border:1px solid #2a384e;border-radius:14px;display:flex;height:48px;justify-content:center;width:58px}.brand-mark span{font-size:12px;font-weight:900;margin-left:-1px}.brand-mark span:nth-child(1){color:var(--teal)}.brand-mark span:nth-child(2){color:var(--blue)}.brand-mark span:nth-child(3){color:var(--yellow)}.brand-mark span:nth-child(4){color:var(--pink)}.brand-mark span:nth-child(5){color:var(--purple)}.top-actions{align-items:center;display:flex;gap:14px}.connection-pill,.saved-chip{align-items:center;background:#0f2d27;border:1px solid #1e5549;border-radius:999px;color:#5eead4;display:inline-flex;font-size:12px;font-weight:700;gap:7px;padding:8px 12px}.connection-pill.offline{background:#361719;border-color:#7f1d1d;color:#fca5a5}.text-link{color:#a9b6c8;font-size:12px;text-decoration:none}.mode-switch{background:#111827;border:1px solid #28354a;border-radius:11px;display:flex;gap:3px;margin:0 auto 18px;max-width:max-content;padding:4px}.mode-switch button{background:transparent;border:0;border-radius:8px;color:#94a3b8;cursor:pointer;font-size:13px;font-weight:700;height:36px;min-width:120px;padding:0 16px}.mode-switch button.active{background:#263347;color:#fff}.tab-panel{display:none;margin:auto;max-width:1500px}.tab-panel.active{display:block}.caller-layout{display:grid;gap:18px;grid-template-columns:330px 1fr}.game-rail,.board-panel,.tool-page,.cards-page{background:rgba(15,21,33,.96);border:1px solid var(--border);border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.game-rail{display:flex;flex-direction:column;padding:20px}.eyebrow-row{align-items:center;display:flex;font-size:13px;font-weight:900;justify-content:space-between;letter-spacing:.12em}.live-dot{align-items:center;color:#5eead4;display:inline-flex;font-size:11px;gap:6px;letter-spacing:.12em}.live-dot:before{background:var(--teal);border-radius:50%;box-shadow:0 0 13px var(--teal);content:"";height:7px;width:7px}.live-dot.paused{color:var(--yellow)}.live-dot.paused:before{background:var(--yellow);box-shadow:0 0 13px var(--yellow)}.game-rail>.muted-label{margin-top:26px;text-align:center}.current-ball{align-items:center;aspect-ratio:1;background:radial-gradient(circle at 32% 25%,#fff 0,#edf2f7 44%,#bac5d2 100%);border:8px solid var(--ball-color,#64748b);border-radius:50%;box-shadow:0 12px 35px rgba(0,0,0,.35),0 0 25px color-mix(in srgb,var(--ball-color) 30%,transparent);color:#101827;display:flex;flex-direction:column;justify-content:center;margin:14px auto 20px;width:178px}.current-ball span{color:color-mix(in srgb,var(--ball-color) 70%,#111827);font-size:25px;font-weight:950;line-height:1}.current-ball strong{font-size:72px;letter-spacing:-.08em;line-height:.95}.current-ball.empty{border-color:#334155;color:#64748b}.current-ball.empty span{color:#64748b;font-size:50px}.current-ball.empty strong{display:none}.call-actions{display:grid;gap:9px}.button{align-items:center;border:1px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:800;justify-content:center;min-height:40px;padding:9px 14px;text-decoration:none}.button:disabled{cursor:not-allowed;opacity:.45}.button.primary{background:var(--yellow);color:#111827}.button.primary:hover{background:#fde047}.button.secondary{background:#131c2a;border-color:#314057;color:#dce5f1}.button.secondary:hover{background:#1b2739}.button.wide{width:100%}.next-button{font-size:16px;height:52px;justify-content:space-between;padding:0 18px}.manual-call{border-top:1px solid var(--border);margin-top:16px;padding-top:14px}.manual-call label{color:#8290a5;font-size:10px;font-weight:800;letter-spacing:.12em}.manual-call>div{display:grid;gap:7px;grid-template-columns:1fr auto;margin-top:7px}input,select{background:#0b111b;border:1px solid #35445b;border-radius:8px;color:#fff;min-height:42px;padding:9px 11px;width:100%}select{cursor:pointer}.previous-section{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.previous-list{display:flex;gap:7px;margin-top:9px;min-height:35px}.previous-list span{background:#1a2434;border:1px solid #334158;border-radius:8px;color:#d7e0eb;flex:1;font-size:12px;font-weight:800;padding:8px 4px;text-align:center}.pattern-card{align-items:center;background:#121a27;border:1px solid #273449;border-radius:13px;display:flex;justify-content:space-between;margin:16px 0;padding:13px}.pattern-card strong{display:block;font-size:14px;max-width:140px}.pattern-grid{display:grid;gap:3px;grid-template-columns:repeat(5,1fr)}.pattern-grid.small{width:92px}.pattern-cell{align-items:center;aspect-ratio:1;background:#253146;border:1px solid transparent;border-radius:4px;color:#111827;display:flex;justify-content:center;padding:0}.pattern-cell.active{background:var(--yellow);box-shadow:0 0 8px rgba(250,204,21,.28)}.board-panel{padding:22px}.panel-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.panel-heading h2{font-size:20px;margin:0}.number-board{display:grid;gap:10px;grid-template-columns:repeat(5,1fr)}.number-column{display:grid;gap:7px;grid-template-columns:repeat(3,1fr)}.letter-badge{align-items:center;background:color-mix(in srgb,var(--letter-color) 14%,#111827);border:1px solid color-mix(in srgb,var(--letter-color) 42%,#273449);border-radius:9px;color:var(--letter-color);display:flex;font-size:26px;font-weight:950;grid-column:1/-1;height:46px;justify-content:center}.board-number{align-items:center;aspect-ratio:1.35;background:#151e2c;border:1px solid #263449;border-radius:8px;color:#516078;display:flex;font-size:clamp(13px,1.35vw,19px);font-weight:800;justify-content:center}.board-number.called{background:color-mix(in srgb,var(--letter-color) 15%,#182235);border-color:color-mix(in srgb,var(--letter-color) 70%,#263449);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--letter-color) 25%,transparent);color:#fff}.board-footer{color:#708198;display:flex;font-size:11px;justify-content:space-between;margin-top:16px}.tool-page{display:grid;gap:60px;grid-template-columns:.75fr 1.25fr;min-height:620px;padding:70px}.tool-copy{align-self:center}.section-kicker{color:var(--yellow);display:block;margin-bottom:10px}.tool-copy h2,.tool-card h2{font-size:clamp(28px,3.5vw,46px);letter-spacing:-.045em;line-height:1.05;margin:0 0 18px}.tool-copy p,.tool-card p{color:var(--muted);font-size:16px;line-height:1.7}.tool-copy label,.tool-card label{color:#9dadc1;display:block;font-size:12px;font-weight:700;margin-top:16px}.tool-copy input,.tool-copy select,.tool-card input,.tool-card select{margin-top:7px}.pattern-editor-card{align-self:center;background:#121a27;border:1px solid #334158;border-radius:20px;padding:25px}.editor-heading{align-items:center;display:flex;justify-content:space-between}.editor-heading span{color:#73829a;display:block;font-size:10px;font-weight:900;letter-spacing:.16em}.editor-heading strong{display:block;font-size:21px;margin-top:5px}.pattern-grid.editable{gap:9px;margin:30px auto;width:min(34vw,360px)}.pattern-grid.editable .pattern-cell{border-color:#34445c;border-radius:8px;cursor:pointer}.pattern-grid.editable .pattern-cell:not(.active):hover{background:#334158}.preset-row{border-top:1px solid #2b384c;display:flex;gap:8px;justify-content:flex-end;padding-top:18px}.cards-page{display:grid;gap:24px;grid-template-columns:repeat(2,1fr);min-height:620px;padding:44px}.cards-page.three-column{grid-template-columns:repeat(3,1fr)}.tool-card{background:#121a27;border:1px solid #334158;border-radius:18px;padding:28px}.tool-card h2{font-size:28px}.generate-cards{margin-top:18px}.generated-links{display:grid;gap:7px;margin-top:12px;max-height:240px;overflow:auto}.generated-links a{background:#0b111b;border:1px solid #334158;border-radius:7px;color:#d7e0eb;font-size:11px;padding:8px;text-decoration:none}.scan-row{display:grid;gap:8px;grid-template-columns:1fr auto;margin-top:22px}.verification{align-items:center;border:1px solid;border-radius:12px;display:flex;gap:12px;margin-top:14px;padding:14px}.verification strong,.verification span{display:block}.verification span{font-size:12px;margin-top:3px;opacity:.8}.verification.valid{background:#0d2e27;border-color:#21745e;color:#5eead4}.verification.invalid{background:#331619;border-color:#7f1d1d;color:#fca5a5}.button-row{display:flex;gap:9px;margin-top:14px}.app-dialog{background:#101722;border:1px solid #334155;border-radius:16px;color:#fff;max-width:480px;padding:24px}.app-dialog::backdrop{background:rgba(0,0,0,.72)}.app-dialog h2{margin:0 0 12px}.app-dialog p{color:var(--muted);line-height:1.6}.dialog-actions{display:flex;gap:9px;justify-content:flex-end;margin-top:22px}.toast{background:#edf2f7;border-radius:9px;bottom:22px;color:#172033;font-size:13px;font-weight:800;left:50%;opacity:0;padding:12px 17px;pointer-events:none;position:fixed;transform:translate(-50%,15px);transition:.2s;z-index:100}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.error{background:#fecaca;color:#7f1d1d}

.auth-body{align-items:center;background:radial-gradient(circle at 50% 0,#1d2c42 0,#080b12 65%);display:flex;justify-content:center;min-height:100vh;padding:22px}.login-card,.setup-card{background:#0f1521;border:1px solid var(--border);border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.4);max-width:720px;padding:34px;width:100%}.login-card{max-width:430px}.setup-intro,.setup-help{color:var(--muted);line-height:1.6;margin:24px 0}.setup-form{display:grid;gap:15px}.setup-form label{color:#aab7c8;display:grid;font-size:12px;font-weight:700;gap:7px}.field-row{display:grid;gap:13px;grid-template-columns:1fr 1fr}.pin-form{display:grid;gap:13px}.pin-form input{font-size:26px;letter-spacing:.4em;text-align:center}.notice{background:#172234;border:1px solid #41516a;border-radius:10px;display:grid;gap:4px;margin:20px 0;padding:14px}.notice span{font-size:12px}.notice.success{background:#0d2e27;border-color:#21745e;color:#5eead4}.notice.error{background:#331619;border-color:#7f1d1d;color:#fca5a5}

.display-body{background:#070a10;overflow:hidden}.tv-screen{background:radial-gradient(circle at 35% 15%,#182a43 0,#0a0f19 48%,#070a10 100%);display:flex;flex-direction:column;height:100vh;padding:20px 28px}.tv-header{align-items:center;border-bottom:1px solid #2b384c;display:grid;font-size:clamp(12px,1vw,17px);grid-template-columns:1fr auto 1fr;letter-spacing:.1em;padding:0 4px 16px}.tv-header strong{font-size:clamp(17px,1.35vw,24px)}.tv-header .live-dot{justify-self:end}.tv-content{align-items:center;display:grid;flex:1;gap:28px;grid-template-columns:.9fr 1.7fr .7fr;min-height:0;padding:20px 12px}.tv-current{text-align:center}.tv-current>p,.tv-pattern>p{color:#8290a5;font-size:clamp(11px,1vw,16px);font-weight:900;letter-spacing:.16em}.current-ball.giant{border-width:12px;margin:8px auto 18px;width:min(27vw,300px)}.current-ball.giant span{font-size:clamp(26px,3vw,42px)}.current-ball.giant strong{font-size:clamp(90px,10vw,150px)}.tv-previous{color:#a5b4c7;font-size:clamp(13px,1.2vw,20px);font-weight:700}.number-board.compact{gap:7px}.number-board.compact .number-column{gap:5px}.number-board.compact .letter-badge{height:clamp(32px,4vh,48px)}.number-board.compact .board-number{aspect-ratio:auto;font-size:clamp(12px,1.15vw,19px);height:clamp(23px,3.6vh,38px)}.tv-pattern{text-align:center}.pattern-grid.tv{gap:6px;margin:22px auto;width:min(16vw,190px)}.pattern-grid.tv .pattern-cell{border-radius:5px}.tv-pattern strong{font-size:clamp(16px,1.5vw,24px)}.tv-footer{border-top:1px solid #2b384c;color:#7f8ea3;display:flex;font-size:clamp(10px,.9vw,14px);justify-content:space-between;padding:12px 4px 0}

.player-body{align-items:center;background:#0a0f18;display:flex;justify-content:center;min-height:100vh;padding:12px}.player-card{background:#f7f4eb;border-radius:20px;color:#172033;max-width:520px;padding:18px;width:100%}.player-card header{align-items:center;display:flex;justify-content:space-between}.player-card header>span{color:#64748b;font-size:10px;font-weight:900;letter-spacing:.12em}.player-card header strong{font-size:14px}.connection-dot{background:#94a3b8;border-radius:50%;height:9px;width:9px}.connection-dot.online{background:#14b8a6;box-shadow:0 0 8px #14b8a6}.winner-banner{background:#113d32;border:3px solid #2dd4bf;border-radius:13px;color:#fff;display:grid;margin:14px 0 5px;padding:14px;text-align:center}.winner-banner strong{color:#5eead4;font-size:32px}.winner-banner span{font-size:12px}.digital-card-head{display:grid;font-size:clamp(27px,9vw,45px);font-weight:950;grid-template-columns:repeat(5,1fr);margin:16px 0 7px;text-align:center}.digital-card-head span:nth-child(1){color:#0f9987}.digital-card-head span:nth-child(2){color:#2563eb}.digital-card-head span:nth-child(3){color:#ca8a04}.digital-card-head span:nth-child(4){color:#e11d48}.digital-card-head span:nth-child(5){color:#9333ea}.digital-grid{display:grid;gap:6px;grid-template-columns:repeat(5,1fr)}.digital-cell{align-items:center;aspect-ratio:1;background:#fff;border:1px solid #cbd5e1;border-radius:9px;color:#243044;display:flex;font-size:clamp(17px,6vw,28px);font-weight:900;justify-content:center}.digital-cell.marked{background:#172033;border-color:#172033;box-shadow:inset 0 0 0 4px var(--yellow);color:#fff}.digital-cell.pattern-match{box-shadow:inset 0 0 0 4px var(--teal)}.player-meta,.player-call{align-items:center;border-top:1px solid #d8dee8;display:flex;justify-content:space-between;margin-top:15px;padding-top:12px}.player-meta span,.player-call span{color:#64748b;font-size:11px;font-weight:700}.player-call strong{font-size:25px}.player-note{color:#64748b;font-size:11px;margin:13px 0 0;text-align:center}

.print-body{background:#fff;color:#111}.print-toolbar{align-items:center;background:#111827;color:#fff;display:flex;gap:20px;padding:12px 20px;position:sticky;top:0;z-index:3}.print-toolbar button{background:var(--yellow);border:0;border-radius:6px;color:#111827;font-weight:800;padding:9px 15px}.print-grid{display:grid;gap:8mm;grid-template-columns:repeat(2,1fr);padding:8mm}.print-card{border:2px solid #111;border-radius:3mm;break-inside:avoid;padding:4mm}.print-card header{align-items:end;border-bottom:1px solid #999;display:flex;justify-content:space-between;margin-bottom:2mm;padding-bottom:2mm}.print-card header span{display:block;font-size:7pt;font-weight:800;letter-spacing:.1em}.print-card header strong{font-size:18pt}.print-card header b{font-size:9pt}.print-head,.print-numbers{display:grid;grid-template-columns:repeat(5,1fr);text-align:center}.print-head span{font-size:17pt;font-weight:950}.print-head span:nth-child(1){color:#0f9987}.print-head span:nth-child(2){color:#2563eb}.print-head span:nth-child(3){color:#ca8a04}.print-head span:nth-child(4){color:#e11d48}.print-head span:nth-child(5){color:#9333ea}.print-numbers span{align-items:center;aspect-ratio:1;border:1px solid #777;display:flex;font-size:14pt;font-weight:800;justify-content:center}.print-numbers span.free{background:#111827;color:#fff;font-size:8pt}.print-card footer{font-size:8pt;margin-top:2mm;text-align:center}

@media(max-width:1050px){.caller-layout{grid-template-columns:290px 1fr}.board-number{aspect-ratio:1}.cards-page.three-column{grid-template-columns:1fr 1fr}.verifier{grid-column:1/-1}.tv-content{grid-template-columns:1fr 1.6fr}.tv-pattern{display:none}}
@media(max-width:760px){.app-shell{padding:14px}.connection-pill{display:none}.brand-lockup h1{font-size:18px}.mode-switch{justify-content:stretch;max-width:100%;overflow-x:auto}.mode-switch button{min-width:100px}.caller-layout,.tool-page,.cards-page,.cards-page.three-column{grid-template-columns:1fr}.verifier{grid-column:auto}.number-board{gap:5px}.number-column{gap:4px;grid-template-columns:1fr}.letter-badge{height:38px}.board-number{aspect-ratio:auto;height:30px}.saved-chip,.board-footer{display:none}.tool-page,.cards-page{padding:25px}.pattern-grid.editable{width:min(75vw,360px)}.preset-row{flex-wrap:wrap}.field-row{grid-template-columns:1fr}.top-actions .text-link{font-size:0}.top-actions .text-link:after{content:"Exit";font-size:12px}.tv-content{grid-template-columns:1fr}.tv-content>section:nth-child(2){display:none}.tv-header{grid-template-columns:1fr auto}.tv-header>span:first-child{display:none}.current-ball.giant{width:min(60vw,300px)}}
@media print{.print-toolbar{display:none}.print-grid{gap:6mm;padding:0}.print-card{page-break-inside:avoid}body{background:#fff}@page{margin:7mm;size:letter portrait}}

/* Version 1.1 controls */
.bingo-alert{align-items:center;animation:bingo-pulse 1.2s infinite;background:#facc15;border:2px solid #fef08a;border-radius:999px;box-shadow:0 0 24px rgba(250,204,21,.45);color:#111827;cursor:pointer;display:flex;font-size:12px;font-weight:950;gap:7px;padding:7px 12px}.bingo-alert-icon{font-size:17px}@keyframes bingo-pulse{50%{box-shadow:0 0 36px rgba(250,204,21,.8);transform:scale(1.035)}}
.automation-panel{background:#0b111b;border:1px solid #2b394f;border-radius:12px;display:grid;gap:12px;margin-top:14px;padding:12px}.automation-row{align-items:center;display:flex;justify-content:space-between}.automation-row>div strong,.automation-row>div span{display:block}.automation-row>div strong{font-size:12px}.automation-row>div span{color:#8190a5;font-size:10px;margin-top:2px}.digital-row{border-top:1px solid #28364a;padding-top:11px}.toggle{display:inline-flex}.toggle input{height:0;opacity:0;position:absolute;width:0}.toggle span{background:#334155;border-radius:999px;cursor:pointer;height:23px;position:relative;transition:.2s;width:42px}.toggle span:after{background:#fff;border-radius:50%;content:"";height:17px;left:3px;position:absolute;top:3px;transition:.2s;width:17px}.toggle input:checked+span{background:#14b8a6}.toggle input:checked+span:after{transform:translateX(19px)}.timer-row{align-items:center;display:grid;gap:7px;grid-template-columns:1fr 58px 30px}.timer-row label{color:#8190a5;font-size:10px}.timer-row input{font-size:12px;min-height:32px;padding:4px 6px;text-align:center}.timer-row strong{color:#facc15;font-size:12px;text-align:right}
.tool-copy .pattern-description{background:#111b29;border-left:3px solid #facc15;border-radius:0 7px 7px 0;font-size:12px;line-height:1.5;margin:12px 0;padding:9px 11px}.tv-side-rail{display:grid;gap:16px}.tv-pattern>span{color:#8998ac;display:block;font-size:clamp(9px,.75vw,12px);line-height:1.35;margin-top:7px}.tv-side-rail .pattern-grid.tv{margin:18px auto;width:min(14vw,170px)}.tv-digital-join{align-items:center;background:#f8fafc;border:4px solid #2dd4bf;border-radius:16px;color:#111827;display:flex;flex-direction:column;padding:10px;text-align:center}.tv-qr{aspect-ratio:1;background:#fff;border-radius:6px;padding:4px;width:min(12vw,160px)}.tv-qr svg{display:block;height:100%;width:100%}.tv-digital-join strong{font-size:clamp(13px,1.1vw,18px);letter-spacing:.08em;margin-top:6px}.tv-digital-join span{color:#475569;font-size:clamp(9px,.7vw,12px);margin-top:2px}.join-button{font-size:16px;min-height:54px}
@media(max-width:1050px){.tv-side-rail{display:none}}
@media(max-width:760px){.bingo-alert{font-size:0;padding:5px 8px}.bingo-alert-icon{font-size:18px}.automation-panel{margin-bottom:3px}}

/* Version 1.1.1 public display and manual player card */
.tv-board-area{align-self:stretch;display:flex;flex-direction:column;justify-content:center}.tv-board-logo{align-items:center;display:flex;justify-content:center;margin:0 auto 12px;width:100%}.tv-board-logo img{display:block;height:clamp(72px,14vh,150px);max-width:34%;object-fit:contain;width:auto}.player-instruction{background:#e2e8f0;border-radius:999px;color:#475569;font-size:11px;font-weight:800;margin:12px auto 0;padding:7px 11px;text-align:center;width:max-content}.player-card .digital-cell{appearance:none;cursor:pointer;padding:0;touch-action:manipulation;user-select:none}.player-card .digital-cell:active:not(:disabled){transform:scale(.96)}.player-card .digital-cell:focus-visible{outline:3px solid #2563eb;outline-offset:2px}.player-card .digital-cell:disabled{cursor:default;opacity:1}

/* Version 1.2.0 rounds, fresh cards, and completed-night screens */
.round-setting{border-top:1px solid #263449;display:grid;gap:8px;padding-top:12px}.round-setting label,.round-setting>div{align-items:center;display:flex;justify-content:space-between}.round-setting label strong,.round-setting label span{display:block}.round-setting label span{color:#8290a5;font-size:10px}.round-setting input{height:36px;margin:0;width:82px}.round-setting .button{height:36px;padding:0 13px}.round-setting>div{gap:8px;justify-content:flex-end}.tv-screen{position:relative}.tv-finished{align-items:center;background:radial-gradient(circle at 50% 30%,#243b5a 0,#0b111c 58%,#070a10 100%);display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute;text-align:center;z-index:10}.tv-finished img{height:min(32vh,300px);max-width:50vw;object-fit:contain}.tv-finished p{color:#facc15;font-size:clamp(15px,1.5vw,25px);font-weight:900;letter-spacing:.18em;margin:24px 0 8px}.tv-finished h1{font-size:clamp(54px,7vw,112px);letter-spacing:-.05em;margin:0}.tv-finished span{color:#b6c2d2;font-size:clamp(17px,1.6vw,27px);margin-top:18px}.player-card.finished{min-height:560px}.player-card.finished>:not(header):not(.player-finished){display:none}.player-finished{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:490px;text-align:center}.player-finished img{max-height:190px;max-width:78%;object-fit:contain}.player-finished p{color:#b45309;font-size:11px;font-weight:900;letter-spacing:.15em;margin:22px 0 5px}.player-finished h1{font-size:38px;letter-spacing:-.04em;margin:0}.player-finished span{color:#64748b;font-size:13px;line-height:1.5;margin-top:12px;max-width:300px}

/* Version 1.3.0 round planning, inline verification, caller-presence safety, logo placement, and credits */
.caller-verifier{border-top:1px solid var(--border);margin-top:14px;padding-top:14px}.caller-verifier>label{color:#8290a5;font-size:10px;font-weight:800;letter-spacing:.12em}.caller-verifier>div:first-of-type{display:grid;gap:7px;grid-template-columns:1fr auto;margin-top:7px}.caller-verifier input{text-transform:uppercase}.caller-verifier .verification{padding:10px}.caller-verifier .verification span{font-size:10px}.night-setup-page{grid-template-columns:repeat(3,1fr);padding:30px}.night-setup-page .tool-card h2{font-size:25px}.round-pattern-list{display:grid;gap:8px;margin:16px 0;max-height:330px;overflow:auto;padding-right:4px}.round-pattern-row{align-items:center;background:#0b111b;border:1px solid #2c394e;border-radius:9px;display:grid!important;gap:8px;grid-template-columns:70px 1fr;margin:0!important;padding:8px}.round-pattern-row>span{color:#aebaca;font-size:11px;font-weight:800}.round-pattern-row select{margin:0!important;min-height:36px;padding:6px 8px}.round-pattern-row select:disabled{color:#78879b;cursor:not-allowed;opacity:.65}.site-footer{color:#6f7f95;font-size:10px;letter-spacing:.03em;margin:24px auto 0;text-align:center}.site-footer span{margin:0 4px}.site-footer a{color:#94a3b8;text-decoration:none}.player-footer{border-top:1px solid #d8dee8;color:#64748b;margin-top:14px;padding-top:11px}.player-footer a{color:#475569}.auth-body .site-footer{border-top:1px solid #273449;padding-top:16px}.player-card.finished>:not(header):not(.player-finished):not(.player-footer){display:none}.print-card footer{display:grid;gap:1mm}.print-copyright{color:#555;font-size:6.5pt}.tv-board-logo{display:none}.tv-brand-logo{align-items:center;display:flex;flex:0 0 auto;justify-content:center;padding:8px 0 0}.tv-brand-logo img{display:block;height:clamp(48px,9vh,96px);max-width:28vw;object-fit:contain;width:auto}.tv-content{padding-bottom:12px;padding-top:8px}.tv-header{padding-bottom:12px}.tv-footer{align-items:center;display:grid;font-size:clamp(9px,.75vw,12px);grid-template-columns:1fr auto 1fr;padding-top:10px}.tv-footer>span:last-child{justify-self:end}.tv-footer a{color:#a7b5c8;text-decoration:none}.footer-credit{white-space:nowrap}
.finished-credit{bottom:20px;color:#7f8ea3;font-size:clamp(10px,.8vw,13px);position:absolute}.finished-credit a{color:#a7b5c8;text-decoration:none}
@media(max-width:1200px){.night-setup-page{grid-template-columns:1fr 1fr}.new-session-card{grid-column:1/-1}}
@media(max-width:760px){.night-setup-page{grid-template-columns:1fr;padding:20px}.new-session-card{grid-column:auto}.tv-brand-logo img{max-width:55vw}.footer-credit{display:none}}

/* Version 1.3.1 precise TV logo placement */
.tv-brand-logo{left:50%;padding:0;pointer-events:none;position:absolute;top:27%;transform:translate(-50%,-50%);width:100%;z-index:2}

/* Version 1.3.2 larger TV logo */
.tv-brand-logo img{height:clamp(64px,11vh,120px);max-width:36vw}

/* v1.3.4: automatic pre-game welcome screen */
.tv-welcome{align-items:center;background:radial-gradient(circle at 50% 30%,#203654 0,#0b121e 58%,#070a10 100%);display:flex;flex-direction:column;inset:0;justify-content:center;padding:4vh 6vw;position:absolute;text-align:center;z-index:11}.tv-welcome img{height:min(25vh,250px);max-width:48vw;object-fit:contain}.tv-welcome p{color:#facc15;font-size:clamp(14px,1.3vw,22px);font-weight:900;letter-spacing:.22em;margin:18px 0 5px}.tv-welcome h1{font-size:clamp(48px,6vw,96px);letter-spacing:-.045em;line-height:.95;margin:0}.tv-welcome h2{color:#e5edf8;font-size:clamp(30px,3.6vw,58px);letter-spacing:-.025em;margin:7px 0 22px}.tv-welcome>strong{background:#facc15;border-radius:999px;color:#111827;font-size:clamp(17px,1.7vw,29px);padding:.55em 1.15em}.tv-welcome>span{color:#dce6f4;font-size:clamp(20px,2vw,34px);font-weight:800;margin-top:22px}.tv-welcome>small{color:#9fb0c7;font-size:clamp(14px,1.25vw,21px);margin-top:8px}.welcome-credit{bottom:18px;color:#7f8ea3;font-size:clamp(9px,.7vw,12px);position:absolute}.welcome-credit a{color:#9fb0c7;text-decoration:none}

/* v1.3.5: caller-controlled digital signup on the welcome screen */
.welcome-digital-join{position:absolute;right:4vw;top:50%;transform:translateY(-50%);width:clamp(150px,13vw,210px)}.welcome-digital-join .tv-qr{width:100%}.welcome-digital-join strong{font-size:clamp(14px,1.15vw,20px)}.welcome-digital-join span{font-size:clamp(10px,.8vw,14px)}
@media(max-width:1200px){.welcome-digital-join{right:2vw;width:clamp(130px,13vw,165px)}}

/* Version 1.3.3 navigation parity and compact caller layout */
.mode-switch button,.mode-switch a{align-items:center;background:transparent;border:0;border-radius:8px;color:#94a3b8;cursor:pointer;display:inline-flex;font-size:13px;font-weight:700;gap:7px;height:36px;justify-content:center;min-width:120px;padding:0 16px;text-decoration:none}.mode-switch svg{fill:none;height:16px;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:16px}.mode-switch button.active{background:#263347;color:#fff}.caller-layout{align-items:start}.game-rail{height:max-content}.board-panel{min-width:0}.caller-board-tools{border-top:1px solid var(--border);display:grid;gap:12px;grid-template-columns:1fr 1.25fr 1fr 1.1fr;margin-top:16px;padding-top:16px}.caller-tool-card{background:#0b111b;border:1px solid #2b394f;border-radius:12px;min-width:0;padding:12px}.caller-board-tools .manual-call,.caller-board-tools .caller-verifier,.caller-board-tools .previous-section{border-top:1px solid #2b394f;margin:0;padding:12px}.caller-board-tools .caller-verifier>div:first-of-type{grid-template-columns:minmax(0,1fr) auto}.caller-board-tools .previous-list{margin-top:10px;min-width:0}.caller-board-tools .previous-list span{min-width:0}.caller-board-tools .pattern-card{background:transparent;border:0;gap:10px;margin:0 0 10px;min-width:0;padding:0}.caller-board-tools .pattern-card>div:first-child{min-width:0}.caller-board-tools .pattern-card strong{max-width:100%;overflow-wrap:anywhere}.caller-board-tools .pattern-grid.small{flex:0 0 92px;width:92px}.pattern-round-tool .button{min-height:36px}
@media(max-width:1250px){.caller-board-tools{grid-template-columns:1fr 1fr}.mode-switch button,.mode-switch a{min-width:108px;padding:0 12px}}
@media(max-width:760px){.mode-switch button,.mode-switch a{flex:0 0 auto;min-width:104px}.caller-board-tools{grid-template-columns:1fr}.caller-layout{align-items:stretch}}

/* Temporary print layout: exactly five physical cards per letter-size page. */
.print-page{display:grid;gap:8mm;grid-template-columns:repeat(2,1fr)}.print-page:not(:last-child){margin-bottom:8mm}
@media print{.print-grid{display:block;padding:0}.print-page{break-after:page;gap:3mm;height:264mm;grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(3,1fr);margin:0}.print-page:last-child{break-after:auto}.print-card{border-width:1.5px;border-radius:2mm;min-height:0;padding:2mm}.print-card header{margin-bottom:1mm;padding-bottom:1mm}.print-card header span{font-size:5.5pt}.print-card header strong{font-size:13pt}.print-card header b{font-size:7pt}.print-head span{font-size:12pt}.print-numbers span{aspect-ratio:auto;font-size:10pt;height:8.5mm}.print-numbers span.free{font-size:6pt}.print-card footer{font-size:6pt;margin-top:1mm}.print-card footer.print-copyright,.print-copyright{font-size:5pt}}
