:root{--ink:#15211d;--cream:#f7f1e4;--green:#176b52;--lime:#cce84b;--orange:#ff775c;--blue:#58a8e8;--purple:#8b73de}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:var(--cream);color:var(--ink)}a{color:inherit;text-decoration:none}.nav{height:78px;padding:0 max(5vw,24px);display:flex;align-items:center;justify-content:space-between}.nav nav,.profile{display:flex;align-items:center;gap:24px}.brand{font-weight:900;font-size:1.25rem}.button{border:0;border-radius:14px;background:var(--ink);color:#fff;padding:15px 22px;font-weight:800;display:inline-block;cursor:pointer}.button.small{padding:10px 16px}.button.ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}.hero{min-height:660px;padding:70px max(6vw,30px);display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:5vw}.hero h1{font-size:clamp(3rem,7vw,6.8rem);line-height:.92;letter-spacing:-.07em;margin:18px 0 28px;max-width:900px}.hero p{font-size:1.25rem;line-height:1.6;max-width:670px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-weight:900;font-size:.78rem}.actions{display:flex;gap:12px;margin-top:32px}.hero-card{height:510px;border-radius:44px;background:var(--green) url('/assets/sfondi/verde.png') center/cover;display:flex;justify-content:center;align-items:center;overflow:hidden;box-shadow:0 30px 70px #15211d30}.hero-card img{width:28%;border-radius:10px;box-shadow:0 16px 30px #0005}.hero-card img:nth-child(1){transform:rotate(-13deg) translateY(18px)}.hero-card img:nth-child(2){z-index:2;transform:translateY(-20px)}.hero-card img:nth-child(3){transform:rotate(13deg) translateY(18px)}.section{padding:100px max(6vw,30px)}.section h2{font-size:clamp(2rem,5vw,4.5rem);max-width:800px}.muted{background:#e8dfce}.grid.three{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid article,.panel{background:#fff;border-radius:24px;padding:30px}.grid article b{font-size:2rem}.grid article h3{font-size:1.5rem}footer{padding:30px 6vw}.auth-shell{min-height:100vh;display:grid;place-items:center;background:var(--green) url('/assets/sfondi/verde.png') center/cover}.auth{width:min(480px,92vw);box-shadow:0 30px 80px #0004}.auth h1{font-size:2.6rem;margin-bottom:4px}.auth label{display:grid;gap:8px;font-weight:800;margin:18px 0}.auth input,.auth select{width:100%;padding:14px;border:1px solid #ccd2ce;border-radius:11px;font:inherit}.auth .button{width:100%}.error{background:#ffe0dc;color:#8a2518;padding:12px;border-radius:10px}.profile small,.opponent small{display:block}.link-button{border:0;background:none;text-decoration:underline;cursor:pointer}.dashboard{padding:40px max(6vw,30px)}.welcome{background:var(--ink);color:#fff;padding:50px;border-radius:32px;display:flex;justify-content:space-between;align-items:center}.welcome h1{font-size:clamp(2.2rem,5vw,4.6rem);letter-spacing:-.05em;margin:16px 0}.stat{background:var(--lime);color:var(--ink);border-radius:50%;width:150px;height:150px;display:grid;place-content:center;text-align:center}.stat b{font-size:3rem}.menu-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:20px}.menu-card{min-height:230px;padding:30px;border-radius:28px;transition:.2s transform}.menu-card:hover{transform:translateY(-4px)}.menu-card span{font-size:2.4rem}.menu-card h2{font-size:2rem;margin-bottom:4px}.play{background:var(--lime)}.tournament{background:var(--orange)}.stats{background:var(--blue)}.palmares{background:var(--purple);color:#fff}.dark{background:#112a22;color:white}.game-table{min-height:calc(100vh - 78px);padding:25px;background:#195c46 url('/assets/sfondi/verde.png') center/cover;color:#fff;display:flex;flex-direction:column;align-items:center}.opponent{align-self:flex-start;display:flex;gap:12px;align-items:center}.avatar{display:grid;place-content:center;width:45px;height:45px;border-radius:50%;background:var(--orange);font-weight:900}.hand,.table-cards{display:flex;justify-content:center;gap:10px}.hand img,.table-cards img{width:clamp(70px,9vw,120px);border-radius:7px;box-shadow:0 8px 18px #0005}.bot-hand{margin-top:5px}.bot-hand img{width:70px}.table-cards{flex:1;align-items:center;flex-wrap:wrap;max-width:800px}.player-hand button{border:0;padding:0;background:none;cursor:pointer;transition:.2s transform}.player-hand button:hover{transform:translateY(-14px)}.message{background:#fff;color:var(--ink);padding:10px 18px;border-radius:999px;margin:10px}.hint{font-size:.8rem;opacity:.8}.placeholder{width:min(800px,90vw);margin:80px auto}.placeholder h1{font-size:4rem}
@media(max-width:760px){.nav nav>a:not(.button){display:none}.hero{grid-template-columns:1fr;padding-top:40px}.hero-card{height:340px}.grid.three,.menu-grid{grid-template-columns:1fr}.welcome{padding:28px}.stat{display:none}.profile small{display:none}.hand img,.table-cards img{width:72px}.placeholder h1{font-size:2.7rem}}

/* Tema scuro Cirulla Genova */
:root{--night:#100f0b;--night-2:#191711;--gold:#d8a63c;--gold-soft:#f0d59a;--wood:#2a180e;--panel-dark:rgba(19,18,14,.94);--line:rgba(216,166,60,.28)}
body{background:var(--night);color:#f4ead5}.nav-dark{background:rgba(12,11,8,.94);color:#f4ead5;border-bottom:1px solid var(--line);position:relative;z-index:5}.nav-dark .brand{font-family:Georgia,serif;text-transform:uppercase;letter-spacing:.08em;font-size:1.45rem}.nav-dark .brand span{color:var(--gold);font-size:.78em}.nav-dark nav a:not(.button):hover{color:var(--gold-soft)}
.button-green{background:linear-gradient(135deg,#315e2b,#203f20);color:#fff3d0;border:1px solid #628a50;box-shadow:0 10px 24px #0005}.button-green:hover{filter:brightness(1.08)}.ghost-gold{background:rgba(14,13,10,.5);color:var(--gold-soft);border:1px solid var(--line)}
.landing-dark,.auth-page,.info-page{background:linear-gradient(rgba(8,8,6,.68),rgba(8,8,6,.84)),url('/assets/sfondi/legno.png') center/cover fixed}.hero-dark{min-height:680px}.hero-dark h1,.auth-intro h1,.info-panel h1{font-family:Georgia,serif;letter-spacing:-.035em;color:#f7ecd5}.hero-dark p,.auth-intro p{color:#d7cbb8}.hero-dark .eyebrow,.auth-intro .eyebrow,.info-panel .eyebrow{color:var(--gold);letter-spacing:.17em}.hero-card{background:linear-gradient(rgba(0,0,0,.17),rgba(0,0,0,.4)),url('/assets/sfondi/legno.png') center/cover;border:1px solid var(--line);box-shadow:0 35px 80px #0009,inset 0 0 70px #0008}.hero-card img{border:1px solid #d9c89f;box-shadow:0 18px 35px #000b}
.section-dark{background:rgba(10,9,7,.88);border-top:1px solid var(--line)}.section-dark h2{font-family:Georgia,serif;color:#f7ecd5}.dark-grid article{background:linear-gradient(145deg,rgba(34,31,23,.96),rgba(16,15,11,.98));border:1px solid var(--line);color:#dfd3bd}.dark-grid article b{color:var(--gold)}.dark-grid article h3{color:#fff2d5}
.auth-page{min-height:calc(100vh - 78px);padding:70px max(6vw,30px);display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,620px);gap:5vw;align-items:center}.auth-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,480px);gap:30px;align-items:center}.auth-intro h1{font-size:clamp(3.2rem,6vw,6.7rem);line-height:.9;margin:18px 0}.auth-intro p{font-size:1.2rem;line-height:1.55}.auth-intro .hero-card{height:390px}.auth-dark{width:100%;background:var(--panel-dark);color:#f4ead5;border:1px solid var(--line);box-shadow:0 28px 70px #000a;padding:34px}.auth-dark label{color:#f0d59a}.auth-dark input,.auth-dark select{background:#13120e;color:#f6ead1;border:1px solid rgba(216,166,60,.32);padding:16px}.auth-dark input::placeholder{color:#8e8575}.auth-dark select option{background:#17150f}.auth-link{text-align:center;color:#cfc2ad}.auth-link a,.info-link{color:var(--gold-soft);text-decoration:underline}.info-link{grid-column:2;text-align:center;margin-top:-25px}.error{background:rgba(115,24,19,.35);border:1px solid #b84539;color:#ffb1a7;padding:14px 16px}.dark-footer{background:#0c0b08;color:#978c7c;border-top:1px solid var(--line);text-align:center;padding:28px}
.info-page{min-height:calc(100vh - 78px);padding:80px 24px}.info-panel{max-width:850px;margin:auto;background:var(--panel-dark);border:1px solid var(--line);box-shadow:0 30px 80px #000b;color:#d9cdb8;padding:clamp(28px,5vw,60px)}.info-panel h1{font-size:clamp(3rem,7vw,6rem);margin:18px 0 28px}.info-panel h2{color:var(--gold-soft);font-family:Georgia,serif;margin-top:34px}.info-panel p{font-size:1.08rem;line-height:1.75}.info-panel .button{margin-top:18px}
.login-layout{grid-template-columns:minmax(0,1fr) minmax(340px,520px)}
@media(max-width:1050px){.auth-page{grid-template-columns:1fr}.auth-intro{grid-template-columns:1fr 360px}.info-link{grid-column:1;margin-top:0}.auth-dark{max-width:680px;margin:auto}}
@media(max-width:760px){.nav-dark{height:auto;min-height:72px;padding-top:12px;padding-bottom:12px}.nav-dark nav{gap:10px}.nav-dark nav>a:not(.button){display:none}.auth-page{padding:38px 18px}.auth-intro{grid-template-columns:1fr}.auth-intro .hero-card{height:300px}.auth-intro h1{font-size:3.7rem}.auth-dark{padding:24px}.hero-dark{padding-bottom:55px}.dark-footer{font-size:.85rem}}

/* Dashboard più sobria e configurazione partita */
.compact-welcome{padding:34px 40px;border:1px solid rgba(216,166,60,.14);background:linear-gradient(135deg,#17251f,#101713)}
.compact-welcome h1{font-size:clamp(2rem,3.5vw,3.5rem);margin:10px 0 8px}.compact-welcome p{margin:0;color:#d3d8d5}.compact-stat{width:105px;height:105px;background:#c6d66a}.compact-stat b{font-size:2rem}
.compact-menu{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.compact-menu .menu-card{min-height:118px;padding:22px 24px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:16px;border:1px solid rgba(255,255,255,.1);background:#1b241f;color:#f4ead5;box-shadow:0 8px 20px #0002}.compact-menu .menu-card:hover{transform:translateY(-2px);background:#222d27}.compact-menu .menu-card span{font-size:1.55rem;opacity:.85}.compact-menu .menu-card h2{font-size:1.25rem;margin:0 0 4px}.compact-menu .menu-card p{margin:0;color:#bfc8c2;font-size:.92rem}.compact-menu .menu-card>b{font-size:.86rem;color:var(--gold-soft)}.compact-menu .play{border-left:4px solid #9cad58}.compact-menu .tournament{border-left:4px solid #b66d52}.compact-menu .stats{border-left:4px solid #527fa0}.compact-menu .palmares{border-left:4px solid #7766a5}
.setup-page{min-height:calc(100vh - 78px);display:grid;place-items:center;padding:38px 20px;background:linear-gradient(#0b0c09d9,#0b0c09e8),url('/assets/sfondi/legno.png') center/cover}.setup-panel{width:min(620px,94vw);background:rgba(20,20,16,.96);border:1px solid var(--line);border-radius:26px;padding:36px;box-shadow:0 28px 70px #0009}.setup-panel h1{font-family:Georgia,serif;font-size:clamp(2.4rem,6vw,4rem);margin:8px 0}.setup-panel>p{color:#c9c0b0;line-height:1.55}.setup-form{display:grid;gap:20px;margin-top:26px}.setup-form>label{display:grid;gap:8px;color:var(--gold-soft);font-weight:800}.setup-form select{padding:15px;border-radius:12px;border:1px solid var(--line);background:#12120f;color:#f4ead5;font:inherit}.setup-form fieldset{border:1px solid var(--line);border-radius:14px;padding:16px}.setup-form legend{color:var(--gold-soft);font-weight:800;padding:0 8px}.score-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.score-options label{background:#191a15;border:1px solid #3b3b30;border-radius:10px;padding:13px;text-align:center;cursor:pointer}.setup-form .button{width:100%;font-size:1rem}

/* Tavolo a tre zone */
.game-nav div{text-align:right}.game-nav small{display:block;color:#b8c4bd;margin-top:3px;text-transform:capitalize}.game-layout{--table-bg:url('/assets/sfondi/legno.png');min-height:calc(100vh - 78px);background:linear-gradient(#07100ab3,#07100ab3),var(--table-bg) center/cover;color:#fff;display:grid;grid-template-columns:minmax(250px,1fr) minmax(420px,1.6fr) minmax(250px,1fr);gap:24px;align-items:stretch;padding:28px}.player-zone,.bot-zone{display:flex;flex-direction:column;justify-content:space-between;padding:18px;border-radius:22px;background:rgba(12,17,13,.52);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(3px)}.player-identity{display:flex;gap:12px;align-items:center}.player-identity b{font-size:1.05rem}.player-identity small{display:block;color:#d4ddd7;margin-top:3px}.bot-identity{justify-content:flex-end;text-align:right}.bot-avatar{background:#b0724d}.center-table{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}.table-cards{flex:0 1 auto;min-height:260px;max-width:720px;align-content:center}.game-layout .hand{flex-wrap:wrap}.game-layout .hand img,.game-layout .table-cards img{width:clamp(72px,7vw,112px)}.player-zone .player-hand{justify-content:flex-start;align-items:flex-end}.bot-zone .bot-hand{justify-content:flex-end;align-items:flex-start}.player-hand button:disabled{cursor:not-allowed;opacity:.65}.message{max-width:520px;text-align:center;box-shadow:0 6px 16px #0004}.bot-play-area{min-height:190px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;color:#f1e4cd;text-align:center}.flip-card{width:96px;height:145px;perspective:900px}.flip-inner{position:relative;width:100%;height:100%;transition:transform .72s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}.flip-card.revealed .flip-inner{transform:rotateY(180deg)}.flip-back,.flip-front{position:absolute;inset:0;border-radius:8px;backface-visibility:hidden;background-size:cover;background-position:center;box-shadow:0 12px 25px #0008}.flip-back{background-image:var(--card-back)}.flip-front{transform:rotateY(180deg);background-color:#fff}.waiting{animation:bot-hover 1s ease-in-out infinite alternate}@keyframes bot-hover{to{transform:translateY(-8px)}}
@media(max-width:980px){.game-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.player-zone,.bot-zone{min-height:170px}.bot-zone{grid-row:1}.center-table{grid-row:2}.player-zone{grid-row:3}.bot-identity{justify-content:flex-start;text-align:left}.bot-zone .bot-hand,.player-zone .player-hand{justify-content:center}.bot-play-area{position:fixed;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:10;min-height:0}.compact-menu{grid-template-columns:1fr}}
@media(max-width:620px){.compact-menu .menu-card{grid-template-columns:34px 1fr}.compact-menu .menu-card>b{display:none}.compact-welcome{padding:26px}.game-layout{padding:12px;gap:10px}.game-layout .hand img,.game-layout .table-cards img{width:68px}.setup-panel{padding:25px}.score-options{grid-template-columns:1fr}}

/* V4: anteprime, pannelli scuri e tavolo più leggibile */
.placeholder-page{min-height:calc(100vh - 78px);display:grid;place-items:center;padding:40px 20px;background:linear-gradient(#090a08d9,#090a08e8),url('/assets/sfondi/legno.png') center/cover}.dark-placeholder{width:min(920px,92vw);margin:0;background:rgba(18,18,14,.96);color:#f3ead7;border:1px solid rgba(214,164,58,.28);border-radius:28px;padding:clamp(34px,6vw,72px);box-shadow:0 28px 70px #0009}.dark-placeholder h1{font-family:Georgia,serif;font-size:clamp(3rem,8vw,6rem);color:#f3ead7;margin:34px 0}.dark-placeholder p{font-size:1.15rem;line-height:1.6;color:#cfc4b1;max-width:760px}.dark-placeholder .eyebrow{color:#e7bd69}
.setup-page{background:linear-gradient(#080a08c7,#080a08d8),var(--setup-bg) center/cover;transition:background-image .35s ease}.setup-panel{background:rgba(18,18,14,.94);backdrop-filter:blur(8px)}.setup-choice{display:grid;gap:12px}.setup-form select{width:100%;font-weight:800}.deck-preview{height:145px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:16px;background:rgba(5,6,5,.55);border:1px solid rgba(214,164,58,.2)}.deck-preview img{height:112px;border-radius:6px;box-shadow:0 8px 18px #0008;margin-left:-18px;transition:.25s transform}.deck-preview img:first-child{margin-left:0;transform:rotate(-8deg)}.deck-preview img:nth-child(2){transform:rotate(-3deg) translateY(-5px)}.deck-preview img:nth-child(3){transform:rotate(3deg) translateY(-5px)}.deck-preview img:nth-child(4){transform:rotate(8deg)}.background-preview{height:150px;border-radius:16px;background-position:center;background-size:cover;border:1px solid rgba(214,164,58,.25);box-shadow:inset 0 0 0 999px rgba(0,0,0,.12),0 10px 26px #0007;transition:background-image .25s ease}
.game-layout{background:linear-gradient(rgba(8,18,15,.35),rgba(8,18,15,.42)),var(--table-bg) center/cover;grid-template-columns:minmax(230px,.85fr) minmax(430px,1.7fr) minmax(230px,.85fr)}.player-zone,.bot-zone{background:rgba(9,17,15,.42);border-color:rgba(255,255,255,.16);backdrop-filter:blur(2px)}.center-table{position:relative}.table-cards{min-height:290px}.message{background:rgba(249,246,238,.94)}.hint{display:none}.captured-pile{position:relative;width:100px;height:140px;margin:20px auto;opacity:.92}.captured-pile img{position:absolute;width:76px;height:auto;left:12px;bottom:8px;border-radius:6px;box-shadow:0 4px 10px #0007;transform:translate(calc(var(--pile-index) * 2px),calc(var(--pile-index) * -3px)) rotate(calc((var(--pile-index) - 3) * .7deg))}.captured-pile span{position:absolute;right:0;bottom:0;z-index:12;width:34px;height:34px;border-radius:50%;display:grid;place-content:center;background:#e4bd65;color:#17130b;font-weight:900;box-shadow:0 4px 10px #0007}.player-zone .player-hand{margin-top:auto}.bot-zone .bot-hand{margin-bottom:auto}.bot-play-area{min-height:36px;font-size:.9rem;color:#f4ead5}
.bot-moving-card{position:fixed;left:0;top:0;z-index:1000;transform:translate(var(--start-x),var(--start-y));perspective:1000px;pointer-events:none;transition:transform 1.15s cubic-bezier(.18,.72,.25,1)}.bot-moving-card.moving{transform:translate(var(--end-x),var(--end-y)) rotate(-5deg) scale(1.06)}.moving-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s ease}.bot-moving-card.revealed .moving-inner{transform:rotateY(180deg)}.moving-back,.moving-front{position:absolute;inset:0;border-radius:7px;background-position:center;background-size:cover;backface-visibility:hidden;box-shadow:0 15px 30px #000a}.moving-back{background-image:var(--card-back)}.moving-front{transform:rotateY(180deg);background-color:#fff}
@media(max-width:980px){.captured-pile{height:95px;margin:8px auto}.captured-pile img{width:58px}.game-layout{grid-template-columns:1fr}.bot-play-area{position:static;transform:none}.deck-preview{height:125px}.deck-preview img{height:96px}}

/* V5: configurazione orizzontale, logout, sorteggio e distribuzione */
.link-button,.logout-button{border:1px solid rgba(240,213,154,.42);background:rgba(255,255,255,.04);color:#f0d59a;border-radius:10px;padding:9px 14px;font:inherit;font-weight:800;cursor:pointer;text-decoration:none}.link-button:hover,.logout-button:hover{background:rgba(216,166,60,.14)}
.nav-actions{display:flex;align-items:center;gap:18px}.nav-actions form,.game-nav form{margin:0}.game-nav{display:grid;grid-template-columns:1fr auto 1fr}.game-nav>a{justify-self:start}.game-nav-center{justify-self:center;text-align:center!important}.game-nav form{justify-self:end}
.setup-page-wide{height:calc(100vh - 78px);min-height:0;padding:24px;overflow:hidden}.setup-panel-wide{width:min(1180px,96vw);padding:28px 32px}.setup-heading{display:grid;grid-template-columns:auto 1fr;column-gap:22px;align-items:end}.setup-heading .eyebrow{grid-column:1/-1}.setup-heading h1{font-size:clamp(2.4rem,4vw,4.5rem);margin:4px 0}.setup-heading p{margin:0 0 10px;color:#c9c0b0}.setup-form-wide{grid-template-columns:1fr 1fr minmax(270px,.72fr);grid-template-rows:auto auto;align-items:stretch;gap:18px;margin-top:20px}.setup-form-wide .setup-choice{min-width:0}.setup-form-wide .deck-preview,.setup-form-wide .background-preview{height:200px}.setup-form-wide .score-field{grid-column:3;grid-row:1;display:flex;flex-direction:column;justify-content:center;margin:0}.setup-submit{grid-column:3;grid-row:2;align-self:end;height:58px}.setup-form-wide:not(:has(.score-field)) .setup-submit{grid-column:1/-1}
.score-options label{padding:0;overflow:hidden;border:2px solid transparent;background:#181a16}.score-options input{position:absolute;opacity:0;pointer-events:none}.score-options span{display:block;padding:18px 10px;font-size:1.35rem;font-weight:900;color:#d5cdbd;transition:.18s}.score-options label:has(input:checked){border-color:#e8bd57;background:linear-gradient(135deg,#806119,#3d3113);box-shadow:0 0 0 3px rgba(232,189,87,.15),0 10px 25px #0006}.score-options label:has(input:checked) span{color:#fff4cf;transform:scale(1.08)}
.game-layout[data-phase="dealing"] .player-hand,.game-layout[data-phase="dealing"] .bot-hand,.game-layout[data-phase="dealing"] .table-cards,.game-layout[data-phase="dealing"] .message{visibility:hidden}.deal-deck{position:absolute;z-index:8;display:none}.game-layout[data-phase="dealing"] .deal-deck{display:block}.deal-deck img{width:78px;border-radius:7px;box-shadow:0 12px 24px #0009}.dealer-overlay{position:fixed;inset:78px 0 0;z-index:1500;display:grid;place-items:center;background:rgba(5,7,5,.62);opacity:0;visibility:hidden;transition:.25s}.dealer-overlay.show{opacity:1;visibility:visible}.dealer-card{padding:26px 40px;border:1px solid rgba(232,189,87,.45);border-radius:20px;background:rgba(17,17,13,.96);box-shadow:0 25px 70px #000b;text-align:center}.dealer-card span{display:block;color:#d2c5ae;margin-bottom:10px}.dealer-card strong{display:block;color:#f1cf78;font-family:Georgia,serif;font-size:clamp(1.8rem,4vw,3.3rem)}
.dealt-card{position:fixed;z-index:1400;width:78px;height:118px;perspective:900px;pointer-events:none;transition:transform .58s cubic-bezier(.2,.72,.25,1)}.dealt-card.go{transform:translate(var(--dx),var(--dy)) rotate(5deg)}.deal-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .25s}.dealt-card.face-up .deal-inner{transform:rotateY(180deg)}.deal-back,.deal-front{position:absolute;inset:0;border-radius:7px;background-position:center;background-size:cover;backface-visibility:hidden;box-shadow:0 10px 22px #000a}.deal-back{background-image:var(--card-back)}.deal-front{transform:rotateY(180deg);background-color:#fff}
.bot-moving-card{transition:transform .8s cubic-bezier(.16,.75,.25,1)}.bot-moving-card.moving{transform:translate(var(--end-x),var(--end-y)) rotate(-7deg) scale(1.07)}
@media(max-width:980px){.setup-page-wide{height:auto;min-height:calc(100vh - 78px);overflow:auto}.setup-form-wide{grid-template-columns:1fr}.setup-form-wide .score-field,.setup-submit{grid-column:1;grid-row:auto}.setup-heading{display:block}.game-nav{grid-template-columns:1fr auto}.game-nav-center{display:none}.game-nav form{grid-column:2}}

/* V6: sorteggio interattivo e carte sempre opache */
.setup-submit{font-size:1.05rem;line-height:1.15;padding:10px 18px;white-space:normal;display:grid;place-items:center;text-align:center}
.draw-overlay{position:fixed;inset:78px 0 0;z-index:1600;display:grid;place-items:center;padding:24px;background:rgba(4,8,7,.76);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:.25s}.draw-overlay.show{opacity:1;visibility:visible}.draw-panel{width:min(1080px,94vw);padding:34px;border-radius:26px;background:rgba(17,17,13,.98);border:1px solid rgba(232,189,87,.38);box-shadow:0 30px 90px #000c;text-align:center;color:#f4ead6}.draw-panel h1{font-family:Georgia,serif;font-size:clamp(2.4rem,5vw,4.7rem);margin:8px 0 10px}.draw-panel p{color:#cfc3ae;margin:0 auto 26px}.draw-cards{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.draw-choice{width:92px;height:140px;border:0;padding:0;background:transparent;perspective:1000px;cursor:pointer;transition:transform .2s,filter .2s}.draw-choice:hover{transform:translateY(-10px)}.draw-overlay.busy .draw-choice:not(.selected):not(.bot-selected){filter:brightness(.55);pointer-events:none}.draw-card-inner{display:block;position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .62s cubic-bezier(.2,.72,.25,1)}.draw-choice.revealed .draw-card-inner{transform:rotateY(180deg)}.draw-card-back,.draw-card-front{position:absolute;inset:0;border-radius:8px;background-position:center;background-size:cover;backface-visibility:hidden;box-shadow:0 14px 28px #000b;opacity:1}.draw-card-back{background-image:var(--card-back)}.draw-card-front{transform:rotateY(180deg);background-color:#fff}.draw-choice.selected{filter:drop-shadow(0 0 13px #e7bd58)}.draw-choice.bot-selected{filter:drop-shadow(0 0 13px #c77b4a)}.draw-result{min-height:70px;margin-top:22px;opacity:0;transform:translateY(8px);transition:.3s}.draw-result.show{opacity:1;transform:none}.draw-result strong,.draw-result span{display:block}.draw-result strong{font-size:1.35rem;color:#f1cf78}.draw-result span{margin-top:7px;color:#cfc3ae}
.game-layout[data-phase="drawing"] .player-hand,.game-layout[data-phase="drawing"] .bot-hand,.game-layout[data-phase="drawing"] .table-cards,.game-layout[data-phase="drawing"] .message,.game-layout[data-phase="drawing"] .deal-deck{visibility:hidden}
.dealt-card,.bot-moving-card,.deal-inner,.moving-inner,.deal-back,.deal-front,.moving-back,.moving-front{opacity:1!important}.dealt-card{background:transparent}.deal-inner{transition:transform .36s ease}.dealt-card.face-up .deal-inner{transform:rotateY(180deg)}.deal-back,.deal-front,.moving-back,.moving-front{background-repeat:no-repeat;background-position:center;background-size:100% 100%}.bot-moving-card{opacity:1!important}.bot-moving-card.moving{transform:translate(var(--end-x),var(--end-y)) rotate(-5deg) scale(1.04)}.moving-inner{transition:transform .42s ease}.bot-moving-card.revealed .moving-inner{transform:rotateY(180deg)}
@media(max-width:900px){.draw-choice{width:70px;height:107px}.draw-panel{padding:24px}.draw-cards{gap:9px}}
/* V7: sorteggio essenziale e dorsi espliciti nelle animazioni */
.draw-panel > p{display:none}
.draw-result{min-height:54px;margin-top:26px}
.draw-result span{display:none!important}
.deal-back,.moving-back{background-color:#fff;opacity:1!important}
.dealt-card,.bot-moving-card{filter:none!important;mix-blend-mode:normal!important}

/* V8: distribuzione continua e dimensioni uniformi */
.game-layout{--game-card-width:clamp(86px,6.2vw,108px)}
.game-layout .hand img,
.game-layout .table-cards img,
.game-layout .deal-deck img{width:var(--game-card-width)!important;height:auto;aspect-ratio:2/3;object-fit:cover}
.game-layout .bot-hand img{width:var(--game-card-width)!important}
.deal-deck{left:50%;bottom:7%;top:auto;transform:translateX(-50%);z-index:20}
.game-layout[data-phase="dealing"] .player-hand,
.game-layout[data-phase="dealing"] .bot-hand,
.game-layout[data-phase="dealing"] .table-cards{visibility:visible!important}
.game-layout[data-phase="dealing"] .message{visibility:hidden}
.game-layout[data-phase="dealing"] .hand img,
.game-layout[data-phase="dealing"] .table-cards img{opacity:0!important;visibility:visible!important}
.game-layout[data-phase="dealing"] .hand img.dealt-visible,
.game-layout[data-phase="dealing"] .table-cards img.dealt-visible{opacity:1!important}
.awaiting-deal{transition:none!important}
.dealt-visible{transition:none!important}
.dealt-card{z-index:1400;perspective:1000px;transition:transform .62s cubic-bezier(.18,.72,.22,1);will-change:transform}
.dealt-card.go{transform:translate(var(--dx),var(--dy)) rotate(3deg)}
.deal-inner{width:100%;height:100%;transition:transform .42s cubic-bezier(.2,.7,.2,1)}
.deal-back,.deal-front{width:100%;height:100%;background-size:100% 100%;background-color:#fff}
@media(max-width:980px){.game-layout{--game-card-width:76px}.deal-deck{bottom:3%}}

/* V10: indicatore del turno, scope e ridistribuzioni */
.player-zone,.bot-zone{position:relative;transition:border-color .28s ease,box-shadow .28s ease,background .28s ease,filter .28s ease}
.player-zone.active-turn,.bot-zone.active-turn{border-color:rgba(241,207,120,.88);background:rgba(20,31,24,.64);box-shadow:0 0 0 2px rgba(241,207,120,.15),0 0 34px rgba(236,190,74,.34),inset 0 0 34px rgba(236,190,74,.09)}
.player-zone.active-turn::after,.bot-zone.active-turn::after{content:"";position:absolute;inset:-1px;border-radius:22px;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,238,177,.28);animation:turn-glow 1.45s ease-in-out infinite alternate}
@keyframes turn-glow{from{opacity:.45}to{opacity:1}}
.game-layout[data-phase="playing"] .player-zone:not(.active-turn),.game-layout[data-phase="playing"] .bot-zone:not(.active-turn){filter:saturate(.82) brightness(.88)}

.take-area{position:relative;display:flex;justify-content:center;align-items:center;min-height:165px;margin:8px 0 14px}.captured-pile{margin:0;z-index:3}.captured-pile .pile-count{right:-2px;bottom:-2px}.scope-marker{position:relative;width:76px;height:116px;margin-left:-36px;transform:translateY(13px) rotate(7deg);z-index:2}.scope-marker img,.scope-placeholder{width:76px;height:114px;border-radius:7px;object-fit:cover;box-shadow:0 8px 18px #0009;background:#f8f3e7}.scope-marker span{position:absolute;right:-8px;bottom:-8px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#f1cf78;color:#17130b;font-weight:950;box-shadow:0 4px 12px #0009;border:2px solid rgba(255,247,217,.8);z-index:5}.scope-placeholder{display:grid;place-items:center;color:#9a6b16;font-size:2rem}.bot-take-area{flex-direction:row-reverse}.bot-scope-marker{margin-left:0;margin-right:-36px;transform:translateY(13px) rotate(-7deg)}

.game-layout[data-phase="dealing"][data-deal-kind="subsequent"] .table-cards img{opacity:1!important;visibility:visible!important}
.game-layout[data-phase="dealing"][data-deal-kind="initial"] .table-cards img{opacity:0!important}
.game-layout[data-phase="dealing"][data-deal-kind="initial"] .table-cards img.dealt-visible{opacity:1!important}
.game-layout[data-phase="deal-ended"] .player-zone,.game-layout[data-phase="deal-ended"] .bot-zone{filter:none}

@media(max-width:980px){.take-area{min-height:100px}.scope-marker{width:58px;height:88px;margin-left:-27px}.scope-marker img,.scope-placeholder{width:58px;height:87px}.bot-scope-marker{margin-left:0;margin-right:-27px}}

/* V11: scope/buone più leggibili e riepilogo dinamico di fine smazzata */
.scope-marker span{right:-13px;bottom:-13px;width:40px;height:40px;font-size:1.05rem;background:#ffd86e;color:#111;font-weight:1000;border:3px solid #fff3c2;box-shadow:0 0 0 3px rgba(17,13,7,.72),0 6px 16px #000c;z-index:20}
.captured-pile .pile-count{background:#f2c861;border:2px solid rgba(255,247,217,.9);font-size:.95rem;box-shadow:0 0 0 2px rgba(10,10,8,.65),0 5px 14px #000b}

.round-summary-overlay{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 50% 35%,rgba(18,63,49,.62),rgba(2,8,7,.88) 65%);backdrop-filter:blur(8px);animation:summary-fade .32s ease both}
.round-summary{position:relative;z-index:2;width:min(860px,94vw);max-height:92vh;overflow:auto;padding:28px 30px 26px;border-radius:28px;border:1px solid rgba(242,202,99,.42);background:linear-gradient(145deg,rgba(17,24,20,.98),rgba(8,14,12,.98));box-shadow:0 30px 90px #000c,0 0 55px rgba(229,185,75,.12);color:#f7f0df}
.round-summary.winner{border-color:rgba(255,218,107,.86);box-shadow:0 30px 100px #000c,0 0 80px rgba(255,205,74,.28)}
.summary-kicker{text-transform:uppercase;letter-spacing:.17em;color:#efc85e;font-weight:950;font-size:.78rem}
.round-summary h2{margin:5px 0 2px;font-family:Georgia,serif;font-size:clamp(2rem,4vw,3.4rem);line-height:1;color:#fff7df}
.summary-subtitle{margin:8px 0 20px;color:#c9d3cd}
.summary-scoreboard{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;margin:8px 0 22px}
.summary-player{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:14px 18px;border-radius:18px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09)}
.summary-player span{font-weight:900;font-size:1.05rem}.summary-player strong{grid-row:1/3;grid-column:2;font-size:2.4rem;color:#f0c85f}.summary-player small{color:#9fb0a8}.summary-player.round-leader{background:linear-gradient(135deg,rgba(63,112,66,.28),rgba(240,194,75,.10));border-color:rgba(240,200,92,.34)}
.summary-vs{font-weight:1000;color:#887d6d;font-size:.8rem}
.summary-grid{border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}
.summary-row{display:grid;grid-template-columns:42px 1.2fr .9fr .9fr;align-items:center;gap:8px;min-height:54px;padding:8px 15px;background:rgba(255,255,255,.035);border-bottom:1px solid rgba(255,255,255,.06)}
.summary-row:last-child{border-bottom:0}.summary-row:nth-child(even){background:rgba(255,255,255,.055)}.summary-row b{font-size:.98rem}.summary-row>span:nth-last-child(-n+2){text-align:right;font-weight:850;color:#ecf1ee}.summary-row em{display:inline-grid;place-items:center;min-width:28px;height:28px;margin-left:6px;padding:0 6px;border-radius:999px;background:#315f42;color:#dffff0;font-style:normal;font-size:.78rem}.scope-summary em{background:#8b681f;color:#fff0b8}
.summary-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-weight:1000;background:#24342c}.denari-icon{color:#ff6570;background:#401e22}.seven-icon{color:#ffe181;background:#534817}.primiera-icon{color:#d0b8ff;background:#372856}.scope-icon{color:#ffdc72;background:#5b4616}
.match-progress{display:grid;grid-template-columns:auto 1fr auto;gap:12px 16px;align-items:center;margin:20px 0 4px;padding:14px 16px;border-radius:18px;background:#0b1210;border:1px solid rgba(255,255,255,.07)}
.match-progress>div:not(.progress-track){display:flex;gap:8px;align-items:center}.match-progress>div:nth-child(3){justify-content:flex-end}.match-progress strong{font-size:1.45rem;color:#ffd866}.match-progress span{font-weight:800;color:#dfe8e3}.match-progress small{grid-column:1/-1;text-align:center;color:#8da097}
.progress-track{height:12px;border-radius:999px;background:linear-gradient(90deg,#25372e 0 50%,#342b2b 50%);overflow:hidden;position:relative}.progress-track::before,.progress-track::after{content:"";position:absolute;top:0;bottom:0}.progress-track::before{left:50%;width:calc(var(--player-progress) / 2);transform:translateX(-100%);background:#49a66d}.progress-track::after{left:50%;width:calc(var(--bot-progress) / 2);background:#b96759}.progress-track i{display:none}
.summary-actions{display:flex;justify-content:center;margin-top:18px}.summary-actions form{margin:0;width:min(420px,100%)}.summary-button{width:100%;border:1px solid #5f9e69;border-radius:14px;padding:14px 18px;background:linear-gradient(135deg,#275f34,#184525);color:#fff7df;font-weight:950;font-size:1rem;cursor:pointer;box-shadow:0 8px 22px #0007;transition:.2s transform,.2s filter}.summary-button:hover{transform:translateY(-2px);filter:brightness(1.12)}.victory-button{border-color:#d5aa3b;background:linear-gradient(135deg,#866411,#b88917);color:#fff8d9}
.confetti-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:1}.confetti-piece{position:absolute;top:-8vh;width:10px;height:18px;border-radius:2px;opacity:.9;animation:confetti-fall var(--duration) linear var(--delay) infinite;transform:rotate(var(--rotation))}.confetti-piece:nth-child(4n+1){background:#f1c94f}.confetti-piece:nth-child(4n+2){background:#54c679}.confetti-piece:nth-child(4n+3){background:#e75f62}.confetti-piece:nth-child(4n){background:#79aef6}
@keyframes summary-fade{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}
@keyframes confetti-fall{0%{transform:translate3d(0,-10vh,0) rotate(0)}100%{transform:translate3d(var(--drift),110vh,0) rotate(720deg)}}
@media(max-width:700px){.round-summary{padding:22px 16px}.summary-row{grid-template-columns:34px 1fr .7fr .7fr;padding:7px 9px}.summary-player{padding:12px}.summary-player strong{font-size:2rem}.summary-scoreboard{gap:8px}.match-progress{grid-template-columns:1fr}.progress-track{grid-row:2}.match-progress>div:nth-child(3){justify-content:flex-start}.match-progress small{grid-column:1}}

/* V12: accuse scoperte, contatori più leggibili e dettagli del riepilogo */
.accusation-badge{position:absolute;left:50%;transform:translateX(-50%);bottom:174px;z-index:12;display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:999px;background:linear-gradient(135deg,#7a5912,#b98718);border:1px solid #f5d977;color:#fff7dc;box-shadow:0 8px 22px #0009,0 0 22px rgba(243,204,92,.2);white-space:nowrap}
.accusation-badge strong{font-size:.86rem}.accusation-badge small{font-size:.68rem;color:#fff0bd}.bot-accusation{bottom:auto;top:78px}
.declared-hand{filter:drop-shadow(0 0 12px rgba(244,204,92,.23))}.bot-hand.declared-hand img{box-shadow:0 7px 16px #0009,0 0 0 2px rgba(244,204,92,.45)}
.bot-scope-marker span{right:-20px!important;bottom:-16px!important;z-index:40!important;transform:translateX(4px);font-size:1.15rem!important;min-width:42px!important;width:42px!important;height:42px!important;background:#ffe075!important;border-color:#fff7cf!important;box-shadow:0 0 0 4px rgba(3,8,7,.92),0 7px 19px #000f!important}
.summary-row-with-cards{min-height:82px}.summary-row-with-cards>span:nth-last-child(-n+2){display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:5px;min-width:0}.summary-value{display:flex;align-items:center;justify-content:flex-end;font-weight:900}.summary-mini-cards{display:flex;justify-content:flex-end;min-height:34px;padding-right:2px}.summary-mini-cards img{width:24px;height:36px;object-fit:cover;border-radius:3px;margin-left:-7px;box-shadow:0 3px 7px #000a;border:1px solid rgba(255,255,255,.28);background:#fff}.summary-mini-cards img:first-child{margin-left:0}.primiera-mini img{width:27px;height:40px}
.initial-award-note{color:#ffe28a}
@media(max-width:980px){.accusation-badge{bottom:120px}.bot-accusation{top:66px}.summary-mini-cards img{width:20px;height:30px}.primiera-mini img{width:22px;height:33px}.bot-scope-marker span{right:-14px!important}}


/* V13: scope bot leggibile, hover carte riepilogo, Piccola/Grande e conferma abbandono */
.bot-scope-marker span{
  right:auto!important;
  left:-34px!important;
  top:-18px!important;
  bottom:auto!important;
  transform:none!important;
  z-index:90!important;
  min-width:46px!important;width:46px!important;height:46px!important;
  font-size:1.28rem!important;
  background:#ffd65a!important;color:#151006!important;
  border:4px solid #fff2b7!important;
  box-shadow:0 0 0 5px rgba(5,9,8,.95),0 8px 22px rgba(0,0,0,.92)!important;
}
.summary-mini-cards{overflow:visible;position:relative}
.summary-mini-cards img{position:relative;transform-origin:center bottom;transition:transform .16s ease,box-shadow .16s ease,z-index 0s .16s;cursor:zoom-in}
.summary-mini-cards img:hover{transform:translateY(-12px) scale(2.15);z-index:120;box-shadow:0 12px 30px #000e;transition-delay:0s}
.summary-mini-cards img:hover+img{margin-left:2px}
.special-mini img{width:27px;height:40px}
.piccola-icon,.grande-icon{font-size:.62rem!important;letter-spacing:-.03em;font-weight:1000}
.summary-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px;justify-items:stretch}
.summary-actions form{width:100%;max-width:none}.summary-actions .summary-button{height:100%}
.danger-button{border-color:#b94a45!important;background:linear-gradient(135deg,#852e2a,#5e1f1c)!important;color:#fff!important}
.danger-button:hover{filter:brightness(1.18)}
.confirm-abandon{position:absolute;inset:0;z-index:30;display:none;place-items:center;padding:24px;background:rgba(2,8,7,.78);backdrop-filter:blur(8px);border-radius:28px}
.confirm-abandon.show{display:grid;animation:summary-fade .18s ease both}
.confirm-card{width:min(520px,92%);padding:28px;border-radius:22px;border:1px solid rgba(216,86,76,.55);background:linear-gradient(145deg,#171d19,#0b100e);box-shadow:0 24px 70px #000d;text-align:center}
.confirm-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 12px;border-radius:50%;background:#8f332e;color:#fff;font-size:1.6rem;font-weight:1000;border:2px solid #df776f}
.confirm-card h3{margin:0 0 8px;font-size:1.6rem;color:#fff4e8}.confirm-card p{margin:0;color:#cbd2cd;line-height:1.5}.confirm-card strong{color:#ff9a90}
.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.confirm-actions form{margin:0}
.confirm-cancel,.confirm-danger{width:100%;min-height:48px;border-radius:13px;border:1px solid #46534b;font-weight:900;cursor:pointer}
.confirm-cancel{background:#1a241f;color:#f5f0e4}.confirm-danger{background:#8b302b;color:#fff;border-color:#c55750}
.round-summary{width:min(1040px,96vw);max-height:96vh;padding:20px 26px 20px}.round-summary h2{font-size:clamp(1.9rem,3.2vw,3rem)}
.summary-row{padding-top:7px!important;padding-bottom:7px!important}.summary-row-with-cards{min-height:68px!important}
@media(max-width:980px){.bot-scope-marker span{left:-24px!important;top:-15px!important;width:40px!important;height:40px!important;min-width:40px!important;font-size:1.05rem!important}.summary-actions,.confirm-actions{grid-template-columns:1fr}}

/* V14: scelta manuale delle prese e messaggio Scopa */
.message.scopa-message{display:inline-flex;align-items:center;gap:12px;padding:13px 24px;border:1px solid rgba(255,218,92,.78);background:linear-gradient(135deg,rgba(112,62,9,.94),rgba(181,104,13,.94));color:#fff3bd;box-shadow:0 10px 28px #0008,0 0 25px rgba(255,194,54,.22);font-size:1.08rem;font-weight:950;letter-spacing:.02em;animation:scopa-pop .5s cubic-bezier(.2,.85,.25,1.25)}
.scopa-spark{color:#ffe26d;font-size:1.35rem;filter:drop-shadow(0 0 7px #ffc928);animation:scopa-spark 1.15s ease-in-out infinite alternate}@keyframes scopa-pop{0%{transform:scale(.72);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes scopa-spark{to{transform:rotate(25deg) scale(1.25)}}
.capture-choice-modal{position:fixed;inset:0;z-index:250;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(2,7,6,.68);backdrop-filter:blur(7px)}.capture-choice-modal.show{display:flex}.capture-choice-card{width:min(760px,92vw);padding:28px;border-radius:28px;border:1px solid rgba(238,196,85,.5);background:linear-gradient(145deg,#101713,#0b110e);box-shadow:0 30px 90px #000d,0 0 45px rgba(220,177,63,.1)}.capture-choice-heading{text-align:center}.capture-choice-heading span{font-size:.72rem;letter-spacing:.2em;font-weight:950;color:#e6bd58}.capture-choice-heading h3{margin:7px 0 3px;color:#fff3d4;font-size:1.65rem}.capture-choice-heading p{margin:0 0 20px;color:#aeb8b1}.capture-choice-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.capture-option{min-height:178px;border:1px solid rgba(255,255,255,.12);border-radius:20px;background:rgba(255,255,255,.045);display:flex;align-items:center;justify-content:center;gap:0;padding:18px;cursor:pointer;transition:.18s ease}.capture-option:hover{transform:translateY(-4px);border-color:#e7bf59;background:rgba(231,191,89,.1);box-shadow:0 14px 28px #0007}.capture-option img{width:88px;height:132px;object-fit:contain;filter:drop-shadow(0 7px 8px #0007)}.capture-option img+img{margin-left:-34px}.capture-option:focus-visible{outline:3px solid #f2d170;outline-offset:3px}


/* V15: Scopa più rapida, home fissa in partita e conferma globale */
.message.scopa-message{animation:scopa-pop .28s cubic-bezier(.2,.85,.25,1.18)}
.scopa-spark{animation:scopa-spark .48s ease-in-out 2 alternate}
.message.scopa-message.scopa-settled{background:rgba(249,246,238,.94);color:#24251f;border-color:transparent;box-shadow:0 6px 16px #0004;font-weight:700;letter-spacing:0;transition:background .22s ease,color .22s ease,box-shadow .22s ease,border-color .22s ease}
.message.scopa-message.scopa-settled .scopa-spark{display:none}
.game-home-button{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:180;min-width:190px;padding:10px 18px;border-radius:14px;border:1px solid rgba(226,102,91,.72);background:linear-gradient(135deg,rgba(126,40,35,.96),rgba(86,27,24,.96));color:#fff3ee;font-weight:900;box-shadow:0 8px 25px #0009;cursor:pointer;backdrop-filter:blur(6px);transition:transform .16s ease,filter .16s ease}
.game-home-button:hover{transform:translateX(-50%) translateY(-2px);filter:brightness(1.14)}
.global-confirm-abandon{position:fixed!important;inset:0!important;z-index:320!important;border-radius:0!important}
@media(max-width:700px){.game-home-button{bottom:8px;min-width:160px;padding:9px 14px;font-size:.88rem}}

/* v0.16 — punteggio partita e Matta */
.identity-title{display:flex;align-items:center;gap:9px;min-height:30px}.bot-identity-title{justify-content:flex-end}.live-match-score{min-width:34px;height:34px;padding:0 9px;border-radius:12px;display:inline-grid;place-items:center;font-weight:950;font-size:1.05rem;line-height:1;border:1px solid rgba(255,255,255,.22);box-shadow:0 6px 18px rgba(0,0,0,.25),inset 0 0 16px rgba(255,255,255,.08)}.player-live-score{background:linear-gradient(145deg,#e4bd65,#9f6f17);color:#181309;text-shadow:0 1px rgba(255,255,255,.35)}.bot-live-score{background:linear-gradient(145deg,#ff8c68,#a64736);color:#fff7ee}.player-card-form button{position:relative}.matta-value-badge,.matta-table-value{position:absolute;z-index:15;left:50%;bottom:-12px;transform:translateX(-50%);white-space:nowrap;padding:4px 8px;border-radius:999px;background:#f2c95f;color:#211807;border:2px solid #5f4310;font-size:.7rem;font-style:normal;font-weight:950;box-shadow:0 4px 12px #0008}.table-card-wrap,.hand-card-wrap{position:relative;display:inline-flex}.table-card-wrap .matta-table-value,.hand-card-wrap .matta-table-value{bottom:-10px}.matta-choice-overlay{position:fixed;inset:78px 0 0;z-index:1850;display:none;place-items:center;padding:26px;background:rgba(3,8,7,.72);backdrop-filter:blur(8px)}.matta-choice-overlay.show{display:grid}.matta-choice-panel{width:min(760px,94vw);padding:34px;border-radius:28px;background:linear-gradient(145deg,rgba(18,25,20,.98),rgba(8,13,11,.98));border:1px solid rgba(228,189,101,.55);box-shadow:0 30px 90px #000c;color:#f7f1e4}.matta-choice-panel h2{margin:8px 0 6px;font-family:Georgia,serif;font-size:clamp(2.1rem,5vw,4rem);line-height:.95}.matta-choice-panel>p{margin:14px 0 24px;color:#c9d2cc;line-height:1.5}.matta-choice-body{display:grid;grid-template-columns:150px 1fr;gap:28px;align-items:center}.matta-choice-card{width:130px;justify-self:center;border-radius:9px;box-shadow:0 18px 35px #000a;transform:rotate(-4deg)}.matta-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.matta-options form{margin:0}.matta-option-button{width:100%;min-height:78px;padding:12px 16px;border-radius:16px;border:1px solid rgba(228,189,101,.35);background:#18211c;color:#f7f1e4;cursor:pointer;text-align:left;transition:.18s transform,.18s border-color,.18s background}.matta-option-button:hover{transform:translateY(-3px);border-color:#e4bd65;background:#263329}.matta-option-button strong{display:block;font-family:Georgia,serif;font-size:1.5rem;color:#f0c95f}.matta-option-button span{display:block;margin-top:4px;color:#d5ddd8;font-weight:700}.message[data-message-type="matta"]{border:1px solid #e4bd65;background:linear-gradient(135deg,#fff9df,#f2d98f);color:#362606;font-weight:850;box-shadow:0 8px 24px #0005}
@media(max-width:720px){.matta-choice-body{grid-template-columns:1fr}.matta-choice-card{width:90px}.matta-options{grid-template-columns:1fr 1fr}.live-match-score{min-width:30px;height:30px;font-size:.95rem}}

/* v0.17 — rifiniture Scopa, contatore bot e pannello admin */
.message.scopa-message{transition:opacity .18s ease,transform .18s ease}
.message.scopa-message.scopa-fade{opacity:0;transform:translateY(5px) scale(.98);pointer-events:none}
.bot-scope-marker span{
  left:-22px!important;top:-10px!important;
  min-width:34px!important;width:34px!important;height:34px!important;
  font-size:.92rem!important;border-width:3px!important;
  box-shadow:0 0 0 3px rgba(5,9,8,.94),0 6px 16px rgba(0,0,0,.88)!important;
}
.global-confirm-abandon{z-index:5000!important}
.admin-link-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 13px;border-radius:12px;border:1px solid rgba(226,188,82,.45);background:rgba(226,188,82,.1);color:#f1cc70;text-decoration:none;font-weight:900}
.admin-link-button:hover{background:rgba(226,188,82,.18)}

.admin-nav{min-height:82px;padding:0 30px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;background:#0d241d;border-bottom:1px solid rgba(239,201,92,.22)}
.admin-nav>div{display:flex;align-items:center;gap:10px;color:#fff7e2;font-size:1.45rem}.admin-shield{color:#f2c75d;font-size:.85rem}
.admin-home-btn,.admin-refresh-btn{justify-self:start;text-decoration:none;font-weight:950;border-radius:999px;padding:11px 18px;background:#e8b626;color:#181106;box-shadow:0 8px 22px rgba(0,0,0,.3)}
.admin-refresh-btn{justify-self:end}
.admin-page{min-height:calc(100vh - 82px);padding:28px;background:linear-gradient(180deg,#10271f,#0a1713);color:#f7f2e7}
.admin-stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:20px}
.admin-stats-grid article{padding:20px;border-radius:18px;background:linear-gradient(145deg,#173b30,#102b23);border:1px solid rgba(95,204,163,.25);box-shadow:0 10px 24px #0005}
.admin-stats-grid article:nth-child(1){border-top:4px solid #f1c54f}.admin-stats-grid article:nth-child(2){border-top:4px solid #62d5a8}.admin-stats-grid article:nth-child(3){border-top:4px solid #61a9ea}.admin-stats-grid article:nth-child(4){border-top:4px solid #e4786f}.admin-stats-grid article:nth-child(5){border-top:4px solid #9a7be3}
.admin-stats-grid b{display:block;font-size:2rem;color:#ffd55f;line-height:1}.admin-stats-grid span{display:block;margin-top:7px;font-weight:850;color:#e7ede9}
.admin-panel{padding:20px;border-radius:22px;background:#122b23;border:1px solid rgba(104,191,155,.22);box-shadow:0 18px 44px #0006}
.admin-panel-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:15px}.admin-panel-head h2{margin:0;color:#ffd65f;font-size:1.45rem}.admin-panel-head p{margin:4px 0 0;color:#aebeb6}
.admin-search{display:flex;align-items:center;gap:9px;min-width:320px;padding:10px 14px;border-radius:12px;background:#0b1e18;border:1px solid rgba(102,191,154,.3)}.admin-search input{width:100%;border:0;outline:0;background:transparent;color:#fff;font:inherit}.admin-search input::placeholder{color:#6f857b}
.admin-table-wrap{overflow:auto;border-radius:16px;border:1px solid rgba(255,255,255,.08)}.admin-table{width:100%;min-width:1120px;border-collapse:collapse;background:#0f241d}.admin-table th{padding:11px 10px;text-align:left;background:#17382e;color:#f1ce67;font-size:.76rem}.admin-table td{padding:12px 10px;border-top:1px solid rgba(255,255,255,.07);vertical-align:middle;color:#edf2ef;font-size:.83rem}.admin-table tr:hover td{background:rgba(255,255,255,.025)}.admin-table td small{display:block;margin-top:3px;color:#8fa39a}.admin-table td strong{color:#fff}
.role-pill,.protected-pill{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-weight:950;font-size:.72rem}.admin-role{background:#e7b82d;color:#171005}.user-role{background:#5277db;color:#fff}.protected-pill{background:#3b8e6c;color:#eafff6;white-space:nowrap}
.admin-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.admin-actions form{margin:0}.admin-actions button{border:0;border-radius:9px;padding:7px 9px;font-size:.7rem;font-weight:900;cursor:pointer}.action-reset{background:#e8b62d;color:#191106}.action-role{background:#5f8be2;color:#fff}.action-delete{background:#dd655c;color:#fff}.admin-count{text-align:right;padding-top:12px;color:#a9bbb2}
@media(max-width:1000px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}.admin-panel-head{align-items:stretch;flex-direction:column}.admin-search{min-width:0}.admin-nav{padding:0 14px}.admin-nav>div{font-size:1.05rem}.admin-home-btn,.admin-refresh-btn{padding:9px 12px}}
.admin-confirm{position:fixed;inset:0;z-index:6000;display:none;place-items:center;padding:24px;background:rgba(2,8,7,.82);backdrop-filter:blur(8px)}.admin-confirm.show{display:grid}.admin-confirm-card{width:min(500px,92vw);padding:28px;border-radius:22px;border:1px solid rgba(216,86,76,.55);background:linear-gradient(145deg,#171d19,#0b100e);box-shadow:0 24px 70px #000d;text-align:center;color:#f7f2e7}.admin-confirm-card h3{margin:0 0 8px;font-size:1.55rem}.admin-confirm-card p{color:#cbd2cd}.admin-confirm-card strong{color:#ff9a90}

/* v0.18 — riallineamento ID e ultimo accesso */
.admin-realign-panel{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:20px;padding:20px 22px;border-radius:20px;background:linear-gradient(145deg,#17382e,#102b23);border:1px solid rgba(241,197,79,.34);box-shadow:0 12px 30px #0005}
.admin-realign-panel h2{margin:0 0 5px;color:#ffd45c;font-size:1.35rem}.admin-realign-panel p{margin:0;color:#c7d2cc}.admin-realign-btn{border:0;border-radius:999px;padding:12px 21px;background:#e8b626;color:#191106;font-weight:950;cursor:pointer;white-space:nowrap;box-shadow:0 8px 22px #0005}.admin-realign-btn:hover{filter:brightness(1.08)}
.admin-success-note{display:inline-block;margin-top:10px;padding:7px 11px;border-radius:10px;background:rgba(73,183,130,.16);color:#8de0b7;font-weight:800}.admin-success-note strong{color:#ffd45c}
@media(max-width:800px){.admin-realign-panel{align-items:stretch;flex-direction:column}.admin-realign-btn{width:100%}}

/* v0.18.1 - indicatore visivo del mazziere accanto al nome */
.dealer-name-mark{display:inline-flex;align-items:center;gap:7px;vertical-align:middle}
.dealer-mini-deck{position:relative;display:inline-block;width:20px;height:29px;flex:0 0 20px;margin-left:2px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.5))}
.dealer-mini-deck::before,.dealer-mini-deck::after{content:"";position:absolute;inset:0;border-radius:2px;background-image:var(--card-back);background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.75)}
.dealer-mini-deck::before{transform:translate(-3px,2px) rotate(-4deg);opacity:.78}
.dealer-mini-deck::after{transform:translate(0,0)}
.bot-identity .dealer-name-mark{flex-direction:row}

/* Admin v0.19 */
.admin-stats-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.admin-stats-grid article:nth-child(3){border-top-color:#ef6e66}.admin-stats-grid article:nth-child(4){border-top-color:#61a9ea}.admin-stats-grid article:nth-child(5){border-top-color:#e4786f}.admin-stats-grid article:nth-child(6){border-top:4px solid #9a7be3}
.status-pill{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-weight:950;font-size:.72rem;white-space:nowrap}.active-status{background:#2aa66f;color:#ecfff7}.blocked-status{background:#b53d3a;color:#fff0ee}.blocked-row td{opacity:.72}.blocked-row td:last-child{opacity:1}
.action-password{background:#3fc7c4;color:#072321}.action-block{background:#ef7267;color:#fff}.action-unblock{background:#31b77b;color:#062419}
.admin-password-card{border-color:rgba(78,199,196,.55)}.admin-block-card{border-color:rgba(239,114,103,.5)}
.admin-password-form{text-align:left;margin-top:18px}.admin-password-form label{display:block;margin-bottom:7px;color:#f3d77f;font-weight:900}.admin-password-form small{display:block;margin-top:8px;color:#97aaa0}.admin-password-input-row{display:flex;gap:8px}.admin-password-input-row input{flex:1;min-width:0;border:1px solid rgba(104,191,155,.35);background:#091612;color:#fff;border-radius:12px;padding:12px 13px;font:inherit;outline:none}.admin-password-input-row input:focus{border-color:#55d0c7;box-shadow:0 0 0 3px rgba(85,208,199,.12)}.admin-password-input-row button{width:46px;border:1px solid rgba(104,191,155,.35);background:#142a23;color:#fff;border-radius:12px;cursor:pointer}.password-icon{background:#197d78!important}.confirm-primary,.confirm-success{border:0;border-radius:11px;padding:11px 16px;font-weight:950;cursor:pointer}.confirm-primary{background:#3fc7c4;color:#062523}.confirm-success{background:#31b77b;color:#062419}
@media(max-width:1180px){.admin-stats-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.admin-stats-grid{grid-template-columns:repeat(2,1fr)}}

/* v0.20 — Municipi e quartieri ufficiali */
.territory-picker{display:grid;gap:12px}
.municipality-preview{min-height:74px;display:flex;align-items:center;gap:14px;padding:10px 13px;border-radius:14px;background:rgba(8,20,16,.58);border:1px solid rgba(228,194,92,.2)}
.municipality-preview img{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}
.municipality-preview strong{display:block;color:#f3cf69;font-size:.95rem}.municipality-preview span{display:block;margin-top:4px;color:#aebdb5;font-size:.78rem}
.municipality-preview-empty{font-size:.8rem;color:#8ea096;line-height:1.35}
.admin-territory-cell{display:flex;align-items:center;gap:8px;min-width:150px}.admin-municipality-logo{width:30px;height:30px;object-fit:contain;flex:0 0 30px;filter:drop-shadow(0 3px 5px rgba(0,0,0,.35))}

/* v0.21 — Torneo persistente */
.tournament-page{min-height:100vh;padding:26px clamp(16px,3vw,42px) 52px;background:radial-gradient(circle at 50% 0,#1b4938 0,#102a22 44%,#081612 100%);color:#f7f3e9}.tournament-nav>div{text-align:center}.tournament-nav>div strong{display:block;color:#f2cf68}.tournament-nav>div small{color:#a8bbb2}.compact-btn{padding:8px 13px!important;font-size:.76rem!important}.tournament-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:1450px;margin:0 auto 20px}.tournament-hero h1{margin:4px 0;font-size:clamp(2rem,4vw,3.4rem);color:#f4d16e}.tournament-hero p{margin:0;color:#a9bbb2}.tournament-save-state{display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:14px;background:#12392c;border:1px solid #4aa77a66}.tournament-save-state>span{font-size:1.35rem;color:#72dfaa}.tournament-save-state strong,.tournament-save-state small{display:block}.tournament-save-state small{color:#9eb4aa;margin-top:2px}.bracket-board{max-width:1500px;margin:auto;display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:16px;align-items:start}.bracket-column{padding:15px;border-radius:18px;background:#0c211a;border:1px solid #ffffff12}.bracket-column h2{text-align:center;margin:0 0 14px;color:#ecca67;font-size:1rem}.bracket-match{margin-bottom:12px;padding:9px;border-radius:13px;background:#143127;border:1px solid #ffffff12;box-shadow:0 8px 20px #0004}.bracket-match.human-match{border-color:#e4be52aa;box-shadow:0 0 0 2px #e4be5220,0 8px 20px #0005}.match-player{display:grid;grid-template-columns:1fr 34px;position:relative;padding:7px 8px;border-radius:8px}.match-player+ .match-player{border-top:1px solid #ffffff10}.match-player span{font-weight:850}.match-player small{grid-column:1;color:#91a69c;font-size:.66rem}.match-player b{grid-column:2;grid-row:1/3;align-self:center;text-align:center;color:#f4d16e}.match-player.match-winner{background:#24654766}.match-player.match-winner span{color:#8ff0bb}.play-tournament-btn{display:block;margin-top:8px;padding:8px;text-align:center;border-radius:9px;background:#e8bd43;color:#171106;font-size:.75rem;font-weight:950;text-decoration:none}.tournament-roster{max-width:1450px;margin:24px auto 0;padding:19px;border-radius:18px;background:#0c211a;border:1px solid #ffffff12}.tournament-roster h2{margin-top:0;color:#f2ce68}.roster-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.roster-person{display:flex;gap:9px;align-items:center;padding:9px;border-radius:10px;background:#143127}.roster-person>b{color:#d2ac4e}.roster-person strong,.roster-person small{display:block}.roster-person small{color:#8ea399;font-size:.7rem}.roster-person.human{outline:1px solid #e8c34f;background:#4b421e66}.tournament-result-card{max-width:900px;margin:0 auto 20px;display:flex;align-items:center;gap:18px;padding:18px 24px;border-radius:19px;background:linear-gradient(135deg,#3a241c,#211716);border:1px solid #d67e5d66}.tournament-result-card.winner{background:linear-gradient(135deg,#69551b,#2a2713);border-color:#f2cc56}.tournament-result-card h2{margin:3px 0;color:#ffd96b}.tournament-result-card p{margin:3px 0;color:#d8d4c7}.trophy-big{font-size:3.3rem}
@media(max-width:1150px){.bracket-board{grid-template-columns:repeat(2,1fr)}.roster-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.tournament-hero{align-items:stretch;flex-direction:column}.bracket-board{grid-template-columns:1fr}.roster-grid{grid-template-columns:1fr}.tournament-nav>div{display:none}}

/* v0.22 — tabellone torneo stile tennis */
.tournament-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.tennis-bracket-shell{max-width:1580px;margin:0 auto;overflow-x:auto;padding:8px 4px 24px}.tennis-bracket{min-width:1220px;display:grid;grid-template-columns:1.25fr 1.05fr .95fr .95fr;gap:34px;align-items:stretch}.tennis-round{position:relative}.tennis-round h2{text-align:center;color:#f0cd67;font-size:.9rem;text-transform:uppercase;letter-spacing:.12em;margin:0 0 14px}.tennis-round-matches{height:100%;display:flex;flex-direction:column}.tennis-round-r16 .tennis-round-matches{gap:10px}.tennis-round-qf .tennis-round-matches{justify-content:space-around;gap:28px;padding:34px 0}.tennis-round-sf .tennis-round-matches{justify-content:space-around;gap:90px;padding:105px 0}.tennis-round-finals .tennis-round-matches{justify-content:center;gap:34px;padding:160px 0 120px}.tennis-match{position:relative;background:#112d24;border:1px solid #ffffff17;border-radius:13px;padding:7px;box-shadow:0 8px 18px #0003}.tennis-match:after{content:"";position:absolute;right:-35px;top:50%;width:35px;border-top:1px solid #806f3f66}.tennis-round-finals .tennis-match:after{display:none}.tennis-match.human-match{border-color:#e5bf4f;box-shadow:0 0 0 2px #e5bf4f22,0 8px 18px #0004}.tennis-match.pending{background:#0d241c}.tennis-player{display:grid;grid-template-columns:1fr 34px;align-items:center;padding:7px 8px;border-radius:8px;gap:8px}.tennis-player+.tennis-player{border-top:1px solid #ffffff12}.tennis-player strong,.tennis-player small{display:block}.tennis-player strong{font-size:.84rem}.tennis-player small{color:#8da399;font-size:.64rem;margin-top:1px}.tennis-player>b{text-align:center;color:#dcc264;font-size:1rem}.tennis-player.winner{background:#245b4566}.tennis-player.winner strong{color:#91edb8}.result-locked{text-align:center;font-size:.67rem;color:#8da399;padding:6px 4px 2px}.match-kind{position:absolute;right:8px;top:-8px;background:#422f18;color:#f4ce6c;border:1px solid #8e7137;border-radius:999px;padding:2px 7px;font-size:.58rem;font-weight:800}.future-round{border:1px dashed #ffffff1d;border-radius:12px;padding:18px;text-align:center;color:#71877d;font-size:.75rem}.roster-heading{display:flex;justify-content:space-between;align-items:end;gap:16px}.roster-heading span{color:#8ea399;font-size:.78rem}.roster-person em{display:block;color:#d6b55c;font-size:.62rem;font-style:normal;margin-top:2px}.municipality-advance-form{margin-left:auto}.tournament-next-stage{background:#e8bd43;color:#171106}.tournament-confirm-backdrop{position:fixed;inset:0;z-index:10000;background:#020806c7;display:grid;place-items:center;padding:20px}.tournament-confirm-backdrop[hidden]{display:none}.tournament-confirm{width:min(480px,94vw);background:#17231f;color:#f7f1e4;border:1px solid #ffffff1c;border-radius:22px;padding:28px;text-align:center;box-shadow:0 30px 80px #0009}.tournament-confirm .confirm-icon{font-size:2.5rem}.tournament-confirm h2{color:#f0cc67;margin:8px 0}.tournament-confirm p{color:#b8c4be;line-height:1.55}.confirm-actions{display:flex;justify-content:center;gap:10px;margin-top:22px;flex-wrap:wrap}.confirm-actions form{margin:0}.button-red{background:#9e3f35!important;color:#fff!important}@media(max-width:800px){.tournament-hero-actions{justify-content:flex-start}.tournament-result-card{align-items:flex-start;flex-wrap:wrap}.municipality-advance-form{margin-left:0;width:100%}.municipality-advance-form .button{width:100%}}

/* v0.23 — qualificazioni Municipio + Coppa Genova */
.qualification-hero{align-items:flex-start}.qualification-rule-card{max-width:1180px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;padding:18px 22px;border-radius:18px;background:#0d241d;border:1px solid #ffffff15}.qualification-rule-number{min-width:150px;text-align:center;padding:12px 16px;border-radius:14px;background:#15362b}.qualification-rule-number b{display:block;font-size:2rem;color:#f1ca62}.qualification-rule-number span{font-size:.72rem;color:#a7bbb1}.qualification-plus,.qualification-equals{font-weight:900;color:#d8bd68}.qualified-panel,.qualification-ranking-card,.coppa-ready-card{max-width:1450px;margin:0 auto 20px;padding:20px;border-radius:18px;background:#0c211a;border:1px solid #ffffff13}.qualified-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:14px}.qualified-person{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:9px;padding:10px;border-radius:11px;background:#143127}.qualified-person>b{color:#d3ad4f}.qualified-person strong,.qualified-person small{display:block}.qualified-person small{font-size:.66rem;color:#91a59b}.qualified-person>span{font-weight:900;color:#e9ca6d}.qualified-person.human{outline:2px solid #e8c75b;background:#50441f66}.qualification-human-ok,.qualification-human-out{margin:16px 0 12px;padding:12px 14px;border-radius:12px;font-weight:800}.qualification-human-ok{background:#174b37;color:#96edbe}.qualification-human-out{background:#542d29;color:#ffb9ad}.qualification-rankings{max-width:1450px;margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ranking-heading{display:flex;justify-content:space-between;gap:12px;align-items:end;margin-bottom:10px}.ranking-heading h2{margin:0;color:#f1cd69}.ranking-heading span{font-size:.72rem;color:#94a89f}.ranking-row{display:grid;grid-template-columns:34px 1fr 90px 90px;gap:8px;align-items:center;padding:9px 10px;border-radius:9px;background:#122c23;margin-top:6px}.ranking-row small{display:block;color:#8fa49a;font-size:.65rem}.ranking-row>span{text-align:right;color:#e7cb74;font-weight:800}.ranking-row em{text-align:right;font-size:.58rem;font-style:normal;color:#9baaa3}.ranking-row.qualified{background:#174633}.ranking-row.qualified em{color:#8df0b7}.ranking-row.human{outline:1px solid #e8c85f}.coppa-nine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.coppa-champion{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:13px;border-radius:13px;background:#143127}.coppa-champion strong,.coppa-champion small{display:block}.coppa-champion small{color:#8fa39a;font-size:.68rem}.coppa-champion>b{color:#e8c965}.coppa-champion.human{outline:2px solid #e8c75b;background:#50441f66}.coppa-format{display:flex;justify-content:center;gap:12px;align-items:center;flex-wrap:wrap;margin:20px 0 10px;color:#d9c982}.coppa-format strong{padding:8px 12px;border-radius:999px;background:#173a2e}.qualification-note,.setup-cup-note{color:#a7b8b0}.coppa-groups{max-width:1450px;margin:0 auto 22px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.coppa-group-card{padding:15px;border-radius:16px;background:#0c211a;border:1px solid #ffffff14}.coppa-group-card h2{margin:0 0 10px;color:#f0cc66}.group-table-head,.group-table-row{display:grid;grid-template-columns:1fr 44px 58px 54px;gap:5px;align-items:center}.group-table-head{font-size:.6rem;color:#81978c;padding:0 8px 5px}.group-table-row{padding:8px;border-radius:8px;background:#132f25;margin-top:5px}.group-table-row span small{display:block;color:#859a90;font-size:.6rem}.group-table-row> b{text-align:center;color:#e6c969}.group-table-row.human{outline:1px solid #e7c75c;background:#51451f55}.group-matches{margin-top:12px;border-top:1px solid #ffffff10;padding-top:8px}.group-match{display:grid;grid-template-columns:1fr 50px 1fr auto;gap:7px;align-items:center;padding:6px 3px;font-size:.68rem}.group-match span:last-of-type{text-align:right}.group-match>b{text-align:center;color:#f0cb67}.group-match a{padding:4px 7px;border-radius:7px;background:#e6bd4b;color:#171106;text-decoration:none;font-weight:900}.group-match em{grid-column:1/-1;text-align:center;color:#798e84;font-style:normal;font-size:.58rem}.group-match.human-match{background:#4e431f44;border-radius:8px;padding:7px}.best-second-banner{max-width:820px;margin:0 auto 18px;padding:12px 16px;text-align:center;border-radius:12px;background:#523d19;color:#f4d372}.tennis-bracket.coppa-knockout{min-width:700px;grid-template-columns:1fr 1fr}.setup-qualification-info{margin-top:18px;padding:16px 18px;border-radius:16px;background:#0d241d;border:1px solid #ffffff14}.setup-qualification-info h2{margin:0 0 6px;color:#f0cc67}.setup-qualification-info p{margin:4px 0;color:#a8bab2}.setup-qualification-flow{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:14px 0}.setup-qualification-flow span{padding:8px 11px;border-radius:10px;background:#17372c;color:#b9c9c1;font-size:.7rem}.setup-qualification-flow span b{color:#f0cc67;font-size:1.1rem;margin-right:3px}.setup-qualification-flow .final{background:#55461d;color:#f4d66e}.setup-qualification-flow i{font-style:normal;color:#d6bd6b}.tournament-home-card{position:relative}.home-tournament-actions{display:flex;gap:8px;align-items:center;margin-top:8px}.home-tournament-actions a,.home-tournament-actions button{border:0;border-radius:9px;padding:7px 10px;font-size:.7rem;font-weight:900;text-decoration:none;cursor:pointer}.home-tournament-actions a{background:#d8b04a;color:#171106}.home-tournament-actions button{background:#8d3c35;color:#fff}
@media(max-width:1000px){.qualified-grid{grid-template-columns:repeat(2,1fr)}.coppa-groups,.coppa-nine-grid{grid-template-columns:1fr}.qualification-rankings{grid-template-columns:1fr}}
@media(max-width:620px){.qualified-grid{grid-template-columns:1fr}.ranking-row{grid-template-columns:30px 1fr 72px}.ranking-row em{grid-column:2/-1;text-align:left}.qualification-rule-card{gap:8px}.qualification-rule-number{min-width:120px}.group-match{grid-template-columns:1fr 46px 1fr}}

/* v0.23.1 — tabellone torneo: nessuno scroll interno */
.tennis-bracket-shell{
  overflow:visible;
  width:100%;
  max-width:1580px;
  padding:8px 4px 24px;
}
.tennis-bracket{
  width:100%;
  min-width:0;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1.05fr) minmax(0,.95fr) minmax(0,.95fr);
}
.tennis-bracket.coppa-knockout{
  min-width:0;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
@media(max-width:1100px){
  .tennis-bracket{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .tennis-round-qf .tennis-round-matches,
  .tennis-round-sf .tennis-round-matches,
  .tennis-round-finals .tennis-round-matches{padding:0;gap:12px;justify-content:flex-start}
  .tennis-match:after{display:none}
}
@media(max-width:680px){
  .tennis-bracket,.tennis-bracket.coppa-knockout{grid-template-columns:1fr}
}

/* Statistiche e Palmarès */
.insights-page{max-width:1180px;margin:0 auto;padding:34px 24px 70px}.insights-hero{padding:28px 30px;border:1px solid rgba(255,213,80,.14);border-radius:24px;background:rgba(5,43,33,.82);margin-bottom:22px}.insights-hero h1{font-size:46px;margin:4px 0 6px;color:#f6d45d}.insights-hero p{margin:0;color:#9ebbb1}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.stats-grid article{background:#103c31;border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:22px}.stats-grid span,.stats-grid small{display:block;color:#9ebbb1}.stats-grid b{display:block;font-size:38px;color:#f6d45d;margin:5px 0}.history-card{background:#082e25;border:1px solid rgba(255,255,255,.07);border-radius:22px;padding:24px}.history-card h2{color:#f6d45d;margin-top:0}.history-row{display:grid;grid-template-columns:1.3fr .6fr 1fr;gap:18px;align-items:center;padding:15px 12px;border-top:1px solid rgba(255,255,255,.07)}.history-row small{display:block;color:#86aa9d;margin-top:3px}.history-row>span{color:#f6d45d;font-weight:800}.history-row>b{text-align:right;color:#d9e9e3}.trophy-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:22px}.trophy-summary article{display:flex;gap:18px;align-items:center;background:#103c31;border-radius:18px;padding:22px}.trophy-summary article>span{font-size:38px}.trophy-summary b{font-size:34px;color:#f6d45d}.trophy-summary small{display:block;color:#9ebbb1}.palmares-row{grid-template-columns:60px 1fr auto}.palmares-medal{font-size:30px!important}.empty-state{color:#9ebbb1}.qualification-ranking-card .ranking-row>span b{color:#f6d45d}@media(max-width:760px){.stats-grid,.trophy-summary{grid-template-columns:1fr 1fr}.history-row{grid-template-columns:1fr}.history-row>b{text-align:left}.insights-hero h1{font-size:36px}}

/* v0.25 - profilo: niente dati spettatore, statistiche e palmares ampliati */
.performance-card,.level-trophies{margin-bottom:22px}.performance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.performance-grid>div,.level-trophy-grid>div{background:#103c31;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:18px}.performance-grid span,.level-trophy-grid small{display:block;color:#9ebbb1}.performance-grid b,.level-trophy-grid b{display:block;color:#f6d45d;font-size:28px;margin-top:5px}.level-trophy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.level-trophy-grid>div{text-align:center}.level-trophy-grid span{font-size:30px;display:block}.level-trophy-grid b{font-size:36px}.trophy-summary{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){.performance-grid{grid-template-columns:1fr 1fr}.level-trophy-grid{grid-template-columns:1fr}.trophy-summary{grid-template-columns:1fr 1fr}}


/* v0.26 — classifiche pulite, finalissima e tabelloni di consolazione */
.qualified-person .qualification-source-pill{justify-self:end;white-space:nowrap;padding:5px 9px;border-radius:999px;background:#284737;color:#f3d36d;font-size:.65rem;font-weight:900}
.ranking-columns{display:grid;grid-template-columns:34px 1fr 90px 90px 96px;gap:8px;padding:0 10px 5px;color:#7fa093;font-size:.58rem;text-transform:uppercase;letter-spacing:.06em}
.ranking-columns span:nth-child(n+3){text-align:right}
.ranking-row.ranking-row-clean{grid-template-columns:34px 1fr 90px 90px 96px}
.ranking-row.ranking-row-clean>span{font-weight:900;color:#f0cf68}
.ranking-row.ranking-row-clean>em{font-weight:800}
.match-kind.finalissima{background:#745612;color:#fff0ad;border-color:#d7ae3c;box-shadow:0 4px 14px #0005}
.elimination-tag{position:absolute;left:8px;bottom:-8px;background:#40231f;color:#f1b8ae;border:1px solid #75443c;border-radius:999px;padding:2px 7px;font-size:.53rem;font-weight:800}
.bracket-tabs{max-width:1450px;margin:0 auto 16px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;position:sticky;top:68px;z-index:20;padding:8px;border-radius:14px;background:#071b16e8;backdrop-filter:blur(10px);border:1px solid #ffffff12}
.bracket-tabs a{color:#b9cbc3;text-decoration:none;font-weight:800;font-size:.72rem;padding:8px 11px;border-radius:9px;background:#17352b;border:1px solid #ffffff0d}
.bracket-tabs a:hover{color:#f3d36d;background:#21463a}
.bracket-section{scroll-margin-top:125px}
.placement-section,.classification-section{max-width:1450px;margin:18px auto 24px;padding:20px;border-radius:20px;background:#0a251d;border:1px solid #ffffff12}
.placement-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.placement-heading h2{margin:2px 0;color:#f2cf68}.placement-heading .eyebrow{color:#91aa9f}
.placement-round-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.placement-round{padding:14px;border-radius:15px;background:#0d2d24;border:1px solid #ffffff0e}.placement-round h3{margin:0 0 10px;color:#d6bd69;font-size:.82rem}
.placement-match{border-radius:11px;overflow:hidden;border:1px solid #ffffff10;background:#102b23;margin-top:8px}
.placement-match>div{display:grid;grid-template-columns:1fr 42px;align-items:center;padding:8px 10px;border-top:1px solid #ffffff0b}.placement-match>div:first-child{border-top:0}
.placement-match span strong,.placement-match span small{display:block}.placement-match span{font-weight:800}.placement-match small{color:#879f94;font-size:.61rem;margin-top:2px}.placement-match b{text-align:right;color:#eccb64}.placement-match .winner{background:#1b503c}.placement-match .winner>span{color:#93efbd}
.mini-standing{display:grid;gap:8px}.mini-standing>div{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:#123329}.mini-standing>div>b{color:#f1ce67;font-size:1.2rem}.mini-standing strong,.mini-standing small{display:block}.mini-standing small{color:#8fa69b}.mini-standing em{font-style:normal;color:#d9c57e;font-weight:800}
.classification-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.classification-row{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;padding:10px 12px;border-radius:11px;background:#113128}.classification-row>b{color:#f0cc66;font-size:1.05rem}.classification-row strong,.classification-row small{display:block}.classification-row small{color:#8ca297;font-size:.62rem}.classification-row.human{outline:2px solid #e7c75b;background:#55471f66}
@media(max-width:1000px){.placement-round-grid{grid-template-columns:1fr 1fr}.classification-grid{grid-template-columns:1fr 1fr}.ranking-columns{display:none}.ranking-row.ranking-row-clean{grid-template-columns:34px 1fr 72px 72px}.ranking-row.ranking-row-clean em{grid-column:2/-1;text-align:left}}
@media(max-width:650px){.placement-round-grid,.classification-grid{grid-template-columns:1fr}.bracket-tabs{position:static}.qualified-person{grid-template-columns:28px 1fr}.qualified-person .qualification-source-pill{grid-column:2;justify-self:start}.ranking-row.ranking-row-clean{grid-template-columns:30px 1fr 62px}.ranking-row.ranking-row-clean>span:nth-of-type(2){display:none}}

/* v0.26.4 — uscita dai tabelloni di piazzamento */
.placement-exit-card{max-width:1450px;margin:16px auto 20px;padding:16px 18px;border-radius:17px;background:linear-gradient(135deg,#132c24,#10231d);border:1px solid #8f443d88;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 10px 28px #0003}
.placement-exit-card>div{display:grid;gap:3px}.placement-exit-card .eyebrow{color:#e8b7aa}.placement-exit-card strong{font-size:1rem;color:#f5efe2}.placement-exit-card small{color:#aabbb2;font-size:.78rem}.placement-exit-card small b{color:#f0cc67;font-size:.9rem}.placement-abandon-confirm strong{color:#f0cc67}
@media(max-width:760px){.placement-exit-card{align-items:flex-start;flex-direction:column}.placement-exit-card .button{width:100%}}

/* v0.27 - statistiche, palmares e classifica finale */
.insight-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.insight-tabs button{border:1px solid rgba(255,255,255,.1);background:#0b3027;color:#9ebbb1;border-radius:999px;padding:10px 16px;font-weight:850;cursor:pointer}.insight-tabs button.active{background:#d9bd52;color:#13241d;border-color:#d9bd52}.stats-panel[hidden]{display:none!important}.section-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}.section-title-row h2{margin:3px 0 0}.mini-badge{display:inline-flex;align-items:center;border:1px solid rgba(246,212,93,.22);background:rgba(246,212,93,.08);color:#f6d45d;padding:7px 11px;border-radius:999px;font-weight:850;font-size:.82rem}.target-breakdown{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.target-breakdown span{background:#103c31;border:1px solid rgba(255,255,255,.07);padding:9px 12px;border-radius:999px;color:#9ebbb1}.target-breakdown b{color:#f6d45d}.palmares-level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.palmares-level-grid article{background:#103c31;border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:20px;text-align:center}.palmares-level-grid .level-icon{font-size:34px}.palmares-level-grid h3{margin:8px 0 2px;color:#e6eee9}.level-main-value{display:block;font-size:38px;color:#f6d45d;margin:3px 0}.palmares-level-grid small{color:#9ebbb1}.level-mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px;border-top:1px solid rgba(255,255,255,.07);padding-top:12px}.level-mini-stats span{color:#8fb0a4;font-size:.78rem}.level-mini-stats b{display:block;color:#e7efe9;font-size:1rem}.placement-pill{justify-self:start;display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:#173c32;color:#f6d45d;font-weight:900;white-space:nowrap}.placement-1{background:#5a491b;color:#ffe17b}.placement-2{background:#394743;color:#dce8e4}.placement-3{background:#5a3927;color:#f0c09b}.classification-podium{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 18px}.classification-podium-card{background:#113128;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px;text-align:center}.classification-podium-card>span{display:block;font-size:34px}.classification-podium-card>b{display:block;color:#f0cc66;font-size:1.3rem}.classification-podium-card strong{display:block;color:#edf4f0;margin-top:3px}.classification-podium-card small{display:block;color:#8ca297;margin-top:4px}.classification-podium-card.place-1{border-color:#e7c75b;background:#4c411d55}.classification-podium-card.human,.classification-row.human{outline:2px solid #e7c75b}.classification-rest{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:760px){.section-title-row{flex-direction:column}.palmares-level-grid,.classification-podium{grid-template-columns:1fr}.classification-rest{grid-template-columns:1fr 1fr}.level-mini-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.classification-rest{grid-template-columns:1fr}}

/* v0.27.1 - storico tornei */
.tournament-history-card{margin-top:22px}.history-filter-tabs{margin-bottom:12px}.history-list{border:1px solid rgba(255,255,255,.06);border-radius:18px;overflow:hidden;background:rgba(4,34,27,.35)}.tournament-history-row{grid-template-columns:minmax(260px,1.4fr) auto minmax(150px,.55fr);padding:18px 20px;border-top:1px solid rgba(255,255,255,.07)}.tournament-history-row:first-child{border-top:0}.tournament-history-row[hidden]{display:none!important}.palmares-row.tournament-history-row{grid-template-columns:52px minmax(260px,1.4fr) auto minmax(150px,.55fr)}.history-main{min-width:0}.history-main strong{display:block;color:#f2eee1;font-size:1.05rem}.history-level{display:inline-block!important;color:#f6d45d!important;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}.history-champion{text-align:right}.history-champion small{display:block;color:#86aa9d;margin:0 0 3px}.history-champion b{color:#d9e9e3}.tournament-history-row .placement-pill{justify-self:center}.palmares-row .palmares-medal{align-self:center}@media(max-width:760px){.tournament-history-row,.palmares-row.tournament-history-row{grid-template-columns:42px 1fr}.tournament-history-row:not(.palmares-row){grid-template-columns:1fr auto}.tournament-history-row .placement-pill{justify-self:start}.history-champion{text-align:left;grid-column:1/-1}.palmares-row .history-champion{grid-column:2}.palmares-row .placement-pill{grid-column:2}}

.rivals-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.rivals-grid article{padding:18px;border:1px solid rgba(244,198,69,.12);border-radius:18px;background:rgba(255,255,255,.025);display:grid;gap:6px}.rivals-grid article span{color:#9fc4b5;font-size:.88rem}.rivals-grid article b{font-size:1.25rem;color:#fff3cf}.rivals-grid article small{color:#8eafa2}@media(max-width:900px){.rivals-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.rivals-grid{grid-template-columns:1fr}}

/* =========================================================
   v0.29 - Tavolo smartphone a schermata unica
   Solo partita: il desktop non viene modificato.
   ========================================================= */
@media (max-width: 820px) {
  /* La barra della partita occupa il minimo indispensabile. */
  .game-nav {
    height: 52px;
    min-height: 52px;
    padding: 0 10px;
    gap: 6px;
  }

  .game-nav .brand,
  .game-nav > a {
    font-size: .86rem;
  }

  .game-nav .button,
  .game-nav button {
    padding: 8px 10px;
    border-radius: 10px;
    font-size: .78rem;
  }

  .game-nav small {
    display: none;
  }

  /*
     Tre fasce sempre visibili:
     bot in alto / tavolo al centro / giocatore in basso.
     100dvh segue davvero l'altezza disponibile dei browser mobile.
  */
  .game-layout {
    --game-card-width: clamp(58px, 17vw, 72px);
    width: 100%;
    height: calc(100dvh - 52px);
    min-height: 0;
    max-height: calc(100dvh - 52px);
    overflow: hidden;
    padding: 5px 6px max(5px, env(safe-area-inset-bottom));
    gap: 5px;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: 104px minmax(0, 1fr) 148px !important;
    align-items: stretch;
    background-position: center;
  }

  .bot-zone,
  .player-zone {
    min-height: 0 !important;
    height: 100%;
    padding: 7px 9px;
    border-radius: 14px;
    overflow: visible;
    backdrop-filter: blur(2px);
  }

  .bot-zone {
    grid-row: 1 !important;
    justify-content: flex-start;
  }

  .center-table {
    grid-row: 2 !important;
    min-height: 0;
    height: 100%;
    justify-content: center;
    overflow: visible;
    padding: 0 2px;
  }

  .player-zone {
    grid-row: 3 !important;
    justify-content: flex-end;
    padding-bottom: max(7px, env(safe-area-inset-bottom));
  }

  /* Identità compatte, leggibili anche su schermi stretti. */
  .player-identity {
    gap: 7px;
    min-height: 30px;
  }

  .player-identity .avatar {
    width: 30px;
    height: 30px;
    min-width: 30px;
    font-size: .75rem;
  }

  .player-identity b {
    font-size: .78rem;
    line-height: 1.05;
  }

  .player-identity small {
    font-size: .62rem;
    line-height: 1.05;
    margin-top: 1px;
  }

  .bot-identity {
    justify-content: flex-start;
    text-align: left;
  }

  .dealer-mini-deck {
    width: 14px;
    height: 21px;
    flex-basis: 14px;
  }

  .live-match-score {
    min-width: 25px;
    height: 25px;
    padding: 0 6px;
    border-radius: 8px;
    font-size: .76rem;
  }

  /* Mano del bot subito sotto al nome, senza consumare mezza pagina. */
  .bot-zone .bot-hand {
    margin: 3px 0 0 !important;
    justify-content: center !important;
    align-items: flex-start;
    flex-wrap: nowrap !important;
    min-height: 60px;
  }

  .game-layout .bot-hand img {
    width: clamp(43px, 12vw, 54px) !important;
  }

  .bot-hand.declared-hand img {
    width: clamp(43px, 12vw, 54px) !important;
  }

  /* Le prese diventano piccoli mazzetti laterali. */
  .captured-pile {
    width: 52px;
    height: 62px;
    margin: 0 !important;
    position: absolute;
    z-index: 8;
    opacity: .96;
  }

  .bot-zone .captured-pile {
    right: 7px;
    bottom: 5px;
  }

  .player-zone .captured-pile {
    right: 8px;
    top: 7px;
  }

  .captured-pile img {
    width: 42px !important;
    left: 4px;
    bottom: 4px;
  }

  .captured-pile span,
  .captured-pile .pile-count {
    width: 23px;
    height: 23px;
    right: -1px;
    bottom: -1px;
    font-size: .68rem;
    border-width: 1px;
  }

  /* Il centro usa tutto lo spazio rimasto, senza forzare altezza minima. */
  .table-cards {
    flex: 0 1 auto;
    width: 100%;
    max-width: 100%;
    min-height: 0 !important;
    max-height: calc(100% - 42px);
    align-content: center;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 2px 4px;
    overflow: visible;
  }

  .game-layout .table-cards img {
    width: clamp(52px, 15vw, 66px) !important;
    max-height: 99px;
  }

  .table-card-wrap {
    margin: 0 -1px;
  }

  /* Messaggi compatti e sovrapposti al tavolo, non spingono le carte. */
  .center-table .message,
  .game-layout .message {
    position: absolute;
    left: 50%;
    bottom: 4px;
    transform: translateX(-50%);
    z-index: 30;
    width: max-content;
    max-width: calc(100% - 18px);
    margin: 0;
    padding: 7px 12px;
    font-size: .7rem;
    line-height: 1.15;
    white-space: normal;
  }

  .message.scopa-message {
    padding: 8px 13px;
    gap: 6px;
    font-size: .78rem;
  }

  .bot-play-area {
    position: absolute !important;
    inset: 50% auto auto 50%;
    transform: translate(-50%, -50%) !important;
    min-height: 0;
    margin: 0;
    z-index: 25;
    pointer-events: none;
    font-size: .68rem;
  }

  /* Le carte umane restano sempre ancorate in basso e cliccabili. */
  .player-zone .player-hand {
    width: 100%;
    min-height: 108px;
    margin: auto 0 0 !important;
    padding: 0 45px 0 2px;
    justify-content: center !important;
    align-items: flex-end !important;
    flex-wrap: nowrap !important;
    gap: 3px;
    overflow: visible;
  }

  .game-layout .player-hand img {
    width: clamp(64px, 20vw, 82px) !important;
    max-height: 123px;
  }

  .player-hand button {
    flex: 0 1 auto;
    min-width: 0;
  }

  .player-hand button:hover,
  .player-hand button:active,
  .player-hand button:focus-visible {
    transform: translateY(-7px);
  }

  /* Mazzo di distribuzione al centro senza coprire la mano. */
  .deal-deck {
    bottom: 46% !important;
    transform: translate(-50%, 50%);
  }

  .game-layout .deal-deck img {
    width: 58px !important;
  }

  /* Scelta della presa: overlay interno e compatto, nessuno scroll pagina. */
  .capture-choice-modal {
    padding: 10px;
  }

  .capture-choice-card {
    width: min(96vw, 620px);
    max-height: 88dvh;
    overflow: auto;
    padding: 16px;
    border-radius: 20px;
  }

  .capture-choice-heading h3 {
    font-size: 1.15rem;
  }

  .capture-choice-heading p {
    margin-bottom: 10px;
    font-size: .75rem;
  }

  .capture-choice-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .capture-option {
    min-height: 116px;
    padding: 8px;
  }

  .capture-option img {
    width: 58px;
    height: 88px;
  }

  .capture-option img + img {
    margin-left: -24px;
  }
}

/* Telefoni molto bassi / browser con barre molto invasive. */
@media (max-width: 820px) and (max-height: 700px) {
  .game-nav {
    height: 46px;
    min-height: 46px;
  }

  .game-layout {
    height: calc(100dvh - 46px);
    max-height: calc(100dvh - 46px);
    grid-template-rows: 88px minmax(0, 1fr) 126px !important;
  }

  .game-layout .bot-hand img {
    width: 42px !important;
  }

  .player-zone .player-hand {
    min-height: 92px;
  }

  .game-layout .player-hand img {
    width: clamp(56px, 18vw, 70px) !important;
  }

  .game-layout .table-cards img {
    width: clamp(47px, 13.5vw, 59px) !important;
  }
}

/* Landscape smartphone: mantiene comunque il tavolo in una singola schermata. */
@media (orientation: landscape) and (max-height: 600px) and (max-width: 980px) {
  .game-nav {
    height: 44px;
    min-height: 44px;
  }

  .game-layout {
    --game-card-width: 58px;
    height: calc(100dvh - 44px);
    max-height: calc(100dvh - 44px);
    min-height: 0;
    overflow: hidden;
    grid-template-columns: 132px minmax(0, 1fr) 132px !important;
    grid-template-rows: minmax(0, 1fr) !important;
    gap: 5px;
    padding: 5px;
  }

  .player-zone,
  .bot-zone,
  .center-table {
    grid-row: 1 !important;
    min-height: 0 !important;
  }

  .player-zone { grid-column: 1; }
  .center-table { grid-column: 2; }
  .bot-zone { grid-column: 3; }

  .game-layout .player-hand img,
  .game-layout .table-cards img {
    width: 56px !important;
  }

  .game-layout .bot-hand img {
    width: 42px !important;
  }

  .player-zone .player-hand {
    padding: 0;
    gap: 1px;
  }

  .captured-pile {
    transform: scale(.82);
  }
}


/* =========================================================
   v0.29.1 - Rifinitura tavolo smartphone
   Carte bot piu leggibili + pulsante Home non invasivo.
   ========================================================= */
@media (max-width: 820px) {
  /* Mano bot: niente compressione eccessiva sui telefoni stretti. */
  .bot-zone .bot-hand {
    gap: 4px !important;
    min-height: 66px;
    padding: 0 54px 0 4px;
  }

  .game-layout .bot-hand img,
  .bot-hand.declared-hand img {
    width: clamp(50px, 14vw, 62px) !important;
    max-height: 92px;
    object-fit: contain;
  }

  /* La mano dell'utente sfrutta tutta la larghezza disponibile. */
  .player-zone .player-hand {
    padding-left: 4px;
    padding-right: 4px;
    gap: 4px;
  }

  /* Il ritorno alla Home diventa un piccolo comando laterale.
     Non copre piu le carte del giocatore. */
  .game-home-button {
    left: 8px !important;
    right: auto !important;
    bottom: max(7px, env(safe-area-inset-bottom)) !important;
    transform: none !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: 118px;
    padding: 6px 9px !important;
    border-radius: 10px !important;
    font-size: .66rem !important;
    line-height: 1.05;
    white-space: normal;
    text-align: center;
  }

  .game-home-button:hover,
  .game-home-button:active {
    transform: translateY(-1px) !important;
  }
}

/* iPhone SE e dispositivi con poca altezza: le carte del bot restano leggibili. */
@media (max-width: 390px) and (max-height: 720px) {
  .game-layout {
    grid-template-rows: 92px minmax(0, 1fr) 132px !important;
  }

  .bot-zone .bot-hand {
    min-height: 62px;
    gap: 3px !important;
    padding-right: 48px;
  }

  .game-layout .bot-hand img,
  .bot-hand.declared-hand img {
    width: 48px !important;
    max-height: 76px;
  }

  .game-layout .player-hand img {
    width: clamp(58px, 18vw, 68px) !important;
    max-height: 103px;
  }

  .player-zone .player-hand {
    min-height: 96px;
    gap: 2px;
  }

  .game-home-button {
    max-width: 104px;
    padding: 5px 7px !important;
    font-size: .61rem !important;
  }
}

/* Smartphone medio/grande: un po' piu di respiro alle tre carte coperte. */
@media (min-width: 391px) and (max-width: 820px) and (orientation: portrait) {
  .bot-zone .bot-hand {
    gap: 5px !important;
  }

  .game-layout .bot-hand img,
  .bot-hand.declared-hand img {
    width: clamp(54px, 14vw, 64px) !important;
  }
}

/* =========================================================
   v0.29.2 - Rifiniture smartphone: Scope, distribuzione,
   riepilogo di fine smazzata/partita.
   Desktop invariato.
   ========================================================= */
@media (max-width: 820px) {
  /* Scope: manteniamo la carta che ha fatto Scopa, ma in piccolo e
     spostata verso il lato delle prese. Non deve coprire la mano. */
  .scope-marker,
  .bot-scope-marker {
    width: 38px !important;
    height: 58px !important;
    min-width: 38px;
    margin: 0 !important;
    transform: rotate(5deg) !important;
    z-index: 9 !important;
  }

  .bot-scope-marker {
    transform: rotate(-5deg) !important;
  }

  .scope-marker img,
  .scope-placeholder {
    width: 38px !important;
    height: 57px !important;
    border-radius: 5px;
  }

  .scope-marker span,
  .bot-scope-marker span {
    left: auto !important;
    right: -8px !important;
    top: -8px !important;
    bottom: auto !important;
    width: 27px !important;
    min-width: 27px !important;
    height: 27px !important;
    border-width: 2px !important;
    font-size: .76rem !important;
    transform: none !important;
    box-shadow: 0 0 0 2px rgba(5,9,8,.9),0 4px 10px #000b !important;
  }

  .bot-scope-marker span {
    right: auto !important;
    left: -8px !important;
  }

  /* Il gruppo prese/Scope occupa una piccola fascia laterale. */
  .take-area {
    min-height: 60px !important;
    margin: 0 !important;
    gap: 0;
  }

  /* Distribuzione: il mazzo parte dal cuore del tavolo, non dalla mano. */
  .game-layout[data-phase="dealing"] .deal-deck {
    left: 50% !important;
    top: 46% !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    z-index: 45 !important;
  }

  .game-layout[data-phase="dealing"] .deal-deck img,
  .game-layout .deal-deck img {
    width: 52px !important;
    max-height: 80px;
    object-fit: contain;
    filter: drop-shadow(0 7px 10px rgba(0,0,0,.65));
  }

  /* Riepilogo: pannello mobile pieno, leggibile e senza tagli. */
  .round-summary-overlay {
    padding: 6px !important;
    align-items: center;
    overflow: hidden;
  }

  .round-summary {
    width: min(100%, 460px) !important;
    max-width: calc(100vw - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
    padding: 14px 12px 12px !important;
    border-radius: 20px !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }

  .summary-kicker {
    font-size: .62rem;
    letter-spacing: .13em;
  }

  .round-summary h2 {
    margin: 3px 0 1px !important;
    font-size: clamp(1.75rem, 9vw, 2.35rem) !important;
    line-height: .98;
  }

  .summary-subtitle {
    margin: 6px 0 10px !important;
    font-size: .82rem;
  }

  .summary-scoreboard {
    grid-template-columns: minmax(0,1fr) 24px minmax(0,1fr) !important;
    gap: 6px !important;
    margin: 5px 0 10px !important;
  }

  .summary-player {
    min-width: 0;
    grid-template-columns: minmax(0,1fr) auto !important;
    padding: 9px 10px !important;
    border-radius: 13px;
    gap: 1px 6px !important;
  }

  .summary-player span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .82rem !important;
  }

  .summary-player small {
    font-size: .64rem;
  }

  .summary-player strong {
    font-size: 1.75rem !important;
  }

  .summary-vs {
    text-align: center;
    font-size: .6rem;
  }

  .summary-grid {
    border-radius: 13px;
  }

  .summary-row,
  .summary-row-with-cards {
    grid-template-columns: 28px minmax(74px,1.1fr) minmax(62px,.85fr) minmax(62px,.85fr) !important;
    min-height: 44px !important;
    padding: 5px 6px !important;
    gap: 4px !important;
  }

  .summary-row b {
    font-size: .78rem;
  }

  .summary-icon {
    width: 25px;
    height: 25px;
    border-radius: 8px;
    font-size: .7rem;
  }

  .summary-row > span:nth-last-child(-n+2),
  .summary-row-with-cards > span:nth-last-child(-n+2) {
    font-size: .72rem;
    gap: 2px !important;
  }

  .summary-value {
    font-size: .75rem;
  }

  .summary-row em {
    min-width: 22px;
    height: 22px;
    margin-left: 2px;
    padding: 0 4px;
    font-size: .62rem;
  }

  .summary-mini-cards {
    min-height: 25px !important;
  }

  .summary-mini-cards img,
  .special-mini img,
  .primiera-mini img {
    width: 17px !important;
    height: 25px !important;
    margin-left: -5px !important;
    border-radius: 2px;
  }

  .summary-mini-cards img:first-child {
    margin-left: 0 !important;
  }

  .summary-mini-cards img:hover {
    transform: none !important;
    box-shadow: 0 3px 7px #000a !important;
  }

  .match-progress {
    grid-template-columns: 1fr 1fr !important;
    gap: 5px 8px !important;
    margin: 9px 0 2px !important;
    padding: 8px 9px !important;
    border-radius: 12px;
  }

  .match-progress > div:not(.progress-track) {
    gap: 5px;
  }

  .match-progress > div:nth-child(3) {
    justify-content: flex-end !important;
  }

  .match-progress strong {
    font-size: 1.05rem;
  }

  .match-progress span {
    font-size: .7rem;
  }

  .progress-track {
    grid-column: 1 / -1;
    grid-row: 2;
    height: 8px;
  }

  .match-progress small {
    grid-column: 1 / -1 !important;
    font-size: .62rem;
  }

  .summary-actions {
    grid-template-columns: 1fr !important;
    gap: 7px !important;
    margin-top: 9px !important;
  }

  .summary-button {
    min-height: 39px;
    padding: 9px 12px !important;
    border-radius: 11px;
    font-size: .78rem !important;
  }
}

/* iPhone SE: riepilogo ancora piu compatto, senza sacrificare i dati. */
@media (max-width: 390px) and (max-height: 720px) {
  .round-summary {
    padding: 10px 9px 9px !important;
    border-radius: 17px !important;
  }

  .round-summary h2 {
    font-size: 1.72rem !important;
  }

  .summary-subtitle {
    font-size: .72rem;
    margin-bottom: 7px !important;
  }

  .summary-scoreboard {
    margin-bottom: 7px !important;
  }

  .summary-player {
    padding: 7px 8px !important;
  }

  .summary-player strong {
    font-size: 1.5rem !important;
  }

  .summary-row,
  .summary-row-with-cards {
    min-height: 39px !important;
    grid-template-columns: 24px minmax(66px,1fr) minmax(56px,.82fr) minmax(56px,.82fr) !important;
    padding: 4px 5px !important;
  }

  .summary-icon {
    width: 22px;
    height: 22px;
  }

  .summary-row b,
  .summary-value {
    font-size: .69rem;
  }

  .summary-mini-cards img,
  .special-mini img,
  .primiera-mini img {
    width: 15px !important;
    height: 22px !important;
  }

  .match-progress {
    margin-top: 6px !important;
    padding: 6px 7px !important;
  }
}

/* v0.29.3 — Mobile: elimina i messaggi di servizio, conserva solo Scopa e Buone */
@media (max-width: 820px) {
  /* Sul tavolo mobile non mostriamo messaggi narrativi/di turno come
     “ha lasciato una carta sul tavolo”, “Tocca a te”, ecc. */
  .game-layout .message:not(.scopa-message),
  .center-table .message:not(.scopa-message) {
    display: none !important;
  }

  /* La Scopa resta visibile come badge/evento importante. */
  .game-layout .message.scopa-message,
  .center-table .message.scopa-message {
    display: inline-flex !important;
    position: absolute;
    left: 50%;
    bottom: 6px;
    transform: translateX(-50%);
    z-index: 32;
    width: max-content;
    max-width: calc(100% - 20px);
    margin: 0;
    padding: 7px 12px;
    font-size: .74rem;
    line-height: 1.1;
    white-space: nowrap;
  }

  /* I badge Buona da 3 / Buona da 10 rimangono sempre visibili. */
  .accusation-badge,
  .bot-accusation {
    display: flex !important;
  }
}

/* v0.29.4 — Mobile polish: sorteggio, messaggi, scope/prese e distribuzione */
@media (max-width: 820px) {
  /* Nessun messaggio narrativo durante il gioco mobile: restano solo badge Scopa/Buone. */
  .bot-play-area {
    display: none !important;
  }

  #game-message[data-message-type="normal"],
  .game-layout .message:not(.scopa-message),
  .center-table .message:not(.scopa-message) {
    display: none !important;
  }

  /* Le pile delle prese stanno ai bordi e sembrano un vero mazzetto, non decine di carte. */
  .take-area,
  .bot-take-area {
    position: absolute !important;
    right: 5px !important;
    left: auto !important;
    width: 48px !important;
    height: 58px !important;
    min-height: 0 !important;
    margin: 0 !important;
    display: block !important;
    z-index: 18;
    pointer-events: none;
  }

  .bot-zone .take-area,
  .bot-zone .bot-take-area {
    top: 39px !important;
    bottom: auto !important;
  }

  .player-zone .take-area {
    top: 8px !important;
    bottom: auto !important;
  }

  .captured-pile {
    position: absolute !important;
    inset: 0 !important;
    width: 44px !important;
    height: 55px !important;
    margin: 0 !important;
  }

  .captured-pile img {
    width: 35px !important;
    left: 4px !important;
    bottom: 4px !important;
    border-radius: 4px !important;
    transform: translate(
      calc(var(--pile-index) * .45px),
      calc(var(--pile-index) * -.7px)
    ) !important;
    box-shadow: 0 3px 7px #0007 !important;
  }

  .captured-pile .pile-count,
  .captured-pile > span {
    width: 20px !important;
    height: 20px !important;
    right: -1px !important;
    bottom: -1px !important;
    font-size: .6rem !important;
    border-width: 1px !important;
  }

  /* Su mobile la Scopa è solo un badge: niente carta extra che invade il tavolo. */
  .scope-marker,
  .bot-scope-marker {
    position: absolute !important;
    right: -2px !important;
    top: -5px !important;
    width: 22px !important;
    height: 22px !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 25 !important;
  }

  .scope-marker img,
  .scope-marker .scope-placeholder,
  .bot-scope-marker img,
  .bot-scope-marker .scope-placeholder {
    display: none !important;
  }

  .scope-marker span,
  .bot-scope-marker span {
    position: static !important;
    width: 22px !important;
    height: 22px !important;
    display: grid !important;
    place-items: center !important;
    font-size: .62rem !important;
    border-width: 1px !important;
    box-shadow: 0 3px 8px #0009 !important;
  }

  /* Il mazzo da cui partono le animazioni di distribuzione resta sul bordo destro. */
  .deal-deck,
  .game-layout .deal-deck {
    left: auto !important;
    right: 7px !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    z-index: 22 !important;
  }

  .game-layout .deal-deck img {
    width: 43px !important;
    box-shadow: 0 5px 12px #0009 !important;
  }

  /* Sorteggio del mazziere: pannello interamente dentro la viewport mobile. */
  .draw-overlay {
    inset: 52px 0 0 !important;
    padding: 8px !important;
    place-items: center !important;
    overflow: hidden !important;
  }

  .draw-panel {
    width: calc(100vw - 16px) !important;
    max-width: 430px !important;
    max-height: calc(100dvh - 68px) !important;
    min-height: 0 !important;
    padding: 15px 12px 12px !important;
    border-radius: 18px !important;
    overflow: hidden !important;
  }

  .draw-panel .eyebrow {
    font-size: .62rem !important;
    letter-spacing: .12em !important;
  }

  .draw-panel h1 {
    font-size: clamp(2rem, 11vw, 2.75rem) !important;
    line-height: .98 !important;
    margin: 5px 0 12px !important;
  }

  .draw-cards {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    justify-items: center !important;
    align-items: center !important;
    gap: 7px 5px !important;
    width: min(100%, 310px) !important;
    margin: 0 auto !important;
  }

  .draw-choice {
    width: clamp(48px, 14vw, 62px) !important;
    height: auto !important;
    aspect-ratio: 2 / 3 !important;
  }

  .draw-choice:hover {
    transform: none !important;
  }

  .draw-result {
    min-height: 31px !important;
    height: auto !important;
    margin: 10px 0 0 !important;
    padding: 0 4px 2px !important;
    display: grid !important;
    place-items: center !important;
  }

  .draw-result strong {
    font-size: .9rem !important;
    line-height: 1.15 !important;
  }
}

/* iPhone SE e schermi molto bassi: ancora più compatto, senza tagliare il risultato. */
@media (max-width: 390px) and (max-height: 720px) {
  .draw-overlay {
    inset: 46px 0 0 !important;
    padding: 5px !important;
  }

  .draw-panel {
    width: calc(100vw - 10px) !important;
    max-height: calc(100dvh - 56px) !important;
    padding: 10px 8px 8px !important;
    border-radius: 15px !important;
  }

  .draw-panel h1 {
    font-size: 2rem !important;
    margin: 3px 0 8px !important;
  }

  .draw-cards {
    width: 260px !important;
    gap: 5px 4px !important;
  }

  .draw-choice {
    width: 54px !important;
  }

  .draw-result {
    min-height: 27px !important;
    margin-top: 6px !important;
  }

  .draw-result strong {
    font-size: .78rem !important;
  }
}

/* =========================================================
   v0.29.5 - Ultima rifinitura mobile + distinzione Scope
   ========================================================= */
@media (max-width: 820px) {
  /* Scope/buone: colore dedicato, diverso dal conteggio delle prese. */
  .scope-marker span,
  .bot-scope-marker span {
    background: #67d49a !important;
    color: #09251a !important;
    border-color: #c9ffe0 !important;
    box-shadow: 0 0 0 2px rgba(5,20,14,.88),0 4px 10px #000a !important;
  }

  /* La pila delle carte prese resta oro: i due numeri sono distinguibili a colpo d'occhio. */
  .captured-pile .pile-count,
  .captured-pile > span:not(.scope-marker span) {
    background: #f2c861 !important;
    color: #17130b !important;
  }

  /* Durante la distribuzione il mazzo vive sul bordo SINISTRO del tavolo,
     fuori dalla zona centrale delle carte. */
  .deal-deck,
  .game-layout .deal-deck,
  .game-layout[data-phase="dealing"] .deal-deck {
    left: 8px !important;
    right: auto !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    z-index: 22 !important;
  }

  .game-layout[data-phase="dealing"] .deal-deck img,
  .game-layout .deal-deck img {
    width: 39px !important;
    max-height: 62px !important;
  }

  /* Partita rapida / preparazione tavolo: header non affollato e pannello centrato. */
  .setup-nav {
    min-height: 52px !important;
    height: 52px !important;
    padding: 0 10px !important;
    gap: 8px !important;
  }

  .setup-nav .brand {
    font-size: .86rem !important;
    white-space: nowrap;
  }

  .setup-nav .nav-actions {
    margin-left: auto;
    gap: 6px !important;
  }

  .setup-nav .nav-actions > strong {
    display: none !important;
  }

  .setup-nav .logout-button {
    padding: 8px 10px !important;
    font-size: .76rem !important;
  }

  .setup-page-wide {
    min-height: calc(100dvh - 52px) !important;
    height: auto !important;
    padding: 10px 8px 18px !important;
    align-items: start !important;
  }

  .setup-panel-wide {
    width: 100% !important;
    max-width: 520px !important;
    padding: 20px 16px !important;
    border-radius: 20px !important;
  }

  .setup-heading h1 {
    font-size: clamp(2.05rem, 10vw, 2.7rem) !important;
    line-height: 1 !important;
    margin: 5px 0 8px !important;
  }

  .setup-heading p {
    font-size: .86rem !important;
    line-height: 1.35 !important;
  }

  .setup-form-wide {
    gap: 12px !important;
    margin-top: 14px !important;
  }

  .setup-form-wide .deck-preview,
  .setup-form-wide .background-preview {
    height: 126px !important;
  }

  .setup-form-wide .deck-preview img {
    height: 94px !important;
  }

  .setup-form-wide select {
    padding: 11px 12px !important;
  }

  .setup-form-wide .score-field {
    padding: 12px !important;
  }

  .setup-submit {
    height: 48px !important;
    margin-top: 0 !important;
  }
}

@media (max-width: 390px) and (max-height: 720px) {
  .setup-panel-wide {
    padding: 16px 13px !important;
  }
  .setup-heading h1 {
    font-size: 2rem !important;
  }
  .setup-form-wide .deck-preview,
  .setup-form-wide .background-preview {
    height: 108px !important;
  }
  .setup-form-wide .deck-preview img {
    height: 82px !important;
  }
}
\n\n/* =========================================================\n   v0.29.6 - Matta mobile + pareggi oltre il traguardo\n   ========================================================= */\n.tie-notice {\n  color: #f5cf68 !important;\n  font-weight: 850;\n}\n\n@media (max-width: 820px) {\n  /* La scelta della Matta deve stare interamente nella viewport mobile. */\n  .matta-choice-overlay {\n    inset: 52px 0 0 !important;\n    padding: 6px !important;\n    place-items: start center !important;\n    overflow-y: auto !important;\n    overscroll-behavior: contain;\n  }\n\n  .matta-choice-panel {\n    width: calc(100vw - 12px) !important;\n    max-width: 460px !important;\n    max-height: calc(100dvh - 64px) !important;\n    margin: 0 auto !important;\n    padding: 14px 12px 12px !important;\n    border-radius: 18px !important;\n    overflow-y: auto !important;\n  }\n\n  .matta-choice-panel .summary-kicker {\n    font-size: .62rem !important;\n    letter-spacing: .12em !important;\n  }\n\n  .matta-choice-panel h2 {\n    margin: 4px 0 5px !important;\n    font-size: clamp(1.85rem, 10vw, 2.45rem) !important;\n    line-height: .98 !important;\n  }\n\n  .matta-choice-panel > p {\n    margin: 6px 0 10px !important;\n    font-size: .76rem !important;\n    line-height: 1.3 !important;\n  }\n\n  .matta-choice-body {\n    display: grid !important;\n    grid-template-columns: 68px minmax(0, 1fr) !important;\n    gap: 9px !important;\n    align-items: start !important;\n  }\n\n  .matta-choice-card {\n    width: 62px !important;\n    margin-top: 4px !important;\n    transform: rotate(-3deg) !important;\n  }\n\n  .matta-options {\n    display: grid !important;\n    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n    gap: 6px !important;\n  }\n\n  .matta-option-button {\n    min-height: 47px !important;\n    padding: 6px 8px !important;\n    border-radius: 11px !important;\n  }\n\n  .matta-option-button strong {\n    font-size: 1rem !important;\n    line-height: 1 !important;\n  }\n\n  .matta-option-button span {\n    margin-top: 2px !important;\n    font-size: .62rem !important;\n    line-height: 1.1 !important;\n  }\n}\n\n@media (max-width: 390px) and (max-height: 720px) {\n  .matta-choice-overlay {\n    inset: 46px 0 0 !important;\n    padding: 4px !important;\n  }\n\n  .matta-choice-panel {\n    width: calc(100vw - 8px) !important;\n    max-height: calc(100dvh - 54px) !important;\n    padding: 10px 9px 9px !important;\n    border-radius: 15px !important;\n  }\n\n  .matta-choice-panel h2 {\n    font-size: 1.8rem !important;\n  }\n\n  .matta-choice-panel > p {\n    font-size: .68rem !important;\n    margin-bottom: 7px !important;\n  }\n\n  .matta-choice-body {\n    grid-template-columns: 56px minmax(0, 1fr) !important;\n    gap: 7px !important;\n  }\n\n  .matta-choice-card {\n    width: 52px !important;\n  }\n\n  .matta-options {\n    gap: 4px !important;\n  }\n\n  .matta-option-button {\n    min-height: 40px !important;\n    padding: 5px 6px !important;\n  }\n\n  .matta-option-button strong {\n    font-size: .9rem !important;\n  }\n\n  .matta-option-button span {\n    font-size: .56rem !important;\n  }\n}\n
/* === v0.30.4: statistiche avanzate, palmares e ranking === */
.insight-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.insight-topline .insight-tabs{margin-bottom:0}.ranking-link{display:inline-flex;align-items:center;gap:7px;padding:10px 15px;border-radius:999px;border:1px solid rgba(246,212,93,.25);background:rgba(246,212,93,.08);color:#f6d45d;font-weight:900;text-decoration:none;white-space:nowrap}.ranking-link:hover{background:rgba(246,212,93,.14)}.palmares-topline{margin-top:-8px}
.advanced-stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.advanced-stats-grid article,.target-performance-grid article{background:#103c31;border:1px solid rgba(255,255,255,.07);border-radius:16px;padding:18px}.advanced-stats-grid span,.target-performance-grid span{display:block;color:#9ebbb1}.advanced-stats-grid b,.target-performance-grid b{display:block;color:#f6d45d;font-size:28px;margin:5px 0}.advanced-stats-grid small,.target-performance-grid small{color:#8eafa2}.recent-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:15px}.form-dot{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:950;border:1px solid rgba(255,255,255,.08)}.form-dot.win{background:#195b42;color:#8df0bd}.form-dot.loss{background:#5d2927;color:#ffaaa1}.form-empty{color:#8eafa2}.target-performance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.rival-table-wrap{overflow-x:auto}.rival-table{width:100%;border-collapse:collapse;min-width:620px}.rival-table th,.rival-table td{padding:12px 10px;border-bottom:1px solid rgba(255,255,255,.07);text-align:center}.rival-table th:first-child,.rival-table td:first-child{text-align:left}.rival-table th{color:#8fb0a4;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.rival-table td{color:#dce9e4}.rival-table .positive{color:#7de3ac;font-weight:900}.rival-table .negative{color:#ffaaa1;font-weight:900}
.achievements-card{margin-bottom:22px}.achievements-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.achievements-grid article{display:flex;gap:13px;align-items:center;padding:16px;border-radius:16px;border:1px solid rgba(255,255,255,.07);background:#103c31}.achievements-grid article.locked{opacity:.48;filter:saturate(.65)}.achievements-grid article.unlocked{border-color:rgba(246,212,93,.18)}.achievement-icon{font-size:30px}.achievements-grid b{display:block;color:#fff3cf}.achievements-grid small{display:block;color:#8eafa2;margin-top:3px}
.ranking-explainer{margin-bottom:22px}.ranking-explainer p{color:#9ebbb1;margin:0;line-height:1.55}.ranking-list{display:grid;gap:9px}.ranking-entry{display:grid;grid-template-columns:62px minmax(190px,1.6fr) repeat(4,minmax(90px,.65fr));gap:12px;align-items:center;padding:14px;border-radius:16px;background:#103c31;border:1px solid rgba(255,255,255,.07)}.ranking-entry.podium{border-color:rgba(246,212,93,.25);background:linear-gradient(90deg,rgba(246,212,93,.08),#103c31 28%)}.ranking-position{font-size:1.35rem;font-weight:950;color:#f6d45d}.ranking-player strong{display:block;color:#f6eee0;font-size:1.05rem}.ranking-player small,.ranking-record small,.ranking-diff small,.ranking-titles small,.ranking-points small{display:block;color:#8eafa2;font-size:.76rem;margin-top:2px}.ranking-record,.ranking-diff,.ranking-titles,.ranking-points{text-align:center}.ranking-record b,.ranking-diff b,.ranking-titles b{color:#e7efe9}.ranking-points b{color:#f6d45d;font-size:1.2rem}
@media(max-width:900px){.advanced-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-entry{grid-template-columns:52px 1fr repeat(2,90px)}.ranking-diff,.ranking-titles{display:none}}
@media(max-width:600px){.insight-topline{align-items:flex-start;flex-direction:column}.advanced-stats-grid,.target-performance-grid,.achievements-grid{grid-template-columns:1fr 1fr}.ranking-entry{grid-template-columns:44px 1fr 78px;padding:12px 10px}.ranking-record{display:none}.ranking-points{text-align:right}.palmares-progress-grid{grid-template-columns:1fr 1fr}}


/* v0.30.5 — Ranking generale + evidenza giocatore */
.ranking-user-status{display:flex;align-items:center;gap:16px;max-width:1100px;margin:0 auto 22px;padding:18px 22px;border-radius:20px;background:#103c31;border:1px solid rgba(255,255,255,.08)}
.ranking-user-status.inside{border:2px solid #f6d45d;background:linear-gradient(110deg,rgba(246,212,93,.17),#103c31 42%);box-shadow:0 0 0 3px rgba(246,212,93,.07),0 16px 40px #0005}
.ranking-user-status.outside{border-color:#4c7567}
.ranking-user-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;background:#f6d45d;color:#14231d;font-size:1.45rem;font-weight:950}
.ranking-user-status.outside .ranking-user-icon{background:#254f42;color:#dce9e3}
.ranking-user-status small{display:block;color:#8eafa2;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.ranking-user-status strong{display:block;margin-top:2px;color:#fff4c4;font-size:1.25rem}
.ranking-user-status p{margin:4px 0 0;color:#b9cbc3}.ranking-user-status p b{color:#f6d45d}
.ranking-entry.current-user{position:relative;border:2px solid #f6d45d!important;background:linear-gradient(90deg,rgba(246,212,93,.22),#103c31 38%)!important;box-shadow:0 0 0 3px rgba(246,212,93,.08),0 10px 30px #0005}
.ranking-entry.current-user:before{content:"TU";position:absolute;right:10px;top:-9px;padding:3px 8px;border-radius:999px;background:#f6d45d;color:#17231e;font-size:.62rem;font-weight:950;letter-spacing:.08em}

/* La partita del giocatore deve saltare subito all'occhio in ogni fase del torneo. */
.tournament-page .human-match,
.tournament-page .tennis-match.human-match,
.tournament-page .bracket-match.human-match,
.tournament-page .group-match.human-match,
.tournament-page .placement-match.human-match{
  border:2px solid #f6d45d!important;
  outline:2px solid rgba(246,212,93,.22);
  background:linear-gradient(135deg,rgba(246,212,93,.16),rgba(17,45,36,.98))!important;
  box-shadow:0 0 0 3px rgba(246,212,93,.08),0 10px 28px #0006!important;
}
.tournament-page .human-match:before,
.tournament-page .tennis-match.human-match:before,
.tournament-page .bracket-match.human-match:before{
  content:"LA TUA PARTITA";
  position:absolute;
  left:10px;
  top:-10px;
  z-index:5;
  padding:3px 8px;
  border-radius:999px;
  background:#f6d45d;
  color:#17231e;
  font-size:.55rem;
  font-weight:950;
  letter-spacing:.06em;
}
.tournament-page .group-match.human-match{position:relative;margin-top:9px}
@media(max-width:600px){
  .ranking-user-status{padding:15px;gap:12px}
  .ranking-user-icon{flex-basis:40px;width:40px;height:40px}
  .ranking-user-status strong{font-size:1.05rem}
}

/* v0.30.6 — Ranking, sfide e obiettivi datati */
.ranking-color-legend{display:flex;align-items:center;gap:8px;margin-top:14px;color:#a8c1b7}.ranking-color-legend small{margin-right:12px}
.human-swatch,.bot-swatch{width:18px;height:8px;border-radius:999px;display:inline-block}.human-swatch{background:#8b79d8}.bot-swatch{background:#43a984}
.ranking-entry.human-player:not(.current-user){border-left:4px solid #8b79d8;background:linear-gradient(90deg,rgba(139,121,216,.12),#103c31 28%)}
.ranking-entry.bot-player{border-left:4px solid #43a984;background:linear-gradient(90deg,rgba(67,169,132,.10),#103c31 28%)}
.ranking-challenge{display:flex;justify-content:flex-end;align-items:center}.ranking-challenge form{margin:0}
.challenge-btn{border:1px solid #f2cb52;background:#f2cb52;color:#14231d;border-radius:10px;padding:8px 13px;font:inherit;font-weight:950;cursor:pointer;box-shadow:0 5px 14px #0003;transition:.15s ease}
.challenge-btn:hover{transform:translateY(-1px);filter:brightness(1.05)}.challenge-btn.self{cursor:default;background:#294f43;color:#9bb8ad;border-color:#416c5d;box-shadow:none}
.future-multiplayer-dialog{max-width:520px;width:calc(100% - 32px);padding:30px;border:1px solid #806f32;border-radius:24px;background:#092c24;color:#f7efd5;box-shadow:0 30px 90px #000b;text-align:center}
.future-multiplayer-dialog::backdrop{background:#020805cc;backdrop-filter:blur(5px)}.future-multiplayer-dialog h2{margin:8px 0 10px;font-size:2rem}.future-multiplayer-dialog p{color:#abc0b7;line-height:1.55}.future-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:#f2cb52;color:#14231d;font-size:2rem}.dialog-close{position:absolute;right:15px;top:12px;border:0;background:transparent;color:#d6e0db;font-size:1.8rem;cursor:pointer}.dialog-ok{margin-top:10px;border:0;border-radius:12px;padding:11px 18px;background:#f2cb52;color:#14231d;font-weight:950;cursor:pointer}
.achievement-date{display:block;margin-top:6px;color:#f0cd55;font-size:.78rem;font-weight:850;letter-spacing:.02em}
.achievements-grid article.unlocked{position:relative;overflow:hidden}.achievements-grid article.unlocked:after{content:"✓";position:absolute;right:14px;top:12px;color:#6fe0aa;font-weight:950;opacity:.55}
@media(max-width:900px){.ranking-entry{grid-template-columns:52px minmax(160px,1fr) 80px 75px 60px 80px 74px}.ranking-record,.ranking-diff,.ranking-titles{display:none}}
@media(max-width:600px){.ranking-entry{grid-template-columns:42px 1fr 64px 66px;gap:8px}.ranking-points{grid-column:3}.ranking-challenge{grid-column:4}.challenge-btn{padding:7px 10px}.ranking-color-legend{flex-wrap:wrap}.future-multiplayer-dialog{padding:24px 18px}.future-multiplayer-dialog h2{font-size:1.55rem}.achievement-date{font-size:.72rem}}
/* correzione griglia Ranking con colonna Sfida */
.ranking-entry{grid-template-columns:62px minmax(190px,1.6fr) repeat(4,minmax(90px,.65fr)) 78px}
@media(max-width:900px){.ranking-entry{grid-template-columns:52px minmax(160px,1fr) 80px 74px}}
@media(max-width:600px){.ranking-entry{grid-template-columns:42px 1fr 64px 66px}}


/* v0.30.7 — Home 2x3, ranking definitivo, statistiche e rivincite */
.home-dashboard{max-width:1700px;margin:0 auto;padding:34px 46px 70px}.home-header{display:flex;align-items:center;gap:24px;padding:14px 48px}.home-logo{font-size:1.35rem;font-weight:950;color:#fff1ce;text-decoration:none;margin-right:auto}.home-user{display:flex;flex-direction:column;line-height:1.15}.home-user small{color:#d8cfb9}.home-hero{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:42px;border:1px solid #294338;border-radius:30px;background:linear-gradient(120deg,#12261f,#0d1814);margin-bottom:22px}.home-hero h1{margin:12px 0;font-size:clamp(2.1rem,4vw,4rem);line-height:1.04;color:#fff}.home-hero p{margin:0;color:#c8d5cf;font-size:1.15rem}.home-trophy{flex:0 0 112px;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;align-content:center;background:#cbdc62;color:#10211b}.home-trophy b{font-size:2.2rem;line-height:1}.home-trophy span{margin-top:6px}.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.home-action{min-height:145px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:18px;padding:24px 28px;border-radius:25px;background:#192720;border:1px solid #30443b;text-decoration:none;color:#f8efd7;transition:.18s transform,.18s border-color}.home-action:hover{transform:translateY(-2px);border-color:#e7c850}.home-action h2{margin:0 0 6px;font-size:1.45rem}.home-action p{margin:0;color:#b7c9c0}.home-action>b{color:#f4d66a}.home-action-icon{font-size:1.6rem}.home-action.quick{border-left:4px solid #b7d35c}.home-action.tournament{border-left:4px solid #d67b57}.home-action.stats{border-left:4px solid #57a9d9}.home-action.palmares{border-left:4px solid #9571d4}.home-action.ranking{border-left:4px solid #f3cf55}.home-action.goals{border-left:4px solid #63c59c}
.ranking-cups{display:flex!important;gap:10px!important;align-items:center;justify-content:center;min-width:170px}.ranking-cups span{display:flex;align-items:center;gap:4px;padding:5px 7px;border-radius:10px;background:rgba(255,255,255,.045);white-space:nowrap}.ranking-cups span b{font-size:1rem!important}.ranking-entry.human-player:not(.current-user){border-left-color:#5ca8e8!important;background:linear-gradient(90deg,rgba(77,156,221,.10),#103c31 30%)!important}.ranking-entry.bot-player{border-left-color:#56c59b!important}.ranking-entry.current-user{border-color:#f6d45d!important}.rival-row td:first-child{border-left:4px solid transparent;padding-left:14px}.rival-row.bot-rival td:first-child{border-left-color:#56c59b}.rival-row.human-rival td:first-child{border-left-color:#5ca8e8}.rival-place{display:block;color:#88aa9c;margin-top:3px;font-weight:500}.rematch-btn{border:1px solid #e5c34b;border-radius:10px;background:#f2cc4b;color:#17221d;padding:8px 12px;font-weight:900;cursor:pointer}.compact-tabs{margin:12px 0 16px}.form-data-note{padding:14px 16px;border-radius:14px;background:#132f27;border:1px solid #385f51;color:#a9c0b6;margin:10px 0 16px}.quick-history-summary{border-style:dashed!important}
.level-mini-stats span{white-space:nowrap}
@media(max-width:800px){.home-dashboard{padding:18px 14px 42px}.home-header{padding:12px 16px}.home-user small{display:none}.home-hero{padding:24px 20px}.home-trophy{width:78px;height:78px;flex-basis:78px}.home-trophy b{font-size:1.6rem}.home-grid{grid-template-columns:1fr}.home-action{min-height:110px;padding:18px;grid-template-columns:38px 1fr auto}.ranking-cups{min-width:0;gap:4px}.ranking-cups span{padding:4px}.rival-table .rematch-btn{padding:6px 8px;font-size:.75rem}}


/* v0.30.9 — statistiche reali rapide/tornei + rifiniture Home */
.home-logout-btn{appearance:none;border:1px solid #7e704a;background:#17231e;color:#ffe5a7;border-radius:12px;padding:10px 16px;font:inherit;font-weight:900;cursor:pointer;box-shadow:none}
.home-logout-btn:hover{background:#22342b;border-color:#d5b950}
.stats-history-note{margin:18px 4px 0;padding:12px 15px;border:1px dashed #3d6758;border-radius:14px;color:#a9c2b7;background:#0e2f27}
.form-mode-panel[hidden]{display:none!important}.form-direction{display:flex;align-items:center;gap:8px;margin:18px 4px 6px;color:#739c8d;font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}.form-direction i{height:1px;flex:1;background:linear-gradient(90deg,transparent,#527d6d)}.form-direction b{color:#d7c56b;font-size:1rem;font-weight:500}.format-section-label{margin:10px 0 10px;color:#f0d45b;font-weight:950;text-transform:uppercase;letter-spacing:.11em;font-size:.76rem}.format-section-label.quick-label{margin-top:22px}.quick-format-card{border-style:dashed!important}.performance-grid>div:nth-child(8) b{color:#ff9c92}
@media(max-width:800px){.home-logout-btn{padding:8px 12px}.form-direction span{font-size:.62rem}.target-performance-grid{grid-template-columns:1fr}}

/* v0.31.2 — podio classifica e date piazzamenti */
.best-date{display:block;margin-top:6px;color:#f0cc66;font-style:normal;font-size:.72rem;font-weight:800}
.classification-podium-card.place-2{border-color:#8ea49c;background:#35484255}.classification-podium-card.place-3{border-color:#a87555;background:#563c2d55}
.classification-podium-card.place-1>span,.classification-podium-card.place-2>span,.classification-podium-card.place-3>span{filter:drop-shadow(0 4px 8px #0007)}


/* v0.32.0 — percorso metropolitano, Admin e Coppa Grande Genova */
.home-header-actions{display:flex;align-items:center;gap:12px}.home-admin-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;border:1px solid #d7b65b;border-radius:12px;color:#ffe39a;text-decoration:none;font-weight:900;background:#172019}.home-admin-btn:hover{background:#263524}
.territory-type-picker{display:flex;gap:12px;flex-wrap:wrap;border:0;padding:0;margin:0 0 18px}.territory-type-picker legend{width:100%;font-weight:900;margin-bottom:8px}.territory-type-picker label{display:flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid #35584c;border-radius:14px;background:#0f3028;cursor:pointer}.territory-type-picker input{accent-color:#f4cf49}.metro-preview{min-height:72px;display:flex;align-items:center;padding:14px 16px}
@media(max-width:700px){.home-header-actions{gap:7px}.home-admin-btn{padding:8px 10px}.territory-type-picker{display:grid;grid-template-columns:1fr}}

.coppa-sixteen-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.coppa-groups{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1200px){.coppa-sixteen-grid,.coppa-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.coppa-sixteen-grid,.coppa-groups{grid-template-columns:1fr}}
\n\n/* =========================================================\n   v0.32.1 - Registrazione territori + nomi aree definitivi\n   ========================================================= */\n.territory-type-picker{\n  display:grid !important;\n  grid-template-columns:1fr !important;\n  gap:12px !important;\n  margin:0 0 20px !important;\n}\n.territory-type-picker legend{\n  width:100%;\n  margin-bottom:2px !important;\n  font-weight:900;\n}\n.territory-type-picker .territory-option{\n  position:relative;\n  display:flex !important;\n  align-items:center !important;\n  gap:14px !important;\n  width:100%;\n  min-height:62px;\n  padding:14px 18px !important;\n  border-radius:16px !important;\n  cursor:pointer;\n  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease;\n}\n.territory-type-picker .territory-option span{\n  display:block;\n  white-space:nowrap;\n  font-weight:950;\n  font-size:1.05rem;\n  line-height:1.15;\n}\n.territory-type-picker .territory-option input{\n  width:20px;\n  height:20px;\n  flex:0 0 20px;\n  margin:0;\n}\n.territory-option-genoa{\n  background:linear-gradient(135deg,#123d31,#0d2f27) !important;\n  border:1px solid #4d8a73 !important;\n}\n.territory-option-genoa input{accent-color:#f4cf49 !important}\n.territory-option-genoa span{color:#ffe0a0}\n.territory-option-metro{\n  background:linear-gradient(135deg,#162f48,#10263b) !important;\n  border:1px solid #4f789f !important;\n}\n.territory-option-metro input{accent-color:#7cc2ff !important}\n.territory-option-metro span{color:#cfeaff}\n.territory-option:hover{transform:translateY(-2px)}\n.territory-option-genoa:has(input:checked){\n  border-color:#f4cf49 !important;\n  box-shadow:0 0 0 2px rgba(244,207,73,.12),0 10px 24px rgba(0,0,0,.25);\n}\n.territory-option-metro:has(input:checked){\n  border-color:#7cc2ff !important;\n  box-shadow:0 0 0 2px rgba(124,194,255,.12),0 10px 24px rgba(0,0,0,.25);\n}\n@media(max-width:520px){\n  .territory-type-picker .territory-option{min-height:56px;padding:12px 14px !important}\n  .territory-type-picker .territory-option span{font-size:.94rem}\n}\n
/* v0.33.0 — spiegazioni qualificazione e spareggio ripescaggio */
.tournament-qualification-explainer{margin:18px auto 24px;padding:18px 20px;border:1px solid rgba(246,212,93,.22);border-radius:18px;background:linear-gradient(135deg,rgba(17,55,44,.96),rgba(9,35,28,.98));box-shadow:0 12px 30px #0003}
.tournament-qualification-explainer h2{margin:4px 0 8px;color:#fff3c5;font-size:1.2rem}
.tournament-qualification-explainer p{margin:0;color:#c7d7d0;line-height:1.55}.tournament-qualification-explainer small{display:block;margin-top:10px;color:#90aea1;line-height:1.45}
.qualification-mini-formula{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:13px;padding:10px 12px;border-radius:13px;background:#0b2f26;border:1px solid rgba(255,255,255,.07);color:#d7e6df}
.qualification-mini-formula b,.qualification-mini-formula strong{color:#f6d45d}.qualification-mini-formula span{color:#6f9788;font-weight:900}
.qualification-tiebreak-card{position:relative;margin:16px 0;padding:18px 18px 16px;border:2px solid #f6d45d;border-radius:18px;background:linear-gradient(135deg,rgba(246,212,93,.18),rgba(15,55,44,.98));box-shadow:0 0 0 3px rgba(246,212,93,.08),0 16px 36px #0005}
.qualification-tiebreak-card .tiebreak-kicker{display:block;margin-bottom:6px;color:#f6d45d;font-size:.78rem;font-weight:950;text-transform:uppercase;letter-spacing:.08em}
.qualification-tiebreak-card strong{display:block;color:#fff4c7;font-size:1.08rem}.qualification-tiebreak-card p{margin:8px 0 14px;color:#cbd9d3;line-height:1.5}.qualification-tiebreak-card p b{color:#f6d45d}
@media(max-width:650px){.tournament-qualification-explainer,.qualification-tiebreak-card{padding:14px}.qualification-mini-formula{gap:6px;font-size:.86rem}}
.qualification-ranking-card .ranking-row.tiebreak{border-color:#f6d45d;background:rgba(246,212,93,.1)}
.qualification-ranking-card .ranking-row.tiebreak em{color:#f6d45d;font-weight:950}


/* =========================================================
   v0.34.0 - Registrazione territori stabile + UI compatta
   ========================================================= */

/* La colonna illustrata non deve spostarsi quando cambiano i campi a destra. */
.auth-page{
  align-items:start !important;
}
.auth-intro{
  align-self:start !important;
  min-height:640px;
  padding-top:34px;
}
.auth-intro .hero-card{
  align-self:center;
}

/* Selettore territorio: due righe, testi sempre su una sola riga. */
.auth-dark .territory-type-picker{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:10px !important;
  width:100% !important;
}
.auth-dark .territory-type-picker .territory-option{
  display:grid !important;
  grid-template-columns:26px 1fr !important;
  align-items:center !important;
  width:100% !important;
  min-height:58px !important;
  padding:12px 16px !important;
  border-radius:14px !important;
  transform:none !important;
}
.auth-dark .territory-type-picker .territory-option:hover{
  transform:none !important;
}
.auth-dark .territory-type-picker .territory-option span{
  display:block !important;
  white-space:nowrap !important;
  overflow:visible !important;
  font-size:1rem !important;
  line-height:1 !important;
  text-align:left !important;
}

/* Genova città: verde più caldo / oro. */
.auth-dark .territory-option-genoa{
  background:linear-gradient(135deg,#183f2b,#102d21) !important;
  border:1px solid #8b7130 !important;
}
.auth-dark .territory-option-genoa span{color:#f6d98c !important}
.auth-dark .territory-option-genoa input{accent-color:#f3c94f !important}
.auth-dark .territory-option-genoa:has(input:checked){
  background:linear-gradient(135deg,#244d31,#153724) !important;
  border-color:#f3c94f !important;
  box-shadow:0 0 0 2px rgba(243,201,79,.13) !important;
}

/* Città Metropolitana: blu petrolio / azzurro, ben distinta. */
.auth-dark .territory-option-metro{
  background:linear-gradient(135deg,#17384c,#102b3b) !important;
  border:1px solid #4f89aa !important;
}
.auth-dark .territory-option-metro span{color:#ccecff !important}
.auth-dark .territory-option-metro input{accent-color:#70c8ff !important}
.auth-dark .territory-option-metro:has(input:checked){
  background:linear-gradient(135deg,#20506a,#13384c) !important;
  border-color:#70c8ff !important;
  box-shadow:0 0 0 2px rgba(112,200,255,.14) !important;
}

/* Explainer tornei volutamente essenziale. */
.tournament-qualification-compact{
  padding:14px 18px !important;
}
.tournament-qualification-compact h2{
  margin:5px 0 0 !important;
  font-size:1.05rem !important;
  line-height:1.35 !important;
}
.qualification-source-classification{
  margin-top:18px !important;
  margin-bottom:22px !important;
}

@media(max-width:1050px){
  .auth-intro{min-height:auto;padding-top:0}
}
@media(max-width:560px){
  .auth-dark .territory-type-picker .territory-option span{
    font-size:.9rem !important;
  }
}


/* =========================================================
   v0.34.1 — Contatore Scope distinto anche su desktop
   ========================================================= */
.scope-marker span,
.bot-scope-marker span{
  background:#67d49a !important;
  color:#09251a !important;
  border-color:#c9ffe0 !important;
  box-shadow:0 0 0 3px rgba(5,20,14,.88),0 6px 16px #000c !important;
}
.captured-pile .pile-count{
  background:#f2c861 !important;
  color:#17130b !important;
}

/* Re della Liguria */
.liguria-home-banner,.liguria-tournament-banner,.liguria-mini-banner{display:flex;align-items:center;gap:24px;background:linear-gradient(135deg,#061c1c,#0a3028);border:1px solid #c99b3b66;border-radius:22px;padding:18px 24px;margin:0 0 22px;box-shadow:0 18px 40px #0003}.liguria-home-banner img,.liguria-tournament-banner img{width:190px;max-height:165px;object-fit:cover;object-position:top;border-radius:18px}.liguria-mini-banner img{width:105px;height:95px;object-fit:cover;object-position:top;border-radius:14px}.liguria-home-banner h2,.liguria-tournament-banner h2,.liguria-mini-banner h2{color:#f6d45d;margin:3px 0 7px}.liguria-home-banner p,.liguria-tournament-banner p,.liguria-mini-banner p{color:#a8c0b6;margin:0}.liguria-button{background:linear-gradient(135deg,#d7a82d,#7b4c12)!important;color:#fff!important}.ranking-cups{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:700px){.liguria-home-banner,.liguria-tournament-banner{flex-direction:column;text-align:center}.liguria-home-banner img,.liguria-tournament-banner img{width:150px}}

/* =========================================================
   v0.35.1 — Home Re della Liguria + 4 livelli landing
   ========================================================= */
.royal-home-nav{min-height:70px;display:flex;align-items:center;gap:28px;padding:0 42px;border-bottom:1px solid #9b742955;background:linear-gradient(90deg,#071717,#092421);position:sticky;top:0;z-index:30}.royal-brand{font-family:Georgia,serif;font-weight:900;font-size:1.55rem;letter-spacing:.08em;text-decoration:none;color:#fff5dc;text-transform:uppercase}.royal-brand span{color:#d9ac43}.royal-home-nav nav{display:flex;gap:24px;margin-left:auto}.royal-home-nav nav a{color:#e7e1d0;text-decoration:none;font-weight:800;font-size:.92rem}.royal-home-nav nav a:hover{color:#f4cc58}.royal-user-menu{display:flex;align-items:center;gap:10px}.royal-user-chip{display:flex;flex-direction:column;padding:7px 12px;border:1px solid #b6883055;border-radius:16px;background:#0a211d}.royal-user-chip b{color:#fff4d4}.royal-user-chip small{color:#9bb7aa;font-size:.72rem}.royal-home{max-width:1860px;margin:0 auto;padding:28px 28px 60px;background:radial-gradient(circle at 50% 0,#0b302a 0,transparent 34%)}.royal-hero-grid{display:grid;grid-template-columns:320px minmax(420px,1fr) minmax(520px,1.2fr);gap:16px}.royal-logo-card,.royal-intro-card,.royal-champions-card,.royal-panel{border:1px solid #a77d2f77;border-radius:22px;background:linear-gradient(145deg,#071d1b,#0b2924);box-shadow:0 16px 42px #0005}.royal-logo-card{display:grid;place-items:center;overflow:hidden;min-height:300px}.royal-logo-card img{width:100%;height:100%;object-fit:cover}.royal-intro-card{padding:38px 42px;display:flex;flex-direction:column;justify-content:center}.royal-intro-card h1{font-family:Georgia,serif;color:#f6d064;font-style:italic;font-size:clamp(2rem,3vw,3.4rem);margin:8px 0 18px}.royal-intro-card p{color:#c4d2cb;font-size:1.06rem;line-height:1.6;max-width:680px}.royal-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.royal-primary-link,.royal-secondary-link,.panel-link{display:inline-flex;align-items:center;justify-content:center;padding:11px 18px;border-radius:13px;text-decoration:none;font-weight:950}.royal-primary-link{background:#d7a83d;color:#132019}.royal-secondary-link{border:1px solid #d7a83d;color:#f5d36a}.royal-champions-card{padding:26px}.royal-section-heading .eyebrow{color:#c4a45e}.royal-section-heading h2{font-family:Georgia,serif;color:#f3d37c;font-size:1.6rem;margin:4px 0 16px}.royal-section-heading.row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.royal-city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.royal-city{text-align:center;color:#f9efd5;display:flex;flex-direction:column;align-items:center;gap:4px}.royal-city small{color:#93afa3;font-size:.72rem}.city-crest{width:88px;height:96px;border-radius:15px;padding:7px;background:linear-gradient(#f8f4e5,#dfd8c5);box-shadow:inset 0 0 0 2px #b38b3e,0 7px 18px #0005;display:grid;place-items:center;overflow:hidden}.city-crest img{max-width:100%;max-height:100%;object-fit:contain}.royal-crown-line{margin-top:18px;display:flex;justify-content:center;align-items:center;gap:16px;color:#f0bf3a;font-size:2rem}.royal-crown-line img{width:105px;height:78px;object-fit:cover;object-position:top;border-radius:14px}.royal-middle-grid{display:grid;grid-template-columns:1fr 1fr 1.15fr;gap:16px;margin-top:16px}.royal-panel{padding:24px}.royal-panel p{color:#b6c8c0;line-height:1.55}.royal-rule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.royal-rule-grid>div{display:grid;grid-template-columns:36px 1fr;gap:2px 8px;padding:12px;border:1px solid #2f554a;border-radius:13px;background:#09241f}.royal-rule-grid>div span{grid-row:1/3;font-size:1.5rem}.royal-rule-grid b{color:#f4edd7}.royal-rule-grid small{color:#91aaa0}.panel-link{margin-top:16px;padding:0;color:#f4cf60;justify-content:flex-start}.royal-weight-list{display:grid;gap:8px}.royal-weight-list>div{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;border-radius:12px;border:1px solid #365147;background:#112d27;color:#f7ebcd;font-weight:850}.royal-weight-list .liguria{border-color:#e3b83f;background:linear-gradient(90deg,#553815,#221f14)}.royal-weight-list .genoa{border-color:#b76859;background:linear-gradient(90deg,#4a211e,#241818)}.royal-weight-list .mid{border-color:#478cc0}.royal-weight-list .base{border-color:#4b9d73}.royal-weight-list .quick{border-color:#6f7a83}.royal-count{padding:8px 12px;border:1px solid #a98536;border-radius:999px;color:#f6d35d;font-weight:900}.royal-ranking-list{display:grid;gap:7px}.royal-ranking-row{display:grid;grid-template-columns:44px 1fr auto 90px;align-items:center;gap:10px;padding:10px 12px;border:1px solid #2c5045;border-radius:12px;background:#0b2a24}.royal-ranking-row.mine{box-shadow:0 0 0 2px #f0c44d;border-color:#f0c44d}.rank-pos{font-family:Georgia,serif;color:#f0cb5e;font-size:1.3rem;font-weight:900}.rank-name{display:flex;flex-direction:column}.rank-name b{color:#fff5dc}.rank-name small{color:#8eaaa0}.rank-cups{color:#d2bd86;white-space:nowrap}.rank-points{color:#f5d15e;text-align:right}.royal-current-rank{font-size:.85rem}.royal-bottom-grid{display:grid;grid-template-columns:1.45fr .72fr .9fr;gap:16px;margin-top:16px}.royal-bracket{display:grid;grid-template-columns:1fr .8fr;gap:14px}.bracket-cities{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bracket-cities>div{display:flex;align-items:center;gap:9px;border:1px solid #31574b;background:#0a2923;border-radius:12px;padding:8px}.bracket-cities img{width:42px;height:42px;object-fit:contain;background:#f3eee0;border-radius:8px;padding:3px}.bracket-cities span{display:flex;flex-direction:column}.bracket-cities b{color:#f7eed8}.bracket-cities small{color:#8ea89e}.bracket-random{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:1px dashed #a67f37;border-radius:14px;color:#e9d49d}.bracket-random strong{font-size:2.7rem}.bracket-random i{color:#f2c245}.royal-goal{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid #29463d}.royal-goal>span{font-size:1.8rem}.royal-goal div{display:flex;flex-direction:column}.royal-goal b{color:#f6edd6}.royal-goal small{color:#91aaa0}.royal-goal strong{color:#f6ce54}.royal-podium{display:grid;grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:8px;margin-top:26px}.royal-podium>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:14px;border:1px solid #4d5d58;background:#102a24;color:#f7eed8;padding:18px 8px}.royal-podium .gold{min-height:160px;border-color:#ddae38;box-shadow:0 0 24px #d9a52c33}.royal-podium .silver{min-height:120px}.royal-podium .bronze{min-height:105px;border-color:#8f5738}.royal-podium span{font-size:2rem}.royal-podium b{font-size:2rem;color:#f3cd57}.tournament-level-grid{grid-template-columns:repeat(4,1fr)!important}.tournament-level-grid article{min-height:250px}.tournament-level-grid .king-level{border-color:#d8ae45!important;background:linear-gradient(145deg,#2b2110,#11100b)!important}.tournament-level-grid .king-level h3{color:#f1c64f!important}
@media(max-width:1350px){.royal-hero-grid{grid-template-columns:260px 1fr}.royal-champions-card{grid-column:1/-1}.royal-middle-grid{grid-template-columns:1fr 1fr}.royal-ranking-preview{grid-column:1/-1}.royal-bottom-grid{grid-template-columns:1fr 1fr}.royal-bracket-card{grid-column:1/-1}.tournament-level-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:850px){.royal-home-nav{padding:10px 14px;flex-wrap:wrap}.royal-home-nav nav{order:3;width:100%;overflow:auto;gap:15px}.royal-user-chip small{display:none}.royal-home{padding:15px}.royal-hero-grid,.royal-middle-grid,.royal-bottom-grid{grid-template-columns:1fr}.royal-logo-card{min-height:220px}.royal-intro-card{padding:26px}.royal-champions-card{grid-column:auto}.royal-city-grid{grid-template-columns:1fr 1fr}.royal-ranking-preview,.royal-bracket-card{grid-column:auto}.royal-ranking-row{grid-template-columns:38px 1fr auto}.rank-cups{display:none}.royal-bracket{grid-template-columns:1fr}.tournament-level-grid{grid-template-columns:1fr!important}}


/* =========================================================
   v0.35.2 - Guida tornei personalizzata + rifiniture Home/Landing
   ========================================================= */

/* GIoca deve essere la voce più immediata della navigazione autenticata. */
.royal-home-nav nav a[href="/game/setup"],
.royal-home-nav nav .nav-play-highlight{
  color:#151b16!important;
  background:linear-gradient(135deg,#f2cd5d,#d8a83b);
  border:1px solid #ffe18a;
  border-radius:999px;
  padding:8px 15px;
  box-shadow:0 5px 18px rgba(220,170,52,.24);
}
.royal-home-nav nav a[href="/game/setup"]:hover{color:#101510!important;filter:brightness(1.07)}

/* Home: il logo principale resta intero e più piccolo; niente crop del testo. */
.royal-logo-card{min-height:280px;padding:18px;background:radial-gradient(circle at 50% 42%,#123b33,#071d1b 72%)}
.royal-logo-card img{width:min(88%,270px);height:auto;max-height:255px;object-fit:contain!important;border-radius:18px}
.royal-crown-line img{width:88px;height:62px;object-fit:contain;background:#061c19;padding:3px}

/* Stemmi meno invadenti, ma sempre leggibili. */
.city-crest{width:72px;height:78px;padding:6px;border-radius:13px}
.royal-city-grid{gap:8px}
.royal-city b{font-size:.92rem}
.bracket-cities img{width:36px;height:36px}

/* Landing: tutto il blocco principale deve stare nel viewport desktop senza tagliare i CTA. */
.hero-dark{
  min-height:calc(100vh - 78px)!important;
  padding-top:38px!important;
  padding-bottom:38px!important;
}
.hero-dark h1{font-size:clamp(3.4rem,6vw,6rem);margin:14px 0 22px;line-height:.93}
.hero-dark p{font-size:1.08rem;line-height:1.5;margin-bottom:0}
.hero-dark .actions{margin-top:22px}
.hero-dark .hero-card{height:min(47vw,430px);max-height:430px}

/* Nuova guida al percorso competitivo. */
.tournament-guide-page{max-width:1500px;margin:0 auto;padding:32px 28px 70px;color:#f4ead5;background:radial-gradient(circle at 50% 0,#0b302a 0,transparent 36%)}
.tournament-guide-hero{display:grid;grid-template-columns:1fr 220px;gap:30px;align-items:center;border:1px solid #a77d2f77;border-radius:26px;padding:34px 42px;background:linear-gradient(145deg,#071d1b,#0b2924)}
.tournament-guide-hero h1{font-family:Georgia,serif;color:#f4ce61;font-size:clamp(2.5rem,5vw,5rem);line-height:.98;margin:10px 0 16px}
.tournament-guide-hero p{max-width:850px;color:#afc5bb;font-size:1.08rem;line-height:1.55}
.tournament-guide-hero img{width:190px;height:190px;object-fit:contain;border-radius:18px;justify-self:end}
.tournament-guide-flow{display:grid;gap:16px;margin-top:20px}
.guide-step{display:grid;grid-template-columns:84px 1fr auto;gap:22px;align-items:center;border:1px solid #31564b;border-radius:22px;background:linear-gradient(145deg,#09241f,#0b3029);padding:25px 28px}
.guide-step-number{font-family:Georgia,serif;font-size:2.8rem;color:#e4b94d;font-weight:900}
.guide-kicker{display:block;color:#bba365;text-transform:uppercase;letter-spacing:.14em;font-weight:900;font-size:.75rem}
.guide-step h2{font-family:Georgia,serif;color:#f7d36c;font-size:2rem;margin:4px 0 9px}
.guide-step p{color:#b7c9c1;line-height:1.55;margin:4px 0}
.guide-connector{margin:0 6%;display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:center;padding:17px 22px;border:1px dashed #b78a34;border-radius:18px;background:#161f19;color:#ddcfaa}
.guide-connector>b{color:#f2cd59;font-size:1.14rem;text-align:right}
.guide-connector small{grid-column:1/-1;color:#8fa79d}
.guide-arrow{text-align:center;color:#e5b83d;font-size:2rem;font-weight:900;line-height:.7}
.guide-city-strip{display:flex;flex-direction:column;align-items:center;gap:7px;color:#d6c48f;min-width:145px}
.guide-city-logo{display:flex;align-items:center;gap:8px}.guide-city-logo img{width:46px;height:46px;object-fit:contain;background:#f4f0e4;border-radius:9px;padding:4px}
.guide-four-cities{display:grid;grid-template-columns:repeat(4,75px);gap:9px;align-items:center;justify-content:end}
.guide-four-cities span{display:flex;flex-direction:column;align-items:center;gap:4px;color:#f6ecd3;font-size:.74rem}.guide-four-cities span img{width:55px;height:55px;object-fit:contain;background:#f3eee2;border-radius:10px;padding:5px}.guide-four-cities i{grid-column:1/-1;text-align:center;color:#e8b83f;font-size:1.6rem}.guide-king-logo{grid-column:1/-1;width:105px;height:82px;object-fit:contain;justify-self:center;border-radius:12px}
.tournament-guide-actions{display:flex;justify-content:center;gap:12px;margin-top:26px}

@media(max-width:1050px){
  .tournament-guide-hero{grid-template-columns:1fr 150px}.tournament-guide-hero img{width:135px;height:135px}
  .guide-step{grid-template-columns:65px 1fr}.guide-step> :last-child:not(.guide-step-copy){grid-column:2}
  .guide-four-cities{justify-content:start}
}
@media(max-width:760px){
  .hero-dark{min-height:auto!important;padding-top:30px!important;padding-bottom:42px!important}.hero-dark .hero-card{height:300px}
  .tournament-guide-page{padding:16px 12px 45px}.tournament-guide-hero{grid-template-columns:1fr;padding:24px}.tournament-guide-hero img{justify-self:center;width:125px;height:125px}
  .guide-step{grid-template-columns:1fr;padding:20px}.guide-step-number{font-size:2rem}.guide-step h2{font-size:1.55rem}.guide-connector{margin:0;grid-template-columns:1fr}.guide-connector>b{text-align:left}.guide-four-cities{grid-template-columns:repeat(4,1fr);width:100%}.guide-four-cities span img{width:44px;height:44px}.tournament-guide-actions{flex-direction:column}.tournament-guide-actions a{width:100%}
}


/* v0.35.4 final */
.royal-home-nav nav .nav-play-highlight,.royal-home-nav nav a[href="/game/setup"]{background:linear-gradient(135deg,#e2b33f,#b77c19)!important;color:#102019!important;border:1px solid #f3cf67!important;border-radius:999px!important;padding:8px 16px!important;box-shadow:0 5px 18px rgba(220,170,52,.25)!important}
.royal-hero-grid.royal-hero-final{grid-template-columns:minmax(430px,1.05fr) minmax(280px,.72fr) minmax(500px,1.18fr);align-items:stretch}
.royal-champions-left{grid-column:auto!important;display:flex;flex-direction:column;justify-content:center}
.royal-champions-left .royal-city-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px}
.royal-champions-left .city-crest{width:132px;height:132px;padding:10px;border-radius:18px;overflow:hidden}
.royal-champions-left .city-crest img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain!important}
.royal-champions-left .royal-city b{font-size:1.08rem}
.royal-logo-center{padding:22px;min-height:360px;overflow:visible}
.royal-logo-center img{display:block;width:100%!important;height:100%!important;max-width:360px!important;max-height:360px!important;object-fit:contain!important;object-position:center!important;border-radius:18px}
.royal-intro-right{padding:38px 42px}.royal-intro-right h1{font-size:clamp(2.35rem,3.3vw,4rem)}
.tournament-guide-page{width:min(1500px,calc(100% - 40px))!important;max-width:1500px!important;margin:0 auto!important;padding:32px 0 70px!important;color:#f4ead5!important}
.tournament-guide-hero,.guide-step,.guide-connector{box-sizing:border-box}.tournament-guide-hero,.tournament-guide-flow,.guide-step{width:100%!important}
.guide-four-cities span img{display:block;width:72px!important;height:72px!important;object-fit:contain!important}.guide-king-logo{width:135px!important;height:100px!important;object-fit:contain!important}
@media(max-width:1250px){.royal-hero-grid.royal-hero-final{grid-template-columns:1fr 1fr}.royal-intro-right{grid-column:1/-1}}
@media(max-width:760px){.royal-hero-grid.royal-hero-final{grid-template-columns:1fr}.royal-intro-right{grid-column:auto;padding:26px}.royal-champions-left .city-crest{width:105px;height:105px}.royal-logo-center{min-height:250px}.royal-logo-center img{max-width:250px!important;max-height:250px!important}.tournament-guide-page{width:calc(100% - 24px)!important}}


/* =========================================================
   v0.35.5 — Stemmi città senza riquadri / nessun crop
   ========================================================= */
.royal-champions-left .royal-city{
  overflow:visible!important;
  min-width:0;
}
.royal-champions-left .city-crest{
  width:190px!important;
  height:170px!important;
  padding:0!important;
  margin:0 auto 5px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.royal-champions-left .city-crest img{
  width:auto!important;
  height:auto!important;
  max-width:185px!important;
  max-height:165px!important;
  object-fit:contain!important;
  object-position:center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.royal-champions-left .royal-city b{
  margin-top:2px!important;
}

/* Anche nella guida torneo gli stemmi restano trasparenti e interi. */
.guide-city-logo img,
.guide-four-cities span img,
.bracket-cities img{
  background:transparent!important;
  padding:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  object-fit:contain!important;
}
.guide-four-cities span img{
  width:82px!important;
  height:82px!important;
  max-width:82px!important;
  max-height:82px!important;
}
.guide-city-logo img{
  width:58px!important;
  height:58px!important;
}
.bracket-cities img{
  width:48px!important;
  height:48px!important;
}

@media(max-width:1250px){
  .royal-champions-left .city-crest{
    width:170px!important;
    height:150px!important;
  }
  .royal-champions-left .city-crest img{
    max-width:165px!important;
    max-height:145px!important;
  }
}
@media(max-width:760px){
  .royal-champions-left .city-crest{
    width:135px!important;
    height:120px!important;
  }
  .royal-champions-left .city-crest img{
    max-width:130px!important;
    max-height:115px!important;
  }
}

/* =========================================================
   v0.35.6 — RESPONSIVE SMARTPHONE GLOBALE
   Obiettivo: nessuna pagina tagliata a 320–430px.
   ========================================================= */
html,body{max-width:100%;overflow-x:hidden}
*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas{max-width:100%}
main,section,article,aside,header,nav,form,div{min-width:0}

@media (max-width: 760px){
  body{font-size:15px}

  /* HEADER GENERICI */
  .nav,.nav.dark,.nav.nav-dark,.setup-nav,.tournament-nav{
    min-height:auto!important;
    padding:10px 12px!important;
    gap:10px!important;
    flex-wrap:wrap!important;
  }
  .nav .brand,.nav.dark .brand,.nav.nav-dark .brand{
    font-size:1.05rem!important;
    white-space:normal!important;
  }
  .nav-actions{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .button.small,.compact-btn,.logout-button{padding:9px 12px!important;font-size:.88rem!important}

  /* HOME: header realmente mobile, niente contenuti fuori viewport */
  .royal-home-nav{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    align-items:center!important;
    gap:10px 8px!important;
    padding:10px 12px!important;
    overflow:visible!important;
  }
  .royal-brand{font-size:1.42rem!important;line-height:1!important;white-space:nowrap}
  .royal-user-menu{justify-self:end;gap:6px!important;max-width:100%}
  .royal-user-chip{max-width:145px;padding:6px 9px!important}
  .royal-user-chip b,.royal-user-chip small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .royal-user-chip small{display:none!important}
  .home-logout-btn,.home-admin-btn{padding:8px 10px!important;font-size:.85rem!important}
  .royal-home-nav nav{
    grid-column:1/-1!important;
    order:unset!important;
    width:100%!important;
    display:flex!important;
    gap:7px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    padding:3px 0 7px!important;
    scrollbar-width:thin;
    -webkit-overflow-scrolling:touch;
  }
  .royal-home-nav nav a{
    flex:0 0 auto!important;
    padding:7px 10px!important;
    white-space:nowrap!important;
    font-size:.9rem!important;
  }
  .royal-home-nav nav .nav-play-highlight,.royal-home-nav nav a[href="/game/setup"]{padding:7px 14px!important}
  .royal-home{width:100%!important;max-width:100%!important;padding:12px!important}
  .royal-hero-grid.royal-hero-final,.royal-middle-grid,.royal-bottom-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  .royal-champions-card,.royal-logo-card,.royal-intro-card,.royal-panel{width:100%!important;max-width:100%!important}
  .royal-champions-card{padding:20px 14px!important}
  .royal-champions-left .royal-city-grid{grid-template-columns:1fr 1fr!important;gap:18px 8px!important}
  .royal-champions-left .city-crest{width:128px!important;height:116px!important}
  .royal-champions-left .city-crest img{max-width:124px!important;max-height:112px!important}
  .royal-champions-left .royal-city b{font-size:1rem!important}
  .royal-logo-center{min-height:220px!important;padding:16px!important}
  .royal-logo-center img{width:auto!important;height:auto!important;max-width:230px!important;max-height:200px!important;object-fit:contain!important}
  .royal-intro-right{padding:22px 18px!important}
  .royal-intro-right h1{font-size:clamp(2rem,12vw,3rem)!important;line-height:1.02!important}
  .royal-intro-right p{font-size:.98rem!important}
  .royal-hero-actions{flex-direction:column!important;align-items:stretch!important}
  .royal-hero-actions a{width:100%!important;text-align:center}
  .royal-rule-grid{grid-template-columns:1fr!important}
  .royal-ranking-row{grid-template-columns:34px 1fr auto!important;gap:7px!important;padding:10px 8px!important}
  .rank-cups{display:none!important}
  .rank-points{font-size:.88rem!important}
  .royal-bracket{grid-template-columns:1fr!important}
  .bracket-cities{grid-template-columns:1fr 1fr!important}
  .royal-podium{gap:5px!important}

  /* PAGINE INSIGHT: stats / ranking / palmares / obiettivi */
  .insights-page,.ranking-page{
    width:100%!important;
    max-width:100%!important;
    padding:16px 12px 44px!important;
  }
  .insights-hero,.history-card,.performance-card,.level-trophies,.tournament-history-card,.ranking-board,.ranking-explainer,.ranking-user-status,.liguria-mini-banner{
    width:100%!important;
    max-width:100%!important;
    padding:18px 14px!important;
    border-radius:17px!important;
  }
  .insights-hero h1{font-size:2.15rem!important;line-height:1.05!important;overflow-wrap:anywhere}
  .insights-hero p,.history-card p{font-size:.95rem!important;overflow-wrap:anywhere}
  .section-title-row{display:flex!important;align-items:flex-start!important;gap:10px!important;flex-wrap:wrap!important}
  .section-title-row>div{min-width:0!important;flex:1 1 190px!important}
  .section-title-row h2{font-size:1.65rem!important;line-height:1.1!important;overflow-wrap:anywhere}
  .mini-badge{font-size:.78rem!important;padding:7px 10px!important}
  .insight-tabs,.compact-tabs,.form-mode-tabs,.history-filter-tabs{display:flex!important;gap:7px!important;overflow-x:auto!important;padding-bottom:5px!important;-webkit-overflow-scrolling:touch}
  .insight-tabs button,.insight-tabs a{flex:0 0 auto!important;white-space:nowrap!important;font-size:.88rem!important;padding:8px 11px!important}
  .stats-grid,.stats-panel,.performance-grid,.advanced-stats-grid,.target-performance-grid,.level-trophy-grid,.level-best-grid,.palmares-level-grid,.achievements-grid,.trophy-summary{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
  .stats-grid article,.advanced-stats-grid article,.performance-grid article,.target-performance-grid article,.trophy-summary article{padding:16px!important}
  .stats-grid b{font-size:2rem!important}
  .history-row,.palmares-row,.tournament-history-row{grid-template-columns:1fr!important;gap:7px!important;padding:12px 8px!important}
  .history-row>b,.history-row>span{text-align:left!important}
  .recent-form{display:flex!important;gap:6px!important;overflow-x:auto!important;padding-bottom:4px!important}
  .form-dot{flex:0 0 auto!important}

  /* RANKING: card compatta, zero overflow */
  .ranking-board{padding:15px 10px!important}
  .ranking-list{gap:8px!important}
  .ranking-entry{
    width:100%!important;
    max-width:100%!important;
    display:grid!important;
    grid-template-columns:42px minmax(0,1fr) auto!important;
    grid-template-areas:
      "pos player challenge"
      "pos record points"
      "titles titles titles"!important;
    gap:7px 8px!important;
    padding:12px 10px!important;
    align-items:center!important;
  }
  .ranking-position{grid-area:pos!important;font-size:1.25rem!important}
  .ranking-player{grid-area:player!important;min-width:0!important}
  .ranking-player strong,.ranking-player small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ranking-record{grid-area:record!important;text-align:left!important}
  .ranking-diff{display:none!important}
  .ranking-titles{grid-area:titles!important;display:flex!important;gap:7px!important;flex-wrap:wrap!important;justify-content:flex-start!important}
  .ranking-titles span{font-size:.85rem!important}
  .ranking-points{grid-area:points!important;text-align:right!important;white-space:nowrap!important}
  .ranking-challenge{grid-area:challenge!important;justify-self:end!important}
  .challenge-btn{padding:9px 10px!important;font-size:.85rem!important;min-width:0!important}
  .ranking-color-legend{flex-wrap:wrap!important}

  /* GUIDA TORNEO: tutto in colonna e testo sempre wrappato */
  .tournament-guide-page{width:100%!important;max-width:100%!important;padding:14px 10px 44px!important;margin:0!important}
  .tournament-guide-hero{grid-template-columns:1fr!important;padding:20px 15px!important;gap:15px!important}
  .tournament-guide-hero h1{font-size:clamp(2rem,11vw,3.1rem)!important;line-height:1.02!important;overflow-wrap:anywhere}
  .tournament-guide-hero img{justify-self:center!important;width:150px!important;height:125px!important;object-fit:contain!important}
  .tournament-guide-flow{width:100%!important;gap:12px!important}
  .guide-step{grid-template-columns:1fr!important;width:100%!important;padding:18px 14px!important;gap:9px!important}
  .guide-step-number{font-size:1.8rem!important}
  .guide-step h2{font-size:1.45rem!important;line-height:1.08!important;overflow-wrap:anywhere}
  .guide-step p,.guide-connector p{font-size:.94rem!important;line-height:1.5!important;overflow-wrap:anywhere}
  .guide-connector{grid-template-columns:1fr!important;margin:0!important;padding:15px 13px!important;width:100%!important}
  .guide-connector>b{text-align:left!important;overflow-wrap:anywhere}
  .guide-four-cities{grid-template-columns:1fr 1fr!important;gap:12px!important;width:100%!important}
  .guide-four-cities span{min-width:0!important}
  .guide-four-cities span img{width:70px!important;height:70px!important;object-fit:contain!important}
  .tournament-guide-actions{flex-direction:column!important;gap:8px!important;padding:0 2px!important}
  .tournament-guide-actions a{width:100%!important}

  /* TORNEI: contenitori fluidi; tabellone scorre dentro, non taglia la pagina */
  .tournament-page{width:100%!important;max-width:100%!important;padding:14px 10px 45px!important;overflow-x:hidden!important}
  .tournament-hero,.qualification-hero,.qualified-panel,.classification-section,.qualification-ranking-card,.coppa-ready-card,.qualification-rule-card{
    width:100%!important;max-width:100%!important;padding-left:14px!important;padding-right:14px!important;
  }
  .tournament-hero h1,.qualification-hero h1{font-size:clamp(2rem,10vw,3rem)!important;line-height:1.03!important;overflow-wrap:anywhere}
  .tournament-hero-actions{display:flex!important;gap:8px!important;flex-wrap:wrap!important}
  .qualification-rule-card{display:flex!important;gap:7px!important;flex-wrap:wrap!important;justify-content:center!important}
  .qualification-rule-number{min-width:88px!important;flex:1 1 88px!important}
  .qualified-grid,.coppa-nine-grid,.coppa-sixteen-grid,.classification-grid{grid-template-columns:1fr!important}
  .qualification-rankings{grid-template-columns:1fr!important;gap:12px!important}
  .ranking-columns{font-size:.7rem!important;gap:5px!important}
  .ranking-row-clean{grid-template-columns:minmax(0,1.4fr) .6fr .6fr .75fr!important;gap:5px!important;font-size:.82rem!important}
  .classification-podium{grid-template-columns:1fr!important}
  .tournament-bracket,.bracket-board,.knockout-bracket,.tournament-tree,.bracket-scroll{
    max-width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;padding-bottom:10px!important;
  }
  /* Se il tabellone ha colonne fisse, mantieni leggibilità ma solo dentro allo scroll. */
  .bracket-columns,.tournament-bracket-inner{min-width:720px!important}

  /* SETUP PARTITA/TORNEO */
  .setup-page,.setup-page-wide{width:100%!important;max-width:100%!important;padding:14px 10px 40px!important}
  .setup-panel,.setup-panel-wide{width:100%!important;max-width:100%!important;padding:20px 14px!important}
  .setup-heading{grid-template-columns:1fr!important;gap:8px!important}
  .setup-form,.setup-form-wide{grid-template-columns:1fr!important;gap:12px!important}
  .setup-choice,.deck-preview,.background-preview,.score-field,.setup-qualification-info{width:100%!important;max-width:100%!important}
  .score-options{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important}
  .setup-submit{width:100%!important}
  .setup-qualification-flow{display:flex!important;gap:6px!important;flex-wrap:wrap!important;justify-content:center!important}

  /* LOGIN / REGISTRAZIONE */
  .auth-page{width:100%!important;max-width:100%!important;padding:16px 10px 44px!important;grid-template-columns:1fr!important}
  .auth-intro,.panel.auth,.auth-dark{width:100%!important;max-width:100%!important;padding:20px 14px!important}
  .auth-intro h1{font-size:clamp(2.3rem,13vw,3.4rem)!important;line-height:1!important}
  .territory-picker,.territory-type-picker{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
  .territory-option{width:100%!important;min-height:auto!important;padding:14px!important}
  .panel.auth input,.panel.auth select{width:100%!important;max-width:100%!important}
  .municipality-preview{width:100%!important;max-width:100%!important}

  /* LANDING / INFO */
  .landing-dark,.section,.section-dark,.hero,.hero-dark{width:100%!important;max-width:100%!important}
  .hero,.hero-dark{padding:26px 14px!important;grid-template-columns:1fr!important}
  .hero h1{font-size:clamp(2.7rem,14vw,4rem)!important;line-height:.98!important;overflow-wrap:anywhere}
  .hero .actions,.actions{flex-direction:column!important;align-items:stretch!important}
  .hero .actions a,.actions a{width:100%!important;text-align:center}
  .section,.section-dark{padding:28px 12px!important}
  .grid.four,.dark-grid,.tournament-level-grid{grid-template-columns:1fr!important}
  .tournament-level-grid article{min-height:0!important}

  /* Tabelle e contenuti sconosciuti: scroll locale invece di crop globale */
  table{max-width:none}
  .table-wrap,.responsive-table,.history-table{width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
}

@media (max-width: 390px){
  .royal-brand{font-size:1.28rem!important}
  .royal-user-chip{max-width:118px!important}
  .royal-champions-left .city-crest{width:112px!important;height:104px!important}
  .royal-champions-left .city-crest img{max-width:108px!important;max-height:100px!important}
  .royal-champions-left .royal-city b{font-size:.95rem!important}
  .ranking-entry{grid-template-columns:36px minmax(0,1fr) auto!important;padding:10px 8px!important}
  .ranking-titles span{font-size:.78rem!important}
}

/* v0.35.7 - Tavolo mobile: mani grandi, center table compatto, draw panel grande */
@media (max-width:820px) and (orientation:portrait){
.game-layout{grid-template-rows:128px minmax(0,1fr) 174px!important;gap:3px!important}
.center-table{padding:0!important}.table-cards{max-height:calc(100% - 34px)!important;gap:3px!important;padding:0 2px!important}
.game-layout .table-cards img{width:clamp(47px,13.5vw,59px)!important;max-height:89px!important}
.bot-zone{justify-content:space-between!important}.bot-zone .bot-hand{margin-top:auto!important;margin-bottom:-2px!important;min-height:82px!important;padding:0 48px 0 4px!important;align-items:flex-end!important}
.game-layout .bot-hand img,.bot-hand.declared-hand img{width:clamp(58px,17vw,70px)!important;max-height:105px!important}
.player-zone{justify-content:flex-start!important}.player-zone .player-hand{margin:-2px 0 auto!important;min-height:126px!important;padding:0 3px!important;align-items:flex-start!important;gap:3px!important}
.game-layout .player-hand img{width:clamp(72px,22vw,90px)!important;max-height:135px!important}
.draw-panel{width:calc(100vw - 10px)!important;max-width:470px!important;padding:18px 10px 14px!important}
.draw-cards{width:min(100%,350px)!important;gap:9px 6px!important}.draw-choice{width:clamp(62px,18vw,76px)!important}.draw-result{margin-top:12px!important}
}
@media (max-width:390px) and (max-height:720px) and (orientation:portrait){
.game-layout{grid-template-rows:112px minmax(0,1fr) 154px!important}.bot-zone .bot-hand{min-height:72px!important;padding-right:44px!important}
.game-layout .bot-hand img,.bot-hand.declared-hand img{width:56px!important;max-height:84px!important}.player-zone .player-hand{min-height:112px!important}
.game-layout .player-hand img{width:clamp(66px,20vw,76px)!important;max-height:114px!important}.game-layout .table-cards img{width:clamp(44px,12.5vw,54px)!important;max-height:81px!important}
.draw-panel{padding:12px 7px 9px!important}.draw-cards{width:292px!important;gap:6px 4px!important}.draw-choice{width:64px!important}
}

/* =========================================================
   v0.35.8 - Tavolo mobile: aree giocatori più vicine al centro
   Bot più in basso, umano più in alto, center table più corto.
   ========================================================= */
@media (max-width:820px) and (orientation:portrait){
  /* Più spazio visivo alle zone giocatore, meno al centro. */
  .game-layout{
    grid-template-rows:136px minmax(0,1fr) 184px!important;
    gap:0!important;
  }

  /* Il bot scende verso il tavolo senza spostare header/nome. */
  .bot-zone{
    position:relative!important;
    z-index:4!important;
  }
  .bot-zone .bot-hand{
    position:relative!important;
    transform:translateY(20px)!important;
    margin-bottom:-20px!important;
  }

  /* L'umano sale verso il tavolo. */
  .player-zone{
    position:relative!important;
    z-index:4!important;
  }
  .player-zone .player-hand{
    position:relative!important;
    transform:translateY(-22px)!important;
    margin-top:-22px!important;
  }

  /* Mazzetti / prese / badge seguono la zona di gioco e restano lontani dai testi. */
  .bot-zone .capture-pile,
  .bot-zone .player-capture-pile,
  .bot-zone .scopa-pile,
  .bot-zone .taken-pile,
  .bot-zone .side-pile{
    transform:translateY(18px)!important;
  }
  .player-zone .capture-pile,
  .player-zone .player-capture-pile,
  .player-zone .scopa-pile,
  .player-zone .taken-pile,
  .player-zone .side-pile{
    transform:translateY(-20px)!important;
  }

  /* Tavolo centrale: sufficiente per 4 carte, ma non spreca altezza. */
  .center-table{
    min-height:0!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }
  .table-cards{
    max-height:300px!important;
    align-content:center!important;
    justify-content:center!important;
  }

  /* Messaggi centrali un po' più compatti. */
  .game-message,
  .turn-message,
  .table-message{
    margin-top:6px!important;
    margin-bottom:6px!important;
  }
}

/* iPhone SE: spostamento ancora più deciso ma senza invadere l'header/footer. */
@media (max-width:390px) and (max-height:720px) and (orientation:portrait){
  .game-layout{
    grid-template-rows:120px minmax(0,1fr) 164px!important;
  }
  .bot-zone .bot-hand{
    transform:translateY(24px)!important;
    margin-bottom:-24px!important;
  }
  .player-zone .player-hand{
    transform:translateY(-26px)!important;
    margin-top:-26px!important;
  }
  .bot-zone .capture-pile,
  .bot-zone .player-capture-pile,
  .bot-zone .scopa-pile,
  .bot-zone .taken-pile,
  .bot-zone .side-pile{
    transform:translateY(22px)!important;
  }
  .player-zone .capture-pile,
  .player-zone .player-capture-pile,
  .player-zone .scopa-pile,
  .player-zone .taken-pile,
  .player-zone .side-pile{
    transform:translateY(-24px)!important;
  }
  .center-table{
    padding-top:4px!important;
    padding-bottom:4px!important;
  }
}

/* =========================================================
   v0.35.9 - Identita giocatore nella barra bassa su mobile
   Libera completamente la zona superiore della mano.
   ========================================================= */
@media (max-width:820px) and (orientation:portrait){
  /* L'identita esce dal flusso della player-zone e occupa lo spazio
     inutilizzato accanto al pulsante Torna alla home. */
  .player-zone > .player-identity:not(.bot-identity){
    position:fixed!important;
    left:132px!important;
    right:auto!important;
    bottom:max(9px, env(safe-area-inset-bottom))!important;
    z-index:181!important;
    width:auto!important;
    max-width:calc(100vw - 145px)!important;
    min-height:38px!important;
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    margin:0!important;
    padding:3px 5px!important;
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    text-align:left!important;
    pointer-events:none!important;
  }

  .player-zone > .player-identity:not(.bot-identity) .avatar{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    font-size:.78rem!important;
  }

  .player-zone > .player-identity:not(.bot-identity) b{
    display:block!important;
    max-width:150px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
    font-size:.86rem!important;
    line-height:1.05!important;
  }

  .player-zone > .player-identity:not(.bot-identity) small{
    margin-top:1px!important;
    font-size:.67rem!important;
    line-height:1!important;
    white-space:nowrap!important;
  }

  .player-zone > .player-identity:not(.bot-identity) .dealer-mini-deck{
    transform:scale(.72)!important;
    transform-origin:left center!important;
  }

  /* La mano puo sfruttare tutta la parte alta della zona giocatore. */
  .player-zone .player-hand{
    width:100%!important;
    justify-content:center!important;
  }
}

@media (max-width:390px) and (max-height:720px) and (orientation:portrait){
  .game-home-button{
    left:7px!important;
    max-width:106px!important;
  }
  .player-zone > .player-identity:not(.bot-identity){
    left:116px!important;
    bottom:max(8px, env(safe-area-inset-bottom))!important;
    max-width:calc(100vw - 126px)!important;
    gap:5px!important;
    padding:2px 3px!important;
  }
  .player-zone > .player-identity:not(.bot-identity) .avatar{
    width:29px!important;
    height:29px!important;
    min-width:29px!important;
  }
  .player-zone > .player-identity:not(.bot-identity) b{
    max-width:120px!important;
    font-size:.78rem!important;
  }
  .player-zone > .player-identity:not(.bot-identity) small{
    font-size:.61rem!important;
  }
}

/* =========================================================
   v0.36.0 - Fix badge Scopa mobile
   Evita il salto laterale iniziale: l'animazione ora conserva
   sempre translateX(-50%) mentre scala/fade.
   ========================================================= */
@media (max-width:820px){
  @keyframes scopa-pop-mobile{
    0%{transform:translateX(-50%) scale(.72);opacity:0}
    100%{transform:translateX(-50%) scale(1);opacity:1}
  }

  .game-layout .message.scopa-message,
  .center-table .message.scopa-message{
    transform:translateX(-50%)!important;
    animation:scopa-pop-mobile .28s cubic-bezier(.2,.85,.25,1.18)!important;
    transform-origin:center center!important;
  }

  .game-layout .message.scopa-message.scopa-settled,
  .center-table .message.scopa-message.scopa-settled{
    transform:translateX(-50%)!important;
  }

  .game-layout .message.scopa-message.scopa-fade,
  .center-table .message.scopa-message.scopa-fade{
    transform:translateX(-50%) translateY(5px) scale(.98)!important;
  }
}
/* v0.36.2 - iPhone SE: badge Buona fuori dalla mano */
@media (max-width:390px) and (max-height:720px) and (orientation:portrait){
  .accusation-badge:not(.bot-accusation){
    bottom:58px!important;
    padding:5px 9px!important;
    gap:6px!important;
    max-width:calc(100vw - 24px)!important;
    font-size:.72rem!important;
  }

  .accusation-badge:not(.bot-accusation) strong{
    font-size:.78rem!important;
  }

  .accusation-badge:not(.bot-accusation) small{
    font-size:.61rem!important;
  }
}

/* v0.36.3 - iPhone SE 375x667: layout realmente compatto */
@media (max-width:390px) and (max-height:720px) and (orientation:portrait){
  .game-layout{
    height:calc(100dvh - 46px)!important;
    max-height:calc(100dvh - 46px)!important;
    min-height:0!important;
    grid-template-rows:88px minmax(0,1fr) 128px!important;
    gap:3px!important;
    padding:4px!important;
    overflow:hidden!important;
  }
  .bot-zone{padding:7px 8px!important}
  .center-table{padding:0 2px!important}
  .player-zone{padding:4px 5px 5px!important}
  .player-zone .player-hand{
    min-height:91px!important;
    padding:0 43px 34px 2px!important;
    gap:2px!important;
  }
  .game-layout .player-hand img{
    width:clamp(56px,17.5vw,66px)!important;
    max-height:98px!important;
  }
  .player-zone .player-accusation{
    position:absolute!important;
    left:50%!important;
    right:auto!important;
    bottom:39px!important;
    transform:translateX(-50%)!important;
    width:max-content!important;
    max-width:calc(100vw - 132px)!important;
    padding:4px 8px!important;
    gap:5px!important;
    border-radius:999px!important;
    z-index:190!important;
    white-space:nowrap!important;
  }
  .player-zone .player-accusation strong{font-size:.68rem!important}
  .player-zone .player-accusation small{font-size:.56rem!important}

  .matta-choice-overlay{
    position:fixed!important;
    inset:0!important;
    padding:5px!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
  }
  .matta-choice-panel{
    width:calc(100vw - 10px)!important;
    max-width:365px!important;
    max-height:calc(100dvh - 10px)!important;
    min-height:0!important;
    padding:14px 14px 12px!important;
    border-radius:18px!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
  .matta-choice-panel .summary-kicker{font-size:.58rem!important;letter-spacing:.12em!important}
  .matta-choice-panel h2{margin:4px 0 5px!important;font-size:1.85rem!important;line-height:.94!important}
  .matta-choice-panel>p{margin:0 0 8px!important;font-size:.72rem!important;line-height:1.28!important}
  .matta-choice-body{
    display:grid!important;
    grid-template-columns:72px minmax(0,1fr)!important;
    align-items:center!important;
    gap:10px!important;
  }
  .matta-choice-card{width:70px!important;max-height:108px!important;object-fit:contain!important;margin:0!important}
  .matta-options{display:grid!important;grid-template-columns:1fr!important;gap:5px!important}
  .matta-option-button{min-height:0!important;padding:7px 9px!important;border-radius:10px!important}
  .matta-option-button strong{font-size:.82rem!important}
  .matta-option-button span{font-size:.6rem!important}
}


/* v1.0.3 - conferma abbandono torneo: continua verde */
.confirm-abandon .confirm-continue-green{
  background:linear-gradient(180deg,#238b57,#17683f)!important;
  border-color:#47c985!important;
  color:#fff!important;
  box-shadow:0 8px 22px rgba(19,111,66,.22)!important;
}
.confirm-abandon .confirm-continue-green:hover{
  filter:brightness(1.08)!important;
}

/* v1.1.0 - email ready */
.auth-notice{
  margin:0 0 14px;
  padding:11px 13px;
  border:1px solid rgba(87,196,130,.55);
  border-radius:10px;
  background:rgba(35,139,87,.13);
  color:#d9f5e4;
  line-height:1.45;
}


/* v1.1.1 - Admin dashboard 12 KPI */
.admin-stats-grid.admin-stats-grid-12{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.admin-stats-grid.admin-stats-grid-12 .admin-stat-secondary{
  border-top-color:#58bfa0;
  background:linear-gradient(180deg,rgba(20,69,55,.96),rgba(16,56,45,.96));
}
.admin-table td small{
  display:block;
  margin-top:4px;
  opacity:.68;
  white-space:nowrap;
}
@media (max-width:1200px){
  .admin-stats-grid.admin-stats-grid-12{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:680px){
  .admin-stats-grid.admin-stats-grid-12{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* v1.1.2 - Admin partite compatte R/T */
.admin-matches-cell{
  min-width:92px;
}
.admin-matches-total{
  display:block;
  margin-bottom:6px;
  font-size:1.05rem;
  color:#fff;
}
.admin-match-badges{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:nowrap;
}
.admin-match-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  min-width:34px;
  padding:3px 6px;
  border-radius:999px;
  font-size:.73rem;
  line-height:1;
  white-space:nowrap;
  font-weight:700;
}
.admin-match-badge b{
  font-size:.7rem;
  font-weight:900;
}
.admin-match-quick{
  color:#9ef0c8;
  background:rgba(45,166,112,.16);
  border:1px solid rgba(78,211,151,.42);
}
.admin-match-quick b{
  color:#57d99d;
}
.admin-match-tournament{
  color:#f8d674;
  background:rgba(194,145,31,.16);
  border:1px solid rgba(241,190,57,.43);
}
.admin-match-tournament b{
  color:#ffc943;
}


/* v1.2.0 - Profilo utente e dettaglio Admin */
.royal-user-chip-link{text-decoration:none;color:inherit;transition:.16s ease}
.royal-user-chip-link:hover{transform:translateY(-1px);border-color:rgba(246,195,75,.55)}
.profile-nav{min-height:72px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:#0d2f25;border-bottom:1px solid rgba(255,255,255,.09)}
.profile-nav a,.profile-nav button{border:1px solid rgba(246,195,75,.38);background:#173d30;color:#f6e6ad;border-radius:10px;padding:9px 14px;text-decoration:none;font-weight:800}
.profile-page,.admin-user-page{width:min(1480px,calc(100% - 32px));margin:24px auto 50px}
.profile-hero,.admin-user-hero{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;padding:24px;border:1px solid rgba(246,195,75,.28);border-radius:20px;background:linear-gradient(135deg,#123b2e,#0e2c23)}
.profile-avatar,.admin-user-avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-size:2rem;font-weight:900;background:#b06c50;color:#fff}
.profile-identity h1,.admin-user-hero h1{margin:4px 0;color:#fff;font-size:2rem}
.profile-identity p,.admin-user-hero p{margin:0;color:#a8cabc}
.profile-meta,.admin-user-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.profile-meta span,.admin-user-tags span{padding:5px 9px;border-radius:999px;background:rgba(255,255,255,.06);color:#b9d2c8;font-size:.78rem}
.admin-user-tags .active{color:#9bf0c6}.admin-user-tags .blocked{color:#ff9f96}
.profile-rank,.admin-user-rank{text-align:center;min-width:110px}
.profile-rank small,.admin-user-rank small{display:block;color:#91b5a6}
.profile-rank strong,.admin-user-rank strong{display:block;color:#ffd34e;font-size:2rem}
.profile-rank span,.admin-user-rank span{color:#cbdad4}
.profile-kpis,.admin-user-kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin:16px 0}
.profile-kpis article,.admin-user-kpis article{padding:16px 12px;border:1px solid rgba(79,190,149,.25);background:#12352a;border-radius:14px;text-align:center}
.profile-kpis b,.admin-user-kpis b{display:block;font-size:1.35rem;color:#ffd44f}
.profile-kpis span,.admin-user-kpis span{display:block;color:#fff;font-weight:800;font-size:.78rem;margin-top:3px}
.profile-kpis small,.admin-user-kpis small{display:flex;justify-content:center;gap:5px;margin-top:7px}
.profile-kpis em,.admin-user-kpis i{font-style:normal;padding:2px 6px;border-radius:999px;font-size:.66rem}
.profile-kpis .r,.admin-user-kpis .r{color:#6fe0ad;background:rgba(43,163,109,.16)}
.profile-kpis .t,.admin-user-kpis .t{color:#ffd158;background:rgba(194,145,31,.16)}
.profile-grid,.admin-user-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.profile-panel,.admin-user-panel{padding:22px;border:1px solid rgba(255,255,255,.09);background:#102e25;border-radius:18px}
.profile-panel-head h2{margin:3px 0 16px;color:#fff}
.profile-data-list>div{display:flex;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.profile-data-list span{color:#8fb1a4}.profile-data-list strong{color:#fff;text-align:right}
.profile-note{color:#789a8e;font-size:.8rem;line-height:1.5}
.profile-password-form{display:grid;gap:11px}
.profile-password-form label{display:grid;gap:5px;color:#c9ddd5;font-size:.82rem;font-weight:800}
.profile-password-form input{width:100%;box-sizing:border-box;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0c241d;color:#fff}
.profile-password-form button{border:0;border-radius:10px;padding:12px 16px;background:#2f9a68;color:#fff;font-weight:900}
.profile-success,.profile-error{padding:10px 12px;border-radius:9px;margin-bottom:12px;font-weight:800;font-size:.84rem}
.profile-success{background:rgba(43,154,104,.16);color:#92ebbe}.profile-error{background:rgba(183,62,56,.16);color:#ffaaa3}
.action-view{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:8px;background:#2b79a7;color:#fff!important;text-decoration:none;font-weight:900;font-size:.76rem}
.admin-activity-row{display:grid;grid-template-columns:34px 1fr 28px 54px;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.activity-kind{width:27px;height:27px;border-radius:7px;display:grid;place-items:center;font-weight:900;font-size:.72rem}
.activity-kind.quick{background:rgba(43,163,109,.18);color:#69e0aa}
.activity-kind.tournament{background:rgba(194,145,31,.18);color:#ffd057}
.admin-activity-row strong{display:block;color:#fff;font-size:.82rem}
.admin-activity-row small{display:block;color:#789b8d;font-size:.7rem}
.admin-activity-row .win{color:#62d99f}.admin-activity-row .loss{color:#ff8078}
.activity-score{color:#d9e5e0;font-weight:800;text-align:right}
@media(max-width:1100px){.profile-kpis,.admin-user-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.profile-hero,.admin-user-hero{grid-template-columns:auto 1fr}.profile-rank,.admin-user-rank{grid-column:1/-1}.profile-grid,.admin-user-grid{grid-template-columns:1fr}.profile-kpis,.admin-user-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* v1.3.0 - cambio territorio e nuova carriera */
.profile-territory-value{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.profile-change-territory{border:1px solid rgba(255,204,71,.55);background:rgba(255,204,71,.1);color:#ffd34f;border-radius:8px;padding:5px 10px;font-size:.72rem;font-weight:900;cursor:pointer}
.profile-territory-result{margin-top:14px}
.territory-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:18px;background:rgba(2,10,8,.82);backdrop-filter:blur(8px)}
.territory-modal.open{display:flex}
.territory-modal-card{position:relative;width:min(620px,100%);max-height:92vh;overflow:auto;padding:28px;border-radius:20px;background:#102f26;border:1px solid rgba(240,189,63,.45);box-shadow:0 28px 80px rgba(0,0,0,.5)}
.territory-modal-card h2{margin:5px 0 12px;color:#fff;font-size:1.8rem}
.territory-modal-x{position:absolute;right:16px;top:14px;border:0;background:transparent;color:#a9c0b6;font-size:1.7rem;cursor:pointer}
.territory-warning{padding:13px 14px;border-radius:11px;background:rgba(177,58,50,.12);border:1px solid rgba(226,92,81,.28);color:#d8d8d3;line-height:1.55}
.territory-warning strong{color:#ff9b91}.territory-warning.irreversible{color:#ff9b91;font-weight:900}
.territory-type-choice{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}
.territory-type-btn{padding:12px;border-radius:11px;border:1px solid rgba(255,255,255,.12);background:#0d261f;color:#9eb7ad;font-weight:900;cursor:pointer}
.territory-type-btn.active{border-color:#e3b640;background:rgba(227,182,64,.14);color:#ffd456}
#territory-change-form label{display:grid;gap:6px;margin:11px 0;color:#c8d8d1;font-size:.82rem;font-weight:900}
#territory-change-form select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0b241c;color:#fff}
.territory-current-new{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}
.territory-current-new>div{padding:12px;border-radius:11px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.territory-current-new small{display:block;color:#78998c;margin-bottom:4px}.territory-current-new strong{color:#fff;font-size:.82rem}
.territory-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.territory-confirm-actions button{padding:12px;border-radius:10px;font-weight:900;cursor:pointer}
.territory-cancel{background:#218758;border:1px solid #43be80;color:#fff}
.territory-confirm{background:#a53b35;border:1px solid #dc6259;color:#fff}
@media(max-width:600px){.territory-type-choice,.territory-current-new,.territory-confirm-actions{grid-template-columns:1fr}.territory-modal-card{padding:23px 17px}}


/* v1.3.1 - Admin alert e cronologia territorio */
.admin-user-name-line{
  display:flex;
  align-items:center;
  gap:7px;
}
.admin-territory-siren{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:25px;
  height:25px;
  border-radius:50%;
  text-decoration:none!important;
  background:rgba(220,70,61,.14);
  border:1px solid rgba(255,92,82,.55);
  box-shadow:0 0 0 0 rgba(255,78,68,.35);
  animation:adminTerritoryPulse 1.7s infinite;
}
.admin-territory-recent-text{
  color:#ff8078!important;
  font-weight:800;
}
.admin-table tr.territory-changed-row{
  box-shadow:inset 4px 0 0 #df5148;
  background:linear-gradient(90deg,rgba(185,54,47,.07),transparent 18%);
}
@keyframes adminTerritoryPulse{
  0%{box-shadow:0 0 0 0 rgba(255,78,68,.35)}
  70%{box-shadow:0 0 0 7px rgba(255,78,68,0)}
  100%{box-shadow:0 0 0 0 rgba(255,78,68,0)}
}

.admin-territory-history-panel{
  margin-top:16px;
  padding:22px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;
  background:#102e25;
}
.admin-territory-history-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.admin-territory-history-head h2{
  margin:3px 0 5px;
  color:#fff;
}
.admin-territory-history-head p{
  margin:0;
  max-width:780px;
  color:#82a397;
  line-height:1.5;
}
.admin-recent-change-pill{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:999px;
  color:#ff9b92;
  background:rgba(190,54,47,.14);
  border:1px solid rgba(238,87,78,.4);
  font-size:.76rem;
  font-weight:900;
}
.admin-no-territory-history{
  padding:18px;
  border-radius:12px;
  color:#8eaa9f;
  background:rgba(255,255,255,.035);
  border:1px dashed rgba(255,255,255,.1);
}
.admin-territory-timeline{
  display:grid;
  gap:10px;
}
.admin-territory-change-item{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:18px;
  align-items:center;
  padding:15px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:#0d281f;
}
.admin-territory-change-item.recent{
  border-color:rgba(230,79,70,.42);
  box-shadow:inset 4px 0 0 #df5148;
}
.admin-territory-change-date span{
  display:block;
  color:#77998c;
  font-size:.72rem;
  margin-bottom:4px;
}
.admin-territory-change-date strong{
  color:#fff;
  font-size:.82rem;
}
.admin-territory-change-route{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:13px;
  align-items:center;
}
.admin-territory-location{
  padding:10px 12px;
  border-radius:11px;
  background:rgba(255,255,255,.04);
}
.admin-territory-location small{
  display:block;
  margin-bottom:3px;
  color:#78998d;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.admin-territory-location strong{
  display:block;
  color:#fff;
}
.admin-territory-location span{
  display:block;
  margin-top:2px;
  color:#a2bcb1;
  font-size:.78rem;
}
.admin-territory-location em{
  display:inline-block;
  margin-top:6px;
  padding:3px 6px;
  border-radius:999px;
  font-style:normal;
  font-size:.64rem;
  color:#9fc4b4;
  background:rgba(72,167,128,.1);
}
.admin-territory-location.old strong{
  color:#ff9b92;
}
.admin-territory-location.new strong{
  color:#75dfae;
}
.admin-territory-arrow{
  color:#e7bd4a;
  font-size:1.35rem;
  font-weight:900;
}
@media(max-width:760px){
  .admin-territory-history-head{
    display:grid;
  }
  .admin-recent-change-pill{
    justify-self:start;
  }
  .admin-territory-change-item{
    grid-template-columns:1fr;
  }
  .admin-territory-change-route{
    grid-template-columns:1fr;
  }
  .admin-territory-arrow{
    transform:rotate(90deg);
    justify-self:center;
  }
}


/* v1.3.2 - cooldown cambio territorio 30 giorni */
.profile-change-territory.cooldown,
.profile-change-territory:disabled{
  cursor:not-allowed;
  opacity:.48;
  color:#a5aaa7;
  border-color:rgba(255,255,255,.16);
  background:rgba(255,255,255,.045);
  box-shadow:none;
}
.profile-territory-cooldown{
  display:grid;
  gap:3px;
  margin-top:13px;
  padding:11px 13px;
  border-radius:11px;
  background:rgba(215,157,42,.09);
  border:1px solid rgba(232,184,62,.28);
}
.profile-territory-cooldown span{
  color:#e7bd4c;
  font-size:.74rem;
  font-weight:900;
}
.profile-territory-cooldown strong{
  color:#f4f0dc;
  font-size:.82rem;
}
.profile-territory-cooldown small{
  color:#91a99e;
}
.territory-cooldown-warning{
  padding:10px 12px;
  border-radius:10px;
  color:#e8c65d;
  background:rgba(207,157,41,.08);
  border:1px solid rgba(224,178,57,.22);
  line-height:1.45;
}
.territory-cooldown-warning strong{
  color:#ffd65d;
}
.admin-cooldown-active{
  color:#e4b942!important;
}

/* v1.4.0 privacy domain ready */
.site-legal-footer{display:flex;justify-content:center;align-items:center;gap:18px;flex-wrap:wrap;padding:18px 14px;color:#78968a;font-size:.72rem}.site-legal-footer nav{display:flex;gap:12px}.site-legal-footer a{color:#9eb7ad;text-decoration:none}.site-legal-footer a:hover{color:#e7bd4a}
.legal-page{min-height:100vh;background:#071b15;color:#d7e1dc}.legal-shell{width:min(900px,calc(100% - 28px));margin:0 auto;padding:32px 0 50px}.legal-back{display:inline-block;margin-bottom:16px;color:#e1ba4c;text-decoration:none;font-weight:800}
.legal-card{padding:clamp(20px,4vw,42px);border:1px solid rgba(255,255,255,.09);border-radius:20px;background:#0d2a21;box-shadow:0 22px 70px rgba(0,0,0,.25)}.legal-card h1{font-size:clamp(2rem,6vw,3.4rem);margin:4px 0}.legal-card h2{margin:28px 0 8px;color:#f0c954;font-size:1.08rem}.legal-card p{color:#b8cbc3;line-height:1.7}.legal-card a{color:#e8c553}.legal-updated{color:#78998c!important}
.legal-note{padding:13px 14px;border:1px solid rgba(230,184,67,.25);border-radius:10px;background:rgba(230,184,67,.07)}.legal-cookie-table{display:grid;grid-template-columns:1fr 2fr 1fr;margin:16px 0;border:1px solid rgba(255,255,255,.1);border-radius:10px;overflow:hidden}.legal-cookie-table>div{padding:10px;color:#b8cbc3}.legal-cookie-table .head{background:rgba(232,195,83,.09);color:#edcb68;font-weight:900}
@media(max-width:620px){.legal-cookie-table{grid-template-columns:1fr}.legal-cookie-table .head{display:none}.site-legal-footer{gap:8px}}

/* v1.5.0 - profilo avatar */
.profile-avatar-photo,.admin-user-avatar-photo{overflow:hidden}
.profile-avatar-photo img,.admin-user-avatar-photo img{width:100%;height:100%;object-fit:cover;display:block}
.profile-avatar-manager{display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:center;margin:0 0 18px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(255,255,255,.025)}
.profile-avatar-manager-preview{width:88px;height:88px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:#a9644d;color:#fff;font-size:1.8rem;font-weight:900;border:2px solid rgba(239,194,74,.25)}
.profile-avatar-manager-preview img{width:100%;height:100%;object-fit:cover;display:block}
.profile-avatar-manager-copy>strong{display:block;color:#fff;margin-bottom:4px}
.profile-avatar-manager-copy>small{display:block;color:#83a397;line-height:1.4;margin-bottom:10px}
.profile-avatar-actions{display:flex;gap:7px;flex-wrap:wrap}
.profile-avatar-actions button,.avatar-delete{border-radius:8px;padding:7px 11px;font-weight:900;cursor:pointer;font-size:.75rem}
.avatar-choose{border:1px solid rgba(232,191,74,.42);background:rgba(232,191,74,.1);color:#f0c957}
.avatar-save{border:1px solid #43b97c;background:#25845a;color:#fff}
.avatar-save:disabled{opacity:.4;cursor:not-allowed}
.profile-avatar-delete-form{margin-top:7px}
.avatar-delete{border:1px solid rgba(218,86,76,.4);background:rgba(180,58,51,.1);color:#ff968d}
.admin-avatar-moderation{display:grid;grid-template-columns:76px 1fr;gap:12px;align-items:center;margin-bottom:16px;padding:12px;border-radius:12px;border:1px solid rgba(231,187,67,.2);background:rgba(255,255,255,.025)}
.admin-avatar-moderation img{width:72px;height:72px;border-radius:50%;object-fit:cover}
.admin-avatar-moderation strong{display:block;color:#fff}
.admin-avatar-moderation small{display:block;color:#82a296;margin:3px 0 7px}
.admin-avatar-moderation button{border:1px solid rgba(221,83,74,.45);background:rgba(184,57,50,.12);color:#ff9289;border-radius:8px;padding:6px 9px;font-weight:900;cursor:pointer}
@media(max-width:520px){.profile-avatar-manager{grid-template-columns:1fr;text-align:center}.profile-avatar-manager-preview{margin:auto}.profile-avatar-actions{justify-content:center}.profile-avatar-delete-form{text-align:center}}


/* v1.5.1 - avatar identita visiva */
.royal-brand-with-avatar{
  display:flex;
  align-items:center;
  gap:10px;
  flex:0 0 auto;
}
.home-brand-avatar{
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:50%;
  overflow:hidden;
  display:block;
  border:2px solid rgba(239,190,62,.62);
  box-shadow:0 0 0 2px rgba(255,255,255,.035);
}
.home-brand-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.ranking-player-with-avatar{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.ranking-player-with-avatar>div{
  min-width:0;
}
.ranking-player-avatar{
  width:38px;
  height:38px;
  flex:0 0 38px;
  border-radius:50%;
  overflow:hidden;
  border:2px solid rgba(74,190,145,.55);
  background:#153d30;
}
.ranking-entry.current-user .ranking-player-avatar{
  border-color:#f0c54c;
}
.ranking-player-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.game-player-avatar{
  overflow:hidden;
}
.game-player-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

@media(max-width:900px){
  .home-brand-avatar{
    width:32px;
    height:32px;
    flex-basis:32px;
  }
}
@media(max-width:620px){
  .ranking-player-avatar{
    width:32px;
    height:32px;
    flex-basis:32px;
  }
}


/* v1.6.0 - sicurezza e stato sistema */
.admin-system-panel{
  margin:20px 0;
  padding:20px;
  border:1px solid rgba(85,190,148,.24);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(15,52,41,.98),rgba(11,39,31,.98));
}
.admin-system-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
  margin-bottom:14px;
}
.admin-system-head h2{
  margin:3px 0 0;
  color:#fff;
}
.admin-system-version{
  padding:6px 10px;
  border-radius:999px;
  color:#f1cb58;
  background:rgba(226,181,55,.1);
  border:1px solid rgba(226,181,55,.3);
  font-weight:900;
  font-size:.75rem;
}
.admin-system-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.admin-system-grid>div{
  min-width:0;
  padding:11px 12px;
  border-radius:11px;
  background:rgba(255,255,255,.035);
  border:1px solid rgba(255,255,255,.065);
}
.admin-system-grid span{
  display:block;
  color:#7e9f92;
  font-size:.68rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:4px;
}
.admin-system-grid strong{
  display:block;
  color:#e8f0ec;
  font-size:.8rem;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.admin-system-grid strong.ok{color:#68dfa9}
.admin-system-grid strong.warn{color:#f0c65a}
.admin-system-grid strong.off{color:#8da79d}
.admin-system-foot{
  display:flex;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:13px;
  color:#78998c;
  font-size:.72rem;
}
.admin-system-foot b{color:#a7c1b7}
.admin-system-foot a{
  color:#dfbc53;
  text-decoration:none;
  font-weight:800;
}
@media(max-width:1000px){
  .admin-system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:520px){
  .admin-system-grid{grid-template-columns:1fr}
}


/* v1.6.2 - correzione territorio Admin */
.admin-territory-edit-value{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.admin-territory-correct-open{
  border:1px solid rgba(68,169,211,.45);
  background:rgba(47,126,164,.12);
  color:#8ed7f4;
  border-radius:8px;
  padding:5px 9px;
  font-size:.7rem;
  font-weight:900;
  cursor:pointer;
}
.admin-territory-correct-open.secondary{
  flex:0 0 auto;
  padding:8px 11px;
}
.admin-territory-correction-panel{
  margin-top:16px;
  padding:22px;
  border:1px solid rgba(63,157,199,.25);
  border-radius:18px;
  background:#102e25;
}
.admin-correction-history{
  margin-top:18px;
}
.admin-correction-history h3{
  color:#fff;
  margin:0 0 10px;
  font-size:.92rem;
}
.admin-correction-item{
  display:grid;
  grid-template-columns:130px 1fr;
  gap:14px;
  padding:13px;
  margin-top:8px;
  border-radius:12px;
  background:#0d281f;
  border:1px solid rgba(255,255,255,.07);
}
.admin-correction-meta strong{
  display:block;
  color:#fff;
  font-size:.76rem;
}
.admin-correction-meta span{
  display:block;
  margin-top:4px;
  color:#78998c;
  font-size:.68rem;
}
.admin-correction-item>p{
  grid-column:2;
  margin:0;
  color:#8da99e;
  font-size:.74rem;
}
.admin-territory-correct-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(2,10,8,.84);
  backdrop-filter:blur(8px);
}
.admin-territory-correct-modal.open{
  display:flex;
}
.admin-territory-correct-card{
  position:relative;
  width:min(620px,100%);
  max-height:92vh;
  overflow:auto;
  padding:28px;
  border-radius:20px;
  background:#102f26;
  border:1px solid rgba(64,166,209,.42);
  box-shadow:0 28px 80px rgba(0,0,0,.5);
}
.admin-territory-correct-card h2{
  margin:5px 0 12px;
  color:#fff;
  font-size:1.8rem;
}
.admin-correction-warning{
  padding:12px 13px;
  margin-bottom:16px;
  border-radius:10px;
  color:#aac9bc;
  background:rgba(49,135,172,.09);
  border:1px solid rgba(67,166,208,.22);
  line-height:1.5;
}
.admin-correction-warning strong{
  color:#8ed7f4;
}
.admin-territory-type-btn{
  padding:12px;
  border-radius:11px;
  border:1px solid rgba(255,255,255,.12);
  background:#0d261f;
  color:#9eb7ad;
  font-weight:900;
  cursor:pointer;
}
.admin-territory-type-btn.active{
  border-color:#4ba6cd;
  background:rgba(48,137,176,.14);
  color:#9bddf8;
}
#admin-territory-correct-form label{
  display:grid;
  gap:6px;
  margin:11px 0;
  color:#c8d8d1;
  font-size:.82rem;
  font-weight:900;
}
#admin-territory-correct-form select,
#admin-territory-correct-form input[type="text"]{
  width:100%;
  box-sizing:border-box;
  padding:11px 12px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.14);
  background:#0b241c;
  color:#fff;
}
.admin-correction-confirm{
  background:#2e7899;
  border:1px solid #54acd1;
  color:#fff;
}
@media(max-width:700px){
  .admin-correction-item{
    grid-template-columns:1fr;
  }
  .admin-correction-item>p{
    grid-column:1;
  }
}


/* v1.6.3 - livelli competitivi 2x2 */
.level-grid-2x2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
}
.level-grid-2x2 > *{
  min-width:0;
  width:auto!important;
}
.level-best-grid.level-grid-2x2 > div,
.palmares-level-grid.level-grid-2x2 > article{
  height:100%;
  box-sizing:border-box;
}
@media(max-width:700px){
  .level-grid-2x2{
    grid-template-columns:1fr!important;
  }
}


/* v1.6.4 - reset statistiche Admin */
.admin-reset-all-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin:20px 0;
  padding:20px;
  border-radius:18px;
  border:1px solid rgba(215,73,64,.42);
  background:linear-gradient(135deg,rgba(83,26,24,.22),rgba(16,46,37,.98));
}
.admin-reset-all-panel h2{
  margin:4px 0 5px;
  color:#ff8d84;
}
.admin-reset-all-panel p{
  margin:0;
  max-width:880px;
  color:#a8beb5;
  line-height:1.45;
}
.admin-reset-all-trigger{
  flex:0 0 auto;
  border:1px solid #e15c52;
  background:#9c352f;
  color:#fff;
  padding:11px 15px;
  border-radius:10px;
  font-weight:900;
  cursor:pointer;
}
.admin-reset-card .confirm-icon,
.admin-reset-all-card .confirm-icon{
  background:#a93c35;
  border-color:#e16c63;
}
.admin-reset-all-card{
  width:min(570px,calc(100vw - 30px));
}
.global-reset-lead{
  color:#ffaaa3!important;
  font-weight:800;
}
.global-reset-list{
  display:grid;
  gap:7px;
  margin:14px 0;
  padding:13px;
  border-radius:11px;
  background:rgba(155,47,42,.1);
  border:1px solid rgba(220,82,73,.25);
}
.global-reset-list span{
  color:#e9c1bd;
  font-size:.82rem;
}
.global-reset-preserve{
  color:#8fd1b1!important;
}
.global-reset-session-note{
  color:#d8b862!important;
  font-size:.78rem!important;
}
#admin-reset-all-form{
  display:grid;
  gap:8px;
  margin-top:15px;
}
#admin-reset-all-form label{
  color:#d5e1dc;
  font-size:.8rem;
}
#admin-reset-all-form input{
  width:100%;
  box-sizing:border-box;
  padding:11px 12px;
  border-radius:9px;
  border:1px solid rgba(222,82,73,.45);
  background:#101d19;
  color:#fff;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
#admin-reset-all-submit:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.admin-success-note.danger-success{
  border-color:rgba(221,83,74,.3);
  color:#ffaaa3;
}
@media(max-width:700px){
  .admin-reset-all-panel{
    align-items:stretch;
    flex-direction:column;
  }
  .admin-reset-all-trigger{
    width:100%;
  }
}

/* v1.8.0 - sicurezza account */
.profile-security-divider{border:0;border-top:1px solid rgba(255,255,255,.12);margin:28px 0}
.profile-danger-zone{margin-top:8px;padding:18px;border:1px solid rgba(210,72,72,.55);border-radius:16px;background:rgba(120,25,25,.12)}
.profile-danger-zone h2{margin-top:5px}.profile-danger-zone p{line-height:1.55}
.profile-delete-account{background:#9f2f2f!important;color:#fff!important}
.profile-password-form button:disabled{opacity:.45;cursor:not-allowed}

/* v1.9.0 - registrazione legale */
.legal-register-check{display:flex!important;align-items:flex-start;gap:10px;margin:18px 0 6px!important;padding:13px 14px;border:1px solid rgba(196,157,71,.28);border-radius:12px;background:rgba(196,157,71,.06);line-height:1.45}
.legal-register-check input{width:auto!important;margin-top:3px;flex:0 0 auto}
.legal-register-check a{color:#d8b85d;font-weight:800}
.legal-register-note{margin:0 0 16px;color:#8ca69c;font-size:.75rem;line-height:1.45}

/* v1.9.1 - ultimo accesso oggi in Admin */
.admin-login-today{
  display:inline-block;
  padding:4px 7px;
  border-radius:7px;
  background:rgba(224,183,57,.14);
  border:1px solid rgba(224,183,57,.42);
  color:#f0cf59;
  font-weight:900;
  box-shadow:0 0 0 1px rgba(224,183,57,.04) inset;
}

/* v1.10.1 - toggle visibilita password */
.password-field{
  position:relative;
  display:block;
}
.password-field input{
  width:100%;
  padding-right:58px !important;
}
.password-toggle{
  position:absolute;
  right:12px;
  top:50%;
  transform:translateY(-50%);
  width:38px;
  height:38px;
  border:0;
  border-radius:9px;
  background:transparent;
  color:inherit;
  font-size:20px;
  line-height:1;
  cursor:pointer;
  opacity:.78;
}
.password-toggle:hover,
.password-toggle:focus-visible{
  opacity:1;
  background:rgba(255,255,255,.08);
  outline:none;
}

/* v1.10.2 - rifiniture produzione */
.tournament-level-grid article{
  position:relative;
}
.tournament-level-grid .level-icon{
  position:absolute;
  top:26px;
  right:28px;
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid #d5aa454d;
  border-radius:16px;
  background:#d7aa3b12;
  font-size:30px;
  line-height:1;
  filter:drop-shadow(0 5px 12px #0008);
}
.tournament-level-grid .king-level .king-icon{
  border-color:#e8bb4e99;
  background:linear-gradient(145deg,#563c10,#261d0d);
  box-shadow:0 0 24px #e1ad3230;
  font-size:34px;
}

/* L'occhio deve restare leggibile anche sopra gli input chiari */
.password-toggle{
  color:#2a210f !important;
  background:#d6aa4930 !important;
  border:1px solid #9d742b66 !important;
  opacity:1 !important;
  text-shadow:none !important;
}
.password-toggle:hover,
.password-toggle:focus-visible{
  color:#151007 !important;
  background:#d6aa4960 !important;
  border-color:#8e6721 !important;
}

/* v1.10.3 - Info progetto ampliata */
.info-panel-expanded{
  max-width:1050px;
}
.info-panel-expanded > h1{
  margin-bottom:28px;
}
.info-lead{
  display:flex;
  gap:22px;
  align-items:flex-start;
  padding:24px;
  margin:0 0 24px;
  border:1px solid #c79a3b55;
  border-radius:18px;
  background:linear-gradient(145deg,#1b1912,#12110e);
}
.info-lead-icon{
  flex:0 0 58px;
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:#c89b3330;
  color:#e1b54c;
  font-size:30px;
}
.info-lead h2{
  margin:0 0 8px;
}
.info-lead p{
  margin:0;
}
.info-feature-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:24px 0 28px;
}
.info-feature-card{
  min-height:220px;
  padding:24px;
  border:1px solid #c79a3b45;
  border-radius:18px;
  background:linear-gradient(145deg,#171610,#10100d);
}
.info-feature-card h3{
  margin:12px 0 10px;
  color:#f5ddb0;
}
.info-feature-card p{
  margin:0;
  line-height:1.72;
}
.info-feature-icon{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  border-radius:14px;
  background:#d3a63a18;
  border:1px solid #d3a63a40;
  font-size:27px;
}
.info-feature-warning{
  border-color:#d88f3955;
  background:linear-gradient(145deg,#1d160f,#11100d);
}
.info-story-card{
  display:flex;
  gap:22px;
  padding:24px;
  margin:16px 0;
  border:1px solid #ffffff13;
  border-radius:18px;
  background:#ffffff08;
}
.info-story-card h2{
  margin:0 0 10px;
}
.info-story-card p{
  margin:0 0 10px;
  line-height:1.72;
}
.info-story-card p:last-child{
  margin-bottom:0;
}
.info-story-icon{
  flex:0 0 50px;
  width:50px;
  height:50px;
  display:grid;
  place-items:center;
  border-radius:14px;
  background:#d5aa4520;
  font-size:25px;
}
.info-final-note{
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px 22px;
  margin:26px 0 0;
  border:1px solid #4f8d5b66;
  border-radius:16px;
  background:#244f2e26;
}
.info-final-note > span{
  font-size:28px;
  color:#e1b54c;
}
.info-final-note p{
  margin:0;
}
.info-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:26px;
}

/* v1.10.3 - Palmarès, 6 card 3 sopra + 3 sotto */
.palmares-progress-grid-6{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:16px;
}
.palmares-progress-grid-6 article{
  position:relative;
  min-height:170px;
}
.palmares-progress-grid-6 .progress-icon{
  position:absolute;
  top:18px;
  right:20px;
  font-size:25px;
  opacity:.9;
}
.palmares-progress-grid-6 article > span:not(.progress-icon){
  padding-right:42px;
}

@media (max-width:800px){
  .info-feature-grid{
    grid-template-columns:1fr;
  }
  .info-lead,
  .info-story-card{
    flex-direction:column;
  }
  .palmares-progress-grid-6{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media (max-width:520px){
  .palmares-progress-grid-6{
    grid-template-columns:1fr !important;
  }
}
