/* Readable cards in real pixels, without shrinking the entire player frame. */
#actionBox.action-pending{position:relative;isolation:isolate}
#actionBox.action-pending::after{content:attr(data-feedback);position:absolute;inset:auto 0 0;height:30px;display:flex;align-items:center;justify-content:center;padding:4px;box-sizing:border-box;border-radius:8px;background:var(--surface2);color:var(--ink);font-size:12px;line-height:1.4;pointer-events:none}
#actionBox.action-pending button,#actionBox.action-pending input{pointer-events:none}
#btnFullscreen{display:none}
#heroDock{display:none}
.seat.winner .saction{display:none}
.screen-dialog{width:min(540px,calc(100vw - 24px));max-height:calc(100dvh - 24px);box-sizing:border-box;padding:20px;border:1px solid var(--tier-line,#46638a);border-radius:18px;background:var(--page);color:var(--ink);overflow:auto}
.screen-dialog::backdrop{background:#000b}
.screen-dialog h2{font-size:20px;margin:0 0 14px}
.screen-dialog p{font-size:14px;line-height:1.7;color:var(--ink2)}
.screen-dialog button{min-height:44px;padding:8px 18px;border:1px solid var(--grid);border-radius:10px;background:var(--surface2);color:var(--ink);font:inherit;cursor:pointer}
.screen-dialog .preview-cards{display:flex;justify-content:center;gap:8px;margin:20px 0}
.screen-dialog .preview-cards .card{width:clamp(42px,13vw,72px);height:clamp(62px,19vw,104px);--cs:1}
.screen-dialog .preview-cards .card .r{font-size:30px}
.screen-dialog .preview-cards .card .s{font-size:24px}
.screen-dialog .screen-close{float:right;margin:-8px -8px 8px 10px}
#table .card:not(.back){cursor:zoom-in}
#table .card:focus-visible{outline:3px solid var(--accent);outline-offset:3px}

@media(max-width:1100px) and (orientation:portrait){
 html.portrait #app.on{height:var(--game-height,100dvh);background:var(--page)}
 html.portrait #left{--portrait-notice-height:22px;--portrait-row-gap:3px;grid-template-rows:78px minmax(0,1fr) 22px 120px;gap:3px;padding:calc(4px + var(--table-safe-top,env(safe-area-inset-top,0px))) 6px calc(4px + var(--table-safe-bottom,env(safe-area-inset-bottom,0px)))}
 html.portrait .topbar{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:20px 40px 12px;gap:3px}
 html.portrait .topbar .pill{grid-column:span 4;height:20px;font-size:11px;line-height:16px;padding:1px 2px}
 html.portrait #btnMember,html.portrait #btnPanel,html.portrait #btnTools,html.portrait #btnFullscreen{display:block;grid-row:2;grid-column:span 3;height:40px;min-height:40px;padding:3px;font-size:11px;min-width:0}
 html.portrait .topbar>.play-quota{grid-row:3;line-height:12px;font-size:10px}
 html.portrait .topbar #tableTools{top:76px;max-height:calc(var(--game-height,100dvh) - 96px);overflow:auto}
 html.portrait #posbar{height:22px;padding:1px 5px}
 html.portrait #controls{height:120px;min-height:120px;max-height:120px;grid-template-rows:minmax(0,1fr);gap:0;overflow:visible}
 html.portrait #reviewPeek,html.portrait #tableWalletNotice{height:30px;min-height:30px;padding:2px 5px}
 html.portrait #tableWalletNotice p{font-size:10px;line-height:12px;-webkit-line-clamp:2}
 html.portrait #tableRebuyButton{min-height:28px;height:28px}
 html.portrait #actionBox .act{height:44px;min-height:44px;font-size:15px}
 html.portrait #sizeRow{margin-top:4px;gap:3px}
 html.portrait #sizeRow .qb{height:34px;min-height:34px;font-size:11px}
 html.portrait #betSlider{height:28px;margin:0}
 html.portrait #handEndBar.on{height:114px;grid-template-rows:26px 16px 46px;padding:6px;gap:4px}
 html.portrait #nextBtn{min-height:46px;height:46px;font-size:16px}
 html.portrait #heStats .v{font-size:12px}
 html.portrait #centerZone,html.portrait[data-players] #centerZone{top:66%;width:100%;gap:4px;pointer-events:none}
 html.portrait #board{gap:5px;height:60px;min-height:60px;pointer-events:auto}
 html.portrait #board .card,html.portrait[data-players] #board .card{--cs:1;width:40px;height:56px;border-radius:6px}
 html.portrait #board .card .r{font-size:23px}
 html.portrait #board .card .s{font-size:19px}
 html.portrait #potLine{font-size:14px;line-height:20px;padding:2px 10px}
 html.portrait #streetTag{font-size:11px}
 html.portrait .seat,html.portrait[data-players] .seat{width:100px;padding:4px;transform:translate(-50%,-50%);border-radius:9px}
 html.portrait .seat.hero,html.portrait[data-players] .seat.hero{width:162px;padding:5px}
 html.portrait .seat .srow{display:grid;grid-template-columns:25px minmax(0,1fr);gap:2px;align-items:center}
 html.portrait .seat .sinfo{display:contents}
 html.portrait .seat .snamerow,html.portrait[data-players] .seat .snamerow{grid-column:1/-1;height:15px;min-height:15px;line-height:15px;justify-content:center}
 html.portrait .seat .sname,html.portrait[data-players] .seat .sname{max-width:100%;font-size:10px;line-height:15px}
 html.portrait .seat .sstack,html.portrait[data-players] .seat .sstack{grid-column:1;grid-row:2;display:flex;flex-direction:column;font-size:11px;line-height:13px;height:auto;gap:1px;margin:0;justify-content:center}
 html.portrait .seat .sstack small{display:none}
 html.portrait .seat .spos{font-size:8px;line-height:12px;padding:0 2px}
 html.portrait .seat .scards,html.portrait[data-players] .seat .scards{grid-column:2;grid-row:2;width:100%;height:42px;min-height:42px;margin:0;gap:3px;justify-content:center}
 html.portrait .seat .card,html.portrait[data-players] .seat .card{width:28px;height:40px;--cs:1;border-radius:4px}
 html.portrait .seat .card .r,html.portrait[data-players] .seat .card .r{font-size:18px}
 html.portrait .seat .card .s,html.portrait[data-players] .seat .card .s{font-size:15px}
 html.portrait .seat.hero .srow{grid-template-columns:46px minmax(0,1fr)}
 html.portrait .seat.hero .sstack{font-size:15px;line-height:19px}
 html.portrait .seat.hero .scards,html.portrait[data-players] .seat.hero .scards{height:64px;min-height:64px}
 html.portrait .seat.hero .card,html.portrait[data-players] .seat.hero .card{width:46px;height:64px}
 html.portrait .seat.hero .card .r,html.portrait[data-players] .seat.hero .card .r{font-size:27px}
 html.portrait .seat.hero .card .s,html.portrait[data-players] .seat.hero .card .s{font-size:22px}
 html.portrait .seat .avatar,html.portrait[data-players] .seat .avatar{display:block;width:28px;height:28px;top:-24px}
 html.portrait .seat.hero .avatar{left:10px;top:-22px;width:32px;height:32px}
 html.portrait .seat-outcome,html.portrait .seat-outcome:empty,html.portrait[data-players] .seat-outcome{height:14px;min-height:14px;overflow:hidden}
 html.portrait .seat .wintag,html.portrait[data-players] .seat .wintag{font-size:10px;line-height:14px;margin:0}
 html.portrait .seat-hand,html.portrait[data-players] .seat-hand{display:none}
 html.portrait .seat .saction{font-size:10px;top:auto;bottom:2px;line-height:14px;max-width:100%}
 html.portrait .chipbet{font-size:10px;padding:1px 4px}
}
@media(max-width:600px) and (orientation:portrait) and (max-height:690px){
 html.portrait #left{--portrait-notice-height:18px;--portrait-row-gap:2px;grid-template-rows:74px minmax(0,1fr) 18px 116px;gap:2px;padding:2px 4px calc(2px + var(--table-safe-bottom,env(safe-area-inset-bottom,0px)))}
 html.portrait #controls{height:116px;min-height:116px;max-height:116px;grid-template-rows:minmax(0,1fr)}
 html.portrait #reviewPeek,html.portrait #tableWalletNotice{height:22px;min-height:22px}
 html.portrait #tableWalletNotice p{-webkit-line-clamp:1}
 html.portrait #tableRebuyButton{height:22px;min-height:22px}
 html.portrait #posbar{height:18px}
 html.portrait .seat .avatar,html.portrait[data-players] .seat .avatar{display:none}
 html.portrait .seat,html.portrait[data-players] .seat{width:98px;padding:2px}
 html.portrait .seat.hero,html.portrait[data-players] .seat.hero{width:144px;padding:3px}
 html.portrait .seat.hero .srow{grid-template-columns:43px minmax(0,1fr)}
 html.portrait .seat.hero .scards,html.portrait[data-players] .seat.hero .scards{height:56px;min-height:56px}
 html.portrait .seat.hero .card,html.portrait[data-players] .seat.hero .card{width:40px;height:56px}
 html.portrait #board .card,html.portrait[data-players] #board .card{width:36px;height:50px}
 html.portrait #board{height:52px;min-height:52px;gap:4px}
 html.portrait #centerZone,html.portrait[data-players] #centerZone{gap:1px;top:60%}
}
@media(min-width:601px) and (max-width:1100px) and (orientation:portrait){
 html.portrait #left{--portrait-notice-height:30px;--portrait-row-gap:6px;grid-template-rows:78px minmax(0,1fr) 30px 124px;padding:12px 20px;gap:6px}
 html.portrait #controls{height:124px;min-height:124px;max-height:124px;grid-template-rows:minmax(0,1fr)}
 html.portrait #reviewPeek,html.portrait #tableWalletNotice{height:40px;min-height:40px}
 html.portrait #posbar{height:30px}
 html.portrait .seat,html.portrait[data-players] .seat{width:154px;padding:6px}
 html.portrait .seat.hero,html.portrait[data-players] .seat.hero{width:210px}
 html.portrait .seat .srow{grid-template-columns:48px minmax(0,1fr)}
 html.portrait .seat .scards,html.portrait[data-players] .seat .scards{height:60px;min-height:60px}
 html.portrait .seat .card,html.portrait[data-players] .seat .card{width:40px;height:56px}
 html.portrait .seat.hero .scards,html.portrait[data-players] .seat.hero .scards{height:82px;min-height:82px}
 html.portrait .seat.hero .card,html.portrait[data-players] .seat.hero .card{width:56px;height:78px}
 html.portrait #board .card,html.portrait[data-players] #board .card{width:54px;height:76px}
 html.portrait #board{height:78px;min-height:78px}
 html.portrait .seat .sname,html.portrait[data-players] .seat .sname{font-size:13px}
 html.portrait .seat-hand,html.portrait[data-players] .seat-hand{display:block}
}

/* Landscape: table on the left, a permanent action console on the right. */
@media(orientation:landscape) and (max-height:640px){
 html.compact:has(#app.on),html.compact:has(#app.on) body{overflow:hidden;overscroll-behavior:none}
 html.compact #app.on{position:fixed;inset:0;width:100%;height:var(--game-height,100dvh);transform:none!important;overflow:hidden;background:var(--page)}
 html.compact #left{display:grid;grid-template-columns:minmax(0,1fr) clamp(180px,27vw,244px);grid-template-rows:42px 22px minmax(0,1fr);gap:4px;width:100%;height:100%;min-height:0;box-sizing:border-box;padding:calc(3px + env(safe-area-inset-top,0px)) calc(5px + env(safe-area-inset-right,0px)) calc(3px + env(safe-area-inset-bottom,0px)) calc(5px + env(safe-area-inset-left,0px))}
 html.compact .topbar{grid-column:1/-1;grid-row:1;display:flex;position:relative;gap:5px;margin:0;overflow:visible;flex-wrap:nowrap;min-width:0}
 html.compact .topbar .pill{display:inline-flex;align-items:center;gap:3px;padding:3px 7px;font-size:11px;white-space:nowrap}
 html.compact #pillBlinds,html.compact #tbMode,html.compact .topbar>.play-quota{display:none!important}
 html.compact .topbar>.spacer{display:block;flex:1}
 html.compact #btnTools,html.compact #btnFullscreen,html.compact #btnPanel,html.compact #btnMember{display:block;min-height:38px;padding:4px 9px;font-size:12px;white-space:nowrap}
 html.compact #btnTools .btxt,html.compact #btnFullscreen .btxt{display:inline}
 html.compact .topbar #tableTools{display:none;position:absolute;top:42px;right:0;left:auto;width:min(400px,80vw);max-height:calc(var(--game-height,100dvh) - 60px);overflow:auto;box-sizing:border-box;padding:10px;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;border:1px solid var(--grid);border-radius:12px;background:var(--page);box-shadow:0 12px 36px #000b;z-index:65}
 html.compact .topbar.tools-open #tableTools{display:grid}
 html.compact #tableTools .tb{display:block;min-height:40px;order:0}
 html.compact #tableTools .btxt{display:inline}
 html.compact #tableTools .speedbox{grid-column:1/-1;display:flex;min-height:38px}
 html.compact #tableTools #speedRange{flex:1;width:100%;height:28px}
 html.compact #tablewrap{grid-column:1;grid-row:3;min-height:0;min-width:0;height:100%;margin:0}
 html.compact #table{width:100%!important;height:100%!important}
 html.compact #posbar{grid-column:1;grid-row:2;height:22px;min-height:0;padding:1px 5px;margin:0}
 html.compact #controls{grid-column:2;grid-row:2/4;display:grid;grid-template-rows:106px 30px minmax(0,1fr);gap:4px;min-height:0;height:100%;margin:0;padding:6px;background:linear-gradient(160deg,var(--surface2),var(--page));border:1px solid var(--tier-line,var(--grid));border-radius:14px;overflow:hidden;box-sizing:border-box}
 html.compact #heroDock{display:flex;align-items:center;min-height:0}
 html.compact #heroDock .seat.hero{position:relative;left:auto!important;top:auto!important;transform:none;width:100%;margin:0;box-sizing:border-box}
 html.compact #heroDock .seat.hero .avatar{display:block;position:absolute;width:24px;height:24px;left:14px;top:1px;transform:none}
 html.compact .control-notices{display:flex;min-height:0;gap:4px;overflow:hidden}
 html.compact #reviewPeek,html.compact #tableWalletNotice{width:auto;min-width:0;flex:1;margin:0;min-height:0;height:30px;padding:2px 4px;font-size:11px;box-sizing:border-box}
 html.compact #tableWalletNotice{display:flex;align-items:center;gap:3px}
 html.compact #tableWalletNotice p{font-size:10px;line-height:12px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0}
 html.compact #tableRebuyButton{min-height:32px;padding:3px;font-size:10px}
 html.compact .control-stage{display:grid;grid-template-rows:minmax(0,1fr);min-height:0;overflow:hidden}
 html.compact .control-stage>*{grid-area:1/1;align-self:center;min-width:0;max-height:100%;box-sizing:border-box}
 html.compact #actionBox .ctrlrow{display:flex;flex-wrap:wrap;gap:4px}
 html.compact #actionBox .act{flex:1 1 27%;min-width:0;min-height:48px;font-size:14px;padding:6px 2px;border-radius:9px;line-height:1.4}
 html.compact #sizeRow:not([style*="none"]){display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:7px}
 html.compact #sizeRow .qb{min-width:0;height:36px;min-height:36px;padding:2px;font-size:11px}
 html.compact #betSlider{grid-column:1/3;width:100%;height:32px;margin:0;min-width:0}
 html.compact #betVal{min-width:0;font-size:12px;text-align:center}
 html.compact #waitMsg{display:flex;align-items:center;justify-content:center;align-self:stretch;font-size:14px;line-height:1.6;padding:5px;text-align:center;overflow:auto}
 html.compact #handEndBar.on{display:grid;grid-template-columns:26px minmax(0,1fr);grid-template-rows:26px auto auto 50px;gap:7px;max-height:100%;margin:0;padding:6px;border-radius:10px}
 html.compact #heRes{grid-column:1;grid-row:1;align-self:center}
 html.compact #heStats{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 4px;text-align:center}
 html.compact #heStats .hs{padding:0;min-width:0}
 html.compact #heStats .v{font-size:14px;white-space:nowrap}
 html.compact #heStats .k{font-size:10px}
 html.compact #heDesc{grid-column:1/-1;grid-row:3;font-size:11px;line-height:1.5;text-align:center}
 html.compact #handEndBar .spacer{display:none}
 html.compact #nextBtn{grid-column:1/-1;grid-row:4;width:100%;height:50px;min-height:50px;font-size:17px;padding:6px}
 html.compact #centerZone{top:51%;width:70%;gap:3px}
 html.compact #board{height:60px;gap:5px}
 html.compact #board .card{--cs:1;width:40px;height:56px}
 html.compact #board .card .r{font-size:23px}
 html.compact #board .card .s{font-size:19px}
 html.compact #potLine{font-size:14px;padding:3px 10px;line-height:20px}
 html.compact #streetTag{font-size:10px}
 html.compact .seat{width:116px;padding:3px;transform:translate(-50%,-50%);border-radius:9px;backdrop-filter:none}
 html.compact .seat.hero{width:160px;padding:4px}
 html.compact .seat .srow{display:grid;grid-template-columns:33px minmax(0,1fr);gap:2px}
 html.compact .seat .sinfo{display:contents}
 html.compact .seat .snamerow{grid-column:1/-1;justify-content:center;min-height:14px;height:14px}
 html.compact .seat .sname{font-size:10px;max-width:100%;line-height:14px}
 html.compact .seat .sstack{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:1px;font-size:12px;line-height:14px;margin:0}
 html.compact .seat .sstack small{display:none}
 html.compact .seat .spos{font-size:9px;padding:0 2px}
 html.compact .seat .scards{grid-column:2;grid-row:2;justify-content:center;gap:3px;height:44px;margin:0}
 html.compact .seat .card{--cs:1;width:30px;height:42px}
 html.compact .seat .card .r{font-size:19px}
 html.compact .seat .card .s{font-size:15px}
 html.compact .seat.hero .srow{grid-template-columns:46px minmax(0,1fr)}
 html.compact .seat.hero .scards{height:64px}
 html.compact .seat.hero .card{width:44px;height:62px}
 html.compact .seat.hero .card .r{font-size:27px}
 html.compact .seat.hero .card .s{font-size:22px}
 html.compact .seat .avatar{display:none}
 html.compact .seat-outcome,html.compact .seat-outcome:empty{height:14px;min-height:14px;overflow:hidden}
 html.compact .seat .wintag{font-size:10px;line-height:14px;padding:0;margin:0}
 html.compact .seat-hand{display:none}
 html.compact .seat .saction{font-size:10px;line-height:14px;top:auto;bottom:2px;max-width:100%}
 html.compact .chipbet{font-size:10px;padding:1px 4px}
 html.compact #right{position:fixed;top:env(safe-area-inset-top,0px);bottom:env(safe-area-inset-bottom,0px);right:env(safe-area-inset-right,0px);width:min(420px,70vw);height:auto;visibility:hidden;transform:translateX(105%);overflow:hidden}
 html.compact #right.open{visibility:visible;transform:none}
 html.compact #drawerHead{min-height:44px}
 html.compact #drawerClose,html.compact #drawerNext{min-height:38px}
 html.compact #scrim.on{position:fixed;inset:0;z-index:40}
}
@media(orientation:landscape) and (max-height:350px){
 html.compact #left{grid-template-rows:36px 18px minmax(0,1fr);gap:2px;padding-top:2px;padding-bottom:2px}
 html.compact #posbar{height:18px}
 html.compact #btnTools,html.compact #btnFullscreen,html.compact #btnPanel,html.compact #btnMember{min-height:32px;font-size:11px;padding:3px 6px}
 html.compact #controls{grid-template-rows:84px 20px minmax(0,1fr);padding:4px;gap:2px}
 html.compact #reviewPeek,html.compact #tableWalletNotice{height:20px}
 html.compact #tableWalletNotice p{-webkit-line-clamp:1}
 html.compact #actionBox .act{min-height:40px;font-size:12px}
 html.compact #sizeRow{margin-top:4px}
 html.compact #sizeRow:not([style*="none"]){grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;margin-top:4px}
 html.compact #sizeRow .qb{height:28px;min-height:28px;font-size:9px;padding:1px}
 html.compact #betSlider{grid-column:1/5;height:26px}
 html.compact #betVal{font-size:10px}
 html.compact .seat{width:100px;padding:2px}
 html.compact .seat.hero{width:142px}
 html.compact .seat .card{width:27px;height:36px}
 html.compact .seat .scards{height:36px}
 html.compact .seat.hero .card{width:38px;height:52px}
 html.compact .seat.hero .scards{height:52px}
 html.compact #heroDock .seat.hero{padding:2px}
 html.compact #heroDock .seat.hero .avatar{width:20px;height:20px;left:10px;top:0}
 html.compact #board .card{width:32px;height:46px}
 html.compact #board{height:46px;gap:3px}
 html.compact #centerZone{gap:1px}
 html.compact #heStats{gap:5px}
 html.compact #handEndBar.on{grid-template-columns:minmax(0,1fr);grid-template-rows:30px 44px;gap:4px;padding:4px}
 html.compact #heRes,html.compact #heDesc{display:none}
 html.compact #heStats{grid-column:1;grid-row:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;align-items:center}
 html.compact #heStats .v{font-size:10px}
 html.compact #heStats .k{font-size:8px}
 html.compact #nextBtn{grid-column:1;grid-row:2;height:44px;min-height:44px}
}
@media(orientation:landscape) and (max-width:700px){
 html.compact #left{grid-template-columns:minmax(0,1fr) 180px}
 html.compact #tbNetPill{display:none!important}
 html.compact .topbar .pill{font-size:10px;padding:2px 4px}
 html.compact #board .card{width:29px;height:42px}
 html.compact #board{gap:3px;height:44px}
 html.compact #board .card .r{font-size:20px}
 html.compact #board .card .s{font-size:16px}
 html.compact .seat{width:94px}
}

/* Keep every portrait inside the existing frame, above its stack column. */
@media(max-width:1100px) and (orientation:portrait){
 html.portrait .seat .srow{grid-template-columns:31px minmax(0,1fr)}
 html.portrait .seat .avatar,html.portrait[data-players] .seat .avatar{display:block;position:absolute;left:3px;top:0;transform:none;width:28px;height:28px;z-index:4}
 html.portrait .seat .snamerow,html.portrait[data-players] .seat .snamerow{padding-left:29px;box-sizing:border-box;justify-content:center}
 html.portrait .seat .sstack,html.portrait[data-players] .seat .sstack{height:42px;justify-content:flex-end;align-self:end}
 html.portrait .seat.hero .srow{grid-template-columns:46px minmax(0,1fr)}
 html.portrait .seat.hero .avatar,html.portrait[data-players] .seat.hero .avatar{left:5px;top:1px;width:36px;height:36px}
 html.portrait .seat.hero .snamerow{padding-left:37px}
 html.portrait .seat.hero .sstack{height:64px}
 html.portrait .seat.folded{opacity:1}
 html.portrait .seat.folded .snamerow,html.portrait .seat.folded .sstack,html.portrait .seat.folded .scards{opacity:.42}
}
@media(max-width:600px) and (orientation:portrait) and (max-height:690px){
 html.portrait .seat.hero .srow{grid-template-columns:43px minmax(0,1fr)}
 html.portrait .seat.hero .avatar,html.portrait[data-players] .seat.hero .avatar{width:32px;height:32px}
 html.portrait .seat.hero .snamerow{padding-left:33px}
 html.portrait .seat.hero .sstack{height:56px}
}
@media(min-width:601px) and (max-width:1100px) and (orientation:portrait){
 html.portrait .seat .srow{grid-template-columns:48px minmax(0,1fr)}
 html.portrait .seat .avatar,html.portrait[data-players] .seat .avatar{left:7px;top:2px;width:40px;height:40px}
 html.portrait .seat .snamerow,html.portrait[data-players] .seat .snamerow{padding-left:42px}
 html.portrait .seat .sstack{height:60px}
 html.portrait .seat.hero .avatar,html.portrait[data-players] .seat.hero .avatar{width:44px;height:44px}
 html.portrait .seat.hero .snamerow,html.portrait[data-players] .seat.hero .snamerow{padding-left:47px}
 html.portrait .seat.hero .sstack{height:82px}
}
@media(orientation:landscape) and (max-height:640px){
 html.compact .seat .avatar{display:block;position:absolute;left:3px;top:0;transform:none;width:28px;height:28px;z-index:4}
 html.compact .seat .snamerow{padding-left:29px;box-sizing:border-box}
 html.compact .seat .sstack{height:44px;justify-content:flex-end;align-self:end}
 html.compact #heroDock .seat.hero .avatar{left:6px;top:1px;width:36px;height:36px}
 html.compact #heroDock .seat.hero .snamerow{padding-left:38px}
 html.compact #heroDock .seat.hero .sstack{height:64px}
 html.compact .seat.folded{opacity:1}
 html.compact .seat.folded .snamerow,html.compact .seat.folded .sstack,html.compact .seat.folded .scards{opacity:.42}
}
@media(orientation:landscape) and (max-height:350px){
 html.compact .seat .avatar{width:24px;height:24px}
 html.compact .seat .snamerow{padding-left:25px}
 html.compact .seat .sstack{height:36px;font-size:11px;line-height:12px}
 html.compact .seat .spos{font-size:8px;line-height:10px}
 html.compact #heroDock .seat.hero .avatar{width:32px;height:32px}
 html.compact #heroDock .seat.hero .snamerow{padding-left:34px}
 html.compact #heroDock .seat.hero .sstack{height:52px}
}

/* Notices share the existing position bar; no empty row above the actions. */
@media(max-width:1100px) and (orientation:portrait){
 html.portrait #controls .control-notices{position:absolute;left:0;right:0;bottom:calc(100% + var(--portrait-row-gap));height:var(--portrait-notice-height);display:flex;overflow:visible;z-index:10;pointer-events:none}
 html.portrait #controls #tableWalletNotice{height:100%;min-height:0;max-height:100%;padding:0 5px;box-sizing:border-box;pointer-events:auto;overflow:hidden;align-items:center}
 html.portrait #controls #tableWalletNotice p{margin:0;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
 html.portrait #controls #tableRebuyButton{height:100%;min-height:0;padding:0 6px;white-space:nowrap}
 html.portrait #app:has(#tableWalletNotice:not([hidden])) #posbar{visibility:hidden}
}
