*{box-sizing:border-box;margin:0;padding:0}html,body{color:#253e30;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none;width:100%;min-height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#f1f4ec;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;overflow:hidden auto}#root{width:100%;min-height:100vh}*{-webkit-touch-callout:none}.card{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;background:#fff;border:1px solid #d4d4ce;border-radius:7px;flex-shrink:0;width:60px;height:86px;transition:transform .15s,box-shadow .15s;position:relative;box-shadow:0 2px 4px #0000001f}.card-art{border-radius:inherit;pointer-events:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.card-selected:before{content:"";border-radius:inherit;z-index:1;pointer-events:none;background:#ebba3d24;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #d9a636}.card:hover{transform:translateY(-4px);box-shadow:0 6px 12px #00000026}.card-selected{border-color:#d9a636;transform:translateY(-14px)}.card-selected:hover{transform:translateY(-16px)}.card:focus-visible{outline-offset:2px;outline:3px solid #e9be61}.card-small{width:44px;height:63px}.card-back{cursor:default}.card-back:hover{transform:none;box-shadow:0 2px 4px #0000001a}.card-joker-index{color:#171e25;pointer-events:none;background:#fff;border-radius:2px;flex-direction:column;align-items:center;font-size:16px;font-weight:800;line-height:1.08;display:flex;position:absolute;top:4%;left:4%}.card-joker-index span{font-size:.8em}.card-joker-big .card-joker-index{color:#c21c2e}.card-small .card-joker-index{font-size:12px}.card-enter{animation:.3s ease-out cardEnter}@keyframes cardEnter{0%{opacity:0;transform:translateY(20px)scale(.8)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=768px){.card{border-radius:5px;width:48px;height:69px}.card-selected{transform:translateY(-10px)}.card-small{width:36px;height:52px}.card-small .card-joker-index{font-size:10px}}@media (width<=375px){.card{width:42px;height:60px}}@media (prefers-reduced-motion:reduce){.card{transition:none}.card-enter{animation:none}}.player-hand{flex-direction:column;align-items:center;width:100%;padding:6px 0;display:flex}.hand-cards{-webkit-overflow-scrolling:touch;scrollbar-width:none;-webkit-user-select:none;user-select:none;flex-wrap:nowrap;justify-content:center;max-width:100%;padding:16px 12px 8px;display:flex;overflow:auto visible}.hand-cards::-webkit-scrollbar{display:none}.hand-card-wrapper{flex-shrink:0;margin-left:-18px}.hand-card-wrapper:first-child{margin-left:0}.hand-count{color:#fff9;margin-top:4px;font-size:11px}@media (hover:hover){.player-hand-active .hand-card-wrapper:hover{margin-left:-8px;margin-right:10px}.player-hand-active .hand-card-wrapper:hover:first-child{margin-left:0}}@media (width<=768px){.hand-card-wrapper{margin-left:-14px}.hand-cards{justify-content:flex-start;padding:12px 8px 6px}}@media (width<=375px){.hand-card-wrapper{margin-left:-12px}}.hand-row{display:contents}.hand-panel .hand-cards{touch-action:none;-webkit-touch-callout:none}.game-shell:not(.compact-game) .hand-panel .hand-card-wrapper.hand-suit-start,.game-shell:not(.compact-game) .hand-panel .player-hand-active .hand-card-wrapper.hand-suit-start:hover{margin-left:-11px}.hand-panel .hand-card-wrapper .card{touch-action:none}.final-kitty{border-top:1px solid #dcc992;border-bottom:1px solid #dcc992;margin:18px 0;padding:14px 0}.final-kitty h3{color:#254432;margin:0 0 12px;font-size:15px}.final-kitty h3 span{color:#586e60;margin-top:4px;font-size:12px;font-weight:400;display:block}.final-kitty-cards{grid-template-columns:repeat(4,52px);justify-content:center;gap:8px;display:grid}.round-summary .final-kitty .card{cursor:default;width:52px;height:75px}.round-summary .final-kitty .card:hover{transform:none;box-shadow:0 2px 4px #0000001f}.round-summary .final-kitty p{overflow-wrap:anywhere;color:#586e60;margin:10px 0 0;font-size:12px;line-height:1.5}@media (height<=680px) and (width<=900px){.compact-game section.round-summary{padding-top:12px;padding-bottom:12px}.compact-game section.round-summary h2{margin:6px 0;font-size:21px}.compact-game .round-summary .summary-stats{margin:10px 0}.compact-game .round-summary .final-kitty{margin:10px 0;padding:8px 0}.compact-game .round-summary .final-kitty h3{margin-bottom:8px}.compact-game .round-summary .final-kitty h3 span{margin-top:2px}.compact-game .round-summary .final-kitty-cards{grid-template-columns:repeat(4,44px);gap:6px}.compact-game .round-summary .final-kitty .card{width:44px;height:63px}.compact-game .round-summary .final-kitty p{margin-top:6px}}.felt-table{color:#fffbe9;background:radial-gradient(at 50% 48%,#326b51,#1c4a38);border:8px solid #4d6651;border-radius:90px;min-height:485px;position:relative;box-shadow:inset 0 0 0 2px #86a87f55,inset 0 0 55px #0a241b66}.table-watermark{text-align:center;letter-spacing:3px;color:#c2d1b14d;font-size:10px;position:absolute;top:40%;left:0;right:0}.seat{z-index:2;border:1px solid #0000;border-radius:12px;max-width:38%;padding:10px;position:absolute}.seat-north{top:12px;left:50%;transform:translate(-50%)}.seat-south{bottom:10px;left:50%;transform:translate(-50%)}.seat-west{top:50%;left:8px;transform:translateY(-50%)}.seat-east{top:50%;right:8px;transform:translateY(-50%)}.active-seat{background:#f0d89b13;border-color:#dfc47799}.seat-heading{align-items:center;gap:8px;display:flex}.seat strong{white-space:nowrap;font-size:13px}.seat small{color:#c1d0bf;margin-top:4px;font-size:11px;display:block}.avatar{border:1px solid #f1e4b355;border-radius:50%;place-items:center;width:35px;height:35px;font-size:15px;display:grid}.team-A{background:#6a8261}.team-B{background:#987857}.seat-tags{flex-wrap:wrap;gap:4px;margin-top:6px;font-size:9px;display:flex}.seat-tags span{color:#e0cf9e;background:#102c2155;border-radius:3px;padding:2px 5px}.table-center{text-align:center;flex-direction:column;gap:8px;max-width:40%;display:flex;position:absolute;top:51%;left:50%;transform:translate(-50%,-50%)}.table-center strong{font-size:17px;font-weight:500}.table-center span{color:#cbdbc8;font-size:11px}.table-center .countdown{color:#e8cd8e;font-size:43px}.table-center progress{accent-color:#dec486;width:140px;height:5px;margin-top:7px}@media (width<=600px){.felt-table{border-width:5px;border-radius:45px;min-height:450px}.seat{max-width:39%;padding:6px}.seat-heading{gap:5px}.avatar{width:27px;height:27px}.seat strong{font-size:11px}.seat small{font-size:9px}.seat-west{left:0}.seat-east{right:0}.table-center strong{font-size:13px}.table-center{top:55%}.table-watermark{letter-spacing:1px;font-size:8px}}.avatar{flex-shrink:0;position:relative}.dealer-badge{color:#28392b;background:#e5be70;border:2px solid #173f32;border-radius:6px;place-items:center;width:21px;height:21px;font-size:12px;font-weight:750;line-height:1;display:grid;position:absolute;bottom:-5px;right:-5px}.seat-person{min-width:0}.seat-relation{color:#d3dcc8;margin-left:5px;font-size:10px;font-weight:400}.cards-remaining{font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.play-kind{text-align:center;margin:3px 0 0;display:block}.table-brand{text-align:center;color:#d5d5b9;opacity:.09;pointer-events:none;white-space:nowrap;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.table-brand>span{letter-spacing:4px;font-family:Songti SC,STSong,serif;font-size:25px;display:block}.table-brand>small,.table-watermark{display:none}.hand-tools{align-items:center;gap:7px;margin-left:auto;display:flex}.hand-tools button{min-height:40px;padding:6px 12px;font-size:12px}.single-select-toggle[aria-pressed=true]{color:#273c2b;background:#ead39b;border-color:#d2b269}.selection-note{color:#52664b;min-height:18px;margin:-4px 0 8px;font-size:12px;line-height:18px}.selection-invalid{color:#94472d}.card-trump{border-top-color:#c29436}.card-trump:after{content:"主";text-align:center;color:#755416;background:#f6e4b6;border-radius:3px;width:15px;font-size:10px;line-height:15px;position:absolute;bottom:5px;right:5px}.seat-person>strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:block;overflow:hidden}.online-lobby{color:#253e30;width:min(100% - 32px,560px);margin:0 auto;padding:24px 0 40px}.online-lobby header{align-items:center;gap:10px;margin-bottom:36px;display:flex}.online-connection{color:#41664d;margin-left:auto;font-size:12px}.online-lobby h1{margin:8px 0 16px;font-family:Georgia,Songti SC,serif;font-size:34px}.online-lobby p{color:#586e60;font-size:14px;line-height:1.7}.online-lobby label{color:#586e60;flex-direction:column;gap:8px;font-size:13px;display:flex}.online-lobby input{box-sizing:border-box;width:100%;min-width:0;font:inherit;color:#173d2e;background:#fffdf5;border:1px solid #739281;border-radius:8px;padding:13px 12px;font-size:16px}.online-lobby button{min-height:46px}.online-lobby form{gap:20px;margin-top:28px;display:grid}.online-lobby .large{width:100%;margin-top:14px}.online-lobby .room-join{border-top:1px solid #ffffff24;grid-template-columns:1fr auto;align-items:end;gap:12px;padding-top:24px;display:grid}.online-lobby .quiet{background:0 0;border-color:#bacbbe;margin-top:18px}.room-code{justify-content:space-between;align-items:center;gap:8px;margin:24px 0 14px;display:flex}.room-code>span{color:#586e60;font-size:12px}.room-code strong{letter-spacing:4px;color:#294d38;font-size:32px;display:block}.invite-link input{color:#e7f0e8;background:#153e30;border-color:#527967;font-size:12px}.room-seats{grid-template-columns:1fr 1fr;gap:12px;margin:24px 0;display:grid}.room-seats .room-seat{text-align:left;opacity:1;color:#fff3d8;background:#194737;border:1px solid #769581;border-radius:12px;flex-direction:column;align-items:flex-start;gap:8px;min-height:130px;padding:16px;display:flex;position:relative}.room-seats .room-seat:disabled{cursor:default;opacity:1}.room-seats .my-room-seat{border-color:#e7bf65;box-shadow:inset 0 0 0 1px #e7bf65}.room-seat strong{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:15px;overflow:hidden}.room-seat small{color:#d0e3d5;font-size:12px}.room-seat-position{font-family:Songti SC,serif;font-size:22px}.room-team{color:#dec484;font-size:11px;position:absolute;top:17px;right:12px}.network-notice,.network-error{z-index:100;left:12px;right:12px;top:calc(env(safe-area-inset-top) + 54px);color:#503709;background:#fff0c5;border:1px solid #dfbd64;border-radius:8px;max-width:540px;margin:auto;padding:12px 14px;font-size:14px;position:fixed;box-shadow:0 6px 20px #0004}.network-notice span{margin-top:4px;font-size:12px;display:block}.network-error{top:calc(env(safe-area-inset-top) + 124px);color:#8d261b;background:#fff3ec;align-items:center;gap:8px;display:flex}.network-error span{flex:1}.network-error button{min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;padding:0;font-size:24px}.online-entry{justify-content:space-between;align-items:center;gap:12px;width:min(100% - 32px,560px);margin:20px auto 0;display:flex}.online-entry span{color:#586e60;font-size:13px}.online-entry button{min-height:46px}.online-round-status{color:#5c614e;margin:12px 0}@media (width<=375px){.online-lobby h1{font-size:29px}.room-code strong{font-size:27px}.room-seats{gap:8px}.room-seats .room-seat{padding:12px}.room-seat strong{font-size:13px}}.bot-controls{color:#2a4935;text-align:left;border-top:1px solid #b9cabb;border-bottom:1px solid #b9cabb;margin:16px 0;padding:14px 0}.bot-controls>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.bot-controls strong{font-size:14px}.bot-controls small{color:#586e60;margin-top:10px;font-size:12px;line-height:1.6;display:block}.bot-controls .bot-remove-list{justify-content:flex-start;margin-top:10px}.bot-remove-list button{padding:8px 12px;font-size:12px}.room-bot-hint{font-size:12px!important}.round-summary .bot-controls{margin:10px 0;padding:8px 0}.round-summary .bot-controls button{min-height:40px;font-size:12px}.summary-bot-settings{text-align:left;margin-top:12px}.summary-bot-settings summary{box-sizing:border-box;cursor:pointer;color:#365b43;min-height:44px;padding:12px 0;font-size:13px}.room-lobby-actions{border-top:1px solid #b9cabb;padding-top:12px}.room-lobby-actions>div{grid-template-columns:minmax(0,1fr) auto;gap:12px;margin-top:8px;display:grid}.online-lobby .room-lobby-actions button{margin:0}@media (width<=900px){.online-lobby-room{width:100%;height:100dvh;padding:calc(16px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.online-lobby-room>header,.room-lobby-content,.room-lobby-actions{width:100%;max-width:560px;margin-inline:auto}.online-lobby-room>header{flex:none;margin-bottom:16px}.room-lobby-content{overscroll-behavior-y:contain;touch-action:pan-y pinch-zoom;scrollbar-color:#789278 #e8ecde;flex:1;min-height:0;padding-bottom:16px;overflow-y:auto}.room-lobby-actions{background:#f1f4ec;flex:none}}button,select{font:inherit}button{cursor:pointer;color:#294237;background:#fffdf6;border:1px solid #d0d9d2;border-radius:8px;padding:9px 16px;transition:background .15s}button:hover{background:#e7eee7}button:disabled{opacity:.45;cursor:default}button.primary{color:#233b30;background:#d8b76a;border-color:#d8b76a;font-weight:700}button.primary:hover{background:#ebce8a}button.large{padding:14px 32px;font-size:17px}select{color:#203a2c;background:#fff;border:1px solid #cad6cd;border-radius:7px;padding:8px 12px}button:focus-visible,select:focus-visible,[role=button]:focus-visible{outline-offset:3px;outline:3px solid #dfb95f}small,.muted{color:#73847a}.game-shell{max-width:1600px;margin:auto;padding:0 28px 18px}.topbar{border-bottom:1px solid #d6dfd6;justify-content:space-between;align-items:center;gap:18px;padding:20px 0;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#31583f;font-size:32px}.brand strong{letter-spacing:2px;font-size:20px}.brand small{margin-top:4px;font-size:11px;display:block}.topbar nav{flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.topbar label{align-items:center;gap:6px;display:flex}footer{text-align:center;color:#7d8c80;padding:22px 0 0;font-size:12px}.eyebrow{letter-spacing:2px;color:#7c865e;font-size:12px}.lobby{text-align:center;background:#fffef9;border:1px solid #dce3d8;border-radius:16px;max-width:780px;margin:65px auto;padding:40px}.lobby h1{margin:18px 0;font-size:38px;font-weight:650}.lobby p{margin:16px 0;font-size:14px;line-height:1.9}.lobby-fields{flex-wrap:wrap;justify-content:center;align-items:end;gap:16px;margin:28px 0;display:flex}.lobby-fields label{text-align:left;gap:8px;font-size:13px;display:grid}.lobby-seats{flex-wrap:wrap;justify-content:center;gap:25px;padding:20px 0 30px;display:flex}.lobby-seats small{margin-top:5px;display:block}.scorebar{flex-wrap:wrap;gap:44px;padding:20px 0;display:flex}.scorebar small{margin-bottom:5px;font-size:11px;display:block}.scorebar strong{font-size:20px}.scorebar em{color:#88988b;font-size:13px;font-style:normal}.table-and-sidebar{grid-template-columns:minmax(0,1fr) 265px;gap:18px;display:grid}.table-sidebar{max-height:485px;overflow:auto}.table-sidebar section{background:#fffef9;border:1px solid #dbe2d8;border-radius:10px;margin-bottom:12px;padding:14px}.table-sidebar h3{margin:0 0 10px;font-size:13px}.table-sidebar h3 small{margin-left:6px;font-weight:400}.table-sidebar p{font-size:12px;line-height:1.7}.mini-cards{flex-wrap:wrap;gap:3px;margin:5px 0;display:flex}.mini-cards .card-small{flex-shrink:0;width:34px;min-width:34px;height:48px}.call-record+.call-record{border-top:1px solid #e3e9df;margin-top:10px;padding-top:10px}.hand-panel{background:#fffef9;border:1px solid #dbe2d8;border-radius:12px;margin-top:18px;padding:14px 18px}.hand-heading{flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;display:flex}.hand-heading label{margin-left:auto}.hand-panel .hand-count{color:#718274}.hand-panel .hand-cards{justify-content:flex-start;width:100%;padding-left:10px}.hand-panel .hand-card-wrapper{margin-left:-25px}.hand-panel .hand-card-wrapper:first-child{margin-left:0}.turn-controls{text-align:center;border-top:1px solid #e4e9df;padding-top:10px}.turn-caption{min-height:20px;margin-bottom:8px;font-size:13px}.actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;min-height:40px;font-size:13px;display:flex}.error{color:#ad3328;margin-top:8px;font-size:13px}.round-summary{text-align:center;background:#fff8df;border:1px solid #dcc992;border-radius:12px;margin-top:20px;padding:28px}.round-summary h2{margin:10px 0;font-size:26px}.round-summary p{margin:12px;font-size:14px}.summary-stats{justify-content:center;gap:50px;margin:20px 0;display:flex}.summary-stats strong{font-size:32px;display:block}.summary-stats span{color:#7b816d;font-size:12px}.history,.debug-panel{background:#fffef9;border:1px solid #dbe2d8;border-radius:10px;margin-top:18px;padding:16px;font-size:13px}summary{cursor:pointer;font-weight:600}.history-trick{border-bottom:1px solid #e3e8dd;padding:14px 0}.history-plays{flex-wrap:wrap;gap:24px;margin-top:8px;display:flex}.debug-panel>div{margin-top:16px}@media (width<=800px){.game-shell{padding:0 12px 18px}.topbar{flex-wrap:wrap;padding:12px 0}.brand strong{font-size:17px}.scorebar{gap:20px}.scorebar strong{font-size:16px}.table-and-sidebar{grid-template-columns:1fr}.table-sidebar{gap:10px;max-height:none;display:flex;overflow:auto}.table-sidebar section{flex:1;min-width:240px}.lobby{margin:25px auto;padding:24px 15px}.lobby h1{font-size:28px}.hand-panel{padding:12px 8px}.hand-panel .hand-card-wrapper{margin-left:-23px}.summary-stats{gap:22px}}@media (width>=801px) and (height<=850px){.felt-table{min-height:340px}.table-sidebar{max-height:340px}}.score-history ol{max-height:180px;padding:0;font-size:12px;list-style:none;overflow:auto}.score-history li{padding:5px 0}.score-history strong{float:right;color:#31583f}.score-history .score-total{border-top:1px solid #dbe2d8;margin-top:8px;padding-top:8px}.hand-panel .player-hand-active .hand-card-wrapper:hover{margin-left:-25px;margin-right:0}.hand-panel .player-hand-active .hand-card-wrapper:first-child:hover{margin-left:0}@media (width<=800px){.hand-panel .player-hand-active .hand-card-wrapper:hover{margin-left:-23px}}.mobile-toolbar,.mobile-partner,.mobile-hand-count{display:none}.compact-game{--table-ink:#faf3dc;--table-muted:#c7d7c8;--table-green:#174536;--table-deep:#103329;width:100%;max-width:none;height:100dvh;padding:env(safe-area-inset-top) max(10px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(10px, env(safe-area-inset-left));background:radial-gradient(ellipse at 50% 36%,#2b624d 0%,var(--table-green) 70%);color:var(--table-ink);isolation:isolate;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.compact-game .topbar,.compact-game>footer{display:none}.compact-game .mobile-toolbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;height:48px;display:flex}.mobile-brand{display:block!important}.mobile-brand strong{letter-spacing:1px;font-family:Songti SC,STSong,serif;font-size:17px;display:block}.mobile-brand small{color:var(--table-muted);margin-top:2px;font-size:10px;display:block}.mobile-toolbar>div:not(.mobile-brand){align-items:center;gap:8px;display:flex}.mobile-toolbar button,.mobile-toolbar label{min-width:60px;height:40px;color:var(--table-ink);background:#0e342a66;border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:0 8px;font-size:13px;display:flex}.mobile-toolbar label{cursor:pointer}.mobile-toolbar input{appearance:none;cursor:pointer;background:#6a8577;border-radius:9px;width:25px;height:15px;position:relative}.mobile-toolbar input:after{content:"";background:#f5f3df;border-radius:50%;width:11px;height:11px;transition:transform .16s;position:absolute;top:2px;left:2px}.mobile-toolbar input:checked{background:#d8b46b}.mobile-toolbar input:checked:after{transform:translate(10px)}.mobile-toolbar .autoplay-on{background:#376f51}.mobile-scorebar{min-height:68px;color:var(--table-ink);background:#0e3129;border:1px solid #78967755;border-radius:13px;flex-shrink:0;grid-template-columns:1.15fr .8fr 1fr;align-items:center;gap:10px;padding:9px 12px;display:grid}.trump-display{align-items:center;gap:9px;display:flex}.trump-symbol{color:#204631;background:#f9f0d9;border-radius:7px;place-items:center;width:35px;height:43px;font-size:27px;display:grid}.trump-symbol.red-suit{color:#b5372c}.trump-display small{color:var(--table-muted);white-space:nowrap;font-size:10px;display:block}.trump-display strong{margin-top:2px;font-size:19px;display:block}.team-levels{color:var(--table-muted);border-left:1px solid #55755f66;gap:5px;padding-left:10px;font-size:11px;display:grid}.team-levels b{color:#f2e5bd;margin-left:6px;font-size:14px}.score-shortcut{text-align:left;color:var(--table-ink);background:0 0;border:0;border-left:1px solid #55755f66;border-radius:0;min-height:48px;padding:0 0 0 12px}.score-shortcut:hover{background:0 0}.score-shortcut>span:first-child{color:var(--table-muted);font-size:10px;display:block}.score-shortcut strong{font-variant-numeric:tabular-nums;font-size:23px}.score-shortcut small{color:var(--table-muted);font-size:11px;font-weight:400}.score-track{background:#3d604b;border-radius:2px;height:3px;margin-top:3px;display:block;overflow:hidden}.score-track>span{background:#e0bd75;height:100%;display:block}.compact-game .table-and-sidebar{flex:1;width:100%;min-height:0;display:block;position:relative}.compact-game .felt-table{width:100%;height:100%;min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0}.compact-game .felt-table:before{content:"";pointer-events:none;border:1px solid #cab77744;border-radius:44%;position:absolute;inset:15% 9% 9%;box-shadow:0 10px 32px #0c2b2320}.compact-game .table-watermark{display:none}.compact-game .seat{border:0;border-radius:12px;width:auto;min-width:75px;max-width:38%;padding:0}.compact-game .seat-heading{background:#163f33;border:1px solid #90a78b55;border-radius:12px;align-items:center;gap:7px;min-height:55px;padding:7px}.compact-game .avatar{border:1px solid #e4d2a377;border-radius:9px;width:36px;height:39px;font-family:Songti SC,STSong,serif;font-size:21px}.compact-game .team-A{background:#426f59}.compact-game .team-B{background:#655642}.compact-game .seat strong{font-size:13px}.compact-game .seat small{color:var(--table-muted);margin-top:4px;font-size:11px}.compact-game .seat-team{display:none}.compact-game .mobile-partner{display:inline}.compact-game .seat-tags{text-align:center;height:17px;margin:0;font-size:10px;display:block;position:absolute;top:-17px;left:0;right:0}.compact-game .seat-tags span{color:#263d2b;background:#dac18a;border-radius:5px 5px 0 0;padding:2px 7px;display:inline-block}.compact-game .kitty-owner-tag{display:none}.compact-game .active-seat{background:0 0}.compact-game .active-seat .seat-heading{background:#355640;border-color:#e3c477}.compact-game .seat-relative-north{width:max-content;min-width:124px;max-width:55%;inset:25px auto auto 50%;transform:translate(-50%)}.compact-game .seat-relative-west{width:36%;inset:43% auto auto 0;transform:none}.compact-game .seat-relative-east{width:36%;inset:43% 0 auto auto;transform:none}.compact-game .seat-relative-north .seat-heading{justify-content:center}.compact-game .seat-relative-east .seat-heading{justify-content:flex-end}.compact-game .seat-relative-south{background:0 0;border:0;width:80%;max-width:80%;padding:0;inset:auto auto 4px 50%;transform:translate(-50%)}.compact-game .seat-relative-south .seat-heading,.compact-game .seat-relative-south .seat-tags{display:none}.compact-game .seat-play{max-width:100%;margin-top:5px}.compact-game .seat-play .mini-cards{grid-template-columns:repeat(var(--play-columns),minmax(0,1fr));width:100%;max-width:calc(var(--play-columns) * 21px + 15px);gap:3px 0;margin-inline:auto;padding-right:14px;display:grid}.compact-game .seat-relative-west .seat-play .mini-cards{margin-left:0}.compact-game .seat-relative-east .seat-play .mini-cards{margin-right:0}.compact-game .seat-play .card-small{border-radius:5px;width:37px;min-width:37px;height:51px;margin:0}.compact-game .seat-play .card-small:first-child{margin-left:0}.compact-game .seat-play .card:hover{transform:none}.compact-game .table-center{z-index:0;gap:4px;width:max-content;max-width:66%;top:67%}.compact-game[data-phase=trickEnd] .table-center{display:none}.compact-game .table-center strong{color:var(--table-ink);font-size:14px}.compact-game .table-center span{color:var(--table-muted);font-size:11px}.compact-game .table-center .countdown{font-variant-numeric:tabular-nums;color:#efcf83;font-size:36px}.compact-game .hand-panel{background:0 0;border:0;border-radius:0;flex-direction:column;flex-shrink:0;width:100%;min-width:0;margin:0;padding:0 0 5px;display:flex}.compact-game .hand-heading{min-height:46px;color:var(--table-ink);order:3;justify-content:space-between;gap:5px;padding:4px 2px 0;font-size:11px}.compact-game .hand-heading small{color:var(--table-muted);font-size:10px}.compact-game .hand-heading .seat-heading{background:0 0;border:0;min-height:38px;padding:0}.compact-game .hand-heading .avatar{width:28px;height:30px;font-size:18px}.compact-game .hand-heading .seat-person strong{font-size:12px;line-height:16px;display:block}.compact-game .hand-heading .seat-person small{margin:2px 0 0;line-height:13px;display:block}.compact-game .hand-tools{gap:5px}.compact-game .hand-tools button{color:#d9e3ca;background:#10372c;border-color:#6c896744;min-height:40px;padding:6px 10px;font-size:11px}.compact-game .hand-tools button[aria-pressed=true]{color:#293e2a;background:#e2c786;border-color:#e2c786}.compact-game .hand-tools button:disabled{opacity:.45}.compact-game .desktop-hand-label{display:none}.compact-game .mobile-hand-count{font-weight:400;display:inline}.compact-game .hand-heading label{font-size:10px}.compact-game .hand-heading select{padding:3px;font-size:11px}.compact-game .player-hand{order:2;min-height:0;padding:0}.compact-game .hand-count{display:none}.compact-game .hand-cards-compact{touch-action:none;flex-direction:column;justify-content:center;align-items:center;gap:0;width:100%;max-width:100%;padding:14px 0 2px;display:flex;overflow:visible}.compact-game .hand-row{flex:none;max-width:100%;height:94px;display:block;position:relative}.compact-game .hand-row+.hand-row{margin-top:-38px}.compact-game .hand-card-wrapper,.compact-game .hand-panel .player-hand-active .hand-card-wrapper:hover{width:64px;height:94px;margin:0;transition:none;position:absolute;top:0}.compact-game .hand-card-wrapper .card{touch-action:none;border-radius:6px;width:64px;height:94px;box-shadow:0 3px 6px #082d2370}.compact-game .hand-card-wrapper .card-joker-index{font-size:19px}.compact-game .seat-play .card-joker-index{font-size:11px}.compact-game .hand-card-wrapper .card-selected{background:#fff2c8;border-color:#eac36b;transform:translateY(-10px);box-shadow:0 3px 5px #092d2370}.compact-game .hand-card-wrapper .card:not(.card-selected):hover{transform:none}.compact-game .turn-controls{border:0;order:1;padding:4px 0 2px;position:relative}.compact-game .turn-caption{min-height:16px;color:var(--table-ink);margin-bottom:6px;font-size:12px;line-height:16px}.compact-game .actions{scrollbar-width:none;flex-wrap:nowrap;justify-content:safe center;gap:8px;max-width:100%;min-height:44px;padding:0 2px;display:flex;overflow-x:auto}.compact-game .actions button{background:var(--table-deep);color:#fff7db;min-width:76px;min-height:46px;box-shadow:none;border:1px solid #bdd3bb66;flex-shrink:0;padding:10px 13px;font-size:14px}.compact-game .actions button.primary{color:#243c2b;background:#e5c478;border-color:#e5c478;min-width:91px}.compact-game .actions button:disabled{opacity:1;color:#9fb29b;background:#315243;border-color:#62806a55}.compact-game .actions-playing{grid-template-columns:1fr 1fr 1.2fr;display:grid}.compact-game .actions:empty{min-height:0;display:none}.compact-game .actions-playing button{width:100%;min-width:0}.compact-game .actions-bury{grid-template-columns:1fr 1.4fr;max-width:280px;margin-inline:auto;display:grid}.compact-game .selection-note{color:#d6e0cc;min-height:15px;margin:-3px 0 7px;font-size:11px;line-height:15px}.compact-game .selection-invalid{color:#ffdeb0}.compact-game .my-turn-controls .turn-caption{color:#f9d999;font-weight:650}.compact-game .actions>.selection-count{display:none}.compact-game .actions>.muted{color:var(--table-muted);white-space:normal;font-size:11px}.compact-game .error{color:#fff0d6;background:#873f32;border-radius:6px;max-width:100%;margin:4px auto 0;padding:5px 8px;font-size:12px;line-height:16px}.compact-game .mobile-kitty-preview{z-index:4;text-align:center;background:#113b2ef5;border:1px solid #d9c78b77;border-radius:12px;width:min(310px,82%);max-height:calc(100% - 8px);padding:12px;position:absolute;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.mobile-kitty-preview>span{color:#e2d2a2;font-size:12px}.mobile-kitty-preview .mini-cards{justify-content:center;gap:3px;margin:8px 0 0}.mobile-kitty-preview .card-small{width:32px;min-width:32px;height:47px}.compact-game .round-summary{z-index:5;color:#254432;background:#fff6dd;border-radius:14px;width:calc(100% - 32px);max-width:500px;max-height:calc(100dvh - 125px);margin:0;padding:24px 16px;position:absolute;top:54%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 12px 35px #092d2350}.compact-game .round-summary .eyebrow{color:#5c7055}.compact-game .round-summary h2{font-size:23px}.compact-game .summary-stats{gap:26px}.compact-game .summary-stats strong{font-size:30px}.compact-game .round-summary p{font-size:13px}.compact-game .round-summary button{min-height:44px}.compact-game button:focus-visible,.compact-game .card:focus-visible{outline-color:#fff1b9}.compact-game ::selection{color:#183e2d;background:#e7c77d}.table-drawer{width:100%;max-width:none;height:min(78dvh,700px);max-height:calc(100dvh - env(safe-area-inset-top) - 24px);color:#254432;background:#f8f8ed;border:0;border-radius:18px 18px 0 0;margin:0;padding:0;position:fixed;inset:auto 0 0;box-shadow:0 -10px 30px #092d2340}.table-drawer::backdrop{background:#061f19a6}.drawer-content{height:100%;padding:12px max(16px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));flex-direction:column;display:flex}.drawer-content>header{flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;display:flex}.drawer-content h2{font-size:20px;font-weight:650}.drawer-content>header button{background:0 0;border:0;place-items:center;width:44px;height:44px;padding:0;display:grid}.drawer-tabs{border-bottom:1px solid #d3ddcd;flex-shrink:0;gap:4px;margin:5px 0 12px;display:flex}.drawer-tabs button{white-space:nowrap;background:0 0;border:0;border-radius:7px 7px 0 0;flex:1;min-height:44px;padding:8px 5px;font-size:13px}.drawer-tabs button[aria-pressed=true]{color:#183f2d;background:#dae5d5;font-weight:700;box-shadow:inset 0 -2px #386b45}.drawer-scroll{overscroll-behavior:contain;scrollbar-color:#789278 #e8ecde;flex:1;min-height:0;overflow:auto}.drawer-scroll section{border-bottom:1px solid #d6dfcf;margin-bottom:14px;padding:0 0 18px}.drawer-scroll h3{margin:5px 0 10px;font-size:15px}.drawer-scroll h3 small{font-size:12px;font-weight:400}.drawer-scroll p{font-size:13px;line-height:1.8}.drawer-scroll .mini-cards{gap:4px}.drawer-scroll .card-small{width:37px;min-width:37px;height:53px}.drawer-scroll .score-history ol{max-height:none}.drawer-scroll .score-history li{padding:10px 0;font-size:14px}.drawer-scroll .history-plays{gap:12px}.drawer-return{color:#fff9df;background:#285c43;border:0;flex-shrink:0;min-height:44px;margin-top:10px}.setting-row{justify-content:space-between;align-items:center;gap:12px;min-height:48px;font-size:14px;display:flex}.setting-row input{accent-color:#315d3f;width:20px;height:20px}.drawer-help{color:#576f57;padding:18px 0}@media (width<=900px){:is(html:has(.compact-game),body:has(.compact-game)){height:100%;padding:0;overflow:hidden}.game-shell:not(.compact-game){padding:0 16px 12px}.game-shell:not(.compact-game) .topbar{gap:8px}.game-shell:not(.compact-game) .brand small{display:none}.game-shell:not(.compact-game) .topbar nav{gap:4px;font-size:12px}.game-shell:not(.compact-game) .topbar button{min-height:44px}.game-shell:not(.compact-game) .lobby{margin:20px auto;padding:24px 16px}.game-shell:not(.compact-game) .lobby-fields{grid-template-columns:1fr 1fr;gap:12px;margin:20px 0;display:grid}.game-shell:not(.compact-game) .lobby-fields>button{grid-column:1/-1;min-height:44px}.game-shell:not(.compact-game) .lobby select{min-height:44px}.game-shell:not(.compact-game) .lobby-seats{grid-template-columns:1fr 1fr;gap:14px;padding:8px 0 24px;font-size:14px;display:grid}}@media (height<=680px){.compact-game .mobile-toolbar{height:44px}.mobile-scorebar{gap:6px;min-height:54px;padding:5px 9px}.trump-symbol{width:29px;height:35px;font-size:23px}.score-shortcut{min-height:40px}.trump-display strong{font-size:16px}.score-shortcut strong{font-size:19px}.compact-game .hand-cards-compact{padding-top:12px}.compact-game .turn-caption{margin-bottom:3px}.compact-game .hand-heading{min-height:44px}.compact-game .hand-heading .seat-heading{min-height:32px}.compact-game .hand-tools button{min-height:44px}.compact-game .seat-heading{border-radius:8px;gap:4px;min-height:38px;padding:4px}.compact-game .avatar{width:26px;height:29px;font-size:17px}.compact-game .seat-relation{display:none}.compact-game .seat .seat-person small{margin-top:2px;font-size:10px}.compact-game .seat .seat-person strong{line-height:16px}.compact-game .seat .seat-person small{line-height:13px}.compact-game .seat .cards-remaining{font-size:12px}.compact-game .seat-tags{height:13px;font-size:9px;top:-13px}.compact-game .seat-tags span{padding:1px 5px}.compact-game .play-kind{display:none}.compact-game .actions button{min-height:44px}.compact-game .seat-relative-north{min-width:97px;top:3px}.compact-game .seat-relative-west,.compact-game .seat-relative-east{width:32%;top:39%}.compact-game .seat-tags,.compact-game .table-brand{display:none}.compact-game .seat-play .mini-cards{max-width:108px;padding-right:18px}.compact-game .seat-relative-west .seat-play .mini-cards,.compact-game .seat-relative-east .seat-play .mini-cards{max-width:86px}.compact-game .seat-play .card-small{width:28px;min-width:28px;height:42px}.compact-game .seat strong{font-size:12px}.compact-game .table-center{top:68%}.compact-game[data-phase=buryCards] .table-center{display:none}}@media (orientation:landscape) and (height<=550px){.compact-game .mobile-toolbar{height:42px}.mobile-scorebar{top:max(3px, env(safe-area-inset-top));grid-template-columns:1.2fr 1fr 1fr;height:36px;min-height:36px;padding:3px 8px;position:absolute;left:165px;right:168px}.trump-symbol{width:26px;height:28px;font-size:20px}.trump-display{gap:6px}.trump-display small{font-size:8px}.trump-display strong{font-size:13px}.team-levels{gap:8px;font-size:9px;display:flex}.team-levels b{margin-left:3px;font-size:12px}.score-shortcut{align-items:center;gap:6px;min-height:28px;display:flex}.score-shortcut>span:first-child{font-size:8px}.score-shortcut strong{font-size:16px}.score-track{display:none}.compact-game .hand-heading{min-height:18px}.compact-game .turn-controls{padding:0}.compact-game .turn-caption{max-width:26%;font-size:11px;position:absolute;top:14px;left:0}.compact-game .actions{gap:7px;padding-left:22%;padding-right:22%}.compact-game .actions-bury{max-width:none}.compact-game .selection-note{max-width:23%;font-size:9px;position:absolute;top:29px;left:0}.compact-game .seat-relative-west,.compact-game .seat-relative-east{top:42%}.compact-game .seat-relative-north{top:1px}.compact-game .seat-play .card-small{width:31px;min-width:31px;height:43px}.compact-game .table-center{top:62%}.compact-game .round-summary{max-width:550px;max-height:calc(100dvh - 62px);padding:16px;top:55%}.compact-game .round-summary h2{margin:6px 0;font-size:21px}.compact-game .summary-stats{margin:10px 0}.compact-game .summary-stats strong{font-size:24px}.compact-game .round-summary p{margin:7px 0;font-size:12px}.table-drawer{border-radius:14px 0 0 14px;width:min(520px,74%);height:100dvh;max-height:100dvh;inset:0 0 0 auto}}@media (prefers-reduced-motion:reduce){.compact-game .card{transition:none}}
