:root{color-scheme:dark;--bg:#0e1013;--panel:#191c20;--line:#30343b;--text:#f3f1eb;--muted:#9c9fa6;--gold:#d8b16b;--gold-bright:#f0d096;--danger:#f0a59e;--safe:#98c8b3;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:44px;padding:10px 15px;border:1px solid var(--line);border-radius:9px;background:#20242a;color:var(--text);font-weight:600;touch-action:manipulation}button:hover:not(:disabled){filter:brightness(1.12)}button:disabled{opacity:.38;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}input,select{width:100%;padding:13px 14px;border:1px solid #464b54;border-radius:9px;background:#101317;color:var(--text);min-height:46px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}p{line-height:1.7}h2{font-size:19px}h3{font-size:15px;margin:22px 0 12px}label{display:block;font-size:13px;line-height:1.6}label>input,label>select{margin-top:8px}button.primary{background:linear-gradient(180deg,#e7c380,#d3aa61);color:#252015;border-color:#e6c38a}button.look{background:#24252a;border-color:#8e784f;color:var(--gold-bright)}button.danger{background:#2b1c1c;border-color:#714141;color:#f0b0a7}.link-button{padding:4px 0;min-height:34px;border:0;background:none;color:var(--gold);font-size:12px}.gold{color:var(--gold-bright)}.loss{color:var(--danger)}.muted{color:var(--muted);font-size:13px;line-height:1.7}.tiny-note{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.7}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.topbar{height:64px;padding:10px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #292c31;background:#121518;gap:12px}.brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:750;letter-spacing:.02em}.brand small{display:block;color:#b8aa90;font-size:10px;font-weight:400;letter-spacing:.08em;margin-top:4px}.emblem{display:grid;place-items:center;width:35px;height:39px;font-size:29px;color:var(--gold)}.header-right{display:flex;align-items:center;gap:14px}.version-tag{border:1px solid #5a513e;background:#27251f;color:var(--gold-bright);font-size:11px;font-weight:650;padding:5px 8px;border-radius:6px;font-variant-numeric:tabular-nums;white-space:nowrap}.connection{color:#c5a179;font-size:11px;display:flex;align-items:center;gap:5px;white-space:nowrap}.connection::before{content:"";height:5px;width:5px;background:#d4a05c;border-radius:50%}.connection.online{color:#abcbb9}.connection.online::before{background:#83c4a1}.icon-button{min-width:40px;min-height:40px;padding:6px;font-size:18px;background:transparent}.version-reload{font-size:11px;min-height:33px;padding:5px}.notice{padding:8px 18px;background:#30291c;border-bottom:1px solid #5b4d31;color:#e6cc9d;font-size:12px;line-height:1.5;display:flex;gap:10px;flex-wrap:wrap}.notice span{white-space:pre-wrap}.invite-banner{padding:14px 17px;margin:14px 0;display:flex;gap:20px;align-items:center;border:1px solid #665a3f;border-radius:12px;background:#27271f}.invite-banner strong{color:var(--gold-bright);font-size:14px}.invite-banner p{font-size:12px;color:#cdc7b7}.invite-banner.has-error{border-color:#7d4944}.game-screen>.invite-banner{margin:6px 18px;padding:8px 12px;flex:none}.game-screen>.notice{flex:none}
/* Login and friend room entrance. */
.welcome{max-width:490px;margin:0 auto;padding:55px 22px 28px;text-align:center}.welcome-symbol{font-size:42px;color:var(--gold);margin:5px 0 15px}.welcome h1{font-size:32px;letter-spacing:-.02em;margin-bottom:12px}.welcome-cards{height:128px;padding-top:16px;margin:15px 0 22px}.welcome-cards .cards{transform:rotate(-6deg)}.welcome .panel{text-align:left}.panel{border:1px solid var(--line);background:var(--panel);border-radius:17px;padding:24px}.panel .primary,.panel>[data-action]{width:100%;margin-top:18px}.welcome footer,.lobby footer{font-size:11px;color:#7c828b;margin-top:25px}.lobby{max-width:920px;margin:auto;padding:36px 24px}.lobby-title{margin-bottom:28px}.lobby-title h1{font-size:28px;line-height:1.5}.lobby-title p{color:var(--muted);font-size:13px;margin-top:8px}.lobby-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.lobby-grid h2{margin-bottom:15px}.lobby-grid .muted{margin-bottom:20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title h2{margin:0}.section-title>span{font-size:11px;color:var(--muted)}.segments{display:flex;gap:8px;margin-top:8px}.segments button{flex:1;background:#15181d;font-size:15px}.segments button.selected{background:#3c3424;border-color:#b5965c;color:var(--gold-bright)}.badge{display:inline-block;background:#332e24;border:1px solid #625137;color:#e0c48c;border-radius:6px;padding:3px 7px;font-size:11px}.switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;padding:12px 0;border-top:1px solid #36393e}.switch-row input{width:22px;height:22px;min-height:22px;margin:0;accent-color:var(--gold)}.rule-strip{font-size:12px;padding:12px 0;color:var(--muted)}.lobby-links{display:flex;gap:12px;justify-content:center;margin-top:20px}.lobby-links button{background:transparent}.lobby footer{text-align:center}
/* The table remains on screen in every phase. Seat positions use server indices. */
.in-room{overflow-x:hidden}.in-room #app{min-height:100dvh}.game-screen{height:calc(100dvh - 64px);min-height:680px;display:flex;flex-direction:column;max-width:1580px;margin:auto}.room-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 25px;min-height:60px;flex:none}.room-identity{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:13px}.room-identity b{font-size:17px;font-weight:700;color:var(--text);letter-spacing:.035em}.phase-chip{border:1px solid #4a4437;border-radius:5px;color:var(--gold);padding:3px 7px;font-size:11px;white-space:nowrap}.room-buttons{display:flex;gap:8px}.copy-link{color:var(--gold-bright);border-color:#716044;background:#29261e;font-size:12px;min-height:38px}.leave-link{background:transparent;color:#abb0b7;font-size:12px;min-height:38px;padding:5px 10px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;padding:0 24px;flex:1;min-height:448px}.table-column{min-width:0;display:flex;flex-direction:column;min-height:0}.order-strip{display:flex;align-items:center;gap:12px;height:42px;flex:none;font-size:12px;white-space:nowrap;border-bottom:1px solid #252a30;margin-bottom:4px}.order-caption{color:#bbb29f;flex:none}.order-summary{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.turn-track{display:flex;align-items:center;gap:8px;overflow:auto;min-width:0;scrollbar-width:none}.turn-track::-webkit-scrollbar{display:none}.turn-track>i{font-style:normal;color:#5e626a}.track-player{display:flex;align-items:center;gap:5px;padding:4px 6px;color:#939aa3;font-size:11px}.track-player small{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;border:1px solid #535963;font-size:10px}.track-player b{font-size:9px;font-weight:400;color:#9f967f}.track-player.current{color:#f5dbac;background:#30291d;border:1px solid #826c42;border-radius:7px}.track-player.current small{background:var(--gold);color:#211c13;border-color:var(--gold)}.track-player.next{color:#d9d9d5}.arena{position:relative;flex:1;min-height:365px;isolation:isolate}.table-shadow{position:absolute;inset:13% 4% 3%;border-radius:50%;background:#000;filter:blur(23px);z-index:-1;opacity:.65}.felt-rail{position:absolute;inset:7% 3% 4%;border-radius:49% / 46%;padding:17px;background:linear-gradient(160deg,#44413a 0%,#24262a 32%,#414039 52%,#1c1e22 84%);box-shadow:0 0 0 1px #4c483e,0 9px 0 #111316,0 10px 0 1px #3e3931,0 20px 24px #0008,inset 0 0 0 6px #1b1d21}.felt-surface{height:100%;width:100%;position:relative;border-radius:inherit;border:1px solid #8d764b;background:radial-gradient(ellipse at 50% 30%,#30342f 0,#262b29 47%,#1c211f 100%);box-shadow:inset 0 0 45px #0c100ccc,inset 0 0 0 3px #131915}.felt-surface::after{content:"";position:absolute;inset:10px;border:1px dashed #9d8a5a20;border-radius:inherit;pointer-events:none}.felt-surface::before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:repeating-linear-gradient(115deg,transparent,transparent 3px,#ffffff02 3px,#ffffff02 4px);pointer-events:none}.table-watermark{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);font-size:100px;opacity:.035;color:#fff;font-family:Georgia,serif;pointer-events:none}.direction-label{position:absolute;left:50%;top:64%;transform:translateX(-50%);color:#85846e;font-size:10px;letter-spacing:.1em;white-space:nowrap}.arena-center{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);min-width:150px;max-width:35%;text-align:center;display:flex;flex-direction:column;align-items:center;z-index:1}.pot-label{color:#c0c4b7;font-size:12px;letter-spacing:.15em}.pot-value{font-size:42px;line-height:1.25;color:#efd29a;font-variant-numeric:tabular-nums;letter-spacing:.01em}.pot-value small{font-size:12px;margin-left:5px;color:#aaa991;font-weight:400}.blind-unit{font-size:11px;color:#a7afa6;margin:3px 0 12px}.center-turn{display:flex;flex-direction:column;gap:5px;border-top:1px solid #cbb67a2b;padding-top:10px;max-width:100%}.center-turn b{font-size:13px;font-weight:700;color:#f0e1be;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-turn span{font-size:11px;color:#aaa99b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.center-emblem{font-size:39px;color:#ba9b5b;line-height:1.2;margin-bottom:9px}.center-title{font-size:17px;color:#e5cf9c;margin-bottom:8px;white-space:nowrap}.center-hint,.arena-center>p{font-size:11px;color:#a8b0a7;line-height:1.6}.arena-center>p{margin-bottom:5px}
.table-seat{position:absolute;width:148px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;z-index:2;border-radius:12px;padding:5px 4px;transition:filter .16s}.table-seat[data-position=self]{left:50%;top:82%;width:228px}.table-seat[data-position=top]{left:50%;top:14%}.table-seat[data-position=upper-left]{left:17%;top:32%}.table-seat[data-position=upper-right]{left:83%;top:32%}.table-seat[data-position=middle-left]{left:16%;top:45%}.table-seat[data-position=middle-right]{left:84%;top:45%}.table-seat[data-position=lower-left]{left:16%;top:65%}.table-seat[data-position=lower-right]{left:84%;top:65%}.table-seat[data-position=crown-left]{left:27%;top:19%}.table-seat[data-position=crown-right]{left:73%;top:19%}.arena-3 .table-seat[data-position=upper-left],.arena-3 .table-seat[data-position=upper-right]{top:26%}.seat-indicators{display:flex;justify-content:center;align-items:center;gap:7px;height:24px;margin-bottom:4px;max-width:100%}.seat-number{font-size:10px;color:#b3ad9a;white-space:nowrap}.next-badge{font-size:10px;font-weight:400;color:#dcdbca;border:1px dashed #777866;padding:2px 5px;border-radius:4px;white-space:nowrap}.turn-badge{font-size:12px;font-weight:700;color:#221d13;background:var(--gold);border-radius:20px;padding:3px 8px;white-space:nowrap;min-width:49px;text-align:center}.turn-badge.urgent{background:#edc984}.turn-badge.critical{background:#e99583;color:#32130e}.seat-profile{display:flex;align-items:center;justify-content:center;gap:7px;max-width:100%;border-radius:24px;padding:4px 8px 4px 4px;background:#111518ed;border:1px solid #3b4044;min-height:49px;box-shadow:0 3px 6px #0004}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:50%;font-size:18px;font-weight:750;color:#ebdbb4;background:#3c3930;border:1px solid #70624b;flex:none}.avatar-1{background:#293f3e;border-color:#566c65}.avatar-2{background:#453537;border-color:#755656}.avatar-3{background:#343947;border-color:#62697c}.avatar-4{background:#443e2c;border-color:#786a43}.avatar-5{background:#3b3345;border-color:#6e5c7e}.seat-name{min-width:0;display:grid;gap:3px}.seat-name>strong{font-size:12px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:98px}.seat-name>strong em{font-style:normal;font-size:9px;background:#5f4b2a;color:#f5deb1;padding:1px 4px;border-radius:3px}.seat-name>b{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}.seat-name small{font-size:9px;font-weight:400;color:#979887}.presence{width:5px;height:5px;flex:none;background:#6c6b70;border-radius:50%}.presence.online{background:#80b99a}.is-acting .seat-profile{border-color:#d8b16b;box-shadow:0 0 0 2px #d8b16b22,0 4px 12px #0006}.is-acting .avatar{border-color:#edd49c;box-shadow:0 0 0 2px #b4945133}.is-next .seat-profile{border-color:#6d7060}.is-out .seat-profile{border-style:dashed;background:#171b1edd}.is-out .seat-name>strong{color:#bebec3}.seat-state{margin-top:4px;font-size:10px;color:#d3c7ac;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;text-align:center;line-height:1.35}.seat-state>span{color:#b2aca0}.is-out .seat-state{color:#acada8}.seat-state.ready{color:#a2d3b8}.is-acting .seat-state{color:#f3d396}.seat-paid{font-size:9px;color:#a8aaa3;line-height:1.4;margin-top:2px;text-align:center}.is-self .seat-profile{min-width:155px}.is-self .seat-indicators{margin-bottom:3px}.is-self .seat-name>strong{max-width:156px}.is-self .seat-state{font-size:11px}.is-self .seat-paid{display:none}.action-bubble{position:absolute;top:35px;left:100%;margin-left:3px;white-space:nowrap;font-size:10px;color:#e7d4ad;background:#25231be8;border:1px solid #75613b;border-radius:6px;padding:4px 7px;box-shadow:0 4px 8px #0005;z-index:5}.table-seat[data-position*=right] .action-bubble{right:100%;left:auto;margin-right:3px;margin-left:0}.is-self .action-bubble{top:36px}.action-bubble[hidden]{display:none}.kick-player{position:absolute;right:-28px;top:45px;min-height:32px;padding:4px 9px;background:#22252ade;color:#babec5;font-size:10px}.waiting-cards{display:flex;gap:4px;margin-top:6px;opacity:.46}.waiting-cards span{width:29px;height:38px;border:1px dashed #6f7167;border-radius:4px;display:grid;place-items:center;color:#85887d;font-size:15px}.empty-seat{position:absolute;top:17%;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;border:1px dashed #747467;color:#cac6b7;background:#1d221f9c;border-radius:50%;width:104px;height:104px;padding-top:20px;z-index:2;font-size:12px}.empty-seat span{font-size:28px;font-weight:300;line-height:1}
.cards{display:flex;justify-content:center;align-items:center;gap:5px;margin-top:8px;min-height:1px}.card{position:relative;width:54px;height:78px;background:#f4f0e6;color:#20262c;border:1px solid #d7d0c0;border-radius:6px;padding:5px;box-shadow:0 3px 7px #0006;display:block;flex:none;user-select:none}.card.red{color:#bd3f36}.card b{font-family:Arial,sans-serif;font-size:18px;line-height:1.05;display:flex;flex-direction:column;align-items:flex-start}.card b small{font-size:14px;line-height:1.05;margin-top:2px}.card i{position:absolute;bottom:7px;right:8px;font-size:25px;line-height:1;font-style:normal}.card.back{border:3px solid #d2c9b6;padding:0;background-color:#2b3b49;background-image:repeating-linear-gradient(45deg,transparent,transparent 3px,#9babb51d 3px,#9babb51d 4px),repeating-linear-gradient(-45deg,transparent,transparent 3px,#9babb51d 3px,#9babb51d 4px)}.card.back span{position:absolute;inset:5px;border:1px solid #c5c5b950;display:grid;place-items:center;font-size:23px;color:#9ba8a575}.card.small{width:32px;height:44px;padding:3px;border-radius:4px}.card.small b{font-size:12px}.card.small b small{font-size:10px;margin-top:1px}.card.small i{font-size:13px;bottom:3px;right:4px}.card.small.back{border-width:2px}.card.small.back span{font-size:15px;inset:3px}.mini{gap:4px;margin-top:6px}.is-self .card{width:57px;height:78px}.reveal-in .card{animation:card-arrive .28s ease-out both}.reveal-in .card:nth-child(2){animation-delay:.045s}.reveal-in .card:nth-child(3){animation-delay:.09s}@keyframes card-arrive{from{transform:translateY(-5px) rotateY(45deg);opacity:.45}to{transform:none;opacity:1}}
.outcome-peek{width:220px;max-width:100%;border:1px solid #9e8351;border-radius:13px;background:#171b19ed;box-shadow:0 9px 25px #0005;padding:17px 12px 10px;position:relative;display:grid;gap:5px;justify-items:center}.outcome-peek>span{font-size:12px;color:#d5ccb5}.outcome-peek>strong{font-size:34px;font-variant-numeric:tabular-nums}.outcome-peek>strong small{font-size:10px;font-weight:400;margin-left:5px;color:var(--muted)}.outcome-peek p{font-size:11px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#aeb8a9}.peek-close{position:absolute;right:1px;top:1px;min-height:28px;min-width:28px;padding:0;border:0;background:transparent;color:#b5b9af;font-size:19px}.outcome-peek .link-button{font-size:11px;min-height:29px}.table-tools{flex:none;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0 7px;min-height:49px}.table-tools button{font-size:12px;font-weight:500;min-height:35px;padding:6px 12px;background:#181d20;border-color:#3b4143}.table-tools small{font-size:10px;color:#b3a47c;margin-left:4px}.table-sidebar{background:#16191e;border:1px solid #34373c;border-radius:14px;min-height:0;overflow:auto;display:flex;flex-direction:column}.sidebar-section{padding:18px 17px;border-bottom:1px solid #303339}.sidebar-section h2{font-size:14px}.sidebar-section .section-title{margin-bottom:10px}.table-sidebar .tiny-note{font-size:10px}.sidebar-room-rules{margin-top:auto;padding:16px;display:grid;gap:8px;font-size:11px;color:#aaa899}.sidebar-room-rules small{color:#797f88;font-size:10px}.rank-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #ffffff0a;font-size:12px}.rank-row .rank-no{font-size:12px;color:var(--gold);width:18px}.rank-row>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.rank-row small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.rank-row>strong{font-size:16px;font-variant-numeric:tabular-nums}.action-log{list-style:none;margin:0;padding:0;font-size:11px}.action-log li{display:grid;grid-template-columns:1fr auto;gap:3px 8px;padding:9px 0;border-bottom:1px solid #ffffff0a}.action-log span{color:#a8b0b2;line-height:1.5}.action-log span>b{font-weight:500;color:#dedccf}.action-log strong{font-size:11px;color:#d0b987}.action-log time{font-size:9px;color:#737d86;grid-column:1/-1}.action-log.full li{grid-template-columns:minmax(0,1fr) 60px 70px}.action-log.full time{grid-column:auto;align-self:center;text-align:right}.action-log.full strong{text-align:right;align-self:center}
/* All valid game actions remain together; unsafe actions never become hidden-only permissions. */
.action-dock{flex:none;border-top:1px solid #59503c;margin:8px 24px 0;padding:10px 12px 13px;background:#14181c;border-radius:12px 12px 0 0;box-shadow:0 -7px 25px #0003;z-index:5}.my-stats{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;max-width:900px;margin:0 auto}.my-stats>div+div{border-left:1px solid #31363b}.my-stats small{display:block;font-size:10px;color:#a0a5a9;margin-bottom:3px}.my-stats strong{font-size:20px;font-variant-numeric:tabular-nums}.my-stats em{font-style:normal;font-size:12px;font-weight:400;color:#969d9d}.dock-topline{display:flex;justify-content:space-between;gap:8px;align-items:center;max-width:900px;margin:8px auto 6px;min-height:18px;font-size:11px;color:#d5c8ad}.dock-note{color:#777f85;font-size:10px}#turn-warning.critical{color:#ffb4a3}.action-buttons{display:flex;gap:9px;max-width:900px;margin:auto;justify-content:center;align-items:center;min-height:48px}.action-buttons button{min-height:46px;min-width:95px;flex:1;font-size:14px;letter-spacing:.02em}.action-buttons button b{font-weight:750;font-size:16px;margin-left:4px}.action-buttons .waiting-action{flex:1;color:#929da2;text-align:center;font-size:12px;padding:8px}.wait-host{color:var(--muted);font-size:12px;padding:8px}.compare{background:#25262b;border-color:#7b6b50;color:#dfca9f}
/* Drawer / rules / historical round inspector. */
.game-dialog{width:min(94vw,680px);max-height:88dvh;margin:auto;padding:0;border:1px solid #716044;border-radius:18px;color:var(--text);background:#181d21;box-shadow:0 25px 90px #000a;overflow:hidden}.game-dialog[open]{display:flex;flex-direction:column}.game-dialog::backdrop{background:#05080bb8;backdrop-filter:blur(2px)}.dialog-head{padding:15px 18px;display:flex;align-items:center;gap:12px;justify-content:space-between;border-bottom:1px solid #353b42;flex:none;background:#181c20}.dialog-head h2{font-size:18px;line-height:1.4}.close-dialog{font-size:26px;border:0;background:transparent;min-width:40px;min-height:40px;padding:0;font-weight:400;color:#bfc3c5}.dialog-body{padding:20px;overflow:auto;min-height:0;overscroll-behavior:contain}.dialog-body>p{margin:4px 0 15px;line-height:1.8;color:#bac0c5;font-size:13px}.dialog-actions{display:flex;gap:10px;margin-top:22px}.dialog-actions button{flex:1}.dialog-fallback{position:fixed;inset:5vh 0;z-index:1000}.setting-user{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.setting-user small{font-size:11px;color:var(--muted)}.version-detail{font-size:12px;color:var(--gold);margin:22px 0 16px}.settings-rules{width:100%}.rule-summary{display:grid;gap:7px;padding:14px 16px;border:1px solid #5f5238;border-radius:10px;background:#26261f;font-size:12px;color:#c3c3b6;margin-bottom:15px}.rule-summary b{color:var(--gold-bright);font-size:14px}.rule-index{display:flex;gap:5px 8px;flex-wrap:wrap;margin-bottom:17px}.rule-index button{font-size:11px;min-height:32px;padding:5px 9px;background:#1f262b;font-weight:400}.rule-section{border-top:1px solid #353e43;padding:14px 0;scroll-margin-top:12px}.rule-section summary{font-size:14px;font-weight:650;cursor:pointer;color:#dfc89b;line-height:1.6;list-style-position:outside;margin-left:16px}.rule-section p{font-size:13px;color:#bdc3c6;line-height:1.95;margin:11px 0 0}.history-context{font-size:13px;font-weight:650;color:#e4d4b5}.history-context span{display:block;font-size:11px;font-weight:400;color:#9aa7ab;margin-top:7px}.history-controls{display:grid;grid-template-columns:auto minmax(85px,1fr) auto;gap:9px;margin:20px 0}.history-controls button{font-size:12px;padding:8px 12px;font-weight:500}.history-controls select{font-size:13px;padding:8px 10px;min-height:42px;background:#141a1f}.round-overview{background:#222c2a;border:1px solid #4a5245;border-radius:11px;padding:15px 17px}.round-overview>strong{font-size:18px;color:#e9d4a3}.round-overview>span{display:block;font-size:10px;color:#adb4ac;margin-top:7px}.round-overview>p{font-size:12px;color:#b4c1b8;margin:10px 0}.round-pot{display:flex;justify-content:space-between;gap:15px;font-size:12px;color:#c0c7ba}.round-pot b{font-size:21px;color:#e9ca88;margin-left:6px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;margin:16px 0}th,td{text-align:right;padding:12px 8px;border-bottom:1px solid #353e45;white-space:nowrap}th{font-size:11px;color:#91a0a8;font-weight:400}th:first-child,td:first-child{text-align:left;max-width:180px;overflow:hidden;text-overflow:ellipsis}.history-hands{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:10px}.history-hands article{border:1px solid #3a444a;border-radius:9px;padding:12px 5px;text-align:center;background:#131b20}.history-hands strong{font-size:12px;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis}.history-hands small{display:block;font-size:10px;color:#a1aaab;line-height:1.5;margin-top:9px}.history-dialog{width:min(94vw,740px)}.match-list{display:grid;gap:10px}.match-row{text-align:left;display:grid;gap:8px;padding:18px;background:#20282e}.match-row strong{font-size:14px}.match-row span{font-size:11px;color:#b0b8ba;font-weight:400}.match-row small{font-size:11px;color:var(--gold);font-weight:400}.empty-state{padding:30px 15px;color:#c8c7bb;text-align:center;line-height:1.7;font-size:14px}.empty-state p{font-size:12px;color:var(--muted);margin-top:10px}.target-list{display:grid;gap:10px;margin-top:15px}.target-list button{display:flex;justify-content:space-between;align-items:center}.target-list span{font-size:11px;color:#b5b8b4}.duel{display:grid;grid-template-columns:1fr 1fr;gap:14px}.duel article{background:#131a1d;border:1px solid #49514b;border-radius:12px;padding:18px 6px;text-align:center;min-width:0}.duel strong{display:block;margin-bottom:12px;font-size:13px;overflow:hidden;text-overflow:ellipsis}.duel .card{width:41px;height:59px;border-radius:4px;padding:3px}.duel .card b{font-size:15px}.duel .card small{font-size:11px}.duel .card i{font-size:19px;bottom:5px;right:6px}.duel .cards{gap:4px}.duel .badge{margin-top:13px}.duel p{font-size:13px;margin-top:12px}.compare-result>.muted{font-size:11px;text-align:center;margin:10px 0 17px}.hidden-hand{font-size:11px!important;color:#828f94;padding:17px 5px;min-height:70px}.clipboard-helper{position:fixed;left:-9999px;top:0;width:2px;height:2px}.toast{position:fixed;z-index:10000;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translate(-50%,15px);padding:12px 18px;background:#eee2c7;color:#28241b;box-shadow:0 10px 40px #0007;border-radius:10px;font-size:13px;line-height:1.5;max-width:min(90vw,540px);width:max-content;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}.motion-off *, .motion-off *::before,.motion-off *::after{animation:none!important;transition:none!important}
@media(min-width:1500px){.arena{min-height:440px}.card.small{width:36px;height:50px}.table-seat{width:165px}.seat-name>strong{font-size:13px}.seat-name>b{font-size:14px}.seat-state{font-size:11px}.seat-paid{font-size:10px}.is-self .card{width:64px;height:88px}}
@media(max-width:1100px){.game-layout{grid-template-columns:minmax(0,1fr) 245px;gap:12px;padding:0 15px}.table-seat{width:124px}.seat-profile{gap:5px;padding:3px 5px 3px 3px}.avatar{width:31px;height:31px;font-size:16px}.seat-name>strong{max-width:75px;font-size:11px}.seat-profile{min-height:41px}.action-bubble{font-size:9px;padding:3px 5px}.card.small{width:28px;height:40px}.seat-number{font-size:9px}.action-dock{margin-right:15px;margin-left:15px}.room-bar{padding-right:16px;padding-left:16px}}
@media(max-width:850px){.table-sidebar{display:none}.game-layout{display:flex}.table-column{flex:1}.game-screen{min-height:665px}.room-identity{gap:10px}.arena-center{max-width:35%}.table-seat{width:132px}}
@media(max-width:600px){.topbar{height:56px;padding:7px 12px;gap:6px}.brand{font-size:15px;gap:5px}.brand small{font-size:9px;margin-top:3px}.emblem{width:25px;font-size:25px;height:32px}.header-right{gap:8px}.version-tag{font-size:10px;padding:4px 5px}.icon-button{min-height:34px;min-width:34px;font-size:17px;padding:3px}.connection{font-size:10px;gap:3px}.room-bar{padding:8px 11px;min-height:51px;gap:6px}.room-identity{gap:5px;flex-wrap:wrap;font-size:10px;max-width:54%}.room-identity b{font-size:14px}.phase-chip{font-size:9px;padding:2px 4px}.room-buttons{gap:5px}.copy-link{font-size:11px;min-height:35px;padding:6px 8px}.leave-link{min-height:35px;padding:4px 6px;font-size:11px}.game-screen{height:calc(100dvh - 56px);min-height:736px}.game-layout{padding:0 5px;min-height:468px;gap:0}.order-strip{height:37px;margin:0 7px;gap:7px;font-size:10px}.order-caption{font-size:10px}.turn-track{gap:3px}.track-player{font-size:10px;padding:4px;gap:3px}.track-player b{font-size:8px}.track-player small{width:14px;height:14px;font-size:9px}.turn-track>i{font-size:11px}.arena{min-height:385px}.felt-rail{inset:8% 2.5% 4%;padding:11px;box-shadow:0 0 0 1px #62543b,0 5px 0 #141619,0 6px 0 1px #4b4030,0 14px 20px #0007,inset 0 0 0 5px #1b1d21}.felt-surface{box-shadow:inset 0 0 32px #0d110b99,inset 0 0 0 2px #151914}.felt-surface::after{inset:7px}.table-seat{width:102px;padding:3px 1px}.table-seat[data-position=self]{width:180px;top:85%}.table-seat[data-position=top]{top:14%}.table-seat[data-position=upper-left]{left:15%;top:34%}.table-seat[data-position=upper-right]{left:85%;top:34%}.table-seat[data-position=lower-left]{left:15%;top:65%}.table-seat[data-position=lower-right]{left:85%;top:65%}.table-seat[data-position=middle-left]{left:16%}.table-seat[data-position=middle-right]{left:84%}.table-seat[data-position=crown-left]{left:25%;top:20%}.table-seat[data-position=crown-right]{left:75%;top:20%}.seat-profile{gap:4px;padding:3px 5px 3px 3px;min-height:37px}.avatar{width:27px;height:27px;font-size:14px}.seat-name>strong{font-size:10px;max-width:58px}.seat-name>b{font-size:11px}.seat-name small{font-size:8px}.presence{height:4px;width:4px}.seat-number{font-size:8px}.seat-indicators{height:19px;margin-bottom:2px;gap:4px}.turn-badge{font-size:10px;padding:2px 5px;min-width:38px}.next-badge{font-size:8px;padding:1px 3px}.table-seat .card.small{width:25px;height:34px;border-radius:3px;padding:2px}.table-seat .card.small b{font-size:10px}.table-seat .card.small b small{font-size:8px}.table-seat .card.small i{font-size:11px;bottom:2px;right:3px}.table-seat .mini{gap:3px;margin-top:5px}.table-seat .card.small.back{border-width:2px}.table-seat .card.small.back span{inset:2px;font-size:13px}.seat-state{font-size:9px;margin-top:3px}.seat-paid{font-size:8px;margin-top:2px}.is-self .seat-profile{min-width:120px;min-height:36px}.is-self .seat-name>strong{max-width:110px;font-size:11px}.is-self .avatar{width:28px;height:28px}.is-self .card{width:46px;height:64px}.is-self .card b{font-size:16px}.is-self .card b small{font-size:12px}.is-self .card i{font-size:23px;bottom:5px;right:6px}.is-self .cards{margin-top:5px;gap:4px}.is-self .seat-state{font-size:9px}.table-seat:not(.is-self) .action-bubble{left:50%;top:auto;bottom:calc(100% + 1px);right:auto;transform:translateX(-50%);font-size:9px;padding:3px 6px;margin:0}.is-self .action-bubble{font-size:9px;top:24px;left:100%;padding:4px}.arena-center{top:46%;min-width:120px;max-width:35%}.pot-label{font-size:10px}.pot-value{font-size:31px}.pot-value small{font-size:10px}.blind-unit{font-size:9px;margin:1px 0 8px}.center-turn{gap:4px;padding-top:7px}.center-turn b{font-size:11px}.center-turn span{font-size:9px}.center-emblem{font-size:29px;margin-bottom:6px}.center-title{font-size:12px;margin-bottom:6px}.center-hint,.arena-center>p{font-size:9px}.direction-label{font-size:8px;top:64%}.table-watermark{font-size:65px}.empty-seat{width:87px;height:87px;padding-top:16px;top:19%;font-size:11px}.waiting-cards span{width:24px;height:32px}.kick-player{right:-14px;top:35px;font-size:9px;padding:3px 5px;min-height:28px}.outcome-peek{width:150px;padding:16px 5px 7px;border-radius:10px}.outcome-peek>span{font-size:10px}.outcome-peek>strong{font-size:27px}.outcome-peek>p{font-size:9px}.outcome-peek .link-button{font-size:9px;min-height:25px}.outcome-peek>strong small{font-size:8px}.table-tools{padding:6px 5px 5px;gap:5px;min-height:41px}.table-tools button{flex:1;min-height:33px;font-size:11px;padding:5px 3px;white-space:nowrap}.table-tools small{font-size:8px;margin-left:2px}.action-dock{margin:3px 0 0;border-radius:11px 11px 0 0;padding:9px 10px calc(10px + env(safe-area-inset-bottom));}.my-stats small{font-size:9px;margin-bottom:3px}.my-stats strong{font-size:17px}.my-stats em{font-size:10px}.dock-topline{font-size:10px;margin:7px auto 6px;min-height:16px}.dock-note{font-size:8px;max-width:42%;text-align:right}.action-buttons{flex-wrap:wrap;gap:6px;min-height:46px}.action-buttons button{min-width:0;min-height:43px;padding:8px 5px;font-size:12px;flex:1 1 28%}.action-buttons button b{font-size:13px;margin-left:3px}.action-buttons .waiting-action{font-size:10px;min-width:50%}.game-screen:has(.action-buttons [data-action="compare"]){min-height:780px}.game-dialog{width:calc(100vw - 20px);max-height:88dvh;border-radius:15px}.dialog-head{padding:11px 14px}.dialog-head h2{font-size:16px}.dialog-body{padding:15px}.rule-index button{font-size:10px}.rule-section p{font-size:12px;line-height:1.9}.rule-section summary{font-size:13px}.history-controls{gap:5px}.history-controls button{font-size:10px;padding:7px;min-height:41px}.history-controls select{font-size:12px}.history-hands{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.duel{gap:8px}.duel .card{width:35px;height:51px}.duel .cards{gap:3px}.duel .card b{font-size:13px}.duel .card b small{font-size:10px}.duel .card i{font-size:17px;right:4px;bottom:4px}.duel strong{font-size:12px}.duel article{padding:13px 4px}.duel p{font-size:12px}.action-log.full li{grid-template-columns:minmax(0,1fr) 37px 54px}.history-ledger{font-size:11px}.history-ledger th,.history-ledger td{padding:10px 4px}.welcome{padding:30px 20px 20px}.welcome h1{font-size:27px}.lobby{padding:25px 16px}.lobby-title h1{font-size:22px}.lobby-grid{grid-template-columns:1fr;gap:14px}.panel{padding:20px}.invite-banner{padding:12px;gap:8px}.invite-banner p{font-size:11px}.invite-banner button{font-size:10px;padding:6px}.toast{font-size:12px}}
@media(max-width:359px){.brand small{display:none}.brand{font-size:14px}.header-right{gap:5px}.connection{font-size:9px}.table-seat{width:88px}.seat-name>strong{max-width:48px}.table-seat .avatar{width:23px;height:23px;font-size:12px}.is-self .avatar{width:26px;height:26px}.seat-profile{gap:3px;padding-right:3px}.presence{display:none}.table-seat[data-position=self]{width:151px}.is-self .card{width:41px;height:59px}.table-seat[data-position=upper-left],.table-seat[data-position=lower-left]{left:14%}.table-seat[data-position=upper-right],.table-seat[data-position=lower-right]{left:86%}.is-self .action-bubble{max-width:67px;white-space:normal}.arena-center{min-width:110px}.table-tools small{display:none}.room-identity .phase-chip{display:none}}
@media(max-height:680px) and (orientation:landscape){.game-screen{height:auto;min-height:600px}.arena{height:385px;flex:none}.game-layout{min-height:470px}.table-sidebar{max-height:470px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.loading-message{padding:36px;text-align:center;color:var(--muted)}
@media(max-width:600px){.action-buttons:has(button:nth-child(4):last-child){display:grid;grid-template-columns:1fr 1fr}.kick-player{left:50%;right:auto;top:auto;bottom:-24px;transform:translateX(-50%);padding:3px 8px}.arena-2 .kick-player{bottom:-25px}}
@media(max-width:600px){.table-seat{width:98px}.table-seat[data-position=self]{width:156px}.table-seat[data-position=lower-left]{left:13%}.table-seat[data-position=lower-right]{left:87%}}
@media(max-width:359px){.table-seat{width:88px}.table-seat[data-position=self]{width:134px}.is-self .card{width:40px}.table-seat[data-position=lower-left]{left:14%}.table-seat[data-position=lower-right]{left:86%}}
@media(max-width:600px){.table-seat[data-position=self]{top:81%}}

/* V1.3.1: deterministic closing-phase affordance; no in-game rule hidden behind disabled actions. */
.cap-chip{border-color:#a78343;background:#4a381922;color:#f2d49c}
.cap-phase-info{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:8px auto 5px;max-width:960px;padding:9px 12px;border:1px solid #73613d;border-radius:9px;background:#282317;color:#e0c692;font-size:12px;line-height:1.5}
.cap-phase-info b{color:#f5d29a;white-space:nowrap}
.cap-phase-info span{color:#d4c8a9}
.cap-phase-info button{min-height:31px;padding:5px 9px;background:#42351e;border-color:#877244;color:#f5d29a;font-size:11px;white-space:nowrap}
.welcome-rules{display:block;margin:16px auto 2px;min-height:36px;font-size:12px;color:var(--gold-bright)}
@media(max-width:600px){.cap-phase-info{margin:6px 0 5px;padding:7px;font-size:10px;gap:4px;text-align:center}.cap-phase-info span{flex:1 1 100%;font-size:10px}.cap-phase-info button{min-height:28px;padding:3px 7px;font-size:10px}}
