:root{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;color:#18372e;background:#f2f5f1;font-synthesis:none;--green:#164b3c;--gold:#d1b77b}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:10px;background:var(--green);color:white;padding:12px 18px;font-weight:600}button:hover{filter:brightness(1.13)}button:disabled{opacity:.4;cursor:not-allowed}button.secondary{background:#e8eee7;color:#164b3c}button.danger{background:#744236}input,select{border:1px solid #d9e0d7;border-radius:9px;background:white;padding:11px;width:100%;color:#17392e}label{display:block;font-size:13px;color:#61736b;margin:14px 0 7px}a{color:var(--green)}header{background:#103d32;color:#fff;padding:18px max(22px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;gap:12px}.brand{font-weight:750;letter-spacing:.5px}.brand small{display:block;font-size:10px;letter-spacing:3px;color:#b7c9bb;margin-top:4px}nav{display:flex;gap:5px;flex-wrap:wrap}nav button{padding:8px 10px;background:transparent;font-size:13px}main{max-width:1180px;margin:32px auto;padding:0 22px}h1{font-size:30px;letter-spacing:-1px;margin-bottom:8px}h2{font-size:19px}h3{font-size:15px}p{line-height:1.7}.muted{color:#758278;font-size:13px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.panel{background:white;border:1px solid #e1e7df;border-radius:16px;padding:24px;margin:18px 0;box-shadow:0 3px 15px #132e1603}.auth{max-width:430px;margin:9vh auto}.auth .mark{text-align:center;font-size:45px}.auth h1{text-align:center;font-size:24px}.auth button[type=submit]{width:100%;margin-top:20px}.notice{padding:12px 15px;border-radius:10px;background:#e8eee4;color:#60735b;font-size:12px;line-height:1.7}.stat{font-size:32px;font-weight:700;margin:10px 0;color:#164b3c}.positive{color:#228352}.negative{color:#ae5543}.badge{border-radius:6px;background:#eef2e9;padding:5px 8px;font-size:11px}.room{margin:0}.room .icon{font-size:27px}.tabs{display:flex;gap:8px;margin:20px 0}.table-page{max-width:1050px}.felt{position:relative;min-height:440px;border-radius:180px;background:radial-gradient(ellipse,#24624e,#123e32);border:12px solid #24382e;outline:3px solid #bda66e;box-shadow:0 15px 35px #12332422;margin:65px 35px 80px;color:white}.board{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);text-align:center;min-width:270px}.pot{font-size:13px;color:#e4d5a9;margin-bottom:15px}.cards{display:flex;justify-content:center;gap:6px}.card{display:inline-flex;width:46px;height:65px;background:#fff;color:#1b2923;border-radius:7px;align-items:center;justify-content:center;font-weight:700;font-size:22px;box-shadow:0 3px 5px #0002}.card.red{color:#ba514c}.card.back{background:repeating-linear-gradient(45deg,#457766,#457766 4px,#578776 4px,#578776 6px);border:2px solid #b7cabc;color:#d1dbd1}.seat{position:absolute;transform:translate(-50%,-50%);width:112px;text-align:center;background:#0d2b25;border:2px solid #3c6554;padding:8px;border-radius:14px;font-size:12px}.seat.active{border-color:#efcf82;box-shadow:0 0 18px #d8b46155}.seat.fold{opacity:.6}.seat .avatar{font-size:24px}.seat .cards{margin-top:5px}.seat .card{width:26px;height:37px;font-size:13px}.seat .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px}.owncards{display:flex;gap:8px;justify-content:center;margin-top:10px}.actions{position:sticky;bottom:0;background:#fffef9;box-shadow:0 -4px 20px #102d1712;border-top:1px solid #e5e7de;padding:15px 22px;z-index:3}.actions .row{max-width:1000px;margin:auto;justify-content:center}.raise-controls{display:flex;gap:8px;align-items:center;max-width:300px}.raise-controls input[type=number]{width:85px}.chatlog{height:170px;overflow:auto;background:#f6f8f4;padding:12px;border-radius:10px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.emoji button{padding:5px;background:transparent;font-size:20px}.odds-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.odds-item{font-size:12px;background:#f2f5ed;border-radius:8px;padding:10px}.error{color:#a53a32}#toast{position:fixed;top:16px;left:50%;transform:translateX(-50%);background:#253e30;color:#fff;padding:12px 24px;border-radius:9px;z-index:20;display:none;max-width:90vw}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px 8px;border-bottom:1px solid #e9eee6}.scroll{overflow:auto}details summary{cursor:pointer;font-weight:600;padding:12px 0}.report{max-width:620px}.report .head{background:#174c3c;color:#fff;margin:-24px -24px 22px;padding:24px;border-radius:16px 16px 0 0}.report .head h2{margin:0}.report .exercise{font-size:22px;color:#8a7338}@media(max-width:640px){header{padding:15px;align-items:flex-start;flex-direction:column}nav{gap:0}main{padding:0 14px;margin-top:20px}h1{font-size:25px}.panel{padding:18px}.felt{margin:60px 12px 85px;min-height:490px;border-radius:120px;border-width:7px}.seat{width:82px;padding:5px;font-size:10px}.seat .avatar{font-size:19px}.seat .cards .card{width:22px;height:31px;font-size:11px}.board{min-width:230px;top:45%}.card{width:37px;height:55px;font-size:19px}.actions{padding:12px 8px}.actions button{padding:11px;font-size:13px}.actions .row{gap:7px}.raise-controls{max-width:220px}.odds-list{grid-template-columns:repeat(3,1fr)}.report .head{margin:-18px -18px 18px}}@media print{header,nav,.actions,button,form{display:none}body{background:white}.report{max-width:none;box-shadow:none}}
.filing{text-align:center;padding:24px 14px 35px;color:#7b887f;font-size:11px;line-height:2}.filing a{color:#657a6a;text-decoration:none}.presence{font-size:9px;color:#acc8b6;margin:3px 0}
.remember-choice{display:flex;align-items:center;gap:9px;color:#315344;font-size:13px}.remember-choice input{width:auto;accent-color:#164b3c}.avatar{background:transparent;padding:0;line-height:1.2;border-radius:50%;touch-action:none;user-select:none;-webkit-user-select:none;min-width:30px;min-height:30px}.avatar[data-self=true]{outline:1px dashed #b4c6aa55;outline-offset:3px}.seat-reaction{position:absolute;top:-35px;left:50%;transform:translateX(-50%);font-size:35px;filter:drop-shadow(0 3px 8px #0005);animation:reaction-in .18s ease-out;pointer-events:none}.seat-clock{font-size:10px;color:#eed296;margin:5px 0 0;font-variant-numeric:tabular-nums}.turn-banner{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;background:#092f27bb;border:1px solid #b69d65aa;border-radius:20px;font-size:13px;color:#e5ce92;font-variant-numeric:tabular-nums}.turn-banner.your-turn{background:#e3c478;color:#14382b}.urgent{color:#ff9d88!important}.your-turn .urgent{color:#8c2316!important}.floating-panel{position:fixed;z-index:12;display:flex;flex-direction:column;background:rgba(20,55,45,.86);color:#f3f8f1;border:1px solid #a3bea567;border-radius:14px;box-shadow:0 8px 30px #092d2333;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);overflow:hidden;min-width:0}.floating-panel.moving{user-select:none;box-shadow:0 12px 35px #092d2370}.floating-header{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:44px;flex:0 0 44px;border-bottom:1px solid #acc4b433;padding:0 9px}.floating-header [data-panel-grab]{cursor:grab;touch-action:none;flex:1;align-self:stretch;display:flex;align-items:center;font-size:13px;font-weight:650;min-width:0}.floating-header button{padding:5px 8px;font-size:11px;color:#eaf0e7;background:#ffffff15}.floating-body{display:flex;flex-direction:column;gap:7px;padding:9px 12px 17px;flex:1;min-height:0;overflow:hidden}.floating-panel .chatlog{background:#ffffff0d;color:#eff5ed;flex:1;height:auto;min-height:35px;padding:7px;font-size:12px;overscroll-behavior:contain}.floating-panel .muted{color:#bbcbbb;font-size:10px}.floating-panel .emoji{display:flex;flex-wrap:wrap;gap:1px;max-height:63px;overflow:auto;flex-shrink:0}.floating-panel .emoji button{font-size:20px;padding:2px 3px;line-height:1.3}.floating-panel form.row{flex-wrap:nowrap;gap:6px;flex-shrink:0}.floating-panel form input{width:0;min-width:0;flex:1;padding:8px;font-size:12px}.floating-panel form button{font-size:11px;padding:9px}.floating-panel.collapsed{height:44px!important}.floating-panel.collapsed .floating-body,.floating-panel.collapsed .resize-handle{display:none}.resize-handle{position:absolute;right:0;bottom:0;border-radius:0;background:transparent!important;color:#bdd1ba;padding:0 3px;width:23px;height:23px;cursor:nwse-resize;touch-action:none;font-size:15px}.avatar-emoji-picker{position:fixed;z-index:10000;display:grid;grid-template-columns:repeat(6,1fr);width:284px;max-width:calc(100vw - 16px);padding:9px;gap:4px;background:#123e32ee;border:1px solid #c0cbab8c;border-radius:18px;box-shadow:0 12px 30px #092c2760;backdrop-filter:blur(14px);touch-action:none}.avatar-emoji-picker button{padding:5px;background:transparent;font-size:25px;border:1px solid transparent;line-height:1.3}.avatar-emoji-picker button.selected,.avatar-emoji-picker button:hover,.avatar-emoji-picker button:focus-visible{background:#e1c78233;border-color:#e1c782;transform:scale(1.08)}.actions{z-index:1000}#toast{z-index:20000}@keyframes reaction-in{from{opacity:0;transform:translate(-50%,10px) scale(.7)}to{opacity:1;transform:translate(-50%,0) scale(1)}}@media(max-width:640px){.floating-header [data-panel-grab]{font-size:12px}.floating-panel form button{padding:8px}.turn-banner{font-size:11px;padding:5px 9px}.seat-clock{font-size:9px}.seat-reaction{font-size:29px;top:-30px}.avatar-emoji-picker button{font-size:23px}.floating-panel .chatlog{font-size:11px}}@media(prefers-reduced-motion:reduce){.seat-reaction{animation:none}.avatar-emoji-picker button{transform:none!important}}@media print{.floating-panel,.avatar-emoji-picker{display:none}}
.online-list{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain}.online-player{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid #b6c9b323}.online-avatar{font-size:25px;flex:0 0 32px;text-align:center}.online-player-info{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}.online-player-info strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.online-player-info small{font-weight:400;color:#cbd7c3}.online-player-info>span{font-size:11px;color:#b8cdb9}.online-dot{width:7px;height:7px;border-radius:50%;background:#8ed8a0;box-shadow:0 0 9px #8ed8a044;flex-shrink:0}.online-count{margin-left:8px;background:#b4d4ab22;color:#d8e8cc;min-width:22px;text-align:center;padding:2px 6px;border-radius:8px;font-size:11px}.online-hint{font-size:10px;line-height:1.6;color:#bdceba;flex-shrink:0}.online-empty{font-size:12px;color:#c2d1bc;line-height:1.8}
.floating-panel{background:rgba(15,45,36,.24);border-color:rgba(168,196,165,.18);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 5px 20px #092d2314;text-shadow:0 1px 3px #071d19b0}.floating-header{border-bottom-color:#acc4b419}.floating-panel .chatlog{background:transparent}.floating-header button{background:#ffffff16}.reaction-bubble{display:block;position:absolute;bottom:44px;left:50%;transform:translateX(-50%);width:max-content;max-width:190px;padding:9px 12px;border-radius:12px;background:#fffef5;color:#234132;font-size:13px;line-height:1.4;box-shadow:0 3px 13px #0003;text-shadow:none;overflow-wrap:anywhere}.reaction-bubble:after{content:'';position:absolute;bottom:-6px;left:calc(50% - 6px);border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #fffef5}.online-player{width:100%;text-align:left;background:transparent;color:inherit;font:inherit;font-weight:400;cursor:pointer}.online-player:disabled{opacity:1;cursor:default}.online-player.offline{opacity:.65}.online-player.offline .online-dot{background:#bbc2b9;box-shadow:none}.online-player:hover:not(:disabled){background:#d8e9d31a}.online-hint{font-size:10px}#reservation-notice{position:fixed;right:18px;top:20px;z-index:22000;max-width:calc(100vw - 36px);background:#fffef5;color:#214537;box-shadow:0 8px 30px #102d1740;padding:20px;border-radius:14px;border:1px solid #c4d1bc}#reservation-notice .row{margin-top:12px}.mini-play{max-width:620px;margin-inline:auto}.mini-board{display:grid;gap:7px;max-width:430px;margin:18px auto;background:#a3b29a;padding:9px;border-radius:12px;touch-action:none;aspect-ratio:1}.mini-tile{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:7px;background:#d1d8c9;color:#254232;font-weight:750;font-size:26px;min-width:0}.tile-2{background:#eff2df}.tile-4{background:#e5e5bb}.tile-8{background:#e6c67e}.tile-16{background:#ddab60}.tile-32{background:#d98d51}.tile-64{background:#bd6844;color:white}.tile-128,.tile-256,.tile-512,.tile-1024,.tile-2048{background:#c4a348;color:white;font-size:22px}.mini-directions{text-align:center}.mini-directions button{min-width:50px;margin:3px}.snake-board{gap:1px;background:#e0e7d9;padding:5px}.snake-cell{aspect-ratio:1;background:#edf2e7;border-radius:2px}.snake-cell.snake-body{background:#287c54}.snake-cell.snake-food{background:#d27860;border-radius:50%}@media(max-width:640px){.mini-tile{font-size:22px}.reaction-bubble{max-width:150px;font-size:12px}.mini-board{gap:4px}.snake-board{gap:1px}}

.online-panel{background:rgba(15,45,36,.86);border-color:rgba(168,196,165,.25)}

.trick-seats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.trick-seat{position:relative;display:flex;flex-direction:column;gap:7px;padding:16px;font-size:13px}.trick-seat.current{border:2px solid #bfa454}.trick-seat .avatar{align-self:flex-start}.trick-card{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#153e32;border:1px solid #bdcbbc;border-radius:6px;min-width:44px;min-height:60px;font-size:20px;padding:7px;margin:3px}.trick-card.red{color:#bc493f}.trick-card.selected{transform:translateY(-9px);border:2px solid #ae8229;background:#fff2c9}.trick-hand-cards{display:flex;flex-wrap:wrap;gap:2px;padding-top:12px}.trick-controls{position:sticky;bottom:14px;background:#edf2e9;padding:12px;margin-top:20px;border-radius:12px;z-index:10}.trick-center{min-height:250px;text-align:center;background:#164936;color:#f0f4eb}.trick-center .turn-banner{color:#173c2b}.trick-seat .seat-reaction{left:65%;top:10px}.trick-page small{font-size:14px}.gomoku-board{gap:0!important;background:#c5a771!important;padding:4px!important}.gomoku-cell{padding:0!important;margin:0!important;aspect-ratio:1;min-width:0;border-radius:0;background:transparent;border:1px solid #927b4938;position:relative}.gomoku-cell.black:after,.gomoku-cell.white:after{content:'';position:absolute;inset:8%;border-radius:50%;background:#19211a;box-shadow:0 1px 3px #0006}.gomoku-cell.white:after{background:#faf9ec}.tetris-board{aspect-ratio:1/2;max-width:270px;gap:1px;background:#143a2c;padding:4px}.tetris-cell{aspect-ratio:1;background:#234837}.tetris-cell.filled{background:#c4ae58;border:1px solid #f6dfa1}.tetris-cell.active{background:#70b99b;border:1px solid #b2f6d9}@media(max-width:640px){.trick-seats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.trick-seat{padding:10px;font-size:11px}.trick-card{min-width:36px;min-height:51px;font-size:16px;padding:4px;margin:2px}.trick-hand{padding:12px}.trick-controls{bottom:6px;flex-wrap:wrap}.trick-center{padding:16px}.trick-page .notice{font-size:12px;line-height:1.7}}

.trick-entry{position:relative;z-index:1001;background:#edf2e9;padding:12px;border-radius:12px}.trick-hand{position:relative;z-index:1001}.trick-controls{z-index:1002}

.trick-seat .avatar{font-size:26px;width:40px;height:40px;padding:0;border-radius:50%}

.sudoku-board{background:#325747;gap:0;padding:2px;max-width:430px;border:2px solid #325747;border-radius:4px}.sudoku-cell{aspect-ratio:1;min-width:0;min-height:0;padding:0;margin:0;border:1px solid #c7d4c6;border-radius:0;background:#fff;color:#227451;font-size:24px;font-weight:500;touch-action:manipulation}.sudoku-cell.given{background:#e9efe4;color:#183b2d;font-weight:750}.sudoku-cell.box-right{border-right:2px solid #325747}.sudoku-cell.box-bottom{border-bottom:2px solid #325747}.sudoku-cell.selected{background:#f6df9e;box-shadow:inset 0 0 0 2px #ad8128}.sudoku-keypad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-width:430px;margin:15px auto}.sudoku-keypad button{padding:12px 5px;font-size:18px}@media(max-width:640px){.sudoku-cell{font-size:22px}.sudoku-keypad{gap:5px}.sudoku-keypad button{padding:12px 3px;font-size:17px}}

.board .poker-events{position:relative;box-sizing:border-box;width:300px;max-width:calc(100vw - 100px);height:86px;overflow-y:auto;overflow-x:hidden;margin:9px auto 0;padding:4px 8px;border:1px solid #bad0b44d;border-radius:0;background:transparent;box-shadow:none;text-align:left;color:#e6efe3;font-size:11px;line-height:19px;scrollbar-width:thin;scrollbar-color:#aac1a566 transparent;overscroll-behavior:contain;overflow-anchor:none;touch-action:pan-y}.poker-event{height:19px;line-height:19px;margin:0;padding:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poker-events:focus-visible{outline:1px solid #d6c389;outline-offset:2px}.poker-events .muted{color:#bdcdbc;font-size:11px}@media(max-width:640px){.board .poker-events{width:210px;max-width:calc(100vw - 180px);font-size:10px}.poker-events .muted{font-size:10px}}

.gambling-warning{color:#9b321d}.profit-chart{width:100%;height:auto;max-height:340px;display:block}.profit-line{fill:none;stroke:#167a5c;stroke-width:3;stroke-linejoin:round}.profit-dot{fill:#167a5c}.profit-zero{stroke:#91a298;stroke-dasharray:5 4}.profit-chart text{fill:#52665c;font-size:13px}.kick-button{font-size:11px;padding:2px 6px;margin:2px;background:#f7e9e5;color:#8b3427}.mini-awards h3{margin-top:16px}

.safety-banner{padding:8px 16px;text-align:center;background:#f7e9de;color:#843b28;font-size:12px;line-height:1.6;border-bottom:1px solid #e6d9cb}

/* Keep overlapping seat cards translucent in all browsers, including during a turn. */
.felt .seat{opacity:.6}.felt .seat.fold{opacity:.6;background:rgba(142,35,35,.65);border-color:rgba(255,126,126,.7)}.hand-rank-guide{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-size:11px;line-height:1.5;color:#e4d5a9;white-space:nowrap;margin-bottom:7px;font-weight:400}@media(max-width:640px){.hand-rank-guide{font-size:9px;margin-bottom:6px}}

.music-toggle{white-space:nowrap;font-size:12px}header nav .music-toggle{background:#ffffff15;color:#fff}.auth .music-toggle{display:block;margin:16px auto 0}
