/* Shared table chrome and accessories; loaded after each game's layout. */
.table-context{display:flex;align-items:center;justify-content:space-between;flex:none;height:calc(var(--space-1) * 6.5);padding:0 calc(var(--space-1) * 6);color:var(--muted);font-size:calc(var(--space-1) * 3);line-height:1.2;z-index:35}.table-context .table-menu>summary{list-style:none;font-size:calc(var(--space-1) * 5);padding:0 calc(var(--space-1) * 2);line-height:calc(var(--space-1) * 5.5)}.table-menu>summary::-webkit-details-marker{display:none}.table-menu>div{font-size:calc(var(--space-1) * 3)}.table-menu .rules{max-height:none;position:static;overflow:auto}.table-menu .rules[open]{max-height:65vh}.table-top,main>.intro{display:none!important}#account-menu #account-balance{font-size:calc(var(--space-1) * 3)}header .table-balance{display:flex;align-items:center;gap:calc(var(--space-1) * 1.5);white-space:nowrap;color:var(--gold);font-size:calc(var(--space-1) * 4)}header .table-balance:before{content:'';width:calc(var(--space-1) * 5.5);height:calc(var(--space-1) * 5.5);flex:none;background:url('/brand/signet/assets/chips/25.svg') center/contain no-repeat}#shoe{position:absolute;top:5%;right:17%;max-width:24%;font-size:calc(var(--space-1) * 2.5);color:var(--felt-print);margin:0}
.tray-bar{flex-wrap:wrap;flex-shrink:0}.tray-notice{flex:0 0 100%;min-width:0}.tray-notice #status,.tray-notice #result{position:static;transform:none;width:auto;min-height:0;margin:0;text-align:left;font:calc(var(--space-1) * 3)/1.2 var(--font-ui);color:var(--muted)}.tray-notice :empty{display:none}#status{font-size:calc(var(--space-1) * 3);line-height:1.2}#phase{display:none}#message:empty{display:none}#message:not(:empty){position:fixed;z-index:60;bottom:calc(var(--space-1) * 5);left:50%;transform:translateX(-50%);max-width:90vw;padding:calc(var(--space-1) * 2) calc(var(--space-1) * 4);background:var(--panel);border:calc(var(--space-1) * 0.25) solid var(--line);border-radius:var(--radius-control)}
.chip-tray{--chip-tray:calc(var(--space-1) * 7)}.chip-tray button{min-width:calc(var(--space-1) * 7);opacity:1!important;filter:none!important}.chip-tray button img{width:calc(var(--space-1) * 7)!important;height:calc(var(--space-1) * 7)!important;filter:none!important;opacity:1!important}.chip-tray button[data-unaffordable=true]{opacity:.45!important}.chip-tray button:disabled{filter:none!important}.chip-tray small,.chip-tray span{font-size:calc(var(--space-1) * 2.5)}
:root{--solo-felt-width:calc(100vw - calc(var(--space-1) * 6));--solo-dealer-top:2%}.felt.has-felt-spots .spot,.felt.has-felt-spots .bet-spot,.felt.has-felt-spots .bet-box{border:0!important;box-shadow:none!important;background:transparent!important}.felt.has-felt-spots .printed-spots{display:none}.felt .felt-hit{position:absolute!important;transform:none!important;margin:0!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;z-index:5}.felt .felt-hit>span:first-child{pointer-events:none}.felt.has-felt-spots .spots,.felt.has-felt-spots .bet-spots{display:contents}.felt.has-felt-spots .dealer{top:var(--solo-dealer-top)}
@media(min-width:901px) and (min-height:501px){
 .cabinet-room{display:grid;grid-template-columns:auto;grid-template-rows:minmax(0,1fr) auto;gap:calc(var(--space-1) * 2);padding:calc(var(--space-1) * 2) calc(var(--space-1) * 6);justify-items:center;align-items:center}.game-notes{display:none}.cabinet-links{display:flex;align-items:center;justify-content:center;gap:calc(var(--space-1) * 4)}.cabinet-links button{min-height:calc(var(--space-1) * 7);margin:0;font-size:calc(var(--space-1) * 3);background:transparent}.cabinet-links #start{margin:0}.cabinet-links #start label{display:inline-block;font-size:calc(var(--space-1) * 3);margin:0 calc(var(--space-1) * 2)}.cabinet-links #guest-note{display:none}.cabinet{height:min(calc(var(--space-1) * 155),calc(100dvh - calc(var(--space-1) * 42)))}
 html[data-section="Chinese Poker"] #editor{left:27%;width:46%;top:42%;bottom:8%;gap:calc(var(--space-1) * 1.5);justify-content:end}html[data-section="Chinese Poker"] .row-group{flex-direction:column;align-items:center;gap:calc(var(--space-1) * 1)}html[data-section="Chinese Poker"] #editor .hand-row{flex-direction:row;justify-content:center;width:100%;gap:calc(var(--space-1) * 2)}html[data-section="Chinese Poker"] #editor .card{height:calc(var(--space-1) * 14)}html[data-section="Chinese Poker"] .row-target{width:calc(var(--space-1) * 18.5);min-height:calc(var(--space-1) * 6);background:transparent}html[data-section="Chinese Poker"] #editor small{width:calc(var(--space-1) * 18.5)}html[data-section="Chinese Poker"] #editor .tray{position:absolute;left:calc(100% + calc(var(--space-1) * 2));bottom:0;width:calc(var(--space-1) * 40);align-items:start}html[data-section="Chinese Poker"] #editor .tray .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(var(--space-1) * 0.75)}html[data-section="Chinese Poker"] #editor .tray .card{height:calc(var(--space-1) * 10)}html[data-section="Chinese Poker"] #editor .tray .row-target{width:auto}html[data-section="Chinese Poker"] .south{bottom:3%}html[data-section="Chinese Poker"] #table-label{top:31%;font-size:calc(var(--space-1) * 4)}html[data-section="Chinese Poker"] .west,html[data-section="Chinese Poker"] .east{top:20%;width:20%}html[data-section="Chinese Poker"] .west{left:8%}html[data-section="Chinese Poker"] .east{right:8%}
}
@media(max-width:900px),(max-height:500px){.table-context{height:calc(var(--space-1) * 5);padding:0 calc(var(--space-1) * 3);font-size:calc(var(--space-1) * 2.5)}header .table-balance{font-size:calc(var(--space-1) * 3)}header .table-balance:before{width:calc(var(--space-1) * 4.5);height:calc(var(--space-1) * 4.5)}.chip-tray{--chip-tray:calc(var(--space-1) * 6)}.chip-tray button{min-width:calc(var(--space-1) * 6)}.chip-tray button img{width:calc(var(--space-1) * 6)!important;height:calc(var(--space-1) * 6)!important}.tray-notice #status,.tray-notice #result{font-size:calc(var(--space-1) * 2.5);line-height:1.1}.tray-bar{row-gap:calc(var(--space-1) * 0.5)}.game-row>img{width:calc(var(--space-1) * 16)!important;height:calc(var(--space-1) * 10)!important;justify-self:center;object-fit:contain}body:has(.felt) main{padding-left:calc(var(--space-1) * 3);padding-right:calc(var(--space-1) * 3)}.felt.has-felt-spots{width:var(--solo-felt-width);align-self:center;margin-left:0;margin-right:0}.cabinet-links:empty{display:none}}
/* Canonical solo/phone layouts: flatten only the legacy positioning wrappers.
   Live action nodes and cards stay owned by each renderer. */
.felt.has-felt-spots{flex:none;background-size:100% 100%;background-position:center;border:0;outline:0;border-radius:0;box-shadow:none;padding:0;min-height:0;max-height:none}
.has-felt-spots .chip-rack,.has-felt-spots .shoe,.has-felt-spots .shoe-marker,.has-felt-spots .discard-tray,.has-felt-spots .dealer-notch,.has-felt-spots .dealer-edge,.has-felt-spots .printing,.has-felt-spots .paytable,.has-felt-spots .table-mark,.has-felt-spots .empty-seat,.has-felt-spots .insurance-arc,.has-felt-spots .printed-spots,.has-felt-spots #table-label{display:none!important}
.has-felt-spots .dealer,.has-felt-spots .player,.has-felt-spots .hands,.has-felt-spots .hands>div,.has-felt-spots #seats,.has-felt-spots .seat,.has-felt-spots .dealer-hand,.has-felt-spots .seat-layout,.has-felt-spots .player-seat,.has-felt-spots .hand-row,.has-felt-spots #editor,.has-felt-spots .row-group{display:contents!important}
.has-felt-spots .dealer>span,.has-felt-spots .dealer>.eyebrow,.has-felt-spots .player>span,.has-felt-spots .hands>div>span,.has-felt-spots .hand-row>.row-label,.has-felt-spots .hand-row>small,.has-felt-spots .hand-row>span,.has-felt-spots .seat>strong,.has-felt-spots .seat>span,.has-felt-spots .seat>small,.has-felt-spots .seat>b,.has-felt-spots .seat>p,.has-felt-spots #player-name{display:none!important}
.felt .felt-card-box{display:block!important;padding:0;min-height:0;gap:0;text-align:center}
.felt-card-box img{margin:0!important;min-width:0;min-height:0;max-width:none;max-height:none;object-fit:fill}
.felt-card-box>picture{display:block}.felt-card-box :is(button,span.card,picture)>img{width:100%!important;height:100%!important;display:block}.felt-card-box>button,.felt-card-box>.card{padding:0;border:0;min-height:0;background:transparent}
.has-felt-spots #seats .felt-card-box>.hand,.has-felt-spots #seats .felt-card-box .cards{display:contents!important}.has-felt-spots #seats .hand>p{position:relative;display:inline-block;margin-top:32%;padding:0 var(--space-1);font-size:var(--fs-micro)}
.felt .felt-bet-target{padding:0;outline:0;background:transparent;overflow:visible;opacity:1;display:block}.felt-bet-target>span{visibility:hidden}.felt-bet-target>b,.felt-bet-target>strong{position:absolute;top:100%;left:50%;transform:translateX(-50%);font-size:var(--fs-micro);line-height:1;white-space:nowrap}.felt-bet-target[aria-pressed=true]:focus-visible{outline:var(--chip-ring) solid var(--gold)}
.has-felt-spots #editor .tray{position:absolute!important;display:flex!important;flex-direction:column!important;left:73%;width:18%;bottom:10%;top:auto;height:auto;gap:var(--space-1)}.has-felt-spots #editor .tray .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-1);min-height:0}.has-felt-spots #editor .tray .card{height:calc(var(--space-1) * 10);width:auto}.has-felt-spots #editor .tray .row-target{width:auto}.has-felt-spots #editor>.row-group~.tray:has(.cards:empty){display:none!important}.has-felt-spots #editor .row-target.felt-hit{font-size:var(--fs-micro);padding:0;background:transparent;border:0;color:var(--felt-print)}
.has-felt-spots #editor>h2,.has-felt-spots #editor>p{position:absolute;top:65%;left:30%;width:40%;text-align:center;font-size:var(--fs-caption)}.has-felt-spots #editor>p{top:72%}
@media(max-width:900px),(max-height:500px){.has-felt-spots #editor .tray{left:65%;width:20%;bottom:8%}.has-felt-spots #editor .tray .card{height:calc(var(--space-1) * 6)}.has-felt-spots #editor .tray .row-target{min-height:0;font-size:var(--fs-micro)}.has-felt-spots #editor .tray .cards{gap:calc(var(--space-1) * .5)}}
.has-felt-spots #seats .felt-card-box>.hand{display:block!important;border:0}.has-felt-spots #seats .felt-card-box .hand .cards{display:block!important;position:relative;width:100%;height:100%;margin:0;padding:0;min-height:0}.has-felt-spots #seats .felt-card-box .hand>p{display:block;margin:0;position:static;white-space:nowrap}
header{height:var(--header-h)!important}
.heading,#entry>h1{display:none!important}
/* Live badges follow JSON points, with card-box gutter fallbacks. */
.felt .felt-annotation{display:block!important;width:max-content!important;height:auto!important;overflow:visible!important;white-space:nowrap;font-size:calc(var(--space-1) * 2.5)!important;line-height:1!important;color:var(--felt-print);padding:0!important;border:0;background:transparent;transform:translateY(-50%)!important}
.felt .felt-annotation[data-felt-anchor=end]{transform:translate(-100%,-50%)!important;text-align:right}
.felt .felt-card-box img{object-fit:contain}
.felt-bet-target>b,.felt-bet-target>strong{transform:translate(calc(var(--chip-table) / 2 + calc(var(--space-1) * 0.75)),-50%);font:calc(var(--space-1) * 2.5)/1 var(--font-ui);background:var(--panel);padding:calc(var(--space-1) * .5) calc(var(--space-1) * 0.75);border-radius:var(--radius-control)}
.felt-bet-target>.felt-badge-rect{transform:none;padding:0;box-sizing:border-box;text-align:center}
.felt-bet-target>.felt-badge-rect[data-wager-result]{white-space:nowrap;overflow:hidden}
.felt-bet-target>.felt-badge-rect:not([hidden]){display:flex;align-items:center;justify-content:center}
#shoe{position:static;max-width:none;color:var(--muted);font-size:var(--fs-micro)}
.has-felt-spots .seat-name,.has-felt-spots .seat>.fine,.has-felt-spots .hand>p:not(.hand-total),.has-felt-spots .hands>.fine{display:none!important}
@media(min-width:901px) and (min-height:501px){
 body:has(.felt){height:100dvh;display:flex;flex-direction:column}
 body:has(.felt) main{width:100%;flex:1;min-height:0;display:flex;flex-direction:column}
 body:has(#game:not([hidden])):has(.felt) main{max-width:none}
 body:has(.felt) #game:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column;gap:calc(var(--space-1) * 2)}
 .felt.has-felt-spots{flex:none!important;align-self:center;margin:0 auto!important;max-width:calc(var(--space-1) * 275)}
 .controls,.betting,.tray-bar{flex-shrink:0}
 .table-menu #metrics{display:grid;margin:0;white-space:nowrap}
}

.has-felt-spots .hand-row>.felt-annotation{display:block!important}
.felt-bet-target .pending-stack{width:var(--chip-table);height:var(--chip-table)}

.felt .wager-chip{width:var(--chip-table);height:var(--chip-table);max-width:none;object-fit:contain}

.has-felt-spots #editor .tray .card img{width:100%;height:100%;object-fit:contain}

/* Phone height budget: 44 px header + 20 px context + fitted cloth + 61 px actions. */
@media(max-width:900px),(max-height:500px){
 body:has(.felt){height:100dvh;display:flex;flex-direction:column}
 body:has(.felt) header{height:calc(var(--space-1) * 11)!important}
 body:has(.felt) .table-context{height:calc(var(--space-1) * 5)}
 body:has(.felt) main{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;padding-block:0;margin-block:0}
 body:has(.felt) #game:not([hidden]){flex:1;min-height:0;display:flex;flex-direction:column;gap:0}
 .felt.has-felt-spots{align-self:center;margin:0 auto!important}
 body:has(.felt) :is(.tray-bar,.betting,.controls){flex-shrink:0;align-self:stretch;min-height:calc(var(--space-1) * 15.25);margin-block:0;padding-block:calc(var(--space-1) * .75);row-gap:calc(var(--space-1) * .5)}
 body:has(#game:not([hidden]))>footer,body:has(.cabinet-room #start[hidden])>footer{display:none}
}

/* Wager amounts are visible only when a chip is on the spot. */
.felt :is(.spot,.bet-spot,.bet-box)>:is(b,strong)[hidden]{display:none!important}
