/* Sobe & Desce: todas as regras de estilo confinadas a sd-*.
   Não modifica qualquer seletor Rammi anterior. */
.sd-wrap{max-width:1260px;margin:0 auto;color:var(--text);padding:6px 0 24px}
.sd-head,.sd-game-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.sd-head h1,.sd-game-header h1{font-size:clamp(25px,4vw,35px);margin:6px 0 5px;letter-spacing:-.035em}
.sd-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.sd-notice{background:rgba(9,132,87,.08);border:1px solid #1f6548;padding:14px 18px;border-radius:14px;margin-bottom:22px;font-size:12px;color:#abd7bf}
.sd-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}
.sd-room,.sd-rule-summary{border:1px solid #27523d;border-radius:19px;background:linear-gradient(135deg,#0b2118,#04120e);padding:22px;box-shadow:0 12px 26px rgba(0,0,0,.15)}
.sd-room-top{display:flex;align-items:center;justify-content:space-between}.sd-symbol{background:#0e3b2a;color:#15e594;display:grid;place-items:center;font-size:30px;border:1px solid #2f8459;border-radius:15px;width:58px;height:58px}
.sd-pill{border:1px solid #315c48;background:#10271e;color:#b0d4c0;padding:6px 11px;border-radius:40px;font-size:10px}
.sd-room h3{font-size:19px;margin:16px 0 6px}.sd-room p,.sd-room-users{color:#a8c5b6;font-size:12px}
.sd-room-users{min-height:65px;display:flex;flex-wrap:wrap;align-content:start;gap:5px;margin-top:14px}.sd-room-users span{border:1px solid #23533b;border-radius:20px;padding:5px 7px;font-size:11px}
.sd-room-actions{display:flex;gap:8px}.sd-room-actions .btn{flex:1}.sd-rule-summary{margin-top:18px}.sd-rule-summary p{line-height:1.7;color:#a9c5b5;font-size:13px;margin-bottom:0}.sd-empty{padding:45px;border:1px dashed #35634b;border-radius:18px;color:#afc8bc}
.sd-game-wrap{max-width:1500px}.sd-game-header{padding:5px 4px 13px;margin-bottom:6px;border-bottom:1px solid #214b37}.sd-game-header h1{font-size:24px;margin:3px 0}
.sd-back{border:1px solid #2b6246;background:#102b20;color:#e5f8ec;padding:8px 12px;border-radius:10px;margin-right:12px}.sd-badges{display:flex;gap:8px}.sd-badges>span{display:flex;flex-direction:column;font-size:10px;border:1px solid #2c5942;background:#0a2218;padding:8px 16px;border-radius:12px;color:#bbd0c5}.sd-badges b{font-size:15px;color:#f3faf5}
.sd-layout{display:grid;grid-template-columns:minmax(0,1fr) 218px;gap:13px;min-height:420px}.sd-board{min-height:460px;background:radial-gradient(circle at center,#104832,#061912 73%);border:1px solid #6a552a;border-radius:24px;position:relative;overflow:hidden}
.sd-felt{position:absolute;left:4%;top:5%;width:92%;height:90%;border-radius:49%;border:12px solid #5b3b21;background:radial-gradient(ellipse at center,#105e40 0,#09452f 62%,#07301f 88%);box-shadow:inset 0 0 60px #001d16,0 0 0 5px #142822,0 12px 40px rgba(0,0,0,.4)}
.sd-inner-ring{position:absolute;inset:15px;border:1px solid #94794c57;border-radius:50%}
.sd-seat{position:absolute;z-index:3;display:flex;align-items:center;gap:8px;background:#04150fef;color:#eaf8ef;border:1px solid #427054;border-radius:14px;padding:7px 10px;min-width:130px;max-width:175px;box-shadow:0 4px 15px #001a12aa}
.sd-seat.sd-south{bottom:-10px;left:50%;transform:translateX(-50%)}.sd-seat.sd-north{top:-12px;left:50%;transform:translateX(-50%)}.sd-seat.sd-west{top:50%;left:-10px;transform:translateY(-50%)}.sd-seat.sd-east{top:50%;right:-10px;transform:translateY(-50%)}.sd-seat.sd-active{box-shadow:0 0 0 2px #18ee94,0 0 22px #1bdf8060}.sd-seat.sd-mine{border-color:#e2bb53}
.sd-avatar{flex:0 0 38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#18df93,#05724c);color:#02190f;font-weight:900;font-size:12px}
.sd-seat-info{display:grid;gap:3px;min-width:0}.sd-seat-info b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sd-seat-info strong{font-size:14px;color:#e4bf61}.sd-seat-info small{font-size:10px;color:#9fbaa9}.sd-seat-info em{font-size:8px;color:#49efa7;font-style:normal}
.sd-middle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(58%,460px);z-index:2}.sd-center{background:#061e18ee;border:1px solid #316c51;color:#ebf9ef;padding:18px 15px;text-align:center;border-radius:20px;box-shadow:0 10px 26px #02191075}.sd-center h2{font-size:20px;margin:10px 0}.sd-center h3{font-size:15px;margin:10px 0}.sd-center p{font-size:11px;color:#bad5c5;line-height:1.5}.sd-center .eyebrow{font-size:9px}.sd-timer{color:#ffcf6e;font-weight:900}
.sd-suits{display:flex;justify-content:center;gap:9px;margin:12px 0}.sd-suit{width:52px;height:55px;font-size:32px;color:#f4fbf7;background:#112d22;border:1px solid #4c8264;border-radius:12px}.sd-suit.sd-red{color:#fc5b6d}.sd-suit:hover{background:#205039;box-shadow:0 0 0 2px #15cd80}
.sd-flip{margin:4px auto 0;width:100%;font-size:11px}.sd-commits{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:10px}.sd-commits span{font-size:10px;padding:6px;border:1px solid #2a5942;border-radius:8px}.sd-commits .sd-done{color:#13e18a;background:#092d1d}.sd-played{display:flex;justify-content:center;align-items:center;min-height:85px;gap:8px;flex-wrap:wrap}.sd-played>div{display:grid;justify-items:center;gap:4px}.sd-played small{font-size:9px}.sd-played .sd-card{width:38px;height:57px;min-width:38px}.sd-played .sd-card span{font-size:23px}
.sd-trump-panel{position:absolute;top:14%;left:4%;display:grid;place-items:center;gap:3px;padding:8px;background:#05170eec;border:1px solid #ba9846;border-radius:12px;z-index:4;min-width:65px;color:#f3f9ee}.sd-trump-panel span{font-size:9px;color:#efcb65}.sd-trump-panel b{font-size:34px}.sd-trump-panel small{font-size:9px}.sd-indicator{font-size:10px;color:#ffcf70;max-width:80px;text-align:center}
.sd-sidebar{background:#061911;border:1px solid #2b5e42;color:#e9f5ec;border-radius:18px;padding:18px}.sd-sidebar h3{font-size:14px;margin:5px 0 13px}.sd-sidebar p,.sd-sidebar>small{font-size:11px;color:#a9c9b6;line-height:1.6}.sd-sidebar hr{border:0;border-top:1px solid #27553c;margin:18px 0}.sd-score{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #1e4935;padding:9px 0;font-size:12px}.sd-score strong{color:#e9be5c;font-size:18px}
.sd-bottom{margin-top:12px;border:1px solid #22573e;border-radius:20px;padding:15px;background:linear-gradient(180deg,#071f14,#02110b);color:#f3faf4}.sd-hand-title{display:flex;align-items:center;justify-content:center;gap:12px}.sd-hand-title b{font-size:14px}.sd-hand-title small{font-size:11px;color:#a8cfb8}.sd-hand{display:flex;gap:9px;justify-content:center;margin:12px 0 15px;min-height:100px;align-items:center}.sd-card{display:flex;flex-direction:column;align-items:start;justify-content:space-between;width:69px;height:96px;min-width:69px;padding:8px;background:#f7f8f7;border:2px solid #e3ece8;border-radius:10px;color:#071711;box-shadow:0 6px 16px #001b1275;font-family:Georgia,serif;cursor:pointer}.sd-card b{font-size:21px}.sd-card span{font-size:35px;margin:auto}.sd-card.sd-red{color:#d92f48}.sd-card-back{display:grid;place-items:center;background:#0e3c2b;color:#e5c55d;border-color:#d2a847;font-size:29px}.sd-card[disabled]{opacity:1;cursor:default}.sd-card.sd-selected{transform:translateY(-9px);border-color:#02e88b;box-shadow:0 0 0 2px #0ded8a,0 8px 18px #001a118c}.sd-actions{display:flex;justify-content:center;gap:10px}.sd-action{min-width:145px;padding:12px 16px;border-radius:13px;color:white;font-weight:850;font-size:13px;border:1px solid;cursor:pointer}.sd-action[disabled]{opacity:.35;cursor:not-allowed}.sd-danger{background:#571520;border-color:#e33659}.sd-blue{background:#0c294c;border-color:#2589ef}.sd-green{background:#075a3a;border-color:#0cdf87}.sd-actions.sd-single .sd-action{min-width:260px}.sd-wait-note{text-align:center;color:#adcebb;font-size:12px}.sd-round-scores{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:13px 0}.sd-round-scores div{border:1px solid #38664c;padding:7px;border-radius:8px;display:flex;flex-direction:column;gap:2px;font-size:11px}.sd-center .btn{font-size:12px}
@media(max-width:960px){.sd-layout{grid-template-columns:1fr}.sd-sidebar{display:none}.sd-board{min-height:430px}.sd-middle{width:min(61%,430px)}}
@media(max-width:660px){.sd-head{align-items:start;gap:10px}.sd-head .btn{font-size:11px;padding:9px}.sd-room-grid{grid-template-columns:1fr}.sd-game-header h1{font-size:19px}.sd-game-header .eyebrow{font-size:7px}.sd-badges>span{padding:6px 8px;font-size:8px}.sd-badges b{font-size:10px}.sd-board{min-height:350px}.sd-felt{border-width:7px;left:2%;top:10%;width:96%;height:80%}.sd-seat{padding:4px 5px;min-width:90px;max-width:117px;gap:4px;border-radius:9px}.sd-avatar{flex-basis:25px;height:25px;font-size:9px}.sd-seat-info b{font-size:9px;max-width:76px}.sd-seat-info strong{font-size:11px}.sd-seat-info small{font-size:7px}.sd-seat.sd-west{left:-7px}.sd-seat.sd-east{right:-7px}.sd-middle{width:61%;}.sd-center{padding:7px 5px;border-radius:11px}.sd-center h3,.sd-center h2{font-size:12px;margin:4px 0}.sd-center p{font-size:8px;line-height:1.1;margin:5px 0}.sd-center .eyebrow{font-size:7px;letter-spacing:.04em}.sd-suits{gap:3px;margin:5px 0}.sd-suit{width:31px;height:35px;font-size:21px;border-radius:7px}.sd-flip{font-size:8px;padding:5px}.sd-commits{gap:2px}.sd-commits span{font-size:8px;padding:3px}.sd-trump-panel{left:1%;top:15%;min-width:45px;padding:5px}.sd-trump-panel b{font-size:26px}.sd-trump-panel small,.sd-trump-panel span{font-size:7px}.sd-played{min-height:50px;gap:3px}.sd-played>div{gap:2px}.sd-played small{font-size:6px}.sd-played .sd-card{width:21px;min-width:21px;height:33px;padding:2px;border-radius:3px}.sd-played .sd-card b{font-size:9px}.sd-played .sd-card span{font-size:13px}.sd-bottom{padding:8px}.sd-hand{gap:5px;min-height:70px;margin:7px 0}.sd-hand .sd-card{width:min(17vw,60px);min-width:0;height:min(25vw,84px);padding:5px}.sd-hand .sd-card b{font-size:16px}.sd-hand .sd-card span{font-size:25px}.sd-hand-title{display:grid;text-align:center;gap:2px}.sd-hand-title small{font-size:9px}.sd-actions{gap:6px}.sd-action{min-width:0;flex:1;font-size:11px;padding:10px 3px}.sd-round-scores{gap:3px;margin:6px 0}.sd-round-scores div{font-size:8px;padding:4px}}
html[data-theme="light"] .sd-wrap{color:#163e2c}
html[data-theme="light"] .sd-notice{background:#e9f6ed;color:#225e41;border-color:#b5d7c1}
html[data-theme="light"] .sd-room,html[data-theme="light"] .sd-rule-summary{background:linear-gradient(160deg,#ffffff,#f0f8f2);border-color:#bed9c9}
html[data-theme="light"] .sd-room p,html[data-theme="light"] .sd-room-users,html[data-theme="light"] .sd-rule-summary p{color:#426d55}
html[data-theme="light"] .sd-pill{background:#e5f3e9;color:#215a3c;border-color:#bad7c3}
html[data-theme="light"] .sd-game-header{border-bottom-color:#bad9c7}

/* v4.32.42 — apenas Sobe & Desce: mesa imersiva e configuração de apostas (beta). */
.sd-room-settings{font-size:11px!important;color:#b6d6c2!important;margin-top:5px!important}
.sd-dialog{max-width:min(520px,calc(100vw - 24px));width:100%;background:#071d15;color:#edf9f0;border:1px solid #3b7553;border-radius:20px;padding:24px;box-shadow:0 24px 80px #000a}
.sd-dialog::backdrop{background:rgba(1,10,7,.78);backdrop-filter:blur(4px)}
.sd-create-form{display:grid;gap:16px}
.sd-create-form h2{font-size:22px;margin:0}
.sd-create-form p{font-size:12px;color:#b4d0bf;line-height:1.5;margin:0}
.sd-create-form label{display:grid;gap:7px;font-size:12px;font-weight:750;color:#c6dece}
.sd-create-form input{width:100%;background:#06140f;border:1px solid #366b4f;border-radius:10px;color:#f4faf6;padding:12px;min-width:0;font-size:15px}
.sd-create-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sd-dialog-actions{display:flex;justify-content:flex-end;gap:8px}
.sd-dialog-actions .btn{min-width:110px}
html[data-theme="light"] .sd-dialog{background:#fff;color:#163d2b;border-color:#b5d9c4}
html[data-theme="light"] .sd-create-form p,html[data-theme="light"] .sd-create-form label{color:#3c6250}
html[data-theme="light"] .sd-create-form input{background:#fff;color:#163d2b;border-color:#b1d5be}
html[data-theme="light"] .sd-room-settings{color:#315d45!important}

/* O ecrã de jogo Sobe & Desce usa a área inteira, sem esconder o layout do Rammi noutras páginas. */
body.sobe-fullscreen{overflow:hidden!important;background:#02120d!important}
body.sobe-fullscreen #appView{height:100dvh!important;min-height:0!important;overflow:hidden!important}
body.sobe-fullscreen .sidebar,
body.sobe-fullscreen .sidebar-backdrop,
body.sobe-fullscreen .bottom-nav,
body.sobe-fullscreen .topbar{display:none!important}
body.sobe-fullscreen .main-area{margin:0!important;padding:0!important;width:100%!important;height:100dvh!important;min-height:0!important;overflow:hidden!important}
body.sobe-fullscreen #page{max-width:none!important;margin:0!important;padding:0!important;width:100%!important;height:100dvh!important;min-height:0!important;overflow:hidden!important}
body.sobe-fullscreen .sd-game-wrap{box-sizing:border-box;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:6px;height:100dvh;max-height:100dvh;width:100%;max-width:none!important;margin:0!important;padding:7px clamp(6px,1vw,16px)!important;overflow:hidden!important;color:#eaf7ee}
body.sobe-fullscreen .sd-game-header{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #2d6145;margin:0!important;padding:2px 2px 6px!important;min-height:39px}
body.sobe-fullscreen .sd-room-heading{display:flex;align-items:center;gap:12px;min-width:0}
body.sobe-fullscreen .sd-game-header h1{font-size:clamp(13px,1.7vw,21px);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.sobe-fullscreen .sd-back{margin:0;padding:6px 10px;font-size:11px;white-space:nowrap}
body.sobe-fullscreen .sd-badges{align-items:center}
body.sobe-fullscreen .sd-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(145px,190px);min-height:0!important;height:100%!important;gap:8px;overflow:hidden}
body.sobe-fullscreen .sd-board{width:100%;height:100%;min-height:0!important;overflow:hidden;border-radius:18px}
body.sobe-fullscreen .sd-felt{top:4%;left:4%;height:92%;width:92%}
body.sobe-fullscreen .sd-sidebar{min-height:0;overflow:auto;padding:12px}
body.sobe-fullscreen .sd-bottom{margin:0!important;padding:6px 12px!important;min-height:0;display:grid;justify-items:center;gap:3px;overflow:visible}
body.sobe-fullscreen .sd-hand-title{font-size:12px}
body.sobe-fullscreen .sd-hand{min-height:0;margin:2px 0 4px}
body.sobe-fullscreen .sd-hand .sd-card{height:clamp(58px,12vh,98px);width:clamp(43px,7vw,70px);min-width:0}
body.sobe-fullscreen .sd-actions{width:min(100%,680px);margin:0 auto}
body.sobe-fullscreen .sd-action{min-height:34px;padding:8px 12px}
body.sobe-fullscreen .sd-middle{width:min(58%,440px)}
body.sobe-fullscreen .sd-trump-panel{top:4%;left:auto!important;right:2%;min-width:58px;min-height:66px;max-width:94px;padding:6px;z-index:6}
body.sobe-fullscreen .sd-trump-panel>span{font-size:9px;letter-spacing:.1em}
body.sobe-fullscreen .sd-trump-suit{font-size:clamp(29px,3vw,47px);line-height:1}
body.sobe-fullscreen .sd-trump-red{color:#fb6073}
body.sobe-fullscreen .sd-trump-indicator .sd-card{width:50px;min-width:50px;height:70px;padding:4px;pointer-events:none}
body.sobe-fullscreen .sd-trump-indicator .sd-card b{font-size:17px}
body.sobe-fullscreen .sd-trump-indicator .sd-card span{font-size:28px}
body.sobe-fullscreen .sd-trump-panel:has(.sd-trump-indicator){max-width:74px}
/* O trunfo fica no canto superior direito, com carta apenas quando o trunfo foi virado. */
@media(max-width:960px){
  body.sobe-fullscreen .sd-layout{grid-template-columns:minmax(0,1fr)!important}
  body.sobe-fullscreen .sd-sidebar{display:none!important}
  body.sobe-fullscreen .sd-felt{left:3%;top:4%;width:94%;height:92%}
  body.sobe-fullscreen .sd-middle{width:min(56%,320px)}
}
@media(max-width:660px){
  .sd-create-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sd-create-fields label:last-child{grid-column:span 2}
  body.sobe-fullscreen .sd-game-wrap{gap:3px;padding:4px!important}
  body.sobe-fullscreen .sd-game-header{min-height:32px;padding:1px 1px 3px!important}
  body.sobe-fullscreen .sd-game-header h1{font-size:13px}
  body.sobe-fullscreen .sd-room-heading{gap:5px}
  body.sobe-fullscreen .sd-back{padding:5px 7px;font-size:9px}
  body.sobe-fullscreen .sd-layout{min-height:0!important;height:100%!important}
  body.sobe-fullscreen .sd-board{min-height:0!important;border-radius:12px}
  body.sobe-fullscreen .sd-felt{left:2%;top:5%;width:96%;height:90%;border-width:6px}
  body.sobe-fullscreen .sd-seat{max-width:100px;min-width:82px}
  body.sobe-fullscreen .sd-seat.sd-north{top:-9px}
  body.sobe-fullscreen .sd-seat.sd-south{bottom:-9px}
  body.sobe-fullscreen .sd-trump-panel{top:2%;right:1%;padding:3px;min-width:39px;min-height:46px;gap:2px}
  body.sobe-fullscreen .sd-trump-panel>span{font-size:7px}
  body.sobe-fullscreen .sd-trump-suit{font-size:26px}
  body.sobe-fullscreen .sd-trump-indicator .sd-card{width:31px;min-width:31px;height:44px;border-radius:4px;padding:2px}
  body.sobe-fullscreen .sd-trump-indicator .sd-card b{font-size:10px}
  body.sobe-fullscreen .sd-trump-indicator .sd-card span{font-size:17px}
  body.sobe-fullscreen .sd-trump-panel:has(.sd-trump-indicator){max-width:46px}
  body.sobe-fullscreen .sd-middle{width:57%}
  body.sobe-fullscreen .sd-bottom{padding:4px!important;border-radius:10px}
  body.sobe-fullscreen .sd-hand{gap:5px;margin:2px 0}
  body.sobe-fullscreen .sd-hand .sd-card{width:min(17vw,58px);height:clamp(50px,12vh,84px);padding:4px}
  body.sobe-fullscreen .sd-actions{gap:5px}
  body.sobe-fullscreen .sd-action{min-height:32px;font-size:10px;padding:5px 2px}
}
@media(max-height:570px){
  body.sobe-fullscreen .sd-game-header{min-height:27px}
  body.sobe-fullscreen .sd-hand-title{display:none}
  body.sobe-fullscreen .sd-hand .sd-card{height:clamp(43px,12vh,68px);width:clamp(35px,7vw,58px)}
  body.sobe-fullscreen .sd-bottom{padding:2px!important}
  body.sobe-fullscreen .sd-board{min-height:0!important}
  body.sobe-fullscreen .sd-center{padding:5px}
}
/* Preservar o fundo escuro de jogo mesmo que a plataforma esteja em modo claro. */
html[data-theme="light"] body.sobe-fullscreen .sd-game-header{border-bottom-color:#2d6145}
/* Manter as cinco cartas e os botões legíveis mesmo em telemóveis pequenos. */
@media(max-width:660px){
  body.sobe-fullscreen .sd-hand-title{display:flex;justify-content:center;gap:4px;min-height:15px}
  body.sobe-fullscreen .sd-hand-title b{font-size:11px;line-height:1.1}
  body.sobe-fullscreen .sd-hand-title small{display:none}
  body.sobe-fullscreen .sd-hand .sd-card b{font-size:clamp(12px,3.3vw,16px);line-height:1}
  body.sobe-fullscreen .sd-hand .sd-card span{font-size:clamp(19px,5.2vw,26px)}
}
@media(max-height:570px){
  body.sobe-fullscreen .sd-middle{width:min(38%,340px);top:48%}
  body.sobe-fullscreen .sd-center{padding:5px 7px;border-radius:10px}
  body.sobe-fullscreen .sd-center .eyebrow{font-size:7px;letter-spacing:0}
  body.sobe-fullscreen .sd-center h3,body.sobe-fullscreen .sd-center h2{font-size:11px;margin:3px 0}
  body.sobe-fullscreen .sd-center-play>p{display:none}
  body.sobe-fullscreen .sd-played{min-height:40px;gap:4px}
  body.sobe-fullscreen .sd-played .sd-card{width:23px;min-width:23px;height:33px;padding:2px}
  body.sobe-fullscreen .sd-played .sd-card b{font-size:10px}
  body.sobe-fullscreen .sd-played .sd-card span{font-size:14px}
  body.sobe-fullscreen .sd-played small{font-size:6px}
  body.sobe-fullscreen .sd-hand .sd-card b{font-size:13px}
  body.sobe-fullscreen .sd-hand .sd-card span{font-size:19px}
}
@media(max-width:660px) and (min-height:571px){
  body.sobe-fullscreen .sd-hand-title{margin-bottom:7px}
}
@media(max-height:570px){
  body.sobe-fullscreen .sd-middle{top:50%}
  body.sobe-fullscreen .sd-center-play{padding:3px 5px}
  body.sobe-fullscreen .sd-center-play .eyebrow{font-size:6px}
  body.sobe-fullscreen .sd-center-play h3{font-size:10px;margin:1px 0 2px}
  body.sobe-fullscreen .sd-played{min-height:28px}
  body.sobe-fullscreen .sd-played .sd-card{width:21px;min-width:21px;height:27px}
  body.sobe-fullscreen .sd-played .sd-card b{font-size:8px}
  body.sobe-fullscreen .sd-played .sd-card span{font-size:12px}
}

/* v4.32.43 — Sobe & Desce: cartas reais à frente dos jogadores, sem quadrado miniatura. */
.sd-table-play{position:absolute;z-index:5;display:flex;flex-direction:column;align-items:center;gap:3px;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 7px 10px #00150bbf)}
.sd-table-play-north{top:27%;left:50%}
.sd-table-play-south{top:73%;left:50%}
.sd-table-play-west{top:50%;left:22%}
.sd-table-play-east{top:50%;left:78%}
.sd-table-play .sd-card{width:clamp(38px,4.6vw,62px);min-width:0;height:clamp(54px,6.6vw,86px);padding:4px 6px;border-radius:7px;pointer-events:none;box-shadow:0 6px 13px #0008}
.sd-table-play .sd-card b{font-size:clamp(13px,1.5vw,20px);line-height:1}
.sd-table-play .sd-card span{font-size:clamp(20px,2.5vw,34px)}
.sd-table-play small{font-size:10px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ecfdf1;text-shadow:0 2px 3px #000;font-weight:800}
.sd-table-play.sd-trick-winner .sd-card{border:2px solid #ffd66b;box-shadow:0 0 0 2px #d3a131,0 0 22px #e6ae5080}
/* O centro passa a mostrar só a jogada e o contador, sem reproduzir as cartas. */
body.sobe-fullscreen .sd-middle:has(.sd-center-play){width:min(39%,260px)}
body.sobe-fullscreen .sd-center-play{background:#041a12dd;border-color:#306e4c;padding:8px 10px;border-radius:11px}
body.sobe-fullscreen .sd-center-play h3{margin:5px 0;font-size:clamp(11px,1.4vw,15px)}
body.sobe-fullscreen .sd-center-play p{margin:3px 0 0;font-size:clamp(8px,1vw,10px)}
body.sobe-fullscreen .sd-reveal-info{border-color:#c59b3c;background:#0b2016f0}
/* Destacar inequivocamente o jogador que está a escolher o trunfo. */
.sd-seat.sd-trump-chooser{border:2px solid #e2bc50!important;box-shadow:0 0 0 2px #fbd66b69,0 0 25px #e6b849bb!important;z-index:8}
.sd-seat .sd-chooser-label{display:block;background:#725019;color:#fff0b4;border:1px solid #e5bd53;border-radius:6px;padding:3px 5px;font-size:9px;font-weight:900;letter-spacing:.02em;white-space:nowrap}
@media(max-width:960px){
  .sd-table-play .sd-card{width:45px;height:63px}
  .sd-table-play .sd-card b{font-size:15px}
  .sd-table-play .sd-card span{font-size:25px}
  .sd-table-play small{font-size:8px}
  .sd-table-play-west{left:21%}.sd-table-play-east{left:79%}
  body.sobe-fullscreen .sd-middle:has(.sd-center-play){width:min(36%,190px)}
}
@media(max-width:660px){
  .sd-table-play .sd-card{width:35px;height:49px;padding:3px}
  .sd-table-play .sd-card b{font-size:12px}
  .sd-table-play .sd-card span{font-size:19px}
  .sd-table-play small{font-size:7px;max-width:58px}
  .sd-table-play-west{left:20%}.sd-table-play-east{left:80%}
  .sd-table-play-north{top:28%}.sd-table-play-south{top:72%}
  body.sobe-fullscreen .sd-middle:has(.sd-center-play){width:36%}
  body.sobe-fullscreen .sd-center-play{padding:5px 3px}
  body.sobe-fullscreen .sd-center-play h3{font-size:9px;margin:2px 0}
  body.sobe-fullscreen .sd-center-play p{font-size:7px;line-height:1.15}
  .sd-seat .sd-chooser-label{font-size:7px;padding:2px 3px;letter-spacing:0}
}
@media(max-height:570px){
  .sd-table-play-north{top:30%}.sd-table-play-south{top:70%}
  .sd-table-play-west{left:29%}.sd-table-play-east{left:71%}
  .sd-table-play .sd-card{width:35px;height:46px}
  .sd-table-play .sd-card b{font-size:12px}
  .sd-table-play .sd-card span{font-size:18px}
  .sd-table-play small{font-size:7px}
  body.sobe-fullscreen .sd-middle:has(.sd-center-play){width:min(30%,180px);top:50%}
  body.sobe-fullscreen .sd-center-play p{display:block;font-size:7px}
}

/* v4.32.44 — Exclusivo Sobe & Desce: mesa circular, cartas afastadas dos jogadores e rotação visual à direita. */
body.sobe-fullscreen .sd-board{
  background:radial-gradient(circle at center,#09291d 0,#03130d 73%);
  border-color:#2c684b;
}
body.sobe-fullscreen .sd-felt{
  position:absolute;left:50%!important;top:50%!important;transform:translate(-50%,-50%);
  width:min(94%,calc(100dvh - 165px),900px)!important;
  height:auto!important;aspect-ratio:1/1!important;
  border-radius:50%!important;
  border:clamp(7px,1.1vw,13px) solid #674329;
  box-shadow:inset 0 0 70px #001d16,0 0 0 5px #13281e,0 18px 55px #0008;
}
body.sobe-fullscreen .sd-inner-ring{border-radius:50%}
/* A indicação da vez fica num canto do palco, não por cima da mesa. */
body.sobe-fullscreen .sd-play-status{
  position:absolute;top:9px;left:11px;z-index:9;
  display:flex;align-items:center;gap:8px;max-width:calc(100% - 102px);
  color:#eafbf0;font-size:clamp(10px,1.15vw,13px);line-height:1.2;
  text-shadow:0 1px 5px #00130c;
}
body.sobe-fullscreen .sd-play-status b{color:#67e5a6;white-space:nowrap}
body.sobe-fullscreen .sd-play-status span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Perfis maiores; as cadeiras ficam na periferia e não por cima das cartas. */
body.sobe-fullscreen .sd-seat{
  min-width:155px;max-width:205px;min-height:60px;
  padding:8px 12px;gap:10px;z-index:7;
}
body.sobe-fullscreen .sd-avatar{flex:0 0 45px;width:45px;height:45px;font-size:14px}
body.sobe-fullscreen .sd-seat-info b{font-size:clamp(11px,1.15vw,14px);max-width:135px}
body.sobe-fullscreen .sd-seat-info strong{font-size:clamp(15px,1.5vw,19px)}
body.sobe-fullscreen .sd-seat-info small{font-size:11px}
body.sobe-fullscreen .sd-seat.sd-north{top:-22px}
body.sobe-fullscreen .sd-seat.sd-south{bottom:-22px}
body.sobe-fullscreen .sd-seat.sd-west{left:-30px}
body.sobe-fullscreen .sd-seat.sd-east{right:-30px}
/* Cada carta jogada no interior do círculo, afastada da etiqueta respetiva. */
body.sobe-fullscreen .sd-table-play-north{top:33%;left:50%}
body.sobe-fullscreen .sd-table-play-south{top:67%;left:50%}
body.sobe-fullscreen .sd-table-play-west{top:50%;left:36%}
body.sobe-fullscreen .sd-table-play-east{top:50%;left:64%}
body.sobe-fullscreen .sd-table-play .sd-card{
  width:clamp(49px,5vw,73px);min-width:0;height:clamp(70px,7.1vw,102px);
  padding:5px 8px;border-radius:8px;
}
body.sobe-fullscreen .sd-table-play .sd-card b{font-size:clamp(17px,1.8vw,24px)}
body.sobe-fullscreen .sd-table-play .sd-card span{font-size:clamp(29px,3vw,39px)}
body.sobe-fullscreen .sd-table-play small{font-size:clamp(9px,1vw,12px);max-width:110px}
/* Quando não é a fase de trunfo/decisão/resultado, não existe qualquer cartão no centro. */
body.sobe-fullscreen .sd-felt:not(:has(.sd-middle)) .sd-inner-ring{pointer-events:none}
@media(max-width:960px){
  body.sobe-fullscreen .sd-felt{width:min(93%,calc(100dvh - 160px),700px)!important}
  body.sobe-fullscreen .sd-seat{min-width:125px;max-width:155px;min-height:49px;padding:6px 7px;gap:6px}
  body.sobe-fullscreen .sd-avatar{flex-basis:34px;width:34px;height:34px;font-size:11px}
  body.sobe-fullscreen .sd-seat-info b{font-size:11px;max-width:98px}
  body.sobe-fullscreen .sd-seat-info strong{font-size:15px}
  body.sobe-fullscreen .sd-seat-info small{font-size:9px}
  body.sobe-fullscreen .sd-seat.sd-west{left:-17px}
  body.sobe-fullscreen .sd-seat.sd-east{right:-17px}
  body.sobe-fullscreen .sd-seat.sd-north{top:-14px}
  body.sobe-fullscreen .sd-seat.sd-south{bottom:-14px}
  body.sobe-fullscreen .sd-table-play-north{top:33%}
  body.sobe-fullscreen .sd-table-play-south{top:67%}
  body.sobe-fullscreen .sd-table-play-west{left:39%}
  body.sobe-fullscreen .sd-table-play-east{left:61%}
  body.sobe-fullscreen .sd-table-play .sd-card{width:47px;height:68px;padding:4px 5px}
  body.sobe-fullscreen .sd-table-play .sd-card b{font-size:16px}
  body.sobe-fullscreen .sd-table-play .sd-card span{font-size:27px}
}
@media(max-width:660px){
  body.sobe-fullscreen .sd-felt{width:min(96%,calc(100dvh - 158px))!important;border-width:8px}
  body.sobe-fullscreen .sd-inner-ring{inset:10px}
  body.sobe-fullscreen .sd-seat{min-width:106px;max-width:124px;min-height:47px;padding:5px 6px;gap:5px;border-radius:11px}
  body.sobe-fullscreen .sd-avatar{flex-basis:32px;width:32px;height:32px;font-size:10px}
  body.sobe-fullscreen .sd-seat-info b{font-size:10px;max-width:80px}
  body.sobe-fullscreen .sd-seat-info strong{font-size:14px}
  body.sobe-fullscreen .sd-seat-info small{font-size:8px}
  body.sobe-fullscreen .sd-seat.sd-west{left:-8px}
  body.sobe-fullscreen .sd-seat.sd-east{right:-8px}
  body.sobe-fullscreen .sd-seat.sd-north{top:-12px}
  body.sobe-fullscreen .sd-seat.sd-south{bottom:-12px}
  body.sobe-fullscreen .sd-table-play-north{top:33%}
  body.sobe-fullscreen .sd-table-play-south{top:67%}
  body.sobe-fullscreen .sd-table-play-west{left:40%}
  body.sobe-fullscreen .sd-table-play-east{left:60%}
  body.sobe-fullscreen .sd-table-play .sd-card{width:42px;height:59px;padding:3px 5px}
  body.sobe-fullscreen .sd-table-play .sd-card b{font-size:15px}
  body.sobe-fullscreen .sd-table-play .sd-card span{font-size:24px}
  body.sobe-fullscreen .sd-table-play small{font-size:8px;max-width:70px}
  body.sobe-fullscreen .sd-play-status{left:6px;top:4px;gap:5px;max-width:calc(100% - 64px);font-size:9px}
}
@media(max-height:570px){
  body.sobe-fullscreen .sd-felt{width:min(95%,calc(100dvh - 126px))!important}
  body.sobe-fullscreen .sd-seat{min-width:92px;max-width:115px;min-height:39px;padding:3px 5px;gap:4px}
  body.sobe-fullscreen .sd-avatar{flex-basis:28px;width:28px;height:28px;font-size:9px}
  body.sobe-fullscreen .sd-seat-info b{font-size:9px;max-width:72px}
  body.sobe-fullscreen .sd-seat-info strong{font-size:12px}
  body.sobe-fullscreen .sd-seat-info small{font-size:7px}
  body.sobe-fullscreen .sd-table-play-west{left:37%}
  body.sobe-fullscreen .sd-table-play-east{left:63%}
  body.sobe-fullscreen .sd-table-play .sd-card{width:33px;height:46px;padding:2px 3px}
  body.sobe-fullscreen .sd-table-play .sd-card b{font-size:12px}
  body.sobe-fullscreen .sd-table-play .sd-card span{font-size:19px}
  body.sobe-fullscreen .sd-table-play small{font-size:7px}
}
/* Ajuste final: manter o círculo inteiro no viewport, incluindo os perfis dos extremos. */
@media(min-height:571px){
  body.sobe-fullscreen .sd-felt{width:min(94%,calc(100dvh - 270px),900px)!important}
}
@media(max-width:660px) and (min-height:571px){
  body.sobe-fullscreen .sd-felt{width:min(96%,calc(100dvh - 200px))!important}
}
@media(max-height:570px){
  body.sobe-fullscreen .sd-felt{width:min(95%,calc(100dvh - 144px))!important}
  body.sobe-fullscreen .sd-seat.sd-west{left:-58px}
  body.sobe-fullscreen .sd-seat.sd-east{right:-58px}
}
