:root{color:#f3f6f3;background:#050806;font-synthesis:none;--green:#a9f25b;--mint:#23c991;--muted:#858e88;--panel:#111813;--line:rgba(255,255,255,.08)}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -12%,#164832 0,#0b1a12 32%,#050806 72%);}
.app-shell{max-width:520px;min-height:100vh;margin:0 auto;position:relative;overflow:hidden}
.hero{position:relative}
.hero:after{position:absolute;line-height:1}
.hero-top{display:flex;align-items:center;position:relative;z-index:1}
.brand-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:var(--green);color:#092111;font-size:21px}
.brand-name{font-size:14px;font-weight:700;letter-spacing:.03em}
.avatar{margin-left:auto;border:1px solid #518a60;background:#1c3a2a;color:var(--green);width:34px;height:34px;border-radius:50%;font-weight:700}
.hero-copy{position:relative;z-index:1}
.eyebrow{color:#8bb391;font-weight:700;margin:0 0 7px}
.hero h1{margin:0;font-weight:700}
.hero h1 span{color:var(--green)}
.hero-sub{color:#a1b2a7;margin:10px 0 0}
.hero-stats{z-index:1}
.hero-stats div{display:flex;flex-direction:column;gap:2px}
.hero-stats span{color:#9ba79e}
.hero-stats i{height:24px;width:1px;background:#35503c}
.glow-orb{position:absolute;width:180px;height:180px;border-radius:50%;right:-52px;top:110px;background:rgba(31,177,107,.13);filter:blur(35px)}
.page{display:none}
.page.active{display:block;animation:appear .22s ease}
@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.section-heading{display:flex;justify-content:space-between;margin:0 2px 19px}
.section-heading h2{margin:0}
.section-heading.compact{align-items:center;margin-top:29px;margin-bottom:13px}
.text-button{border:0;background:none;color:#a6bbab;font:inherit;font-size:11px;padding:7px 0}
.text-button span{color:var(--green);margin-left:5px}
.filter-row{display:flex;align-items:center;margin-bottom:14px}
.filter,.sort{border:1px solid #29342d;background:#101611;color:#a5aea7;border-radius:22px;padding:8px 15px;font:inherit;font-size:11px}
.filter.active{background:#d3ff9c;color:#123219;border-color:#d3ff9c;font-weight:700}
.filter b{margin-left:5px}
.sort{margin-left:auto;font-size:17px;line-height:12px;padding:8px 11px}
.table-list{display:grid}
.table-card{border:1px solid var(--line);position:relative;overflow:hidden}
.table-card:after{position:absolute;pointer-events:none}
.table-card.featured{border-color:rgba(167,238,91,.29);box-shadow:0 0 20px rgba(50,140,77,.07)}
.table-top,.table-main,.table-bottom{position:relative;z-index:1}
.table-top{display:flex;align-items:center;justify-content:space-between}
.live-dot{color:var(--green)}
.live-dot:first-letter{font-size:8px}
.live-dot.quiet{color:#95a198}
.tag{color:#a2c3a3;background:#1b2a20;border:1px solid #293c2d;border-radius:5px}
.table-main{display:flex;align-items:center}
.seat-ring{border:2px solid #416332;border-radius:50%;display:flex;align-items:baseline;justify-content:center;flex:none}
.seat-ring small{color:#89958c}
.table-info{min-width:0;flex:1}
.table-info h3{margin:0 0 5px;font-weight:600}
.table-info p{margin:0 0 6px;color:#a6b0a8}
.table-info p b{color:#d8ecd9;font-weight:600}
.table-info p span{color:#516056}
.table-info>small{white-space:nowrap}
.buyin{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.buyin small{color:#849087}
.buyin b{color:#e5f4e5}
.table-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:#79867c}
.join-button{border:0;background:#b1fa63;color:#102511;border-radius:8px;font:inherit;font-weight:700}
.join-button span{font-size:14px;margin-left:5px}
.create-button{width:100%;margin-top:15px;border:1px solid #35543a;background:linear-gradient(100deg,#aaf25c,#68d34e);border-radius:12px;padding:13px;color:#10210f;font:inherit;font-weight:700;box-shadow:0 8px 24px rgba(107,218,76,.12)}
.create-button span{font-size:20px;vertical-align:-1px;margin-right:5px}
.bottom-nav{position:fixed;z-index:5;bottom:calc(env(safe-area-inset-bottom) + 11px);left:50%;transform:translateX(-50%);width:min(470px,calc(100% - 34px));padding:5px 8px;border:1px solid #444d47;border-radius:24px;backdrop-filter:blur(18px);display:flex;justify-content:space-around}
.nav-item{width:25%;border:0;background:transparent;color:#768079;display:flex;flex-direction:column;align-items:center;justify-content:center;font:inherit}
.club-banner{position:relative;background:linear-gradient(110deg,#163523,#0e2117);display:flex;align-items:center;gap:12px;border:1px solid #264432}
.club-icon{width:49px;height:49px;border-radius:14px;background:linear-gradient(145deg,#d6ff91,#68c94a);color:#193622;display:grid;place-items:center;font-size:30px}
.club-banner small,.club-banner p{color:#9cac9e}
.club-banner h3{margin:3px 0}
.club-banner p{margin:0}
.crown{color:#d5fa69;font-size:25px;margin-left:auto;align-self:flex-start}
.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:11px}
.quick-grid button{border:1px solid var(--line);border-radius:13px;background:#111813;color:#f4f5f2;text-align:left;padding:13px;display:grid;grid-template-columns:31px 1fr;column-gap:8px;align-items:center;font:inherit}
.quick-grid button>span{grid-row:span 2;color:var(--green);font-size:22px}
.quick-grid small{color:var(--muted);margin-top:3px}
.mini-table{border:1px solid var(--line);background:#111813;border-radius:13px;padding:12px;display:flex;align-items:center;gap:12px;margin-bottom:9px}
.mini-seats{width:39px;height:39px;border:1px solid #56844c;border-radius:50%;display:grid;place-items:center;font-size:11px;color:#e5f4df}
.mini-table>div{display:flex;flex-direction:column;gap:4px;flex:1}
.mini-table small{font-size:9px;color:#8b978e}
.mini-state{font-size:9px;color:var(--green)}
.mini-state.waiting{color:#acb5ad}
.icon-button{border:1px solid #304434;background:#15241a;color:var(--green);border-radius:9px;padding:8px 11px;font:inherit;font-size:10px}
.invite-card{border:1px solid #294333;background:radial-gradient(ellipse at 50% -5%,#204d31,#101711 63%);border-radius:20px;text-align:center}
.invite-symbol{width:60px;height:60px;display:grid;place-items:center;margin:auto;border-radius:19px;background:#203a27;color:var(--green);font-size:32px}
.invite-card h3{margin:17px 0 7px}
.invite-card p{color:#9aa79d;line-height:1.8;margin:0 0 19px}
.invite-code{border:1px dashed #536954;background:#0c130e;border-radius:9px;padding:10px;color:#d6e5d6;font-size:12px;letter-spacing:.08em;display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.invite-code button{border:0;background:none;color:var(--green);font:inherit;font-size:10px}
.primary-button{width:100%;border:0;background:#a9ee5c;color:#122413;border-radius:10px;padding:13px;font:inherit;font-size:12px;font-weight:700}
.helper-note{text-align:center;color:#748078;margin-top:13px}
.profile-card{border:1px solid var(--line);background:#111813;border-radius:15px;padding:15px;display:flex;align-items:center;gap:11px}
.profile-avatar{width:47px;height:47px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(140deg,#d1fb89,#3e9e58);color:#17351f;font-size:19px;font-weight:700}
.profile-card h3{margin:0 0 4px}
.profile-card p{color:#8e9b91;margin:0}
.online-pill{margin-left:auto;border-radius:20px;background:#1d3826;color:#b6f674;padding:5px 9px;font-size:9px}
.wallet-card{margin-top:11px;border:1px solid #23442d;background:linear-gradient(105deg,#163920,#102018);padding:17px;border-radius:15px;display:flex;justify-content:space-between;align-items:center}
.wallet-card div{display:flex;flex-direction:column;gap:6px}
.wallet-card small{color:#a6b4a7}
.wallet-card>span{color:var(--green);font-size:30px}
.segmented{display:flex;padding:3px;border-radius:20px;background:#151a16}
.segmented button{border:0;border-radius:18px;background:transparent;color:#858e88;padding:6px 11px;font:inherit;font-size:9px}
.segmented button.selected{background:#334e25;color:#d4f59a}
.stats-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.stats-grid div{display:flex;flex-direction:column;align-items:center;gap:5px;border-bottom:1px solid var(--line)}
.stats-grid div:nth-child(odd){border-right:1px solid var(--line)}
.stats-grid div:nth-last-child(-n+2){border-bottom:0}
.stats-grid small{color:#869188}
.settings-row{width:100%;display:flex;align-items:center;gap:10px;background:none;color:var(--green);border:0;border-bottom:1px solid var(--line);padding:15px 4px;font:inherit;font-size:13px;text-align:left}
.settings-row span{color:#e2e8e2;flex:1}
.settings-row b{color:#758077;font-size:19px;font-weight:400}
dialog{width:min(430px,calc(100% - 28px));border:1px solid #334638;border-radius:20px;background:#0b100d;color:#f2f5f1;padding:0;box-shadow:0 25px 90px #000c;max-height:min(80vh,700px)}
dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid var(--line)}
.modal-head h2{margin:0}
.close-modal{border:0;color:#b8c0ba;background:#1a211c;border-radius:50%;width:28px;height:28px;font-size:20px}
.modal-body{padding:15px 19px;max-height:55vh;overflow:auto}
.modal-body p,.modal-body li{color:#aeb8b0}
.modal-body h3{color:var(--green)}
.modal-body ul{padding-left:18px}
.modal-body .rank{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px 0;font-size:11px}
.modal-body .rank b{color:var(--green)}
dialog>.primary-button{width:calc(100% - 38px);margin:0 19px 18px}
.toast{position:fixed;bottom:94px;left:50%;transform:translate(-50%,12px);background:#e1ffba;color:#13210f;padding:10px 16px;border-radius:9px;font-size:11px;font-weight:600;opacity:0;pointer-events:none;transition:.2s}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:650px){body{padding:22px 0}.app-shell{min-height:850px;border:1px solid #1d2a21;border-radius:28px;background:#080c09;box-shadow:0 20px 90px #0008}.bottom-nav{position:absolute;bottom:15px}.hero{border-radius:27px 27px 0 0}}
@media(max-width:360px){.hero h1{font-size:30px}.table-card{padding:12px 10px 9px}.table-main{gap:8px}.seat-ring{width:47px;height:47px;padding-top:12px}.table-info h3{font-size:12px}.table-info>small{font-size:7px}.buyin b{font-size:16px}}
/* Finishing pass: consistent typography, calmer spacing, and page-specific framing. */
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;color-scheme:dark}
button{cursor:pointer;transition:background-color .16s ease,border-color .16s ease,transform .16s ease,filter .16s ease}
button:active{transform:scale(.98)}
button:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.app-shell:not(.show-home-hero) .hero{display:none}
.page{padding:27px 20px 28px}
.app-shell:not(.show-home-hero) .page{padding-top:calc(env(safe-area-inset-top) + 26px)}
.section-heading{align-items:center;margin-bottom:17px}
.section-heading .eyebrow{margin-bottom:5px}
.table-list{gap:10px}
.table-top{margin-bottom:10px}
.table-main{gap:11px}
.table-info p{line-height:1.45}
.table-info>small{letter-spacing:.01em}
.buyin b{font-variant-numeric:tabular-nums}
.table-bottom{margin-top:10px;padding-top:9px}
.join-button{white-space:nowrap}
.filter{min-width:54px;text-align:center}
.filter:not(.active):hover,.sort:hover,.icon-button:hover{border-color:#536c54;background:#18241b}
.create-button{letter-spacing:.02em}
.club-banner{padding:16px;border-radius:15px}
.quick-grid button{min-height:70px}
.invite-card{margin-top:35px;padding:25px 18px 18px}
.profile-card,.wallet-card{padding:14px}
.stats-grid div{padding:14px 5px}
.modal-body{scrollbar-color:#405443 #111713;scrollbar-width:thin}
.choice-row{width:100%;display:flex;justify-content:space-between;align-items:center;border:1px solid #293b2e;background:#111a13;color:#e9f1e9;padding:13px 12px;border-radius:10px;margin:8px 0;font:inherit;font-size:11px;text-align:left}
.choice-row b{color:var(--green);font-size:10px}
[hidden]{display:none!important}
@media(max-width:380px){.page{padding-left:15px;padding-right:15px}.app-shell:not(.show-home-hero) .page{padding-left:16px;padding-right:16px}.table-info>small{font-size:7px}.buyin small{font-size:7px}.hero-stats{gap:14px}}
.account-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:13px 0 0}
.account-actions button{min-height:76px;border:1px solid #26362b;border-radius:12px;background:linear-gradient(145deg,#17231a,#111813);color:#eef5ee;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font:inherit}
.account-actions button:nth-child(2){background:linear-gradient(145deg,#123629,#10221b);border-color:#24523e}
.account-actions button:nth-child(3){background:linear-gradient(145deg,#142935,#111b22);border-color:#263f4d}
.account-actions button:hover{filter:brightness(1.15)}
.action-icon{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#a9ef5d;color:#17311a;font-size:16px;font-weight:700}
.account-actions button:nth-child(2) .action-icon{background:#34d19b;color:#073021}
.account-actions button:nth-child(3) .action-icon{background:#348ac4;color:#071b27;border-radius:7px}
.hand-list{display:flex;flex-direction:column;gap:6px}
.hand-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:9px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.06)}
.hand-cards{display:flex;gap:3px;flex:none}
.playing-card{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;background:#fff;color:#111;flex:none}
.playing-card b{font-weight:700}
.playing-card i{font-style:normal}
.playing-card.red{color:#cf3040}
.hand-copy{min-width:0}
.hand-title{display:flex;align-items:center;justify-content:space-between;gap:5px}
.hand-title b{color:#e9f1e9}
.hand-title span{color:#8fe64f;font-weight:700}
.hand-copy p{margin:3px 0 0!important;color:#8d9990!important;line-height:1.45!important}
.modal-body .hand-list+h3{margin-top:15px}
@media(max-width:370px){.hand-row{gap:7px;padding:6px}.hand-cards{gap:2px}.playing-card{width:27px;height:39px}.playing-card b{font-size:8px}.playing-card i{font-size:12px}.hand-title b{font-size:9px}.hand-copy p{font-size:7px!important}}
/* Display polish: larger Chinese type and restrained poker-table artwork. */
.hero h1{font-size:39px;line-height:1.23;letter-spacing:-.055em}
.hero-copy{max-width:64%}
.hero-sub{font-size:13px;line-height:1.6;max-width:240px}
.hero:before{content:"";position:absolute;width:225px;height:122px;right:-44px;border:1px solid rgba(175,237,113,.54);border-radius:50%;transform:rotate(-17deg);background:radial-gradient(ellipse at 50% 45%,#17774a 0,#0d5836 50%,#073820 72%,#092416 100%);box-shadow:inset 0 0 0 7px rgba(153,209,112,.12),inset 0 0 0 9px rgba(10,39,23,.85),0 0 0 7px rgba(83,131,63,.23),0 0 0 9px rgba(182,148,81,.32),0 16px 35px #0008}
.hero:after{content:"♠";right:58px;font-size:40px;color:rgba(208,255,177,.65);transform:rotate(-17deg);text-shadow:0 2px 15px #a8ff7044}
.hero-stats strong{font-size:20px;font-variant-numeric:tabular-nums}
.hero-stats span{font-size:11px}
.section-heading h2{font-size:23px;letter-spacing:-.045em}
.section-heading.compact h2{font-size:18px}
.eyebrow{font-size:10px;letter-spacing:.17em}
.text-button,.icon-button{font-size:12px}
.filter{font-size:12px}
.table-card{padding:15px 14px 12px;border-radius:17px;background:linear-gradient(140deg,#19231c 0%,#121914 48%,#0d1410 100%);box-shadow:inset 0 1px rgba(255,255,255,.035),0 8px 20px rgba(0,0,0,.14)}
.table-card:before{content:"♠";position:absolute;z-index:0;right:53px;top:58px;color:rgba(153,207,116,.22);font-size:28px;transform:rotate(-13deg)}
.table-card:after{content:"A";display:flex;align-items:flex-start;justify-content:flex-start;padding:8px 7px;box-sizing:border-box;width:57px;height:79px;right:14px;top:35px;border:1px solid rgba(198,239,181,.18);border-radius:8px;color:rgba(210,250,198,.22);font-size:15px;font-weight:700;background:linear-gradient(150deg,rgba(42,107,67,.48),rgba(12,30,20,.2));box-shadow:inset 0 0 0 3px rgba(255,255,255,.025);transform:rotate(12deg)}
.live-dot{font-size:10px}
.tag{font-size:10px;padding:5px 8px}
.seat-ring{width:58px;height:58px;padding-top:16px;background:radial-gradient(circle at 50% 45%,#162019 0 54%,#172517 55% 100%);border-color:#74984a;box-shadow:0 0 0 3px rgba(159,205,99,.08),inset 0 0 12px #0008}
.seat-ring strong{font-size:19px}
.seat-ring small{font-size:10px}
.table-info h3{font-size:15px;letter-spacing:0}
.table-info p{font-size:11px;margin-bottom:7px}
.table-info>small{font-size:9px;color:#9aa69b}
.buyin small{font-size:9px}
.buyin b{font-size:21px}
.table-bottom{font-size:10px}
.join-button{font-size:11px;padding:9px 11px}
.create-button{font-size:15px;min-height:50px}
.club-banner h3{font-size:16px}
.club-banner small,.club-banner p{font-size:11px}
.quick-grid b{font-size:12px}
.quick-grid small{font-size:10px}
.mini-table b{font-size:13px}
.mini-table small,.mini-state{font-size:10px}
.profile-card h3{font-size:16px}
.profile-card p{font-size:10px}
.account-actions b{font-size:12px}
.wallet-card small{font-size:11px}
.wallet-card strong{font-size:27px}
.stats-grid strong{font-size:21px}
.stats-grid small{font-size:10px}
.settings-row span{font-size:12px}
.invite-card h3{font-size:18px}
.invite-card p{font-size:12px}
.helper-note{font-size:11px}
.modal-head h2{font-size:17px}
.modal-body p,.modal-body li{font-size:12px;line-height:1.75}
.modal-body h3{font-size:13px}
.rule-intro{font-size:11px!important}
.hand-title b{font-size:11px}
.hand-title span{font-size:9px}
.hand-copy p{font-size:9px!important}
.playing-card{width:32px;height:45px;border-radius:6px;box-shadow:0 3px 7px #0008}
.playing-card b{font-size:10px}
.playing-card i{font-size:15px}
@media(max-width:380px){.hero h1{font-size:35px}.hero-copy{max-width:67%}.hero:before{right:-72px;width:206px}.section-heading h2{font-size:21px}.table-info h3{font-size:13px}.table-info>small{font-size:8px}.buyin b{font-size:18px}.table-main{gap:8px}.table-card{padding:13px 11px 10px}.playing-card{width:28px;height:41px}}
.hero-top{justify-content:center;gap:10px}
.hero-top .brand-name{font-size:22px;font-weight:800;letter-spacing:.08em;color:#f5f8f3}
.brand-suit{font-size:23px;line-height:1;font-weight:700}
.brand-suit.spade{color:#b8f875}
.brand-suit.heart{color:#ff6d78}
.hero-top .avatar{position:absolute}
@media(max-width:380px){.hero-top .brand-name{font-size:20px}.brand-suit{font-size:21px}}
.hero-top{height:49px;margin:0 -5px;padding:0 8px;border:1px solid rgba(161,220,138,.2);border-radius:15px;background:linear-gradient(105deg,rgba(19,75,43,.94),rgba(12,48,31,.9) 55%,rgba(12,35,24,.94));box-shadow:inset 0 1px rgba(255,255,255,.06),0 8px 24px rgba(0,0,0,.16)}
.hero-top .brand-suit.black-heart{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#f1f4eb;font-size:16px;line-height:1}
.hero-top .avatar{top:7px;right:8px}
@media(max-width:380px){.hero-top{margin-left:-2px;margin-right:-2px}.hero-top .brand-name{font-size:18px}}
.announcement{height:37px;margin:10px 0 0;display:flex;align-items:center;gap:9px;padding:0 11px;border:1px solid rgba(169,242,91,.2);border-radius:11px}
.announcement-icon{flex:none;font-size:15px;line-height:1}
.announcement-window{min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.announcement-track{display:flex;width:max-content;animation:announcement-scroll 26s linear infinite}
.announcement-track span{flex:none;white-space:nowrap;font-size:11px;letter-spacing:.025em;padding-right:12px}
.announcement:hover .announcement-track{animation-play-state:paused}
@keyframes announcement-scroll{to{transform:translateX(-50%)}}
.hero-copy{margin-top:24px}
@media(max-width:380px){.announcement{margin-top:8px;padding:0 9px;height:35px}.announcement-track span{font-size:10px}.hero-copy{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.announcement-track{animation:none}.announcement-window{overflow-x:auto;mask-image:none}.announcement-track span[aria-hidden="true"]{display:none}}
/* Premium card-room treatment for the fixed bottom navigation. */
/* Home header additions and game discovery controls. */
.hero-top .brand-suit.heart{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:rgba(255,245,247,.95);color:#f34961;text-shadow:none;font-size:17px;box-shadow:0 0 0 1px rgba(255,255,255,.14),0 3px 10px rgba(0,0,0,.2)}
.hero-stats{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(112px,1.55fr);gap:6px}
.hero-stats .metric,.hero-stats .profile-summary{min-width:0;height:56px;padding:7px 8px;border:1px solid rgba(192,230,181,.14);border-radius:11px;background:linear-gradient(145deg,rgba(27,67,42,.84),rgba(12,32,21,.88));box-shadow:inset 0 1px rgba(255,255,255,.04)}
.hero-stats .metric{justify-content:center;gap:2px}
.hero-stats .metric strong{font-size:15px;line-height:1.05}
.hero-stats .metric span{font-size:9px;white-space:nowrap;color:#c1d2c4}
.hero-stats .profile-summary{display:flex;flex-direction:row;align-items:center;gap:7px;padding:6px 7px}
.profile-mini-avatar{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#e2ff9b,#78c951);color:#17361c;font-weight:800;font-size:14px;border:1px solid rgba(255,255,255,.45)}
.hero-stats .profile-mini-copy{min-width:0;display:flex;flex-direction:column;gap:3px}
.profile-mini-copy b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#f0f6ef}
.profile-mini-copy small{white-space:nowrap;font-size:8px;color:#a8b9aa}
.promo-banner{width:100%;position:relative;isolation:isolate;overflow:hidden;display:flex;justify-content:space-between;align-items:center;text-align:left;margin:0 0 22px;padding:15px 16px;border:1px solid rgba(177,236,114,.34);border-radius:17px;background:radial-gradient(ellipse at 82% 50%,rgba(54,134,68,.55),transparent 45%),linear-gradient(112deg,#172b1b,#0d1a12 63%,#132b1a);color:#f5f9f2;box-shadow:0 8px 24px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.07);animation:banner-pulse 3.2s ease-in-out infinite}
.promo-banner:before{content:"";position:absolute;z-index:-1;inset:-60% -30%;background:linear-gradient(105deg,transparent 40%,rgba(207,255,172,.1) 50%,transparent 60%);transform:translateX(-48%);animation:banner-shine 6s ease-in-out infinite}
.promo-copy{display:flex;flex-direction:column;align-items:flex-start;position:relative;z-index:2}
.promo-copy small{color:#b0d695;font-size:8px;letter-spacing:.13em;font-weight:700}
.promo-copy em{font-size:10px;font-style:normal;color:#bdcbbd}
.promo-copy strong span{margin-left:4px}
.promo-art{position:relative;flex:none}
.promo-card{position:absolute;width:42px;height:59px;display:grid;place-items:center;border-radius:7px;font-style:normal;font-size:16px;font-weight:800;box-shadow:0 7px 12px #0008}
.card-back{right:43px;top:11px;background:repeating-linear-gradient(45deg,#285f3b 0 3px,#183b27 3px 6px);border:1px solid #9dc76b;color:#d5f7a6;transform:rotate(-15deg);animation:float-left 2.8s ease-in-out infinite}
.card-front{right:5px;top:3px;background:linear-gradient(145deg,#fff,#e6ebe2);color:#d63c52;transform:rotate(12deg);animation:float-right 2.8s ease-in-out infinite}
.promo-chip{position:absolute;right:35px;bottom:0;width:32px;height:32px;border:4px dashed #d2ed73;outline:3px solid #77af4c;border-radius:50%;display:grid;place-items:center;color:#294222;background:#daef92;animation:chip-bounce 2s ease-in-out infinite}
.promo-spark{position:absolute;right:0;bottom:9px;color:#dbffa4;font-size:17px;animation:sparkle 1.8s ease-in-out infinite}
@keyframes banner-pulse{50%{box-shadow:0 10px 29px rgba(48,118,47,.2),inset 0 1px rgba(255,255,255,.1)}}
@keyframes banner-shine{0%,35%{transform:translateX(-48%)}75%,100%{transform:translateX(48%)}}
@keyframes float-left{50%{transform:translate(-1px,-4px) rotate(-12deg)}}
@keyframes float-right{50%{transform:translate(1px,3px) rotate(15deg)}}
@keyframes chip-bounce{50%{transform:translateY(-3px)}}
@keyframes sparkle{50%{opacity:.45;transform:scale(.8)}}
.mode-heading{display:flex;align-items:baseline;gap:9px;margin:0 2px 9px}
.mode-heading span{font-size:15px;font-weight:700}
.mode-heading small{font-size:10px;color:#8c9a90}
.mode-shortcuts{grid-template-columns:repeat(3,minmax(0,1fr))}
.mode-shortcuts button{min-width:0;border:1px solid #26382c;background:linear-gradient(145deg,#16231a,#101712);color:#edf5ec;text-align:left;font:inherit}
.mode-shortcuts button>span{line-height:1;color:#b8f576}
.mode-shortcuts button small{color:#91a194}
.filter-row{min-width:0;gap:7px}
.filter-scroller{min-width:0;display:flex;align-items:center;gap:7px;overflow-x:auto;scrollbar-width:none}
.filter-scroller::-webkit-scrollbar{display:none}
.filter{flex:none;padding:9px 12px;white-space:nowrap}
.sort{flex:none}
.arcade-card{min-height:73px;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:linear-gradient(105deg,#191c16,#111712);overflow:hidden}
.arcade-card.dragon{background:linear-gradient(105deg,#241a18,#121713)}
.arcade-icon{flex:none;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#315a2a,#1d3823);font-size:25px}
.arcade-icon.dragon-icon{font-size:13px;font-weight:800;letter-spacing:.08em;color:#ffd881;background:linear-gradient(145deg,#70402a,#3d291e);border:1px solid #a57440}
.arcade-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.arcade-copy b{font-size:13px}
.arcade-copy small{font-size:9px;color:#9aa79c;white-space:nowrap}
.arcade-tag{border:1px solid #364333;border-radius:20px;padding:4px 7px;color:#b8cfaa;font-size:8px;white-space:nowrap}
.arcade-open{flex:none}
@media(max-width:380px){.hero-stats{left:12px;right:12px;grid-template-columns:repeat(3,minmax(0,1fr)) minmax(102px,1.4fr);gap:4px}.hero-stats .metric,.hero-stats .profile-summary{padding-left:5px;padding-right:5px}.hero-stats .metric span{font-size:8px}.profile-mini-copy b{font-size:9px}.profile-mini-copy small{font-size:7px}.profile-mini-avatar{width:28px;height:28px}.promo-art{width:94px;transform:scale(.9);transform-origin:right center}.promo-copy>b{font-size:15px}.promo-banner{padding:13px}.filter{padding:8px 10px}.mode-shortcuts{gap:6px}.mode-shortcuts button{padding:8px}.mode-shortcuts button b{font-size:9px}}
@media(prefers-reduced-motion:reduce){.promo-banner,.promo-banner:before,.promo-card,.promo-chip,.promo-spark{animation:none}}
/* Place the information cards directly beneath the announcement. */
.hero-stats{position:relative;left:auto;right:auto;bottom:auto;width:auto;margin:13px 0 0;display:grid;align-items:stretch}
.hero-stats .metric{align-items:center;text-align:center}
.hero-stats .profile-summary{justify-content:center}
.hero-stats .profile-mini-copy{align-items:center;text-align:center}
.hero-top .avatar svg{width:18px;height:18px;fill:none;stroke:#d8f3ce;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block;margin:auto}
.hero-filters{margin:11px 0 0;gap:0}
.hero-filters .filter-scroller{width:100%}
.hero-filters .filter{border-radius:10px;background:rgba(16,36,23,.82);border-color:rgba(163,213,133,.16);color:#c1d2c3}
.hero-filters .filter.active{background:linear-gradient(120deg,#d7ffa6,#a9ed65);border-color:#d7ffa6;color:#1a3218;box-shadow:0 3px 12px rgba(159,230,98,.18)}
@media(max-width:380px){.hero-filters .filter-scroller{gap:4px}.hero-filters .filter{padding:8px 9px;font-size:10px}}
.hero-filters .filter:first-child{padding-left:9px;padding-right:9px}
@media(max-width:380px){.hero-filters .filter-scroller{gap:2px}.hero-filters .filter{padding:8px 7px;font-size:11.5px}}
.rules-shortcut{flex:none;border:1px solid rgba(190,230,166,.32);border-radius:10px;padding:9px 10px;background:rgba(36,57,36,.88);color:#d8f1c4;font:inherit;font-size:12px;font-weight:700;white-space:nowrap}
.scroll-nudge{flex:none;width:30px;height:34px;border:0;background:transparent;color:#c6f58d;font-size:22px;line-height:1;animation:arrow-bob 1s ease-in-out infinite}
@keyframes arrow-bob{0%,100%{transform:translateY(-3px)}50%{transform:translateY(3px)}}
@media(max-width:380px){.rules-shortcut{padding:8px 9px;font-size:11px}.scroll-nudge{width:26px;font-size:20px}}
@media(prefers-reduced-motion:reduce){.scroll-nudge{animation:none}}
.header-tools{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;margin:6px 2px 0}
.header-tools .rules-shortcut{min-height:36px;padding:8px 14px;border-radius:10px;border-color:rgba(190,230,166,.34);background:linear-gradient(120deg,rgba(36,67,39,.96),rgba(25,49,32,.96));font-size:12px;cursor:pointer}
.header-tools .scroll-nudge{position:relative;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(174,228,128,.28);border-radius:50%;background:rgba(20,48,28,.94);color:#d1ff9e;cursor:pointer;animation:none;overflow:hidden}
.corner-arrows{position:relative;display:block;width:23px;height:23px;animation:arrow-orbit 4s linear infinite}
.corner-arrows i{position:absolute;font-size:12px;line-height:12px;font-style:normal;color:#d4ff9c}
.corner-arrows i:nth-child(1){left:0;top:0}
.corner-arrows i:nth-child(2){right:0;top:0}
.corner-arrows i:nth-child(3){left:0;bottom:0}
.corner-arrows i:nth-child(4){right:0;bottom:0}
@keyframes arrow-orbit{to{transform:rotate(360deg)}}
.header-tools .scroll-nudge:active{transform:scale(.94)}
@media(prefers-reduced-motion:reduce){.corner-arrows{animation:none}}
/* Keep the rule and reset actions in the category row, above the decorative art. */
.hero{padding-left:16px;padding-right:16px}
.hero-top,.announcement,.hero-filters{position:relative;z-index:2}
.hero:before{top:122px;opacity:.18;z-index:0;pointer-events:none}
.hero:after{top:147px;opacity:.3;z-index:0;pointer-events:none}
.hero-filters .filter-scroller{overscroll-behavior-x:contain}
.hero-filters .filter{min-width:0;letter-spacing:0}
.hero-filters .rules-shortcut{border-radius:9px;border:1px solid rgba(190,230,166,.34);background:linear-gradient(120deg,rgba(36,67,39,.98),rgba(25,49,32,.98));color:#d8f1c4;font:inherit;font-weight:700;white-space:nowrap;cursor:pointer}
.reset-filters{flex:none;width:29px;height:33px;padding:0;display:grid;place-items:center;border:1px solid rgba(190,230,166,.28);border-radius:9px;background:rgba(36,57,36,.88);font-size:17px;line-height:1;cursor:pointer}
.reset-filters.spinning{animation:recycle-spin .6s ease-in-out}
@keyframes recycle-spin{to{transform:rotate(360deg)}}
@media(max-width:380px){.hero{padding-left:12px;padding-right:12px}.hero-filters .filter{padding:7px 4px;font-size:10px}.hero-filters .rules-shortcut{padding:6px 5px;font-size:10px}.reset-filters{width:27px;height:31px;font-size:15px}}
.hero-filters .filter-scroller{justify-content:space-between;gap:2px;overflow-x:auto;scrollbar-width:none}
.hero-filters .filter{flex:1 0 max-content;padding:8px 4px;font-size:12px;font-weight:700;text-align:center}
.hero-filters .rules-shortcut{flex:1 0 max-content;min-height:36px;padding:7px 5px;font-size:12px;text-align:center}
.hero-filters .reset-filters{flex:none;margin-left:2px;width:32px;height:36px}
@media(max-width:380px){.hero-filters .filter{font-size:11.5px;padding:7px 3px}.hero-filters .rules-shortcut{font-size:11.5px;padding:6px 4px}.hero-filters .reset-filters{width:30px;height:34px}}
.mode-shortcuts{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}
.mode-shortcuts button{min-height:54px;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px;padding:8px 11px;border-radius:12px}
.mode-shortcuts button>span{flex:none;width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(183,236,119,.2);border-radius:10px;background:rgba(116,168,68,.13);font-size:18px}
.mode-shortcuts button b{font-size:12px;white-space:nowrap}
.mode-shortcuts button small{margin-left:auto;font-size:10px;white-space:nowrap}
/* Give every room tile the same footprint as the Friends Happy table. */
.table-list>.arcade-card{position:relative;display:grid;align-items:center;border-radius:17px}
.table-list>.arcade-card:before{content:"";position:absolute;z-index:0;width:112px;height:112px;right:-28px;top:-30px;border:1px solid rgba(174,224,128,.12);border-radius:50%;box-shadow:0 0 0 8px rgba(174,224,128,.025),0 0 0 18px rgba(174,224,128,.02);pointer-events:none}
.table-list>.arcade-card>*{position:relative;z-index:1}
.table-list>.arcade-card .arcade-icon{grid-column:1;grid-row:1/3}
.table-list>.arcade-card .arcade-icon.dragon-icon{font-size:14px}
.table-list>.arcade-card .arcade-copy{grid-column:2;grid-row:1;align-self:end}
.table-list>.arcade-card .arcade-tag{grid-column:2;grid-row:2;justify-self:start;align-self:start;margin-top:2px}
.table-list>.arcade-card .arcade-open{grid-column:3;grid-row:2;align-self:start;margin-top:-2px}
/* Compact all room cards to match the featured Friends Happy banner. */
.table-list>.table-card,.table-list>.arcade-card{height:110px;min-height:110px;border-radius:15px}
.table-list>.table-card .seat-ring{width:38px;height:38px;padding-top:9px;border-width:1px;box-shadow:0 0 0 2px rgba(159,205,99,.07),inset 0 0 9px #0008}
.table-list>.table-card .seat-ring strong{font-size:14px}
.table-list>.table-card .seat-ring small{font-size:8px}
.table-list>.table-card .table-info h3{align-items:center;gap:4px}
.table-list>.table-card .table-info h3:before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:#9da79e}
.table-list>.table-card.featured .table-info h3:before{background:#adf36a;box-shadow:0 0 7px #adf36a88}
.table-list>.table-card .table-info h3:after{content:"长牌";flex:none;padding:2px 4px;border-radius:4px;background:#253b25;color:#b9df8e;font-size:8px;font-weight:600}
.table-list>.table-card[data-game="short"] .table-info h3:after{content:"短牌"}
.table-list>.table-card .table-info p{white-space:nowrap}
.table-list>.table-card .table-info>small{display:none}
.table-list>.table-card .buyin{gap:0}
.table-list>.table-card .buyin small{line-height:1.1;white-space:nowrap}
.table-list>.table-card .buyin small:last-child{display:none}
.table-list>.table-card .buyin b{line-height:1.2}
.table-list>.arcade-card{grid-template-columns:43px minmax(0,1fr) auto;grid-template-rows:1fr 1fr;gap:2px 8px;padding:9px 11px}
.table-list>.arcade-card .arcade-icon{width:39px;height:39px;border-radius:12px;font-size:23px}
.table-list>.arcade-card .arcade-copy{gap:3px}
.table-list>.arcade-card .arcade-copy b{font-size:13px}
.table-list>.arcade-card .arcade-copy small{font-size:9px}
.table-list>.arcade-card .arcade-tag{font-size:8px;padding:3px 6px}
.table-list>.arcade-card .arcade-open{width:29px;height:29px;font-size:16px}
/* Use the supplied artwork as the full-width club masthead. */
.hero{height:auto;min-height:0;padding:0 16px 15px;background:#080c09;overflow:hidden}
.hero:before,.hero:after,.hero .glow-orb{display:none!important}
.hero-banner{width:calc(100% + 32px);margin:0 -16px 0;overflow:hidden;background:#160d09}
.hero-banner img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;object-position:center}
.announcement{margin-top:10px}
.table-list>.arcade-card.dragon{background-image:linear-gradient(90deg,rgba(5,10,18,.78),rgba(5,10,18,.42) 58%,rgba(5,10,18,.28)),url("assets/dragon-tiger-banner-user.jpg?v=20261007");background-size:cover,cover;background-position:center,center;border-color:rgba(255,173,75,.42);box-shadow:inset 0 0 0 1px rgba(255,215,127,.08),0 8px 18px rgba(0,0,0,.24)}
.table-list>.arcade-card.dragon:before{display:none}
.table-list>.arcade-card.dragon .arcade-icon{display:none}
.table-list>.arcade-card.dragon{grid-template-columns:minmax(0,1fr) auto}
.table-list>.arcade-card.dragon .arcade-copy{grid-column:1;grid-row:1;align-self:end;text-shadow:0 1px 5px #000}
.table-list>.arcade-card.dragon .arcade-copy b{font-size:15px;color:#fff1d0}
.table-list>.arcade-card.dragon .arcade-copy small{color:#f4e6d4}
.table-list>.arcade-card.dragon .arcade-tag{grid-column:1;grid-row:2;background:rgba(12,17,24,.68);border-color:rgba(255,211,129,.48);color:#ffe3a8}
.table-list>.arcade-card.dragon .arcade-open{grid-column:2;grid-row:2;align-self:start;border-color:#f7c66f}
.table-list>.arcade-card[data-game="hulehu"],.table-list>.arcade-card[data-game="danjiao"]{background-image:linear-gradient(90deg,rgba(5,16,16,.75),rgba(5,16,16,.42) 58%,rgba(5,16,16,.28)),url("assets/hulehu-banner.jpg");background-size:cover,cover;background-position:center,center;border-color:rgba(221,201,120,.38);box-shadow:inset 0 0 0 1px rgba(255,235,170,.06),0 8px 18px rgba(0,0,0,.22);grid-template-columns:minmax(0,1fr) auto}
.table-list>.arcade-card[data-game="hulehu"]:before,.table-list>.arcade-card[data-game="danjiao"]:before{display:none}
.table-list>.arcade-card[data-game="hulehu"] .arcade-icon,.table-list>.arcade-card[data-game="danjiao"] .arcade-icon{display:none}
.table-list>.arcade-card[data-game="hulehu"] .arcade-copy,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy{grid-column:1;grid-row:1;align-self:end;text-shadow:0 1px 5px #000}
.table-list>.arcade-card[data-game="hulehu"] .arcade-copy b,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy b{font-size:15px;color:#fff2cf}
.table-list>.arcade-card[data-game="hulehu"] .arcade-copy small,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy small{color:#f1e8cf}
.table-list>.arcade-card[data-game="hulehu"] .arcade-tag,.table-list>.arcade-card[data-game="danjiao"] .arcade-tag{grid-column:1;grid-row:2;background:rgba(10,24,22,.68);border-color:rgba(234,220,164,.4);color:#fff1c6}
.table-list>.arcade-card[data-game="hulehu"] .arcade-open,.table-list>.arcade-card[data-game="danjiao"] .arcade-open{grid-column:2;grid-row:2;align-self:start;border-color:#d9c77d}
.brand-caption{height:22px;display:flex;align-items:center;justify-content:center;gap:9px;color:#d7e3d7;font-size:10px;letter-spacing:.08em}
.brand-caption span{font-weight:700}
.brand-caption b{font-size:8px;letter-spacing:.17em;color:#8eac8f}
.club-values{margin:8px 0 0;text-align:center;color:#e7d9b2;font-size:10px;font-weight:600;line-height:1.4;letter-spacing:.01em;white-space:nowrap}
.club-values i{padding:0 2px;color:rgba(232,208,151,.55);font-style:normal}
#games-page{padding-top:9px}
.hero{padding-bottom:5px}
/* Standard Texas room card: seats, rules, status, time, and safety indicators. */
.table-list>.table-card{height:110px;min-height:110px;padding:7px 10px 6px}
.table-list>.table-card .table-top{display:flex;height:14px;align-items:center;justify-content:space-between;margin:0 0 3px}
.table-list>.table-card .live-dot{font-size:8px;white-space:nowrap}
.table-list>.table-card .tag{font-size:8px;padding:2px 5px;white-space:nowrap}
.table-list>.table-card .table-main{height:38px;gap:7px}
.table-list>.table-card .table-info h3{display:block;margin:0 0 3px;font-size:12px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.table-list>.table-card .table-info h3:before,.table-list>.table-card .table-info h3:after{display:none;content:none}
.table-list>.table-card .table-info p{font-size:9px;margin:0;line-height:1.15}
.table-list>.table-card .buyin small{font-size:7px}
.table-list>.table-card .buyin b{font-size:15px}
.table-list>.table-card .table-bottom{min-height:25px;display:flex;align-items:center;justify-content:space-between;gap:3px;margin-top:3px;padding-top:3px;white-space:nowrap;font-size:7px}
.table-list>.table-card .room-time{font-size:7px;color:#a4afa5}
.table-list>.table-card .protection-badge,.table-list>.table-card .limit-badge{flex:none;padding:3px 4px;border-radius:5px;background:rgba(89,133,59,.17);border:1px solid rgba(152,202,101,.22);color:#c6e7a0;font-size:7px;line-height:1}
.table-list>.table-card .limit-badge{background:rgba(143,106,42,.17);border-color:rgba(220,175,84,.25);color:#edcf88}
.table-list>.table-card .join-button{flex:none;padding:5px 7px;font-size:8px;line-height:1;border-radius:6px}
.table-list>.arcade-card[data-game="hulehu"] .arcade-open,.table-list>.arcade-card[data-game="danjiao"] .arcade-open{width:auto;min-width:54px;height:26px;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;border:0;border-radius:6px;background:#b1fa63;color:#102511;font-size:9px;font-weight:700;white-space:nowrap}
.table-list>.arcade-card[data-game="hulehu"] .arcade-open span,.table-list>.arcade-card[data-game="danjiao"] .arcade-open span{font-size:13px;line-height:1}
.table-list>.arcade-card.dragon .arcade-open{width:auto;min-width:54px;height:26px;display:flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;border:0;border-radius:6px;background:#b1fa63;color:#102511;font-size:9px;font-weight:700;white-space:nowrap}
.table-list>.arcade-card.dragon .arcade-open span{font-size:13px;line-height:1}
.promo-copy strong{display:inline-flex;align-items:center;gap:5px;margin-top:3px;padding:6px 11px;border-radius:8px;background:linear-gradient(110deg,#c6ff83,#91df4f);color:#152713;font-size:10px;box-shadow:0 3px 12px rgba(168,239,94,.22)}
.promo-copy strong span{margin:0;color:#152713;font-size:14px}
#share-page .invite-card{position:relative;overflow:hidden;background-color:#101711;background-image:linear-gradient(105deg,rgba(5,12,8,.82),rgba(5,12,8,.58) 58%,rgba(5,12,8,.76)),url("assets/club-banner.jpg");background-size:cover;background-position:center;border-color:rgba(220,189,105,.42);box-shadow:inset 0 0 0 1px rgba(255,233,164,.06),0 14px 35px rgba(0,0,0,.25)}
#share-page .invite-symbol{background:rgba(21,44,28,.86);border:1px solid rgba(203,239,153,.28);box-shadow:0 4px 18px #0007}
/* Mahjong training table, kept inside the existing game dialog. */
.mahjong-status{padding:10px 11px;border:1px solid rgba(218,190,116,.22);border-radius:10px;background:linear-gradient(110deg,#1b261c,#171910);color:#ead99f!important;font-size:11px!important}
.mahjong-seats{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:10px 0 15px}
.mahjong-seat{min-width:0;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:linear-gradient(145deg,#141a15,#101410)}
.mahjong-seat.current{border-color:rgba(187,225,111,.56);box-shadow:inset 0 0 0 1px rgba(187,225,111,.08)}
.mahjong-seat>span{font-size:10px;color:#e4e9e1}
.mahjong-seat>b{float:right;color:#9daa9c;font-size:9px;font-weight:500}
.mahjong-discards{display:flex;flex-wrap:wrap;gap:2px;min-height:21px;margin-top:6px}
.mahjong-discards i{padding:2px 3px;border-radius:3px;background:#26362a;color:#d9e5d5;font-size:8px;font-style:normal}
.modal-body h3{margin:12px 0 8px}
.custom-room-form{display:grid;gap:12px}
.custom-room-section{display:grid;gap:10px;padding:10px;border:1px solid rgba(212,223,205,.12);border-radius:12px;background:linear-gradient(180deg,rgba(13,18,15,.9),rgba(19,25,21,.94));box-shadow:inset 0 1px rgba(255,255,255,.02)}
.custom-room-section-title{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#b4d7a2}
.custom-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.custom-room-form .field{display:grid;gap:6px;color:#cfe0d0;font-size:11px;font-weight:600}
.custom-room-form .field-wide{grid-column:1 / -1}
.custom-room-form input,.custom-room-form select{width:100%;padding:9px 10px;border:1px solid rgba(163,184,167,.18);border-radius:9px;background:#0d120f;color:#eefaf0;font:inherit;font-size:12px;transition:border-color .16s ease, box-shadow .16s ease, background .16s ease}
.custom-room-form input::placeholder{color:#7a8a80}
.custom-room-form input:focus,.custom-room-form select:focus{outline:none;border-color:rgba(164,242,97,.7);box-shadow:0 0 0 3px rgba(164,242,97,.11);background:#111812}
.custom-room-form .primary-button{width:100%;margin-top:4px;background:linear-gradient(110deg,#d3ff89,#9fe260);color:#10210d}
.custom-room-form .primary-button:hover{filter:brightness(1.02)}
.mahjong-hand{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;padding:10px 6px;border:1px solid rgba(222,190,112,.22);border-radius:12px;background:radial-gradient(ellipse at 50% 0,rgba(160,124,55,.13),transparent 70%),#0e120f}
.mahjong-tile{width:34px;height:45px;border:1px solid #ded6be;border-radius:5px;background:linear-gradient(150deg,#fffdf2,#e7dfc9);color:#253a2c;font:700 14px 'Noto Sans SC',sans-serif;box-shadow:0 2px 4px #0008;cursor:pointer}
.mahjong-tile:disabled{opacity:1;cursor:default}
.mahjong-tile:not(:disabled):active{transform:translateY(-5px);border-color:#e4be61;box-shadow:0 5px 12px #d1a43e55}
.mahjong-hint,.mahjong-disclaimer{text-align:center;font-size:9px!important;color:#89948a!important}
.mahjong-actions{display:grid;gap:8px;margin-top:11px}
.mahjong-actions .primary-button{min-height:42px;background:linear-gradient(110deg,#e9ca79,#bd8e3d);color:#21190c}
.mahjong-result{padding:12px;border:1px solid rgba(220,188,111,.34);border-radius:10px;background:#1d1b12;text-align:center}
.mahjong-result b{color:#f0d78f}
.mahjong-result p{margin-bottom:0}
.modal-body:has(.mahjong-status){display:flex;flex-direction:column}
.modal-body:has(.mahjong-status)>.mahjong-status{order:0}
.modal-body:has(.mahjong-status)>.mahjong-actions{order:1}
.modal-body:has(.mahjong-status)>.mahjong-seats{order:2}
.modal-body:has(.mahjong-status)>h3{order:3}
.modal-body:has(.mahjong-status)>.mahjong-hand{order:4}
.modal-body:has(.mahjong-status)>.mahjong-hint{order:5}
.modal-body:has(.mahjong-status)>.mahjong-disclaimer{order:6}
.room-card-tap{cursor:pointer}
.room-card-tap:focus-visible{outline:2px solid #d4b563;outline-offset:2px}
@media (max-width: 430px){.custom-room-grid{grid-template-columns:1fr}.custom-room-form .field-wide{grid-column:1}}
/* Table sound control and soft dealing motion. */
.room-audio-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:8px 10px;border:1px solid rgba(196,218,169,.12);border-radius:10px;background:linear-gradient(100deg,rgba(48,71,39,.25),rgba(16,23,17,.48));color:#b3c1b0;font-size:10px}
.room-audio-bar span{letter-spacing:.02em}
.room-audio-bar button{min-width:82px;padding:6px 9px;border:1px solid rgba(169,242,91,.2);border-radius:8px;background:rgba(169,242,91,.08);color:#c7f498;font-size:10px}
.room-audio-bar button[aria-pressed="false"]{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#8c968e}
.fairness-panel{display:grid;gap:7px;margin:10px 0;padding:11px;border:1px solid rgba(169,242,91,.2);border-radius:11px;background:linear-gradient(130deg,rgba(27,49,28,.72),rgba(15,22,17,.92))}
.fairness-panel>strong{color:#c5f291;font-size:11px}
.fairness-panel>span,.fairness-panel small,.fairness-panel details{color:#a5b1a6;font-size:9px;line-height:1.5}
.fairness-panel code{display:block;overflow-wrap:anywhere;padding:7px 8px;border:1px solid rgba(255,255,255,.08);border-radius:7px;background:#090d0a;color:#d8e7d6;font:9px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
.fairness-panel details summary{cursor:pointer;color:#c5d1c5}
.fairness-panel details code{margin-top:6px}
.fairness-verify{min-height:34px;border:1px solid rgba(169,242,91,.3);border-radius:8px;background:rgba(169,242,91,.1);color:#d2f8ae;font:inherit;font-size:10px;font-weight:700}
.fairness-verify:disabled{opacity:.6}
.fairness-result{color:#ffb5a8;font-size:10px;line-height:1.5}
.fairness-result.verified{color:#bdf18f}
.patrol-panel,.table-message{display:grid;gap:5px;margin:10px 0;padding:10px;border:1px solid rgba(169,242,91,.16);border-radius:10px;background:rgba(20,31,22,.72)}
.patrol-panel strong,.table-message strong{color:#c5f291;font-size:10px}
.patrol-panel span,.table-message p{margin:0;color:#d3dfd3;font-size:10px;line-height:1.5}
.patrol-panel small{color:#849186;font-size:9px;line-height:1.5}
.patrol-panel.alert{border-color:rgba(255,112,92,.48);background:rgba(70,28,24,.42)}
.patrol-panel.alert strong,.patrol-panel.alert span{color:#ffb5a8}
.payment-lock-section small{color:#849186;font-size:9px;line-height:1.6}
.payment-lock-section input:disabled{opacity:.65;cursor:not-allowed}
.ledger-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px;border-bottom:1px solid rgba(255,255,255,.08);color:#dce8dc;font-size:11px}
.ledger-row span{display:grid;gap:4px}
.ledger-row small{color:#8d998f;font-size:9px}
.ledger-row b{color:#c5f291;font-variant-numeric:tabular-nums}
.card-dealing{transform-origin:center;animation:deal-card .48s cubic-bezier(.16,.78,.25,1) both}
.arcade-card.filter-focus{border-color:rgba(223,190,111,.85);box-shadow:0 0 0 2px rgba(223,190,111,.2),0 0 22px rgba(223,190,111,.2)}
@keyframes deal-card{0%{opacity:0;transform:translate(20px,-13px) rotate(8deg) scale(.82);filter:brightness(1.8)}65%{opacity:1;transform:translate(-2px,2px) rotate(-2deg) scale(1.04)}100%{opacity:1;transform:translate(0) rotate(0) scale(1);filter:none}}
@media(prefers-reduced-motion:reduce){.card-dealing{animation-duration:.01ms}}
/* Premium card-room treatment for the fixed bottom navigation. */
.bottom-nav{isolation:isolate;overflow:hidden;border-color:rgba(226,190,104,.48);background:linear-gradient(115deg,rgba(12,14,12,.96),rgba(28,23,14,.94) 48%,rgba(12,14,12,.96));box-shadow:0 12px 38px #000b,inset 0 1px rgba(255,229,164,.2),inset 0 -1px rgba(200,160,71,.12)}
.bottom-nav:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 0,rgba(223,182,84,.17),transparent 64%),radial-gradient(circle at 3% 52%,transparent 0 13px,rgba(221,181,88,.2) 14px 15px,transparent 16px),radial-gradient(circle at 97% 52%,transparent 0 13px,rgba(221,181,88,.2) 14px 15px,transparent 16px),linear-gradient(120deg,transparent 10%,rgba(255,255,255,.025) 50%,transparent 90%)}
.bottom-nav:after{content:"♠  ♦  VIP  ♣  ♥";position:absolute;z-index:-1;right:16px;top:3px;color:rgba(240,207,133,.09);font-size:9px;font-weight:800;letter-spacing:.28em;pointer-events:none}
.nav-item{position:relative;z-index:1;text-shadow:0 1px 5px #000}
.nav-item.selected{color:#f2d27d}
.nav-item.selected span{filter:drop-shadow(0 0 7px rgba(255,211,104,.58))}
/* Club member shortcut and current player share one aligned row. */
.quick-grid .member-shortcut,
.quick-grid .club-player{min-height:68px}
.quick-grid .club-player{grid-template-columns:34px minmax(0,1fr) auto;column-gap:9px;text-align:left;cursor:pointer}
.quick-grid .club-player-avatar{grid-row:auto;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(140deg,#d1fb89,#3e9e58);color:#17351f;font-size:15px;font-weight:700}
.quick-grid .club-player-copy{min-width:0;display:flex;flex-direction:column;gap:4px}
.quick-grid .club-player-copy b{font-size:11px;white-space:nowrap}
.quick-grid .club-player-copy small{font-size:9px;color:var(--muted);white-space:nowrap}
.quick-grid .club-player-arrow{color:var(--green);font-size:21px;line-height:1}
#club-page{padding-top:0}
#club-page .club-page-banner{height:auto;aspect-ratio:1279/603;margin:0 -18px 16px;overflow:hidden;background:#10130f}
#club-page .club-page-banner img{display:block;width:100%;height:100%;object-fit:cover}
#club-page .club-banner h3{max-width:100%;font-size:14px;white-space:nowrap}
#club-page .community-heading{min-height:62px;gap:10px;margin:26px 0 13px;padding:11px 13px;border:1px solid rgba(213,177,94,.35);border-radius:14px;background:linear-gradient(110deg,rgba(85,56,20,.48),rgba(26,32,21,.96) 52%,rgba(36,57,31,.9));box-shadow:inset 0 1px rgba(255,235,176,.08),0 8px 22px rgba(0,0,0,.22)}
#club-page .community-heading h2{flex:none;color:#ffe3a2;font-size:14px;letter-spacing:0;text-shadow:0 1px 9px rgba(246,191,75,.25)}
.community-ticker{display:flex;align-items:center;gap:5px;min-width:0;flex:1;border-left:1px solid rgba(255,231,167,.2);padding-left:8px;overflow:hidden}
.community-speaker{flex:none;font-size:15px;line-height:1}
.community-ticker-window{min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}
.community-ticker-track{display:flex;width:max-content;animation:communityTicker 14s linear infinite}
.community-ticker-track span{flex:none;color:#dfd1aa;white-space:nowrap}
@keyframes communityTicker{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.community-ticker-track{animation:none}}
.cinema-card{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:126px;margin-top:14px;padding:16px;border:1px solid rgba(255,221,151,.35);border-radius:16px;overflow:hidden;color:#fff;text-decoration:none;background:#101820 url("assets/chinese-cinema-bg.jpg") center 48%/cover no-repeat;box-shadow:0 10px 26px rgba(0,0,0,.28)}
.cinema-card::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,rgba(3,12,23,.86) 0%,rgba(3,14,27,.67) 48%,rgba(3,12,23,.16) 100%)}
.cinema-content{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-shadow:0 1px 5px #000b}
.cinema-content strong{font-size:18px;color:#fff2ca;letter-spacing:.02em}
.cinema-content>span{font-size:12px;font-weight:600}
.cinema-content small{padding:3px 8px;border:1px solid rgba(255,230,175,.48);border-radius:20px;color:#ffe6aa;font-size:9px;letter-spacing:.08em}
.cinema-link{align-self:flex-end;flex:none;padding:8px 10px;border:1px solid rgba(255,231,171,.58);border-radius:10px;background:rgba(5,12,20,.58);color:#ffe8b3;font-size:10px;font-weight:700;backdrop-filter:blur(4px)}
.cinema-link b{margin-left:3px;font-size:13px}
@media(max-width:360px){.cinema-card{min-height:116px;padding:12px}.cinema-content strong{font-size:16px}.cinema-content>span{font-size:11px}.cinema-link{padding:7px 8px}}
.table-list>.arcade-card[data-game="hulehu"] .arcade-open,.table-list>.arcade-card[data-game="danjiao"] .arcade-open,
.table-list>.arcade-card.dragon .arcade-open{padding:0 8px}
@media(max-width:360px){
  .table-list>.arcade-card[data-game="hulehu"] .arcade-copy b,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy b,
  .table-list>.arcade-card.dragon .arcade-copy b{font-size:16px}
}
.share-page-banner{background:#080a0f}
.share-page-banner img{display:block;width:100%;height:100%;object-fit:cover}
#share-invite{min-height:46px;padding:12px 9px;font-size:12px;line-height:1.35;white-space:normal}
#share-page{padding-top:25px}
.share-page-banner{width:100%;aspect-ratio:1122/1280;margin:0 0 18px;border:1px solid rgba(220,189,105,.42);border-radius:20px;overflow:hidden;box-shadow:0 12px 28px rgba(0,0,0,.28)}
.share-page-banner img{border-radius:inherit}
#share-page .share-invite-card{margin-top:0;margin-bottom:18px;padding:22px 18px 18px}
#share-page .share-invite-card h3{margin:0 0 9px;color:#ffe5aa;font-size:16px;line-height:1.45;text-align:center}
#share-page .share-invite-card p{margin:0 0 15px;text-align:center}
#share-page .share-invite-card .primary-button{font-size:13px}
#share-page .share-top-banner{width:100%;aspect-ratio:2/1;margin:0 0 14px;overflow:hidden;border:1px solid rgba(220,189,105,.42);border-radius:20px;box-shadow:0 12px 28px rgba(0,0,0,.28)}
#share-page .share-top-banner img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
#share-page .share-middle-action{width:100%;min-height:54px;margin:0 0 16px;padding:11px 10px;border:1px solid rgba(255,229,166,.78);border-radius:13px;background:linear-gradient(110deg,#26451f,#101911 70%,#30421f);box-shadow:0 7px 20px rgba(0,0,0,.32),inset 0 1px rgba(255,245,205,.16);color:#fff0c7;line-height:1.4;text-align:center;text-shadow:0 1px 4px #000}
@media(max-width:360px){#share-page .share-middle-action{font-size:11px;padding:10px 8px}}
#share-page .share-middle-action{display:flex;align-items:center;justify-content:flex-start;gap:6px;overflow:hidden;white-space:nowrap;font-size:13px}
.share-static-title{flex:none;color:#fff0c7;font-size:inherit;font-weight:800}
.share-speaker{flex:none;font-size:15px;line-height:1}
.share-ticker-window{display:block;flex:1;min-width:0;overflow:hidden;text-align:left;mask-image:linear-gradient(90deg,transparent 0,#000 5%,#000 95%,transparent 100%)}
.share-ticker-track{display:flex;width:max-content;animation:shareInviteTicker 20s linear infinite}
.share-ticker-track span{flex:none;color:#f5e6bd;font-size:11px;font-weight:600;white-space:nowrap}
@keyframes shareInviteTicker{to{transform:translateX(-50%)}}
@media(max-width:360px){#share-page .share-middle-action{gap:4px;padding:10px 7px;font-size:10px}.share-speaker{font-size:13px}.share-ticker-track span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.share-ticker-track{animation:none}}
.community-ticker-track span{font-size:12px}
.table-list>.arcade-card[data-game="hulehu"] .arcade-copy b,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy b,
.table-list>.arcade-card.dragon .arcade-copy b{font-size:21px}
.table-list>.arcade-card[data-game="hulehu"] .arcade-copy small,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy small,
.table-list>.arcade-card.dragon .arcade-copy small{font-size:12px}
.table-list>.arcade-card[data-game="hulehu"] .arcade-tag,.table-list>.arcade-card[data-game="danjiao"] .arcade-tag,
.table-list>.arcade-card.dragon .arcade-tag{font-size:10px}
.table-list>.arcade-card[data-game="hulehu"] .arcade-open,.table-list>.arcade-card[data-game="danjiao"] .arcade-open,
.table-list>.arcade-card.dragon .arcade-open{font-size:10px;min-width:82px}
@media(max-width:360px){
  .community-ticker-track span{font-size:10px}
  .table-list>.arcade-card[data-game="hulehu"] .arcade-copy b,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy b,
  .table-list>.arcade-card.dragon .arcade-copy b{font-size:18px}
  .table-list>.arcade-card[data-game="hulehu"] .arcade-copy small,.table-list>.arcade-card[data-game="danjiao"] .arcade-copy small,
  .table-list>.arcade-card.dragon .arcade-copy small{font-size:10px}
  .table-list>.arcade-card[data-game="hulehu"] .arcade-tag,.table-list>.arcade-card[data-game="danjiao"] .arcade-tag,
  .table-list>.arcade-card.dragon .arcade-tag{font-size:9px}
  .table-list>.arcade-card[data-game="hulehu"] .arcade-open,.table-list>.arcade-card[data-game="danjiao"] .arcade-open,
  .table-list>.arcade-card.dragon .arcade-open{font-size:9px;min-width:76px}
}
/* Make the marquee wider and brighter after removing the caption row. */
.announcement{width:calc(100% + 28px);margin-left:-14px;margin-right:-14px;justify-content:center;border-color:rgba(255,222,126,.42);background:linear-gradient(100deg,rgba(53,39,15,.98),rgba(34,47,25,.96));box-shadow:inset 0 1px rgba(255,242,190,.12),0 0 15px rgba(251,194,84,.12)}
.announcement-title{flex:none;color:#fff0b4;font-size:11px;font-weight:800;white-space:nowrap;text-shadow:0 0 9px rgba(255,220,128,.65)}
.announcement-track span{color:#fff4c9;text-shadow:0 0 10px rgba(255,222,146,.62);font-weight:600}
@media(max-width:380px){.announcement-title{font-size:9px}.announcement{width:calc(100% + 18px);margin-left:-9px;margin-right:-9px;gap:5px}}
/* Keep both page mastheads full-width and align header content with page cards. */
#club-page .club-page-banner{margin-left:-20px;margin-right:-20px}
.hero .announcement{width:auto;margin-left:4px;margin-right:4px}
.hero .hero-filters,.hero .club-values{margin-left:4px;margin-right:4px}
.deposit-page{display:grid;gap:12px}
.deposit-method{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid rgba(169,242,91,.18);border-radius:12px;background:linear-gradient(120deg,#19291c,#121914)}
.deposit-method>span{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#b5ef71;color:#172312;font-size:22px;font-weight:800}
.deposit-method>div{display:grid;gap:3px;flex:1;min-width:0}
.deposit-method b{font-size:12px;color:#eef8e9}
.deposit-method small,.deposit-address small{font-size:9px;color:#929e91}
.deposit-method>strong{font-size:9px;color:#c7ed9d;white-space:nowrap}
.deposit-address{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:#101511}
.deposit-address>div{display:grid;gap:5px;min-width:0}
.deposit-address code{overflow-wrap:anywhere;color:#dce9d7;font:9px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}
.deposit-address button,.deposit-orders-heading button{flex:none;padding:7px 9px;border:1px solid rgba(169,242,91,.24);border-radius:8px;background:rgba(169,242,91,.08);color:#c5f291;font:inherit;font-size:9px}
.deposit-form{display:grid;gap:9px;padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:linear-gradient(145deg,#151c16,#101511)}
.deposit-form .field{display:grid;gap:6px;color:#cfddcb;font-size:10px;font-weight:600}
.deposit-form input{width:100%;padding:10px;border:1px solid rgba(163,184,167,.2);border-radius:8px;background:#0c110d;color:#eef8e9;font:inherit;font-size:13px}
.deposit-quick-amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.deposit-quick-amounts button{padding:8px 4px;border:1px solid rgba(255,255,255,.1);border-radius:7px;background:#1a211b;color:#cbd7c8;font:inherit;font-size:10px}
.deposit-quick-amounts button:disabled,.deposit-form .primary-button:disabled{opacity:.45;cursor:not-allowed}
.deposit-form .primary-button{min-height:38px;background:linear-gradient(110deg,#d3ff89,#9fe260);color:#10210d}
.deposit-notice,.deposit-warning{display:grid;gap:4px;margin:0;padding:9px 10px;border:1px solid rgba(216,185,105,.17);border-radius:9px;background:rgba(47,40,23,.36);color:#c5c0a9;font-size:9px;line-height:1.55}
.deposit-notice b{color:#ead69b}
.deposit-notice span{color:#b9b5a2}
.deposit-notice.unavailable{border-color:rgba(235,157,92,.22);background:rgba(69,40,24,.23)}
.deposit-notice.unavailable b{color:#f0b77e}
.deposit-warning{display:block;border-color:rgba(240,126,102,.18);background:rgba(56,29,24,.3);color:#d3a69a}
.deposit-orders-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.deposit-orders-heading>b{color:#e0eadc;font-size:10px}
.deposit-orders{display:grid;gap:7px}
.deposit-order{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:#121814}
.deposit-order>div:first-child{display:grid;gap:4px;min-width:0}
.deposit-order b{font-size:11px;color:#eef5e9}
.deposit-order small{color:#8c998c;font-size:8px}
.deposit-order-result{display:grid;gap:3px;text-align:right}
.deposit-order-result strong{color:#bdf18f;font-size:9px}
.deposit-order-result a{color:#a9d9f1;font-size:8px;text-decoration:none}
.deposit-empty{margin:0;color:#899488;font-size:9px}
.payment-lock-section{margin-top:12px}
.payment-lock-section .field{display:grid;gap:6px}
.deposit-form input:invalid{border-color:rgba(240,126,102,.5)}
.deposit-notice .primary-button{justify-self:start;margin-top:5px}
.room-settings-trigger{width:100%;padding:10px 12px;border:1px solid #304434;border-radius:10px;background:#121a14;color:#c8edaa;text-align:left;font:inherit;font-size:12px}
.room-settings-overlay{position:fixed;z-index:20;inset:0;background:rgba(0,0,0,.64);color:#f3f6f3}
.room-settings-overlay[hidden]{display:none}
.room-settings-overlay:not([hidden]){display:block}
.room-settings-panel{height:100%;overflow-y:auto;padding:0 0 18px;background:#090b0a;box-shadow:12px 0 32px rgba(0,0,0,.3);border-right:1px solid rgba(255,255,255,.1)}
.room-settings-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 18px;border-bottom:1px solid rgba(255,255,255,.09);font-size:16px}
.room-settings-heading button{width:30px;height:30px;border:0;border-radius:50%;background:#252925;color:#fff;font-size:20px}
.room-settings-item{display:flex;align-items:center;gap:12px;width:100%;min-height:49px;padding:10px 16px;border:0;border-bottom:1px solid rgba(255,255,255,.055);background:transparent;color:#f0f2ee;text-align:left;font:inherit;font-size:13px}
.room-settings-item>span{width:22px;color:#b1cbab;text-align:center;font-size:17px}
.room-settings-item>b{flex:1;font-weight:500}
.room-settings-item>i{min-width:18px;color:#a8e961;text-align:right;font-style:normal;font-size:17px}
.room-settings-item[aria-pressed="true"]>i{color:#a8e961}
.room-settings-label{padding:15px 16px 5px;color:#869087;font-size:10px}
.room-settings-options{display:flex;gap:8px;padding:9px 14px 13px}
.room-settings-options button{flex:1;min-height:37px;border:1px solid rgba(255,255,255,.11);border-radius:8px;background:#171c18;color:#cbd3c9;font:inherit;font-size:11px}
.room-settings-options button[aria-pressed="true"]{border-color:#8fc85d;background:#21311d;color:#c9f296}
.room-settings-back{margin:9px 0 7px;padding:8px 10px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#171c18;color:#c9f296;font:inherit;font-size:11px}
.room-settings-overlay:has(.rule-tabs) .hand-list{overflow:auto}
.room-settings-overlay .rule-intro{color:#aab5aa}
.room-settings-exit{display:block;width:calc(100% - 28px);margin:17px 14px;padding:12px;border:1px solid rgba(240,126,102,.24);border-radius:9px;background:rgba(74,34,29,.34);color:#f0a49a;text-align:left;font:inherit;font-size:12px}
.room-info-list p{margin:0;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.room-card-hints{margin:10px 0;padding:10px;border:1px solid rgba(169,242,91,.15);border-radius:9px;background:#111813}
.room-card-hints summary{color:#c9f296;font-size:11px;cursor:pointer}
.room-card-hints p{color:#b5c0b4;font-size:10px!important;line-height:1.8!important}
.quick-raise-row{display:flex;gap:7px;margin:8px 0}
.quick-raise-row button{flex:1;padding:9px 5px;border:1px solid #354a35;border-radius:8px;background:#182219;color:#c9f296;font:inherit;font-size:10px}
#modal.room-theme-dark .modal-body{background:#090b0a;color:#f1f1ed}
#modal.room-theme-dark .room-settings-trigger,#modal.room-theme-dark .choice-row{background:#101211;border-color:#343936}
@media(max-width:380px){.deposit-method{gap:7px;padding:9px}.deposit-method>strong{font-size:8px}.deposit-address button{padding:6px}.deposit-address code{font-size:8px}}
/* 牌局信息 / 扑克规则 / 保险规则 面板 */
.room-info-kv{display:flex;flex-direction:column}
.info-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.07);font-size:12px}
.info-row>span{display:flex;align-items:center;gap:6px;color:#9aa69b;min-width:0}
.info-row>b{display:flex;align-items:center;gap:6px;color:#f3f5f1;font-weight:500;text-align:right;white-space:nowrap}
.info-help{width:15px;height:15px;border:0;border-radius:50%;background:#2a302b;color:#b9c4b9;font:inherit;font-size:9px;font-weight:700;line-height:15px;padding:0;cursor:pointer}
.copy-id{width:20px;height:20px;border:1px solid rgba(96,165,250,.5);border-radius:5px;background:rgba(37,99,235,.22);color:#9cc5ff;font-size:12px;padding:0;cursor:pointer}
.info-link{border:0;background:transparent;color:#a8e961;font:inherit;font-size:12px;padding:0;cursor:pointer}
.tutorial h4{margin:14px 0 6px;font-size:13px;color:#f0f2ee}
.tutorial p{margin:0 0 6px;color:#aab5aa;font-size:11px;line-height:1.7}
.tutorial-table{position:relative;margin:12px 0 6px;padding:14px 10px;border-radius:120px/70px;background:radial-gradient(ellipse at center,#1f6b43 0%,#15523a 60%,#0f3d2d 100%);border:6px solid #2f3b32;box-shadow:inset 0 0 24px #0006}
.tutorial-player{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
.tutorial-player.top{align-items:flex-start}
.tutorial-hole{display:flex;align-items:center;gap:6px}
.tutorial-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#0a1f15;border:2px solid #f4d35e;font-size:18px}
.tutorial-best{display:flex;flex-direction:column;align-items:center;gap:3px;position:relative}
.tutorial-best small{color:#f4d35e;font-size:10px;font-weight:700}
.tutorial-best .playing-card{box-shadow:0 0 0 2px #f4d35e,0 3px 7px #0008}
.tutorial-win{color:#f4d35e;font-size:12px;font-weight:900;letter-spacing:1px;text-shadow:0 1px 2px #000}
.tutorial-board{display:flex;flex-direction:column;align-items:center;gap:4px;margin:12px 0}
.tutorial-board small{color:#e6f1e6;font-size:10px}
.tutorial-board .playing-card{box-shadow:0 0 0 2px #f4d35e,0 3px 7px #0008}
.tutorial .hand-cards{display:flex;gap:3px}
.playing-card.mini{width:26px;height:37px;border-radius:5px}
.playing-card.mini b{font-size:8px}
.playing-card.mini i{font-size:12px}
.payout-table{width:100%;border-collapse:collapse;margin:10px 0 8px;font-size:12px}
.payout-table th{padding:9px 6px;color:#9aa69b;font-weight:500;background:#1a2a1d;border-bottom:1px solid rgba(255,255,255,.08)}
.payout-table td{padding:9px 6px;text-align:center;border-bottom:1px solid rgba(255,255,255,.07);color:#e6ebe4}
.payout-table td b{color:#f4d35e;font-weight:700}
.insurance-rules{margin:10px 0;padding-left:18px;color:#c3cdc3;font-size:11.5px;line-height:1.75}
.insurance-rules li{margin-bottom:6px}
.rule-note{margin:6px 0 0;color:#8d9990;font-size:10.5px;line-height:1.6}
.room-settings-overlay .rule-tabs{margin:8px 0 10px}
/* 保险 / 延迟看牌 */
.insurance-panel{margin:10px 0;padding:12px;border:1px solid rgba(244,211,94,.35);border-radius:10px;background:linear-gradient(135deg,rgba(60,48,10,.55),rgba(20,30,20,.7))}
.insurance-panel strong{display:block;color:#f4d35e;font-size:13px}
.insurance-panel p,.insurance-panel small{color:#d7dccd;font-size:11px;line-height:1.6}
.insurance-timer{display:inline-block;margin:4px 0 6px;padding:2px 8px;border-radius:999px;background:rgba(244,211,94,.18);color:#f4d35e;font-size:10px;font-weight:700}
.insurance-offer{margin:8px 0;padding:9px;border-radius:8px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.08)}
.insurance-offer-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline;font-size:11px;color:#e8ecdf}
.insurance-offer-head span{color:#f4d35e;font-weight:700}
.insurance-offer label{display:block;margin-top:6px;font-size:10.5px;color:#aab5aa}
.insurance-offer input{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid rgba(244,211,94,.4);border-radius:7px;background:#0c120e;color:#fff;font:inherit;font-size:14px}
.insurance-offer output{color:#f4d35e;font-weight:700}
.insurance-result{margin:6px 0 0;padding-left:16px;color:#f4d35e;font-size:11px;line-height:1.7}
.peek-cards{display:flex;flex-direction:column;align-items:flex-start;gap:5px;border:0;background:transparent;padding:0;cursor:pointer}
.peek-cards small{color:#a8e961;font-size:10px}
.playing-card.back{background:repeating-linear-gradient(45deg,#1d4a7a 0 4px,#163a60 4px 8px);border:2px solid #e8eef5;color:transparent}
.peek-cards .playing-card.back{display:inline-block;margin-right:4px}
.field-check{display:flex;align-items:center;gap:8px;flex-direction:row!important;font-size:12px}
.field-check input{width:18px;height:18px;accent-color:#a8e961}
/* 快捷喊话 / 陪练 */
.quick-chat{margin:12px 0 4px;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(0,0,0,.25)}
.quick-chat-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.quick-chat-row::-webkit-scrollbar{display:none}
.quick-chat-row.phrases{margin-top:6px}
.quick-emoji{flex:none;width:38px;height:38px;border:1px solid rgba(255,255,255,.1);border-radius:50%;background:#16211a;font-size:20px;line-height:1;cursor:pointer}
.quick-phrase{flex:none;padding:7px 11px;border:1px solid rgba(169,242,91,.25);border-radius:999px;background:#17251a;color:#d8f1c4;font:inherit;font-size:11px;white-space:nowrap;cursor:pointer}
.quick-emoji:active,.quick-phrase:active{transform:scale(.95)}
.chat-log{margin:8px 0 0;padding:0;list-style:none;color:#9aa69b;font-size:10.5px;line-height:1.6}
.chat-log b{color:#c9f296;font-weight:600}
.rank{position:relative}
.rank.has-bubble{padding-top:22px}
.chat-bubble{position:absolute;left:0;top:-2px;max-width:85%;padding:4px 10px;border-radius:12px 12px 12px 2px;background:#f4d35e;color:#1a1a0a;font-size:11px;font-weight:600;box-shadow:0 2px 8px #0007;animation:bubble-pop .18s ease-out}
.chat-bubble.emoji{font-size:18px;padding:2px 8px;background:#fff}
@keyframes bubble-pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.practice-note{margin:8px 0;padding:9px 11px;border:1px dashed rgba(96,165,250,.45);border-radius:9px;background:rgba(37,99,235,.12);color:#cfe1ff;font-size:11px;line-height:1.6}
.practice-card .tag{color:#9cc5ff}
.practice-card .buyin b{font-size:16px}
/* ===== 全屏牌桌 ===== */
#modal.table-mode{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;background:#0a3b2a}
#modal.table-mode .modal-head,#modal.table-mode>.close-action{display:none}
#modal.table-mode .modal-body{padding:0;max-height:100dvh;height:100dvh;overflow:hidden;background:transparent}
.pt-root{position:relative;display:flex;flex-direction:column;height:100dvh;background:radial-gradient(ellipse at 50% 42%,#1f8a5e 0%,#157a52 35%,#0c5a3c 70%,#083f2b 100%);color:#eaf5ee;overflow:hidden}
.pt-root.dark{background:radial-gradient(ellipse at 50% 42%,#2a2f2c 0%,#1d201e 45%,#0f1210 100%)}
.pt-top{display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top,0px) + 10px) 12px 6px;z-index:3}
.pt-back{padding:7px 12px;border:0;border-radius:10px;background:rgba(0,0,0,.35);color:#fff;font:inherit;font-size:13px}
.pt-title{flex:1;min-width:0;text-align:center;line-height:1.2}
.pt-title b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-title small{font-size:10px;color:rgba(255,255,255,.7)}
.pt-menu{width:38px;height:34px;border:0;border-radius:10px;background:rgba(0,0,0,.35);color:#fff;font-size:18px}
.pt-badges{position:absolute;right:12px;display:flex;flex-direction:column;gap:5px;align-items:flex-end;z-index:3}
.pt-badge{padding:3px 8px;border-radius:999px;background:rgba(0,0,0,.3);color:#9df0b5;font-size:10px}
.pt-badge.alert{background:rgba(180,40,40,.6);color:#ffd9d9}
.pt-felt{position:relative;flex:1;min-height:0;margin:6px 10px 4px}
.pt-rail{position:absolute;border-radius:50%/42%}
.pt-center{position:absolute;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none}
.pt-info{color:rgba(255,255,255,.72)}
.pt-info .pt-waiting{color:#f4d35e;font-size:11px}
.pt-pot{color:#fff}
.pt-pot b{color:#f4d35e;font-size:16px}
.pt-pot small{display:block;font-size:10px;color:rgba(255,255,255,.7)}
.pt-board .playing-card{width:40px;height:56px;border-radius:6px}
.pt-board-empty{color:rgba(255,255,255,.55);font-size:11px}
.pt-street{font-size:10px;color:rgba(255,255,255,.65)}
.pt-seat{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.pt-seat.empty .pt-sit{width:60px;height:60px;border:2px dashed rgba(255,255,255,.3);border-radius:50%;background:rgba(0,0,0,.12);color:rgba(255,255,255,.6);font:inherit;font-size:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}
.pt-seat.empty .pt-sit span{font-size:12px;line-height:1}
.pt-seat.empty .pt-sit:disabled{opacity:.45}
.pt-avatar{position:relative;border-radius:50%;display:grid;place-items:center;border:2px solid rgba(255,255,255,.35);color:#fff;font-weight:700}
.pt-seat.me .pt-avatar{border-color:#f4d35e}
.pt-seat.to-act .pt-avatar{box-shadow:0 0 0 3px rgba(169,238,92,.35),0 0 18px rgba(169,238,92,.6);animation:pt-pulse 1.2s infinite alternate}
@keyframes pt-pulse{to{box-shadow:0 0 0 5px rgba(169,238,92,.15),0 0 26px rgba(169,238,92,.8)}}
.pt-seat.folded{opacity:.5}
.pt-dealer,.pt-straddle{position:absolute;right:-6px;bottom:-4px;width:18px;height:18px;border-radius:50%;background:#fff;color:#111;font-size:10px;font-weight:900;font-style:normal;display:grid;place-items:center;box-shadow:0 1px 4px #0008}
.pt-straddle{right:auto;left:-6px;background:#f4d35e}
.pt-name{max-width:76px;font-size:10px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(0,0,0,.4);padding:1px 6px;border-radius:999px}
.pt-stack{font-size:11px;font-weight:700;color:#f4d35e}
.pt-bet{position:absolute;top:-16px;left:50%;transform:translateX(-50%);padding:2px 7px;border-radius:999px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;white-space:nowrap}
.pt-action,.pt-status{position:absolute;top:-30px;left:50%;transform:translateX(-50%);padding:2px 8px;border-radius:999px;background:#a9ee5c;color:#10210d;font-size:10px;font-weight:700;white-space:nowrap}
.pt-status{background:rgba(0,0,0,.5);color:#ddd;font-weight:500}
.pt-cards{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:2px}
.pt-cards .playing-card{width:30px;height:42px;border-radius:5px}
.pt-cards .playing-card b{font-size:10px}
.pt-cards .playing-card i{font-size:14px}
.pt-cards.backs .playing-card.back{width:26px;height:36px;border-width:1px}
.pt-seat.me .pt-cards{margin-bottom:-4px}
.pt-seat.me .pt-cards .playing-card{border-radius:7px}
.pt-seat.me .pt-cards .playing-card b{font-size:15px}
.pt-seat.me .pt-cards .playing-card i{font-size:22px}
.pt-seat.me .pt-action,.pt-seat.me .pt-status{top:auto;left:auto;transform:none}
.pt-seat.me .pt-bet{top:auto;left:auto;transform:none}
.pt-seat.top .pt-action,.pt-seat.top .pt-status{top:auto;bottom:-16px}
.pt-seat.top .pt-bet{top:auto;bottom:-32px}
.pt-peek{border:0;background:transparent;padding:0;display:flex;gap:2px}
.pt-bubble{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);top:auto;margin-bottom:4px;border-radius:12px;z-index:4;max-width:150px;white-space:nowrap}
.pt-result{margin:0 12px 4px;padding:6px 10px;border-radius:8px;background:rgba(0,0,0,.35);color:#f4d35e;font-size:11px;line-height:1.5;text-align:center}
.pt-root .insurance-panel{margin:4px 12px}
.pt-root .practice-note{margin:4px 12px}
.pt-bottom{display:flex;align-items:flex-end;gap:8px;padding:6px 10px calc(env(safe-area-inset-bottom,0px) + 10px);background:linear-gradient(180deg,transparent,rgba(0,0,0,.45))}
.pt-actions{flex:1;min-width:0}
.pt-actions p{margin:4px 0;color:rgba(255,255,255,.75);font-size:11px;text-align:center}
.pt-actions .choice-row{margin:3px 0;padding:7px 10px;background:rgba(0,0,0,.4);border-color:rgba(255,255,255,.14);color:#fff}
.pt-actions .primary-button{margin:0;min-height:40px}
.pt-actions .choice-row .choice-row{width:auto;flex:1}
.pt-actions .quick-raise-row{margin:3px 0}
.pt-actions .quick-raise-row button{padding:7px 4px;background:rgba(0,0,0,.4);border-color:rgba(255,255,255,.2);color:#f4d35e}
.pt-actions label{color:#fff;font-size:11px}
.pt-actions input[type=number]{width:80px;padding:6px;border-radius:7px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.4);color:#fff}
.pt-tool{color:#fff}
.pt-sheet{position:absolute;left:0;right:0;bottom:0;max-height:62dvh;overflow:auto;padding:12px 14px calc(env(safe-area-inset-bottom,0px) + 14px);border-radius:18px 18px 0 0;background:#0e1510;color:#eef3ea;box-shadow:0 -12px 40px #000a;z-index:6;font-size:12px}
.pt-sheet[hidden]{display:none}
.pt-sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px}
.pt-sheet-head button{width:30px;height:30px;border:0;border-radius:50%;background:#252925;color:#fff;font-size:18px}
.pt-sheet .quick-chat{margin:0;border:0;background:transparent;padding:0}
.pt-sheet p{font-size:11px;line-height:1.6;color:#aab5aa}
.pt-root .room-settings-trigger{display:none}
@media(max-height:700px){.pt-avatar{width:44px;height:44px;font-size:17px}.pt-seat{width:66px}.pt-board .playing-card{width:34px;height:48px}}
/* ===== 行动区 2-3-3 ===== */
.pt-action-grid{display:flex;flex-direction:column;gap:6px}
.pt-row{display:grid;gap:6px}
.pt-row.two{grid-template-columns:1.4fr 1fr}
.pt-row.three{grid-template-columns:1fr 1fr 1fr}
.pt-btn{min-height:46px;border:0;border-radius:12px;font:inherit;font-size:14px;font-weight:800;color:#fff;box-shadow:0 4px 0 rgba(0,0,0,.35),0 6px 14px rgba(0,0,0,.35);letter-spacing:.02em}
.pt-btn:active{transform:translateY(2px);box-shadow:0 2px 0 rgba(0,0,0,.35)}
.pt-btn.confirm{background:linear-gradient(180deg,#ffd666,#f0a500);color:#3a2400}
.pt-btn.confirm.idle{background:linear-gradient(180deg,#7a6a3a,#5a4b22);color:rgba(255,255,255,.55);box-shadow:none}
.pt-btn.call{background:linear-gradient(180deg,#5be078,#1fa84a)}
.pt-btn.raise{background:linear-gradient(180deg,#5ab0ff,#1e6fd9)}
.pt-btn.fold{background:linear-gradient(180deg,#ff7b6b,#d9382a)}
.pt-btn.allin{background:linear-gradient(180deg,#c48cff,#7a3be0)}
.pt-amount{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:46px;border-radius:12px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:15px;font-weight:800;line-height:1.1}
.pt-amount small{font-size:9px;font-weight:500;color:rgba(255,255,255,.6)}
.pt-amount.armed{border-color:#ffd666;color:#ffd666}
.pt-timer{position:relative;height:14px;border-radius:7px;background:rgba(0,0,0,.45);overflow:hidden}
.pt-timer i{display:block;height:100%;background:linear-gradient(90deg,#5be078,#f4d35e);transition:width .25s linear}
.pt-timer.urgent i{background:linear-gradient(90deg,#ff7b6b,#d9382a)}
.pt-timer span{position:absolute;right:8px;top:0;line-height:14px;font-size:10px;color:#fff;font-weight:700}
.pt-chip{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;border-radius:999px;color:#ffd666;font-size:12px;font-weight:800;box-shadow:0 2px 6px #0008;z-index:2;white-space:nowrap}
.pt-chip i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 40% 40%,#ffe28a,#d9a300 70%,#8a6500);border:2px dashed #fff3}
.pt-seat.to-act .pt-avatar{background:conic-gradient(#a9ee5c var(--ring,100%),rgba(0,0,0,.35) 0) border-box;border-color:transparent}
.pt-seat.to-act .pt-avatar::before{content:"";position:absolute;inset:3px;border-radius:50%;background:linear-gradient(145deg,#2b4a3a,#102a1d);z-index:-1}
.pt-seat.to-act .pt-avatar{position:relative;z-index:0}
/* 牌桌设置抽屉：收窄 + 子页面统一内边距 */
.room-settings-panel{width:min(300px,78vw)}
.room-settings-panel>.room-settings-back{display:inline-block;margin:12px 14px 4px}
.room-settings-panel>h3{margin:6px 14px 10px;font-size:16px;font-weight:700}
.room-settings-panel>.room-info-kv,.room-settings-panel>.rule-tabs,.room-settings-panel>.tutorial,.room-settings-panel>.payout-table,.room-settings-panel>.insurance-rules,.room-settings-panel>.rule-note,.room-settings-panel>.hand-list,.room-settings-panel>.rule-intro,.room-settings-panel>p,.room-settings-panel>.room-info-list{margin-left:14px;margin-right:14px}
.room-settings-panel>.payout-table{width:calc(100% - 28px)}
.room-settings-panel>.insurance-rules{padding-left:16px;margin-left:14px}
.room-settings-panel .rule-tabs{display:flex;gap:6px}
.room-settings-panel .rule-tabs button{flex:1;padding:8px 6px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#171c18;color:#cbd3c9;font:inherit;font-size:12px}
.room-settings-panel .rule-tabs button.selected{background:#21311d;border-color:#8fc85d;color:#c9f296}
.room-settings-panel .info-row{font-size:11.5px;padding:10px 0}
.room-settings-panel .info-row>b{max-width:58%;white-space:normal;text-align:right}
.room-settings-panel .tutorial-table{margin:10px 0 6px;padding:12px 6px}
.room-settings-panel .hand-row{padding:6px}
.room-settings-overlay:has(.rule-tabs) .hand-list{max-height:none}
/* ===== 战绩 / 手牌回顾 / 抽屉用户区 / 动效 ===== */
.pt-sheet.log{max-height:78dvh;padding-top:10px}
.log-tabs{margin:0 0 10px}
.log-tabs button{flex:1;padding:8px 4px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#171c18;color:#cbd3c9;font:inherit;font-size:12px}
.log-tabs button.selected{background:#21311d;border-color:#8fc85d;color:#c9f296}
.session-head{display:flex;justify-content:space-between;color:#cbd3c9;font-size:12px;margin:0 0 8px}
.session-table{width:100%;border-collapse:collapse;font-size:12px}
.session-table th{padding:8px 6px;text-align:right;color:#8b958b;font-weight:500;background:#11170f;border-bottom:1px solid rgba(255,255,255,.08)}
.session-table th:first-child,.session-table td.name{text-align:left}
.session-table td{padding:10px 6px;text-align:right;border-bottom:1px solid rgba(255,255,255,.06);color:#e9f1e9}
.session-table tr.left td{color:#7f897d}
.session-table td.pos,.pos{color:#8fe64f}
.session-table td.neg,.neg{color:#ff7b6b}
.session-foot{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin-top:10px}
.session-foot div{display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:8px;background:#11170f;font-size:11px}
.session-foot span{color:#8b958b}
.session-foot b{color:#e9f1e9}
.session-foot small{color:#8b958b;font-weight:400}
.review-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.review-head b{font-size:16px;display:block}
.review-head small{color:#8b958b;font-size:10px}
.review-id{text-align:right}
.review-id span{display:block;color:#8b958b;font-size:11px}
.review-blinds{display:flex;justify-content:space-between;padding:8px 10px;border-radius:8px;background:#11170f;margin-bottom:8px;font-size:12px}
.review-blinds small{display:block;color:#8b958b;font-size:10px}
.review-blinds .right{text-align:right}
.review-player{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.review-row{display:flex;align-items:center;gap:8px;font-size:12px}
.review-row .name{flex:1;color:#e9f1e9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.review-row .pos{min-width:44px;padding:2px 6px;border-radius:4px;background:#1e3a5f;color:#9cc5ff;font-size:10px;font-weight:700;text-align:center}
.review-row.cards{margin-top:6px;justify-content:space-between}
.review-row.cards .hand-cards{gap:2px}
.review-row.cards .playing-card{width:26px;height:36px;border-radius:4px}
.review-row.cards .playing-card b{font-size:9px}
.review-row.cards .playing-card i{font-size:12px}
.review-row.cards .board{opacity:.85}
.review-row .tag{padding:2px 8px;border-radius:4px;background:#1b2a1e;color:#8fc85d;font-size:10px;white-space:nowrap}
.review-row .tag.won{background:#2d2a12;color:#f4d35e;font-weight:700}
.review-row .tag.folded{background:#1c2320;color:#7f897d}
.review-street{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.review-street-head{display:flex;align-items:center;gap:10px;font-size:13px;margin-bottom:6px}
.review-street-head b{min-width:44px}
.review-street-head span{margin-left:auto;font-weight:700;color:#e9f1e9}
.review-street-head .playing-card{width:26px;height:36px;border-radius:4px}
.review-street-head .playing-card b{font-size:9px}
.review-street-head .playing-card i{font-size:12px}
.review-row.action{padding:4px 0}
.review-row.action b{min-width:90px;text-align:right;color:#e9f1e9;font-weight:600}
.act{min-width:40px;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:700;text-align:center;color:#fff}
.act.fold{background:#1e4a4a;color:#9fe0d8}
.act.check{background:#1f6b43;color:#bff5c9}
.act.call{background:#1f8a3c}
.act.bet{background:#b8780c}
.act.allin{background:#7a3be0}
.act.blind{background:#2c3b2e;color:#c9d6c4}
.review-tabs{display:flex;margin-top:10px;border-top:1px solid rgba(255,255,255,.08)}
.review-tabs button{flex:1;padding:12px 0;border:0;border-bottom:2px solid transparent;background:transparent;color:#8b958b;font:inherit;font-size:14px}
.review-tabs button.selected{color:#a9ee5c;border-bottom-color:#a9ee5c}
.review-nav{display:flex;align-items:center;justify-content:space-between;padding:8px 4px 0}
.review-nav button{width:40px;height:40px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:transparent;color:#fff;font-size:14px}
.review-nav button:disabled{opacity:.3}
.review-nav span{font-size:15px}
.review-nav b{color:#a9ee5c}
.room-settings-user{display:flex;align-items:center;gap:10px;padding:14px 14px 12px;border-bottom:1px solid rgba(255,255,255,.09)}
.room-settings-avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f4d35e,#b8780c);color:#1a1200;font-size:20px;font-weight:800}
.room-settings-user-copy{flex:1;min-width:0}
.room-settings-user-copy b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-settings-user-copy small{color:#8b958b;font-size:11px}
.room-settings-user button{width:30px;height:30px;border:0;border-radius:50%;background:#252925;color:#fff;font-size:20px}
.room-settings-panel.with-user{display:flex;flex-direction:column}
.room-settings-wallet{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px calc(env(safe-area-inset-bottom,0px) + 14px);border-top:1px solid rgba(255,255,255,.09);font-size:13px}
.room-settings-wallet button{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 12px;border:1px solid rgba(169,242,91,.3);border-radius:999px;background:#0f1a12;color:#f4d35e;font:inherit;font-weight:700}
.room-settings-wallet button i{width:24px;height:24px;border-radius:50%;background:#a9ee5c;color:#10210d;font-style:normal;display:grid;place-items:center;font-weight:900}
.pt-equity{position:absolute;right:-30px;top:-6px;padding:3px 7px;border-radius:8px;background:rgba(0,0,0,.6);color:#fff;font-size:11px;font-weight:800;line-height:1.1;text-align:center;z-index:3}
.pt-equity.lead{background:#a9ee5c;color:#10210d}
.pt-equity small{display:block;font-size:9px;font-weight:600;opacity:.85}
.pt-seat.me .pt-equity{top:auto}
.pt-pos{position:absolute;left:-10px;top:-6px;padding:1px 5px;border-radius:4px;background:#1e3a5f;color:#9cc5ff;font-size:9px;font-weight:800;font-style:normal;z-index:3}
.pt-seat.winner .pt-avatar{border-color:#f4d35e;box-shadow:0 0 0 3px rgba(244,211,94,.4),0 0 24px rgba(244,211,94,.9);animation:pt-win 1s infinite alternate}
@keyframes pt-win{to{box-shadow:0 0 0 6px rgba(244,211,94,.15),0 0 34px rgba(244,211,94,1)}}
.pt-win{position:absolute;top:-28px;left:50%;transform:translateX(-50%);padding:3px 9px;border-radius:999px;background:#f4d35e;color:#1a1200;font-size:12px;font-weight:900;animation:pt-win-rise 1.2s ease-out both;z-index:4}
.pt-seat.me .pt-win{top:auto;bottom:100%}
@keyframes pt-win-rise{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.pt-insuring{margin-top:6px;display:inline-block;padding:4px 10px;border-radius:999px;background:rgba(0,0,0,.5);color:#f4d35e;font-size:11px;animation:pt-blink 1.2s infinite alternate}
@keyframes pt-blink{to{opacity:.55}}
.pt-chip.pop{animation:chip-pop .35s ease-out}
@keyframes chip-pop{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}60%{transform:translate(-50%,-50%) scale(1.15)}100%{transform:translate(-50%,-50%) scale(1);opacity:1}}
.pt-chip.to-pot{animation:chip-to-pot .5s ease-in forwards}
@keyframes chip-to-pot{to{left:50%;top:40%;opacity:0;transform:translate(-50%,-50%) scale(.6)}}
.pt-board .playing-card.card-dealing,.pt-seat .playing-card.card-dealing{animation:deal-card .48s cubic-bezier(.16,.78,.25,1) both}
.review-street-head .hand-cards,.review-row.cards .hand-cards{flex:none;display:inline-flex}
.pt-seat.top .pt-equity{top:auto;bottom:-16px;right:-28px}
/* ===== 大厅 v2：筛选行、竞技场卡片居中、娱乐区按钮统一 ===== */
.filter-row.hero-filters .filter-scroller{overflow-x:auto;justify-content:flex-start}
.filter-row.hero-filters .filter,.filter-row.hero-filters .rules-shortcut{flex:none;white-space:nowrap}
.filter-row.hero-filters .reset-filters{flex:none;width:34px;height:34px;margin-left:2px}
.arena-card{padding:14px 14px 12px;text-align:center}
.arena-card .table-top{margin-bottom:8px}
.arena-title{margin:2px 0 6px;font-size:17px;font-weight:800;letter-spacing:.02em;text-align:center}
.arena-status{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px}
.arena-status .live-dot{font-size:11px}
.arena-status p{margin:0;font-size:13px;color:#d6e0d4}
.arena-status p b{font-size:14px;color:#fff}
.arena-card .table-main{display:flex;align-items:center;justify-content:space-between;gap:10px}
.arena-card .seat-ring{width:70px;height:70px;padding-top:19px;border-width:3px}
.arena-card .seat-ring strong{font-size:22px}
.arena-card .seat-ring small{font-size:11px}
.arena-card .table-info{flex:1;text-align:center}
.arena-card .table-info>small{font-size:11px;line-height:1.5;color:#aab5aa}
.arena-card .buyin{text-align:center}
.arena-card .buyin b{font-size:20px}
.arena-card .buyin small{font-size:10px}
.arena-card .table-bottom{margin-top:10px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px}
.arena-card .room-time,.arena-card .protection-badge,.arena-card .limit-badge{font-size:11px}
.arena-card .join-button{font-size:13px;padding:9px 16px}
.limit-badge.free{background:rgba(96,165,250,.18);color:#9cc5ff;border-color:rgba(96,165,250,.4)}
.practice-card .arena-title{color:#ffd1dc}
.club-games-bottom{margin-top:12px}
.arcade-open{width:auto;height:auto;padding:8px 12px;border-radius:999px;border:1px solid rgba(214,182,106,.45);background:linear-gradient(120deg,rgba(60,48,10,.6),rgba(30,30,20,.7));color:#f4d35e;font:inherit;font-size:12px;font-weight:700;white-space:nowrap}
.arcade-open b{font-weight:900}
.cinema-link{white-space:nowrap}
/* ===== 牌桌 v2：工具列、牌不盖头像、公共牌槽、真实筹码、桌面质感 ===== */
.pt-top{justify-content:center;padding-bottom:2px}
.pt-badges{top:calc(env(safe-area-inset-top,0px) + 46px)}
.pt-tools{display:flex;flex-direction:column;gap:6px;align-self:flex-end}
.pt-tool{width:44px;height:44px;border-radius:12px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.12);font-size:19px}
.pt-rail{inset:7% 3%;border:9px solid #3b2a1a;background:radial-gradient(ellipse at 50% 45%,rgba(255,255,255,.07),transparent 70%),repeating-radial-gradient(circle at 50% 50%,rgba(0,0,0,.035) 0 2px,transparent 2px 5px);box-shadow:inset 0 0 70px rgba(0,0,0,.45),0 0 0 2px #5a4028,0 10px 30px rgba(0,0,0,.5)}
.pt-felt-line{position:absolute;inset:15% 11%;border-radius:50%/42%;border:2px solid rgba(255,255,255,.1);pointer-events:none}
.pt-logo{position:absolute;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.12);font-size:20px;font-weight:900;letter-spacing:.2em;white-space:nowrap;pointer-events:none}
.pt-board{display:flex;justify-content:center;margin:6px 0}
.pt-slot{width:40px;height:56px;border-radius:6px;border:1.5px dashed rgba(255,255,255,.28);background:rgba(0,0,0,.12)}
.pt-cards{bottom:calc(100% - 2px);z-index:2}
.pt-seat.top .pt-cards{bottom:auto;top:calc(100% + 2px)}
.pt-seat.me .pt-cards{position:absolute;left:auto;right:calc(100% - 14px);bottom:6px;transform:none;order:0;margin:0}
.pt-seat.me .pt-cards .playing-card{width:50px;height:70px}
.pt-seat.me .pt-cards .playing-card:first-child{transform:rotate(-6deg);margin-right:-10px}
.pt-seat.me .pt-cards .playing-card:last-child{transform:rotate(6deg)}
.pt-seat.me .pt-action,.pt-seat.me .pt-status{right:-58px;bottom:40px}
.pt-seat.me .pt-bet{right:-54px;bottom:66px}
.pt-seat.me .pt-equity{right:-50px;bottom:72px}
.pt-chip{padding:2px 8px 2px 2px;gap:5px;background:rgba(0,0,0,.45)}
.pt-chip-stack{position:relative;width:22px;height:22px}
.pt-chip-stack i{position:absolute;left:0;width:22px;height:22px;border-radius:50%;border:2px dashed rgba(255,255,255,.75);box-shadow:0 1px 0 rgba(0,0,0,.5);background:radial-gradient(circle at 50% 50%,var(--chip-core) 0 36%,var(--chip-rim) 37% 100%)}
.pt-chip-stack i:nth-child(1){bottom:0}
.pt-chip-stack i:nth-child(2){bottom:3px}
.pt-chip-stack i:nth-child(3){bottom:6px}
.pt-chip-stack i:nth-child(4){bottom:9px}
.pt-chip-stack i:nth-child(5){bottom:12px}
.pt-chip.white{--chip-core:#f3f3f3;--chip-rim:#cfcfcf}
.pt-chip.red{--chip-core:#ff6b6b;--chip-rim:#c62828}
.pt-chip.blue{--chip-core:#5ab0ff;--chip-rim:#1e5fb3}
.pt-chip.black{--chip-core:#555;--chip-rim:#111}
.pt-chip.purple{--chip-core:#c48cff;--chip-rim:#6a2bd0}
.pt-chip b{color:#ffd666;font-size:12px}
.pt-avatar{background:linear-gradient(145deg,#3a5a48,#15301f);border-width:3px;box-shadow:0 6px 14px #000a,inset 0 2px 4px rgba(255,255,255,.15)}
.pt-pot{padding:4px 12px;border-radius:999px;background:rgba(0,0,0,.35);display:inline-block}
/* 竞技场卡片：解除旧的固定高度限制 */
.table-list>.table-card.arena-card{height:auto;min-height:0;overflow:hidden}
.table-list>.table-card.arena-card .table-main{height:auto;gap:10px}
.table-list>.table-card.arena-card .seat-ring{width:70px;height:70px;padding-top:19px;border-width:3px}
.table-list>.table-card.arena-card:after{top:auto;bottom:52px;right:10px;opacity:.5}
.arena-card .buyin{align-items:center;min-width:70px;position:relative;z-index:1}
.arena-card .table-info{position:relative;z-index:1}
.pt-seat.me .pt-pos{left:auto;right:-40px;bottom:16px;top:auto}
.pt-seat.me .pt-pos{display:none}
.pt-seat.me .pt-name::before{content:attr(data-pos) " · ";color:#9cc5ff;font-weight:800}
.pt-seat.me .pt-name:not([data-pos])::before{content:none}
/* 代理中心 */
.agent-card{padding:12px;border:1px solid rgba(214,182,106,.3);border-radius:12px;background:linear-gradient(145deg,rgba(60,48,10,.35),rgba(20,30,20,.6))}
.agent-role{color:#f4d35e;font-weight:700;font-size:13px;margin-bottom:8px}
.agent-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.agent-stats div{text-align:center;padding:8px 4px;border-radius:8px;background:rgba(0,0,0,.3)}
.agent-stats strong{display:block;font-size:16px;color:#fff}
.agent-stats small{font-size:9px;color:#aab5aa}
.agent-link{display:block;font-size:11px;color:#aab5aa}
.agent-link input{display:block;width:100%;margin-top:4px;padding:8px;border:1px solid rgba(255,255,255,.15);border-radius:8px;background:#0c120e;color:#c9f296;font-size:11px}
.agent-table{width:100%;border-collapse:collapse;font-size:11px;margin-top:6px}
.agent-table th{text-align:left;color:#8b958b;font-weight:500;padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.08)}
.agent-table td{padding:7px 4px;border-bottom:1px solid rgba(255,255,255,.06)}
.agent-tag{font-style:normal;padding:1px 5px;border-radius:4px;background:#2d2a12;color:#f4d35e;font-size:9px}
.agent-mini{padding:4px 8px;border:1px solid rgba(169,242,91,.3);border-radius:6px;background:#17251a;color:#c9f296;font:inherit;font-size:10px}
.agent-recent{margin:6px 0 0;padding-left:16px;font-size:11px;color:#c3cdc3;line-height:1.7}
.agent-recent b{color:#8fe64f}
.agent-recent small{display:block;color:#7f897d;font-size:9px}
/* ===== 竞技场卡片 v3：与欢迎横幅同高，三栏 + 底栏 ===== */
.table-list>.table-card.arena-v3{text-align:left;display:flex;flex-direction:column;overflow:hidden}
.table-list>.table-card.arena-v3:after{display:none}
.arena-v3 .arena-body{display:grid;align-items:center;flex:1}
.arena-chip{display:grid;place-items:center}
.arena-chip-ring{position:relative;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%,#1f3b27 0 50%,#d8b45c 52% 62%,#2a4a32 63% 100%);border:3px dashed #ffe9a8;box-shadow:0 4px 12px #000a,inset 0 0 0 2px #0b1a10}
.arena-chip-ring strong{line-height:1;color:#fff;text-shadow:0 1px 2px #000}
.arena-chip-ring small{font-size:10px;color:#ffe9a8}
.arena-center{text-align:center;min-width:0}
.arena-center>small{display:block;color:#f4d35e;letter-spacing:.02em}
.arena-v3 .arena-title{font-weight:800;text-overflow:ellipsis}
.arena-live{display:block;color:#aab5aa;white-space:nowrap}
.arena-live .live-dot{font-size:10px}
.arena-side{display:flex;flex-direction:column;align-items:stretch}
.arena-pill{display:block;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.08);color:#dfe8dc;text-align:center;white-space:nowrap}
.arena-v3 .join-button.arena-join{width:100%;font-weight:800;border-radius:7px;justify-content:center;display:flex}
.arena-foot{margin-top:2px;border-top:1px solid rgba(255,255,255,.08);text-align:center;color:#cfd9cc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.practice-card .arena-chip-ring{background:radial-gradient(circle at 50% 50%,#1f2b3b 0 50%,#9cc5ff 52% 62%,#2a3a4a 63% 100%);border-color:#dbe9ff}
.practice-card .arena-chip-ring small{color:#dbe9ff}
.practice-card .arena-center>small{color:#9cc5ff}
@media(max-width:380px){.arena-v3 .arena-body{grid-template-columns:64px minmax(0,1fr) 104px}.arena-chip-ring{width:62px;height:62px}.arena-chip-ring strong{font-size:19px}.arena-v3 .arena-title{font-size:14px}.arena-foot{font-size:10px}}
.table-list>.table-card.arena-v3{min-height:0;height:129px;padding:8px 9px 6px;gap:4px}
.arena-v3 .arena-body{grid-template-columns:66px minmax(0,1fr) 104px;gap:6px}
.arena-chip-ring{width:62px;height:62px}
.arena-chip-ring strong{font-size:20px}
.arena-v3 .arena-title{line-height:1.15;overflow:hidden}
.arena-center>small{font-size:10px;margin-bottom:1px}
.arena-live{font-size:9.5px}
.arena-side{gap:3px}
.arena-pill{padding:2px 5px;font-size:9.5px;border-radius:6px}
.arena-v3 .join-button.arena-join{padding:4px 4px;font-size:10.5px}
.arena-foot{padding-top:4px;font-size:10.5px}
@media(max-width:380px){.arena-v3 .arena-body{grid-template-columns:58px minmax(0,1fr) 98px}.arena-chip-ring{width:56px;height:56px}.arena-chip-ring strong{font-size:18px}.arena-v3 .arena-title{font-size:13.5px}}
.arena-v3 .arena-title{font-size:13.5px;white-space:nowrap;letter-spacing:-.01em;max-height:none}
/* ===== 竞技场卡片 v4：美女 · VIP · 扑克 · 筹码 模版 ===== */
.table-list>.table-card.arena-v3.arena-vip{background:#0f2a1a url("assets/arena-vip-bg.svg?v=arena-v4") center/cover no-repeat;border-color:rgba(226,184,77,.55);box-shadow:0 10px 24px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,233,164,.05)}
.table-list>.table-card.arena-v3.arena-vip.featured{box-shadow:0 0 22px rgba(226,184,77,.18),0 10px 24px rgba(0,0,0,.35)}
.arena-vip .arena-chip-ring{background:radial-gradient(circle at 50% 50%,#17301f 0 50%,#e2b84d 52% 62%,#1d3a26 63% 100%);border-color:#fff0bf;box-shadow:0 6px 14px #000c,inset 0 0 0 2px #0b1a10,0 0 0 1px rgba(226,184,77,.5)}
.arena-vip .arena-center>small{color:#ffe08a;font-weight:700;text-shadow:0 1px 2px #000}
.arena-vip .arena-live{color:#e9f0e6;font-size:10.5px;text-shadow:0 1px 2px #000}
.arena-vip .arena-live .live-dot{font-size:10.5px;color:#ffd166}
.arena-vip .arena-live .live-dot:first-letter{font-size:inherit}
.arena-vip .arena-live .live-dot:not(.quiet){color:#b8ff6a}
.arena-vip .arena-title{color:#fff;text-shadow:0 1px 3px #000,0 0 12px rgba(226,184,77,.25)}
.arena-vip .arena-title:before{content:'♦️ '}
.arena-v3 .arena-center{display:flex;flex-direction:column;justify-content:center;gap:2px}
.arena-v3 .arena-center>small{margin:0}
.arena-v3 .arena-title{margin:0}
.arena-vip .arena-side{justify-self:end}
.arena-vip .arena-pill{border-color:rgba(226,184,77,.35);color:#f3e7c6;backdrop-filter:blur(2px)}
.arena-vip .join-button.arena-join{background:linear-gradient(100deg,#ffe79a,#e2b84d);color:#2b1a04;box-shadow:0 2px 8px rgba(226,184,77,.35)}
.arena-vip .arena-foot{border-top-color:rgba(226,184,77,.25);color:#f3e7c6;text-shadow:0 1px 2px #000}
.arena-vip .arena-title{font-size:12.5px;letter-spacing:-.02em}
@media(max-width:380px){.arena-vip .arena-body{grid-template-columns:56px minmax(0,1fr) 96px}.arena-vip .arena-side{width:96px}.arena-vip .arena-title{font-size:12px}}
.arena-vip .arena-body{grid-template-columns:62px minmax(0,1fr) 94px;gap:4px}
.arena-vip .arena-side{width:94px}
.arena-vip .arena-pill{padding:2px 3px;font-size:9.5px;background:rgba(5,14,8,.55)}
.arena-vip .arena-center{padding-right:6px}
/* 俱乐部页：竞技场标题加大、居中 */
#games-page .table-card:not(.arena-v3) .table-info h3{font-size:18px;font-weight:800;text-align:center;letter-spacing:-.01em}
#games-page .table-card:not(.arena-v3) .table-info p,#games-page .table-card:not(.arena-v3) .table-info>small{text-align:center;display:block}
#games-page .practice-card .table-info h3{font-size:16px}
@media(max-width:360px){#games-page .table-card:not(.arena-v3) .table-info h3{font-size:16px}}
/* 俱乐部页：底栏文字加大、同一行、时间加背景 */
#games-page .table-card:not(.arena-v3) .table-bottom{justify-content:space-between;min-height:32px;margin-top:6px;padding-top:6px}
#games-page .table-card:not(.arena-v3) .room-time,#games-page .table-card:not(.arena-v3) .protection-badge,#games-page .table-card:not(.arena-v3) .limit-badge{flex:none;display:inline-flex;align-items:center;border-radius:7px;font-weight:600;line-height:1}
#games-page .table-card:not(.arena-v3) .room-time{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#e3ebe2}
#games-page .table-card:not(.arena-v3) .join-button{flex:none;display:inline-flex;align-items:center;border-radius:7px}
@media(max-width:380px){#games-page .table-card:not(.arena-v3) .room-time,#games-page .table-card:not(.arena-v3) .protection-badge,#games-page .table-card:not(.arena-v3) .limit-badge{font-size:10px;padding:0 5px}#games-page .table-card:not(.arena-v3) .join-button{font-size:10.5px;padding:0 8px}}
#games-page .table-card:not(.arena-v3) .table-bottom{font-size:10px}
#games-page .table-card:not(.arena-v3) .room-time,#games-page .table-card:not(.arena-v3) .protection-badge,#games-page .table-card:not(.arena-v3) .limit-badge{height:24px;font-size:10px}
#games-page .table-card:not(.arena-v3) .join-button{height:24px;font-size:10.5px}
#games-page .table-card:not(.arena-v3) .join-button span{font-size:12px;margin-left:2px}
/* 俱乐部页卡片：中栏高度自适应，标题不再顶到状态行 */
#games-page .table-card:not(.arena-v3) .table-main{height:auto;min-height:38px;align-items:center;margin-top:4px}
#games-page .table-card:not(.arena-v3) .table-top{margin-bottom:6px}
#games-page .table-card:not(.arena-v3) .table-info{display:flex;flex-direction:column;justify-content:center;gap:3px}
#games-page .table-card:not(.arena-v3) .table-info h3{margin:0}
#games-page .table-card:not(.arena-v3) .buyin{align-self:center}
#games-page .table-card:not(.arena-v3){height:auto;min-height:0;padding-bottom:10px;overflow:visible}
/* ===== 我的页：海报背景 + 玻璃卡片 ===== */
#profile-page{position:relative;isolation:isolate;padding:230px 16px 28px;background-color:#070504;background-position:center top,center top;background-repeat:no-repeat}
#profile-page>.section-heading:first-child{position:absolute;top:calc(env(safe-area-inset-top) + 14px);right:16px;margin:0;z-index:2}
#profile-page>.section-heading:first-child>div{display:none}
#profile-page>.section-heading:first-child .icon-button{background:rgba(8,6,4,.55);border:1px solid rgba(226,184,77,.55);color:#ffe08a;backdrop-filter:blur(6px);font-weight:700;padding:8px 14px;border-radius:10px}
#profile-page .quick-grid button,#profile-page .account-actions button,#profile-page .wallet-card,#profile-page .stats-grid{background:rgba(8,6,4,.66);border:1px solid rgba(226,184,77,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 24px rgba(0,0,0,.35)}
#profile-page .quick-grid button>span,#profile-page .club-player-avatar{color:#ffe08a}
#profile-page .club-player-avatar{background:linear-gradient(145deg,#ffe79a,#b8862a);color:#2b1a04}
#profile-page .quick-grid b,#profile-page .account-actions b{color:#f6ecd2}
#profile-page .quick-grid small,#profile-page .club-player-copy small{color:#cdbf9b}
#profile-page .account-actions .action-icon{background:linear-gradient(145deg,#ffe79a,#d9a93f);color:#2b1a04}
#profile-page .account-actions button[data-account-action="withdraw"] .action-icon{background:linear-gradient(145deg,#8be0b0,#2f9d66);color:#06251a}
#profile-page .account-actions button[data-account-action="ledger"] .action-icon{background:linear-gradient(145deg,#9cc5ff,#3b6fd1);color:#061a3a}
#profile-page .wallet-card{background:linear-gradient(105deg,rgba(60,38,8,.78),rgba(8,6,4,.72))}
#profile-page .wallet-card small{color:#e6d4a3}
#profile-page .wallet-card strong{color:#fff3cc;text-shadow:0 1px 3px #000}
#profile-page .wallet-card>span{color:#ffd166}
#profile-page .section-heading.compact h2{color:#ffe9b3;text-shadow:0 1px 3px #000}
#profile-page .segmented{background:rgba(8,6,4,.66);border:1px solid rgba(226,184,77,.3)}
#profile-page .segmented button.selected{background:linear-gradient(100deg,#ffe79a,#d9a93f);color:#2b1a04}
#profile-page .stats-grid div{border-color:rgba(226,184,77,.2)}
#profile-page .stats-grid strong{color:#fff3cc}
#profile-page .stats-grid small{color:#cdbf9b}
#profile-page .settings-row{background:rgba(8,6,4,.6);border:1px solid rgba(226,184,77,.28);border-radius:12px;margin-top:8px;padding:13px 12px;color:#ffd166;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
#profile-page .settings-row span{color:#f6ecd2}
#profile-page .settings-row b{color:#cdbf9b}
@media(min-width:650px){#profile-page{border-radius:27px 27px 0 0}}
#profile-page{padding-top:242px;background-image:linear-gradient(to bottom,rgba(7,5,4,0) 0,rgba(7,5,4,0) 34%,rgba(7,5,4,.5) 50%,rgba(7,5,4,.85) 64%,#070504 72%),url("assets/profile-bg.jpg?v=profile-bg-1");background-size:100% 100%,100% auto}
/* 成员列表 / 个人中心 弹窗 */
.member-list{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow:auto}
.member-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#111813}
.member-row.me{border-color:rgba(226,184,77,.45)}
.member-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#d1fb89,#3e9e58);color:#17351f;font-weight:700;flex:none}
.member-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.member-copy b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.member-copy b i{font-style:normal;color:#9aa79d;font-weight:400;font-size:11px}
.member-copy small{font-size:11px;color:#9aa79d}
.pc-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.pc-avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ffe79a,#b8862a);color:#2b1a04;font-size:22px;font-weight:800;flex:none}
.pc-head>div{display:flex;flex-direction:column;gap:2px}
.pc-head b{font-size:16px}
.pc-head small{font-size:11px;color:#9aa79d}
.pc-stats{margin-bottom:6px}
.pc-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.pc-actions:last-child{grid-template-columns:1fr 1fr}
.pc-actions .choice-row{justify-content:center;padding:11px 8px;font-size:12px;text-align:center}
/* 俱乐部页：底栏等宽对齐，标题略偏左 */
#games-page .table-card:not(.arena-v3) .table-bottom{display:grid;gap:4px;align-items:center}
#games-page .table-card:not(.arena-v3) .room-time,#games-page .table-card:not(.arena-v3) .protection-badge,#games-page .table-card:not(.arena-v3) .limit-badge{width:100%;justify-content:center;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#games-page .table-card:not(.arena-v3) .join-button{margin-left:0;min-width:64px;justify-content:center}
#games-page .table-card:not(.arena-v3) .table-info{padding-right:18px}
#games-page .table-card:not(.arena-v3) .table-bottom{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(70px,.9fr)}
#games-page .table-card:not(.arena-v3) .join-button{width:100%;padding:0 4px}
/* ===== 多语言：语言按钮 + 国旗选择 ===== */
.lang-button{display:inline-flex;align-items:center;gap:6px;margin-right:8px;font-size:14px}
.lang-button .lang-flag{font-size:16px}
#profile-page>.section-heading:first-child{display:flex;gap:8px}
.lang-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lang-option{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:#111813;color:#f3f6f3;font:inherit;font-size:13px;text-align:left}
.lang-option .lang-flag{font-size:22px;line-height:1}
.lang-option .lang-name{flex:1}
.lang-option.selected{border-color:#e2b84d;background:rgba(226,184,77,.12)}
.lang-option i{color:#ffd166;font-style:normal;font-weight:800}
html.lang-th body,html.lang-th .app-shell{font-family:'DM Sans','Noto Sans Thai','Noto Sans SC',-apple-system,sans-serif}
html.lang-ja body{font-family:'DM Sans','Hiragino Sans','Noto Sans JP','Noto Sans SC',-apple-system,sans-serif}
html.lang-ko body{font-family:'DM Sans','Apple SD Gothic Neo','Noto Sans KR','Noto Sans SC',-apple-system,sans-serif}
html.i18n-active .arena-title,html.i18n-active #games-page .table-card:not(.arena-v3) .table-info h3{font-size:15px;letter-spacing:0}
html.i18n-active #games-page .table-card:not(.arena-v3) .room-time,html.i18n-active #games-page .table-card:not(.arena-v3) .protection-badge,html.i18n-active #games-page .table-card:not(.arena-v3) .limit-badge,html.i18n-active #games-page .table-card:not(.arena-v3) .join-button{font-size:9px;padding:0 2px}
html.i18n-active .nav-item small{white-space:nowrap}
html.i18n-active #games-page .table-card:not(.arena-v3){overflow:hidden}
html.i18n-active #games-page .table-card:not(.arena-v3) .table-info{min-width:0;padding-right:8px}
html.i18n-active #games-page .table-card:not(.arena-v3) .table-info h3{white-space:normal;line-height:1.15;font-size:14px}
html.i18n-active #games-page .table-card:not(.arena-v3) .table-info p,html.i18n-active #games-page .table-card:not(.arena-v3) .table-info>small{white-space:normal}
html.i18n-active .table-top .tag{white-space:nowrap;max-width:46%;overflow:hidden;text-overflow:ellipsis}
html.i18n-active #games-page .table-card:not(.arena-v3) .room-time,html.i18n-active #games-page .table-card:not(.arena-v3) .protection-badge,html.i18n-active #games-page .table-card:not(.arena-v3) .limit-badge{white-space:normal;height:auto;min-height:26px;padding:2px 2px;font-size:8.5px;line-height:1.1;text-align:center;overflow:visible}
html.i18n-active #games-page .table-card:not(.arena-v3) .join-button{height:auto;min-height:26px;white-space:normal;font-size:9.5px;line-height:1.1}
/* 牌桌设置：全屏模式下整体下移避开 Telegram 顶栏；点击右侧空白处关闭 */
.room-settings-panel{box-sizing:border-box}
.room-settings-overlay{cursor:pointer}
.room-settings-panel{cursor:auto}
/* 提示条：支持长文字换行，放进对话框时也能看见 */
.toast{white-space:normal;max-width:min(88vw,380px);text-align:center;line-height:1.5;z-index:2147483000}
/* 创建牌桌：必填/填错提示 */
.form-error{padding:11px 13px;border:1px solid rgba(255,107,95,.55);border-radius:10px;background:rgba(120,30,24,.35);color:#ffb4ab;font-size:13px;line-height:1.5}
.form-error[hidden]{display:none}
.field.invalid{outline:1px solid #ff6b5f;border-radius:10px;background:rgba(255,107,95,.08)}
.field.invalid input,.field.invalid select{border-color:#ff6b5f}
/* 我的房间 */
.my-rooms{margin-bottom:12px}
.my-rooms h3{margin:0 0 8px;font-size:14px;color:#c9f296}
.my-room{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:default}
.my-room-actions{display:flex;gap:6px}
.my-room-actions button{min-width:52px;padding:8px 12px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#1b261c;color:#c9f296;font:inherit;font-size:12px}
.my-room-actions button[data-close-my-room]{min-width:96px;padding:10px 14px;font-size:14px;font-weight:700;color:#fff;background:linear-gradient(180deg,#e5584a,#b3271c);border:0;box-shadow:0 3px 10px rgba(179,39,28,.45)}
/* 首页横幅：三行文字 */
.promo-copy{flex:1;min-width:0;gap:6px}
.promo-copy>b{font-size:15px;line-height:1.35;letter-spacing:0}
.promo-copy .promo-line{font-size:12.5px;line-height:1.4;color:#d8f0c4;font-weight:600}
.promo-copy .promo-perk{color:#ffe08a}
.promo-banner{min-height:112px}
.promo-art{height:78px;transform-origin:right center}
#create-game[hidden]{display:none!important}
/* VIP 房间区：固定房后面，按开房先后往下排 */
.vip-room-list[hidden]{display:none}
.vip-room-head{padding:6px 2px 0;color:#ffe08a;font-size:12.5px;font-weight:700;letter-spacing:.02em}
.vip-room-list>.table-card{height:168px;min-height:168px;cursor:pointer}
.vip-room-card.mine{border-color:rgba(255,224,138,.55)}
.promo-copy .promo-perk{font-size:11px;letter-spacing:-.01em}
.promo-art{width:62px;transform:scale(.82)}
.field-hint{display:block;margin-top:4px;color:#98a79a;font-size:11px;line-height:1.5}
/* 首页横幅三行文字：字号一致 */
.promo-copy>b,.promo-copy .promo-line,.promo-copy .promo-perk{line-height:1.4;letter-spacing:0;font-weight:700}
.promo-copy>b,.promo-copy .promo-line,.promo-copy .promo-perk{font-size:14px!important}
/* 查房号按钮 + 房号目录 */
.filter-row.hero-filters .reset-filters.lookup-button,.hero-filters .reset-filters.lookup-button{width:auto;min-width:68px;height:34px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;white-space:nowrap;color:#e7f6d6;font-family:inherit}
.top-left{align-items:center;gap:7px;min-width:0}
.room-no{padding:2px 7px;border:1px solid rgba(255,224,138,.5);border-radius:999px;background:rgba(255,224,138,.12);color:#ffe08a;font-size:10px;font-weight:700;white-space:nowrap}
.lookup-search{width:100%;margin:0 0 12px;padding:11px 12px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#101511;color:#f2f5f1;font:inherit;font-size:13px}
.lookup-section{margin-bottom:14px}
.lookup-section[hidden],.lookup-chip[hidden],.lookup-empty[hidden]{display:none}
.lookup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.lookup-chip{flex-direction:column;font:inherit;cursor:pointer;min-width:0}
.lookup-chip b{color:#ffe08a}
.lookup-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.lookup-chip i{font-style:normal;color:#9db39a}
.lookup-chip:active{background:#1d2a1f}
.lookup-empty{text-align:center;color:#98a79a;font-size:12px}
/* ===== 顶部按钮一条线（6 等分，不再横向滚动） ===== */
.filter-row.hero-filters{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.filter-row.hero-filters .filter-scroller{flex:5 1 0;min-width:0;gap:6px;overflow:visible;padding:0;margin:0}
.filter-row.hero-filters .filter-scroller>button,.filter-row.hero-filters .reset-filters.lookup-button{min-width:0;width:auto;padding:0 2px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:11px;font-weight:700;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:inherit}
.filter-row.hero-filters .reset-filters.lookup-button{flex:1 1 0;color:#e7f6d6}
/* 房号：放在“加入”按钮正上方 */
.table-bottom{position:relative}
.table-bottom>.room-no{position:absolute;right:0;bottom:calc(100% + 2px);min-width:70px;box-sizing:border-box;text-align:center;padding:0 6px;line-height:15px;font-size:10px}
.top-left{display:contents}
/* ===== 搜索房号目录：整齐排版 ===== */
.lookup-section{margin:0 0 14px;padding:0 0 12px;border-bottom:1px solid rgba(255,255,255,.07)}
.lookup-section:last-of-type{border-bottom:0;margin-bottom:0}
.lookup-section h3{margin:0 0 9px;font-size:13px;color:#c9f296;font-weight:700}
.lookup-grid{display:grid;gap:8px}
.lookup-grid.cols1{grid-template-columns:1fr}
.lookup-grid.cols2{grid-template-columns:repeat(2,minmax(0,1fr))}
.lookup-grid.cols3{grid-template-columns:repeat(3,minmax(0,1fr))}
.lookup-grid.cols4{grid-template-columns:repeat(4,minmax(0,1fr))}
.lookup-vip-create{margin-top:8px}
.lookup-chip{display:grid;grid-template-rows:16px 18px 14px;align-content:center;align-items:center;gap:1px;height:62px;padding:6px 10px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#141b15;color:#e9efe7;text-align:left}
.lookup-chip b{font-size:12px;line-height:16px}
.lookup-chip span{font-size:12.5px;line-height:18px;font-weight:600}
.lookup-chip i{font-size:10.5px;line-height:14px}
.lookup-chip.line{display:flex;align-items:center;justify-content:center;height:40px;padding:0 6px;text-align:center}
.lookup-chip.line span{font-size:12.5px;white-space:nowrap}
.lookup-grid.cols4 .lookup-chip.line{height:38px}
.filter-row.hero-filters .filter-scroller{display:contents}
.filter-row.hero-filters .filter-scroller>button,.filter-row.hero-filters .reset-filters.lookup-button{flex:1 1 0;box-sizing:border-box;align-self:center}
.lookup-grid.cols2>.lookup-chip:last-child:nth-child(odd){grid-column:1/-1}
.filter-row.hero-filters .filter-scroller>button,.filter-row.hero-filters .reset-filters.lookup-button{height:34px !important;min-height:0 !important;margin:0 !important}
/* ===================== 暗黑奢华牌桌主题 ===================== */
.pt-root.luxury{background:radial-gradient(ellipse at 50% 40%,#10382b 0%,#0a2219 38%,#050d0a 75%,#020504 100%)}
.pt-root.luxury:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 0%,rgba(255,214,120,.10),transparent 55%),radial-gradient(ellipse at 50% 100%,rgba(255,214,120,.05),transparent 50%)}
.pt-root.luxury .pt-title b{color:#f6dd9b;letter-spacing:.04em;text-shadow:0 0 12px rgba(246,221,155,.35)}
.pt-root.luxury .pt-title small{color:rgba(246,221,155,.65)}
.pt-root.luxury .pt-back,.pt-root.luxury .pt-menu{background:linear-gradient(180deg,rgba(40,34,18,.85),rgba(14,12,6,.85));border:1px solid rgba(214,176,80,.55);color:#f6dd9b}
.pt-root.luxury .pt-badge{background:rgba(0,0,0,.5);border:1px solid rgba(214,176,80,.35);color:#f0d68a}
/* 金属桌沿 */
.pt-root.luxury .pt-rail{padding:0;position:absolute}
.pt-root.luxury .pt-rail:before{content:"";position:absolute;inset:-10px;border-radius:50%/42%;z-index:-1;background:linear-gradient(135deg,#fff1c1 0%,#d4a537 18%,#7a5714 40%,#f1d58a 55%,#9a6f1e 78%,#ffe9a8 100%);box-shadow:0 0 22px rgba(214,176,80,.35),inset 0 0 0 2px rgba(0,0,0,.5)}
.pt-root.luxury .pt-rail:after{content:"";position:absolute;border-radius:50%/42%;pointer-events:none}
.pt-root.luxury .pt-felt-line{border:1.5px solid rgba(240,214,138,.28);box-shadow:0 0 18px rgba(240,214,138,.08)}
/* 底池、公共牌 */
.pt-root.luxury .pt-pot{display:inline-block;padding:6px 18px 5px;border-radius:999px;background:linear-gradient(180deg,rgba(30,26,12,.9),rgba(8,7,3,.9));border:1px solid rgba(214,176,80,.7);box-shadow:0 0 16px rgba(214,176,80,.25),inset 0 1px rgba(255,255,255,.12);color:#f6dd9b}
.pt-root.luxury .pt-pot b{color:#ffd666;font-size:19px;text-shadow:0 0 10px rgba(255,214,102,.6)}
.pt-root.luxury .pt-slot{border:1.5px dashed rgba(240,214,138,.4);background:rgba(0,0,0,.25)}
.pt-root.luxury .pt-street{color:rgba(246,221,155,.75)}
/* 座位头像：金属环 + 光晕 */
.pt-root.luxury .pt-avatar{border:0;background:linear-gradient(145deg,#1f4a38,#0a1d15) padding-box,linear-gradient(135deg,#fff1c1,#c8962c 40%,#6d4d10 60%,#f1d58a) border-box;border:3px solid transparent;box-shadow:0 4px 12px rgba(0,0,0,.6),0 0 14px rgba(214,176,80,.25)}
.pt-root.luxury .pt-seat.me .pt-avatar{box-shadow:0 4px 12px rgba(0,0,0,.6),0 0 22px rgba(255,214,102,.55)}
.pt-root.luxury .pt-seat.to-act .pt-avatar{background:conic-gradient(#ffe08a var(--ring,100%),rgba(0,0,0,.45) 0) border-box;border-color:transparent;box-shadow:0 0 0 3px rgba(255,214,102,.3),0 0 22px rgba(255,214,102,.75)}
.pt-root.luxury .pt-name{background:linear-gradient(180deg,rgba(26,22,10,.85),rgba(6,5,2,.85));border:1px solid rgba(214,176,80,.35);color:#f6ecd0}
.pt-root.luxury .pt-stack{color:#ffd666;text-shadow:0 1px 4px #000}
.pt-root.luxury .pt-seat.empty .pt-sit{border-color:rgba(240,214,138,.45);color:rgba(246,221,155,.8)}
/* 筹码：金属边 + 光泽 */
.pt-root.luxury .pt-chip{background:linear-gradient(180deg,rgba(30,26,12,.88),rgba(8,7,3,.9));border:1px solid rgba(214,176,80,.5);box-shadow:0 3px 10px rgba(0,0,0,.55)}
.pt-root.luxury .pt-chip-stack i{box-shadow:0 1px 0 rgba(0,0,0,.6),inset 0 0 0 1px rgba(255,255,255,.35),inset 0 2px 3px rgba(255,255,255,.35)}
.pt-chip.purple{--chip-core:#b07cff;--chip-rim:#5a22b8}
.pt-chip.gold{--chip-core:#ffe08a;--chip-rim:#a87a12}
/* 手牌：金边 + 更大 */
.pt-root.luxury .pt-seat.me .pt-cards .playing-card{width:54px;height:76px;box-shadow:0 0 0 1.5px #e9c46a,0 8px 16px rgba(0,0,0,.65)}
.pt-root.luxury .pt-board .playing-card{box-shadow:0 0 0 1px rgba(233,196,106,.75),0 5px 10px rgba(0,0,0,.6)}
/* 行动区：金属质感按钮 */
.pt-root.luxury .pt-bottom{background:linear-gradient(180deg,transparent,rgba(3,8,6,.88) 22%)}
.pt-root.luxury .pt-btn{border:1px solid rgba(255,235,170,.35);box-shadow:0 4px 0 rgba(0,0,0,.5),0 8px 18px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.35)}
.pt-root.luxury .pt-btn.confirm{background:linear-gradient(180deg,#fff0b3,#e2b23e 45%,#a87a12)}
.pt-root.luxury .pt-btn.call{background:linear-gradient(180deg,#42d77c,#0f7a3b)}
.pt-root.luxury .pt-btn.raise{background:linear-gradient(180deg,#5a9bff,#1b45a8)}
.pt-root.luxury .pt-btn.fold{background:linear-gradient(180deg,#ff6a5c,#a8221a)}
.pt-root.luxury .pt-btn.allin{background:linear-gradient(180deg,#b377ff,#5a22b8)}
/* ===================== 牌背 / 牌面皮肤 ===================== */
/* 经典：默认样式不动，仅增强质感 */
#modal[data-card-skin="classic"] .playing-card:not(.back){background:linear-gradient(160deg,#ffffff,#f1ede2)}
/* 极简线框 */
#modal[data-card-skin="minimal"] .playing-card:not(.back){background:#0d1411;color:#e9f5ee;border:1.5px solid rgba(233,245,238,.85);box-shadow:none}
#modal[data-card-skin="minimal"] .playing-card.red:not(.back){color:#ff6b7a}
#modal[data-card-skin="minimal"] .playing-card.back{background:#0d1411;border:1.5px solid rgba(233,245,238,.85);box-shadow:inset 0 0 0 4px #0d1411,inset 0 0 0 5px rgba(233,245,238,.45)}
/* 国风：朱红底 + 金色回纹 */
#modal[data-card-skin="guofeng"] .playing-card:not(.back){background:linear-gradient(160deg,#fff7e0,#f1e2b8);color:#2a1a0a;border:1px solid #b8892c}
#modal[data-card-skin="guofeng"] .playing-card.red:not(.back){color:#b3141f}
#modal[data-card-skin="guofeng"] .playing-card.back{background:radial-gradient(circle at 50% 50%,#ffd976 0 6%,transparent 7%),repeating-linear-gradient(45deg,#a3121c 0 4px,#7d0c14 4px 8px);border:2px solid #e8c15a;box-shadow:inset 0 0 0 2px #6a0910}
/* 皇家金：黑底金纹 */
#modal[data-card-skin="royal"] .playing-card:not(.back){background:linear-gradient(160deg,#fffaf0,#efe3c4);border:1px solid #c9a03d}
#modal[data-card-skin="royal"] .playing-card.back{background:radial-gradient(circle at 50% 50%,#f1d58a 0 7%,transparent 8%),repeating-linear-gradient(135deg,#17120a 0 3px,#2b2110 3px 6px);border:2px solid #d4a537;box-shadow:inset 0 0 0 2px #0a0703,0 0 8px rgba(212,165,55,.35)}
/* 设置面板里的皮肤缩略 */
.skin-options{flex-wrap:wrap}
.skin-options button{flex:1 1 44%;display:flex;align-items:center;justify-content:center;gap:7px}
.skin-swatch{display:inline-block;width:14px;height:20px;border-radius:3px;border:1.5px solid #e8eef5;background:repeating-linear-gradient(45deg,#1d4a7a 0 3px,#163a60 3px 6px)}
.skin-minimal .skin-swatch{background:#0d1411;border-color:#e9f5ee}
.skin-guofeng .skin-swatch{background:repeating-linear-gradient(45deg,#a3121c 0 3px,#7d0c14 3px 6px);border-color:#e8c15a}
.skin-royal .skin-swatch{background:repeating-linear-gradient(135deg,#17120a 0 3px,#2b2110 3px 6px);border-color:#d4a537}
.pt-root.luxury .pt-rail{border:10px solid transparent;background:radial-gradient(ellipse at 50% 42%,#14513c 0%,#0c3a2a 52%,#07261b 100%) padding-box,linear-gradient(135deg,#fff1c1 0%,#d4a537 18%,#7a5714 40%,#f1d58a 55%,#9a6f1e 78%,#ffe9a8 100%) border-box;box-shadow:inset 0 0 70px rgba(0,0,0,.6),0 0 24px rgba(214,176,80,.3),0 14px 36px rgba(0,0,0,.65)}
.pt-root.luxury .pt-rail:before{display:none}
.pt-root.luxury .pt-rail:after{inset:-1px;border:2px solid rgba(0,0,0,.55)}
.pt-root.luxury .pt-btn.confirm.idle{background:linear-gradient(180deg,#6b5a2c,#463a18);color:rgba(255,240,200,.6);box-shadow:none;border-color:rgba(214,176,80,.3)}
/* ===== 真实头像 ===== */
.pt-avatar .pt-photo{position:absolute;width:100%;height:100%;object-fit:cover;border-radius:50%;z-index:1}
.pt-avatar .pt-dealer,.pt-avatar .pt-straddle{z-index:3}
.pt-avatar{overflow:visible}
.pt-avatar .pt-photo{inset:0}
/* ===== 头顶动作气泡（专业术语）===== */
.pt-seat .pt-action,.pt-seat.me .pt-action,.pt-seat.top .pt-action{position:absolute;top:auto;bottom:calc(100% + 2px);left:50%;right:auto;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:4px 10px 4px 7px;border-radius:14px;background:#2d3a33;color:#fff;font-size:12px;font-weight:800;white-space:nowrap;z-index:6;box-shadow:0 4px 12px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.25)}
.pt-seat .pt-action:after{content:"";position:absolute;left:50%;bottom:-5px;width:9px;height:9px;background:inherit;border-right:1px solid rgba(255,255,255,.25);border-bottom:1px solid rgba(255,255,255,.25);transform:translateX(-50%) rotate(45deg)}
.pt-action .act-ico{font-size:14px;line-height:1}
.pt-action .act-zh{line-height:1.1}
.pt-action .act-en{font-size:9px;font-weight:700;letter-spacing:.06em;opacity:.8;line-height:1;align-self:flex-end;padding-bottom:1px}
.pt-seat .pt-action.act-fold{background:#4a4f4c;color:#d6dbd8}
.pt-seat .pt-action.act-check{background:linear-gradient(180deg,#4aa8ff,#1e62c9)}
.pt-seat .pt-action.act-call{background:linear-gradient(180deg,#45d27b,#14803f)}
.pt-seat .pt-action.act-bet,.pt-seat .pt-action.act-raise{background:linear-gradient(180deg,#ffb347,#d9690f)}
.pt-seat .pt-action.act-allIn{background:linear-gradient(180deg,#ff6a5c,#b3141f);animation:act-allin 1s infinite alternate}
@keyframes act-allin{to{box-shadow:0 0 18px rgba(255,80,60,.9)}}
.pt-seat .pt-action.act-new{animation:act-pop .45s cubic-bezier(.2,1.4,.4,1) both}
.pt-seat .pt-action.act-check.act-new{animation:act-pop .3s ease-out both}
.pt-seat .pt-action.act-check.act-new .act-ico{display:inline-block;animation:act-knock .5s ease-in-out 2}
@keyframes act-pop{from{opacity:0;transform:translateX(-50%) translateY(8px) scale(.6)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
@keyframes act-knock{0%,100%{transform:rotate(0) translateY(0)}35%{transform:rotate(-25deg) translateY(-4px)}60%{transform:rotate(8deg) translateY(2px)}}
.pt-seat .pt-action.act-fold.act-new{animation:act-pop .3s ease-out both}
/* 气泡与手牌、下注筹码错开 */
.pt-seat .pt-cards{z-index:2}
.pt-seat.top .pt-action{bottom:calc(100% + 2px)}
.pt-seat.right .pt-action{margin-left:-26px}
.pt-seat.left .pt-action{margin-left:26px}
/* ===== 竖屏大气布局：圆角长桌 + 两侧座位 ===== */
.pt-root .pt-rail{border-radius:46% / 21%}
.pt-root .pt-felt-line{border-radius:44% / 19%}
.pt-center{top:46%;width:74%}
.pt-seat{width:82px}
.pt-avatar{width:58px;height:58px;font-size:22px}
.pt-seat.me{width:128px}
/* 名牌 + 筹码 合成一块深色板，压在头像下沿 */
.pt-seat .pt-name{margin-top:-9px;max-width:80px;width:80px;box-sizing:border-box;padding:2px 6px 1px;border-radius:9px 9px 0 0;background:rgba(6,10,8,.88);font-weight:700;z-index:2}
.pt-seat .pt-stack{width:80px;margin-top:-2px;box-sizing:border-box;padding:0 6px 3px;border-radius:0 0 9px 9px;background:rgba(6,10,8,.88);z-index:2}
.pt-root.luxury .pt-seat .pt-name{border:1px solid rgba(214,176,80,.4);border-bottom:0}
.pt-root.luxury .pt-seat .pt-stack{border:1px solid rgba(214,176,80,.4);border-top:0}
.pt-board{gap:5px}
.pt-board .playing-card,.pt-slot{width:46px;height:64px;border-radius:7px}
.pt-board .playing-card b{font-size:16px}
.pt-board .playing-card i{font-size:22px}
.pt-pot{font-size:13px}
.pt-info{font-size:11px;line-height:1.7;opacity:.8}
.pt-logo{top:56%}
@media(max-height:700px){.pt-avatar{width:50px;height:50px}.pt-board .playing-card,.pt-slot{width:40px;height:56px}}
.pt-seat .pt-name,.pt-seat .pt-stack{width:70px;max-width:70px}
.pt-seat .pt-name{font-size:10px}
.pt-seat .pt-stack{font-size:11.5px}
/* Telegram-native social layer: Premium frame, table props, share */
.pt-avatar.premium{box-shadow:0 0 0 2px #0b0f0c,0 0 0 4px #f5c451,0 0 14px 3px rgba(245,196,81,.55);background-image:linear-gradient(135deg,#3a2c0c,#6b4d12)}
.pt-star{position:absolute;right:-7px;bottom:-5px;width:19px;height:19px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:11px;line-height:1;color:#3a2600;background:linear-gradient(135deg,#ffe58a,#f0a92a);border:1.5px solid #0b0f0c;z-index:3}
.pt-seat.premium .pt-cards .playing-card{box-shadow:0 0 0 1px #f5c451,0 0 9px rgba(245,196,81,.6)}
.pt-seat.premium .pt-name{color:#ffe28a}
.pt-avatar[data-prop-target]{cursor:pointer}
.pt-seat.prop-target .pt-avatar{outline:2px dashed #7fe3ff;outline-offset:3px}
.prop-box{margin:8px 0 2px;padding:8px 10px;border:1px dashed rgba(127,227,255,.35);border-radius:12px}
.prop-box small{display:block;color:#9cc6d2;font-size:11px;margin-bottom:6px}
.prop-box small b{color:#d6f4ff}
.quick-chat-row.props{margin:0}
.pt-propfx{position:absolute;z-index:30;font-size:30px;line-height:1;pointer-events:none;transform:translate(-50%,-50%);animation:prop-fly .8s cubic-bezier(.3,.7,.4,1) forwards}
@keyframes prop-fly{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}15%{opacity:1}70%{opacity:1;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy) - 26px)) scale(1.25) rotate(300deg)}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.6) rotate(380deg)}}
.pt-seat.prop-hit .pt-avatar{animation:prop-hit .5s ease 2}
@keyframes prop-hit{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px) rotate(-6deg)}75%{transform:translateX(4px) rotate(6deg)}}
/* Hints, analytics and shareable report */
.pt-hint{position:absolute;left:50%;top:calc(100% + 4px);transform:translateX(-50%);white-space:nowrap;z-index:6;font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:rgba(8,16,11,.86);border:1px solid rgba(255,255,255,.28);color:#e8f3ea;box-shadow:0 3px 10px #0008}
.pt-hint.strong{color:#3a2600;background:linear-gradient(135deg,#ffe58a,#f0a92a);border-color:#fff2b8}
.pt-hint.ok{color:#c8f59a;border-color:rgba(169,242,91,.55)}
.pt-hint.draw{color:#9fe4ff;border-color:rgba(127,227,255,.6)}
.pt-hint.weak{color:#9aa79d}
.analytics{margin:12px 0 4px;border:1px solid var(--line);border-radius:16px;background:#101611;padding:14px}
.meter-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.meter{display:flex;flex-direction:column;align-items:center;gap:6px}
.meter small{font-size:9px;color:#8b978e;text-align:center}
.meter-ring{--p:0;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#a9f25b calc(var(--p)*1%),rgba(255,255,255,.1) 0)}
.meter-ring b{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#101611;font-size:12px}
.trend-head,.trend-foot{display:flex;justify-content:space-between;font-size:11px;color:#a5b0a7;margin:6px 2px}
.trend-head .pos,.trend-foot .pos,.analytics .pos{color:#a9f25b}
.trend-head .neg,.trend-foot .neg,.analytics .neg{color:#ff7a7a}
.trend-svg{width:100%;height:auto;display:block}
.report-btn{width:100%;margin-top:10px;border:1px solid #35543a;background:linear-gradient(100deg,#aaf25c,#68d34e);color:#10210f;border-radius:12px;padding:11px;font:inherit;font-size:13px;font-weight:700}
#report-dialog{width:min(380px,calc(100% - 24px));max-height:94vh;overflow:auto;border:1px solid #334638;border-radius:20px;background:#0b100d;padding:0}
.report-box{padding:12px}
.report-preview{width:100%;max-height:64vh;object-fit:contain;border-radius:14px;display:block}
.report-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.report-actions button{border:1px solid #35543a;background:#15241a;color:#d8f3b8;border-radius:11px;padding:11px;font:inherit;font-size:12px;font-weight:700}
.report-actions button.ghost{background:transparent;color:#9aa79d;border-color:#2c3a30}
/* 新手竞技场：红金背景图（深色遮罩保证文字清晰） */
.table-card.featured[data-table*="新手竞技场"]{background:linear-gradient(90deg,rgba(40,0,0,.6) 0,rgba(40,0,0,.66) 48%,rgba(40,0,0,.6) 100%),url(assets/novice-bg.jpg?v=novice1) center/cover no-repeat;border-color:rgba(228,184,92,.65);box-shadow:0 0 20px rgba(200,40,40,.25)}
.table-card.featured[data-table*="新手竞技场"]:after{display:none}
.table-card.featured[data-table*="新手竞技场"] .table-bottom{border-top-color:rgba(228,184,92,.3)}
/* 经典木纹主题 + 荷官 + 玩家资料卡 */
.pt-root.classic{background:radial-gradient(ellipse at 50% 30%,#4a2c1b 0%,#2a170d 55%,#120a06 100%)}
.pt-root.classic .pt-rail{border:13px solid transparent;background:radial-gradient(ellipse at 50% 45%,#23944f 0%,#147539 55%,#0a4a27 100%) padding-box,repeating-linear-gradient(100deg,#8f4f24 0 7px,#774220 7px 14px,#a15d2d 14px 21px) border-box;box-shadow:inset 0 0 60px rgba(0,0,0,.5),0 8px 26px #000b}
.pt-root.classic .pt-felt-line{border-color:rgba(255,255,255,.22)}
.pt-root.classic .pt-logo{color:rgba(255,255,255,.12)}
.pt-root.classic .pt-title b{color:#ffe7b0;text-shadow:0 2px 6px #000a}
.pt-root.classic .pt-title small{color:rgba(255,231,176,.7)}
.pt-root.classic .pt-avatar{border-radius:11px;border:3px solid #e8c36a;background:linear-gradient(145deg,#5a3a22,#2a170d);box-shadow:0 5px 12px #000a,inset 0 0 0 1px rgba(0,0,0,.4)}
.pt-root.classic .pt-avatar .pt-photo,.pt-root.classic .pt-avatar .pt-initial{border-radius:8px}
.pt-root.classic .pt-name,.pt-root.classic .pt-stack{background:linear-gradient(180deg,#3b2415,#1e100a);border:1px solid #c9a24f;color:#ffe9b8}
.pt-root.classic .pt-seat.me .pt-avatar{border-color:#ffd86b;box-shadow:0 0 0 2px rgba(255,216,107,.4),0 5px 12px #000a}
.pt-dealer-fig{position:absolute;left:50%;top:-3.2%;width:96px;height:90px;transform:translateX(-50%);z-index:1;pointer-events:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5));-webkit-mask-image:linear-gradient(#000 82%,transparent 100%);mask-image:linear-gradient(#000 82%,transparent 100%)}
#profile-dialog{width:min(340px,calc(100% - 28px));border:0;background:transparent;padding:0;overflow:visible}
#profile-dialog::backdrop{background:rgba(0,0,0,.6)}
.pcard{position:relative;border:2px solid #e0b85c;border-radius:20px;background:linear-gradient(180deg,#1d7a45,#0f4f2c);box-shadow:0 0 0 3px #5a3a1c,0 18px 50px #000c;padding:16px 14px 14px;color:#f3f6f3}
.pcard-close{position:absolute;right:-8px;top:-8px;width:30px;height:30px;border-radius:50%;border:2px solid #e0b85c;background:#3a2414;color:#ffe9b8;font-size:18px;line-height:1}
.pcard-head{display:flex;gap:12px;align-items:center;margin-bottom:12px}
.pcard-avatar{position:relative;width:76px;height:76px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:30px;font-weight:700;background:linear-gradient(145deg,#5a3a22,#2a170d);border:3px solid #e8c36a;box-shadow:0 5px 14px #0009}
.pcard-avatar .pt-photo{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover}
.pcard-avatar.premium{box-shadow:0 0 0 2px #0b0f0c,0 0 0 4px #f5c451,0 0 14px 3px rgba(245,196,81,.55)}
.pcard-name{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}
.pcard-name b{font-size:16px;color:#fff4d2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard-name small{font-size:11px;color:#bfe3c8}
.pcard-bar{height:8px;border-radius:5px;background:rgba(0,0,0,.35);overflow:hidden;margin-top:2px}
.pcard-bar i{display:block;height:100%;background:linear-gradient(90deg,#ffd86b,#f0a92a)}
.pcard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px 12px;background:rgba(0,0,0,.18);border-radius:12px;padding:8px 12px}
.pcard-grid div{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:12px;border-bottom:1px solid rgba(255,255,255,.08)}
.pcard-grid span{color:#bfe3c8}
.pcard-grid b{color:#fff4d2}
.pcard-grid b.pos{color:#c8ff8a}
.pcard-grid b.neg{color:#ff9a9a}
.pcard-act{width:100%;margin-top:12px;border:0;border-radius:12px;padding:11px;background:linear-gradient(180deg,#ffb23d,#e8761a);color:#fff;font:inherit;font-size:14px;font-weight:700}
/* 新手竞技场牌桌：夜景会所背景 + 金边圆桌 */
.pt-root.novice{background:url(assets/novice-table-bg.svg?v=nb1) center/cover no-repeat,#0a0604}
.pt-root.novice .pt-rail{border:11px solid #17110c;background:radial-gradient(ellipse at 50% 45%,#1fa05a 0%,#127a42 55%,#07502b 100%);box-shadow:0 0 0 3px #d9a84a,0 0 0 5px #5a3d12,0 14px 34px #000d,inset 0 0 60px rgba(0,0,0,.5)}
.pt-root.novice .pt-felt-line{border-color:rgba(240,201,105,.35)}
.pt-root.novice .pt-avatar{border:3px solid #e8c36a;box-shadow:0 4px 10px #000a}
.pt-root.novice .pt-dealer-fig{display:none}
.quick-chat-row.phrases{flex-wrap:wrap;overflow-x:hidden;overflow-y:auto;max-height:118px;gap:6px;padding-bottom:4px}
/* nav v2: bigger labels, icon above text */
.bottom-nav{height:74px}
.nav-item{gap:3px}
.nav-item span{font-size:26px;line-height:28px}
.nav-item small{font-size:13px;font-weight:700;letter-spacing:.02em;white-space:nowrap}
html.i18n-active .nav-item small{font-size:11px}
.app-shell{padding-bottom:112px}
#agent-panel{margin:0 0 18px;padding:14px;border:1px solid rgba(220,189,105,.42);border-radius:18px;background:rgba(14,18,14,.82)}
#agent-panel:empty{display:none}
.agent-panel-title{margin:0 0 10px;font-size:16px;color:#f2d27d}
#agent-panel h3{font-size:14px}
#agent-panel .agent-table{width:100%}
#agent-panel p,#agent-panel li{font-size:11px;line-height:1.8;color:#aeb8b0}
/* 管理员为牌桌选的背景图 */
.pt-root.bg-novice{background:url(assets/novice-table-bg.svg?v=nb1) center/cover no-repeat,#0a0604}
.pt-root.bg-royal{background:url(assets/tablebg/royal.svg?v=1) center/cover no-repeat,#120826}
.pt-root.bg-ocean{background:url(assets/tablebg/ocean.svg?v=1) center/cover no-repeat,#04152b}
.pt-root.bg-crimson{background:url(assets/tablebg/crimson.svg?v=1) center/cover no-repeat,#1e0409}
.pt-root.bg-jade{background:url(assets/tablebg/jade.svg?v=1) center/cover no-repeat,#03170f}
.pt-root.bg-midnight{background:url(assets/tablebg/midnight.svg?v=1) center/cover no-repeat,#050507}
.pt-root.bg-custom{background:linear-gradient(rgba(0,0,0,.28),rgba(0,0,0,.28)),var(--table-bg) center/cover no-repeat,#0a0604}
/* 娱乐区后台自定义版块 */
.arcade-card.custom-block{color:inherit;text-decoration:none}
.table-list>.arcade-card.custom-block .arcade-copy small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.4}
.arcade-card.custom-block .arcade-open{display:grid;place-items:center;line-height:1}
#club-custom-blocks{display:grid;gap:12px}
.admin-hide{display:none!important}
.admin-bg{background-image:linear-gradient(90deg,rgba(5,10,18,.78),rgba(5,10,18,.42) 58%,rgba(5,10,18,.28)),var(--blk-bg)!important;background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
/* ===== 俱乐部房间卡片排版（2026-10-17）：标题上移 · 去掉建议带入/可复核发牌 · 房号放到「分钟/手」的位置 ===== */
/* 标题（新手竞技场等）整体往上提 */
#games-page .table-card:not(.arena-v3):not(.practice-card) .table-top{margin-bottom:0}
#games-page .table-card:not(.arena-v3):not(.practice-card) .table-main{margin-top:-3px}
#games-page .table-card:not(.arena-v3):not(.practice-card) .table-info{padding-right:0}
/* 房号：回到底栏第一格（原「分钟/手」位置），与其它标签同高同宽；「分钟/手」顺延到第二格 */
#games-page .table-card:not(.arena-v3) .table-bottom>.room-no{position:static;order:0;display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;height:24px;padding:0 2px;border-radius:7px;font-size:10px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 中间文字（标题/盲注/最低带入）靠左排 */
/* 中间文字回到居中：以卡片左上「等待玩家」和右上「德州长牌」两端的中线为准（左右留白对称） */
#games-page .table-card:not(.arena-v3) .table-info{align-items:center;text-align:center}
#games-page .table-card:not(.arena-v3) .table-info h3,#games-page .table-card:not(.arena-v3) .table-info p,#games-page .table-card:not(.arena-v3) .table-info small{text-align:center}
#games-page .table-card:not(.arena-v3):not(.practice-card):not(.vip-room-card) .table-main{position:relative}
#games-page .table-card:not(.arena-v3):not(.practice-card):not(.vip-room-card) .seat-ring{position:absolute;left:0;top:50%;transform:translateY(-50%)}
#games-page .table-card:not(.arena-v3):not(.practice-card):not(.vip-room-card) .table-info{flex:1;min-width:0;padding:0 52px}
/* ===== 进入游戏加载图（狮头 · 東碩財富 華人社區） ===== */
.game-loading{position:fixed;inset:0;z-index:2147483000;background:#050403 url(assets/loading.jpg?v=load3) center top/contain no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;opacity:1;visibility:visible;transition:none}
.game-loading.gl-hide{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility 0s linear .45s}
.game-loading .gl-bar{width:min(58%,260px);height:3px;border-radius:3px;background:rgba(228,184,92,.22);overflow:hidden}
.game-loading .gl-bar i{display:block;width:40%;height:100%;border-radius:3px;background:linear-gradient(90deg,transparent,#f1cf7a,transparent);animation:gl-slide 1.1s ease-in-out infinite}
@keyframes gl-slide{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
/* ===== 牌桌操作栏（参考图版式）：A 四键一排 · B 三键 + 筹码行末尾全下；筹码都在按钮下方 ===== */
.pt-root .pt-bar{gap:7px}
.pt-bar-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.pt-bar-row.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.pt-root .pt-bar .pt-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:5px 2px 6px;border:1px solid rgba(255,255,255,.28);border-radius:10px;font-size:15px;line-height:1.1;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -8px 14px rgba(0,0,0,.18),0 3px 0 rgba(0,0,0,.4),0 6px 12px rgba(0,0,0,.35);text-shadow:0 1px 2px rgba(0,0,0,.45)}
.pt-root .pt-bar .pt-btn:active{transform:translateY(2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 1px 0 rgba(0,0,0,.4)}
.pt-root .pt-bar .pt-btn em{display:block;min-width:62%;padding:2px 6px;border-radius:999px;background:rgba(0,0,0,.28);font-style:normal;font-size:12px;font-weight:700;letter-spacing:0;text-shadow:none}
.pt-root .pt-bar .pt-btn.fold{background:linear-gradient(180deg,#ee4b4b,#a81818)}
.pt-root .pt-bar .pt-btn.call{background:linear-gradient(180deg,#3d7bff,#1740b8)}
.pt-root .pt-bar .pt-btn.raise{background:linear-gradient(180deg,#27b25a,#0d7430)}
.pt-root .pt-bar .pt-btn.raise.soft{filter:saturate(.8) brightness(.92)}
.pt-root .pt-bar .pt-btn.allin{background:linear-gradient(180deg,#a56bff,#5b24b8)}
.pt-root .pt-bar .pt-btn.allin.on,.pt-root .pt-bar .pt-btn.raise:not(.soft){outline:2px solid #ffd666;outline-offset:1px}
.pt-chip-row{display:flex;align-items:center;justify-content:center;gap:9px;padding:2px 0}
.pt-chipb{--c:#1e6fd9;flex:none;width:46px;height:46px;padding:0;border-radius:50%;border:3px dashed rgba(255,255,255,.88);background:var(--c);color:#fff;font:inherit;font-size:13px;font-weight:800;letter-spacing:0;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 4px var(--c),inset 0 0 0 6px rgba(255,255,255,.8),inset 0 -6px 8px rgba(0,0,0,.25),0 3px 6px rgba(0,0,0,.5);text-shadow:0 1px 2px rgba(0,0,0,.5)}
.pt-chipb:active{transform:translateY(2px) scale(.96)}
.pt-chipb.c10{--c:#1e6fd9}
.pt-chipb.c50{--c:#1f9a4a}
.pt-chipb.c100{--c:#d32f2f}
.pt-chipb.c500{--c:#7a3be0}
.pt-chipb.c1k{--c:#c9962b;color:#3a2400;text-shadow:none}
.pt-clear{align-self:center;padding:3px 12px;border:1px solid rgba(255,214,102,.5);border-radius:999px;background:rgba(0,0,0,.4);color:#ffd666;font:inherit;font-size:11px}
@media(max-width:380px){.pt-chip-row{gap:6px}.pt-chipb{width:42px;height:42px;font-size:12px}.pt-root .pt-bar .pt-btn{font-size:14px}}
/* 新加载图：底部渐隐到深色，叠「加载中…」和进度条 */
.game-loading::before{content:'';position:absolute;left:0;right:0;bottom:0;top:min(calc(100vw * 1.775 - 20vw),calc(100% - 20vw));background:linear-gradient(180deg,rgba(42,21,16,0) 0,#2a1510 20vw,#070304 62vw)}
.game-loading .gl-text,.game-loading .gl-bar{position:relative;align-self:center}
.game-loading .gl-text{margin-bottom:14px;color:#ffe6a8;font-size:15px;font-weight:700;letter-spacing:.12em;text-shadow:0 1px 6px rgba(0,0,0,.8)}
.game-loading .gl-text span{animation:gl-dot 1.2s infinite both}
.game-loading .gl-text span:nth-child(2){animation-delay:.2s}
.game-loading .gl-text span:nth-child(3){animation-delay:.4s}
@keyframes gl-dot{0%,80%,100%{opacity:.15}40%{opacity:1}}
.game-loading .gl-bar{margin-bottom:calc(7% + env(safe-area-inset-bottom))}
/* ===== 個人頭像：华人社区页「个人中心」卡片 / 个人中心弹窗显示 Telegram 头像 ===== */
.club-player-avatar,.pc-avatar{position:relative;overflow:hidden}
.club-player-avatar .pt-photo,.pc-avatar .pt-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;z-index:1}
.pc-avatar .pc-initial{position:relative}
#profile-page .quick-grid .club-player-avatar{width:40px;height:40px;font-size:17px;border:2px solid rgba(255,224,138,.65);box-shadow:0 0 0 2px rgba(0,0,0,.35),0 3px 10px rgba(0,0,0,.45)}
#profile-page .quick-grid .club-player-avatar{margin-right:8px}
#profile-page .quick-grid .club-player-avatar.has-photo{border-color:#f5c451}
/* 免费试玩卡片：底栏只剩 房号 / 分钟·手 / 服务费 + 按钮 */
#games-page .table-card.practice-card:not(.arena-v3) .table-bottom{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(70px,.9fr)}
/* 成员列表：每位玩家显示 Telegram 头像（无头像时显示名字首字） */
.member-avatar{position:relative;overflow:hidden}
.member-avatar .pt-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%;z-index:1}
.member-avatar .member-initial{position:relative}
.report-reward{margin-top:10px;padding:8px 10px;border-radius:11px;background:rgba(201,154,58,.12);border:1px solid rgba(201,154,58,.35);color:#f2d994;font-size:12px;line-height:1.5;text-align:center}
.report-reward b{color:#a9f25b}
/* 牌桌设置：头像显示 Telegram 头像；内容贴顶（只在 Telegram 全屏模式才按安全区下移，避免顶部大片空白） */
.room-settings-avatar{position:relative;overflow:hidden}
.room-settings-avatar .pt-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.room-settings-avatar .rs-initial{position:relative}
.room-settings-panel{padding-top:max(8px,calc(env(safe-area-inset-top,0px) + var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px) + 4px))}
.room-settings-panel .room-settings-user{padding-top:8px}
.room-settings-avatar .pt-photo{z-index:1}
/* 三个区：区标题 + 统一的卡片排版 */
.zone-head{margin:16px 2px 8px;color:#ffe08a;font-size:13.5px;font-weight:800;letter-spacing:.04em}
.zone-head[hidden]{display:none}
.table-list+.zone-head{margin-top:18px}
.zone-empty{margin:4px 2px 0;font-size:12px}
.vip-room-list{display:grid;gap:10px;margin-top:0}
.promo-banner[hidden]{display:none!important}
.choice-row.exit-room-btn{display:block;width:100%;text-align:center;padding:13px;font-size:15px;font-weight:700;color:#fff;background:linear-gradient(180deg,#e5584a,#b3271c);border:0;border-radius:10px;box-shadow:0 3px 10px rgba(179,39,28,.45)}
.table-card.has-bg[data-live-room]{background:linear-gradient(rgba(10,14,12,.32),rgba(10,14,12,.45)),var(--card-bg) center/cover no-repeat;border-color:rgba(228,184,92,.55)}
.room-settings-item i.theme-name{font-size:13px}
.room-settings-item i.sound-switch{font-style:normal;min-width:44px;padding:3px 10px;border-radius:999px;text-align:center;font-size:12px;font-weight:700}
.room-settings-item i.sound-switch.on{background:#7be06a;color:#10260f}
.room-settings-item i.sound-switch.off{background:rgba(255,255,255,.14);color:rgba(255,255,255,.6)}
.shark-module{margin:14px 0 10px;padding:14px 12px 12px;border-radius:16px;background:linear-gradient(180deg,rgba(16,40,52,.78),rgba(8,14,18,.86));border:1px solid rgba(86,190,230,.38);box-shadow:0 8px 24px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.04)}
.shark-module .section-heading{margin-top:0}
.shark-module .section-heading h2{color:#9fe3ff;letter-spacing:.02em}
.shark-module .stats-grid{margin-top:8px}
.shark-module .analytics{margin-top:12px}
.recharge-prompt{position:fixed;inset:0;z-index:2147482000}
.recharge-mask{position:absolute;inset:0;background:#0007}
.recharge-sheet{position:absolute;left:0;right:0;bottom:0;padding:10px 16px calc(env(safe-area-inset-bottom,0px) + 22px);border-radius:26px 26px 0 0;background:#22243a;color:#eef0f6;text-align:center;box-shadow:0 -14px 50px #000b;animation:rechargeUp .22s ease}
.recharge-grip{display:block;width:44px;height:5px;margin:0 auto 12px;border-radius:3px;background:#4a4d66}
.recharge-sheet h3{margin:0 0 22px;font-size:18px;font-weight:600}
.recharge-balance{display:flex;align-items:center;gap:8px;padding:18px 4px 22px;border-bottom:1px solid #ffffff12;font-size:15px;text-align:left}
.recharge-coin{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#12a96f;color:#fff;font-size:15px}
.recharge-balance strong{color:#3fd25a;font-size:21px;font-weight:600}
.recharge-sheet p{margin:34px 0 40px;font-size:15px;color:#a3a7bd}
.recharge-go{width:100%;border:0;border-radius:8px;padding:17px;background:#23a07f;color:#fff;font:inherit;font-size:17px;font-weight:600}
@keyframes rechargeUp{from{transform:translateY(100%)}to{transform:none}}
.recharge-open .pt-bottom,.recharge-open .pt-actions{visibility:hidden}
.buyin-range{margin:14px 0 14px!important;font-size:13px!important;line-height:1.7!important}
.buyin-form{display:grid;gap:12px}
.buyin-form input{width:100%;padding:15px;border:1px solid #ffffff22;border-radius:10px;background:#15172a;color:#fff;font:inherit;font-size:20px;text-align:center}
.buyin-form .form-error{color:#ff9b9b;font-size:12px}
.buyin-sheet .recharge-balance{padding:12px 4px 12px}
/* 工具钮横排，不再把牌桌往上顶：牌桌向下拉满 */
.pt-root .pt-bottom{flex-wrap:wrap;gap:4px 8px}
.pt-root .pt-tools{flex-direction:row;width:100%;align-self:auto}
.pt-root .pt-actions{flex:1 1 100%}
/* 四个按钮：放在最下方，横排均分整行 */
.pt-root .pt-tools{order:99;justify-content:space-between;gap:10px;margin-top:2px}
.pt-root .pt-tool{flex:1 1 0;width:auto;height:42px;border-radius:12px;font-size:18px}
/* 牌桌上收：给筹码和下注按钮留出位置 */
.pt-felt{margin-bottom:34px}
.pt-root .pt-rail{inset:5% 4% 1%}
.pt-root .pt-felt-line{inset:11% 10% 7%}
.pt-root .pt-bottom{padding-top:10px}

.danjiao-frame{position:fixed;inset:0;z-index:9999;background:#0b1410;display:flex;flex-direction:column}
.danjiao-frame[hidden]{display:none}
.danjiao-back{flex:none;height:40px;border:0;background:#0b1410;color:#e9c46a;font-size:15px;font-weight:700;text-align:left;padding:0 14px;padding-top:env(safe-area-inset-top)}
.danjiao-iframe{flex:1;width:100%;border:0;background:#0b1410}
.arcade-icon.danjiao{background:linear-gradient(135deg,#4a2462,#14291f);font-size:26px}

.table-list>.arcade-card[data-game="danjiao"]{background-image:repeating-conic-gradient(from 0deg at 78% 60%,rgba(233,196,106,.16) 0 1.4deg,transparent 1.4deg 8deg),radial-gradient(circle at 78% 60%,rgba(233,170,40,.28),transparent 55%),linear-gradient(105deg,#120d06,#0a0805);background-size:cover;border-color:rgba(233,196,106,.5);box-shadow:inset 0 0 0 1px rgba(255,235,170,.06),0 8px 18px rgba(0,0,0,.3)}
.table-list>.arcade-card[data-game="danjiao"] .arcade-copy b{color:#f3d98b}
.table-list>.arcade-card[data-game="danjiao"] .arcade-tag{background:rgba(20,14,6,.7);border-color:rgba(233,196,106,.45);color:#f3d98b}
.table-list>.arcade-card[data-game="danjiao"] .arcade-open{background:linear-gradient(180deg,#f3d98b,#c9962f);color:#2a1a02}

/* ===== 赢家放光（参照参考视频）：头像青白+金色光晕、旋转光环、赢家手牌发光、其余玩家变暗 ===== */
.pt-seat.winner{z-index:6}
.pt-seat.winner .pt-avatar{border-color:#fff3b0;box-shadow:0 0 0 3px rgba(255,243,176,.6),0 0 16px 5px rgba(120,230,255,.8),0 0 38px 12px rgba(255,214,102,.7);animation:pt-win-glow 1s ease-in-out infinite alternate}
@keyframes pt-win-glow{to{box-shadow:0 0 0 6px rgba(255,243,176,.25),0 0 26px 10px rgba(120,230,255,1),0 0 58px 22px rgba(255,214,102,.9)}}
.pt-seat.winner .pt-avatar::after{content:"";position:absolute;inset:-9px;border-radius:50%;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 58%,rgba(255,255,255,.95) 80%,transparent 94%);-webkit-mask:radial-gradient(circle,transparent 60%,#000 62%);mask:radial-gradient(circle,transparent 60%,#000 62%);animation:pt-win-spin 1.3s linear infinite}
@keyframes pt-win-spin{to{transform:rotate(360deg)}}
.pt-seat.winner .pt-cards .playing-card{box-shadow:0 0 0 2px #fff3b0,0 0 12px 4px rgba(120,230,255,.95),0 0 22px 6px rgba(255,214,102,.7);animation:pt-card-glow .9s ease-in-out infinite alternate}
@keyframes pt-card-glow{to{box-shadow:0 0 0 2px #fff,0 0 18px 7px rgba(120,230,255,1),0 0 32px 10px rgba(255,214,102,.95)}}
.pt-felt:has(.pt-seat.winner) .pt-seat:not(.winner){opacity:.5;filter:saturate(.6) brightness(.8);transition:opacity .4s,filter .4s}
.pt-win{background:linear-gradient(180deg,#fff7c2,#f4c542);box-shadow:0 0 14px rgba(255,214,102,.95);font-size:14px}
.fx-coin{position:absolute;width:13px;height:13px;margin:-6px 0 0 -6px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6bf,#f4c542 55%,#a8760f);box-shadow:0 0 7px rgba(255,214,102,.95);z-index:8;pointer-events:none}
.fx-spark{position:absolute;margin:-8px 0 0 -8px;color:#fff6bf;font-size:15px;line-height:16px;text-shadow:0 0 8px #7fe9ff,0 0 14px #ffd666;z-index:8;pointer-events:none}
/* ===== 发牌细节：牌背落下 → 翻面（牌背先露出，转到侧面再翻出正面） ===== */
.pt-board .playing-card.card-dealing,.pt-seat .playing-card.card-dealing{position:relative;animation:deal-flip .62s cubic-bezier(.2,.7,.25,1) var(--dd,0s) both}
.pt-board .playing-card.card-dealing::after,.pt-seat .playing-card.card-dealing::after{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #fff;background:repeating-linear-gradient(45deg,#b3202a 0 4px,#8f1822 4px 8px);box-sizing:border-box;animation:deal-back .62s steps(1) var(--dd,0s) both;pointer-events:none}
@keyframes deal-flip{0%{opacity:0;transform:translateY(-28px) scale(1.2)}22%{opacity:1;transform:translateY(0) scale(1.08)}46%{transform:scale(1.08) perspective(420px) rotateY(88deg)}54%{transform:scale(1.08) perspective(420px) rotateY(-88deg)}78%{transform:scale(1.04) perspective(420px) rotateY(0);filter:brightness(1.35)}100%{opacity:1;transform:none;filter:none}}
@keyframes deal-back{0%{opacity:1}50%{opacity:0}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.pt-seat.winner .pt-avatar::after{animation:none}}

/* ===== 买保险：紧凑面板 + 面板内直接显示底牌/公共牌，不再把牌桌压扁挡住牌 ===== */
.pt-root .insurance-panel.active{margin:2px 8px;padding:7px 9px;border-radius:12px;max-height:42dvh;overflow:auto;flex:none}
.insurance-panel.active .ins-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.insurance-panel.active .ins-top strong{font-size:12px}
.insurance-panel.active .insurance-timer{margin:0;white-space:nowrap}
.ins-cards{display:flex;align-items:center;gap:4px;margin:5px 0;padding:4px 6px;border-radius:8px;background:rgba(0,0,0,.38);overflow-x:auto}
.ins-cards em{font-style:normal;font-size:10px;font-weight:700;color:#f4d35e;margin:0 2px;white-space:nowrap}
.ins-cards .playing-card{width:27px;height:38px;border-radius:4px;flex:none}
.ins-cards .sep{flex:none;width:1px;height:28px;background:rgba(255,255,255,.22);margin:0 4px}
.insurance-panel.active .insurance-offer{margin:4px 0;padding:6px 8px}
.insurance-panel.active .insurance-offer-head{flex-wrap:wrap}
.insurance-panel.active .insurance-offer label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}
.insurance-panel.active .insurance-offer input{margin:0;padding:5px 8px;font-size:13px;width:92px;flex:none}
.insurance-panel.active .insurance-offer small{display:block;margin-top:2px;font-size:10px;line-height:1.4}
.insurance-panel.active .choice-row{display:flex;gap:8px;margin:5px 0 0;padding:0;border:0;background:transparent}
.insurance-panel.active .choice-row button{flex:1;height:36px;margin:0;padding:0 8px;font-size:13px;text-align:center;justify-content:center}
.insurance-panel.active .choice-row button.choice-row{width:auto;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.35);color:#fff;border-radius:10px}

/* ===== 抓头（straddle）：紫色标签，参照视频 ===== */
.pt-seat .pt-action.act-straddle{background:linear-gradient(180deg,#b57bff,#6a3fd2);color:#fff;border-color:rgba(255,255,255,.45);box-shadow:0 4px 14px rgba(120,70,220,.55);animation:act-straddle-pop .5s ease-out both}
.pt-seat .pt-action.act-straddle .act-en{display:none}
@keyframes act-straddle-pop{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.7)}70%{transform:translateX(-50%) translateY(0) scale(1.08)}100%{opacity:1;transform:translateX(-50%) scale(1)}}

/* ===== 对手的牌放大，行动标签/喊话气泡抬到牌的上方，不再盖住对手的牌 ===== */
.pt-seat:not(.me) .pt-cards .playing-card{width:38px;height:53px;border-radius:6px}
.pt-seat:not(.me) .pt-cards .playing-card b{font-size:13px}
.pt-seat:not(.me) .pt-cards .playing-card i{font-size:18px}
.pt-seat:not(.me) .pt-cards.backs .playing-card.back,.pt-seat:not(.me) .pt-cards .playing-card.back{width:32px;height:45px;border-width:1px}
.pt-seat:not(.me):not(.top):has(.pt-cards) .pt-action,.pt-seat:not(.me):not(.top):has(.pt-cards) .pt-bubble{bottom:calc(100% + 58px)}
.pt-seat:not(.me):not(.top):has(.pt-cards) .pt-win{top:auto;bottom:calc(100% + 60px)}
@media(max-height:700px){.pt-seat:not(.me) .pt-cards .playing-card{width:32px;height:45px}.pt-seat:not(.me):not(.top):has(.pt-cards) .pt-action,.pt-seat:not(.me):not(.top):has(.pt-cards) .pt-bubble{bottom:calc(100% + 50px)}}


/* 视频同款 · 翡翠绿。使用原有座位与行动布局，适配 2–9 人桌。 */
.pt-root.video{background:radial-gradient(ellipse at 48% 40%,#369e7b 0%,#238765 40%,#146047 76%,#0b3b2c 100%);color:#eef9ed}
.pt-root.video::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:repeating-linear-gradient(0deg,transparent 0 2px,#b2e4bf14 2px 3px),repeating-linear-gradient(90deg,transparent 0 3px,#002e1f22 3px 4px)}
.pt-root.video .pt-rail{inset:2% 0 0;border:1px solid #a0d8ad24;border-radius:48% / 25%;background:radial-gradient(ellipse at 50% 38%,#72c99b0f,transparent 70%);box-shadow:inset 0 0 60px #042c241a}
.pt-root.video .pt-rail::before,.pt-root.video .pt-rail::after{display:none}
.pt-root.video .pt-felt-line{inset:7% 6% 5%;border:1px solid #addfb327;border-radius:46% / 24%;box-shadow:none}
.pt-root.video .pt-logo{color:#bde7bb28;font-size:20px;letter-spacing:.12em;text-shadow:none}
.pt-root.video .pt-title b{color:#e6f4d9;font-size:13px;font-weight:600;letter-spacing:.03em;text-shadow:none}
.pt-root.video .pt-title small{color:#c8e5c9b8}
.pt-root.video .pt-badge{background:#103e3266;border:1px solid #b0e4c025;color:#c2ead1;border-radius:5px;font-size:9px}
.pt-root.video .pt-avatar{border:2px solid #d2e9bdad;border-radius:50%;background:linear-gradient(145deg,#7cbfa0,#27644f);box-shadow:0 2px 7px #062d2444}
.pt-root.video .pt-avatar .pt-photo,.pt-root.video .pt-avatar .pt-initial{border-radius:50%}
.pt-root.video .pt-seat.me .pt-avatar{border-color:#f2d5a2;background:linear-gradient(145deg,#ffbf6b,#e78b3e);box-shadow:0 2px 7px #062d2444}
.pt-root.video .pt-seat.to-act .pt-avatar{background:conic-gradient(#c4f679 var(--ring,100%),#164d3c 0) border-box;border-color:transparent;animation:none;box-shadow:0 0 0 2px #c0ef7944,0 0 14px #b7f96c44}
.pt-root.video .pt-seat.to-act .pt-avatar::before{background:#337d60}
.pt-root.video .pt-seat.winner .pt-avatar{border-color:#f7e486;box-shadow:0 0 0 2px #f7e48666,0 0 16px #f7e48655}
.pt-root.video .pt-name{background:#123b329e;color:#f4f8e8;border:0;border-radius:3px;font-size:10px;padding:2px 5px}
.pt-root.video .pt-stack{color:#e9e89e;font-size:11px;text-shadow:0 1px 2px #163c30}
.pt-root.video .pt-action{background:#99efc4;color:#164e3c;border:1px solid #c9ffe478;border-radius:5px;box-shadow:0 2px 4px #11433133;padding:3px 8px}
.pt-root.video .pt-action.act-fold{background:#cfb6ce;color:#523650;border-color:#ecd9ea88}
.pt-root.video .pt-action.act-raise,.pt-root.video .pt-action.act-bet{background:#c2f585;color:#305721;border-color:#ddffb7}
.pt-root.video .pt-action.act-allIn{background:#bfa5f7;color:#3a2761;border-color:#dccdff}
.pt-root.video .pt-status{background:#194c3fc4;color:#d5e6d7;border-radius:5px}
.pt-root.video .pt-seat.folded{opacity:.58}
.pt-root.video .pt-seat.empty .pt-sit{background:#103b311c;border:1px dashed #b2dcb455;color:#c6dfbc99}
.pt-root.video .pt-pot{display:inline-block;border:0;border-radius:5px;padding:3px 10px;background:#164b3e9c;color:#eaf5d5;font-size:11px;box-shadow:none}
.pt-root.video .pt-pot b{font-size:15px;color:#f1f0b4;text-shadow:none}
.pt-root.video .pt-pot small{color:#c9e5cb;font-size:9px}
.pt-root.video .pt-board{gap:3px;margin:8px 0}
.pt-root.video .pt-slot{border:1px solid #98dcbb33;background:#8fdbb52b;border-radius:3px}
.pt-root.video .pt-board .playing-card{border-radius:3px;box-shadow:0 2px 4px #103d3244}
.pt-root.video .pt-street,.pt-root.video .pt-info{color:#c7e5bfa8}
.pt-root.video .pt-info{font-size:11px;line-height:1.8}
.pt-root.video .pt-chip{border:0;border-radius:4px;background:#103d3238;box-shadow:none;color:#f1edbb}
.pt-root.video .pt-chip b{font-size:10px;color:#ebefbf}
.pt-root.video .pt-chip-stack i{background:radial-gradient(circle,#9ee277 0 40%,#357d43 42% 57%,#c0f5a2 60% 70%,#4b9853 72%);border-color:#c6f3ad;box-shadow:0 1px 2px #183e2b88}
.pt-root.video .pt-bottom{background:linear-gradient(transparent,#0a332bd9);border-top:0}
.pt-root.video .pt-tool{border:1px solid #a4d9bc44;border-radius:8px;background:#184c3e99;color:#d5ead3;box-shadow:none}
.pt-root.video .pt-btn{border:1px solid #daf6d066;border-radius:7px;box-shadow:0 2px 4px #062c2455,inset 0 1px #fff2}
.pt-root.video .pt-btn.fold{background:linear-gradient(#c7b4c7,#a78fa9);color:#362b3a}
.pt-root.video .pt-btn.call,.pt-root.video .pt-btn.confirm{background:linear-gradient(#b8ed94,#80c46a);color:#214523}
.pt-root.video .pt-btn.raise{background:linear-gradient(#9be2cb,#5caf97);color:#143f37}
.pt-root.video .pt-btn.allin{background:linear-gradient(#c5b3ef,#9879cc);color:#302249}
/* 视频主题下经典皮肤使用红色牌背；其他手选皮肤保留。 */
#modal[data-card-skin="classic"] .pt-root.video .playing-card.back{border:1px solid #f4c5bc;border-radius:3px;background:repeating-linear-gradient(45deg,#cb5262 0 2px,#bd4355 2px 4px);box-shadow:inset 0 0 0 2px #e99599,inset 0 0 0 3px #f1b3b4,0 2px 4px #103d3244}
.video-theme-note{margin:4px 14px 12px;color:#b7cdbb;font-size:12px;line-height:1.65}
.room-settings-options [data-room-theme="video"]{flex-basis:100%;background:linear-gradient(120deg,#236f52,#184a3b);color:#dff2c8;border-color:#75ae8e}
.room-settings-options [data-room-theme="video"][aria-pressed="true"]{border-color:#b6e99b;box-shadow:inset 0 0 0 1px #b6e99b}
.room-volume-control{display:flex;flex-direction:column;gap:12px;margin:0;padding:10px 16px 16px;background:#111a14;color:#d2dfcf;font-size:12px;border-bottom:1px solid #ffffff12}
.room-volume-control>span{display:flex;justify-content:space-between}
.room-volume-control output{color:#c2eaa4;font-variant-numeric:tabular-nums}
.room-volume-control input{width:100%;height:24px;accent-color:#a3d77d;margin:0;touch-action:pan-y}
@media(prefers-reduced-motion:reduce){.pt-root.video .pt-seat.winner .pt-avatar{animation:none}}

/* 華人俱乐部牌背标记：静态暗牌与发牌翻面统一。 */
.playing-card.back{position:relative}
.playing-card.back::before{content:"華";position:absolute;inset:0;display:grid;place-items:center;color:#fff1ce;font-family:"Songti SC","Noto Serif CJK TC","PMingLiU",serif;font-size:18px;font-weight:700;line-height:1;text-shadow:0 1px 2px #582533;pointer-events:none}
.pt-board .playing-card.card-dealing::after,.pt-seat .playing-card.card-dealing::after{content:"華";display:grid;place-items:center;color:#fff1ce;font-family:"Songti SC","Noto Serif CJK TC","PMingLiU",serif;font-size:18px;font-weight:700;line-height:1;text-shadow:0 1px 2px #582533}

/* 黑金会所 · 夜景，独立主题 */
.pt-root.lounge{background:#100c09 url(assets/lounge-dress-v2.jpg) center top / cover no-repeat;color:#fff1c4}
.pt-root.lounge::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0003,transparent 24%,#0002 65%,#0009)}
.pt-root.lounge .pt-top{position:relative;background:linear-gradient(#080807a6,transparent);text-shadow:0 2px 4px #000}
.pt-root.lounge .pt-title b{color:#fff1a6;letter-spacing:.04em;font-weight:700}
.pt-root.lounge .pt-title small{color:#eee4cc}
.pt-root.lounge .pt-badge{color:#ffe9a0;background:#080a08bf;border:1px solid #ae853b9c;box-shadow:0 2px 6px #0005}
.pt-root.lounge .pt-felt{margin:clamp(96px,17dvh,180px) 12px 28px;isolation:isolate}
.pt-root.lounge .pt-rail{inset:3% 0 0;border:9px solid transparent;border-radius:49% / 27%;background:radial-gradient(ellipse at 48% 35%,#126b46,#075235 54%,#023b29) padding-box,linear-gradient(125deg,#fff0b4 0%,#d3a34a 12%,#6a431d 27%,#f4d786 41%,#996323 54%,#ffdf92 72%,#7e531e 86%,#f2dca0 100%) border-box;box-shadow:0 0 0 3px #2a2119,0 0 0 5px #675038,0 12px 0 7px #17130f,0 22px 20px #000b,inset 0 0 38px #001e18a6}
.pt-root.lounge .pt-rail::before{content:"";position:absolute;inset:3px;border-radius:inherit;border:1px solid #e6bd5d55;pointer-events:none}
.pt-root.lounge .pt-rail::after{display:none}
.pt-root.lounge .pt-felt-line{inset:12% 8% 8%;border:1px solid #c3aa5055;border-radius:48% / 25%;box-shadow:none}
.pt-root.lounge .pt-logo{top:57%;color:#c3ad5755;font-size:17px;letter-spacing:.12em;text-shadow:none}
.pt-root.lounge .pt-avatar{width:50px;height:50px;border-radius:50%;border:2px solid #d5b66c;background:radial-gradient(circle at 40% 25%,#2e5044,#0c1d18);box-shadow:0 0 0 1px #594a30,0 4px 9px #0009}
.pt-root.lounge .pt-avatar .pt-photo,.pt-root.lounge .pt-avatar .pt-initial{border-radius:50%}
.pt-root.lounge .pt-seat.me .pt-avatar{width:58px;height:58px;border-color:#ffe28a;box-shadow:0 0 0 3px #d7a84055,0 0 18px #ffd16b66}
.pt-root.lounge .pt-seat.to-act .pt-avatar{background:conic-gradient(#ffe28a var(--ring,100%),#352d1b 0) border-box;border-color:transparent;box-shadow:0 0 0 2px #f8db7a55,0 0 18px #ecc66488}
.pt-root.lounge .pt-seat.to-act .pt-avatar::before{background:#15392b}
.pt-root.lounge .pt-seat .pt-name{border:1px solid #c9ad6599;border-bottom:0;border-radius:9px 9px 0 0;background:#060c09e8;color:#fff7d7}
.pt-root.lounge .pt-seat .pt-stack{border:1px solid #c9ad6599;border-top:0;border-radius:0 0 9px 9px;background:#060c09e8;color:#ffe18c;font-size:12px;letter-spacing:.03em}
.pt-root.lounge .pt-seat.empty .pt-sit{width:52px;height:52px;border:2px dashed #e1dcc47a;color:#e1e6d3;background:#0b211c44}
.pt-root.lounge .pt-pot{display:inline-block;background:#030b08d4;border:1px solid #bfa76888;border-radius:10px;color:#f7f3dd;padding:3px 12px;box-shadow:0 3px 6px #0004}
.pt-root.lounge .pt-pot b{color:#ffe6a1;font-size:16px}
.pt-root.lounge .pt-pot small{color:#d2ddce}
.pt-root.lounge .pt-board{gap:4px}
.pt-root.lounge .pt-board .playing-card{border:1px solid #d4c9a8;box-shadow:0 3px 4px #001f16aa;border-radius:5px}
.pt-root.lounge .pt-slot{border:1px solid #b6c69a44;background:#06291c55;border-radius:5px}
.pt-root.lounge .pt-action{border:1px solid #d4b46b88;background:#06120ce6;color:#fff2c6;border-radius:6px;box-shadow:0 2px 5px #0005}
.pt-root.lounge .pt-action.act-fold{color:#d0c6aa;background:#10130ddd}
.pt-root.lounge .pt-win{background:linear-gradient(#ffed9b,#f8cc53);color:#241704;text-shadow:none;border-radius:12px;box-shadow:0 0 16px #ffdc6b88}
.pt-root.lounge .pt-info,.pt-root.lounge .pt-street{color:#e3e1bb}
.pt-root.lounge .pt-bottom{background:linear-gradient(transparent,#080a08c9 24%,#080a08ed);padding-top:12px}
.pt-root.lounge .pt-tool{background:linear-gradient(#171713dd,#050806e8);border:1px solid #ac8f4766;color:#fff1c9;border-radius:10px;box-shadow:inset 0 1px #e2c17b22,0 3px 5px #0006}
.pt-root.lounge .pt-btn{border:1px solid #dec58a77;border-radius:8px;box-shadow:inset 0 1px #fff3,0 3px 6px #0008}
.pt-root.lounge .pt-btn.confirm,.pt-root.lounge .pt-btn.raise{background:linear-gradient(#fbe4a6,#cca24b);color:#30250b}
.pt-root.lounge .pt-btn.call{background:linear-gradient(#307d55,#145135);color:#fff1c4}
.pt-root.lounge .pt-btn.fold{background:linear-gradient(#39332b,#1b1916);color:#e8deca}
.pt-root.lounge .pt-btn.allin{background:linear-gradient(#a04b35,#602719);color:#fff0c4}
#modal[data-card-skin="classic"] .pt-root.lounge .playing-card.back{border-color:#ecd490;background:repeating-linear-gradient(45deg,#1a251d 0 3px,#29382b 3px 6px);box-shadow:inset 0 0 0 2px #102018,inset 0 0 0 3px #c3a65b}
.room-settings-options [data-room-theme="lounge"]{flex-basis:100%;background:linear-gradient(120deg,#392e1c,#171b13);border-color:#b69955;color:#ffe9b5}
.room-settings-options [data-room-theme="lounge"][aria-pressed="true"]{border-color:#ffe7a2;box-shadow:inset 0 0 0 1px #e6c879}
@media(max-height:700px){.pt-root.lounge .pt-felt{margin-top:76px;margin-bottom:24px}.pt-root.lounge .pt-avatar{width:42px;height:42px}.pt-root.lounge .pt-seat.me .pt-avatar{width:48px;height:48px}.pt-root.lounge .pt-logo{font-size:14px}}
@media(min-width:700px){.pt-root.lounge{background-size:cover;background-position:center 20%}.pt-root.lounge .pt-felt{margin-top:18dvh}}

/* 会所德州桌修正：宽椭圆桌沿，座位沿桌边排布。 */
.pt-root.lounge .pt-felt{flex:0 1 auto;width:calc(100% - 24px);max-width:680px;height:clamp(230px,calc((100vw - 24px) / 1.22),440px);min-height:210px;margin:clamp(96px,21dvh,210px) auto 28px}
.pt-root.lounge .pt-rail{inset:5% 0 0;border-radius:50%;border-width:9px}
.pt-root.lounge .pt-felt-line{inset:11% 6% 6%;border-radius:50%}
.pt-root.lounge .pt-center{top:53%;width:64%;display:flex;flex-direction:column;align-items:center;gap:4px}
.pt-root.lounge .pt-board{order:0;flex:none;gap:3px;margin:0}
.pt-root.lounge .pt-pot{order:1;padding:2px 10px;font-size:10px;line-height:1.2}
.pt-root.lounge .pt-pot b{font-size:13px}
.pt-root.lounge .pt-pot small{font-size:9px}
.pt-root.lounge .pt-street{order:2;font-size:9px}
.pt-root.lounge .pt-insuring{order:3}
.pt-root.lounge .pt-board .playing-card,.pt-root.lounge .pt-slot{width:34px;height:47px;flex-shrink:0;border-radius:4px}
.pt-root.lounge .pt-board .playing-card b{font-size:13px}
.pt-root.lounge .pt-board .playing-card i{font-size:17px}
.pt-root.lounge .pt-logo{top:29%;font-size:14px;letter-spacing:.1em}
.pt-root.lounge .pt-seat{width:68px;gap:0}
.pt-root.lounge .pt-avatar{width:40px;height:40px;font-size:19px}
.pt-root.lounge .pt-seat .pt-name,.pt-root.lounge .pt-seat .pt-stack{width:62px;max-width:62px;font-size:9px}
.pt-root.lounge .pt-seat.me{width:100px}
.pt-root.lounge .pt-seat.me .pt-avatar{width:48px;height:48px}
.pt-root.lounge .pt-seat.me .pt-name,.pt-root.lounge .pt-seat.me .pt-stack{width:76px;max-width:76px}
.pt-root.lounge .pt-seat:not(.me) .pt-cards .playing-card{width:21px;height:29px;border-width:1px}
.pt-root.lounge .pt-seat:not(.me) .pt-cards .playing-card b{font-size:9px}
.pt-root.lounge .pt-seat:not(.me) .pt-cards .playing-card i{font-size:11px}
.pt-root.lounge .pt-seat:not(.me) .playing-card.back::before{font-size:13px}
.pt-root.lounge .pt-seat.me .pt-cards .playing-card{width:38px;height:53px}
.pt-root.lounge .pt-seat:not(.me):not(.top) .pt-cards{bottom:calc(100% - 8px)}
.pt-root.lounge .pt-action{max-width:100px;padding:2px 6px;font-size:10px;gap:3px}
.pt-root.lounge .pt-action small{display:none}
.pt-root.lounge .pt-chip{padding:1px 4px;gap:3px}
.pt-root.lounge .pt-chip b{font-size:9px}
.pt-root.lounge .pt-chip-stack{transform:scale(.7);transform-origin:center}
.pt-root.lounge .pt-seat.empty .pt-sit{width:39px;height:39px;font-size:9px}
.pt-root.lounge .pt-bottom{margin-top:auto}
.pt-root.lounge[data-capacity="9"] .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-avatar{width:35px;height:35px}
.pt-root.lounge[data-capacity="9"] .pt-seat.me .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-seat.me .pt-avatar{width:46px;height:46px}
@media(max-height:700px){.pt-root.lounge .pt-felt{margin-top:76px;margin-bottom:24px;min-height:200px}.pt-root.lounge .pt-rail{border-width:7px}}
@media(min-width:700px){.pt-root.lounge .pt-board .playing-card,.pt-root.lounge .pt-slot{width:48px;height:66px}.pt-root.lounge .pt-avatar{width:50px;height:50px}.pt-root.lounge .pt-seat .pt-name,.pt-root.lounge .pt-seat .pt-stack{font-size:11px}}

/* 横屏德州：左侧宽桌面，右侧独立操作区。 */
@media(orientation:landscape) and (min-width:560px){
 .pt-root.lounge{display:grid;grid-template-columns:minmax(0,1fr) clamp(210px,27vw,300px);grid-template-rows:48px minmax(0,1fr);column-gap:12px;padding:0 max(12px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));box-sizing:border-box;background-position:center 20%}
 .pt-root.lounge .pt-top{grid-column:1;grid-row:1;padding:7px 0 3px;min-width:0;align-self:start}
 .pt-root.lounge .pt-title b{font-size:13px}
 .pt-root.lounge .pt-title small{font-size:9px}
 .pt-root.lounge .pt-badges{top:8px;right:calc(clamp(210px,27vw,300px) + 26px);gap:3px;max-width:110px}
 .pt-root.lounge .pt-badge{font-size:8px;padding:2px 5px}
 .pt-root.lounge .pt-felt{grid-column:1;grid-row:2;align-self:stretch;justify-self:stretch;width:100%;height:100%;min-height:0;max-width:none;max-height:none;margin:0;flex:none}
 .pt-root.lounge .pt-rail{inset:5% 3% 5%;border-radius:50%;border-width:8px}
 .pt-root.lounge .pt-felt-line{inset:12% 9% 12%;border-radius:50%}
 .pt-root.lounge .pt-seat.me{top:89%!important}
 .pt-root.lounge .pt-logo{top:27%;font-size:15px}
 .pt-root.lounge .pt-center{top:51%;width:60%}
 .pt-root.lounge .pt-board .playing-card,.pt-root.lounge .pt-slot{width:clamp(30px,5.1vw,48px);height:clamp(42px,7.1vw,66px)}
 .pt-root.lounge .pt-bottom{grid-column:2;grid-row:1 / 3;align-self:stretch;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:8px;min-height:0;overflow-y:auto;margin:8px 0 0;padding:12px 10px;background:linear-gradient(145deg,#15150eef,#060b08f5);border:1px solid #b79a5266;border-radius:15px;box-shadow:0 8px 22px #0007}
 .pt-root.lounge .pt-actions{flex:0 0 auto;width:100%}
 .pt-root.lounge .pt-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;margin-top:4px;order:99}
 .pt-root.lounge .pt-tool{width:100%;height:36px;min-width:0;font-size:17px}
 .pt-root.lounge .pt-tools .pt-tool:nth-child(5){grid-column:1 / -1;height:30px}
 .pt-root.lounge .pt-chip-row{gap:5px;flex-wrap:wrap}
 .pt-root.lounge .pt-chipb{width:36px;height:36px;font-size:10px;border-width:2px}
 .pt-root.lounge .pt-bar-row,.pt-root.lounge .pt-bar-row.four{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .pt-root.lounge .pt-bar .pt-btn{min-height:44px;font-size:12px;gap:2px;box-shadow:inset 0 1px #fff2,0 2px 4px #0006}
 .pt-root.lounge .pt-bar .pt-btn em{font-size:10px;padding:2px 4px}
 .pt-root.lounge .pt-bar .pt-btn.fold{background:linear-gradient(#39332b,#1b1916);color:#e8deca}
 .pt-root.lounge .pt-bar .pt-btn.call{background:linear-gradient(#307d55,#145135);color:#fff1c4}
 .pt-root.lounge .pt-bar .pt-btn.raise{background:linear-gradient(#fbe4a6,#cca24b);color:#30250b}
 .pt-root.lounge .pt-bar .pt-btn.allin{background:linear-gradient(#a04b35,#602719);color:#fff0c4}
 .pt-root.lounge .pt-actions .quick-raise-row button{padding:5px 2px;font-size:10px}
 .pt-root.lounge .insurance-panel.active{position:absolute;top:54px;right:14px;width:clamp(200px,25vw,280px);box-sizing:border-box;max-height:calc(100dvh - 70px);margin:0;z-index:8}
 .pt-root.lounge .pt-result{position:absolute;left:18px;bottom:3px;max-width:calc(100% - clamp(210px,27vw,300px) - 48px);max-height:26px;overflow:auto;font-size:9px;margin:0;z-index:4}
}
@media(orientation:landscape) and (min-width:560px) and (max-height:420px){
 .pt-root.lounge{grid-template-rows:40px minmax(0,1fr)}
 .pt-root.lounge .pt-avatar,.pt-root.lounge[data-capacity="9"] .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-avatar{width:32px;height:32px;font-size:16px}
 .pt-root.lounge .pt-seat.me .pt-avatar,.pt-root.lounge[data-capacity="9"] .pt-seat.me .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-seat.me .pt-avatar{width:38px;height:38px}
 .pt-root.lounge .pt-seat .pt-name,.pt-root.lounge .pt-seat .pt-stack{font-size:8px;padding-top:1px;padding-bottom:1px}
 .pt-root.lounge .pt-seat.me .pt-cards .playing-card{width:31px;height:44px}
 .pt-root.lounge .pt-seat:not(.me) .pt-cards .playing-card{width:18px;height:25px}
 .pt-root.lounge .pt-action{font-size:9px;padding:1px 5px}
 .pt-root.lounge .pt-logo{font-size:12px}
 .pt-root.lounge .pt-bottom{padding:8px;gap:5px}
}

/* 用户参考图：荷官上方居中，牌桌全宽，操作栏整行置底。 */
@media(orientation:landscape) and (min-width:560px){
 .pt-root.lounge{display:block;padding:0;background:#100e0a url(assets/lounge-wide-v1.jpg) center top / cover no-repeat}
 .pt-root.lounge .pt-top{position:absolute;left:max(12px,env(safe-area-inset-left));top:6px;width:32%;padding:6px 9px;border:1px solid #d8bc6655;border-radius:0 0 14px 14px;background:#080b0be0;z-index:5;text-align:left}
 .pt-root.lounge .pt-title{text-align:left}
 .pt-root.lounge .pt-title b{font-size:14px;letter-spacing:.04em}
 .pt-root.lounge .pt-badges{top:12px;right:max(12px,env(safe-area-inset-right));max-width:28%;flex-direction:row;flex-wrap:wrap;justify-content:flex-end}
 .pt-root.lounge .pt-badge{font-size:10px;padding:4px 8px}
 .pt-root.lounge .pt-felt{position:absolute;inset:27% 18px clamp(80px,16dvh,116px);width:auto;height:auto;min-height:0;max-width:none;max-height:none;margin:0}
 .pt-root.lounge .pt-rail{inset:6% 0 0;border-radius:50%;border:10px solid transparent;background:radial-gradient(ellipse at 48% 30%,#1b6146,#0c4934 56%,#062f25) padding-box,linear-gradient(120deg,#151615,#54442b 16%,#e1bd69 28%,#4f3d21 38%,#161714 52%,#b48a45 73%,#22231c 88%,#5f4b2d) border-box;box-shadow:0 0 0 3px #191b15,0 5px 0 5px #080b09,0 11px 18px #0009,inset 0 0 40px #001e18aa}
 .pt-root.lounge .pt-felt-line{inset:29% 21% 23%;border:1px solid #d4b46499;border-radius:50%}
 .pt-root.lounge .pt-logo{top:24%;font-size:14px;color:#d6b97099;letter-spacing:.1em}
 .pt-root.lounge .pt-center{top:51%;width:55%;gap:4px}
 .pt-root.lounge .pt-pot{background:#060c09e6;padding:2px 16px;min-width:90px;border-radius:18px;color:#e6ce90}
 .pt-root.lounge .pt-pot b{font-size:15px}
 .pt-root.lounge .pt-street{font-size:9px;color:#d8d0ae}
 .pt-root.lounge .pt-board .playing-card,.pt-root.lounge .pt-slot{width:clamp(30px,4.6vw,56px);height:clamp(42px,6.4vw,78px);box-shadow:0 3px 6px #021d16aa}
 .pt-root.lounge .pt-seat.me{top:84%!important;left:79%!important;width:112px}
 .pt-root.lounge .pt-seat.me .pt-cards{right:auto;left:calc(100% - 18px);bottom:26px;transform:none}
 .pt-root.lounge .pt-seat.me .pt-name,.pt-root.lounge .pt-seat.me .pt-stack{width:94px;max-width:94px}
 .pt-root.lounge .pt-seat:not(.me) .pt-cards{top:calc(100% + 1px);bottom:auto;left:50%;transform:translateX(-50%)}
 .pt-root.lounge .pt-seat:not(.me).left .pt-cards{left:calc(100% - 10px);top:18px;transform:none}
 .pt-root.lounge .pt-seat:not(.me).right .pt-cards{left:auto;right:calc(100% - 10px);top:18px;transform:none}
 .pt-root.lounge .pt-seat .pt-name,.pt-root.lounge .pt-seat .pt-stack{background:#060b09dd}
 .pt-root.lounge .pt-bottom{position:absolute;left:0;right:0;bottom:0;display:grid;grid-template-columns:minmax(100px,15%) minmax(0,1fr);align-items:center;column-gap:12px;height:clamp(74px,15dvh,110px);min-height:0;max-height:none;margin:0;padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border:0;border-top:1px solid #b297514d;border-radius:0;background:linear-gradient(#060b12f2,#03060bf7);overflow:visible;box-shadow:0 -5px 16px #0007;z-index:7}
 .pt-root.lounge .pt-actions{grid-column:2;grid-row:1;width:100%;min-width:0;position:relative}
 .pt-root.lounge .pt-tools{grid-column:1;grid-row:1;display:flex;flex-direction:row;justify-content:flex-start;gap:4px;align-items:center;flex-wrap:wrap;margin:0;order:0}
 .pt-root.lounge .pt-tool,.pt-root.lounge .pt-tools .pt-tool:nth-child(5){flex:1 1 24px;min-width:24px;max-width:36px;width:auto;height:34px;padding:0;font-size:17px;border:0;background:transparent;box-shadow:none}
 .pt-root.lounge .pt-bar{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(160px,1fr);align-items:center;gap:4px 12px;width:100%}
 .pt-root.lounge .pt-bar-row.four{grid-column:1;grid-row:1;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
 .pt-root.lounge .pt-bar .pt-btn{min-height:48px;border-radius:10px;font-size:15px;padding:4px 2px}
 .pt-root.lounge .pt-bar .pt-btn.fold{order:0;background:linear-gradient(#e83c3c,#a80d13);color:#fff}
 .pt-root.lounge .pt-bar .pt-btn.call{order:1;background:linear-gradient(#1c80eb,#0c41a4);color:#fff}
 .pt-root.lounge .pt-bar .pt-btn.raise{order:2;background:linear-gradient(#299c4d,#116d29);color:#fff}
 .pt-root.lounge .pt-bar .pt-btn.allin{order:3;background:linear-gradient(#73533a,#3c281b);color:#fff1ca}
 .pt-root.lounge .pt-chip-row{grid-column:2;grid-row:1;flex-wrap:nowrap;flex-direction:row-reverse;gap:5px;justify-content:space-evenly;padding:0}
 .pt-root.lounge .pt-chipb{width:clamp(28px,4vw,48px);height:clamp(28px,4vw,48px);font-size:11px;border-width:2px}
 .pt-root.lounge .pt-timer{grid-column:1 / -1;grid-row:2;height:8px;margin:0}
 .pt-root.lounge .pt-timer span{font-size:8px;line-height:8px}
 .pt-root.lounge .pt-clear{position:absolute;right:0;bottom:calc(100% + 8px);max-width:240px;background:#13140de8;border:1px solid #c7a55e;color:#f9e3aa;border-radius:6px;padding:4px 10px}
 .pt-root.lounge .pt-result{left:24px;bottom:clamp(83px,16dvh,120px);max-width:60%;z-index:6}
 .pt-root.lounge .insurance-panel.active{top:60px;right:12px;width:clamp(230px,30vw,360px);max-height:calc(100dvh - 160px)}
}
@media(orientation:landscape) and (min-width:560px) and (max-height:420px){
 .pt-root.lounge .pt-felt{top:24%;bottom:79px}
 .pt-root.lounge .pt-rail{border-width:7px}
 .pt-root.lounge .pt-bottom{height:72px;padding-top:6px;padding-bottom:6px;column-gap:8px}
 .pt-root.lounge .pt-bar{column-gap:7px;grid-template-columns:minmax(0,1.55fr) minmax(150px,1fr)}
 .pt-root.lounge .pt-bar .pt-btn{min-height:43px;font-size:12px}
 .pt-root.lounge .pt-avatar{width:32px;height:32px}
 .pt-root.lounge .pt-seat.me .pt-avatar{width:38px;height:38px}
 .pt-root.lounge .pt-seat.me .pt-cards{left:calc(100% - 25px);bottom:22px}
 .pt-root.lounge .pt-logo{top:24%;font-size:11px}
 .pt-root.lounge .pt-street{display:none}
 .pt-root.lounge .pt-center{gap:3px}
 .pt-root.lounge .pt-pot{padding:1px 10px;min-width:70px}
 .pt-root.lounge .pt-pot b{font-size:12px}
}

/* 专业德州实体台面：绒布、厚软包扶手、下注线与荷官筹码槽。 */
@media(orientation:landscape) and (min-width:560px){
 .pt-root.lounge{--lounge-footer:clamp(74px,15dvh,110px);background-color:#060b09;background-image:url(assets/professional-holdem-v1.jpg);background-position:center top;background-size:100% calc(100% - var(--lounge-footer));background-repeat:no-repeat}
 .pt-root.lounge::before{background:linear-gradient(#00000012,transparent 35%,#00000008);pointer-events:none}
 .pt-root.lounge .pt-felt{inset:36% 22px calc(var(--lounge-footer) + 8%);width:auto;height:auto;min-height:0;margin:0}
 .pt-root.lounge .pt-rail,.pt-root.lounge .pt-felt-line{display:none}
 .pt-root.lounge .pt-center{top:46%;width:55%;gap:4px}
 .pt-root.lounge .pt-logo{top:12%;color:#e1c77d8c;font-size:13px;letter-spacing:.12em}
 .pt-root.lounge .pt-bottom{height:var(--lounge-footer)}
 .pt-root.lounge .pt-seat.empty .pt-sit{background:#062e2244;border-color:#d9d6ad88}
}
@media(orientation:landscape) and (min-width:560px) and (max-height:420px){
 .pt-root.lounge .pt-felt{inset:36% 18px calc(var(--lounge-footer) + 8%)}
 .pt-root.lounge .pt-logo{top:10%;font-size:10px}
 .pt-root.lounge .pt-center{gap:2px}
 .pt-root.lounge .pt-pot{padding:1px 9px}
}

/* 竖屏同样使用实体德州台面，消除旧大理石背景与CSS圆桌叠加。 */
@media(orientation:portrait),(max-width:559px){
 .pt-root.lounge{--lounge-portrait-footer:120px;display:block;padding:0;background-color:#060b09;background-image:url(assets/professional-portrait-v1.jpg);background-position:center top;background-size:100% calc(100% - var(--lounge-portrait-footer));background-repeat:no-repeat}
 .pt-root.lounge::before{background:linear-gradient(#00000022,transparent 28%,#00000008);pointer-events:none}
 .pt-root.lounge .pt-top{position:absolute;top:calc(env(safe-area-inset-top,0px) + 5px);left:10px;right:10px;padding:6px 8px;background:linear-gradient(#080b09aa,#080b0944);border-radius:10px;z-index:5}
 .pt-root.lounge .pt-title b{font-size:13px}
 .pt-root.lounge .pt-title small{font-size:9px}
 .pt-root.lounge .pt-badges{top:calc(env(safe-area-inset-top,0px) + 58px);right:10px;gap:4px}
 .pt-root.lounge .pt-badge{font-size:8px;padding:2px 6px}
 .pt-root.lounge .pt-felt{position:absolute;inset:33% 12px calc(var(--lounge-portrait-footer) + 14%);width:auto;height:auto;min-height:0;max-width:none;max-height:none;margin:0}
 .pt-root.lounge .pt-rail,.pt-root.lounge .pt-felt-line{display:none}
 .pt-root.lounge .pt-center{top:49%;width:65%;gap:4px}
 .pt-root.lounge .pt-logo{top:28%;color:#d1bc7c66;font-size:12px;letter-spacing:.08em}
 .pt-root.lounge .pt-board{gap:3px}
 .pt-root.lounge .pt-board .playing-card,.pt-root.lounge .pt-slot{width:clamp(29px,8.5vw,42px);height:clamp(41px,11.9vw,59px);flex-shrink:0}
 .pt-root.lounge .pt-board .playing-card b{font-size:12px}
 .pt-root.lounge .pt-board .playing-card i{font-size:16px}
 .pt-root.lounge .pt-pot{padding:2px 10px;font-size:10px;background:#06140ce8}
 .pt-root.lounge .pt-pot b{font-size:13px}
 .pt-root.lounge .pt-pot small{font-size:8px}
 .pt-root.lounge .pt-street{font-size:9px}
 .pt-root.lounge .pt-avatar{width:38px;height:38px}
 .pt-root.lounge .pt-seat.me .pt-avatar{width:46px;height:46px}
 .pt-root.lounge .pt-seat:not(.me) .pt-cards .playing-card{width:20px;height:28px}
 .pt-root.lounge .pt-seat.me .pt-cards .playing-card{width:34px;height:48px}
 .pt-root.lounge .pt-seat.empty .pt-sit{background:#062d2144;border-color:#e2d7ab77}
 .pt-root.lounge .pt-bottom{position:absolute;bottom:0;left:0;right:0;width:100%;display:flex;flex-direction:column;align-items:stretch;gap:6px;height:auto;margin:0;padding:8px 10px calc(env(safe-area-inset-bottom,0px) + 8px);background:linear-gradient(transparent,#060b09eb 24%);border:0;z-index:7}
 .pt-root.lounge .pt-actions{flex:0 0 auto;width:100%}
 .pt-root.lounge .pt-actions p{margin:3px 0 6px;color:#d8dfce;font-size:11px}
 .pt-root.lounge .pt-bar{gap:5px}
 .pt-root.lounge .pt-bar .pt-btn{min-height:44px;font-size:13px;padding:4px 2px}
 .pt-root.lounge .pt-bar .pt-btn em{font-size:10px}
 .pt-root.lounge .pt-chip-row{gap:7px;padding:0}
 .pt-root.lounge .pt-chipb{width:36px;height:36px;font-size:10px;border-width:2px}
 .pt-root.lounge .pt-timer{height:10px}
 .pt-root.lounge .pt-timer span{line-height:10px;font-size:8px}
 .pt-root.lounge .pt-tools{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:8px;width:100%;margin:0;order:99}
 .pt-root.lounge .pt-tool{flex:1;height:36px;min-width:0;font-size:16px}
 .pt-root.lounge .pt-result{position:absolute;bottom:160px;left:12px;right:12px;max-height:32px;overflow:auto;font-size:9px;z-index:5}
}
@media(orientation:portrait) and (max-height:700px){
 .pt-root.lounge{--lounge-portrait-footer:100px}
 .pt-root.lounge .pt-felt{top:32%}
 .pt-root.lounge .pt-avatar{width:32px;height:32px}
 .pt-root.lounge .pt-seat.me .pt-avatar{width:40px;height:40px}
 .pt-root.lounge .pt-logo{font-size:10px}
 .pt-root.lounge .pt-street{display:none}
 .pt-root.lounge .pt-chipb{width:30px;height:30px}
 .pt-root.lounge .pt-bar .pt-btn{min-height:39px;font-size:12px}
 .pt-root.lounge .pt-tool{height:32px}
}

/* 玩家头像与名牌放大，保留原座位中心与牌桌坐标。 */
.pt-root.lounge{--player-avatar-size:54px;--self-avatar-size:64px}
.pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:46px;--self-avatar-size:58px}
.pt-root.lounge .pt-seat{width:88px}
.pt-root.lounge .pt-seat.me{width:112px}
.pt-root.lounge .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-avatar,.pt-root.lounge[data-capacity="9"] .pt-avatar{width:var(--player-avatar-size);height:var(--player-avatar-size);font-size:27px;border-width:3px;flex-shrink:0}
.pt-root.lounge .pt-seat.me .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-seat.me .pt-avatar,.pt-root.lounge[data-capacity="9"] .pt-seat.me .pt-avatar{width:var(--self-avatar-size);height:var(--self-avatar-size);font-size:30px}
.pt-root.lounge .pt-seat .pt-name{width:82px;max-width:82px;font-size:11px;line-height:1.2;padding:3px 5px 1px;margin-top:-8px}
.pt-root.lounge .pt-seat .pt-stack{width:82px;max-width:82px;font-size:13px;line-height:1.2;padding:0 5px 4px}
.pt-root.lounge .pt-seat.me .pt-name,.pt-root.lounge .pt-seat.me .pt-stack{width:94px;max-width:94px}
.pt-root.lounge .pt-seat.me .pt-stack{font-size:14px}
.pt-root.lounge .pt-dealer,.pt-root.lounge .pt-straddle{width:20px;height:20px;font-size:11px}
.pt-root.lounge[data-capacity="8"] .pt-seat:not(.me) .pt-name,.pt-root.lounge[data-capacity="9"] .pt-seat:not(.me) .pt-name{width:72px;max-width:72px;font-size:10px;line-height:1.1;padding-top:2px}
.pt-root.lounge[data-capacity="8"] .pt-seat:not(.me) .pt-stack,.pt-root.lounge[data-capacity="9"] .pt-seat:not(.me) .pt-stack{width:72px;max-width:72px;font-size:11px;line-height:1.1;padding-bottom:2px}
@media(orientation:portrait) and (max-height:700px){
 .pt-root.lounge{--player-avatar-size:48px;--self-avatar-size:58px}
 .pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:42px;--self-avatar-size:54px}
}
@media(orientation:landscape) and (min-width:560px) and (max-height:420px){
 .pt-root.lounge{--player-avatar-size:44px;--self-avatar-size:54px}
 .pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:40px;--self-avatar-size:50px}
 .pt-root.lounge .pt-seat .pt-name{font-size:10px;line-height:1.1;padding-top:2px}
 .pt-root.lounge .pt-seat .pt-stack{font-size:12px;line-height:1.1;padding-bottom:2px}
 .pt-root.lounge .pt-seat.me .pt-stack{font-size:13px}
}

/* 筹码右侧撤回：仅撤回尚未确认的选择。 */
.pt-chip-row{gap:6px}
.pt-chip-options{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;gap:6px}
.pt-chip-undo{flex:0 0 52px;min-height:38px;padding:3px 5px;border:1px solid #d4b77488;border-radius:9px;background:linear-gradient(#282a1e,#111a13);color:#f5dfaa;font:inherit;font-size:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;line-height:1.1}
.pt-chip-undo span{font-size:22px;line-height:1}
.pt-chip-undo:disabled{opacity:.4}
.pt-chip-undo:not(:disabled):active{background:#3c452b;transform:translateY(1px)}
.pt-root.lounge .pt-chip-row{flex-direction:row;gap:6px}
.pt-root.lounge .pt-chip-options{gap:6px}
/* 明显放大；顶部玩家允许覆盖人物背景。 */
.pt-root.lounge{--player-avatar-size:74px;--self-avatar-size:84px;--top-avatar-size:84px}
.pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:58px;--self-avatar-size:74px;--top-avatar-size:66px}
.pt-root.lounge .pt-seat{width:104px}
.pt-root.lounge .pt-seat.me{width:132px}
.pt-root.lounge .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-avatar,.pt-root.lounge[data-capacity="9"] .pt-avatar{width:var(--player-avatar-size);height:var(--player-avatar-size);font-size:36px}
.pt-root.lounge .pt-seat.me .pt-avatar,.pt-root.lounge[data-capacity="8"] .pt-seat.me .pt-avatar,.pt-root.lounge[data-capacity="9"] .pt-seat.me .pt-avatar{width:var(--self-avatar-size);height:var(--self-avatar-size);font-size:39px}
.pt-root.lounge .pt-seat.top .pt-avatar{width:var(--top-avatar-size);height:var(--top-avatar-size);font-size:38px}
.pt-root.lounge .pt-seat .pt-name{width:96px;max-width:96px;font-size:12px;line-height:1.15;padding:4px 5px 1px}
.pt-root.lounge .pt-seat .pt-stack{width:96px;max-width:96px;font-size:15px;line-height:1.15;padding-bottom:4px}
.pt-root.lounge .pt-seat.me .pt-name,.pt-root.lounge .pt-seat.me .pt-stack{width:108px;max-width:108px}
.pt-root.lounge .pt-seat.me .pt-stack{font-size:17px}
.pt-root.lounge[data-capacity="8"] .pt-seat:not(.me) .pt-name,.pt-root.lounge[data-capacity="9"] .pt-seat:not(.me) .pt-name{width:82px;max-width:82px;font-size:11px;padding-top:2px}
.pt-root.lounge[data-capacity="8"] .pt-seat:not(.me) .pt-stack,.pt-root.lounge[data-capacity="9"] .pt-seat:not(.me) .pt-stack{width:82px;max-width:82px;font-size:13px;padding-bottom:2px}
.pt-root.lounge .pt-seat.top{z-index:4}
.pt-root.lounge .pt-seat.me .pt-dealer,.pt-root.lounge .pt-seat.me .pt-straddle{width:23px;height:23px;font-size:12px}
@media(orientation:portrait) and (max-height:700px){
 .pt-root.lounge{--player-avatar-size:66px;--self-avatar-size:78px;--top-avatar-size:76px}
 .pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:54px;--self-avatar-size:66px;--top-avatar-size:60px}
}
@media(orientation:landscape) and (min-width:560px){
 .pt-root.lounge .pt-bar{grid-template-columns:minmax(0,1.3fr) minmax(188px,.9fr)}
 .pt-root.lounge .pt-chip-row{flex-direction:row;gap:4px}
 .pt-root.lounge .pt-chip-options{flex-direction:row-reverse;gap:3px}
 .pt-root.lounge .pt-chipb{width:clamp(24px,3vw,44px);height:clamp(24px,3vw,44px);font-size:10px}
 .pt-root.lounge .pt-chip-undo{flex-basis:46px;min-height:38px;font-size:10px}
}
@media(orientation:landscape) and (min-width:560px) and (max-height:420px){
 .pt-root.lounge{--player-avatar-size:56px;--self-avatar-size:66px;--top-avatar-size:64px}
 .pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:48px;--self-avatar-size:58px;--top-avatar-size:54px}
 .pt-root.lounge .pt-seat .pt-name{font-size:10px;padding-top:2px}
 .pt-root.lounge .pt-seat .pt-stack{font-size:13px;padding-bottom:2px}
 .pt-root.lounge .pt-seat.me .pt-stack{font-size:14px}
}

/* 同一牌桌所有玩家头像统一尺寸，较上一版略缩小。 */
.pt-root.lounge{--player-avatar-size:64px;--self-avatar-size:64px;--top-avatar-size:64px}
.pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:54px;--self-avatar-size:54px;--top-avatar-size:54px}
.pt-root.lounge .pt-avatar,.pt-root.lounge .pt-seat.me .pt-avatar,.pt-root.lounge .pt-seat.top .pt-avatar{font-size:30px}
@media(orientation:portrait) and (max-height:700px){
 .pt-root.lounge{--player-avatar-size:58px;--self-avatar-size:58px;--top-avatar-size:58px}
 .pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:50px;--self-avatar-size:50px;--top-avatar-size:50px}
}
@media(orientation:landscape) and (min-width:560px) and (max-height:420px){
 .pt-root.lounge{--player-avatar-size:50px;--self-avatar-size:50px;--top-avatar-size:50px}
 .pt-root.lounge[data-capacity="8"],.pt-root.lounge[data-capacity="9"]{--player-avatar-size:46px;--self-avatar-size:46px;--top-avatar-size:46px}
 .pt-root.lounge .pt-avatar,.pt-root.lounge .pt-seat.me .pt-avatar,.pt-root.lounge .pt-seat.top .pt-avatar{font-size:25px}
}

/* 快速连续点筹码不会触发双击缩放；抽屉仍可正常滚动。 */
#modal.table-mode .pt-felt,#modal.table-mode .pt-bottom,#modal.table-mode .pt-top,#modal.table-mode .pt-badges{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none}
#modal.table-mode .pt-sheet,#room-settings-drawer{touch-action:pan-y;overscroll-behavior:contain}
#modal.table-mode input[type="range"]{touch-action:pan-x}
#modal.table-mode .pt-actions input[type="number"]{font-size:16px}
#modal.poker-action-pending .pt-actions button{pointer-events:none;opacity:.6}
.pt-actions .pt-btn:disabled,.pt-actions .pt-chipb:disabled{opacity:.4;filter:saturate(.3);box-shadow:none}
.pt-actions .pt-rule-note{margin:2px 0 5px;padding:4px 8px;font-size:11px;line-height:1.4;color:#ffe3a0;background:#11180de8;border-radius:6px;text-align:center}
@media(orientation:landscape) and (min-width:560px){.pt-root.lounge .pt-bottom:has(.pt-rule-note){height:auto;min-height:var(--lounge-footer,74px)}.pt-actions .pt-rule-note{font-size:10px;margin:0 0 3px;padding:2px 6px}}

/* 筹码略放大；撤回两字横排，与筹码处于同一行。 */
.pt-chip-row,.pt-root.lounge .pt-chip-row{display:flex;flex-wrap:nowrap;align-items:center;flex-direction:row;gap:6px}
.pt-chip-options,.pt-root.lounge .pt-chip-options{flex:1;min-width:0;flex-wrap:nowrap;align-items:center;gap:6px}
.pt-chip-undo,.pt-root.lounge .pt-chip-undo{flex:0 0 54px;min-height:42px;flex-direction:row;white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb;font-size:13px;line-height:1.2;padding:5px 6px;align-self:center}
.pt-root.lounge .pt-chipb{width:42px;height:42px;font-size:12px;border-width:3px}
@media(max-width:340px){.pt-root.lounge .pt-chipb{width:40px;height:40px}.pt-root.lounge .pt-chip-options{gap:4px}.pt-root.lounge .pt-chip-undo{flex-basis:50px}}
@media(orientation:portrait) and (max-height:700px){.pt-root.lounge .pt-chipb{width:36px;height:36px;font-size:11px}.pt-root.lounge .pt-chip-undo{min-height:36px}}
@media(orientation:landscape) and (min-width:560px){
 .pt-root.lounge .pt-bar{grid-template-columns:minmax(0,1.3fr) minmax(210px,.9fr)}
 .pt-root.lounge .pt-chip-options{gap:3px}
 .pt-root.lounge .pt-chip-row{gap:4px}
 .pt-root.lounge .pt-chipb{width:clamp(28px,3.6vw,48px);height:clamp(28px,3.6vw,48px);font-size:11px}
 .pt-root.lounge .pt-chip-undo{flex-basis:50px;min-height:36px;font-size:12px;padding:4px}
}

/* 新增独立主题：会议厅 · 木纹红金。 */
.pt-root.assembly .pt-top{background:linear-gradient(#401b15ed,#24150ec9);border:1px solid #d8ad6377;text-shadow:0 1px 3px #30140d}
.pt-root.assembly .pt-title b{color:#fff0bd;letter-spacing:.04em}
.pt-root.assembly .pt-title small{color:#f0d9b4}
.pt-root.assembly .pt-avatar{border-color:#dfb96e;background:radial-gradient(circle at 35% 20%,#8b443b,#371a17);box-shadow:0 0 0 1px #4e281c,0 3px 7px #1d120b88}
.pt-root.assembly .pt-seat .pt-name,.pt-root.assembly .pt-seat .pt-stack{background:#3b1715eb;border-color:#d5b16b99;color:#fff0ca}
.pt-root.assembly .pt-seat .pt-stack{color:#ffe6a5}
.pt-root.assembly .pt-seat.to-act .pt-avatar{background:conic-gradient(#f4d882 var(--ring,100%),#4b251d 0) border-box;box-shadow:0 0 0 2px #eccc7655,0 0 16px #f0b64788}
.pt-root.assembly .pt-seat.to-act .pt-avatar::before{background:#592720}
.pt-root.assembly .pt-badge{background:#351b11d9;border-color:#c3a05e;color:#ffeab7}
.pt-root.assembly .pt-pot{background:#301713e6;border-color:#d4b16b;color:#fff0c8}
.pt-root.assembly .pt-logo{color:#e7c78188}
.pt-root.assembly .pt-action{background:#511e1ae8;border-color:#bd985d;color:#ffe8ba}
.pt-root.assembly .pt-action.act-fold{background:#33241ee6;color:#ddc8ad}
.pt-root.assembly .pt-tool{background:linear-gradient(#42241dd9,#20140de8);border-color:#a4804b88;color:#fbe7bc}
.pt-root.assembly .pt-chip-undo{background:linear-gradient(#6a3228,#3c1c17);border-color:#dfb570;color:#ffe9bc}
.pt-root.assembly .pt-bottom{background:linear-gradient(transparent,#21100de8 24%)}
#modal[data-card-skin="classic"] .pt-root.assembly .playing-card.back{border-color:#e1bd73;background:repeating-linear-gradient(45deg,#8b2630 0 3px,#6c1821 3px 6px);box-shadow:inset 0 0 0 2px #56121a,inset 0 0 0 3px #d1a75b}
.room-settings-options [data-room-theme="assembly"]{flex-basis:100%;background:linear-gradient(120deg,#79392b,#392015);border-color:#d4af6a;color:#ffedc6}
.room-settings-options [data-room-theme="assembly"][aria-pressed="true"]{border-color:#ffe1a3;box-shadow:inset 0 0 0 1px #e4bd72}
@media(orientation:portrait),(max-width:559px){
 .pt-root.assembly{background-image:url(assets/assembly-portrait-v1.jpg);background-size:100% calc(100% - var(--lounge-portrait-footer,120px));background-position:center top}
 .pt-root.assembly .pt-felt{top:38%}
 .pt-root.assembly::before{background:linear-gradient(#2f0e081a,transparent 35%,#10050008)}
}
@media(orientation:landscape) and (min-width:560px){
 .pt-root.assembly{background-image:url(assets/assembly-landscape-v1.jpg);background-size:100% calc(100% - var(--lounge-footer,74px));background-position:center top}
 .pt-root.assembly .pt-felt{top:38%}
 .pt-root.assembly .pt-bottom{background:linear-gradient(#2e1713f2,#1b100cf7);border-top:1px solid #cba56266}
 .pt-root.assembly::before{background:linear-gradient(#2f0e081a,transparent 35%,#10050008)}
}

/* 木纹红金：扩展台面与座位区，增强真实桌沿和牌面厚度。 */
.pt-root.assembly .pt-board .playing-card{box-shadow:0 2px 0 #b4aa89,0 5px 8px #04291dc9}
.pt-root.assembly .pt-seat .pt-avatar{box-shadow:0 2px 0 #422012,0 5px 9px #180d0b99}
.pt-root.assembly .pt-seat .pt-name{box-shadow:0 2px 4px #13080766}
.pt-root.assembly .pt-seat .pt-stack{box-shadow:0 3px 5px #13080777}
.pt-root.assembly .pt-chip{filter:drop-shadow(0 3px 2px #001e1699)}
@media(orientation:portrait),(max-width:559px){
 .pt-root.assembly{background-image:url(assets/assembly-portrait-depth-v2.jpg)}
 .pt-root.assembly .pt-felt{inset:34% 8px calc(var(--lounge-portrait-footer,120px) + 10%);width:auto;height:auto;min-height:0;margin:0}
 .pt-root.assembly .pt-center{top:48%}
 .pt-root.assembly .pt-logo{top:24%}
}
@media(orientation:landscape) and (min-width:560px){
 .pt-root.assembly{background-image:url(assets/assembly-landscape-depth-v2.jpg)}
 .pt-root.assembly .pt-felt{inset:34% 14px calc(var(--lounge-footer,74px) + 6%);width:auto;height:auto;min-height:0;margin:0}
 .pt-root.assembly .pt-center{top:47%}
}

/* 撤回与筹码水平居中，使用清晰的主要操作按钮样式。 */
.pt-chip-row,.pt-root.lounge .pt-chip-row{align-items:center;flex-wrap:nowrap;gap:6px}
.pt-chip-options,.pt-root.lounge .pt-chip-options{align-items:center}
.pt-chip-undo,.pt-root.lounge .pt-chip-undo,.pt-root.assembly .pt-chip-undo{flex:0 0 66px;height:44px;min-height:44px;align-self:center;display:flex;flex-direction:row;align-items:center;justify-content:center;white-space:nowrap;padding:5px 8px;border:1px solid #b5efc6;border-radius:10px;background:linear-gradient(#32b95d,#117a35);color:#fff;font-size:15px;font-weight:800;line-height:1.1;text-shadow:0 1px 2px #075d2a;box-shadow:inset 0 1px #e6ffea88,inset 0 -5px 9px #075c242b,0 3px 0 #06441e,0 5px 10px #0005;opacity:1}
.pt-chip-undo span{display:none}
.pt-chip-undo:disabled,.pt-root.lounge .pt-chip-undo:disabled,.pt-root.assembly .pt-chip-undo:disabled{opacity:1;background:linear-gradient(#596c54,#354832);border-color:#9aab8f;color:#f0f5e9;text-shadow:0 1px 2px #263a25;box-shadow:inset 0 1px #e8f7dc44,0 2px 0 #253522}
.pt-chip-undo:not(:disabled):active{background:linear-gradient(#168740,#0b6029);transform:translateY(2px);box-shadow:inset 0 1px #e6ffea55,0 1px 0 #06441e}
@media(max-width:340px){.pt-root.lounge .pt-chip-undo{flex-basis:62px;font-size:14px}}
@media(orientation:portrait) and (max-height:700px){.pt-root.lounge .pt-chip-undo{height:40px;min-height:40px}}
@media(orientation:landscape) and (min-width:560px){
 .pt-root.lounge .pt-bar{grid-template-columns:minmax(0,1.3fr) minmax(228px,.9fr)}
 .pt-root.lounge .pt-chip-undo{flex-basis:64px;height:44px;min-height:44px;font-size:14px}
}

/* 独立座位区域：动作提示在上，头像/名牌/手牌各占一行，下注筹码不再漂浮到别人的牌上。 */
#modal .pt-root.lounge .pt-top{display:none}
#modal .pt-root.lounge .pt-felt{inset:26% 8px calc(var(--seat-controls-height,140px) + 46px);width:auto;height:auto;min-height:0;max-width:none;margin:0}
#modal .pt-root.lounge .pt-center{top:49%;width:55%;max-width:240px}
#modal .pt-root.lounge .pt-logo{top:26%;font-size:12px}
#modal .pt-root.lounge .seat-organized{width:96px;display:flex;flex-direction:column;align-items:center;gap:2px;overflow:visible;transform:translate(-50%,-50%)}
#modal .pt-root.lounge .pt-seat-signal{display:flex;align-items:center;justify-content:center;gap:2px;width:100%;height:22px;min-height:22px;flex-wrap:nowrap}
#modal .pt-root.lounge .pt-seat-signal>.pt-action,#modal .pt-root.lounge .pt-seat-signal>.pt-status,#modal .pt-root.lounge .pt-seat-signal>.pt-win,#modal .pt-root.lounge .pt-seat-signal>.pt-bubble,#modal .pt-root.lounge .pt-seat-signal>.pt-chip{position:static;left:auto;right:auto;top:auto;bottom:auto;margin:0;transform:none!important;animation:none!important}
#modal .pt-root.lounge .pt-seat-signal .pt-action,#modal .pt-root.lounge .pt-seat-signal .pt-status{flex:0 1 auto;min-width:0;max-width:100%;display:flex;align-items:center;gap:2px;padding:2px 4px;font-size:10px;line-height:14px;white-space:nowrap;box-shadow:0 1px 3px #0004}
#modal .pt-root.lounge .pt-seat-signal .act-en{display:none}
#modal .pt-root.lounge .pt-seat-signal .pt-bubble{flex:1;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:14px;padding:2px 4px}
#modal .pt-root.lounge .pt-seat-signal .pt-win{flex:0 1 auto;font-size:13px;padding:2px 7px;line-height:16px;white-space:nowrap;box-shadow:0 1px 5px #bfa55277}
#modal .pt-root.lounge .pt-seat-main{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%}
#modal .pt-root.lounge .pt-seat-identity{display:flex;flex-direction:column;align-items:center;gap:0;width:100%;order:0}
#modal .pt-root.lounge .pt-seat-main .pt-cards{order:1;position:static;left:auto;right:auto;top:auto;bottom:auto;transform:none;display:flex;gap:3px;align-items:center;justify-content:center;margin:0;height:34px;min-height:34px;flex-shrink:0}
#modal .pt-root.lounge .pt-seat-main .pt-cards .playing-card{width:24px;height:34px;margin:0;border-radius:4px;transform:none;box-shadow:0 2px 3px #001e1666}
#modal .pt-root.lounge .pt-seat-main .pt-cards .playing-card b{font-size:10px}
#modal .pt-root.lounge .pt-seat-main .pt-cards .playing-card i{font-size:13px}
#modal .pt-root.lounge .pt-seat-main .playing-card.back::before{font-size:15px}
#modal .pt-root.lounge .pt-seat .pt-name{width:96px;max-width:96px;margin:2px 0 0;padding:1px 3px;line-height:14px;font-size:11px;min-height:16px;box-sizing:border-box}
#modal .pt-root.lounge .pt-seat .pt-stack{display:flex;align-items:center;justify-content:center;gap:3px;width:96px;max-width:96px;min-height:18px;margin:0;padding:0 3px 2px;line-height:16px;font-size:13px;box-sizing:border-box}
#modal .pt-root.lounge .pt-role-inline{font-size:9px;font-weight:500;color:#c6e3fd}
#modal .pt-root.lounge .pt-name::before{content:none}
#modal .pt-root.lounge .pt-stack .pt-equity{position:static;left:auto;right:auto;top:auto;bottom:auto;transform:none;margin:0;font-size:9px;line-height:11px;padding:1px 3px;border-radius:4px;white-space:nowrap}
#modal .pt-root.lounge .pt-stack .pt-equity small{font-size:8px}
#modal .pt-root.lounge .pt-seat-bet{flex:0 0 auto;padding:0 3px;display:flex;gap:2px;align-items:center;min-height:20px;border-radius:6px}
#modal .pt-root.lounge .pt-seat-bet b{font-size:10px;line-height:14px}
#modal .pt-root.lounge .pt-seat-bet .pt-chip-stack{width:16px;height:22px;transform:none}
#modal .pt-root.lounge .pt-seat-bet .pt-chip-stack i{width:14px;height:14px;border-width:1px;bottom:0}
#modal .pt-root.lounge .pt-seat-bet .pt-chip-stack i:nth-child(2){bottom:2px}
#modal .pt-root.lounge .pt-seat-bet .pt-chip-stack i:nth-child(3){bottom:4px}
#modal .pt-root.lounge .pt-seat-bet .pt-chip-stack i:nth-child(4){bottom:6px}
#modal .pt-root.lounge .pt-seat.me{width:188px}
#modal .pt-root.lounge .pt-seat.me .pt-seat-main{display:grid;grid-template-columns:80px 96px;column-gap:12px;align-items:center}
#modal .pt-root.lounge .pt-seat.me .pt-seat-main .pt-cards{grid-column:1;grid-row:1;order:0;height:54px;min-height:54px;gap:4px}
#modal .pt-root.lounge .pt-seat.me .pt-seat-main .pt-cards .playing-card{width:38px;height:54px}
#modal .pt-root.lounge .pt-seat.me .pt-seat-main .pt-cards .playing-card b{font-size:13px}
#modal .pt-root.lounge .pt-seat.me .pt-seat-main .pt-cards .playing-card i{font-size:18px}
#modal .pt-root.lounge .pt-seat.me .pt-seat-identity{grid-column:2;grid-row:1}
#modal .pt-root.lounge .pt-seat.me>.pt-hint{position:static;left:auto;right:auto;top:auto;bottom:auto;transform:none;margin:0;padding:1px 5px;line-height:13px;font-size:10px;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#modal .pt-root.lounge .pt-seat.winner .pt-avatar::after{inset:-4px}
#modal .pt-root.lounge .pt-result{position:absolute;left:12px;right:12px;bottom:calc(var(--seat-controls-height,140px) + 4px);max-width:none;max-height:24px;margin:0;overflow:auto;font-size:10px;z-index:5}
@media(orientation:portrait),(max-width:559px){
 #modal .pt-root.lounge .pt-badges{top:calc(env(safe-area-inset-top,0px) + 52px);right:9px}
 #modal .pt-root.lounge[data-capacity="7"] .pt-seat.top{width:88px}
 #modal .pt-root.lounge[data-capacity="7"] .pt-seat.top .pt-name,#modal .pt-root.lounge[data-capacity="7"] .pt-seat.top .pt-stack{width:88px;max-width:88px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-felt,#modal .pt-root.lounge[data-capacity="9"] .pt-felt{top:20%;bottom:calc(var(--seat-controls-height,140px) + 26px)}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat:not(.me),#modal .pt-root.lounge[data-capacity="9"] .pt-seat:not(.me){width:88px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat .pt-name,#modal .pt-root.lounge[data-capacity="9"] .pt-seat .pt-name{width:88px;max-width:88px;min-height:13px;line-height:12px;padding:0 3px;font-size:10px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat .pt-stack,#modal .pt-root.lounge[data-capacity="9"] .pt-seat .pt-stack{width:88px;max-width:88px;min-height:15px;line-height:13px;padding:0 3px 2px;font-size:12px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat-signal,#modal .pt-root.lounge[data-capacity="9"] .pt-seat-signal{height:20px;min-height:20px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat-main .pt-cards,#modal .pt-root.lounge[data-capacity="9"] .pt-seat-main .pt-cards{height:26px;min-height:26px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat:not(.me) .pt-cards .playing-card,#modal .pt-root.lounge[data-capacity="9"] .pt-seat:not(.me) .pt-cards .playing-card{width:19px;height:26px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat.me,#modal .pt-root.lounge[data-capacity="9"] .pt-seat.me{width:152px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat.me .pt-seat-main,#modal .pt-root.lounge[data-capacity="9"] .pt-seat.me .pt-seat-main{grid-template-columns:56px 88px;column-gap:8px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat.me .pt-cards .playing-card,#modal .pt-root.lounge[data-capacity="9"] .pt-seat.me .pt-cards .playing-card{width:26px;height:38px}
 #modal .pt-root.lounge[data-capacity="8"] .pt-seat.me .pt-cards,#modal .pt-root.lounge[data-capacity="9"] .pt-seat.me .pt-cards{gap:3px;height:38px;min-height:38px}
}
@media(orientation:portrait) and (max-height:700px){
 #modal .pt-root.lounge[data-capacity="8"] .pt-felt,#modal .pt-root.lounge[data-capacity="9"] .pt-felt{top:14%}
 #modal .pt-root.lounge[data-capacity="8"] .pt-avatar,#modal .pt-root.lounge[data-capacity="9"] .pt-avatar{width:44px;height:44px;font-size:24px}
}
@media(max-width:359px){
 #modal .pt-root.lounge .pt-seat.me{width:132px}
 #modal .pt-root.lounge .pt-seat.me .pt-seat-main{grid-template-columns:52px 72px;column-gap:8px}
 #modal .pt-root.lounge .pt-seat.me .pt-name,#modal .pt-root.lounge .pt-seat.me .pt-stack{width:72px;max-width:72px}
 #modal .pt-root.lounge .pt-seat.me .pt-cards .playing-card{width:24px;height:35px}
 #modal .pt-root.lounge .pt-seat.me .pt-cards{gap:3px}
}
@media(orientation:landscape) and (min-width:560px){
 #modal .pt-root.lounge .pt-felt{inset:10% 12px calc(var(--seat-controls-height,80px) + 12px)}
 #modal .pt-root.lounge .pt-center{top:49%;width:40%}
 #modal .pt-root.lounge .seat-organized{width:106px}
 #modal .pt-root.lounge .pt-seat-main{display:grid;grid-template-columns:58px 42px;gap:6px}
 #modal .pt-root.lounge .pt-seat-identity{grid-column:1;grid-row:1}
 #modal .pt-root.lounge .pt-seat-main .pt-cards{grid-column:2;grid-row:1;gap:2px;height:28px;min-height:28px}
 #modal .pt-root.lounge .pt-seat-main .pt-cards .playing-card{width:20px;height:28px}
 #modal .pt-root.lounge .pt-seat .pt-name,#modal .pt-root.lounge .pt-seat .pt-stack{width:64px;max-width:64px;font-size:10px;line-height:12px;min-height:13px;padding:0 2px;margin:0}
 #modal .pt-root.lounge .pt-seat-signal{height:20px;min-height:20px}
 #modal .pt-root.lounge .pt-seat.me{width:160px;top:86%!important}
 #modal .pt-root.lounge .pt-seat.me .pt-seat-main{grid-template-columns:66px 86px;gap:8px}
 #modal .pt-root.lounge .pt-seat.me .pt-name,#modal .pt-root.lounge .pt-seat.me .pt-stack{width:86px;max-width:86px}
 #modal .pt-root.lounge .pt-seat.me .pt-cards{gap:3px;height:44px;min-height:44px}
 #modal .pt-root.lounge .pt-seat.me .pt-cards .playing-card{width:31px;height:44px}
 #modal .pt-root.lounge .pt-seat.me>.pt-hint{line-height:11px;font-size:9px}
}
@media(orientation:landscape) and (min-width:560px) and (max-width:700px){
 #modal .pt-root.lounge .seat-organized{width:82px}
 #modal .pt-root.lounge .pt-seat-main{grid-template-columns:38px 38px;gap:6px}
 #modal .pt-root.lounge .pt-avatar{width:36px;height:36px;font-size:22px}
 #modal .pt-root.lounge .pt-seat-main .pt-cards .playing-card{width:18px;height:25px}
 #modal .pt-root.lounge .pt-seat .pt-name,#modal .pt-root.lounge .pt-seat .pt-stack{width:48px;max-width:48px;line-height:10px;min-height:11px;font-size:9px}
 #modal .pt-root.lounge .pt-seat.me{width:132px}
 #modal .pt-root.lounge .pt-seat.me .pt-seat-main{grid-template-columns:52px 72px;gap:8px}
 #modal .pt-root.lounge .pt-seat.me .pt-name,#modal .pt-root.lounge .pt-seat.me .pt-stack{width:72px;max-width:72px}
 #modal .pt-root.lounge .pt-seat.me .pt-cards .playing-card{width:24px;height:34px}
 #modal .pt-root.lounge .pt-seat-signal{height:18px;min-height:18px}
 #modal .pt-root.lounge .pt-board .playing-card,#modal .pt-root.lounge .pt-slot{width:27px;height:38px}
}
#modal .pt-root.lounge .seat-organized .pt-dealer{left:-7px;right:auto;top:0;bottom:auto}
#modal .pt-root.lounge .seat-organized .pt-straddle{right:-7px;left:auto;top:21px;bottom:auto}
#modal .pt-root.lounge .pt-seat-signal .pt-hint{position:static;left:auto;right:auto;top:auto;bottom:auto;transform:none;margin:0;padding:1px 4px;line-height:13px;font-size:9px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
@media(orientation:landscape) and (min-width:560px){#modal .pt-root.lounge .pt-seat.me{left:74%!important}}
@media(orientation:landscape) and (min-width:560px) and (max-width:700px){
 #modal .pt-root.lounge .pt-seat.me{width:112px}
 #modal .pt-root.lounge .pt-seat.me .pt-seat-main{grid-template-columns:44px 60px;gap:8px}
 #modal .pt-root.lounge .pt-seat.me .pt-name,#modal .pt-root.lounge .pt-seat.me .pt-stack{width:60px;max-width:60px}
 #modal .pt-root.lounge .pt-seat.me .pt-cards .playing-card{width:20px;height:29px}
}

/* 简洁战报分享：标题、图片、奖励与动作分开。 */
#report-dialog{max-height:92dvh;width:min(390px,calc(100% - 24px));overflow:auto}
.report-preview{max-height:54dvh;background:#08120d;object-fit:contain}
.report-actions{gap:9px;margin-top:12px}
.report-actions button{min-height:44px;font-size:13px}
.report-actions button[data-report-act="chat"]{background:linear-gradient(#39723e,#204a2b);border-color:#9ccc86;color:#f0ffe6}
.report-actions button:disabled{opacity:.65}
.report-reward{font-size:11px;line-height:1.6;padding:8px}

/* 保险购买面板置顶且可滚动，避免被绝对定位的台面拦截点击。 */
#modal.table-mode .pt-root .insurance-panel.active{position:absolute;top:calc(env(safe-area-inset-top,0px) + 82px);left:50%;right:auto;bottom:auto;transform:translateX(-50%);width:min(420px,calc(100% - 24px));max-height:calc(100% - var(--seat-controls-height,130px) - 102px);margin:0;padding:12px;z-index:60;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;pointer-events:auto;background:#11261a;border:2px solid #c7a75e;border-radius:14px;box-shadow:0 12px 36px #000b}
#modal.table-mode .insurance-panel.active input[name="premium"]{font-size:16px;min-height:42px;width:120px;max-width:48%;background:#07150d;color:#fff8d8}
#modal.table-mode .insurance-panel.active>.choice-row{position:sticky;bottom:0;background:#11261a;padding-top:8px;z-index:1}
#modal.table-mode .insurance-panel.active .choice-row button{min-height:44px;font-size:14px}
#modal.insurance-submitting .insurance-panel button{pointer-events:none;opacity:.6}
#modal.table-mode .pt-root .insurance-panel:not(.active){position:absolute;left:12px;right:12px;bottom:calc(var(--seat-controls-height,100px) + 8px);z-index:20;margin:0;padding:7px 10px;background:#11261aeb;border:1px solid #bca36788;border-radius:8px;pointer-events:none;font-size:11px}
@media(orientation:landscape) and (min-width:560px){#modal.table-mode .pt-root .insurance-panel.active{top:16px;max-height:calc(100% - 32px);width:min(430px,calc(100% - 40px))}}

/* 撤回的宽、高和字号按跟注按钮实测同步。 */
#modal .pt-root .pt-chip-undo{flex:0 0 var(--undo-button-width,84px);width:var(--undo-button-width,84px);height:var(--undo-button-height,48px);min-height:var(--undo-button-height,48px);font-size:var(--undo-button-font,15px);align-self:center;box-sizing:border-box}

/* 下注筹码单独放到玩家前方，实时避开头像、手牌、提示和公共牌。 */
#modal .pt-root.lounge .pt-seat-wager{position:absolute;left:0;top:0;display:flex;align-items:center;visibility:hidden;z-index:12;pointer-events:none;transform:none}
#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet{position:static!important;display:flex;align-items:center;gap:5px;min-width:68px;min-height:34px;margin:0;padding:3px 7px;transform:none!important;background:linear-gradient(#1b2a1bf5,#08120bf5);border:1.5px solid #edcf72;border-radius:10px;box-shadow:0 3px 7px #0008,0 0 7px #e9c06333}
#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet b{font-size:15px;font-weight:800;line-height:20px;color:#ffe38c;text-shadow:0 1px 2px #000}
#modal .pt-root.lounge .pt-seat-wager .pt-chip-stack{width:24px;height:28px;transform:none}
#modal .pt-root.lounge .pt-seat-wager .pt-chip-stack i{width:22px;height:22px;border-width:2px;bottom:0}
#modal .pt-root.lounge .pt-seat-wager .pt-chip-stack i:nth-child(2){bottom:2px}
#modal .pt-root.lounge .pt-seat-wager .pt-chip-stack i:nth-child(3){bottom:4px}
#modal .pt-root.lounge .pt-seat-wager .pt-chip-stack i:nth-child(4){bottom:6px}
#modal .pt-root .pt-wager-overflow{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px;order:-1;grid-column:1/-1;width:100%}
#modal .pt-root .pt-wager-overflow .pt-seat-wager{position:static;visibility:visible}
#modal .pt-root .pt-wager-overflow .pt-seat-wager::before{content:attr(data-player-name);max-width:65px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;margin-right:4px}
@media(max-height:700px){#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet{min-width:60px;min-height:30px;padding:2px 5px}#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet b{font-size:13px}}

/* 新增“華人社”品牌牌背，兼容现有全部桌面主题。 */
#modal[data-card-skin="huarenshe"] .playing-card:not(.back){background:linear-gradient(145deg,#fffdf6,#f2ead6);border:1px solid #cbb278}
#modal[data-card-skin="huarenshe"] .playing-card.back{position:relative;color:transparent;border:1.5px solid #eacb7c;border-radius:4px;background:radial-gradient(ellipse at center,#9a2831 0 27%,transparent 28%),repeating-linear-gradient(45deg,#751b29 0 2px,#5e1421 2px 4px);box-shadow:inset 0 0 0 2px #3f1018,inset 0 0 0 3px #c49a50,0 2px 4px #0006}
#modal[data-card-skin="huarenshe"] .playing-card.back::before{content:"華人社";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:upright;font-family:"Songti SC","Noto Serif CJK TC",serif;font-size:8px!important;line-height:1.05;letter-spacing:.3px;font-weight:800;color:#ffe5a4;text-shadow:0 1px 2px #330711}
#modal[data-card-skin="huarenshe"] .pt-seat.me .playing-card.back::before{font-size:12px!important;letter-spacing:1px}
#modal[data-card-skin="huarenshe"] .playing-card.card-dealing::after{content:"華人社";display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;font-family:"Songti SC",serif;font-size:10px;font-weight:800;letter-spacing:1px;color:#ffe5a4;border-color:#eacb7c;background:repeating-linear-gradient(45deg,#751b29 0 2px,#5e1421 2px 4px)}
.skin-huarenshe .skin-swatch{border-color:#eacb7c;background:repeating-linear-gradient(45deg,#8d2633 0 2px,#5e1421 2px 4px);box-shadow:inset 0 0 0 1px #3f1018}
#modal .pt-root .pt-bottom:has(.pt-wager-overflow){height:auto;min-height:var(--lounge-footer,74px)}
@media(orientation:landscape) and (min-width:560px){#modal .pt-root .pt-bottom:has(.pt-wager-overflow) .pt-actions,#modal .pt-root .pt-bottom:has(.pt-wager-overflow) .pt-tools{grid-row:2}#modal .pt-root .pt-wager-overflow{grid-row:1}}
#modal[data-card-skin="huarenshe"] .seat-organized:not(.me) .playing-card.back::before{font-size:7px!important;letter-spacing:.2px}
#modal[data-card-skin="huarenshe"] .seat-organized.me .playing-card.back::before{font-size:10px!important;letter-spacing:.4px}

#modal.table-mode .insurance-panel.active button{touch-action:manipulation}

/* 统一桌上所有手牌、公共牌和待发牌位，避免自己与对手采用两套尺寸。 */
#modal .pt-root{--table-card-w:38px;--table-card-h:54px;--table-card-rank:13px;--table-card-suit:18px;--table-card-brand:20px}
#modal .pt-root .pt-cards .playing-card,#modal .pt-root .pt-board .playing-card,#modal .pt-root .pt-slot{width:var(--table-card-w)!important;height:var(--table-card-h)!important;min-width:var(--table-card-w);flex:0 0 var(--table-card-w);box-sizing:border-box}
#modal .pt-root .pt-cards .playing-card b,#modal .pt-root .pt-board .playing-card b{font-size:var(--table-card-rank)!important}
#modal .pt-root .pt-cards .playing-card i,#modal .pt-root .pt-board .playing-card i{font-size:var(--table-card-suit)!important}
#modal .pt-root.lounge .pt-seat-main .pt-cards{height:var(--table-card-h)!important;min-height:var(--table-card-h)!important;gap:3px}
#modal .pt-root.lounge .pt-board{gap:3px;justify-content:center;width:max-content;max-width:none;margin-left:auto;margin-right:auto}
#modal .pt-root.lounge .pt-center{width:calc(5 * var(--table-card-w) + 12px);max-width:none}
#modal .pt-root .pt-cards .playing-card.back::before{font-size:var(--table-card-brand)!important}
#modal[data-card-skin="huarenshe"] .pt-root .pt-cards .playing-card.back::before{font-size:10px!important;letter-spacing:.4px}
@media(orientation:portrait),(max-width:559px){
 #modal .pt-root.lounge:is([data-capacity="8"],[data-capacity="9"]){--table-card-w:26px;--table-card-h:38px;--table-card-rank:11px;--table-card-suit:15px;--table-card-brand:17px}
}
@media(max-width:359px),(orientation:portrait) and (max-height:700px){
 #modal .pt-root,#modal .pt-root.lounge[data-capacity]{--table-card-w:24px;--table-card-h:35px;--table-card-rank:11px;--table-card-suit:14px;--table-card-brand:16px}
}
@media(orientation:landscape) and (min-width:560px){
 #modal .pt-root{--table-card-w:31px;--table-card-h:44px;--table-card-rank:12px;--table-card-suit:16px;--table-card-brand:18px}
 #modal .pt-root.lounge .pt-seat:not(.me) .pt-seat-main{display:flex;flex-direction:column;align-items:center;gap:3px}
}
@media(orientation:landscape) and (min-width:560px) and (max-width:700px){
 #modal .pt-root{--table-card-w:20px;--table-card-h:29px;--table-card-rank:9px;--table-card-suit:12px;--table-card-brand:14px}
 #modal[data-card-skin="huarenshe"] .pt-root .pt-cards .playing-card.back::before{font-size:8px!important}
}
/* 桌上下注直接显示筹码与金额，取消模块边框，保留清晰但轻量的文字。 */
#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet{gap:5px;min-width:0;min-height:28px;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none}
#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet b{font-size:15px;line-height:22px;letter-spacing:.01em;font-variant-numeric:tabular-nums;color:#fff0b3;text-shadow:0 1px 2px #001c14,0 0 4px #001c14,1px 0 2px #001c14;white-space:nowrap}
#modal .pt-root.lounge .pt-seat-wager .pt-chip-stack{filter:drop-shadow(0 2px 2px #00180cb3)}
#modal .pt-root .pt-wager-overflow{gap:6px 14px;padding:3px 6px}
@media(max-width:359px),(max-height:700px){#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet{gap:4px;min-height:26px;padding:0}#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet b{font-size:13px}}

/* 简洁战绩弹窗：图片与分享操作。 */
#report-dialog{width:min(420px,calc(100% - 20px));border:1px solid #bba46d66;background:#091b14;color:#f4efdf;border-radius:20px}
#report-dialog .report-preview{border-radius:12px;border:1px solid #c6b37d33}

/* 低额下注也有明确配色：小盲薄荷绿，大盲湖蓝，不改变面额与下注规则。 */
.pt-chip.mint,.pt-chip.white{--chip-core:#79f4ca;--chip-rim:#078968}
.pt-chip.cyan{--chip-core:#6fe5ff;--chip-rim:#087caf}
.pt-chip.red{--chip-core:#ff8c9f;--chip-rim:#c52b56}
.pt-chip.blue{--chip-core:#92c5ff;--chip-rim:#3464cc}
.pt-chip.black{--chip-core:#9aabc8;--chip-rim:#34435d}
.pt-chip.purple{--chip-core:#d4acff;--chip-rim:#8248cf}
.pt-chipb.c10{--c:#168ccc}
.pt-chipb.c50{--c:#16a88a}
.pt-chipb.c100{--c:#e04b70}
.pt-chipb.c500{--c:#9460e3}
.pt-chipb.c1k{--c:#e7b84c;color:#3a2400}
.pt-tool:focus-visible{outline:2px solid #7fe9d1;outline-offset:2px}
/* 横屏左侧工具按两列对齐，固定次序和间距。 */
@media(orientation:landscape) and (min-width:560px){
 #modal .pt-root.lounge .pt-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;align-content:center;align-items:center;justify-items:stretch;flex-wrap:nowrap;min-width:0;padding:0}
 #modal .pt-root.lounge .pt-tools .pt-tool{display:flex;align-items:center;justify-content:center;gap:3px;width:100%;max-width:none;min-width:0;height:22px;min-height:22px;margin:0;padding:2px;border:1px solid #85bca133;border-radius:5px;background:#102b24;color:#e1f6ed;font-size:14px;box-sizing:border-box}
 #modal .pt-root.lounge .pt-tools .pt-tool::after{content:attr(data-tool-label);font-size:10px;font-weight:500;line-height:1;white-space:nowrap}
 #modal .pt-root.lounge .pt-tools .pt-tool:last-child:nth-child(odd){grid-column:1 / -1;height:22px}
}

/* 固定常用金额所占宽度，金额位数变化不会推着筹码横移。 */
#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet{min-width:var(--wager-chip-width,84px);box-sizing:border-box}
#modal .pt-root.lounge .pt-seat-wager .pt-seat-bet b{font-variant-numeric:tabular-nums}
#modal .pt-root .pt-wager-overflow{display:grid;justify-content:start;align-content:start;gap:4px 0;grid-auto-rows:40px}
#modal .pt-root .pt-wager-overflow .pt-seat-wager{width:100%;min-width:0;flex-direction:column;justify-content:center;gap:0}
#modal .pt-root .pt-wager-overflow .pt-seat-wager::before{max-width:100%;margin:0;line-height:12px}

/* 竖屏等待和下注使用相同操作区高度，按钮收起时不再抬动整张桌面。 */
@media(orientation:portrait),(max-width:559px){#modal .pt-root.lounge .pt-actions{min-height:144px;display:flex;flex-direction:column;justify-content:center}}
@media(orientation:portrait) and (max-height:700px){#modal .pt-root.lounge .pt-actions{min-height:124px}}

/* 小屏八/九人桌缩紧非本人座位，避免操作区固定后姓名与上一位头像重叠。 */
@media(orientation:portrait) and (max-height:700px){
 #modal .pt-root.lounge:is([data-capacity="8"],[data-capacity="9"]) .pt-seat:not(.me) .pt-avatar{width:24px;height:24px;font-size:16px;border-width:2px}
 #modal .pt-root.lounge:is([data-capacity="8"],[data-capacity="9"]) .pt-seat:not(.me) .pt-seat-main{gap:1px}
 #modal .pt-root.lounge:is([data-capacity="8"],[data-capacity="9"]) .pt-seat:not(.me) .pt-name{font-size:8px;line-height:9px;padding-top:0;padding-bottom:0}
 #modal .pt-root.lounge:is([data-capacity="8"],[data-capacity="9"]) .pt-seat:not(.me) .pt-stack{font-size:10px;line-height:11px;padding-top:0;padding-bottom:0}
 #modal .pt-root.lounge:is([data-capacity="8"],[data-capacity="9"]) .pt-seat:not(.me) .pt-seat-signal{height:12px;min-height:12px}
 #modal .pt-root.lounge:is([data-capacity="8"],[data-capacity="9"]) .pt-seat:not(.me) .pt-seat-signal .pt-action{font-size:8px;line-height:10px;padding:0 2px}
}
