:root{font-family:'DM Sans',sans-serif;color:#f8f1df;background:#071a13;--gold:#e6bb67;--cream:#f8f1df;--green:#25bd82;--ruby:#e86469;--panel:rgba(8,32,24,.88)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;min-height:100%;background:#061711}body{min-height:100dvh}button,input{font:inherit}.hidden{display:none!important}.screen{min-height:100dvh}.welcome-screen,.game-screen{position:relative;background:linear-gradient(rgba(2,15,10,.27),rgba(2,14,9,.72)),url('/assets/burraco-table-bg.png') center/cover fixed}.welcome-screen{display:grid;place-items:center;padding:28px 20px 18px;overflow:hidden}.welcome-screen:before,.welcome-screen:after{content:'♠';position:fixed;color:rgba(232,192,111,.08);font:260px/1 serif;transform:rotate(-16deg);pointer-events:none}.welcome-screen:before{left:-70px;top:-35px}.welcome-screen:after{content:'♥';right:-70px;bottom:-30px;transform:rotate(12deg)}
.welcome-card{z-index:1;width:min(100%,460px);padding:28px 26px 24px;border:1px solid rgba(240,203,127,.28);border-radius:30px;background:linear-gradient(145deg,rgba(6,34,25,.96),rgba(3,20,15,.93));box-shadow:0 30px 90px #0009,inset 0 1px rgba(255,255,255,.05);backdrop-filter:blur(16px)}.brand-mark{position:relative;display:grid;place-items:center;width:64px;height:64px;margin:auto;border:1px solid #d8a94c;border-radius:50%;background:#0c3a2b;box-shadow:0 0 30px #d5a54522;color:var(--gold);font:34px serif}.brand-mark i{position:absolute;right:-3px;bottom:-4px;color:#d95b5e;font:18px serif}.eyebrow{margin:16px 0 6px;text-align:center;color:var(--gold);font-size:10px;font-weight:700;letter-spacing:.3em}.welcome-card h1{margin:0;text-align:center;color:#fff;font:800 clamp(50px,15vw,76px)/.74 'Playfair Display',serif;letter-spacing:-.065em}.welcome-card h1 em{color:var(--gold);font-weight:600}.lead{margin:24px 0;color:#a9b9ae;text-align:center;font-size:13px;line-height:1.6}.welcome-card form{display:grid;gap:10px}.welcome-card label{color:#98aa9f;font-size:9px;font-weight:700;letter-spacing:.18em}.welcome-card input{width:100%;height:51px;padding:0 15px;border:1px solid #335044;border-radius:12px;outline:none;background:#102f25;color:white;text-transform:none}.welcome-card input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #dcb35f20}.avatar-row{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-bottom:6px}.avatar-choice,.camera-button{display:grid;place-items:center;aspect-ratio:1;border:1px solid #345245;border-radius:50%;background:#14382c;color:white;font-size:23px;cursor:pointer;overflow:hidden}.avatar-choice.active{border:2px solid var(--gold);background:#255441;box-shadow:0 0 0 3px #dcb35f20}.camera-button input{display:none}.camera-button.photo{padding:0;background-size:cover;background-position:center;font-size:0}.button{min-height:52px;border-radius:13px;font-size:11px;font-weight:800;letter-spacing:.13em;cursor:pointer}.button.primary{display:flex;align-items:center;justify-content:space-between;padding:0 18px;border:1px solid #f1cf86;background:linear-gradient(135deg,#efc875,#bd8433);box-shadow:0 8px 24px #c99b4350;color:#1a251d}.button.primary b{font-size:21px}.button.secondary{border:1px solid #537063;background:#173a2e;color:#f4eddf}.divider{display:flex;align-items:center;gap:10px;color:#788b80;font-size:10px}.divider:before,.divider:after{content:'';height:1px;flex:1;background:#30493e}.join-row{display:grid;grid-template-columns:1fr 108px;gap:8px}.join-row input{text-align:center;text-transform:uppercase;letter-spacing:.25em}.error{min-height:16px!important;margin:0!important;color:#ff8c8c!important;font-size:11px!important}.welcome-screen footer{z-index:1;margin-top:18px;color:#7b8d83;font:10px 'DM Sans';letter-spacing:.08em}
.game-screen{padding-bottom:110px}.topbar{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:calc(14px + env(safe-area-inset-top)) 18px 12px;border-bottom:1px solid #d7a9582b;background:rgba(5,27,19,.88);backdrop-filter:blur(15px)}.mini-brand{display:flex;align-items:center;gap:8px;color:var(--gold)}.mini-brand span{font-size:26px}.mini-brand strong{color:white;font:700 11px/1 'Playfair Display';letter-spacing:.03em}.room-code{display:flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid #426353;border-radius:30px;background:#12382b;color:white}.room-code small{color:#8fa297;font-size:7px;letter-spacing:.15em}.room-code b{color:var(--gold);letter-spacing:.13em}.room-code span{font-size:16px}.icon-button{justify-self:end;width:38px;height:38px;border:1px solid #395849;border-radius:50%;background:#12372a;color:#ddc994;letter-spacing:2px}.match-area{width:min(100%,820px);margin:auto;padding:22px 14px}.match-heading{display:flex;align-items:center;justify-content:space-between;margin:0 5px 12px;color:#8fa297;font-size:8px;font-weight:700;letter-spacing:.16em}.match-heading b{font-size:8px}.match-heading i{color:var(--gold);font-style:normal}.scoreboard{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:10px}.team{min-width:0;padding:17px 14px 14px;border:1px solid rgba(255,255,255,.11);border-radius:19px;background:linear-gradient(145deg,rgba(17,58,44,.94),rgba(6,29,21,.96));box-shadow:0 16px 40px #0005}.team-moon{background:linear-gradient(145deg,rgba(55,31,35,.94),rgba(26,18,20,.96))}.team-title{display:flex;align-items:center;gap:8px}.team-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#2bb77d22;color:#4ed89e;font-size:17px}.team-moon .team-title>span{background:#e9657020;color:#ef7d82}.team-title small{display:block;color:#8aa095;font-size:6px;letter-spacing:.19em}.team-title h2{overflow:hidden;margin:2px 0 0;color:#5ad9a5;font:700 clamp(11px,3.6vw,15px) 'Playfair Display';letter-spacing:.04em;text-overflow:ellipsis}.team-moon .team-title h2{color:#ef7d82}.big-score{display:block;margin:14px 0 12px;color:white;font:800 clamp(45px,13vw,72px)/1 'Playfair Display';letter-spacing:-.05em}.players{display:grid;gap:6px;min-height:70px}.player{display:flex;align-items:center;gap:7px;min-width:0;color:#cfdbd3;font-size:10px}.player-avatar{position:relative;display:grid;place-items:center;width:29px;height:29px;flex:0 0 auto;overflow:hidden;border:1px solid #587568;border-radius:50%;background:#183d30;font-size:17px;background-size:cover;background-position:center}.player-avatar.offline{filter:grayscale(1);opacity:.52}.player-avatar:after{content:'';position:absolute;right:0;bottom:0;width:6px;height:6px;border:1px solid #15382c;border-radius:50%;background:#58df9f}.player-avatar.offline:after{background:#69766f}.player span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player.empty{opacity:.45}.progress{height:4px;margin-top:14px;overflow:hidden;border-radius:4px;background:#213d33}.progress i{display:block;width:0;height:100%;border-radius:inherit;background:#43d69b;transition:width .5s}.team-moon .progress{background:#42292d}.team-moon .progress i{background:#e86e74}.versus{position:absolute;z-index:2;top:76px;left:50%;display:grid;place-items:center;width:32px;height:32px;transform:translateX(-50%) rotate(45deg);border:1px solid #8d7445;background:#10291f;color:#d4b066;font:700 8px 'Playfair Display'}.versus::first-line{transform:rotate(-45deg)}
.history-section{margin-top:25px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:0 5px 10px}.section-title h3{margin:0;font:700 14px 'Playfair Display';letter-spacing:.12em}.section-title span{color:#7fa08e;font-size:8px;letter-spacing:.13em}.history{display:grid;gap:8px}.empty-state{display:grid;place-items:center;gap:6px;padding:34px;border:1px dashed #6d866f66;border-radius:16px;color:#809489;font-size:11px}.empty-state b{color:#b7995f;font:30px serif}.round{display:grid;grid-template-columns:38px 1fr 74px 74px;align-items:center;padding:11px 12px;border:1px solid #50695d55;border-radius:13px;background:#0c2a20d9}.round-num{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#183a2e;color:#ccb475;font:700 11px 'Playfair Display'}.round-info b{display:block;font-size:10px}.round-info small{color:#82968b;font-size:8px}.round-score{text-align:right;font:700 17px 'Playfair Display'}.round-score.a{color:#5ad9a5}.round-score.b{color:#ef7d82}.bottom-bar{position:fixed;z-index:6;right:0;bottom:0;left:0;display:grid;grid-template-columns:72px 1fr 72px;align-items:center;gap:9px;padding:9px max(12px,env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top:1px solid #d7a95826;background:rgba(5,25,18,.96);backdrop-filter:blur(15px)}.nav-button{display:grid;place-items:center;gap:2px;height:58px;border:0;background:transparent;color:#8fa297}.nav-button span{font-size:24px}.nav-button small{font-size:7px;font-weight:700;letter-spacing:.1em}.nav-button:disabled{opacity:.25}.add-button{display:flex;align-items:center;justify-content:center;gap:8px;height:56px;border:1px solid #f4d18c;border-radius:15px;background:linear-gradient(135deg,#efc875,#b77c2f);box-shadow:0 8px 28px #c4964040;color:#17271e}.add-button span{font-size:24px}.add-button b{font-size:10px;letter-spacing:.12em}
.sheet{width:min(100% - 16px,690px);max-height:92dvh;margin:auto auto 0;padding:0;border:1px solid #5e745d;border-radius:24px 24px 0 0;background:#0b2b20;color:white;box-shadow:0 -20px 70px #000b}.sheet::backdrop{background:#0009;backdrop-filter:blur(3px)}.sheet>form{padding:8px 17px calc(18px + env(safe-area-inset-bottom));overflow:auto}.sheet-handle{width:46px;height:4px;margin:0 auto 13px;border-radius:5px;background:#597066}.sheet-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sheet-title small{color:var(--gold);font-size:8px;letter-spacing:.18em}.sheet-title h2{margin:3px 0 0;font:700 28px 'Playfair Display'}.close{width:37px;height:37px;border:1px solid #4f675b;border-radius:50%;background:#173a2e;color:white;font-size:24px}.score-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.score-team{padding:13px;border:1px solid #416355;border-radius:15px;background:#10362a}.score-team.ruby-input{border-color:#684147;background:#382326}.score-team h3{margin:0 0 13px;color:#5fe0aa;font:700 13px 'Playfair Display';letter-spacing:.06em}.score-team.ruby-input h3{color:#f17b82}.score-team>label:not(.check){display:grid;gap:5px;color:#91a89d;font-size:7px;letter-spacing:.12em}.score-team input[type=number]{width:100%;height:45px;border:1px solid #557164;border-radius:9px;outline:none;background:#08271d;color:white;text-align:center;font-size:19px;font-weight:700}.counter{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #ffffff10;font-size:9px}.counter span small,.check small{color:var(--gold)}.counter div{display:flex;align-items:center;gap:8px}.counter button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid #5b7468;border-radius:50%;background:#1a4636;color:white}.counter b{min-width:13px;text-align:center}.check{display:flex;align-items:center;gap:8px;padding:12px 0;color:white!important;font-size:9px!important;letter-spacing:0!important}.check input{accent-color:#d9ae5a}.round-preview{display:block;color:#5fe0aa;text-align:right;font:700 30px 'Playfair Display'}.ruby-input .round-preview{color:#f17b82}.score-form-grid+.primary{width:100%;margin-top:12px}.compact-sheet{width:min(100% - 16px,480px)}#all-players{display:grid;gap:8px;margin-bottom:14px}.player-line{display:flex;align-items:center;gap:11px;padding:10px;border:1px solid #405e50;border-radius:12px}.player-line .player-avatar{width:40px;height:40px}.player-line b{font-size:12px}.player-line small{display:block;color:#849a8e;font-size:8px}.compact-sheet .secondary{width:100%}.menu-item{width:100%;margin-bottom:8px;padding:15px;border:1px solid #405e50;border-radius:12px;background:#15382c;color:white;text-align:left}.menu-item.danger{color:#ff8a8d;border-color:#704247}.toast{position:fixed;z-index:20;bottom:100px;left:50%;padding:10px 16px;opacity:0;pointer-events:none;transform:translate(-50%,10px);border:1px solid #d8b564;border-radius:30px;background:#122d23;color:white;font-size:10px;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.confetti{position:fixed;z-index:30;inset:0;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-15px;width:8px;height:13px;animation:fall 2.5s linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
@media(max-width:460px){.welcome-card{padding:25px 20px 20px}.scoreboard{gap:7px}.team{padding:14px 10px 12px}.round{grid-template-columns:34px 1fr 57px 57px;padding:10px 8px}.round-score{font-size:15px}.score-form-grid{gap:7px}.score-team{padding:10px}.counter{font-size:8px}.counter div{gap:4px}.counter button{width:25px;height:25px}}@media(min-width:700px){.game-screen{padding-bottom:30px}.bottom-bar{right:24px;bottom:20px;left:auto;width:390px;border:1px solid #6b806f55;border-radius:20px}.sheet{margin:auto;border-radius:24px}.match-area{padding-top:36px}}
.welcome-screen,.game-screen{background-image:linear-gradient(rgba(2,15,10,.27),rgba(2,14,9,.72)),url('./assets/burraco-table-bg.png')}
.camera-dialog{width:min(100% - 20px,440px);margin:auto;padding:18px;border:1px solid #92733d;border-radius:26px;background:#071d16;color:#fff;box-shadow:0 28px 90px #000}.camera-dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}.camera-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.camera-head small{color:var(--gold);font-size:8px;letter-spacing:.18em}.camera-head h2{margin:3px 0 0;font:700 27px 'Playfair Display'}.camera-preview{position:relative;overflow:hidden;width:100%;aspect-ratio:1;border:1px solid #446355;border-radius:22px;background:#020a07}.camera-preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.face-guide{position:absolute;inset:12%;border:2px solid #f1ce81aa;border-radius:50%;box-shadow:0 0 0 100vmax #001d;pointer-events:none}.camera-dialog>p{margin:11px 0 8px;color:#9aada2;text-align:center;font-size:11px}.camera-shot{display:grid;place-items:center;width:66px;height:66px;margin:6px auto;border:2px solid white;border-radius:50%;background:transparent}.camera-shot span{width:52px;height:52px;border-radius:50%;background:linear-gradient(145deg,#f4d58e,#bd8334);box-shadow:0 3px 15px #d5a34c66}.gallery-link{display:block;margin:12px auto 0;border:0;background:transparent;color:var(--gold);font-size:9px;font-weight:800;letter-spacing:.12em}
.admin-item{color:#f1ce81;border-color:#8c713f}.team-editor{display:grid;grid-template-columns:68px 1fr;gap:8px;margin-bottom:8px;padding:10px;border:1px solid #3f6957;border-radius:13px;background:#10382a}.team-editor.ruby-editor{border-color:#70464b;background:#382326}.team-editor label{display:grid;gap:5px}.team-editor label span{color:#8fa599;font-size:7px;font-weight:800;letter-spacing:.12em}.team-editor input{min-width:0;width:100%;height:42px;padding:0 10px;border:1px solid #567266;border-radius:9px;outline:none;background:#08271d;color:#fff;text-transform:uppercase}.team-editor label:first-child input{text-align:center;font-size:21px}.ruby-editor input{border-color:#765257;background:#29191c}.team-editor+.button,.admin-dialog .primary{width:100%;margin:4px 0 16px}.admin-players-title{margin:4px 2px 8px;color:#91a69b;font-size:8px;font-weight:800;letter-spacing:.16em}#admin-players{display:grid;gap:7px}.admin-player{display:flex;align-items:center;gap:9px;padding:9px;border:1px solid #405e50;border-radius:12px;background:#102f25}.admin-player>div{min-width:0;flex:1}.admin-player b{display:block;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.admin-player small{color:#82968b;font-size:8px}.move-player{padding:8px 9px;border:1px solid #806b40;border-radius:9px;background:#2d3627;color:#e6c77e;font-size:7px;font-weight:800;letter-spacing:.08em}.invite-ready{color:#f1ce81!important}.invite-ready strong{font:700 16px 'Playfair Display'}

/* Pubblicità e pagine informative */
.welcome-extras{z-index:1;display:grid;width:min(100%,728px);gap:18px;margin-top:18px}.welcome-screen .welcome-extras footer{display:grid;gap:7px;margin:0;color:#93a59b;text-align:center;font:10px 'DM Sans';letter-spacing:.08em}.welcome-screen footer nav{display:flex;justify-content:center;gap:14px}.welcome-screen footer a,.link-button{padding:0;border:0;background:none;color:#cdb276;font:inherit;text-decoration:underline;cursor:pointer}.ad-banner{width:100%;min-height:90px;padding:8px 12px 12px;border:1px solid rgba(240,203,127,.18);border-radius:14px;background:rgba(5,25,18,.9)}.ad-banner>span{display:block;margin-bottom:5px;color:#83968b;text-align:center;font-size:7px;letter-spacing:.16em;text-transform:uppercase}
.privacy-page{min-height:100dvh;padding:28px 16px;background:linear-gradient(rgba(2,15,10,.45),rgba(2,14,9,.88)),url('./assets/burraco-table-bg.png') center/cover fixed}.privacy-card{width:min(100%,780px);margin:auto;padding:clamp(24px,5vw,48px);border:1px solid rgba(240,203,127,.28);border-radius:26px;background:rgba(5,28,20,.96);box-shadow:0 30px 90px #0009}.privacy-card h1{margin:0 0 8px;color:var(--gold);font:700 clamp(34px,8vw,54px) 'Playfair Display',serif}.privacy-card h2{margin:28px 0 8px;color:#f4e4bd;font:700 20px 'Playfair Display',serif}.privacy-card p,.privacy-card li{color:#c1cec6;font-size:14px;line-height:1.7}.privacy-card a{color:#e9c87d}.privacy-back{display:inline-block;margin-bottom:22px;font-size:12px;font-weight:700;letter-spacing:.08em}.privacy-updated{color:#84988c!important;font-size:11px!important}
