/* Desktop uses a 1200 x 626 canvas; mobile uses a 1200 x 640 canvas. */
:root{--felt:#0e7053}button,.tile[role=button]{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.home-panel input,.mobile-options select{font-size:16px}
.game{height:var(--logical-h,100dvh);background:var(--felt)}.game header,.game footer,.workspace aside{display:none}.workspace{display:flex;min-height:0}main#table-area{flex:1;min-width:0;background:var(--felt)}#table{width:1200px;height:626px;overflow:hidden;background:var(--felt)}.mobile-layout #table{height:640px}#table-area::after{display:none!important}.table-inlay{display:none}
.table-label{position:absolute;left:435px;top:160px;width:330px;height:330px;border:5px double #06594166;border-radius:50%;transform:none;color:#075d4666;letter-spacing:4px;display:grid;place-items:center;pointer-events:none}.table-label::before,.table-label::after{content:"";position:absolute;inset:25px;border:2px solid #075d4655;border-radius:50%}.table-label::after{inset:5px;border-style:dashed}.table-label span{position:absolute;top:8px;width:100%;font-size:15px;letter-spacing:5px}.table-label b{font:210px/1 KaiTi,STKaiti,serif;font-weight:400;opacity:.6}
.table-hud{position:absolute;display:flex;align-items:center;gap:10px;z-index:7;top:0;left:100px;right:100px;height:50px;font-size:19px;color:#96cebb}.table-hud button{display:inline-grid;place-items:center;min-width:44px;min-height:44px;padding:5px 9px;background:#00442fe0;border:1px solid #b4dba270;color:#b8efcf;border-radius:5px;font-size:17px;line-height:1.2}#table-menu{order:-3;font-size:29px}#location-toggle{order:-2}#table-meta{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#table-exit{font-size:15px}
.tile{background:none!important;border:0!important;box-shadow:none!important}.tile svg{overflow:visible;filter:drop-shadow(.5px 1px .7px #002d2050)}.tile.back::before,.tile.back::after{display:none}
.seat-info{display:flex;flex-direction:column;align-items:center;min-width:0;width:140px;gap:3px;z-index:2;text-align:center;font-size:14px}.seat-info .avatar{position:relative;flex:none;width:60px;height:60px;border:2px solid #8de2c1;border-radius:50%;display:grid;place-items:center;color:#f1ebbd;background:radial-gradient(circle at 35% 30%,#519275,#145c46);font-size:28px;overflow:visible}.seat-info .avatar img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}.seat-info .name{position:absolute;left:0;right:0;top:-18px;font-size:13px;color:#c2e2d0;max-width:none}.seat-info .sub{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;color:#c9e5d5;font-size:11px}.seat-info .wind-label{position:absolute;right:28px;top:42px;background:#105c41dd;border-radius:50%;padding:1px 3px;color:#d6df97;font-size:10px}.seat-info .points{display:block;width:100%;margin-top:1px;font-size:21px;font-weight:700;line-height:1.2;color:#f0eb28}.seat-info .dealer{position:absolute;left:-13px;top:-8px;width:31px;height:37px;display:grid;place-items:center;margin:0;padding:0 0 4px;border:1px solid #d9b34e;border-radius:3px 3px 45% 45%;font:700 26px KaiTi,serif;background:#932719;color:#ffe77d;transform:rotate(-10deg)}.ready-badge{position:absolute;inset:0;display:grid;place-items:center;background:#07533dcc;font-size:21px;font-weight:700;color:#fff047;border-radius:50%}.seat-distance{color:#e5d978;font-size:10px;white-space:nowrap}
.seat-info.top{top:68px;left:195px}.seat-info.left{top:218px;left:60px}.seat-info.right{top:218px;right:60px;left:auto}.seat-info.bottom{top:auto;bottom:122px;left:60px}.flowers{position:absolute;display:flex;gap:0;max-width:none;flex-wrap:nowrap;top:96px;left:50%;transform:translateX(-50%)}.flowers .tile{width:24px;height:34px}.seat-info.top .flowers{left:700px;top:-8px;transform:none}.seat-info.bottom .flowers{left:180px;top:65px;transform:none}
.rival-hand{position:absolute;display:flex;gap:0}.rival-hand.top{top:58px;left:390px;transform:none}.rival-hand.top .tile{width:34px;height:51px}.rival-hand.top .tile:not(.back){transform:rotate(180deg)}.rival-hand.left,.rival-hand.right{display:flex;flex-direction:column;top:112px;gap:0}.rival-hand.left{left:180px}.rival-hand.right{right:180px}.rival-hand.left .tile,.rival-hand.right .tile{position:relative;width:18px;height:25px}.rival-hand.left .tile svg,.rival-hand.right .tile svg{width:33px;height:45px;position:absolute;left:-8px;top:-10px}.rival-hand.left .tile:not(.back) svg{transform:rotate(90deg)}.rival-hand.right .tile:not(.back) svg{transform:rotate(-90deg)}.rival-hand.left .back svg,.rival-hand.right .back svg{visibility:hidden}.rival-hand.left .back::after,.rival-hand.right .back::after{content:"";display:block;position:absolute;inset:0;border-radius:2px;border:1px solid #b5ae78;background:linear-gradient(90deg,#c3a83a 0 25%,#eee9d8 30% 90%,#d9d9bc 95%)}.rival-hand.left .back::after{transform:scaleX(-1)}
.melds{display:flex;position:absolute;gap:10px;z-index:3;pointer-events:none}.melds .meld{position:relative;display:flex;gap:0;padding-right:0}.melds .tile{width:35px;height:49px}.melds.top{top:58px;left:auto;right:220px;transform:none;max-width:460px;flex-direction:row-reverse}.melds.top .meld{transform:rotate(180deg)}.melds.left{left:180px;top:112px;transform:rotate(90deg);transform-origin:9px 0;flex-direction:row}.melds.right{right:180px;top:445px;transform:rotate(-90deg);transform-origin:right top;flex-direction:row}.melds.bottom{display:flex;left:75px;right:auto;bottom:1px;max-width:730px;flex-wrap:nowrap;align-items:flex-end;gap:12px}.melds.bottom .tile{width:49px;height:69px}.melds .called-tile::after{content:"↟";position:absolute;top:40%;left:28%;color:#d6aa19;text-shadow:0 1px #63491b;font-size:20px}.melds .kong-fourth{position:absolute;left:33.33%;top:-17px;z-index:1}.melds.bottom .kong-fourth{top:-25px}
.river{position:absolute;display:grid;grid-template-columns:repeat(6,40px);width:240px;gap:0;align-content:start;z-index:2}.river .tile{width:40px;height:58px}.river.top{left:605px;top:175px;transform:rotate(180deg);transform-origin:120px 29px}.river.bottom{left:415px;top:346px;transform:none}.river.left{left:372px;top:119px;transform:rotate(90deg);transform-origin:20px 29px}.river.right{left:828px;top:462px;transform:rotate(-90deg);transform-origin:20px 29px}.river.dense .tile{width:40px;height:58px}.river .tile.last-discard::after{content:"";position:absolute;top:-7px;left:50%;border:0;width:12px;height:13px;background:linear-gradient(130deg,#8cdefc,#0276b2);transform:translateX(-50%) rotate(35deg);box-shadow:1px 1px 2px #004b4d}
.compass{position:absolute;left:555px;top:243px;width:90px;height:90px;background:#086547;border:3px solid #cbd331;border-radius:22px;box-shadow:0 0 0 3px #044e3c80;z-index:3}.compass span{font-size:17px;color:#8bcfa0}.compass .north{top:1px;left:33px}.compass .south{bottom:1px;left:33px}.compass .west{top:31px;left:2px}.compass .east{top:31px;right:2px}.compass strong{position:absolute;top:23px;left:25px;width:33px;color:#e2e63b;font:30px/36px KaiTi,serif;text-align:center}.compass .on{color:#effe8b;text-shadow:0 0 8px #f5f260}.compass::before{content:"";position:absolute;z-index:-1;width:105px;height:105px;left:-10px;top:-10px;border-radius:20px;pointer-events:none;opacity:.8}.compass[data-active=bottom]::before{background:linear-gradient(0deg,#c7eb5280,transparent 28%)}.compass[data-active=top]::before{background:linear-gradient(180deg,#c7eb5280,transparent 28%)}.compass[data-active=left]::before{background:linear-gradient(90deg,#c7eb5280,transparent 28%)}.compass[data-active=right]::before{background:linear-gradient(270deg,#c7eb5280,transparent 28%)}
.remaining-badge{position:absolute;left:686px;top:271px;display:flex;align-items:center;gap:8px;padding:3px 10px;background:#00533bd9;color:#dedb62;border-radius:22px;font:25px/31px Arial,sans-serif}.remaining-badge i{width:18px;height:27px;background:linear-gradient(90deg,#ded5ac 0 10%,#e4bb24 12% 90%,#a68d24 100%);border:1px solid #acc788;border-radius:2px}.remaining-badge strong{font-weight:400}
.pending{position:absolute;z-index:4}.pending .tile{width:70px;height:98px;outline:2px solid #c9df7e;outline-offset:3px;border-radius:5px}.pending.source-bottom{left:565px;top:410px}.pending.source-top{left:565px;top:50px;transform:rotate(180deg)}.pending.source-left{left:265px;top:230px;transform:rotate(90deg)}.pending.source-right{left:865px;top:275px;transform:rotate(-90deg)}
.my-hand{position:absolute;display:flex;flex-wrap:nowrap;justify-content:flex-end;align-items:flex-end;left:65px;right:105px;bottom:0;height:110px;gap:0;padding:0;z-index:4;isolation:isolate}.my-hand>.tile{width:68px;height:96px;flex:none;visibility:visible;cursor:pointer;transition:transform .12s,filter .12s}.my-hand .tile:hover{transform:translateY(-7px)}.my-hand .tile.selected{transform:translateY(-19px);outline:2px solid #f2f28e;outline-offset:-2px;border-radius:5px}.my-hand>.selected::before{content:"";position:absolute;inset:0;transform:translateY(19px);pointer-events:auto}.my-hand .tile.illegal{filter:brightness(.75)}.my-hand .tile.drawn{margin-left:18px}.submitting .my-hand .tile{pointer-events:none}.turn-message{display:none}
.actions{position:absolute;left:auto;right:170px;bottom:115px;max-width:790px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:13px;z-index:6}.actions button{min-width:76px;min-height:66px;padding:4px 12px;border:0;box-shadow:none;background:transparent;color:#ffe135;font:700 58px/1.2 KaiTi,STKaiti,serif;-webkit-text-stroke:1px #6b6216;text-shadow:2px 3px #5d6112,4px 5px 1px #07422e}.actions button:hover{background:#123d2620;transform:translateY(-2px)}.actions button:disabled{opacity:.35}.actions .choice{display:flex;gap:0;align-items:center;padding:4px 9px}.actions .choice .tile{width:28px;height:40px;margin-left:2px}.actions .choice .tile:first-of-type{margin-left:10px}.actions .pass-action{color:#ffe135;background:transparent;border:0}.actions .discard-action{min-width:110px;min-height:43px;align-self:center;padding:9px 15px;border:1px solid #d9c16d;border-radius:24px;font:20px/1.2 "Microsoft YaHei",sans-serif;-webkit-text-stroke:0;background:linear-gradient(#ffdd76,#dca436);color:#564212;text-shadow:none;box-shadow:0 2px 4px #06452e80}.actions .discard-action:disabled{display:none}
.action-banner{position:absolute;left:50%;top:46%;z-index:8;transform:translate(-50%,-50%);min-width:150px;color:#ffe43c;font:700 76px/1.2 KaiTi,STKaiti,serif;-webkit-text-stroke:1px #6c6415;text-shadow:3px 4px #6e5414,5px 6px #064635;pointer-events:none;text-align:center;animation:call-pop .85s ease-out both}.action-banner.effect-flower{color:#b5f95b;text-shadow:0 0 14px #b8ff83,3px 4px #376c26}.action-banner.effect-win{color:#ffdc4e;-webkit-text-stroke-color:#a12e14;text-shadow:3px 4px #912b17,0 0 20px #ffe047;animation-duration:1.45s}@keyframes call-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}25%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}70%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-55%) scale(.96)}}
.table-overlay{z-index:9}.overlay-box{max-height:590px;overflow:auto}.mobile-only{display:none}#mobile-panel{width:520px}.mobile-options{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:15px 0}.mobile-options select{margin-left:10px;padding:8px;background:#173f31;color:#e7f2ed;border:1px solid #ffffff30;border-radius:4px}#lobby-seats b img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.portrait-rotated,.portrait-rotated body{overflow:hidden;overscroll-behavior:none}.portrait-rotated #app-shell{position:fixed;left:var(--visual-left,0px);top:var(--visual-top,0px);width:var(--logical-w);height:var(--logical-h);transform-origin:0 0;transform:translateY(var(--screen-h)) rotate(-90deg)}.portrait-rotated .game{width:100%;height:100%;padding:env(safe-area-inset-left) env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom)}dialog{max-height:calc(var(--logical-h,100dvh) - 20px);overflow:auto}.portrait-rotated dialog[open]{position:fixed;inset:auto;left:calc(var(--screen-w)/2 + var(--visual-left,0px));top:calc(var(--screen-h)/2 + var(--visual-top,0px));margin:0;transform:translate(-50%,-50%) rotate(-90deg);width:min(850px,calc(var(--logical-w) - 24px));max-width:none;max-height:calc(var(--logical-h) - 16px)}
@media(prefers-reduced-motion:reduce){.action-banner,.tile{animation:none!important;transition:none!important}}
.table-hud .connection{display:inline-block;font-size:12px;white-space:nowrap}.table-hud .connection.bad{color:#ffca72}.winning-tile{margin-left:8px;filter:drop-shadow(0 0 3px #e8e57d)}
.melds.left .tile,.melds.right .tile{width:25px;height:35px}
.melds.left,.melds.right{gap:8px}.melds.right{top:462px}
.river{grid-template-columns:repeat(6,var(--river-size,40px));width:calc(6*var(--river-size,40px))}
.river .tile,.river.dense .tile{width:var(--river-size,40px);height:calc(var(--river-size,40px)*1.45)}
.pause-panel{position:absolute;z-index:8;left:50%;top:137px;transform:translateX(-50%);width:660px;max-height:150px;overflow:hidden;padding:15px 22px;border:1px solid #c9d17c99;border-radius:8px;background:#064b37ed;color:#edf0bd;font-size:24px;line-height:1.65;text-align:center;pointer-events:none;box-shadow:0 6px 20px #003b2b66}.online-mode .mobile-options{display:none!important}.game{height:var(--logical-h,100vh)}
dialog:not([open]){display:none}dialog[open]{display:block}.fallback-dialog[open]{position:fixed;z-index:30;inset:auto;left:50%;top:50%;margin:0;transform:translate(-50%,-50%);box-shadow:0 0 0 200vmax #001b16b8,0 20px 80px #001b16b8}.portrait-rotated .fallback-dialog[open]{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.dialog-open #table-hud,.dialog-open #hand-bottom,.dialog-open #actions,.dialog-open #lobby{pointer-events:none}
.rival-hand.top .tile.back{height:51px}
.rival-hand.top .tile.back svg{visibility:hidden}
.rival-hand.top .tile.back::after{content:"";display:block;position:absolute;inset:0 1px;border:1px solid #b39a45;border-radius:3px;background:linear-gradient(to bottom,#f4f0dc 0 14%,#d8c47a 15% 21%,#efd852 22%,#c6a420 100%);box-shadow:0 2px 2px #003b2b55}
/* One hand rack and one visual language across desktop and rotated phones. */
:root{--felt:#12674c}body{background:#0b3328}.game{background:#0b4433;height:var(--logical-h,100dvh)}main#table-area{background:radial-gradient(ellipse at 50% 43%,#207d5c,#146548 70%,#10553e)}#table{background:transparent}.table-label{display:none}.table-inlay{display:block;inset:53px 28px 14px;border:1px solid #add1a91c;border-radius:50px;box-shadow:inset 0 0 0 8px #052e2112}
.table-hud{top:0;left:17px;right:17px;height:52px;gap:9px;padding:0 4px;border-bottom:1px solid #c6d5a725;font-size:16px;color:#c2d6b8}.table-hud button,.table-hud button#table-menu,.table-hud #location-toggle,.table-hud #sound-toggle,.table-hud #table-score,.table-hud #table-rules,.table-hud button#table-exit{width:auto;height:45px;min-width:62px;min-height:45px;padding:7px 12px;border:1px solid #a9c7a435;border-radius:8px;background:#103e2e80;color:#dae4c5;font:16px/1.2 "Microsoft YaHei",sans-serif;box-shadow:none}.table-hud button:hover{background:#2c7954}.table-hud #table-menu{font-size:22px;min-width:48px}#table-meta{font-size:15px;font-weight:400;letter-spacing:.5px}.table-hud .connection{font-size:12px}.table-hud button[aria-pressed=false]{opacity:.7}.table-hud #table-exit{color:#e5cfa0}
.seat-info .points{font-size:21px;color:#e9dd9b;font-variant-numeric:tabular-nums}.seat-info .avatar{background:#245f45;border-color:#94b589;box-shadow:0 3px 8px #003b2522}.seat-info.active .avatar{border-color:#f2d789;box-shadow:0 0 0 4px #edce7122}.seat-info .name{color:#c9dbbd}.seat-info .ready-badge{color:#e7e5a2;background:#154a33dd}.seat-info .dealer{font-size:23px;background:#9d4431;color:#ffe2a5}.table-label{display:none}.compass{border:1px solid #b6bb8199;background:#174f3b;border-radius:17px;box-shadow:0 0 0 5px #10463144}.compass span{color:#95b99a;text-shadow:none}.compass strong{color:#f1e2a7}.compass .on{color:#f4e2a0;text-shadow:none}.remaining-badge{background:#164f3c;color:#cfcea2;border-radius:8px;font-size:20px}.remaining-badge i{width:15px;height:23px}
#player-row{position:absolute;left:172px;right:24px;bottom:15px;height:110px;display:flex;align-items:flex-end;justify-content:flex-start;flex-wrap:nowrap;gap:12px;overflow:visible;z-index:4}#player-row>.melds.bottom{position:relative;left:auto;right:auto;top:auto;bottom:auto;max-width:none;flex:0 0 auto;flex-wrap:nowrap;align-items:flex-end;gap:12px;margin:0}#player-row>.melds.bottom:empty{display:none}#player-row>.my-hand{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:max-content;max-width:none;height:110px;flex:0 0 auto;justify-content:flex-start;gap:0;z-index:auto}.my-hand .tile.selected{outline:2px solid #f1d48b;outline-offset:-2px}.mobile-layout .my-hand .tile:hover{transform:none}.mobile-layout .my-hand .tile.selected{transform:translateY(-19px)}.portrait-rotated #player-row{bottom:25px}
.actions{right:135px;bottom:138px;max-width:780px;gap:9px}.actions button{min-width:82px;min-height:66px;padding:5px 10px;border:1px solid #d2c589a6;border-radius:10px;background:#f2e9c9;color:#355238;font:600 22px/1.2 KaiTi,STKaiti,serif;-webkit-text-stroke:0;text-shadow:none;box-shadow:0 4px 0 #073c2980}.actions button:hover{background:#fff7df;transform:translateY(-1px)}.actions .pass-action{border:1px solid #99b796;background:#235e43;color:#dce4c5}.actions .choice{padding:5px 10px;gap:4px}.actions .action-art-wrap{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;position:relative}.actions .action-art{width:40px;height:40px;display:block;background:none!important}.actions .action-art:before{font:700 31px/40px KaiTi,STKaiti,serif;color:#436239}.actions .action-chi:before{content:'吃'}.actions .action-pon:before{content:'碰'}.actions .action-kong:before{content:'杠'}.actions .action-hu:before{content:'胡';color:#a44832}.actions .action-pass:before{content:'过';color:#c6d6b5}.actions .action-caption{position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);font:10px/1 sans-serif;white-space:nowrap;color:#6f7856}.actions .pass-action .action-caption{color:#b1c5a1}.actions .choice .tile{margin-left:1px}.portrait-rotated .actions{bottom:155px}.action-banner{color:#f0d497;font-size:56px;-webkit-text-stroke:0;text-shadow:0 3px 6px #003a26}.action-banner.effect-flower,.action-banner.effect-win{color:#f0d497;text-shadow:0 3px 6px #003a26;-webkit-text-stroke:0}.pause-panel{border-radius:12px;background:#153e2bf0;border-color:#bac78f;color:#e8e5c8;font-size:23px}
#hand-bottom>.tile{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#hand-bottom>.tile.dragging{opacity:.28}.discard-drag-ghost{position:fixed!important;z-index:1000!important;display:block!important;margin:0!important;padding:0!important;pointer-events:none!important;opacity:.94;filter:drop-shadow(0 5px 8px #001b17a8)}#river-bottom{min-height:132px;box-sizing:border-box}#river-bottom.drop-ready{outline:1px dashed #d9c87988;outline-offset:3px;border-radius:3px}#river-bottom.drop-over{outline:2px solid #f1dfa0;outline-offset:2px;background:#d9c87912}
.mobile-layout:not(.portrait-rotated) .game{padding:5px;padding:max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left))}.portrait-rotated .game{padding:5px;padding:max(5px,env(safe-area-inset-left)) max(5px,env(safe-area-inset-top)) max(5px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom))}
/* Dialogs preserve all information; only the information area scrolls when needed. */
dialog{background:#123d2e;border-color:#95ad7d;border-radius:14px;color:#e8efdb;max-height:calc(var(--logical-h,100dvh) - 24px);overscroll-behavior:contain}dialog::backdrop{background:#001c17bf;backdrop-filter:blur(4px)}.dialog-content{padding:24px}.dialog-content h2{font-size:22px;margin:0 0 16px}.dialog-content p{color:#bdcdb3}.dialog-actions{gap:12px}.primary{background:#dfc98c;border-color:#dfc98c;color:#294633}.toast{background:#e7e7d4;color:#355039;border:1px solid #b4c19e;border-radius:8px;box-shadow:0 7px 24px #001f1933}.portrait-rotated .toast{position:absolute;width:max-content;max-width:80%}
#result-dialog{width:min(860px,calc(var(--logical-w,100vw) - 28px));max-width:none;max-height:calc(var(--logical-h,100dvh) - 24px);overflow:hidden;background:#f3f0e2;color:#2c4939;border:1px solid #c0cba8;border-radius:15px;box-shadow:0 18px 70px #001a1755}#result-dialog .dialog-content{display:flex;flex-direction:column;gap:0;padding:20px 24px;max-height:calc(var(--logical-h,100dvh) - 26px);min-height:0}.result-heading{flex:none;display:flex;align-items:center;gap:14px;margin-bottom:13px}#result-dialog .result-eyebrow{font-size:11px;color:#879377;letter-spacing:2px}#result-dialog h2{margin:0;font-size:23px;line-height:1.4;color:#2e513a}.result-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 3px 0 0;scrollbar-width:thin;scrollbar-color:#a2b191 transparent}#result-dialog .winning-hand{display:flex;flex-direction:column;gap:9px;order:0;overflow-x:auto;margin:0 0 15px;padding:10px 0 14px;border-top:1px solid #d4dbc5;border-bottom:1px solid #d4dbc5}#result-dialog .winner-hand{display:flex;align-items:center;flex-wrap:nowrap;gap:12px;margin:0}#result-dialog .winner-name{width:80px;flex:none;color:#75846a;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#result-dialog .winner-tiles{display:flex;align-items:flex-end;gap:1px;flex:none}#result-dialog .winner-tiles .meld{display:flex;margin-right:7px;gap:0}#result-dialog .winner-hand .tile{width:29px;height:41px}#result-dialog .winning-tile{margin-left:9px}#result-dialog .result-empty-hand{padding:4px 0;color:#6f826c;font-size:13px}.result-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:22px}#result-dialog .result-section{min-width:0}#result-dialog .result-section h3{font-size:12px;letter-spacing:1px;color:#7f8c72;margin:0 0 9px;font-weight:500}#result-dialog #win-details{display:grid;gap:9px;margin:0;font-size:12px;color:#586b53;line-height:1.6}#result-dialog .winner-reason{padding:9px 11px;background:#e5e8d8;border:1px solid #d5dcc3;border-radius:7px}#result-dialog .winner-reason header{display:flex;justify-content:space-between;align-items:center;gap:8px;height:auto;min-height:0;padding:0;margin:0 0 6px;background:none;border:0;color:#3c5a3c;font-size:12px}#result-dialog .winner-reason header strong{font-weight:500}#result-dialog .winner-reason header>b{color:#8b6729;font-size:14px;white-space:nowrap}#result-dialog .score-reasons{display:flex;flex-wrap:wrap;gap:4px}#result-dialog .score-reason{display:inline-flex;gap:6px;white-space:nowrap;padding:1px 6px;background:#f7f6e9;border-radius:4px;color:#68785b;font-size:11px}#result-dialog .score-reason b{font-weight:500;color:#836a34}#result-dialog .result-draw-note{margin:0;color:#79896e;font-size:12px}#result-dialog #result-scores{display:grid;grid-template-columns:1fr;gap:0;order:0;border-top:1px solid #d7ddc9}#result-dialog .result-row{display:grid;grid-template-columns:58px minmax(0,1fr) 72px;align-items:center;gap:6px;min-height:39px;border:0;border-bottom:1px solid #d7ddc9;padding:6px 0;background:none;box-shadow:none;border-radius:0;text-align:left}#result-dialog .result-seat{display:flex;align-items:center;gap:4px;color:#8a967a;font-size:10px}#result-dialog .result-seat em{position:static;font-style:normal;font-size:9px;background:#dbd1a0;border-radius:3px;padding:1px 3px;color:#5e622f;text-shadow:none}#result-dialog .result-player{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;color:#465b41}#result-dialog .score-delta{font:600 20px/1.2 Arial,sans-serif;text-align:right;color:#78906d}#result-dialog .positive .score-delta{color:#39734b}#result-dialog .negative .score-delta{color:#ac5a46}#result-dialog .result-outcome{display:none}#result-dialog .winner{background:#e6e8d74d}.result-timer-row{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;color:#8a957d;margin-top:10px}.result-timer-row button{border:0;background:none;color:#66805c;padding:6px 0;font-size:11px}#result-dialog .dialog-actions{order:0;flex:none;justify-content:flex-end;margin:9px 0 0;gap:10px}#result-dialog .dialog-actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:0 1 150px;min-width:126px;min-height:44px;padding:10px 18px;border-radius:8px;font-size:14px;background:#e1e6d2;color:#47613e;border:1px solid #c5d0b6;box-shadow:none;text-shadow:none}#result-dialog .dialog-actions .result-continue-button{background:#2c6144;border-color:#2c6144;color:#f6efd4}#result-dialog .result-continue-button small{color:#c5d3b2;font-size:11px}
.mobile-layout #result-dialog{width:min(820px,calc(var(--logical-w,100vw) - 22px))}.mobile-layout #result-dialog .dialog-content{padding:12px 16px}.mobile-layout .result-heading{margin-bottom:7px}.mobile-layout #result-dialog h2{font-size:18px}.mobile-layout #result-dialog .winning-hand{padding:5px 0 8px;margin-bottom:8px;gap:5px}.mobile-layout #result-dialog .winner-hand .tile{width:25px;height:35px}.mobile-layout #result-dialog .winner-name{width:65px;font-size:11px}.mobile-layout .result-columns{gap:18px}.mobile-layout #result-dialog .result-section h3{margin-bottom:5px;font-size:11px}.mobile-layout #result-dialog .winner-reason{padding:6px 8px}.mobile-layout #result-dialog .result-row{min-height:32px;padding:4px 0}.mobile-layout #result-dialog .score-delta{font-size:17px}.mobile-layout #result-dialog .score-reason{font-size:10px}.mobile-layout .result-timer-row{margin-top:7px}.mobile-layout #result-dialog .dialog-actions{margin-top:5px}
.mobile-layout #mobile-panel{width:min(650px,calc(var(--logical-w) - 28px))}.mobile-layout #mobile-panel .dialog-content{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;padding:16px 20px}.mobile-layout #mobile-panel h2{grid-column:1/3;font-size:18px;margin:0}.mobile-layout #mobile-scoreboard{grid-column:1;grid-row:2/6}.mobile-layout #mobile-profit,.mobile-layout .mobile-options,.mobile-layout #mobile-model,.mobile-layout #close-mobile-panel{grid-column:2;margin:0}.mobile-layout .mobile-options{flex-direction:column;align-items:stretch}.mobile-layout .score-row{padding:7px 0}.mobile-layout .rules-grid span{padding:5px 0}.mobile-layout .dialog-content p{font-size:11px;margin:8px 0}.mobile-layout .dialog-content h2{font-size:20px;margin-top:0}.mobile-layout .dialog-content{padding:15px 20px}
@media(prefers-reduced-motion:reduce){.action-banner,.tile{animation:none!important;transition:none!important}}
.table-hud{height:78px;gap:9px}.table-hud button,.table-hud button#table-menu,.table-hud #location-toggle,.table-hud #sound-toggle,.table-hud #table-score,.table-hud #table-rules,.table-hud button#table-exit{height:72px;min-height:72px;min-width:76px;font-size:19px;padding:9px 13px}.table-hud #table-menu{min-width:64px;font-size:26px}#table-meta{font-size:18px}.table-hud .connection{font-size:16px}.rival-hand.top,.melds.top{top:94px}.seat-info.top{top:96px}.actions button{min-height:76px}.table-inlay{inset:83px 28px 14px}
.melds.right{left:994px;right:auto;top:494px;transform-origin:0 0}.setup-backdrop:hover{background:#001b17c9}
