/* DOM table skin. Keep the existing 1200x626 / mobile 1200x640 fit canvas,
   action identifiers, private-card rendering and pointer handlers unchanged.
   Activate with document.documentElement.classList.add('reference-table-skin'). */
html.reference-table-skin{--ref-felt:#007058;--ref-ink:#ecfff0;--ref-mint:#42e6b5}
html.reference-table-skin #reference-ui-root.reference-ui-table-base{background:#007058}
.table-recovery-status{position:absolute;z-index:32;top:72px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:14px;max-width:760px;padding:12px 20px;border:1px solid #93d2b3;border-radius:28px;background:#043c33f5;color:#f1f8e9;font:22px/1.4 "Microsoft YaHei",sans-serif;white-space:nowrap;pointer-events:auto;box-shadow:0 3px 14px #00291f55}
.table-recovery-status button{flex:none;border:1px solid #e8d58f;border-radius:20px;padding:7px 15px;background:#e0c46d;color:#28463a;font:700 19px/1.3 "Microsoft YaHei",sans-serif;touch-action:manipulation}
html.reference-table-skin #game{background:var(--ref-felt)}
html.reference-table-skin #game>header,
html.reference-table-skin #game>footer,
html.reference-table-skin #game .workspace>aside{display:none!important}
html.reference-table-skin #game .workspace{display:flex;min-height:0;flex:1}
html.reference-table-skin #table-area{background:var(--ref-felt);overflow:hidden}
html.reference-table-skin #table{width:1200px;height:626px;background-color:var(--ref-felt);background-image:var(--reference-felt-image,none);background-position:center;background-size:100% 100%;overflow:hidden;overflow:clip}
html.reference-table-skin.mobile-layout #table{height:640px}
html.reference-table-skin #table .table-inlay{display:none}
html.reference-table-skin #table .table-label{display:block;left:436.875px;top:calc(50% - 173.125px);width:330px;height:330px;transform:none;border:0;border-radius:0;box-shadow:none;opacity:.5;letter-spacing:0;pointer-events:none}
html.reference-table-skin #table .table-label::before,
html.reference-table-skin #table .table-label::after{display:none}
html.reference-table-skin #table .table-label.reference-control-ready>span,
html.reference-table-skin #table .table-label.reference-control-ready>b{visibility:hidden}

/* Every tool remains an actual DOM button with its original handler and label. */
html.reference-table-skin #table-hud{display:block;position:absolute;z-index:9;left:0;right:0;top:0;height:44px;padding:0;border-bottom:2px solid #80ccaa80;background:#005340bf;color:var(--ref-mint);pointer-events:none}
html.reference-table-skin #table-hud button{position:absolute;display:block;min-width:52px;min-height:52px;width:54px;height:54px;margin:0;padding:0;border:0;border-radius:50%;background:#005340;color:#d0f7ca;font:15px/1.2 "Microsoft YaHei",sans-serif;box-shadow:none;pointer-events:auto}
html.reference-table-skin #table-hud button:hover{background:#0a8064;transform:none}
html.reference-table-skin #table-hud button:focus-visible{outline:3px solid #ffed8c;outline-offset:2px}
html.reference-table-skin #table-menu{left:27px;top:6px}
html.reference-table-skin #table-meta{display:block;position:absolute;left:265px;right:282px;top:9px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;font:23px/34px "Microsoft YaHei",sans-serif;color:#21e7b8}
html.reference-table-skin #connection{position:absolute;left:86px;top:18px;font-size:11px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#b7e5d2}
html.reference-table-skin #sound-toggle{right:76px;top:5px}
html.reference-table-skin #table-score{right:171px;top:5px}
html.reference-table-skin #table-rules{right:237px;top:5px;width:52px}
html.reference-table-skin #table-exit{right:300px;top:5px;width:52px}
/* This control sits outside the replaced legacy HUD so table review always has
   a way back to settlement. The top-left gap keeps exposed cards unobscured. */
html.reference-table-skin #table-result{position:absolute;left:98px;right:auto;top:1px;z-index:10;min-width:124px;min-height:36px;padding:0 10px;border:1px solid #f3da83;border-radius:22px;background:#e6c76c;color:#315536;font:700 20px/1.2 "Microsoft YaHei",sans-serif;box-shadow:0 2px 0 #8c7c3d;pointer-events:auto;touch-action:manipulation}
html.reference-table-skin #table-result:hover{background:#f0d583;transform:none}
html.reference-table-skin #table-result:focus-visible{outline:3px solid #fff4bb;outline-offset:2px}
html.reference-table-skin #location-toggle{left:14px;top:calc(50% - 71.875px);width:56px;height:56px}
html.reference-table-skin #sound-toggle[aria-pressed=false]{opacity:.6}
html.reference-table-skin #location-toggle[aria-pressed=true]{filter:drop-shadow(0 0 5px #e1f48f)}
/* Only opt in after the corresponding commands are connected in the reference menu. */
html.reference-table-skin.reference-menu-integrated #table-rules,
html.reference-table-skin.reference-menu-integrated #table-exit{display:none}
.reference-control-art{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;pointer-events:none!important;overflow:visible}
html.reference-table-skin .reference-control-ready{color:transparent!important;text-shadow:none!important;background:transparent!important;border-color:transparent!important}

/* The source table has small seat portraits and a visible numeric score. */
html.reference-table-skin #table .seat-info{width:118px;min-width:0;gap:2px;font-size:14px;z-index:3;text-align:center}
html.reference-table-skin #table .seat-info .avatar{width:75px;height:75px;border:2px solid #92c98e;border-radius:4px;background:#004f3d;color:#fff4b3;font-size:32px;box-shadow:none}
html.reference-table-skin #table .seat-info .avatar img{border-radius:2px}
html.reference-table-skin #table .seat-info .name{top:-20px;left:-12px;right:-12px;max-width:none;font-size:16px;color:#d9f8e2}
html.reference-table-skin #table .seat-info .points{color:#ffdf09;font-size:21px;font-weight:700;margin:0}
html.reference-table-skin #table .seat-info .sub{font-size:11px;color:#c0decf;gap:3px}
html.reference-table-skin #table .seat-info .wind-label{right:24px;top:37px;background:#00664e;color:#e7e9b5}
html.reference-table-skin #table .seat-info.active .avatar{border-color:#e6ed7e;box-shadow:0 0 8px #c6e45b4d}
html.reference-table-skin #table .ready-badge{border-radius:2px;font-size:21px;background:#eee1a8dc;color:#1f5c31}
html.reference-table-skin #table .seat-info.top{left:175.375px;top:59.375px}
html.reference-table-skin #table .seat-info.left{left:-14px;top:97.8125px}
html.reference-table-skin #table .seat-info.right{right:-6.8125px;left:auto;top:137.5px}
html.reference-table-skin #table .seat-info.bottom{left:-8.6875px;top:calc(100% - 255.625px);bottom:auto}
html.reference-table-skin #table .seat-info.bottom .name{top:-26.25px}
/* The fitted #table transform is the containing block for these fixed nodes.
   Source hua1..4 are independent table anchors, never portrait offsets. */
html.reference-table-skin #table .seat-info .flowers{position:fixed;display:flex;left:auto;right:auto;top:auto;bottom:auto;transform:none;gap:0;margin:0;padding:0;visibility:visible;pointer-events:none;overflow:visible}
html.reference-table-skin #table .seat-info.bottom .flowers{left:209.375px;bottom:130px;width:288.6px;height:44.30625px;align-items:flex-start;justify-content:flex-start}
html.reference-table-skin #table .seat-info.bottom .flowers .tile{width:32.375px;height:48.65px}
html.reference-table-skin #table .seat-info.top .flowers{right:233.125px;top:114.375px;width:288.6px;height:44.30625px;align-items:flex-start;justify-content:flex-end}
html.reference-table-skin #table .seat-info.top .flowers .tile{width:28.675px;height:43.4375px}
html.reference-table-skin #table .seat-info.right .flowers{left:975px;bottom:168.125px;width:42.55px;height:205.025px;flex-direction:column;justify-content:flex-end;align-items:flex-start}
html.reference-table-skin #table .seat-info.left .flowers{left:188.75px;top:180.625px;width:42.55px;height:205.025px;flex-direction:column;justify-content:flex-start;align-items:flex-start}
html.reference-table-skin #table .seat-info.right .flowers .tile,
html.reference-table-skin #table .seat-info.left .flowers .tile{width:41.625px;height:34.75px;margin-bottom:-8.6875px}

/* Original atlas faces/shells are decorative children; original SVG stays as fallback. */
html.reference-table-skin .tile{border:0!important;box-shadow:none!important;background:none!important}
html.reference-table-skin .tile.reference-tile-ready>svg:not(.reference-tile-art){opacity:0}
/* Own faces retain their local vector underlay if an atlas has not painted.
   The opaque original shell/face above it preserves the normal reference art. */
html.reference-table-skin #hand-bottom>.tile>svg:not(.reference-tile-art){opacity:1;filter:none}
html.reference-table-skin #hand-bottom>.tile>.reference-tile-art{z-index:1}
.reference-tile-art{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;display:block!important;pointer-events:none!important;overflow:visible;filter:drop-shadow(.5px 1px .6px #00433450)}
/* Legacy .tile svg overflow must not expose the rest of a cropped atlas. */
.reference-tile-art>svg,.reference-control-art>svg{overflow:hidden!important}
/* Legacy private-hand SVG hiding belongs to the old fallback, not this art. */
.reference-tile-art,.reference-tile-art>svg{visibility:visible!important}
html:not(.reference-table-skin) .reference-tile-art,
html:not(.reference-table-skin) .reference-control-art{display:none!important}
html.reference-table-skin .tile.back.reference-tile-ready::before,
html.reference-table-skin .tile.back.reference-tile-ready::after{display:none!important}
html.reference-table-skin #table .rival-hand.top{top:64px;left:366px;gap:0}
html.reference-table-skin #table .rival-hand.top .tile{width:36px;height:53px}
html.reference-table-skin #table .rival-hand.left{left:152px;top:66.875px!important;height:var(--reference-side-height,399.625px);justify-content:flex-end}
html.reference-table-skin #table .rival-hand.right{right:152px;top:96.875px;height:var(--reference-side-height,393.125px);justify-content:flex-start}
html.reference-table-skin #table .rival-hand.left .tile.back,
html.reference-table-skin #table .rival-hand.right .tile.back{width:24px;height:53px;flex:none;margin-bottom:var(--reference-back-margin,-29px)}
html.reference-table-skin #table .rival-hand.left .tile.back:last-child,
html.reference-table-skin #table .rival-hand.right .tile.back:last-child{margin-bottom:0}
html.reference-table-skin #table .rival-hand .tile.back .reference-tile-art{transform:none!important}
html.reference-table-skin #table .melds{z-index:4;gap:10px}
html.reference-table-skin #table .melds.top{top:64px;right:222px;left:auto}
html.reference-table-skin #table .melds.left{left:140px;top:66.875px;transform:none;flex-direction:column;transform-origin:0 0}
html.reference-table-skin #table .melds.right{left:1040px;right:auto;top:auto;bottom:146px;transform:none;flex-direction:column-reverse;transform-origin:0 0}
html.reference-table-skin.portrait-rotated #table .melds.right{bottom:152px}
html.reference-table-skin #table .melds .tile{width:35px;height:53px}
html.reference-table-skin #table .melds.left,
html.reference-table-skin #table .melds.right{gap:calc(10px * var(--reference-side-scale,1));height:var(--reference-side-span,auto)}
html.reference-table-skin #table .melds.left .tile,
html.reference-table-skin #table .melds.right .tile{width:calc(45px * var(--reference-side-scale,1));height:calc(35.1px * var(--reference-side-scale,1));margin-bottom:calc(-9.45px * var(--reference-side-scale,1))}
html.reference-table-skin #table .melds.left .meld{flex-direction:column}
html.reference-table-skin #table .melds.right .meld{flex-direction:column-reverse}
html.reference-table-skin #table .melds.left .tile:last-child:not(.kong-fourth),
html.reference-table-skin #table .melds.right .tile:last-child:not(.kong-fourth){margin-bottom:0}
html.reference-table-skin #table .melds.left .meld>.tile:nth-child(3),
html.reference-table-skin #table .melds.right .meld>.tile:nth-child(3){margin-bottom:0}
html.reference-table-skin #table .melds.right .tile{margin-bottom:0;margin-top:calc(-9.45px * var(--reference-side-scale,1))}
html.reference-table-skin #table .melds.right .meld>.tile:nth-child(3){margin-top:0}
/* Reverse-order right melds still paint lower faces over upper tile depth. */
html.reference-table-skin #table .melds.right .meld>.tile:nth-child(1){z-index:3}
html.reference-table-skin #table .melds.right .meld>.tile:nth-child(2){z-index:2}
html.reference-table-skin #table .melds.right .meld>.tile:nth-child(3){z-index:1}
html.reference-table-skin #table .melds.left .kong-fourth,
html.reference-table-skin #table .melds.right .kong-fourth{width:calc(35.1351px * var(--reference-side-scale,1));height:calc(45.2703px * var(--reference-side-scale,1));top:calc(15px * var(--reference-side-scale,1));margin:0;left:0;z-index:4}
html.reference-table-skin #table .melds.left .kong-fourth{left:calc(10px * var(--reference-side-scale,1))}
html.reference-table-skin #table .melds.left .meld-source-arrow{transform:translate(-50%,-50%) rotate(calc(var(--source-arrow-angle) + 90deg))}
html.reference-table-skin #table .melds.right .meld-source-arrow{transform:translate(-50%,-50%) rotate(calc(var(--source-arrow-angle) - 90deg))}
html.reference-table-skin #table .rival-hand.reference-revealed{width:calc(45px * var(--reference-reveal-scale,1));height:var(--reference-reveal-span);top:var(--reference-reveal-top)!important;gap:0;justify-content:flex-start}
html.reference-table-skin #table .rival-hand.left.reference-revealed{left:140px}
html.reference-table-skin #table .rival-hand.right.reference-revealed{left:1040px;right:auto;flex-direction:column-reverse}
html.reference-table-skin #table .rival-hand.reference-revealed>.tile{width:calc(45px * var(--reference-reveal-scale,1));height:calc(40.5px * var(--reference-reveal-scale,1));margin-bottom:calc(-12.375px * var(--reference-reveal-scale,1));flex:none}
html.reference-table-skin #table .rival-hand.reference-revealed>.tile:last-child{margin-bottom:0}
html.reference-table-skin #table .rival-hand.right.reference-revealed>.tile{margin-bottom:0;margin-top:calc(-12.375px * var(--reference-reveal-scale,1))}
html.reference-table-skin #table .rival-hand.right.reference-revealed>.tile:last-child{margin-top:0}
html.reference-table-skin #table .rival-hand.reference-revealed>.tile>.reference-tile-art{transform:none!important;left:0!important;top:0!important}
.melds .called-tile::after{content:none}
.meld-source-arrow{position:absolute;left:50%;top:50%;width:48%;max-width:18px;height:auto;aspect-ratio:2/3;z-index:5;pointer-events:none;transform:translate(-50%,-50%) rotate(var(--source-arrow-angle));transform-origin:center;filter:drop-shadow(0 1px 1px #44370c90)}
#table .melds .meld-source-arrow>svg{display:block!important;position:static!important;width:100%!important;height:100%!important;opacity:1!important;visibility:visible!important;transform:none!important;filter:none!important;overflow:visible!important;pointer-events:none!important}
html.reference-table-skin #table .river{display:block;gap:0;z-index:2;transform:none;min-height:0;overflow:visible}
html.reference-table-skin #table .river .tile{position:absolute;margin:0;transform:none}
/* Match shading changes paint only, keeping the positioned tile/SVG out of
   filter compositing and preserving source arrows and last-discard markers. */
html.reference-table-skin #table .tile.selected-public-match{filter:none}
html.reference-table-skin #table .tile.selected-public-match::before{content:"";position:absolute;inset:0;z-index:2;background:rgba(65,65,65,.28);border-radius:3px;pointer-events:none;transform:none}
html.reference-table-skin #table .river.top{left:434.625px;top:168.75px;width:360.75px;height:99.90625px}
html.reference-table-skin #table .river.bottom{left:439.4375px;top:calc(100% - 273.9px);width:356.125px;height:100.775px;min-height:0}
html.reference-table-skin #table .river.left{left:330.025px;top:calc(50% - 169.021875px);width:96.2px;height:289.29375px}
html.reference-table-skin #table .river.right{left:808.15px;top:calc(50% - 168.83125px);width:96.2px;height:290.1625px}

/* Source compass is centered in the changing stage height. */
html.reference-table-skin #table .compass{left:550px;top:calc(50% - 50px);width:100px;height:100px;border:0;border-radius:0;background:transparent;box-shadow:none;z-index:3}
html.reference-table-skin #table .compass span{z-index:1;color:#e2ef87;font:18px/1 "Microsoft YaHei",sans-serif}
html.reference-table-skin #table .compass .north{top:5px;left:41px}
html.reference-table-skin #table .compass .south{bottom:5px;left:41px}
html.reference-table-skin #table .compass .west{top:41px;left:7px}
html.reference-table-skin #table .compass .east{top:41px;right:7px}
html.reference-table-skin #table .compass strong{top:29px;left:31px;width:38px;font:30px/40px Arial,sans-serif;color:#ffdc00;z-index:1}
html.reference-table-skin #table .compass::before{left:-4px;top:-4px;width:108px;height:108px;border-radius:12px;z-index:-1}
html.reference-table-skin #table .remaining-badge{left:668px;top:calc(50% - 18px);padding:4px 12px;border-radius:20px;background:#00513fbf;color:#efffed;font:23px/29px "Microsoft YaHei",sans-serif;gap:2px}
html.reference-table-skin #table .remaining-badge::before{content:"剩："}
html.reference-table-skin #table .remaining-badge i{display:none}
html.reference-table-skin #table .pending .tile{width:64px;height:96px;outline:2px solid #e6ec90;outline-offset:2px}
html.reference-table-skin #table .pending.source-bottom{left:566px;top:calc(100% - 219px)}
html.reference-table-skin #table .pending.source-top{left:566px;top:76px}
html.reference-table-skin #table .pending.source-left{left:250px;top:239px}
html.reference-table-skin #table .pending.source-right{left:886px;top:277px}

/* Fixed concealed slots preserve scale and left anchor across 13/14-card turns.
   Only a real declared meld changes capacity; the draw slot always stays free. */
html.reference-table-skin #player-row{left:8px;right:8px;bottom:2px;height:134px;gap:14px;justify-content:flex-start;overflow:visible}
html.reference-table-skin.portrait-rotated #player-row{bottom:8px}
html.reference-table-skin #player-row>.my-hand{display:grid;grid-template-columns:repeat(var(--reference-hand-capacity,14),var(--reference-hand-width,76px));grid-auto-flow:row;align-items:end;justify-content:start;width:var(--reference-hand-span,1080px);height:134px;gap:0}
html.reference-table-skin #hand-bottom>.tile{width:var(--reference-hand-width,76px);height:calc(var(--reference-hand-width,76px) * 1.5857143);flex:none;touch-action:none}
html.reference-table-skin #hand-bottom>.tile.drawn{margin-left:0}
html.reference-table-skin #hand-bottom[data-reference-drawn-slot=present]>.tile.drawn{grid-column:var(--reference-hand-capacity,14);margin-left:16px}
html.reference-table-skin #hand-bottom>.tile:hover:not(.selected){transform:none}
html.reference-table-skin #hand-bottom>.tile.selected{transform:translateY(-19px);outline:none}
html.reference-table-skin #hand-bottom>.tile.selected::before{transform:translateY(19px)}
html.reference-table-skin #hand-bottom>.tile{filter:none}
html.reference-table-skin #hand-bottom>.tile.illegal::after{content:"";position:absolute;inset:0;z-index:2;border-radius:3px;background:#00190e40;pointer-events:none}
html.reference-table-skin #player-row>.melds.bottom{gap:10px;align-items:flex-end}
html.reference-table-skin #player-row>.melds.bottom .tile{width:67px;height:105.5px}
html.reference-table-skin #player-row>.melds.bottom .kong-fourth{top:-36.5px}
html.reference-table-skin #player-row>.melds.bottom .meld-source-arrow{width:42%;max-width:28px}
html.reference-table-skin #table .actions{left:auto;right:110px;bottom:145px;max-width:940px;gap:10px;align-items:center}
html.reference-table-skin #table .actions button{min-width:124px;min-height:128px;padding:0 4px;border:0;background:transparent;box-shadow:none;border-radius:0;color:#ffe635;font-size:27px;-webkit-text-stroke:0;text-shadow:none}
html.reference-table-skin #table .actions button:hover{background:transparent;transform:none}
html.reference-table-skin #table .actions .action-art-wrap{width:122px;height:128px;flex:none}
/* Call glyphs and captions follow the landscape game board for every seat. */
html.reference-table-skin #table .actions .action-art{width:122px;height:128px}
html.reference-table-skin #table .actions .action-art::before{display:none}
html.reference-table-skin #table .actions .action-caption{bottom:-2px;color:#fff1b2;font-size:14px;line-height:1.2;text-shadow:0 1px 2px #003e2c}
html.reference-table-skin #table .actions .action-art::before{font-size:76px;line-height:128px;color:#ffe635}
html.reference-table-skin #table .actions .choice{min-width:124px;padding:0 4px;background:transparent;border:0;border-radius:0;box-shadow:none}
html.reference-table-skin #table .actions .choice .tile{width:56px;height:88px}
html.reference-table-skin #table .actions .discard-action{min-width:100px;min-height:52px;padding:8px 16px;border-radius:24px;background:#f0bf3c;color:#365124;font:20px/1.3 "Microsoft YaHei",sans-serif}
html.reference-table-skin #table .actions .discard-action:disabled{display:none}
html.reference-table-skin #table .action-banner{font:64px/1.2 KaiTi,serif;color:#f9ed7b;text-shadow:1px 2px 4px #003f2d}
html.reference-table-skin #table .action-banner:is(.effect-chi,.effect-pon,.effect-kong):not(.reference-effect-art){visibility:hidden;animation:none!important}
html.reference-table-skin #table .action-banner.reference-effect-art{left:var(--reference-effect-left,555px);top:var(--reference-effect-top,calc(50% + 59px));width:var(--reference-effect-width,91.765px);height:var(--reference-effect-height,96px);min-width:0;padding:0;border:0;background:transparent;color:transparent;font-size:0;line-height:0;text-shadow:none;-webkit-text-stroke:0;transform:none!important;animation:none!important;pointer-events:none!important;opacity:1}
html.reference-table-skin #table .action-banner.reference-effect-art>.reference-control-art{pointer-events:none!important;filter:none}
html.reference-table-skin #table .pause-panel{background:#004b3fee;border:2px solid #6eb489;color:#e3f7d1;font-size:22px}
html.reference-table-skin #deal-overlay{position:absolute;inset:0;z-index:11;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#00513d80;color:#eff4cc;font-size:24px;pointer-events:none;text-shadow:0 1px 2px #004532}
html.reference-table-skin #deal-overlay .deal-dice{display:flex;gap:14px}
html.reference-table-skin #deal-overlay .deal-dice b{display:grid;place-items:center;width:58px;height:58px;border:2px solid #d3c58a;border-radius:8px;background:#fffbe4;color:#85502c;font:700 36px/1 Arial,sans-serif;text-shadow:none;box-shadow:0 3px 0 #a3a36d}
html.reference-table-skin #deal-overlay small{font-size:17px;font-weight:400}

/* One shared XS canvas is the board for human and solo play. The application
   enables this only after that base has rendered, retaining the DOM fallback. */
html.reference-table-skin.reference-table-base-ready #app-shell{z-index:2;pointer-events:none;background:transparent}
html.reference-table-skin.reference-table-base-ready:not(.portrait-rotated) #app-shell{position:relative}
html.reference-table-skin.reference-table-base-ready #game,
html.reference-table-skin.reference-table-base-ready #game .workspace,
html.reference-table-skin.reference-table-base-ready #table-area,
html.reference-table-skin.reference-table-base-ready #table{background:transparent;pointer-events:none}
html.reference-table-skin.reference-table-base-ready #game{padding:0}
html.reference-table-skin.reference-table-base-ready #table{height:var(--reference-board-height,626px)}
html.reference-table-skin.reference-table-base-ready #table-hud,
html.reference-table-skin.reference-table-base-ready #table .compass,
html.reference-table-skin.reference-table-base-ready #table .remaining-badge,
html.reference-table-skin.reference-table-base-ready #table .table-label,
html.reference-table-skin.reference-table-base-ready #table .table-inlay{display:none!important}
html.reference-table-skin.reference-table-base-ready #table .seat-info{visibility:hidden;pointer-events:none}
html.reference-table-skin.reference-table-base-ready #table .seat-info .flowers{visibility:visible}
html.reference-table-skin.reference-table-base-ready #hand-bottom>[data-card-index][aria-disabled=false],
html.reference-table-skin.reference-table-base-ready #actions button:not(:disabled),
html.reference-table-skin.reference-table-base-ready dialog[open]{pointer-events:auto}
html.reference-table-skin.reference-table-base-ready #hand-bottom>[aria-disabled=true],
html.reference-table-skin.reference-table-base-ready #hand-bottom>[aria-disabled=true]::before,
html.reference-table-skin.reference-table-base-ready #table.submitting #hand-bottom>.tile,
html.reference-table-skin.reference-table-base-ready #table.submitting #hand-bottom>.tile::before,
html.reference-table-skin.reference-table-base-ready body.dialog-open #hand-bottom>.tile,
html.reference-table-skin.reference-table-base-ready body.dialog-open #hand-bottom>.tile::before,
html.reference-table-skin.reference-table-base-ready body.dialog-open #actions button{pointer-events:none}

/* Waiting-room commands stay clickable; no large unrelated central card. */
html.reference-table-skin #table #lobby{background:transparent;pointer-events:none}
html.reference-table-skin #lobby .overlay-box{position:absolute;inset:0;width:auto;max-width:none;max-height:none;overflow:visible;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;pointer-events:none;text-align:center}
html.reference-table-skin #lobby .overlay-box>.eyebrow,
html.reference-table-skin #lobby-note,
html.reference-table-skin #invite-address{display:none}
html.reference-table-skin #lobby-title{position:absolute;left:365px;right:365px;top:166px;margin:0;font-size:24px;color:#ddf9da;font-weight:400}
html.reference-table-skin #lobby .overlay-box>p:not(#lobby-hint):not(#lobby-note){position:absolute;left:390px;right:390px;top:198px;margin:0;font-size:17px;color:#ddf9da}
html.reference-table-skin #lobby-hint{position:absolute;left:280px;right:280px;top:229px;margin:0;font-size:15px;color:#d5edd2}
html.reference-table-skin #lobby-seats{position:absolute;inset:0;margin:0;display:block;pointer-events:none}
html.reference-table-skin #lobby-seats .lobby-seat{position:absolute;width:90px;height:104px;min-width:90px;min-height:90px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;pointer-events:auto}
html.reference-table-skin #lobby-seats .seat-top{left:195px;top:70px}
html.reference-table-skin #lobby-seats .seat-left{left:8px;top:174px}
html.reference-table-skin #lobby-seats .seat-right{right:9px;top:182px}
html.reference-table-skin #lobby-seats .seat-bottom{left:8px;bottom:148px}
html.reference-table-skin #lobby-seats .vacant.reference-control-ready>.seat-avatar,
html.reference-table-skin #lobby-seats .vacant.reference-control-ready>strong,
html.reference-table-skin #lobby-seats .vacant.reference-control-ready>small{display:none}
html.reference-table-skin #lobby-seats .lobby-seat .seat-avatar{width:54px;height:54px;margin:auto;border-radius:4px}
html.reference-table-skin #lobby-seats .lobby-seat strong{font-size:15px;color:#e5f9dc}
html.reference-table-skin #lobby-seats .lobby-seat small{font-size:12px;color:#a7ddb8}
html.reference-table-skin #copy-link,
html.reference-table-skin #start{position:absolute;top:408px;min-width:130px;min-height:48px;padding:9px 16px;font-size:17px;border-radius:25px;pointer-events:auto}
html.reference-table-skin #copy-link{left:439px;background:#df5f35;border:2px solid #9c432b;color:#fff9cb}
html.reference-table-skin #start{left:616px;background:#49b443;border:2px solid #257b3a;color:#fff9cb}
html.reference-table-skin #start:disabled{opacity:.58}
@media(prefers-reduced-motion:reduce){html.reference-table-skin #game .tile,html.reference-table-skin #game .action-banner{transition:none!important;animation:none!important}}
