/* Table composition: player rail, open felt, side actions, hand at the bottom. */
.is-playing .shell{width:100%;max-width:none}.table-layout{width:100%;max-width:1600px;height:100dvh;max-height:100dvh;margin:auto;min-height:0;grid-template-columns:minmax(0,1fr) 104px;grid-template-areas:"header header" "opponents opponents" "middle controls" "ground controls" "status status" "hand hand";grid-template-rows:44px minmax(85px,.7fr) minmax(100px,1fr) auto 48px minmax(195px,1.4fr);gap:6px;padding:0 max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 35%,#34546b,#182b46 75%)}
.table-layout:before{inset:115px 12px 35%;border-radius:42%;border:1px solid #d2be8b26;box-shadow:inset 0 0 0 7px #111e3022;z-index:-1}.table-header{grid-area:header;min-width:0;gap:5px}.table-header h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-header .link{padding:5px;min-height:34px}.table-display-button{font-size:21px;min-width:34px}.table-opponents{grid-area:opponents;min-height:0;max-height:none;overflow:auto;align-items:start;justify-content:space-evenly;gap:7px;padding:4px}.seat{flex:0 0 auto;min-width:78px;padding:5px 7px;border-radius:12px;background:#13243b8c;box-shadow:0 5px 12px #08132325;overflow:visible}.seat strong{font-size:12px;display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:3px}.seat>span{font-size:9px}.player-avatar{width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;font-style:normal;background:linear-gradient(145deg,#8d7699,#435b80);border:1px solid #dec7a677;color:#fff1d8;font-size:13px;flex-shrink:0}.active-seat{border-color:#ffd185!important;background:#3f5355!important}.mini-backs{display:none}.table-middle{grid-area:middle;min-width:0;min-height:0;padding:6px;gap:16px;background:transparent;border:0;align-self:stretch}.deck-zone{font-size:10px;gap:5px}.deck-zone .playing-card,.deck-zone>.playing-card{width:56px;height:80px}.stock-card{box-shadow:3px 3px 0 #a7a7ba,6px 6px 0 #192842,8px 8px 0 #a7a7ba66}.discard-zone{min-width:65px;padding:5px;border-radius:12px}.table-status{grid-area:status;min-width:0;min-height:0;max-height:100%;align-self:center;font-size:10px;padding:2px 6px;line-height:1.35;background:transparent}.turn-banner{font-size:12px}.table-status small{font-size:9px;margin-top:2px}.recent-discards{font-size:9px;justify-content:center;gap:8px}.table-controls{grid-area:controls;min-width:0;min-height:0;max-height:100%;overflow:auto;align-self:center;display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;padding:6px 3px;background:transparent;border:0;box-shadow:none}.table-controls button{width:100%;font-size:11px;min-height:42px;padding:8px 6px;border-radius:14px;border:1px solid #f1ce9333}.table-controls label{display:flex;flex-direction:column;gap:4px;font-size:11px}.table-controls select{max-width:80px;padding:6px}.gesture-hint{font-size:9px;line-height:1.4}.waiting-turn{font-size:11px}.hand-area{grid-area:hand;min-width:0;min-height:0;height:100%;display:flex;flex-direction:column;overflow:visible;background:linear-gradient(0deg,#0c172e99,transparent);border:0;border-radius:20px 20px 0 0;box-shadow:none}.active-hand{box-shadow:inset 0 2px 0 #efca8370}.hand-heading{position:static;min-height:30px;padding:2px 7px;flex-shrink:0;background:transparent;font-size:10px;gap:6px;flex-wrap:nowrap}.hand-heading>span{min-width:0;line-height:1.4}.hand-heading .link{min-height:30px;padding:4px 7px;font-size:10px}.sort-mode{min-height:30px!important;padding:2px!important}.sort-mode span{padding:4px 6px}.arrangement-note{font-size:9px;padding:0 7px;flex-shrink:0}.my-hand{display:grid;grid-template-columns:repeat(var(--hand-columns,7),minmax(0,1fr));align-content:end;align-items:end;justify-items:start;gap:8px 0;flex:1;min-height:0;padding:12px 20px 18px 5px;isolation:isolate;overflow:visible}.my-hand .playing-card{position:relative;width:min(72px,calc(100% + 16px));height:auto;aspect-ratio:5/7;min-width:0;flex:none;padding:4px;transform:translateY(var(--portrait-lift,0px)) rotate(var(--portrait-angle,0deg));transform-origin:50% 100%;border-radius:6px;box-shadow:0 4px 7px #08132655;animation:none}.my-hand .playing-card .card-index{font-size:16px}.my-hand .playing-card .pip{font-size:27px}.my-hand .playing-card .bottom{font-size:10px}.my-hand .playing-card.selected,.my-hand .playing-card:not(.selected):hover{transform:translateY(calc(var(--portrait-lift,0px) - 12px)) rotate(var(--portrait-angle,0deg));z-index:4}.my-hand .playing-card:disabled{opacity:.92}.short-hand:not(.faras-table) .my-hand{display:flex;justify-content:center;align-items:end;gap:0;padding:16px 15px 22px}.short-hand:not(.faras-table) .my-hand .playing-card{width:clamp(55px,17vw,90px);flex-shrink:0}.short-hand:not(.faras-table) .my-hand .playing-card+*{margin-left:-22px}
.table-ground{grid-area:ground;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px}.table-ground:not(.has-melds){display:none}.ground-label{font-size:9px;color:#c5d2dc;max-width:70px}.exposed-hand{display:flex;gap:5px;padding:3px;overflow:auto;flex-wrap:nowrap;align-items:start}.exposed-meld{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:2px;border:1px solid #d2b77c55;background:#172a3a66;border-radius:5px;flex-shrink:0}.exposed-hand .playing-card,.seat .public-melds .playing-card{width:24px;height:34px;font-size:10px;padding:2px;pointer-events:none;opacity:1;box-shadow:none;border-radius:3px}.exposed-hand .playing-card .card-index{font-size:10px}.exposed-hand .playing-card .pip{font-size:13px}.exposed-hand .bottom{display:none}.public-melds{max-width:170px;max-height:none}.public-melds .exposed-hand{display:grid;grid-template-columns:repeat(3,1fr);gap:0;overflow:visible;padding:3px 0 0}.public-melds .exposed-meld{display:contents}.ready-discard{border-color:#f5ce82;box-shadow:0 0 0 2px #e3bd7333;background:#b48b3826}.ready-discard>span{color:#ffe4a6;font-weight:700}
.faras-table .table-opponents{overflow:auto;max-height:none;min-height:0;align-items:start}.faras-table .faras-seat{min-width:96px;max-width:170px;flex:0 0 auto}.large-faras .faras-seat{min-width:100px;flex:0 0 100px}.faras-table .seat-fan{min-height:30px;padding:3px}.faras-table .seat-fan .playing-card{width:25px;height:35px}.faras-table .seat-wallet strong{font-size:16px}.faras-table .seat-bet{font-size:9px}.faras-table .my-hand{display:flex;min-height:0;align-items:end;justify-content:center;padding:15px 10px 24px;gap:0}.faras-table .my-hand .playing-card{width:clamp(90px,26vw,135px);height:auto;aspect-ratio:5/7;flex:0 0 auto;transform:translateY(var(--fan-lift,0px)) rotate(var(--fan-angle,0deg))}.faras-table .my-hand .playing-card+*{margin-left:-32px}.faras-table .my-hand .playing-card:first-child{transform:rotate(-10deg) translateY(7px)}.faras-table .my-hand .playing-card:last-child{transform:rotate(10deg) translateY(7px)}.faras-table .my-wallet strong{font-size:18px}.faras-table .my-wallet small{font-size:9px}.faras-table .table-controls button{min-height:40px}.faras-pot{min-width:0}.faras-pot>strong{font-size:35px}.faras-action-log{font-size:9px;max-height:40px;overflow:auto}.faras-pot .chip-stack{display:block}.faras-table .my-hand .playing-card.back:after{font-size:44px}
@media(orientation:landscape) and (min-width:560px){
 .table-layout{grid-template-columns:minmax(0,1fr) 110px;grid-template-areas:"header header" "opponents controls" "middle controls" "ground controls" "status controls" "hand hand";grid-template-rows:36px minmax(54px,.55fr) minmax(65px,1fr) auto 28px minmax(112px,.95fr);gap:4px 10px;padding-bottom:max(8px,env(safe-area-inset-bottom))}.table-layout:before{inset:65px 125px 28% 20px}.table-header .link{min-height:30px}.table-header h1{font-size:16px}.table-opponents{align-items:start;gap:8px;overflow:auto;padding:3px}.seat{display:flex;align-items:center;gap:6px;padding:4px 8px}.seat strong{font-size:11px;margin:0}.seat>span{max-width:100px;white-space:normal;font-size:9px}.player-avatar{width:28px;height:28px}.public-melds{margin-left:3px}.seat .public-melds .playing-card{width:18px;height:25px;padding:1px}.seat .public-melds .card-index{font-size:9px}.table-middle{gap:24px;padding:3px}.deck-zone .playing-card,.deck-zone>.playing-card{width:48px;height:68px}.deck-zone{font-size:9px;gap:3px}.discard-zone{min-width:62px}.table-status{font-size:9px;line-height:1.2;max-height:28px;overflow:auto}.table-status .turn-banner{font-size:11px;display:inline;margin-right:6px}.table-status small{display:inline;font-size:9px}.recent-discards{display:none}.table-controls{gap:8px;padding:8px 3px;align-self:center}.table-controls button{min-height:40px;font-size:11px}.table-controls .gesture-hint{font-size:9px}.hand-area{overflow:visible}.hand-heading{min-height:24px;padding:0 7px;font-size:10px}.hand-heading .link{min-height:26px;padding:2px 5px}.sort-mode{min-height:26px!important}.sort-mode span{padding:2px 5px}.arrangement-note{display:none}.table-layout:not(.faras-table) .my-hand{display:grid;grid-template-columns:repeat(var(--full-hand-columns,21),minmax(0,1fr));gap:0;align-content:end;padding:6px 20px 16px 5px}.table-layout:not(.faras-table) .my-hand .playing-card{width:min(96px,calc(100% + 18px));max-height:calc(100dvh * .29 - 28px);height:auto;margin:0;aspect-ratio:5/7;transform:translateY(var(--fan-lift,0px)) rotate(var(--fan-angle,0deg));padding:3px}.table-layout:not(.faras-table) .my-hand .playing-card .card-index{font-size:15px}.table-layout:not(.faras-table) .my-hand .playing-card .bottom{font-size:9px}.table-layout:not(.faras-table) .my-hand .playing-card.selected,.table-layout:not(.faras-table) .my-hand .playing-card:not(.selected):hover{transform:translateY(calc(var(--fan-lift,0px) - 10px)) rotate(var(--fan-angle,0deg))}.faras-table .table-opponents{align-items:start}.faras-table .faras-seat{display:grid;grid-template-columns:1fr auto;gap:2px 6px;min-width:95px;padding:4px 7px}.faras-table .seat-fan{display:none}.faras-table .seat-bet{grid-column:1/-1}.faras-table .seat-wallet strong{font-size:15px}.faras-table .my-hand{padding:4px 10px 15px}.faras-table .my-hand .playing-card{width:clamp(54px,calc(100dvh * .18),100px)}.faras-table .hand-heading{min-height:27px}.faras-table .my-wallet strong{font-size:15px}.faras-table .my-wallet small{font-size:8px}.faras-table .my-hand .playing-card+*{margin-left:-18px}.faras-pot .chip-stack{display:none}.faras-pot>strong{font-size:26px}.faras-action-log{max-height:22px}.table-ground .playing-card{width:22px;height:31px}.ground-label{max-width:none}.table-ground{justify-content:center}.table-header .table-coins{font-size:11px}
}
@media(orientation:landscape) and (max-height:360px){.table-layout{grid-template-columns:minmax(0,1fr) 96px;grid-template-rows:30px minmax(42px,.5fr) minmax(50px,1fr) auto 24px minmax(102px,.9fr);gap:3px 5px}.table-header .link{min-height:27px;font-size:11px}.table-header h1{font-size:14px}.table-controls{gap:5px;padding:4px 2px}.table-controls button{min-height:34px;padding:5px;font-size:10px}.player-avatar{width:21px;height:21px;font-size:10px}.seat strong{font-size:10px}.seat{padding:3px 5px}.seat>span{font-size:8px}.table-layout:not(.faras-table) .my-hand .playing-card{max-height:65px}.table-middle .playing-card{width:39px;height:55px}.deck-zone{font-size:8px}.table-ground .playing-card{width:16px;height:23px}.ground-label{font-size:8px}.table-status small{display:none}.table-controls .gesture-hint{font-size:8px}.hand-heading{font-size:9px}.faras-table .my-hand .playing-card{width:50px}.faras-action-log{display:none}}
@media(orientation:portrait){.game-marriage .my-hand{grid-template-columns:repeat(11,minmax(0,1fr));row-gap:14px}.game-marriage .my-hand .playing-card{width:calc(100% + 17px);max-width:68px;min-height:63px}.game-marriage .my-hand .playing-card .card-index{font-size:14px}.game-marriage .my-hand .playing-card .bottom{display:none}.game-marriage .table-opponents .seat{max-width:112px}.game-marriage .seat .public-melds .playing-card{width:19px;height:27px}.game-marriage .table-opponents .seat strong{font-size:11px}.table-ground .exposed-hand{max-width:230px}.table-controls{gap:8px}.short-hand .my-hand .playing-card .card-index{font-size:20px}.short-hand .my-hand .playing-card .pip{font-size:35px}}
@media(orientation:portrait) and (max-height:700px){.table-layout{grid-template-rows:38px minmax(66px,.65fr) minmax(80px,1fr) auto 36px minmax(172px,1.3fr);gap:4px}.table-controls button{min-height:37px;font-size:10px}.deck-zone .playing-card{width:45px;height:64px}.faras-table .my-hand .playing-card{width:80px}.table-status{font-size:9px}.player-avatar{width:22px;height:22px}.seat{padding:4px}.game-marriage .my-hand .playing-card{min-height:57px}.hand-heading{font-size:9px}}
.card-flight{position:fixed!important;pointer-events:none!important;z-index:90!important;transform-origin:center!important;will-change:transform;opacity:1!important}.motion-target{animation:none!important}
.kitti-board{width:100%;max-width:480px;text-align:center;color:#d6dff0}.kitti-board>p{margin:4px 0 12px;font-size:12px;font-weight:700}.kitti-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.kitti-slot{padding:9px 5px;border:1px dashed #c8d3ee55;border-radius:13px;background:#10234425;min-width:0}.kitti-slot strong{font-size:11px;display:block;margin-bottom:9px}.kitti-slot>div{display:flex;align-items:center;justify-content:center;min-height:57px}.kitti-slot .playing-card{width:36px;height:51px;font-size:12px;padding:3px;flex:0 0 auto;pointer-events:none}.kitti-slot .playing-card+*{margin-left:-13px}.kitti-slot .playing-card .card-index{font-size:12px}.kitti-slot .playing-card .pip{font-size:18px}.kitti-slot .playing-card .bottom{display:none}.card-slot{display:inline-flex;width:24px;height:38px;align-items:center;justify-content:center;color:#899abf80;border:1px solid #b5c5e044;border-radius:5px;background:#24395c33}.card-slot+*{margin-left:-6px}.kitti-slot.is-next{border-color:#e8c477;background:#b7944420;box-shadow:0 0 0 1px #e8c47733}.kitti-slot.is-ready{border-style:solid;border-color:#88b9ad;background:#7ba68b18}.kitti-board>small{display:block;margin:10px 0 3px;font-size:10px;color:#bfcee9}.trick-placeholder{text-align:center;font-size:12px;color:#c1cfe5}.trick-placeholder>div{display:flex;justify-content:center;gap:9px;margin-bottom:14px;opacity:.55}.trick-placeholder>div span{width:43px;height:60px;display:grid;place-items:center;border:1px dashed #afbedc66;border-radius:9px;background:#273e6122;font-size:25px}.trick-placeholder>div span:nth-child(2n){color:#e0a2a5}@media(orientation:landscape) and (max-height:600px){.kitti-board>p{font-size:10px;margin:0 0 5px}.kitti-slot{padding:5px 2px}.kitti-slot strong{font-size:10px;margin-bottom:3px}.kitti-slot>div{min-height:42px}.kitti-slot .playing-card{width:27px;height:38px;padding:2px}.kitti-slot .playing-card .card-index{font-size:10px}.kitti-slot .playing-card+*{margin-left:-9px}.card-slot{width:20px;height:31px}.kitti-board>small{margin:5px 0 0;font-size:9px}.trick-placeholder>div{margin-bottom:7px;gap:6px}.trick-placeholder>div span{width:31px;height:44px;font-size:19px}.trick-placeholder{font-size:10px}}


@media(orientation:portrait){.hand-heading{margin-top:auto}.my-hand{flex:0 0 auto}.faras-table .my-hand{flex:0 0 auto}}

/* Exposed openings form nine-card squares, with your ground beside the piles. */
.table-ground.has-melds{grid-area:middle;align-self:center;justify-self:start;flex-direction:column;max-width:100px;z-index:1;gap:2px}.table-ground .exposed-hand{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:visible}.table-ground .exposed-meld{display:contents}.table-ground .ground-label{max-width:100%;text-align:center}.has-exposed .table-middle{padding-left:90px}.table-opponents{scrollbar-width:thin;scrollbar-color:#b9b08b #20344c}.public-table .table-opponents .seat{flex-direction:column;gap:2px}.public-table .public-melds{margin:0}.public-table .public-melds .exposed-hand{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(orientation:landscape) and (min-width:560px){.public-table{grid-template-rows:36px minmax(96px,.7fr) minmax(65px,1fr) auto 24px minmax(112px,.95fr)}.public-table .seat{min-width:88px;display:grid;grid-template-columns:auto 1fr;gap:3px 7px}.public-table .seat>strong{grid-column:1;grid-row:1;flex-direction:column;gap:2px;font-size:10px}.public-table .seat>span{grid-column:1;grid-row:2;max-width:54px;font-size:8px}.public-table .public-melds{grid-column:2;grid-row:1/3}.public-table .table-opponents{justify-content:space-evenly;align-items:center}.table-ground.has-melds{max-width:100px;margin-left:18px}.has-exposed .table-middle{padding-left:115px}.table-ground .playing-card{width:20px;height:28px}.public-table .hand-area{min-height:0}}
@media(orientation:landscape) and (max-height:360px){.public-table{grid-template-rows:30px 76px minmax(44px,1fr) auto 20px 102px}.public-table .seat .public-melds .playing-card{width:14px;height:20px}.public-table .seat{padding:2px 4px;min-width:80px}.public-table .player-avatar{width:18px;height:18px}.table-ground.has-melds{margin-left:8px;max-width:72px}.table-ground .playing-card{width:15px;height:21px}.has-exposed .table-middle{padding-left:78px;gap:12px}.ground-label{font-size:8px}}
@media(orientation:portrait){.table-ground.has-melds{max-width:70px;margin-left:0}.table-ground .playing-card{width:19px;height:27px}.has-exposed .table-middle{padding-left:65px;gap:9px}.has-exposed .table-middle .playing-card{width:42px;height:60px}.has-exposed .discard-zone{min-width:52px}.public-table .table-opponents{min-height:118px}.public-table{grid-template-rows:44px minmax(122px,.7fr) minmax(100px,1fr) auto 48px minmax(195px,1.4fr)}}
