@import url('/landing.css');
*{box-sizing:border-box}body{margin:0;background:#080d1d;color:#f5f6ff;font-family:Inter,Arial,sans-serif}button,a,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #35405b;border-radius:12px;background:#17213a;padding:12px 18px}button:disabled{opacity:.42;cursor:default}button:hover:not(:disabled){border-color:#04cef4}a{color:#04cef4;text-decoration:none}.primary{color:#fff!important;background:linear-gradient(115deg,#04bfe8,#7638e7 55%,#f40091);border:0!important;font-weight:700}.danger{color:#ff8bb4;background:#34172e}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2px;color:#04cef4}.logo{width:135px;object-fit:contain}.welcome{max-width:750px;margin:9vh auto;padding:30px}.welcome .logo{display:block;margin-bottom:40px}h1{font-size:clamp(32px,5vw,58px);line-height:1.1}h1 em{font-style:normal;color:#04cef4}p{line-height:1.7;color:#b9c2d8}.welcome>a:last-child{margin-left:20px}.lobby{max-width:1220px;margin:auto;padding:24px}.lobby header{display:flex;justify-content:space-between;align-items:center}.balance{display:flex;gap:10px;align-items:center;font-size:23px}.balance>img:first-child{width:36px}.balance>img:last-child{width:46px;height:46px;border-radius:50%;object-fit:cover}.balance span{font-size:13px;color:#aab5cc}nav{display:flex;gap:12px;margin:25px 0;flex-wrap:wrap}nav a{padding:14px;background:#17213a;border-radius:12px}nav .active{border-color:#04cef4;background:linear-gradient(120deg,#123d50,#302046)}.lobby-hero{display:flex;padding:36px 42px;background:radial-gradient(at 90% 50%,#322253,#10172c 70%);border:1px solid #313950;border-radius:28px;min-height:390px;align-items:center;gap:25px}.lobby-hero>div{flex:1}.lobby-hero>img{width:35%;max-height:340px;object-fit:contain}.lobby-hero p{max-width:440px}.lobby-hero button{margin:12px 10px 12px 0}.lobby-hero small{display:block;color:#8b97b0}.rooms{margin-top:35px}.room-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.room-list article,.waiting{padding:25px;border:1px solid #303a53;border-radius:22px;background:#10182c}.waiting-seats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.waiting-seats article{display:flex;align-items:center;flex-direction:column;padding:22px;background:#182239;border-radius:18px;gap:9px}.waiting-seats img,.empty-seat{width:74px;height:74px;border-radius:50%;object-fit:cover}.empty-seat{display:grid;place-items:center;border:2px dashed #465473;font-size:35px;color:#04cef4}.waiting-seats small{color:#a9b7cc}.waiting-actions{display:flex;gap:12px;margin-top:25px;flex-wrap:wrap}#message{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);padding:16px 24px;background:#253052;box-shadow:0 10px 30px #0008;border:1px solid #59698d;border-radius:14px;z-index:30;opacity:0;pointer-events:none;max-width:90vw}#message.show{opacity:1}#classic-dialog{background:#111a30;color:#fff;border:1px solid #465478;border-radius:24px;width:480px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);padding:34px;overflow:auto}#classic-dialog::backdrop{background:#020614ce;backdrop-filter:blur(8px)}#classic-dialog .close{position:absolute;right:12px;top:10px;border:0;background:transparent;font-size:25px;padding:5px}#classic-dialog label{display:block;color:#b8c6df;margin:20px 0}#classic-dialog input,#classic-dialog select{display:block;width:100%;background:#080f20;border:1px solid #40506e;color:#fff;border-radius:12px;padding:15px;margin-top:8px}#classic-dialog h2{font-size:28px}#classic-dialog p{font-size:14px}.on-table{overflow:hidden}.table-page{height:100dvh;display:flex;flex-direction:column;background:radial-gradient(at 50% 35%,#182c46,#070c1a 85%);padding:8px 16px}.table-header{height:52px;display:flex;align-items:center;gap:20px;flex-shrink:0}.table-header .logo{width:100px}.table-header b{flex:1}.table-header button{padding:8px 14px}.table-header span{font-size:13px;color:#a8b5cc}.arena{position:relative;flex:1;min-height:0;margin:14px 0 24px}.felt{position:absolute;inset:7% 9% 0;border-radius:48%;background:radial-gradient(ellipse at 50% 40%,#16617c,#0a334c 70%);border:16px solid #151b2a;box-shadow:0 0 0 3px #50617b,0 0 0 7px #0a1123,inset 0 0 0 3px #287892,inset 0 0 40px #011726,0 20px 40px #0009;overflow:hidden}.truco .felt{background:radial-gradient(ellipse,#42264e,#15283f 75%);border-color:#211c30}.buraco .felt{background:radial-gradient(ellipse,#204d48,#0b343e 75%)}.watermark{position:absolute;width:66%;height:65%;left:17%;top:20%;object-fit:contain;opacity:.12;filter:grayscale(.3)}.seat{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);z-index:3;display:flex;flex-direction:column;align-items:center;width:clamp(90px,12vw,155px);pointer-events:none}.avatar-ring{width:clamp(48px,8vh,86px);height:clamp(48px,8vh,86px);padding:4px;border-radius:50%;background:#374664;box-shadow:0 5px 14px #0008}.avatar-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 30%}.turn .avatar-ring{background:conic-gradient(#ffd86c var(--time,360deg),#33415b 0);box-shadow:0 0 22px #ffc73780}.nameplate{padding:4px 12px;border:1px solid #43506b;background:#0b1124e8;border-radius:10px;text-align:center;margin-top:3px;max-width:160px;box-shadow:0 4px 8px #0006}.nameplate b{display:block;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(11px,1.2vw,16px)}.nameplate small{display:block;font-size:10px;color:#a9c3d4;margin-top:2px}.opponent-cards{position:absolute;width:96px;height:48px;top:5px;left:calc(100% - 12px)}.seat-4 .opponent-cards,.seat-5 .opponent-cards{left:auto;right:calc(100% - 12px)}.opponent-cards i{position:absolute;width:25px;height:38px;left:calc(var(--j)*min(8px,70px/var(--total)));top:calc(abs(var(--j) - var(--total)/2)*1px);transform:rotate(calc((var(--j) - var(--total)/2)*4deg));transform-origin:50% 130%}.opponent-cards img{width:100%;height:100%;border-radius:3px;box-shadow:0 3px 5px #0008}.opponent-cards>span{position:absolute;bottom:0;right:0;font-size:10px;background:#111c30;padding:2px}.seat-bet{position:absolute;top:100%;font-size:10px}.table-center{position:absolute;inset:22% 21% 9%;display:grid;place-items:center;pointer-events:none}.table-center button{pointer-events:auto}.table-dealer{position:absolute;top:-36%;height:55%;left:calc(50% - 45px);width:90px;object-fit:contain;opacity:.98}.poker-center,.truco-center,.buraco-center{width:100%;text-align:center}.community{display:flex;justify-content:center;gap:8px;margin:12px 0}.playing-card,.card-slot{position:relative;display:inline-block;width:clamp(45px,5.7vw,80px);height:clamp(62px,10vh,115px);border-radius:9px;border:1px solid #dbe1ec;background:linear-gradient(130deg,#fff,#edf0f7);color:#142139;box-shadow:0 5px 12px #0005;vertical-align:middle;flex-shrink:0;padding:0;text-align:center;overflow:hidden}.playing-card.red{color:#d80b57}.playing-card .corner{position:absolute;top:4px;left:5px;font-size:clamp(12px,1.6vw,22px);font-weight:900;line-height:.9}.corner small{display:block;font-size:.8em;margin-top:3px}.corner.bottom{top:auto;left:auto;bottom:4px;right:5px;transform:rotate(180deg)}.playing-card b{font-size:clamp(26px,3vw,46px);position:absolute;left:50%;top:48%;transform:translate(-50%,-50%)}.card-sign{position:absolute;left:0;bottom:9px;width:100%;font-size:7px;font-weight:800;color:#65749c;letter-spacing:.3px}.playing-card.back{background:#131b34;border-color:#8495c0}.playing-card.back img{width:100%;height:100%}.card-slot{background:#071a3280;border:1px dashed #6189a5;color:#6699b6;display:grid;place-items:center;font-size:26px;box-shadow:none}.pot{display:flex;flex-direction:column;align-items:center;gap:6px}.pot>b{background:#071322ca;padding:5px 18px;border-radius:7px;font-size:13px}.chip-stack{display:flex;align-items:center;justify-content:center;gap:4px}.chip{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#202b41;border:3px dashed #fcfcfd;box-shadow:0 2px 0 #071221,0 4px 0 #7c8aa3,0 6px 5px #0009;font-size:9px;font-weight:900;color:#fff;position:relative}.chip small{position:absolute;top:-9px;right:-12px;background:#0b1225;border-radius:4px;font-size:8px;padding:1px 3px}.chip.white{background:#eee;color:#19213a;border-color:#7786a1}.chip.pink{background:#d70b70}.chip.green{background:#0d8e7f}.chip.black{background:#151a27}.chip.violet{background:#7d43d5}.hand-winner{font-size:12px;color:#ffe6a1;margin-top:6px}.hand-winner small{display:block;font-size:10px;color:#becbd9}.score{display:flex;align-items:center;justify-content:center;gap:10px;color:#afc1d8;font-size:10px;letter-spacing:1px}.score b{font-size:28px;color:#fff}.score>span{font-size:13px;color:#04cef4}.trick-cards{display:flex;justify-content:center;gap:12px;margin-top:10px;min-height:85px}.trick-cards>span{display:flex;flex-direction:column;align-items:center}.trick-cards small{font-size:9px;margin-top:3px}.vira{position:absolute;right:-14%;bottom:10%;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px}.vira .playing-card{width:42px;height:58px}.vira .playing-card b{font-size:25px}.vira small{font-size:9px}.challenge{position:absolute;inset:25% 10% 30%;display:grid;place-items:center;background:#11132ae8;border:2px solid #ff078c;border-radius:20px;font-size:clamp(23px,4vw,52px);font-weight:900;color:#ffd573;text-shadow:2px 2px #ac145e;animation:pop .4s}.game-status{position:absolute;left:30%;bottom:0;text-align:center;width:40%;color:#aabbd2;font-size:10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hand-panel{height:clamp(120px,24vh,205px);display:flex;align-items:center;gap:16px;background:linear-gradient(110deg,#121e36,#0b1428);border:1px solid #33435d;border-radius:18px;padding:15px 20px;flex-shrink:0}.turn-info{width:180px;flex-shrink:0}.turn-info>b{display:block;color:#ffdb7b;font-size:16px}.turn-info small{display:block;color:#a9bbd4;font-size:11px;line-height:1.6;margin-top:6px}.my-hand{flex:1;min-width:0;display:flex;justify-content:center;align-items:center;padding:12px 6px;height:100%}.my-hand .playing-card{height:clamp(80px,18vh,142px);width:clamp(55px,7vw,100px);margin-left:calc(-1 * max(0px,((var(--count) * min(7vw,100px)) - 45vw)/var(--count)));transition:transform .18s,border-color .18s;transform:rotate(-3deg)}.my-hand .playing-card:first-child{margin-left:0}.my-hand .playing-card:focus-visible,.my-hand .playing-card:hover:not(:disabled),.my-hand .playing-card.selected{transform:translateY(-13px);z-index:10;border:2px solid #04cef4;box-shadow:0 0 18px #04cef488}.my-hand .playable{border:2px solid #ffd86c}.controls{display:flex;flex-direction:column;gap:7px;flex-shrink:0;width:145px}.controls button{padding:10px;font-size:13px}.controls label{font-size:11px}.chip-legend{display:flex;align-items:center;justify-content:center;gap:18px;height:37px;font-size:9px;color:#b5c5d7;margin-top:7px}.chip-legend .chip{width:23px;height:23px;font-size:8px}.chip-legend small{font-size:9px}.buraco-center{height:100%;display:flex;flex-direction:column;align-items:center}.buraco-melds{display:grid;grid-template-columns:1fr 1fr;width:100%;flex:1;min-height:0;overflow:auto;gap:12px;margin:5px 0}.meld-team{background:#0b2638a8;border-radius:12px;padding:5px;text-align:left}.meld-team>small{font-size:8px;color:#aadce2}.meld{display:block;background:transparent;border:0;border-radius:6px;padding:5px 3px;width:100%;text-align:left;white-space:nowrap}.meld .playing-card{width:30px;height:43px;margin-left:-17px;border-radius:4px}.meld .playing-card:first-child{margin-left:0}.meld .playing-card b{font-size:19px}.meld .corner{font-size:10px;left:2px;top:2px}.meld .card-sign,.meld .bottom{display:none}.meld strong{display:block;font-size:8px;color:#ffd772;margin-top:3px}.no-meld{display:block;font-size:10px;color:#698d9e;margin:8px 0}.draw-piles{display:flex;justify-content:center;align-items:center;gap:15px}.draw-piles button{display:flex;flex-direction:column;align-items:center;gap:3px;background:transparent;border:0;padding:2px;font-size:9px}.draw-piles img,.draw-piles .playing-card,.draw-piles .card-slot{width:36px;height:49px}.draw-piles .playing-card b{font-size:23px}.draw-piles .playing-card .corner{font-size:11px}.draw-piles small{font-size:9px;width:75px;line-height:1.6}.buraco .table-center{inset:23% 20% 5%}.buraco .score b{font-size:22px}#rotate{display:none}.celebration{position:fixed;inset:0;z-index:20;background:#05081988;display:grid;place-items:center;overflow:hidden}.celebration>i{position:absolute;left:calc(mod(var(--i)*29,100)*1%);top:-10%;color:#04cef4;font-size:26px;animation:confetti calc(2s + mod(var(--i),5)*.3s) linear infinite;animation-delay:calc(mod(var(--i),6)*-.4s)}.celebration>i:nth-child(3n){color:#ff078c}.celebration>i:nth-child(3n + 1){color:#ffd86c}.party-title{text-align:center;font-size:clamp(30px,7vw,80px);font-weight:900;color:#ffd970;animation:pop .6s infinite alternate;text-shadow:0 0 45px #ff009c}.party-title strong{display:block;font-size:.6em;color:#04cef4}.result-card{max-width:650px;text-align:center;background:linear-gradient(140deg,#2c2451,#121b30);border:1px solid #a99161;box-shadow:0 0 80px #8250c440;border-radius:28px;padding:32px 48px;z-index:1}.result-card>span{color:#ffdc87;font-size:12px;letter-spacing:2px}.result-card h1{font-size:40px;margin:18px 0}.result-card h2{color:#04cef4;margin:0}.result-card p{font-size:14px}@keyframes pop{from{transform:scale(.94)}to{transform:scale(1.03)}}@keyframes confetti{to{transform:translateY(115vh) rotate(480deg)}}@media(max-width:650px){.lobby{padding:16px}.logo{width:105px}.balance span{display:none}nav{gap:7px}nav button,nav a{padding:11px 12px;font-size:12px}.lobby-hero{padding:25px;min-height:0}.lobby-hero>img{width:30%}.lobby-hero h1{font-size:32px}.lobby-hero p{font-size:13px}.lobby-hero button{font-size:12px}.room-list{grid-template-columns:1fr}.waiting-seats{grid-template-columns:repeat(2,1fr)}.waiting{padding:20px}.waiting h1{font-size:30px}.waiting-actions button{font-size:12px}}@media(orientation:portrait){.on-table #rotate{display:flex;position:fixed;inset:0;z-index:40;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(#263153,#070c1a);padding:35px;text-align:center}.on-table #rotate>span{font-size:95px;color:#04cef4}.on-table #rotate h2{font-size:25px}}@media(max-height:520px) and (orientation:landscape){.table-page{padding:4px 10px}.table-header{height:32px;gap:12px;font-size:12px}.table-header .logo{width:70px}.table-header button{padding:5px 11px;font-size:11px}.arena{margin:8px 0 16px}.felt{border-width:9px}.avatar-ring{width:42px;height:42px;padding:3px}.nameplate{padding:2px 6px;border-radius:6px}.nameplate b{font-size:10px}.nameplate small{font-size:8px}.opponent-cards{width:64px;height:30px;top:0;left:calc(100% - 18px)}.opponent-cards i{width:19px;height:28px;left:calc(var(--j)*min(6px,50px/var(--total)))}.playing-card,.card-slot{width:42px;height:57px;border-radius:5px}.playing-card b{font-size:25px}.playing-card .corner{font-size:13px;left:3px;top:3px}.card-sign{font-size:5px;bottom:7px}.community{gap:6px;margin:5px 0}.table-dealer{height:59%;top:-45%;left:calc(50% - 34px);width:68px}.poker-center>.eyebrow{font-size:8px}.pot>b{padding:3px 12px;font-size:10px}.chip{width:20px;height:20px;border-width:2px;font-size:7px}.chip small{font-size:6px}.pot{gap:4px}.hand-winner{font-size:9px}.hand-winner small{font-size:8px}.hand-panel{height:100px;padding:8px 12px;gap:12px;border-radius:12px}.turn-info{width:133px}.turn-info b{font-size:12px}.turn-info small{font-size:9px;margin-top:3px}.my-hand .playing-card{height:78px;width:55px}.controls{width:118px;gap:5px}.controls button{padding:7px;font-size:10px}.chip-legend{height:22px;margin:4px 0 0;gap:12px;font-size:7px}.chip-legend .chip{width:16px;height:16px;border-width:2px;font-size:6px}.chip-legend small{font-size:7px}.score b{font-size:22px}.score{font-size:8px;gap:6px}.trick-cards{min-height:55px;margin-top:4px;gap:6px}.trick-cards small{font-size:7px}.vira{right:-16%;bottom:10%}.vira .playing-card{width:32px;height:44px}.vira small{font-size:7px}.game-status{font-size:8px;bottom:-10px}.buraco .score b{font-size:17px}.meld-team{padding:3px}.meld-team>small{font-size:7px}.meld{padding:3px 1px}.meld .playing-card{width:24px;height:32px;margin-left:-14px}.meld .playing-card .corner{font-size:9px}.meld .playing-card b{font-size:15px}.draw-piles img,.draw-piles .playing-card,.draw-piles .card-slot{width:25px;height:34px}.draw-piles button,.draw-piles small{font-size:7px}.draw-piles .playing-card b{font-size:16px}.draw-piles .playing-card .corner{font-size:9px}.draw-piles small{width:63px}.buraco-melds{gap:8px}.result-card{padding:22px 35px}.result-card h1{font-size:28px}.result-card h2{font-size:23px}.result-card p{font-size:12px}.result-card button{font-size:12px;padding:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.arena{overflow:clip;overflow-clip-margin:12px}.seat-1 .opponent-cards{left:calc(100% - 24px)}@media(max-height:520px){.seat-4 .opponent-cards,.seat-5 .opponent-cards{left:auto;right:calc(100% - 24px)}}

.seat-right .opponent-cards{left:auto;right:calc(100% - 12px)}@media(max-height:520px){.seat-right .opponent-cards{left:auto;right:calc(100% - 24px)}}

.my-hand .playing-card:disabled{opacity:1}.table-dealer{top:5%;left:-9%;width:90px;height:75%}.poker .table-center{inset:28% 23% 11%}.arena{overflow:visible;overflow-clip-margin:0}@media(max-height:520px) and (orientation:landscape){.table-dealer{top:3%;left:-14%;width:66px;height:75%}.poker .table-center{inset:29% 23% 9%}}

.buraco .score{align-self:flex-start;margin-left:10px}

.card-sign img{width:36px;height:13px;object-fit:contain}.meld .card-sign{display:none}@media(max-height:520px){.card-sign img{width:25px;height:9px}.my-hand .card-sign img{width:34px;height:12px}}

.quick-player-options{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.quick-player-options label{position:relative;display:grid;place-items:center;gap:6px;padding:18px;background:#17243a;border:2px solid #354766;border-radius:16px;cursor:pointer;flex:1;min-width:80px}.quick-player-options label:has(input:checked){border-color:#00d5ef;background:#12394c;box-shadow:0 0 20px #00d5ef22}.quick-player-options input{position:absolute;opacity:0}.quick-player-options strong{font-size:30px}.quick-player-options span{font-size:12px}.waiting-seats [data-seat-choice]{cursor:pointer}

.back-lobby{white-space:nowrap;color:#a9f2ff;font-weight:700}.team-overview{position:absolute;z-index:3;top:2%;left:18%;right:18%;display:flex;justify-content:space-between;gap:12px;font-size:12px;text-align:center}.team-overview span{max-width:48%;padding:5px 10px;border-radius:10px;background:#08152cdd}.ally-label{color:#45e2f4}.rival-label{color:#ff87b6}.ally-seat .nameplate{border:1px solid #2bc9df}.rival-seat .nameplate{border:1px solid #ee438f}.truco .table-center{inset:23% 24% 7%}.truco-center{display:flex;flex-direction:column;align-items:center;height:100%}.truco-play-area{position:relative;flex:1;width:100%;min-height:200px}.truco-play-area .vira{position:absolute;left:50%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:3px}.truco-play-area .vira>span{font-size:11px;color:#ffe396;letter-spacing:2px}.truco-play-area .vira .playing-card{width:56px;height:78px}.truco-played{position:absolute;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:3px;animation:truco-place .3s ease-out}.truco-played .playing-card{width:57px;height:78px}.truco-played small{font-size:10px;padding:2px 5px;border-radius:5px;background:#0b162adf;max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ally-play small{color:#45e2f4}.rival-play small{color:#ff87b6}.played-0{left:50%;top:87%}.played-1{left:15%;top:70%}.played-2{left:15%;top:25%}.played-3{left:50%;top:10%}.played-4{left:85%;top:25%}.played-5{left:85%;top:70%}.truco-round{font-size:11px;color:#b9c7e2}.private-signals{position:absolute;z-index:8;left:2%;bottom:3%;max-width:230px;display:grid;gap:4px;padding:10px;background:#092a36ee;border:1px solid #31d7df;border-radius:12px;font-size:12px;pointer-events:none}.private-signals small{color:#45e2f4;font-size:9px;letter-spacing:1px}.team-signal-button{border-color:#45e2f4;color:#45e2f4}.signal-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}@keyframes truco-place{from{opacity:0;translate:0 15px}to{opacity:1;translate:0 0}}
@media(max-height:520px) and (orientation:landscape){.team-overview{font-size:8px;top:1%;left:17%;right:17%;gap:5px}.team-overview span{padding:3px 6px}.truco .table-center{inset:24% 25% 7%}.truco-play-area{min-height:100px}.truco-play-area .vira .playing-card,.truco-played .playing-card{width:30px;height:42px}.truco-play-area .vira>span{font-size:7px;letter-spacing:1px}.truco-played small{font-size:7px}.truco-round{font-size:8px}.private-signals{font-size:9px;padding:5px;max-width:160px}.private-signals small{font-size:7px}.truco .controls{width:125px}}

.team-overview{position:static;flex-shrink:0;margin:0 15%;min-height:22px;align-items:center}.team-overview span{max-width:none;flex:1}.poker .felt{background:radial-gradient(ellipse at 50% 45%,#137b86,#104553 65%,#0b263c);border-color:#161b2d;box-shadow:0 0 0 3px #71518e,0 0 0 8px #101625,inset 0 0 35px #04c6d333}.poker .watermark{opacity:.08}.poker .table-center{inset:35% 23% 12%}.poker .table-dealer{left:calc(50% - 50px);top:-70%;width:100px;height:105px;object-fit:contain}.poker .community{gap:8px}.poker .community .playing-card,.poker .community .card-slot{width:70px;height:96px}.poker .pot{padding:7px 14px;background:#08192abf;border-radius:14px;border:1px solid #2c627a}.poker .seat-bet{z-index:4;left:50%;top:calc(100% + 5px);transform:translateX(-50%)}.poker .seat-0 .seat-bet,.poker .seat-5 .seat-bet{top:auto;bottom:calc(100% + 6px)}.poker .seat-0 .avatar-ring{width:72px;height:72px}.poker .seat-0 .nameplate{border:1px solid #06cdeb}.chip-flight .chip-stack{flex-wrap:nowrap}
@media(max-height:520px) and (orientation:landscape){.team-overview{margin:0 10%;min-height:19px;font-size:8px}.poker .table-center{inset:34% 24% 11%}.poker .table-dealer{left:calc(50% - 29px);top:-61%;width:58px;height:63px}.poker .community .playing-card,.poker .community .card-slot{width:39px;height:53px}.poker .community{gap:5px}.poker .pot{padding:3px 7px}.poker .seat-0 .avatar-ring{width:40px;height:40px}.poker .seat-bet{top:calc(100% + 3px)}.poker .seat-0 .seat-bet,.poker .seat-5 .seat-bet{bottom:calc(100% + 3px)}}

.poker-center>.eyebrow{order:-2}.poker-center>.pot{order:-1;margin-bottom:5px}.poker-center>.community{order:0}.poker-center>.hand-winner{order:1}@media(max-height:520px) and (orientation:landscape){.truco .table-center{inset:31% 25% 7%}.poker-center>.pot{margin-bottom:2px}.poker .table-center{inset:32% 24% 11%}}

.poker-center{display:flex;flex-direction:column;align-items:center}.poker-center>.pot{width:auto;min-width:150px}.poker-center>.community{margin:5px 0}

#classic-dialog .quick-player-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:24px 0}#classic-dialog .quick-player-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:92px;width:100%;padding:12px 4px;border:2px solid #354766;border-radius:18px;background:#18263e;color:#fff;text-decoration:none;touch-action:manipulation}#classic-dialog .quick-player-options button.selected{border-color:#06d7eb;background:#0e384a;box-shadow:0 0 22px #00d5ef22}#classic-dialog .quick-player-options strong{font-size:32px;line-height:1}#classic-dialog .quick-player-options span{font-size:11px;line-height:1.2}#quick-classic>button[type=submit]{width:100%;min-height:52px}.form-error{padding:14px;margin:10px 0;border:1px solid #f47197;background:#4b1731;border-radius:12px;font-size:14px}.form-error a{display:block;margin-top:10px;color:#a9f1ff}.form-error[hidden]{display:none}.leave-room{display:inline-flex;align-items:center;gap:9px;border:1px solid #506383;background:linear-gradient(145deg,#233047,#101a30);border-radius:30px;padding:10px 18px;font-weight:700;color:#f5f8ff}.leave-room span{display:grid;place-items:center;width:24px;height:24px;background:#ffffff0c;border-radius:50%}.leave-options{display:flex;gap:10px;flex-wrap:wrap}
.buraco .avatar-ring{width:90px;height:90px}.buraco .nameplate b{font-size:17px}.buraco .nameplate small{font-size:12px}.buraco .table-center{inset:25% 18% 9%}.buraco .meld .playing-card{width:48px;height:66px;margin-left:-25px}.buraco .meld .playing-card:first-child{margin-left:0}.buraco .meld strong{font-size:12px}.buraco .meld-team>small{font-size:12px}.buraco .draw-piles img,.buraco .draw-piles .playing-card{width:44px;height:60px}.buraco .draw-piles button,.buraco .draw-piles small{font-size:12px}
@media(max-height:520px) and (orientation:landscape){.table-header .leave-room{padding:5px 10px;font-size:11px}.leave-room span{width:19px;height:19px}.buraco .avatar-ring{width:58px;height:58px}.buraco .nameplate b{font-size:12px}.buraco .nameplate small{font-size:9px}.buraco .table-center{inset:28% 19% 8%}.buraco .meld .playing-card{width:30px;height:42px;margin-left:-16px}.buraco .meld .playing-card .corner{font-size:11px}.buraco .meld strong{font-size:9px}.buraco .meld-team>small{font-size:9px}.buraco .draw-piles img,.buraco .draw-piles .playing-card{width:30px;height:42px}.buraco .draw-piles button,.buraco .draw-piles small{font-size:9px}}

/* Truco: leitura da rodada e recolhimento entre vazas. */
.truco .table-center{inset:22% 23% 8%}.truco-tracker{display:flex;gap:8px;justify-content:center;margin:6px 0}.truco-tracker span{padding:5px 10px;border-radius:9px;background:#101e35;color:#91a3bd;font-size:12px;border:1px solid #425570}.truco-tracker .ours{color:#5ceaf4;border-color:#31cbd8}.truco-tracker .theirs{color:#ff9cc7;border-color:#e85193}.truco-tracker .tied{color:#ffe19a;border-color:#bc9861}.truco-played .playing-card{width:72px;height:100px}.truco .my-hand .playing-card{width:83px;height:116px}.truco-outcome{position:absolute;z-index:6;left:50%;top:53%;transform:translate(-50%,-50%);width:max-content;max-width:92%;padding:14px 22px;border-radius:18px;border:1px solid #31cbd8;background:linear-gradient(135deg,#073e4bef,#111d35f5);box-shadow:0 8px 35px #0009;text-align:center;pointer-events:none;animation:truco-announcement .35s ease-out}.truco-outcome strong{display:block;font-size:24px;color:#7cf4ff}.truco-outcome b{display:block;color:#ffde8c;font-size:16px;margin-top:6px}.truco-outcome small{display:block;color:#ccd6e8;margin-top:6px;font-size:12px}.truco-outcome.theirs{border-color:#ef68a5;background:linear-gradient(135deg,#52213fef,#111d35f5)}.truco-outcome.theirs strong{color:#ffa6d1}.truco-outcome.tied{border-color:#dec17b}.truco-outcome.tied strong{color:#ffe19a}.collecting .truco-played{animation:truco-collect .8s ease-in forwards}.truco .card-sign{bottom:12px;height:16px}.truco .card-sign img{height:100%;width:auto}.truco .game-status{display:none}
@keyframes truco-collect{to{opacity:0;scale:.2;translate:0 -35px}}@keyframes truco-announcement{from{opacity:0;scale:.85}to{opacity:1;scale:1}}
@media(max-height:520px) and (orientation:landscape){.truco .table-center{inset:24% 23% 9%}.truco-tracker{gap:5px;margin:3px 0}.truco-tracker span{font-size:9px;padding:3px 7px}.truco-played .playing-card{width:43px;height:60px}.truco .my-hand .playing-card{width:60px;height:84px}.truco-play-area{min-height:90px}.truco-outcome{padding:9px 14px;top:56%;border-radius:12px}.truco-outcome strong{font-size:17px}.truco-outcome b{font-size:12px;margin-top:3px}.truco-outcome small{font-size:9px;margin-top:3px}.truco .card-sign{height:11px;bottom:8px}.truco-play-area .vira .playing-card{width:38px;height:53px}}

@media(max-height:520px) and (orientation:landscape){.truco .played-2,.truco .played-3,.truco .played-4{top:27%}.truco .played-0,.truco .played-1,.truco .played-5{top:95%}.truco-played .playing-card{width:40px;height:56px}}

/* Mesa ajustada Ã  Ã¡rea visÃ­vel, seguindo a composiÃ§Ã£o do FlipStars. */
.on-table{overflow:hidden}.on-table #classic-app{height:100dvh;min-height:0}.on-table .table-page{position:fixed;inset:0;height:100dvh;max-height:100dvh;padding:6px 12px;overflow:hidden;box-sizing:border-box}.table-page .table-header{height:42px;min-height:42px;flex-shrink:0}.table-page .arena{min-height:0;margin:12px 0 8px}.table-page .felt{inset:6% 8% 3%;background:radial-gradient(ellipse,#14618a,#10314f 72%);border-radius:50%}.table-page .watermark{width:80%;height:80%;object-fit:contain;opacity:.18}.table-page .hand-panel{height:clamp(92px,23dvh,150px);min-height:0;box-sizing:border-box;background:transparent;border:0;padding:4px 10px;gap:10px}.table-page .my-hand{min-width:0;justify-content:center}.table-page .turn-info{width:clamp(100px,16vw,180px);flex-shrink:0}.table-page .controls{width:clamp(110px,18vw,190px);flex-shrink:0}.truco .team-overview{min-height:18px;margin:0 12%;font-size:10px}.truco .table-center{inset:24% 25% 6%}.truco .score{font-size:11px}.truco .seat-0{left:10%;top:88%}.truco .seat-0 .opponent-cards{display:none}.truco .nameplate{max-width:130px}.truco .seat:not(.seat-0){background:#0a1526d9;padding:6px;border-radius:14px;border:1px solid #314966;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:3px;width:clamp(100px,16vw,180px)}.truco .seat:not(.seat-0) .opponent-cards{position:relative;left:auto;top:auto;width:65px;height:40px}.truco .seat:not(.seat-0) .nameplate{width:100%;padding:2px;border:0;background:transparent}.truco .avatar-ring{width:clamp(38px,8dvh,65px);height:clamp(38px,8dvh,65px)}.truco .controls{display:flex;flex-direction:column;gap:4px}.truco .controls button{font-size:11px;padding:6px 9px}.truco .controls label{font-size:11px}.truco .hand-panel .my-hand .playing-card{height:clamp(70px,20dvh,120px);width:clamp(50px,14dvh,85px)}
@media(orientation:landscape) and (max-height:600px){.table-page .table-header{height:34px;min-height:34px;font-size:11px}.table-header .logo{width:80px}.table-header button{padding:5px 9px;font-size:11px}.truco .team-overview{font-size:8px;min-height:15px}.truco .score b{font-size:19px}.truco .nameplate b{font-size:10px}.truco .nameplate small{font-size:8px}.truco .table-center{inset:25% 24% 8%}.truco .truco-play-area{min-height:0}.truco .truco-tracker span{font-size:8px;padding:3px 5px}.truco .truco-played .playing-card{width:36px;height:50px}.truco .truco-played small{font-size:7px}.truco .turn-info small{font-size:9px}.truco .turn-info b{font-size:11px}.truco .truco-round{font-size:8px}.truco .vira .playing-card{width:34px;height:47px}}

.truco .seat:not(.seat-0){display:grid;grid-template-columns:clamp(38px,8dvh,65px) 1fr;grid-template-rows:auto auto;gap:3px;padding:5px;box-sizing:border-box}.truco .seat:not(.seat-0) .avatar-ring{grid-column:1;grid-row:1}.truco .seat:not(.seat-0) .opponent-cards{grid-column:2;grid-row:1;margin:0;height:35px}.truco .seat:not(.seat-0) .nameplate{grid-column:1 / -1;grid-row:2;width:100%;margin:0}.truco .seat:not(.seat-0) .opponent-cards i{width:23px;height:33px;top:0}

/* Truco: mesa octogonal, equipes alternadas e cartas dentro do tampo. */
.truco.table-page{padding:8px 14px}.truco .table-header{justify-content:space-between}.truco .team-overview{margin:0 20%;height:22px}.truco .arena{margin:18px 0 0;flex:1}.truco .felt{inset:9% 15% 12%;border:0;border-radius:0;clip-path:polygon(19% 0,81% 0,100% 22%,100% 78%,81% 100%,19% 100%,0 78%,0 22%);background:linear-gradient(135deg,#ab83d8,#294d7b 25%,#34d6e3 50%,#7354b0);box-shadow:none;padding:7px}.truco .felt:before{content:'';position:absolute;inset:7px;clip-path:inherit;background:radial-gradient(ellipse,#155375,#0c254a 85%);border:2px solid #80dce8}.truco .watermark{position:absolute;inset:15%;width:70%;height:70%;opacity:.16}.truco .table-center{inset:19% 20% 30%}.truco-center>.score{position:absolute;top:-7%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:clamp(10px,1vw,17px)}.truco .score b{font-size:clamp(22px,2.5vw,38px)}.truco-tracker{position:absolute;top:5%;left:50%;transform:translateX(-50%);white-space:nowrap}.truco-tracker span{font-size:clamp(9px,1vw,15px);padding:4px 9px}.truco-play-area{position:absolute;inset:20% 9% 0;min-height:0}.truco .truco-played .playing-card{width:clamp(48px,8vw,115px);height:clamp(67px,11.2vw,161px)}.truco .truco-played .playing-card b{font-size:clamp(30px,5vw,65px)}.truco .truco-played small{font-size:clamp(8px,1vw,13px)}.truco .vira .playing-card{width:clamp(43px,6.4vw,95px);height:clamp(60px,9vw,133px)}.truco .vira>span{font-size:clamp(9px,1vw,14px)}.truco .played-0{left:50%;top:90%}.truco .played-1{left:10%;top:80%}.truco .played-2{left:10%;top:20%}.truco .played-3{left:50%;top:4%}.truco .played-4{left:90%;top:20%}.truco .played-5{left:90%;top:80%}.truco-round{position:absolute;bottom:-3%;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:clamp(9px,1vw,14px)}
.truco .seat,.truco .seat:not(.seat-0){display:grid;grid-template-columns:1fr;grid-template-rows:auto auto auto;width:clamp(90px,13vw,175px);background:transparent;border:0;padding:0;gap:3px;text-align:center}.truco .seat .avatar-ring{grid-column:1;grid-row:1;justify-self:center;width:clamp(40px,7dvh,82px);height:clamp(40px,7dvh,82px)}.truco .seat .nameplate{grid-column:1;grid-row:2;background:#08162ce8;border:1px solid #44708a;padding:3px 6px;max-width:100%;width:auto;justify-self:center;border-radius:9px}.truco .seat .nameplate b{font-size:clamp(10px,1.2vw,17px)}.truco .seat .nameplate small{font-size:clamp(8px,.9vw,12px)}.truco .seat .opponent-cards,.truco .seat:not(.seat-0) .opponent-cards{grid-column:1;grid-row:3;position:relative;left:auto;right:auto;top:auto;bottom:auto;transform:none;justify-self:center;width:clamp(58px,8vw,115px);height:clamp(32px,5dvh,65px);margin:0}.truco .seat .opponent-cards i{width:clamp(27px,4vw,50px);height:clamp(38px,5.6vw,70px);left:calc(var(--j)*18px);top:0;transform:rotate(calc((var(--j) - 1)*9deg));transform-origin:bottom center}.truco .seat-right .opponent-cards i{right:auto}.truco .seat-0{left:50%;top:94%;transform:translate(-50%,-25%)}.truco .seat-0 .avatar-ring{display:none}.truco .seat-0 .nameplate{border-color:#32d4e7}.truco .hand-panel{position:absolute;left:3%;right:3%;bottom:6%;height:clamp(100px,25dvh,235px);pointer-events:none;padding:0;background:transparent;display:grid;grid-template-columns:23% 54% 23%;z-index:5}.truco .hand-panel>*{pointer-events:auto}.truco .my-hand{align-self:start;justify-content:center;width:100%;height:100%;gap:clamp(6px,1vw,18px)}.truco .hand-panel .my-hand .playing-card{width:clamp(62px,10vw,155px);height:clamp(87px,14vw,217px);margin:0;transform:none}.truco .my-hand .playing-card b{font-size:clamp(38px,6vw,95px)}.truco .my-hand .playing-card .corner{font-size:clamp(18px,2.5vw,36px)}.truco .hand-panel .turn-info{width:auto;align-self:end;padding-bottom:6px}.truco .hand-panel .controls{width:auto;align-self:end;gap:5px}.truco .controls button{font-size:clamp(11px,1.2vw,17px);padding:clamp(6px,1dvh,12px)}.truco .controls label{font-size:clamp(10px,1vw,14px)}.truco .card-sign{bottom:12px;height:clamp(12px,2vw,26px)}.truco .truco-outcome{top:48%}.truco-deal-flight{position:fixed;left:0;top:0;width:44px;height:62px;z-index:60;pointer-events:none;will-change:transform}.truco.dealing .my-hand,.truco.dealing .opponent-cards,.truco.dealing .vira{visibility:hidden}.truco.dealing .controls{opacity:.4;pointer-events:none}
@media(orientation:landscape) and (max-height:600px){.truco.table-page{padding:4px 8px}.truco .table-header{height:31px;min-height:31px}.truco .team-overview{height:15px;min-height:15px;font-size:8px}.truco .arena{margin-top:12px}.truco .felt{inset:10% 16% 14%}.truco .table-center{inset:24% 20% 38%}.truco .hand-panel{bottom:8%;height:24dvh}.truco .hand-panel .my-hand .playing-card{width:clamp(54px,9vw,90px);height:clamp(76px,12.6vw,126px)}.truco .seat .avatar-ring{width:34px;height:34px}.truco .seat .nameplate b{font-size:10px}.truco .seat .nameplate small{font-size:7px}.truco .seat .opponent-cards i{width:27px;height:38px}.truco .seat .opponent-cards{height:27px}.truco .truco-played .playing-card{width:44px;height:62px}.truco .vira .playing-card{width:39px;height:55px}.truco .truco-played .playing-card b{font-size:29px}.truco .score b{font-size:20px}.truco-tracker span{font-size:8px;padding:2px 5px}.truco .turn-info small{font-size:9px}.truco .controls button{font-size:10px;padding:5px}.truco .seat-0{top:94%}.truco .truco-round{bottom:-8%;font-size:8px}}

.truco .seat:not(.seat-0) .opponent-cards i{width:clamp(32px,4vw,54px);height:clamp(45px,5.6vw,76px);left:calc(var(--j)*20px);right:auto}.truco .seat-0{position:fixed;left:50%;top:auto;bottom:5px;transform:translateX(-50%);width:auto;max-width:45vw}.truco .seat-0 .nameplate{max-width:100%;white-space:nowrap}.truco .hand-panel{grid-template-rows:100%;min-height:0}.truco .hand-panel .controls{position:absolute;right:0;bottom:0;width:22%;max-height:100%}.truco .hand-panel .turn-info{position:absolute;left:0;bottom:0;width:22%}.truco .hand-panel .my-hand{grid-column:2;min-height:0}.truco .truco-round{bottom:0;z-index:6;background:#091b30c9;padding:2px 7px;border-radius:6px}
@media(orientation:landscape) and (max-height:600px){.truco .hand-panel{bottom:12%;height:25dvh}.truco .hand-panel .my-hand .playing-card{width:clamp(54px,8.5vw,78px);height:min(27dvh,109px)}.truco .seat:not(.seat-0) .opponent-cards i{width:29px;height:41px;left:calc(var(--j)*15px)}.truco .controls button{padding:4px 6px;font-size:10px}.truco .controls{gap:3px}.truco .seat-0 .nameplate{font-size:9px}.truco .truco-round{font-size:8px;bottom:1%}}

.truco .seat:not(.seat-0){grid-template-columns:clamp(34px,7dvh,70px) 1fr;grid-template-rows:auto auto;column-gap:5px;width:clamp(104px,14vw,190px)}.truco .seat:not(.seat-0) .avatar-ring{grid-column:1;grid-row:1}.truco .seat:not(.seat-0) .opponent-cards{grid-column:2;grid-row:1;width:clamp(66px,7vw,105px);height:clamp(40px,5dvh,68px);margin:0}.truco .seat:not(.seat-0) .nameplate{grid-column:1 / -1;grid-row:2}.truco .hand-panel .turn-info,.truco .hand-panel .controls{position:fixed;bottom:12px;width:22%}.truco .hand-panel .turn-info{left:3%}.truco .hand-panel .controls{right:3%}.truco .truco-round{top:-12%;bottom:auto}
@media(orientation:landscape) and (max-height:600px){.truco .seat:not(.seat-0) .opponent-cards i{width:27px;height:38px;left:calc(var(--j)*15px)}.truco .seat:not(.seat-0) .opponent-cards{height:38px;width:62px}.truco .truco-round{top:14%;bottom:auto;font-size:8px}.truco .hand-panel .controls{bottom:8px}.truco .hand-panel .turn-info{bottom:10px}}

.truco .truco-round{top:14%;bottom:auto}@media(orientation:landscape) and (max-height:600px){.truco .truco-round{top:24%;bottom:auto}}

dialog.room-recovery{max-width:500px;width:calc(100% - 40px);padding:28px;border-radius:20px;background:#101b30;color:#eff5ff;border:1px solid #52748f}dialog.room-recovery::backdrop{background:#020712bb}dialog.room-recovery p{line-height:1.6}dialog.room-recovery button{display:block;width:100%;padding:14px;margin-top:12px;border-radius:12px;border:1px solid #467186;background:#182942;color:white}dialog.room-recovery button.primary{background:linear-gradient(110deg,#05c9df,#873ce8);font-weight:700}

/* Truco: seis posições alternadas, retratos legíveis e sinais discretos. */
.truco .seat,.truco .seat:not(.seat-0){position:absolute;left:var(--x);top:var(--y);bottom:auto;transform:translate(-50%,-50%);display:grid;grid-template-columns:clamp(58px,10dvh,112px) auto;grid-template-rows:auto auto;width:clamp(135px,15vw,240px);gap:5px;max-width:none;z-index:7}
.truco .seat .avatar-ring,.truco .seat-0 .avatar-ring{display:block;width:clamp(58px,10dvh,112px);height:clamp(58px,10dvh,112px);grid-column:1;grid-row:1;justify-self:center}
.truco .seat .nameplate{grid-column:1 / -1;grid-row:2;max-width:100%;margin:0;z-index:2}
.truco .seat .opponent-cards,.truco .seat:not(.seat-0) .opponent-cards{grid-column:2;grid-row:1;height:clamp(60px,10dvh,110px);width:clamp(70px,7vw,112px);align-self:center}
.truco .seat-0{grid-template-columns:1fr;width:clamp(100px,12vw,180px)}
.truco .seat .opponent-cards i{width:clamp(31px,4vw,58px);height:clamp(44px,5.6vw,81px);left:calc(var(--j)*18px);top:8px}
.truco .truco-played{animation:none}.truco .collecting .truco-played{animation:truco-collect .8s ease-in forwards}
.truco.dealing .my-hand,.truco.dealing .opponent-cards,.truco.dealing .vira{visibility:visible}
.truco .team-emojis{position:fixed;right:14px;top:76px;z-index:15}.team-emojis>button{font-size:25px;padding:8px;border-radius:50%;background:#11233dec;border-color:#42c9df}
.team-emoji-options{position:absolute;right:0;top:54px;width:260px;padding:12px;background:#0c1a30f5;border:1px solid #3f718c;border-radius:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;box-shadow:0 12px 35px #0008}.team-emoji-options[hidden]{display:none}.team-emoji-options>small,.team-emoji-options>p{grid-column:1 / -1;text-align:center;font-size:10px;margin:0;color:#a2dfe7}.team-emoji-options button{padding:8px 3px;display:grid;gap:4px}.team-emoji-options button span{font-size:27px}.team-emoji-options button small{font-size:9px;line-height:1.2}.truco .private-signals{left:12px;bottom:85px;max-width:210px}
@media(orientation:landscape) and (max-height:600px){
.truco .seat,.truco .seat:not(.seat-0){grid-template-columns:clamp(45px,13dvh,66px) auto;width:120px;gap:2px}
.truco .seat .avatar-ring,.truco .seat-0 .avatar-ring{width:clamp(45px,13dvh,66px);height:clamp(45px,13dvh,66px)}
.truco .seat-0{grid-template-columns:1fr;width:100px}.truco .seat .opponent-cards,.truco .seat:not(.seat-0) .opponent-cards{height:48px;width:60px}.truco .seat .opponent-cards i{width:27px;height:38px;left:calc(var(--j)*14px);top:5px}
.truco .seat .nameplate b{font-size:11px}.truco .seat .nameplate small{font-size:7px}.truco .team-emojis{top:49px;right:8px}.team-emojis>button{font-size:20px;padding:5px}.team-emoji-options{top:39px;width:235px;padding:8px}.team-emoji-options button{padding:5px}.team-emoji-options button span{font-size:22px}.truco .hand-panel .controls{width:23%;bottom:6px}.truco .private-signals{bottom:64px;font-size:9px}
}

/* Áreas independentes: placar, vira, seis jogadas e mão do jogador. */
.truco .table-center{inset:0;display:block}
.truco .truco-center{position:absolute;inset:0}
.truco-center>.score{top:18%;font-size:clamp(10px,1vw,16px)}
.truco .truco-tracker{top:24%;margin:0}
.truco .truco-round{top:30%;padding:2px 7px}
.truco .truco-play-area{inset:0}
.truco .truco-play-area .vira{left:29%;top:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);z-index:3}
.truco .vira .playing-card{width:clamp(40px,7dvh,76px);height:clamp(56px,9.8dvh,106px)}
.truco .played-0{left:42%;top:66%}.truco .played-1{left:42%;top:44%}.truco .played-2{left:54%;top:44%}.truco .played-3{left:66%;top:44%}.truco .played-4{left:66%;top:66%}.truco .played-5{left:54%;top:66%}
.truco .truco-played .playing-card{width:clamp(40px,7dvh,78px);height:clamp(56px,9.8dvh,109px)}
.truco .truco-played .playing-card b{font-size:clamp(25px,4.5dvh,49px)}
.truco .truco-played .corner{font-size:clamp(13px,2.7dvh,26px)}
.truco .truco-played small{font-size:clamp(8px,1.4dvh,12px)}
.truco .hand-panel{bottom:2%;height:22dvh}
.truco .hand-panel .my-hand .playing-card{height:clamp(75px,21dvh,190px);width:clamp(54px,15dvh,136px)}
.truco .challenge{inset:auto;left:50%;top:10%;transform:translateX(-50%);width:max-content;max-width:48%;padding:5px 24px;min-height:0;font-size:clamp(18px,3.5dvh,34px);border-radius:15px;animation:none;z-index:9}
.truco .truco-outcome{top:46%;max-width:44%}
@media(orientation:landscape) and (max-height:600px){
.truco .truco-tracker{top:25%}.truco .truco-round{top:31%}
.truco .truco-played .playing-card{width:39px;height:55px}.truco .vira .playing-card{width:39px;height:55px}
.truco .hand-panel{bottom:2%;height:22dvh}.truco .hand-panel .my-hand .playing-card{width:15dvh;height:21dvh;min-width:45px;min-height:63px}
.truco .hand-panel .my-hand .playing-card b{font-size:11dvh}.truco .hand-panel .my-hand .corner{font-size:4dvh}
.truco .challenge{top:6%;padding:4px 15px;font-size:20px}.truco .truco-outcome{top:48%;padding:7px 10px}.truco .truco-outcome strong{font-size:14px}
}

.truco .truco-play-area .vira{left:32%;top:49%}
.truco .played-0,.truco .played-4,.truco .played-5{top:63%}
.truco .played-1,.truco .played-2,.truco .played-3{top:43%}
@media(orientation:landscape) and (max-height:600px){.truco .truco-played .playing-card{width:8.6dvh;height:12dvh}.truco .truco-played small{font-size:7px;margin-top:2px}.truco .truco-played .card-sign{height:9px;bottom:6px}.truco .private-signals{bottom:88px;max-width:150px}}

/* Faixa de informações acima das jogadas, com espaço reservado para cada carta. */
.truco-center>.score{top:4%;font-size:clamp(11px,1.2vw,18px)}
.truco .truco-tracker{top:12%;margin:0}
.truco .truco-round{top:21%;font-size:clamp(10px,1.1vw,15px);background:#091b30e8}
.truco .truco-played .playing-card{width:clamp(45px,10dvh,90px);height:clamp(63px,14dvh,126px)}
.truco .truco-played .playing-card b{font-size:clamp(29px,6dvh,58px)}
.truco .truco-played .corner{font-size:clamp(15px,3dvh,28px)}
.truco .truco-played small{display:block;margin-top:5px;font-size:clamp(9px,1.5dvh,13px);line-height:1.2;padding:3px 7px}
.truco .played-1,.truco .played-2,.truco .played-3{top:42%}
.truco .played-0,.truco .played-4,.truco .played-5{top:64%}
.truco .hand-panel{bottom:0;height:20dvh}
.truco .hand-panel .my-hand{padding:0;align-items:flex-end}
.truco .hand-panel .my-hand .playing-card{height:clamp(74px,20dvh,180px);width:clamp(53px,14.3dvh,129px)}
.truco .challenge{top:27%;max-width:32%;font-size:clamp(18px,3dvh,28px);padding:4px 16px}
@media(orientation:landscape) and (max-height:600px){
.truco-center>.score{top:4%}.truco .truco-tracker{top:12%}.truco .truco-round{top:21%;font-size:9px}
.truco .truco-played .playing-card{width:9.3dvh;height:13dvh}.truco .truco-played small{font-size:7px;margin-top:3px;padding:2px 4px;line-height:1}
.truco .truco-played .card-sign{height:10px;bottom:7px}.truco .truco-played .playing-card b{font-size:7dvh}
.truco .hand-panel{bottom:0;height:20dvh}.truco .hand-panel .my-hand .playing-card{width:14.3dvh;height:20dvh;min-width:45px;min-height:63px}
.truco .challenge{top:26%;max-width:32%;font-size:18px}
}

/* Etiquetas pertencem somente ao jogador; os naipes preservam a arte da carta. */
.truco .truco-played .corner small{background:transparent;border-radius:0;padding:0;margin:3px 0 0;font-size:.8em;color:inherit;line-height:1;max-width:none;overflow:visible;white-space:normal}

@media(orientation:landscape) and (max-height:360px){.truco .truco-tracker{top:14%}.truco .truco-round{top:23%}}

.truco .challenge{position:fixed;left:50%;top:48px;max-width:25%;font-size:17px;z-index:10;padding:4px 12px}
.truco .hand-panel .controls{right:2%;bottom:4px;width:24%;flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.truco .controls button{flex:1;min-width:70px}
.truco-consultation{position:fixed;right:12px;bottom:12px;width:clamp(230px,28vw,350px);padding:12px;background:#091d32f7;border:1px solid #43d7e3;border-radius:16px;z-index:18;box-shadow:0 12px 35px #0008;pointer-events:auto}.truco-consultation>small{display:block;font-size:9px;color:#62e5ef}.truco-consultation>strong{display:block;font-size:18px;margin:5px 0}.team-voters{display:grid;gap:4px;font-size:11px;color:#bacfe3}.vote-buttons{display:flex;gap:5px;margin-top:9px}.vote-buttons button{padding:8px 4px;flex:1;font-size:11px}.vote-buttons .chosen{background:#125b65;border-color:#64e8ec}.truco-consultation p{font-size:9px;line-height:1.4;margin:7px 0 0}.truco:has(.truco-consultation) .seat-5{top:43%}
@media(orientation:landscape) and (max-height:600px){.truco .challenge{top:34px;font-size:13px}.truco-consultation{right:8px;bottom:6px;width:225px;padding:8px}.truco-consultation>strong{font-size:14px}.team-voters{font-size:9px}.vote-buttons button{font-size:10px;padding:6px 2px}.truco-consultation>small{font-size:8px}}

.truco .challenge{display:none}.truco-request{color:#ffda73;font-size:inherit;font-weight:800}.truco .seat .opponent-cards,.truco .seat:not(.seat-0) .opponent-cards{height:calc(clamp(44px,5.6vw,81px) + 24px)}.truco .seat .avatar-ring{align-self:center}
@media(orientation:landscape) and (max-height:600px){.truco .seat .opponent-cards,.truco .seat:not(.seat-0) .opponent-cards{height:54px}}

/* Cartas de Truco: naipes discretos nos cantos e marca pequena no centro. */
.truco .playing-card>b{display:none}.truco .playing-card .card-sign{top:50%;bottom:auto;transform:translateY(-50%);height:clamp(12px,2.5dvh,24px)}
.truco .seat.turn .nameplate:after{content:'Pensando…';display:block;color:#ffe28c;font-size:10px;margin-top:3px}.truco .seat-0.turn .nameplate:after{content:none}

/* Um canto legível, nome do naipe e marca ao lado, sem elementos sobrepostos. */
.truco .playing-card .corner.bottom{display:none}
.truco .playing-card .corner{top:6px;left:6px;font-size:clamp(17px,4dvh,30px);line-height:1;font-weight:900}
.truco .playing-card .corner small,.truco .truco-played .corner small{font-size:.95em;line-height:1;margin-top:4px;padding:0;background:transparent;color:inherit}
.truco .playing-card .card-sign{left:auto;right:6px;top:46%;bottom:auto;width:44%;height:18%;transform:translateY(-50%)}
.truco .playing-card .card-sign img{width:100%;height:100%;object-fit:contain}
.truco .suit-label{position:absolute;left:3px;right:3px;bottom:6px;text-align:center;font-size:clamp(9px,1.8dvh,13px);font-weight:700;line-height:1;color:inherit}
.truco .truco-play-area .vira{left:33%}
.truco .vira .playing-card{width:clamp(58px,15dvh,106px);height:clamp(81px,21dvh,148px)}
.truco .vira>span{font-size:clamp(12px,2.5dvh,17px);font-weight:800;color:#ffe6a3;letter-spacing:1px}
@media(orientation:landscape) and (max-height:600px){.truco .vira .playing-card{width:15dvh;height:21dvh;min-width:48px;min-height:67px}.truco .truco-played .corner{font-size:3.5dvh;top:3px;left:3px}.truco .truco-played .corner small{margin-top:2px}.truco .truco-played .suit-label{font-size:7px;bottom:4px}.truco .vira .corner{font-size:4.5dvh}.truco .playing-card .card-sign{right:3px}}

/* Vira com as mesmas cores das demais cartas e somente símbolos dos naipes. */
.truco .vira .playing-card{color:#142139}.truco .vira .playing-card.red{color:#d80b57}
.truco .vira>span{color:#d9e4f3}.truco .suit-label{display:none}

/* Carta clássica: dois cantos espelhados e logo FlipStars central. */
.truco .playing-card .corner{top:5px;left:5px;font-size:clamp(16px,3.3dvh,26px);line-height:1}
.truco .playing-card .corner.bottom{display:block;top:auto;left:auto;bottom:5px;right:5px;transform:rotate(180deg)}
.truco .playing-card .corner small,.truco .truco-played .corner small{margin-top:2px;font-size:.8em;line-height:1;padding:0;background:transparent;color:inherit}
.truco .playing-card .card-sign{left:50%;right:auto;top:50%;bottom:auto;width:56%;height:20%;transform:translate(-50%,-50%)}
.truco .playing-card .card-sign img{width:100%;height:100%;object-fit:contain}
@media(orientation:landscape) and (max-height:600px){.truco .truco-played .corner{top:3px;left:3px;font-size:3dvh}.truco .truco-played .corner.bottom{top:auto;left:auto;bottom:3px;right:3px}.truco .vira .corner{font-size:3.8dvh}}

.truco .playing-card .card-sign{width:43%;height:16%}
.truco .truco-played .playing-card{width:clamp(48px,10.7dvh,96px);height:clamp(67px,15dvh,134px)}
.truco .my-hand button{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
@media(orientation:landscape) and (max-height:600px){.truco .truco-played .playing-card{width:10dvh;height:14dvh}}

.truco .private-signals{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0;pointer-events:none}
.seat-signal{position:absolute;top:0;left:0;transform:translateY(-100%);display:grid;place-items:center;width:42px;height:35px;background:#eafaff;color:#0e2638;border:1px solid #6ce0ec;border-radius:17px 17px 17px 4px;font-size:24px;box-shadow:0 3px 12px #0004;pointer-events:auto;z-index:12}
@media(orientation:landscape) and (max-height:600px){.seat-signal{width:32px;height:27px;font-size:19px}}

/* Poker: palco próprio, dealer central e cartas FlipStars legíveis. */
.table-page.poker{position:fixed;inset:0;height:100dvh;padding:6px 14px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 35%,#24344b,#080e1d 78%);overflow:hidden}
.poker .table-header{height:42px;flex-shrink:0}.poker .arena{flex:1;min-height:0;margin:0;position:relative}
.poker .felt{inset:20% 12% 8%;border:9px solid #70543c;border-radius:50%;background:radial-gradient(ellipse at 50% 25%,#177968,#084939 75%);box-shadow:0 0 0 3px #c6a46a,inset 0 0 35px #001e19,0 15px 30px #0008}
.poker .watermark{width:43%;opacity:.12}.poker .table-center{inset:0;pointer-events:none}
.poker .table-dealer{position:absolute;top:1%;left:50%;transform:translateX(-50%);width:clamp(100px,23dvh,240px);height:32%;object-fit:contain;object-position:bottom;z-index:1}
.poker .poker-center{position:absolute;top:37%;left:50%;transform:translateX(-50%);width:52%;height:auto;gap:5px;z-index:2}
.poker .community{gap:clamp(6px,1vw,16px);margin:8px 0}.poker .community .playing-card,.poker .community .card-slot{width:clamp(43px,11.5dvh,110px);height:clamp(60px,16dvh,154px);border-radius:8px}
.poker .playing-card>b{display:none}.poker .playing-card .corner{top:5%;left:8%;font-size:clamp(16px,4.1dvh,36px);line-height:1}.poker .playing-card .corner small{display:block;font-size:.68em}.poker .playing-card .bottom{top:auto;left:auto;bottom:5%;right:8%;transform:rotate(180deg)}
.poker .playing-card .card-sign{position:absolute;top:42%;left:25%;width:50%;height:17%;bottom:auto}.poker .card-sign img{width:100%;height:100%;object-fit:contain}
.poker .seat{width:clamp(92px,12vw,175px);z-index:4}.poker .avatar-ring{width:clamp(44px,10dvh,96px);height:clamp(44px,10dvh,96px)}.poker .nameplate{padding:4px 8px;background:#071421e8}.poker .nameplate b{font-size:clamp(10px,1.65dvh,16px)}.poker .nameplate small{font-size:clamp(8px,1.4dvh,12px)}
.poker .opponent-cards{top:0;left:55%;right:auto;width:60%;height:clamp(44px,10dvh,96px)}.poker .opponent-cards i{width:clamp(31px,6.8dvh,64px);height:clamp(43px,9.5dvh,90px);left:calc(var(--j)*22%);transform:rotate(calc((var(--j) - .5)*12deg))}.poker .seat-right .opponent-cards{left:auto;right:55%}
.poker .seat-bet{top:100%;left:50%;transform:translateX(-50%)}.poker .seat-0 .seat-bet,.poker .seat-5 .seat-bet{top:auto;bottom:100%}.dealer-button{position:absolute;left:0;top:0;background:#f6f1df;color:#142329;border:2px solid #d9b461;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-weight:900}
.poker .hand-panel{height:22dvh;min-height:84px;margin:0;background:transparent;border:0;padding:0 10px;gap:12px}.poker .my-hand{padding:0;gap:12px}.poker .my-hand .playing-card{width:clamp(53px,14dvh,135px);height:clamp(74px,20dvh,190px);margin:0;transform:rotate(0deg)}.poker .controls{width:clamp(120px,22vw,240px);display:grid;grid-template-columns:1fr 1fr}.poker .controls button{font-size:clamp(10px,1.8dvh,16px);padding:9px 6px}.poker .turn-info{width:clamp(120px,20vw,240px)}.poker .game-status{bottom:0;font-size:10px}.poker .chip-legend{height:24px;flex-shrink:0;margin:0;font-size:8px;gap:10px}.poker .pot>b{font-size:clamp(11px,2dvh,18px)}.poker .hand-winner{font-size:12px;max-width:100%}.poker .hand-winner small{font-size:10px}
.poker-deal-flight{position:absolute;left:50%;top:23%;width:clamp(31px,6.8dvh,64px);height:clamp(43px,9.5dvh,90px);z-index:9;pointer-events:none;filter:drop-shadow(0 5px 5px #0006)}
@media(max-height:520px){.poker .table-header{height:31px}.poker .pot .chip-stack{display:none}.poker .chip-legend small{display:none}.poker .hand-winner small{max-height:28px;overflow:auto}.poker .game-status{font-size:8px}.poker .chip-legend{height:18px}}
@media(prefers-reduced-motion:reduce){.poker-deal-flight{display:none}}

.poker .opponent-cards{left:calc(50% + 24px)}.poker .seat-right .opponent-cards{left:auto;right:calc(50% + 24px)}.poker .table-dealer{height:36%}

.poker .table-dealer{pointer-events:auto;padding:0;background:transparent;border:0;cursor:pointer;overflow:visible}.poker .table-dealer img{width:100%;height:100%;object-fit:contain;object-position:bottom}.poker .table-dealer:focus-visible{outline:2px solid #04cef4;border-radius:20px}.dealer-thanks{position:absolute;left:50%;top:29%;transform:translateX(-50%);z-index:6;background:#fff;color:#38264d;padding:8px 12px;border-radius:18px;font-size:12px;box-shadow:0 5px 20px #0005}.tip-options{display:flex;gap:12px;margin:20px 0}.tip-options img,.poker-wallet img{width:24px;height:24px;object-fit:contain}.tip-options button{display:flex;align-items:center;gap:8px}.poker-wallet{display:flex;align-items:center;gap:6px;border-right:1px solid #ffffff30;padding-right:12px;color:#ffdc82;font-size:12px;font-weight:700}
@media(max-height:520px){.poker-wallet{font-size:9px}.poker-wallet img{width:19px;height:19px}.dealer-thanks{font-size:9px;padding:4px 8px}}

/* Poker 0.20.2: zones indépendantes pour la table et les joueurs. */
.poker .felt{inset:17% 11% 3%}.poker .table-center{display:block;inset:0}.poker .poker-center{inset:0;width:100%;height:100%;transform:none;display:block}
.poker .poker-center>.community{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);margin:0;gap:clamp(5px,.8vw,12px)}
.poker .poker-center>.pot{position:absolute;left:50%;top:36%;transform:translate(-50%,-50%);margin:0;min-width:130px;z-index:2}
.poker .poker-center>.eyebrow{position:absolute;left:50%;top:29%;transform:translateX(-50%);font-size:clamp(8px,1.5dvh,13px)}
.poker .table-dealer{top:0;left:50%;height:28%;width:clamp(90px,22dvh,210px);z-index:3}
.poker .community .playing-card,.poker .community .card-slot{width:clamp(40px,10.5dvh,105px);height:clamp(56px,14.7dvh,147px)}
.poker .poker-center>.hand-winner{position:absolute;top:75%;left:50%;transform:translateX(-50%);width:46%;text-align:center}
.poker .seat{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:6px;width:clamp(122px,14vw,194px)}.poker .avatar-ring{grid-column:1;grid-row:1;width:clamp(38px,9dvh,86px);height:clamp(38px,9dvh,86px)}
.poker .nameplate{grid-column:2;grid-row:1;min-width:0;max-width:100%;padding:5px 6px;text-align:left;white-space:nowrap}.poker .nameplate b{display:block;overflow:hidden;text-overflow:ellipsis}.poker .nameplate small{display:block}
.poker .opponent-cards,.poker .seat-right .opponent-cards{left:42%;right:auto;top:auto;bottom:calc(100% + 3px);height:clamp(30px,7.5dvh,72px);width:58%}.poker .opponent-cards i{width:clamp(22px,5.3dvh,50px);height:clamp(30px,7.5dvh,72px);left:calc(var(--j)*30%)}
.poker .seat-bet{display:flex;align-items:center;gap:5px;top:calc(100% + 3px);bottom:auto!important;left:50%;white-space:nowrap}.poker .seat-0 .seat-bet,.poker .seat-5 .seat-bet{top:auto;bottom:calc(100% + 3px)!important;left:90%}.poker .seat-bet .chip{width:23px;height:23px;font-size:8px}.poker .seat-bet .chip small{display:none}.poker .bet-total{color:#ffe3a0;font-size:11px}
.poker .game-status{left:50%;bottom:-8px;transform:translateX(-50%);width:55%;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poker .dealer-button{left:-8px;top:calc(100% + 2px);width:20px;height:20px;font-size:12px}.poker .dealer-thanks{top:25%}
@media(max-height:520px){.poker .hand-panel{height:23dvh;min-height:84px}.poker .seat{width:122px;gap:3px}.poker .nameplate b{font-size:10px}.poker .nameplate small{font-size:8px}.poker .seat-bet .chip{width:17px;height:17px;font-size:6px}.poker .bet-total{font-size:9px}.poker .poker-center>.pot{top:35%;padding:2px 4px}.poker .poker-center>.eyebrow{top:28%}.poker .game-status{font-size:8px}.poker .table-dealer{height:27%}}

.poker .seat-2 .opponent-cards{bottom:auto;top:0;left:calc(100% + 4px)}.poker .seat-3 .opponent-cards{bottom:auto;top:0;left:auto;right:calc(100% + 4px)}.poker .poker-center>.eyebrow{display:none}.poker .avatar-ring{min-width:42px;min-height:42px}

/* Cartas pessoais junto ao próprio lugar, dentro da mesa. */
.poker .arena>.my-hand{position:absolute;left:50%;top:78%;transform:translate(-50%,-50%);height:auto;width:auto;padding:0;gap:4px;z-index:5}
.poker .arena>.my-hand .playing-card{width:clamp(38px,8.7dvh,85px);height:clamp(53px,12.2dvh,119px);transform:rotate(-7deg);border:2px solid #f5db94;box-shadow:0 4px 12px #0006}
.poker .arena>.my-hand .playing-card+ .playing-card{transform:rotate(7deg);margin-left:-4px}
.poker .arena>.my-hand .corner{font-size:clamp(15px,3.1dvh,30px)}.poker .seat-0{transform:translate(-50%,-15%)}.poker .hand-panel{height:15dvh;min-height:58px;justify-content:space-between}.poker .chip-legend{border-top:0}.poker .game-status{bottom:-14px}.poker .felt{bottom:1%}
@media(max-height:520px){.poker .hand-panel{height:16dvh;min-height:62px}.poker .controls{width:31vw;max-width:320px;display:flex;flex-direction:row;justify-content:flex-end;gap:5px}.poker .controls button{padding:7px 9px}.poker .controls button:last-child{white-space:nowrap}.poker .seat-0 .nameplate{max-width:100px}}

/* Poker 0.21: mesa plana e faixa inferior, conforme referência. */
.table-page.poker{padding:4px 12px;background:radial-gradient(ellipse at center,#292c37,#11131b 80%)}.poker .table-header{height:32px;justify-content:space-between;gap:8px}.poker .table-header .logo{width:92px}.poker .table-header>b{font-size:12px}.poker .table-header>span{font-size:11px}.poker .table-header .leave-room{font-size:11px;padding:5px 10px}
.poker .arena{margin:10px 0 0}.poker .felt{inset:12% 9% 8%;border:10px solid #12191c;box-shadow:0 0 0 3px #596967,inset 0 0 35px #001c12,0 5px 10px #0008;background:radial-gradient(ellipse,#14794d,#055b32 76%);border-radius:48%}.poker .watermark{width:40%;opacity:.15}
.poker .table-dealer{top:0;height:19%;width:clamp(65px,16dvh,160px)}.poker .poker-center>.pot{top:36%;padding:0;background:transparent;min-width:0}.poker .pot>b{background:#06472a;border:0;border-radius:4px;font-size:clamp(10px,2dvh,17px);padding:4px 9px}.poker .community{top:52%!important;gap:5px!important}.poker .community .card-slot{visibility:hidden;border:0;box-shadow:none}.poker .community .playing-card{border:1px solid #ccd9d2;border-radius:5px;width:clamp(43px,11.5dvh,105px);height:clamp(60px,16dvh,147px)}
.poker .seat{width:clamp(124px,15vw,196px);gap:0;grid-template-columns:1fr auto}.poker .avatar-ring{grid-column:2;grid-row:1;width:clamp(38px,8.5dvh,78px);height:clamp(38px,8.5dvh,78px);background:#11191c;padding:2px;border:1px solid #688078}.poker .nameplate{grid-column:1;grid-row:1;min-height:40px;border:1px solid #647571;border-right:0;border-radius:9px 0 0 9px;padding:6px 8px;background:linear-gradient(#0d1915,#07100d);text-align:center}.poker .nameplate b{font-size:clamp(11px,1.9dvh,17px);line-height:1.2}.poker .nameplate small{font-size:clamp(9px,1.6dvh,14px);color:#d2dfd7;margin-top:3px}
.poker .opponent-cards,.poker .seat-right .opponent-cards,.poker .seat-2 .opponent-cards,.poker .seat-3 .opponent-cards{top:auto;bottom:calc(100% - 1px);left:18%;right:auto;width:58%;height:clamp(20px,5dvh,47px)}.poker .opponent-cards i{width:clamp(19px,4dvh,37px);height:clamp(26px,5.5dvh,51px);left:calc(var(--j)*31%);transform:none}
.poker .seat-bet{top:110%;left:60%;gap:3px}.poker .seat-0 .seat-bet,.poker .seat-5 .seat-bet{top:auto;bottom:calc(100% + 4px)!important;left:70%}.poker .seat-0{transform:translate(-50%,-30%)}
.poker .seat-0>.my-hand{position:absolute;right:calc(100% + 5px);left:auto;top:0;transform:none;width:auto;height:auto;display:flex;gap:1px;padding:0;z-index:5}
.poker .seat-0>.my-hand .playing-card{width:clamp(32px,7dvh,67px);height:clamp(45px,9.8dvh,94px);margin:0;transform:none;border:1px solid #e6eadf;border-radius:4px;box-shadow:0 3px 8px #0007}
.poker .seat-0>.my-hand .corner{font-size:clamp(15px,2.8dvh,26px)}.poker .seat-0>.my-hand .card-sign{width:43%;left:28%}
.poker .hand-panel{height:14dvh;min-height:65px;margin-top:5px;padding:8px;background:#101317;border:1px solid #46514e;border-radius:3px;display:grid;grid-template-columns:1fr 1.7fr;gap:14px}.poker .controls{width:auto;max-width:none;display:flex;flex-direction:row;justify-content:flex-end;align-items:center;gap:10px}.poker .controls button{min-width:90px;min-height:40px;border-radius:7px;font-size:clamp(11px,1.9dvh,17px)}.poker .controls .danger{background:linear-gradient(#b62037,#741b2b);color:white;border-color:#d75667}.poker .turn-info{width:auto}.poker .turn-info b{font-size:clamp(11px,2dvh,18px)}.poker .turn-info small{font-size:clamp(9px,1.7dvh,13px)}.poker .game-status{bottom:-2px;font-size:10px;color:#bdd4c7;text-align:center}.poker .chip-legend{height:30px;gap:9px}.poker-wallet{font-size:11px}.bet-denominations{display:flex;gap:8px;margin:12px 0}.bet-denominations button{flex:1;padding:12px 4px}
@media(max-height:520px){.poker .table-header{height:27px}.poker .arena{margin-top:8px}.poker .table-header .logo{width:74px}.poker .table-header>b{font-size:10px}.poker .table-dealer{height:18%}.poker .seat{width:124px}.poker .nameplate{min-height:35px;padding:4px 5px}.poker .nameplate b{font-size:10px}.poker .nameplate small{font-size:9px}.poker .hand-panel{min-height:60px;padding:5px 8px;gap:8px}.poker .controls{gap:5px}.poker .controls button{min-width:65px;min-height:34px;padding:7px 8px;font-size:10px}.poker .chip-legend{height:20px;gap:6px}.poker .chip-legend small{display:inline;font-size:8px}.poker .chip-legend .chip{width:16px;height:16px}.poker .game-status{font-size:8px}}

.poker .watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:38%;height:auto;max-height:45%;object-fit:contain}.poker .dealer-button{top:80%;left:calc(100% + 2px)}

/* Mesa ampla, turno e ações separados. */
.poker .felt{inset:9% 5% 4%;border-radius:50%;border-width:9px}
.poker .arena{margin-top:7px}
.poker .hand-panel{height:10dvh;min-height:48px;margin:6px 0 0;padding:0 8px;background:transparent;border:0;box-shadow:none;display:flex;justify-content:space-between;align-items:center;gap:16px}
.poker .turn-info{flex:0 1 35%;padding:6px 8px;text-align:left}
.poker .controls{flex:0 1 auto;width:auto;gap:12px;padding:0;justify-content:flex-end}
.poker .controls button{min-height:42px;min-width:96px}
.poker .chip-legend{height:25px}
.poker .game-status{bottom:0}
@media(max-height:520px){.poker .felt{inset:10% 5% 4%}.poker .hand-panel{height:10dvh;min-height:42px;margin-top:4px;padding:0 4px}.poker .turn-info{padding:3px 4px}.poker .controls{gap:7px}.poker .controls button{min-height:34px;min-width:66px}.poker .chip-legend{height:20px}}
/* Dominó: peças vetoriais, superfície ampla, mão separada do tabuleiro. */
.table-page.domino{position:fixed;inset:0;height:100dvh;display:flex;flex-direction:column;padding:6px 14px;background:radial-gradient(ellipse at center,#233845,#0a1320 85%)}
.domino .table-header{height:34px;flex-shrink:0}.domino .table-header .logo{width:90px}.domino .table-header b{font-size:13px}.domino .arena{flex:1;min-height:0;margin:3px 0 0}.domino .felt{inset:7% 5% 3%;border-radius:38%;border:10px solid #17282c;box-shadow:0 0 0 2px #648a83,inset 0 0 30px #002b28;background:radial-gradient(ellipse,#176358,#0a403d)}
.domino .watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:35%;height:auto;opacity:.08}.domino-score{display:flex;justify-content:center;align-items:center;gap:22px;height:30px;flex-shrink:0;font-size:12px;color:#a9e4dd}.domino-score b{color:white;font-size:19px;margin-left:7px}.domino-score small{font-size:10px;color:#b2c2d1}
.domino-seat{position:absolute;transform:translate(-50%,-50%);z-index:3;display:flex;align-items:center;width:clamp(98px,14vw,180px);gap:5px}.domino-seat .avatar-ring{width:clamp(35px,7dvh,70px);height:clamp(35px,7dvh,70px);flex-shrink:0}.domino-seat .nameplate{min-width:0;padding:4px 6px;border:1px solid #3f756f;background:#0a2726e8;text-align:left}.domino-seat .nameplate b{font-size:clamp(9px,1.6dvh,15px);max-width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.domino-seat .nameplate small{font-size:clamp(8px,1.4dvh,12px)}.domino-backs{position:absolute;left:35%;top:calc(100% + 4px);display:flex;gap:2px}.domino-backs i{width:8px;height:17px;border:1px solid #6e9b9d;background:linear-gradient(130deg,#2b515b,#122c36);border-radius:2px}
.domino-board{position:absolute;left:20%;right:20%;top:27%;bottom:15%;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(var(--rows),1fr);align-items:center;gap:clamp(3px,.6vw,8px)}.domino-placement{grid-column:calc(var(--col) + 1);grid-row:calc(var(--row) + 1);display:flex;align-items:center;justify-content:center}.domino-placement.reverse{rotate:180deg}.domino-empty{grid-column:1/-1;text-align:center;font-size:13px;color:#b0ddd7}
.domino-tile{width:100%;aspect-ratio:2/1;display:flex;align-items:stretch;padding:4px;background:linear-gradient(130deg,#fffffb,#d5e3e2);border:1px solid #819d9a;border-radius:5px;box-shadow:0 3px 4px #001d2580;color:#102333;gap:3px;flex-shrink:0;position:relative}
.domino-half{flex:1;min-width:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:7%;padding:5%;aspect-ratio:1}.domino-half i{border-radius:50%;aspect-ratio:1}.domino-half .pip{background:#142b35;box-shadow:inset 0 1px 1px #0007}.domino-divider{width:1px;align-self:stretch;background:#90a7a6}.domino-bottom{height:19dvh;min-height:75px;display:grid;grid-template-columns:1fr 2.8fr 1fr;align-items:center;gap:12px;flex-shrink:0;padding:4px}.domino .turn-info{width:auto}.domino .turn-info b{font-size:clamp(10px,1.8dvh,16px)}.domino .turn-info small{font-size:clamp(8px,1.5dvh,12px)}.domino-hand{display:flex;justify-content:center;gap:clamp(3px,.6vw,8px);overflow-x:auto;overflow-y:hidden;padding:10px 3px;min-width:0;scrollbar-width:thin}.domino-hand .domino-tile{flex-direction:column;width:clamp(28px,6dvh,56px);aspect-ratio:1/2;height:auto;min-height:0;gap:3px;cursor:pointer;padding:4px;transition:translate .18s,border-color .18s}.domino-hand .domino-divider{height:1px;width:auto}.domino-hand .domino-tile:disabled{opacity:.55;cursor:default}.domino-hand .domino-tile.playable{border:2px solid #f5d888}.domino-hand .domino-tile.selected{translate:0 -7px;border-color:#27e8de;box-shadow:0 0 13px #24dbca66}.domino .controls{width:auto;max-width:160px}.domino .controls button{font-size:clamp(10px,1.8dvh,15px);padding:8px}.domino .controls small{font-size:10px;color:#9ac2bc;text-align:center}.domino-end{position:absolute;top:48%;z-index:6;background:#0b3132;border:1px solid #4de5cc;font-size:11px;padding:8px;border-radius:10px}.domino-end.left{left:9%}.domino-end.right{right:9%}.domino-round-result{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);padding:16px;text-align:center;background:#0b222bf5;border:1px solid #64cabb;border-radius:14px;z-index:8;min-width:230px}.domino-round-result small{display:block;font-size:11px;color:#abc9c8;margin:8px 0}.domino-announcement{height:16px;text-align:center;font-size:10px;color:#9cb7b9;flex-shrink:0}
@media(max-height:520px){.domino .table-header{height:27px}.domino .table-header .logo{width:65px}.domino-score{height:23px;font-size:9px;gap:10px}.domino-score b{font-size:14px}.domino-score small{font-size:8px}.domino .felt{border-width:7px}.domino-bottom{height:22dvh;min-height:72px;gap:6px}.domino-board{left:21%;right:21%;top:27%;bottom:18%;gap:4px}.domino-tile{padding:2px;gap:2px;border-radius:3px}.domino-hand .domino-tile{width:30px;padding:3px}.domino-seat{width:106px}.domino-seat .avatar-ring{width:34px;height:34px;min-width:0;min-height:0}.domino-backs i{height:12px;width:6px}.domino-backs{gap:1px}.domino-end{padding:5px;font-size:9px}.domino-end.left{left:8%}.domino-end.right{right:8%}.domino-announcement{height:12px;font-size:8px}.domino-round-result{padding:10px;min-width:190px}.domino-round-result b{font-size:12px}}
/* Mesma ocupação ampla para o Truco em duelo, duplas e trios. */
.table-page.truco{position:fixed;inset:0;height:100dvh;display:flex;flex-direction:column;padding:5px 12px}
.truco .arena{flex:1;min-height:0;margin:4px 0 0}.truco .felt{inset:7% 5% 3%}.truco .hand-panel{height:19dvh;min-height:74px;margin:4px 0 0;background:transparent;border:0;padding:0 8px}.truco .table-center{inset:15% 24% 8%}.truco .my-hand .playing-card{height:clamp(80px,18dvh,162px);width:clamp(56px,12.6dvh,114px)}
@media(max-height:520px) and (orientation:landscape){.truco .table-header{height:29px}.truco .team-overview{min-height:17px}.truco .hand-panel{height:23dvh;min-height:76px}.truco .table-center{inset:17% 24% 8%}.truco .my-hand .playing-card{height:21dvh;width:14.7dvh}.truco .truco-play-area{min-height:0}.truco .turn-info{width:150px}.truco .controls{width:145px}}
/* Poker 0.22: referência em vídeo — cartas centrais, mão no próprio lugar, ações compactas. */
.table-page.poker{background:radial-gradient(ellipse at 50% 35%,#292632,#10101a 80%)}
.poker .felt{inset:9% 5% 4%;border-radius:43%;border:12px solid #342b2c;background:radial-gradient(ellipse at 50% 35%,#796a67,#51464a 78%);box-shadow:0 0 0 3px #9d8480,inset 0 0 32px #201a24b0,0 8px 18px #0008;clip-path:polygon(0 30%,13% 7%,31% 0,69% 0,87% 7%,100% 30%,100% 70%,87% 93%,69% 100%,31% 100%,13% 93%,0 70%)}
.poker .watermark{opacity:.1;width:33%}.poker .table-dealer{height:17%;top:1%}.poker .poker-center>.pot{top:35%}.poker .pot>b{background:#2d2429e8;border:1px solid #ad929033;color:#ffe6a2}.poker .community{top:52%!important}.poker .community .playing-card{width:clamp(44px,12dvh,110px);height:clamp(62px,16.8dvh,154px)}
.poker .playing-card>b{display:block;position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);font-size:clamp(23px,6.3dvh,58px);line-height:1}.poker .playing-card .card-sign{top:auto;bottom:8%;left:37%;width:26%;height:10%;z-index:1}.poker .playing-card .corner{font-size:clamp(16px,3.5dvh,32px)}
.poker .seat-0{display:flex;flex-direction:column;width:clamp(104px,13vw,170px);transform:translate(-50%,-25%);gap:0}.poker .seat-0 .avatar-ring{width:clamp(37px,7dvh,68px);height:clamp(37px,7dvh,68px);min-width:0;min-height:0;z-index:1}.poker .seat-0 .nameplate{width:100%;min-height:30px;border:1px solid #647571;border-radius:7px;padding:3px 5px}.poker .seat-0 .nameplate b{font-size:clamp(10px,1.7dvh,15px)}.poker .seat-0 .nameplate small{margin-top:1px;font-size:clamp(8px,1.5dvh,13px)}
.poker .seat-0>.my-hand{left:50%;right:auto;top:auto;bottom:calc(100% - 6px);transform:translateX(-50%);gap:0}.poker .seat-0>.my-hand .playing-card{width:clamp(36px,8.5dvh,78px);height:clamp(50px,11.9dvh,110px);transform:rotate(-5deg);transform-origin:bottom right}.poker .seat-0>.my-hand .playing-card+.playing-card{margin-left:-5px;transform:rotate(5deg);transform-origin:bottom left}.poker .seat-0>.my-hand .corner{font-size:clamp(15px,2.8dvh,25px)}.poker .seat-0>.my-hand .playing-card>b{font-size:clamp(22px,4.5dvh,40px)}.poker .seat-0>.my-hand .card-sign{left:37%;width:26%}.poker .seat-0 .seat-bet{left:calc(100% + 10px);bottom:auto!important;top:0}.poker .seat-0 .dealer-button{left:-20px;top:50%}
.poker .folded-seat .opponent-cards{opacity:.2}.poker .folded-seat .avatar-ring{filter:saturate(.35)}.poker .all-in-seat .nameplate{border-color:#f1c86c}.poker-action-bubble{position:absolute;top:calc(100% + 3px);left:50%;transform:translateX(-50%);padding:3px 8px;border-radius:10px;background:#142634ec;color:#e1eeee;white-space:nowrap;font-size:clamp(8px,1.4dvh,12px);z-index:7;pointer-events:none}.poker .seat-0 .poker-action-bubble{top:auto;bottom:calc(100% + 12dvh)}.poker-award-flight{position:fixed;z-index:99;pointer-events:none;background:#e2bd65;color:#28212a;border:2px dashed #fff0b4;border-radius:20px;padding:6px 12px;font-weight:bold;font-size:13px}
#classic-dialog.poker-bet-panel{position:fixed;inset:auto 14px 42px auto;width:min(380px,48vw);max-height:70dvh;overflow:auto;margin:0;padding:20px;border-radius:14px;background:#141b2bf5;box-shadow:0 10px 50px #0008;border:1px solid #748899}#classic-dialog.poker-bet-panel::backdrop{background:transparent;backdrop-filter:none}#classic-dialog.poker-bet-panel h2{font-size:18px;margin:4px 20px 12px 0}#classic-dialog.poker-bet-panel p{font-size:10px;margin:5px 0}#classic-dialog.poker-bet-panel label{font-size:11px}#classic-dialog.poker-bet-panel input[type=number]{padding:8px;font-size:16px}#classic-dialog.poker-bet-panel input[type=range]{width:100%;accent-color:#14d5e0;margin:8px 0;padding:0}.poker-bet-presets{display:flex;gap:5px}.poker-bet-presets button{flex:1;padding:6px;font-size:11px}#classic-dialog.poker-bet-panel .bet-denominations{gap:4px;margin:8px 0}#classic-dialog.poker-bet-panel .bet-denominations button{padding:6px 3px;font-size:10px}#classic-dialog.poker-bet-panel .primary{width:100%;padding:9px}
@media(max-height:520px){.poker .felt{border-width:8px}.poker .seat-0 .nameplate{min-height:26px}.poker .seat-0 .nameplate b{font-size:9px}.poker .seat-0 .nameplate small{font-size:8px}.poker .hand-panel{min-height:44px}.poker .controls{gap:6px}.poker .controls button{min-width:68px}.poker .poker-center>.hand-winner{top:69%;font-size:10px;width:38%;background:#27212bd9;border-radius:8px;padding:5px}.poker .hand-winner small{font-size:8px}#classic-dialog.poker-bet-panel{bottom:30px;padding:12px;max-height:84dvh}#classic-dialog.poker-bet-panel h2{font-size:14px}#classic-dialog.poker-bet-panel .close{font-size:20px;right:7px;top:5px}}
/* Coordenadas das jogadas usam a arena inteira: seis espaços sem sobreposição. */
.truco .table-center{inset:0}.truco .played-1,.truco .played-2,.truco .played-3{top:43%}.truco .played-0,.truco .played-4,.truco .played-5{top:67%}
.domino-board{top:29%;bottom:23%}.domino-placement{height:100%;min-height:0}.domino-placement .domino-tile{max-height:100%;flex-shrink:1}.domino-seat.self{top:93%!important}
@media(max-height:520px){.domino-board{top:29%;bottom:23%}.truco .table-center{inset:0}}
.domino-board{left:50%;right:auto;transform:translateX(-50%);width:min(60%,calc(var(--cols)*clamp(40px,6.7vw,90px)));grid-template-columns:repeat(var(--cols),1fr)}
/* Aviso de resultado fica no canto das ações, fora das cartas. */
.truco .truco-outcome{position:fixed;left:auto;right:12px;bottom:9px;top:auto;transform:none;max-width:24%;width:auto;z-index:14;padding:9px 12px}.truco .truco-outcome strong{font-size:14px}.truco .truco-outcome b{font-size:12px}.truco .truco-outcome small{font-size:10px}
@media(max-height:520px){.truco .truco-outcome{right:8px;bottom:6px;padding:6px 8px;max-width:24%}.truco .truco-outcome strong{font-size:10px}.truco .truco-outcome b{font-size:9px}.truco .truco-outcome small{font-size:8px}}
/* Poker 0.22.1: mesa maior e aposta na faixa inferior. */
.poker .felt{inset:5% 2% 1%}.poker .arena{margin-top:4px}.poker .hand-panel{height:17dvh;min-height:86px;gap:0;margin-top:3px;padding:0 8px;align-items:center}.poker .turn-info{flex:0 1 28%;max-width:28%}.poker .controls{display:block;flex:0 0 38%;width:38%;max-width:410px;min-width:0;align-self:center}.poker .controls:empty{display:none}.poker .controls button{min-width:0;min-height:30px;padding:6px 9px;font-size:clamp(10px,1.7dvh,15px)}.poker-action-buttons{display:flex;justify-content:flex-end;gap:7px}.poker-action-buttons>button{flex:1}.poker .poker-bet-presets{display:flex;gap:4px;margin:0 0 5px}.poker .poker-bet-presets button{min-height:22px;font-size:clamp(8px,1.4dvh,12px);padding:4px 3px;background:#253044;border-color:#596475}.poker .seat-0{top:100%;transform:translate(-50%,-35%)}.poker .seat-0>.my-hand{bottom:calc(100% + 8px)}.poker .poker-action-bubble{top:auto;bottom:calc(100% + 6dvh);font-size:10px}.poker .seat-0 .poker-action-bubble{left:calc(100% + 25px);bottom:100%}
.poker-inline-bet{display:grid;grid-template-columns:1fr 1fr;gap:4px 7px;padding:0}.poker-bet-value{display:flex;align-items:center;justify-content:space-between;gap:5px;grid-column:1}.poker-bet-value label{display:flex;align-items:center;gap:6px;font-size:10px;white-space:nowrap}.poker-bet-value input{width:70px;min-width:0;font:inherit;font-size:13px;padding:3px 5px;color:#fff;background:#121f30;border:1px solid #6e869b;border-radius:5px}.poker-bet-value small{display:none}.poker-bet-slider{display:flex;align-items:center;gap:5px;min-width:0;grid-column:2}.poker .poker-bet-slider button{width:26px;min-height:26px;padding:0;font-size:18px;flex-shrink:0}.poker-bet-slider input{width:100%;min-width:0;accent-color:#20d5e3}.poker-inline-bet .poker-bet-presets{grid-column:1/-1;margin:0}.poker-bet-confirm{display:flex;gap:7px;grid-column:1/-1}.poker-bet-confirm button{flex:1}.poker .poker-center>.hand-winner{top:70%;width:40%;padding:5px;background:#2c252ee8;border-radius:8px}
@media(max-height:520px){.poker .hand-panel{height:21dvh;min-height:82px;padding:0 5px}.poker .controls{width:38%;flex-basis:38%}.poker .controls button{min-height:27px;font-size:9px;padding:5px}.poker .poker-bet-presets button{min-height:20px;font-size:8px;padding:3px 1px}.poker-bet-value label{font-size:8px;gap:3px}.poker-bet-value input{width:55px;font-size:11px}.poker .poker-bet-slider button{min-height:22px;width:21px;font-size:15px}.poker .seat-0>.my-hand{bottom:calc(100% + 8px)}.poker .seat-0 .poker-action-bubble{font-size:8px}.poker .turn-info small{font-size:8px}}
@media(max-height:360px) and (orientation:landscape){.poker .seat-0{top:114%}.poker .seat-0>.my-hand .playing-card,.poker .seat-0>.my-hand .playing-card+.playing-card{transform:none}.poker .community{top:47%!important}.poker .poker-center>.pot{top:20%}.poker .table-dealer{height:14%;top:0}}
@media(max-height:360px) and (orientation:landscape){.poker .seat-0{top:132%}}
@media(min-height:361px) and (max-height:520px){.poker .seat-0{top:112%}}
.poker .poker-center>.pot{top:29%}
@media(max-height:360px) and (orientation:landscape){.poker .poker-center>.pot{top:20%}}
@media(max-height:360px) and (orientation:landscape){.poker .community{top:53%!important}.poker .seat-0{top:137%}}
/* Dominó: arraste para pontas ancoradas na própria sequência. */
.table-page.domino .felt{inset:2% 1% 1%;border-radius:28%;border-width:9px}.table-page.domino .domino-board{width:min(56%,calc(var(--cols)*clamp(38px,6.3vw,86px)));top:25%;bottom:24%;gap:5px}.table-page.domino .domino-empty{font-size:12px;align-self:start;color:#b4d7d4}.domino-dropzones{position:absolute;inset:0;pointer-events:none;z-index:7}.domino-dropzone{position:absolute;transform:translate(-50%,-50%);width:37px;height:34px;padding:3px 1px;border:2px dashed #61e2cc;border-radius:9px;color:#e3fff7;background:#104f49ed;font-size:11px;pointer-events:auto;touch-action:none;white-space:nowrap}.domino-dropzone:disabled{opacity:.4}.domino-dropzone.drop-hover{background:#28b49a;color:#051e25;box-shadow:0 0 0 5px #69f2d444}.domino-drag-ghost{position:fixed;z-index:150;pointer-events:none;display:flex;flex-direction:column;padding:4px;gap:3px;box-shadow:0 8px 22px #0008;transform:scale(1.08);border:2px solid #49e5cc;border-radius:5px;aspect-ratio:auto}.domino-drag-ghost .domino-divider{height:1px;width:auto}.domino-hand .domino-tile{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab}.domino-hand .domino-tile:active{cursor:grabbing}.domino .turn-info small{line-height:1.4}.domino .domino-backs{pointer-events:none}
@media(max-height:520px){.table-page.domino .felt{border-width:6px}.table-page.domino .domino-board{top:27%;bottom:25%;gap:4px}.domino-dropzone{width:29px;height:27px;font-size:9px}.domino .domino-bottom{grid-template-columns:1.3fr 2.7fr 1fr}.domino .turn-info small{font-size:8px}}

.domino-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}.domino-links path{stroke:#cfdfcf;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:none;opacity:.6}.domino-placement{position:relative;z-index:1}

.table-page.domino{user-select:none;-webkit-user-select:none}.table-page.domino .domino-empty{display:none}

.table-page.domino .domino-seat.self{top:85%!important}

/* Domino only: larger ivory pieces and distinct player identities. */
.table-page.domino{background:radial-gradient(ellipse at 50% 35%,#193e48,#071520 85%)}
.table-page.domino .felt{inset:1% .8%;border-radius:24%;border-color:#173b42;box-shadow:0 0 0 2px #66bdb3,inset 0 0 45px #001f25;background:radial-gradient(ellipse,#1b7165,#0c403e)}
.table-page.domino .domino-seat{width:clamp(120px,17vw,210px);gap:7px}
.table-page.domino .domino-seat .avatar-ring{width:clamp(44px,10dvh,82px);height:clamp(44px,10dvh,82px);min-width:0;min-height:0}
.table-page.domino .domino-seat .nameplate{flex:1;border-radius:10px;padding:7px 9px;background:#082d32ed;border-color:#619f97}
.table-page.domino .domino-seat .nameplate b{font-size:clamp(11px,2dvh,17px)}
.table-page.domino .domino-seat .nameplate small{font-size:clamp(9px,1.6dvh,13px);color:#b4d6d1}
.table-page.domino .domino-seat.turn .avatar-ring{border-color:#ffe09a;box-shadow:0 0 0 3px #f6cd7150,0 0 20px #f6cd7150}
.table-page.domino .domino-seat.turn .nameplate{border-color:#ffe09a;background:#184b48}
.table-page.domino .domino-board{width:min(57%,calc(var(--cols)*clamp(44px,7.3vw,100px)));top:30%;bottom:24%}
.table-page.domino .domino-hand .domino-tile{width:clamp(34px,8dvh,64px);border-radius:7px;box-shadow:0 4px 0 #718e89,0 7px 12px #001b2580;background:linear-gradient(135deg,#fffff5,#e2ece5)}
.table-page.domino .domino-hand .domino-tile.selected{translate:0 -10px;box-shadow:0 0 0 2px #59ead7,0 7px 17px #001b2580}
.table-page.domino .domino-score>span{padding:3px 12px;border-radius:20px;background:#0b2a35;border:1px solid #487b7e;color:#d2e8e4}
.table-page.domino .domino-backs{left:40%;gap:3px}.table-page.domino .domino-backs i{width:9px;height:19px;border-radius:3px;background:linear-gradient(140deg,#448c88,#163e4a)}
.table-page.domino .controls button{border:1px solid #79d9ca;border-radius:13px;background:linear-gradient(135deg,#176957,#124254);padding:10px 12px;box-shadow:0 4px 12px #00151f66;color:#ecfff9}
.table-page.domino .controls .domino-pass{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px}.table-page.domino .domino-pass>span:first-child{font-size:24px}.table-page.domino .domino-pass small{display:block;font-size:9px;margin-top:3px;color:#bce1d8}
.table-page.domino .controls button:active{background:#289782;transform:translateY(1px)}
@media(max-height:520px){.table-page.domino .domino-seat{width:124px;gap:5px}.table-page.domino .domino-seat .nameplate{padding:5px 6px}.table-page.domino .domino-backs i{width:7px;height:14px}.table-page.domino .domino-bottom{grid-template-columns:1.15fr 3fr 1fr;gap:7px}.table-page.domino .domino-hand{gap:5px}.table-page.domino .domino-seat .nameplate small{font-size:9px}.table-page.domino .domino-pass small{font-size:8px}}
.table-page.domino .domino-backs{top:auto;bottom:calc(100% + 5px)}

/* Keep a rigid 2:1 tile, even when the chain fills four rows. */
.table-page.domino .domino-placement{container-type:size;min-width:0;min-height:0}
.table-page.domino .domino-placement .domino-tile{width:min(100cqw,200cqh);height:auto;aspect-ratio:2/1;max-width:100%;max-height:100%;flex:none;overflow:hidden;box-sizing:border-box}
.table-page.domino .domino-half{min-width:0;min-height:0;overflow:hidden;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}
.table-page.domino .domino-half i{min-width:0;min-height:0;max-width:100%;max-height:100%;width:100%;height:100%;aspect-ratio:1;border-radius:50%}

.room-start-options{display:flex;flex-direction:column;gap:10px;margin-top:18px}.room-invite-choices{display:flex;flex-direction:column;gap:6px;max-height:180px;overflow:auto;border:1px solid #39516a;border-radius:10px;padding:12px}.room-invite-choices label{display:flex;align-items:center;gap:7px}
