:root{color-scheme:dark;--gold:#e0c38a;--ivory:#f1eddb;--muted:#9eb5a3;--base:#0c241e;--hand-area:145px}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overscroll-behavior:none}body{height:100dvh;min-height:500px;display:flex;flex-direction:column;overflow:hidden;background:var(--base);color:var(--ivory);font-family:-apple-system,BlinkMacSystemFont,"Microsoft YaHei","PingFang SC",sans-serif;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline:2px solid #efcc86;outline-offset:3px}svg{display:block}button>svg:not(.tile-art){width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.game-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 16px 7px;min-height:58px;flex-shrink:0;background:linear-gradient(#102f25,#0c241e)}.room-title{display:flex;align-items:flex-start;gap:7px;font-size:14px;font-weight:600;white-space:nowrap;line-height:1.5}.room-title>i{width:6px;height:6px;display:block;border-radius:50%;background:#b8cb90;box-shadow:0 0 0 4px #a7c27b12;margin-top:7px}.room-title small{display:block;font-size:9px;color:#9db398;letter-spacing:1px;font-weight:400}.game-header nav{display:flex;gap:4px;align-items:center}.game-header nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:44px;min-height:43px;padding:5px 6px;border:0;background:transparent;color:#bcd0b6;font-size:10px;border-radius:10px}.game-header nav button:active{background:#bfd09515}#sound-toggle{font-size:10px;background:#a5bc8410;border:1px solid #a6bd8226;white-space:nowrap;min-width:67px;padding:8px 6px}#sound-toggle[aria-pressed=false]{color:#82917f;background:transparent}.app-main{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 9px}.table-summary{height:35px;padding:0 6px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;font-size:10px;color:#a3b896}.round-label{display:flex;align-items:center;gap:6px;white-space:nowrap}.round-label>i{display:grid;place-items:center;width:19px;height:19px;border:1px solid #ad985c55;border-radius:5px;color:#d8c18a;font:12px serif;font-style:normal}.round-label b{font-size:11px;color:#e2d5ad;font-weight:400;margin-left:6px}.table-tag{font-size:9px;color:#839f89;letter-spacing:.5px}.layout{display:flex;flex-direction:column;flex:1;min-height:0;gap:0}.table{position:relative;flex:1;min-height:300px;isolation:isolate;overflow:hidden;border:5px solid #284738;border-radius:26px;background:radial-gradient(ellipse at 50% 30%,#3a8065 0,#276b50 45%,#175039 100%);box-shadow:0 0 0 1px #bfa57366,inset 0 0 0 1px #b9b88b6b,inset 0 0 70px #092d2055,0 8px 24px #00130e55;color:#e3ecd3}.table:before{content:'';position:absolute;inset:9px;border:1px solid #d7d8a52a;border-radius:21px;z-index:-1;background:repeating-linear-gradient(40deg,#ecf1de02 0,#ecf1de02 1px,transparent 1px,transparent 4px);pointer-events:none}.table-corner{position:absolute;top:12px;width:25px;height:25px;border-top:1px solid #d2c28c88;border-radius:10px;pointer-events:none}.corner-left{left:12px;border-left:1px solid #d2c28c88}.corner-right{right:12px;border-right:1px solid #d2c28c88}.table-watermark{position:absolute;top:23%;left:14px;writing-mode:vertical-rl;font:9px serif;letter-spacing:5px;color:#d5d4aa38;pointer-events:none}.seat{position:absolute;z-index:1;text-align:center}.seat-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;background:linear-gradient(140deg,#0c372aac,#153d2a85);border:1px solid #bac69b38;border-radius:12px;padding:8px 5px;box-shadow:0 4px 10px #002b2022}.avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid #e5d7ab;background:linear-gradient(135deg,#eadfc6,#bacba5);color:#32563b;font:19px serif;box-shadow:inset 0 0 0 2px #ffffff3b}.east .avatar{background:linear-gradient(135deg,#d9e5df,#8aafa2);color:#345d54}.west .avatar{background:linear-gradient(135deg,#efdcbe,#cba47e);color:#72503a}.north .avatar{background:linear-gradient(135deg,#e5e4ce,#b1c28b);color:#53633d}.seat-name{font-size:10px;color:#e2e5ce;white-space:nowrap;font-weight:500;line-height:1.4}.seat-score{font-size:11px;color:#e5d3a2;line-height:1.3}.seat-score small{font-size:8px;margin-left:3px;color:#aabd99}.turn-dot{display:none;position:absolute;right:-3px;top:-3px;width:9px;height:9px;border-radius:50%;background:#f4d78d;border:2px solid #406a44;box-shadow:0 0 8px #ffe4a666}.active .seat-card{border-color:#e0c382b8;background:linear-gradient(135deg,#315638,#173d29);box-shadow:0 0 0 2px #dbc37c1c,0 4px 13px #0c291e3b}.active .turn-dot{display:block}.active .avatar{box-shadow:0 0 0 3px #e1c58a24}.north{top:11px;left:50%;width:185px;transform:translateX(-50%)}.north .seat-card{flex-direction:row;justify-content:center;padding:5px 10px;gap:7px;border-radius:24px;width:max-content;margin:auto}.north .avatar{width:26px;height:26px;font-size:15px}.north .seat-name{font-size:10px}.north .seat-score{font-size:10px}.north .backs{margin-top:8px}.west,.east{top:29%;width:54px}.west{left:10px}.east{right:10px}.backs{display:flex;gap:2px;justify-content:center;margin-top:8px}.back{display:block;width:10px;height:19px;border:1px solid #9ccc78;border-right:2px solid #2a692e;border-bottom:3px solid #1e5425;border-radius:3px;background:linear-gradient(100deg,#f8ffdf44,#ffffff05 25%),linear-gradient(110deg,#358f2b,#31922b 65%,#1d6221);box-shadow:0 2px 3px #09352133}.west .backs,.east .backs{display:grid;grid-template-columns:repeat(4,8px);gap:3px 2px;justify-content:center}.west .back,.east .back{width:8px;height:15px;border-right-width:1px;border-bottom-width:2px}.smallmeld{font-size:8px;color:#e1d69e;margin-top:5px;line-height:1.6}.center{position:absolute;top:25%;left:50%;transform:translateX(-50%);text-align:center;width:150px;pointer-events:none}.compass{display:inline-flex;flex-direction:column;justify-content:center;gap:3px;min-width:77px;height:77px;border-radius:20px;border:1px solid #cad49f3b;background:linear-gradient(130deg,#173f2a4d,#2e735338);box-shadow:inset 0 1px 0 #d2dbac14,0 4px 12px #0c3d2c1a;font-size:10px;color:#abc297;line-height:16px}.compass>div{display:flex;align-items:center;justify-content:center;gap:13px}.compass b{font:29px serif;font-weight:400;color:#d6c487;text-shadow:0 1px 0 #173e27}.center p{font-size:10px;color:#ccdab9;margin:8px 0 7px;letter-spacing:.6px}#wild{display:inline-block;padding:5px 8px;max-width:180px;font-size:9px;color:#e0d29b;background:#103e2b66;border:1px solid #c8cf9336;border-radius:20px;white-space:nowrap}#latest-play{position:absolute;top:31%;right:18%;width:40px;display:flex;align-items:center;flex-direction:column;gap:7px;text-align:center;pointer-events:none}#latest-play>span{font-size:8px;color:#cfcd9c;white-space:nowrap;letter-spacing:.5px}#latest-play .tile{width:30px;height:44px;border-radius:5px;border-bottom-width:4px}.latest-empty{width:30px;height:43px;border:1px dashed #bac8984d;border-radius:5px;font-size:8px;color:#a6bd9059;display:grid;place-items:center;writing-mode:vertical-rl;letter-spacing:2px}.river{position:absolute;top:54%;bottom:var(--hand-area);left:18%;right:18%;display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:4px;padding:6px 5px;overflow:auto;border:1px solid #c5d19e14;border-radius:10px;background:#123f2a1c;scrollbar-width:thin;scrollbar-color:#639568 transparent}.tile{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;flex-direction:column}.river .tile{width:24px;height:34px;border-radius:3px;border-bottom-width:3px}.river .tile:last-child{outline:1px solid #e9d38e;outline-offset:2px}.bottom{position:absolute;bottom:13px;left:5px;right:5px;z-index:2;text-align:center}.player{display:flex;justify-content:center;margin-bottom:7px}.player .seat-card{display:flex;flex-direction:row;align-items:center;gap:7px;padding:4px 10px;background:#123e2a70;border-radius:22px}.player .avatar{width:23px;height:23px;font-size:14px;border-width:1px}.player .seat-name{font-size:10px}.player .seat-score{font-size:10px}.player.active .seat-card{border-color:#d5bd7970}.player .turn-dot{display:none}.hand-tools{display:flex;justify-content:space-between;align-items:center;margin:0 7px 6px;gap:8px;color:#b1c69b;font-size:8px;min-height:21px}.hand-tools>span{font-size:8px;letter-spacing:.2px}.hand-tools button{min-height:25px;border:1px solid #b8c58e40;border-radius:20px;padding:3px 9px;font-size:9px;color:#e1d5a5;background:#163f2b66}.hand{display:flex;justify-content:center;gap:2px;align-items:flex-end;min-height:60px;padding-top:10px;overflow:visible}.hand .tile{width:calc((100% - 26px)/14);max-width:45px;height:55px;min-width:0;padding:0;border-radius:5px;border-right-width:2px;border-left-width:1px;border-bottom-width:5px;transition:transform .14s,box-shadow .14s;cursor:grab}.hand .tile:last-child{margin-left:0}.hand .tile:disabled{opacity:.95;cursor:default}.hand .tile.selected{transform:translateY(-10px);outline:2px solid #f0d389;outline-offset:0;box-shadow:1px 3px 0 #2d7334,1px 5px 0 #20572b,2px 8px 10px #082d1b77,0 0 0 2px #d8b36e55}.hand .tile.drag-source{opacity:.25;transform:none}.hand .tile.drop-target{outline:2px dashed #f2d690;outline-offset:3px}#melds{height:0;min-height:0;margin:0}#melds:not(:empty){height:28px;margin-bottom:4px}.meld-group{display:inline-flex;align-items:center;margin-right:7px;gap:0}.meld-group small{font-size:8px;color:#d8d9ad;margin-right:3px}#melds .tile{width:17px;height:24px;border-right-width:1px;border-bottom-width:3px;border-radius:3px}.operation-dock{flex-shrink:0;padding:12px 6px 10px;background:var(--base);border:0;box-shadow:none;position:relative;min-height:100px}.status{font-size:11px;color:#b1c59e;line-height:1.6;margin-bottom:8px;display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status:before{content:'';flex-shrink:0;width:5px;height:5px;background:#c7b777;border-radius:50%}.operation-row{display:flex;align-items:stretch;gap:9px;min-height:48px}.hint-button{display:flex;flex-direction:column;gap:4px;justify-content:center;align-items:center;width:43px;flex-shrink:0;border:1px solid #9bb17e29;border-radius:12px;background:#1c3e2e;color:#c2d0ac;font-size:9px}.hint-button svg{width:17px;height:17px;stroke-width:1.4}.hint-button:active{background:#32563a}.selection-summary{display:flex;flex-direction:column;justify-content:center;gap:5px;min-width:83px;flex:1}.selection-summary strong{font-size:13px;font-weight:500;color:#e3e2c4}.selection-summary>span{font-size:9px;color:#91a988;white-space:nowrap}#actions{display:flex;justify-content:flex-end;align-items:stretch;gap:7px;flex:1.25;min-width:100px}#actions button{flex:1;min-width:51px;min-height:48px;border:1px solid #e9d5a8;border-bottom:3px solid #aa8957;border-radius:12px;padding:8px 13px;font-size:16px;font-weight:600;letter-spacing:2px;white-space:nowrap;color:#35462a;background:linear-gradient(125deg,#f0d9a6,#d6b87e);box-shadow:0 3px 9px #061c1444}#actions button:disabled{background:#284334;border-color:#3d5942;color:#7c9477;box-shadow:none}#actions button.gold{background:linear-gradient(120deg,#ffe3a0,#e5b65c);color:#584016;border-color:#f1d296}#actions button:active:not(:disabled){transform:translateY(1px);filter:brightness(.95)}#actions:empty:before{content:'牌友思考中…';display:grid;place-items:center;font-size:12px;width:100%;border:1px solid #3c584033;border-radius:12px;background:#173426;color:#8ea984}.many-actions .selection-summary{display:none}.many-actions #actions{flex:1}.app-tabs{display:grid;grid-template-columns:repeat(4,1fr);flex-shrink:0;padding:7px 14px max(8px,env(safe-area-inset-bottom));gap:10px;min-height:57px;border-top:1px solid #a2b58320;background:#0a211a}.app-tabs button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:40px;padding:0;border:0;border-radius:10px;background:none;color:#8ca88d;font-size:9px;letter-spacing:1px}.app-tabs button svg{width:19px;height:19px;stroke-width:1.5}.app-tabs button.active{color:#ead09b}.app-tabs button.active:before{content:'';position:absolute;width:30px;height:2px;top:-8px;border-radius:3px;background:#dac18a}.app-tabs button:active{background:#bed69c0d}.tab-badge{position:absolute;top:0;left:calc(50% + 12px);font-size:7px;color:#b4c78d;background:#2c4c32;border:1px solid #8ca06750;padding:1px 3px;border-radius:3px;white-space:nowrap;font-style:normal;letter-spacing:0}.app-dialog{width:calc(100% - 28px);max-width:450px;max-height:88dvh;padding:23px;border:1px solid #b5b68155;border-radius:23px;background:linear-gradient(140deg,#234936,#122e22);box-shadow:0 25px 80px #00130e88;color:#e9e8ce;overflow:auto}.app-dialog::backdrop{background:#04140fc4;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;gap:14px;align-items:center}.eyebrow{font-size:8px;letter-spacing:2.3px;color:#a9ba8c}.dialog-heading h2,.app-dialog h2{font-size:25px;font-family:serif;letter-spacing:2px;font-weight:400;color:#ecdbb5;margin:8px 0 0}.dialog-x{width:33px;height:33px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:1px solid #b1c18b30;background:#ffffff08;color:#c2d0ad;font:24px sans-serif}.dialog-description{font-size:11px;line-height:1.9;color:#a4bc99;margin:15px 0 20px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid #b9c3911a}.setting-row strong{display:block;font-size:13px;font-weight:500;color:#e4e5c8}.setting-row small{display:block;font-size:10px;color:#99b48f;line-height:1.7;margin-top:5px}.setting-row input{appearance:none;-webkit-appearance:none;width:39px;height:23px;flex-shrink:0;border-radius:15px;background:#1b3527;border:1px solid #738e6066;position:relative;margin:0;transition:background .15s;cursor:pointer}.setting-row input:before{content:'';position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#809777;transition:transform .15s}.setting-row input:checked{background:#bda66a;border-color:#dfc68e}.setting-row input:checked:before{transform:translateX(16px);background:#f9edc8}.setting-row input:focus-visible{outline:2px solid #f0d18c;outline-offset:3px}.rules-note{padding:15px 14px;background:#09291d66;border:1px solid #a1b17d20;border-radius:12px;margin:18px 0}.rules-note h3{font-size:11px;color:#c7d1a8;margin:0 0 8px;font-weight:500}.rules-note p{font-size:10px;line-height:1.9;color:#95ae88;margin:7px 0}.primary-button,.secondary-button,.text-button{width:100%;min-height:45px;border-radius:11px;font-size:13px;font-weight:500;letter-spacing:1px}.primary-button{border:1px solid #ead3a0;border-bottom:3px solid #ac8c56;color:#34442c;background:linear-gradient(120deg,#edd7a7,#d3b579)}.secondary-button{background:#2c4d35;color:#cad5ae;border:1px solid #7b98604d}.text-button{background:transparent;color:#abbc98;border:0;margin-top:8px;font-size:11px}.history-list{max-height:47dvh;overflow:auto;font-size:11px;color:#a5bf99;line-height:1.9;margin-bottom:20px}.history-list>div{position:relative;padding:11px 8px 11px 20px;border-bottom:1px solid #a1b17d1a}.history-list>div:before{content:'';width:4px;height:4px;border-radius:50%;background:#729158;position:absolute;left:3px;top:19px}.history-list>div:first-child{color:#e4d3a2}.history-list>div:first-child:before{background:#e0c38a}.compact-dialog{text-align:center;max-width:350px}.dialog-symbol{display:grid;place-items:center;width:57px;height:57px;margin:0 auto 16px;border:1px solid #d2bb7f55;border-radius:18px;background:#ceb26d0f;font-size:31px;color:#dac18b}#result{position:absolute;z-index:6;top:15%;left:7%;right:7%;padding:23px 18px;border:1px solid #e4cc96;border-radius:20px;text-align:center;background:linear-gradient(135deg,#faf3ddf5,#e9ebd3fa);color:#3b563a;box-shadow:0 15px 45px #00271988;font-size:10px;line-height:1.7}#result[hidden]{display:none}#result h2{font:25px serif;color:#30553a;margin:8px 0 13px}#result p{font-size:11px;color:#68805a}#result .result-tiles{display:flex;flex-wrap:wrap;justify-content:center;gap:4px}#result .result-tiles .tile{width:24px;height:34px;border-right-width:1px;border-bottom-width:3px;border-radius:3px}#result button{min-height:42px;padding:10px 24px;border:1px solid #3a7451;border-bottom:3px solid #244e34;border-radius:10px;background:linear-gradient(125deg,#386e49,#254e35);color:#f2e7c8;font-size:12px}.table-focus .game-header,.table-focus .table-summary,.table-focus .app-tabs{display:none}.table-focus .app-main{padding-top:10px}.table-focus .table{min-height:360px}.table-focus .operation-dock{padding-bottom:15px}#exit-focus{position:absolute;z-index:5;right:11px;top:11px;min-height:31px;padding:6px 9px;border:1px solid #d7c58d44;border-radius:8px;background:#0e3628c9;color:#e1d3a3;font-size:9px}#exit-focus[hidden]{display:none}
@media(min-width:600px) and (min-height:600px){.app-main{max-width:1100px;width:100%;margin:auto;padding-left:20px;padding-right:20px}.game-header{max-width:1100px;width:100%;margin:auto;padding-left:24px;padding-right:24px}.app-tabs{padding-left:calc((100% - min(600px,100%))/2);padding-right:calc((100% - min(600px,100%))/2)}.hand .tile{height:72px;max-width:48px}.hand{min-height:80px}.bottom{left:16px;right:16px}.river{bottom:175px;left:20%;right:20%;top:51%}.river .tile{width:29px;height:40px}.west,.east{width:75px}.west{left:18px}.east{right:18px}.avatar{width:40px;height:40px;font-size:23px}.seat-name{font-size:12px}.seat-score{font-size:12px}.north .avatar{width:30px;height:30px}.north{width:230px}.center{top:24%}#latest-play{right:24%;top:30%;width:48px}#latest-play .tile{width:39px;height:56px}.operation-dock{padding:15px 6px}.operation-row{max-width:620px;margin:auto}.status{max-width:620px;margin:0 auto 9px;font-size:12px}.table-summary{height:40px}.room-title{font-size:16px}}
@media(max-height:650px) and (orientation:portrait){body{min-height:470px}.game-header{min-height:49px;padding-top:3px;padding-bottom:3px}.room-title{font-size:12px}.room-title small{font-size:8px}.table-summary{height:29px}.table{min-height:260px;border-radius:22px}.north{top:7px}.north .backs{margin-top:5px}.back{height:15px;width:9px}.center{top:24%}.compass{height:58px;min-width:63px;border-radius:16px;font-size:8px;line-height:12px;gap:1px}.compass b{font-size:23px}.center p{margin:5px 0;font-size:9px}#wild{font-size:8px;padding:4px 7px}.west,.east{top:27%;width:49px}.avatar{width:26px;height:26px;font-size:16px}.seat-card{padding:6px 3px}.seat-name{font-size:9px}.west .backs,.east .backs{display:none}#latest-play{top:30%;right:19%;gap:5px}#latest-play .tile{width:25px;height:35px}#latest-play>span{font-size:7px}.river{top:54%;bottom:126px;padding:4px;gap:3px}.river .tile{width:20px;height:28px}.bottom{bottom:10px}.hand .tile{height:47px}.hand{min-height:51px;padding-top:8px}.hand-tools{margin-bottom:3px;min-height:18px}.hand-tools button{min-height:21px;font-size:8px}.player{margin-bottom:4px}.player .avatar{height:20px;width:20px;font-size:12px}.player .seat-card{padding:3px 8px}.operation-dock{padding:8px 5px;min-height:83px}.status{font-size:10px;margin-bottom:6px}.operation-row{min-height:43px}#actions button{min-height:43px;font-size:15px}.selection-summary strong{font-size:12px}.selection-summary>span{font-size:8px}.app-tabs{min-height:50px;padding-top:6px;padding-bottom:6px}.app-tabs button{min-height:36px;font-size:8px}.app-tabs button svg{height:17px;width:17px}}
@media(orientation:landscape) and (max-height:599px){body{min-height:270px}.game-header{min-height:39px;padding:2px 16px}.room-title{font-size:12px}.room-title small{display:none}.game-header nav button{min-height:32px;flex-direction:row;gap:5px;min-width:64px;font-size:9px}.game-header nav button svg{height:16px;width:16px}#sound-toggle{min-height:30px;padding:6px 8px;font-size:9px}.app-main{padding:0 9px 7px}.table-summary{height:25px;padding-bottom:4px}.layout{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 172px;gap:10px;min-height:0}.table{min-height:200px;border-radius:22px}.operation-dock{display:flex;flex-direction:column;justify-content:center;border:1px solid #a7bd7b26;border-radius:18px;margin:0;padding:13px;min-height:0;background:#153526}.status{font-size:10px;white-space:normal;overflow:visible;margin-bottom:12px;line-height:1.8;align-items:flex-start}.status:before{margin-top:6px}.operation-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.selection-summary{flex:1;min-width:70px;order:0}.selection-summary strong{font-size:12px}.selection-summary>span{font-size:8px;white-space:normal}.hint-button{height:38px;width:35px;order:1}.hint-button svg{height:14px;width:14px}.hint-button span{font-size:8px}#actions{width:100%;min-width:0;flex-basis:100%;order:2;flex-wrap:wrap}#actions button{min-height:41px;font-size:14px;min-width:45px;padding:7px}.app-tabs{position:absolute;right:13px;bottom:12px;width:166px;z-index:3;min-height:30px;padding:0 4px;gap:1px;border:0;background:transparent}.app-tabs button{min-height:29px;font-size:7px;gap:3px}.app-tabs button svg{height:14px;width:14px}.app-tabs .active:before,.tab-badge{display:none}.operation-dock{padding-bottom:47px}.north{top:6px;width:170px}.north .seat-card{padding:3px 9px;gap:5px}.north .avatar{width:21px;height:21px;font-size:13px}.north .seat-name,.north .seat-score{font-size:9px}.north .backs{margin-top:4px}.back{width:8px;height:13px}.west,.east{top:31%;width:47px}.west{left:8px}.east{right:8px}.west .backs,.east .backs{display:none}.seat-card{padding:5px 4px;gap:3px}.avatar{width:25px;height:25px;font-size:15px}.seat-name{font-size:9px}.seat-score{font-size:9px}.seat-score small{font-size:7px}.center{top:22%;width:140px}.compass{height:49px;min-width:62px;border-radius:13px;gap:0;font-size:7px;line-height:11px}.compass b{font-size:20px}.compass>div{gap:9px}.center p{font-size:8px;margin:4px 0}#wild{font-size:8px;padding:3px 7px}.river{left:16%;right:16%;top:54%;bottom:90px;gap:3px;padding:4px}.river .tile{width:19px;height:26px;border-bottom-width:3px}#latest-play{top:28%;right:22%;gap:4px;width:32px}#latest-play .tile{height:32px;width:23px}#latest-play>span{font-size:7px}.latest-empty{height:32px;width:23px;font-size:7px}.bottom{bottom:9px;left:8px;right:8px}.hand .tile{max-width:35px;height:44px}.hand{min-height:46px;padding-top:7px;gap:3px}.hand-tools{position:absolute;right:4px;bottom:52px;width:auto;margin:0;min-height:19px}.hand-tools>span{display:none}.hand-tools button{padding:3px 7px;min-height:20px;font-size:8px}.player{position:absolute;left:3px;bottom:52px;margin:0}.player .seat-card{padding:3px 7px;gap:5px}.player .avatar{width:18px;height:18px;font-size:11px}.player .seat-name,.player .seat-score{font-size:8px}#melds:not(:empty){height:24px;margin-bottom:2px}.table-focus .app-main{padding-top:7px}.table-focus .table{min-height:200px}.table-focus .layout{grid-template-columns:minmax(0,1fr) 172px}.table-focus .operation-dock{padding-bottom:13px}.app-dialog{max-height:94dvh;max-width:510px;padding:18px 23px}.dialog-heading h2,.app-dialog h2{font-size:23px}.setting-row{padding:10px 0}.dialog-description{margin:10px 0 14px}.rules-note{margin:12px 0;padding:12px}.history-list{max-height:45dvh}#result{top:8%;padding:14px}#result h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.tile.joker:after{content:"混";position:absolute;right:0;top:0;z-index:2;min-width:9px;border-radius:2px;padding:1px;background:#ecd18fe8;color:#725224;font:7px sans-serif;line-height:1.15}.hand .tile.joker{border-top-color:#f2d693}.game-header nav button{min-height:44px}
.hint-button:disabled{opacity:.4;cursor:default}@media(orientation:landscape) and (max-height:599px){.center{top:24%}.compass{height:33px}.compass>span{display:none}}

@media(orientation:portrait){.has-melds .river{bottom:calc(var(--hand-area) + 30px)}}
@media(max-height:560px) and (orientation:portrait){body{min-height:570px;height:auto;overflow-y:auto}.table{min-height:330px}.has-melds .river{top:48%;bottom:156px}.has-melds .center{top:23%}.has-melds .compass{height:38px}.has-melds .compass>span{display:none}}

#voice-panel{background:linear-gradient(140deg,#234936,#122e22);border:1px solid #b5b68155;border-radius:23px;color:#e9e8ce;box-shadow:0 25px 80px #00130e88}#voice-panel::backdrop{background:#04140fc4;backdrop-filter:blur(4px)}#voice-panel h2{font-family:serif;color:#ecdbb5;font-weight:400}.app-tabs #voice-open.voice-connected{background:#7f9b3d19;border-radius:10px;color:#e9d098}.app-tabs #voice-open.voice-live{color:#efdc9b;box-shadow:inset 0 0 0 1px #d8ce8155}.install-entry{margin-top:10px}.install-dialog p{font-size:12px;line-height:1.9;color:#b3c5a0}.install-dialog .primary-button{margin-top:12px}
