@import url('/dialogs.css?v=20260923-1');

:root {
  --ink:#f1f2e9; --muted:#899b90; --black:#0b1210; --panel:#14201a;
  --line:#ffffff12; --gold:#d9c18c; --gold-soft:#d9c18c18;
  --green:#87cba4; --red:#c77573; --felt:#234d3b; --felt-dark:#173c2c;
  --shadow:0 18px 60px #0006;
  color-scheme:dark;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { margin:0; background:var(--black); color:var(--ink); font-family:Inter,Arial,sans-serif; font-size:14px; }
button,input { font:inherit; }
button { cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; transition:background .15s,border-color .15s; }
button,input,summary { outline-offset:4px; }
:focus-visible { outline:2px solid var(--gold); }
button:disabled { opacity:.35; cursor:not-allowed; }
[hidden],.hidden { display:none!important; }
button { color:var(--ink); background:#ffffff06; border:1px solid var(--line); border-radius:8px; }
button:hover:enabled { background:#ffffff10; border-color:#ffffff30; }
input { min-width:0; color:var(--ink); accent-color:var(--gold); }

/* The table and action bar occupy independent grid rows. */
.app { display:grid; grid-template-rows:64px minmax(370px,1fr) auto; width:100%; height:100dvh; min-height:650px; background:radial-gradient(ellipse at 50% 35%,#223e2b55,transparent 65%),var(--black); }
.app.with-media { grid-template-rows:64px 112px minmax(370px,1fr) auto; min-height:760px; }
.topbar { display:flex; align-items:center; gap:28px; padding:0 28px; border-bottom:1px solid var(--line); background:#101a15; position:relative; z-index:50; min-width:0; }
.brand { display:flex; align-items:center; flex-shrink:0; gap:10px; }
.brand>span { display:grid; place-items:center; width:30px; height:34px; color:var(--gold); border:1px solid #d9c18c70; border-radius:9px 9px 15px 15px; font:23px Georgia,serif; }
.brand>b { font-size:10px; font-weight:600; letter-spacing:2px; }
.room-meta { display:flex; align-items:center; gap:12px; min-width:0; }
.connection { display:flex; align-items:center; gap:5px; color:var(--green); font-size:8px; white-space:nowrap; }
.connection i { width:5px; height:5px; background:currentColor; border-radius:50%; }
.connection.offline { color:var(--red); }
.connection>span { display:none; }
.room-label { color:var(--muted); font-size:11px; white-space:nowrap; }
.room-code { color:var(--gold); font-size:11px; padding:6px 9px; white-space:nowrap; }
.media-controls { display:flex; align-items:center; gap:5px; margin-left:auto; }
.media-controls button { display:flex; justify-content:center; align-items:center; gap:7px; height:34px; padding:0 10px; font-size:10px; border-color:transparent; white-space:nowrap; }
.media-controls button.on,.media-controls button[aria-expanded=true],#micBtn[aria-pressed=true],#camBtn[aria-pressed=true] { background:#87cba41a; border-color:#87cba440; color:var(--green); }
#micBtn[aria-pressed=false] .mic-icon,#camBtn[aria-pressed=false] .cam-icon { opacity:.4; }
#soundBtn[aria-pressed=true] { color:var(--red); }
.media-controls i { display:block; width:14px; height:14px; position:relative; font-style:normal; }
.sitout-icon { font-size:16px; line-height:13px; color:var(--gold); }
#sitOutBtn[aria-pressed="true"] { border-color:var(--gold); color:var(--gold); background:#b9974d20; }
.settings-icon { font-size:18px; line-height:14px; }
.unit-icon { font-size:15px; line-height:14px; }
.history-icon { border:1.5px solid currentColor; border-radius:50%; }
.history-icon:after { content:''; position:absolute; width:4px; height:4px; border-left:1px solid; border-bottom:1px solid; top:2px; left:5px; }
.chat-icon { border:1.5px solid currentColor; border-radius:3px; height:11px!important; }
.chat-icon:after { content:''; position:absolute; bottom:-4px; left:2px; width:4px; height:4px; border-left:1px solid; transform:skewY(-30deg); }
.mic-icon:before { content:''; position:absolute; top:0; left:5px; width:4px; height:9px; border:1.5px solid; border-radius:4px; }
.mic-icon:after { content:''; position:absolute; top:5px; left:2px; width:10px; height:8px; border:1px solid; border-top:0; border-radius:0 0 6px 6px; }
.cam-icon:before { content:''; position:absolute; left:0; top:3px; width:9px; height:8px; border:1.5px solid; border-radius:2px; }
.cam-icon:after { content:''; position:absolute; right:-2px; top:4px; border-right:5px solid; border-top:3px solid transparent; border-bottom:3px solid transparent; }
.sound-icon:before { content:''; position:absolute; top:3px; left:2px; width:8px; height:9px; background:currentColor; clip-path:polygon(0 25%,40% 25%,100% 0,100% 100%,40% 75%,0 75%); }
.sound-icon:after { content:''; position:absolute; top:2px; right:0; width:4px; height:11px; border-right:1.5px solid; border-radius:50%; }

.stage { position:relative; display:grid; place-items:center; padding:28px 34px 12px; min-height:0; min-width:0; }
.stage-heading { position:absolute; top:16px; left:30px; right:30px; display:flex; justify-content:space-between; color:#61766a; font-size:9px; letter-spacing:1.6px; }
.stage-heading b { font-size:10px; font-weight:400; letter-spacing:0; }
.table-wrap { position:relative; width:min(1100px,100%); height:100%; max-height:570px; min-height:330px; }
.table { position:absolute; inset:14% 7%; padding:12px; border:1px solid #65836745; border-radius:180px; background:#24382c; box-shadow:0 12px 28px #0005,inset 0 0 0 5px #142319; }
.felt { position:relative; width:100%; height:100%; border:1px solid #a2bc8720; border-radius:inherit; background:radial-gradient(ellipse at 50% 45%,#28583f,#193e2e); box-shadow:inset 0 0 45px #09291c50; }
.table-status { position:absolute; top:15%; left:0; right:0; text-align:center; }
#phaseLabel { color:#a4bfa5; font-size:9px; letter-spacing:2px; }
.pot { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:8px; color:#98b09b; font-size:8px; letter-spacing:1px; }
.pot b { font-size:21px; color:var(--ink); font-weight:500; letter-spacing:0; }
.board { position:absolute; left:50%; top:52%; transform:translate(-50%,-50%); display:flex; gap:8px; align-items:center; }
.table-message { position:absolute; bottom:14%; left:12%; right:12%; color:#c3d2bd; text-align:center; font-size:11px; line-height:1.5; }
.deck { display:none; }
.playing-card { position:relative; width:56px; height:78px; flex-shrink:0; perspective:600px; border-radius:5px; }
.card-inner { display:block; position:relative; width:100%; height:100%; transform-style:preserve-3d; }
.front,.back { position:absolute; inset:0; backface-visibility:hidden; border-radius:5px; overflow:hidden; }
.front { background:#faf8ef; color:#15201c; box-shadow:0 3px 6px #0003; }
.back { transform:rotateY(180deg); background:#233e56; border:2px solid #e5e7df; }
.card-art { display:block; width:100%; height:100%; object-fit:fill; }
.playing-card.blank .front { background:#ffffff06; box-shadow:none; border:1px solid #b4c8ae22; }
.playing-card.blank .front>* { display:none; }
.card-corner { position:absolute; left:5px; top:4px; font-size:14px; font-weight:700; }
.card-corner-bottom { inset:auto 5px 4px auto; transform:rotate(180deg); }
.card-suit { display:grid; place-items:center; height:100%; font-size:26px; }
.red .front,.mini-card.red { color:#af383d; }
.playing-card.deal-in { animation:cardArrival .5s both; }
.playing-card.reveal .card-inner { animation:flipCard .65s both; }
.best-five .front,.mini-card.best-five { box-shadow:0 0 0 2px var(--gold),0 0 15px #d9c18c35; }
.board .not-best-five { opacity:.85; }

.seats { position:absolute; inset:0; }
.player { position:absolute; width:122px; height:78px; transform:translate(-50%,-50%); z-index:5; }
.avatar { position:absolute; top:-9px; left:50%; transform:translateX(-50%); display:grid; place-items:center; width:32px; height:32px; padding:0; border:3px solid #17251c; border-radius:50%; background:#48644e; color:#e5ecda; z-index:3; font:14px Georgia,serif; }
.avatar-name { overflow:hidden; max-width:100%; }
.info { position:absolute; top:8px; left:0; right:0; min-height:65px; padding:17px 8px 6px; border:1px solid #435d474d; border-radius:10px; background:#18281ef5; text-align:center; box-shadow:0 5px 14px #0002; }
.info b { display:block; font-size:12px; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.info>span { display:block; margin-top:3px; color:var(--gold); font-size:15px; font-weight:600; }
.info em { font-style:normal; }
.info:has(.hand-combination:not([hidden])) em { display:none; }
.info em,.info small { display:block; margin-top:3px; color:var(--muted); font-size:9px; min-height:10px; }
.player.active .info { border-color:var(--gold); background:#30402a; }
.player.active .avatar { border-color:var(--gold); }
.player.winner .info { border-color:var(--green); background:#244331; }
.player.folded .info,.player.folded .avatar { opacity:.5; }
.player.busted .info { border-color:#ba777730; }
.player.sitting-out .info { border-style:dashed; border-color:#b9974d80; }
.vpip-stat,.equity-stat { position:absolute; top:57px; left:2px; right:2px; margin:0; font-size:8px!important; white-space:nowrap; }
.vpip-stat { color:#9dbca0!important; }
.equity-stat { color:#f1d48b!important; font-weight:700; }
.info:has(.equity-stat:not([hidden])) .hand-combination { display:none; }
.request-card { position:absolute; z-index:7; top:8px; right:2px; width:20px; height:20px; padding:0; border-color:#d7b56880; border-radius:50%; background:#2d3e2f; color:#f6dc9e; font-size:12px; font-weight:700; }
.player.can-return .avatar { cursor:pointer; }
.dealer-chip { display:none!important; position:absolute; display:grid; place-items:center; width:21px; height:21px; border:2px solid #fff8; border-radius:50%; background:#e9e5d7; color:#243c2e; font-size:10px; font-weight:700; z-index:4; }
.player.dealer .dealer-chip { display:grid!important; top:32px; }
.media-badge { display:none; }
.turn-clock { position:absolute; top:-8px; right:4px; width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:conic-gradient(var(--gold) var(--clock-angle,360deg),#243d2d 0); color:var(--ink); font-size:10px; z-index:4; border:3px solid #193224; }
.turn-clock.urgent { color:#ffc8a1; }
.seat-rebuy { position:absolute; top:-7px; left:3px; width:24px; height:24px; padding:0; border-radius:50%; background:#284733; color:var(--gold); z-index:4; }
.hole-cards { position:absolute; top:var(--cards-top,80px); left:var(--cards-left,50%); transform:translateX(-50%); display:flex; gap:3px; }
.hole-cards:empty { display:none; }
.mini-card { position:relative; display:block; width:28px; height:39px; border-radius:3px; perspective:400px; }
.mini-card-inner { display:block; position:relative; width:100%; height:100%; transform-style:preserve-3d; }
.mini-card-front,.mini-card-back { position:absolute; inset:0; border-radius:3px; overflow:hidden; backface-visibility:hidden; background:#f5f3ea; }
.mini-card-front img,.mini-card-back img { width:100%; height:100%; display:block; }
.mini-card-back { background-size:100% 100%; transform:rotateY(180deg); }
.mini-card.is-hidden .mini-card-inner { transform:rotateY(180deg); }
.mini-card.is-revealed .mini-card-inner { animation:miniCardFlip .6s both; }
.mini-card.is-revealed { width:60px; height:84px; }
.has-revealed-cards .hole-cards { gap:6px; }
.app.revealed-table { grid-template-rows:64px minmax(480px,1fr) auto; min-height:720px; }
.app.revealed-table.with-media { grid-template-rows:64px 112px minmax(480px,1fr) auto; min-height:832px; }
.hand[role=button],.hole-cards[role=button] { cursor:zoom-in; border-radius:6px; }
.card-zoom { width:min(470px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:24px; border:1px solid #93b38860; border-radius:16px; color:var(--ink); background:var(--panel); box-shadow:var(--shadow); }
.card-zoom::backdrop { background:#030a06c9; backdrop-filter:blur(5px); }
.card-zoom header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; }
.card-zoom h2 { margin:0; font-size:18px; font-weight:500; }
.card-zoom header button { width:36px; height:36px; padding:0; font-size:25px; }
.card-zoom-cards { display:flex; justify-content:center; gap:14px; }
.card-zoom-cards .playing-card { width:clamp(90px,29vw,145px); height:auto; aspect-ratio:5/7; }
.card-zoom p { text-align:center; color:var(--gold); margin:20px 0 0; }
.card-zoom p:empty { display:none; }
.street-bet { position:absolute; width:max-content; left:calc(50% + var(--bet-x,0px)); top:calc(50% + var(--bet-y,0px)); transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:4px; white-space:nowrap; font-size:12px; z-index:6; }
.chip-stack { --chip-size:32px; --chip-step:24px; --chip-rise:5px; --chip-font:9px; position:relative; display:inline-block; flex-shrink:0; width:calc(var(--chip-size) + var(--chip-step) * var(--chip-columns,0)); height:calc(var(--chip-size) + var(--chip-rise) * var(--chip-levels,0)); }
.chip-stack i { position:absolute; display:grid; place-items:center; left:calc(var(--chip-column) * min(var(--chip-step), (100% - var(--chip-size)) / max(1,var(--chip-columns)))); bottom:calc(var(--chip-level) * var(--chip-rise)); width:var(--chip-size); height:var(--chip-size); background:var(--chip-color); border:3px dashed #fffd; border-radius:50%; box-shadow:0 2px 3px #000b,inset 0 0 0 1px #0003; color:#fff; text-shadow:0 1px 2px #000,0 0 2px #000; font:700 var(--chip-font)/1 Arial,sans-serif; }
.chip-stack small { position:absolute; left:calc(100% + 3px); bottom:0; color:var(--ink); font-size:10px; }
.chip-stack:has(small) { margin-right:30px; }
.street-bet.compact-bet .chip-stack { --chip-size:28px; --chip-step:16px; --chip-rise:4px; --chip-font:8px; }
.chip-stack i:first-child { margin-left:0; }
.street-bet b { padding:2px 6px; border-radius:8px; background:#0b1a14d9; color:#f6ecd3; font-size:12px; font-weight:600; text-shadow:0 1px 3px #000; }
.effect-layer { position:absolute; inset:0; pointer-events:none; z-index:15; overflow:visible; }
.payout-chip { position:absolute; width:26px; height:26px; border:3px dashed #ffeecc; border-radius:50%; background:var(--gold); animation:payoutFlight .85s both; }
.payout-chip.tone-1 { background:#74ac84; }
.payout-chip.tone-2 { background:#bf7370; }
.bust-effect { position:absolute; font-size:30px; animation:bustImpact 1s both; }

.actions { display:grid; grid-template-columns:210px minmax(300px,1.2fr) minmax(240px,.9fr); grid-template-rows:auto auto; align-content:center; align-items:center; gap:10px 28px; min-height:176px; padding:16px max(28px,calc((100vw - 1160px)/2)); border-top:1px solid var(--line); background:#111d16; position:relative; z-index:20; }
.hand-zone { grid-column:1; grid-row:1/3; align-self:stretch; border-right:1px solid var(--line); padding-right:22px; }
.hand-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.hand-caption { font-size:8px; letter-spacing:1px; color:var(--muted); }
#handStack { font-size:9px; color:var(--gold); font-weight:400; }
.hand { display:flex; gap:6px; justify-content:center; }
.hand:empty { display:none; }
.hand .playing-card { width:72px; height:101px; }
.own-card-slot { position:relative; flex:none; }
.own-card-slot .playing-card { display:block; }
.hand-equity { margin-top:6px; color:#f1d48b; font-size:10px; text-align:center; }
.card-request-notice { display:grid; gap:5px; margin-top:7px; padding:6px; border:1px solid #d7b56870; border-radius:6px; background:#2e2818; color:#f3dcab; font-size:9px; text-align:center; }
.card-request-notice>div { display:flex; flex-wrap:wrap; justify-content:center; gap:3px; }
.card-request-notice button { padding:3px 5px; color:#f3dcab; font-size:8px; }
.hand-empty { display:flex; justify-content:center; align-items:center; height:60px; border:1px dashed #829a7133; border-radius:7px; font-size:10px; color:#607b68; text-align:center; line-height:1.7; }
.action-copy { grid-column:2; grid-row:1; display:flex; align-items:baseline; gap:10px; min-width:0; }
.action-copy strong { font-size:11px; font-weight:600; color:var(--gold); }
.action-copy span { font-size:10px; color:var(--muted); line-height:1.5; }
.action-zone { grid-column:2; grid-row:2; min-width:0; }
.action-buttons { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.action-buttons button { height:44px; font-size:13px; font-weight:600; }
.action-buttons .fold { border-color:#bc82752d; color:#dfa599; background:#af766c0a; }
.action-buttons .call { background:#284833; color:#c3e0c6; border-color:#6eab7140; }
.action-buttons .raise { background:var(--gold); color:#293321; border-color:var(--gold); }
.action-buttons .raise:hover:enabled { background:#ead5a8; }
.auto-actions { display:flex; align-items:center; gap:14px; margin-top:10px; color:var(--muted); font-size:9px; }
.auto-actions label { display:flex; align-items:center; gap:5px; white-space:nowrap; cursor:pointer; }
.auto-actions input { width:12px; height:12px; margin:0; }
.time-bank-button { font-size:9px; padding:4px; color:var(--gold); }
.bet-panel { grid-column:3; grid-row:1/3; display:flex; flex-direction:column-reverse; align-self:center; gap:8px; min-width:0; }
.bet { display:flex; align-items:center; border:1px solid #82936a40; border-radius:8px; height:43px; background:#0d1811; }
.bet>button { border:0; border-radius:6px; height:100%; width:38px; flex-shrink:0; font-size:20px; color:var(--gold); }
.bet>span { flex:1; display:flex; flex-direction:column; align-items:center; min-width:0; }
.bet small { font-size:7px; letter-spacing:1px; color:var(--muted); }
.bet input { width:100%; background:none; border:0; text-align:center; font-size:18px; appearance:textfield; }
.bet input::-webkit-inner-spin-button { appearance:none; }
.quick-bets { display:flex; gap:4px; }
.quick-bets button { flex:1; height:25px; padding:0 2px; border-radius:5px; font-size:9px; }
.pot-range { display:flex; gap:10px; align-items:center; margin-top:7px; }
.pot-range span { font-size:8px; color:var(--muted); width:67px; flex-shrink:0; }
.pot-range input { width:100%; height:3px; margin:5px 0; }
.admin-controls { grid-column:2/4; grid-row:2; display:flex; gap:10px; }
.admin-controls button { min-height:42px; padding:8px 18px; font-size:11px; }
.admin-controls .start { background:var(--gold); color:#293321; margin-left:auto; min-width:160px; border-color:var(--gold); font-weight:600; }
.admin-controls .session-end { color:var(--muted); }
.actions.admin-mode .action-zone,.actions.admin-mode .bet-panel { display:none; }
.actions.admin-mode .action-copy { grid-column:2/4; }

.call-panel { display:flex; gap:18px; padding:12px 28px; background:#0e1912; border-bottom:1px solid var(--line); min-width:0; }
.call-header { display:flex; flex-direction:column; justify-content:center; width:136px; flex-shrink:0; gap:7px; }
.call-header strong { color:#a6b89d; font-size:8px; letter-spacing:1px; }
.call-header>span { color:#5f7867; font-size:9px; line-height:1.5; }
#resumeAudioBtn { font-size:9px; padding:5px; color:var(--gold); border-color:var(--gold); }
.call-participants { display:flex; gap:9px; overflow-x:auto; overflow-y:hidden; min-width:0; padding-bottom:0; scrollbar-width:none; }
.call-participants::-webkit-scrollbar { display:none; }
.call-participant { position:relative; width:130px; height:82px; flex-shrink:0; overflow:hidden; border-radius:8px; background:#1c2b20; border:1px solid #91a07920; }
.call-picture { position:absolute; inset:0; }
.call-participant.has-video .call-placeholder { display:none; }
.call-participant:not(.has-video) video { visibility:hidden; }
.call-participant audio { display:none; }
.call-participant video { display:block; width:100%; height:100%; object-fit:contain; background:#070e09; }
.call-participant.local video { transform:scaleX(-1); }
.call-placeholder { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; background:#1b2a20; color:#6d876b; font-size:8px; }
.call-placeholder b { font:22px Georgia,serif; color:#b3c7a6; }
.call-placeholder:before { content:attr(data-initial); font:22px Georgia,serif; color:#b3c7a6; }
.call-caption { gap:3px; position:absolute; bottom:0; left:0; right:0; display:flex; align-items:center; justify-content:space-between; padding:5px 7px; background:linear-gradient(transparent,#061109dd); color:#e0e9d9; font-size:9px; }
.call-caption b { font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.call-status { flex-shrink:0; font-size:7px; color:#a2b095; }

.chat-panel { position:fixed; z-index:80; right:20px; top:74px; display:flex; flex-direction:column; width:340px; height:min(470px,calc(100dvh - 94px)); background:#15241b; border:1px solid #a4b68835; border-radius:12px; box-shadow:var(--shadow); overflow:hidden; }
.chat-panel.collapsed { display:none; }
.chat-head { display:flex; justify-content:space-between; align-items:center; padding:13px 15px; border-bottom:1px solid var(--line); }
.chat-head strong { font-size:13px; font-weight:500; }
.chat-head button { font-size:20px; width:26px; height:26px; padding:0; border:0; }
.chat-messages { flex:1; overflow-y:auto; padding:12px; }
.chat-line { padding:8px 10px; margin:0 0 8px; background:#ffffff05; border-radius:8px; font-size:12px; overflow-wrap:anywhere; }
.chat-line.own { background:#a2ba7520; }
.chat-line.system { color:var(--muted); font-size:10px; background:transparent; text-align:center; }
.chat-line b { display:block; margin-bottom:4px; color:var(--gold); font-size:10px; }
.chat-form { display:flex; gap:7px; padding:10px; border-top:1px solid var(--line); }
.chat-form input { flex:1; width:0; padding:9px; background:#0c1911; border:1px solid var(--line); border-radius:6px; font-size:12px; }
.chat-form button { width:34px; font-size:18px; color:var(--gold); }
.reaction-picker,.sticker-picker { position:fixed; z-index:90; padding:14px; width:min(360px,calc(100vw - 24px)); max-height:65dvh; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-gutter:stable; border:1px solid #a4b68840; border-radius:12px; background:#15241b; box-shadow:var(--shadow); }
.reaction-picker>strong,.sticker-picker>strong { display:block; font-size:11px; margin-bottom:12px; color:var(--gold); }
.emoji-grid,.sticker-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.sticker-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.emoji-grid { margin-bottom:10px; }
.emoji-grid button { padding:8px 0; font-size:23px; }
.sticker-grid button { display:grid; grid-template-rows:80px auto; justify-items:center; align-content:start; min-width:0; gap:6px; padding:8px 5px; }
.sticker-grid button img { display:block; width:80px; max-width:100%; height:80px; object-fit:contain; }
.sticker-grid button span { display:block; width:100%; min-width:0; min-height:2.6em; font-size:11px; line-height:1.3; white-space:normal; overflow-wrap:anywhere; text-align:center; }
.chat-sticker { display:grid; justify-items:start; gap:6px; width:132px; max-width:100%; font-size:12px; line-height:1.4; }
.chat-sticker img { display:block; width:112px; max-width:100%; height:112px; object-fit:contain; }
.social-bubble:empty,.social-bubble:not(.show) { display:none; }
.win-banner { position:absolute; bottom:-8px; left:50%; transform:translateX(-50%); z-index:8; padding:4px 7px; border-radius:5px; color:#193322; background:var(--green); font-size:8px; white-space:nowrap; }
.social-layer { position:fixed; inset:0; z-index:70; pointer-events:none; }
.social-bubble { position:absolute; width:max-content; max-width:min(210px,calc(100vw - 16px)); padding:10px 12px; background:#203b28; color:var(--ink); border:1px solid #b2c28a60; border-radius:12px; text-align:center; box-shadow:var(--shadow); font-size:12px; line-height:1.4; overflow-wrap:anywhere; pointer-events:none; }
.social-bubble.emoji { font-size:32px; line-height:1.2; }
.social-bubble.sticker { width:112px; font-size:10px; }
.social-bubble.sticker img { display:block; width:84px; height:84px; object-fit:contain; margin:0 auto 4px; }
.social-bubble small { display:block; font-size:9px; white-space:nowrap; }
.toast:not(.show) { display:none; }
.toast { position:fixed; top:76px; left:50%; transform:translateX(-50%); max-width:calc(100vw - 30px); z-index:800; background:#243c2b; border:1px solid #a1ba7660; border-radius:9px; padding:12px 18px; box-shadow:var(--shadow); font-size:12px; text-align:center; }

/* A compact creation form with the room format visible before creation. */
.lobby { position:fixed; inset:0; z-index:500; overflow-y:auto; display:flex; align-items:center; justify-content:center; padding:32px 22px; background:radial-gradient(ellipse at 20% 30%,#29412a70,transparent 60%),#0b1210; }
.lobby-shell { display:grid; grid-template-columns:1fr 1.05fr; width:min(920px,100%); margin:auto; border:1px solid #87986a33; border-radius:22px; overflow:hidden; background:#132018; box-shadow:0 24px 100px #0004; }
.lobby-story { padding:38px 36px 28px; background:radial-gradient(ellipse at 40% 50%,#2b42282a,transparent),#17271c; position:relative; overflow:hidden; }
.lobby-story .brand { margin-bottom:55px; }
.eyebrow { font-size:9px; letter-spacing:2px; color:#889e77; margin:0 0 18px; }
.lobby h1 { font:42px/1.15 Georgia,serif; font-weight:400; letter-spacing:-1.2px; margin:0 0 20px; }
.lobby h1 em { color:#a7bd8c; font-weight:400; font-style:normal; }
.lobby .intro { max-width:290px; color:#93a28b; font-size:12px; line-height:1.8; margin:0; }
.lobby-art { position:relative; height:174px; width:230px; margin:25px auto 10px; }
.lobby-art img { position:absolute; width:86px; height:120px; border-radius:6px; box-shadow:0 10px 20px #0004; left:49px; top:23px; transform:rotate(-16deg); }
.lobby-art img+img { left:107px; top:22px; transform:rotate(12deg); }
.art-chip { position:absolute; left:42px; top:107px; display:grid; place-items:center; width:53px; height:53px; border-radius:50%; background:#8a9e66; border:5px dashed #d2d9b1; outline:3px solid #82965f; box-shadow:0 5px 13px #0006; color:#243421; font:25px Georgia,serif; transform:rotate(-12deg); }
.lobby-note { display:flex; align-items:center; gap:8px; color:#778c70; font-size:9px; margin:24px 0 0; }
.lobby-note i { width:5px; height:5px; border-radius:50%; background:#96b877; }
.ept-branding,.ept-topbar-logo { display:none; }
#joinForm { position:relative; padding:32px; min-width:0; align-self:center; }
.tabs { display:flex; gap:6px; border-bottom:1px solid var(--line); margin-bottom:25px; }
.tabs button { flex:1; border:0; border-bottom:2px solid transparent; border-radius:0; padding:13px 4px; color:#879a83; background:none; font-size:12px; }
.tabs button.active { color:var(--gold); border-bottom-color:var(--gold); }
#joinForm>label,#joinFields>label,.settings-grid>label { display:flex; flex-direction:column; gap:7px; font-size:10px; color:#a7b49a; min-width:0; }
#joinForm input:not([type=radio]):not([type=checkbox]),.settings-grid input { width:100%; border:1px solid #80946c30; border-radius:7px; background:#0e1912; padding:11px 12px; color:var(--ink); font-size:13px; height:41px; }
#joinForm input::placeholder { color:#59705e; }
#joinFields,#createFields { margin-top:18px; }
.settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.media-setting,.mode-setting { min-width:0; margin:0 0 18px; padding:0; border:0; }
.media-setting legend,.mode-setting legend { color:#a7b49a; font-size:10px; margin-bottom:9px; padding:0; }
.media-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.media-options>label,.mode-segment>label { position:relative; cursor:pointer; }
.media-options input,.mode-segment input { position:absolute; inset:0; width:100%; height:100%; margin:0; opacity:0; cursor:pointer; z-index:2; }
.media-options label>span { display:flex; flex-direction:column; align-items:flex-start; border:1px solid #77896430; border-radius:9px; padding:12px 10px; height:100%; background:#102017; }
.media-options input:checked+span { border-color:#c1b77d; background:#c1b77d0c; }
.media-options input:focus-visible+span,.mode-segment input:focus-visible+span { outline:2px solid var(--gold); outline-offset:3px; }
.format-symbol { display:grid; place-items:center; width:26px; height:25px; margin-bottom:8px; border-radius:6px; background:#c2c99612; color:var(--gold); font-style:normal; font-size:19px; }
.media-options b { font-size:11px; font-weight:500; margin-bottom:7px; }
.media-options small { color:#7f967d; font-size:9px; line-height:1.6; }
.mode-segment { display:flex; padding:3px; border:1px solid #77896430; border-radius:8px; gap:4px; background:#0e1912; }
.mode-segment>label { flex:1; }
.mode-segment span { display:block; padding:9px 3px; border-radius:5px; text-align:center; font-size:10px; color:#83977d; }
.mode-segment input:checked+span { background:#293c28; color:#dde5ce; }
.tournament-theme-setting { position:absolute; z-index:2; top:32px; left:32px; width:182px; margin:0; }
.tournament-theme-setting legend { display:none; }
#joinForm:has(#tournamentCreateFields:not([hidden])) .tabs { margin-left:196px; }
.advanced-settings { margin:16px 0 0; border-top:1px solid var(--line); padding-top:12px; }
.advanced-settings summary { font-size:10px; color:#8da07f; cursor:pointer; }
.advanced-settings[open] summary { margin-bottom:15px; }
#submitBtn { width:100%; margin-top:23px; border:1px solid var(--gold); border-radius:8px; background:var(--gold); color:#2b321e; padding:13px; font-size:12px; font-weight:600; }
#submitBtn:hover:enabled { background:#e8d4a5; }
.form-note { display:block; text-align:center; color:#59735c; font-size:9px; line-height:1.5; margin-top:12px; }
.tournament-check { display:flex; align-items:center; gap:9px; margin-top:16px; color:#a7b49a; font-size:10px; }
#tournamentFields>div>label { display:flex; flex-direction:column; gap:7px; margin-top:12px; color:#a7b49a; font-size:10px; }
#tournamentFields input:not([type=radio]):not([type=checkbox]),#tournamentFields select { width:100%; height:41px; padding:9px 12px; border:1px solid #80946c30; border-radius:7px; background:#0e1912; color:var(--ink); }
.blind-preview { display:grid; gap:5px; margin-top:14px; padding:12px 14px; border:1px solid #cbbd7540; border-radius:8px; background:#cbbd7508; }
.blind-preview span { color:#82917f; font-size:8px; letter-spacing:.08em; text-transform:uppercase; }
.blind-preview strong { overflow:hidden; color:var(--gold); font-size:11px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.blind-preview small { color:#748778; font-size:9px; }
.tournament-lobby { position:fixed; z-index:550; inset:0; display:grid; place-items:center; overflow-y:auto; padding:24px; background:radial-gradient(circle at 30% 20%,#31482e70,transparent 55%),#09100d; }
.tournament-lobby-window { width:min(820px,100%); border:1px solid #87986a44; border-radius:18px; background:#132018; box-shadow:0 30px 110px #0008; overflow:hidden; }
.tournament-lobby-window>header,.tournament-admin-window>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:22px 26px; border-bottom:1px solid var(--line); }
.tournament-lobby-window>header span,.tournament-admin-window>header span { color:var(--gold); font-size:8px; letter-spacing:.15em; }
.tournament-lobby-window h2,.tournament-admin-window h2 { margin:3px 0 0; font:24px Georgia,serif; font-weight:400; }
.tournament-lobby-window>header>strong { color:var(--gold); font-size:14px; }
.tournament-lobby-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; background:var(--line); border-bottom:1px solid var(--line); }
.tournament-lobby-stats>div { display:grid; gap:5px; padding:16px 20px; background:#101b14; }
.tournament-lobby-stats span { color:#728475; font-size:8px; text-transform:uppercase; }
.tournament-lobby-stats b { overflow:hidden; color:#dbe4d7; font-size:12px; text-overflow:ellipsis; white-space:nowrap; }
.tournament-invite { display:flex; gap:8px; padding:16px 24px 0; }
.tournament-invite input { flex:1; min-width:0; padding:10px; border:1px solid var(--line); border-radius:7px; background:#0a130e; color:#9bb68f; }
.tournament-invite button { padding:0 14px; color:#1d2b1e; background:var(--gold); border-color:var(--gold); }
.tournament-application-status { display:grid; gap:4px; margin:16px 24px 0; padding:13px 15px; border:1px solid #cbbd7555; border-radius:9px; background:#cbbd750c; }
.tournament-application-status strong { color:var(--gold); font-size:11px; }
.tournament-application-status span { color:#9caa9b; font-size:9px; line-height:1.5; }
.tournament-applications { display:grid; gap:8px; padding:12px; border:1px solid #ffffff12; border-radius:9px; background:#09110d80; }
.tournament-applications.lobby-applications { margin:16px 24px 0; }
.tournament-applications>header { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.tournament-applications>header span { color:#9eaf9e; font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.tournament-applications>header b { min-width:22px; padding:3px 6px; border-radius:999px; background:#cbbd7520; color:var(--gold); font-size:9px; text-align:center; }
.tournament-applications>div { display:grid; gap:7px; max-height:180px; overflow-y:auto; }
.tournament-application { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; padding:9px 10px; border:1px solid #ffffff0f; border-radius:7px; background:#111d16; }
.tournament-application>div:first-child { display:grid; gap:3px; min-width:0; }
.tournament-application strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.tournament-application small { color:#718274; font-size:8px; }
.tournament-application-actions { display:flex; gap:6px; }
.tournament-application-actions button { min-height:34px; padding:0 10px; font-size:9px; }
.tournament-application-actions .approve { color:#17301f; border-color:#82c797; background:#82c797; }
.tournament-application-actions .reject { color:#ffd8d2; border-color:#9e4c43; background:#612b27; }
.tournament-player-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; max-height:340px; overflow-y:auto; padding:20px 24px; }
.tournament-player { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:46px; padding:9px 12px; border:1px solid #ffffff10; border-radius:8px; background:#0e1812; }
.tournament-player b { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.tournament-player span { color:#778a7b; font-size:9px; }
.tournament-player.online span { color:#8bc99d; }
.tournament-player-controls { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.tournament-player-controls .remove { min-height:28px; padding:0 8px; color:#efaaa3; border-color:#7d3733; background:#3a1817; font-size:8px; }
.tournament-lobby-window>footer { display:flex; justify-content:flex-end; gap:9px; padding:16px 24px; border-top:1px solid var(--line); }
.tournament-lobby-window>footer button { min-height:42px; padding:0 18px; }
.tournament-lobby-window>footer .start { color:#243020; background:var(--gold); border-color:var(--gold); }
.tournament-lobby-window>footer .danger { margin-right:auto; color:#ffd8d2; border-color:#9e4c43; background:#612b27; }
.tournament-lobby-window>footer .theme,.tournament-admin-actions .theme { color:#d8c29a; border-color:#a98d5c; background:#171b15; }
.tournament-wait-note { margin:0; padding:14px 24px 20px; color:#718276; font-size:10px; text-align:center; }
.tournament-admin-overlay { position:fixed; z-index:720; inset:0; display:grid; place-items:center; padding:20px; background:#020403df; backdrop-filter:blur(8px); }
.tournament-admin-window { width:min(570px,100%); border:1px solid #87986a44; border-radius:15px; background:#132018; box-shadow:0 30px 100px #000b; overflow:hidden; }
.tournament-admin-window>header>button { width:34px; height:34px; border-radius:50%; font-size:21px; }
.tournament-admin-body { display:grid; gap:15px; padding:22px 26px 26px; }
.tournament-admin-body>p { margin:0; color:#9eb09f; }
.tournament-admin-body>label { display:grid; gap:7px; color:#97a897; font-size:10px; }
.tournament-admin-body input { height:42px; padding:0 12px; border:1px solid var(--line); border-radius:7px; background:#0b1510; color:var(--ink); }
.tournament-admin-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.tournament-admin-actions button { min-height:46px; padding:8px; }
.tournament-admin-actions .danger { color:#ffd8d2; border-color:#9e4c43; background:#612b27; }
.tournament-admin-actions .confirm { color:#18301f; border-color:#82c797; background:#82c797; }
.tournament-admin-body>small { color:#708173; line-height:1.6; }
.tournament-pause-banner { position:fixed; z-index:460; left:50%; top:76px; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:3px; width:min(520px,calc(100vw - 24px)); padding:12px 18px; border:1px solid #e2b05e80; border-radius:10px; background:#392913ee; box-shadow:0 12px 40px #0008; text-align:center; }
.tournament-pause-banner strong { color:#f5ce87; font-size:10px; letter-spacing:.12em; }
.tournament-pause-banner span { color:#e5d6bb; font-size:10px; }
.settings-media-mode { margin:0 0 18px; font-size:12px; color:var(--muted); }
.settings-media-mode b { font-weight:500; color:var(--gold); }
.history-window,.settings-window,.rebuy-window,.session-summary-window,.session-end-confirm { background:#142119; border-color:#92a07140; border-radius:14px; }

/* EPT changes presentation only. The shared DOM, controls and game events remain untouched. */
body[data-theme="ept"] {
  --ink:#f0ede6; --muted:#979187; --black:#050806; --panel:#0b110d;
  --line:#d2aa6e20; --gold:#c29a61; --gold-soft:#c29a6118;
  --green:#70bc93; --red:#d05d61; --felt:#083b2c; --felt-dark:#041f17;
}
body[data-theme="ept"] .lobby,
body[data-theme="ept"] .tournament-lobby,
body[data-theme="ept"] .app {
  background:linear-gradient(#02050373,#0205039c),url('/theme/ept-money-bg-v2.jpg') center/cover fixed no-repeat,#050806;
}
body[data-theme="ept"] .app { grid-template-rows:70px minmax(455px,1fr) 160px; min-height:710px; }
body[data-theme="ept"] .app.with-media { grid-template-rows:70px 112px minmax(455px,1fr) 160px; min-height:822px; }
body[data-theme="ept"] .topbar { gap:22px; padding:0 28px 0 104px; border-bottom:1px solid #c29a6145; background:#050906eb; box-shadow:0 8px 30px #0008; }
body[data-theme="ept"] .topbar .brand { min-width:290px; }
body[data-theme="ept"] .ept-topbar-logo { display:block; position:absolute; left:26px; top:3px; width:64px; height:64px; filter:drop-shadow(0 4px 9px #000); }
body[data-theme="ept"] .topbar .brand>span { display:none; }
body[data-theme="ept"] .topbar .brand>b { color:#d5b47c; font:600 12px Georgia,serif; letter-spacing:.22em; white-space:nowrap; }
body[data-theme="ept"] .room-meta { gap:0; min-height:42px; overflow:hidden; border:1px solid #c29a6138; border-radius:8px; background:#050806b8; }
body[data-theme="ept"] .connection { padding:0 12px; }
body[data-theme="ept"] .room-label { padding:0 15px; color:#aaa69d; font-size:9px; }
body[data-theme="ept"] .room-code { height:42px; border:0; border-left:1px solid #c29a6128; border-radius:0; background:none; color:#d1ad74; }
body[data-theme="ept"] .media-controls button { height:40px; border:1px solid #ffffff08; background:#050806b5; }
body[data-theme="ept"] .stage { padding:18px 18px 0; }
body[data-theme="ept"] .stage-heading { top:10px; left:30px; right:30px; color:#9a8767; }
body[data-theme="ept"] .table-wrap { width:min(1210px,100%); max-height:610px; min-height:390px; }
body[data-theme="ept"] .table { inset:12% 3% 7%; padding:13px; border:1px solid #d0a5688c; border-radius:210px; background:linear-gradient(180deg,#171a17,#050705 72%,#10120f); box-shadow:0 22px 52px #000c,0 0 0 7px #030504,inset 0 0 0 3px #2b241b,inset 0 0 0 6px #090b09; }
body[data-theme="ept"] .felt { border:1px solid #d0a56873; background:radial-gradient(ellipse at 50% 42%,#0d4c38,#063426 58%,#03241a); box-shadow:inset 0 0 90px #00140daa,inset 0 0 0 2px #0008; }
body[data-theme="ept"] .felt::after { content:""; position:absolute; left:50%; top:49%; width:min(27%,190px); aspect-ratio:1; transform:translate(-50%,-50%); background:url('/theme/ept-logo.svg') center/contain no-repeat; opacity:.105; pointer-events:none; }
body[data-theme="ept"] .table-status { top:30%; z-index:3; }
body[data-theme="ept"] #phaseLabel { color:#b79a70; font-size:8px; }
body[data-theme="ept"] .pot { display:block; margin-top:5px; color:#c9c1b5; font-size:9px; letter-spacing:.03em; text-transform:none; }
body[data-theme="ept"] .pot b { margin-left:5px; color:#fff8ea; font-size:18px; }
body[data-theme="ept"] .board { top:calc(50% - 15px); z-index:3; gap:6px; }
body[data-theme="ept"] .board .playing-card { width:58px; height:82px; }
body[data-theme="ept"] .table-message { right:auto; bottom:5%; left:14%; max-width:260px; color:#c6b58f; font-size:9px; text-align:left; }
body[data-theme="ept"] .player { width:124px; height:58px; }
body[data-theme="ept"] .avatar { display:none; }
body[data-theme="ept"] .info { top:0; min-height:54px; padding:8px 8px 6px; border:1px solid #c29a617d; border-radius:13px; background:linear-gradient(#0b100d,#030604f5); box-shadow:0 7px 15px #0009,inset 0 0 13px #0005; }
body[data-theme="ept"] .info b { font-size:11px; }
body[data-theme="ept"] .info>span { margin-top:2px; color:#e1d4c1; font-size:14px; }
body[data-theme="ept"] .info em,
body[data-theme="ept"] .info small { margin-top:1px; color:#9f9b93; font-size:8px; min-height:8px; }
body[data-theme="ept"] .player.active .info { border-color:#74b88c; background:linear-gradient(#0d1812,#040805); box-shadow:0 0 17px #57aa7450,inset 0 0 13px #0005; }
body[data-theme="ept"] .hole-cards { gap:5px; }
body[data-theme="ept"] .mini-card { width:38px; height:54px; filter:drop-shadow(0 4px 5px #000b); }
body[data-theme="ept"] .mini-card:first-child { transform:rotate(-7deg); transform-origin:bottom right; }
body[data-theme="ept"] .mini-card:last-child { transform:rotate(7deg); transform-origin:bottom left; }
body[data-theme="ept"] .dealer-chip { border-color:#d9c59e; background:#e7dcc5; color:#30291f; }
body[data-theme="ept"] .street-bet .chip-stack { --chip-size:24px; --chip-step:17px; --chip-rise:3px; --chip-font:7px; }
body[data-theme="ept"] .street-bet.compact-bet .chip-stack { --chip-size:21px; --chip-step:12px; --chip-rise:3px; --chip-font:6px; }
body[data-theme="ept"] .street-bet b { padding:1px 5px; background:#030604e6; font-size:9px; }
body[data-theme="ept"] .actions { grid-template-columns:minmax(420px,1fr) minmax(270px,320px); grid-template-rows:auto 1fr; gap:8px 18px; min-height:160px; padding:16px 24px 14px max(270px,calc((100vw - 800px)/2)); border-top:1px solid #c29a6138; background:linear-gradient(90deg,#050806f0,#08100cef 46%,#050806f2); box-shadow:0 -14px 35px #0007; }
body[data-theme="ept"] .hand-zone { position:absolute; z-index:25; left:calc(max(36px,calc((100vw - 1220px)/2)) - max(270px,calc((100vw - 800px)/2))); bottom:14px; width:190px; padding:0 22px 0 0; border:0; transform:none; pointer-events:auto; }
body[data-theme="ept"] .hand-heading { display:flex; }
body[data-theme="ept"] .hand { gap:7px; }
body[data-theme="ept"] .hand .playing-card { width:60px; height:84px; filter:drop-shadow(0 6px 7px #000a); }
body[data-theme="ept"] .hand-empty { height:48px; background:#050806cc; }
body[data-theme="ept"] .current-combination { margin-top:5px; text-align:center; font-size:10px; }
body[data-theme="ept"] .action-copy { grid-column:1; grid-row:1; }
body[data-theme="ept"] .action-zone { grid-column:1; grid-row:2; }
body[data-theme="ept"] .action-buttons { gap:12px; }
body[data-theme="ept"] .action-buttons button { height:58px; border-radius:10px; font-size:15px; font-weight:500; }
body[data-theme="ept"] .action-buttons .fold { border-color:#bf343c; background:linear-gradient(#481014,#25070a); color:#f1dadd; }
body[data-theme="ept"] .action-buttons .call { border-color:#b89763; background:linear-gradient(#181a17,#090b09); color:#eee9df; }
body[data-theme="ept"] .action-buttons .raise { border-color:#b89763; background:linear-gradient(#0e3b2d,#071d16); color:#eee9df; }
body[data-theme="ept"] .bet-panel { grid-column:2; grid-row:1/3; padding:10px; border:1px solid #c29a612b; border-radius:10px; background:#050806b8; }
body[data-theme="ept"] .chat-panel { inset:auto auto 14px 14px; height:min(390px,calc(100dvh - 90px)); border-color:#c29a6150; background:#050806f2; }
body[data-theme="ept"] .lobby { padding:22px; }
body[data-theme="ept"] .lobby-shell { width:min(1080px,100%); min-height:610px; grid-template-columns:1.08fr .92fr; overflow:hidden; border:1px solid #c29a615c; border-radius:20px; background:#07100bea; box-shadow:0 28px 100px #000d; }
body[data-theme="ept"] .lobby-story { display:grid; place-items:center; min-height:610px; padding:34px; border-right:1px solid #c29a6142; background:linear-gradient(145deg,#07100cee,#101914c9); }
body[data-theme="ept"] .lobby-story>.brand,
body[data-theme="ept"] .lobby-story>.eyebrow,
body[data-theme="ept"] .lobby-story>h1,
body[data-theme="ept"] .lobby-story>.intro,
body[data-theme="ept"] .lobby-story>.lobby-art,
body[data-theme="ept"] .lobby-story>.lobby-note { display:none; }
body[data-theme="ept"] .ept-branding { display:grid; justify-items:center; align-content:center; gap:15px; width:100%; height:100%; }
body[data-theme="ept"] .ept-logo { width:218px; filter:drop-shadow(0 0 16px #c89d5360) drop-shadow(0 14px 22px #000c); }
body[data-theme="ept"] .ept-branding>strong { position:relative; width:100%; padding-bottom:18px; color:#e3d5bd; font:600 15px Georgia,serif; letter-spacing:.27em; text-align:center; white-space:nowrap; }
body[data-theme="ept"] .ept-branding>strong::after { content:""; position:absolute; left:10%; right:10%; bottom:0; height:1px; background:linear-gradient(90deg,transparent,#c29a61,transparent); }
body[data-theme="ept"] .ept-menu-cards { position:relative; width:240px; height:205px; margin-top:26px; overflow:hidden; }
body[data-theme="ept"] .ept-menu-cards img { position:absolute; left:38px; top:22px; width:128px; height:180px; transform:rotate(-9deg); filter:drop-shadow(0 13px 15px #000d); }
body[data-theme="ept"] .ept-menu-cards img+img { left:105px; transform:rotate(9deg); }
body[data-theme="ept"] #joinForm { align-self:stretch; padding:30px 28px; background:linear-gradient(145deg,#0b1510e8,#050b08f4); }
body[data-theme="ept"] .tabs { border-bottom-color:#c29a6135; }
body[data-theme="ept"] .tabs button.active { color:#e6c889; border-bottom-color:#e6c889; }
body[data-theme="ept"] .mode-segment { border-color:#c29a6140; background:#050806c2; }
body[data-theme="ept"] .mode-segment input:checked+span { background:linear-gradient(#4d4028,#201b12); color:#f2dfb5; box-shadow:inset 0 0 0 1px #ddb971; }
body[data-theme="ept"] #submitBtn { border-color:#d4ae6c; background:linear-gradient(180deg,#f0ca80,#be8e4e); color:#171109; box-shadow:0 7px 18px #0007; }
body[data-theme="ept"] #submitBtn:hover:enabled { background:linear-gradient(180deg,#f5d694,#c99a59); }
body[data-theme="ept"] .tournament-lobby-window,
body[data-theme="ept"] .tournament-admin-window { border-color:#c29a6155; background:#07100bed; box-shadow:0 24px 80px #000b; }
body[data-theme="ept"] .tournament-lobby-stats>div,
body[data-theme="ept"] .tournament-player,
body[data-theme="ept"] .tournament-application { background:#060d09e8; }
body[data-theme="ept"] .tournament-invite button,
body[data-theme="ept"] .tournament-lobby-window>footer .start { border-color:#b89763; background:#173a2d; color:#f3ede4; }

@media (max-width:1200px) {
  .topbar { gap:18px; padding:0 22px; }
  .media-controls button { width:32px; padding:0; }
  .media-controls button>span { display:none; }
  .actions { grid-template-columns:174px minmax(250px,1fr) minmax(200px,.8fr); padding:16px 24px; gap:10px 18px; }
  .action-copy { flex-direction:column; gap:5px; }
  .hand-heading { flex-direction:column; align-items:flex-start; gap:5px; }
}
@media (min-width:761px) {
  .app.revealed-table:has(.players-count-7,.players-count-8,.players-count-9) { grid-template-rows:64px minmax(570px,1fr) auto; min-height:810px; }
  .app.revealed-table.with-media:has(.players-count-7,.players-count-8,.players-count-9) { grid-template-rows:64px 112px minmax(570px,1fr) auto; min-height:922px; }
  .revealed-table:has(.players-count-8) .table-status { top:27%; }
}
@media (max-width:760px) {
  body[data-theme="ept"] .lobby-story { min-height:310px; padding:24px; }
  body[data-theme="ept"] .ept-logo { width:112px; }
  body[data-theme="ept"] .ept-branding>strong { font-size:10px; }
  body[data-theme="ept"] .ept-menu-cards { width:142px; height:150px; margin-top:10px; }
  body[data-theme="ept"] .ept-menu-cards img { left:25px; width:72px; height:102px; }
  body[data-theme="ept"] .ept-menu-cards img+img { left:65px; }
  body[data-theme="ept"] .board { top:calc(51% - 15px); }
  .app { grid-template-rows:56px minmax(408px,1fr) auto; min-height:690px; }
  .tournament-lobby { padding:0; align-items:start; }
  .tournament-lobby-window { min-height:100dvh; border:0; border-radius:0; }
  .tournament-lobby-window>footer { flex-wrap:wrap; }
  .tournament-lobby-window>footer .danger { margin-right:0; }
  .tournament-lobby-window>footer button { flex:1 1 calc(50% - 9px); }
  .tournament-lobby-window>header { padding:18px; }
  .tournament-lobby-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .tournament-invite { flex-direction:column; padding:14px 16px 0; }
  .tournament-invite button { min-height:40px; }
  .tournament-application-status,.tournament-applications.lobby-applications { margin:14px 16px 0; }
  .tournament-application { grid-template-columns:1fr; }
  .tournament-application-actions button { flex:1; }
  .tournament-player-list { grid-template-columns:1fr; padding:16px; }
  .tournament-admin-actions { grid-template-columns:1fr; }
  .app.with-media { grid-template-rows:56px 100px minmax(408px,1fr) auto; min-height:790px; }
  .app.full-table { grid-template-rows:56px minmax(526px,1fr) auto; min-height:800px; }
  .app.full-table.with-media { grid-template-rows:56px 100px minmax(526px,1fr) auto; min-height:900px; }
  .topbar { padding:0 12px; gap:10px; }
  .topbar .brand>b,.room-label { display:none; }
  .topbar .brand>span { width:25px; height:29px; font-size:20px; }
  .room-meta { gap:5px; }
  .room-code { font-size:10px; padding:5px 6px; border:0; }
  .media-controls { gap:1px; }
  .media-controls button { width:29px; height:32px; }
  .stage { padding:28px 10px 8px; }
  .stage-heading { top:13px; left:17px; right:17px; font-size:7px; letter-spacing:1px; }
  .stage-heading b { font-size:9px; }
  .table-wrap { max-height:630px; min-height:370px; }
  .table { inset:10% 13% 9%; padding:8px; border-radius:130px; box-shadow:0 7px 20px #0005,inset 0 0 0 3px #142319; }
  .table-status { top:28%; }
  #phaseLabel { font-size:7px; letter-spacing:1.5px; }
  .pot { margin-top:6px; font-size:7px; gap:6px; }
  .pot b { font-size:18px; }
  .board { top:51%; gap:4px; }
  .board .playing-card { width:34px; height:48px; }
  .table-message { bottom:29%; left:12%; right:12%; font-size:9px; line-height:1.5; }
  .player { width:78px; height:62px; }
  .avatar { width:23px; height:23px; top:-6px; border-width:2px; font-size:11px; }
  .info { top:6px; min-height:53px; border-radius:7px; padding:13px 5px 5px; }
  .info b { font-size:10px; }
  .info>span { font-size:13px; margin-top:2px; }
  .info em,.info small { font-size:7px; margin-top:2px; min-height:8px; }
  .turn-clock { width:22px; height:22px; top:-7px; right:0; font-size:8px; border-width:2px; }
  .seat-rebuy { width:20px; height:20px; top:-6px; left:0; font-size:12px; }
  .dealer-chip { width:17px; height:17px; font-size:8px; }
  .hole-cards { gap:2px; }
  .mini-card { width:22px; height:31px; }
  .mini-card.is-revealed { width:36px; height:50px; }
  .has-revealed-cards .hole-cards { gap:3px; }
  .players-count-7 .mini-card.is-revealed,.players-count-8 .mini-card.is-revealed,.full-table .mini-card.is-revealed { width:28px; height:39px; }
  .app.revealed-table { grid-template-rows:56px minmax(408px,1fr) auto; min-height:700px; }
  .app.revealed-table.with-media { grid-template-rows:56px 100px minmax(408px,1fr) auto; min-height:800px; }
  .app.full-table.revealed-table { grid-template-rows:56px minmax(542px,1fr) auto; min-height:820px; }
  .app.full-table.revealed-table.with-media { grid-template-rows:56px 100px minmax(542px,1fr) auto; min-height:920px; }
  .street-bet .chip-stack { --chip-size:28px; --chip-step:20px; --chip-rise:4px; --chip-font:8px; }
  .street-bet.compact-bet .chip-stack { --chip-size:26px; --chip-rise:3px; width:var(--chip-size); height:calc(var(--chip-size) + var(--chip-rise) * var(--chip-count)); }
  .street-bet.compact-bet .chip-stack i { left:0; bottom:calc(var(--chip-index) * var(--chip-rise)); }
  .street-bet b { font-size:10px; }

  .actions { grid-template-columns:122px minmax(0,1fr); grid-template-rows:auto auto auto; min-height:234px; padding:12px 14px max(12px,env(safe-area-inset-bottom)); gap:9px 12px; }
  .hand-zone { grid-column:1; grid-row:1/3; padding-right:12px; }
  .hand-heading { gap:5px; margin-bottom:9px; }
  .hand-caption { font-size:7px; }
  #handStack { font-size:9px; }
  .hand { gap:4px; }
  .hand .playing-card { width:50px; height:70px; }
  .hand-empty { height:52px; font-size:8px; }
  .action-copy { grid-column:2; grid-row:1; gap:3px; }
  .action-copy strong { font-size:10px; }
  .action-copy span { font-size:9px; }
  .bet-panel { grid-column:2; grid-row:2; gap:5px; }
  .bet { height:34px; }
  .bet>button { width:30px; font-size:18px; }
  .bet small { font-size:6px; }
  .bet input { font-size:15px; }
  .quick-bets { gap:3px; }
  .quick-bets button { height:22px; font-size:9px; }
  .pot-range { display:none; }
  .action-zone { grid-column:1/3; grid-row:3; }
  .action-buttons { gap:7px; }
  .action-buttons button { height:41px; font-size:11px; }
  .auto-actions { justify-content:center; gap:20px; font-size:8px; margin-top:9px; }
  .auto-actions label { gap:4px; }
  .auto-actions input { width:11px; height:11px; }
  .admin-controls { grid-column:1/3; grid-row:3; gap:7px; }
  .admin-controls button { flex:1; min-width:0; padding:7px; min-height:40px; font-size:10px; }
  .admin-controls .start { min-width:0; }
  .actions.admin-mode { min-height:193px; }
  .actions.admin-mode .action-copy { grid-column:2; grid-row:1/3; }
  .call-panel { height:100px; padding:7px 12px; gap:0; }
  .call-header { width:0; }
  .call-header>strong,.call-header>span { display:none; }
  #resumeAudioBtn { position:fixed; top:62px; left:12px; z-index:60; background:#223f28; padding:9px; }
  .call-participants { gap:7px; }
  .call-participant { width:112px; }
  .chat-panel { top:62px; right:12px; width:calc(100vw - 24px); max-width:340px; height:min(440px,calc(100dvh - 78px)); }
  .toast { top:62px; font-size:11px; }
  .lobby { display:block; padding:18px 14px; }
  .lobby-shell { max-width:460px; grid-template-columns:minmax(0,1fr); border-radius:16px; }
  .lobby-story { padding:24px 24px 21px; }
  .lobby-story .brand { margin-bottom:23px; }
  .lobby h1 { font-size:33px; margin-bottom:12px; letter-spacing:-.7px; }
  .lobby .intro { max-width:100%; font-size:11px; line-height:1.7; }
  .lobby .eyebrow,.lobby-art,.lobby-note { display:none; }
  #joinForm { padding:10px 24px 25px; }
  .tournament-theme-setting { position:static; width:auto; margin:0 0 14px; }
  #joinForm:has(#tournamentCreateFields:not([hidden])) .tabs { margin-left:0; }
  .tabs { margin-bottom:21px; }
  .tabs button { font-size:11px; }
  .media-options label>span { padding:11px 9px; }
  .media-options b { font-size:10px; }
  .media-options small { font-size:8px; }
  .history-head>div:first-child { min-width:0; }
  body[data-theme="ept"] .app,
  body[data-theme="ept"] .app.full-table,
  body[data-theme="ept"] .app.revealed-table { grid-template-rows:56px minmax(430px,1fr) auto; min-height:710px; }
  body[data-theme="ept"] .topbar { padding:0 10px 0 52px; }
  body[data-theme="ept"] .ept-topbar-logo { left:8px; top:7px; width:42px; height:42px; }
  body[data-theme="ept"] .topbar .brand { min-width:0; }
  body[data-theme="ept"] .topbar .brand>b { display:none; }
  body[data-theme="ept"] .room-meta { min-height:34px; }
  body[data-theme="ept"] .room-label { display:none; }
  body[data-theme="ept"] .room-code { height:34px; }
  body[data-theme="ept"] .stage { padding:28px 8px 5px; }
  body[data-theme="ept"] .table { inset:10% 12% 9%; padding:8px; border-radius:135px; box-shadow:0 12px 28px #000b,0 0 0 4px #030504,inset 0 0 0 2px #2b241b; }
  body[data-theme="ept"] .table-status { top:27%; }
  body[data-theme="ept"] .board { top:calc(51% - 15px); gap:4px; }
  body[data-theme="ept"] .board .playing-card { width:34px; height:48px; }
  body[data-theme="ept"] .player { width:76px; height:50px; }
  body[data-theme="ept"] .info { min-height:48px; padding:6px 4px 4px; border-radius:8px; }
  body[data-theme="ept"] .info b { font-size:9px; }
  body[data-theme="ept"] .info>span { font-size:12px; }
  body[data-theme="ept"] .mini-card { width:22px; height:31px; }
  body[data-theme="ept"] .actions { position:relative; grid-template-columns:118px minmax(0,1fr); grid-template-rows:auto auto auto; min-height:234px; padding:12px 14px max(12px,env(safe-area-inset-bottom)); gap:9px 12px; }
  body[data-theme="ept"] .hand-zone { position:static; grid-column:1; grid-row:1/3; width:auto; padding-right:12px; border-right:1px solid var(--line); transform:none; }
  body[data-theme="ept"] .hand-heading { display:flex; }
  body[data-theme="ept"] .current-combination { position:static; margin-top:5px; }
  body[data-theme="ept"] .hand .playing-card { width:50px; height:70px; }
  body[data-theme="ept"] .action-copy { grid-column:2; grid-row:1; }
  body[data-theme="ept"] .bet-panel { grid-column:2; grid-row:2; padding:0; border:0; background:none; }
  body[data-theme="ept"] .action-zone { grid-column:1/3; grid-row:3; }
  body[data-theme="ept"] .action-buttons button { height:41px; font-size:11px; }
  body[data-theme="ept"] .lobby-shell { grid-template-columns:minmax(0,1fr); min-height:0; }
  body[data-theme="ept"] .lobby-story { min-height:310px; border-right:0; border-bottom:1px solid #c29a6142; }
}
@media (max-width:360px) {
  .sticker-grid button span { font-size:10px; }
  .topbar { gap:5px; padding:0 8px; }
  .topbar .brand { display:none; }
  .actions { grid-template-columns:118px minmax(0,1fr); padding-left:12px; padding-right:12px; gap:9px 10px; }
  .player { width:70px; }
  .board .playing-card { width:30px; height:43px; }
  .table-message { font-size:8px; }
  .lobby { padding:12px; }
  #joinForm { padding:10px 20px 23px; }
}
@media (max-width:760px) and (max-height:800px) {
  .app.full-table { grid-template-rows:56px minmax(408px,1fr) auto; min-height:690px; }
  .app.full-table.with-media { grid-template-rows:56px 100px minmax(408px,1fr) auto; min-height:790px; }
  .full-table .player { height:54px; }
  .full-table .avatar { width:20px; height:20px; font-size:10px; }
  .full-table .info { min-height:49px; padding:11px 5px 4px; }
  .full-table .info b { font-size:9px; }
  .full-table .info>span { font-size:12px; }
  .full-table .mini-card { width:18px; height:25px; }
}
@keyframes cardArrival { from { opacity:0; transform:translateY(-14px) scale(.94); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { *,*:before,*:after { animation-duration:.01ms!important; transition-duration:0s!important; transition-delay:0s!important; } }

.current-combination { margin-top:7px; color:var(--gold); font-size:12px; line-height:1.3;  }
.current-combination::first-letter { text-transform:uppercase; }
.bet-preview { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; min-height:44px; }
.bet-preview .chip-stack { --chip-size:40px; --chip-step:30px; --chip-rise:6px; --chip-font:10px; max-width:100%; }
.bet-preview .chip-stack:has(small) { max-width:calc(100% - 30px); }
.bet-preview>small { font-size:10px; color:var(--muted); }
.auto-deal-setting { display:grid; gap:8px; margin:14px 0 18px; font-size:11px; color:var(--muted); }
.auto-deal-setting select { width:100%; height:41px; padding:8px 12px; border:1px solid #80946c50; border-radius:7px; background:#0e1912; color:var(--ink); font:inherit; }
.help-book { width:min(580px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); padding:24px; border:1px solid #80946c60; border-radius:16px; background:#142119; color:var(--ink); box-shadow:0 24px 100px #000a; }
.help-book::backdrop { background:#030906c9; backdrop-filter:blur(5px); }
.help-book header { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.help-book header small { color:var(--gold); font-size:9px; letter-spacing:2px; }
.help-book h2 { margin:6px 0; font-size:24px; }
.help-book header button { background:transparent; color:var(--ink); border:1px solid var(--line); border-radius:8px; width:36px; height:36px; font-size:24px; }
.help-book h3 { font-size:14px; margin:24px 0 10px; }
.help-book p { color:var(--muted); font-size:12px; line-height:1.6; }
.shortcut-list { margin:16px 0; }
.shortcut-list>div { display:grid; grid-template-columns:170px 1fr; align-items:center; gap:14px; padding:8px 0; border-bottom:1px solid var(--line); font-size:12px; }
.shortcut-list>div { grid-template-columns:100px 1fr auto; }
.shortcut-list button { padding:5px 7px; font-size:10px; color:var(--gold); }
#resetShortcutsBtn { padding:8px 10px; font-size:10px; }
.shortcut-list dt { color:var(--muted); }
.shortcut-list dd { margin:0; }
kbd { display:inline-block; border:1px solid #879c6c60; border-bottom-width:3px; padding:3px 5px; border-radius:4px; color:var(--ink); font:11px/1.2 inherit; }
.chip-legend { display:flex; flex-wrap:wrap; gap:12px 18px; }
.chip-legend>span { display:flex; align-items:center; gap:6px; font-size:12px; }
.chip-legend i { width:22px; height:22px; border:3px dashed #fff9; border-radius:50%; background:var(--chip-color); }
@media(max-width:760px) {
  .current-combination { font-size:10px; }
  .app:has(.players-count-7,.players-count-8,.players-count-9) { grid-template-rows:56px minmax(550px,1fr) auto; min-height:830px; }
  .app.with-media:has(.players-count-7,.players-count-8,.players-count-9) { grid-template-rows:56px 100px minmax(550px,1fr) auto; min-height:930px; }
  .bet-preview { min-height:36px; gap:5px 8px; }
  .bet-preview .chip-stack { --chip-size:34px; --chip-step:24px; --chip-rise:5px; --chip-font:9px; }
  .bet-preview>small { font-size:9px; }
  .help-book { padding:18px; }
  .help-book h2 { font-size:21px; }
  .shortcut-list>div { grid-template-columns:62px minmax(0,1fr) auto; gap:8px; font-size:11px; }
  .shortcut-list button { padding:4px; font-size:9px; }
}

@media(max-width:760px) {
  .app.revealed-table:has(.players-count-8) { grid-template-rows:56px minmax(480px,1fr) auto; min-height:780px; }
  .app.revealed-table.with-media:has(.players-count-8) { grid-template-rows:56px 100px minmax(480px,1fr) auto; min-height:880px; }
}
