:root{--bg:#080b18;--panel:#121a35;--line:#30406f;--cyan:#48e7ff;--pink:#ff4fba;--yellow:#ffe34f;--green:#5cff8d;--red:#ff5964;--text:#f4f7ff;--muted:#aab4d2}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top,#17204a 0,#080b18 55%);color:var(--text);font-family:system-ui,-apple-system,sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.018) 4px)}.shell{width:min(760px,100%);margin:auto;padding:18px}.host-shell{width:min(1100px,100%)}header{text-align:center;margin:10px 0 20px}.brand-logo{display:block;width:min(100%,620px);height:auto;margin:0 auto;filter:drop-shadow(0 10px 24px #0009)}.brand-logo.compact{width:min(76vw,360px)}header p{margin:.35rem 0 0}.pixel-logo{font-family:monospace;font-weight:900;font-size:clamp(24px,7vw,48px);letter-spacing:2px;color:var(--yellow);text-shadow:4px 4px 0 var(--pink)}h1,h2,h3{margin:.2em 0 .6em}p{color:var(--muted)}.card{background:rgba(18,26,53,.95);border:2px solid var(--line);border-radius:14px;padding:20px;margin:14px 0;box-shadow:0 10px 35px #0007}.hero{border-color:var(--cyan)}label{display:block;color:var(--muted);margin:12px 0}input,select{width:100%;margin-top:6px;padding:14px;border-radius:9px;border:2px solid var(--line);background:#080d22;color:#fff;font-size:18px}button{border:0;border-radius:10px;background:var(--cyan);color:#07101b;font-size:16px;font-weight:900;padding:14px 16px;min-height:52px;cursor:pointer;box-shadow:0 4px 0 #168ba0}button:active{transform:translateY(3px);box-shadow:0 1px 0 #168ba0}button.secondary{background:#b8c5e8;box-shadow:0 4px 0 #66769f}button.accent{background:var(--pink);box-shadow:0 4px 0 #96265f}button.warn{background:var(--yellow);box-shadow:0 4px 0 #9a871a}button.danger{background:var(--red);box-shadow:0 4px 0 #9c2630}.grid2,.grid3{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.grid3{grid-template-columns:repeat(3,1fr)}.hidden{display:none!important}.center{text-align:center}.badge{display:inline-block;padding:5px 9px;border:1px solid var(--cyan);border-radius:999px;color:var(--cyan);font-size:13px}.timer{font:900 clamp(34px,12vw,76px)/1 monospace;color:var(--yellow);margin:15px}.question{font-size:clamp(22px,6vw,40px);font-weight:900}.options{display:grid;gap:10px}.option{text-align:left;background:#202d5b;color:#fff;box-shadow:0 4px 0 #0d1430}.option.selected{background:var(--green);color:#07130b}.option.correct{outline:4px solid var(--green)}.leaderboard{list-style:none;padding:0;margin:0}.leaderboard li{display:grid;grid-template-columns:45px 1fr auto;gap:10px;padding:12px;border-bottom:1px solid var(--line);font-size:19px}.race-track{position:relative;height:54px;background:#25305a;border-radius:8px;margin:10px 0;overflow:hidden;border-right:6px dashed #fff}.horse{position:absolute;left:4px;top:4px;font-size:36px;transition:left .18s linear}.race-button{width:100%;min-height:180px;font-size:clamp(30px,10vw,58px);background:var(--pink);color:#fff;touch-action:manipulation;user-select:none}.status{color:var(--cyan);font-weight:800}.muted{color:var(--muted)}.host-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.team-list{display:flex;flex-wrap:wrap;gap:8px}.team-pill{background:#202d5b;padding:8px 12px;border-radius:999px}.question-list{max-height:310px;overflow:auto}.question-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px;border-bottom:1px solid var(--line);text-align:left}.public-screen .shell{width:min(1300px,100%)}.public-screen .card{min-height:70vh;display:flex;flex-direction:column;justify-content:center}@media(max-width:620px){.grid2,.grid3,.host-actions{grid-template-columns:1fr}.shell{padding:10px}.card{padding:15px}.host-actions button{min-height:48px}.brand-logo{width:min(96%,500px)}.brand-logo.compact{width:min(68vw,300px)}}
.question-list{max-height:none;overflow:visible}
.round-results{list-style:none;padding:0;margin:18px 0}.round-results li{display:grid;grid-template-columns:minmax(90px,auto) 1fr auto;gap:12px;align-items:center;padding:14px;margin:8px 0;border:2px solid var(--line);border-radius:10px;background:#182249}.round-results span{font-weight:800;text-align:left}.round-results small{display:block;color:var(--muted);font-weight:500}.round-results .result-correct{border-color:var(--green)}.round-results .result-correct>b{color:var(--green)}.round-results .result-wrong{border-color:var(--red)}.round-results .result-wrong>b{color:var(--red)}.round-results .result-no_answer{opacity:.72}@media(max-width:620px){.round-results li{grid-template-columns:82px 1fr}.round-results li>strong{grid-column:2}}
.registration-box{margin:0 0 18px;padding:16px;text-align:center;border:2px solid var(--green);border-radius:12px;background:#0d2b25}.registration-box h2{color:var(--green)}.registration-box .timer{font-size:clamp(38px,8vw,62px)}
.registered-teams{list-style:none;padding:0;margin:12px 0;text-align:left}.registered-teams li{display:flex;justify-content:space-between;gap:12px;padding:10px;border-bottom:1px solid var(--line)}.registered-teams span{color:var(--muted)}@media(max-width:620px){.registered-teams li{display:block}.registered-teams span{display:block;margin-top:3px}}
.team-pill small{display:block;margin-top:3px;color:var(--muted)}
.planner-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:22px}.duration-total{min-width:190px;padding:18px;text-align:center;border:2px solid var(--pink);border-radius:16px;background:#24143b}.duration-total small,.duration-total span{display:block;color:var(--muted)}.duration-total strong{display:block;font-size:30px;color:var(--yellow);margin:4px 0}.phase-list{display:grid;gap:18px}.plan-phase{border:2px solid var(--line);border-radius:16px;padding:18px;background:#0c132c}.phase-head{display:flex;justify-content:space-between;gap:18px;align-items:end;margin-bottom:14px}.phase-head label{flex:1;margin:0}.phase-head>div{display:flex;gap:10px;align-items:center}.phase-head button{min-height:44px;padding:9px 12px}.plan-item{padding:14px;margin:10px 0;border-left:5px solid var(--cyan);border-radius:10px;background:#182249}.plan-item-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.mini-actions{display:flex;gap:6px}.mini-actions button{min-width:38px;min-height:38px;padding:6px;box-shadow:none}.plan-config{display:grid;grid-template-columns:110px 1fr 150px;gap:12px}.plan-config.one{grid-template-columns:minmax(180px,280px)}.plan-config label{margin:8px 0 0}.plan-config input,.plan-config select{padding:10px;font-size:15px}.add-game{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:14px}.add-game select{margin:0}.planner-footer{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px;margin-top:20px;border:2px solid var(--line);border-radius:14px;background:#101936f2}.planner-footer p{margin:0 0 0 auto}.live-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);gap:20px}.show-summary{list-style:none;padding:0}.show-summary li{padding:12px;border-bottom:1px solid var(--line)}.show-summary span{display:block;margin-top:4px;color:var(--muted)}@media(max-width:760px){.planner-head,.phase-head{display:block}.duration-total{margin-top:14px}.phase-head>div{justify-content:space-between;margin-top:10px}.plan-config{grid-template-columns:1fr}.add-game{grid-template-columns:1fr}.live-layout{grid-template-columns:1fr}.planner-footer{position:static}.planner-footer button{width:100%}.planner-footer p{margin:0;width:100%;text-align:center}}
.prepared-quiz{margin:10px 0;border:1px solid var(--line);border-radius:10px;background:#0c132c}.prepared-quiz summary{padding:13px;cursor:pointer;font-weight:800;color:var(--cyan)}.prepared-quiz .question-row:last-child{border-bottom:0}
.quiz-settings{display:grid;grid-template-columns:260px 1fr;gap:16px;margin-top:8px}.plan-config.quiz-numbers{grid-template-columns:1fr}.category-choices{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:7px 14px;margin:8px 0 0;padding:12px;border:1px solid var(--line);border-radius:10px}.category-choices legend{padding:0 6px;color:var(--muted)}.category-choices label{display:flex;align-items:center;gap:8px;margin:0;color:var(--text);font-size:14px}.category-choices input{width:18px;height:18px;margin:0;accent-color:var(--cyan)}@media(max-width:760px){.quiz-settings{grid-template-columns:1fr}.category-choices{grid-template-columns:1fr}}
.host-shell{width:min(1120px,100%);padding:10px 16px}.host-shell header{margin:2px 0 8px}.host-shell .brand-logo.compact{width:min(34vw,215px)}.host-shell header p{font-size:13px}.host-shell #hostApp{padding:16px;margin:8px 0;border-radius:10px}.host-shell h1{font-size:clamp(23px,2.4vw,31px);margin:.15em 0 .2em}.host-shell h2{font-size:19px;margin:.4em 0}.host-shell h3{font-size:16px}.host-shell p{margin:.3em 0;font-size:13px}.host-shell button{min-height:36px;padding:7px 12px;border:1px solid #42609b;border-radius:6px;background:#20325b;color:var(--text);font-size:13px;font-weight:750;box-shadow:none}.host-shell button:hover{border-color:var(--cyan);background:#263c6d}.host-shell button:active{transform:none;box-shadow:none}.host-shell button.accent{background:#8d286b;color:#fff;border-color:#c63c94;box-shadow:none}.host-shell button.secondary{background:#1a2544;color:#dbe4ff;border-color:#3b4e7c;box-shadow:none}.host-shell button.danger{background:transparent;color:#ff8e96;border-color:#6f3544;box-shadow:none}.host-shell button:disabled{opacity:.4;cursor:not-allowed}.host-shell input,.host-shell select{padding:7px 9px;border:1px solid #3c4f7e;border-radius:6px;font-size:13px}.host-shell label{margin:5px 0;font-size:12px}.host-shell .badge{padding:3px 7px;font-size:10px}.host-shell .empty-planner{max-width:520px;margin:44px auto;text-align:center;padding:25px}.host-shell .empty-planner p{margin:7px auto 18px;max-width:440px}.host-shell .empty-planner button{background:var(--cyan);border-color:var(--cyan);color:#07101b}.host-shell .planner-head{gap:14px;margin-bottom:10px}.host-shell .duration-total{min-width:140px;padding:8px 12px;border:1px solid #9b377e;border-radius:8px;background:#1c1632}.host-shell .duration-total strong{font-size:20px;margin:1px 0}.host-shell .duration-total small,.host-shell .duration-total span{font-size:10px}.host-shell .phase-list{gap:9px}.host-shell .plan-phase{padding:10px;border:1px solid var(--line);border-radius:8px}.host-shell .phase-head{gap:9px;margin-bottom:7px}.host-shell .phase-head button{min-height:32px;padding:5px 8px}.host-shell .plan-item{padding:8px 10px;margin:5px 0;border-left-width:3px;border-radius:6px}.host-shell .plan-item-title{font-size:13px}.host-shell .mini-actions button{min-width:29px;min-height:29px;padding:3px}.host-shell .quiz-settings{grid-template-columns:180px 1fr;gap:9px;margin-top:3px}.host-shell .plan-config{gap:6px}.host-shell .plan-config label{margin:3px 0 0}.host-shell .category-choices{grid-template-columns:repeat(3,minmax(140px,1fr));gap:3px 9px;margin-top:3px;padding:6px 8px;border-radius:6px}.host-shell .category-choices label{gap:5px;font-size:11px}.host-shell .category-choices input{width:14px;height:14px;padding:0}.host-shell .add-game{gap:6px;margin-top:7px}.host-shell .planner-footer{position:sticky;bottom:0;display:flex;align-items:center;gap:8px;padding:8px 0;margin-top:10px;border:0;border-top:1px solid var(--line);border-radius:0;background:#121a35f5}.host-shell .planner-footer .text-button{background:transparent;border-color:transparent;color:var(--cyan);padding-left:2px}.host-shell .planner-footer p{margin:0 auto;font-size:11px}.host-shell .planner-main-actions{display:flex;gap:6px}.host-shell .team-pill{padding:6px 9px;font-size:13px}.host-shell .registered-teams li,.host-shell .show-summary li{padding:7px}.host-shell .registration-box{padding:10px;margin-bottom:10px}.host-shell .question-row{padding:7px}.host-shell .question-row button{min-height:32px;padding:5px 9px}.host-shell .host-actions{gap:6px}@media(max-width:760px){.host-shell{padding:7px}.host-shell .brand-logo.compact{width:min(56vw,190px)}.host-shell #hostApp{padding:10px}.host-shell .planner-head,.host-shell .phase-head{display:flex}.host-shell .quiz-settings{grid-template-columns:1fr}.host-shell .category-choices{grid-template-columns:repeat(2,minmax(120px,1fr))}.host-shell .planner-footer{position:static;flex-wrap:wrap}.host-shell .planner-footer p{order:3;width:100%;text-align:center}.host-shell button{min-height:42px}.host-shell .planner-main-actions{margin-left:auto}}@media(max-width:480px){.host-shell .planner-head,.host-shell .phase-head{display:block}.host-shell .duration-total{display:flex;align-items:center;justify-content:space-between;margin-top:7px;text-align:left}.host-shell .category-choices{grid-template-columns:1fr}.host-shell .planner-footer .text-button,.host-shell .planner-main-actions,.host-shell .planner-main-actions button{width:100%}.host-shell .planner-main-actions{display:grid}}
.regia-home .shell{width:min(860px,100%);padding:12px}.regia-home header{margin:2px 0 14px}.regia-home .brand-logo.compact{width:min(56vw,230px)}.regia-home header p{margin-top:2px;font-size:13px}.regia-start{display:flex;justify-content:space-between;align-items:center;gap:28px;max-width:680px;margin:0 auto;padding:22px 24px;border:1px solid var(--line);border-radius:10px;background:rgba(18,26,53,.88);box-shadow:0 12px 35px #0004}.regia-start h1{font-size:24px;margin:5px 0 3px}.regia-start p{margin:0;font-size:14px}.regia-start .badge{padding:3px 7px;font-size:10px}.regia-start button{flex:0 0 auto;min-height:38px;padding:8px 14px;border:1px solid #3d74a0;border-radius:6px;background:#182b4c;color:#dff9ff;font-size:13px;font-weight:750;box-shadow:none}.regia-start button:hover{background:#203b67;border-color:var(--cyan)}.regia-start button:active{transform:none;box-shadow:none}@media(max-width:620px){.regia-start{display:block;padding:18px}.regia-start button{width:100%;min-height:44px;margin-top:16px}}
.registration-compact,.conductor-live{display:grid;grid-template-columns:340px 1fr;gap:16px}.registration-compact .registration-box{text-align:left}.registration-compact .registration-box .timer{font-size:34px;margin:6px 0}.registration-compact aside,.conductor-live aside,.current-control{padding:12px;border:1px solid var(--line);border-radius:8px;background:#0d142d}.conductor-live{grid-template-columns:300px 1fr;align-items:start}.current-control{min-height:180px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.current-control h2{font-size:24px;margin:8px}.current-control p{max-width:560px}.host-shell .current-action{min-width:220px;min-height:42px;margin-top:12px;background:#164a2e;border-color:#3fbf73;color:#e9fbff}/* 22/10 (Moreno: «i pulsanti per proseguire una volta verdi una volta azzurri»): tutti verdi come quelli in alto */.host-shell .current-action.accent{background:linear-gradient(180deg,#27b862,#1a8a48);border-color:#5cff9d;color:#fff;font-weight:800}.host-shell .current-action:disabled{background:#1b2a22;border-color:#2f4a3a;color:#9fb8a8}.host-shell button.go{background:linear-gradient(180deg,#27b862,#1a8a48);border-color:#5cff9d;color:#fff;font-weight:800}/* 22/10: anche al passaggio del dito (tablet) restano verdi, prima diventavano blu */.host-shell .current-action:hover:not(:disabled),.host-shell button.go:hover:not(:disabled){border-color:#8dffbf;background:linear-gradient(180deg,#2fcf6f,#1e9a50)}.host-shell .current-action:not(.accent):hover:not(:disabled){background:#1d5c39}/* 22/10 (Moreno: «−20 rosso»): i pulsanti Errata (…_wrong) in rosso, per non confonderli con Risposta corretta */.host-shell .current-action[data-cmd$="_wrong"],.host-shell .current-action[data-cmd$="_wrong"]:hover:not(:disabled){background:linear-gradient(180deg,#c8323f,#8f1d28);border-color:#ff7a86;color:#fff;font-weight:800}.conductor-live .show-summary li{opacity:.68}.conductor-live .show-summary li:first-child{opacity:1;border-left:2px solid var(--cyan)}@media(max-width:760px){.registration-compact,.conductor-live{grid-template-columns:1fr}.conductor-live aside{order:2}.current-control{min-height:150px}}
.conductor-console{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:10px;align-items:start}.conductor-console .current-control{min-height:0}.conductor-console .live-overview{grid-column:1/-1}.live-overview{padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:#0d142d}.live-overview summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:750}.live-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:10px}.host-roadmap ol{display:grid;gap:10px;margin:8px 0;padding:0;list-style:none;counter-reset:roadmap}.host-roadmap li{display:grid;grid-template-columns:24px 1fr;gap:2px 8px;counter-increment:roadmap}.host-roadmap li:before{content:counter(roadmap);grid-row:1/3;display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--cyan);border-radius:50%;color:var(--cyan);font-size:10px}.host-roadmap span{color:var(--muted);font-size:11px}.presenter-script ul{margin:8px 0;padding-left:20px;text-align:left}.presenter-script li{margin:5px 0;color:var(--text);font-size:13px}.next-label{margin:3px 0!important;color:var(--cyan)!important;font-size:10px!important;font-weight:850;letter-spacing:.12em}.host-mini-example{display:grid;gap:2px;width:min(100%,250px);margin:8px auto;padding:8px;border:1px solid #35548c;border-radius:7px;background:linear-gradient(#101d3d,#080e22);color:#dce8ff;font:800 12px/1.25 monospace}.host-mini-example span:first-child{color:var(--yellow)}
.host-upcoming{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.42fr) minmax(0,1fr);align-items:center;gap:10px;padding:12px 16px;border:1px solid #42dfff;border-radius:11px;background:radial-gradient(circle at 92% 20%,#8d176049,transparent 34%),linear-gradient(135deg,#0a2748,#101837 64%,#27102f);box-shadow:0 7px 22px #0006,inset 0 1px 0 #ffffff24;text-align:left}.host-upcoming>span{color:#75efff;font-size:12px;font-weight:950;letter-spacing:.14em}.host-upcoming>div{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 10px}.host-upcoming .game-category-mark{grid-row:1/4}.host-upcoming b{color:#9fb8e8;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.host-upcoming h3{margin:0;color:#fff;font-size:clamp(20px,3vw,31px);text-shadow:0 0 13px #46ddff55}.host-upcoming small,.host-upcoming p{margin:0;color:#b8c7e8}.host-upcoming.finale{border-color:#ffe25b;background:linear-gradient(135deg,#31280a,#16162e)}@media(max-width:720px){.host-upcoming{grid-template-columns:1fr;gap:5px}.host-upcoming>div{grid-template-columns:auto minmax(0,1fr)}}
.host-player-preview{padding:8px;border:1px solid #314978;border-radius:8px;background:#090f22}.host-player-preview-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;text-align:left}.host-player-preview-head strong{display:block;color:var(--cyan);font-size:10px;letter-spacing:.1em}.host-player-preview-head small{display:block;margin-top:1px;color:var(--muted);font-size:8px}.host-player-preview-head a{padding:4px 7px;border:1px solid #3c5d96;border-radius:5px;color:#dfe9ff;font-size:9px;text-decoration:none}.host-phone-frame{width:280px;max-width:100%;height:410px;margin:auto;overflow:hidden;border:4px solid #28395f;border-radius:18px;background:#000;box-shadow:0 8px 22px #0008}.host-phone-frame iframe{display:block;width:100%;height:100%;border:0;background:#000}@media(max-width:820px),(orientation:portrait){.conductor-console{grid-template-columns:1fr}.conductor-console .current-control{min-height:0}.conductor-console .live-overview{grid-column:auto}.host-phone-frame{width:min(100%,300px);height:420px}.live-overview-grid{grid-template-columns:1fr}}
.join-home .shell{width:min(540px,100%);padding:12px}.join-home header{margin:0 0 12px}.join-home .brand-logo{width:min(68vw,300px)}.join-home header p{margin-top:0;font-size:13px}.join-home .card{padding:16px 18px;margin:10px 0;border-width:1px;border-radius:10px}.join-home .hero h1{font-size:28px;margin:0 0 14px}.join-home label{margin:8px 0;font-size:13px}.join-home input{height:44px;margin-top:4px;padding:8px 11px;border-width:1px;border-radius:6px;font-size:16px}.join-home .grid2{gap:8px;margin-top:10px}.join-home button{min-height:42px;padding:8px 12px;border:1px solid #3b7195;border-radius:6px;background:#1b3857;color:#eafaff;font-size:14px;font-weight:750;box-shadow:none}.join-home button.secondary{background:#202b49;color:#e6ebfb;border-color:#46577e;box-shadow:none}.join-home button:active{transform:none;box-shadow:none}.join-home .card:not(.hero){max-width:500px;margin:10px auto}.join-home .card:not(.hero) h2{font-size:21px}@media(max-width:560px){.join-home .shell{padding:9px}.join-home .brand-logo{width:min(62vw,240px)}.join-home .card{padding:14px}.join-home .hero h1{font-size:23px}.join-home .grid2{grid-template-columns:1fr}.join-home button{min-height:44px}}
.game-time-splash,.game-time-host{display:grid;place-items:center;gap:8px;min-height:44vh;text-align:center}.game-time-splash img{display:block;width:min(94%,720px);height:auto;filter:drop-shadow(0 14px 30px #000b)}.game-time-splash p{margin:0;color:var(--yellow);font-weight:800;letter-spacing:.04em}.game-time-host{min-height:280px}.game-time-host img{display:block;width:min(76%,520px);height:auto;filter:drop-shadow(0 12px 24px #000a)}.game-time-host p{max-width:520px}
.next-game-banner{display:grid;gap:2px;margin:3px 0 9px;padding:7px 10px;border:1px solid var(--cyan);border-radius:7px;background:#0a1b31;text-align:center}.next-game-banner span{color:var(--cyan);font-size:9px;font-weight:850;letter-spacing:.13em}.next-game-banner strong{color:#fff;font-size:16px}
.player-view .game-shell{width:min(560px,100%);padding:8px 12px}.player-view header{margin:0 0 6px}.player-view .brand-logo.compact{width:min(46vw,220px)}.player-view #app{padding:14px 16px;margin:6px 0;border-width:1px;border-radius:9px;box-shadow:0 8px 24px #0005}.player-view #app h1{font-size:22px;margin:3px 0 12px;text-transform:none}.player-view #app h2{font-size:20px}.player-identity{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 12px;padding-bottom:9px;border-bottom:1px solid var(--line);font-size:13px;text-align:left}.player-identity span{color:var(--muted);font-size:12px}.player-lobby{max-width:430px;margin:0 auto}.team-access{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 14px;padding:10px 12px;border:1px solid #495c8d;border-radius:7px;background:#0d142d;text-align:left}.team-access span{font-size:12px;color:var(--muted)}.team-access strong{grid-column:2;grid-row:1/3;font:800 25px/1 monospace;color:var(--yellow);letter-spacing:2px}.team-access small{font-size:10px;color:#7783a5}.connected-count{margin:11px 0 7px;font-size:12px}.player-view .team-list{justify-content:center;gap:5px}.player-view .team-pill{padding:5px 9px;font-size:12px}.player-view #app button:not(.race-button){min-height:42px;padding:8px 11px;border-radius:6px;font-size:14px}.player-view .timer{font-size:34px;margin:10px}.player-view .question{font-size:clamp(20px,5vw,29px)}@media(max-width:560px){.player-view .game-shell{padding:7px}.player-view .brand-logo.compact{width:min(48vw,190px)}.player-view #app{padding:12px}.player-identity{margin-bottom:9px}.team-access strong{font-size:22px}}
.team-role-panel{margin:14px 0 4px;padding:12px;border:1px solid #35d8ff66;border-radius:12px;background:#07142be8;text-align:left}.team-role-summary{display:flex;flex-wrap:wrap;gap:6px 14px;color:#aebada;font-size:12px}.team-role-summary b{color:#fff}.team-member-actions{display:grid;gap:7px;margin-top:10px}.team-member-actions>div{display:grid;grid-template-columns:minmax(90px,1fr) auto auto;align-items:center;gap:7px;padding-top:7px;border-top:1px solid #263a68}.team-member-actions button{min-height:32px!important;padding:5px 9px!important;font-size:11px!important}.team-member-actions small{padding:4px 7px;border-radius:999px;background:#17345b;color:#62e4ff;font-size:10px;font-weight:800}
.minigame-player-reminder{border-left-color:#35dcff!important;background:linear-gradient(90deg,#073047cc,#111a38)!important}.minigame-player-reminder strong{color:#49e6ff!important}
.number-wheel-console .wheel-operators{gap:12px;margin-top:14px}.number-wheel-console .wheel-operators button{width:58px;height:52px;font-size:34px;font-weight:950;line-height:1}.number-wheel-console .wheel-operators button:disabled{color:#91a9ca;border-color:#496283}@media(max-width:420px){.number-wheel-console .wheel-operators{gap:9px}.number-wheel-console .wheel-operators button{width:52px;height:48px;font-size:31px}}
.player-view.player-fullscreen-view{height:var(--player-height,100dvh);min-height:0;overflow:hidden}.player-fullscreen-view .game-shell{display:flex;width:min(560px,100%);height:var(--player-height,100dvh);min-height:0;flex-direction:column;padding:4px 7px calc(4px + env(safe-area-inset-bottom));overflow:hidden}.player-fullscreen-view .game-shell>header{display:none}.player-fullscreen-view #app{flex:1 1 auto;min-height:0;margin:0;padding:8px 10px;overflow:auto;overscroll-behavior:contain}.compact-question-view #app{display:flex;flex-direction:column;overflow:hidden}.compact-question-view .player-identity{flex:0 0 28px;height:28px;margin:0 0 4px;padding:0 0 4px}.compact-question-view #app>.badge{flex:0 0 auto;margin:1px auto 3px;padding:2px 7px;font-size:10px}.compact-question-view .question{display:grid;place-items:center;flex:1 1 auto;min-height:44px;max-height:24vh;font-size:clamp(17px,4.6vw,24px);line-height:1.12}.compact-question-view .timer{flex:0 0 auto;margin:3px;font-size:27px}.compact-question-view .options{flex:0 0 auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.compact-question-view #app .option{min-height:58px!important;padding:7px 8px;font-size:clamp(12px,3.5vw,15px);line-height:1.15;box-shadow:0 2px 0 #0d1430}.compact-question-view #app>.status{margin:5px 0 0;font-size:11px}.compact-question-view #app>p:not(.player-identity):not(.badge):not(.status){margin:4px 0;font-size:11px}@media(max-width:360px),(max-height:620px){.compact-question-view #app{padding:5px 7px}.compact-question-view .question{max-height:21vh;font-size:16px}.compact-question-view #app .option{min-height:49px!important;padding:5px 6px;font-size:11px}.compact-question-view .timer{font-size:23px}.compact-question-view .player-identity{height:25px;flex-basis:25px;font-size:11px}}
.battle-token{display:inline-grid;place-items:center;flex:0 0 auto;color:var(--token-color);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--token-color) 55%,transparent))}.battle-token svg{display:block;width:100%;height:100%;overflow:visible}.battle-token svg>*{fill:currentColor}.token-xs{width:20px;height:20px}.token-sm{width:30px;height:30px}.token-md{width:42px;height:42px}.token-xl{width:82px;height:82px}.team-pill{display:inline-flex;align-items:center;gap:6px}.registered-teams li{align-items:center}.registered-teams li>.battle-token{margin-right:7px}.registered-teams li>b{margin-right:auto}.player-identity{justify-content:flex-start}.player-identity>span:last-child{margin-left:auto}.token-reveal{padding:4px 0 12px;border-bottom:1px solid var(--line);margin-bottom:12px}.token-reveal .battle-token{margin:0 auto 5px}.token-reveal p{margin:3px 0}.leaderboard li{grid-template-columns:32px 34px 1fr auto;align-items:center}.round-results li{grid-template-columns:minmax(80px,auto) 32px 1fr auto}.race-label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;text-align:left}.race-label small{margin-left:auto}.token-runner{top:5px;font-size:0}.race-track{height:50px}@media(max-width:620px){.round-results li{grid-template-columns:72px 28px 1fr auto}.round-results li>strong{grid-column:auto}.token-xl{width:68px;height:68px}.leaderboard li{grid-template-columns:25px 30px 1fr auto;padding:9px 4px;font-size:15px}}
.battle-token svg [fill="none"]{fill:none}.battle-token svg [fill="#091127"]{fill:#091127}.battle-token svg [fill="white"]{fill:white}
.token-draw{width:min(100%,520px);margin:auto;text-align:center}.token-draw>h1{margin:7px 0 2px}.draw-team{display:grid;gap:2px;margin:4px 0 8px}.draw-team strong{font-size:19px;color:#fff}.draw-team span{font-size:12px;color:var(--muted)}.token-draw-stage{position:relative;width:190px;height:190px;margin:8px auto 5px;border:1px solid #38558d;border-radius:50%;background:radial-gradient(circle,#17264b 0 35%,#0b132c 37% 63%,#17254a 65% 100%);box-shadow:inset 0 0 24px #020611,0 0 18px #48e7ff2d}.draw-pointer{position:absolute;z-index:4;top:-9px;left:50%;transform:translateX(-50%);color:var(--yellow);font-size:28px;line-height:1;text-shadow:0 0 8px #ffe34faa}.token-orbit{position:absolute;inset:50%;z-index:1}.token-orbit i{position:absolute;display:block;width:30px;height:30px;margin:-15px;transform:rotate(calc(360deg / var(--slots) * var(--slot))) translateY(-70px) rotate(calc(-360deg / var(--slots) * var(--slot)))}.token-draw-stage.spinning .token-orbit{animation:token-wheel-spin .42s linear infinite}.token-draw-stage.spinning .draw-result{animation:token-question-pulse .42s ease-in-out infinite alternate}.draw-result{position:absolute;z-index:3;inset:50%;display:grid;place-items:center;width:82px;height:82px;margin:-41px;border:1px solid #45649d;border-radius:50%;background:#091127;box-shadow:0 0 20px #48e7ff38}.draw-result>span{color:var(--cyan);font:900 38px/1 system-ui}.draw-winner{margin:2px 0;color:var(--yellow);font-size:19px!important;text-transform:uppercase}.draw-status{min-height:23px;color:var(--yellow);font-weight:800}.draw-completed{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin-top:8px}.draw-completed>span{display:flex;align-items:center;gap:4px;padding:4px 7px;border:1px solid #314976;border-radius:999px;background:#101a36;font-size:10px}.draw-completed b{font-weight:700}@keyframes token-wheel-spin{to{transform:rotate(360deg)}}@keyframes token-question-pulse{to{box-shadow:0 0 30px #ffe34f66;border-color:var(--yellow)}}@media(max-width:420px){.token-draw-stage{width:174px;height:174px}.token-orbit i{transform:rotate(calc(360deg / var(--slots) * var(--slot))) translateY(-63px) rotate(calc(-360deg / var(--slots) * var(--slot)))}}
.host-countdown{font:800 32px/1 monospace;color:var(--yellow);margin:8px 0}
.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(64px,1fr));gap:8px;max-width:360px;margin:12px auto}.memory-tile{position:relative;aspect-ratio:1;min-height:0;padding:5px;border:1px solid #42609b;border-radius:7px;background:linear-gradient(145deg,#223763,#101a37);color:#fff;box-shadow:0 3px 0 #071027;overflow:hidden}.memory-tile:disabled{opacity:1;cursor:default}.memory-tile.open{background:#0a1025;border-color:var(--cyan);box-shadow:0 0 14px #48e7ff55}.memory-tile.selected{outline:2px solid var(--yellow);background:#28304b}.memory-tile>.battle-token{margin:auto}.memory-number{position:absolute;top:4px;left:5px;color:#8e9abc;font:700 10px/1 monospace}.memory-tile>b{position:absolute;right:4px;bottom:4px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:var(--yellow);color:#101525;font:900 11px/1 monospace}.memory-targets{display:flex;justify-content:center;gap:8px;margin:8px 0}.memory-targets>span{display:flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#0c132c}.memory-targets b{color:var(--yellow);font-size:11px}.memory-progress{margin:3px 0;color:var(--cyan);font-size:12px}@media(max-width:420px){.memory-grid{gap:5px}.memory-tile{border-radius:5px}.memory-number{font-size:9px}.memory-targets>span{padding:4px 6px}}
.breakout-battles{display:grid;grid-template-columns:repeat(var(--breakout-columns,3),minmax(0,1fr));gap:7px;margin:7px 0}.breakout-battles.teams-2{--breakout-columns:2}.breakout-battles.teams-3{--breakout-columns:3}.breakout-battles.teams-4{--breakout-columns:4}.breakout-board{position:relative;min-height:180px;padding:7px;border:1px solid #375083;border-radius:7px;background:linear-gradient(#09142e,#101c3c);overflow:hidden}.breakout-board.mine{border-color:var(--cyan);box-shadow:0 0 12px #48e7ff44}.breakout-name{display:flex;align-items:center;gap:4px;font-size:10px}.breakout-name strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breakout-name span{margin-left:auto;color:var(--yellow);font-size:9px}.breakout-bricks{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:8px}.breakout-bricks i{height:11px;border-radius:2px;background:linear-gradient(90deg,#45dff7,#596fe8);box-shadow:0 0 5px #48e7ff55}.breakout-bricks i.target{background:linear-gradient(90deg,#ffe34f,#ff9d2e);box-shadow:0 0 8px #ffe34faa}.breakout-bricks i.broken{visibility:hidden}.breakout-ball{position:absolute;left:45%;bottom:32px;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 8px var(--cyan);animation:breakout-ball .8s linear infinite alternate}.breakout-paddle{position:absolute;left:38%;bottom:13px;width:24%;height:7px;border-radius:5px;background:var(--cyan);box-shadow:0 0 8px #48e7ffaa;animation:breakout-paddle 1.2s ease-in-out infinite alternate}.breakout-place{position:absolute;inset:auto 5px 48px;padding:4px;border-radius:5px;background:#080b18e8;color:var(--yellow);font-size:10px}.breakout-hit{width:100%;min-height:74px!important;background:var(--pink);color:#fff;touch-action:manipulation;user-select:none}.race-tip{font-size:11px}@keyframes breakout-ball{from{transform:translate(-25px,-3px)}to{transform:translate(25px,-90px)}}@keyframes breakout-paddle{from{transform:translateX(-12px)}to{transform:translateX(12px)}}@media(max-width:600px){.breakout-battles{gap:4px}.breakout-board{min-height:138px;padding:4px}.breakout-name{font-size:8px}.breakout-name .battle-token{display:none}.breakout-name span{font-size:7px}.breakout-bricks{gap:1px}.breakout-bricks i{height:7px}.breakout-place{font-size:8px;inset:auto 3px 38px}}.breakout-live-progress{position:absolute;left:8px;right:8px;bottom:14px;height:7px;border-radius:99px;background:#071027;box-shadow:inset 0 0 0 1px #3b5488;overflow:hidden}.breakout-live-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#48e7ff,#596fe8);box-shadow:0 0 8px #48e7ff}
.breakout-control{position:relative;height:330px;margin:7px auto 0;padding:28px 10px 10px;border:2px solid var(--cyan);border-radius:8px;background:linear-gradient(#071027,#111c40);touch-action:none;overflow:hidden}.breakout-control>p{position:absolute;top:5px;left:0;right:0;margin:0;color:var(--yellow);font-size:10px}.breakout-control .breakout-bricks{margin:0}.breakout-control .breakout-bricks i{height:17px}.breakout-control #breakoutBall{position:absolute;width:13px;height:13px;margin:-6px;border-radius:50%;background:#fff;box-shadow:0 0 11px var(--cyan)}.breakout-control #breakoutPaddle{position:absolute;top:90%;width:14%;height:8px;margin-left:-7%;border-radius:6px;background:var(--cyan);box-shadow:0 0 10px #48e7ff;transform:none}.breakout-control+.race-tip{margin-top:5px}.breakout-touchpad{position:relative;height:64px;margin:10px auto 0;border:1px solid #5270a8;border-radius:12px;background:linear-gradient(180deg,#172a50,#0b1730);box-shadow:inset 0 1px 0 #ffffff18;touch-action:none;user-select:none;overflow:hidden}.breakout-touchpad span{position:absolute;inset:0;display:grid;place-items:center;color:#aebdde;font-size:11px;font-weight:800;letter-spacing:.08em;pointer-events:none}.breakout-touchpad i{position:absolute;left:50%;bottom:7px;width:42px;height:5px;margin-left:-21px;border-radius:99px;background:var(--cyan);box-shadow:0 0 10px #48e7ffaa;pointer-events:none}
.defense-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:9px 0}.defense-scores>div{display:grid;grid-template-columns:auto 1fr;gap:2px 5px;align-items:center;padding:7px;border:1px solid var(--line);border-radius:6px;background:#0c142e;text-align:left}.defense-scores>div.mine{border-color:var(--cyan)}.defense-scores strong{font-size:11px;overflow:hidden;text-overflow:ellipsis}.defense-scores span{grid-column:1/-1;color:var(--muted);font-size:9px}.defense-scores b{grid-column:1/-1;color:var(--yellow);font-size:11px}.defense-arena{position:relative;height:350px;border:2px solid #8d4fff;border-radius:8px;background:radial-gradient(circle at 50% 110%,#243674,#070c21 58%);overflow:hidden}.defense-sky{position:absolute;inset:0 0 38px}.defense-sky button{position:absolute;width:38px;height:38px;min-height:0!important;margin:-19px;padding:0;border:1px solid var(--pink);border-radius:50%;background:#301c58;color:#fff;font-size:20px;box-shadow:0 0 12px #ff4fbacc;touch-action:manipulation}.defense-city{position:absolute;left:0;right:0;bottom:0;height:38px;padding-top:8px;background:#101936;color:var(--cyan);letter-spacing:7px;text-shadow:0 0 8px var(--cyan)}@media(max-width:420px){.defense-arena{height:315px}.defense-sky button{width:34px;height:34px;margin:-17px}.defense-city{letter-spacing:4px}}
.wheel-target{display:inline-flex;flex-direction:column;min-width:120px;margin:8px auto 14px;padding:8px 18px;border:1px solid var(--yellow);border-radius:10px;background:#0b1224}.wheel-target small{font-size:10px;color:var(--muted);letter-spacing:.12em}.wheel-target strong{font-size:34px;color:var(--yellow)}
.number-wheel-console{width:min(100%,390px);margin:7px auto 11px;padding:12px;border:1px solid #2eddf080;border-radius:20px;background:radial-gradient(circle at 50% 0,#163759 0,#0a1730 40%,#050914 100%);box-shadow:inset 0 1px 0 #ffffff20,0 0 24px #20dff01a;touch-action:manipulation}
.wheel-gauge{display:grid;place-items:center;gap:3px;width:min(100%,260px);min-height:94px;margin:0 auto 12px;padding:12px 18px;border:1px solid #465d85;border-radius:14px;background:linear-gradient(180deg,#111f3a,#07101f);text-align:center;box-shadow:inset 0 1px 0 #ffffff18,0 7px 18px #0005}.wheel-gauge small,.wheel-gauge strong{display:block}.wheel-gauge small{color:#b9c9e5;font-size:11px;font-weight:850;letter-spacing:.17em}.wheel-gauge strong{color:#ffe13f;font:950 56px/.95 system-ui,sans-serif;text-shadow:0 0 18px #ffd82c77}
.number-wheel-bezel{padding:7px;border:1px solid #41577d;border-radius:15px;background:linear-gradient(145deg,#273b5c,#07101f 55%,#1b2b48)}.number-wheel-machine{display:flex;justify-content:center;align-items:center;gap:6px;margin:0;padding:8px;border-radius:10px;background:#030711;box-shadow:inset 0 0 0 1px #071933,inset 0 0 22px #000}.number-reel{position:relative;display:grid;place-items:center;width:67px;height:82px;overflow:hidden;border:0;border-radius:7px;background:linear-gradient(180deg,#02040a 0,#111f3b 18%,#28446a 48%,#111f3b 78%,#02040a 100%);color:#f7fbff;font:800 49px/1 ui-monospace,SFMono-Regular,Menlo,monospace;text-shadow:0 0 9px #bcefff55;box-shadow:inset 0 1px #ffffff29,inset 0 -1px #000}.number-reel:before,.number-reel:after{content:"";position:absolute;left:0;right:0;height:1px;background:#87dff055}.number-reel:before{top:22%}.number-reel:after{bottom:22%}.number-reel.spinning{color:#50efff;animation:reelSpin .16s steps(2,end) infinite}.wheel-chosen-op{display:grid;place-items:center;width:29px;height:38px;border:1px solid #34496e;border-radius:7px;background:#0c1628;color:#ffe13f;font-size:25px;font-weight:900}.wheel-operators{display:flex;justify-content:center;gap:8px;margin:11px 0 0}.wheel-operators button{width:48px;height:40px;min-height:0;padding:0;border:1px solid #496487;border-radius:10px;background:#0b172a;color:#7890b2;font-size:22px;box-shadow:none}.wheel-operators button:disabled{opacity:1;filter:none;border-color:#334766;background:#091426;color:#607697}.wheel-operators button:not(:disabled){border-color:#ffe13f;background:#16233a;color:#ffe13f;box-shadow:0 0 10px #ffe13f22}.wheel-operators button:not(:disabled):active{background:#ffe13f;color:#07101d;transform:scale(.96)}.wheel-stop{width:164px!important;height:48px!important;min-height:0!important;margin:10px auto!important;padding:0!important;border:1px solid #ffe13f!important;border-radius:24px!important;background:#ffe13f!important;color:#08111f!important;font-size:14px!important;font-weight:900!important;box-shadow:0 0 16px #ffe13f33!important}@keyframes reelSpin{0%{transform:translateY(-4px);filter:blur(1.4px);opacity:.72}100%{transform:translateY(4px);filter:blur(.2px);opacity:1}}@media(max-width:420px){.number-wheel-console{width:min(100%,350px);padding:9px}.wheel-gauge{min-height:82px}.wheel-gauge strong{font-size:50px}.number-wheel-bezel{padding:6px}.number-wheel-machine{gap:4px;padding:6px}.number-reel{width:58px;height:72px;font-size:43px}.wheel-chosen-op{width:24px;height:34px;font-size:22px}.wheel-operators button{width:45px;height:38px}}
.regia-tools{display:grid;gap:7px;max-width:680px;margin:10px auto}.regia-tools a{display:flex;justify-content:space-between;gap:18px;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:#10182f;color:var(--text);text-decoration:none;font-size:13px}.regia-tools span{color:var(--muted);font-size:11px}.questions-admin{background:#080b18}.questions-shell{width:min(1280px,100%);margin:auto;padding:12px}.questions-top{display:flex;align-items:center;gap:18px;margin:0 0 10px;text-align:left}.questions-top>a{color:var(--cyan);text-decoration:none;font-size:12px}.questions-top>div{flex:1}.questions-top h1{font-size:23px;margin:0}.questions-top p{font-size:11px;margin:2px 0}.questions-admin button{min-height:36px;padding:7px 11px;border:1px solid #42609b;border-radius:6px;background:#20325b;color:var(--text);font-size:12px;box-shadow:none}.question-toolbar{display:grid;grid-template-columns:1fr 220px 170px auto;gap:7px;margin-bottom:9px}.questions-admin input,.questions-admin select,.questions-admin textarea{width:100%;margin:0;padding:7px 9px;border:1px solid #3c4f7e;border-radius:6px;background:#080d22;color:#fff;font:13px system-ui;resize:vertical}.questions-layout{display:grid;grid-template-columns:minmax(420px,1fr) minmax(420px,.85fr);gap:10px;align-items:start}.admin-question-list{display:grid;gap:4px;max-height:calc(100vh - 112px);overflow:auto}.admin-question{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 10px;border:1px solid #26365f;border-radius:6px;background:#101832;cursor:pointer}.admin-question:hover{border-color:#4d6da9}.admin-question>div{min-width:0}.admin-question strong{display:block;margin-top:2px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.question-meta{color:var(--cyan);font-size:10px}.status-tag{flex:0 0 auto;padding:3px 6px;border-radius:999px;background:#283453;color:#bdc7e3;font-size:9px;text-transform:uppercase}.status-approved{background:#16452c;color:#78f4a4}.status-review{background:#51451b;color:#ffe675}.status-suspended{background:#55232b;color:#ff9aa3}.question-editor{position:sticky;top:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#111a35}.editor-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.editor-title h2{font-size:17px;margin:0}.questions-admin label{display:block;margin:7px 0;color:var(--muted);font-size:11px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.answers-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 7px}.editor-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:9px}.editor-actions span{margin-right:auto;color:var(--cyan);font-size:11px}.questions-admin dialog{width:min(720px,calc(100% - 20px));padding:0;border:1px solid var(--line);border-radius:9px;background:#111a35;color:var(--text)}.questions-admin dialog::backdrop{background:#02040bd9}.import-box{padding:14px}.import-box p{font-size:12px}.empty-row{padding:24px;text-align:center;border:1px dashed var(--line)}@media(max-width:860px){.question-toolbar{grid-template-columns:1fr 1fr}.question-toolbar input{grid-column:1/-1}.questions-layout{grid-template-columns:1fr}.admin-question-list{max-height:none}.question-editor{position:fixed;z-index:10;inset:8px;overflow:auto}.questions-top{gap:9px}.questions-top h1{font-size:19px}}@media(max-width:520px){.question-toolbar{grid-template-columns:1fr}.question-toolbar input{grid-column:auto}.editor-grid,.answers-grid{grid-template-columns:1fr}.regia-tools a{display:block}.regia-tools span{display:block;margin-top:3px}}

.game-lab{background:#080b18}.lab-shell{width:min(1180px,100%);margin:auto;padding:14px}.lab-top{display:flex;align-items:flex-start;gap:18px;margin-bottom:12px;text-align:left}.lab-top>a{flex:0 0 auto;margin-top:5px;color:var(--cyan);font-size:12px;text-decoration:none}.lab-top h1{margin:0;font-size:24px}.lab-top p{margin:3px 0 0;color:var(--muted);font-size:12px}.game-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:7px}.game-test-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:72px;padding:10px 11px;border:1px solid #2d416f;border-radius:8px;background:#101832}.game-test-card div{min-width:0}.game-test-card h2{margin:0 0 3px;font-size:15px}.game-test-card p{margin:0;color:var(--muted);font-size:10px;line-height:1.35}.game-test-card button{flex:0 0 auto;min-height:34px;padding:6px 10px;border:1px solid #3c79a2;border-radius:6px;background:#173454;color:#c9f7ff;font-size:11px;box-shadow:none}.game-test-card button:hover{border-color:var(--cyan)}.game-test-card button:disabled{opacity:.55}.test-launch{margin-top:12px;padding:12px;border:1px solid var(--cyan);border-radius:8px;background:#0d1c30}.test-launch-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.test-launch-head h2{margin:4px 0 0;font-size:18px}.test-launch-head>span{color:var(--muted);font-size:11px}.test-main-links,.captain-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.test-main-links a,.captain-links a{padding:8px 11px;border:1px solid #3c79a2;border-radius:6px;background:#183255;color:#fff;text-decoration:none;font-size:11px}.test-main-links a:first-child{border-color:var(--pink);background:#4b1745}.test-hint{margin:12px 0 0;color:var(--muted);font-size:10px}.captain-links{margin-top:6px}.lab-message{min-height:18px;margin:8px 0;color:#ff9aa3;font-size:11px}@media(max-width:600px){.lab-shell{padding:10px}.lab-top{gap:10px}.lab-top h1{font-size:20px}.game-catalog{grid-template-columns:1fr}.game-test-card{min-height:66px}.test-launch-head{align-items:flex-start;flex-direction:column}.test-main-links a,.captain-links a{flex:1 1 145px;text-align:center}}

.question-visual-preview{margin:8px 0 10px;padding:9px;border:1px solid #3c568c;border-radius:7px;background:#080e22}.question-visual-preview>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.question-visual-preview small{color:var(--muted);font-size:9px}.question-visual-preview img{display:block;width:100%;max-height:240px;object-fit:contain;border-radius:5px;background:#030612}.admin-word-preview{display:flex;flex-wrap:wrap;gap:3px}.admin-word-preview i{display:grid;place-items:center;width:22px;height:27px;border-radius:3px;background:#fff;color:#17203c;font-weight:900}.admin-hints{display:grid;gap:4px}.admin-hints span{padding:5px 7px;border:1px solid #304574;border-radius:4px;font-size:10px}
.question-row-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto}.question-row-actions button{min-height:28px;padding:4px 7px;font-size:9px}.question-row-actions [data-test-question]{border-color:#2b9f70;background:#123c30;color:#9affca}@media(max-width:620px){.admin-question{align-items:flex-start;flex-direction:column}.question-row-actions{width:100%;justify-content:flex-end}}
.regia-section-title{max-width:680px;margin:18px auto 8px;font-size:14px;color:#dce6ff}.regia-test-sections{display:grid;grid-template-columns:1fr;gap:8px;max-width:680px;margin:0 auto}.regia-test-sections a{display:grid;grid-template-columns:30px minmax(0,1fr);gap:2px 8px;align-items:center;min-width:0;padding:12px;border:1px solid #345083;border-radius:8px;background:#101a36;color:#fff;text-decoration:none}.regia-test-sections b{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#173f55;color:var(--cyan);font-size:12px}.regia-test-sections strong{font-size:12px;white-space:nowrap}.regia-test-sections span{min-width:0;color:var(--muted);font-size:10px;line-height:1.3}.regia-admin-tools{margin-top:10px}.test-category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px}.test-category-card{display:flex;align-items:flex-start;flex-direction:column;min-height:68px;padding:10px 12px;border:1px solid #35548c;border-radius:7px;background:#111d3c;color:#fff;text-align:left;box-shadow:none}.test-category-card:hover{border-color:var(--cyan);background:#16264c}.test-category-card strong{font-size:14px}.test-category-card span{margin-top:4px;color:#9fb0d5;font-size:10px}@media(max-width:680px){.test-category-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:420px){.test-category-grid{grid-template-columns:1fr}}

.race-stage-vertical{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding:2px 1px 6px}.race-stage-vertical .race-lane{flex:1 0 76px;min-width:76px;max-width:125px;padding:5px;border:1px solid #293b68;border-radius:7px;background:#0c142d}.race-stage-vertical .race-lane.mine{border-color:var(--cyan);box-shadow:0 0 9px #48e7ff33}.race-stage-vertical .race-label{display:grid;grid-template-columns:18px 1fr;gap:2px 3px;height:42px;align-items:center}.race-stage-vertical .race-label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.race-stage-vertical .race-label small{grid-column:1/-1;margin:0;color:var(--yellow);font-size:9px;text-align:center}.race-track-vertical{height:clamp(250px,48vh,430px);margin:3px 0 0;border:0;border-radius:5px;background:repeating-linear-gradient(0deg,#17254a 0 31px,#1c2d55 32px);overflow:hidden}.race-track-vertical .finish-line,.race-track-vertical .start-line{position:absolute;left:0;right:0;height:7px;background:repeating-linear-gradient(90deg,#fff 0 8px,#10152a 8px 16px)}.race-track-vertical .finish-line{top:5px}.race-track-vertical .start-line{bottom:5px}.race-track-vertical .token-runner{left:50%;top:auto;margin-left:-21px;transition:bottom .18s linear}.race-button{min-height:82px;margin-top:8px;font-size:clamp(25px,8vw,38px)}
button.accent{background:var(--yellow);color:#171506;border-color:#d3ac20;box-shadow:0 3px 0 #8b6e0d}
.estimate-form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;max-width:430px;margin:12px auto;text-align:left}.estimate-form label{margin:0;font-size:12px}.estimate-form label span{color:var(--cyan)}.estimate-form input{height:46px;margin-top:4px;padding:8px 10px;font-size:20px}.estimate-form button{min-width:110px}.order-options .option{font-size:13px;line-height:1.35}@media(max-width:420px){.estimate-form{grid-template-columns:1fr}.estimate-form button{width:100%}}
.questions-admin .question-toolbar{grid-template-columns:minmax(220px,1fr) 180px 180px 140px auto}@media(max-width:860px){.questions-admin .question-toolbar{grid-template-columns:1fr 1fr}.questions-admin .question-toolbar input{grid-column:1/-1}}@media(max-width:520px){.questions-admin .question-toolbar{grid-template-columns:1fr}.questions-admin .question-toolbar input{grid-column:auto}}
.burst-statement{display:grid;place-items:center;min-height:120px;margin:12px 0;padding:18px;border:1px solid var(--cyan);border-radius:8px;background:#0b1732;font-size:clamp(20px,5vw,28px);font-weight:850}.burst-buttons{display:grid;grid-template-columns:1fr 1fr;gap:9px}.burst-buttons button{min-height:68px!important;font-size:20px!important}.burst-true{background:var(--green)!important;box-shadow:0 3px 0 #238f4b!important}.burst-false{background:var(--yellow)!important;box-shadow:0 3px 0 #927a15!important}.burst-solutions{display:grid;gap:6px;padding:0;list-style:none;text-align:left}.burst-solutions li{display:grid;grid-template-columns:82px 1fr;gap:3px 8px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#0d1630}.burst-solutions b{color:var(--yellow)}.burst-solutions small{grid-column:2;color:var(--muted)}
.format-visual{display:block;width:100%;max-height:285px;margin:9px auto;object-fit:contain;border:1px solid #304a7c;border-radius:7px;background:#050916}.format-visual.blank_map{max-height:340px}.player-view .format-visual+.question{margin-top:8px}
.hidden-question{margin:5px 0 8px;font-size:clamp(17px,4.5vw,24px)}.hidden-board{position:relative;width:min(100%,680px);margin:8px auto;border:2px solid #35548c;border-radius:8px;background:#050916;overflow:hidden;touch-action:manipulation}.hidden-board[data-enabled="1"]{border-color:var(--cyan);cursor:pointer}.hidden-board img{display:block;width:100%;height:auto}.hidden-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--hidden-grid),1fr);grid-template-rows:repeat(var(--hidden-grid),1fr)}.hidden-cell,.hidden-cell:disabled{min-width:0;min-height:0;margin:0;padding:0;border:1px solid #d9efff99;border-radius:0;background:transparent!important;opacity:1;filter:none;box-shadow:none;cursor:default}.hidden-board[data-enabled="1"] .hidden-cell{cursor:pointer}.hidden-cell.selected{border:3px solid var(--cyan);background:#43e4ff38!important;box-shadow:inset 0 0 18px #43e4ffcc!important}.hidden-cell.wrong{border-color:#ff6d77;background:#ff536133!important}.hidden-cell.correct{z-index:2;border:4px solid var(--yellow);background:#ffe34f38!important;box-shadow:inset 0 0 20px #ffe34fcc,0 0 18px #ffe34f!important}.full-clue img{object-fit:contain}
.missing-compare{display:grid;grid-template-columns:1fr 1fr;gap:7px}.missing-compare figure{margin:0}.missing-compare .flash-photo{margin:0}.missing-compare figcaption{padding:4px;color:var(--cyan);font-size:10px;font-weight:800}@media(max-width:520px){.missing-compare{grid-template-columns:1fr}.missing-compare .flash-photo{max-height:210px}}
.review-test-toolbar{position:sticky;z-index:50;top:0;display:flex;justify-content:center;gap:5px;padding:6px;background:#070b18ee;border-bottom:1px solid #314978;backdrop-filter:blur(8px)}.review-test-toolbar a,.review-test-toolbar button{display:inline-flex;align-items:center;min-height:34px!important;margin:0!important;padding:6px 9px!important;border:1px solid #405b92!important;border-radius:5px!important;background:#162548!important;color:#eef3ff!important;font-size:10px!important;font-weight:800;text-decoration:none;box-shadow:none!important}.review-test-toolbar button:last-child{border-color:#4fbd75!important;background:#173e29!important}.review-test-toolbar button:nth-last-child(2){border-color:#b65a64!important;background:#47212a!important}@media(max-width:520px){.review-test-toolbar{display:grid;grid-template-columns:repeat(2,1fr)}.review-test-toolbar a,.review-test-toolbar button{justify-content:center}}
.embedded-review .review-test-toolbar,.embedded-review .lab-back{display:none!important}.embedded-review .game-shell{padding:5px!important}.embedded-review .game-shell>header{display:none!important}.embedded-review #app{margin:0!important}.review-shell-live{width:min(980px,100%)}.review-player{margin:9px 0;border:1px solid #314978;border-radius:8px;overflow:hidden;background:#070b18}.review-player iframe{display:block;width:100%;height:min(720px,72vh);border:0}.review-controls-top{margin-bottom:9px}.review-controls-bottom{margin-top:9px}.review-controls .review-difficulty{min-width:130px}@media(max-width:600px){.review-player iframe{height:68vh}.review-controls{position:relative}.review-controls a,.review-controls button{min-height:36px!important}}
.blind-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px auto;max-width:430px}.blind-cards button{min-height:118px;padding:10px;border:2px solid #3e5a96;background:linear-gradient(145deg,#17264e,#0b1430);color:#eef3ff}.blind-cards b{display:block;font-size:2.5rem;color:#ffe34f}.blind-cards span{font-size:.75rem;letter-spacing:.08em}.blind-category{display:inline-block;margin:14px 0;padding:12px 20px;border:2px solid #48e7ff;border-radius:12px;background:#11264b;color:#ffe34f;font-size:clamp(1.25rem,5vw,2rem);font-weight:900;text-transform:uppercase}
.duel-teams{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:14px 0}.duel-teams span{display:flex;align-items:center;gap:6px;padding:7px 11px;border:1px solid #3e5a96;border-radius:999px;background:#132247;font-size:.85rem}
.review-shell{width:min(820px,100%);margin:auto;padding:12px}.review-filters,.review-answers{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}.review-card{padding:14px;border:1px solid var(--line);border-radius:9px;background:#111a35}.review-card h2{font-size:21px}.review-media{display:block;max-width:100%;max-height:42vh;margin:10px auto;border-radius:8px;object-fit:contain}.review-answer b,.review-answers b{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#31456f}.review-answers .correct{background:#16452c;border-color:#44db86}.review-answers .wrong{background:#55232b;border-color:#ef6570}.review-solution{margin-top:9px;padding:9px;border-left:3px solid var(--yellow);background:#0a1025}.review-controls{display:flex;flex-wrap:wrap;align-items:end;gap:7px;margin-top:10px}.review-controls label{margin-right:auto}.review-controls a{padding:9px 11px;border:1px solid #42609b;border-radius:6px;color:#fff;text-decoration:none}.review-word-board{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:14px 0}.review-word{display:flex;gap:3px}.review-word i{display:block;width:23px;height:30px;border-bottom:3px solid #eef3ff;text-align:center}.review-format-note{color:var(--muted);font-size:12px}.review-special-answer{font-size:18px;font-weight:800}@media(max-width:600px){.review-filters,.review-answers{grid-template-columns:1fr}.review-controls>*{flex:1 1 42%}}
.host-shell .plan-test{margin:0 0 10px;padding:11px 12px;border:1px solid #3b4e7c;border-left:3px solid #63749e;border-radius:8px;background:#0d1630}.host-shell .plan-test.enabled{border-left-color:var(--green)}.host-shell .plan-test-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.host-shell .plan-test h2{margin:3px 0;font-size:17px}.host-shell .plan-test p{margin:0;color:var(--muted);font-size:11px}.host-shell .test-switch{display:flex;align-items:center;gap:7px;white-space:nowrap}.host-shell .test-switch input{width:16px;height:16px;margin:0;padding:0}.host-shell .test-settings{display:grid;grid-template-columns:190px 1fr;gap:8px;margin-top:9px;padding-top:8px;border-top:1px solid #27375f}.host-shell .test-settings label{margin:0}.host-shell .test-settings select{margin-top:3px}.host-shell .empty-planner{margin:10px auto;padding:18px}.host-shell .empty-planner h2{font-size:17px}@media(max-width:620px){.host-shell .plan-test-head{align-items:flex-start}.host-shell .test-settings{grid-template-columns:1fr}}
.join-home{background:#000}.join-home:before{display:none}.join-home .shell{display:flex;min-height:100vh;flex-direction:column;justify-content:center}.join-home header{margin:0}.join-home .brand-logo{width:min(72vw,380px)}.join-home #registration,.join-home #captain,.join-home #spectator,.join-home #message{width:100%}
.pause-view #app{border:0;background:transparent;box-shadow:none}.pause-player{display:grid;height:100%;min-height:0;place-content:center;justify-items:center;gap:7px;padding:8px}.pause-player .pause-logo{display:block;width:min(58vw,270px);max-height:25vh;object-fit:contain}.pause-player .pause-title{margin:0;color:var(--yellow);font-size:clamp(34px,9vw,64px);letter-spacing:.12em;text-shadow:0 0 18px #ffe34f66}.pause-player .pause-coffee{display:block;width:min(62vw,300px);max-height:39vh;margin-top:3px;border:1px solid #315080;border-radius:12px;object-fit:cover;box-shadow:0 12px 34px #0009,0 0 24px #28d9ff1c}
.host-shell .plan-duration{align-self:center;margin-right:3px;color:#93a4ca;font-size:10px;font-weight:650;white-space:nowrap}
.host-shell .plan-library{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.2fr) auto;align-items:end;gap:8px;margin:0 0 10px;padding:10px 12px;border:1px solid #30406f;border-radius:8px;background:#10182f}.host-shell .plan-library label{margin:0}.host-shell .plan-library input,.host-shell .plan-library select{margin-top:3px}.host-shell .plan-editing-note{grid-column:1/-1;margin:2px 0 0;padding:7px 9px;border-left:3px solid var(--green);background:#123026;color:#bfffd5;font-size:11px}.host-shell .game-pickers{margin-top:9px;padding-top:8px;border-top:1px solid #2b3c68}.host-shell .game-pickers .add-game{grid-template-columns:minmax(0,1fr) auto;margin-top:6px;align-items:end}.host-shell .game-pickers label{margin:0;font-size:10px}.host-shell .game-pickers select{margin-top:3px}.host-shell .game-legend{display:flex;flex-wrap:wrap;gap:5px 12px;margin:7px 0 0;color:#8392b7;font-size:9px}@media(max-width:700px){.host-shell .plan-library{grid-template-columns:1fr}.host-shell .game-pickers .add-game{grid-template-columns:1fr auto}}
.host-shell .plan-utility-actions{display:flex;gap:7px;margin-top:8px;padding-top:8px;border-top:1px dashed #34466f}.host-shell .plan-utility-actions button{display:inline-flex;align-items:center;gap:7px}.host-shell .plan-utility-actions button span{font-size:16px;line-height:1}.host-shell .plan-utility-actions .utility-leaderboard{background:#173d32;border-color:#2f8f68;color:#a7ffd4}.host-shell .plan-utility-actions .utility-break{background:#493d13;border-color:#9a7f21;color:#ffe985}/* 14/10 (Moreno): scaletta a colori. Blu = quiz, arancione = minigiochi, viola = prenota e rispondi, fucsia = sfide con immagini, verde = classifica, giallo = pausa */
.host-shell .plan-item{border-left-width:6px}
.host-shell .plan-cat-quiz{--cat:#3d8bff}.host-shell .plan-cat-minigames{--cat:#ff8a1f}.host-shell .plan-cat-booking{--cat:#a66bff}.host-shell .plan-cat-multimedia{--cat:#ff4fa8}
.host-shell .plan-item[class*="plan-cat-"]:not(.plan-cat-other){border-left-color:var(--cat)}
/* etichetta con la categoria prima del nome del gioco, dello stesso colore della fascia */
.plan-chip{display:inline-block;vertical-align:middle;margin:0 8px 2px 4px;padding:2px 8px;border:1px solid var(--cat,#66eaff);border-radius:999px;color:var(--cat,#66eaff);background:#0b1230;font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;line-height:1.5;white-space:nowrap}
.host-shell .plan-item-leaderboard{border-left-color:#42d89a}.host-shell .plan-item-break{border-left-color:#ffe052}@media(max-width:480px){.host-shell .plan-utility-actions{display:grid;grid-template-columns:1fr 1fr}.host-shell .plan-utility-actions button{justify-content:center}}
.host-shell>header{position:relative}.host-home-link{position:absolute;left:0;top:4px;display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border:1px solid #3b4e7c;border-radius:6px;background:#151f3c;color:#dbe4ff;text-decoration:none;font-size:12px;font-weight:800}.host-home-link:hover{border-color:var(--cyan);color:#fff}@media(max-width:480px){.host-home-link span{display:none}.host-home-link{padding:6px 9px;font-size:16px}}

/* Regia su tablet: evita che le griglie desktop si comprimano o escano dal pannello. */
.host-shell .planner-head>div,.host-shell .phase-head label,.host-shell .plan-library label,.host-shell .test-settings label,.host-shell .add-game label{min-width:0}
.host-shell select,.host-shell input{max-width:100%;min-width:0}
@media(max-width:900px){
  .host-shell{width:100%;padding:8px 10px}
  .host-shell #hostApp{padding:12px}
  .host-shell .brand-logo.compact{width:140px}
  .host-shell header p{overflow-wrap:anywhere}
  .host-shell .live-layout,.host-shell .registration-compact,.host-shell .conductor-live{grid-template-columns:1fr}
  .host-shell .conductor-live aside{order:2}
  .host-shell .category-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
  .host-shell .planner-footer{position:static;flex-wrap:wrap}
  .host-shell .planner-footer p{order:3;width:100%;margin:0;text-align:center}
}

/* Esempi compatti riservati alla regia: aiutano il conduttore a spiegare il formato. */
.host-answer-key{display:grid;gap:2px;width:min(100%,520px);margin:8px 0;padding:8px 10px;border:1px solid #426b59;border-radius:6px;background:#102a24;text-align:left}.host-answer-key span{color:#8ab6a6;font-size:9px;font-weight:850;letter-spacing:.08em}.host-answer-key strong{color:var(--green);font-size:15px}.booking-popup .host-answer-key{width:100%;margin:4px 0 8px}
.next-game-player{display:grid;place-items:center;gap:5px;padding:16px 4px}.next-game-player span{color:var(--cyan);font-size:11px;font-weight:900;letter-spacing:.16em}.next-game-player h1{margin:0!important;color:var(--text);font-size:clamp(22px,7vw,34px)!important}.next-game-player p{margin:5px 0 0;font-size:12px}
.host-game-example{display:grid;grid-template-columns:150px 1fr;grid-template-rows:auto auto;gap:4px 12px;align-items:center;max-width:520px;margin:8px 0;padding:8px;border:1px solid #354b7d;border-radius:7px;background:#090f25;text-align:left}.host-game-example b{font-size:12px}.host-game-example>span{font-size:11px;color:var(--muted)}.host-example-image{position:relative;grid-row:1/3;width:150px;height:82px;overflow:hidden;border-radius:5px;background:#02040c}.host-example-image img{width:100%;height:100%;object-fit:cover}.host-example-image.zoom img{transform:scale(3.2)}.host-example-image.silhouette img{filter:brightness(0)}.host-example-image.tiles:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 48%,#0a1028 49% 51%,transparent 52%),linear-gradient(0deg,transparent 48%,#0a1028 49% 51%,transparent 52%);background-size:25% 100%,100% 34%}.host-example-image.target i{position:absolute;left:64%;top:42%;width:20px;height:20px;border:2px solid var(--yellow);border-radius:50%;transform:translate(-50%,-50%)}.host-example-image.target i:after{content:"";position:absolute;inset:6px;border-radius:50%;background:var(--yellow)}.host-example-buzzer{grid-row:1/3;display:grid;place-items:center;width:150px;height:82px;border:1px solid #365184;border-radius:5px;color:var(--muted);font-size:10px}.host-example-buzzer span{display:grid;place-items:center;width:58px;height:36px;border-radius:6px;background:var(--yellow);color:#111;font-weight:900}.host-example-sequence{grid-template-columns:1fr auto 1fr auto 1fr}.host-example-sequence div{display:grid;place-items:center;height:54px;border:1px solid #405789;border-radius:5px;font-size:10px;font-weight:850}.host-example-sequence div span{color:var(--cyan)}.host-example-sequence>b{grid-column:1/-1;text-align:center}.host-example-sequence>i{color:var(--cyan)}.host-example-word{grid-row:1/3;display:flex;gap:4px}.host-example-word i{display:grid;place-items:center;min-width:28px;height:36px;padding:0 5px;border-radius:4px;background:#eef3ff;color:#111a35;font-size:10px;font-style:normal;font-weight:900}@media(max-width:600px){.host-game-example{grid-template-columns:120px 1fr}.host-example-image,.host-example-buzzer{width:120px}.host-example-sequence{grid-template-columns:1fr auto 1fr auto 1fr}}
@media(max-width:600px){
  .host-shell .planner-head,.host-shell .phase-head{display:block}
  .host-shell .duration-total{display:flex;align-items:center;justify-content:space-between;margin-top:8px;text-align:left}
  .host-shell .phase-head>div{justify-content:space-between;margin-top:8px}
  .host-shell .plan-library{grid-template-columns:1fr}
  .host-shell .plan-library label:first-child{grid-column:auto}
  .host-shell .plan-library button{width:100%}
  .host-shell .quiz-settings,.host-shell .test-settings{grid-template-columns:1fr}
  .host-shell .category-choices{grid-template-columns:1fr}
  .host-shell .planner-main-actions{display:grid;width:100%;margin:0}
  .host-shell .planner-main-actions button,.host-shell .planner-footer .text-button{width:100%}
}
.points-hidden .round-results li>strong{visibility:hidden}.points-hidden .round-results li>strong:after{content:'—';visibility:visible;color:var(--muted)}
.next-game-player{display:grid;height:100%;min-height:0;place-content:center;justify-items:center;gap:7px}.next-game-player img{display:block;width:min(72vw,320px);max-height:42vh;object-fit:contain}.next-game-player span{color:var(--cyan);font-size:12px;font-weight:900;letter-spacing:.18em}.next-game-player h1{margin:0!important;color:var(--yellow);font-size:clamp(22px,8vw,38px)!important;text-align:center;text-transform:uppercase!important}
.breakout-bricks i{background:linear-gradient(90deg,#ff3da0,#ff7a57);box-shadow:0 0 5px #ff4d9466}.breakout-bricks i.target{background:linear-gradient(90deg,#3ce1f2,#5684f1);box-shadow:0 0 8px #48e7ffaa}

/* Sistema pulsanti: compatto, coerente e senza effetto giocattolo. */
button{border:1px solid #43608f;border-radius:7px;background:linear-gradient(180deg,#21375f 0%,#172746 100%);color:#f3f7ff;font-size:14px;font-weight:800;letter-spacing:.01em;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff12;transition:border-color .15s ease,background .15s ease,transform .08s ease,box-shadow .15s ease}
button:hover:not(:disabled){border-color:#63dff1;background:linear-gradient(180deg,#294873 0%,#1b3155 100%)}
button:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px 2px #0006,inset 0 1px 4px #0005}
button:focus-visible{outline:2px solid #75eaff;outline-offset:2px}
button:disabled{cursor:not-allowed;opacity:.42;filter:saturate(.45)}
button.secondary{border-color:#536889;background:linear-gradient(180deg,#273756,#1b2944);color:#e7edfb;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff10}
button.accent{border-color:#2ea7bb;background:linear-gradient(180deg,#176278,#10475d);color:#f2fdff;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff16}
button.warn,button.accent.warn{border-color:#b99b2e;background:linear-gradient(180deg,#4b421d,#332d18);color:#ffe978;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff12}
button.danger{border-color:#90444d;background:linear-gradient(180deg,#54252d,#391a21);color:#ffb2b8;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff10}
.option{border-color:#3c5687;background:linear-gradient(180deg,#21345f,#19294e);color:#f6f8ff;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff0d}
.option.selected{border-color:#56dc8a;background:linear-gradient(180deg,#1e6343,#174830);color:#effff5;box-shadow:0 0 0 1px #56dc8a55,0 2px 5px #0005}
.option.correct{outline:2px solid #5cff8d;outline-offset:1px}
.burst-buttons{gap:8px}.burst-buttons button{min-height:54px!important;border-radius:7px!important;font-size:17px!important;letter-spacing:.04em}.burst-true{border-color:#3baa68!important;background:linear-gradient(180deg,#205f41,#17452f)!important;color:#edfff4!important;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff12!important}.burst-false{border-color:#b99b2e!important;background:linear-gradient(180deg,#51461d,#373018)!important;color:#fff1a1!important;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff12!important}
.player-view #app button:not(.race-button):not(.buzz-button):not(.wheel-stop){border-radius:7px;box-shadow:0 2px 5px #0005,inset 0 1px 0 #ffffff12}
.host-shell button{border-radius:6px;background:linear-gradient(180deg,#21365e,#192a4d);box-shadow:0 1px 3px #0004,inset 0 1px 0 #ffffff0d}.host-shell button:hover:not(:disabled){border-color:#5fcfe2;background:linear-gradient(180deg,#29436f,#1e345a)}

/* 20/10: selezione giochi della scaletta come catalogo visuale, non più menu a tendina. */
.host-shell .game-picker-cards{display:grid;gap:7px;margin-top:9px;padding-top:9px;border-top:1px solid #2b3c68}.host-shell .game-picker-cards>h3{margin:0;color:#f4f7ff;font-size:16px}.host-shell .game-picker-help{margin:0 0 3px;color:#9dacca;font-size:11px}.host-shell .game-picker-group{overflow:hidden;border:1px solid #344b78;border-radius:9px;background:linear-gradient(135deg,#0c1731,#111a38)}.host-shell .game-picker-group>summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 11px;cursor:pointer;list-style:none;user-select:none}.host-shell .game-picker-group>summary::-webkit-details-marker{display:none}.host-shell .game-picker-group>summary .game-category-mark{margin:0;min-width:0}.host-shell .game-picker-group>summary .game-category-mark span{display:none}.host-shell .game-picker-group>summary .game-category-mark img{width:38px;height:38px}.host-shell .game-picker-group>summary>span{display:grid;gap:1px}.host-shell .game-picker-group>summary b{color:#fff;font-family:var(--font-show);font-size:14px;font-style:italic;text-transform:uppercase}.host-shell .game-picker-group>summary small{color:#8fa1c8;font-size:10px}.host-shell .game-picker-group>summary>i{color:#66eaff;font-size:18px;font-style:normal;transition:transform .15s}.host-shell .game-picker-group[open]>summary>i{transform:rotate(180deg)}.host-shell .game-picker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 8px 9px}.host-shell .game-picker-grid button{display:grid;align-content:center;min-height:58px;padding:8px 10px;text-align:left;border-color:#3d5687;background:linear-gradient(145deg,#17284d,#111d3b)}.host-shell .game-picker-grid button strong{overflow-wrap:anywhere;color:#f6f9ff;font-family:var(--font-show);font-size:12px;font-style:italic;line-height:1.1;text-transform:uppercase}.host-shell .game-picker-grid button small{display:grid;gap:2px;margin-top:4px;color:#91a5cf;font-size:9px;font-weight:650}.host-shell .game-picker-grid button small em{color:#ffd27b;font-style:normal}.host-shell .game-picker-grid button.played{border-color:#8b6a28;background:linear-gradient(145deg,#342811,#191b31)}.host-shell .game-picker-empty{grid-column:1/-1;margin:4px;padding:9px;border:1px dashed #3c4d71;border-radius:6px;text-align:center}.host-shell .game-picker-cards .plan-utility-actions{margin-top:1px}.host-shell .game-picker-cards .game-legend{display:none}@media(max-width:760px){.host-shell .game-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.host-shell .game-picker-grid{grid-template-columns:1fr}.host-shell .game-picker-grid button{min-height:52px}}

/* Categoria ben leggibile sui telefoni, senza ingrandire gli altri badge. */
.player-view #app>.category-badge,.player-view.compact-question-view #app>.badge{padding:5px 12px;font-size:clamp(15px,4.2vw,19px);font-weight:850;line-height:1.1;letter-spacing:.02em}
.player-view.compact-question-view #app>.badge{display:none}
.next-game-player .next-game-category{margin:3px 0 0;padding:5px 12px;border:1px solid #39ddf3;border-radius:999px;background:#092443;color:#f5fdff;font-size:clamp(13px,3.8vw,17px);font-weight:850;line-height:1.1;text-transform:uppercase}
@media(max-width:360px),(max-height:620px){.player-view #app>.category-badge,.player-view.compact-question-view #app>.badge{padding:4px 10px;font-size:14px}}

.regia-resume{display:flex;justify-content:space-between;align-items:center;gap:22px;max-width:680px;margin:0 auto 12px;padding:16px 18px;border:1px solid #2f9f69;border-radius:10px;background:linear-gradient(135deg,#102d2a,#121a35);box-shadow:0 8px 24px #0004}.regia-resume h1{margin:4px 0 2px;font-size:21px}.regia-resume p{margin:0;font-size:13px}.regia-resume .badge{border-color:#5cff8d;color:#8cffad}.regia-resume>a{display:inline-grid;place-items:center;min-height:42px;padding:9px 15px;border:1px solid #54cb7f;border-radius:7px;background:linear-gradient(180deg,#226f49,#185237);color:#f2fff6;font-size:13px;font-weight:850;text-decoration:none;white-space:nowrap}@media(max-width:620px){.regia-resume{display:block}.regia-resume>a{width:100%;margin-top:12px}}

/* Risposte dei quiz leggibili sul telefono senza aumentare la dimensione dei pulsanti. */
.player-view.compact-question-view #app .option{font-size:clamp(16px,4.5vw,20px);line-height:1.22}
@media(max-width:360px),(max-height:620px){.player-view.compact-question-view #app .option{font-size:15px;line-height:1.18}}

/* La risposta confermata resta evidente anche quando tutti i pulsanti vengono bloccati. */
.player-view #app .option.selected,.player-view #app .option.selected:disabled{border-color:#7dffa4;background:linear-gradient(180deg,#66f293,#3dcc70);color:#07150d;opacity:1;filter:none;box-shadow:0 0 0 3px #7dffa455,0 0 18px #5cff8d88,inset 0 1px 0 #ffffff80}
.player-view #app .option.selected b{color:#07150d}

/* Regola unica: la risposta viene presentata sotto il contenuto del gioco. */
.solution-answer{display:grid;gap:3px;width:min(100%,620px);margin:12px auto 5px;padding:10px 12px;border:1px solid #3f8e68;border-radius:8px;background:linear-gradient(180deg,#123328,#0d261f);text-align:center;box-shadow:0 3px 10px #0004}
.solution-answer span{color:#91baa9;font-size:10px;font-weight:900;letter-spacing:.12em}
.solution-answer strong{color:var(--green);font-size:clamp(18px,5vw,28px);line-height:1.16}

/* Puzzle fotografico: griglia e tasselli mantengono sempre lo stesso formato quadrato. */
.image-puzzle-board{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}
.image-puzzle-slot{overflow:hidden}
.image-puzzle-tray{grid-template-columns:repeat(8,minmax(0,1fr))}
.player-view #app .image-puzzle-piece,.image-puzzle-tray-empty{box-sizing:border-box}
.player-view #app .image-puzzle-board .image-puzzle-piece{width:100%;height:100%;aspect-ratio:auto;border-radius:3px}

/* Regia: risposta e spiegazione riunite in un unico pannello leggibile. */
.host-shell .host-answer-key{width:min(100%,760px);margin:20px auto 4px;padding:16px 18px;gap:5px;border:1px solid #42a77b;border-radius:12px;background:linear-gradient(180deg,#123a2d,#0b261f);box-shadow:0 10px 26px #0005,inset 0 1px 0 #ffffff10}
.host-shell .host-answer-key>span{color:#a7d2c1;font-size:12px;font-weight:900;letter-spacing:.12em}
.host-shell .host-answer-key>strong{color:#54ff8c;font-size:clamp(24px,3vw,38px);line-height:1.15}
.host-answer-explanation{display:grid;gap:5px;margin-top:10px;padding-top:11px;border-top:1px solid #4d806c;text-align:left}
.host-answer-explanation b{color:#54dcff;font-size:11px;letter-spacing:.13em}
.host-answer-explanation p{margin:0;color:#edf6f3;font-size:clamp(15px,1.7vw,20px);line-height:1.45}
.host-shell .host-answer-key{width:min(100%,620px);margin:10px auto 3px;padding:10px 13px;gap:3px;border-radius:8px}
.host-shell .host-answer-key>span{font-size:10px}
.host-shell .host-answer-key>strong{font-size:clamp(20px,2.2vw,30px)}
.host-answer-explanation{margin-top:7px;padding-top:7px;gap:3px}.host-answer-explanation p{font-size:clamp(13px,1.35vw,17px);line-height:1.32}
.host-next-category{display:grid;gap:5px;width:min(100%,760px);margin:14px auto;padding:15px 18px;border:1px solid #38dfff;border-radius:12px;background:linear-gradient(180deg,#102b4a,#0a1b35);text-align:center;box-shadow:0 8px 24px #0004}
.host-next-category span{color:#8feeff;font-size:12px;font-weight:900;letter-spacing:.14em}
.host-next-category strong{color:#fff;font-size:clamp(24px,3vw,38px);line-height:1.15}
.host-question-sheet{display:grid;gap:7px;width:min(100%,760px);margin:16px auto 0;padding:16px 18px;border:1px solid #44679e;border-radius:12px;background:linear-gradient(180deg,#17294f,#0d1934);text-align:left;box-shadow:0 10px 26px #0005}
.host-question-sheet span{color:#54dcff;font-size:12px;font-weight:900;letter-spacing:.14em}
.host-question-sheet h3{margin:0;color:#fff;font-size:clamp(21px,2.6vw,34px);line-height:1.25}
.host-options-title{margin-top:9px;padding-top:11px;border-top:1px solid #47628e;color:#9fc8ff;font-size:11px;font-weight:900;letter-spacing:.13em}
.host-question-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.host-question-options li{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:54px;padding:9px 11px;border:1px solid #3c5686;border-radius:9px;background:#111f40;color:#f6f8ff;text-align:left}
.host-question-options li b{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#294979;color:#c9f5ff;font-size:14px}
.host-question-options li span{font-size:clamp(14px,1.5vw,18px);font-weight:700;line-height:1.25}
@media(max-width:700px){.host-question-options{grid-template-columns:1fr}.host-question-options li{min-height:48px}}

/* Cinque famiglie di gioco: simboli coerenti in Regia e nelle schermate iniziali. */
.game-category-mark{display:flex;align-items:center;justify-content:center;gap:10px;margin:4px auto 8px;color:#dff8ff;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}
.game-category-mark img{display:block;width:66px;height:66px;object-fit:contain;filter:drop-shadow(0 6px 14px #0008)}
.game-category-mark.compact{justify-content:flex-start;margin:0;min-width:190px;font-size:11px}
.game-category-mark.compact img{width:42px;height:42px}
.category-pickers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.category-pickers .category-picker{grid-template-columns:auto minmax(0,1fr) auto;align-items:end;margin:0;padding:8px;border:1px solid #304978;border-radius:8px;background:#0d1630}
.category-pickers .plan-utility-actions,.category-pickers .game-legend{grid-column:1/-1}
/* 14/10: simbolo della categoria più piccolo per far stare lo schema dei punti */.next-game-player>.game-category-mark{margin:2px auto 4px}.next-game-player>.game-category-mark img{width:min(11vw,46px);height:min(11vw,46px)}
.next-game-player>.game-category-mark span{font-size:clamp(11px,3vw,15px);letter-spacing:.13em}
.game-time-splash>.game-category-mark img{width:min(30vw,130px);height:min(30vw,130px);filter:drop-shadow(0 10px 22px #000a)}
.game-time-splash>.game-category-mark span{font-size:clamp(12px,3.5vw,18px)}
@media(max-width:820px){.category-pickers{grid-template-columns:1fr}.category-pickers .category-picker{grid-template-columns:auto minmax(0,1fr) auto}.game-category-mark img{width:56px;height:56px}}
@media(max-width:520px){.category-pickers .category-picker{grid-template-columns:1fr}.game-category-mark.compact{min-width:0}.category-pickers .category-picker button{width:100%}}
.bomb-grid-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.bomb-grid-head span{color:#38dcff;font-weight:900;letter-spacing:.08em}.bomb-grid-board{display:grid;grid-template-columns:repeat(var(--bomb-side),minmax(0,1fr));gap:clamp(3px,1vw,8px);width:min(100%,620px);max-width:100%;aspect-ratio:1;margin:.65rem auto;overflow:hidden}.bomb-grid-cell{width:100%;min-width:0;min-height:0;padding:0!important;border:1px solid #31588e;border-radius:clamp(5px,1.2vw,12px);background:linear-gradient(145deg,#182b52,#0b1734);box-shadow:inset 0 0 0 1px rgba(104,164,255,.08),0 5px 12px rgba(0,0,0,.2);color:#071124;font-size:clamp(1rem,5vw,2.4rem);font-weight:1000;touch-action:manipulation}.bomb-grid-cell:not(:disabled):active{transform:scale(.95)}.bomb-grid-cell.selected{border-color:#ffe153;background:linear-gradient(145deg,#fff09a,#ffc928);box-shadow:0 0 22px rgba(255,215,50,.6)}.bomb-grid-cell.bomb{border-color:#ff496c;background:radial-gradient(circle,#ffcf49 0 12%,#f43c5f 14% 48%,#6e102c 75%);box-shadow:0 0 28px rgba(255,55,91,.75)}.bomb-grid-legend{display:flex;align-items:center;justify-content:center;gap:.7rem;color:#ffdf4f;letter-spacing:.08em}.bomb-grid-legend span{font-size:2rem}.bomb-grid-winner,.host-bomb-winner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:1.5rem;border:1px solid #ffe153;border-radius:22px;background:radial-gradient(circle at top,rgba(255,218,66,.2),rgba(9,21,52,.92));box-shadow:0 0 36px rgba(255,215,50,.2)}.bomb-grid-winner strong,.host-bomb-winner strong{font-size:clamp(1.8rem,7vw,3.4rem)}.bomb-grid-winner span,.bomb-grid-winner small,.host-bomb-winner span{color:#ffe153;font-weight:900}.host-bomb-reveal{font-size:clamp(2rem,6vw,4rem);padding:1rem;color:#ffe153}.bomb-grid-example{display:flex;align-items:center;justify-content:center;gap:1rem;margin:1rem auto;padding:1rem;border:1px solid #2edcff;border-radius:16px;background:#07152f}.bomb-grid-example b{font-size:2rem;color:#2edcff}@media(max-width:560px){.bomb-grid-board{width:min(100%,calc(var(--player-height,100dvh) - 190px));gap:3px;margin:.4rem auto}.bomb-grid-cell{border-radius:5px}.bomb-grid-head h2{font-size:1.25rem}.bomb-grid-legend{font-size:.8rem}.bomb-grid-legend span{font-size:1.35rem}}
.scratch-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.scratch-head h2{margin:0}.scratch-board{position:relative;width:min(72vw,52vh,520px);aspect-ratio:1;margin:.5rem auto 1rem;overflow:hidden;border:3px solid #43ddff;border-radius:24px;background:#071227;box-shadow:0 0 28px rgba(67,221,255,.2)}.scratch-board img{width:100%;height:100%;display:block;object-fit:contain;background:#050b18}.scratch-board canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair}.scratch-board.solution{width:min(68vw,46vh,440px)}.scratch-buzz{display:block;margin:.3rem auto;min-width:min(78vw,360px)}.scratch-answer{display:flex;flex-direction:column;align-items:center;gap:.2rem;margin:.5rem auto 1rem}.scratch-answer span{color:#48e7ff;font-weight:800;letter-spacing:.15em}.scratch-answer strong{font-size:clamp(2rem,8vw,4rem);color:#5cff8d}.scratch-example{display:grid;gap:.65rem;text-align:center;font-weight:900;letter-spacing:.08em}
@media(max-width:600px){.scratch-board{width:min(88vw,50vh);border-radius:18px}.scratch-head{justify-content:center}.scratch-head .timer{position:absolute;right:1rem;top:4.5rem}.scratch-buzz{min-height:64px}}
/* Pedine = gettoni arcade (tokens.js icon). Bordo zigrinato nel colore della squadra, disco scuro, simbolo in rilievo, riflesso. */
.battle-token.coin{--c:var(--token-color);position:relative;border-radius:50%;filter:none;color:color-mix(in srgb,var(--c) 80%,#fff);
  background:repeating-conic-gradient(color-mix(in srgb,var(--c) 85%,#fff) 0 4deg,color-mix(in srgb,var(--c) 60%,#000) 4deg 8deg);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 40%,#000),0 4px 10px #000a,0 0 16px color-mix(in srgb,var(--c) 40%,transparent)}
.battle-token.coin::before{content:"";position:absolute;inset:7%;border-radius:50%;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 70%,#fff),color-mix(in srgb,var(--c) 75%,#000));box-shadow:inset 0 2px 2px #fff8,inset 0 -2px 3px #0008}
.battle-token.coin>.coin-face{position:relative;display:grid;place-items:center;width:72%;height:72%;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--c) 30%,#1b2a55),#060b1d 75%);box-shadow:inset 0 3px 8px #000c,inset 0 -1px 2px color-mix(in srgb,var(--c) 60%,transparent)}
.battle-token.coin .coin-face svg{width:76%;height:76%;filter:drop-shadow(0 -1px 0 #fffa) drop-shadow(0 2px 0 color-mix(in srgb,var(--c) 40%,#000)) drop-shadow(0 0 5px var(--c))}
.battle-token.coin>.coin-face::after{content:"";position:absolute;inset:-40%;background:linear-gradient(115deg,transparent 42%,#ffffff55 50%,transparent 58%);transform:translateX(-70%);animation:coin-shine 3.6s ease-in-out var(--shine-delay,0s) infinite}
@keyframes coin-shine{0%,70%{transform:translateX(-70%)}100%{transform:translateX(70%)}}
/* piccoli: bordo sottile e simbolo più grande, così si riconoscono */
.battle-token.coin.token-xs,.battle-token.coin.token-sm{box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 40%,#000),0 2px 5px #000a}
.battle-token.coin.token-xs::before,.battle-token.coin.token-sm::before{inset:5%}
.battle-token.coin.token-xs>.coin-face,.battle-token.coin.token-sm>.coin-face{width:82%;height:82%}
.battle-token.coin.token-xs .coin-face svg,.battle-token.coin.token-sm .coin-face svg{width:86%;height:86%;filter:drop-shadow(0 0 3px var(--c))}
.battle-token.coin.token-xs>.coin-face::after{display:none}
@media (prefers-reduced-motion: reduce){.battle-token.coin>.coin-face::after{animation:none;display:none}}
.slalom-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.15rem 0 .45rem}.slalom-head h2{margin:0}.slalom-hud{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin:0 auto .55rem;max-width:620px}.slalom-hud span{border:1px solid currentColor;border-radius:999px;padding:.38rem .55rem;font-size:.78rem;font-weight:800;letter-spacing:.04em;background:#07122dcc}.slalom-hud .blue{color:#42c5ff}.slalom-hud .red{color:#ff6680}.slalom-hud .gold{color:#ffd84d}.slalom-stage{position:relative;width:min(100%,620px);margin:auto;border:2px solid #39dcff;border-radius:22px;overflow:hidden;background:#dff6ff;box-shadow:0 14px 38px #0008,inset 0 0 0 4px #ffffff40}.slalom-canvas{display:block;width:100%;height:min(62vh,650px);min-height:440px;touch-action:none;user-select:none}.slalom-score{position:absolute;left:.65rem;right:.65rem;top:.65rem;display:flex;justify-content:space-between;gap:.5rem;pointer-events:none}.slalom-score span{display:flex;gap:.35rem;align-items:baseline;padding:.35rem .65rem;border-radius:999px;background:#061638d9;color:#d9efff;font-size:.72rem;font-weight:800;letter-spacing:.05em;box-shadow:0 4px 16px #00143a66}.slalom-score b{color:#ffe044;font-size:1rem}.slalom-example{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap}.slalom-example span{padding:.65rem .85rem;border-radius:999px;background:#07152f;border:2px solid currentColor;font-weight:900}.slalom-example .blue{color:#35bfff}.slalom-example .red{color:#ff526f}.slalom-example .gold{color:#ffd438}@media(max-width:600px){.slalom-canvas{height:calc(var(--player-height,100vh) - 235px);min-height:410px}.slalom-stage{border-radius:16px}.slalom-hud{gap:.25rem}.slalom-hud span{font-size:.68rem;padding:.3rem .38rem}}
/* Fascia di capitano ricevuta: restituirla o tenerla (play.js teamRolePanel) */
.captain-giveback{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:0 0 .7rem;padding:.75rem;border:2px solid #ffe153;border-radius:14px;background:#2a2410;box-shadow:0 0 18px #ffe15340}
.captain-giveback p{grid-column:1/-1;margin:0;color:#fff;font-weight:700}
.captain-giveback button{min-height:44px;font-weight:900}
/* Regia: riassegna il capitano */
.roster-members{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem}
.roster-members span{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .45rem;border:1px solid #314976;border-radius:999px;font-size:12px}
.roster-members span.is-captain{border-color:#ffe153;color:#ffe153}
.roster-members button{padding:.1rem .45rem;min-height:0;font-size:11px;border-radius:999px}
/* Regia: barra della partita di allenamento (host.js practiceBar) */
.practice-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;margin:0 0 .8rem;padding:.55rem .8rem;border:1px dashed #ffe153;border-radius:12px;background:#2a2410;color:#ffe9a8;font-size:.85rem}
.practice-bar button{font-weight:800}
/* Regia: numero di componenti e cambio capitano (host.js) */
.member-count{margin-left:.35rem;padding:.05rem .45rem;border-radius:999px;background:#48e7ff22;color:#8fe9ff;font-size:.75em;font-weight:700;white-space:nowrap}
.roster-members .captain-edit{border-style:dashed;opacity:.85}
/* Regia, iscrizioni: squadra a sinistra, capitano in una seconda colonna allineata a sinistra */
@media(min-width:621px){
  .registered-teams li{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(9rem,38%);align-items:center;column-gap:10px}
  .registered-teams li>b{margin-right:0}
  .registered-teams li>span{text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .registered-teams li>b:first-child{grid-column:1 / 3}
}
/* Regia, iscrizioni: elenco più largo (prima era fisso a 340px), nome della squadra su una riga */
@media(min-width:761px){
  .registration-compact{grid-template-columns:minmax(0,1.5fr) minmax(240px,1fr)}
  .registered-teams li>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
/* Regia: QR e link corto per "Gioca anche tu" (host.js showPhoneLink) */
.phone-link{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:#000a}
.phone-link>div{width:min(92vw,380px);padding:1.2rem;border:2px solid #39dcff;border-radius:18px;background:#0d1838;text-align:center}
.phone-link .qr{display:grid;place-items:center;margin:.6rem auto;padding:10px;background:#fff;border-radius:10px;width:max-content}
.phone-link strong{font-size:1.15rem;color:#ffe153;word-break:break-all}
/* Telefoni: soluzione della domanda in grande (play.js revealAnswer) */
.reveal-answer{display:grid;gap:.35rem;margin:.8rem 0 .5rem;padding:1rem;border:3px solid #2ee87a;border-radius:18px;background:radial-gradient(circle at top,#2ee87a33,#0b1d1a);text-align:center;box-shadow:0 0 26px #2ee87a55}
.reveal-answer span{color:#9ff5c4;font-weight:900;letter-spacing:.12em;font-size:.8rem}
.reveal-answer strong{color:#fff;font-size:clamp(1.6rem,7.5vw,2.6rem);line-height:1.15}
.reveal-answer em{font-style:normal;font-weight:900;font-size:clamp(1.05rem,4.5vw,1.4rem)}
.reveal-answer.right em{color:#2ee87a}.reveal-answer.wrong em{color:#ff6b81}.reveal-answer.none em{color:#ffd166}
.reveal-explanation{margin:11px auto 4px;padding:12px 14px;border:1px solid #49dfff;border-left:5px solid #ffe35c;border-radius:10px;background:linear-gradient(135deg,rgba(6,31,61,.94),rgba(28,15,54,.94));color:#f4f8ff;font-size:clamp(1.08rem,4.6vw,1.35rem);font-weight:720;line-height:1.5;text-align:left;text-shadow:0 1px 2px #000;box-shadow:0 6px 17px #0007,0 0 13px #3bdfff2d}.reveal-explanation:before{content:"SPIEGAZIONE";display:block;margin-bottom:5px;color:#85efff;font-size:.66em;font-weight:950;letter-spacing:.14em;text-shadow:none}.reveal-explanation:empty{display:none}
/* soluzione: la giusta verde piena, la propria scelta sbagliata rossa (vincono sullo stile "selezionata") */
.player-view #app .option.correct,.player-view #app .option.correct:disabled{border-color:#7dffa4;background:linear-gradient(180deg,#66f293,#3dcc70);color:#07150d;opacity:1;filter:none;outline:3px solid #b8ffd0;outline-offset:2px}
.player-view #app .option.wrong,.player-view #app .option.wrong:disabled{border-color:#ff8a9a;background:linear-gradient(180deg,#ff6b81,#d93a55);color:#fff;opacity:1;filter:none}
.player-view #app .option.wrong b,.player-view #app .option.correct b{color:inherit}
/* Telefoni: classifiche dei risultati leggibili (domande e minigiochi): punteggio sotto il nome, niente testo fuori dal riquadro */
@media(max-width:620px){
  .player-view .round-results li{grid-template-columns:2.4rem 32px minmax(0,1fr);gap:4px 10px;padding:10px 12px}
  .player-view .round-results li>b{grid-column:1;font-size:1.25rem;text-align:center;grid-row:1 / 3}
  .player-view .round-results li>.battle-token{grid-column:2;grid-row:1 / 3}
  .player-view .round-results li>span{grid-column:3;min-width:0;overflow-wrap:break-word;font-size:1.05rem}
  /* minigiochi: righe senza posizione → solo pedina + testo */
  .player-view .round-results li:not(:has(>b)){grid-template-columns:32px minmax(0,1fr)}
  .player-view .round-results li:not(:has(>b))>.battle-token{grid-column:1}
  .player-view .round-results li:not(:has(>b))>span,.player-view .round-results li:not(:has(>b))>strong{grid-column:2}
  .player-view .round-results li>strong{grid-column:3;justify-self:start;white-space:nowrap;font-size:.85rem;padding:.12rem .6rem;border-radius:999px;background:#ffffff14}
}
.player-view .round-results li.mine{box-shadow:0 0 0 2px #ffe153,0 0 18px #ffe15355}
/* Quiz sul telefono: la domanda deve leggersi bene quanto le risposte */
.player-view.compact-question-view #app .question{font-size:clamp(21px,6.2vw,28px);line-height:1.18;max-height:32vh;overflow:auto}
@media(max-height:620px){.player-view.compact-question-view #app .question{font-size:19px;max-height:26vh}}
/* anteprima del minigioco durante la spiegazione */
.rules-shot{margin:14px auto 0;width:min(46vw,200px);text-align:center}
.rules-shot img{display:block;width:100%;border-radius:16px;border:3px solid #3c5687;box-shadow:0 0 0 1px #000a,0 8px 22px #0008,0 0 18px #4fd8ff33}
.rules-shot figcaption{margin-top:6px;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:#9fb3d9}
.host-rules-shot{width:220px;margin:16px 0 0}
/* Attraversamento: chi non è in batteria vede le strade delle squadre in gara, una accanto all'altra */
.frog-multi{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:6px}
.frog-multi.teams-2{--n:2}
.frog-mini{min-width:0;text-align:center}
.frog-mini .frog-names span{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.frog-mini .frog-board{font-size:9px}
.frog-mini .frog-road-row{min-height:0;height:26px}
.frog-mini .frog-car{font-size:12px}
.frog-mini .battle-token{transform:scale(.7)}
.frog-mini small{display:block;margin-top:3px;font-size:10px;color:#9fb3d9}
/* Breakout e Difesa: chi non è in batteria segue le squadre in gara su riquadri più grandi */
.breakout-battles.watch{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
.breakout-battles.watch.teams-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.breakout-battles.watch .breakout-board{padding:8px}
.breakout-battles.watch .breakout-name strong{font-size:12px}
.breakout-battles.watch .breakout-board>*:not(.breakout-name):not(.breakout-live-progress){transform:scale(1);min-height:90px}
/* regia: cellulare virtuale alto come un telefono vero, così si vede tutta la schermata */
.host-phone-frame{width:min(100%,320px);height:min(82vh,690px)}
/* l'anteprima non deve prendere lo stile del logo (.next-game-player img) */
.next-game-player .rules-shot{justify-self:center;width:min(42vw,180px);margin:6px auto 0}
.next-game-player .rules-shot img{width:100%;max-height:none;object-fit:fill}
/* telefono virtuale in regia: contenuto in alto e logo più piccolo, niente spazio sprecato */
.embedded-review .next-game-player{place-content:start center;padding-top:6px;gap:4px}
.embedded-review .next-game-player>img{width:min(58vw,180px);max-height:none}
.embedded-review .game-time-splash{justify-content:flex-start;padding-top:6px}
.embedded-review.compact-question-view #app:has(.reveal-answer){display:block;overflow-y:auto}
.embedded-review.compact-question-view #app:has(.reveal-answer) .question{display:grid;min-height:110px;max-height:none;margin:8px 0;padding:12px 4px}
.embedded-review.compact-question-view #app:has(.reveal-answer) .options{margin-top:8px}
.embedded-review.compact-question-view #app:has(.reveal-answer) .reveal-answer{margin:12px 0 8px;padding:12px}
/* regia: pannello comandi e telefono virtuale alti uguali; il telefono si adatta al pannello (minimo 560px) invece di lasciare spazio vuoto */
@media(min-width:821px) and (orientation:landscape){
  .conductor-console{align-items:stretch}
  .conductor-console .host-player-preview{display:flex;flex-direction:column}
  .conductor-console .host-phone-frame{flex:1 1 auto;height:auto;min-height:560px}
}

/* Difesa Laser vista da chi non gioca: un mini schermo per squadra (cielo con meteore che cadono, città, centri ed errori veri) */
.defense-scores.watch>div{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:5px;border-color:#7a5cff;background:#0b1026;min-width:0}
.defense-scores.watch>div>strong{font-size:11px;line-height:1.1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.defense-scores.watch>div>.battle-token{align-self:center}
.defense-scores.watch>div>span:last-child{display:none}
.defense-watch{position:relative;display:block;height:min(48vh,260px);border:1px solid #7a5cff88;border-radius:8px;overflow:hidden;font-style:normal;background:linear-gradient(#070b1d,#121a44)}
.dw-sky i{position:absolute;left:var(--x);top:-14%;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 40% 60%,#fff6c8 0 20%,#ffb43a 40%,#ff5a1f 70%,#7a1d0a);box-shadow:0 0 6px #ff7a2a;animation:dw-fall 2.6s linear infinite;animation-delay:calc(var(--k)*-.65s)}
.dw-sky i::before{content:"";position:absolute;left:50%;bottom:60%;width:5px;height:16px;transform:translateX(-50%);border-radius:50%;background:linear-gradient(to top,#ffcf5a,#ff4a1a00)}
@keyframes dw-fall{to{top:78%}}
.dw-city{position:absolute;left:0;right:0;bottom:0;height:30px;background:url(defense-city.svg) repeat-x center bottom/auto 30px;border-top:1px solid #48e7ff55}
.dw-score{position:absolute;left:0;right:0;top:0;z-index:2;padding:4px 0;background:#070b1dd9;border-bottom:1px solid #7a5cff55;display:flex;justify-content:center;align-items:baseline;gap:6px}
.dw-score b{font-size:20px;color:#7dffdf;text-shadow:0 0 10px #4fffd0aa}
.dw-score i{font-style:normal;font-size:13px;color:#ff8a9a}
.dw-city::after{content:"";position:absolute;left:50%;bottom:2px;width:8px;height:14px;border-radius:4px 4px 2px 2px;transform:translateX(-50%);background:linear-gradient(#bff8ff,#48e7ff 40%,#1d6b8c);box-shadow:0 0 8px #48e7ff}
/* tutti giocano: chi gioca vede in una riga la media della sua squadra */
.team-avg-line{display:flex;align-items:center;justify-content:center;gap:6px;margin:6px 0;font-size:13px;color:#cfe0ff}
.team-avg-line strong{color:var(--yellow);font-size:16px}
/* manche di prova: avviso ben visibile su telefoni e schermo, niente punti */
.practice-round #app::before{content:"MANCHE DI PROVA · NON VALE PUNTI";display:block;margin:0 0 8px;padding:6px 10px;border:1px dashed #ffe27a;border-radius:999px;background:#3a2f0a;color:#ffe27a;font-size:12px;font-weight:900;letter-spacing:.08em;text-align:center}
.practice-badge{background:#3a2f0a!important;color:#ffe27a!important;border-color:#ffe27a!important}
.host-shell .current-action.practice-real-start{background:linear-gradient(180deg,#2ac76a,#168a45)!important;border:2px solid #68ff9f!important;color:#fff!important;box-shadow:0 4px 0 #0b572a,0 0 20px #37e87955!important}
.host-shell .current-action.practice-real-start:active{box-shadow:0 1px 0 #0b572a,0 0 12px #37e87944!important}
.practice-control{margin:14px auto 0;padding:10px;border:1px dashed #ffe27a88;border-radius:12px;max-width:560px;text-align:center}
.practice-control p{margin:6px 0;color:#ffe9a8;font-size:14px}
.practice-finished-screen{display:grid;place-items:center;gap:12px;min-height:56vh;padding:28px 18px;text-align:center}.practice-finished-screen h1{margin:8px 0 0}.practice-finished-screen p{max-width:560px;margin:0;color:var(--muted)}.practice-finished-screen strong{color:var(--cyan);font-size:clamp(17px,4vw,23px)}
/* Corsa con tante squadre (manche di prova con tutti): corsie strette che stanno tutte nello schermo */
.race-stage-vertical:has(>.race-lane:nth-child(5)){overflow:visible;gap:3px}
.race-stage-vertical:has(>.race-lane:nth-child(5))>.race-lane{flex:1 1 0;min-width:0;padding:3px 2px}
.race-stage-vertical:has(>.race-lane:nth-child(5)) .race-label{grid-template-columns:1fr;justify-items:center;height:38px}
.race-stage-vertical:has(>.race-lane:nth-child(5)) .race-label span{display:none}
.race-stage-vertical:has(>.race-lane:nth-child(5)) .race-label small{font-size:8px}
.race-stage-vertical:has(>.race-lane:nth-child(5)) .token-runner .battle-token{transform:scale(.62)}
.race-stage-vertical:has(>.race-lane:nth-child(5)) .finish-line,.race-stage-vertical:has(>.race-lane:nth-child(5)) .start-line{font-size:0}
/* regia: pulsanti per proseguire sempre in alto, nello stesso posto, verdi */
.host-shell .action-dock{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:4px 0 14px;padding:10px;border:1px solid #2f8f5a66;border-radius:12px;background:#0c2418}
.host-shell .action-dock .current-action{margin:0;background:linear-gradient(180deg,#27b862,#1a8a48);border-color:#5cff9d;color:#fff;font-weight:800}
.host-shell .action-dock .current-action:not(.accent){background:#164a2e;border-color:#3fbf73}
.host-shell .action-dock .current-action:disabled{background:#1b2a22;border-color:#2f4a3a;color:#9fb8a8}
.bomb-rules-note{display:grid;gap:4px;margin:10px auto 0;padding:10px 14px;max-width:320px;border:1px solid #ff9f43aa;border-radius:12px;background:#2a1606cc;text-align:center;color:#ffe2c2}
.bomb-rules-note b{color:#ffd166}.bomb-rules-note span{font-size:14px;font-weight:700}.bomb-rules-note small{margin-top:4px;font-size:12px;line-height:1.5;color:#ffd9b0}
/* pulsante SQUADRA in alto a destra + pannello a comparsa (lo schermo resta libero per il gioco) */
.player-identity .team-panel-toggle{margin-left:auto;padding:5px 10px;min-height:0;border:1px solid #48e7ff88;border-radius:999px;background:#0e1d40;color:#dff8ff;font-size:11px;font-weight:800;letter-spacing:.04em}
.player-identity .team-panel-toggle.alert{border-color:#ffd166;box-shadow:0 0 0 2px #ffd16655;animation:team-alert 1s ease-in-out infinite alternate}
@keyframes team-alert{to{box-shadow:0 0 12px #ffd166}}
.team-panel-modal{position:fixed;inset:0;z-index:9000;display:flex;align-items:flex-start;justify-content:center;padding:60px 14px 14px;background:#02061acc;backdrop-filter:blur(2px)}
.team-panel-modal .team-role-panel{position:relative;width:min(420px,100%);max-height:80vh;overflow:auto;margin:0;padding:16px 14px 14px;border:1px solid #48e7ff88;border-radius:16px;background:#0b1430;box-shadow:0 12px 40px #000a}
.team-panel-modal h3{margin:0 0 10px;font-size:14px;letter-spacing:.12em;color:var(--cyan)}
.team-panel-close{position:absolute;top:8px;right:8px;width:34px;height:34px;min-height:0!important;padding:0;border-radius:50%;font-size:16px}
/* Attraversamento: in attesa del via */
.frog-board{position:relative}
.frog-wait{position:absolute;inset:0;display:grid;place-content:center;gap:6px;background:#050a1ccc;color:#ffd166;font-size:26px;font-weight:900;letter-spacing:.06em;text-align:center;z-index:5}
.frog-wait small{font-size:12px;font-weight:600;color:#cfe0ff;letter-spacing:0}
/* regia: contatore delle domande del Quiz */
.host-shell .quiz-counter{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 12px;margin:0 auto 10px;padding:8px 14px;max-width:520px;border:1px solid #ffd16688;border-radius:999px;background:#2a2108}
.host-shell .quiz-counter b{color:#ffd166;font-size:18px;letter-spacing:.06em}
.host-shell .quiz-counter span{color:#f3e6c2;font-size:13px}
/* Zoom estremo: riquadro quadrato, l'immagine riempie il quadrato */
.puzzle-image.progressive-zoom.square{aspect-ratio:1/1;width:min(100%,72vh);margin-inline:auto;overflow:hidden}
.puzzle-image.progressive-zoom.square img{width:100%;height:100%;object-fit:contain;background:#050817;transition:transform .9s linear}
/* risposta segreta: risposte senza lettera, contatore */
.secret-question{margin:4px 0 8px;font-size:17px;font-weight:800;text-align:center;color:#fff}
.secret-form{display:flex;gap:8px;margin:10px 0 4px}
.secret-form input{flex:1;min-width:0;font-size:18px;padding:12px;border-radius:12px;border:2px solid #4dd8ff;background:#0b1430;color:#fff}
.secret-form button{padding:0 18px;font-weight:900}
.secret-tries{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}
.secret-tries span{font-size:13px;color:#ff8a8a;background:rgba(255,80,80,.12);border-radius:8px;padding:2px 8px}
.secret-table{display:grid;gap:8px;margin:10px 0;text-align:left}
.secret-team{background:rgba(255,255,255,.05);border-radius:10px;padding:6px 8px}
.secret-row{display:grid;grid-template-columns:minmax(70px,1fr) 2fr minmax(70px,1fr) auto;gap:6px;align-items:center;font-size:13px;padding:3px 0;border-top:1px solid rgba(255,255,255,.06)}
.secret-row em{color:#cfe3ff;overflow-wrap:anywhere}.secret-row small{color:#8fa3c8}
.secret-toggle{min-width:64px;padding:4px 8px;border-radius:8px;background:#5a2330;color:#fff;font-weight:800}
.secret-toggle.ok{background:#1f7a3d}
.secret-count{margin:4px 0 0;font-size:12px;color:#9fb3d9;text-align:center}
.presence-toggle{margin-left:auto;padding:.45rem .7rem;border:1px solid #6076a8;background:#17274c;color:#dbe6ff;border-radius:.65rem;font-size:.68rem;font-weight:800;letter-spacing:.04em}.presence-toggle.back{border-color:#38e6a1;background:#123b35;color:#74ffc7}.away-notice{display:flex;gap:.3rem;flex-direction:column;margin:.7rem auto;padding:.8rem 1rem;max-width:42rem;border:1px solid #ffd94a;border-radius:.8rem;background:#322a0d;color:#ffe988;text-align:center}.away-notice span{font-size:.85rem}.personal-quiz-public{text-align:center;padding:2rem 1rem}.personal-quiz-public strong{display:block;margin:1rem auto;color:#49e8ff;font-size:clamp(1.7rem,8vw,3.4rem)}
.personal-quiz-progress{margin:1rem auto;max-width:70rem}.personal-total{text-align:center;padding:1rem;border:1px solid #41dff5;border-radius:1rem;background:#0b2740}.personal-total strong{display:block;color:#4be7ff;font-size:2.3rem}.personal-team-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.55rem;margin-top:.7rem}.personal-team-progress>div{display:flex;align-items:center;gap:.45rem;padding:.65rem .8rem;border:1px solid #344f82;border-radius:.75rem;background:#101e3e}.personal-team-progress b{flex:1}.personal-team-progress span{color:#ffe14f;font-weight:900}.personal-player-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:.65rem;max-height:55vh;overflow:auto;margin-top:1rem}.personal-player-results article{padding:.8rem;border:1px solid #3b527f;border-left:5px solid #ff607d;border-radius:.8rem;background:#101b38}.personal-player-results article.right{border-left-color:#40ec9a}.personal-player-results header{display:flex;justify-content:space-between;gap:.5rem}.personal-player-results p{margin:.55rem 0;font-weight:700}.personal-player-results small,.personal-player-results em{display:block;color:#b8c6e8}.personal-player-results strong{display:block;margin-top:.45rem;color:#ffe04d}
.personal-fastest{max-width:70rem;margin:1rem auto;padding:12px 16px;border:1px solid #ffe360;border-radius:13px;background:radial-gradient(circle at 82% 20%,#74551242,transparent 36%),linear-gradient(135deg,#13284b,#171735 64%,#2c1d18);box-shadow:0 7px 20px #0007,0 0 16px #ffe36028;text-align:left}.personal-fastest>span{display:block;margin-bottom:8px;color:#ffe56b;font-size:12px;font-weight:950;letter-spacing:.12em}.personal-fastest>div{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.personal-fastest p{margin:0}.personal-fastest p strong{display:block;color:#fff;font-size:clamp(20px,3vw,29px)}.personal-fastest p small{display:block;color:#b9caec}.personal-fastest>div>b{color:#70f2ff;font-size:clamp(18px,2.5vw,25px);white-space:nowrap}.personal-fastest.empty strong{display:block;color:#c6d1ea;font-size:18px}@media(max-width:560px){.personal-fastest>div{grid-template-columns:auto 1fr}.personal-fastest>div>b{grid-column:1/-1;text-align:center}}

/* QUIZ A/B/C/D: studio cinematografico ripreso dal logo Battle Show. */
body.quiz-cinematic-view,body.public-screen:has(.personal-quiz-public){background:radial-gradient(circle at 18% 8%,#064b8a 0,transparent 30%),radial-gradient(circle at 84% 12%,#77145f 0,transparent 32%),linear-gradient(155deg,#030713 0,#0a1432 52%,#18051e 100%)}
body.quiz-cinematic-view:before,body.public-screen:has(.personal-quiz-public):before{background:linear-gradient(118deg,transparent 0 43%,#20dfff0b 43.2% 44%,transparent 44.2% 55%,#ff3dc70b 55.2% 56%,transparent 56.2%),repeating-linear-gradient(0deg,transparent 0 3px,#ffffff08 4px)}
body.quiz-cinematic-view #app{position:relative;isolation:isolate;overflow:hidden;border:0;background:#050714;box-shadow:none}
body.public-screen #app:has(.personal-quiz-public){position:relative;isolation:isolate;overflow:hidden;border:2px solid #58dfff;background:#050714;box-shadow:0 0 0 3px #0c1834,0 0 32px #22cfff48,0 0 46px #ff37c438,inset 0 1px 0 #ffffff4a}
body.quiz-cinematic-view #app:before,body.public-screen #app:has(.personal-quiz-public):before{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(180deg,rgba(2,8,23,.02),rgba(2,8,23,.16) 58%,rgba(5,7,20,.38)),radial-gradient(ellipse at 50% 42%,transparent 0 58%,rgba(1,3,11,.28) 100%);pointer-events:none}
body.quiz-cinematic-view #app>*,body.public-screen #app:has(.personal-quiz-public)>*{position:relative;z-index:2}
.quiz-stage-art{position:absolute!important;z-index:0!important;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none}
body.quiz-cinematic-view #app>.format-visual{position:relative;width:calc(100% - 20px);max-height:min(31vh,270px);margin:8px auto;padding:4px;border:1px solid rgba(126,226,255,.78);border-radius:12px;background:rgba(2,8,22,.58);object-fit:contain;box-shadow:0 5px 18px #0008,0 0 16px #36dfff38,inset 0 1px 0 #fff4}
/* Le immagini dei quiz fanno parte del palco: cornice Battle Show compatta, non un riquadro estraneo sovrapposto. */
body.quiz-cinematic-view #app>.format-visual,body.quiz-cinematic-view #app>.flash-photo,body.quiz-cinematic-view #app>.puzzle-image,body.quiz-cinematic-view #app>.secret-layout .puzzle-image,body.quiz-cinematic-view #app>.missing-compare .flash-photo{box-sizing:border-box;border:2px solid transparent;border-radius:14px;background:linear-gradient(#061127,#061127) padding-box,linear-gradient(135deg,#55e9ff 0,#3477e8 34%,#ec4ac3 70%,#ffe56a 100%) border-box;box-shadow:0 8px 20px #0009,0 0 13px #39ddff42,0 0 10px #ed43bd28,inset 0 1px 0 #ffffff52}
body.quiz-cinematic-view #app>.format-visual{width:min(94%,560px);max-height:min(36vh,330px);padding:5px}
body.quiz-cinematic-view #app>.puzzle-image{width:min(90%,360px);max-height:min(43vh,400px);margin:7px auto}
body.quiz-cinematic-view #app>.puzzle-image.landscape{width:min(94%,600px);max-height:min(37vh,340px)}
body.quiz-cinematic-view #app>.puzzle-image.full-clue.face-fusion{width:auto;height:min(52vh,500px);max-width:88%;max-height:none;aspect-ratio:2/3}
.fusion-hints{max-width:520px;margin:8px auto;padding:8px 11px}.fusion-hints p{margin:4px 0;font-size:13px;line-height:1.3}
body.quiz-cinematic-view #app>.puzzle-image.progressive-zoom.square{width:min(90%,360px)}
body.quiz-cinematic-view #app>.flash-photo{width:auto;max-width:94%;max-height:min(40vh,370px);padding:5px}
body.quiz-cinematic-view #app>.missing-compare{width:min(96%,700px);margin:7px auto;gap:8px}
body.quiz-cinematic-view #app>.missing-compare .flash-photo{width:100%;max-width:100%;max-height:min(29vh,250px);padding:4px}
body.quiz-cinematic-view #app>.missing-compare figcaption{color:#b9f6ff;text-shadow:0 0 8px #38dcff}
body.quiz-cinematic-view #app>.badge{position:relative;border-color:#47dbff;background:linear-gradient(180deg,#173b68,#0b2045);color:#eaffff;box-shadow:0 0 12px #32dfff55,inset 0 1px 0 #fff4;letter-spacing:.11em;text-transform:uppercase}
body.quiz-cinematic-view #app>.question{position:relative;margin:5px 0 8px;padding:12px 10px;border:0;border-radius:0;background:rgba(3,10,27,.28);color:#fff;text-shadow:0 2px 4px #000,0 0 14px #5ddfff88;box-shadow:none}
body.quiz-cinematic-view #app>.timer{position:relative;width:max-content;min-width:74px;margin:4px auto 8px;padding:4px 13px;border:1px solid #ffe460;border-radius:999px;background:#100f1ee8;color:#ffe760;text-shadow:0 0 12px #ffdc35;box-shadow:0 0 14px #ffe14f42,inset 0 0 10px #ffcf2420}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options){position:relative;gap:9px}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;min-height:62px!important;padding:8px 10px!important;border:1px solid rgba(98,191,224,.82);border-bottom-color:rgba(37,90,122,.82);border-radius:11px;background:rgba(5,20,48,.48);color:#f7f9ff;text-align:left;backdrop-filter:blur(2px);box-shadow:0 3px 0 #05091999,0 6px 12px #0003,inset 0 1px 0 #ffffff2b;transition:transform .1s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option:nth-child(2){border-color:rgba(225,94,195,.8);border-bottom-color:rgba(103,39,93,.82);background:rgba(55,11,57,.46)}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option:nth-child(3){border-color:rgba(246,190,72,.85);border-bottom-color:rgba(128,81,20,.86);background:rgba(65,42,8,.48)}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option:nth-child(4){border-color:rgba(67,220,151,.82);border-bottom-color:rgba(24,103,70,.86);background:rgba(8,55,42,.48)}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option b{display:grid;place-items:center;width:31px;height:31px;border:1px solid #73e8ff;border-radius:8px;background:linear-gradient(145deg,#1de0ff,#1269d5 55%,#3820a5);color:#fff;font-size:17px;line-height:1;text-shadow:0 1px 2px #001;box-shadow:0 0 11px #20dfff7a,inset 0 1px 0 #fff9}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option:nth-child(2) b{border-color:#ff8bdd;background:linear-gradient(145deg,#ff58cd,#c31e91 55%,#6c1f9d);box-shadow:0 0 11px #ff3fc97a,inset 0 1px 0 #fff8}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option:nth-child(3) b{border-color:#ffe395;background:linear-gradient(145deg,#ffd95e,#df8d16 55%,#8b4909);box-shadow:0 0 11px #ffc33f80,inset 0 1px 0 #fff9}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option:nth-child(4) b{border-color:#98ffd0;background:linear-gradient(145deg,#52efaa,#168b65 55%,#07523f);box-shadow:0 0 11px #35eca277,inset 0 1px 0 #fff8}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option:not(:disabled):active{transform:translateY(3px);box-shadow:0 1px 0 #050919,0 3px 8px #0006,inset 0 1px 0 #fff2}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option.selected,body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option.selected:disabled{border-color:#76efff;background:linear-gradient(160deg,#155e8a,#173e70 55%,#161c52);color:#fff;opacity:1;filter:none;box-shadow:0 0 0 2px #68eaff66,0 0 24px #20dfff77,inset 0 1px 0 #fff6}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option.selected b{color:#fff;background:linear-gradient(145deg,#8af5ff,#20bde9 55%,#3154da)}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option.correct,body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option.correct:disabled{border-color:#8affb0;background:linear-gradient(160deg,#2a9b60,#17613f 58%,#0b3123);color:#fff;opacity:1;filter:none;outline:2px solid #baffce;outline-offset:1px;box-shadow:0 0 25px #5cff8d70,inset 0 1px 0 #fff6}
body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option.wrong,body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option.wrong:disabled{border-color:#ff8ba0;background:linear-gradient(160deg,#bb3657,#79233e 58%,#3c1428);color:#fff;opacity:1;filter:none;box-shadow:0 0 22px #ff426866,inset 0 1px 0 #fff5}
body.quiz-cinematic-view #app>.status{margin:8px 0 0;padding:7px 9px;border:1px solid #3bdfff66;border-radius:9px;background:#061a31cc;color:#a9f6ff;letter-spacing:.025em}
body.public-screen #app:has(.personal-quiz-public) .personal-quiz-public{position:relative;padding:clamp(2rem,8vw,5rem) 1rem}body.public-screen #app:has(.personal-quiz-public) .personal-quiz-public h2{font-size:clamp(2rem,7vw,4.6rem);font-style:italic;text-transform:uppercase;text-shadow:-3px 3px 0 #075fbf,3px -2px 0 #b4168f,0 0 24px #47ddff}body.public-screen #app:has(.personal-quiz-public) .personal-quiz-public strong{padding:.3em .6em;border:1px solid #51e6ff;border-radius:.35em;background:#071933cc;box-shadow:0 0 28px #2ce4ff44}
body:has(.current-control .personal-quiz-progress) .current-control{border-color:#51dfff;background:radial-gradient(circle at 12% 0,#0b559055,transparent 35%),radial-gradient(circle at 90% 0,#8b176755,transparent 38%),linear-gradient(145deg,#07142c,#151437);box-shadow:0 0 25px #20dfff24,inset 0 1px 0 #fff2}body:has(.current-control .personal-quiz-progress) .personal-total{border-color:#52e8ff;background:linear-gradient(135deg,#08345b,#171b49 58%,#38143e);box-shadow:0 0 22px #2ce1ff31,inset 0 1px 0 #fff3}body:has(.current-control .personal-quiz-progress) .personal-total strong{color:#fff;text-shadow:-2px 2px 0 #0874cb,2px -1px 0 #ba208d,0 0 15px #48e7ff}body:has(.current-control .personal-quiz-progress) .personal-team-progress>div{border-color:#516ba1;background:linear-gradient(150deg,#192d55,#11172f);box-shadow:inset 0 1px 0 #fff2}body:has(.current-control .personal-quiz-progress) .personal-team-progress span{color:#ffe660;text-shadow:0 0 8px #ffd83f55}
@media(max-width:360px),(max-height:620px){body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option{grid-template-columns:28px minmax(0,1fr);min-height:51px!important;padding:5px 7px!important}body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option b{width:26px;height:26px;font-size:14px}body.quiz-cinematic-view #app>.question{padding:8px}body.quiz-cinematic-view #app>.timer{padding:2px 10px}}
@media(prefers-reduced-motion:reduce){body.compact-question-view #app>.options:not(.compact-options):not(.order-options) .option{transition:none}}

.team-role-panel .presence-toggle{display:block;width:100%;margin:8px 0 2px}
.presence-hint{display:block;font-size:12px;color:#9fb3d9;margin-bottom:8px}

/* Gran Premio */
.gp-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.15rem 0 .45rem}.gp-head h2{margin:0}
.gp-hud{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin:0 auto .5rem;max-width:620px}
.gp-hud span{border:1px solid #48e7ff66;border-radius:999px;padding:.3rem .4rem;font-size:12px;text-align:center;color:#9fd8ff}.gp-hud b{display:block;font-size:17px;color:#fff}
.gp-stage{position:relative;max-width:620px;margin:0 auto}
.gp-canvas{display:block;width:100%;height:min(58vh,520px);border-radius:14px;touch-action:none;user-select:none;-webkit-user-select:none;background:#1b2a6b}
.gp-brake{display:block;width:100%;max-width:620px;margin:.6rem auto .3rem;padding:18px 0;font-size:22px;font-weight:900;letter-spacing:.08em;border-radius:16px;background:#7a1f2b;color:#fff;border:2px solid #ff5a6e;touch-action:none;user-select:none;-webkit-user-select:none}
.gp-brake.on{background:#ff3d5a;transform:scale(.98)}

/* Bowling e Fuga dal Castello */
.bowl-canvas{height:min(64vh,560px);background:#05070f}
.castle-canvas{height:min(62vh,600px);background:#07060c}
.tower-canvas{height:min(64vh,580px)}
.pento-canvas{height:min(63vh,600px);background:#0a0f26}
.sales-canvas{height:min(64vh,600px);background:#2a0f2b}
.pizza-canvas{height:min(66vh,620px)}
.barista-canvas{height:min(66vh,620px)}
.vespa-canvas{height:min(66vh,620px)}
.polenta-canvas{height:min(66vh,620px)}
.cake-canvas{height:min(66vh,620px)}
.beer-canvas{height:min(66vh,620px)}
.archery-canvas{height:min(66vh,620px)}
.west-canvas{height:min(66vh,620px)}
.sky-canvas{height:min(70vh,640px);touch-action:none}
.numorder-canvas{height:auto;aspect-ratio:2/3;max-height:min(66vh,620px);margin:0 auto}
.race-group{margin:-.2rem 0 .4rem;text-align:center;font-size:12px;font-weight:900;letter-spacing:.12em;color:#48e7ff}
.race-fastest{margin:6px auto 12px;padding:8px 14px;border-radius:12px;background:#ffe34f1f;border:1px solid #ffe34f80;color:#ffe34f;font-weight:800;text-align:center;max-width:520px}
.race-fastest b{color:#fff}
/* corsa: una corsia per giocatore, il nome serve anche con tante corsie (abbreviato) */
.race-stage-vertical:has(>.race-lane:nth-child(5)) .race-label{height:46px}
.race-stage-vertical .race-label span.race-name{display:block!important;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:800}
.team-role-panel .sound-toggle{display:block;width:100%;margin:8px 0 10px;padding:10px;border-radius:10px;border:1px solid #48e7ff66;background:#0b1534;color:#e8f6ff;font-weight:800;font-size:14px}
/* telefono nel browser (non a schermo intero): un po' di margine sotto, così il dito non finisce sui pulsanti del browser */
/* :where = priorità bassa: i giochi a tutta altezza (corsa, attraversamento…) tengono le loro misure */
@media (pointer:coarse){:where(body.player-view:not(.is-fullscreen)) .game-shell{padding-bottom:max(26px,env(safe-area-inset-bottom))}}
.fullscreen-hint{display:block;margin:0 0 10px;line-height:1.35}
/* Fuga dal Castello: si striscia su tutto lo schermo, quindi durante il gioco la pagina non deve scorrere né ricaricarsi tirando giù */
html:has(.castle-canvas),html:has(.castle-canvas) body,html:has(.castle-canvas) #app{touch-action:none;overscroll-behavior:none}
/* telefono: il gioco disegnato occupa lo spazio che resta DAVVERO visibile (dvh tiene conto delle barre del browser), così titolo, punteggi e scritta sotto stanno tutti nello schermo
   anche quando non si è a schermo intero. 310px = intestazione + titolo + riquadri dei punti + istruzioni; il Gran Premio ha in più il pulsante FRENO */
@media (max-width:600px){
  .player-view .gp-canvas{height:calc(100dvh - 310px);min-height:300px;max-height:640px}
  .player-view #gpCanvas{height:calc(100dvh - 385px);min-height:280px}
}
/* TEST GAME BATTLE: scelta libera del gioco in regia */
.free-pick{margin:0 0 14px;padding:12px;border:1px solid #2ee87a66;border-radius:14px;background:#0c1f1680}.free-pick h3{margin:0 0 10px;font-size:15px;color:#9ff5c4}.free-pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.free-pick-grid button{padding:11px 8px;border-radius:10px;border:1px solid #ffffff33;background:#16233f;color:#fff;font-weight:800;font-size:13px;cursor:pointer}.free-pick-grid button.on{background:#2ee87a;color:#04210f;border-color:#2ee87a}.free-pick p{margin:10px 0 0;font-size:12px;color:#b9c8e8}.free-pick .free-finish{margin-left:8px;padding:6px 10px;border-radius:8px;border:1px solid #ff5a6e88;background:transparent;color:#ff9aa6;font-weight:700;cursor:pointer}
.free-tools{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0}.free-tools button{padding:12px 16px;border-radius:10px;border:2px solid #2ee87a;background:#0c1f16;color:#9ff5c4;font-weight:900;font-size:15px;cursor:pointer}.free-tools button+button{border-color:#48e7ff;color:#bff4ff;background:#0c1a2a}
.free-pick h4{margin:14px 0 8px;font-size:13px;color:#ffe08a;text-transform:uppercase;letter-spacing:.04em}.free-quiz{display:flex;flex-wrap:wrap;gap:8px}.free-quiz select{flex:1 1 240px;padding:10px;border-radius:10px;border:1px solid #ffffff33;background:#0b1530;color:#fff;font-size:14px}.free-quiz button{padding:11px 14px;border-radius:10px;border:1px solid #ffffff33;background:#16233f;color:#fff;font-weight:800;cursor:pointer}.free-quiz button.on{background:#2ee87a;color:#04210f;border-color:#2ee87a}
.rejoin-help{margin:14px 0 0;padding:10px 12px;border:1px solid #ffffff2e;border-radius:12px;background:#0b1530aa;text-align:left;font-size:13px;color:#d6e2ff}.rejoin-help summary{cursor:pointer;font-weight:800;color:#ffe08a}.rejoin-help ol{margin:10px 0;padding-left:20px}.rejoin-help li{margin:6px 0}.rejoin-codes{list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:6px 0 0}.rejoin-codes li{padding:6px 10px;border-radius:8px;background:#16233f}.rejoin-codes b{color:#ffe34f;font-size:16px;margin-left:6px;letter-spacing:.08em}
#rejoin summary{cursor:pointer;font-size:15px}#rejoin p{font-size:13px;color:#c9d6f5}
.free-rules-title{margin:0 0 8px;font-weight:900;font-size:14px;color:#9ff5c4;letter-spacing:.03em}
/* risposta scritta (Zoom estremo, Indovina l'immagine…): tutto in una schermata anche con la tastiera aperta */
.secret-layout h2{margin:0 0 4px;font-size:18px}.secret-layout .secret-question{margin:0 0 4px;font-size:14px}.secret-layout .secret-form{margin:4px 0}.secret-layout .secret-form input{padding:9px 12px}.secret-layout .status,.secret-layout .secret-count{margin:2px 0;font-size:12px}.secret-layout .secret-tries{margin:2px 0}
.secret-layout .puzzle-image{width:min(100%,38vh)!important;max-width:min(100%,38vh);margin:6px auto 4px}.secret-layout .puzzle-image.landscape{width:min(100%,60vh)!important;max-width:min(100%,60vh)}.secret-layout .puzzle-image img{max-height:38vh}.secret-layout .timer{font-size:22px;margin:2px 0}.secret-layout .puzzle-value{margin:0;font-size:13px}
/* 13/10 — pausa con conto alla rovescia (regia, telefoni, schermo) */
.break-clock,.pause-clock{margin:8px auto;font-weight:900;font-variant-numeric:tabular-nums;text-align:center;color:#ffe34f;text-shadow:0 2px 0 #000,0 0 18px #ffe34f66;font-size:clamp(46px,14vw,110px);line-height:1}
.break-clock.warn,.pause-clock.warn{color:#ff5a6e;animation:break-blink 1s steps(2) infinite}.break-clock.over,.pause-clock.over{color:#2ee87a;font-size:clamp(30px,9vw,70px)}
@keyframes break-blink{50%{opacity:.45}}/* in regia il conto della pausa era gigantesco: lì basta leggerlo */
.host-shell .break-clock{font-size:clamp(30px,4.2vw,52px);margin:4px auto}.host-shell .break-clock.over{font-size:clamp(22px,3vw,34px)}
.break-note,.pause-note{margin:4px auto 10px;max-width:560px;text-align:center;font-size:14px;color:#cfdcff;font-weight:700}.pause-note{font-size:18px;color:#fff;text-transform:uppercase;letter-spacing:.06em;margin:10px auto 0}/* 14/10: sopra il conto alla rovescia, in stampatello */
/* 13/10 — modifica veloce della scaletta in regia */
.plan-quick{margin:14px 0 0;padding:10px 12px;border:1px solid #48e7ff66;border-radius:12px;background:#0b1530cc;text-align:left;font-size:13px;color:#e6eeff}.plan-quick summary{cursor:pointer;font-weight:900;color:#9fefff;font-size:14px}
.plan-quick .q-help{margin:8px 0;color:#b9c8e8;font-size:12px;line-height:1.35}.plan-quick .q-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px;border-radius:10px;background:#16233f}.plan-quick select{flex:1 1 200px;min-width:0;padding:9px;border-radius:8px;border:1px solid #ffffff44;background:#0b1530;color:#fff;font-size:14px}
.plan-quick .q-quiz{display:flex;align-items:center;gap:6px;font-size:12px}.plan-quick .q-quiz input{width:56px;padding:8px;border-radius:8px;border:1px solid #ffffff44;background:#0b1530;color:#fff;font-size:14px}
.plan-quick button{padding:8px 10px;border-radius:8px;border:1px solid #ffffff44;background:#1d2b4a;color:#fff;font-weight:800;font-size:13px;cursor:pointer}.plan-quick button.accent{background:#1f8a4c;border-color:#9dffc4}.plan-quick button:disabled{opacity:.3;cursor:default}.plan-quick .q-del{border-color:#ff5a6e88;color:#ff9aa6}
.plan-quick .q-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.plan-quick .q-list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:7px 8px;border-radius:9px;background:#111c38}.plan-quick .q-list li.live{background:#2a2410;border:1px solid #ffd54a66}
.plan-quick .q-name{flex:1 1 170px;font-weight:800}.plan-quick .q-name em{margin-left:6px;padding:1px 7px;border-radius:99px;background:#ffd54a;color:#241a00;font-style:normal;font-size:10px;font-weight:900}.plan-quick .q-min{display:inline-flex;align-items:center;gap:5px}.plan-quick .q-min b{min-width:54px;text-align:center;font-size:12px}.plan-quick .q-act{display:inline-flex;gap:5px}
/* 13/10: il telefono virtuale della regia ha un'altezza FISSA da telefono e resta in vista mentre si scorre. Prima si allungava quanto la colonna dei comandi: con i pannelli nuovi (scaletta veloce, aiuto rientro) diventava altissimo, la domanda finiva a metà e i pulsanti di risposta molto più in basso, fuori vista */
.host-player-preview{align-self:flex-start!important;position:sticky;top:8px}
.host-player-preview .host-phone-frame{flex:0 0 auto!important;height:min(78vh,640px)!important;min-height:0!important;max-height:640px}
/* 13/10 — gran finale in due atti: prima squadra campione, poi miglior giocatore */
body.finale-view{background:radial-gradient(circle at 50% 18%,#3b1768 0,#111844 35%,#030718 78%)}
body.finale-view .game-shell>header{display:none}body.finale-view #app{min-height:100dvh;display:grid;place-items:center;padding:0!important;border:0!important;background:transparent!important;overflow:hidden}
.grand-finale{isolation:isolate;position:relative;width:min(100%,1100px);min-height:min(100dvh,900px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,1.7vh,18px);padding:clamp(24px,5vw,72px);text-align:center;overflow:hidden;background:radial-gradient(circle at 50% 54%,#ffdc5b30 0,transparent 31%),linear-gradient(145deg,#06152ddd,#201147e8 55%,#4d123fd9);box-shadow:inset 0 0 0 2px #6ceaff88,inset 0 0 90px #d72ea044,0 0 80px #23dfff44}
.grand-finale.team-champion{background:linear-gradient(180deg,#02081718 0%,#02081742 28%,#020817b8 48%,#0208178f 82%,#02081738 100%),url('finale-team-cinematic.webp') center/cover no-repeat}
.grand-finale.player-champion{background:linear-gradient(180deg,#02081716 0%,#0208173d 28%,#020817b8 48%,#0208178a 82%,#02081732 100%),url('finale-player-cinematic.webp') center/cover no-repeat}
.grand-finale:before,.grand-finale:after{content:"";position:absolute;z-index:-1;width:72vmax;height:72vmax;border:1px solid #ffe56d38;border-radius:50%;animation:finale-orbit 14s linear infinite}.grand-finale:after{width:54vmax;height:54vmax;animation-direction:reverse;animation-duration:10s}
.finale-rays{position:absolute;inset:-35%;z-index:-2;background:repeating-conic-gradient(from 0deg,#ffe56d12 0 7deg,transparent 7deg 15deg);animation:finale-spin 24s linear infinite}
.finale-logo{width:min(54vw,380px);filter:drop-shadow(0 0 24px #28dfff88)}
.finale-kicker{padding:.45em 1.1em;border:1px solid #ffe97888;border-radius:999px;background:#050b22aa;color:#ffe978;font-weight:1000;font-size:clamp(15px,2.6vw,28px);letter-spacing:.16em;text-transform:uppercase;box-shadow:0 0 24px #ffd95033}
.finale-trophy,.finale-star{font-size:clamp(62px,13vw,140px);line-height:.9;filter:drop-shadow(0 0 25px #ffd84f);animation:finale-pulse 1.5s ease-in-out infinite alternate}.finale-star{color:#ffe25c;text-shadow:0 0 26px #ffcc36}
.grand-finale .token-icon{width:clamp(82px,16vw,160px)!important;height:clamp(82px,16vw,160px)!important;filter:drop-shadow(0 0 28px currentColor)}
.grand-finale h1{max-width:100%;margin:0;color:#fff;font-size:clamp(42px,10vw,116px);line-height:.9;text-transform:uppercase;text-wrap:balance;text-shadow:-4px 4px 0 #0b72c8,4px -3px 0 #d52b9a,0 0 36px #fff8}
.grand-finale h2{margin:0;color:#a9efff;font-size:clamp(22px,4vw,46px);text-transform:uppercase}.grand-finale>strong{padding:.45em .9em;border-radius:.35em;background:linear-gradient(180deg,#fff7a4,#ffc928);color:#2b1700;font-size:clamp(24px,5vw,54px);box-shadow:0 0 32px #ffd92a99,inset 0 2px 0 #fff}.grand-finale>p{margin:0;max-width:850px;color:#eaf3ff;font-size:clamp(16px,2.5vw,28px);font-weight:800}
.finale-confetti{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,#ffe44d 0 4px,transparent 5px),radial-gradient(circle,#48e7ff 0 4px,transparent 5px),radial-gradient(circle,#ff4faf 0 4px,transparent 5px);background-size:87px 113px,121px 91px,73px 137px;background-position:0 -20px,30px 10px,60px -50px;animation:finale-confetti 4s linear infinite;opacity:.85}
.host-final-winner{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 14px;margin:14px 0;padding:14px;border:1px solid #ffe56688;border-radius:16px;background:linear-gradient(135deg,#17244c,#3b183b)}.host-final-winner .token-icon{grid-row:1/3}.host-final-winner strong{font-size:clamp(25px,4vw,44px);color:#fff}.host-final-winner span{color:#ffe566;font-weight:900}
@keyframes finale-spin{to{transform:rotate(360deg)}}@keyframes finale-orbit{to{transform:rotate(-360deg)}}@keyframes finale-pulse{to{transform:scale(1.08) rotate(-2deg)}}@keyframes finale-confetti{to{background-position:0 113px,30px 101px,60px 87px}}
@media(max-width:600px){.grand-finale{min-height:100dvh;border-radius:0}.grand-finale h1{font-size:clamp(38px,13vw,68px)}.finale-logo{width:min(72vw,320px)}}
@media(prefers-reduced-motion:reduce){.finale-rays,.grand-finale:before,.grand-finale:after,.finale-confetti,.finale-trophy,.finale-star{animation:none}}
/* 13/10 — regole e risultati dei minigiochi con la scena del gioco sullo sfondo (vedi gameStage() in play.js) */
body.game-stage-view #app{min-height:78vh;padding:12px 8px 16px;border-radius:14px;background:linear-gradient(180deg,#040a1cc4 0%,#040a1c70 38%,#040a1cb8 100%),var(--game-stage) center/cover no-repeat #040a1c!important;box-shadow:inset 0 0 0 1px #48e7ff33}
body.game-stage-view #app h2{text-shadow:0 2px 6px #000,0 0 14px #48e7ff66}body.game-stage-view #app .round-results li{background:#0b1430e6}body.game-stage-view #app p{text-shadow:0 1px 3px #000}
/* 13/10 — soluzioni e risultati sul palco dei quiz: la pagina scorre (prima restava bloccata e la classifica in fondo non si raggiungeva) */
body.stage-scroll-view #app{overflow-y:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
body.stage-scroll-view #app>*{flex-shrink:0}
body.stage-scroll-view .quiz-stage-art{position:fixed!important;inset:0;height:100vh}
/* GRAN FINALE — effetti (13/10). Ogni animazione parte da --ft (secondi già trascorsi, negativo) perché play.js ridisegna la schermata a ogni aggiornamento: così non ricominciano. Squadra: lampo, coppa che si avvicina, fari e pioggia di coriandoli. Giocatore: lampo, onde di luce e stelle che brillano. */
.grand-finale.fx{background:#020817;animation:finale-shake .45s linear both;animation-delay:calc(var(--ft) + 2s)}
.grand-finale.fx:before,.grand-finale.fx:after{display:none}
.finale-bg{position:absolute;inset:0;z-index:-3;background:center/cover no-repeat;animation:finale-bg-in 2.4s cubic-bezier(.2,.8,.2,1) both,finale-bg-drift 14s ease-in-out infinite alternate;animation-delay:var(--ft),calc(var(--ft) + 2.4s)}
.team-champion .finale-bg{background-image:url('finale-team-cinematic.webp')}.player-champion .finale-bg{background-image:url('finale-player-cinematic.webp')}
.finale-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#02081710 0%,#0208173d 28%,#020817b0 48%,#0208178a 82%,#02081730 100%)}
.finale-flash{position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(circle at 50% 28%,#fff 0,#ffe56d 38%,#ffe56d00 78%);animation:finale-flash 1.2s ease-out both;animation-delay:var(--ft)}
.player-champion .finale-flash{background:radial-gradient(circle at 50% 22%,#fff 0,#8fe9ff 34%,#ff5fc400 78%)}
.grand-finale.fx>.finale-logo{animation:finale-drop .7s cubic-bezier(.2,1.5,.4,1) both;animation-delay:calc(var(--ft) + .35s)}
.grand-finale.fx>.finale-kicker{animation:finale-fade .5s ease-out both;animation-delay:calc(var(--ft) + .95s)}
.finale-token{display:grid;place-items:center;animation:finale-pop .85s cubic-bezier(.2,1.6,.4,1) both;animation-delay:calc(var(--ft) + 1.35s)}
.grand-finale.fx>h1{font-size:clamp(34px,11vw,110px)!important;line-height:1!important;animation:finale-slam .55s cubic-bezier(.2,.9,.3,1.2) both;animation-delay:calc(var(--ft) + 2s)}
.grand-finale.fx>h2{animation:finale-fade .5s ease-out both;animation-delay:calc(var(--ft) + 2.45s)}
.grand-finale.fx>strong{animation:finale-rise .6s cubic-bezier(.2,1.4,.4,1) both,finale-glow 1.3s ease-in-out infinite alternate;animation-delay:calc(var(--ft) + 2.7s),calc(var(--ft) + 3.3s)}
.grand-finale.fx>p{animation:finale-fade .6s ease-out both;animation-delay:calc(var(--ft) + 3.2s)}
.finale-beam{position:absolute;z-index:-1;left:50%;bottom:-8%;width:24vmin;height:120%;margin-left:-12vmin;filter:blur(5px);transform-origin:50% 100%;pointer-events:none;background:linear-gradient(0deg,#ffe98a40,#ffe98a00 72%);clip-path:polygon(42% 100%,58% 100%,100% 0,0 0);animation:finale-beam 5.5s ease-in-out infinite alternate;animation-delay:calc(var(--ft) + .6s)}
.finale-beam.b2{background:linear-gradient(0deg,#5fe4ff38,#5fe4ff00 72%);animation-direction:alternate-reverse;animation-duration:7s}
.finale-rain,.finale-twinkle{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.finale-rain i{position:absolute;top:-5%;left:calc(var(--x)*1%);width:9px;height:15px;border-radius:2px;background:#ffd94a;opacity:0;animation:finale-fall calc(3.4s + var(--s)*2.6s) linear infinite;animation-delay:calc(var(--ft) + 1.9s + var(--d)*1s)}
.finale-rain i:nth-child(3n){background:#48e7ff}.finale-rain i:nth-child(3n+1){background:#ff4faf;width:7px;height:11px}.finale-rain i:nth-child(4n){background:#fff6c2;border-radius:50%;width:8px;height:8px}
.finale-twinkle i{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:22px;height:22px;margin:-11px;opacity:0;background:#fff3a8;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);filter:drop-shadow(0 0 6px #ffe25c);animation:finale-twinkle calc(1.6s + var(--s)*1.8s) ease-in-out infinite;animation-delay:calc(var(--ft) + 1.4s + var(--d)*.6s)}
.finale-twinkle i:nth-child(3n){background:#9cecff;width:15px;height:15px}.finale-twinkle i:nth-child(4n){background:#ff9ad8;width:30px;height:30px;margin:-15px}
.finale-ring{position:absolute;z-index:-1;left:50%;top:50%;width:40vmin;height:40vmin;margin:-20vmin;border:3px solid #ffe56d;border-radius:50%;opacity:0;pointer-events:none;box-shadow:0 0 30px #ffe56daa,inset 0 0 30px #ffe56d55;animation:finale-ring 2.6s ease-out infinite;animation-delay:calc(var(--ft) + 1.4s)}
.finale-ring.r2{border-color:#6ceaff;box-shadow:0 0 30px #6ceaffaa;animation-delay:calc(var(--ft) + 2.7s)}
@keyframes finale-bg-in{from{transform:scale(1.5);filter:brightness(2.2) blur(6px)}to{transform:scale(1);filter:none}}@keyframes finale-bg-drift{from{transform:scale(1)}to{transform:scale(1.09)}}
@keyframes finale-flash{from{opacity:1}to{opacity:0}}@keyframes finale-fade{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes finale-drop{from{opacity:0;transform:translateY(-70%) scale(.6)}to{opacity:1;transform:none}}
@keyframes finale-pop{from{opacity:0;transform:scale(0) rotate(-220deg)}to{opacity:1;transform:none}}
@keyframes finale-slam{from{opacity:0;transform:scale(3.4);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}
@keyframes finale-rise{from{opacity:0;transform:translateY(60%) scale(.7)}to{opacity:1;transform:none}}
@keyframes finale-glow{to{box-shadow:0 0 54px #ffd92a,0 0 12px #fff,inset 0 2px 0 #fff;transform:scale(1.05)}}
@keyframes finale-shake{0%,100%{transform:none}20%{transform:translate(-5px,3px)}40%{transform:translate(5px,-3px)}60%{transform:translate(-3px,-2px)}80%{transform:translate(3px,2px)}}
@keyframes finale-beam{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
@keyframes finale-fall{0%{opacity:1;transform:translate3d(0,0,0) rotate(0)}100%{opacity:1;transform:translate3d(calc(var(--w)*1px),115dvh,0) rotate(680deg)}}
@keyframes finale-twinkle{0%,100%{opacity:0;transform:scale(.2) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}
@keyframes finale-ring{from{opacity:.9;transform:scale(.3)}to{opacity:0;transform:scale(3.2)}}
@media(prefers-reduced-motion:reduce){.grand-finale.fx,.grand-finale.fx *{animation:none!important}.finale-flash,.finale-rain,.finale-twinkle,.finale-ring,.finale-beam{display:none}}
/* regole modificabili in regia: si scrive direttamente nel riquadro */
.presenter-script .guide-edit{white-space:pre-line;cursor:text;border-radius:8px;padding:6px 8px;margin:4px -8px;outline:1px dashed #6ceaff44;transition:outline-color .15s,background .15s}
.presenter-script .guide-edit:hover{outline-color:#6ceaffaa}.presenter-script .guide-edit:focus{outline:2px solid #6ceaff;background:#04102acc}
.presenter-script .guide-bar{display:block;margin-top:4px;color:#9fb4d8;font-size:12px}.presenter-script .guide-reset{all:unset;cursor:pointer;color:#ffe08a;text-decoration:underline}
/* «Non gioco questa manche»: schermo di chi resta fuori (copre il gioco) e avviso in basso prima che il gioco parta */
.sit-out{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;background:radial-gradient(circle at 50% 30%,#1b2a5c,#050a1c 75%)}
.sit-out>b{font-size:72px;line-height:1}.sit-out h2{margin:0;color:#ffe08a;font-size:clamp(24px,7vw,40px)}.sit-out p{margin:0;color:#dbe6ff;font-size:17px;line-height:1.5}
.sit-out button{margin-top:10px;padding:16px 22px;border:2px solid #38e6a1;border-radius:14px;background:#123b35;color:#74ffc7;font-size:18px;font-weight:900}
.sit-bar{position:fixed;left:8px;right:8px;bottom:8px;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid #ffe08a88;border-radius:12px;background:#201a05f2;color:#ffe08a;font-weight:800}
.sit-bar button{padding:8px 14px;border:1px solid #38e6a1;border-radius:10px;background:#123b35;color:#74ffc7;font-weight:900}
.presence-toggle:disabled{opacity:.5}
.sit-bar.ask{border-color:#6076a8;background:#0c1630f2;color:#c9d6f5;font-weight:700;font-size:14px}.sit-bar.ask button{border-color:#ff9a9a;background:#3a1420;color:#ffc9c9}
span.presence-toggle.back{display:inline-block}
.host-sit-out{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin:10px 0;padding:10px 14px;border:1px dashed #ffe08a88;border-radius:12px;background:#201a0566;color:#ffe08a}.host-sit-out span{color:#fff}.host-sit-out small{color:#9fb4d8}
/* «Non gioco»: versione discreta (13/10). Prima era una barra larga in basso che copriva l'anteprima dei minigiochi: ora è una pastiglia piccola nell'angolo */
.sit-bar{left:auto;right:6px;bottom:6px;gap:6px;padding:4px 4px 4px 10px;border-radius:999px;font-size:11px;font-weight:700;background:#201a05e6}
.sit-bar button{padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800}
.sit-bar.ask{padding:0;border:0;background:none}
.sit-bar.ask button{padding:6px 10px;border:1px solid #6076a8;background:#0c1630cc;color:#c9d6f5;font-size:11px;font-weight:700;opacity:.85}
.sit-bar,.sit-bar button{min-height:0!important;line-height:1.2!important}
.sit-bar{font-size:11px!important;max-width:calc(100% - 12px)}
.sit-bar button{font-size:11px!important;padding:5px 9px!important;width:auto!important;margin:0!important;box-shadow:none!important;letter-spacing:0!important;text-transform:none!important}
.sit-bar.ask button{padding:6px 10px!important}
/* «Prossimo gioco» sul telefono: logo più piccolo e spazio riservato in basso, così l'anteprima del gioco non finisce sotto la pastiglia «Non gioco» (13/10) */
body .next-game-player>img{width:min(46vw,190px)!important;max-height:11vh!important}
body .next-game-player{padding-bottom:42px}
/* su telefoni bassi l'anteprima si adatta all'altezza dello schermo */
body .next-game-player .rules-shot{width:min(42vw,180px,23vh)}
/* pastiglia «Non gioco» centrata in basso (richiesta di Moreno) */
.sit-bar{left:50%!important;right:auto!important;transform:translateX(-50%);white-space:nowrap}
/* REGIA · riquadro «Miglior giocatore» compatto (13/10): caratteri più piccoli, nome che va a capo e statistiche su una riga propria (prima il nome finiva sopra la descrizione) */
.host-shell .personal-fastest{padding:10px 12px;margin:10px auto}
.host-shell .personal-fastest>div{grid-template-columns:auto minmax(0,1fr)!important;gap:4px 10px;align-items:center}
.host-shell .personal-fastest p{min-width:0;margin:0}
.host-shell .personal-fastest p strong{font-size:18px!important;line-height:1.15;overflow-wrap:anywhere}
.host-shell .personal-fastest p small{font-size:12px!important;line-height:1.2}
.host-shell .personal-fastest>div>b{grid-column:1/-1!important;font-size:13px!important;line-height:1.3;white-space:normal!important;text-align:left!important;font-weight:700}
.host-shell .personal-fastest .token-icon,.host-shell .personal-fastest .battle-token{flex:none}
/* stessa cura per il riquadro della premiazione finale in regia (squadra campione / miglior giocatore in onda) */
.host-final-winner{gap:2px 12px;padding:10px 12px}
.host-final-winner strong{font-size:20px!important;line-height:1.2;min-width:0;overflow-wrap:anywhere}
.host-final-winner span{font-size:13px;line-height:1.3;min-width:0}
.host-final-winner .token-icon{align-self:center}

/* 14/10 schema dei punti nella schermata «Prossimo gioco» */
.points-scheme{max-width:520px;margin:8px auto 10px;padding:8px 12px;border:1px solid #2f4a8a;border-radius:10px;background:#0b1433cc;text-align:left}
.points-scheme b{display:block;margin-bottom:3px;color:#ffe34f;font-size:11px;letter-spacing:.14em;text-align:center}
.points-scheme ul{margin:0;padding-left:18px}.points-scheme li{margin:2px 0;color:#e6eeff;font-size:13px;line-height:1.3}
.public-screen .points-scheme li{font-size:clamp(14px,1.6vw,22px)}

/* 14/10 regia: avviso «HANNO FINITO TUTTI» ben visibile */
.host-all-done{margin:8px auto;padding:12px 14px;border:2px solid #3dff9a;border-radius:12px;background:#0f3b2a;color:#3dff9a;font-size:clamp(20px,3vw,28px);font-weight:900;letter-spacing:.06em;text-align:center;box-shadow:0 0 18px #3dff9a66;animation:all-done-pulse 1.4s ease-in-out infinite}
.host-all-done small{display:block;margin-top:4px;color:#dfffe9;font-size:14px;font-weight:700;letter-spacing:0}
@keyframes all-done-pulse{50%{box-shadow:0 0 4px #3dff9a33}}

/* 15/10 (Moreno): carattere «Battle Show» = Exo 2 Black Italic, dentro il sito (assets/fonts, 17 KB, licenza SIL OFL: uso commerciale libero).
   Solo per titoli, timer, timbri, pulsanti principali e punti: istruzioni e testi piccoli restano col carattere del telefono (si leggono meglio). */
@font-face{font-family:'Exo 2';font-style:italic;font-weight:900;font-display:swap;src:url(fonts/exo2-black-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--font-show:'Exo 2',system-ui,-apple-system,sans-serif}
h1,h2,h3,.timer,.host-countdown,.race-win-stamp b,.three-card-prompt,.puzzle15-goal,.p15-count,.p15-clock,.memory-progress,.wheel-gauge strong,
.buzz-button,.race-button,.wheel-stop,#enableTilt,.lab-retry button,.lab-retry span,
.round-results strong,.round-results b,.puzzle-value strong,.next-game-player span,.badge,
.tilt-pop,.df-pop,.df2-pop,.bo-pop,.p15-pop,.tc-win b{font-family:var(--font-show)!important;font-style:italic;font-weight:900;letter-spacing:.01em}
.timer,.host-countdown,.p15-clock,.wheel-gauge strong,.round-results strong{font-variant-numeric:tabular-nums}
.player-view #app #raceTap{font-size:clamp(12px,3.7vw,16px)!important;letter-spacing:-.02em}/* Exo 2 è più largo: «GALOPPA!» deve stare dentro il pulsante rotondo */

/* 15/10 (Moreno): Regia più compatta e professionale, nomi dei giochi in grassetto (carattere Battle Show). Solo .host-shell. */
.host-shell .current-control>.free-pick{align-self:stretch;margin:6px 0 8px;padding:10px}
.host-shell .free-pick-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:5px}
.host-shell .free-pick-grid button,.host-shell .plan-item-title>strong{font-family:var(--font-show);font-style:italic;font-weight:900;letter-spacing:.01em}
.host-shell .free-pick-grid button{min-height:0;padding:7px 6px;border-radius:7px;font-size:13.5px;line-height:1.1}
.host-shell .free-pick h4{margin:10px 0 6px;font-size:12px}
.host-shell .free-pick h3{margin:0 0 6px}
.host-shell .plan-item-title>strong{font-size:14px}
.host-shell .plan-item-title .plan-chip{font-family:system-ui,-apple-system,sans-serif;font-style:normal}
.host-shell .current-control .presenter-script{max-width:none;align-self:stretch}
.host-shell header .brand-logo.compact,.host-shell>header img{width:140px}
.host-shell header{margin:0 0 4px}
.host-shell #hostApp{padding:12px}
.host-shell .current-control .presenter-script .guide-edit{max-width:none}
@media (max-width:600px){.host-shell{padding:8px 8px}.host-shell #hostApp{padding:8px}.host-shell .current-control,.host-shell .current-control>.free-pick{padding:8px}.host-shell .free-pick-grid{grid-template-columns:repeat(2,1fr)}}
/* 15/10 (Moreno): in Regia i nomi dei giochi in MAIUSCOLO; dati tecnici e segnaposto più discreti */
.game-test-card h2,.host-shell .free-pick-grid button,.host-shell .plan-item-title>strong{text-transform:uppercase;letter-spacing:.02em}
.game-test-card small{display:block;font-size:11px;color:#8193bd;letter-spacing:.02em}
.game-test-card textarea{font-weight:400}.game-test-card textarea::placeholder{font-weight:400;color:#7d8bb0}
/* 15/10 (Moreno): home della Regia più compatta */
.regia-home .brand-logo.compact,.regia-home header img{width:120px!important}
.regia-home header{margin:0 0 8px}
.regia-home .regia-start,.regia-home .regia-resume{max-width:760px;margin:0 auto 8px;padding:12px 16px;gap:16px}
.regia-home .regia-start h1,.regia-home .regia-resume h1{font-size:19px;margin:3px 0 2px}
.regia-home .regia-start p,.regia-home .regia-resume p{font-size:12.5px;line-height:1.35}
.regia-home .regia-section-title{max-width:760px;margin:14px auto 6px}
.regia-home .regia-test-sections{max-width:760px;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.regia-home .regia-test-sections a{padding:8px 10px}
.regia-home .regia-test-sections strong{font-family:var(--font-show);font-style:italic;font-weight:900;font-size:13px;text-transform:uppercase;letter-spacing:.02em}
.regia-home .regia-tools{max-width:760px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:12px auto}
.regia-home .regia-tools a{padding:8px 10px}
@media(max-width:620px){.regia-home .regia-test-sections{grid-template-columns:1fr}.regia-home .regia-tools{grid-template-columns:repeat(2,minmax(0,1fr))}.regia-home .regia-start button{margin-top:10px}}
.regia-home .regia-tools a{display:block!important}.regia-home .regia-tools strong{display:block;font-size:13px}.regia-home .regia-tools span{display:block;margin-top:2px;font-size:11px;line-height:1.3}
@media(max-width:620px){.regia-home .regia-resume .regia-actions{display:flex!important;margin-top:10px}.regia-home .regia-resume .regia-actions>*{flex:1;min-height:40px}}

/* 15/10 (Moreno): Regia più colorata e professionale + pulsante «◀ REGIA» uguale in tutte le pagine */
a.regia-back{position:static;display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:0;border-radius:999px;background:linear-gradient(135deg,#ff3fb4,#7b3cff);color:#fff!important;text-decoration:none;font-family:var(--font-show);font-style:italic;font-weight:900;font-size:13px;letter-spacing:.04em;box-shadow:0 4px 14px #ff3fb455,inset 0 1px 0 #fff5;white-space:nowrap}
a.regia-back:hover{filter:brightness(1.12);box-shadow:0 4px 20px #ff3fb488}
.host-shell header a.regia-back{position:absolute;left:0;top:6px}
.host-shell header a.regia-back span{display:inline!important}
body:has(.host-shell),body.regia-home,body:has(.lab-top),body:has(.questions-top),body:has(.test-page){background:radial-gradient(900px 500px at 0 0,#1d3d8a55,transparent 60%),radial-gradient(900px 500px at 100% 0,#8a1d6f55,transparent 60%),#070b1c}
/* riquadro principale della regia */
.host-shell #hostApp{border:1px solid #3f5fae;background:linear-gradient(160deg,#122154f0,#16123cf0);box-shadow:0 0 0 1px #ff3fb422,0 18px 40px #0007}
.host-shell .current-control{border-color:#48e7ff55;background:linear-gradient(180deg,#0f2148,#0d1430)}
.host-shell .presenter-script{border-left-color:#ffd84a}
/* griglia giochi: quiz in azzurro, minigiochi in magenta */
.host-shell .free-pick{border-color:#48e7ff55;background:linear-gradient(180deg,#0b1d3c,#120f30)}
.host-shell .free-pick-grid button{background:linear-gradient(180deg,#17437a,#122a55);border-color:#3fb7ff77}
.host-shell .free-pick-grid:has(+p) button{background:linear-gradient(180deg,#6a1f6e,#3d1650);border-color:#ff5fc877}
.host-shell .free-pick-grid button:hover{filter:brightness(1.2);border-color:#fff}
.host-shell .free-pick-grid button.on{background:linear-gradient(180deg,#3dff9a,#1fbf68);color:#04210f;border-color:#b6ffd4;box-shadow:0 0 14px #3dff9a88}
.host-shell button:not(.secondary):not(.danger):not(.accent):not(.on):not([data-free-pick]){border-color:#4f7fd6}
/* home: riquadri e voci colorati */
.regia-home .regia-start{background:linear-gradient(135deg,#142a63,#1c1546);border-color:#4a6fc4}
.regia-home .regia-start:nth-of-type(odd){border-color:#3dff9a88}
.regia-home .regia-resume{background:linear-gradient(135deg,#0f4a39,#132050)}
.regia-home .regia-test-sections a{background:linear-gradient(135deg,#132a5c,#17153d);border-color:#3e5da3}
.regia-home .regia-test-sections a:hover,.regia-home .regia-tools a:hover{border-color:#48e7ff;filter:brightness(1.1)}
.regia-home .regia-test-sections a:nth-child(6n+1) b{background:#48e7ff;color:#04121f}
.regia-home .regia-test-sections a:nth-child(6n+2) b{background:#ff3fb4;color:#fff}
.regia-home .regia-test-sections a:nth-child(6n+3) b{background:#ffd84a;color:#2a1c00}
.regia-home .regia-test-sections a:nth-child(6n+4) b{background:#3dff9a;color:#04210f}
.regia-home .regia-test-sections a:nth-child(6n+5) b{background:#a46bff;color:#fff}
.regia-home .regia-test-sections a:nth-child(6n) b{background:#ff8a3d;color:#2a1000}
.regia-home .regia-tools a{background:linear-gradient(135deg,#171f45,#211a45);border-color:#4b4f99}
.game-test-card{background:linear-gradient(150deg,#152a5e,#1a1442)!important;border-color:#3e5da3!important}
/* 15/10 (Moreno): schede dei giochi con la parte sinistra colorata (colore che cambia scheda per scheda) */
.game-test-card{--c:#48e7ff;position:relative;overflow:hidden;padding-left:22px!important}
.game-test-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:7px;background:linear-gradient(180deg,var(--c),color-mix(in srgb,var(--c) 45%,transparent));box-shadow:0 0 14px var(--c)}
.game-test-card:nth-child(6n+2){--c:#ff3fb4}.game-test-card:nth-child(6n+3){--c:#ffd84a}.game-test-card:nth-child(6n+4){--c:#3dff9a}.game-test-card:nth-child(6n+5){--c:#a46bff}.game-test-card:nth-child(6n){--c:#ff8a3d}
.game-test-card h2{color:var(--c)}
.game-test-card>button:last-child{border-color:var(--c)!important;color:var(--c)!important;background:color-mix(in srgb,var(--c) 14%,#0b1430)!important}
/* 15/10 (Moreno): PRENOTA RISPOSTA da quiz show — grande, in rilievo, bagliore che pulsa (vince su puzzle.css per specificità) */
.player-view #app button.buzz-button{position:relative;display:flex!important;align-items:center;justify-content:center;gap:10px;width:min(100%,330px)!important;height:auto!important;min-height:78px!important;margin:14px auto 8px!important;padding:12px 18px!important;border:2px solid #ffb3dc!important;border-radius:18px!important;background:radial-gradient(120% 90% at 50% 0,#ff6fae 0,#ff2d6f 45%,#c4124f 100%)!important;color:#fff!important;font-size:24px!important;line-height:1!important;letter-spacing:.03em;text-shadow:0 2px 0 #7a0a32,0 0 12px #fff6;box-shadow:0 6px 0 #7a0a32,0 10px 22px #ff2d6f66,inset 0 2px 0 #fff8!important;animation:buzz-glow 1.6s ease-in-out infinite;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.player-view #app button.buzz-button::before{content:"🔔";font-size:26px;text-shadow:none;filter:drop-shadow(0 2px 0 #7a0a32)}
.player-view #app button.buzz-button:active{transform:translateY(5px);box-shadow:0 1px 0 #7a0a32,0 4px 10px #ff2d6f66,inset 0 2px 0 #fff8!important}
.player-view #app button.buzz-button:disabled{animation:none;filter:grayscale(.7) brightness(.8)}
@keyframes buzz-glow{50%{box-shadow:0 6px 0 #7a0a32,0 10px 34px #ff2d6fcc,0 0 0 6px #ff6fae33,inset 0 2px 0 #fff8}}
@media (prefers-reduced-motion:reduce){.player-view #app button.buzz-button{animation:none}}
/* 15/10 (Moreno): il pannello SQUADRA è sempre un popup sopra al gioco (nei quiz «cinematic» #app>* diventava position:relative e finiva sotto il gioco) */
#app>.team-panel-modal,body .team-panel-modal{position:fixed!important;inset:0!important;z-index:10050!important;margin:0!important;width:auto!important;max-width:none!important}
/* 15/10 (Moreno): PRENOTA RISPOSTA più piccolo */
.player-view #app button.buzz-button{width:auto!important;min-width:200px;min-height:54px!important;padding:9px 20px!important;border-radius:14px!important;font-size:17px!important;gap:7px;margin:10px auto 6px!important}
.player-view #app button.buzz-button::before{font-size:18px}
/* 15/10 (Moreno): nei giochi con grafica la PRENOTAZIONE spingeva i pulsanti fuori schermo: riquadro compatto in orizzontale; la pagina NON deve scorrere */
.player-view #app .player-booking{grid-template-columns:auto 1fr;justify-items:start;align-items:center;gap:1px 12px;width:100%;max-width:430px;margin:8px auto;padding:9px 14px;text-align:left}
.player-view #app .player-booking>.battle-token{grid-row:1/5;width:52px!important;height:52px!important;min-width:0;font-size:inherit}
.player-view #app .player-booking>span:not(.battle-token){font-size:10px}
.player-view #app .player-booking h2{font-size:19px;line-height:1.1}
.player-view #app .player-booking>strong{font-size:13px}
.player-view #app .player-booking p{margin:0;font-size:12.5px}
/* durante la prenotazione immagine e indizi si rimpiccioliscono per far stare tutto nello schermo (la pagina non scorre) */
/* 19/10 (Moreno, Indovina l'immagine: «si restringe anche se c'è spazio sopra e sotto»): solo se NON ci sta (classe messa da play.js misurando) */body.quiz-cinematic-view.booking-tight #app:has(.player-booking)>:is(.puzzle-image,.format-visual,.song-hints,.image-stage){zoom:.78}
@media (max-height:700px){body.quiz-cinematic-view #app:has(.player-booking)>:is(.puzzle-image,.format-visual,.song-hints,.image-stage){zoom:.68}}

/* ===== 15/10 (Moreno): MINIGIOCHI A SCHERMO INTERO (body.mg-immersive, deciso in play.js). Prova su Slalom e Pedone.
   Sul telefono resta solo il gioco da bordo a bordo; timer e punti diventano etichette sopra il gioco;
   SQUADRA diventa un'icona tonda; sotto resta solo la barra dei comandi per i giochi che ne hanno. ===== */
body.mg-immersive .game-shell{width:100%!important;padding:0!important}
body.mg-immersive.mg-bleed #app{position:relative;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#05080f!important;overflow:hidden!important;display:flex;flex-direction:column}
/* SQUADRA: icona tonda in alto a destra */
body.mg-immersive #app>.player-identity{position:absolute;top:calc(env(safe-area-inset-top) + 8px);right:8px;z-index:40;margin:0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;width:auto!important;min-height:0}
body.mg-immersive #app>.player-identity>*:not(.team-panel-toggle){display:none!important}
body.mg-immersive #app>.player-identity .team-panel-toggle{width:40px;height:40px;min-height:0!important;padding:0!important;border-radius:50%!important;font-size:0!important;background:#07122dcc!important;border:1.5px solid #48e7ffaa!important;box-shadow:0 4px 12px #0008;backdrop-filter:blur(4px)}
body.mg-immersive #app>.player-identity .team-panel-toggle::before{content:"👥";font-size:18px}
/* etichette (timer, punti) sopra il gioco */
body.mg-immersive.mg-bleed .mg-chip,body.mg-immersive.mg-bleed #app .timer{display:inline-flex;align-items:baseline;gap:6px;padding:5px 12px!important;border-radius:999px!important;background:#07122dcc!important;border:1.5px solid #ffe34f88!important;color:#ffe34f!important;font-size:22px!important;line-height:1!important;box-shadow:0 4px 12px #0008;backdrop-filter:blur(4px);margin:0!important;min-width:0!important;width:auto!important}
body.mg-immersive.mg-bleed #app .lab-controls,body.mg-immersive.mg-bleed #app .lab-back{position:absolute;z-index:30;left:50%;transform:translateX(-50%);opacity:.85}
body.mg-immersive.mg-bleed #app .lab-back{top:calc(env(safe-area-inset-top) + 54px);left:8px;transform:none;font-size:11px;padding:3px 8px;border-radius:999px;background:#07122dcc}

/* --- Slalom: pista a tutto schermo --- */
body.mg-immersive[data-mg="slalom"] .slalom-head{position:absolute;top:calc(env(safe-area-inset-top) + 8px);left:8px;z-index:20;margin:0;pointer-events:none}
body.mg-immersive[data-mg="slalom"] .slalom-head h2,body.mg-immersive[data-mg="slalom"] .slalom-hud,body.mg-immersive[data-mg="slalom"] #app>p.status{display:none!important}
body.mg-immersive[data-mg="slalom"] .slalom-stage{flex:1 1 auto;width:100%!important;max-width:none;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
body.mg-immersive[data-mg="slalom"] .slalom-canvas{width:100%!important;height:100%!important;min-height:0!important;position:absolute;inset:0}
body.mg-immersive[data-mg="slalom"] .slalom-score{top:calc(env(safe-area-inset-top) + 56px);left:8px;right:8px}
body.mg-immersive[data-mg="slalom"] .slalom-combo{top:calc(env(safe-area-inset-top) + 92px)}
body.mg-immersive[data-mg="slalom"] .lab-controls{bottom:22px}

/* --- Pedone: strada a tutto schermo, frecce in una barra in basso --- */
body.mg-immersive[data-mg="frog"] #app>h2,body.mg-immersive[data-mg="frog"] #app>.frog-names{display:none!important}
body.mg-immersive[data-mg="frog"] #app>.timer{position:absolute;top:calc(env(safe-area-inset-top) + 8px);left:8px;z-index:20}
body.mg-immersive[data-mg="frog"] #app>.frog-board{flex:1 1 auto;width:100%!important;max-width:none;margin:0!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important}
body.mg-immersive[data-mg="frog"] #app>.frog-board::before{display:none}
body.mg-immersive[data-mg="frog"] #app>.frog-controls{flex:0 0 auto;margin:0!important;padding:8px 0 calc(env(safe-area-inset-bottom) + 6px);background:linear-gradient(180deg,#0b1430,#05080f);border-top:1.5px solid #48e7ff55}
body.mg-immersive[data-mg="frog"] #app>.frog-controls+p{position:absolute;top:calc(env(safe-area-inset-top) + 12px);left:50%;transform:translateX(-50%);z-index:20;margin:0;padding:4px 10px;border-radius:999px;background:#07122dcc;font-size:11px;white-space:nowrap}
body.mg-immersive[data-mg="frog"] .lab-controls{bottom:110px}
body.mg-immersive[data-mg="frog"] #app>.frog-controls{width:100%;max-width:none;grid-template-columns:repeat(3,min(30vw,112px));grid-template-rows:repeat(2,52px);gap:6px;justify-content:center}
body.mg-immersive[data-mg="frog"] #app>.frog-controls button{min-height:52px!important;border-radius:14px!important;font-size:26px!important;color:#fff!important;background:linear-gradient(180deg,#1d3a7a,#10204a)!important;border:1.5px solid #48e7ff88!important;box-shadow:0 4px 0 #050b1c,inset 0 1px 0 #fff3!important}
body.mg-immersive[data-mg="frog"] #app>.frog-controls button:active{transform:translateY(3px);box-shadow:0 1px 0 #050b1c!important}
body.mg-immersive[data-mg="frog"] #app>.frog-controls button:disabled{opacity:.45}
body.mg-immersive[data-mg="slalom"] #app .lab-back{top:auto;bottom:calc(env(safe-area-inset-bottom) + 8px)}
/* 16/10 (Moreno): «Prova i giochi», schede apribili: chiuse mostrano solo il nome */
.game-test-card h2{cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between;gap:8px}
.game-test-card h2::after{content:"▾";font-style:normal;font-size:.8em;opacity:.8;transition:transform .2s}
.game-test-card.closed h2::after{transform:rotate(-90deg)}
.game-test-card.closed{padding-top:10px!important;padding-bottom:10px!important;align-items:center}
.game-test-card.closed>div{flex:1 1 auto}
.game-test-card.closed>div>:not(h2),.game-test-card.closed>:not(div){display:none!important}
.game-test-card.closed h2{margin:0}
.game-test-card.closed{align-self:start}
/* 16/10 (Moreno): freccia apri/chiudi più grande, in un cerchio ben visibile */
.game-test-card h2::after{content:"▾";display:inline-grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;border:2px solid currentColor;background:#0b1430aa;font-size:22px;line-height:1;opacity:1}
/* --- Corsa dei cavalli a schermo intero: pista da bordo a bordo, GALOPPA! in basso --- */
body.mg-immersive[data-mg="race"] #app>h2,body.mg-immersive[data-mg="race"] #app>.badge,body.mg-immersive[data-mg="race"] .race-tip{display:none!important}
body.mg-immersive[data-mg="race"] #app>.race-stage{flex:1 1 auto;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
body.mg-immersive[data-mg="race"] #app .race-button{flex:0 0 72px;margin:6px auto calc(env(safe-area-inset-bottom) + 6px)!important}
body.mg-immersive[data-mg="race"] #app .lab-back{top:auto;bottom:calc(env(safe-area-inset-bottom) + 4px)}
/* 16/10: velo durante il passaggio a schermo intero (nasconde il giro in orizzontale che fanno alcuni browser Android) */
.fs-veil{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;background:#05080f;transition:opacity .25s}
.fs-veil img{width:min(60vw,260px);height:auto}
.fs-veil.out{opacity:0}
/* 16/10 (Moreno: «le card hanno solo 3 colori»): 8 colori invece di 6 — su 3 colonne il ciclo da 6 ripeteva gli stessi colori per colonna */
.game-test-card:nth-child(8n+1){--c:#48e7ff}.game-test-card:nth-child(8n+2){--c:#ff3fb4}.game-test-card:nth-child(8n+3){--c:#ffd84a}.game-test-card:nth-child(8n+4){--c:#3dff9a}
.game-test-card:nth-child(8n+5){--c:#a46bff}.game-test-card:nth-child(8n+6){--c:#ff8a3d}.game-test-card:nth-child(8n+7){--c:#ff4d5e}.game-test-card:nth-child(8n){--c:#2fd6c5}
/* 16/10: il gioco si apre DENTRO la pagina d'iscrizione (così lo schermo intero non si perde cambiando pagina) */
body.game-host{margin:0;padding:0;height:100dvh;overflow:hidden;background:#05080f}
#bsGame{position:fixed;inset:0;width:100%;height:100%;border:0;display:block;background:#05080f}
/* 16/10: avviso discreto «Schermo intero attivo» (nessuna domanda) */
.fs-toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 14px);z-index:20000;transform:translateX(-50%);padding:8px 16px;border-radius:999px;background:#07122dee;border:1.5px solid #48e7ff88;color:#fff;font:700 14px system-ui,sans-serif;box-shadow:0 6px 18px #0009;transition:opacity .4s;pointer-events:none}
.fs-toast.out{opacity:0}
/* 16/10: la freccia apri/chiudi resta ferma nell'angolo in alto a destra (prima, aprendo la scheda, si spostava col titolo) */
.game-test-card h2{padding-right:46px;position:static}
.game-test-card h2::after{position:absolute;top:8px;right:10px}
.game-test-card.closed h2::after{top:50%;margin-top:-17px}
/* --- Palle in buca a schermo intero (16/10): tavolo grande quanto lo schermo (resta 3:4, come la fisica e il server), pallina che cresce col tavolo --- */
body.mg-immersive[data-mg="tilt"] #app{justify-content:center;gap:8px}
body.mg-immersive[data-mg="tilt"] #app>h2{display:none!important}
body.mg-immersive[data-mg="tilt"] #app>.tilt-score{position:absolute;top:calc(env(safe-area-inset-top) + 8px);left:8px;z-index:20;display:flex;gap:10px;align-items:baseline;padding:6px 14px;border-radius:999px;background:#07122dcc;border:1.5px solid #ffe34f88;box-shadow:0 4px 12px #0008}
body.mg-immersive[data-mg="tilt"] #app>.tilt-arena{flex:0 0 auto;width:min(100%,calc((var(--player-height,100dvh) - 150px)*.75))!important;max-width:none;margin:0 auto!important}
body.mg-immersive[data-mg="tilt"] .tilt-arena .tilt-ball{width:6.2%!important;height:auto!important;aspect-ratio:1}
body.mg-immersive[data-mg="tilt"] #app>.tilt-sensor-help{margin:0 12px;font-size:13px}

/* ===== 16/10 (Moreno): SCHERMO INTERO PER TUTTA LA SERATA — base comune per quiz, minigiochi, classifiche, pause (i giochi «mg-bleed» hanno regole proprie sopra) ===== */
body.mg-immersive:not(.mg-bleed) #app{position:relative;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;padding:calc(env(safe-area-inset-top) + 54px) 10px calc(env(safe-area-inset-bottom) + 10px)!important;overflow-y:auto!important;overflow-x:hidden}
body.mg-immersive:not(.mg-bleed) #app>.player-identity{position:absolute}
body.mg-immersive:not(.mg-bleed) #app{display:flex!important;flex-direction:column;justify-content:safe center}/* contenuto centrato in verticale: niente vuoto tutto in basso */
body.mg-immersive:not(.mg-bleed) #app>:is(div,section,ol,ul,form,table,canvas){width:100%;max-width:100%;box-sizing:border-box}/* i blocchi dei giochi tengono tutta la larghezza (col centraggio si stringevano) */
/* 16/10 (Moreno: «il vuoto va riempito con lo sfondo»): l'immagine del gioco a tutto schermo dietro al gioco, sfocata e scurita,
   finché ChatGPT non consegna le versioni 1080×2400 (GRAFICHE.md): allora qui va la grafica nitida */
body.mg-immersive.mg-has-art::before{content:"";position:fixed;inset:-60px;z-index:0;background:var(--mg-art) center/cover no-repeat;filter:blur(22px) brightness(.42) saturate(1.25);pointer-events:none}
body.mg-immersive.mg-has-art{background:#05080f}
body.mg-immersive.mg-has-art .game-shell,body.mg-immersive.mg-has-art #app{background:transparent!important}
body.mg-immersive.mg-has-art .game-shell{position:relative;z-index:1}/* sopra lo sfondo sfocato (con z-index:-1 finiva dietro al fondo del body) */
/* ===== 16/10: SFONDO GENERALE di ChatGPT (palco neon) — iscrizione, attese, classifiche e tutte le schermate dei telefoni senza un gioco; versione TV sullo schermo pubblico ===== */
/* 16/10: strato FISSO grande quanto lo schermo (sui telefoni lo sfondo «fixed» del body viene ignorato e copriva solo l'altezza del contenuto: sotto restava nero) */
body.join-home,body.player-view.mg-immersive:not(.mg-has-art),body.public-screen{background:#05070f!important}
body.join-home::before,body.player-view.mg-immersive:not(.mg-has-art)::before,body.public-screen::before{content:"";display:block!important;position:fixed!important;inset:0!important;z-index:0!important;opacity:1!important;background:url(sfondo-generale.webp) center/cover no-repeat;pointer-events:none}
@media (min-width:601px) and (orientation:landscape){body.public-screen::before{background-image:url(sfondo-generale-tv.webp)}}
body.join-home>main,body.player-view.mg-immersive:not(.mg-has-art)>main,body.public-screen>main{position:relative;z-index:1}/* solo il contenuto principale: timbri e livelli fissi restano com'erano */
/* grafiche a schermo intero consegnate da ChatGPT: nitide (niente sfocatura), solo un filo più scure perché sopra c'è il gioco */
body.mg-immersive.mg-has-art.mg-art-fs::before{inset:0;filter:brightness(.92)}
body.mg-immersive:not(.mg-bleed) #app{min-height:100dvh;box-sizing:border-box}/* anche in iscrizioni/attesa (pagina non a tutto schermo) il contenuto si centra nello schermo */
/* 16/10: grafiche FS dei giochi incastrati — base a tutto schermo + strato nitido che segue il riquadro del gioco (variabili calcolate in play.js, FS_BOARD) */
html.mg-fs-base{background:#05080f var(--mg-art) center/cover no-repeat}
body.mg-immersive.mg-has-art.mg-art-fs.mg-fs-follow::before{right:auto!important;bottom:auto!important;left:var(--fs-bx)!important;top:var(--fs-by)!important;width:var(--fs-bw)!important;height:var(--fs-bh)!important;background-size:100% 100%!important;filter:none}
body.mg-fs-base,html.mg-fs-base body{background:transparent!important}
/* Occhio alla bomba: la griglia a tutta larghezza e senza il proprio disegno (il caveau ora è lo sfondo, allineato sotto) */
body.mg-fs-follow[data-art="bomb-vault"] .bomb-grid-board{width:calc(100% + 20px)!important;max-width:none!important;margin-left:-10px!important;margin-right:-10px!important;background-image:none!important;box-shadow:none!important;border-radius:0!important}
body.mg-immersive:is([data-mg="registration"],[data-mg="lobby"],[data-mg="token"]) #app{justify-content:flex-start!important;min-height:0!important;padding-top:calc(env(safe-area-inset-top) + 12px)!important}/* iscrizioni e attesa: testo e codice in alto, sotto il logo (centrati finivano in fondo al telefono) */
body.mg-fs-follow[data-art="memory-chamber"] .memory-grid{width:calc(100% + 20px)!important;max-width:none!important;margin-left:-10px!important;margin-right:-10px!important;background:none!important;box-shadow:none!important;border-radius:0!important}
/* 16/10 (Moreno): «Non gioco questa manche» centrato in basso, più grande e leggibile */
.sit-bar{left:50%!important;right:auto!important;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom) + 12px)!important;justify-content:center!important;max-width:calc(100% - 24px)}
.sit-bar.ask{padding:4px!important}
.sit-bar button{padding:10px 18px!important;font-size:14px!important}
/* 16/10: Gioco del 15, la cassaforte di ChatGPT a schermo intero allineata sotto la griglia */
body.mg-fs-follow[data-art="puzzle15-vault"] .puzzle15-board.p15-cinematic{transform:none!important;animation:none!important;width:calc(100% + 20px)!important;max-width:none!important;margin-left:-10px!important;margin-right:-10px!important;background:none!important;box-shadow:none!important;border-radius:0!important}
body.mg-fs-follow[data-art="image-puzzle-lab"] .image-puzzle-board.ip-cinematic-board{transform:none!important;animation:none!important;width:calc(100% + 20px)!important;max-width:none!important;margin-left:-10px!important;margin-right:-10px!important;background:none!important;box-shadow:none!important;border-radius:0!important}
body.mg-fs-follow[data-art="number-wheel-machine"] .number-wheel-console.wheel-cinematic{transform:none!important;width:calc(100% + 20px)!important;max-width:none!important;margin-left:-10px!important;margin-right:-10px!important;background:none!important;box-shadow:none!important;border-radius:0!important}
body.mg-fs-follow[data-art="three-cards-table"] .three-card-table.tc-cinematic{transform:none!important;width:calc(100% + 20px)!important;max-width:none!important;margin-left:-10px!important;margin-right:-10px!important;background:none!important;box-shadow:none!important;border-radius:0!important}
/* 16/10: se la grafica allineata non arriva al bordo (es. Tre carte), sopra/sotto solo colore scuro, non una seconda copia spostata */
html.mg-fs-base.mg-fs-follow{background:#05080f var(--mg-art) no-repeat var(--fs-bx) var(--fs-by)/var(--fs-bw) var(--fs-bh)!important}
/* 16/10 (Moreno: «perché lo sfondo grigio chiaro?»): con grafiche chiare (neve dello slalom…) lo sfondo sfocato diventava grigio. Velo blu notte + più scuro: sempre scuro */
body.mg-immersive.mg-has-art:not(.mg-art-fs)::before{background:linear-gradient(#060b1f9e,#060b1f9e),var(--mg-art) center/cover no-repeat;filter:blur(22px) brightness(.5) saturate(1.35)}
/* 16/10 (Moreno: risultati «manca il logo e è tutto in centro»): nelle schermate dei risultati il logo in alto e la classifica subito sotto */
body.player-fullscreen-view.mg-results:not(.public-screen) .game-shell>header{display:block!important;position:relative;z-index:1;margin:calc(env(safe-area-inset-top) + 10px) 0 0;text-align:center}
body.mg-results .game-shell>header .brand-logo.compact{width:min(52vw,230px)}
body.mg-immersive.mg-results #app{justify-content:flex-start!important;min-height:0!important;padding-top:8px!important}
body.mg-fs-follow[data-art="tilt-table-cinematic"] .tilt-arena.tilt-cinematic{background:transparent!important;box-shadow:none!important;border-radius:0!important}
body.mg-results #app>h2,body.mg-results #app>section>h2:first-child{padding-left:52px!important;padding-right:52px!important}/* il titolo non finisce sotto l'icona 👥 */
/* 16/10 (Moreno: Pedone, «le scritte in alto si sovrappongono»): nei giochi a schermo intero la scritta della prova è una piccola etichetta sotto la barra in alto */
body.mg-bleed.practice-round #app::before{position:fixed;z-index:30;top:calc(env(safe-area-inset-top) + 58px);left:50%;transform:translateX(-50%);margin:0;padding:3px 10px;font-size:10px;letter-spacing:.06em;white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px #0008}
body.mg-fs-follow[data-art="breakout-arena"] .breakout-control.breakout-cinematic{background:transparent!important;box-shadow:none!important;border-color:transparent!important;border-radius:0!important}
body.mg-fs-follow[data-art="defense-city-cinematic"] .defense-arena{background:transparent!important;box-shadow:none!important;border-color:transparent!important;border-radius:0!important}
body.mg-fs-follow[data-art="defense-city-cinematic"] .defense-arena.defense-cinematic:before{display:none!important}
/* 16/10: se la grafica allineata non arriva al bordo dello schermo, il suo bordo sfuma nello scuro invece di finire con un taglio netto */
body.mg-immersive.mg-has-art.mg-art-fs.mg-fs-follow::before{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 140px,#000 calc(100% - 140px),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 140px,#000 calc(100% - 140px),transparent 100%)}
html.mg-fs-base.mg-fs-follow{background:radial-gradient(120% 60% at 50% 0,#14204a,#05080f 70%)!important}
body.mg-fs-follow[data-art="frog-city"] .frog-board.frog-cinematic{padding:0!important;border-color:transparent!important;background:transparent!important;box-shadow:none!important;border-radius:0!important}
/* 16/10 (Moreno: «il pulsante SQUADRA sempre in alto a destra, in tutti i giochi e le situazioni»): fissato allo schermo, non al riquadro del gioco (che scende quando sopra c'è il logo) */
body.mg-immersive #app>.player-identity,body.mg-immersive:not(.mg-bleed) #app>.player-identity{position:fixed!important;top:calc(env(safe-area-inset-top) + 8px)!important;right:8px!important;left:auto!important;bottom:auto!important;z-index:60!important}
.rejoin-help .rejoin-qr{display:block;margin:10px 0 4px;padding:10px 16px;border:0;border-radius:10px;background:linear-gradient(135deg,#1f9dff,#7a5cff);color:#fff;font-weight:900;font-size:15px;cursor:pointer}
/* 16/10 (Moreno: «in alcuni giochi esce "Altri giochi" in altri no»): nelle prove è sempre un piccolo pulsante fisso sotto 👥, in tutti i giochi */
body.mg-immersive #app .lab-back{position:fixed!important;top:calc(env(safe-area-inset-top) + 54px)!important;right:8px!important;left:auto!important;bottom:auto!important;transform:none!important;z-index:61!important;margin:0!important;padding:5px 10px!important;border-radius:999px!important;background:#07122de6!important;border:1px solid #48e7ff88!important;color:#dff8ff!important;font-size:11px!important;font-weight:800;text-decoration:none!important;opacity:1!important;display:block!important}
/* 16/10 (Moreno: «tutti i giochi devono essere a pieno schermo»): Gran Premio e TUTTI i giochi singoli (stessa struttura gp-head / gp-hud / gp-stage):
   titolo e contatori compatti in alto, il riquadro di gioco occupa tutto il resto da bordo a bordo, istruzioni tolte (le regole le spiega il conduttore) */
body.mg-immersive:has(#app>.gp-stage) #app{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:4px!important;height:var(--player-height,100dvh)!important;min-height:0!important;max-height:var(--player-height,100dvh)!important;overflow:hidden!important;padding:calc(env(safe-area-inset-top) + 6px) 0 env(safe-area-inset-bottom)!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
body.mg-immersive:has(#app>.gp-stage) .game-shell{padding:0!important;width:100%!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;margin:0 56px 0 10px!important;min-height:40px}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-head h2{margin:0!important;font-size:18px!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-head .timer{margin:0!important;font-size:28px!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-hud{flex:0 0 auto;margin:0 8px!important;gap:6px!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-hud>span{padding:4px 6px!important;font-size:11px!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-stage{flex:1 1 auto!important;min-height:0!important;width:100%!important;max-width:none!important;height:auto!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;aspect-ratio:auto!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-stage>canvas{width:100%!important;height:100%!important;max-height:none!important;border-radius:0!important;aspect-ratio:auto!important;display:block}
body.mg-immersive:has(#app>.gp-stage) #app>p.status{display:none!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-brake{flex:0 0 auto;margin:0 10px 6px!important}
body.mg-immersive:has(#app>.gp-stage) #app>.gp-head{justify-content:flex-start!important;gap:14px!important}
body.mg-immersive:has(#app>.gp-stage) #app .lab-back{top:calc(env(safe-area-inset-top) + 12px)!important;right:58px!important;width:40px;height:40px;padding:0!important;border-radius:50%!important;font-size:0!important;display:flex!important;align-items:center;justify-content:center}body.mg-immersive:has(#app>.gp-stage) #app .lab-back::before{content:'←';font-size:20px;font-weight:900}/* 20/10 (Moreno): copriva il titolo e poi il riquadro VITE: ora è un tasto rotondo con la freccia, accanto a quello delle squadre */
/* 16/10 (Moreno: «Bowling, la pista sembra in salita»): il Bowling tiene le sue proporzioni (la pista si allungava nel riquadro più alto) */
body.mg-immersive[data-mg="bowl"]:not(.bowl-3d):has(#app>.gp-stage) #app{justify-content:center!important}
body.mg-immersive[data-mg="bowl"]:not(.bowl-3d):has(#app>.gp-stage) #app>.gp-stage{flex:0 0 auto!important;aspect-ratio:.607!important;width:min(100%,calc((var(--player-height,100dvh) - 150px)*.607))!important;margin:0 auto!important}
/* 16/10 (Moreno: «due barre grafiche corte laterali in alto»): erano decorazioni del vecchio riquadro, a schermo intero non servono */
body.mg-immersive:has(#app>.gp-stage) #app>.gp-stage::before,body.mg-immersive:has(#app>.gp-stage) #app>.gp-stage::after{display:none!important}
/* 16/10: finale squadra con l'immagine a schermo intero di ChatGPT (riempie il telefono senza tagli) */
.team-champion .finale-bg{background-image:url('finale-team-cinematic-fs.webp')!important}
.grand-finale.team-champion{background-image:linear-gradient(180deg,#02081718 0%,#02081742 28%,#020817b8 48%,#0208178f 82%,#02081738 100%),url('finale-team-cinematic-fs.webp')!important}
/* 16/10: finale giocatore con l'immagine a schermo intero di ChatGPT */
.player-champion .finale-bg{background-image:url('finale-player-cinematic-fs.webp')!important}
.grand-finale.player-champion{background-image:linear-gradient(180deg,#02081718 0%,#02081742 28%,#020817b8 48%,#0208178f 82%,#02081738 100%),url('finale-player-cinematic-fs.webp')!important}
/* 16/10: titolo dei risultati su due righe */
#app h2.res-title{display:flex!important;flex-direction:column;align-items:center;gap:2px;line-height:1.05}
#app h2.res-title .res-word{color:#fff;font-size:.9em;letter-spacing:.14em}
#app h2.res-title .res-game{color:#ffd23f;font-size:1.45em;text-shadow:0 0 14px #ffb30088,0 2px 4px #000}
/* 16/10 (Moreno: «diminuisci l'altezza delle card per scegliere i giochi»): schede chiuse più basse, icona più piccola */
.game-test-card.closed{padding-top:7px!important;padding-bottom:7px!important;min-height:0!important}
.game-test-card.closed h2{font-size:15px!important;line-height:1.15}
.game-test-card.closed h2::after{width:26px!important;height:26px!important;font-size:16px!important;margin-top:-13px!important}
.game-test-card h2 .game-num{display:inline-grid;place-items:center;min-width:26px;height:22px;margin-right:8px;padding:0 5px;border-radius:7px;background:#ffffff1f;border:1px solid currentColor;font-size:12px;font-style:normal;vertical-align:middle}
.game-test-card h2{justify-content:flex-start!important;text-align:left!important}
/* 16/10 (Moreno: Saloon «porte altissime e strette, personaggi nani»): Saloon e Far West disegnano la scena stirata sul riquadro → tengono le proporzioni originali (come il Bowling); attorno resta la grafica nitida */
body.mg-immersive[data-mg="doors"]:has(#app>.gp-stage) #app{justify-content:center!important}
body.mg-immersive[data-mg="doors"]:has(#app>.gp-stage) #app>.gp-stage{flex:0 0 auto!important;aspect-ratio:.607!important;width:min(100%,calc((var(--player-height,100dvh) - 150px)*.607))!important;margin:0 auto!important}
/* 17/10 (Moreno, Le tre carte: «le scritte non sono in alto ma al centro, le mani si vedono poco come se fossero coperte»): titolo e istruzioni in alto, il tavolo nello spazio che resta;
   il tavolo non taglia più le mani che escono dal suo bordo (prima overflow:hidden) */
body.mg-immersive[data-mg="three"] #app{justify-content:flex-start!important}
body.mg-immersive[data-mg="three"] #app>.three-card-table{margin-top:auto!important;margin-bottom:auto!important;overflow:visible!important}
/* 17/10 (Moreno: «così le braccia sembrano arrivare dal nulla»): la manica sfuma nel buio verso l'alto invece di finire con un taglio netto */
body.mg-immersive[data-mg="three"] .three-card-table .hand{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 42%);mask-image:linear-gradient(to bottom,transparent 0%,#000 42%)}
/* 17/10: col croupier dietro il tavolo, il tavolo scende in basso (sotto c'era spazio vuoto) così la sua testa non copre titolo e istruzioni; scritte sempre sopra di lui */
body.mg-immersive[data-mg="three"] #app>.three-card-table.tc-arms{margin-top:auto!important;margin-bottom:5vh!important}
body.mg-immersive[data-mg="three"] #app>h2,body.mg-immersive[data-mg="three"] #app>.three-card-prompt,body.mg-immersive[data-mg="three"] #app>.timer{position:relative;z-index:20}
/* 17/10 (Moreno: «PRONTI 3 è troppo piccolo e non si vede, cambia colore»): conto alla rovescia di 9 in memoria grande, giallo, con alone */
.memory-ready{margin:4px 0 10px;text-align:center;font-weight:900;font-size:34px;line-height:1;/* 17/10: stessa grandezza del conto alla rovescia (34 px) */letter-spacing:.06em;color:#ffe34f;text-shadow:0 0 14px #ffb300cc,0 3px 0 #3a2208,0 0 2px #000}
.memory-ready b{display:inline-block;min-width:1.1em;margin-left:.2em;font-size:34px;line-height:1;vertical-align:0;color:#ffe34f;text-shadow:0 0 18px #ffb300,0 3px 0 #3a2208,0 0 2px #000;animation:memReady 1s ease-out infinite}
@keyframes memReady{0%{transform:scale(1.35)}35%{transform:scale(1)}100%{transform:scale(1)}}
/* 17/10: 9 in memoria con impaginazione fissa: righe di altezza costante, la griglia resta ferma in tutte le fasi */
body[data-mg="memory"] #app{justify-content:flex-start!important}
.mem-layout{display:flex;flex-direction:column;align-items:center;width:100%;padding-top:calc(env(safe-area-inset-top) + 64px)}
.mem-layout>.mem-h2{height:36px;margin:0!important;display:flex;align-items:center;justify-content:center}
.mem-layout>.mem-h3{height:34px;margin:0!important;display:flex;align-items:center;justify-content:center}
.mem-layout>.memory-targets.mem-slot{height:64px;margin:4px 0!important;display:flex;align-items:center;justify-content:center;gap:10px}
.mem-layout>.memory-targets.mem-empty{visibility:hidden}
.mem-layout>.mem-status{height:46px;display:flex;align-items:center;justify-content:center}
.mem-layout>.mem-status>*{margin:0!important}
.mem-layout>.mem-note{min-height:70px;margin-top:8px;text-align:center;width:100%}
.mem-layout>.mem-note>*{margin:4px 0!important}
/* 17/10 (Moreno: «Tessera 1 di 9 troppo piccola, falla gialla»): riga di stato di 9 in memoria più grande e gialla */
.mem-layout>.mem-status .memory-progress{font-size:22px!important;font-weight:900!important;color:#ffe34f!important;text-shadow:0 0 10px #ffb30099,0 2px 0 #3a2208!important;letter-spacing:.03em}
/* 17/10: Le tre carte con impaginazione fissa: spazio scritte/timer e spazio sotto il tavolo di altezza costante */
body.mg-immersive[data-mg="three"] #app>.tc-slot{height:104px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;flex:0 0 auto;position:relative;z-index:20}
body.mg-immersive[data-mg="three"] #app>.tc-slot>*{margin:4px 0!important}
body.mg-immersive[data-mg="three"] #app>.tc-foot{height:40px;flex:0 0 auto;text-align:center}
body.mg-immersive[data-mg="three"] #app>.tc-foot>*{margin:6px 0!important}
/* il tavolo sta sempre alla stessa altezza: non dipende più da cosa compare sotto (avvisi, comandi di prova) */
body.mg-immersive[data-mg="three"] #app>.three-card-table.tc-arms,body.mg-immersive[data-mg="three"] #app>.three-card-table{margin-top:max(20px,calc(var(--player-height,100dvh) - 570px))!important;margin-bottom:0!important}
/* 17/10: RUBA PUNTI · Hockey — presentazione della sfida e passaggio dei punti */
.rh-versus{display:flex;flex-direction:column;align-items:center;gap:6px;margin:10px 0}
.rh-versus em{font-style:normal;font-weight:900;color:#ffe34f;letter-spacing:.12em;text-transform:uppercase;font-size:13px}
.rh-team{display:flex;align-items:center;gap:8px;font-size:18px}.rh-team small{display:block;font-size:12px;color:#b9c6e8;margin-left:4px}
.rh-loot{font-size:22px;text-align:center;margin:8px 0}.rh-loot b{color:#ffe34f}
.rh-score{display:flex;align-items:center;justify-content:center;gap:8px;font-size:17px}.rh-score b{font-size:24px;color:#ffe34f}
.round-results strong.rh-minus{color:#ff6b7f}.round-results strong.rh-plus{color:#4cf29a}
/* Iscrizione squadra · ruota verticale dei 50 simboli. */
.choose-symbol-button{width:100%;margin-top:18px!important;min-height:58px!important;border-color:#ffe06b!important;background:linear-gradient(180deg,#ffe777,#e59b13)!important;color:#10131e!important;font-size:16px!important;font-weight:1000!important;letter-spacing:.045em;box-shadow:0 7px 0 #7a4708,0 0 25px #ffd64a55!important}.captain-symbol-note{margin:12px 0 0;color:#9babc9;font-size:11px;text-align:center}.symbol-picker-open{overflow:hidden}.symbol-picker{position:fixed;z-index:10000;inset:0;background:#03050b;overflow:hidden;isolation:isolate}.symbol-picker::before{content:"";position:absolute;z-index:-2;inset:0;background:url('token-selector-stage-v2.webp?v=1') center/cover no-repeat}.symbol-picker::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,#02040ad9 0,#02040a20 16%,transparent 43%,#02040a2e 70%,#02040af2 100%);pointer-events:none}.symbol-picker-ui{position:relative;width:100%;height:100%;min-height:100svh;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));text-align:center}.symbol-picker-close{position:absolute;z-index:20;top:max(12px,env(safe-area-inset-top));left:12px;width:44px;min-height:44px!important;padding:0!important;border:1px solid #d3aa52!important;border-radius:50%!important;background:#071020d9!important;color:#ffe58a!important;font:900 34px/1 system-ui!important;box-shadow:0 0 18px #000!important}.symbol-picker-head{position:absolute;z-index:10;top:max(15px,env(safe-area-inset-top));left:62px;right:16px;margin:0}.symbol-picker-head span{color:#73eaff;font-size:10px;font-weight:900;letter-spacing:.2em}.symbol-picker-head h1{margin:2px 0;color:#fff;font-size:clamp(21px,6.3vw,34px);font-style:italic;text-shadow:0 2px 2px #000,0 0 18px #1bbcff}.symbol-picker-head p{margin:3px 0;color:#cdd9ee;font-size:11px}.symbol-picker-head b{color:#ffe270}.token-reel.cinematic-reel{position:absolute;top:16.5%;bottom:25%;left:50%;width:min(54vw,430px);height:auto;transform:translateX(-50%);margin:0;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;border:0;border-radius:8px;background:linear-gradient(180deg,#02040df2 0,#0b1838aa 22%,#142b55a8 50%,#0b1838aa 78%,#02040df2 100%);box-shadow:inset 0 45px 40px #000,inset 0 -45px 40px #000,0 0 28px #0008;scrollbar-width:none;touch-action:pan-y}.token-reel::-webkit-scrollbar{display:none}.token-reel.cinematic-reel:before,.token-reel.cinematic-reel:after{content:"";position:sticky;z-index:5;left:0;right:0;display:block;height:3px;pointer-events:none;background:linear-gradient(90deg,transparent,#fff2b0 12%,#ffd24f 50%,#fff2b0 88%,transparent);box-shadow:0 0 16px #ffd23f}.token-reel.cinematic-reel:before{top:calc(50% - 72px)}.token-reel.cinematic-reel:after{bottom:calc(50% - 72px)}.cinematic-reel .reel-space{display:block;height:calc(50% - 72px)}.cinematic-reel .token-reel-item{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;place-items:center;width:100%;height:144px;min-height:144px;margin:0;padding:7px;border:0;border-radius:0;background:transparent!important;color:#fff;scroll-snap-align:center;opacity:.2;filter:saturate(.4) blur(.4px);transition:opacity .18s,transform .18s,filter .18s}.cinematic-reel .token-reel-item .battle-token{grid-row:auto;width:92px;height:92px}.cinematic-reel .token-reel-item strong{text-align:center;font-size:14px;line-height:1;text-transform:uppercase;text-shadow:0 2px 5px #000}.cinematic-reel .token-reel-item small{color:#62e9ff;font-size:8px;letter-spacing:.13em}.cinematic-reel .token-reel-item.selected{opacity:1;filter:none;transform:scale(1.08);text-shadow:0 0 12px #fff}.cinematic-reel .token-reel-item:disabled{opacity:.09;filter:grayscale(1)}.cinematic-reel .token-reel-item:disabled small{color:#ff779d}.symbol-picker .chosen-token{position:absolute;z-index:8;left:10px;right:10px;bottom:18.5%;display:flex;align-items:center;justify-content:center;gap:8px;min-height:36px;margin:0;color:#ffe172;font-size:15px;font-weight:1000;text-transform:uppercase;text-shadow:0 2px 5px #000}.symbol-picker .chosen-token .battle-token{display:none}.symbol-picker-help{position:absolute;left:12px;right:12px;bottom:14.5%;margin:0;color:#a9bddf;font-size:9px;font-weight:850;letter-spacing:.12em}.symbol-picker-confirm{position:absolute;z-index:9;left:50%;bottom:max(4.5%,env(safe-area-inset-bottom));width:min(86vw,420px);min-height:56px!important;transform:translateX(-50%);border:1px solid #fff0a3!important;border-radius:12px!important;background:linear-gradient(180deg,#ffe977,#e79e17)!important;color:#10131e!important;font-size:16px!important;font-weight:1000!important;box-shadow:0 7px 0 #7b480a,0 0 30px #ffd94f77!important}.symbol-picker-confirm:disabled{opacity:.42;filter:grayscale(1)}@media(max-height:680px){.token-reel.cinematic-reel{top:17%;bottom:27%}.symbol-picker .chosen-token{bottom:20.5%}.symbol-picker-help{display:none}.symbol-picker-confirm{bottom:max(3%,env(safe-area-inset-bottom))}}@media(min-width:760px){.symbol-picker::before{background-size:contain}.token-reel.cinematic-reel{width:350px}.symbol-picker-head h1{font-size:32px}}
/* 19/10: il selettore è un rullo cilindrico, non una lista sfocata. La trasformazione viene aggiornata dallo scroll in index.php. */
.token-reel.cinematic-reel{overflow-x:visible;-webkit-overflow-scrolling:touch;background:linear-gradient(180deg,#02040dbd 0,#0b183880 22%,#142b5570 50%,#0b183880 78%,#02040dbd 100%);box-shadow:inset 0 20px 24px #0008,inset 0 -20px 24px #0008,0 0 28px #0008;perspective:560px;perspective-origin:50% 50%}
.cinematic-reel .token-reel-item{--reel-angle:0deg;--reel-depth:0px;--reel-scale:1;position:relative;z-index:1;opacity:1;filter:none;transform:rotateX(var(--reel-angle)) translateZ(var(--reel-depth)) scale(var(--reel-scale));transform-origin:50% 50%;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform;transition:filter .18s,text-shadow .18s}
.cinematic-reel .token-reel-item.selected{opacity:1;filter:none;transform:rotateX(var(--reel-angle)) translateZ(var(--reel-depth)) scale(var(--reel-scale));text-shadow:0 0 14px #fff}
.cinematic-reel .token-reel-item.selected .battle-token{filter:drop-shadow(0 0 13px #fff8)}
.cinematic-reel .token-reel-item:disabled{opacity:1;filter:grayscale(.78)}
.cinematic-reel .token-reel-item:disabled::after{content:"SCELTO";position:absolute;top:50%;left:50%;padding:3px 8px;transform:translate(-50%,-50%) rotate(-8deg);border:1px solid #ff7492;border-radius:4px;background:#400b19e6;color:#ffc0cd;font:900 9px/1 system-ui;letter-spacing:.12em;box-shadow:0 0 9px #000}
.cinematic-reel .token-reel-item:disabled small{color:#ff9caf}.symbol-picker-help{color:#d5e3fa;text-shadow:0 2px 4px #000}

/* 19/10 (Claude, Moreno: «metti anche degli effetti»): frecce che pulsano, simbolo al centro che «scatta», luce che scorre, lampo alla conferma */
.sp-arrow-glow{position:absolute;z-index:6;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(circle,#ffe9a0cc 0,#ffc94a55 35%,transparent 70%);mix-blend-mode:screen;animation:spArrow 1.1s ease-in-out infinite}
@keyframes spArrow{0%,100%{opacity:.35;transform:translate(-50%,-50%) scale(.85)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}}
.cinematic-reel .token-reel-item.selected .battle-token{animation:spGlow 1.6s ease-in-out infinite}
@keyframes spGlow{0%,100%{filter:drop-shadow(0 0 8px #fff6) drop-shadow(0 0 2px #fff)}50%{filter:drop-shadow(0 0 22px #ffe27aee) drop-shadow(0 0 4px #fff)}}
.cinematic-reel .token-reel-item.reel-pop .battle-token{animation:spPop .22s ease-out}
@keyframes spPop{0%{transform:scale(.88)}60%{transform:scale(1.1)}100%{transform:scale(1)}}
.symbol-picker .symbol-picker-ui::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 42%,#fff 0,#ffe27a99 18%,transparent 55%)}
.symbol-picker.sp-confirmed .symbol-picker-ui::after{animation:spFlash .65s ease-out}
.symbol-picker.sp-confirmed .token-reel-item.selected .battle-token{animation:spWin .65s ease-out}
@keyframes spFlash{0%{opacity:0}20%{opacity:.95}100%{opacity:0}}
@keyframes spWin{0%{transform:scale(1)}40%{transform:scale(1.35) rotate(-6deg)}100%{transform:scale(1.15)}}
@media (prefers-reduced-motion:reduce){.sp-arrow-glow,.cinematic-reel .token-reel-item.selected .battle-token{animation:none}}

/* 19/10 (Moreno: «il simbolo quando si ferma non è centrato… tremano e si spostano da soli»): niente scroll-snap (la fermata la fa index.php: reelCentered),
   le linee dorate non occupano spazio nella colonna, e l'ICONA sta esattamente al centro della casella (= all'altezza delle frecce) con il nome sotto */
.token-reel.cinematic-reel{scroll-snap-type:none}
.cinematic-reel .token-reel-item{scroll-snap-align:none;display:block;position:relative}
.token-reel.cinematic-reel:before{margin-bottom:-3px}.token-reel.cinematic-reel:after{margin-top:-3px}
.cinematic-reel .token-reel-item .battle-token{position:absolute;left:50%;top:50%;margin:-46px 0 0 -46px}
.cinematic-reel .token-reel-item strong{position:absolute;left:0;right:0;top:calc(50% + 50px)}
.cinematic-reel .token-reel-item small{position:absolute;left:0;right:0;top:calc(50% + 64px)}
.cinematic-reel .token-reel-item small:empty{display:none}

/* 19/10: copertura col logo mentre Android entra a schermo intero (il telefono per un attimo gira) e avviso se il telefono è davvero in orizzontale */
.fs-cover{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;background:#03050b}.fs-cover.on{display:flex}
.fs-cover img{width:min(60vw,60vh,320px);filter:drop-shadow(0 0 22px #1bbcff88)}
.rotate-hint{display:none}
@media (orientation:landscape) and (max-height:520px) and (pointer:coarse){.rotate-hint{position:fixed;inset:0;z-index:2147482000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#03050bf2;color:#fff;font:900 20px/1.2 system-ui;text-align:center}.rotate-hint b{font-size:54px;animation:rotHint 1.6s ease-in-out infinite}}
@keyframes rotHint{0%,30%{transform:rotate(90deg)}60%,100%{transform:rotate(0)}}

/* 19/10: classifica generale con il logo in alto (sui telefoni l'intestazione col logo è nascosta durante la serata) */
.general-board-logo{display:block;width:min(62vw,320px);max-height:20vh;object-fit:contain;margin:4px auto 6px;filter:drop-shadow(0 0 18px #1bbcff66)}.general-board h2{text-align:center}

/* 19/10: regia, Indovina l'immagine: chi ha già risposto e chi no */
.image-tries{margin:10px 0;padding:10px 12px;border:1px solid #314978;border-radius:10px;background:#090f22cc;text-align:left}
.image-tries-count{font-size:16px;margin-bottom:6px}.image-tries-count b{color:#ffe34f;font-size:20px}.image-tries-count small{color:#9babc9}
.tries-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:6px}.tries-row>small{width:100%;color:#9babc9}
.tries-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 4px;border-radius:99px;background:#16264a;font-size:13px}.tries-chip.tried{background:#3a1220;color:#ffc0cd}.tries-chip b{color:#ff7492}
/* 19/10 (Moreno: «nella Classifica finale e nel Miglior giocatore il logo deve stare in alto e più piccolo per non coprire la grafica») */

.grand-finale>.finale-logo{position:absolute;z-index:6;top:max(10px,env(safe-area-inset-top));left:0;right:0;margin:0 auto;width:min(30vw,150px)!important;height:auto}
.grand-finale{padding-top:calc(clamp(24px,5vw,72px) + 40px)}

/* 19/10: scaletta, gioco già presentato in questo locale */
.venue-done{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:99px;background:#ff9f1c;color:#2a1400;font-size:.72em;font-weight:900;vertical-align:middle}

/* 20/10: pannelli richiudibili nella preparazione della scaletta. */
.host-shell .game-picker-cards{display:block;margin-top:9px;padding:0;border:1px solid #344b78;border-radius:9px;background:#0b1430}.host-shell .game-picker-main-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;cursor:pointer;list-style:none}.host-shell .game-picker-main-title::-webkit-details-marker{display:none}.host-shell .game-picker-main-title>span{display:grid;gap:1px}.host-shell .game-picker-main-title b{color:#f4f7ff;font-family:var(--font-show);font-size:16px;font-style:italic;text-transform:uppercase}.host-shell .game-picker-main-title small{color:#91a4ca;font-size:10px}.host-shell .game-picker-main-title>i{color:#66eaff;font-size:19px;font-style:normal;transition:transform .15s}.host-shell .game-picker-cards[open]>.game-picker-main-title>i{transform:rotate(180deg)}.host-shell .game-picker-catalog{display:grid;gap:7px;padding:0 8px 9px;border-top:1px solid #2b3c68}.host-shell .game-picker-catalog>.game-picker-help{margin:8px 3px 1px}.host-shell details.collapsible-plan-item>summary{cursor:pointer;list-style:none}.host-shell details.collapsible-plan-item>summary::-webkit-details-marker{display:none}.host-shell .plan-collapse-arrow{display:inline-grid;place-items:center;width:24px;height:24px;color:#66eaff;font-size:17px;transition:transform .15s}.host-shell details.collapsible-plan-item[open] .plan-collapse-arrow{transform:rotate(180deg)}.host-shell details.collapsible-plan-item:not([open]){padding-bottom:8px}
.host-shell .phase-time{display:flex;align-items:center;gap:7px;white-space:nowrap}.host-shell .phase-time span{color:#b8c8e9;font-size:11px}.host-shell .phase-time b{padding:4px 7px;border:1px solid #a83d83;border-radius:6px;background:#2b1532;color:#ffe566;font-size:12px}@media(max-width:520px){.host-shell .phase-time{justify-content:space-between}.host-shell .phase-head>div{align-items:center}}
.host-shell .game-picker-grid button.has-preview{grid-template-columns:minmax(0,1fr) 46px;align-items:center;gap:9px}.host-shell .game-picker-copy{display:grid;align-content:center;min-width:0}.host-shell .game-picker-grid button.has-preview>img{display:block;width:46px;height:46px;border:1px solid #5e78ac;border-radius:6px;object-fit:cover;box-shadow:0 3px 9px #0008}.host-shell .game-picker-grid button.has-preview:hover>img{border-color:#70e8fa}

/* 20/10 (Moreno: «non in tutti i giochi, provandoli dalla REGIA, esce in alto ALTRI GIOCHI»): nelle prove il pulsante sta SEMPRE in alto a destra, anche nei giochi che non sono a schermo intero (prima finiva in fondo alla pagina) */
body.player-view #app .lab-back{position:fixed;top:calc(env(safe-area-inset-top) + 54px);right:8px;left:auto;bottom:auto;transform:none;z-index:61;margin:0;padding:5px 10px;border-radius:999px;background:#07122de6;border:1px solid #48e7ff88;color:#dff8ff;font-size:11px;font-weight:800;text-decoration:none;opacity:1;display:block}
/* 21/10 (Moreno: «sul tablet logo, codice partita e apri schermo pubblico tutto sulla stessa riga con il pulsante REGIA per occupare meno spazio»): testata della regia in una riga */
body:has(#hostApp) .shell>header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;min-height:0;margin:0 0 6px;padding:2px 2px}
body:has(#hostApp) .shell>header .host-home-link{position:static;flex:none}
body:has(#hostApp) .shell>header .host-home-link span{display:inline}
body:has(#hostApp) .shell>header .brand-logo.compact{width:auto;height:36px;margin:0;flex:none}
body:has(#hostApp) .shell>header p{margin:0;flex:1 1 auto;text-align:right;font-size:13px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 22/10 (Moreno): «prossimo gioco» in piccolo, in cima alla regia, su una riga */.host-shell .conductor-console>.host-upcoming{order:-1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:6px 12px;margin:0 0 4px;border-width:1px;border-radius:9px;box-shadow:none}.host-shell .conductor-console>.host-upcoming>span{font-size:11px;letter-spacing:.1em;white-space:nowrap}.host-shell .conductor-console>.host-upcoming>div{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.host-shell .conductor-console>.host-upcoming .game-category-mark{transform:scale(.7);transform-origin:left center;margin:-6px -10px -6px 0}.host-shell .conductor-console>.host-upcoming h3{font-size:16px;text-shadow:none}.host-shell .conductor-console>.host-upcoming b,.host-shell .conductor-console>.host-upcoming small,.host-shell .conductor-console>.host-upcoming p{font-size:11px}
/* 22/10 (Moreno: «in REGIA la scritta apri schermo pubblico è blu e non si vede») */.host-shell #gameLabel a{color:#7fe9ff;font-weight:700;text-decoration:underline}
/* 22/10 (Moreno): riepilogo del quiz in regia compatto, su due colonne */.host-shell .pq-two{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:start;max-width:70rem;margin:8px auto}.host-shell .pq-two .personal-quiz-progress{margin:0}.host-shell .pq-two .personal-total{padding:6px 8px;border-radius:10px}.host-shell .pq-two .personal-total strong{font-size:1.45rem}.host-shell .pq-two .personal-total span{font-size:12px}.host-shell .pq-two .personal-team-progress{grid-template-columns:1fr;gap:3px;margin-top:5px}.host-shell .pq-two .personal-team-progress>div{padding:4px 8px;border-radius:8px;font-size:13px}.host-shell .pq-two+.personal-fastest{margin:6px auto 8px;padding:6px 12px}.host-shell .pq-two+.personal-fastest>span{margin-bottom:3px;font-size:11px}.host-shell .pq-two+.personal-fastest p strong{font-size:18px}.host-shell .pq-two+.personal-fastest>div>b{font-size:16px}
/* 22/10 (Moreno): scelta delle scalette a schede, compatta */.host-shell .tpl-picker{min-width:0}.host-shell .tpl-box{border:1px solid #3a4d7a;border-radius:10px;background:#101e3e}.host-shell .tpl-box>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer}.host-shell .tpl-box>summary::-webkit-details-marker{display:none}.host-shell .tpl-label{color:#9fb8e8;font-size:12px;font-weight:800;letter-spacing:.04em;white-space:nowrap}.host-shell .tpl-label small{color:#6f86b8}.host-shell .tpl-box>summary b{flex:1;color:#fff;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.host-shell .tpl-box>summary i{color:#75efff;font-style:normal;transition:transform .2s}.host-shell .tpl-box[open]>summary i{transform:rotate(180deg)}.host-shell .tpl-group{padding:4px 12px 10px}.host-shell .tpl-group h4{margin:6px 0;color:#ffd23f;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.host-shell .tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.host-shell .tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:0;padding:7px 10px;border:1px solid #344f82;border-radius:8px;background:#162a52;color:#e9f1ff;text-align:left;font-weight:700;box-shadow:none}.host-shell .tpl-card strong{font-size:13px;line-height:1.2}.host-shell .tpl-card small{color:#9fb8e8;font-size:11px;font-weight:600}.host-shell .tpl-card em{font-style:normal;color:#0b1734;background:#ffd23f;border-radius:4px;padding:0 4px;font-weight:900;font-size:10px}.host-shell .tpl-card.on{border-color:#5cff9d;background:#164a2e}.host-shell .tpl-empty{padding:8px 12px;color:#9fb8e8}
.host-shell .plan-library .tpl-picker{grid-column:1/-1;order:-1}
/* 22/10 (Moreno: «sul tablet per vedere tutto il telefono devo scorrere»): in verticale da 700 px in su il telefono di anteprima sta a DESTRA dei comandi, intero (fitPhonePreview lo scala all'altezza dello schermo) e fermo mentre si scorre */@media (min-width:700px) and (orientation:portrait){.host-shell .conductor-console{grid-template-columns:minmax(0,1fr) 250px;align-items:start}.host-shell .conductor-console>.host-upcoming,.host-shell .conductor-console .live-overview{grid-column:1/-1}.host-shell .conductor-console .host-player-preview{position:sticky;top:8px;align-self:start}}
/* 22/10 (Moreno: «nella spiegazione vedo fino al numero 4 poi devo scorrere»): passi della Spiegazione in griglia fitta (3 per riga), testo più compatto */body .host-shell .tut-steps{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:4px;margin:6px 0;max-width:none;align-self:stretch;width:100%}body .host-shell .tut-steps button{padding:5px 8px;font-size:12px;line-height:1.2}.host-shell .tut-nav{margin:4px 0}.host-shell .tut-nav button{min-height:0;padding:7px 12px}
/* 22/10 (Moreno: doppio tocco): il pulsante da solo nella cornice la riempie tutta (la cornice preme comunque il suo pulsante, vedi pressCmd) */.host-shell .action-dock{cursor:pointer}.host-shell .action-dock>.current-action:only-child{flex:1 1 100%;min-height:52px;font-size:16px}
