@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#101c1a;--panel:#172420;--muted:#98aaa3;--line:#2b3c35;--lime:#c6ee89;--text:#f3f5eb}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:16px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lime);outline-offset:4px}button{transition:background .16s,transform .16s}button:active{transform:translateY(1px)}.app-header{height:91px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px}.brand{text-decoration:none;color:var(--text);font-family:Manrope,sans-serif;font-size:28px;font-weight:800;letter-spacing:-1px;display:flex;align-items:center;gap:10px}.brand-mark{color:var(--lime);font-size:35px}.brand-caption{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:2px;font-weight:500;border-left:1px solid #405047;padding-left:20px;margin-left:12px;color:var(--muted)}.header-right{display:flex;align-items:center;gap:22px}.prototype-tag{font-size:11px;color:#b6c4be;letter-spacing:1.8px}.icon-button{background:transparent;color:#c5d1cb;border:1px solid #3a4b43;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font-size:18px}main{max-width:1600px;margin:auto;display:grid;grid-template-columns:305px minmax(0,1fr);min-height:calc(100svh - 91px)}.sidebar{padding:44px 30px 20px 38px;border-right:1px solid var(--line);display:flex;flex-direction:column}.eyebrow{font-size:11px;letter-spacing:1.8px;color:var(--muted);font-weight:600;margin:0 0 15px}h1{font-family:Manrope,sans-serif;font-size:36px;line-height:1.24;letter-spacing:-1.4px;margin:0 0 16px;font-weight:500}.intro{color:var(--muted);font-size:14px;line-height:1.7;max-width:210px;margin:0}.room-actions{display:grid;gap:10px;margin:30px 0 34px}.button{border:1px solid transparent;min-height:48px;padding:12px 17px;border-radius:9px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;font-size:14px}.primary{background:var(--lime);color:#17251b}.primary:hover{background:#d6f6a9}.secondary{background:transparent;color:var(--text);border-color:#405047}.secondary:hover,.check:hover{background:#293d32}.secondary span{margin-left:auto}.room-actions .primary span{font-size:22px;line-height:1}.game-details{border-top:1px solid var(--line);padding-top:24px}.game-details h2{font-size:14px;font-weight:500;margin:0 0 20px}.game-details dl{margin:0;font-size:13px}.game-details dl div{display:flex;justify-content:space-between;gap:12px;margin:0 0 17px}.game-details dt{color:var(--muted)}.game-details dd{margin:0;text-align:right}.chip-label{display:inline-block;font-size:10px;letter-spacing:1.5px;color:#a9c5b8;border:1px solid #354d40;border-radius:4px;padding:5px 8px}.prototype-note{display:flex;gap:12px;background:#1b2b25;border:1px solid #2c4035;padding:16px 13px;border-radius:9px;margin-top:36px}.note-icon{color:var(--lime);font-size:22px}.prototype-note strong{font-size:13px;font-weight:500}.prototype-note p{font-size:12px;color:#a3b5aa;line-height:1.6;margin:6px 0 0}.sidebar-footer{font-size:12px;color:#718b7c;margin:30px 0 0}.game-area{padding:35px 38px 18px;min-width:0;display:flex;flex-direction:column}.table-header{display:flex;justify-content:space-between;align-items:center;gap:15px}.table-header .eyebrow{margin-bottom:7px;font-size:10px;letter-spacing:2px}.table-header h2{font-family:Manrope,sans-serif;font-size:23px;font-weight:500;letter-spacing:-.5px;margin:0;overflow-wrap:anywhere}.preview-badge{display:inline-block;font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:0;font-weight:400;vertical-align:middle;color:#b3c6bc;border:1px solid #35483d;border-radius:5px;padding:4px 8px;margin-left:8px}.text-button{border:0;background:none;color:#aebeb5;font-size:13px;min-height:44px;padding:6px 0;white-space:nowrap}.text-button:hover{color:var(--lime)}.table-stage{position:relative;width:100%;max-width:1030px;height:474px;min-height:474px;margin:18px auto 4px}.felt{position:absolute;inset:63px 39px 58px;border:12px solid #314337;border-radius:190px;background:radial-gradient(ellipse at 50% 30%,#2b694e,#20543e 65%,#1b4836);box-shadow:0 0 0 2px #455648,0 14px 0 2px #0b1411,0 22px 40px #0003,inset 0 0 35px #092d2a66}.felt-inner{position:absolute;inset:12px;border:1px solid #79a67b40;border-radius:170px}.felt-label{position:absolute;left:0;right:0;bottom:42px;text-align:center;letter-spacing:4px;font-size:10px;color:#9ac2a044}.felt-label span{margin:0 12px}.player{position:absolute;z-index:2;width:130px}.player-info{position:relative;display:flex;gap:9px;align-items:center;background:#162a21;border:1px solid #49664f;border-radius:10px;padding:9px 10px;min-height:59px;box-shadow:0 6px 18px #0003}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#28322a;font-weight:600;font-size:14px;flex-shrink:0}.lilac{background:#c3b7d7}.peach{background:#dfb99c}.blue{background:#a7c9d7}.lime{background:var(--lime)}.player strong{display:block;font-size:13px;font-weight:500;max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-info div>span{display:block;color:#b8cabe;font-size:12px;margin-top:3px;font-variant-numeric:tabular-nums}.dealer{position:absolute;bottom:-6px;right:-12px;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;background:#efeee0;color:#202920;font-size:11px;border:2px solid #53624b}.seat-top{top:3px;left:50%;transform:translateX(-50%)}.seat-left-top{top:107px;left:0}.seat-right-top{top:107px;right:0}.mini-cards{display:flex;justify-content:center;gap:3px;margin-bottom:-8px;height:39px}.mini-cards i{width:28px;height:38px;background:repeating-linear-gradient(45deg,#9ab69a 0px,#9ab69a 1px,#74917b 1px,#74917b 4px);border:3px solid #d0dac9;border-radius:4px}.mini-cards i:first-child{transform:rotate(-9deg)}.mini-cards i:last-child{transform:rotate(9deg)}.seat-left-bottom{left:19px;bottom:89px}.seat-right-bottom{right:19px;bottom:89px}.empty{display:flex;align-items:center;gap:9px;justify-content:center;color:#adc2ad;font-size:12px}.empty-seat{width:34px;height:34px;border:1px dashed #829e7b;border-radius:50%;display:grid;place-items:center;color:#adc2ad;font-size:19px}.board{position:absolute;top:145px;left:50%;transform:translateX(-50%);display:grid;justify-items:center;z-index:1}.pot{text-align:center;margin-bottom:17px}.pot>span{font-size:9px;letter-spacing:2px;color:#b3c8af;display:block}.pot strong{display:block;font-size:23px;font-weight:600;margin-top:4px}.pot small{font-size:12px;font-weight:400;color:#b6cdb6}.community-cards{display:flex;gap:7px}.card{position:relative;width:53px;height:76px;background:#f5f4e9;border:1px solid #fff;border-radius:6px;color:#25352c;box-shadow:0 3px 4px #0003;flex-shrink:0;font-family:Georgia,serif}.card>span{position:absolute;top:5px;left:7px;font-size:22px;font-weight:bold;line-height:1}.card small{display:block;font-size:15px;line-height:1.1;margin-top:2px;text-align:center}.card>b{position:absolute;right:6px;bottom:5px;font-size:26px;line-height:1}.card.red{color:#b54f47}.card.unrevealed{background:#17473566;border:1px dashed #9bbba35c;box-shadow:none;display:grid;place-items:center;color:#81a68c4d;font-size:23px}.street-label{margin-top:14px;letter-spacing:1.6px;font-size:9px;color:#b5c9b3}.street-label span{margin:0 7px;color:#76a37d}.seat-you{bottom:5px;left:50%;transform:translateX(-50%);width:164px}.seat-you .player-info{border-color:#94b771;box-shadow:0 0 0 3px #c6ee890c;background:#253d2c}.hole-cards{display:flex;gap:5px;justify-content:center;margin-bottom:7px}.hole-cards .card{width:47px;height:62px}.hole-cards .card:first-child{transform:rotate(-6deg)}.hole-cards .card:last-child{transform:rotate(6deg)}.hole-cards .card>span{font-size:20px}.hole-cards .card>b{font-size:21px}.you-label{color:var(--lime);font-size:9px;margin-left:auto;letter-spacing:1px}.control-panel{margin-top:auto;background:#182820;border:1px solid #314436;border-radius:12px;padding:12px 20px 18px}.action-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.action-heading>div{display:flex;align-items:center;gap:9px}.action-heading strong{font-size:13px;font-weight:500}.sample-dot{width:6px;height:6px;background:var(--lime);border-radius:50%}.desktop-hint{font-size:11px;color:#8ea796;margin-left:5px}.next-street{font-size:12px;color:var(--lime)}.next-street span{margin-left:6px}.bet-controls{display:flex;align-items:center;gap:14px;margin:0 0 16px}.bet-controls label{font-size:12px;white-space:nowrap}.bet-controls label span{display:block;color:#839e8b;font-size:11px;margin-top:2px}.amount-input{width:80px}.amount-input input{width:100%;height:38px;background:#101e17;border:1px solid #3c5743;border-radius:6px;color:var(--text);font-size:14px;padding:7px;font-variant-numeric:tabular-nums}.bet-controls input[type=range]{min-width:40px;flex:1;accent-color:var(--lime);height:25px}.presets{display:flex;gap:5px}.presets button{background:#23372a;color:#c2d2c4;border:1px solid #3b5140;border-radius:5px;font-size:11px;min-height:34px;padding:5px 11px;white-space:nowrap}.presets button:hover{border-color:var(--lime)}.action-buttons{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px}.fold{background:#302e27;color:#d4c9ba;border-color:#48483b}.fold:hover{background:#41382e}.check{background:#233a2a;color:#d7e3d6;border-color:#3c5941}.table-footer{display:flex;justify-content:space-between;gap:10px;color:#799385;font-size:11px;padding-top:17px}dialog{color:var(--text);background:#182820;border:1px solid #466048;border-radius:17px;width:min(450px,calc(100% - 30px));max-height:calc(100dvh - 30px);padding:27px;box-shadow:0 25px 90px #0008}dialog::backdrop{background:#030d09b8;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-heading .eyebrow{margin:0}dialog h2{font-family:Manrope,sans-serif;font-size:27px;font-weight:500;letter-spacing:-.7px;margin:15px 0 12px}dialog p,dialog li{font-size:14px;line-height:1.65;color:#acbfaf}dialog ul{padding-left:20px}dialog label{font-size:14px;display:grid;gap:7px;margin:17px 0}dialog input,dialog select{width:100%;min-height:46px;padding:10px;border:1px solid #45604b;border-radius:6px;background:#102017;color:var(--text);font-size:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row label{margin-bottom:0}dialog .button{width:100%;margin-top:23px}.coming-soon{display:flex;gap:17px;padding:18px;background:#243b2c;border-radius:8px;margin-top:23px}.coming-soon>span{color:var(--lime);font-size:22px}.coming-soon strong{font-size:14px}.coming-soon p{margin:7px 0 0;font-size:13px}.toast{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);width:max-content;max-width:calc(100% - 28px);border:1px solid #6d885c;background:#253c2b;color:#eff9e8;border-radius:9px;padding:13px 19px;box-shadow:0 9px 30px #0006;font-size:14px;z-index:10;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.visible{opacity:1;transform:translate(-50%,0)}
@media(min-width:1450px){.game-area{padding-left:60px;padding-right:60px}.table-stage{height:540px;min-height:540px}.board{top:178px}.felt{inset:68px 44px 67px}.seat-left-top,.seat-right-top{top:137px}.seat-left-bottom,.seat-right-bottom{bottom:108px}.seat-you{bottom:13px}}
@media(max-width:1150px){main{grid-template-columns:255px minmax(0,1fr)}.sidebar{padding-left:24px;padding-right:24px}h1{font-size:31px}.game-area{padding-left:23px;padding-right:23px}.desktop-hint{display:none}.bet-controls{gap:9px}.presets button{padding:5px 8px}.player{width:114px}.player-info{padding:8px;gap:6px}.felt{left:28px;right:28px}.seat-left-bottom{left:0}.seat-right-bottom{right:0}}
@media(max-width:850px){.app-header{height:72px;padding:0 22px}.brand-caption{display:none}main{display:flex;flex-direction:column}.sidebar{padding:20px 22px;border-right:0;border-bottom:1px solid var(--line);display:block}.sidebar-top,.game-details,.prototype-note,.sidebar-footer{display:none}.room-actions{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.room-actions .button{min-height:44px}.secondary span{margin-left:4px}.game-area{padding:25px 22px 22px}.table-stage{max-width:720px}.control-panel{width:100%;max-width:760px;align-self:center}.table-footer{width:100%;max-width:760px;align-self:center}}
@media(max-width:540px){.app-header{height:64px;padding:0 18px;padding-top:env(safe-area-inset-top)}.brand{font-size:24px}.brand-mark{font-size:30px}.header-right{gap:13px}.prototype-tag{font-size:9px;letter-spacing:1.2px}.icon-button{width:32px;height:32px}.sidebar{padding:13px 16px}.room-actions{gap:9px}.room-actions .button{font-size:13px;padding:8px;min-height:43px}.game-area{padding:20px 12px max(20px,env(safe-area-inset-bottom))}.table-header{padding:0 5px}.table-header h2{font-size:19px}.table-header .eyebrow{font-size:9px}.preview-badge{font-size:9px;margin-left:4px;padding:3px 5px}.table-header>.text-button{font-size:20px;padding:0 5px}.table-header>.text-button span{display:none}.table-stage{height:455px;min-height:455px;margin-top:12px;margin-bottom:12px;max-width:400px}.felt{inset:49px 30px 49px;border-width:8px;border-radius:46%;box-shadow:0 0 0 2px #455648,0 8px 0 2px #0b1411,0 16px 24px #0003,inset 0 0 35px #092d2a66}.felt-inner{inset:9px;border-radius:46%}.felt-label{bottom:60px;font-size:8px;letter-spacing:2px}.felt-label span{margin:0 6px}.player{width:98px}.player-info{padding:7px 6px;gap:6px;min-height:49px;border-radius:8px}.avatar{width:25px;height:25px;font-size:12px}.player strong{font-size:12px;max-width:63px}.player-info div>span{font-size:11px}.seat-top{top:1px}.mini-cards{height:29px}.mini-cards i{width:22px;height:29px;border-width:2px}.seat-left-top{top:99px;left:1px}.seat-right-top{top:99px;right:1px}.seat-left-bottom{left:8px;bottom:119px}.seat-right-bottom{right:8px;bottom:119px}.empty{flex-direction:column;gap:6px;font-size:10px;width:64px}.empty-seat{width:29px;height:29px;font-size:16px}.board{top:161px}.pot{margin-bottom:12px}.pot strong{font-size:20px}.pot>span{font-size:8px}.community-cards{gap:5px}.card{width:39px;height:58px;border-radius:5px}.card>span{font-size:18px;left:5px;top:4px}.card small{font-size:12px}.card>b{font-size:21px;right:4px;bottom:4px}.street-label{font-size:8px;letter-spacing:1.1px;margin-top:12px}.seat-you{width:142px;bottom:0}.hole-cards .card{width:43px;height:60px}.hole-cards{margin-bottom:6px}.seat-you .player-info{min-height:52px}.seat-you .avatar{width:30px;height:30px}.control-panel{border-radius:10px;padding:8px 12px 12px}.action-heading{margin-bottom:3px}.action-heading strong{font-size:12px}.next-street{font-size:11px}.bet-controls{display:grid;grid-template-columns:46px 67px 1fr;gap:7px;margin-bottom:12px}.bet-controls label{font-size:11px}.amount-input{width:auto}.amount-input input{height:35px;font-size:13px}.bet-controls input[type=range]{grid-column:3;grid-row:1;width:100%}.presets{grid-column:1/-1;justify-content:flex-end}.presets button{min-width:54px;min-height:30px}.action-buttons{gap:7px;grid-template-columns:1fr 1fr 1.35fr}.action-buttons .button{font-size:13px;min-height:47px;padding:10px 7px;gap:4px}.table-footer{justify-content:center;font-size:10px;padding-top:14px}.table-footer>span:last-child{display:none}}
@media(max-width:360px){.table-stage{height:439px;min-height:439px}.card{width:35px;height:53px}.player{width:89px}.seat-you{width:134px}.avatar{width:21px;height:21px}.community-cards{gap:4px}.table-header h2{font-size:17px}.board{top:158px}.preview-badge{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:540px) and (min-height:650px){.app-header{height:56px}.sidebar{padding-top:10px;padding-bottom:10px}.game-area{padding-top:14px}.table-stage{height:clamp(340px,calc(100svh - 475px),455px);min-height:0;margin-top:8px;margin-bottom:10px}.seat-left-top,.seat-right-top{top:21%}.board{top:34%}.seat-left-bottom,.seat-right-bottom{bottom:25%}.felt{top:40px;bottom:38px}.felt-label{bottom:46px}.pot{margin-bottom:9px}.pot strong{font-size:18px}.street-label{margin-top:8px}.hole-cards .card{height:54px}.hole-cards{margin-bottom:4px}.action-heading .text-button{min-height:36px}.bet-controls{margin-bottom:9px}.action-buttons .button,.room-actions .button{font-size:14px}}
button:disabled{opacity:.45;transform:none;cursor:default}input:disabled{opacity:.4}.seat-status{display:block;text-align:center;font-size:11px;color:#bfd0bd;margin-top:5px;min-height:14px;line-height:1.25;background:#102017c9;border-radius:4px;padding:2px 3px;overflow-wrap:anywhere}.acting .player-info{outline:2px solid var(--lime);box-shadow:0 0 24px #c6ee8920}.folded{opacity:.5}.seat-you{bottom:-12px}.seat-left-bottom,.seat-right-bottom{bottom:69px}.revealed-cards{height:45px;margin-bottom:3px;gap:3px}.revealed-cards .card{width:29px;height:43px;border-radius:3px}.revealed-cards .card>span{font-size:14px;left:3px;top:3px}.revealed-cards .card small{font-size:10px}.revealed-cards .card>b{font-size:12px;bottom:2px;right:2px}.bet-help{font-size:12px;color:#a8bca9;line-height:1.45;margin:0 0 12px;min-height:18px}.hand-result{padding:18px 20px;background:#253c2b;border:1px solid #607d50;border-radius:10px;margin-top:15px}.hand-result h3{font-size:17px;color:var(--lime);margin:0 0 8px}.hand-result p{font-size:14px;margin:0 0 12px}.hand-result summary,.hand-history summary{cursor:pointer;min-height:36px;font-size:14px;padding:8px 0}.showdown-row{font-size:13px;line-height:1.6;margin-top:7px}.hand-history{margin-top:12px;border-top:1px solid var(--line);padding:3px 6px}.hand-history summary{color:#bacdbc}.hand-history summary span{float:right;font-size:12px;color:var(--muted)}.hand-history ol{font-size:13px;line-height:1.9;padding-left:24px;max-height:220px;overflow:auto}.control-panel{margin-top:20px}dialog a{color:var(--lime)}.table-header>#rules-button{font-size:14px;padding:5px 10px}.table-stage{margin-bottom:20px}.action-heading>div{min-width:0}.action-heading strong{overflow-wrap:anywhere}.prototype-tag{letter-spacing:1px}
@media(max-width:540px){.table-stage{margin-bottom:24px}.seat-you{bottom:-12px}.seat-left-bottom,.seat-right-bottom{bottom:25%;width:89px}.seat-left-bottom{left:1px}.seat-right-bottom{right:1px}.seat-status{font-size:10px}.control-panel{margin-top:0}.action-heading>div{display:block}.action-heading .sample-dot{display:none}#action-hint{display:block;font-size:11px;margin:3px 0 0}.bet-help{font-size:11px;margin-bottom:9px}.action-buttons .button{font-size:12px;min-width:0}.next-street{white-space:normal;max-width:98px;text-align:right}.prototype-tag{font-size:8px}.hand-result{padding:14px}.revealed-cards{height:34px}.revealed-cards .card{height:34px;width:25px}.revealed-cards .card>b{display:none}.seat-left-bottom .mini-cards,.seat-right-bottom .mini-cards{display:none}.seat-left-bottom .revealed-cards,.seat-right-bottom .revealed-cards{display:flex}.table-stage{min-height:365px}.board{top:32%}}
@media(max-width:540px){.seat-left-bottom,.seat-right-bottom{top:66%;bottom:auto}}
@media(max-width:540px){.seat-left-top,.seat-right-top{top:16%}}
.room-panel{display:flex;justify-content:space-between;gap:15px;background:#1b3024;border:1px solid #3e5d44;border-radius:9px;padding:12px 15px;margin-top:15px}.room-panel[hidden]{display:none}.room-panel label{font-size:12px;color:#a6bfa9}.room-code-line{display:flex;align-items:center;gap:12px}.room-code-line input{width:182px;border:0;background:transparent;color:var(--lime);font-size:17px;letter-spacing:1px;padding:0;min-height:35px}.room-connection{text-align:right;font-size:12px;color:#b7cdb7;max-width:45%}.room-connection .text-button{margin-left:14px;font-size:12px;min-height:30px}.form-error{color:#ffb8ac!important;min-height:0}#next-deal-status{font-size:12px;color:var(--lime);white-space:nowrap}.room-code-line .text-button{min-height:35px}#join-code{letter-spacing:2px;text-transform:uppercase}@media(max-width:540px){.room-panel{padding:10px;gap:8px}.room-code-line{gap:7px}.room-code-line input{font-size:14px;width:149px;letter-spacing:.5px}.room-connection{max-width:35%;font-size:11px}.room-connection .text-button{margin-left:8px;font-size:11px}.room-code-line .text-button{font-size:12px}#next-deal-status{display:block;font-size:11px;margin-top:3px}}
/* Full tables keep seat order clockwise, with the current player at the bottom. */
.table-stage.full-table{height:570px;min-height:570px}.full-table .player{width:116px}.full-table .seat-you{width:150px;bottom:0}.full-table .ring-1{left:4%;top:365px}.full-table .ring-2{left:0;top:235px}.full-table .ring-3{left:4%;top:105px}.full-table .ring-4{left:34%;top:0;transform:translateX(-50%)}.full-table .ring-5{left:66%;top:0;transform:translateX(-50%)}.full-table .ring-6{right:4%;top:105px}.full-table .ring-7{right:0;top:235px}.full-table .ring-8{right:4%;top:365px}.full-table .board{top:205px}.full-table .felt{inset:45px 30px 65px}.full-table .player-info>div{min-width:0}.full-table .player strong{max-width:100%}.full-table .avatar{width:26px;height:26px}.full-table .seat-status{min-height:24px}.full-table .felt-label{bottom:90px}
@media(max-width:650px){.table-stage.full-table{height:595px;min-height:595px;max-width:430px}.full-table .player{width:80px}.full-table .player-info{padding:6px 5px;gap:0;min-height:48px}.full-table .player-info .avatar{display:none}.full-table .player strong{font-size:12px}.full-table .player-info div>span{font-size:12px}.full-table .seat-you{width:130px;bottom:0}.full-table .seat-you .player-info{justify-content:center}.full-table .seat-you .avatar{display:grid;margin-right:8px}.full-table .ring-1,.full-table .ring-8{top:370px}.full-table .ring-2,.full-table .ring-7{top:245px}.full-table .ring-3,.full-table .ring-6{top:120px}.full-table .ring-1,.full-table .ring-2,.full-table .ring-3{left:0}.full-table .ring-6,.full-table .ring-7,.full-table .ring-8{right:0}.full-table .ring-4{left:30%}.full-table .ring-5{left:70%}.full-table .mini-cards{height:28px;margin-bottom:0}.full-table .mini-cards i{height:28px;width:20px;border-width:2px}.full-table .revealed-cards .card{width:24px;height:33px}.full-table .revealed-cards{height:33px}.full-table .seat-status{font-size:10px;min-height:25px}.full-table .dealer{right:-5px;bottom:-7px;width:20px;height:20px}.full-table .board{top:220px}.full-table .community-cards{gap:3px}.full-table .community-cards .card{width:clamp(25px,7.5vw,36px);height:49px}.full-table .community-cards .card>span{left:3px;top:4px;font-size:17px}.full-table .community-cards .card>b{font-size:16px;right:3px;bottom:3px}.full-table .community-cards .card small{font-size:11px}.full-table .street-label{font-size:8px;letter-spacing:.5px}.full-table .pot{margin-bottom:12px}.full-table .pot strong{font-size:20px}.full-table .felt{inset:35px 25px 65px;border-radius:44%}.full-table .felt-inner{border-radius:44%}.full-table .felt-label{font-size:8px;letter-spacing:1px}}
@media(max-width:360px){.full-table .player{width:66px}.full-table .seat-you{width:130px}.full-table .player-info{padding-left:4px;padding-right:4px}.full-table .seat-status{font-size:9px}}
.host-controls{margin-top:12px;padding:12px 16px;border:1px solid var(--line);border-radius:9px;background:#182820}.host-controls summary{cursor:pointer;color:var(--lime);padding:6px 0}.host-controls p,#guest-room-note,#room-count{font-size:12px;color:#acbfaf;line-height:1.5}.host-controls label{display:block;font-size:13px;margin:12px 0 6px}.host-controls input,.host-controls select{width:100%;min-height:44px;border:1px solid #45604b;border-radius:6px;padding:8px;background:#102017;color:var(--text)}.host-buttons{display:flex;gap:10px;margin:10px 0}.host-buttons .button{flex:1;min-width:0;white-space:normal}.host-controls form{border-top:1px solid var(--line);margin-top:16px}.host-controls form .button{margin-top:10px}#host-error{color:#ffb8ac}#guest-room-note{display:block}#guest-room-note[hidden],#host-password[hidden],#host-controls[hidden]{display:none}#room-count{display:block}.room-code-line input{letter-spacing:0}#join-code{letter-spacing:0;text-transform:none}.room-panel{flex-wrap:wrap}.room-connection{margin-left:auto}
.empty-player{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100px;gap:8px;color:#a6bda8;font-size:12px}.empty-player .sit-in-button{font-size:12px;min-width:44px;min-height:44px;padding:8px 12px;border-style:dashed;background:#163c2ddd}.seat-controls{border:1px solid var(--line);border-radius:10px;background:#182820;padding:12px 16px;margin:8px 0 16px}.seat-controls p{font-size:13px;line-height:1.5;margin:4px 0 10px}.seat-controls .host-buttons{flex-wrap:wrap}.seat-controls .button{font-size:13px;min-width:80px}#seat-controls[hidden]{display:none}#buy-in-clock{color:var(--lime);font-weight:600}#buy-in-error{color:#ffb8ac}#buy-in-description{overflow-wrap:anywhere}@media(max-width:360px){.empty-player .sit-in-button{padding:6px;font-size:11px}.seat-controls{padding:10px}.seat-controls .button{padding:8px;font-size:12px;min-width:65px}}
.feature-panel{border:1px solid var(--line);background:#182820;border-radius:12px;padding:18px;margin:16px 0}.feature-panel[hidden],#player-options[hidden],#straddle-option[hidden]{display:none}.feature-panel h3{margin:0 0 12px}.feature-panel p{font-size:14px;line-height:1.5}.check-option{display:flex!important;align-items:center;gap:10px;font-size:14px;margin:14px 0!important}.check-option input[type=checkbox]{width:20px!important;height:20px;min-height:20px!important;flex:none;accent-color:var(--lime)}#turn-clock{color:var(--lime);font-size:15px;min-height:20px}#straddle-hint{font-size:13px;color:#b8ccbb}.presets{flex-wrap:wrap}.selected{outline:2px solid var(--lime)}.extra-board{justify-content:flex-start;flex-wrap:wrap;margin:12px 0}.ledger-scroll{overflow:auto}.ledger-scroll table{width:100%;border-collapse:collapse;font-size:14px}.ledger-scroll th,.ledger-scroll td{text-align:right;padding:12px 8px;border-bottom:1px solid var(--line)}.ledger-scroll th:first-child,.ledger-scroll td:first-child{text-align:left}.bet-editor-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;border-bottom:1px solid var(--line);padding:12px 0}.bet-editor-row label{grid-column:1/-1}.bet-editor-row .button{min-height:44px;grid-column:1/-1}.bet-editor-row input,.bet-editor-row select{margin:0;min-width:0}#bet-editor .dialog-heading h2{font-size:24px}.setting-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.setting-switch .button{min-height:40px;margin:0}#add-bet-form{margin:18px 0}#setup-online-settings{border:1px solid var(--line);padding:14px;margin:18px 0}#disband-button{margin-top:24px;width:100%}#edit-bets{font-size:14px;min-height:44px}#player-options{border-top:1px solid var(--line);margin-top:8px;padding-top:4px}@media(max-width:540px){.feature-panel{padding:14px}.extra-board .card{width:36px;height:54px}.presets{justify-content:flex-start}.presets button{min-height:44px}#run-vote-panel .host-buttons{gap:6px}.ledger-scroll th,.ledger-scroll td{padding:10px 5px}}
#straddle-option[hidden]{display:none!important}.bet-editor-row .button{grid-column:auto}
[hidden]{display:none!important}
#time-bank-controls{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:10px 0}#time-bank-status{font-size:13px;line-height:1.5;color:#b8ccbb}#use-time-bank{min-height:44px;font-size:14px}#bank-settings-note{font-size:13px;line-height:1.5}
@media(min-width:851px){.app-header{height:68px}.sidebar{padding-top:28px}.room-actions{margin-top:0}.game-area{padding-top:28px}main{min-height:calc(100vh - 68px)}}
.game-details{display:block;border-top:1px solid var(--line);padding-top:22px}.game-details>summary{font-size:17px;font-weight:600;cursor:pointer;list-style:none}.game-details>summary::-webkit-details-marker{display:none}.game-details>summary::after{content:'−';float:right;color:var(--muted)}.game-details:not([open])>summary::after{content:'+'}.game-details dl{margin:20px 0 0}.game-details dl>div{display:grid;grid-template-columns:minmax(85px,.85fr) minmax(0,1.15fr);gap:12px;margin-bottom:15px;font-size:14px;line-height:1.45}.game-details dd{text-align:right;margin:0;overflow-wrap:anywhere}.sidebar-password{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.sidebar-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:15px}.sidebar-section-heading .text-button{font-size:13px;min-height:36px}.sidebar-code-line{display:flex;gap:8px;align-items:center}.sidebar-code-line input{width:100%;min-width:0;background:transparent;border:0;color:var(--lime);padding:6px 0;font-size:14px}.sidebar-code-line .text-button{font-size:13px;min-height:36px}#open-host-settings{width:100%;margin-top:20px;min-height:44px}.sidebar-practice{display:block;margin-top:12px;font-size:13px}#host-settings-dialog{width:min(560px,calc(100% - 30px))}#host-settings-dialog .host-controls{margin:0;padding:0;border:0;background:transparent}#host-settings-dialog .dialog-heading h2,#password-dialog .dialog-heading h2{font-size:24px}#password-error{color:#ffb8ac}@media(max-width:850px){.game-details{display:block;margin-top:14px;padding-top:14px}.game-details dl>div{grid-template-columns:1fr 1fr}.game-details>summary{font-size:15px}.sidebar-password{margin-top:16px}.sidebar-code-line input{font-size:16px}#open-host-settings{max-width:360px}}
[hidden]{display:none!important}


/* Compact table workspace. */
main{max-width:none;grid-template-columns:260px minmax(0,1fr)}
.app-header{height:60px;padding:0 24px}.player-settings-button{font-size:14px!important;padding:8px 12px!important;border:1px solid var(--line);border-radius:7px;min-height:36px!important}
.brand-name{font-size:18px;line-height:1.15;letter-spacing:-.35px;max-width:360px}
@media(max-width:850px){.brand{gap:7px}.brand-mark{font-size:27px}.brand-name{font-size:13px;line-height:1.15;letter-spacing:0;max-width:150px;white-space:normal}}
.sidebar{padding:22px 18px}.room-actions{margin-bottom:22px}.game-area{padding:16px 24px 20px}.table-surface{position:relative;min-width:0}
.table-header{min-height:28px;padding:0}.table-header p{margin:0;font-size:14px;color:var(--lime)}
.table-stage,.table-stage.full-table{max-width:none;height:640px;min-height:640px;margin:8px 0 0}
.table-stage .felt{inset:45px 30px 135px;border-radius:240px}.table-stage .felt-inner{border-radius:230px}
.table-stage .board{top:190px}.full-table .ring-1,.full-table .ring-8{top:330px}.full-table .ring-2,.full-table .ring-7{top:205px}.full-table .ring-3,.full-table .ring-6{top:80px}
.table-stage .own-seat{width:280px;display:grid;grid-template-columns:minmax(0,170px) 88px;column-gap:10px;align-items:center;bottom:8px;left:25%;transform:translateX(-50%)}
.own-seat .hole-cards{grid-column:1;margin-bottom:6px}.own-seat .player-info{grid-column:1;min-height:50px}.own-seat .seat-status{grid-column:1;font-size:12px;min-height:0}.own-seat.folded{opacity:1}.own-seat.folded .hole-cards{opacity:.5}
.own-seat .seat-controls{grid-column:2;grid-row:1/3;padding:0;margin:0;background:none;border:0}.seat-controls .host-buttons{display:grid;gap:5px;margin:0}.seat-controls .button{min-width:0;min-height:28px;font-size:12px;padding:4px 6px;border-radius:5px;white-space:nowrap}.seat-controls .primary{background:#263e2c;border-color:#6b8956;color:var(--lime)}
.table-surface .control-panel{position:absolute;right:0;bottom:0;width:390px;max-width:48%;padding:10px 12px;margin:0;border-radius:9px;box-shadow:0 8px 24px #0002}
.action-heading{margin:0 0 5px;gap:8px}.action-heading>div{display:flex;flex-wrap:wrap;gap:4px 8px}.action-heading .sample-dot{display:none}.action-heading strong{font-size:13px}.action-heading .desktop-hint{display:none!important}.next-street{min-height:28px;font-size:13px}.bet-controls{display:grid;grid-template-columns:48px 80px minmax(0,1fr);gap:7px;margin-bottom:7px}.bet-controls label{font-size:12px}.bet-controls label span{display:none}.amount-input{width:auto}.amount-input input{height:32px;font-size:14px}.bet-controls input[type=range]{grid-column:3;grid-row:1;width:100%}.presets{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-height:76px;overflow:auto}.presets button{min-width:48px;min-height:28px;padding:4px 7px;font-size:12px}
.action-buttons{grid-template-columns:1fr 1.1fr 1.4fr;gap:5px}.action-buttons .button{min-height:36px;padding:7px 5px;font-size:13px;border-radius:6px;min-width:0;white-space:normal}
#player-options{border:0;margin:4px 0;padding:0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 10px}.control-panel .check-option{font-size:12px;margin:2px 0!important;gap:6px}.control-panel .check-option input[type=checkbox]{width:16px!important;height:16px;min-height:16px!important}#straddle-hint{display:none}#straddle-option{max-width:100%}
.clock-row{display:flex;align-items:flex-end;justify-content:flex-end;gap:7px;min-height:34px;margin:4px 0 7px;overflow:visible}.clock-row[hidden],#time-bank-controls[hidden]{display:none}.turn-clock{width:156px;display:grid;gap:4px;overflow:visible}.turn-clock>span:first-child{color:#b8ccbb;font-size:11px;line-height:1;text-align:right;font-variant-numeric:tabular-nums}.turn-clock-track{position:relative;display:block;width:100%;height:7px;border-radius:999px;background:#35483d;box-shadow:inset 0 0 0 1px #52635766}.turn-clock-track i{position:absolute;right:0;top:0;width:100%;height:100%;border-radius:inherit;background:var(--lime);transform:scaleX(0);transform-origin:right center;transition:transform .25s linear,background .2s;box-shadow:0 0 8px #c6ee8955}.turn-clock.low .turn-clock-track i{background:#e3b85d;box-shadow:0 0 8px #e3b85d55}#time-bank-controls{display:flex;gap:5px;margin:0;align-items:flex-end}#use-time-bank{font-size:12px;min-height:28px;padding:4px 8px;border-radius:5px;white-space:nowrap}#time-bank-status{font-size:10px;line-height:1;color:#9fb2a6;white-space:nowrap;padding-bottom:3px}#bet-help{display:none}#seat-notice{font-size:13px;color:var(--lime);margin:12px 0 0}#next-deal-status{font-size:12px}
.is-idle .bet-controls,.is-idle .action-buttons{display:none}
.peek-slot{padding:0;border:0;background:transparent;border-radius:6px;display:block}.peek-slot .card{border-color:#bedf91b3;color:#bedf9199}.peek-slot:hover .card{background:#416442;border-style:solid}.peek-slot:focus-visible{outline:3px solid var(--lime);outline-offset:4px}.card.peeked{outline:2px dashed var(--lime);outline-offset:3px}.hand-result,.feature-panel{padding:12px 15px;margin-top:12px}.hand-result h3{font-size:15px}.hand-result p{font-size:13px;margin-bottom:4px}.table-footer{padding-top:8px}.table-footer>span:last-child{display:none}
@media(min-width:1600px){main{grid-template-columns:285px minmax(0,1fr)}.game-area{padding-left:32px;padding-right:32px}.table-stage,.table-stage.full-table{height:680px;min-height:680px}.table-stage .felt{bottom:140px}.table-stage .board{top:210px}.full-table .ring-1,.full-table .ring-8{top:360px}.full-table .ring-2,.full-table .ring-7{top:220px}.full-table .ring-3,.full-table .ring-6{top:85px}.table-surface .control-panel{width:430px}}
@media(min-width:851px) and (max-width:1100px){main{grid-template-columns:225px minmax(0,1fr)}.game-area{padding:14px}.table-stage .own-seat{left:24%;width:250px;grid-template-columns:150px 85px;gap:6px}.table-surface .control-panel{width:330px;max-width:49%;padding:8px}.full-table .player:not(.own-seat){width:100px}.full-table .ring-1,.full-table .ring-8{top:315px}.control-panel #time-bank-status{width:100%}.action-buttons .button{font-size:12px}.table-stage .community-cards{gap:4px}.table-stage .community-cards .card{width:43px;height:64px}}
@media(max-width:850px){main{display:flex}.app-header{height:56px;padding:0 16px}.sidebar{padding:10px 16px}.room-actions{margin:0}.game-area{padding:12px}.table-stage,.table-stage.full-table{height:570px;min-height:570px;max-width:680px;margin:6px auto 0}.table-stage .felt{inset:40px 26px 105px}.table-stage .own-seat{left:50%;bottom:0}.table-surface .control-panel{position:relative;margin:8px 0 0 auto;width:400px;max-width:100%}.full-table .ring-1,.full-table .ring-8{top:320px}.full-table .ring-2,.full-table .ring-7{top:210px}.full-table .ring-3,.full-table .ring-6{top:100px}.table-stage .board{top:185px}.table-stage .seat-left-bottom,.table-stage .seat-right-bottom{top:310px;bottom:auto}.table-stage .seat-left-top,.table-stage .seat-right-top{top:115px}.control-panel .action-heading strong{font-size:13px}.seat-controls .button{min-height:32px}.table-header{min-height:20px}.table-header p{font-size:13px}.table-stage .seat-you:not(.own-seat){bottom:0}.control-panel .presets button{min-height:32px}.control-panel .action-buttons .button{min-height:40px}}
@media(max-width:540px){.table-stage,.table-stage.full-table{height:520px;min-height:520px;max-width:none}.table-stage .felt{inset:34px 25px 100px;border-radius:44%}.table-stage .felt-inner{border-radius:44%}.full-table .ring-1,.full-table .ring-8{top:300px}.full-table .ring-2,.full-table .ring-7{top:200px}.full-table .ring-3,.full-table .ring-6{top:95px}.table-stage .board{top:192px}.table-stage .own-seat{width:258px;grid-template-columns:158px 90px;gap:0 10px}.own-seat .hole-cards .card{height:54px}.own-seat .player-info{min-height:44px}.full-table .own-seat .player-info .avatar{display:grid}.table-stage .own-seat .seat-status{min-height:0;font-size:11px}.table-stage .seat-left-bottom,.table-stage .seat-right-bottom{top:300px}.table-stage .seat-left-top,.table-stage .seat-right-top{top:95px}.table-stage .community-cards .card{width:clamp(27px,7.5vw,38px);height:49px}.table-stage .community-cards{gap:4px}.table-stage .pot{margin-bottom:9px}.table-stage .pot strong{font-size:19px}.table-stage .street-label{font-size:9px;letter-spacing:.5px}.table-surface .control-panel{width:100%;padding:8px 10px}.control-panel #time-bank-controls{margin:4px 0}.control-panel #time-bank-status{font-size:12px}.control-panel .check-option{font-size:12px}.player-settings-button{font-size:13px!important}.table-header p{font-size:12px}.full-table .player:not(.own-seat){width:76px}}
@media(min-width:1101px){.table-stage,.table-stage.full-table{height:680px;min-height:680px}.full-table .player:not(.own-seat) .mini-cards{height:28px;margin-bottom:0}.full-table .player:not(.own-seat) .mini-cards i{height:28px;width:22px;border-width:2px}.full-table .player:not(.own-seat) .player-info{min-height:46px;padding:6px 8px}.full-table .player:not(.own-seat) .seat-status{min-height:18px;font-size:11px}.full-table .ring-1,.full-table .ring-8{top:330px}}
@media(min-width:851px) and (max-width:1100px){.table-surface .control-panel{position:relative;max-width:100%;width:380px;margin:8px 0 0 auto}.table-stage,.table-stage.full-table{height:570px;min-height:570px}.table-stage .own-seat{left:50%}}

/* Lobby and full-width table layout */
.sidebar[hidden],.game-area[hidden],.table-header-actions[hidden]{display:none!important}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.table-header-actions{display:flex;align-items:center;gap:16px;margin-left:auto}.table-header-actions>.button,.table-header-actions>.text-button{width:auto;min-height:38px;margin:0;padding:6px 10px;font-size:13px}.table-header-actions .game-details{position:relative;border:0;padding:0;margin:0}.table-header-actions .game-details summary{list-style:none;cursor:pointer;color:#aebeb5;font-size:13px;padding:10px 8px;white-space:nowrap}.table-header-actions .game-details summary::-webkit-details-marker{display:none}.table-header-actions .game-details summary:hover{color:var(--lime)}.table-header-actions .game-details dl{position:absolute;right:0;top:48px;width:320px;max-height:calc(100dvh - 90px);overflow:auto;margin:0;padding:18px;background:#172420;border:1px solid #405047;border-radius:12px;box-shadow:0 18px 50px #0008;z-index:20}.table-header-actions .game-details dl div{margin-bottom:12px}.lobby-page main{display:block;max-width:1180px;min-height:calc(100svh - 91px)}.lobby-page .sidebar{width:100%;min-height:calc(100svh - 91px);padding:56px 42px;border:0}.lobby-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%}.lobby-heading .eyebrow{margin:0}.lobby-heading #refresh-lobby{min-height:36px;padding:6px 10px;font-size:13px}.lobby-page .room-actions{display:block;margin:30px 0}.lobby-page #create-button{width:220px}.lobby-tables{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;width:100%}.lobby-table{display:grid;gap:12px;text-align:left;color:var(--text);background:#172720;border:1px solid #344b3d;border-radius:13px;padding:20px;min-height:132px}.lobby-table:hover{border-color:#8aac69;background:#1c3025}.lobby-table-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.lobby-table-heading strong{font-family:Manrope,sans-serif;font-size:20px;font-weight:600}.lobby-lock{font-size:11px;color:var(--lime);border:1px solid #58734b;border-radius:999px;padding:4px 8px}.lobby-table-details{font-size:14px;color:#c1cec5}.lobby-table-status{font-size:12px;color:var(--muted)}.table-page main{display:block;max-width:1700px}.table-page .game-area{width:100%;min-height:calc(100svh - 91px);padding-left:28px;padding-right:28px}.table-page .table-stage{max-width:1280px}.host-password-setting{padding:0 0 18px;margin:0 0 20px;border-bottom:1px solid var(--line)}.host-password-setting h3{margin:0}.host-password-setting p{margin:6px 0}.host-password-setting .button{margin-top:10px}
@media(max-width:850px){.table-header-actions{gap:5px}.table-header-actions>.button,.table-header-actions>.text-button,.table-header-actions .game-details summary{font-size:11px;padding:5px;min-height:34px}.table-header-actions .game-details dl{position:fixed;left:12px;right:12px;top:64px;width:auto}.lobby-page main{min-height:calc(100svh - 56px)}.lobby-page .sidebar{min-height:calc(100svh - 56px);padding:34px 18px}.lobby-page #create-button{width:100%}.table-page .game-area{min-height:calc(100svh - 56px);padding-left:12px;padding-right:12px}}
/* A single, consistent settings stack keeps the table header easy to scan. */
.table-page .app-header{height:auto;min-height:112px;align-items:flex-start;padding-top:12px;padding-bottom:12px}.table-page .app-header:has(#open-host-settings:not([hidden])){min-height:150px}.table-header-actions{flex-direction:column;align-items:stretch;gap:6px;width:184px}.table-header-actions>.button,.table-header-actions>.text-button,.table-header-actions .game-details summary{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:38px;margin:0;padding:8px 13px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--text);font-size:13px;font-weight:500;text-align:left;line-height:1.2}.table-header-actions>#open-host-settings{margin:0}.table-header-actions>.button:hover,.table-header-actions>.text-button:hover,.table-header-actions .game-details summary:hover{border-color:#718c76;background:#172720;color:var(--lime)}.table-header-actions .game-details{width:100%}.table-header-actions .game-details dl{right:calc(100% + 12px);top:0}.table-page main,.table-page .game-area{min-height:calc(100svh - 112px)}.table-page:has(#open-host-settings:not([hidden])) main,.table-page:has(#open-host-settings:not([hidden])) .game-area{min-height:calc(100svh - 150px)}
@media(max-width:850px){.table-page .app-header{min-height:98px;padding-top:9px;padding-bottom:9px;align-items:flex-start}.table-page .app-header:has(#open-host-settings:not([hidden])){min-height:136px}.table-header-actions{width:142px;gap:4px}.table-header-actions>.button,.table-header-actions>.text-button,.table-header-actions .game-details summary{min-height:34px;padding:6px 9px;font-size:11px}.table-header-actions .game-details dl{position:fixed;left:12px;right:12px;top:104px;width:auto}.table-page main,.table-page .game-area{min-height:calc(100svh - 98px)}.table-page:has(#open-host-settings:not([hidden])) main,.table-page:has(#open-host-settings:not([hidden])) .game-area{min-height:calc(100svh - 136px)}}
/* Account gate, player history, and master controls. */
.auth-gate{display:grid;place-items:center;min-height:calc(100svh - 205px)}.auth-gate #open-login{width:220px;min-height:54px;font-size:17px}.lobby-account-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.lobby-account-actions>span{color:var(--lime);font-size:13px;margin-right:4px}.lobby-account-actions .text-button{min-height:36px;padding:6px 9px;font-size:12px}.master-dashboard>h1{font-size:28px;margin:36px 0 5px}.master-dashboard>p{color:var(--muted);margin-top:0}.admin-tables{display:grid;gap:9px}.admin-table{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#172720}.admin-table strong{font-size:16px}.admin-table p{margin:4px 0 0;color:var(--muted);font-size:12px}.admin-table .button{width:auto;min-width:100px}.admin-scroll{overflow:auto;border:1px solid var(--line);border-radius:10px}.admin-scroll table{width:100%;border-collapse:collapse;min-width:760px}.admin-scroll th,.admin-scroll td{padding:12px;text-align:left;border-bottom:1px solid var(--line);font-size:13px}.admin-scroll th{color:var(--muted);font-weight:500}.admin-account-actions{display:flex;gap:8px}.admin-account-actions .text-button{font-size:12px;min-height:32px}.danger-text{color:#ffb8ac!important}.copy-line{display:flex;gap:8px}.copy-line input{flex:1;min-width:0}.copy-line .button{width:auto;margin:0}.history-summary{font-size:17px;color:var(--lime);margin:8px 0 14px}.pnl-chart{border:1px solid var(--line);border-radius:10px;background:#102017;padding:8px;margin-bottom:14px}.pnl-chart svg{display:block;width:100%;height:auto;max-height:240px}.chart-zero{stroke:#596c5d;stroke-width:1}.chart-line{fill:none;stroke:var(--lime);stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:#f3f0df;stroke:#78945a;stroke-width:2}.session-list{display:grid;gap:8px}.session-row{padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:#172720}.session-row-title{display:flex;justify-content:space-between;gap:14px}.session-row p{margin:5px 0 0;color:var(--muted);font-size:12px}.positive{color:var(--lime)}.negative{color:#ffb8ac}#history-dialog{width:min(720px,calc(100% - 30px))}#invite-dialog,#account-dialog,#login-dialog,#register-dialog{width:min(480px,calc(100% - 30px))}#session-empty{color:var(--muted)}
@media(max-width:850px){.lobby-page .app-header{height:auto;min-height:56px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}.lobby-account-actions{width:100%;overflow-x:auto;order:2}.lobby-account-actions>span{margin-right:auto}.lobby-account-actions .text-button{white-space:nowrap}.auth-gate{min-height:calc(100svh - 150px)}.master-dashboard>h1{font-size:23px}.admin-table{padding:12px}.admin-table .button{min-width:86px;padding:8px}.copy-line{align-items:stretch}}
.table-stage .own-seat:not(:has(.seat-controls)){width:170px;grid-template-columns:minmax(0,1fr)}
#bet-editor-rows{margin:12px 0}.bet-editor-row{display:grid;grid-template-columns:82px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0}.bet-editor-row label{grid-column:auto;margin:0;font-size:14px}.bet-editor-row input{margin:0;min-height:40px}.bet-editor-row .button{grid-column:auto;width:auto;min-height:40px;margin:0;padding:8px 12px;font-size:13px}#add-bet-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin:14px 0}#add-bet-form label{margin:0}#add-bet-form .button{width:auto;min-height:40px;margin:0;padding:8px 14px}#reset-bets{min-height:40px;margin-top:4px}#save-bets{min-height:44px;margin-top:10px}@media(max-width:420px){.bet-editor-row{grid-template-columns:70px minmax(0,1fr) auto;gap:7px}.bet-editor-row .button{padding:7px 9px}#add-bet-form{grid-template-columns:1fr}#add-bet-form .button{width:100%}}
.player-setting-toggle{margin:14px 0 2px!important}.player-setting-note{margin:0 0 18px!important;font-size:13px!important;line-height:1.45!important}
.history-nav{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin:8px 0}.history-nav strong{text-align:center;font-size:14px}.history-nav .icon-button{width:36px;height:34px;color:var(--lime);border:1px solid var(--line);border-radius:7px}.history-pages{overflow:hidden;touch-action:pan-y;outline:none}.history-page{background:#102017;border:1px solid var(--line);border-radius:10px;padding:13px;animation:history-in .16s ease}.history-page-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.history-page-heading>span{font-size:12px;color:var(--lime);text-align:right}.history-meta{font-size:11px;color:var(--muted);margin:4px 0 10px}.history-board-row{display:flex;align-items:center;gap:8px;margin:7px 0}.history-row-label{width:42px;font-size:11px;color:var(--muted)}.history-cards,.history-hole,.history-dealt{display:flex;gap:3px}.history-cards .card,.history-hole .card,.history-dealt .card{width:29px;height:41px;border-radius:4px}.history-cards .card>span,.history-hole .card>span,.history-dealt .card>span{font-size:13px;left:3px;top:2px}.history-cards .card small,.history-hole .card small,.history-dealt .card small{font-size:9px}.history-cards .card>b,.history-hole .card>b,.history-dealt .card>b{font-size:11px;right:2px;bottom:1px}.history-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:11px 0}.history-player{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;background:#17291e;border-radius:7px;padding:6px 8px}.history-player-name{min-width:0;display:flex;flex-direction:column}.history-player-name strong{font-size:12px;overflow:hidden;text-overflow:ellipsis}.history-player-name small{font-size:9px;color:var(--muted)}.history-player>span{font-size:10px;color:#cbd8ca;white-space:nowrap}.history-page h4{margin:12px 0 4px;font-size:12px}.history-timeline{font-size:12px;line-height:1.55;padding-left:21px;max-height:190px;overflow:auto;margin:0}.history-timeline li{padding:2px 0}.history-dealt{margin:4px 0}.history-dealt .card{display:inline-block}.history-dots{display:flex;justify-content:center;gap:5px;margin:9px 0 2px;min-height:6px}.history-dots i{width:5px;height:5px;border-radius:50%;background:#6b7d6d}.history-dots i.active{background:var(--lime);transform:scale(1.35)}.history-empty{text-align:center;color:var(--muted);font-size:13px;padding:18px}@keyframes history-in{from{opacity:.45;transform:translateX(8px)}to{opacity:1;transform:none}}@media(max-width:620px){.history-players{grid-template-columns:1fr}.history-page{padding:10px}.history-player{gap:5px}.history-page-heading{align-items:flex-start}.history-meta{line-height:1.5}}
.chip-display{display:flex;align-items:flex-end;justify-content:center;gap:2px;min-height:27px;pointer-events:none}.chip-column{--chip-color:#eee;--chip-edge:#aaa;display:flex;flex-direction:column;align-items:center;width:16px}.chip-column-stack{position:relative;width:15px;height:calc(5px + var(--chip-count)*2px)}.visual-chip{position:absolute;left:0;bottom:calc(var(--chip-index)*2px);width:15px;height:6px;border-radius:50%;background:linear-gradient(90deg,var(--chip-color) 0 23%,#f4efcf 23% 34%,var(--chip-color) 34% 66%,#f4efcf 66% 77%,var(--chip-color) 77%);border:1px solid var(--chip-edge);box-shadow:0 1px 1px #0008}.chip-column>small{font-size:7px;line-height:1;color:#d6e1d5;margin-top:2px;text-shadow:0 1px 2px #000}.chip-column[data-denom="1"]{--chip-color:#eeeae0;--chip-edge:#9b9a91}.chip-column[data-denom="5"]{--chip-color:#d44c4a;--chip-edge:#742725}.chip-column[data-denom="10"]{--chip-color:#3984d1;--chip-edge:#1e4c7c}.chip-column[data-denom="25"]{--chip-color:#43a45c;--chip-edge:#245c34}.chip-column[data-denom="100"]{--chip-color:#292d31;--chip-edge:#090a0b}.chip-column[data-denom="500"]{--chip-color:#8c58b9;--chip-edge:#4c286c}.chip-column[data-denom="1000"]{--chip-color:#dfbf39;--chip-edge:#826b13}.chip-column[data-denom="5000"]{--chip-color:#e77f35;--chip-edge:#8b451e}.chip-column[data-denom="25000"]{--chip-color:#dc6f9e;--chip-edge:#813953}.chip-column[data-denom="100000"]{--chip-color:#7f9298;--chip-edge:#3f4d52}.bet-stack{position:absolute;z-index:5;left:50%;bottom:calc(100% + 5px);transform:translateX(-50%);filter:drop-shadow(0 3px 3px #0008)}.seat-top .bet-stack,.ring-4 .bet-stack,.ring-5 .bet-stack{top:calc(100% + 4px);bottom:auto}.seat-left-top .bet-stack,.seat-left-bottom .bet-stack,.ring-1 .bet-stack,.ring-2 .bet-stack,.ring-3 .bet-stack{left:calc(100% + 5px);top:50%;bottom:auto;transform:translateY(-50%)}.seat-right-top .bet-stack,.seat-right-bottom .bet-stack,.ring-6 .bet-stack,.ring-7 .bet-stack,.ring-8 .bet-stack{right:calc(100% + 5px);left:auto;top:50%;bottom:auto;transform:translateY(-50%)}.pot-chips{height:31px;margin-top:5px;display:grid;place-items:center}.middle-stack{animation:chips-gather .25s ease-out;filter:drop-shadow(0 3px 3px #0007)}.hole-cards.no-cards,.mini-cards.no-cards{height:0;min-height:0;margin:0;overflow:hidden}.folded{opacity:1}.out-hand .player-info{opacity:.48;filter:grayscale(.7);border-style:dashed}.out-hand .seat-status{color:#8b9a8e;background:#0c1712}.live-player .mini-cards{height:44px}.live-player .mini-cards i{width:31px;height:43px;box-shadow:0 4px 8px #0006}.full-table .live-player:not(.own-seat) .mini-cards{height:34px}.full-table .live-player:not(.own-seat) .mini-cards i{width:25px;height:34px}@keyframes chips-gather{from{opacity:.25;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@media(max-width:650px){.chip-display{gap:1px;min-height:22px}.chip-column{width:12px}.chip-column-stack{width:12px}.visual-chip{width:12px;height:5px}.chip-column>small{font-size:6px}.bet-stack{bottom:calc(100% + 2px)}.seat-top .bet-stack,.ring-4 .bet-stack,.ring-5 .bet-stack{top:calc(100% + 1px)}.seat-left-top .bet-stack,.seat-left-bottom .bet-stack,.ring-1 .bet-stack,.ring-2 .bet-stack,.ring-3 .bet-stack{left:calc(100% + 2px)}.seat-right-top .bet-stack,.seat-right-bottom .bet-stack,.ring-6 .bet-stack,.ring-7 .bet-stack,.ring-8 .bet-stack{right:calc(100% + 2px)}.live-player .mini-cards,.full-table .live-player:not(.own-seat) .mini-cards{height:32px}.live-player .mini-cards i,.full-table .live-player:not(.own-seat) .mini-cards i{width:24px;height:32px}.pot-chips{height:24px;margin-top:2px}.street-label{margin-top:5px}}
.bet-marker{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:44px;pointer-events:none}.bet-marker .single-bet-chip{width:28px}.bet-marker .visual-chip{position:relative;left:auto;bottom:auto;display:block;width:28px;height:10px}.bet-marker .bet-amount{font-size:18px;line-height:1;font-weight:800;color:#f7f5df;text-shadow:0 2px 4px #000,0 0 6px #0008;font-variant-numeric:tabular-nums}@media(max-width:650px){.bet-marker{min-width:36px;gap:2px}.bet-marker .single-bet-chip{width:23px}.bet-marker .visual-chip{width:23px;height:8px}.bet-marker .bet-amount{font-size:16px}}

/* Every player can keep a private table, room, deck, and card-back style. */
#bet-editor{overflow:auto}
.appearance-settings{margin:12px 0 16px;border:1px solid var(--line);border-radius:10px;background:#102017}.appearance-settings>summary{cursor:pointer;list-style:none;padding:13px 15px;color:#dbe5dd;font-size:14px;font-weight:600}.appearance-settings>summary::-webkit-details-marker{display:none}.appearance-settings>summary::after{content:'＋';float:right;color:var(--lime)}.appearance-settings[open]>summary{border-bottom:1px solid var(--line)}.appearance-settings[open]>summary::after{content:'−'}.appearance-settings>p{margin:12px 15px;color:var(--muted);font-size:12px;line-height:1.45}.appearance-group{padding:2px 15px 15px}.appearance-group+section{border-top:1px solid var(--line);padding-top:13px}.appearance-group h4{margin:8px 0 10px;font-size:13px}.appearance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.appearance-choice{min-width:0;min-height:82px;padding:8px;border:1px solid #3d5145;border-radius:9px;background:#16281e;color:var(--text);display:grid;place-items:center;align-content:center;gap:5px}.appearance-choice:hover{border-color:#80976f;background:#203429}.appearance-choice.selected{outline:2px solid var(--lime);outline-offset:1px;border-color:transparent;background:#263b2d}.appearance-choice b{max-width:100%;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appearance-choice small{font-size:9px;line-height:1.2;color:var(--muted);text-align:center}.face-swatch{display:flex;align-items:center;justify-content:center;gap:3px;width:76px;height:30px;border-radius:5px;background:#f7f5ea;color:#17241e;font-family:Georgia,serif;font-size:17px;box-shadow:0 2px 5px #0005}.face-swatch i{font-style:normal}.face-swatch.classic i:first-child{color:#b54f47}.face-swatch.four-color i:nth-child(1){color:#c73e3e}.face-swatch.four-color i:nth-child(2){color:#2773c8}.face-swatch.four-color i:nth-child(3){color:#16834a}.face-swatch.oxford i:first-child{color:#002147}.face-swatch.oxford i:last-child{color:#8b1e3f}.face-swatch.candy i:first-child{color:#8459c7}.face-swatch.candy i:last-child{color:#08a596}.back-swatch{width:42px;height:54px;border:3px solid #edf0e7;border-radius:5px;box-shadow:0 2px 5px #0005}.back-swatch.sage{background:repeating-linear-gradient(45deg,#9ab69a 0 2px,#74917b 2px 6px)}.back-swatch.oxford{background-color:#002147;background-image:linear-gradient(45deg,#d1b35c55 25%,transparent 25%,transparent 75%,#d1b35c55 75%),linear-gradient(45deg,#d1b35c55 25%,transparent 25%,transparent 75%,#d1b35c55 75%);background-size:12px 12px;background-position:0 0,6px 6px}.back-swatch.crimson{background-color:#761d31;background-image:linear-gradient(135deg,#f0c4a740 25%,transparent 25%),linear-gradient(225deg,#f0c4a740 25%,transparent 25%),linear-gradient(45deg,#f0c4a740 25%,transparent 25%),linear-gradient(315deg,#f0c4a740 25%,#761d31 25%);background-size:14px 14px}.back-swatch.midnight{background-color:#111827;background-image:radial-gradient(circle,#dbeafe 1px,transparent 1.5px),radial-gradient(circle,#93c5fd 1px,transparent 1.5px);background-size:13px 13px,19px 19px;background-position:0 0,5px 8px}.table-swatch{width:76px;height:34px;border:4px solid #506157;border-radius:50%;box-shadow:0 3px 0 #0a110e,0 4px 8px #0006}.table-swatch.green{background:#20543e}.table-swatch.oxford{background:#002147;color:#e7d8a5;font-family:Georgia,serif;font-size:10px;line-height:26px;text-align:center;letter-spacing:2px}.table-swatch.navy{background:#193655}.table-swatch.burgundy{background:#6f213b}.table-swatch.violet{background:#4b3272}.table-swatch.charcoal{background:#2e3537}.environment-swatch{width:76px;height:34px;border:1px solid #ffffff24;border-radius:6px}.environment-swatch.forest{background:linear-gradient(135deg,#101c1a,#263b2d)}.environment-swatch.midnight{background:linear-gradient(135deg,#060b15,#1b2a43)}.environment-swatch.oxford{background:linear-gradient(135deg,#071629,#163b63)}.environment-swatch.warm{background:linear-gradient(135deg,#1e1511,#503526)}.environment-swatch.plum{background:linear-gradient(135deg,#1d1320,#503252)}

body.table-page[data-environment="forest"]{--bg:#101c1a;--panel:#172420;--line:#2b3c35;--lime:#c6ee89;--text:#f3f5eb;--muted:#98aaa3}body.table-page[data-environment="midnight"]{--bg:#070d17;--panel:#101a29;--line:#2b3d55;--lime:#8ed9ff;--text:#f2f7ff;--muted:#96a9c0}body.table-page[data-environment="oxford"]{--bg:#061426;--panel:#0d233a;--line:#294664;--lime:#d9c986;--text:#f7f4e9;--muted:#9fb1c3}body.table-page[data-environment="warm"]{--bg:#1c120e;--panel:#2a1c16;--line:#564033;--lime:#e9bd76;--text:#f8efe5;--muted:#b8a395}body.table-page[data-environment="plum"]{--bg:#1a101d;--panel:#27182c;--line:#4f3658;--lime:#e4a5ff;--text:#f8effa;--muted:#b5a0ba}body.table-page{background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--panel) 82%,white 3%),var(--bg) 70%);transition:background .25s,color .25s}body.table-page .app-header,body.table-page .control-panel,body.table-page dialog{transition:background .25s,border-color .25s}

body[data-table-theme="green"] .felt{background:radial-gradient(ellipse at 50% 30%,#2b694e,#20543e 65%,#1b4836)}body[data-table-theme="oxford"] .felt{border-color:#283f59;background:radial-gradient(ellipse at 50% 26%,#154c79,#07365f 62%,#002147);box-shadow:0 0 0 2px #58718c,0 14px 0 2px #030b14,0 22px 40px #0005,inset 0 0 38px #00152ccc}body[data-table-theme="navy"] .felt{border-color:#33475c;background:radial-gradient(ellipse at 50% 28%,#285277,#193b60 62%,#102942)}body[data-table-theme="burgundy"] .felt{border-color:#5d3a43;background:radial-gradient(ellipse at 50% 28%,#923c58,#6c263f 62%,#4c192d)}body[data-table-theme="violet"] .felt{border-color:#554769;background:radial-gradient(ellipse at 50% 28%,#7359a0,#513879 62%,#33234f)}body[data-table-theme="charcoal"] .felt{border-color:#4c5554;background:radial-gradient(ellipse at 50% 28%,#526064,#344246 62%,#232d30)}.felt-inner::after{position:absolute;inset:0;display:grid;place-items:center;text-align:center;white-space:pre-line;pointer-events:none;font-family:Georgia,serif;font-size:clamp(17px,2.3vw,30px);line-height:1.08;letter-spacing:.16em;color:#ffffff0c;text-shadow:0 1px #0002}body[data-table-theme="green"] .felt-inner::after{content:'♠  JINRUOYU  ♠'}body[data-table-theme="oxford"] .felt-inner::after{content:'✦\A UNIVERSITY OF\A OXFORD';color:#e5d59e24;font-size:clamp(15px,2vw,27px);letter-spacing:.18em}body[data-table-theme="navy"] .felt-inner::after{content:'HIGH SEAS'}body[data-table-theme="burgundy"] .felt-inner::after{content:'SALON'}body[data-table-theme="violet"] .felt-inner::after{content:'ROYAL TABLE'}body[data-table-theme="charcoal"] .felt-inner::after{content:'NIGHT GAME'}

body[data-card-palette="classic"] .card[data-suit="h"],body[data-card-palette="classic"] .card[data-suit="d"]{color:#b54f47}body[data-card-palette="classic"] .card[data-suit="s"],body[data-card-palette="classic"] .card[data-suit="c"]{color:#25352c}body[data-card-palette="four-color"] .card[data-suit="h"]{color:#c8323a}body[data-card-palette="four-color"] .card[data-suit="d"]{color:#236fc0}body[data-card-palette="four-color"] .card[data-suit="c"]{color:#168347}body[data-card-palette="four-color"] .card[data-suit="s"]{color:#17212a}body[data-card-palette="oxford"] .card[data-suit="h"]{color:#9a2949}body[data-card-palette="oxford"] .card[data-suit="d"]{color:#bb8a26}body[data-card-palette="oxford"] .card[data-suit="c"]{color:#315c4c}body[data-card-palette="oxford"] .card[data-suit="s"]{color:#002147}body[data-card-palette="candy"] .card[data-suit="h"]{color:#ee4f7f}body[data-card-palette="candy"] .card[data-suit="d"]{color:#865bd0}body[data-card-palette="candy"] .card[data-suit="c"]{color:#08a596}body[data-card-palette="candy"] .card[data-suit="s"]{color:#375d91}

body[data-card-back="sage"] .mini-cards i{background:repeating-linear-gradient(45deg,#9ab69a 0 2px,#74917b 2px 6px);border-color:#d0dac9}body[data-card-back="oxford"] .mini-cards i{background-color:#002147;background-image:linear-gradient(45deg,#d1b35c66 25%,transparent 25%,transparent 75%,#d1b35c66 75%),linear-gradient(45deg,#d1b35c66 25%,transparent 25%,transparent 75%,#d1b35c66 75%);background-size:10px 10px;background-position:0 0,5px 5px;border-color:#e6dfc7}body[data-card-back="crimson"] .mini-cards i{background-color:#761d31;background-image:linear-gradient(135deg,#f0c4a755 25%,transparent 25%),linear-gradient(225deg,#f0c4a755 25%,transparent 25%),linear-gradient(45deg,#f0c4a755 25%,transparent 25%),linear-gradient(315deg,#f0c4a755 25%,#761d31 25%);background-size:12px 12px;border-color:#eedbd4}body[data-card-back="midnight"] .mini-cards i{background-color:#111827;background-image:radial-gradient(circle,#e4efff 1px,transparent 1.5px),radial-gradient(circle,#78a7df 1px,transparent 1.5px);background-size:11px 11px,17px 17px;background-position:0 0,4px 7px;border-color:#c4d3e8}
@media(max-width:420px){.appearance-grid{grid-template-columns:1fr 1fr}.appearance-choice{min-height:76px;padding:6px}.appearance-group{padding-left:10px;padding-right:10px}.face-swatch,.table-swatch,.environment-swatch{width:66px}}

/* Account profile pictures stay independent of the selected table theme. */
.avatar-image{display:block;object-fit:contain;object-position:center}.player-info{flex-direction:column;justify-content:center;gap:2px;text-align:center;padding:5px 7px;min-height:72px}.player-info>div{min-width:0}.player-avatar{width:38px;height:38px;border-radius:0;background:transparent}.default-avatar{position:relative;overflow:hidden;border-radius:50%;background:#d7ded9;box-shadow:inset 0 0 0 1px #ffffff55}.default-avatar::before{content:"";position:absolute;left:50%;top:18%;width:34%;height:34%;border-radius:50%;background:#7c8b84;transform:translateX(-50%)}.default-avatar::after{content:"";position:absolute;left:15%;bottom:-9%;width:70%;height:54%;border-radius:50% 50% 28% 28%;background:#7c8b84}.full-table .player-avatar{width:34px;height:34px}.account-switch{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.account-switch .button{margin:0;min-height:42px}.account-switch .button.selected{border-color:var(--lime);color:var(--lime);background:#24382a}.account-edit-form{border:1px solid var(--line);border-radius:10px;padding:2px 14px 14px;margin:12px 0}.account-edit-form .button{margin-top:16px}.avatar-picker{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.avatar-picker h3{font-size:17px;margin:0 0 10px}.avatar-picker>p{font-size:12px;margin:7px 0 12px}.current-avatar{display:flex;align-items:center;gap:12px;min-height:68px}.current-avatar .account-avatar{width:64px;height:64px}.current-avatar strong{font-size:14px}.avatar-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto;padding:2px}.avatar-option{min-width:0;border:1px solid #3d5145;border-radius:9px;background:#102017;color:var(--text);padding:6px 4px;display:grid;justify-items:center;gap:4px}.avatar-option:hover,.avatar-option.selected{border-color:var(--lime);background:#263b2d}.avatar-option .account-avatar{width:58px;height:58px}.avatar-option span{max-width:100%;font-size:9px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-avatar{display:block;object-fit:contain;object-position:center}.account-avatar.default-avatar{flex:0 0 auto}
@media(max-width:650px){.full-table .player-info .player-avatar{display:block;width:25px;height:25px;margin:0}.full-table .player-info{min-height:62px;gap:1px}.full-table .player strong{max-width:70px}.avatar-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.avatar-option .account-avatar{width:54px;height:54px}}
.pot-chips.paying{opacity:.55;transition:opacity .25s}.payout-flight{position:absolute;z-index:12;margin:0;padding:5px 8px;border-radius:18px;background:#f2c94c1a;transform:translate(-50%,-50%);filter:drop-shadow(0 5px 5px #000b) drop-shadow(0 0 8px #ffd76899)}.payout-flight .chip-column{width:20px}.payout-flight .chip-column-stack{width:19px}.payout-flight .visual-chip{width:19px;height:8px}.payout-flight.flying{animation:payout-flight 1.55s cubic-bezier(.18,.72,.24,1) forwards}.win-bonus{position:absolute;z-index:4;right:5px;top:-21px;color:#ffd768;font-size:17px;font-weight:800;text-shadow:0 2px 3px #000,0 0 10px #e9a91e66;opacity:0;transform:translateY(8px) scale(.85)}.win-bonus.show{animation:bonus-rise 1.2s ease-out forwards}.stack-paid{animation:stack-paid .65s ease-out}@keyframes payout-flight{0%{transform:translate(-50%,-50%) scale(1.15);opacity:1}18%{transform:translate(-50%,-50%) scale(1.28);opacity:1}88%{opacity:1}100%{transform:translate(calc(-50% + var(--payout-x)),calc(-50% + var(--payout-y))) scale(.74);opacity:0}}@keyframes bonus-rise{0%{opacity:0;transform:translateY(8px) scale(.85)}18%{opacity:1;transform:translateY(0) scale(1.1)}72%{opacity:1;transform:translateY(-5px) scale(1)}100%{opacity:0;transform:translateY(-13px) scale(.95)}}@keyframes stack-paid{0%{color:#ffd768;transform:scale(1.16)}100%{color:#b8cabe;transform:none}}@media(max-width:650px){.win-bonus{font-size:14px;right:1px;top:-17px}.payout-flight{z-index:12;padding:4px}.payout-flight .chip-column{width:15px}.payout-flight .chip-column-stack,.payout-flight .visual-chip{width:14px}}

/* Keep player portraits easy to recognize at every table size. */
.player-info{min-height:84px}.player-avatar{width:50px;height:50px}.full-table .player-avatar{width:44px;height:44px}.current-avatar{justify-content:center}.current-avatar .account-avatar{width:76px;height:76px}.avatar-option{padding:8px;gap:0}.avatar-option .account-avatar{width:68px;height:68px}
@media(max-width:650px){.full-table .player-info{min-height:74px}.full-table .player-info .player-avatar{width:36px;height:36px}.full-table .own-seat .player-info .player-avatar{width:44px;height:44px}.avatar-option .account-avatar{width:64px;height:64px}}
.master-practice-button{width:100%;margin:18px 0 28px}.master-practice-button span{font-size:21px;line-height:1}
.form-row.single-field{grid-template-columns:1fr}

/* Portrait-first seats: only the chip count keeps a compact container. */
.player-info,.seat-you .player-info{background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;min-height:0;overflow:visible}
.player-avatar,.full-table .player-avatar{width:100px;height:100px}
.player strong{font-size:15px;max-width:116px;text-shadow:0 2px 4px #000}
.player-info div>span.stack-value{display:block;width:max-content;max-width:110px;margin:3px auto 0;padding:2px 9px;border:1px solid #51685b;border-radius:999px;background:#102017e8;color:#eef5eb;font-size:12px;line-height:1.25;box-shadow:0 2px 7px #0005}
.seat-status{width:max-content;max-width:116px;min-height:0;margin:4px auto 0;padding:0;background:transparent;border-radius:0;text-shadow:0 2px 4px #000;overflow:visible}
.acting .player-info{outline:0;box-shadow:none}.acting .player-avatar{filter:drop-shadow(0 0 9px var(--lime))}.out-hand .player-info{border:0}
.full-table .dealer{right:2px;bottom:18px}
.table-stage.full-table{height:760px;min-height:760px}.full-table .ring-1,.full-table .ring-8{top:440px}.full-table .ring-2,.full-table .ring-7{top:285px}.full-table .ring-3,.full-table .ring-6{top:130px}.full-table .board{top:275px}.full-table .felt{inset:58px 30px 105px}
@media(max-width:1100px){.player-avatar,.full-table .player-avatar{width:88px;height:88px}.table-stage.full-table{height:720px;min-height:720px}.full-table .ring-1,.full-table .ring-8{top:420px}.full-table .ring-2,.full-table .ring-7{top:275px}.full-table .ring-3,.full-table .ring-6{top:130px}.full-table .board{top:265px}}
@media(max-width:650px){.table-stage.full-table{height:680px;min-height:680px}.full-table .player-info{min-height:0}.full-table .player-info .player-avatar{display:block;width:72px;height:72px;margin:0 auto}.full-table .own-seat .player-info .player-avatar{width:88px;height:88px}.full-table .player strong{font-size:12px;max-width:76px}.full-table .own-seat .player strong{font-size:14px;max-width:150px}.player-info div>span.stack-value{font-size:11px;padding:2px 7px}.full-table .ring-1,.full-table .ring-8{top:405px}.full-table .ring-2,.full-table .ring-7{top:270px}.full-table .ring-3,.full-table .ring-6{top:135px}.full-table .board{top:270px}.full-table .felt{inset:58px 25px 115px}.full-table .seat-status{max-width:76px;font-size:10px}.full-table .own-seat .seat-status{max-width:150px;font-size:11px}.full-table .dealer{right:8px;bottom:20px}}

.final-hand-label{color:var(--lime);font-size:16px;font-weight:800;letter-spacing:.18em;margin-top:12px}.final-hand-label[hidden],#reopen-ledger[hidden]{display:none}#reopen-ledger{margin:8px auto;color:var(--lime)}#ledger-dialog{width:min(680px,calc(100vw - 24px));max-height:85dvh;margin:auto;overflow:hidden;padding:24px;box-sizing:border-box}#ledger-dialog[open]{display:flex;flex-direction:column}#ledger-dialog .dialog-heading{flex-shrink:0}#ledger-dialog h2{font-size:26px}#ledger-meta,#ledger-note{font-size:14px;line-height:1.5;color:var(--muted);margin:8px 0 16px}#ledger-dialog .ledger-scroll{min-height:0;max-height:50dvh;overflow:auto;overscroll-behavior:contain}#ledger-dialog th{position:sticky;top:0;background:#182820}#ledger-dialog td:first-child{overflow-wrap:anywhere;min-width:90px}#ledger-dialog .positive{color:var(--lime)}#ledger-dialog .negative{color:#ffb3a8}#download-ledger{align-self:flex-start;min-height:40px;margin-top:12px}#ledgers-dialog{max-height:85dvh;overflow:auto}#ledger-dialog::backdrop{background:rgba(0,0,0,.55)}@media(max-width:540px){#ledger-dialog{padding:16px}#ledger-dialog h2{font-size:22px}}

/* Notification choices stay folded until a player wants them. */
.notification-settings{margin:12px 0 16px;border:1px solid var(--line);border-radius:10px;background:#102017}.notification-settings summary{cursor:pointer;list-style:none;padding:13px 15px;color:#dbe5dd;font-size:14px;font-weight:600}.notification-settings summary::-webkit-details-marker{display:none}.notification-settings summary::after{content:'＋';float:right;color:var(--lime)}.notification-settings[open] summary{border-bottom:1px solid var(--line)}.notification-settings[open] summary::after{content:'−'}.notification-settings .check-option{margin:14px 15px 4px}.notification-settings>p{margin:4px 15px 10px;color:var(--muted);font-size:12px;line-height:1.45}.notification-settings .button{width:calc(100% - 30px);margin:9px 15px 4px;min-height:40px}.notification-settings #banner-status{margin-bottom:15px;color:#adc1b5}.notification-settings #allow-banners[hidden]{display:none}
.notification-sound-modes{margin:10px 15px 15px;padding:4px 0 1px;border-top:1px solid var(--line)}.notification-sound-modes .check-option{align-items:flex-start;margin:10px 0!important}.notification-sound-modes input[type=radio]{width:18px;height:18px;min-height:18px;flex:none;accent-color:var(--lime)}.notification-sound-modes small{display:block;color:var(--muted);font-size:11px;line-height:1.4}

/* Terms stay at the bottom of the lobby and open as a focused reading page. */
.lobby-legal{margin-top:auto;padding-top:48px;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;color:#718b7c;font-size:11px;text-align:center}.lobby-legal .text-button{min-height:30px;padding:3px 5px;color:#91a69b;text-decoration:underline;text-underline-offset:3px}.terms-dialog{width:min(780px,calc(100% - 30px));max-height:calc(100dvh - 30px);padding:0;overflow:hidden}.terms-dialog>article{max-height:calc(100dvh - 32px);overflow:auto;padding:30px 34px 34px;overscroll-behavior:contain}.terms-dialog .dialog-heading{position:sticky;top:-30px;z-index:1;margin:-30px -34px 0;padding:28px 34px 16px;background:linear-gradient(#182820 82%,#18282000)}.terms-dialog .dialog-heading .eyebrow{display:block;margin:0 0 4px}.terms-dialog .dialog-heading h2{margin:0}.terms-updated{margin:4px 0 18px;color:#82998d;font-size:12px}.terms-highlight{padding:17px 19px;margin:0 0 26px;border:1px solid #78985e;border-radius:11px;background:#233b2a}.terms-highlight strong{color:var(--lime);font-family:Manrope,sans-serif;font-size:17px}.terms-highlight p{margin:6px 0 0;color:#d8e5d5}.terms-dialog section{padding:2px 0 14px;border-bottom:1px solid #2b3c35}.terms-dialog section:last-of-type{border-bottom:0}.terms-dialog h3{margin:19px 0 7px;font-family:Manrope,sans-serif;font-size:17px}.terms-dialog section p{margin:7px 0;color:#b5c5bc;font-size:13px;line-height:1.65}.terms-note{padding:14px 16px;border-radius:9px;background:#102017;color:#9fb2a8!important;font-size:12px!important}.terms-dialog article>.button{margin-top:18px}.terms-consent{font-size:12px!important;color:#91a69b!important}.inline-link{border:0;background:none;color:var(--lime);padding:0;text-decoration:underline;text-underline-offset:2px;font:inherit}.inline-link:focus-visible{outline-offset:2px}
@media(max-width:650px){.lobby-legal{padding-top:34px;gap:6px 12px}.lobby-legal>span{flex-basis:100%}.terms-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px)}.terms-dialog>article{max-height:calc(100dvh - 18px);padding:22px 18px 26px}.terms-dialog .dialog-heading{top:-22px;margin:-22px -18px 0;padding:21px 18px 13px}.terms-dialog .dialog-heading h2{font-size:24px}.terms-dialog h3{font-size:16px}.terms-dialog section p{font-size:13px}}

/* Table chat stays quiet until a player opens it. */
.table-footer-actions{display:flex;align-items:center;gap:12px}.chat-toggle{position:relative;min-height:28px!important;padding:2px 5px!important;color:#789084!important;font-size:11px!important}.chat-toggle:hover{color:var(--lime)!important}.chat-toggle b{position:absolute;top:-3px;right:-7px;min-width:16px;height:16px;padding:0 4px;border-radius:10px;background:var(--lime);color:#17251b;font-size:10px;line-height:16px;text-align:center}#chat-dialog{width:min(390px,calc(100vw - 20px));padding:18px;overflow:hidden}#chat-dialog[open]{display:flex;flex-direction:column}#chat-dialog h2{font-size:21px;margin:0}.chat-messages{min-height:180px;max-height:min(52dvh,440px);overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:9px;margin:14px -4px 12px;padding:2px 4px}.chat-empty{margin:auto!important;text-align:center;color:var(--muted)!important}.chat-message{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:start}.chat-avatar{width:28px;height:28px;object-fit:contain}.chat-message>div{min-width:0;border:1px solid var(--line);border-radius:9px;background:#102017;padding:7px 9px}.chat-message.mine>div{border-color:#526b4d;background:#203429}.chat-message-heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.chat-message-heading strong{font-size:12px}.chat-message-heading time{color:var(--muted);font-size:9px}.chat-message p{margin:3px 0 0;color:var(--text);font-size:13px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}.chat-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.chat-form input{min-height:42px;margin:0}.chat-form .button{width:auto;min-height:42px;margin:0;padding:8px 13px}#chat-error{margin:8px 0 0}@media(max-width:500px){.table-footer-actions{gap:7px}#chat-dialog{padding:14px}.chat-messages{max-height:56dvh}.chat-form{grid-template-columns:1fr}.chat-form .button{width:100%}}

.squid-marker{position:absolute;top:-7px;right:-9px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#182820;border:1px solid #c6ee89;font-size:14px;line-height:1;filter:drop-shadow(0 2px 4px #0008)}.history-side-games{margin:8px 0;padding:8px 10px;border:1px solid #5f7b58;border-radius:7px;background:#203728;color:#d7efad;font-size:12px;line-height:1.45}

body[data-table-theme="oxford"] .felt-inner::after{content:'UNIVERSITY OF\A OXFORD';inset:auto;left:50%;top:61%;width:clamp(150px,20vw,230px);height:clamp(58px,7vw,82px);transform:translate(-50%,-50%);border:1px solid #e5d59e28;border-radius:50%;color:#eadca93b;font-size:clamp(13px,1.5vw,20px);letter-spacing:.18em;text-shadow:0 1px #00152c}
