:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;@media (width<=1024px){font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}:root{color-scheme:light;--am-font:-apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;--am-bg-0:#eef4ef;--am-bg-1:#dfeee5;--am-surface:#ffffffb8;--am-surface-strong:#ffffffe6;--am-surface-soft:#ffffff7a;--am-glass-dark:#12261d94;--am-text:#18231d;--am-text-muted:#18231d9e;--am-text-inverse:#f7fbf8;--am-border:#2844351f;--am-border-strong:#28443533;--am-accent:#1f8f62;--am-accent-2:#0a84ff;--am-warn:#ff9f0a;--am-danger:#ff453a;--am-gold:#c9952c;--am-radius-xs:8px;--am-radius-sm:12px;--am-radius-md:18px;--am-radius-lg:24px;--am-radius-xl:32px;--am-blur:blur(26px) saturate(170%);--am-shadow-soft:0 18px 55px #1c312724;--am-shadow-card:0 24px 80px #1c31272e, inset 0 1px 0 #ffffffbf;--am-shadow-float:0 18px 44px #0000002e, inset 0 1px 0 #ffffff61}html,body,#root{width:100%;min-height:100%}#root{max-width:none;text-align:initial;background:var(--am-bg-0);border:0;margin:0}body{background:radial-gradient(circle at 8% 0%, #5cc08233, transparent 28%), radial-gradient(circle at 92% 10%, #0a84ff1f, transparent 32%), linear-gradient(145deg, var(--am-bg-0), var(--am-bg-1));min-height:100svh;color:var(--am-text);font-family:var(--am-font);-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button,input,select,textarea{font-family:var(--am-font)}button{-webkit-tap-highlight-color:transparent}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#1f8f6238 padding-box content-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background-color:#1f8f625c}@supports (height:100dvh){body{min-height:100dvh}}@media (width<=768px){:root{font-size:15px}body{overflow-x:hidden}}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px;@media (width<=1024px){margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%;@media (width<=1024px){font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.lobby{justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.lobby-card{background:linear-gradient(135deg,#1e321ef2,#142814f2);border:1px solid #f0c04033;border-radius:16px;width:100%;max-width:440px;padding:32px;box-shadow:0 8px 32px #0006}.lobby-title{text-align:center;color:#f0c040;margin:0 0 4px;font-size:28px}.lobby-subtitle{text-align:center;color:#a0a080;margin:0 0 24px;font-size:14px}.mode-tabs{border:1px solid #f0c04033;border-radius:8px;margin-bottom:20px;display:flex;overflow:hidden}.mode-tab{color:#a0a080;cursor:pointer;background:#0000004d;border:none;flex:1;padding:10px;font-size:14px;font-weight:600;transition:all .2s}.mode-tab.active{color:#f0c040;background:#f0c04033}.mode-tab:hover:not(.active){background:#f0c0401a}.form-section{flex-direction:column;gap:12px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:#c0b87a;font-size:13px;font-weight:500}.form-group input[type=text],.form-group input[type=password],.form-group select{color:#e8dcc8;background:#0000004d;border:1px solid #c0b87a4d;border-radius:8px;outline:none;padding:10px 14px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#f0c040}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23c0b87a' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.toggle-row{flex-wrap:wrap;gap:16px;display:flex}.toggle-label{color:#c0b87a;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.toggle-label input[type=checkbox]{accent-color:#f0c040;width:16px;height:16px}.btn-primary{color:#fff;cursor:pointer;background:linear-gradient(135deg,#c0392b,#a93226);border:none;border-radius:8px;margin-top:8px;padding:12px 24px;font-size:15px;font-weight:600;transition:all .2s}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-start{background:linear-gradient(135deg,#f39c12,#e67e22);padding:14px 32px;font-size:18px}.btn-start:hover:not(:disabled){box-shadow:0 4px 16px #f39c1266}.room-view{max-width:500px}.room-id-section{text-align:center;margin-bottom:20px}.room-id-label{color:#a0a080;margin-bottom:4px;font-size:12px;display:block}.room-id-display{cursor:pointer;background:#f0c0401a;border:1px dashed #f0c0404d;border-radius:8px;align-items:center;gap:8px;padding:8px 20px;transition:all .2s;display:inline-flex}.room-id-text{color:#f0c040;letter-spacing:2px;font-family:monospace;font-size:20px;font-weight:700}.copy-hint{color:#a0a080;font-size:11px}.share-url-hint{box-sizing:border-box;background:#ffffff14;border:1px dashed #f0c04059;border-radius:10px;max-width:100%;margin-top:10px;padding:8px 12px}.share-url-hint .share-url-text{color:#d0c88a;white-space:nowrap;text-overflow:ellipsis;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:block;overflow:hidden}.room-settings{margin-bottom:20px}.room-settings h3{color:#c0b87a;margin:0 0 8px;font-size:14px}.settings-grid{flex-wrap:wrap;gap:8px;display:flex}.setting-item{color:#a0a080;background:#0000004d;border:1px solid #ffffff0d;border-radius:6px;padding:4px 12px;font-size:12px}.setting-item.on{color:#27ae60;border-color:#27ae604d}.setting-item.off{color:#c0392b;border-color:#c0392b4d}.setting-item.protected{color:#f39c12;border-color:#f39c124d}.player-list-section{margin-bottom:20px}.player-list-section h3{color:#c0b87a;margin:0 0 8px;font-size:14px}.player-list{flex-direction:column;gap:6px;display:flex}.player-list-item{background:#0003;border:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:10px;padding:10px 14px;display:flex}.player-list-item.empty{opacity:.4}.player-seat{color:#a0a080;text-align:center;background:#0000004d;border-radius:4px;min-width:28px;padding:2px 8px;font-size:11px}.player-list-name{color:#e8dcc8;flex:1;font-size:14px}.host-badge{color:#f0c040;background:#f0c04033;border-radius:4px;padding:2px 6px;font-size:10px}.self-badge{color:#27ae60;background:#27ae6033;border-radius:4px;padding:2px 6px;font-size:10px}.lobby-actions{text-align:center}.waiting-hint{color:#a0a080;margin:12px 0 0;font-size:13px}@media (width<=480px){.lobby-card{padding:20px 16px}.lobby-title{font-size:24px}.room-id-text{font-size:16px}}.lobby{background:radial-gradient(circle at 18% 12%,#ffffffeb,#0000 22%),radial-gradient(circle at 80% 16%,#0a84ff1f,#0000 26%),linear-gradient(145deg,#eef6f0,#d9eadf);min-height:100dvh;padding:clamp(18px,4vw,48px)}.lobby-card{border-radius:var(--am-radius-xl);max-width:520px;color:var(--am-text);box-shadow:var(--am-shadow-card);-webkit-backdrop-filter:var(--am-blur);background:linear-gradient(145deg,#ffffffdb,#ffffff8a),#ffffffa3;border:1px solid #ffffffb8;padding:clamp(24px,4vw,42px)}.lobby-title{color:var(--am-text);letter-spacing:-1.2px;margin-bottom:8px;font-size:clamp(30px,5vw,42px);font-weight:850;line-height:1.04}.lobby-subtitle{color:var(--am-text-muted);margin-bottom:28px;font-size:15px}.mode-tabs{border:1px solid var(--am-border);background:#14291d0f;border-radius:999px;gap:6px;padding:5px;overflow:visible}.mode-tab{color:var(--am-text-muted);background:0 0;border-radius:999px;padding:11px 12px;font-weight:760}.mode-tab:first-child{border-right:0}.mode-tab.active{color:var(--am-accent);background:#ffffffeb;box-shadow:0 8px 22px #1f8f621f,inset 0 1px #ffffffe6}.mode-tab:hover:not(.active){color:var(--am-text);background:#ffffff6b}.form-section{gap:14px}.form-group label,.room-settings h3,.player-list-section h3{color:var(--am-text-muted);letter-spacing:.04em;font-size:12px;font-weight:800}.form-group input[type=text],.form-group input[type=password],.form-group select{min-height:46px;color:var(--am-text);background:#ffffffb8;border:1px solid #28443524;border-radius:16px;padding:12px 15px;font-size:16px;box-shadow:inset 0 1px #ffffffdb}.form-group input::placeholder{color:#18231d5c}.form-group input:focus,.form-group select:focus{border-color:#0a84ff61;box-shadow:0 0 0 4px #0a84ff1f,inset 0 1px #ffffffe6}.form-group select option{color:var(--am-text);background:#f7fbf8}.toggle-label{color:var(--am-text-muted);font-weight:700}.toggle-label input[type=checkbox]{accent-color:var(--am-accent)}.btn-primary,.settlement-btn,.cycle-btn{letter-spacing:-.01em;border-radius:999px;min-height:46px;font-weight:850}.btn-primary{color:#fff;background:linear-gradient(145deg,#31b978,#168052);box-shadow:0 14px 30px #1f8f6238,inset 0 1px #ffffff52}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 38px #1f8f6247}.btn-primary:disabled{opacity:.38;filter:saturate(.7)}.btn-start{color:#fff;background:linear-gradient(145deg,#34c983,#1f8f62)}.room-id-display{background:#ffffffb8;border:1px solid #1f8f6233;border-radius:18px;padding:10px 18px;box-shadow:inset 0 1px #ffffffdb,0 10px 24px #18322214}.room-id-display:hover{background:#ffffffe6;border-color:#1f8f625c}.room-id-label,.copy-hint,.waiting-hint{color:var(--am-text-muted)}.room-id-text{color:var(--am-accent);letter-spacing:1.6px}.setting-item,.player-list-item{border:1px solid var(--am-border);color:var(--am-text-muted);background:#ffffff8f;border-radius:16px}.player-list-item{padding:12px 14px}.player-list-item.host{background:#1f8f6214;border-color:#1f8f6242}.player-list-name{color:var(--am-text);font-weight:760}.player-seat,.host-badge,.self-badge{border-radius:999px}.player-seat{color:var(--am-text-muted);background:#18231d14}.host-badge{color:#9a6a12;background:#c9952c24}@media (width<=480px){.lobby{align-items:flex-start;padding:14px}.lobby-card{border-radius:26px;margin-top:8px;padding:22px 16px}.lobby-title{font-size:31px}.mode-tabs{margin-bottom:16px}.room-id-display{flex-wrap:wrap;justify-content:center;width:100%}}.mahjong-tile{--tile-accent:#c0392b;cursor:default;user-select:none;background:radial-gradient(circle at 24% 18%,#fffffff5,#0000 28%),radial-gradient(circle at 78% 82%,#bee1d029,#0000 36%),linear-gradient(145deg,#fffdf4 0%,#f7f0dc 48%,#dfd0ad 100%);border:1px solid #a99067b8;border-radius:10px;justify-content:center;align-items:center;width:52px;height:72px;transition:transform .14s,box-shadow .14s,filter .14s;display:flex;position:relative;overflow:hidden;box-shadow:0 7px #c2ad83,0 10px 13px #1d11074d,inset 0 2px 3px #fffffff0,inset 0 -5px 10px #7c674029}.mahjong-tile:before{content:"";pointer-events:none;background:repeating-linear-gradient(115deg,#0000 0 18px,#7eaa940b 18px 20px),radial-gradient(circle at 60% 40%,#ffffff38,#0000 30%);position:absolute;inset:0}.mahjong-tile:after{content:"";pointer-events:none;border:1px solid #95794e38;border-radius:7px;position:absolute;inset:4px}.felt-grain{opacity:.22;mix-blend-mode:multiply;background:repeating-linear-gradient(20deg,#0000 0 4px,#6f4e2a24 4px 5px),repeating-linear-gradient(100deg,#0000 0 7px,#ffffff3d 7px 8px);position:absolute;inset:0}.mahjong-tile.tile-small{border-radius:8px;width:38px;height:52px;box-shadow:0 5px #c2ad83,0 7px 9px #1d110742,inset 0 2px 2px #ffffffe6,inset 0 -4px 7px #7c674024}.mahjong-tile.tile-clickable{cursor:pointer}.mahjong-tile.tile-clickable:hover{filter:saturate(1.08);transform:translateY(-5px)}.mahjong-tile.tile-selected{filter:saturate(1.15)brightness(1.03);outline:3px solid #ffd45a;transform:translateY(-10px)}.tile-selected-indicator{background:#ffd45a;border-radius:50%;width:8px;height:8px;position:absolute;bottom:5px;left:50%;transform:translate(-50%);box-shadow:0 0 8px #ffd45a}.mahjong-tile.tile-highlighted{outline:2px solid #ffd45a;box-shadow:0 7px #c2ad83,0 10px 13px #1d11074d,0 0 18px #ffd45ad1,inset 0 2px 3px #fffffff0}.tile-face-plate{pointer-events:none;background:#ffffff29;border-radius:8px;position:absolute;inset:5px;box-shadow:inset 0 0 0 1px #91785224}.tile-content{z-index:2;filter:drop-shadow(0 1px #fffc);justify-content:center;align-items:center;width:80%;height:72%;display:flex;position:relative}.tile-corner{z-index:3;color:#4c3a229e;font-size:8px;font-weight:900;line-height:1;position:absolute}.corner-bottom{bottom:6px;right:7px;transform:rotate(180deg)}.tile-small .tile-corner{font-size:7px}.tile-art{place-items:center;width:100%;height:100%;display:grid;position:relative}.dots{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:4px;width:38px;height:48px;padding:4px;display:grid}.dot{color:#1468b3;background:#1468b3;border:1px solid;border-radius:50%;place-self:center;width:11px;height:11px;position:relative;box-shadow:inset 0 0 0 2px #fff6df,inset 0 0 0 4px,0 1px 1px #0003}.dot i{background:currentColor;border-radius:50%;position:absolute;inset:4px;box-shadow:0 0 0 1px #ffffff8c}.dot-red{color:#d92323;background:#d92323}.dot-blue{color:#1468b3;background:#1468b3}.dot-green{color:#118348;background:#118348}.dots-1 .dot{grid-area:2/2;width:20px;height:20px}.dots-1 .dot i{inset:7px}.dots-2 .dot-0{grid-area:1/1}.dots-2 .dot-1{grid-area:3/3}.dots-3 .dot-0{grid-area:1/1}.dots-3 .dot-1{grid-area:2/2}.dots-3 .dot-2{grid-area:3/3}.dots-4 .dot-0{grid-area:1/1}.dots-4 .dot-1{grid-area:1/3}.dots-4 .dot-2{grid-area:3/1}.dots-4 .dot-3{grid-area:3/3}.dots-5 .dot-4{grid-area:2/2}.dots-6 .dot:nth-child(-n+3){grid-row:1}.dots-6 .dot:nth-child(n+4){grid-row:3}.dots-7 .dot-6{grid-area:2/2}.dots-8 .dot:nth-child(7){grid-area:2/1}.dots-8 .dot:nth-child(8){grid-area:2/3}.bamboo{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:3px;width:38px;height:50px;padding:4px;display:grid}.bamboo-stick{background:linear-gradient(90deg,#0b6d3b 0%,#39bd6e 45%,#0b6d3b 100%);border:1px solid #004b2659;border-radius:6px;width:7px;height:17px;position:relative;box-shadow:inset 0 2px #ffffff61,0 1px 1px #0000002e}.bamboo-stick i,.bamboo-stick:before,.bamboo-stick:after{content:"";opacity:.92;background:#d92323;border-radius:2px;height:2px;position:absolute;left:1px;right:1px}.bird-body{background:linear-gradient(#1f9f59,#0b633a);border-radius:55% 55% 45% 45%;width:19px;height:26px;position:absolute;top:16px;left:11px;box-shadow:inset 0 3px #ffffff40}.bird-head{background:#d92323;border-radius:50%;width:13px;height:13px;position:absolute;top:6px;left:14px;box-shadow:8px 4px 0 -5px #111}.bird-wing{opacity:.92;background:#1468b3;border-radius:60% 20% 70% 30%;width:14px;height:22px;position:absolute;top:22px}.bird-tail{clip-path:polygon(50% 100%,0 0,50% 28%,100% 0);background:#d92323;width:11px;height:13px;position:absolute;bottom:3px;left:15px}.wan-art.classic-wan,.wan-art{flex-direction:column;justify-content:center;align-items:center;gap:0;line-height:.9;display:flex}.wan-number,.wan-cloud{text-shadow:0 1px #ffffffe6,0 2px 2px #00000029;font-family:STKaiti,Kaiti SC,Songti SC,Noto Serif CJK SC,serif;font-weight:900}.wan-cloud{min-width:auto;min-height:auto;box-shadow:none;color:#111;background:0 0;border-radius:0;font-size:25px}.honor-char{text-shadow:0 1px #ffffffe6,0 2px 3px #0000002e;font-family:STKaiti,Kaiti SC,Songti SC,Noto Serif CJK SC,serif;font-size:34px;font-weight:900}.honor-label,.honor-halo{display:none}.tile-face-down .tile-back-pattern{background:radial-gradient(circle,#ffffff2e 0 3px,#0000 4px),repeating-linear-gradient(45deg,#0000 0 5px,#ffffff14 5px 7px),repeating-linear-gradient(-45deg,#0000 0 5px,#0000000d 5px 7px);border:1px dashed #ffffff38;border-radius:8px;position:absolute;inset:8px}.back-flower{color:#ffffff6b;place-items:center;font-size:22px;display:grid;position:absolute;inset:0}.tile-small .dot{border-width:1px;width:7px;height:7px;box-shadow:inset 0 0 0 1px #fff6df,inset 0 0 0 3px,0 1px 1px #00000029}.tile-small .dot i{inset:3px}.tile-small .dots-1 .dot i{inset:4px}.tile-small .wan-number{font-size:17px}.tile-small .wan-cloud{font-size:16px}.tile-small .honor-char{font-size:20px}.bamboo:not(.bamboo-1){place-items:center;gap:2px 4px;padding:3px 5px}.bamboo-stick:before,.bamboo-stick i,.bamboo-stick:after{background:linear-gradient(90deg,#8c1818,#d92323 45%,#8c1818);height:2px;left:0;right:0;box-shadow:0 1px #ffffff47}.bamboo-3 .stick-0{grid-area:1/1}.bamboo-3 .stick-1{grid-area:2/2}.bamboo-3 .stick-2{grid-area:3/3}.bamboo-4 .stick-0{grid-area:1/1}.bamboo-6 .bamboo-stick:nth-child(-n+3){grid-row:1}.bamboo-6 .bamboo-stick:nth-child(n+4){grid-row:3}.bamboo-7 .stick-6{grid-area:2/2}.bamboo-8 .stick-6{grid-area:2/1}.bamboo-8 .stick-7{grid-area:2/3}.bamboo-1{width:39px;height:50px;display:block}.bird-body{background:radial-gradient(circle at 50% 18%,#ffffff57,#0000 24%),linear-gradient(#25aa60 0%,#0b6b3d 100%);border-radius:58% 58% 42% 42%;width:18px;height:25px;top:17px;left:10px}.bird-head{background:radial-gradient(circle at 68% 38%,#111 0 1.5px,#0000 2px),#d82323;width:12px;height:12px;top:7px;left:14px}.bird-wing{background:linear-gradient(#ffffff29,#0000 32%),#176fbd;width:13px;height:21px;top:22px}.bird-tail{background:linear-gradient(90deg,#d92323,#f0c040,#d92323);width:14px;height:14px;bottom:3px;left:13px}@media (width<=768px){.position-bottom .hand-row .mahjong-tile{border-radius:8px;width:44px;height:61px;box-shadow:0 5px #c2ad83,0 7px 9px #1d11073d,inset 0 2px 3px #ffffffeb,inset 0 -4px 8px #7c674024}.position-bottom .hand-row .tile-content{transform:scale(.86)}.central-discards .mahjong-tile.tile-small,.melds-row .mahjong-tile.tile-small{border-radius:7px;width:31px;height:42px}.central-discards .tile-small .tile-content,.melds-row .tile-small .tile-content{transform:scale(.72)}}@media (width<=480px){.position-bottom .hand-row .mahjong-tile{border-radius:7px;width:39px;height:55px}.position-bottom .hand-row .tile-content{transform:scale(.76)}.position-bottom .hand-row .tile-corner{font-size:6px}.central-discards .mahjong-tile.tile-small,.melds-row .mahjong-tile.tile-small{border-radius:6px;width:27px;height:37px}.central-discards .tile-small .tile-content,.melds-row .tile-small .tile-content{transform:scale(.62)}}.mahjong-tile{background:radial-gradient(circle at 24% 16%,#fffffffa,#0000 26%),linear-gradient(145deg,#fffef8 0%,#f7f3e7 56%,#e6dac0 100%);border-color:#a2937475;border-radius:12px;box-shadow:0 5px #c9b994,0 8px 14px #1f2c232e,inset 0 2px 3px #fffffff2,inset 0 -4px 9px #7c67401f}.mahjong-tile:after{border-color:#95794e29}.mahjong-tile.tile-clickable:hover{transform:translateY(-4px);box-shadow:0 8px #c9b994,0 14px 24px #1f2c2333,inset 0 2px 3px #fffffff5,inset 0 -4px 9px #7c67401f}.mahjong-tile.tile-selected{transform:translateY(-8px);box-shadow:0 10px #d0aa55,0 18px 28px #ff9f0a33,0 0 0 3px #ff9f0a42,inset 0 2px 3px #fffffff5}.mahjong-tile.tile-highlighted{box-shadow:0 5px #c9b994,0 8px 14px #1f2c232e,0 0 0 3px #1f8f6238,inset 0 2px 3px #fffffff5}.tile-face-down .tile-back-pattern{border-radius:10px}@media (width<=768px){.mahjong-tile:not(.tile-small){border-radius:10px;width:clamp(31px,8.6vw,43px);height:clamp(43px,12vw,60px);box-shadow:0 4px #c9b994,0 6px 10px #1f2c2329,inset 0 2px 2px #ffffffe6}.tile-content{transform:scale(.84)}}.mahjong-tile{background:radial-gradient(circle at 28% 14%,#fffffffa,#0000 24%),linear-gradient(145deg,#fffdf5 0%,#f6efe0 52%,#e1d2b4 100%);border:1px solid #9a86637a;border-radius:13px;width:50px;height:70px;box-shadow:0 5px #c8b58d,0 9px 16px #1e241c2e,inset 0 2px 3px #fffffff5,inset 0 -5px 10px #745c381f}.mahjong-tile:before{background:linear-gradient(145deg,#ffffff38,#0000 38%),radial-gradient(circle at 68% 74%,#74a78d12,#0000 32%)}.mahjong-tile:after{border:1px solid #846f4b26;border-radius:10px;inset:4px;box-shadow:inset 0 0 0 1px #ffffff42}.tile-face-plate{background:linear-gradient(#fff3,#ffffff0a);border-radius:9px;inset:6px;box-shadow:inset 0 0 0 1px #826c4814}.tile-content{filter:drop-shadow(0 1px #ffffffc2)drop-shadow(0 1px 1px #3c281424);width:76%;height:70%}.tile-corner{letter-spacing:-.5px;color:#47362370;font-family:ui-serif,Songti SC,STSong,Noto Serif CJK SC,serif;font-size:7px}.corner-top{top:6px;left:7px}.corner-bottom{bottom:6px;right:7px}.dots{gap:3px;width:36px;height:46px;padding:4px}.dot{background:radial-gradient(circle,#fffdf2 0 18%,currentColor 19% 32%,#fffdf2 33% 47%,currentColor 48% 67%,#0000 68%);border:1px solid;width:10px;height:10px;box-shadow:inset 0 0 0 1px #ffffffa6,0 1px 1px #3425132e}.dot i{width:2px;height:2px;box-shadow:none;background:currentColor;inset:50%;transform:translate(-50%,-50%)}.dot-red{color:#cf2626;background-color:#0000}.dot-blue{color:#1767ad;background-color:#0000}.dot-green{color:#16864d;background-color:#0000}.dots-1 .dot{color:#1767ad;background:radial-gradient(circle,#fffdf2 0 16%,#cf2626 17% 30%,#fffdf2 31% 43%,#1767ad 44% 59%,#fffdf2 60% 70%,#16864d 71% 100%);width:21px;height:21px}.dots-1 .dot i{background:#cf2626;width:4px;height:4px}.dots-5 .dot-4,.dots-7 .dot-6,.dots-8 .dot:nth-child(7),.dots-8 .dot:nth-child(8),.dots-9 .dot:nth-child(5){color:#cf2626}.bamboo:not(.bamboo-1){gap:2px 4px;width:36px;height:47px;padding:4px 5px}.bamboo-stick{background:radial-gradient(at 46% 16%,#fff9,#0000 30%),linear-gradient(90deg,#064b2a 0%,#159152 28%,#5ed789 50%,#16864d 72%,#043f24 100%);border:1px solid #02492675;border-radius:9px;width:7px;height:17px;box-shadow:inset 0 1px #ffffff70,inset 0 -1px #0000002e,0 1px 1px #1e241c24}.bamboo-stick:before,.bamboo-stick i,.bamboo-stick:after{background:linear-gradient(90deg,#7c1616,#d82b2b 48%,#7c1616);border-radius:3px;height:2px;left:-1px;right:-1px;box-shadow:0 1px #ffffff3d}.bamboo-stick i{top:8px}.bamboo-stick:after{top:13px}.bamboo-3 .stick-0{transform:rotate(-8deg)}.bamboo-3 .stick-1{transform:rotate(0)}.bamboo-3 .stick-2{transform:rotate(8deg)}.bamboo-5 .stick-4,.bamboo-7 .stick-6{background:radial-gradient(at 46% 16%,#fff9,#0000 30%),linear-gradient(90deg,#7c1616,#d82b2b 48%,#7c1616);border-color:#7c16166b}.bird-body,.bird-head,.bird-wing,.bird-tail{display:block;position:absolute}.bird-body{background:radial-gradient(circle at 50% 20%,#ffffff61,#0000 24%),linear-gradient(#2bbb6b 0%,#0d7544 100%);border:1px solid #05623661;border-radius:58% 58% 44% 44%;width:17px;height:24px;top:17px;left:10px;box-shadow:inset 0 2px 1px #ffffff38,0 1px 1px #1e241c24}.bird-head{background:radial-gradient(circle at 68% 38%,#101010 0 1.6px,#0000 2px),linear-gradient(#ee3a32,#b91c1c);border-radius:60% 60% 52% 52%;width:12px;height:12px;top:7px;left:13px}.bird-head:before{content:"";clip-path:polygon(0 0,100% 50%,0 100%);background:#d89a1d;width:7px;height:4px;position:absolute;top:4px;right:-5px}.bird-wing{background:repeating-linear-gradient(115deg,#ffffff2e 0 2px,#0000 2px 5px),linear-gradient(#2d7fc5,#125a9a);border:1px solid #125a9a52;border-radius:70% 40% 70% 36%;width:13px;height:20px;top:22px}.wing-left{left:3px;transform:rotate(-28deg)}.wing-right{right:3px;transform:scaleX(-1)rotate(-28deg)}.bird-tail{clip-path:polygon(50% 100%,4% 0,34% 14%,50% 0,66% 14%,96% 0);background:conic-gradient(from 215deg,#cf2626,#f4bf3b,#16864d,#1767ad,#cf2626);border-radius:0 0 70% 70%;width:14px;height:13px;bottom:2px;left:12px}.classic-wan{flex-direction:column;justify-content:center;align-items:center;gap:2px;font-family:Kaiti SC,STKaiti,Songti SC,Noto Serif CJK SC,serif;display:flex}.wan-number,.wan-cloud{text-shadow:0 1px #ffffffdb,0 1px 1px #00000029;font-weight:900;line-height:.96}.wan-number{color:#cf2626;font-size:27px}.wan-cloud{color:#151515;font-size:27px}.honor-art{font-family:Kaiti SC,STKaiti,Songti SC,Noto Serif CJK SC,serif}.honor-char{letter-spacing:-2px;font-size:35px;font-weight:900;line-height:1}.dragon-art .honor-char{color:#cf2626}.wind-art .honor-char{color:#141414}.tile-jian .honor-char{text-shadow:0 1px #ffffffd9,0 2px 2px #cf26261f}.tile-feng .honor-char{text-shadow:0 1px #ffffffd9,0 2px 2px #0000001f}.mahjong-tile.tile-face-down{background:radial-gradient(circle at 28% 18%,#ffffff61,#0000 24%),linear-gradient(145deg,#d7f2e3 0%,#81cda0 46%,#2b8e63 100%);border-color:#1f8f6257;box-shadow:0 5px #1c704d,0 9px 16px #17422d33,inset 0 2px 2px #ffffff61,inset 0 -5px 10px #09462d2e}.tile-face-down .tile-back-pattern{background:radial-gradient(circle,#ffffff47 0 3px,#0000 4px),radial-gradient(circle,#0000 0 10px,#ffffff24 11px 12px,#0000 13px),repeating-linear-gradient(45deg,#0000 0 6px,#ffffff14 6px 8px);border:1px solid #ffffff47;border-radius:10px;inset:7px;box-shadow:inset 0 0 0 1px #125d3d1f}.back-flower{color:#ffffff7a;font-size:20px}.tile-small .tile-content{transform:scale(.8)}.tile-small .tile-corner{display:none}.tile-small .dot{width:8px;height:8px}.tile-small .dots-1 .dot{width:14px;height:14px}.tile-small .bamboo-stick:before{top:2px}.tile-small .bamboo-stick i{top:5px}.tile-small .bamboo-stick:after{top:9px}.tile-small .wan-number,.tile-small .wan-cloud{font-size:18px}.tile-small .honor-char{letter-spacing:-1px;font-size:22px}.tile-small .bird-body{width:12px;height:16px;top:17px;left:11px}.tile-small .bird-head{width:8px;height:8px;top:9px;left:14px}.tile-small .bird-head:before{width:5px;height:3px;top:3px;right:-4px}.tile-small .bird-wing{width:8px;height:13px;top:21px}.tile-small .bird-tail{width:9px;height:8px;left:13px}@media (width<=768px){.position-bottom .hand-row .mahjong-tile{width:clamp(34px,8.8vw,44px);height:clamp(48px,12.3vw,61px)}.position-bottom .hand-row .tile-content{transform:scale(.8)}}@media (width<=480px){.position-bottom .hand-row .tile-content{transform:scale(.72)}.central-discards .tile-small .tile-content,.melds-row .tile-small .tile-content{transform:scale(.58)}}.bamboo:not(.bamboo-1){place-items:center!important;gap:4px!important;width:38px!important;height:52px!important;display:grid!important}.bamboo-stick{background:linear-gradient(90deg,#ffffff6b,#0000 28%,#00482a2e 74%,#00241647),linear-gradient(#43c879 0%,#15924f 48%,#08713d 100%)!important;border:1px solid #005c3261!important;border-radius:999px!important;width:7px!important;height:18px!important;overflow:visible!important;box-shadow:inset 0 2px #ffffff85,inset 0 -2px #00321c38,0 1px 2px #0000002e!important}.bamboo-stick:before,.bamboo-stick:after{content:""!important;opacity:.92!important;background:linear-gradient(90deg,#0b6f3c,#d62828 50%,#0b6f3c)!important;border-radius:999px!important;height:3px!important;position:absolute!important;left:-2px!important;right:-2px!important;box-shadow:0 1px #ffffff57!important}.bamboo-stick i{background:#ffffff5c!important;border-radius:999px!important;width:2px!important;height:100%!important;top:0!important;left:50%!important;transform:translate(-50%)!important;box-shadow:2px 0 #00412329!important}.bamboo-2,.bamboo-3{grid-template-columns:repeat(2,auto)!important}.bamboo-3 .stick-2{grid-column:1/-1;justify-self:center}.bamboo-4{grid-template-columns:repeat(2,auto)!important}.bamboo-5{grid-template-columns:repeat(3,auto)!important}.bamboo-5 .stick-2{--bamboo-red:1}.bamboo-6,.bamboo-7{grid-template-columns:repeat(3,auto)!important}.bamboo-7 .stick-3{--bamboo-red:1}.bamboo-8{grid-template-columns:repeat(4,auto)!important;gap:3px!important}.bamboo-9{grid-template-columns:repeat(3,auto)!important;gap:3px!important}.bamboo-stick[style],.bamboo-5 .stick-2,.bamboo-7 .stick-3{background:linear-gradient(90deg,#ffffff6b,#0000 28%,#5a000024 74%,#32000038),linear-gradient(#ff6262 0%,#d62828 52%,#a71212 100%)!important;border-color:#8f000052!important}.tile-small .bamboo-stick{width:5px!important;height:12px!important}.tile-small .bamboo:not(.bamboo-1){gap:2px!important;width:28px!important;height:36px!important}.tile-content{overflow:visible!important}.dots{grid-template-rows:repeat(4,1fr)!important;grid-template-columns:repeat(3,1fr)!important;place-items:center!important;gap:2px!important;width:38px!important;height:50px!important;padding:1px!important;display:grid!important}.dot{background:radial-gradient(circle,currentColor 0 18%,#0000 19% 29%,currentColor 30% 42%,#0000 43% 56%,currentColor 57% 100%)!important;border:1.5px solid!important;border-radius:50%!important;width:10px!important;height:10px!important;box-shadow:inset 0 0 0 1px #ffffffd1,0 1px 1px #22180d33!important}.dot i{display:none!important}.dot-red{color:#d32121!important}.dot-blue{color:#155fb5!important}.dot-green{color:#118345!important}.dots-1 .dot{grid-area:2/2/span 2;color:#155fb5!important;background:radial-gradient(circle,#d32121 0 15%,#fffdf2 16% 28%,#155fb5 29% 48%,#fffdf2 49% 61%,#118345 62% 100%)!important;width:22px!important;height:22px!important}.dots-2 .dot-0{grid-area:1/1;color:#155fb5!important}.dots-2 .dot-1{grid-area:4/3;color:#118345!important}.dots-3 .dot-0{grid-area:1/1;color:#155fb5!important}.dots-3 .dot-1{grid-area:2/2/span 2;color:#d32121!important}.dots-3 .dot-2{grid-area:4/3;color:#118345!important}.dots-4 .dot-0{grid-area:1/1;color:#155fb5!important}.dots-4 .dot-1{grid-area:1/3;color:#118345!important}.dots-4 .dot-2{grid-area:4/1;color:#118345!important}.dots-4 .dot-3{grid-area:4/3;color:#155fb5!important}.dots-5 .dot-0{grid-area:1/1;color:#155fb5!important}.dots-5 .dot-1{grid-area:1/3;color:#118345!important}.dots-5 .dot-2{grid-area:2/2/span 2;color:#d32121!important}.dots-5 .dot-3{grid-area:4/1;color:#118345!important}.dots-5 .dot-4{grid-area:4/3;color:#155fb5!important}.dots-6 .dot:first-child{grid-area:1/1;color:#155fb5!important}.dots-6 .dot:nth-child(2){grid-area:1/3;color:#118345!important}.dots-6 .dot:nth-child(3){grid-area:2/1/span 2;color:#d32121!important}.dots-6 .dot:nth-child(4){grid-area:2/3/span 2;color:#d32121!important}.dots-6 .dot:nth-child(5){grid-area:4/1;color:#118345!important}.dots-6 .dot:nth-child(6){grid-area:4/3;color:#155fb5!important}.dots-7 .dot:first-child{grid-area:1/1;color:#155fb5!important}.dots-7 .dot:nth-child(2){grid-area:1/3;color:#118345!important}.dots-7 .dot:nth-child(3){grid-area:2/1;color:#155fb5!important}.dots-7 .dot:nth-child(4){grid-area:2/2/span 2;color:#d32121!important}.dots-7 .dot:nth-child(5){grid-area:2/3;color:#118345!important}.dots-7 .dot:nth-child(6){grid-area:4/1;color:#118345!important}.dots-7 .dot:nth-child(7){grid-area:4/3;color:#155fb5!important}.dots-8,.dots-9{grid-template-rows:repeat(4,1fr)!important}.dots-8 .dot:nth-child(odd){grid-column:1}.dots-8 .dot:nth-child(2n){grid-column:3}.dots-8 .dot:first-child,.dots-8 .dot:nth-child(2){grid-row:1;color:#155fb5!important}.dots-8 .dot:nth-child(3),.dots-8 .dot:nth-child(4){grid-row:2;color:#118345!important}.dots-8 .dot:nth-child(5),.dots-8 .dot:nth-child(6){grid-row:3;color:#118345!important}.dots-8 .dot:nth-child(7),.dots-8 .dot:nth-child(8){grid-row:4;color:#d32121!important}.dots-9 .dot:first-child,.dots-9 .dot:nth-child(4),.dots-9 .dot:nth-child(7){grid-column:1}.dots-9 .dot:nth-child(2),.dots-9 .dot:nth-child(5),.dots-9 .dot:nth-child(8){grid-column:2}.dots-9 .dot:nth-child(3),.dots-9 .dot:nth-child(6),.dots-9 .dot:nth-child(9){grid-column:3}.dots-9 .dot:nth-child(-n+3){grid-row:1;color:#155fb5!important}.dots-9 .dot:nth-child(n+4):nth-child(-n+6){grid-row:2/span 2;color:#d32121!important}.dots-9 .dot:nth-child(n+7){grid-row:4;color:#118345!important}.bamboo:not(.bamboo-1){grid-template-rows:repeat(4,1fr)!important;grid-template-columns:repeat(4,1fr)!important;place-items:center!important;gap:2px!important;width:38px!important;height:52px!important;display:grid!important}.bamboo-stick{background:linear-gradient(90deg,#034421 0%,#0f8d47 22%,#7ae29b 50%,#0f8d47 76%,#034421 100%)!important;border:1px solid #004c268c!important;border-radius:999px!important;width:7px!important;height:18px!important;position:relative!important}.bamboo-stick:before,.bamboo-stick:after,.bamboo-stick i{content:""!important;background:#d32121!important;border-radius:999px!important;height:2px!important;position:absolute!important;left:-2px!important;right:-2px!important;box-shadow:0 1px #ffffff59!important}.bamboo-stick:before{top:4px!important}.bamboo-stick i{width:auto!important;top:8px!important;transform:none!important}.bamboo-stick:after{top:13px!important;bottom:auto!important}.bamboo-2 .stick-0{grid-area:1/2/span 2;transform:rotate(-3deg)!important}.bamboo-2 .stick-1{grid-area:3/3/span 2;transform:rotate(3deg)!important}.bamboo-3 .stick-0{grid-area:2/1/span 2;transform:rotate(-8deg)!important}.bamboo-3 .stick-1{grid-area:2/2/span 2/span 2;transform:rotate(0)!important}.bamboo-3 .stick-2{grid-area:2/4/span 2;transform:rotate(8deg)!important}.bamboo-4 .bamboo-stick:first-child,.bamboo-4 .stick-0{grid-area:1/1/span 2}.bamboo-4 .stick-1{grid-area:1/4/span 2}.bamboo-4 .stick-2{grid-area:3/1/span 2}.bamboo-4 .stick-3{grid-area:3/4/span 2}.bamboo-5 .stick-0{grid-area:1/1/span 2}.bamboo-5 .stick-1{grid-area:1/4/span 2}.bamboo-5 .stick-2{grid-area:2/2/span 2/span 2;background:linear-gradient(90deg,#761010,#e0382f 50%,#761010)!important;border-color:#820a0a80!important}.bamboo-5 .stick-3{grid-area:3/1/span 2}.bamboo-5 .stick-4{grid-area:3/4/span 2}.bamboo-6 .bamboo-stick:nth-child(odd){grid-column:1}.bamboo-6 .bamboo-stick:nth-child(2n){grid-column:4}.bamboo-6 .bamboo-stick:first-child,.bamboo-6 .bamboo-stick:nth-child(2){grid-row:1/span 1}.bamboo-6 .bamboo-stick:nth-child(3),.bamboo-6 .bamboo-stick:nth-child(4){grid-row:2/span 2}.bamboo-6 .bamboo-stick:nth-child(5),.bamboo-6 .bamboo-stick:nth-child(6){grid-row:4}.bamboo-7 .bamboo-stick:first-child,.bamboo-7 .bamboo-stick:nth-child(2),.bamboo-7 .bamboo-stick:nth-child(3){grid-row:1/span 2}.bamboo-7 .bamboo-stick:first-child{grid-column:1}.bamboo-7 .bamboo-stick:nth-child(2){grid-column:2/span 2;background:linear-gradient(90deg,#761010,#e0382f 50%,#761010)!important;border-color:#820a0a80!important}.bamboo-7 .bamboo-stick:nth-child(3){grid-column:4}.bamboo-7 .bamboo-stick:nth-child(4),.bamboo-7 .bamboo-stick:nth-child(5),.bamboo-7 .bamboo-stick:nth-child(6),.bamboo-7 .bamboo-stick:nth-child(7){grid-row:3/span 2}.bamboo-7 .bamboo-stick:nth-child(4){grid-column:1}.bamboo-7 .bamboo-stick:nth-child(5){grid-column:2}.bamboo-7 .bamboo-stick:nth-child(6){grid-column:3}.bamboo-7 .bamboo-stick:nth-child(7){grid-column:4}.bamboo-8 .bamboo-stick:first-child,.bamboo-8 .bamboo-stick:nth-child(2),.bamboo-8 .bamboo-stick:nth-child(3),.bamboo-8 .bamboo-stick:nth-child(4){grid-row:1/span 2}.bamboo-8 .bamboo-stick:nth-child(5),.bamboo-8 .bamboo-stick:nth-child(6),.bamboo-8 .bamboo-stick:nth-child(7),.bamboo-8 .bamboo-stick:nth-child(8){grid-row:3/span 2}.bamboo-8 .bamboo-stick:nth-child(4n+1){grid-column:1}.bamboo-8 .bamboo-stick:nth-child(4n+2){grid-column:2}.bamboo-8 .bamboo-stick:nth-child(4n+3){grid-column:3}.bamboo-8 .bamboo-stick:nth-child(4n){grid-column:4}.bamboo-9 .bamboo-stick:nth-child(-n+3){grid-row:1}.bamboo-9 .bamboo-stick:nth-child(n+4):nth-child(-n+6){grid-row:2/span 2}.bamboo-9 .bamboo-stick:nth-child(n+7){grid-row:4}.bamboo-9 .bamboo-stick:nth-child(3n+1){grid-column:1}.bamboo-9 .bamboo-stick:nth-child(3n+2){grid-column:2/span 2}.bamboo-9 .bamboo-stick:nth-child(3n){grid-column:4}.bamboo-1{width:39px!important;height:51px!important}.bird-body{background:linear-gradient(#1faf5f,#087342)!important}.bird-head{background:linear-gradient(#e33832,#9f1717)!important}.bird-wing{background:linear-gradient(#1767b7,#0c4a8e)!important}.tile-corner{display:none!important}.tile-model-image{object-fit:contain;user-select:none;pointer-events:none;filter:saturate(1.06)contrast(1.02);width:118%;max-width:none;height:118%;max-height:none;display:block;transform:translateY(-1px)}.mahjong-tile.tile-tiao .tile-content,.mahjong-tile.tile-tong .tile-content,.mahjong-tile.tile-jian .tile-content:has(.tile-model-image){filter:none!important;width:92%!important;height:92%!important}.mahjong-tile.tile-tiao .tile-face-plate,.mahjong-tile.tile-tong .tile-face-plate,.mahjong-tile.tile-jian .tile-face-plate{opacity:.22}.mahjong-tile.tile-small .tile-model-image{width:124%;height:124%}.player-area{border:2px solid #0000;border-radius:8px;padding:8px;transition:border-color .3s;display:flex;position:relative}.player-area.current-turn{border-color:#f0c04099;animation:1.5s ease-in-out infinite turn-pulse}@keyframes turn-pulse{0%,to{border-color:#f0c04066}50%{border-color:#f0c040cc}}.position-bottom,.position-top{flex-direction:column;align-items:center}.position-left{flex-direction:row;justify-content:flex-start;align-items:center}.position-right{flex-direction:row;justify-content:flex-end;align-items:center}.player-info{white-space:nowrap;background:#0000004d;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:4px 8px;display:flex}.player-name{color:#e8dcc8;font-size:13px;font-weight:600}.dealer-star{color:#f0c040;margin-right:2px}.player-wind{color:#a0a080;background:#ffffff14;border-radius:3px;padding:1px 6px;font-size:11px}.player-score{color:#f0c040;margin-left:auto;font-size:12px;font-weight:600}.player-cards{flex-direction:column;gap:4px;display:flex}.position-bottom .player-cards{flex-direction:row;align-items:flex-end;gap:10px}.position-bottom .melds-row{background:#0000002e;border:1px solid #f0c0401f;border-radius:10px;flex:none;order:0;padding:6px 8px}.position-bottom .hand-row{flex:auto;order:1;justify-content:flex-start}.position-bottom .meld-group{opacity:.92}.position-bottom .meld-group .tile,.position-bottom .meld-group .tile *{cursor:default}.position-left .player-cards,.position-right .player-cards{flex-direction:column}.melds-row{flex-wrap:wrap;align-items:flex-end;gap:4px;display:flex}.meld-group{align-items:flex-end;gap:1px;display:flex;position:relative}.meld-type-label{color:#c0b87a;white-space:nowrap;background:#0006;border-radius:2px;padding:1px 4px;font-size:9px;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)}.hand-row{flex-wrap:wrap;justify-content:center;gap:2px;display:flex}.face-down-row{gap:2px}.discards-row{flex-wrap:wrap;align-items:center;gap:2px;margin-top:2px;display:flex}.row-label{color:#807860;white-space:nowrap;margin-right:4px;font-size:10px}.position-bottom{padding:12px 8px 8px}.position-bottom .player-cards{flex-direction:column}.position-top .hand-row{flex-direction:row-reverse}.position-left .hand-row{flex-direction:column;align-items:center;max-height:400px;overflow-y:auto}.position-right .hand-row{flex-direction:column-reverse;align-items:center;max-height:400px;overflow-y:auto}.position-left .meld-group,.position-right .meld-group{flex-direction:column;gap:1px}.position-left .melds-row,.position-right .melds-row{flex-direction:column;gap:8px}.current-user .player-info{background:#f0c04026;border:1px solid #f0c0404d}.current-user .player-name{color:#f0c040}@media (width<=768px){.player-area{padding:4px}.player-info{padding:2px 6px;font-size:11px}.player-name{font-size:11px}.position-left .hand-row,.position-right .hand-row{max-height:200px}}.opponent-hand-summary{color:#eadfbf;background:#0000003d;border:1px solid #f0c0402e;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-width:96px;padding:6px 9px;display:inline-flex;box-shadow:inset 0 1px #ffffff0f}.hand-count-number{color:#f0c040;font-size:15px;font-weight:900;line-height:1}.hand-count-label{color:#eadfbfc7;white-space:nowrap;font-size:11px;font-weight:700}.mini-tile-stack{align-items:center;width:28px;height:16px;display:inline-flex;position:relative}.mini-tile-stack i{background:linear-gradient(145deg,#7fc9a0,#237a5e);border:1px solid #0c463473;border-radius:3px;width:9px;height:14px;margin-left:-5px;box-shadow:0 1px 2px #0000003d}.mini-tile-stack i:first-child{margin-left:0}@media (width<=768px){.player-area{border-width:1px;border-radius:12px}.position-top,.position-left,.position-right{background:#0000001f;flex-direction:column;align-items:stretch;width:100%;padding:4px 5px}.position-top .player-cards,.position-left .player-cards,.position-right .player-cards{align-items:center}.player-info{border-radius:999px;justify-content:center;gap:4px;width:100%;margin-bottom:3px}.player-score{margin-left:0;font-size:10px}.player-wind{padding:1px 5px;font-size:10px}.opponent-hand-summary{gap:4px;width:100%;min-width:0;max-width:156px;padding:4px 7px}.hand-count-number{font-size:13px}.hand-count-label{font-size:10px}.mini-tile-stack{width:22px;height:13px}.mini-tile-stack i{width:8px;height:12px;margin-left:-5px}.position-top .melds-row,.position-left .melds-row,.position-right .melds-row{flex-wrap:nowrap;gap:5px;max-width:100%;padding-bottom:2px;overflow-x:auto}.position-left .meld-group,.position-right .meld-group,.position-top .meld-group{flex-direction:row;flex:none}.position-bottom{width:100%;padding:6px 2px 2px}.position-bottom .player-info{width:auto;max-width:calc(100vw - 18px);margin-bottom:4px}.position-bottom .player-cards{width:100%;min-width:0}.position-bottom .hand-row{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;max-width:calc(100vw - 14px);padding:8px 6px 12px;overflow:auto hidden}.position-bottom .hand-row .mahjong-tile{scroll-snap-align:center;flex:none}}@media (width<=480px){.player-name{text-overflow:ellipsis;white-space:nowrap;max-width:86px;overflow:hidden}.position-top,.position-left,.position-right{padding:3px 4px}.opponent-hand-summary{max-width:132px}.position-bottom .hand-row{gap:1px;max-width:calc(100vw - 8px);padding-left:4px;padding-right:4px}}.player-area{-webkit-backdrop-filter:blur(18px)saturate(145%);background:#ffffff75;border:1px solid #ffffff8a;border-radius:22px;padding:8px;box-shadow:0 12px 34px #18322214,inset 0 1px #ffffffb8}.player-area.current-turn{border-color:#1f8f626b;animation:none;box-shadow:0 14px 38px #1f8f6224,inset 0 1px #ffffffc7}.player-area.current-turn:after{content:"";border-radius:inherit;pointer-events:none;border:2px solid #1f8f622e;position:absolute;inset:-3px}.player-info{background:#ffffffa3;border:1px solid #28443514;border-radius:999px;gap:5px;margin-bottom:6px;padding:5px 8px;box-shadow:inset 0 1px #ffffffbf}.player-name{color:var(--am-text);letter-spacing:-.01em;font-size:12px;font-weight:850}.dealer-star{color:var(--am-warn)}.player-wind{color:var(--am-accent);background:#1f8f621a;border-radius:999px;font-weight:850}.player-score{color:var(--am-text-muted);font-weight:760}.player-cards{gap:6px}.melds-row,.hand-row,.discards-row{gap:3px}.meld-group{background:#ffffff85;border:1px solid #28443514;border-radius:13px;padding:3px}.meld-type-label{color:var(--am-accent);background:#1f8f621f;border-radius:999px;font-weight:850}.opponent-hand-summary{background:#ffffff85;border:1px solid #28443514;border-radius:16px;padding:7px 8px}.hand-count{color:var(--am-text-muted);font-size:11px;font-weight:820}.mini-tile-stack{gap:2px}.opponent-mini-tile{background:linear-gradient(145deg,#d8f3e4,#6ec493 56%,#23865b);border-radius:4px;width:10px;height:16px;box-shadow:0 2px 3px #18322224,inset 0 1px #ffffff73}.hand-row:not(.opponent-hand-summary){background:#ffffff61;border:1px solid #ffffff80;border-radius:18px;padding:6px}@media (width<=768px){.player-area{border-radius:16px;padding:5px}.player-info{gap:3px;margin-bottom:4px;padding:3px 5px}.player-name{text-overflow:ellipsis;max-width:54px;font-size:10px;overflow:hidden}.player-wind,.player-score{padding:1px 4px;font-size:9px}.opponent-hand-summary{border-radius:12px;padding:5px}.hand-count{font-size:10px}.opponent-mini-tile{border-radius:3px;width:7px;height:12px}.position-bottom.current-user{background:#ffffff80;width:100%}.position-bottom .hand-row:not(.opponent-hand-summary){border-radius:16px;justify-content:flex-start;width:100%;padding:5px;overflow-x:auto}.position-top .melds-row,.position-left .melds-row,.position-right .melds-row{flex-wrap:nowrap;max-width:100%;overflow-x:auto}}.position-bottom .player-cards{flex-direction:row!important;align-items:flex-end!important;gap:10px!important;width:100%!important}.position-bottom .melds-row{background:linear-gradient(145deg,#e0f4e8c7,#c1e2cf8a);border:1px solid #1f8f6238;border-radius:15px;flex-wrap:nowrap;align-self:flex-end;gap:5px;min-height:58px;display:flex;position:relative;box-shadow:0 5px 14px #1850351a,inset 0 1px #ffffffc7;flex:none!important;order:0!important;padding:14px 7px 7px!important}.position-bottom .melds-row:before{content:"固定副露";color:var(--am-accent,#1f8f62);letter-spacing:.04em;font-size:9px;font-weight:900;position:absolute;top:4px;left:8px}.position-bottom .meld-group{opacity:.96;pointer-events:none;filter:saturate(.86)}.position-bottom .meld-group .mahjong-tile,.position-bottom .meld-group .tile,.position-bottom .meld-group *{user-select:none;cursor:default!important}.position-bottom .hand-row{min-width:0;flex:auto!important;order:1!important;justify-content:flex-start!important}.player-area,.player-cards,.hand-row{min-width:0}.player-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=768px){.position-top,.position-left,.position-right{min-width:0!important}.position-top .player-info,.position-left .player-info,.position-right .player-info{white-space:normal!important;flex-wrap:wrap!important;line-height:1.1!important}.position-bottom{padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))!important;z-index:3!important}.position-bottom .player-info{white-space:normal!important;flex-wrap:wrap!important;justify-content:center!important}.position-bottom .hand-row{touch-action:pan-x!important;z-index:5!important;min-height:82px!important;margin-bottom:0!important;padding:8px 8px 14px!important;position:relative!important}.position-bottom .hand-row .mahjong-tile{pointer-events:auto!important;touch-action:manipulation!important}}@media (width<=480px){.position-bottom .hand-row{min-height:76px!important;padding-bottom:12px!important}}.position-bottom .hand-row{align-items:flex-end}.drawn-tile-slot{flex:none;margin-left:14px;display:inline-flex;position:relative}.drawn-tile-slot:before{content:"摸";color:#1f8f62d1;font-size:10px;font-weight:900;line-height:1;position:absolute;top:50%;left:-11px;transform:translateY(-50%)}@media (width<=768px){.drawn-tile-slot{margin-left:11px}.drawn-tile-slot:before{font-size:9px;left:-9px}}.position-bottom .hand-row:not(.opponent-hand-summary),.current-user .hand-row:not(.opponent-hand-summary),.position-bottom.current-user,.position-bottom.current-user.player-area{box-shadow:none!important;-webkit-backdrop-filter:none!important;background:0 0!important;border-color:#0000!important}.position-bottom.current-user:after{display:none!important}.meld-group .mahjong-tile.face-down{background:linear-gradient(145deg,#2a5a3a,#1a3a2a)!important;border:1px solid #14503299!important;box-shadow:0 3px #0a2a1a,0 5px 8px #0000004d!important}.meld-group .mahjong-tile.face-down:before{content:""!important;background:linear-gradient(135deg,#ffffff0f,#0000001f)!important;border-radius:4px!important}.meld-group .mahjong-tile.face-down .tile-corner,.meld-group .mahjong-tile.face-down .tile-art,.meld-group .mahjong-tile.face-down .tile-model-image,.meld-group .mahjong-tile.face-down .tile-content,.meld-group .mahjong-tile.face-down .felt-grain{display:none!important}.meld-type-label.angang-label{color:#ff9800!important;font-weight:900!important}.player-area{min-height:0;overflow:hidden}.melds-row{flex-shrink:0;max-height:56px;overflow:hidden;align-items:flex-end!important;gap:10px!important;max-height:none!important;padding:3px 3px 18px!important;overflow:visible!important}.meld-group{background:#ffffffad!important;border:1px solid #1f8f6229!important;border-radius:14px!important;flex:none!important;gap:2px!important;padding:4px 5px 14px!important;overflow:visible!important;box-shadow:0 8px 18px #18322214,inset 0 1px #ffffffd1!important}.meld-type-label{z-index:6!important;letter-spacing:.04em!important;color:#fff!important;white-space:nowrap!important;text-shadow:0 1px 1px #0000002e!important;border:1px solid #ffffff8f!important;border-radius:999px!important;justify-content:center!important;align-items:center!important;min-width:22px!important;height:18px!important;padding:0 7px!important;font-size:10px!important;font-weight:1000!important;line-height:1!important;display:inline-flex!important;position:absolute!important;bottom:-7px!important;left:50%!important;transform:translate(-50%)!important;box-shadow:0 5px 12px #1832222e,inset 0 1px #ffffff52!important}.position-top .melds-row,.position-left .melds-row,.position-right .melds-row{max-width:100%!important}@media (width<=768px){.melds-row{gap:7px!important;padding-bottom:17px!important}.meld-group{padding:3px 4px 13px!important}.meld-type-label{min-width:20px!important;height:17px!important;padding-inline:6px!important;font-size:9px!important}}.melds-row{align-items:flex-start!important;padding:4px 3px 6px!important;overflow:visible!important}.meld-group{contain:paint!important;grid-template-rows:auto auto!important;grid-template-columns:repeat(4,auto)!important;justify-content:center!important;align-items:end!important;gap:2px 1px!important;padding:4px 5px 5px!important;display:grid!important;overflow:hidden!important}.meld-group .mahjong-tile{grid-row:1!important}.meld-type-label{z-index:1!important;box-sizing:border-box!important;grid-area:2/1/auto/-1!important;justify-self:center!important;height:18px!important;min-height:18px!important;max-height:18px!important;margin-top:3px!important;line-height:18px!important;position:static!important;transform:none!important}.position-top .melds-row{place-content:flex-start center!important;row-gap:6px!important}.position-left .melds-row,.position-right .melds-row{row-gap:6px!important}.position-top .meld-group,.position-left .meld-group,.position-right .meld-group{flex-direction:initial!important}@media (width<=768px){.melds-row{padding-bottom:5px!important}.meld-group{padding:3px 4px 5px!important}.meld-type-label{height:16px!important;min-height:16px!important;max-height:16px!important;font-size:9px!important;line-height:16px!important}}.position-top .melds-row,.position-left .melds-row,.position-right .melds-row{flex-flow:wrap!important;justify-content:center!important;align-items:flex-start!important;gap:8px!important;max-width:100%!important;max-height:none!important;padding:4px 4px 8px!important;display:flex!important;overflow:visible!important}.position-left .melds-row,.position-right .melds-row{justify-content:flex-start!important}.meld-group{contain:none!important;background:#ffffffd1!important;border:1px solid #ffffffb8!important;flex:none!important;grid-template-rows:auto auto!important;grid-template-columns:repeat(4,auto)!important;padding:5px 6px 6px!important;display:grid!important;position:relative!important;overflow:visible!important;box-shadow:0 7px 16px #00000029,inset 0 1px #ffffffd1!important}.meld-group .mahjong-tile{flex:none!important;grid-row:1!important}.meld-type-label{letter-spacing:.08em!important;color:#fff!important;opacity:1!important;text-shadow:0 1px 2px #00000061!important;border:1px solid #ffffffc7!important;border-radius:999px!important;grid-area:2/1/auto/-1!important;justify-self:center!important;height:20px!important;min-height:20px!important;max-height:20px!important;margin-top:4px!important;padding:0 9px!important;font-size:11px!important;font-weight:1000!important;line-height:20px!important;box-shadow:0 4px 10px #0000003d,inset 0 1px #fff6!important}.meld-type-chi{background:linear-gradient(145deg,#3ee67e,#088b42)!important}.meld-type-peng{background:linear-gradient(145deg,#32b8ff,#0757d7)!important}.meld-type-minggang{background:linear-gradient(145deg,#b58cff,#5d25c8)!important}.meld-type-jiagang{background:linear-gradient(145deg,#ffb13b,#d95b00)!important}.meld-type-angang,.meld-type-label.angang-label{color:#ffd86f!important;background:linear-gradient(145deg,#3b3f48,#07080a)!important}@media (width<=900px){.position-top .melds-row{scrollbar-width:none!important;flex-wrap:nowrap!important;justify-content:flex-start!important;overflow:auto visible!important}.position-top .melds-row::-webkit-scrollbar{display:none!important}}@media (width<=768px){.position-top .melds-row,.position-left .melds-row,.position-right .melds-row{gap:6px!important;padding-bottom:7px!important}.meld-group{padding:4px 5px 6px!important}.meld-type-label{height:18px!important;min-height:18px!important;max-height:18px!important;padding-inline:7px!important;font-size:10px!important;line-height:18px!important}}.position-bottom.player-area,.position-bottom .player-cards,.position-bottom .hand-row,.current-user.player-area,.current-user .player-cards,.current-user .hand-row{overflow:visible!important}.position-bottom .hand-row:not(.opponent-hand-summary),.current-user .hand-row:not(.opponent-hand-summary){align-items:flex-end!important;min-height:92px!important;padding-top:8px!important;padding-bottom:14px!important}@media (width<=768px){.position-bottom .hand-row:not(.opponent-hand-summary),.current-user .hand-row:not(.opponent-hand-summary){min-height:86px!important;padding-bottom:16px!important}}@media (width>=769px){.player-area,.player-cards,.melds-row{overflow:visible!important}.position-top .melds-row,.position-bottom .melds-row{flex-flow:row!important;justify-content:center!important;align-items:flex-end!important;gap:8px!important;max-height:none!important;display:flex!important;overflow:visible!important}.position-bottom .melds-row{justify-content:flex-start!important}.position-left .melds-row,.position-right .melds-row{flex-flow:column!important;justify-content:flex-start!important;align-items:flex-start!important;gap:8px!important;max-height:none!important;display:flex!important;overflow:visible!important}.meld-group{flex:none!important;grid-template-rows:auto auto!important;grid-template-columns:repeat(4,auto)!important;width:max-content!important;max-width:none!important;display:grid!important}.meld-group .mahjong-tile{grid-row:1!important}.meld-type-label{grid-area:2/1/auto/-1!important}}.game-board{background:radial-gradient(circle at 50% 42%,#2a70498c,#0000 48%),linear-gradient(135deg,#123321 0%,#173c28 45%,#0f2b1d 100%);flex-direction:column;height:100vh;display:flex;position:relative;overflow:hidden}.game-board:before{content:"";pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,#0000 0 4px,#ffffff05 4px 5px),repeating-linear-gradient(90deg,#0000 0 58px,#00000008 58px 60px);position:absolute;inset:0}.game-info-bar{z-index:2;background:#00000061;border-bottom:1px solid #f0c04033;flex-shrink:0;justify-content:center;align-items:center;gap:20px;padding:8px 16px;display:flex}.info-room,.info-wind,.info-wall{color:#cfc792;font-size:13px;font-weight:600}.info-wall,.info-turn{color:#f0c040}.info-turn{background:#f0c0401f;border:1px solid #f0c04047;border-radius:999px;padding:3px 10px}.dissolve-room-btn{color:#ffe6e6;cursor:pointer;background:#a02424c7;border:1px solid #ff787873;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800;position:absolute;top:6px;right:52px;box-shadow:0 4px 10px #0003}.dissolve-room-btn:hover{filter:brightness(1.12)}.game-table{z-index:1;flex:1;grid-template:".top."minmax(82px,auto)"left center right"1fr"bottom bottom bottom"minmax(150px,auto)/150px minmax(0,1fr) 150px;gap:8px;min-height:0;padding:10px 12px 72px;display:grid}.player-slot{justify-content:center;min-width:0;min-height:0;display:flex}.slot-top{grid-area:top;align-items:flex-start}.slot-left{grid-area:left;justify-content:flex-start;align-items:center;width:auto}.slot-right{grid-area:right;justify-content:flex-end;align-items:center;width:auto}.slot-bottom{grid-area:bottom;align-items:flex-end;min-height:0}.table-middle{display:contents}.table-center{flex-direction:column;grid-area:center;justify-content:center;align-items:center;gap:10px;min-width:0;min-height:0;display:flex}.table-dashboard{background:#03120c3d;border:1px solid #f0c04029;border-radius:22px;flex-direction:column;align-items:center;gap:7px;width:min(780px,100%);padding:8px 10px;display:flex;box-shadow:0 10px 22px #0000001f}.dashboard-main-row,.dashboard-sub-row{justify-content:center;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.dashboard-sub-row{justify-content:flex-start;overflow:hidden}.wall-indicator,.turn-indicator,.last-discard-callout,.claim-target-hint,.tenpai-hint{backdrop-filter:blur(8px);flex:none}.wall-indicator{background:#0000003d;border:1px solid #ffffff1a;border-radius:10px;flex-direction:column;align-items:center;padding:10px;display:flex}.wall-indicator.compact{border-radius:999px;flex-direction:row;gap:6px;padding:6px 12px}.wall-icon{opacity:.7;font-size:18px}.wall-count{color:#f0c040;font-size:16px;font-weight:800}.wall-label{color:#b9b28a;font-size:11px}.turn-indicator{color:#eadfbf;background:#f0c0401c;border:1px solid #f0c0404d;border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:13px;font-weight:700;display:flex}.turn-dot{background:#f0c040;border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite turn-blink}@keyframes turn-blink{0%,to{opacity:1}50%{opacity:.3}}.last-discard-callout,.claim-target-hint,.tenpai-hint{color:#f1e5c8;background:#00000047;border:1px solid #f0c04040;border-radius:999px;align-items:center;gap:7px;min-width:0;padding:7px 10px;font-size:12px;display:flex}.last-discard-label,.tenpai-title{color:#f0c040;font-weight:900}.tenpai-hint{flex:auto;justify-content:flex-start;padding-right:6px;overflow:hidden}.tenpai-list{scrollbar-width:thin;gap:6px;min-width:0;display:flex;overflow-x:auto}.tenpai-item{white-space:nowrap;background:#f0c0401c;border:1px solid #f0c04014;border-radius:999px;padding:3px 8px}.game-board>.tenpai-side-panel{z-index:70;-webkit-backdrop-filter:blur(18px)saturate(145%);background:#ffffffd1;border:1px solid #ffffffd1;border-radius:16px;width:clamp(160px,14vw,230px);max-height:calc(100vh - 96px);padding:8px 10px;position:absolute;top:72px;right:12px;box-shadow:0 14px 34px #18322229,inset 0 1px #ffffffb8}.game-board>.tenpai-side-panel .tenpai-list{max-height:calc(100vh - 146px);overflow:hidden auto}.central-discards{background:radial-gradient(circle,#f0c0401a,#0000 50%),#0000003b;border:1px solid #f0c0403d;border-radius:26px;grid-template:"top top top""left center right"1fr"bottom bottom bottom"/minmax(130px,1fr) minmax(140px,1.12fr) minmax(130px,1fr);gap:10px;width:min(780px,100%);min-height:min(48vh,430px);padding:18px;display:grid;overflow:hidden;box-shadow:inset 0 0 34px #00000042,0 12px 28px #00000029}.central-discards:before{content:"弃牌区";color:#f0c04026;letter-spacing:.35em;pointer-events:none;grid-area:center;place-self:center;font-size:26px;font-weight:900}.central-discard-row{background:#00000014;border-radius:14px;align-items:center;gap:6px;min-width:0;padding:5px;display:flex}.discard-row-top{grid-area:top;justify-content:center}.discard-row-bottom{grid-area:bottom;justify-content:center}.discard-row-left{flex-direction:column;grid-area:left;justify-content:center}.discard-row-right{flex-direction:column;grid-area:right;justify-content:center}.central-discard-name{color:#ede2c5d1;background:#00000038;border-radius:999px;flex:none;padding:2px 7px;font-size:11px;font-weight:800}.central-discard-tiles{flex-wrap:wrap;justify-content:center;align-items:center;gap:3px;min-width:0;max-height:138px;display:flex;overflow:hidden}.discard-tile-wrap{display:inline-flex;position:relative}.discard-order-dot{background:#ffd45a;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px;box-shadow:0 0 8px #ffd45ae6}.action-bar{z-index:4;backdrop-filter:blur(12px);background:#05120c94;border:1px solid #f0c0403d;border-radius:999px;flex-wrap:wrap;justify-content:center;gap:11px;max-width:calc(100% - 24px);padding:11px 15px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 14px 26px #00000042,inset 0 1px #ffffff14}.action-btn{cursor:pointer;color:#1a3a2a;white-space:nowrap;letter-spacing:.06em;border:1px solid #ffffff3d;border-radius:999px;padding:11px 23px;font-size:14px;font-weight:900;transition:all .15s;box-shadow:inset 0 1px #ffffff52,0 5px #0000002e,0 10px 16px #00000038}.action-btn:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0000002e,0 2px #0000002e}.btn-win{color:#261800;background:linear-gradient(135deg,#ffd45a,#f39c12);padding:12px 30px;font-size:16px;animation:.8s ease-in-out infinite win-pulse}@keyframes win-pulse{0%,to{box-shadow:0 0 8px #f0c04066}50%{box-shadow:0 0 20px #f0c040cc}}.settings-hint{z-index:3;color:#d2ca968c;pointer-events:none;font-size:11px;position:absolute;top:4px;right:16px}@media (width<=900px){.game-table{grid-template-columns:118px minmax(0,1fr) 118px;padding-left:8px;padding-right:8px}.central-discards{min-height:330px;padding:12px}.table-dashboard{width:100%}}@media (width<=768px){.game-board{height:100dvh}.game-info-bar{gap:10px;padding:7px}.dashboard-main-row{flex-wrap:wrap}.dashboard-sub-row{flex-direction:column;align-items:stretch}.tenpai-hint{width:100%}.game-table{grid-template:"top top""left right""center center"1fr"bottom bottom"/1fr 1fr;padding-bottom:82px}.slot-left,.slot-right{justify-content:center}.central-discards{grid-template-columns:1fr;width:100%;min-height:300px}.action-bar{gap:6px;padding:8px;bottom:8px}.action-btn{padding:8px 13px;font-size:12px}}@media (width<=480px){.central-discards{gap:6px;min-height:260px;padding:8px}.central-discards:before{font-size:20px}.action-btn{padding:7px 10px;font-size:11px}}@media (width<=768px){.game-info-bar{justify-content:space-around;gap:6px;min-height:30px;padding:5px 6px}.info-room,.info-wind,.info-wall{text-overflow:ellipsis;white-space:nowrap;max-width:32vw;font-size:11px;overflow:hidden}.game-table{padding:6px 6px calc(72px + env(safe-area-inset-bottom,0px));gap:5px}.table-center{gap:6px}.table-dashboard{border-radius:16px;gap:5px;padding:6px}.dashboard-main-row{grid-template-columns:auto minmax(0,1fr) auto;gap:5px;display:grid}.dashboard-sub-row{scrollbar-width:none;flex-direction:row;gap:5px;padding-bottom:1px;display:flex;overflow-x:auto}.dashboard-sub-row::-webkit-scrollbar{display:none}.wall-indicator.compact{gap:4px;padding:4px 8px}.wall-icon{display:none}.wall-count{font-size:14px}.wall-label{font-size:10px}.turn-indicator{justify-content:center;gap:5px;min-width:0;padding:5px 8px;font-size:12px}.turn-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.turn-dot{flex:none;width:7px;height:7px}.last-discard-callout,.claim-target-hint,.tenpai-hint{flex:none;gap:5px;max-width:100%;padding:5px 8px;font-size:11px}.last-discard-callout strong,.claim-target-hint strong{white-space:nowrap}.tenpai-hint{width:auto;max-width:100%}.tenpai-list{scrollbar-width:none;gap:4px;max-width:68vw}.tenpai-list::-webkit-scrollbar{display:none}.tenpai-item{padding:2px 6px;font-size:10px}.central-discards{border-radius:18px;grid-template-columns:minmax(72px,.8fr) minmax(82px,1fr) minmax(72px,.8fr);gap:5px;height:clamp(220px,37vh,310px);min-height:0;padding:8px}.central-discards:before{letter-spacing:.22em;font-size:17px}.central-discard-row{border-radius:10px;gap:3px;padding:3px}.central-discard-name{text-overflow:ellipsis;white-space:nowrap;max-width:54px;padding:1px 5px;font-size:9px;overflow:hidden}.central-discard-tiles{gap:2px;max-height:88px}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:88px}.discard-order-dot{width:6px;height:6px}.action-bar{left:6px;right:6px;bottom:calc(6px + env(safe-area-inset-bottom,0px));border-radius:18px;grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:6px;max-width:none;padding:7px;display:grid;transform:none}.action-btn{letter-spacing:.02em;width:100%;min-height:36px;padding:8px 9px;font-size:12px}.btn-win{padding:8px 10px;font-size:14px}.settings-hint{display:none}}@media (width<=480px){.game-info-bar{padding:4px}.info-room,.info-wind,.info-wall{font-size:10px}.game-table{padding:4px 4px calc(66px + env(safe-area-inset-bottom,0px));grid-template-rows:auto auto minmax(0,1fr) auto;gap:4px}.dashboard-main-row{grid-template-columns:auto minmax(0,1fr)}.dashboard-main-row .last-discard-callout{grid-column:1/-1;justify-content:center;width:100%}.table-dashboard{border-radius:14px;padding:5px}.central-discards{border-radius:15px;grid-template-columns:minmax(58px,.72fr) minmax(70px,1fr) minmax(58px,.72fr);gap:4px;height:clamp(188px,34vh,260px);padding:6px}.central-discards:before{font-size:14px}.central-discard-name{max-width:44px;padding-inline:4px;font-size:8px}.central-discard-tiles{max-height:70px}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:70px}.action-bar{border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(50px,1fr));gap:5px;padding:6px}.action-btn{min-height:32px;padding:6px 7px;font-size:11px}}.game-board{height:100dvh;color:var(--am-text);background:radial-gradient(circle at 50% -10%,#ffffffdb,#0000 28%),radial-gradient(circle at 10% 18%,#1f8f622e,#0000 28%),radial-gradient(circle at 90% 12%,#0a84ff1f,#0000 30%),linear-gradient(145deg,#eff6f1 0%,#dcece2 48%,#cfe2d8 100%)}.game-board:before{opacity:.86;background:linear-gradient(120deg,#ffffff47,#0000 34%,#ffffff2e),repeating-linear-gradient(90deg,#ffffff14 0 1px,#0000 1px 72px)}.game-info-bar{max-width:min(680px,100% - 24px);-webkit-backdrop-filter:var(--am-blur);background:#ffffff94;border:1px solid #ffffffb8;border-radius:999px;align-self:center;gap:8px;margin:10px auto 0;padding:7px 10px;box-shadow:0 12px 32px #1832221a,inset 0 1px #fffc}.info-room,.info-wind,.info-wall{color:var(--am-text-muted);background:#ffffff75;border-radius:999px;padding:5px 10px;font-size:12px}.info-wall{color:var(--am-accent);background:#1f8f621a}.table-center{-webkit-backdrop-filter:blur(18px)saturate(150%);background:radial-gradient(circle at 50% 18%,#ffffff6b,#0000 32%),linear-gradient(145deg,#ffffff80,#ffffff40);border:1px solid #ffffff94;border-radius:34px;padding:12px;box-shadow:inset 0 1px #ffffffb3,0 22px 60px #1832221f}.center-status-row,.center-aux-row{background:#ffffff8f;border:1px solid #fff9;border-radius:24px;box-shadow:inset 0 1px #ffffffbf,0 10px 24px #18322214}.center-status-row{gap:8px;padding:8px}.center-aux-row{padding:7px 9px}.wall-indicator.compact,.turn-indicator,.last-discard-callout,.claim-target-callout,.tenpai-hints{background:#ffffff9e;border:1px solid #2844351a;border-radius:999px;box-shadow:inset 0 1px #ffffffc2}.wall-icon{display:none}.wall-count{color:var(--am-accent);font-size:17px}.wall-label,.last-discard-label,.claim-target-label,.tenpai-label{color:var(--am-text-muted)}.turn-dot{background:var(--am-accent);box-shadow:0 0 0 5px #1f8f621f}.turn-name{color:var(--am-text);font-weight:820}.last-discard-callout strong,.claim-target-callout strong{color:var(--am-text)}.claim-types{color:var(--am-accent)}.central-discards{background:radial-gradient(circle at 50% 42%,#1f8f621f,#0000 42%),linear-gradient(145deg,#ffffff9e,#ffffff57);border:1px solid #ffffff9e;border-radius:30px;flex:1;min-height:0;padding:16px;box-shadow:inset 0 1px #ffffffbd,inset 0 -1px #1832220a}.discard-pile{background:#ffffff61;border:1px solid #28443514;border-radius:20px;box-shadow:inset 0 1px #ffffffa6}.discard-player-name{color:var(--am-text-muted);font-weight:820}.last-discard-marker{background:var(--am-warn);box-shadow:0 0 0 4px #ff9f0a2e}.empty-discards{color:#18231d57}.action-bar{bottom:calc(14px + env(safe-area-inset-bottom));box-shadow:var(--am-shadow-float);-webkit-backdrop-filter:var(--am-blur);background:#ffffff94;border:1px solid #ffffffa3;border-radius:999px;padding:10px}.action-btn{letter-spacing:-.01em;border:1px solid #ffffff80;border-radius:999px;min-height:44px;padding:10px 22px;font-size:14px;font-weight:880;box-shadow:0 10px 24px #1832221f,inset 0 1px #ffffff59}.action-btn:hover{filter:brightness(1.04);transform:translateY(-2px);box-shadow:0 14px 30px #18322229}.btn-discard{color:#fff;background:linear-gradient(145deg,#ff6961,#ff3b30)}.btn-claim{color:#fff;background:linear-gradient(145deg,#47a7ff,#0a84ff)}.btn-gang{color:#fff;background:linear-gradient(145deg,#9b7cff,#7a5cff)}.btn-win{color:#3b2600;background:linear-gradient(145deg,#ffd76a,#ff9f0a);animation:1s ease-in-out infinite win-pulse}.btn-pass{color:#18231db8;background:#18231d1f}.settings-hint{color:#18231d6b;top:auto;bottom:8px;right:18px}@media (width<=900px){.game-table{grid-template-columns:126px minmax(0,1fr) 126px;padding-inline:10px}.table-center{border-radius:28px}}@media (width<=768px){.game-info-bar{justify-content:flex-start;gap:4px;max-width:calc(100% - 12px);margin-top:6px;padding:5px;overflow-x:auto}.info-room,.info-wind,.info-wall{flex:none;padding:4px 8px;font-size:11px}.game-table{padding:6px 6px calc(78px + env(safe-area-inset-bottom));grid-template-rows:62px minmax(0,1fr) minmax(128px,auto);grid-template-columns:72px minmax(0,1fr) 72px;gap:6px}.table-center{border-radius:22px;padding:7px}.center-status-row{border-radius:18px;gap:4px;padding:5px}.center-aux-row{border-radius:16px;padding:5px}.wall-indicator.compact,.turn-indicator,.last-discard-callout,.claim-target-callout,.tenpai-hints{padding:5px 7px;font-size:11px}.central-discards{border-radius:20px;padding:7px}.discard-pile{border-radius:14px;padding:5px}.discard-player-name{font-size:10px}.action-bar{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));border-radius:24px;grid-template-columns:repeat(auto-fit,minmax(68px,1fr));gap:7px;padding:8px;display:grid;transform:none}.action-btn{min-height:40px;padding:8px 10px;font-size:13px}.settings-hint{display:none}}.central-discards{grid-template-rows:minmax(78px,1fr) minmax(128px,1.25fr) minmax(78px,1fr)!important;height:clamp(360px,47vh,520px)!important;min-height:360px!important;max-height:520px!important;overflow:hidden!important}.central-discard-row{min-height:0;overflow:hidden}.central-discard-tiles{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;place-content:flex-start;width:100%;padding:4px;max-height:none!important;overflow:auto!important}.discard-row-top .central-discard-tiles,.discard-row-bottom .central-discard-tiles{max-height:92px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:none!important;max-height:224px!important}.discard-row-left,.discard-row-right{align-items:stretch}.discard-tile-wrap{isolation:isolate;margin-top:12px}.discard-latest .mahjong-tile{transform:translateY(-4px)scale(1.06);box-shadow:0 10px 20px #ff950038,0 0 0 3px #ff9f0a38,inset 0 1px #ffffffeb!important}.discard-arrow{z-index:4;color:#fff;background:linear-gradient(#fc6,#ff8c00);border-radius:999px;place-items:center;width:18px;height:18px;font-size:14px;font-style:normal;font-weight:1000;line-height:1;animation:1.05s ease-in-out infinite discard-arrow-float;display:grid;position:absolute;top:-18px;left:50%;transform:translate(-50%);box-shadow:0 6px 14px #ff950057,0 0 0 4px #ff9f0a29}@keyframes discard-arrow-float{0%,to{opacity:.92;transform:translate(-50%)}50%{opacity:1;transform:translate(-50%,-7px)}}.empty-discards{color:#18231d57;justify-content:center;align-items:center;min-height:42px;font-size:12px;font-weight:700;display:inline-flex}@media (width<=768px){.central-discards{grid-template-rows:minmax(58px,.8fr) minmax(126px,1.4fr) minmax(58px,.8fr)!important;grid-template-columns:minmax(52px,.72fr) minmax(120px,1.45fr) minmax(52px,.72fr)!important;height:clamp(300px,43svh,430px)!important;min-height:300px!important;max-height:430px!important}.discard-row-top .central-discard-tiles,.discard-row-bottom .central-discard-tiles{max-height:66px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-height:190px!important}.discard-tile-wrap{margin-top:10px}.discard-arrow{width:16px;height:16px;font-size:12px;top:-16px}}.game-table{grid-template-rows:minmax(70px,auto) minmax(0,1fr) minmax(124px,auto)!important}.central-discards{grid-template:"top right"minmax(0,1fr)"left bottom"minmax(0,1fr)/minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;width:min(980px,100%)!important;height:clamp(410px,56vh,620px)!important;min-height:410px!important;max-height:none!important;overflow:visible!important}.central-discards:before{z-index:0;opacity:.58;grid-area:1/1/3/3!important}.central-discard-row,.discard-row-top,.discard-row-bottom,.discard-row-left,.discard-row-right{z-index:1;position:relative;flex-direction:column!important;justify-content:flex-start!important;align-items:stretch!important;min-height:0!important;padding:8px!important;overflow:visible!important}.central-discard-name{align-self:flex-start;margin-bottom:4px}.central-discard-tiles{flex-wrap:wrap!important;place-content:flex-start!important;align-items:flex-start!important;gap:3px!important;width:100%!important;max-width:none!important;min-height:0!important;max-height:none!important;padding:2px!important;display:flex!important;overflow:visible!important}.discard-row-top .central-discard-tiles,.discard-row-bottom .central-discard-tiles,.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:none!important;max-height:none!important}.central-discard-tiles .discard-tile-wrap{flex:none;margin-top:10px!important}.central-discard-tiles .mahjong-tile.tile-small{border-radius:7px!important;width:30px!important;min-width:30px!important;height:40px!important;box-shadow:0 3px #c0ad86e6,0 5px 8px #18322224,inset 0 1px 2px #ffffffe6!important}.central-discard-tiles .mahjong-tile.tile-small .tile-corner{opacity:.72;transform:scale(.75)}.central-discard-tiles .discard-latest .mahjong-tile.tile-small{transform:translateY(-3px)scale(1.08)!important}@media (width<=900px){.game-table{grid-template-rows:minmax(58px,auto) minmax(0,1fr) minmax(112px,auto)!important;grid-template-columns:96px minmax(0,1fr) 96px!important;padding-bottom:78px!important}.central-discards{gap:7px!important;height:clamp(390px,55vh,560px)!important;min-height:390px!important;padding:8px!important}.central-discard-row,.discard-row-top,.discard-row-bottom,.discard-row-left,.discard-row-right{padding:6px!important}.central-discard-tiles .mahjong-tile.tile-small{width:27px!important;min-width:27px!important;height:36px!important}.central-discard-tiles .mahjong-tile.tile-small .tile-content{transform:scale(.61)!important}}@media (width<=768px){.game-board{overflow:hidden!important}.game-table{padding:5px 5px calc(72px + env(safe-area-inset-bottom,0px))!important;grid-template:"top top""left right""center center"minmax(0,1fr)"bottom bottom"minmax(106px,auto)/1fr 1fr!important;gap:5px!important}.table-center{gap:5px!important;padding:5px!important}.central-discards{border-radius:18px!important;grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:5px!important;height:clamp(340px,50svh,500px)!important;min-height:340px!important;padding:6px!important}.central-discard-row,.discard-row-top,.discard-row-bottom,.discard-row-left,.discard-row-right{border-radius:12px!important;padding:4px!important}.central-discard-name{max-width:100%!important;margin-bottom:2px!important;font-size:9px!important}.central-discard-tiles{gap:2px!important;padding:1px!important}.central-discard-tiles .discard-tile-wrap{margin-top:8px!important}.central-discard-tiles .mahjong-tile.tile-small{border-radius:5px!important;width:22px!important;min-width:22px!important;height:30px!important;box-shadow:0 2px #c0ad86d9,0 3px 5px #1832221f,inset 0 1px 1px #ffffffdb!important}.central-discard-tiles .mahjong-tile.tile-small .tile-content{transform:scale(.49)!important}.central-discard-tiles .mahjong-tile.tile-small .tile-corner,.central-discard-tiles .mahjong-tile.tile-small .felt-grain{display:none!important}.discard-arrow{width:14px!important;height:14px!important;font-size:10px!important;top:-14px!important}}@media (width<=430px){.central-discards{height:clamp(330px,49svh,470px)!important;min-height:330px!important}.central-discard-tiles .mahjong-tile.tile-small{width:20px!important;min-width:20px!important;height:28px!important}.central-discard-tiles .mahjong-tile.tile-small .tile-content{transform:scale(.45)!important}}.table-dashboard{width:min(860px,100%);align-items:stretch!important;gap:10px!important;padding:12px!important;overflow:visible!important}.dashboard-main-row{grid-template-columns:minmax(96px,.85fr) minmax(180px,1.25fr) minmax(220px,1.3fr)!important;align-items:center!important;gap:10px!important;width:100%!important;min-width:0!important;display:grid!important}.wall-indicator.compact,.turn-indicator,.last-discard-callout,.claim-target-hint,.tenpai-hint{box-sizing:border-box!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}.wall-indicator.compact{justify-content:center!important}.turn-indicator{justify-content:center!important;padding-inline:12px!important}.turn-name{text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important;overflow:hidden!important}.last-discard-callout{grid-template-columns:auto minmax(0,1fr) auto auto!important;justify-self:stretch!important;align-items:center!important;gap:7px!important;padding-inline:10px!important;display:grid!important}.last-discard-callout strong,.last-discard-callout span:last-child{text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important;overflow:hidden!important}.dashboard-sub-row{grid-template-columns:minmax(0,auto) minmax(0,1fr)!important;align-items:center!important;gap:8px!important;width:100%!important;display:grid!important;overflow:visible!important}.dashboard-sub-row:has(.claim-target-hint):not(:has(.tenpai-hint)),.dashboard-sub-row:has(.tenpai-hint):not(:has(.claim-target-hint)){grid-template-columns:minmax(0,1fr)!important}.claim-target-hint{white-space:nowrap!important;justify-content:center!important}.tenpai-hint{grid-template-columns:auto minmax(0,1fr)!important;align-items:center!important;display:grid!important}.tenpai-list{scrollbar-width:none!important;min-width:0!important;overflow:auto hidden!important}.tenpai-list::-webkit-scrollbar{display:none}@media (width<=900px){.table-dashboard{gap:8px!important;width:100%!important;padding:9px!important}.dashboard-main-row{grid-template-columns:1fr 1fr!important;grid-template-areas:"wall turn""last last"!important}.wall-indicator.compact{grid-area:wall}.turn-indicator{grid-area:turn}.last-discard-callout{grid-area:last}.dashboard-sub-row{grid-template-columns:1fr!important}}@media (width<=560px){.game-info-bar{border-radius:18px!important;grid-template-columns:1fr 1fr!important;gap:6px!important;width:calc(100% - 20px)!important;max-width:none!important;padding:7px!important;display:grid!important}.game-info-bar .info-room{grid-column:1/-1!important}.info-room,.info-wind,.info-wall{text-align:center!important;max-width:none!important;padding:5px 8px!important;font-size:11px!important}.dashboard-main-row{grid-template-columns:1fr!important;grid-template-areas:"turn""last""wall"!important}.wall-indicator.compact,.turn-indicator,.last-discard-callout{min-height:34px!important}.last-discard-callout{grid-template-columns:auto minmax(0,1fr) auto auto!important}.claim-target-hint{white-space:normal!important;grid-template-columns:auto auto minmax(0,1fr)!important;display:grid!important}}.game-info-bar{white-space:normal!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;row-gap:6px!important;display:flex!important}.info-room,.info-wind,.info-wall{text-overflow:ellipsis!important;white-space:nowrap!important;max-width:min(42vw,260px)!important;line-height:1.2!important;overflow:hidden!important}.table-dashboard{flex:none!important;align-items:stretch!important;width:min(760px,100%)!important}.dashboard-main-row{grid-template-columns:auto minmax(160px,1fr) minmax(210px,auto)!important;justify-content:stretch!important;align-items:center!important;gap:8px!important;min-width:0!important;display:grid!important}.dashboard-sub-row{flex-wrap:wrap!important;justify-content:center!important;align-items:stretch!important;gap:8px!important;display:flex!important;overflow:visible!important}.turn-indicator,.last-discard-callout,.claim-target-hint,.tenpai-hint{white-space:normal!important;min-width:0!important;max-width:100%!important;line-height:1.18!important}.turn-indicator{justify-content:center!important}.turn-name,.last-discard-callout strong,.last-discard-callout span:last-child,.claim-target-hint strong,.claim-target-hint span:last-child{text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important;overflow:hidden!important}.last-discard-callout{grid-template-columns:auto minmax(0,1fr) auto auto!important;justify-content:stretch!important;display:grid!important}.tenpai-hint{flex:280px!important}.tenpai-list{flex-wrap:wrap!important;overflow:visible!important}.game-table{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))!important;grid-template-rows:minmax(76px,auto) minmax(0,1fr) minmax(148px,auto)!important;grid-template-columns:minmax(112px,160px) minmax(0,1fr) minmax(112px,160px)!important}.table-center{justify-content:stretch!important;overflow:hidden!important}.central-discards{flex:auto!important;grid-template:"top top top"minmax(72px,auto)"left center right"minmax(128px,1fr)"bottom bottom bottom"minmax(84px,auto)/minmax(96px,.82fr) minmax(170px,1.28fr) minmax(96px,.82fr)!important;gap:8px!important;width:min(900px,100%)!important;height:auto!important;min-height:300px!important;max-height:none!important;display:grid!important;overflow:hidden!important}.central-discards:before{content:"牌桌"!important;grid-area:center!important;place-self:center!important}.central-discard-row{background:#ffffff5c!important;align-items:center!important;min-height:0!important;overflow:visible!important}.discard-row-top{flex-direction:column!important;grid-area:top!important;justify-content:flex-start!important}.discard-row-bottom{flex-direction:column-reverse!important;grid-area:bottom!important;justify-content:flex-end!important}.discard-row-left{flex-direction:row!important;grid-area:left!important;justify-content:flex-start!important;align-self:stretch!important}.discard-row-right{flex-direction:row-reverse!important;grid-area:right!important;justify-content:flex-start!important;align-self:stretch!important}.central-discard-name{text-overflow:ellipsis!important;white-space:nowrap!important;max-width:96px!important;overflow:hidden!important}.central-discard-tiles{place-content:flex-start center!important;gap:3px!important;width:auto!important;max-width:none!important;max-height:none!important;padding:4px!important;overflow:visible!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{justify-content:center!important;max-width:104px!important}.discard-row-bottom .central-discard-tiles{justify-content:center!important}.action-bar:empty{display:none!important}@media (width<=768px){.game-board{overflow:hidden!important}.game-info-bar{border-radius:18px!important;justify-content:center!important;max-width:calc(100% - 10px)!important;margin-top:5px!important;overflow:visible!important}.info-room,.info-wind,.info-wall{max-width:46vw!important;padding:3px 7px!important;font-size:10px!important}.game-table{padding:5px 5px calc(58px + env(safe-area-inset-bottom,0px))!important;grid-template:".top."minmax(54px,auto)"left center right"minmax(0,1fr)"bottom bottom bottom"minmax(146px,auto)/minmax(58px,74px) minmax(0,1fr) minmax(58px,74px)!important;gap:5px!important}.slot-left,.slot-right{justify-content:center!important;align-items:center!important}.table-center{gap:5px!important;min-width:0!important;padding:6px!important}.table-dashboard{gap:5px!important;padding:5px!important}.dashboard-main-row{grid-template-columns:1fr 1fr!important;gap:5px!important}.wall-indicator.compact{grid-column:1/2!important}.turn-indicator{grid-column:2/3!important}.last-discard-callout{grid-column:1/-1!important;grid-template-columns:auto minmax(0,1fr) auto auto!important;width:100%!important}.wall-indicator.compact,.turn-indicator,.last-discard-callout,.claim-target-hint,.tenpai-hint{gap:4px!important;padding:4px 6px!important;font-size:10px!important}.dashboard-sub-row{flex-direction:column!important;gap:5px!important}.tenpai-hint{flex-basis:auto!important;width:100%!important}.tenpai-list{gap:3px!important;max-width:none!important}.tenpai-item{padding:2px 5px!important;font-size:9px!important}.central-discards{grid-template-rows:minmax(52px,auto) minmax(92px,1fr) minmax(58px,auto)!important;grid-template-columns:minmax(48px,.62fr) minmax(128px,1.55fr) minmax(48px,.62fr)!important;gap:4px!important;min-height:250px!important;padding:6px!important}.central-discards:before{letter-spacing:.18em!important;font-size:13px!important}.central-discard-row{border-radius:11px!important;gap:3px!important;padding:3px!important}.central-discard-name{max-width:42px!important;padding:1px 4px!important;font-size:8px!important}.central-discard-tiles{gap:1px!important;padding:2px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:48px!important}.discard-tile-wrap{margin-top:8px!important}.discard-arrow{width:14px!important;height:14px!important;font-size:10px!important;top:-14px!important}.action-bar{left:8px!important;right:8px!important;bottom:calc(6px + env(safe-area-inset-bottom,0px))!important;pointer-events:auto!important;border-radius:18px!important;flex-wrap:wrap!important;justify-content:center!important;gap:6px!important;padding:6px!important;display:flex!important;transform:none!important}.action-btn{width:auto!important;min-width:56px!important;min-height:34px!important;padding:6px 10px!important;font-size:12px!important}}@media (width<=480px){.game-table{padding-bottom:calc(54px + env(safe-area-inset-bottom,0px))!important;grid-template-rows:minmax(48px,auto) minmax(0,1fr) minmax(138px,auto)!important;grid-template-columns:48px minmax(0,1fr) 48px!important}.central-discards{border-radius:16px!important;grid-template-rows:minmax(46px,auto) minmax(82px,1fr) minmax(54px,auto)!important;grid-template-columns:42px minmax(116px,1fr) 42px!important;min-height:220px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:40px!important}.central-discard-name{max-width:36px!important}}.central-discards,.central-discard-row,.central-discard-tiles{overflow:visible!important}.central-discard-tiles{flex-wrap:wrap!important;align-content:flex-start!important}@media (width<=768px){.game-board{height:100dvh!important;overflow:hidden!important}.game-table{-webkit-overflow-scrolling:touch!important;padding-bottom:calc(74px + env(safe-area-inset-bottom,0px))!important;grid-template-rows:auto minmax(390px,auto) minmax(152px,auto)!important;grid-template-columns:minmax(42px,60px) minmax(0,1fr) minmax(42px,60px)!important;overflow:hidden auto!important}.table-center{justify-content:flex-start!important;overflow:visible!important}.central-discards{flex:none!important;grid-template-rows:minmax(78px,auto) minmax(138px,auto) minmax(82px,auto)!important;grid-template-columns:minmax(54px,.7fr) minmax(138px,1.55fr) minmax(54px,.7fr)!important;width:100%!important;height:auto!important;min-height:360px!important;overflow:visible!important}.central-discard-row{min-height:52px!important}.discard-row-left,.discard-row-right{min-height:138px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:56px!important}}@media (width<=480px){.game-table{grid-template-rows:auto minmax(370px,auto) minmax(150px,auto)!important;grid-template-columns:38px minmax(0,1fr) 38px!important;padding-left:3px!important;padding-right:3px!important}.central-discards{grid-template-rows:minmax(76px,auto) minmax(130px,auto) minmax(80px,auto)!important;grid-template-columns:38px minmax(128px,1fr) 38px!important;gap:3px!important;min-height:340px!important;padding:4px!important}.central-discard-row{min-height:50px!important;padding:2px!important}.discard-row-left,.discard-row-right{min-height:130px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:36px!important}.central-discard-tiles .mahjong-tile.tile-small{width:19px!important;min-width:19px!important;height:27px!important}}.game-board{height:100dvh!important;overflow:hidden!important}.game-table{flex:auto!important;grid-template:".top."minmax(58px,auto)"left center right"minmax(420px,1fr)"bottom bottom bottom"minmax(112px,auto)/minmax(118px,150px) minmax(520px,1fr) minmax(118px,150px)!important;gap:8px!important;height:auto!important;min-height:0!important;padding:8px 12px 10px!important;display:grid!important;overflow:hidden!important}.slot-top,.slot-left,.slot-right,.slot-bottom{min-height:0!important;overflow:visible!important}.slot-top{align-items:flex-start!important}.slot-bottom{align-items:flex-end!important}.slot-left,.slot-right{align-items:center!important}.table-center{grid-template-rows:auto minmax(0,1fr)!important;justify-content:stretch!important;place-items:stretch center!important;gap:8px!important;height:100%!important;min-height:0!important;padding:0!important;display:grid!important;overflow:visible!important}.table-dashboard{flex:none!important;gap:5px!important;width:min(860px,100%)!important;padding:6px 8px!important}.central-discards{box-sizing:border-box!important;grid-template:"top top top"minmax(82px,auto)"left center right"minmax(150px,1fr)"bottom bottom bottom"minmax(98px,auto)/minmax(120px,.82fr) minmax(230px,1.36fr) minmax(120px,.82fr)!important;align-self:stretch!important;gap:8px!important;width:min(960px,100%)!important;height:100%!important;min-height:0!important;max-height:none!important;padding:10px!important;display:grid!important;overflow:visible!important}.central-discards:before{content:"牌桌"!important;opacity:.7!important;grid-area:center!important;place-self:center!important;font-size:clamp(18px,2.2vw,30px)!important}.central-discard-row{box-sizing:border-box!important;background:#ffffff6b!important;border:1px solid #1f8f621f!important;min-width:0!important;min-height:0!important;overflow:visible!important}.discard-row-top{flex-direction:column!important;grid-area:top!important;justify-content:flex-start!important;align-items:center!important}.discard-row-bottom{flex-direction:column-reverse!important;grid-area:bottom!important;justify-content:flex-end!important;align-items:center!important;min-height:96px!important}.discard-row-left{flex-direction:row!important;grid-area:left!important;justify-content:flex-start!important;align-self:stretch!important;align-items:center!important}.discard-row-right{flex-direction:row-reverse!important;grid-area:right!important;justify-content:flex-start!important;align-self:stretch!important;align-items:center!important}.central-discard-name{flex:none!important;max-width:120px!important}.central-discard-tiles{flex-wrap:wrap!important;flex:auto!important;place-content:flex-start center!important;gap:3px!important;width:100%!important;min-width:0!important;max-width:none!important;max-height:none!important;padding:3px!important;display:flex!important;overflow:visible!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{justify-content:center!important;width:auto!important;max-width:118px!important}.discard-row-bottom .central-discard-tiles{min-height:58px!important}.slot-bottom .position-bottom{width:min(100%,1080px)!important;padding:5px 8px!important}.slot-bottom .player-info{margin-bottom:4px!important;padding:3px 8px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){flex-wrap:nowrap!important;justify-content:center!important;min-height:72px!important;max-height:86px!important;padding:4px 6px!important;overflow:auto visible!important}.slot-bottom .hand-row .mahjong-tile{flex:none!important}@media (width>=1200px){.game-table{grid-template-rows:minmax(62px,auto) minmax(470px,1fr) minmax(116px,auto)!important;grid-template-columns:158px minmax(680px,1fr) 158px!important;padding:8px 16px 12px!important}.central-discards{grid-template-rows:minmax(92px,auto) minmax(180px,1fr) minmax(108px,auto)!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:132px!important}}@media (height<=760px) and (width>=769px){.game-info-bar{padding-block:5px!important}.game-table{grid-template-rows:minmax(46px,auto) minmax(350px,1fr) minmax(94px,auto)!important;gap:5px!important;padding:5px 10px 8px!important}.table-dashboard{gap:4px!important;padding:4px 7px!important}.central-discards{grid-template-rows:minmax(72px,auto) minmax(125px,1fr) minmax(84px,auto)!important;gap:5px!important;padding:7px!important}.central-discard-tiles .mahjong-tile.tile-small{width:30px!important;min-width:30px!important;height:42px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){min-height:58px!important;max-height:72px!important;padding-block:3px!important}.slot-bottom .hand-row .mahjong-tile:not(.tile-small){width:44px!important;height:62px!important}}@media (width<=900px){.game-table{padding:5px 6px calc(62px + env(safe-area-inset-bottom,0px))!important;-webkit-overflow-scrolling:touch!important;grid-template-rows:minmax(56px,auto) minmax(410px,1fr) minmax(142px,auto)!important;grid-template-columns:minmax(72px,92px) minmax(0,1fr) minmax(72px,92px)!important;overflow:hidden auto!important}.slot-top{min-height:48px!important}.slot-top .player-area{max-width:96vw!important}.table-center{min-height:410px!important}.table-dashboard{gap:4px!important;width:100%!important;padding:4px 5px!important}.central-discards{grid-template-rows:minmax(76px,auto) minmax(130px,auto) minmax(78px,auto)!important;grid-template-columns:minmax(42px,.58fr) minmax(132px,1.7fr) minmax(42px,.58fr)!important;gap:4px!important;min-height:340px!important;padding:5px!important}.central-discard-name{max-width:56px!important;padding:1px 4px!important;font-size:9px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:44px!important}.central-discard-tiles .mahjong-tile.tile-small{border-radius:5px!important;width:20px!important;min-width:20px!important;height:28px!important}.central-discard-tiles .mahjong-tile.tile-small .tile-content{transform:scale(.48)!important}.slot-bottom .hand-row:not(.opponent-hand-summary){justify-content:flex-start!important;min-height:78px!important;max-height:none!important}}@media (width<=480px){.game-table{padding:4px 4px calc(58px + env(safe-area-inset-bottom,0px))!important;grid-template-rows:minmax(46px,auto) minmax(390px,auto) minmax(146px,auto)!important;grid-template-columns:40px minmax(0,1fr) 40px!important;gap:4px!important}.slot-top .player-info{margin-bottom:1px!important}.slot-top .opponent-hand-summary{padding-block:3px!important}.table-center{min-height:390px!important}.central-discards{grid-template-rows:minmax(72px,auto) minmax(124px,auto) minmax(76px,auto)!important;grid-template-columns:36px minmax(126px,1fr) 36px!important;gap:3px!important;min-height:324px!important;padding:4px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:34px!important}.central-discard-tiles .mahjong-tile.tile-small{width:18px!important;min-width:18px!important;height:25px!important}}.hand-action-bar{left:50%!important;bottom:calc(116px + env(safe-area-inset-bottom,0px))!important;z-index:72!important;-webkit-backdrop-filter:blur(18px)saturate(145%)!important;pointer-events:auto!important;background:#ffffffb8!important;border:1px solid #ffffffb3!important;border-radius:999px!important;justify-content:center!important;align-items:center!important;gap:10px!important;padding:7px 9px!important;display:flex!important;position:fixed!important;transform:translate(-50%)!important;box-shadow:0 14px 34px #1832222e,inset 0 1px #ffffffb3!important}.hand-action-bar:empty{display:none!important}.hand-action-bar .action-btn{min-width:88px!important;min-height:42px!important;padding:9px 20px!important;font-size:15px!important}@media (width<=768px){.hand-action-bar{left:50%!important;right:auto!important;bottom:calc(150px + env(safe-area-inset-bottom,0px))!important;border-radius:22px!important;gap:8px!important;padding:6px 8px!important}.hand-action-bar .action-btn{min-width:78px!important;min-height:38px!important;padding:8px 15px!important;font-size:14px!important}.action-bar:empty{display:none!important}}@media (width<=480px){.hand-action-bar{bottom:calc(138px + env(safe-area-inset-bottom,0px))!important;gap:7px!important;padding:5px 7px!important}.hand-action-bar .action-btn{min-width:70px!important;min-height:35px!important;padding:7px 12px!important;font-size:13px!important}}.turn-indicator{min-width:0!important;max-width:min(190px,30vw)!important;padding-inline:10px!important}.turn-name{align-items:center!important;gap:4px!important;min-width:0!important;max-width:100%!important;line-height:1.05!important;display:inline-flex!important}.turn-label{opacity:.62!important;flex:none!important;font-size:.72em!important;font-weight:760!important}.turn-player-name{text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important;max-width:9.5em!important;font-size:clamp(12px,1.15vw,15px)!important;font-weight:860!important;overflow:hidden!important}@media (width<=768px){.turn-indicator{max-width:132px!important;padding-inline:7px!important}.turn-label{font-size:9px!important}.turn-player-name{max-width:74px!important;font-size:11px!important}}@media (width<=480px){.turn-indicator{max-width:112px!important}.turn-player-name{max-width:58px!important;font-size:10px!important}}.game-table{grid-template-rows:minmax(44px,auto) minmax(470px,1fr) minmax(108px,auto)!important;grid-template-columns:minmax(160px,200px) minmax(580px,1fr) minmax(160px,200px)!important;gap:6px!important;padding:6px 10px 8px!important}.slot-top{align-items:flex-start!important;min-height:0!important}.slot-top .player-area{border-radius:16px!important;max-width:min(520px,100%)!important;padding:4px 8px!important}.slot-top .player-info{margin-bottom:2px!important;padding:2px 8px!important}.slot-top .opponent-hand-summary{min-height:0!important;padding:3px 8px!important}.slot-left .player-area,.slot-right .player-area{width:100%!important;padding:7px!important}.slot-left .player-info,.slot-right .player-info{max-width:100%!important;padding-inline:7px!important}.slot-left .player-name,.slot-right .player-name{max-width:92px!important}.table-center{gap:6px!important}.table-dashboard{gap:4px!important;width:min(900px,100%)!important;padding:5px 8px!important}.central-discards{grid-template-rows:minmax(60px,auto) minmax(190px,1fr) minmax(86px,auto)!important;grid-template-columns:minmax(150px,.88fr) minmax(270px,1.5fr) minmax(150px,.88fr)!important;gap:7px!important;width:min(1040px,100%)!important;padding:9px!important}.discard-row-top{min-height:56px!important}.discard-row-top .central-discard-tiles{min-height:0!important}.central-discard-tiles .mahjong-tile.tile-small{width:31px!important;min-width:31px!important;height:42px!important}.central-discard-tiles .mahjong-tile.tile-small .tile-content{transform:scale(.7)!important}@media (width>=1200px){.game-table{grid-template-rows:minmax(46px,auto) minmax(520px,1fr) minmax(108px,auto)!important;grid-template-columns:176px minmax(760px,1fr) 176px!important;padding-inline:14px!important}.central-discards{grid-template-rows:minmax(64px,auto) minmax(220px,1fr) minmax(92px,auto)!important;grid-template-columns:minmax(170px,.9fr) minmax(320px,1.55fr) minmax(170px,.9fr)!important;width:min(1120px,100%)!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:172px!important}}@media (height<=760px) and (width>=769px){.game-table{grid-template-rows:minmax(38px,auto) minmax(390px,1fr) minmax(92px,auto)!important;padding-block:4px 6px!important}.slot-top .player-area{padding-block:3px!important}.central-discards{grid-template-rows:minmax(52px,auto) minmax(165px,1fr) minmax(76px,auto)!important;padding:7px!important}}@media (width<=900px){.game-table{padding:5px 6px calc(62px + env(safe-area-inset-bottom,0px))!important;grid-template-rows:minmax(46px,auto) minmax(430px,auto) minmax(138px,auto)!important;grid-template-columns:minmax(86px,108px) minmax(0,1fr) minmax(86px,108px)!important;gap:5px!important}.slot-left .player-area,.slot-right .player-area{padding:5px!important}.slot-left .player-name,.slot-right .player-name{max-width:68px!important;font-size:10px!important}.slot-top .player-area{padding:3px 7px!important}.table-center{min-height:430px!important}.central-discards{grid-template-rows:minmax(58px,auto) minmax(150px,auto) minmax(70px,auto)!important;grid-template-columns:minmax(62px,.72fr) minmax(150px,1.65fr) minmax(62px,.72fr)!important;min-height:360px!important;padding:5px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:62px!important}.central-discard-tiles .mahjong-tile.tile-small{width:21px!important;min-width:21px!important;height:29px!important}}@media (width<=480px){.game-table{grid-template-rows:minmax(42px,auto) minmax(408px,auto) minmax(144px,auto)!important;grid-template-columns:52px minmax(0,1fr) 52px!important;padding-inline:3px!important}.slot-left .player-name,.slot-right .player-name{max-width:48px!important;font-size:9px!important}.table-center{min-height:408px!important}.central-discards{grid-template-rows:minmax(56px,auto) minmax(138px,auto) minmax(70px,auto)!important;grid-template-columns:48px minmax(136px,1fr) 48px!important;min-height:342px!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:46px!important}.central-discard-tiles .mahjong-tile.tile-small{width:19px!important;min-width:19px!important;height:26px!important}}.slot-top{flex-shrink:0!important;min-height:88px!important;max-height:120px!important;overflow:hidden!important}.slot-left,.slot-right{flex-shrink:0!important;min-height:100px!important;max-height:140px!important;overflow:hidden!important}.slot-top .player-area,.slot-left .player-area,.slot-right .player-area{min-height:88px!important;max-height:140px!important;overflow:hidden!important}.slot-top .melds-row,.slot-left .melds-row,.slot-right .melds-row{flex-wrap:nowrap!important;max-height:50px!important;overflow:hidden!important}.slot-left,.slot-right{min-height:0!important;overflow:visible!important}.slot-left .player-area,.slot-right .player-area{height:auto!important;max-height:none!important;overflow:visible!important}.slot-left .player-cards,.slot-right .player-cards,.slot-left .melds-row,.slot-right .melds-row{max-height:none!important;overflow:visible!important}.slot-left .meld-group,.slot-right .meld-group{flex-shrink:0!important;overflow:visible!important}@media (width<=768px){.slot-left .melds-row,.slot-right .melds-row{flex-wrap:wrap!important;overflow:visible!important}.slot-left .meld-group,.slot-right .meld-group{flex-direction:row!important}}.slot-top{z-index:4!important;align-items:flex-start!important;min-height:104px!important;max-height:none!important;overflow:visible!important}.slot-top .player-area{width:min(720px,100%)!important;max-width:min(720px,100%)!important;min-height:0!important;max-height:none!important;padding:5px 10px 12px!important;overflow:visible!important}.slot-top .player-cards{align-items:center!important;gap:5px!important;width:100%!important;overflow:visible!important}.slot-top .melds-row{flex-wrap:wrap!important;justify-content:center!important;width:100%!important;max-width:100%!important;max-height:none!important;padding-bottom:20px!important;overflow:visible!important}.slot-top .meld-group{flex-direction:row!important;flex-shrink:0!important;overflow:visible!important}.slot-top .opponent-hand-summary{max-width:188px!important}@media (width>=1200px){.game-table{grid-template-rows:minmax(78px,auto) minmax(500px,1fr) minmax(108px,auto)!important}.slot-top .player-area{max-width:min(820px,100%)!important}}@media (width<=900px){.slot-top{min-height:92px!important}.slot-top .player-area{width:min(96vw,100%)!important;padding:4px 7px 11px!important}.slot-top .melds-row{scrollbar-width:none!important;flex-wrap:nowrap!important;justify-content:flex-start!important;overflow:auto visible!important}.slot-top .melds-row::-webkit-scrollbar{display:none}}@media (width<=480px){.slot-top{min-height:86px!important}.slot-top .opponent-hand-summary{max-width:142px!important}}.game-table{isolation:isolate!important;grid-template-rows:minmax(112px,auto) minmax(460px,1fr) minmax(122px,auto)!important;align-items:stretch!important;overflow:hidden!important}.player-slot{z-index:3!important;pointer-events:none!important;position:relative!important}.player-slot .player-area{pointer-events:auto!important}.table-center{z-index:1!important;padding:8px 0!important;position:relative!important;overflow:hidden!important}.central-discards{z-index:1!important;position:relative!important;overflow:hidden!important}.central-discard-row,.central-discard-tiles{overflow:hidden!important}.slot-top{z-index:3!important;justify-content:center!important;align-items:center!important;min-height:112px!important;max-height:132px!important;overflow:hidden!important}.slot-top .player-area{box-sizing:border-box!important;width:min(820px,100%)!important;max-width:min(820px,100%)!important;max-height:128px!important;overflow:hidden!important}.slot-top .player-cards,.slot-top .melds-row{overflow:visible!important}.slot-top .melds-row{flex-wrap:wrap!important;align-content:flex-start!important;max-height:72px!important}.slot-left,.slot-right{z-index:3!important;overflow:hidden!important}.slot-left .player-area,.slot-right .player-area{max-height:180px!important;overflow:visible!important}.slot-bottom{z-index:4!important;overflow:visible!important}.action-bar,.hand-action-bar{z-index:72!important}@media (width>=1200px){.game-table{grid-template-rows:minmax(118px,auto) minmax(510px,1fr) minmax(124px,auto)!important}.slot-top{min-height:118px!important;max-height:140px!important}.slot-top .player-area{max-height:136px!important}}@media (height<=760px) and (width>=769px){.game-table{grid-template-rows:minmax(96px,auto) minmax(380px,1fr) minmax(104px,auto)!important}.slot-top{min-height:96px!important;max-height:112px!important}.slot-top .player-area{max-height:110px!important}.slot-top .melds-row{max-height:58px!important}}@media (width<=900px){.game-table{grid-template-rows:minmax(106px,auto) minmax(430px,auto) minmax(140px,auto)!important;overflow:hidden auto!important}.slot-top{min-height:106px!important;max-height:124px!important}.slot-top .player-area{width:min(96vw,100%)!important;max-height:120px!important}.slot-top .melds-row{flex-wrap:nowrap!important;max-height:none!important;overflow:auto visible!important}.table-center,.central-discards{overflow:hidden!important}}@media (width<=480px){.game-table{grid-template-rows:minmax(96px,auto) minmax(408px,auto) minmax(146px,auto)!important}.slot-top{min-height:96px!important;max-height:116px!important}.slot-top .player-area{max-height:112px!important}}.game-table{isolation:isolate!important;grid-template-rows:minmax(148px,auto) minmax(420px,1fr) minmax(132px,auto)!important;grid-template-columns:minmax(210px,240px) minmax(520px,1fr) minmax(210px,240px)!important;gap:10px!important;padding:8px 14px 10px!important;overflow:visible!important}.player-slot{z-index:10!important;min-width:0!important;min-height:0!important;position:relative!important;overflow:visible!important}.slot-top{justify-content:center!important;align-items:flex-start!important;min-height:148px!important;max-height:none!important;overflow:visible!important}.slot-top .player-area{width:min(980px,100%)!important;max-width:min(980px,100%)!important;min-height:132px!important;max-height:none!important;overflow:visible!important}.slot-left,.slot-right{justify-content:center!important;align-items:center!important;min-width:210px!important;max-width:240px!important;overflow:visible!important}.slot-left .player-area,.slot-right .player-area{width:100%!important;min-height:170px!important;max-height:none!important;overflow:visible!important}.slot-bottom{z-index:12!important;min-height:132px!important;overflow:visible!important}.table-center{z-index:1!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:6px!important;overflow:hidden!important}.central-discards{z-index:1!important;box-sizing:border-box!important;grid-template-rows:minmax(92px,auto) minmax(190px,1fr) minmax(86px,auto)!important;grid-template-columns:minmax(128px,.78fr) minmax(230px,1.45fr) minmax(128px,.78fr)!important;width:100%!important;min-width:0!important;max-width:100%!important;overflow:hidden!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:132px!important}.slot-top .player-cards,.slot-left .player-cards,.slot-right .player-cards,.slot-top .melds-row,.slot-left .melds-row,.slot-right .melds-row{max-height:none!important;overflow:visible!important}@media (width>=1280px){.game-table{grid-template-rows:minmax(156px,auto) minmax(450px,1fr) minmax(136px,auto)!important;grid-template-columns:minmax(230px,260px) minmax(560px,1fr) minmax(230px,260px)!important}.slot-left,.slot-right{min-width:230px!important;max-width:260px!important}.central-discards{grid-template-columns:minmax(148px,.82fr) minmax(260px,1.5fr) minmax(148px,.82fr)!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:152px!important}}@media (width<=1100px){.game-table{grid-template-rows:minmax(138px,auto) minmax(410px,auto) minmax(132px,auto)!important;grid-template-columns:minmax(154px,178px) minmax(360px,1fr) minmax(154px,178px)!important;gap:8px!important;padding-inline:8px!important}.slot-left,.slot-right{min-width:154px!important;max-width:178px!important}.central-discards{grid-template-columns:minmax(92px,.72fr) minmax(190px,1.55fr) minmax(92px,.72fr)!important}.discard-row-left .central-discard-tiles,.discard-row-right .central-discard-tiles{max-width:96px!important}}@media (width<=900px){.game-table{grid-template-rows:minmax(128px,auto) minmax(430px,auto) minmax(148px,auto)!important;grid-template-columns:minmax(86px,108px) minmax(0,1fr) minmax(86px,108px)!important;overflow:hidden auto!important}.slot-top{min-height:128px!important}.slot-top .player-area{width:min(96vw,100%)!important;min-height:116px!important}.slot-left,.slot-right{min-width:86px!important;max-width:108px!important}}@media (width<=480px){.game-table{grid-template-rows:minmax(118px,auto) minmax(408px,auto) minmax(150px,auto)!important;grid-template-columns:54px minmax(0,1fr) 54px!important;gap:5px!important;padding-inline:3px!important}.slot-left,.slot-right{min-width:54px!important;max-width:54px!important}}.game-table,.table-center,.central-discards,.central-discard-row,.central-discard-tiles{overflow:visible!important}.central-discards{padding-top:18px!important;padding-bottom:12px!important}.central-discard-row{min-height:0!important;padding-top:12px!important}.discard-row-bottom{padding-bottom:14px!important}.central-discard-tiles{align-content:flex-start!important;gap:4px!important}.discard-tile-wrap{z-index:1!important;margin-top:18px!important;position:relative!important;overflow:visible!important}.discard-latest{z-index:8!important}.discard-arrow{z-index:12!important;pointer-events:none!important;top:-22px!important;overflow:visible!important}.slot-bottom,.slot-bottom .player-area,.slot-bottom .player-cards,.slot-bottom .hand-row{overflow:visible!important}.slot-bottom{min-height:154px!important}@media (width>=1200px){.slot-bottom{min-height:162px!important}.hand-action-bar{bottom:calc(136px + env(safe-area-inset-bottom,0px))!important}}@media (height<=760px) and (width>=769px){.central-discards{padding-top:16px!important}.discard-tile-wrap{margin-top:16px!important}.discard-arrow{top:-20px!important}.slot-bottom{min-height:142px!important}.hand-action-bar{bottom:calc(116px + env(safe-area-inset-bottom,0px))!important}}@media (width<=900px){.game-table{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))!important;overflow:visible auto!important}.table-center,.central-discards,.central-discard-row,.central-discard-tiles{overflow:visible!important}.central-discards{padding-top:16px!important}.discard-tile-wrap{margin-top:16px!important}.discard-arrow{top:-20px!important}.slot-bottom{min-height:162px!important}.hand-action-bar{bottom:calc(146px + env(safe-area-inset-bottom,0px))!important}}@media (width<=480px){.central-discards{padding-top:14px!important}.discard-tile-wrap{margin-top:14px!important}.discard-arrow{width:16px!important;height:16px!important;font-size:12px!important;top:-18px!important}.slot-bottom{min-height:166px!important}}.table-dashboard{gap:6px!important;max-height:88px!important;padding:6px 8px!important;overflow:visible!important}.dashboard-main-row{grid-template-columns:minmax(60px,auto) minmax(100px,1fr) minmax(140px,auto)!important;gap:6px!important}.wall-indicator.compact{min-width:56px!important;padding:3px 8px!important}.wall-count{font-size:14px!important}.turn-indicator{padding-inline:6px!important}.turn-player-name{font-size:12px!important}.last-discard-callout{gap:4px!important;padding-inline:6px!important}.dashboard-sub-row{gap:5px!important;padding-top:2px!important}.dashboard-sub-row .tenpai-item{padding:2px 5px!important;font-size:9px!important}.central-discards{gap:6px!important;height:clamp(280px,38vh,440px)!important;min-height:240px!important;max-height:440px!important;padding:10px!important}.central-discard-row{min-height:0!important;padding:4px!important}.central-discard-name{padding:1px 4px!important;font-size:10px!important}.slot-bottom{min-height:180px!important;padding-top:4px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){gap:3px!important;min-height:96px!important;padding:8px 4px 16px!important;overflow:visible!important}.slot-left,.slot-right{min-width:180px!important;max-width:220px!important;overflow:visible!important}.slot-left .player-area,.slot-right .player-area{min-height:140px!important;overflow:visible!important}.slot-top{min-height:110px!important;overflow:visible!important}.slot-top .player-area{min-height:100px!important;overflow:visible!important}.discard-tile-wrap{margin-top:22px!important;overflow:visible!important}.discard-arrow{z-index:20!important;width:20px!important;height:20px!important;font-size:14px!important;top:-24px!important;overflow:visible!important}@media (width>=1024px) and (height<=900px){.table-dashboard{max-height:56px!important;padding:4px 8px!important}.central-discards{height:clamp(240px,32vh,380px)!important;min-height:200px!important}.slot-bottom{min-height:200px!important}.hand-action-bar{bottom:calc(168px + env(safe-area-inset-bottom,0px))!important}}@media (width<=900px){.table-dashboard{max-height:76px!important;padding:4px 6px!important}.central-discards{height:clamp(260px,36vh,400px)!important;min-height:220px!important}.slot-bottom{min-height:190px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){min-height:88px!important;padding-bottom:14px!important}.slot-left,.slot-right{min-width:90px!important;max-width:120px!important}.discard-tile-wrap{margin-top:20px!important}.discard-arrow{top:-22px!important}.hand-action-bar{bottom:calc(142px + env(safe-area-inset-bottom,0px))!important}}@media (width<=480px){.table-dashboard{max-height:68px!important;padding:3px 6px!important}.central-discards{height:clamp(220px,32vh,340px)!important;min-height:180px!important}.slot-bottom{min-height:200px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){min-height:82px!important;padding:6px 2px 12px!important;overflow:auto hidden!important}.discard-tile-wrap{margin-top:18px!important}.discard-arrow{width:18px!important;height:18px!important;font-size:12px!important;top:-20px!important}.hand-action-bar{bottom:calc(148px + env(safe-area-inset-bottom,0px))!important}}.slot-bottom{align-items:flex-start!important;padding-top:0!important;padding-bottom:0!important;transform:translateY(-34px)!important}.slot-bottom .hand-row:not(.opponent-hand-summary){min-height:104px!important;padding-bottom:6px!important}.table-center,.central-discards,.central-discard-row,.central-discard-tiles,.discard-tile-wrap{overflow:visible!important}.central-discard-row{padding-top:12px!important}.discard-tile-wrap{margin-top:24px!important}.discard-arrow{z-index:30!important;top:-25px!important}@media (width>=1024px) and (height<=900px){.slot-bottom{min-height:208px!important;transform:translateY(-42px)!important}}@media (width<=900px){.slot-bottom{transform:translateY(-26px)!important}}@media (width<=480px){.slot-bottom{transform:translateY(-18px)!important}}.game-board{overflow:hidden!important}.game-table{min-height:0!important;overflow:hidden!important}.table-center{min-height:0!important}.slot-bottom{align-items:flex-start!important;min-height:136px!important;transform:translateY(-56px)!important}.slot-bottom .position-bottom{max-height:136px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){min-height:82px!important;max-height:96px!important;padding:4px 6px 8px!important;overflow:auto visible!important}@media (width<=1100px) and (width>=769px){.game-table{grid-template-rows:minmax(92px,auto) minmax(300px,1fr) minmax(112px,auto)!important;grid-template-columns:minmax(118px,148px) minmax(360px,1fr) minmax(118px,148px)!important;gap:5px!important;padding:4px 8px 0!important}.slot-top{min-height:92px!important;max-height:108px!important}.slot-top .player-area{min-height:86px!important;max-height:104px!important}.slot-left,.slot-right{min-width:118px!important;max-width:148px!important}.slot-left .player-area,.slot-right .player-area{min-height:112px!important}.central-discards{grid-template-rows:minmax(58px,auto) minmax(128px,1fr) minmax(64px,auto)!important;grid-template-columns:minmax(72px,.72fr) minmax(180px,1.55fr) minmax(72px,.72fr)!important;gap:5px!important;height:clamp(260px,36vh,360px)!important;min-height:260px!important;padding:6px!important}.slot-bottom{min-height:132px!important;transform:translateY(-64px)!important}.hand-action-bar{bottom:calc(92px + env(safe-area-inset-bottom,0px))!important}}@media (width>=1024px) and (height<=900px){.slot-bottom{transform:translateY(-70px)!important}.hand-action-bar{bottom:calc(96px + env(safe-area-inset-bottom,0px))!important}}@media (width<=768px){.game-table{padding-bottom:calc(48px + env(safe-area-inset-bottom,0px))!important;overflow-y:auto!important}.slot-bottom{min-height:132px!important;transform:translateY(-44px)!important}}@media (width<=480px){.slot-bottom{transform:translateY(-30px)!important}}.table-center{grid-template-rows:minmax(0,1fr)!important;gap:0!important;position:relative!important;overflow:visible!important}.table-dashboard{z-index:18!important;pointer-events:none!important;border-radius:999px!important;width:auto!important;max-width:min(520px,100% - 24px)!important;min-height:0!important;max-height:none!important;padding:4px 6px!important;position:absolute!important;top:8px!important;left:50%!important;transform:translate(-50%)!important}.dashboard-main-row{flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;gap:5px!important;width:auto!important;display:flex!important}.last-discard-callout,.claim-target-hint{color:#18231dd6!important;pointer-events:auto!important;background:#ffffffc7!important;gap:5px!important;min-height:28px!important;padding:4px 8px!important;font-size:11px!important}.tenpai-side-panel{z-index:20!important;-webkit-backdrop-filter:blur(16px)saturate(145%)!important;pointer-events:auto!important;background:#ffffffb8!important;border:1px solid #ffffffc2!important;border-radius:18px!important;flex-direction:column!important;gap:6px!important;width:min(220px,26vw)!important;max-height:min(280px,58%)!important;padding:8px!important;display:flex!important;position:absolute!important;top:50%!important;right:10px!important;transform:translateY(-50%)!important;box-shadow:0 12px 30px #18322224,inset 0 1px #ffffffb3!important}.tenpai-side-panel .tenpai-title{flex:none!important;font-size:12px!important}.tenpai-side-panel .tenpai-list{scrollbar-width:thin!important;flex-flow:column!important;gap:5px!important;max-height:230px!important;display:flex!important;overflow:hidden auto!important}.tenpai-side-panel .tenpai-item{white-space:normal!important;font-size:11px!important;line-height:1.25!important}.central-discards{align-self:stretch!important;height:100%!important;min-height:0!important;padding-top:40px!important}.player-info{opacity:.88!important;box-shadow:0 4px 14px #1832221a!important}.slot-top .player-info,.slot-left .player-info,.slot-right .player-info{z-index:16!important;transform-origin:top!important;gap:4px!important;margin:0!important;padding:2px 6px!important;font-size:10px!important;position:absolute!important;transform:scale(.92)!important}.slot-top .player-info{top:-4px!important;left:50%!important;transform:translate(-50%)scale(.92)!important}.slot-left .player-info{transform-origin:0 0!important;top:0!important;left:-4px!important}.slot-right .player-info{transform-origin:100% 0!important;top:0!important;right:-4px!important}.slot-bottom{z-index:30!important;min-height:156px!important;transform:translateY(-74px)!important}.slot-bottom .position-bottom{width:min(100%,1080px)!important;max-height:none!important;padding-top:38px!important;position:relative!important}.slot-bottom .player-cards{width:100%!important;min-height:108px!important;display:block!important;position:relative!important}.slot-bottom .melds-row{z-index:34!important;scrollbar-width:none!important;flex-wrap:nowrap!important;justify-content:center!important;align-items:flex-end!important;gap:5px!important;width:min(100%,920px)!important;max-height:48px!important;padding:0 8px 16px!important;display:flex!important;position:absolute!important;bottom:calc(100% - 16px)!important;left:50%!important;overflow:auto visible!important;transform:translate(-50%)!important}.slot-bottom .hand-row:not(.opponent-hand-summary){z-index:32!important;flex-wrap:nowrap!important;justify-content:center!important;min-height:92px!important;max-height:108px!important;padding:6px 6px 10px!important;position:relative!important;overflow:auto visible!important}.hand-action-bar{bottom:calc(102px + env(safe-area-inset-bottom,0px))!important}@media (width<=1100px) and (width>=769px){.game-table{grid-template-rows:minmax(82px,auto) minmax(280px,1fr) minmax(118px,auto)!important;padding-bottom:0!important}.table-dashboard{max-width:min(460px,100% - 18px)!important;top:6px!important}.central-discards{grid-template-rows:minmax(52px,auto) minmax(104px,1fr) minmax(58px,auto)!important;height:100%!important;min-height:230px!important;padding-top:34px!important}.slot-bottom{min-height:142px!important;transform:translateY(-82px)!important}.slot-bottom .position-bottom{padding-top:34px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){justify-content:flex-start!important;min-height:86px!important;max-height:102px!important}.hand-action-bar{bottom:calc(92px + env(safe-area-inset-bottom,0px))!important}}@media (width<=768px){.table-dashboard{max-width:calc(100% - 12px)!important;top:5px!important}.tenpai-side-panel{top:auto!important;right:6px!important;bottom:calc(168px + env(safe-area-inset-bottom,0px))!important;width:min(240px,100% - 12px)!important;max-height:108px!important;transform:none!important}.tenpai-side-panel .tenpai-list{max-height:68px!important}.central-discards{padding-top:34px!important}.slot-bottom{min-height:142px!important;transform:translateY(-50px)!important}.slot-bottom .position-bottom{padding-top:32px!important}.slot-bottom .melds-row{justify-content:flex-start!important;max-height:44px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){justify-content:flex-start!important;overflow-x:auto!important}}.game-board{position:relative!important}.game-board>.tenpai-side-panel{right:max(10px, env(safe-area-inset-right,0px))!important;z-index:86!important;-webkit-backdrop-filter:blur(18px)saturate(145%)!important;pointer-events:auto!important;background:#ffffffc7!important;border:1px solid #ffffffd1!important;border-radius:16px!important;width:clamp(150px,13vw,210px)!important;max-height:min(300px,44vh)!important;padding:7px!important;position:fixed!important;top:clamp(86px,23vh,190px)!important;transform:none!important;box-shadow:0 14px 34px #18322229,inset 0 1px #ffffffb8!important}.game-board>.tenpai-side-panel .tenpai-title{font-size:12px!important;line-height:1!important}.game-board>.tenpai-side-panel .tenpai-list{flex-direction:column!important;gap:5px!important;max-height:calc(min(300px,44vh) - 30px)!important;display:flex!important;overflow:hidden auto!important}.game-board>.tenpai-side-panel .tenpai-item{white-space:normal!important;padding:3px 6px!important;font-size:10px!important;line-height:1.22!important}.slot-bottom .position-bottom{box-sizing:border-box!important;padding-top:6px!important;padding-left:min(210px,23vw)!important}.slot-bottom .player-cards{min-height:108px!important;display:block!important;position:relative!important}.slot-bottom .melds-row{scrollbar-width:none!important;z-index:36!important;pointer-events:auto!important;flex-flow:wrap!important;place-content:center flex-start!important;align-items:center!important;gap:5px!important;width:min(190px,22vw)!important;max-width:min(190px,22vw)!important;max-height:104px!important;padding:4px!important;display:flex!important;position:absolute!important;top:50%!important;bottom:auto!important;left:8px!important;overflow:hidden auto!important;transform:translateY(-50%)!important}.slot-bottom .melds-row::-webkit-scrollbar{display:none!important}.slot-bottom .meld-group{flex:none!important;max-width:88px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){z-index:32!important;flex-wrap:nowrap!important;justify-content:flex-start!important;width:100%!important;min-width:0!important;min-height:92px!important;max-height:108px!important;padding:6px 6px 10px!important;position:relative!important;overflow:auto visible!important}@media (width<=1100px) and (width>=769px){.game-board>.tenpai-side-panel{opacity:.94!important;width:138px!important;max-height:210px!important;padding:6px!important;top:clamp(74px,18vh,142px)!important;right:6px!important}.game-board>.tenpai-side-panel .tenpai-list{max-height:178px!important}.slot-bottom .position-bottom{padding-left:min(156px,18vw)!important}.slot-bottom .melds-row{width:min(146px,17vw)!important;max-width:min(146px,17vw)!important;max-height:94px!important;left:4px!important}.slot-bottom .meld-group{max-width:72px!important}}@media (width<=768px){.game-board>.tenpai-side-panel{top:auto!important;right:6px!important;bottom:calc(174px + env(safe-area-inset-bottom,0px))!important;width:min(210px,100vw - 12px)!important;max-height:104px!important;padding:6px!important;position:fixed!important;transform:none!important}.game-board>.tenpai-side-panel .tenpai-list{max-height:72px!important}.slot-bottom .position-bottom{padding-top:34px!important;padding-left:0!important}.slot-bottom .melds-row{flex-wrap:nowrap!important;width:100%!important;max-width:100%!important;max-height:42px!important;top:-28px!important;bottom:auto!important;left:0!important;overflow:auto visible!important;transform:none!important}}@media (width>=769px){.slot-bottom{min-height:162px!important;transform:translateY(-62px)!important}.slot-bottom .position-bottom{box-sizing:border-box!important;width:min(100%,1120px)!important;padding:12px 10px 8px!important;overflow:visible!important}.slot-bottom .player-cards{width:100%!important;min-height:110px!important;display:block!important;position:relative!important;overflow:visible!important}.slot-bottom .melds-row{scrollbar-width:none!important;z-index:20!important;pointer-events:none!important;background:linear-gradient(145deg,#e0f4e8db,#bee0cda8)!important;border:1px solid #1f8f6247!important;border-radius:18px!important;flex-flow:wrap!important;place-content:flex-start!important;align-items:flex-start!important;gap:6px!important;width:clamp(190px,19vw,240px)!important;max-width:clamp(190px,19vw,240px)!important;height:104px!important;max-height:104px!important;padding:18px 8px 8px!important;display:flex!important;position:absolute!important;top:0!important;bottom:auto!important;left:0!important;overflow:hidden auto!important;transform:none!important;box-shadow:0 10px 24px #1850351f,inset 0 1px #ffffffc2!important}.slot-bottom .melds-row:before{content:"固定副露"!important;color:#1f8f62e0!important;letter-spacing:.06em!important;font-size:10px!important;font-weight:1000!important;line-height:1!important;position:absolute!important;top:5px!important;left:10px!important}.slot-bottom .melds-row::-webkit-scrollbar{display:none!important}.slot-bottom .meld-group{pointer-events:none!important;filter:saturate(.86)brightness(.98)!important;max-width:none!important}.slot-bottom .hand-row:not(.opponent-hand-summary){z-index:30!important;box-sizing:border-box!important;justify-content:flex-start!important;width:calc(100% - clamp(220px,22vw,276px))!important;min-width:0!important;min-height:96px!important;max-height:112px!important;margin-left:clamp(220px,22vw,276px)!important;padding:6px 8px 10px!important;position:relative!important;overflow:auto visible!important}.slot-bottom .hand-row:not(.opponent-hand-summary):before{content:""!important;pointer-events:none!important;background:#1f8f622e!important;width:1px!important;position:absolute!important;top:10px!important;bottom:10px!important;left:-18px!important}.slot-bottom .hand-row .mahjong-tile,.slot-bottom .hand-row .tile{pointer-events:auto!important}}@media (width>=769px) and (width<=1100px){.slot-bottom .melds-row{gap:4px!important;width:176px!important;max-width:176px!important;height:98px!important;max-height:98px!important;padding:17px 6px 6px!important}.slot-bottom .hand-row:not(.opponent-hand-summary){width:calc(100% - 198px)!important;min-height:90px!important;max-height:106px!important;margin-left:198px!important}}@media (width>=769px){.game-table,.player-slot,.player-slot .player-area,.player-slot .player-cards{overflow:visible!important}.slot-top .melds-row{flex-flow:row!important;justify-content:center!important;align-items:flex-end!important;gap:8px!important;width:auto!important;max-width:min(620px,62vw)!important;max-height:none!important;padding:4px!important;display:flex!important;overflow:visible!important}.slot-left .melds-row,.slot-right .melds-row{flex-flow:column!important;justify-content:flex-start!important;align-items:flex-start!important;gap:8px!important;max-width:none!important;max-height:none!important;padding:4px!important;display:flex!important;overflow:visible!important}.slot-top .meld-group,.slot-left .meld-group,.slot-right .meld-group,.slot-bottom .meld-group{flex:none!important;grid-template-rows:auto auto!important;grid-template-columns:repeat(4,auto)!important;width:max-content!important;max-width:none!important;display:grid!important}.slot-bottom{min-height:180px!important;overflow:visible!important;transform:translateY(-52px)!important}.slot-bottom .position-bottom{width:min(100%,1240px)!important;min-height:142px!important;padding:12px 10px 10px!important;overflow:visible!important}.slot-bottom .player-cards{justify-content:center!important;align-items:flex-end!important;width:100%!important;min-height:126px!important;display:flex!important;position:relative!important;overflow:visible!important}.slot-bottom .melds-row{pointer-events:none!important;z-index:20!important;flex-flow:row!important;justify-content:flex-start!important;place-self:end start!important;align-items:flex-end!important;gap:8px!important;width:clamp(300px,31vw,430px)!important;max-width:clamp(300px,31vw,430px)!important;height:auto!important;min-height:0!important;max-height:none!important;padding:8px 0 12px!important;display:flex!important;position:absolute!important;bottom:0!important;left:0!important;overflow:visible!important;transform:none!important}.slot-bottom .hand-row:not(.opponent-hand-summary){scrollbar-width:none!important;z-index:30!important;flex:0 auto!important;width:max-content!important;min-width:min(880px,100vw - 420px)!important;max-width:min(980px,100vw - 360px)!important;min-height:108px!important;max-height:none!important;margin-left:0!important;position:relative!important;overflow:hidden visible!important}.slot-bottom .hand-row:not(.opponent-hand-summary)::-webkit-scrollbar{display:none!important}}@media (width>=769px) and (width<=1100px){.slot-bottom .player-cards{justify-content:center!important}.slot-bottom .melds-row{width:284px!important;max-width:284px!important}.slot-top .melds-row{max-width:min(520px,58vw)!important}.slot-bottom .hand-row:not(.opponent-hand-summary){min-width:min(760px,100vw - 360px)!important;max-width:min(900px,100vw - 320px)!important;min-height:100px!important;max-height:none!important}}@media (width>=769px){.action-bar{bottom:calc(72px + env(safe-area-inset-bottom,0px))!important}.hand-action-bar{bottom:calc(124px + env(safe-area-inset-bottom,0px))!important}}@media (width<=768px){.action-bar{bottom:calc(18px + env(safe-area-inset-bottom,0px))!important}.hand-action-bar{bottom:calc(160px + env(safe-area-inset-bottom,0px))!important}}.settlement-overlay{z-index:900;backdrop-filter:blur(8px);background:#000c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.settlement-container{background:linear-gradient(135deg,#1e321e 0%,#162816 100%);border:2px solid #f0c04066;border-radius:20px;width:100%;max-width:760px;max-height:90vh;padding:0;overflow-y:auto;box-shadow:0 0 60px #f0c04026,0 16px 48px #00000080}.winner-banner{text-align:center;background:linear-gradient(#f0c0401a 0%,#0000 100%);border-bottom:1px solid #f0c04026;padding:32px 20px 24px}.winner-stars{margin-bottom:8px;font-size:28px;animation:.6s ease-in-out infinite alternate star-sparkle}@keyframes star-sparkle{0%{opacity:.7;transform:scale(1)}to{opacity:1;transform:scale(1.05)}}.winner-announcement{color:#f0c040;text-shadow:0 0 20px #f0c0404d;margin:0 0 12px;font-size:24px}.winner-detail{justify-content:center;align-items:center;gap:12px;display:flex}.winner-name{color:#e8dcc8;font-size:18px;font-weight:600}.win-type-badge{color:#27ae60;background:#27ae6033;border:1px solid #27ae6066;border-radius:20px;padding:4px 12px;font-size:13px;font-weight:600}.total-fan{color:#e74c3c;background:#e74c3c1a;border-radius:20px;padding:4px 14px;font-size:20px;font-weight:800}.settlement-section:last-of-type{border-bottom:none}.settlement-section h3{color:#c0b87a;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px;font-size:14px}.winning-hand-display{background:#00000040;border-radius:12px;flex-wrap:wrap;justify-content:center;gap:4px;padding:12px;display:flex}.fan-breakdown-table{border-collapse:collapse;width:100%}.fan-breakdown-table th{text-align:left;color:#a0a080;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #ffffff1a;padding:8px 10px;font-size:11px;font-weight:600}.fan-breakdown-table td{color:#e8dcc8;border-bottom:1px solid #ffffff08;padding:10px;font-size:13px}.fan-icon-cell{text-align:center;width:36px;font-size:18px}.fan-name-cell{min-width:80px;font-weight:600}.fan-value-cell{text-align:center;min-width:50px;font-weight:700;color:#f0c040!important}.fan-desc-cell{color:#a0a080!important;font-size:12px!important}.total-row td{border-top:2px solid #f0c04033;border-bottom:none;padding-top:12px;font-weight:700;color:#f0c040!important}.payouts-list{flex-direction:column;gap:6px;display:flex}.payout-item{background:#0003;border:1px solid #ffffff0d;border-radius:8px;align-items:center;gap:8px;padding:10px 14px;display:flex}.payout-item.involved{background:#f0c0400d;border-color:#f0c0404d}.payout-from,.payout-to{color:#e8dcc8;font-size:14px}.payout-arrow{color:#a0a080;font-size:14px}.payout-amount{color:#f0c040;margin-left:auto;font-size:15px;font-weight:700}.settlement-actions{justify-content:center;gap:12px;padding:20px;display:flex}.settlement-btn{cursor:pointer;border:none;border-radius:10px;padding:12px 28px;font-size:15px;font-weight:600;transition:all .2s}.settlement-btn:hover{transform:translateY(-2px)}.btn-new-game:hover{box-shadow:0 6px 18px #f39c1280}.btn-back-lobby{color:#c0b87a;background:#ffffff1a;border:1px solid #ffffff26}.btn-back-lobby:hover{color:#e8dcc8;background:#ffffff26}.settlement-container::-webkit-scrollbar{width:6px}.settlement-container::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.settlement-container::-webkit-scrollbar-thumb{background:#f0c0404d;border-radius:3px}@media (width<=480px){.settlement-container{border-radius:12px;max-height:95vh}.winner-announcement{font-size:20px}.fan-breakdown-table th,.fan-breakdown-table td{padding:6px 8px;font-size:11px}.settlement-actions{flex-direction:column}}.winning-hand-display{align-items:flex-end}.winning-tile-wrap{background:#f0c0401f;border:1px solid #f0c04059;border-radius:12px;align-items:flex-end;gap:6px;margin-left:8px;padding:6px 8px;display:flex;position:relative}.winning-plus{color:#f0c040;padding-bottom:20px;font-size:24px;font-weight:900}.winning-label{white-space:nowrap;color:#f0c040;font-size:11px;font-weight:700;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.winning-melds{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:16px;display:flex}.melds-label{color:#c0b87a;letter-spacing:1px;font-size:12px}.settlement-meld{background:#ffffff0f;border-radius:10px;gap:2px;padding:5px;display:flex}.winning-hand-summary{color:#e8dcc8c7;text-align:center;margin-top:14px;font-size:12px;line-height:1.5}.ranking-list{gap:8px;display:grid}.ranking-item{background:#00000038;border:1px solid #ffffff12;border-radius:12px;grid-template-columns:52px 1fr 78px 96px;align-items:center;gap:10px;padding:10px 12px;display:grid}.ranking-item.winner{border-color:#f0c04073}.ranking-rank{color:#f0c040;font-weight:900}.ranking-name{color:#e8dcc8;font-weight:700}.ranking-delta{text-align:right;font-weight:800}.ranking-score{text-align:right;color:#f0c040;font-weight:800}.btn-share{color:#e8dcc8;background:#ffffff1a;border:1px solid #ffffff2e}.share-status{text-align:center;color:#2ecc71;padding:0 20px 18px;font-size:13px}.settlement-all-hands{gap:12px;display:grid}.player-hand-snapshot{background:#0000002e;border:1px solid #ffffff14;border-radius:18px;padding:12px}.player-hand-snapshot.self{background:#0a84ff14;border-color:#0a84ff47}.player-hand-snapshot.winner{background:#ff9f0a17;border-color:#ff9f0a57}.snapshot-header,.snapshot-identity,.snapshot-row,.snapshot-meld,.snapshot-tiles{align-items:center;display:flex}.snapshot-header{justify-content:space-between;gap:10px;margin-bottom:10px}.snapshot-identity{gap:7px;min-width:0}.snapshot-wind{color:#fff;background:#1f8f62db;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:900;display:inline-flex}.snapshot-name{color:#e8dcc8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:850;overflow:hidden}.snapshot-score{color:#f0c040;white-space:nowrap;font-size:12px;font-weight:850}.snapshot-badge{white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900}.self-badge{color:#0a84ff;background:#0a84ff1f}.winner-badge{color:#b56a00;background:#ff9f0a29}.snapshot-row{align-items:flex-start;gap:9px;margin-top:8px}.snapshot-label{color:#a0a080;flex:0 0 34px;font-size:11px;font-weight:850;line-height:34px}.snapshot-empty{color:#e8dcc894;font-size:12px;line-height:34px}.snapshot-melds,.snapshot-hand-tiles{flex-wrap:wrap;gap:7px;min-width:0;display:flex}.snapshot-meld{background:#ffffff14;border:1px solid #ffffff14;border-radius:12px;gap:4px;padding:4px 6px}.snapshot-meld-label{color:#c0b87a;white-space:nowrap;font-size:10px;font-weight:900}.snapshot-tiles{flex-wrap:wrap;gap:2px}.settlement-overlay{-webkit-backdrop-filter:blur(30px)saturate(150%);background:#dae9e0b8}.settlement-container{max-width:820px;color:var(--am-text);box-shadow:var(--am-shadow-card);background:linear-gradient(145deg,#ffffffe0,#fff9);border:1px solid #ffffffbd;border-radius:32px}.winner-banner{background:radial-gradient(circle at 50% 0,#ffffffd6,#0000 46%),linear-gradient(#1f8f621a,#0000);border-bottom:1px solid #28443514;padding:34px 24px 26px}.winner-stars{filter:drop-shadow(0 8px 18px #ff9f0a2e)}.winner-announcement{color:var(--am-text);letter-spacing:-.04em;text-shadow:none;font-size:clamp(24px,4vw,34px);font-weight:900}.winner-name{color:var(--am-text);font-weight:850}.win-type-badge{color:var(--am-accent);background:#1f8f621f;border-color:#1f8f622e;border-radius:999px}.total-fan{color:#b56a00;background:#ff9f0a24;border-radius:999px}.settlement-section{border-bottom:1px solid #28443514;padding:22px}.settlement-section h3{color:var(--am-text-muted);font-weight:850}.winning-hand-display{background:#ffffff8f;border:1px solid #28443514;border-radius:22px}.winning-tile-wrap{background:#ff9f0a1f;border-color:#ff9f0a47}.winning-plus,.winning-label{color:var(--am-warn)}.melds-label,.winning-hand-summary,.fan-breakdown-table th,.fan-desc-cell{color:var(--am-text-muted)!important}.settlement-meld,.ranking-item,.payout-item{background:#ffffff8c;border:1px solid #28443514;border-radius:18px}.fan-breakdown-table td,.payout-from,.payout-to,.ranking-name{color:var(--am-text)}.fan-value-cell,.total-row td,.ranking-rank,.ranking-score{color:var(--am-accent)!important}.ranking-item.self{background:#0a84ff14;border-color:#0a84ff3d}.ranking-item.winner{background:#ff9f0a14;border-color:#ff9f0a42}.ranking-delta.positive{color:var(--am-accent)}.ranking-delta.negative{color:var(--am-danger)}.payout-amount{color:var(--am-accent)}.settlement-actions{gap:12px;padding:18px 22px 22px}.settlement-btn{border:1px solid #ffffff8c;border-radius:999px;min-height:46px}.btn-new-game{color:#fff;background:linear-gradient(145deg,#34c983,#1f8f62);box-shadow:0 14px 30px #1f8f6238,inset 0 1px #ffffff52}.btn-share{color:var(--am-text);background:#ffffff94;border-color:#2844351a}.btn-share:hover{background:#ffffffc7}.share-status{color:var(--am-accent);font-weight:760}.player-hand-snapshot{background:#ffffff8a;border-color:#28443514}.snapshot-name{color:var(--am-text)}.snapshot-score{color:var(--am-accent)}.snapshot-label,.snapshot-empty,.snapshot-meld-label{color:var(--am-text-muted)}.snapshot-meld{background:#ffffff94;border-color:#28443514}@media (width<=480px){.settlement-overlay{align-items:flex-end;padding:8px}.settlement-container{border-radius:28px 28px 18px 18px;max-height:94dvh}.winner-banner{padding:26px 16px 20px}.winner-detail{flex-wrap:wrap}.settlement-section{padding:16px}.ranking-item{grid-template-columns:42px 1fr 58px}.ranking-score{display:none}.snapshot-header{align-items:flex-start}.snapshot-row{display:block}.snapshot-label{margin-bottom:6px;line-height:1;display:block}.snapshot-melds,.snapshot-hand-tiles{gap:5px}}.settlement-container.exporting-settlement{max-height:none!important;overflow:visible!important;box-shadow:0 20px 60px #1832222e!important}.settlement-container.exporting-settlement .settlement-actions,.settlement-container.exporting-settlement .share-status{display:none!important}.settlement-container.exporting-settlement .winning-hand-display,.settlement-container.exporting-settlement .winning-melds,.settlement-container.exporting-settlement .all-hands-section,.settlement-container.exporting-settlement .fan-breakdown,.settlement-container.exporting-settlement .payouts-list,.settlement-container.exporting-settlement .ranking-list{break-inside:avoid}.rule-guide-overlay{z-index:1000;backdrop-filter:blur(4px);background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.rule-guide-modal{background:linear-gradient(135deg,#1e321e 0%,#162816 100%);border:1px solid #f0c0404d;border-radius:16px;flex-direction:column;width:100%;max-width:640px;max-height:85vh;display:flex;overflow:hidden;box-shadow:0 16px 48px #00000080}.rule-guide-header{border-bottom:1px solid #f0c04026;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.rule-guide-title{color:#f0c040;margin:0;font-size:18px}.rule-guide-close{color:#a0a080;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;transition:all .2s;display:flex}.rule-guide-tabs{border-bottom:1px solid #f0c0401a;flex-shrink:0;gap:2px;padding:0 12px;display:flex;overflow-x:auto}.rule-tab{color:#a0a080;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:13px;font-weight:500;transition:all .2s}.rule-tab.active{color:#f0c040;border-bottom-color:#f0c040}.rule-guide-content{flex:1;padding:20px;overflow-y:auto}.fan-header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.fan-icon{font-size:36px}.fan-title-group{flex-direction:column;display:flex}.fan-name{color:#f0c040;margin:0;font-size:22px}.fan-value{color:#e74c3c;font-size:16px;font-weight:700}.fan-description{color:#c0b87a;margin:0 0 20px;font-size:14px;line-height:1.6}.fan-example{margin-bottom:24px}.fan-example h4{color:#a0a080;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;font-size:13px}.example-tiles{background:#00000040;border-radius:12px;padding:16px}.example-container{flex-direction:column;align-items:center;gap:12px;display:flex}.example-grid{flex-wrap:wrap;justify-content:center;gap:3px;display:flex}.shisanmeyao-grid{grid-template-columns:repeat(5,1fr);justify-items:center;gap:4px;display:grid}.shisanmeyao-grid>:nth-child(11),.shisanmeyao-grid>:nth-child(12),.shisanmeyao-grid>:nth-child(13){grid-column:auto}.qixiaodui-grid{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pair-group{gap:2px;display:flex}.example-hint{color:#a0a080;align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.cycle-btn{color:#f0c040;cursor:pointer;background:#f0c04026;border:1px solid #f0c0404d;border-radius:4px;padding:2px 8px;font-size:11px;transition:all .2s}.cycle-btn:hover{background:#f0c04040}.example-note{color:#807860;text-align:center;margin:0;font-size:12px;line-height:1.5}.example-plus{color:#f0c040;background:#f0c0401f;border:1px solid #f0c04047;border-radius:999px;align-self:center;padding:3px 8px;font-size:12px;font-weight:800}.rule-extra-section{color:#d8cf9a;background:#f0c04014;border:1px solid #f0c0402e;border-radius:12px;flex-shrink:0;margin:0 20px 20px;padding:14px 16px}.rule-extra-section h4{color:#f0c040;margin:0 0 8px;font-size:14px}.rule-extra-section ul{margin:0;padding-left:18px}.rule-extra-section li{margin:6px 0;font-size:12px;line-height:1.5}.fans-summary{margin-top:8px}.fans-summary h4{color:#a0a080;text-transform:uppercase;letter-spacing:1px;margin:0 0 10px;font-size:13px}.fans-table{flex-direction:column;gap:4px;display:flex}.fan-row{background:#00000026;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.fan-row-icon{text-align:center;width:24px;font-size:16px}.fan-row-name{color:#e8dcc8;flex:1}.fan-row-value{color:#f0c040;text-align:right;min-width:36px;font-weight:600}.rule-guide-content::-webkit-scrollbar{width:6px}.rule-guide-content::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.rule-guide-content::-webkit-scrollbar-thumb{background:#f0c0404d;border-radius:3px}.rule-guide-content::-webkit-scrollbar-thumb:hover{background:#f0c04080}@media (width<=480px){.rule-guide-modal{border-radius:12px;max-height:90vh}.rule-guide-title{font-size:16px}.fan-name{font-size:18px}.rule-tab{padding:8px 12px;font-size:12px}}.rule-guide-overlay{-webkit-backdrop-filter:blur(28px)saturate(150%);background:#dae9e0ad}.rule-guide-modal{color:var(--am-text);box-shadow:var(--am-shadow-card);background:linear-gradient(145deg,#ffffffe0,#ffffff9e);border:1px solid #ffffffb8;border-radius:30px}.rule-guide-header{border-bottom:1px solid #2844351a;padding:18px 22px}.rule-guide-title{color:var(--am-text);letter-spacing:-.02em;font-weight:850}.rule-guide-close{color:var(--am-text-muted);background:#18231d14;border:1px solid #ffffff8c}.rule-guide-close:hover{color:var(--am-text);background:#18231d1f}.rule-guide-tabs{border-bottom:1px solid #28443514;gap:6px;padding:8px 12px}.rule-tab{color:var(--am-text-muted);border-bottom:0;border-radius:999px;font-weight:760}.rule-tab:hover{color:var(--am-text);background:#1f8f6214}.rule-tab.active{color:var(--am-accent);background:#1f8f621f;border-bottom-color:#0000}.fan-name{color:var(--am-text);font-weight:850}.fan-value,.fan-row-value{color:var(--am-accent)}.fan-description,.example-note,.fan-example h4,.fans-summary h4{color:var(--am-text-muted)}.example-tiles,.fan-row{background:#ffffff8f;border:1px solid #28443514;border-radius:18px}.fan-row-name{color:var(--am-text);font-weight:720}.cycle-btn{color:var(--am-accent);background:#1f8f621a;border-color:#1f8f622e;border-radius:999px}@media (width<=480px){.rule-guide-overlay{align-items:flex-end;padding:10px}.rule-guide-modal{border-radius:26px 26px 18px 18px;max-height:92dvh}}.app{color:#e8dcc8;background:#1a2e1a;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Hiragino Sans GB,Helvetica Neue,Helvetica,Arial,sans-serif;position:relative;overflow-x:hidden}.connection-status{z-index:2000;opacity:.6;pointer-events:none;font-size:10px;position:fixed;top:8px;left:8px}.connection-status.disconnected{opacity:.8}.error-toast{z-index:2000;color:#fff;background:#e74c3ce6;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:500;animation:.3s toast-in;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #e74c3c4d}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.rule-fab{z-index:500;color:#f0c040;cursor:pointer;backdrop-filter:blur(4px);background:#1a3a2ae6;border:2px solid #f0c04066;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;font-weight:700;transition:all .2s;display:flex;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 12px #0000004d}.rule-fab:hover{border-color:#f0c04099;transform:scale(1.1);box-shadow:0 6px 18px #0006,0 0 16px #f0c04033}body{color:#e8dcc8;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#1a2e1a;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Hiragino Sans GB,Helvetica Neue,Helvetica,Arial,sans-serif}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb{background:#f0c04040;border-radius:3px;transition:background .2s}::-webkit-scrollbar-thumb:hover{background:#f0c04066}::selection{color:#fff;background:#f0c0404d}*,:before,:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p{margin:0}button,input,select{font-family:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=768px){.rule-fab{width:38px;height:38px;font-size:18px;bottom:80px;right:16px}}.app{min-height:100svh;color:var(--am-text);font-family:var(--am-font);background:radial-gradient(circle at 50% -8%,#ffffffd1,#0000 34%),radial-gradient(circle at 8% 20%,#1f8f622e,#0000 28%),radial-gradient(circle at 95% 8%,#0a84ff1f,#0000 30%),linear-gradient(145deg,#edf5ef 0%,#dcebe2 52%,#cfe2d8 100%);overflow:hidden}.connection-status{color:#0f2318b8;-webkit-backdrop-filter:var(--am-blur);opacity:1;background:#ffffff94;border:1px solid #ffffffb3;border-radius:999px;padding:6px 10px;top:12px;left:12px;box-shadow:0 8px 22px #18322214}.connection-status.connected{opacity:.42}.connection-status.disconnected{color:var(--am-danger);opacity:.95}.error-toast{-webkit-backdrop-filter:var(--am-blur);background:#ff453ae6;border-radius:999px;font-weight:700;top:18px;box-shadow:0 18px 38px #ff453a38}.rule-fab{width:52px;height:52px;color:var(--am-accent);box-shadow:var(--am-shadow-float);-webkit-backdrop-filter:var(--am-blur);background:linear-gradient(145deg,#ffffffdb,#ffffff70);border:1px solid #ffffffa6;bottom:22px;right:22px}.rule-fab:hover{border-color:#1f8f6242;transform:translateY(-2px)scale(1.04)}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #0a84ff47}@media (width<=768px){.app{min-height:100dvh;overflow:hidden}.connection-status{display:none}.rule-fab{width:42px;height:42px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));font-size:17px;top:calc(58px + env(safe-area-inset-top,0px))!important;z-index:450!important;width:38px!important;height:38px!important;font-size:15px!important;bottom:auto!important;left:10px!important;right:auto!important}}@media (width<=480px){.rule-fab{top:calc(52px + env(safe-area-inset-top,0px))!important;width:34px!important;height:34px!important;font-size:14px!important;left:8px!important}}
