/* Shared theme overrides legacy responsive rules; repeated scope gives this layer priority. Card and move elements remain the live game. */
.wt-salon{--wt-felt:#a297b3;--wt-back:#7c354a;--wt-mat:#cda8a6;--wt-gold:#d7c59a;--wt-ink:#4c3b32;--wt-scene:url('/game-art/table-v1/garden.webp')}
.wt-salon[data-wt-scene=sea]{--wt-scene:url('/game-art/table-v1/sea.webp')}
.wt-salon[data-wt-scene=quiet]{--wt-scene:radial-gradient(ellipse at 50% 15%,#e0c9b1,#806655 65%,#41352f)}
#points-page .wt-salon.wt-salon :is(button,summary):focus-visible,.wt-dressing button:focus-visible{outline:3px solid #168278;outline-offset:3px}
#points-page .wt-salon.wt-salon>.game-section-heading{background:linear-gradient(#fffaea,#f1e5cd);color:var(--wt-ink);border-bottom:1px solid #c8ae82;padding-left:10px;padding-right:10px;gap:7px;min-height:48px}
#points-page .wt-salon.wt-salon>.game-section-heading h2{color:#4c3b32;font-size:14px;letter-spacing:0;flex:1;text-align:center}
#points-page .wt-salon.wt-salon>.game-section-heading button{background:#fff9ec;color:#5c4736;border:1px solid #cbb58b;box-shadow:0 2px 3px #74523b18;min-height:34px;padding:6px 9px;font-size:11px;border-radius:9px;white-space:nowrap}
#points-page .wt-salon.wt-salon>.game-section-heading [data-game-support]{display:none}
#points-page .wt-salon.wt-salon>.game-section-heading [data-card-mode-back]{font-size:0}
#points-page .wt-salon.wt-salon>.game-section-heading [data-card-mode-back]:before{content:'‹ 返回';font-size:12px}
#points-page .wt-salon.wt-salon .wt-dress-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:none}
.wt-dress-button svg{width:17px;height:17px;display:block}
#points-page .wt-salon.wt-salon.sc-table-page,#points-page .wt-salon.wt-salon.nn-game-view,#points-page .wt-salon.wt-salon.mj-table-mode{background:var(--wt-scene) center top/cover no-repeat #765c4e}
#points-page .wt-salon.wt-salon .sc-game{background:transparent}
#points-page .wt-salon.wt-salon .sc-game:before,#points-page .wt-salon.wt-salon .sc-game:after{display:none}
#points-page .wt-salon.wt-salon.sc-table-page .sc-game>.sc-topbar{background:linear-gradient(#fff9e9f7,#f1e5cfe8);color:#4b3c32;padding:6px 10px 8px;border-bottom:1px solid #cbb48777;gap:3px 8px}
#points-page .wt-salon.wt-salon .sc-topbar strong,#points-page .wt-salon.wt-salon .sc-topbar strong small,#points-page .wt-salon.wt-salon .sc-topbar .sc-table-info{color:#65503f}
#points-page .wt-salon.wt-salon .sc-table-tools button{color:#604a37;background:#fff7e7;border:1px solid #cdb88f;box-shadow:0 2px 3px #71462722;min-height:34px;border-radius:9px}
#points-page .wt-salon.wt-salon .sc-table-tools .sc-autoplay{color:#5c4935;background:linear-gradient(#fff6dc,#dfc793);border-color:#c3a16d;box-shadow:0 2px 0 #967b51;min-height:34px}
#points-page .wt-salon.wt-salon .sc-game>.sc-felt{margin:0 7px;overflow:visible;isolation:isolate}
#points-page .wt-salon.wt-salon .sc-felt:before{display:block;content:'';position:absolute;z-index:-1;inset:66px 10px 0;border:7px solid #ccbd99;border-top-color:#eee0b5;border-bottom-color:#b79b72;border-radius:42px 42px 15px 15px;background:linear-gradient(#ffffff0a,#41304b0a),var(--wt-felt);box-shadow:0 0 0 2px #5c4e3b,inset 0 0 0 2px #f7e8bf80,inset 0 3px 16px #49374c25,0 9px 18px #281b2a44}
#points-page .wt-salon.wt-salon .sc-felt:after{display:none}
#points-page .wt-salon.wt-salon .sc-felt-pattern{inset:20% 0 0;color:#fff5ed;opacity:.08;font:500 34px Georgia,serif;letter-spacing:.3em}
#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-seat{top:29%;width:106px;max-width:28%;left:0;display:grid;grid-template-columns:1fr;gap:2px;padding:6px 5px;text-align:center;justify-items:center;border:1px solid #e4cf9b;border-radius:17px;background:linear-gradient(#4f4038f0,#352c2bec);box-shadow:0 3px 7px #33263866}
#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-seat .sc-avatar{display:none}
#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-identity{grid-column:1;grid-row:1}
#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-identity strong{font-size:12px;color:#fff5df;font-weight:500}
#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-identity small{font-size:9px;color:#ead6ac;margin-top:2px}
#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-seat-count{grid-column:1;grid-row:2;color:#fff0c2;font-size:12px}
#points-page .wt-salon.wt-salon .sc-game .sc-seat-play{font-size:10px;color:#f2e6d0;margin:2px 0 0;padding-top:3px}
#points-page .wt-salon.wt-salon .sc-game.sc-doudizhu .sc-seat-2,#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-seat-3,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-3{left:auto;right:0}
#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-seat-2,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-2{top:19%;left:50%;right:auto;transform:translateX(-50%)}
#points-page .wt-salon.wt-salon .sc-game .sc-active{border-color:#fff0a9;box-shadow:0 0 0 2px #e8c05c80,0 3px 7px #33263866}
.wt-salon [data-wt-figure]{isolation:isolate}
.wt-salon .nn-dealer{position:relative}
#points-page .wt-salon.wt-salon .wt-figure{position:absolute;z-index:-1;bottom:calc(100% - 5px);left:50%;transform:translateX(-50%);width:clamp(90px,10vw,148px);height:clamp(160px,20vw,260px);min-height:0;margin:0;padding:0;border:0;border-radius:0;background-color:transparent;background-repeat:no-repeat;background-size:300% 100%;box-shadow:none;cursor:pointer;touch-action:manipulation}
#points-page .wt-salon.wt-salon .sc-game .sc-center{top:64%;width:61%;max-height:57%;overflow:auto;color:#fff9eb;gap:8px}
#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-center,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-center{top:70%;width:68%;max-height:44%}
#points-page .wt-salon.wt-salon .sc-game .sc-phase{color:#fff9e9;background:#51405788;border-color:#e4d0b77a}
#points-page .wt-salon.wt-salon .sc-game .sc-center-hint,#points-page .wt-salon.wt-salon .sc-game .sc-kitty small,#points-page .wt-salon.wt-salon .sc-game .sc-last-play>small{color:#fff9ed;text-shadow:0 1px 3px #46324980}
#points-page .wt-salon.wt-salon .sc-game .sc-self{left:5px;transform:none;bottom:7px;min-width:0;padding:4px 8px;border-color:#dec8a2;background:#514137e8}
#points-page .wt-salon.wt-salon .sc-game .sc-self .sc-seat{grid-template-columns:24px auto auto}
#points-page .wt-salon.wt-salon .sc-game .sc-self .sc-avatar{width:24px;height:24px}
#points-page .wt-salon.wt-salon .sc-game .sc-self .sc-seat-count,#points-page .wt-salon.wt-salon .sc-game .sc-self .sc-identity strong{font-size:10px}
#points-page .wt-salon.wt-salon.sc-table-page .sc-game>.sc-hand-panel{position:relative;padding:10px 8px max(10px,env(safe-area-inset-bottom));background:linear-gradient(#ffffff12,#31262c0a),var(--wt-mat);color:#4c3b32;border-top:5px solid #c2a87d;box-shadow:0 -2px 0 #f0d9aa;max-height:48dvh;display:flex;flex-direction:column;gap:7px;overflow:auto}
#points-page .wt-salon.wt-salon .sc-game .sc-hand-heading{color:#4b3830;font-size:11px;order:1;margin:0;width:100%}
#points-page .wt-salon.wt-salon .sc-game .sc-hand-heading>small{color:#71554b}
#points-page .wt-salon.wt-salon .sc-game .sc-your-turn{color:#294e45}
#points-page .wt-salon.wt-salon .sc-game .sc-my-hand{order:2;margin:4px auto 3px;flex-shrink:0}
#points-page .wt-salon.wt-salon .sc-game .sc-actions{order:0;display:flex;gap:6px;width:100%;margin:0 auto 2px;flex-shrink:0}
#points-page .wt-salon.wt-salon .sc-game .sc-actions>button{flex:1;min-height:43px;font-size:14px;border-radius:9px;border:1px solid #bca27c;color:#5a4432;background:linear-gradient(#fff9e8,#e9d4b1);box-shadow:0 3px 0 #977851}
#points-page .wt-salon.wt-salon .sc-game .sc-actions>.sc-primary,#points-page .wt-salon.wt-salon .sc-game .sc-primary{color:#fff7dd!important;background:linear-gradient(#4e8d77,#286452)!important;border:1px solid #d6c08b!important;box-shadow:0 3px 0 #294f3f}
#points-page .wt-salon.wt-salon .sc-game .sc-actions>button:disabled{opacity:.48;box-shadow:none}
#points-page .wt-salon.wt-salon .sc-game .sc-raise{order:3;margin-top:0;color:#503e32;flex-shrink:0}
#points-page .wt-salon.wt-salon .sc-game .sc-raise label,#points-page .wt-salon.wt-salon .sc-game .sc-raise-help{color:#594635}
#points-page .wt-salon.wt-salon .sc-game .sc-pot-presets button{background:#f7e9d3;color:#60452d;border-color:#b99a6d}
#points-page .wt-salon.wt-salon .sc-game .sc-result{order:3;color:#4f4032}
#points-page .wt-salon.wt-salon .sc-game .sc-status{order:4}
#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card{background:#fffefa;color:#1f2529;border-color:#d7d3ce;height:62px;border-radius:5px;box-shadow:0 2px 3px #543d3a4a;padding:4px}
#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card.sc-red{color:#bf1935}
#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card b{font:700 24px/1 Georgia,serif}
#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card i{font-size:19px}
#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card em{font-size:16px;opacity:1}
#points-page .wt-salon.wt-salon .sc-game .sc-card[aria-pressed=true]{transform:translateY(-7px);background:#fff1cf;border-color:#b37a26;box-shadow:0 0 0 2px #ba883e}
#points-page .wt-salon.wt-salon :is(.sc-back,.cr-back,.nn-card-back){background:repeating-linear-gradient(45deg,#ffffff0a 0 2px,transparent 2px 5px),var(--wt-back);color:#f0d3a3;border-color:#f3dbb8}
#points-page .wt-salon.wt-salon :is(.nn-game,.nn-multi-game,.mj-room){background:transparent;color:#fff7e6}
#points-page .wt-salon.wt-salon :is(.nn-table,.nn-multi-table){position:relative;background:var(--wt-felt);border:8px solid #d9c59e;border-top-color:#eddeb6;border-bottom-color:#ac8c62;border-radius:34px 34px 15px 15px;box-shadow:0 0 0 2px #725841,inset 0 0 0 2px #f2deb65e,0 8px 18px #37232555;margin-top:100px;overflow:visible}
#points-page .wt-salon.wt-salon .nn-table:before,#points-page .wt-salon.wt-salon .nn-table:after{display:none}
#points-page .wt-salon.wt-salon .nn-dealer>.wt-figure{height:160px;width:100px;bottom:calc(100% - 22px)}
#points-page .wt-salon.wt-salon .nn-multi-seat>.wt-figure{height:130px;width:85px;bottom:calc(100% - 5px)}
#points-page .wt-salon.wt-salon .nn-heading{background:#fff5e3e8;color:#5a4435;padding:8px;border-radius:8px}
#points-page .wt-salon.wt-salon .nn-heading p,#points-page .wt-salon.wt-salon .nn-heading span{color:#705544}
#points-page .wt-salon.wt-salon .nn-seat-label,#points-page .wt-salon.wt-salon .nn-multi-seat>strong{background:#4c3b34e8;color:#fff3db;border:1px solid #d7c399;border-radius:15px;padding:5px 10px;font-size:12px;display:inline-block}
#points-page .wt-salon.wt-salon .nn-controls{padding:12px 9px;background:var(--wt-mat);border-top:3px solid #d0b28a;border-radius:0 0 12px 12px}
#points-page .wt-salon.wt-salon .nn-controls button{background:linear-gradient(#fff5df,#dcc39b);color:#5b4535;border:1px solid #b7996c;border-radius:10px;min-height:44px;box-shadow:0 2px 0 #846749}
#points-page .wt-salon.wt-salon .nn-controls button.primary{background:linear-gradient(#4e8d77,#286452);color:#fff6df;border-color:#c9b987}
#points-page .wt-salon.wt-salon .nn-table-center{color:#fff7e8;text-shadow:0 1px 2px #40334566}
#points-page .wt-salon.wt-salon .mj-room:not([data-phase=finished]) .mj-table-scene{overflow:visible;margin-top:65px;min-height:0;height:auto}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-scene:not(.mj-table-revealed){background:var(--wt-felt);border-color:#d8c8a2;border-top-color:#f0e0b5;border-bottom-color:#b29169;box-shadow:inset 0 0 0 2px #f9e7c085,0 4px 0 #715641,0 7px 15px #47324466}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-felt-line{border-color:#eee0d355;box-shadow:none}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat{background:#4a3935da;border:1px solid #d7bf92;color:#fff6e4;text-shadow:none;border-radius:12px}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat[data-wt-figure]>.mj-player-avatar{width:22px;height:22px;position:relative;z-index:1}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat[data-wt-figure]>.wt-figure{width:85px;height:135px;bottom:calc(100% - 7px)}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat-2[data-wt-figure]>.wt-figure{width:70px;height:105px;bottom:calc(100% - 5px)}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat-2{overflow:visible}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-center{background:#52645a;color:#f8e8be;border-color:#e3cda1}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-room-header{padding:5px 7px;background:#fff4e3ee;border-radius:8px;color:#5c483a}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-room-header p{color:#624e42}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-hand-panel{background:var(--wt-mat);border-top:3px solid #c9af86;border-radius:10px;padding-top:6px;padding-bottom:10px;color:#4c3b32}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-hand-panel .hint,#points-page .wt-salon.wt-salon.mj-table-mode .mj-hand-panel small{color:#6d5245}
#points-page .wt-salon.wt-salon.mj-table-mode .mj-turn-status{color:#fff5df;text-shadow:0 1px 4px #362527}
#points-page .wt-salon.wt-salon .cr-mode-tabs{background:#f2e5cd}
#points-page .wt-salon.wt-salon .cr-mode-tabs button{color:#6b513b;background:#fffaec;border-color:#cdb58d}
#points-page .wt-salon.wt-salon .cr-mode-tabs [aria-pressed=true]{background:#467461;color:#fff4d5}
#points-page .wt-salon.wt-salon .cr-room{background:var(--wt-scene) center top/cover;color:#fff7e7;max-width:1200px;border-radius:16px;border:1px solid #c4a379}
#points-page .wt-salon.wt-salon .cr-heading{background:#fff4e6e8;color:#594739;padding:10px;border-radius:10px}
#points-page .wt-salon.wt-salon .cr-heading :is(p,.cr-eyebrow){color:#6d5849}
#points-page .wt-salon.wt-salon .cr-seats{padding-top:130px;gap:10px}
#points-page .wt-salon.wt-salon .cr-seat{position:relative;background:#4d3d37ed;border-color:#d7bd90;color:#fff5df;isolation:isolate}
#points-page .wt-salon.wt-salon .cr-seat small{color:#e8d6b8}
#points-page .wt-salon.wt-salon .cr-seat>.wt-figure{width:85px;height:145px}
#points-page .wt-salon.wt-salon .cr-felt{background:var(--wt-felt);border:7px solid #d6c39a;border-radius:25px;box-shadow:inset 0 0 0 2px #f7e6b780,0 4px 0 #7c6548;color:#fff7e8;min-height:190px}
#points-page .wt-salon.wt-salon .cr-hand{background:var(--wt-mat);padding:12px 10px;color:#5a4037;margin:12px -5px 0;border-radius:10px 10px 0 0}
#points-page .wt-salon.wt-salon .cr-hand>strong,#points-page .wt-salon.wt-salon .cr-hand p{color:#594435}
#points-page .wt-salon.wt-salon .cr-actions{background:var(--wt-mat);padding:8px 10px 12px;margin:0 -5px;border-radius:0 0 10px 10px}
#points-page .wt-salon.wt-salon .cr-room button{background:linear-gradient(#fff6e1,#e2cba8);color:#604833;border-color:#c5aa7c}
#points-page .wt-salon.wt-salon .cr-room button.cr-primary{background:linear-gradient(#4e8d77,#286452);color:#fff3d7}
#points-page .wt-salon.wt-salon .cr-own-cards{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:5px 2px;overflow:visible}
#points-page .wt-salon.wt-salon .cr-own-cards .cr-card{width:100%;min-width:0;padding:3px;height:60px;min-height:60px;font-family:Georgia,serif;font-size:19px}
#points-page .wt-salon.wt-salon .cr-room[data-wt-game=holdem] .cr-own-cards{display:flex;justify-content:center}
#points-page .wt-salon.wt-salon .cr-room[data-wt-game=holdem] .cr-own-cards .cr-card{width:58px}
.wt-dressing{width:min(580px,calc(100vw - 20px));max-height:min(88dvh,850px);padding:0;border:1px solid #cbb994;border-radius:22px;background:#fff9ed;color:#4a3b32;box-shadow:0 20px 80px #21152c66;overflow:auto;overscroll-behavior:contain}
.wt-dressing::backdrop{background:#281e29a6;backdrop-filter:blur(4px)}
.wt-dressing header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:20px 22px 14px}
.wt-dressing header small{font-size:9px;letter-spacing:3px;color:#a3835a}.wt-dressing h2{font-size:24px;font-weight:500;margin:5px 0;font-family:Georgia,'Songti SC',serif}
.wt-dressing button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit}
.wt-dressing header>button{width:36px;height:36px;background:#efe5d5;border:0;border-radius:50%;font-size:24px}
.wt-dressing nav{display:flex;gap:3px;padding:0 12px 10px;border-bottom:1px solid #e3d4bd;overflow:auto}
.wt-dressing nav button{border:0;background:transparent;color:#8b735d;min-width:48px;padding:9px 10px;font-size:13px;border-radius:8px}
.wt-dressing nav button[aria-pressed=true]{background:#426e5d;color:#fff7e7}
.wt-dress-content{padding:16px 20px;min-height:260px}.wt-dress-content h3{font-size:13px;font-weight:500;margin:5px 0 12px}.wt-dress-content h3:not(:first-child){margin-top:22px}
.wt-seat-picker{display:flex;gap:7px;margin-bottom:14px}.wt-seat-picker button{flex:1;min-height:36px;background:#eee4d5;border:1px solid transparent;border-radius:8px;font-size:12px}.wt-seat-picker button[aria-pressed=true]{background:#f3e5c2;border-color:#b89961}
.wt-description{font-size:12px;color:#927b67;line-height:1.7;margin:10px 0 15px}
.wt-person-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.wt-person-choice{padding:0 0 9px;background:#e7dbcb;border:1px solid #d4c0a3;border-radius:12px;overflow:hidden;min-width:0}
.wt-person-choice>span{display:block;height:185px;background-size:300% 100%;background-repeat:no-repeat}
.wt-person-choice strong{display:block;font-size:12px;font-weight:500;padding-top:7px}
.wt-dressing [aria-pressed=true].wt-person-choice,.wt-dressing [aria-pressed=true].wt-choice,.wt-dressing [aria-pressed=true].wt-scene-choice{border-color:#426e5d;box-shadow:0 0 0 2px #426e5d}
.wt-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wt-choice{background:#fffdf5;border:1px solid #ddccb1;border-radius:10px;padding:10px;font-size:12px}
.wt-choice i{display:block;height:47px;margin-bottom:8px;border-radius:6px;box-shadow:inset 0 1px 3px #0002}
.wt-scene-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.wt-scene-choice{background:#fff9ed;border:1px solid #dac7a8;border-radius:10px;padding:0 0 10px;overflow:hidden}
.wt-scene-thumb{display:block;height:155px;background-size:cover;background-position:center top}.wt-scene-garden{background-image:url('/game-art/table-v1/garden.webp')}.wt-scene-sea{background-image:url('/game-art/table-v1/sea.webp')}.wt-scene-quiet{background-image:radial-gradient(ellipse at 50% 15%,#e0c9b1,#806655 65%,#41352f)}
.wt-scene-choice strong{display:block;font-size:12px;margin-top:9px;font-weight:500}
.wt-presets{display:grid;gap:12px}.wt-presets button{display:flex;flex-direction:column;gap:8px;text-align:left;padding:18px;border:1px solid #d9c3a0;border-radius:12px;background:linear-gradient(125deg,#faf2df,#ead6b7)}.wt-presets strong{font-family:'Songti SC',serif;font-size:19px;font-weight:500}.wt-presets span{font-size:12px;color:#927052}
.wt-dressing footer{position:sticky;bottom:0;display:flex;gap:10px;padding:14px 20px;background:#fff9edf5;border-top:1px solid #e1d0b7}
.wt-dressing footer button{min-height:42px;border:1px solid #cbb48b;border-radius:10px;padding:9px 18px;background:#f5e9d6;font-size:13px}.wt-dressing footer .wt-apply{flex:1;background:#3f725d;color:#fff6e2;border-color:#426d55}
.gd-setup .sc-setup-symbol{color:#ac3a50}.gd-join{width:min(350px,100%);margin:20px auto;display:grid;gap:12px}.gd-join label{display:grid;gap:8px;text-align:left;font-size:13px}.gd-join input{padding:12px;border:1px solid #cdbb9a;border-radius:9px;background:#fffaf0;font:inherit}.gd-join button{min-height:44px}
.gd-waiting{max-width:650px;margin:20px auto;padding:25px;color:#5b4536;background:#fff6e8;border:1px solid #d6bf9d;border-radius:20px}.gd-waiting>p{font-size:13px;line-height:1.8}.gd-room-tools{display:flex;gap:8px;flex-wrap:wrap}.gd-room-tools button{padding:10px 15px;border:1px solid #cbb38e;border-radius:9px;background:#eddfc6;color:#5b4536}.gd-room-tools .sc-primary{background:#436e5c;color:#fff7df}.gd-wait-seats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0}.gd-wait-seats article{padding:18px 10px;background:#e5ece0;border:1px solid #bac9b7;border-radius:12px;display:grid;gap:8px}.gd-wait-seats article:nth-child(even){background:#f0dfdf;border-color:#d7b9b4}.gd-wait-seats span,.gd-wait-seats small{font-size:11px}.gd-cue{margin:auto;text-align:center;font-size:12px;color:#473b31}
#points-page .wt-salon.wt-salon .sc-guandan .gd-hand{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));max-width:760px;width:100%;gap:8px 3px}
#points-page .wt-salon.wt-salon .sc-guandan .gd-hand .sc-card{width:100%;min-width:0;max-width:none;height:60px;position:relative}
#points-page .wt-salon.wt-salon .sc-guandan .gd-hand .gd-joker b{font-size:14px;letter-spacing:-1px}
#points-page .wt-salon.wt-salon :is(.gd-wild,.gd-level){position:absolute;right:1px;bottom:1px;padding:1px 3px;border-radius:3px;color:#fff9e6;background:#397059;font:10px/1.2 sans-serif}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:43%;width:95px;padding:4px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:118px;left:50%;right:auto;transform:translateX(-50%)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{height:110px;width:80px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-1 .wt-figure,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-3 .wt-figure{height:145px;width:92px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-identity small{margin:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-play{min-height:0;padding:0;margin:0}
#points-page .wt-salon.wt-salon .sc-guandan .sc-center{top:76%;max-height:33%;width:65%;gap:5px}
#points-page .wt-salon.wt-salon .sc-guandan .sc-hand-panel{max-height:47dvh}
#points-page .wt-salon.wt-salon .sc-guandan .sc-result>button{min-height:40px;margin:5px;padding:8px 18px;border-radius:9px;border:1px solid #baa077}
#points-page .wt-salon.wt-salon .sc-guandan .sc-hand-panel .sc-result{order:0}
#points-page .wt-salon.wt-salon .sc-guandan .sc-opponents .sc-seat:not([data-wt-figure]) .sc-avatar{display:block;width:28px;height:28px}
@media(max-height:740px) and (orientation:portrait){#points-page .wt-salon.wt-salon .sc-guandan .gd-hand .sc-card{height:52px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:82px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{height:92px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-1 .wt-figure,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-3 .wt-figure{height:115px}}
@media(min-width:900px) and (min-height:600px){#points-page .wt-salon.wt-salon .sc-guandan .gd-hand{grid-template-columns:repeat(14,minmax(0,1fr));max-width:900px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:125px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{height:140px;width:100px}}
@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon .sc-guandan .sc-hand-panel{max-height:none}#points-page .wt-salon.wt-salon .sc-guandan .gd-hand .sc-card{height:48px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:65px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .wt-figure{height:80px;width:55px}}
@media(min-width:900px){#points-page .wt-salon.wt-salon .sc-game>.sc-felt{margin:0 12%}#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-seat{top:31%;width:150px}#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-seat-2,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-2{top:20%}#points-page .wt-salon.wt-salon .sc-felt:before{inset:80px 20px 0;border-radius:60px 60px 20px 20px}#points-page .wt-salon.wt-salon .sc-game .sc-actions{max-width:630px}#points-page .wt-salon.wt-salon .sc-game .sc-hand-heading{max-width:1050px;margin:auto}}
@media(max-width:600px){#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-seat{max-width:29%;width:102px;top:31%}#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-seat-2,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-seat-2{top:19%}#points-page .wt-salon.wt-salon .sc-game .sc-seat-2 .wt-figure{width:85px;height:145px}#points-page .wt-salon.wt-salon .sc-game .sc-center{top:66%}#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-center,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-center{top:73%}#points-page .wt-salon.wt-salon .sc-game .sc-my-hand.sc-ddz-hand{gap:7px 2px;width:100%}#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card{height:58px}#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card b{font-size:22px}#points-page .wt-salon.wt-salon .cr-seats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:20px;padding-top:105px}#points-page .wt-salon.wt-salon .cr-seat>.wt-figure{width:65px;height:110px}#points-page .wt-salon.wt-salon .cr-seat:nth-child(n+3)>.wt-figure{display:none}.wt-person-choice>span{height:160px}.wt-scene-thumb{height:135px}.wt-dress-content{padding:15px}.wt-dressing header{padding:17px}.wt-dressing footer{padding:13px 15px}}
@media(max-height:650px) and (orientation:portrait){#points-page .wt-salon.wt-salon .wt-figure{height:120px;width:76px}#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card{height:46px}#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card b{font-size:19px}#points-page .wt-salon.wt-salon .sc-game .sc-actions>button{min-height:37px;font-size:12px}#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-seat{top:30%}#points-page .wt-salon.wt-salon .sc-felt:before{top:42px}}
@media(orientation:landscape) and (max-height:599px){#points-page .wt-salon.wt-salon .sc-game{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}#points-page .wt-salon.wt-salon .sc-game>.sc-felt{margin:0 6px}#points-page .wt-salon.wt-salon .sc-felt:before{inset:35px 5px 5px}#points-page .wt-salon.wt-salon .wt-figure{width:60px;height:105px}#points-page .wt-salon.wt-salon .sc-game .sc-seat-2 .wt-figure{width:52px;height:90px}#points-page .wt-salon.wt-salon .sc-game .sc-opponents .sc-seat{top:30%;width:90px}#points-page .wt-salon.wt-salon.sc-table-page .sc-game>.sc-hand-panel{max-height:none;border-top:0;border-left:4px solid #c5a674}#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card{height:43px}#points-page .wt-salon.wt-salon .sc-game .sc-ddz-hand .sc-card b{font-size:19px}#points-page .wt-salon.wt-salon .sc-game .sc-actions>button{min-height:36px;font-size:12px}#points-page .wt-salon.wt-salon .sc-game .sc-center{top:68%}#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-center{top:75%}#points-page .wt-salon.wt-salon .mj-room:not([data-phase=finished]) .mj-table-scene{margin-top:15px;min-height:130px}#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat[data-wt-figure]>.wt-figure{width:47px;height:80px}#points-page .wt-salon.wt-salon :is(.nn-table,.nn-multi-table){margin-top:42px}#points-page .wt-salon.wt-salon .nn-dealer>.wt-figure{height:85px;width:52px}.wt-person-choice>span{height:125px}}

#points-page .wt-salon.wt-salon .sc-game .sc-announcement{color:#5d4538;text-shadow:none;font-size:11px;background:none}
#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .sc-seat{top:43%}
#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .sc-seat-2{top:118px}
#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .wt-figure{height:145px;width:92px}
#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .sc-seat-2 .wt-figure{height:110px;width:80px}
@media(min-width:900px) and (min-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .sc-seat-2{top:145px}#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .wt-figure{height:175px;width:110px}}
@media(max-height:740px){#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .wt-figure{height:105px;width:68px}#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .sc-seat-2{top:87px}#points-page .wt-salon.wt-salon .sc-game.sc-holdem .sc-opponents .sc-seat-2 .wt-figure{height:85px;width:60px}}

#points-page .wt-salon.wt-salon .nn-back-art [fill="#24486c"]{fill:var(--wt-back)}
#points-page .wt-salon.wt-salon :is(.mj-tile-back,.mj-deal-back){background:repeating-linear-gradient(45deg,#ffffff15 0 1px,transparent 1px 3px),var(--wt-back);box-shadow:inset 0 0 0 1px #f7dfae40;border-color:#f5dfb2}
#points-page .wt-salon.wt-salon .nn-heading strong{color:#365a45}
#points-page .wt-salon.wt-salon .nn-controls label{color:#5a4435}

#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat .sc-avatar{display:block;position:absolute;top:-9px;right:5px;width:22px;height:22px;border:1px solid #dec69a;border-radius:50%}

#points-page .wt-salon.wt-salon .sc-game .sc-result>span{color:#554033}
#points-page .wt-salon.wt-salon .sc-game .sc-result>strong{color:#913f48}
#points-page .wt-salon.wt-salon .sc-game .sc-result p{color:#5f4d3c}
#points-page .wt-salon.wt-salon .sc-game .sc-result>button:not(.sc-primary){color:#4e4034;background:#f3e3c7}
@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{height:75px;width:50px}}

@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat[data-wt-figure]>.wt-figure{height:65px;width:44px}#points-page .wt-salon.wt-salon.mj-table-mode .mj-table-seat-2[data-wt-figure]>.wt-figure{height:52px;width:36px}}

#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand .gd-joker b{font:700 14px/1.1 Georgia,serif;letter-spacing:-1px}
/* Independent portrait avatars and Guandan hand arrangement. */
#points-page .wt-salon.wt-salon .sc-guandan .gd-sort{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:6px 10px;border:1px solid #b89970;border-radius:9px;background:#fff2d9;color:#483b2b;box-shadow:0 2px 4px #452b1820;font-size:12px;white-space:nowrap;flex:none}
#points-page .wt-salon.wt-salon .sc-guandan .gd-sort small{font-size:10px;color:#826747}
#points-page .wt-salon.wt-salon .sc-guandan .sc-hand-heading{align-items:center;gap:8px}
.wt-avatar-sprite{background-image:url('/game-art/table-v1/avatars-v1.webp');background-size:400% 300%;background-repeat:no-repeat;background-color:#d8c9b6;border-radius:50%;display:block;flex:none}
.wt-avatar-current{display:flex;align-items:center;gap:16px;background:#efe5d6;border:1px solid #dac8aa;border-radius:14px;padding:14px;margin-bottom:16px}
.wt-avatar-current>.wt-avatar-sprite,.wt-avatar-default{width:72px;height:72px;border:2px solid #fff8e9;box-shadow:0 2px 8px #765b3529}
.wt-avatar-default{display:grid;place-items:center;border-radius:50%;background:#e0d1ba;color:#8a7151;font-size:23px}
.wt-avatar-current>div{display:flex;flex-direction:column;gap:5px}.wt-avatar-current strong{font-family:Georgia,'Songti SC',serif;font-size:24px;font-weight:500}.wt-avatar-current small,.wt-avatar-current>div>span{font-size:11px;color:#8e755b}
.wt-avatar-filters{display:flex;align-items:center;gap:6px;margin-bottom:14px}.wt-avatar-filters button{border:0;border-radius:8px;padding:8px 12px;background:transparent;font-size:12px}.wt-avatar-filters [aria-pressed=true]{background:#dde7da;color:#315b49}.wt-avatar-filters small{margin-left:auto;color:#947e65;font-size:11px}
.wt-avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 9px}.wt-avatar-choice{position:relative;border:1px solid transparent;border-radius:12px;background:transparent;padding:6px 3px;min-width:0}.wt-avatar-choice>.wt-avatar-sprite{width:min(100%,88px);aspect-ratio:1;margin:auto;border:2px solid #e4d5bb}.wt-avatar-choice strong{display:block;font-size:12px;font-weight:500;margin-top:8px}.wt-avatar-choice[aria-pressed=true]{background:#e9ecdf;border-color:#6d8e6d}.wt-avatar-choice[aria-pressed=true]:after{content:'✓';position:absolute;top:3px;right:3px;background:#426e5d;color:#fff;border:2px solid #fff8e9;border-radius:50%;width:20px;height:20px;line-height:20px;font-size:12px}
.wt-avatar-original{width:100%;min-height:38px;border:1px solid #d1bd9c;background:#f6eddc;border-radius:9px;margin-top:18px;font-size:12px}
#points-page .wt-salon.wt-salon .wt-avatar-replaced{display:none!important}
#points-page .wt-salon.wt-salon .wt-seat-avatar{position:absolute;z-index:3;top:-19px;right:3px;width:34px;height:34px;min-height:0;margin:0;padding:0;border:2px solid #e2cc9d;border-radius:50%;box-shadow:0 2px 5px #1e17293d;background-size:400% 300%;cursor:pointer}
#points-page .wt-salon.wt-salon .sc-self .wt-seat-avatar{position:relative;top:auto;right:auto;width:28px;height:28px;order:-1}
#points-page .wt-salon.wt-salon .nn-seat-label,#points-page .wt-salon.wt-salon .nn-multi-seat>strong{position:relative}
#points-page .wt-salon.wt-salon .mj-player-avatar>.wt-seat-avatar{inset:0;width:100%;height:100%;z-index:0}
#points-page .wt-salon.wt-salon .mj-player-avatar>i,#points-page .wt-salon.wt-salon .mj-player-avatar>em{z-index:1}
@media(max-width:360px){.wt-avatar-grid{gap:10px 5px}.wt-avatar-current{gap:12px;padding:10px}.wt-avatar-current>.wt-avatar-sprite,.wt-avatar-default{width:60px;height:60px}}
#points-page .wt-salon.wt-salon .nn-seat-label:has(.wt-seat-avatar),#points-page .wt-salon.wt-salon .nn-multi-seat>strong:has(.wt-seat-avatar){padding-left:34px;min-height:28px;box-sizing:border-box}
#points-page .wt-salon.wt-salon .nn-seat-label>.wt-seat-avatar,#points-page .wt-salon.wt-salon .nn-multi-seat>strong>.wt-seat-avatar{left:3px;right:auto;top:50%;transform:translateY(-50%);width:26px;height:26px}
/* Bottom-aligned Guandan columns: exposed card heads remain individually tappable. */
#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:57dvh;overflow:hidden;min-height:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{--gd-card-height:88px;--gd-card-width:58px;--gd-step:27px;--gd-column-min:34px;--gd-overhang:24px;display:block;order:2;width:100%;max-width:1050px;min-height:0;margin:0 auto;overflow:auto;overscroll-behavior:contain;flex:0 1 auto;scrollbar-width:thin;scrollbar-color:#8d795d #eee2ce;touch-action:pan-x pan-y}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail{display:grid;grid-template-columns:repeat(var(--gd-columns),minmax(0,1fr));gap:0;width:100%;min-width:calc(var(--gd-columns) * var(--gd-column-min) + var(--gd-overhang));max-width:calc(var(--gd-columns) * 62px + var(--gd-overhang));margin:auto;padding:2px var(--gd-overhang) 5px 0;box-sizing:border-box}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-column{display:flex;flex-direction:column;gap:8px;min-width:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-column-label{display:block;flex:none;width:100%;min-height:28px;padding:3px 0;border:0;border-right:1px solid #bfad8b;border-radius:5px 5px 0 0;background:#e7ddc7;color:#4c4f3c;font-size:10px;line-height:20px;white-space:nowrap}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-combined>.gd-column-label{color:#2e6658;background:#dae3cc;font-weight:700}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-column-cards{position:relative;display:flex;flex-direction:column;align-items:flex-start;margin-top:auto}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card{box-sizing:border-box;display:block;flex:none;width:max(var(--gd-card-width),100%);height:var(--gd-card-height);min-height:var(--gd-card-height);padding:0;margin:0;border:1px solid #c1b8a6;border-bottom:2px solid #b8b09f;border-radius:6px;background:#fffefa;box-shadow:0 -1px 3px #57432b20;position:relative;overflow:hidden;transform:none;color:#202625;cursor:pointer}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card+.sc-card{margin-top:calc(var(--gd-step) - var(--gd-card-height))}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card b{position:absolute;left:3px;top:2px;font:700 var(--gd-rank-size,18px)/var(--gd-rank-line,20px) Georgia,serif;letter-spacing:-1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card i{position:absolute;left:18px;top:5px;margin:0;font:15px/18px Georgia,serif}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card[aria-label*="10"] i{left:22px;font-size:12px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card em{font-size:33px;right:6px;bottom:6px;line-height:1}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card.sc-red{color:#c21e36}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-joker b{font:700 13px/23px 'Songti SC',serif;letter-spacing:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-joker i{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card[aria-pressed=true]{transform:none;background:#ffe4a4;border-color:#a16c26;box-shadow:inset 3px 0 #b77b25,0 -1px 3px #57432b30}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-column-badge{position:absolute;left:4px;bottom:5px;z-index:2;writing-mode:vertical-rl;min-height:34px;padding:3px 2px;border:1px solid #6b9387;border-radius:4px;background:#f3faee;color:#356e60;font-size:10px;line-height:12px;letter-spacing:1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan :is(.gd-column-label,.gd-column-badge)[aria-pressed=true]{background:#386852;color:#fff7df;border-color:#386852}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan :is(.gd-column-label,.gd-column-badge):disabled{opacity:1;cursor:default}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card:focus-visible{outline:0;box-shadow:inset 0 0 0 3px #4f7baf}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand :is(.gd-wild,.gd-level){position:absolute;left:4px;right:auto;top:30px;bottom:auto;background:#34725a;color:#fff8dd;border-radius:2px;padding:1px 3px;font-size:10px;line-height:14px}
@media(min-width:900px) and (min-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{--gd-card-height:96px;--gd-card-width:76px;--gd-step:29px;--gd-column-min:42px;--gd-overhang:34px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-column-label{font-size:12px}}
@media(max-height:740px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{--gd-card-height:74px;--gd-step:25px}#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{gap:4px;padding-top:7px;padding-bottom:7px}}
@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:100%;height:100%;align-self:stretch}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{--gd-card-height:64px;--gd-step:25px}}
@media(max-height:740px) and (orientation:portrait){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{grid-template-columns:minmax(0,1fr) auto;gap:3px;padding:7px 4px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-identity small,#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-play{display:none}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-count{grid-column:2;grid-row:1;font-size:10px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-identity strong{font-size:10px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-center{top:64%;gap:4px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .wt-seat-avatar{top:-29px;width:28px;height:28px}}

#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-pan-hint{margin-left:auto;color:#6e5145;font-size:10px;white-space:nowrap}
/* Guandan: partner identity, four independent played-card areas and turn clock. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-table-info small{display:block;font-size:10px;color:#476353;margin-top:2px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:255px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:38%;width:88px;max-width:26%;padding:5px 3px;grid-template-columns:1fr;gap:1px;z-index:4}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:72px;width:104px;max-width:30%}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat .wt-figure{width:68px;height:100px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{width:55px;height:73px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-identity small{display:block;font-size:10px;white-space:nowrap;line-height:14px;margin:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-identity strong{font-size:11px;line-height:15px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-count{grid-column:1;grid-row:auto;font-size:10px;line-height:13px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-team{border-color:#9bcec8;background-color:#294d4de8}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-opponent{border-color:#e5b5a7;background-color:#65443fe8}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-team .sc-identity small{color:#b9eee1}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-opponent .sc-identity small{color:#ffd8c4}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-active{outline:2px solid #ffe89a;outline-offset:2px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-clock{position:absolute;z-index:5;right:-6px;bottom:-8px;display:inline-block;padding:2px 5px;border:1px solid #9f7734;border-radius:10px;background:#ffe39a;color:#3d402b;font:700 12px/17px ui-monospace,monospace;white-space:nowrap}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-self .gd-clock{right:-38px;bottom:2px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-self .sc-identity small{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .wt-seat-avatar{top:-21px;right:0;width:25px;height:25px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-plays{position:absolute;inset:0;pointer-events:none;z-index:3}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play{position:absolute;width:42%;max-width:220px;padding:3px;border:1px solid #ffffff48;border-radius:7px;box-sizing:border-box;background:#493c5366;box-shadow:0 1px 4px #241d2426;color:#fff9e6}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-2{top:123px;left:50%;transform:translateX(-50%)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-1{top:calc(38% + 59px);left:3px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-3{top:calc(38% + 59px);right:3px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-0{bottom:42px;left:50%;transform:translateX(-50%)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play .gd-play-label{display:flex;align-items:center;justify-content:space-between;gap:3px;padding:0 1px 3px;font-size:10px;line-height:14px;white-space:nowrap}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play .gd-play-label small{font-size:8px;color:#ffe5a0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-winning-play{border-color:#ffe6a0;box-shadow:0 0 0 1px #ffe6a044}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards{display:grid;grid-template-columns:repeat(var(--sc-count),minmax(0,1fr));gap:1px;width:100%;max-width:calc(var(--sc-count) * 31px);margin:auto}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards .sc-card{position:relative;display:flex;width:100%;height:43px;min-height:43px;min-width:0;padding:2px;box-sizing:border-box;background:#fffef6;color:#262b28;border:1px solid #ded3c4;border-radius:3px;box-shadow:none;overflow:hidden}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards .sc-card.sc-red{color:#bd243b}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards b{font:700 clamp(12px,calc(150px / var(--sc-count)),19px)/19px Georgia,serif;letter-spacing:-1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards i{font:14px/15px Georgia,serif;margin:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards .gd-joker b{font:700 9px/16px serif;letter-spacing:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards em{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards :is(.gd-wild,.gd-level){left:auto;right:1px;bottom:1px;top:auto;font-size:8px;padding:0 1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-pass{display:block;width:max-content;margin:0 auto;padding:2px 12px;border-radius:7px;font-size:13px;background:#2d353b4d}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-wait-actions{align-items:center;min-height:43px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-waiting-turn{flex:1;text-align:center;font-size:12px;color:#4b3f32}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-wait-actions>button{flex:0 0 90px}
#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:min(52dvh,calc(100dvh - 380px))}
@media(max-height:740px) and (orientation:portrait){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:250px}#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:calc(100dvh - 380px)}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{--gd-card-height:64px;--gd-step:24px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:34%}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:45px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat .wt-figure{height:72px;width:48px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{height:47px;width:37px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-2{top:98px;width:40%}#points-page .wt-salon.wt-salon .sc-game.sc-guandan :is(.gd-table-play-1,.gd-table-play-3){top:calc(34% + 54px)}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-0{bottom:35px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards .sc-card{height:36px;min-height:36px}}
@media(min-width:900px) and (min-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:40%;width:115px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:90px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-2{top:145px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-1{top:50%;left:125px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-3{top:50%;right:125px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-0{bottom:40px}}
@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:0}#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:100%}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:34%}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:12px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat .wt-figure{height:53px;width:38px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{display:none}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-2{top:65px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan :is(.gd-table-play-1,.gd-table-play-3){top:calc(34% + 55px)}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-0{bottom:35px}}

/* Reserve three rows so four seats stay distinct even with a tall hand. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:340px}
#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:calc(100dvh - 470px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:calc(33.333% - 8px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:32px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2 .wt-figure{height:38px;width:38px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-plays{inset:90px 3px 35px;display:grid;grid-template:repeat(3,minmax(0,1fr))/repeat(2,minmax(0,1fr));gap:0 8px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play{position:relative;inset:auto;transform:none;align-self:start;justify-self:center;width:100%;height:max-content;max-width:220px;min-height:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-2{grid-area:1/1/2/3;width:44%}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-1{grid-area:2/1/3/2}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-3{grid-area:2/2/3/3}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-play-0{grid-area:3/1/4/3;width:44%}
@media(max-height:740px) and (orientation:portrait){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:300px}#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:calc(100dvh - 430px)}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-plays{inset:75px 3px 33px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:calc(33.333% - 18px)}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:18px}}
@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:0}#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan>.sc-hand-panel{max-height:100%}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-table-plays{inset:70px 3px 30px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat{top:calc(33.333% - 18px)}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-opponents .sc-seat-2{top:12px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards .sc-card{height:32px;min-height:32px}}

@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-self{bottom:3px}}

/* Keep the hand baseline still as cards leave; expose wild badges in every stack. */
#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan:not([data-phase="finished"])>.sc-hand-panel{height:calc(100dvh - 470px);flex:0 0 calc(100dvh - 470px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{flex:1 1 auto;--gd-column-min:40px;--gd-card-height:80px;--gd-step:25px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail{min-height:100%;padding-bottom:24px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild-card{border-color:#c69739;background:#fff8df}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild-card i{left:15px;font-size:11px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild-card[aria-label*="10"] i{left:19px;font-size:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild{position:absolute;left:27px;right:auto;top:3px;bottom:auto;width:13px;height:19px;box-sizing:border-box;padding:0;text-align:center;background:#b52d3e;color:#fff8df;border-radius:3px;font:bold 11px/19px sans-serif;z-index:2}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-play-cards .gd-wild{position:absolute;left:auto;right:1px;top:auto;bottom:1px;display:block;padding:0 2px;background:#b52d3e;color:#fff8df;border-radius:2px;font:bold 10px/13px sans-serif}
@media(max-height:740px) and (orientation:portrait){#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan:not([data-phase="finished"])>.sc-hand-panel{height:calc(100dvh - 430px);flex-basis:calc(100dvh - 430px)}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{--gd-card-height:64px;--gd-step:24px}.gd-hand-rail{padding-bottom:18px}}
@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan:not([data-phase="finished"])>.sc-hand-panel{height:100%;flex-basis:auto}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{--gd-card-height:64px;--gd-step:24px}}

#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-speech{position:absolute;z-index:9;bottom:calc(100% + 4px);left:50%;transform:translateX(-50%);padding:5px 8px;border:1px solid #b79961;border-radius:9px;background:#fff6da;color:#59452b;font:600 11px/15px sans-serif;white-space:nowrap;box-shadow:0 2px 7px #211a2033;pointer-events:none}

/* All columns fit the viewport; the last card keeps its full face visible. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand{overflow-x:hidden;--gd-overhang:30px;--gd-card-width:48px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail{min-width:0;max-width:calc(var(--gd-columns) * 62px + 30px);padding-right:30px;--gd-exposed:40px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card{width:calc(100% + 30px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-column-label{overflow:hidden;text-overflow:clip;font-size:clamp(8px,calc(var(--gd-exposed) * .3),12px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-compact .sc-card i{left:13px;top:5px;font-size:10px;line-height:14px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-compact .sc-card[aria-label*="10"] i{left:15px;font-size:9px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-compact .gd-joker b{font-size:10px;letter-spacing:-1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-compact .gd-wild{left:2px;top:24px;width:16px;height:18px;font-size:11px;line-height:18px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-column:has(.gd-wild-card){--gd-step:44px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card[data-gd-gift="true"]{transform:translateY(-10px);outline:2px solid #c6912d;outline-offset:-2px;background:#fff0bc}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan[data-phase="tribute"] .gd-hand-rail{padding-top:12px}
#points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan[data-phase="finished"]>.sc-hand-panel{overflow-y:auto;min-height:180px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-revealed-hands{margin-top:18px;text-align:left;border-top:1px solid #b5938055;padding-top:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-revealed-hands h3{font-size:12px;color:#593f36;margin:0 0 10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-revealed-hands article{margin:8px 0 12px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-revealed-hands article>strong{display:block;font:600 11px/18px sans-serif;color:#553f34;margin-bottom:5px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-reveal-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(29px,1fr));gap:4px 2px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-reveal-cards .sc-card{width:100%;height:49px;min-width:0;min-height:49px;padding:3px 2px;box-sizing:border-box;box-shadow:none;border-radius:3px;background:#fffdf6}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-reveal-cards b{font:700 17px/18px Georgia,serif}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-reveal-cards .gd-joker b{font:700 10px/16px serif}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-reveal-cards i{font:14px/15px Georgia,serif;margin:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-reveal-cards em{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-reveal-cards .gd-wild{left:auto;right:1px;top:auto;bottom:1px;background:#b52d3e;color:#fff;font-size:9px;padding:0 2px}
/* The semantic button is the exposed column; its face can visually overlap. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-card-face{display:contents}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card{width:100%;border:0;background:transparent;box-shadow:none;overflow:visible;border-radius:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card .gd-card-face{display:block;position:absolute;inset:0 auto 0 0;width:calc(100% + 30px);height:100%;box-sizing:border-box;border:1px solid #c1b8a6;border-bottom:2px solid #b8b09f;border-radius:6px;background:#fffefa;box-shadow:0 -1px 3px #57432b20;overflow:hidden;pointer-events:auto}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild-card .gd-card-face{border-color:#c69739;background:#fff8df}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card[aria-pressed=true] .gd-card-face{background:#ffe4a4;border-color:#a16c26;box-shadow:inset 3px 0 #b77b25,0 -1px 3px #57432b30}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card[data-gd-gift="true"]{outline:0;background:transparent}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card[data-gd-gift="true"] .gd-card-face{outline:2px solid #c6912d;outline-offset:-2px;background:#fff0bc}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card{height:var(--gd-step);min-height:var(--gd-step)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card+.sc-card{margin-top:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card.gd-bottom-card{height:var(--gd-card-height);min-height:var(--gd-card-height)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card .gd-card-face{height:var(--gd-card-height)}
/* Narrow phones keep the rank and suit in a vertical corner, without truncation. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .gd-hand-column{--gd-step:25px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .sc-card i{left:3px;top:14px;font-size:10px;line-height:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .sc-card[aria-label*="10"] i{left:3px;font-size:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .gd-joker b{font-size:8px;letter-spacing:-1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .gd-wild{left:2px;top:14px;width:13px;height:11px;font-size:9px;line-height:11px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .gd-wild-card i{display:none}
/* Tall groups adapt their exposed heads to the fixed hand area. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-column:has(.gd-wild-card){--gd-step:25px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild-card i{left:16px;top:2px;font-size:10px;line-height:12px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild-card .gd-wild{left:2px;top:14px;width:14px;height:10px;font-size:9px;line-height:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tight-hand .sc-card i{left:11px;top:1px;font-size:clamp(7px,calc(var(--gd-head-step) - 2px),9px);line-height:calc(var(--gd-head-step) - 2px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tight-hand .gd-wild-card i{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tight-hand .gd-wild-card .gd-wild{left:11px;top:1px;width:8px;height:calc(var(--gd-head-step) - 2px);font-size:7px;line-height:calc(var(--gd-head-step) - 2px)}

/* The hand is fixed in place; a finger stroke selects visible card faces. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand[data-gd-selectable="true"]{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand[data-gd-selectable="true"] :is([data-gd-card],[data-gd-group]){touch-action:none}

/* Expose more of a normal-proportion face as the hand shrinks. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail{width:var(--gd-rail-width,100%);max-width:100%;column-gap:var(--gd-gap,0px);padding-right:var(--gd-overhang,30px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card .gd-card-face{width:var(--gd-face-width,56px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-card-blocked{opacity:1;cursor:not-allowed;color:#777}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-card-blocked .gd-card-face{background:#d9d7d0;border-color:#aaa69c;box-shadow:none;filter:grayscale(1)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-unavailable{position:absolute;left:3px;bottom:5px;z-index:3;padding:2px 1px;border:1px solid #888;border-radius:3px;background:#e8e6e1;color:#666;font:9px/12px sans-serif;writing-mode:vertical-rl}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-panel{position:absolute;z-index:6;left:50%;bottom:42px;transform:translateX(-50%);width:min(86%,320px);box-sizing:border-box;padding:9px 10px;border:1px solid #f3d492;border-radius:12px;background:#fff6e8f5;box-shadow:0 3px 12px #3d2c3b30;color:#4f4336;text-align:center}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan[data-phase="tribute"] .gd-table-plays{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-title{font-size:16px;font-weight:700;line-height:22px;color:#3d6453}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-route{display:flex;align-items:center;justify-content:center;gap:8px;margin:3px 0 7px;font-size:12px;line-height:17px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-route strong{max-width:36%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-route>span{font-size:11px;color:#8d6b39}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview{height:64px;display:flex;justify-content:center;align-items:center}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview .sc-card{position:relative;display:block;box-sizing:border-box;width:45px;height:64px;min-height:64px;padding:4px;border:1px solid #c5b593;border-radius:5px;background:#fffefa;box-shadow:0 1px 3px #74604730;text-align:left}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview b{display:block;font:700 21px/23px Georgia,serif}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview i{display:block;font:16px/18px Georgia,serif}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview em{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview .gd-joker b{font-size:14px;line-height:20px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview :is(.gd-wild,.gd-level){position:absolute;right:3px;bottom:3px;left:auto;top:auto;font-size:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-empty{box-sizing:border-box;display:grid;place-content:center;width:60px;height:64px;border:1px dashed #bca983;border-radius:5px;color:#8a785d;font:11px/18px sans-serif}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-panel p{margin:6px 0 0;font-size:11px;line-height:16px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-exchanges{display:flex;justify-content:center;flex-wrap:wrap;gap:2px 8px;padding-top:4px;font-size:9px;line-height:13px;color:#897c68}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-exchange-active{color:#3d6453;font-weight:600}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-relay-panel{position:absolute;z-index:6;left:50%;bottom:60px;transform:translateX(-50%);display:grid;gap:5px;min-width:190px;max-width:85%;padding:12px 16px;border:1px solid #e6d5a4;border-radius:12px;background:#fff7e8f5;box-shadow:0 3px 12px #3d2c3b30;text-align:center;color:#3d6453}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-relay-panel strong{font-size:19px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-relay-panel span{font-size:13px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-relay-panel small{font-size:11px;color:#78654b}
@media(orientation:landscape) and (max-height:600px){#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-panel{bottom:33px;padding:5px 8px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview{height:45px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview .sc-card{height:45px;min-height:45px;width:34px;padding:1px 3px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-empty{height:45px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-route{margin:1px 0 3px}#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-panel p{margin-top:3px}}

/* Keep the tribute summary below the seated players, including short phones. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-panel{display:grid;grid-template-columns:45px minmax(0,1fr);gap:3px 8px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-title{grid-area:1/2;line-height:20px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-route{grid-area:2/2;gap:5px;margin:0;font-size:11px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview{grid-area:1/1/4/2;align-self:center}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-empty{width:45px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-panel p{grid-area:3/2;margin:0;font-size:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-exchanges{grid-column:1/-1;padding-top:2px}

/* Rank typography is shared by the entire hand, including tens and wild cards. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card:not(.gd-joker) b{left:2px;top:1px;font-size:var(--gd-rank-size,18px);line-height:var(--gd-rank-line,20px);letter-spacing:-1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card:not(.gd-joker) i{display:block;left:16px;top:3px;font-size:12px;line-height:16px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card[aria-label*="10"] i{left:21px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail.gd-compact{--gd-rank-size:16px;--gd-rank-line:20px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-compact .sc-card:not(.gd-joker) i{left:13px;font-size:11px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-compact .sc-card[aria-label*="10"] i{left:18px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail.gd-tiny{--gd-rank-size:14px;--gd-rank-line:14px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .sc-card:not(.gd-joker) i{left:2px;top:15px;font-size:10px;line-height:10px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-wild-card .gd-wild{left:28px;top:3px;width:10px;height:14px;font-size:9px;line-height:14px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-compact .gd-wild-card .gd-wild{left:23px;top:3px;width:10px;height:14px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tiny .gd-wild-card .gd-wild{left:11px;top:15px;width:10px;height:10px;line-height:10px}
/* Short screens use one corner size for all columns, not one size per stack. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail.gd-tight-hand{--gd-rank-size:clamp(9px,calc(var(--gd-head-step) - 1px),16px);--gd-rank-line:var(--gd-head-step)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-tight-hand .sc-card:not(.gd-joker) b{top:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-rail{--gd-label-space:28px;padding-bottom:8px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-column{gap:4px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-column-label{display:block;min-height:24px;padding:2px 0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-tight-hand .sc-card:not(.gd-joker) i{display:block;left:13px;top:1px;font-size:clamp(7px,calc(var(--gd-head-step) - 2px),10px);line-height:calc(var(--gd-head-step) - 2px)}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-tight-hand .sc-card[aria-label*="10"] i{left:19px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .gd-tight-hand .gd-wild-card .gd-wild{left:23px;top:1px;width:9px;height:calc(var(--gd-head-step) - 2px);font-size:7px;line-height:calc(var(--gd-head-step) - 2px)}
@media(max-height:740px) and (orientation:portrait){
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:260px}
 #points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan:not([data-phase="finished"])>.sc-hand-panel{height:calc(100dvh - 390px);flex-basis:calc(100dvh - 390px);max-height:calc(100dvh - 390px)}
}

@media(max-height:740px) and (orientation:portrait){
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-panel{padding:6px 8px}
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview{height:52px}
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-preview .sc-card{height:52px;min-height:52px;width:37px}
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-empty{height:52px}
}

@media(max-height:620px) and (orientation:portrait){
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-felt{min-height:180px}
 #points-page .wt-salon.wt-salon.sc-table-page .sc-game.sc-guandan:not([data-phase="finished"])>.sc-hand-panel{height:calc(100dvh - 310px);flex-basis:calc(100dvh - 310px);max-height:calc(100dvh - 310px)}
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .sc-actions>button{min-height:34px;padding:5px 3px}
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-sort{min-height:30px;padding:4px 8px}
}

/* Two full rows: faces never overlap, and combination names span their cards. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .gd-hand-rail{display:flex;flex-direction:column;gap:6px;height:100%;min-height:140px;padding:2px 0 8px;width:100%;max-width:1050px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-hand-row{display:grid;grid-template-columns:repeat(var(--gd-row-count),minmax(0,1fr));gap:2px;flex:1;min-height:0;width:100%;max-width:calc(var(--gd-row-count) * 58px);margin:0 auto}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .sc-card.gd-bottom-card{height:100%;min-height:0;max-width:none;width:100%;margin:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .sc-card .gd-card-face{width:100%;height:100%;border-radius:4px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .sc-card:not(.gd-joker) b{left:2px;top:2px;font-size:15px;line-height:18px;letter-spacing:-1px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .sc-card:not(.gd-joker) i,
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .sc-card[aria-label*="10"] i{display:block;left:3px;top:21px;font-size:15px;line-height:15px}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .gd-joker b{left:2px;top:3px;font-size:10px;line-height:13px;writing-mode:vertical-rl;letter-spacing:0}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows .sc-card em{display:none}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-two-rows :is(.gd-wild,.gd-level,.gd-unavailable){left:2px;top:auto;bottom:2px;width:13px;height:11px;padding:0;font-size:8px;line-height:11px;writing-mode:horizontal-tb;text-align:center}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-hand,
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-hand [data-gd-card]{touch-action:pan-y}
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-tribute-hand .gd-hand-rail{padding-top:12px}

/* Waiting for another seat must not fade the cards. */
#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-stacked-hand .sc-card:disabled{opacity:1;cursor:default}

/* Exit confirmation is separate from hand sizing and selection. */
.gd-leave-dialog{max-width:420px;border:1px solid #bca27c;border-radius:16px;background:#fff8e8;color:#4c3b32;box-shadow:0 12px 40px #241c2540}
.gd-leave-dialog::backdrop{background:#201c245c}
.gd-leave-dialog h2{margin:0 0 12px;font-size:20px}
.gd-leave-dialog p{font-size:14px;line-height:1.7}
.gd-leave-dialog>div{display:flex;gap:10px;margin-top:20px}
.gd-leave-dialog button{flex:1;min-height:42px;border:1px solid #baa47f;border-radius:9px;background:#f1e5cd;color:#4c3b32;font-size:14px}
.gd-leave-dialog [data-gd-exit]{background:#386e59;border-color:#386e59;color:#fff9e9}
#points-page .wt-salon.wt-salon>.game-section-heading [data-card-mode-back].gd-exit-button{font-size:12px}
#points-page .wt-salon.wt-salon>.game-section-heading [data-card-mode-back].gd-exit-button:before{content:none}

#points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-anti-tribute-panel{bottom:42px;gap:4px;min-width:220px;padding:9px 12px}
@media(max-height:650px){
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-anti-tribute-panel{grid-template-columns:auto 1fr;column-gap:9px;row-gap:2px;min-width:250px;padding:6px 9px}
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-anti-tribute-panel strong{grid-row:1/3;align-self:center;font-size:18px}
 #points-page .wt-salon.wt-salon .sc-game.sc-guandan .gd-anti-tribute-panel span{font-size:11px}
}

#points-page .wt-salon.wt-salon .sc-guandan .gd-sort-tools{display:flex;align-items:center;gap:6px;margin-left:auto;flex:none}
#points-page .wt-salon.wt-salon .sc-guandan .gd-sort-tools .gd-sort{cursor:pointer}
#points-page .wt-salon.wt-salon .sc-guandan .sc-hand-heading>.sc-your-turn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#points-page .wt-salon.wt-salon .sc-guandan .gd-joker-art{position:absolute;left:3px;bottom:5px;width:clamp(16px,50%,36px);height:auto;fill:currentColor;pointer-events:none}
#points-page .wt-salon.wt-salon .sc-guandan .gd-two-rows .gd-joker-art{left:2px;bottom:5px;width:calc(100% - 4px);max-width:32px}
#points-page .wt-salon.wt-salon .sc-guandan .gd-play-cards .gd-joker-art{left:2px;bottom:3px;width:18px}

/* Keep every seat's public play visible between turns. */
.ddz-trick-board{width:100%;display:grid;gap:5px;text-align:left}
.ddz-play-row{display:grid;grid-template-columns:65px minmax(0,1fr);align-items:center;gap:6px;min-height:40px;padding:3px 5px;border-radius:8px;background:#062d2166}
.ddz-play-row.ddz-playing{outline:1px solid #f1ce66}
.ddz-play-row>small{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff6dc}
.ddz-play-row>small>span{display:block;font-size:9px;opacity:.8}
.ddz-play-cards{display:flex;align-items:center;min-width:0;overflow-x:auto;padding:1px 12px 2px 0;scrollbar-width:thin}
.ddz-play-cards .sc-card,.ddz-play-cards .cr-card{flex:0 0 28px!important;width:28px!important;height:38px!important;min-width:28px!important;margin-right:-10px;padding:2px!important;border-radius:3px!important;font-size:10px!important;box-shadow:0 1px 2px #0005}
.ddz-play-cards .sc-card b,.ddz-play-cards .cr-card b{font-size:11px!important;line-height:1}
.ddz-play-cards .sc-card i{font-size:9px!important}.ddz-play-cards .sc-card em{display:none!important}
.ddz-play-note{font-size:11px;color:#fff1c2}.ddz-play-cards>*:last-child{margin-right:0}
#points-page .wt-salon.wt-salon .sc-game.sc-doudizhu .sc-center{width:80%;top:66%;max-height:65%;gap:4px}
#points-page .wt-salon.wt-salon .sc-game.sc-doudizhu .sc-kitty{gap:4px}
#points-page .wt-salon.wt-salon .sc-game.sc-doudizhu .sc-kitty .sc-card{height:30px;width:23px;font-size:10px}
#points-page .wt-salon.wt-salon .cr-room[data-wt-game="doudizhu"] .cr-felt{padding:10px}
@media(max-width:600px){.ddz-play-row{grid-template-columns:52px minmax(0,1fr);gap:3px}.ddz-play-row>small{font-size:10px}}
