/* Truco: vira, seis posições de jogada e mão separados. */
.table-page.truco{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;display:flex;flex-direction:column;padding:6px 12px;gap:0;overflow:hidden}.table-page.truco .table-header{height:34px;min-height:34px;flex-shrink:0}.table-page.truco .team-overview{height:20px;min-height:20px;margin:0 16%;font-size:10px;flex-shrink:0}.table-page.truco .arena{position:relative;flex:1;min-height:0;margin:3px 0 0;overflow:visible}.table-page.truco .felt{inset:2% 1% 0;border-width:9px}.table-page.truco .table-center{position:absolute;inset:0;display:block}.table-page.truco .truco-center{position:absolute;inset:0;display:block}
.table-page.truco .truco-center>.score{position:absolute;left:50%;top:0;transform:translateX(-50%);height:30px;line-height:1;font-size:clamp(10px,1.6dvh,15px);padding:0;white-space:nowrap;z-index:2}.table-page.truco .score b{font-size:clamp(20px,3.4dvh,32px)}.table-page.truco .truco-tracker{position:absolute;left:50%;top:10%;transform:translateX(-50%);margin:0;gap:6px;height:auto;white-space:nowrap;z-index:2}.table-page.truco .truco-tracker>span{font-size:clamp(8px,1.4dvh,12px);padding:4px 7px}.table-page.truco .truco-round{position:absolute;left:50%;top:18%;bottom:auto;transform:translateX(-50%);font-size:clamp(9px,1.4dvh,13px);line-height:1.1;padding:3px 7px;white-space:nowrap;z-index:2}.table-page.truco .truco-play-area{position:absolute;inset:0;min-height:0;display:block}
.table-page.truco .truco-played{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;animation:none}.table-page.truco .played-0{left:42%;top:80%}.table-page.truco .played-1{left:42%;top:42%}.table-page.truco .played-2{left:54%;top:42%}.table-page.truco .played-3{left:66%;top:42%}.table-page.truco .played-4{left:66%;top:80%}.table-page.truco .played-5{left:54%;top:80%}.table-page.truco .truco-played .playing-card{width:clamp(36px,10.5dvh,78px);height:clamp(51px,15dvh,112px);margin:0;padding:0;border:0;box-shadow:0 3px 8px #0005;background:none;border-radius:6px;overflow:hidden}.table-page.truco .truco-played>small{display:block;max-width:100px;font-size:clamp(7px,1.25dvh,11px);padding:2px 5px;line-height:1.1;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background:#091c31ed;border-radius:4px}
.table-page.truco .truco-play-area .vira{position:absolute;left:29%;top:58%;right:auto;bottom:auto;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px}.table-page.truco .vira>span:not(.playing-card){font-size:clamp(10px,1.8dvh,16px);font-weight:700;color:#d8eaf5;letter-spacing:1px}.table-page.truco .vira .playing-card{width:clamp(46px,14.7dvh,104px);height:clamp(66px,21dvh,149px);margin:0;padding:0;border:0;border-radius:6px;overflow:hidden;background:none;box-shadow:0 3px 8px #0006}.table-page.truco .poker-card-face{display:block;width:100%;height:100%;max-width:none;overflow:hidden;pointer-events:none}
.table-page.truco .seat,.table-page.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(44px,8.5dvh,78px) auto;grid-template-rows:auto auto;align-items:center;width:clamp(110px,13.5vw,190px);gap:3px;z-index:5}.table-page.truco .seat .avatar-ring,.table-page.truco .seat-0 .avatar-ring{grid-column:1;grid-row:1;width:clamp(44px,8.5dvh,78px);height:clamp(44px,8.5dvh,78px);min-width:0;min-height:0;justify-self:center}.table-page.truco .seat .nameplate{grid-column:1/-1;grid-row:2;width:100%;max-width:100%;padding:4px 6px;margin:0;overflow:hidden}.table-page.truco .nameplate b{display:block;font-size:clamp(9px,1.7dvh,15px);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-page.truco .nameplate small{font-size:clamp(7px,1.2dvh,11px);white-space:normal;overflow:hidden;display:block;line-height:1.2}.table-page.truco .seat .opponent-cards,.table-page.truco .seat:not(.seat-0) .opponent-cards{position:relative;left:auto;right:auto;top:auto;bottom:auto;grid-column:2;grid-row:1;width:clamp(50px,7vw,94px);height:clamp(34px,7dvh,64px);display:flex;align-items:center;gap:2px}.table-page.truco .seat .opponent-cards i{position:static;width:clamp(20px,4dvh,36px);height:clamp(29px,5.7dvh,51px);transform:none;margin-left:-7px;flex-shrink:0}.table-page.truco .seat .opponent-cards i:first-child{margin-left:0}.table-page.truco .seat-0{grid-template-columns:1fr;width:clamp(104px,12vw,170px)}
.table-page.truco .hand-panel{position:static;flex-shrink:0;height:22dvh;min-height:82px;margin:3px 0 0;padding:0 6px;background:none;border:0;display:flex;align-items:center;justify-content:space-between;gap:8px;z-index:6}.table-page.truco .hand-panel .turn-info{position:static;flex:0 0 25%;width:25%;max-width:25%;padding:0}.table-page.truco .turn-info b{font-size:clamp(10px,1.7dvh,15px)}.table-page.truco .turn-info small{font-size:clamp(8px,1.35dvh,12px)}.table-page.truco .hand-panel .my-hand{position:static;flex:1;width:auto;min-width:0;height:100%;padding:5px 0;gap:7px;display:flex;align-items:center;justify-content:center;transform:none}.table-page.truco .hand-panel .my-hand .playing-card{flex:0 0 auto;width:clamp(45px,14.7dvh,116px);height:clamp(64px,21dvh,166px);min-width:0;min-height:0;margin:0;padding:0;transform:none;border:0;border-radius:6px;overflow:hidden;background:none;box-shadow:0 3px 8px #0006}.table-page.truco .hand-panel .controls{position:static;right:auto;bottom:auto;flex:0 0 25%;width:25%;max-width:25%;display:flex;flex-direction:column;gap:5px}.table-page.truco .controls button{font-size:clamp(10px,1.6dvh,14px);min-width:0;padding:7px;flex:none}.table-page.truco .game-status{display:none}.table-page.truco .truco-outcome{position:fixed;right:12px;left:auto;bottom:8px;top:auto;transform:none;width:24%;max-width:24%;padding:8px;z-index:9}.table-page.truco .truco-outcome strong{font-size:clamp(9px,1.6dvh,14px)}.table-page.truco .truco-outcome b{font-size:clamp(8px,1.4dvh,12px)}.table-page.truco .truco-outcome small{font-size:clamp(7px,1.2dvh,11px)}
@media(max-height:520px){.table-page.truco{padding:4px 10px}.table-page.truco .table-header{height:27px;min-height:27px}.table-page.truco .team-overview{height:17px;min-height:17px;font-size:8px;margin:0 16%}.table-page.truco .arena{margin-top:1px}.table-page.truco .felt{border-width:6px}.table-page.truco .truco-center>.score{height:14px;font-size:9px;gap:5px}.table-page.truco .score b{font-size:17px}.table-page.truco .truco-tracker>span{font-size:7px;padding:2px 4px}.table-page.truco .truco-round{font-size:8px;padding:2px 5px}.table-page.truco .seat,.table-page.truco .seat:not(.seat-0){width:104px;grid-template-columns:40px auto;gap:1px}.table-page.truco .seat .avatar-ring,.table-page.truco .seat-0 .avatar-ring{width:40px;height:40px}.table-page.truco .seat-0{grid-template-columns:1fr;width:100px}.table-page.truco .seat .nameplate{padding:2px 4px}.table-page.truco .nameplate b{font-size:9px}.table-page.truco .nameplate small{font-size:7px}.table-page.truco .seat .opponent-cards,.table-page.truco .seat:not(.seat-0) .opponent-cards{width:54px;height:34px}.table-page.truco .seat .opponent-cards i{width:21px;height:30px;margin-left:-6px}.table-page.truco .hand-panel{height:22dvh;min-height:78px;margin-top:2px}.table-page.truco .truco-outcome{right:8px;bottom:6px;padding:6px}.table-page.truco .seat-signal{width:27px;height:23px;font-size:17px;transform:translateY(-100%)}.table-page.truco .team-emojis{top:48px;right:8px}}
@media(max-height:520px){.table-page.truco .truco-round{top:16.5%;padding:1px 5px}}
@media(max-height:520px){.table-page.truco .truco-round{top:18%;padding:1px 5px}.table-page.truco .played-1,.table-page.truco .played-2,.table-page.truco .played-3{top:44%}}
/* Cada carta jogada fica junto ao dono, em direção ao centro. */
.table-page.truco .truco-played{left:var(--play-x);top:var(--play-y)}.table-page.truco .truco-play-area .vira{left:50%;top:47%}.table-page.truco .collecting .truco-played{animation:none}.truco-collect-card{border-radius:6px;overflow:hidden;box-shadow:0 4px 12px #0005}.truco-collect-card .poker-card-face{display:block;width:100%;height:100%}
.table-page.truco .truco-center>.score{background:#071b30ed;color:#fff;border:1px solid #46708a;border-radius:9px;padding:2px 9px;min-height:30px;top:0}.table-page.truco .score .ally-label{color:#77f4ee;font-weight:800}.table-page.truco .score .rival-label{color:#ffb3d9;font-weight:800}.table-page.truco .truco-outcome{background:#114c5e;border:2px solid #76e9ee;box-shadow:0 4px 18px #0007;color:#fff;padding:10px}.table-page.truco .truco-outcome.theirs{background:#632342;border-color:#ff8bbd}.table-page.truco .truco-outcome.tied{background:#454052;border-color:#ded0ef}.table-page.truco .truco-outcome strong{font-size:clamp(12px,2dvh,18px);font-weight:850;color:#fff;line-height:1.25}.table-page.truco .truco-outcome small{color:#e5f5ff;font-size:clamp(9px,1.5dvh,12px)}.table-page.truco .truco-outcome b{color:#fff3bc;font-size:clamp(10px,1.65dvh,14px)}.table-page.truco .raise-explanation{display:block;font-size:clamp(9px,1.4dvh,12px);line-height:1.35;color:#ffe6a1;background:#172c43;padding:5px 7px;border-radius:6px}.table-page.truco .blocked-raise:disabled{opacity:.7;color:#d8e3ed}
@media(max-height:520px){.table-page.truco .truco-center>.score{min-height:19px;height:19px;padding:0 6px}.table-page.truco .truco-outcome{padding:7px}.table-page.truco .raise-explanation{font-size:8px;line-height:1.2;padding:3px 5px}}

.table-page.truco .truco-played>small{max-width:clamp(36px,10.5dvh,78px);box-sizing:border-box}
.table-page.truco .controls:has(.raise-explanation){display:grid;grid-template-columns:1fr 1fr;gap:4px}.table-page.truco .controls:has(.raise-explanation) .blocked-raise{grid-column:1;grid-row:1}.table-page.truco .controls:has(.raise-explanation) [data-move=fold]{grid-column:2;grid-row:1}.table-page.truco .raise-explanation{grid-column:1/-1;grid-row:2;max-height:40px;overflow:auto}.table-page.truco .controls:has(.raise-explanation)>label{grid-column:1/-1;grid-row:3;font-size:10px}@media(max-height:520px){.table-page.truco .raise-explanation{max-height:30px}.table-page.truco .controls:has(.raise-explanation){gap:3px}.table-page.truco .controls:has(.raise-explanation)>label{font-size:8px}}
.team-card-signals{grid-column:1/-1;padding:5px 0 9px;border-bottom:1px solid #466980}.team-card-signals>small{display:block;text-align:center;font-size:10px;color:#d8f6ff;margin-bottom:6px}.team-card-signals>div{display:flex;justify-content:center;gap:9px}.team-card-signals button{width:43px;height:62px;padding:0!important;border:1px solid #78dce4;border-radius:6px;overflow:hidden;background:#fff}.team-card-signals svg{width:100%;height:100%;display:block}.team-emoji-options{max-height:70dvh;overflow:auto}.seat-signal-card{width:36px!important;height:51px!important;border-radius:6px;padding:0;background:#fff}.seat-signal-card svg{width:100%;height:100%;display:block}
.table-page.truco .seat-0 .seat-signal{left:calc(100% + 6px);top:0;transform:none}.table-page.truco .seat[style*="--y:20%"] .seat-signal{top:0;transform:none}.table-page.truco .seat[style*="--x:25%"] .seat-signal{left:-42px}.table-page.truco .seat[style*="--x:75%"] .seat-signal{left:calc(100% + 6px)}

.truco-collect-card>img{display:block;width:100%;height:100%;object-fit:contain}

/* Referência marcada: contorno mais profundo e jogadores na borda. */
.table-page.truco .hand-panel{height:15dvh;min-height:70px}
.table-page.truco .felt{inset:1% 1% 0}
.table-page.truco .seat-1{--x:7%;--y:68%}
.table-page.truco .seat-0 .avatar-ring{justify-self:center}
.table-page.truco .truco-play-area .vira{top:46%}
.table-page.truco .hand-panel .my-hand .playing-card{width:clamp(43px,12.3dvh,104px);height:clamp(61px,17.6dvh,149px)}
@media(max-height:520px){.table-page.truco .hand-panel{height:17dvh;min-height:63px}.table-page.truco .seat,.table-page.truco .seat:not(.seat-0){width:94px}.table-page.truco .seat-0{width:94px}.table-page.truco .hand-panel .controls{gap:3px}.table-page.truco .controls button{padding:5px}.table-page.truco .truco-outcome{padding:5px}.table-page.truco .truco-outcome strong{font-size:10px}}

.table-page.truco .hand-panel{height:19dvh;min-height:74px}
@media(max-height:520px){.table-page.truco .hand-panel{height:19dvh;min-height:68px}.table-page.truco .hand-panel .my-hand .playing-card{width:clamp(40px,11dvh,90px);height:clamp(57px,15.7dvh,129px)}}

/* Área útil em telas com notch e indicador de início (iOS/Android). */
.table-page.truco{box-sizing:border-box;padding-left:max(10px,env(safe-area-inset-left,0px));padding-right:max(10px,env(safe-area-inset-right,0px));padding-top:max(4px,env(safe-area-inset-top,0px));padding-bottom:max(4px,env(safe-area-inset-bottom,0px))}

.team-symbol-options{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;grid-column:1/-1}.team-symbol-options button{width:54px;min-height:54px;padding:7px!important;background:#eff9fa!important;color:#132638!important}.team-symbol-options svg{display:block;width:36px;height:36px}.team-symbol-options b{font-size:30px}.team-symbol-options small{display:block;font-size:10px}.team-symbol-options span{font-size:28px}.seat-signal-card{width:36px!important;height:36px!important;padding:4px!important;box-sizing:border-box}.seat-signal-card b{font-size:24px;color:#132638}

.table-page.truco .team-emoji-options{width:224px;max-width:calc(100vw - 24px);padding:12px;box-sizing:border-box}.table-page.truco .team-symbol-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.table-page.truco .team-symbol-options button{width:100%;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center}.table-page.truco .seat-signal-card svg{display:block;width:100%;height:100%}

/* A força especial é reconhecível sem esconder o valor nem o naipe. */
.table-page.truco .playing-card.is-manilha{position:relative;outline:2px solid #ffdf68;outline-offset:1px;box-shadow:0 0 12px #ffd45d55!important}
.table-page.truco .is-manilha .poker-card-face>rect:first-child{fill:#fff0b3;stroke:#e4aa24;stroke-width:3}
.table-page.truco .manilha-reference{display:flex;align-items:center;gap:5px;margin-top:2px;padding:3px 6px;border:1px solid #cba94e;border-radius:5px;color:#ffe6a0;background:#13283deb;font-size:clamp(8px,1.3dvh,12px);line-height:1;white-space:nowrap}
.table-page.truco .manilha-reference b{color:#fff2b7;font-size:1.15em}

.table-page.truco .truco-play-area .vira{top:42%}
.table-page.truco .truco-action-notice{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);padding:4px 8px;border:1px solid #ffda70;border-radius:10px;background:#302440;color:#fff0af;font-weight:850;font-size:clamp(9px,1.5dvh,14px);white-space:nowrap;z-index:8;box-shadow:0 3px 10px #0005}
.table-page.truco .seat:has(.truco-action-notice) .seat-signal{display:none}
.table-page.truco .seat[style*="--y:20%"] .truco-action-notice{bottom:auto;top:calc(100% + 3px)}
.result-options{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.result-card h1{font-size:clamp(24px,5dvh,48px)}.result-card p{margin:12px 0}.connection-retry{max-width:480px;margin:15vh auto;padding:25px;background:#142439;border-radius:18px}.connection-retry a{display:block;margin-top:16px}

.table-page.truco .truco-play-area .vira{top:46%}

.table-page.truco .manilha-reference{position:absolute;left:calc(100% + 7px);bottom:4px;margin:0}
.table-page.truco .truco-play-area .vira{top:42.5%}

.connection-status{position:fixed;top:max(6px,env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);background:#443517;color:#fff2bb;border:1px solid #d5ad50;padding:6px 14px;border-radius:15px;z-index:300;font-size:12px;pointer-events:none}

.table-page.truco .seat-0 .truco-action-notice{left:calc(100% + 7px);top:0;bottom:auto;transform:none}.table-page.truco .seat-right .truco-action-notice{left:auto;right:0;transform:none}

/* Placas com duas linhas alinhadas e uma área reservada ao estado do jogador. */
.table-page.truco .seat .nameplate{box-sizing:border-box;border-radius:7px;padding:4px 6px;min-height:0;height:auto;text-align:center;overflow:visible}
.table-page.truco .nameplate small{white-space:nowrap;font-size:clamp(7px,1.25dvh,11px);line-height:1.25;margin-top:2px;min-height:1.25em}
.table-page.truco .seat .nameplate:after{font-size:clamp(8px,1.25dvh,11px);line-height:1.1;margin-top:3px}
.table-page.truco .seat-5{top:78%}
@media(max-height:520px){.table-page.truco .seat .nameplate{padding:3px 4px}.table-page.truco .nameplate b{font-size:9px;line-height:1.2}.table-page.truco .nameplate small{font-size:7px}.table-page.truco .seat-5{top:78%}}

/* Ações de mesa: componentes leves, sem imagens e com alvo de toque consistente. */
.table-page.truco .hand-panel .controls{display:grid;grid-template-columns:1.35fr 1fr;gap:8px;align-items:stretch;width:28%;max-width:380px;flex-basis:28%;padding:0;background:none;border:0;box-shadow:none}
.table-page.truco .controls button{box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 12px;border-radius:12px;font-size:clamp(11px,1.6dvh,15px);font-weight:750;line-height:1.15;letter-spacing:.15px;white-space:nowrap;border:1px solid #667b9b;background:linear-gradient(160deg,#25344b,#16243a);color:#eef7ff;box-shadow:inset 0 1px 0 #ffffff20,0 3px 7px #0003;transition:transform .12s,border-color .12s,filter .12s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.table-page.truco .controls button[data-move=raise]{background:linear-gradient(120deg,#076c87,#3c388e 65%,#872e82);border-color:#62cee2;color:white}
.table-page.truco .controls button[data-move=accept]{background:linear-gradient(140deg,#13716b,#144c58);border-color:#6ed9bf;color:#edfff9}
.table-page.truco .controls button.danger{background:linear-gradient(140deg,#3d293d,#2a2334);border-color:#9e617f;color:#ffd6e2}
.table-page.truco .controls button:focus-visible{outline:3px solid #ffe298;outline-offset:3px}
.table-page.truco .controls button:active:not(:disabled){transform:translateY(2px);filter:brightness(1.15);box-shadow:inset 0 1px 3px #0004}
.table-page.truco .controls button:disabled{opacity:.45;box-shadow:none}
.truco-button-icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border-radius:8px;background:#ffffff13;flex-shrink:0}.truco-button-icon svg{width:18px;height:18px;display:block}.truco-button-label{display:block}
.table-page.truco .hand-panel .truco-response-controls{grid-template-columns:repeat(3,minmax(0,1fr))}
.table-page.truco .truco-response-controls button{flex-direction:column;gap:5px;padding:8px 5px}
.table-page.truco .controls>label{grid-column:1/-1;justify-self:end;display:flex;align-items:center;gap:5px;color:#b9cadc;font-size:11px;line-height:1.2;margin:0}.table-page.truco .controls>label input{accent-color:#55d5df;width:15px;height:15px;margin:0}
@media(hover:hover){.table-page.truco .controls button:hover:not(:disabled){filter:brightness(1.12);border-color:#b1e3ec}}
@media(max-height:520px){.table-page.truco .hand-panel .controls{gap:5px;width:28%;flex-basis:28%;max-width:28%}.table-page.truco .controls button{min-height:42px;padding:7px 6px;font-size:10px;border-radius:10px;gap:5px}.truco-button-icon{width:21px;height:21px;border-radius:6px}.truco-button-icon svg{width:16px;height:16px}.table-page.truco .truco-response-controls button{min-height:49px;padding:6px 3px;gap:4px}.table-page.truco .controls>label{font-size:8px}.table-page.truco .controls>label input{width:13px;height:13px}}
@media(prefers-reduced-motion:reduce){.table-page.truco .controls button{transition:none}}

.table-page.truco .vote-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.table-page.truco .vote-buttons button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:44px;padding:8px 5px;border:1px solid #4d8b98;border-radius:10px;background:#18394b;color:#e6fff8;font-weight:700;font-size:11px;white-space:nowrap;touch-action:manipulation}
.table-page.truco .vote-buttons [data-team-vote=decline]{background:#372739;border-color:#90617c;color:#ffd8e3}
.table-page.truco .vote-buttons [data-team-vote=raise]{background:linear-gradient(120deg,#12627a,#513770);border-color:#62b7d0;color:#fff}
.table-page.truco .vote-buttons .chosen{outline:2px solid #ffe69c;outline-offset:2px}
.table-page.truco .vote-buttons button:focus-visible{outline:3px solid #ffe69c;outline-offset:2px}
@media(max-height:520px){.table-page.truco .vote-buttons button{min-height:36px;font-size:9px;gap:3px;padding:5px 3px}.table-page.truco .vote-buttons .truco-button-icon{width:17px;height:17px}.table-page.truco .vote-buttons .truco-button-icon svg{width:13px;height:13px}}

/* Recupera o tamanho e a leitura do Truco sem forçar o layout do Poker. */
.table-page.truco .hand-panel{height:22dvh;min-height:90px}
.table-page.truco .seat,.table-page.truco .seat:not(.seat-0){width:clamp(128px,14vw,210px);grid-template-columns:clamp(50px,10.5dvh,96px) auto}
.table-page.truco .seat .avatar-ring,.table-page.truco .seat-0 .avatar-ring{width:clamp(50px,10.5dvh,96px);height:clamp(50px,10.5dvh,96px)}
.table-page.truco .seat-0{grid-template-columns:1fr;width:clamp(116px,13vw,190px)}
.table-page.truco .nameplate b{font-size:clamp(11px,2dvh,18px);line-height:1.2}.table-page.truco .nameplate small{font-size:clamp(9px,1.5dvh,13px);line-height:1.25}
.table-page.truco .truco-played .playing-card{width:clamp(44px,11.5dvh,88px);height:clamp(63px,16.4dvh,126px)}.table-page.truco .truco-played>small{max-width:clamp(44px,11.5dvh,88px);font-size:clamp(8px,1.4dvh,12px)}
.table-page.truco .vira .playing-card{width:clamp(54px,16dvh,116px);height:clamp(77px,22.85dvh,166px)}
.table-page.truco .vira>span:not(.playing-card){position:absolute;left:calc(100% + 7px);top:2px;font-size:clamp(10px,1.7dvh,16px)}
.table-page.truco .hand-panel .my-hand .playing-card{width:clamp(50px,14.7dvh,124px);height:clamp(71px,21dvh,177px)}
@media(max-height:520px){.table-page.truco .hand-panel{height:21dvh;min-height:84px}.table-page.truco .seat,.table-page.truco .seat:not(.seat-0){width:118px;grid-template-columns:50px auto;gap:2px}.table-page.truco .seat-0{grid-template-columns:1fr;width:112px}.table-page.truco .seat .avatar-ring,.table-page.truco .seat-0 .avatar-ring{width:50px;height:50px}.table-page.truco .nameplate b{font-size:11px}.table-page.truco .nameplate small{font-size:8px}.table-page.truco .seat .nameplate{padding:4px 5px}.table-page.truco .hand-panel .my-hand .playing-card{width:50px;height:71px}.table-page.truco .truco-outcome strong{font-size:12px}.table-page.truco .turn-info b{font-size:12px}.table-page.truco .turn-info small{font-size:10px}}
@media(max-height:350px){.table-page.truco .hand-panel{min-height:74px;height:23dvh}.table-page.truco .seat,.table-page.truco .seat:not(.seat-0){width:104px;grid-template-columns:44px auto}.table-page.truco .seat-0{grid-template-columns:1fr;width:100px}.table-page.truco .seat .avatar-ring,.table-page.truco .seat-0 .avatar-ring{width:44px;height:44px}.table-page.truco .nameplate b{font-size:10px}.table-page.truco .nameplate small{font-size:8px}.table-page.truco .hand-panel .my-hand .playing-card{width:44px;height:63px}.table-page.truco .truco-played .playing-card{width:40px;height:57px}.table-page.truco .vira .playing-card{width:52px;height:74px}}
@media(max-height:350px){.table-page.truco .seat .nameplate{padding:2px 4px}.table-page.truco .nameplate b{font-size:9px}.table-page.truco .nameplate small{font-size:7px}.table-page.truco .truco-played .playing-card{width:36px;height:51px}.table-page.truco .truco-played>small{max-width:36px;font-size:7px}.table-page.truco .vira .playing-card{width:48px;height:68.5px}.table-page.truco .truco-play-area .vira{top:41.5%}.table-page.truco .seat.seat-5{top:84%}}
@media(max-height:350px){.table-page.truco .truco-round{top:17%}.table-page.truco .truco-played[style*="--play-x:73%"]{top:58%}}
.table-page.truco .truco-outcome{animation:none;opacity:1}
