:root {
  --ink: #ffffff;
  --muted: #d0d5d0;
  --paper: #f5f1e8;
  --paper-deep: #3f4743;
  --background: #151817;
  --green: #0d6243;
  --green-light: #8fe0ac;
  --coral: #dc725f;
  --line: rgba(255, 255, 255, .42);
  --shadow: 0 20px 55px rgba(31, 53, 42, .13);
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; overflow: hidden; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--background); font-family: 'DM Mono', monospace; }
body::before { content: ''; position: fixed; inset: 0; pointer-events: none; opacity: .1; background-image: radial-gradient(#ffffff .7px, transparent .7px); background-size: 9px 9px; }
.shell { position: relative; width: min(1120px, calc(100% - 48px)); height: 100dvh; min-height: 0; margin: auto; padding: 42px 0 26px; display: flex; flex-direction: column; }
.masthead { display: flex; align-items: center; gap: 14px; padding-bottom: 34px; border-bottom: 1px solid var(--line); }
.brand-mark { width: 44px; height: 44px; display: grid; place-items: center; color: var(--paper); background: var(--coral); font: 25px Georgia, serif; transform: rotate(-7deg); }
.eyebrow { margin: 0 0 7px; color: var(--green-light); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
h1, h2, p { margin-top: 0; } h1 { margin: 0; font: 700 25px Fraunces, Georgia, serif; letter-spacing: -.02em; } h2 { margin: 0; font: 600 38px/1.08 Fraunces, Georgia, serif; } h2 em { color: var(--coral); font-style: normal; }
.status-pill { margin-left: auto; display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }.status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--green-light); }
.lobby-layout { flex: 1; display: flex; align-items: center; justify-content: center; padding: 48px 5%; }
.join-panel { width: min(100%, 430px); padding: 36px; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.35); box-shadow: var(--shadow); }.join-panel label { display: block; margin-bottom: 10px; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: .1em; } input { width: 100%; padding: 15px 14px; border: 1px solid var(--line); outline: 0; color: var(--ink); background: rgba(255,255,255,.14); font: 13px 'DM Mono', monospace; } input::placeholder { color: #c2c9c3; opacity: 1; } input:focus { border-color: var(--green-light); box-shadow: 0 0 0 3px rgba(143,224,172,.2); }.action-grid { margin-top: 19px; }.primary-button, .secondary-button, .quiet-button { border: 0; cursor: pointer; font: 500 11px 'DM Mono', monospace; letter-spacing: .04em; transition: transform .2s, background .2s; }.primary-button { width: 100%; padding: 16px 18px; color: var(--paper); background: var(--green); text-align: left; }.primary-button span { float: right; font-size: 17px; line-height: 11px; }.primary-button:hover, .secondary-button:hover { background: var(--green-light); transform: translateY(-1px); }.or-divider { display: flex; align-items: center; gap: 10px; margin: 19px 0; color: var(--muted); font-size: 9px; text-transform: uppercase; white-space: nowrap; }.or-divider::before, .or-divider::after { content: ''; height: 1px; width: 100%; background: var(--line); }.join-row { display: grid; grid-template-columns: 1fr auto; gap: 9px; }.join-row input { text-transform: uppercase; letter-spacing: .2em; }.secondary-button { padding: 0 17px; color: var(--paper); background: var(--coral); }.form-message { min-height: 15px; margin: 14px 0 0; color: var(--coral); font-size: 10px; line-height: 1.5; }
.join-panel { border-radius: 8px; }
.lobby-section-title { margin: 0 0 14px; color: var(--green-light); font: 600 20px Fraunces, Georgia, serif; }
.or-divider + .lobby-section-title { margin-top: 14px; }
.or-divider + .lobby-section-title { margin-bottom: 14px; }
.join-row { margin-top: 10px; align-items: stretch; }
.join-row .secondary-button { min-height: 49px; }
.join-panel .action-grid { margin-top: 10px; }
.hidden { display: none !important; }.room-screen { flex: 1; padding: 44px 0 30px; }.room-bar { display: flex; justify-content: space-between; align-items: end; padding-bottom: 26px; border-bottom: 1px solid var(--line); }.room-code-display { color: var(--green); font: 700 34px Fraunces, Georgia, serif; letter-spacing: .12em; }.quiet-button { padding: 10px 0; color: var(--green-light); background: none; border-bottom: 1px solid var(--green-light); }.table-layout { display: grid; grid-template-columns: 220px 1fr; gap: 28px; padding-top: 34px; }.panel-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 17px; }.panel-heading h2 { font-size: 19px; }.panel-heading span { color: var(--muted); font-size: 10px; }.player-list { min-height: 180px; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }.player-list li { display: flex; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 11px; }.player-seat { width: 24px; height: 24px; display: grid; place-items: center; color: var(--green); background: var(--paper-deep); font-size: 10px; }.host-tag { margin-left: auto; color: var(--coral); font-size: 9px; }.start-button { margin-top: 20px; }.table-felt { position: relative; min-height: 410px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 25px; overflow: hidden; background: var(--green); box-shadow: var(--shadow); }.table-felt::before { content: ''; position: absolute; width: 78%; aspect-ratio: 2 / 1; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; }.table-label { position: absolute; top: 23px; display: flex; align-items: center; gap: 9px; color: rgba(245,241,232,.7); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }.table-chip { display: grid; width: 22px; height: 22px; place-items: center; color: var(--green); background: var(--paper); border-radius: 50%; font-size: 12px; }.community-cards { z-index: 1; display: flex; gap: 11px; }.card { width: 64px; aspect-ratio: 2 / 3; display: flex; flex-direction: column; justify-content: space-between; padding: 8px; background: var(--paper); color: var(--ink); box-shadow: 4px 5px 0 rgba(0,0,0,.15); font: 16px Fraunces, Georgia, serif; }.card.red { color: #b94f47; }.card .suit { align-self: center; font-size: 26px; }.card.back { color: var(--paper); background: repeating-linear-gradient(45deg, var(--coral), var(--coral) 4px, #c25e51 4px, #c25e51 8px); }.card.back .back-mark { align-self: center; width: 28px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.45); font-size: 16px; }.table-center-note { z-index: 1; color: rgba(245,241,232,.64); font-size: 10px; text-align: center; }.table-felt.started .table-center-note { color: rgba(245,241,232,.45); }.table-felt.started .card { animation: deal .45s both; }.table-felt.started .card:nth-child(2) { animation-delay: .08s; }.table-felt.started .card:nth-child(3) { animation-delay: .16s; } @keyframes deal { from { opacity: 0; transform: translateY(10px) rotate(3deg); } to { opacity: 1; transform: translateY(0) rotate(0); } }
footer { display: flex; gap: 12px; color: var(--muted); font-size: 9px; letter-spacing: .12em; }
@media (max-width: 700px) { .shell { width: min(100% - 32px, 560px); padding-top: 25px; }.lobby-layout { grid-template-columns: 1fr; gap: 40px; padding: 52px 0 50px; }.intro-copy { margin-bottom: 22px; }.join-panel { padding: 25px; }.table-layout { grid-template-columns: 1fr; }.table-felt { min-height: 330px; }.card { width: 52px; }.community-cards { gap: 7px; }.room-screen { padding-top: 30px; }.masthead { padding-bottom: 24px; } h2 { font-size: 34px; } footer { margin-top: 20px; font-size: 8px; } }

.host-name { margin: -8px 0 12px; color: var(--coral); font-size: 10px; }
.hand-panel { margin-top: 25px; padding-top: 18px; border-top: 1px solid var(--line); }
.hand-heading { display: flex; align-items: baseline; justify-content: space-between; }
.hand-heading h2 { font-size: 19px; }
.hand-heading span, .hand-note { color: var(--muted); font-size: 9px; }
.hand-cards { display: flex; gap: 8px; margin-top: 13px; }
.hand-cards .card { width: 48px; padding: 6px; font-size: 13px; }
.hand-cards .card .suit { font-size: 20px; }
.hand-note { line-height: 1.5; }
.cheater-panel { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--line); }
.cheater-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.cheater-heading h2 { font-size: 14px; }
.disguise-button { border: 1px solid var(--line); cursor: pointer; color: var(--muted); background: transparent; font: 500 8px 'DM Mono', monospace; }
.cheater-hands { display: grid; gap: 8px; }
.cheater-hand { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); font-size: 9px; }
.cheater-hand > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cheater-hand > span b { color: var(--green-light); font-weight: 700; }
.cheater-hand > div { display: flex; gap: 3px; }
.cheater-hand .card { width: 25px; min-height: 37px; padding: 3px; font: 10px Fraunces, Georgia, serif; font-style: normal; }
.cheater-hand .card .suit { align-self: center; font-size: 12px; }
.player-view .room-bar,
.player-view .table-panel,
.player-view .panel-heading,
.player-view .player-list,
.player-view .host-name,
.player-view .dealer-start-panel {
  display: none !important;
}
.player-view .room-screen { padding-top: 24px; }
.player-view .table-layout {
  display: block;
  max-width: 360px;
  margin: 0 auto;
  padding-top: 18px;
}
.player-view .players-panel {
  width: 100%;
  max-width: 360px;
}
.player-view .hand-panel {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.player-view .hand-heading {
  margin-bottom: 10px;
}
.player-view .hand-heading h2 {
  font-size: 16px;
  letter-spacing: 0;
}
.player-view #win-chance::before { content: ' - '; }
.player-view #win-chance { color: var(--green-light); font: 500 13px 'DM Mono', monospace; }
.player-view .hand-heading span {
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.player-view .hand-cards {
  gap: 10px;
  margin-top: 0;
}
.player-view .hand-cards .card {
  width: 54px;
  min-height: 72px;
  padding: 8px 8px 6px;
  font-size: 16px;
  line-height: 1;
}
.player-view .hand-cards .card .suit {
  font-size: 22px;
}
.player-view .hand-note {
  margin-top: 10px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.5;
}
.player-view .hand-panel.folding .hand-cards .card {
  animation: player-fold-cards .42s ease-in forwards;
  transform-origin: center bottom;
}
@keyframes player-fold-cards {
  0% { opacity: 1; transform: translateY(0) rotate(0); }
  70% { opacity: .5; transform: translateY(8px) rotate(10deg) scale(.8); }
  100% { opacity: 0; transform: translateY(14px) rotate(18deg) scale(.45); }
}
.player-view .action-panel {
  margin-top: 20px;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}
.player-view .turn-note {
  margin: 0 0 12px;
  color: var(--coral);
  font-size: 12px;
  letter-spacing: .02em;
  text-transform: none;
}
.player-view .action-buttons {
  grid-template-columns: 1fr 1fr;
}
.player-view .action-button {
  min-height: 38px;
  padding: 10px 14px;
  font-size: 12px;
}
.player-view .raise-row {
  margin-top: 8px;
  grid-template-columns: 1fr auto;
}
.player-view .raise-row input {
  padding: 9px 10px;
  font-size: 12px;
}
.player-view .raise-button {
  min-width: 82px;
}
.room-code-display.host-waiting { font-size: clamp(48px, 8vw, 86px); line-height: .95; letter-spacing: .16em; }
.room-code-display.host-waiting + .quiet-button { padding-top: 20px; }
.optional-label { color: var(--muted); font-size: 9px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.dealer-start-panel { margin-top: 20px; }.dealer-start-panel label { display: block; margin-bottom: 8px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }.start-row { display: grid; grid-template-columns: 1fr auto; gap: 7px; }.start-row input { min-width: 0; padding: 10px; font-size: 10px; }.start-row .start-button { width: auto; margin-top: 0; padding: 10px 12px; }
.option-toggle { display: flex !important; align-items: center; gap: 8px; margin-bottom: 10px !important; color: var(--muted); font-size: 10px !important; letter-spacing: 0 !important; text-transform: none !important; }
.option-toggle input { width: 14px; height: 14px; margin: 0; accent-color: var(--green-light); }
.deal-delay-option { display: flex !important; align-items: center; gap: 7px; margin-bottom: 10px !important; color: var(--muted); font-size: 10px !important; letter-spacing: 0 !important; text-transform: none !important; }
.deal-delay-option input { width: 52px; padding: 6px; text-align: center; }
.player-list li.folded { opacity: .42; text-decoration: line-through; }
.player-name { flex: 1; min-width: 0; }
.player-stack { color: var(--green-light); font-size: 10px; }
.player-list small { display: block; max-width: 72px; overflow: hidden; color: var(--muted); font-size: 8px; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.action-panel { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--line); }
.next-deal-status { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid var(--line); color: var(--green-light); font-size: 11px; font-weight: 700; }
.turn-note { min-height: 15px; margin: 0 0 11px; color: var(--coral); font-size: 9px; line-height: 1.4; }
.action-buttons, .raise-row { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.bet-size-buttons { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; margin-top: 7px; }
.bet-size-button { min-width: 0; padding: 7px 3px; border: 1px solid var(--line); cursor: pointer; color: var(--muted); background: transparent; font: 500 8px 'DM Mono', monospace; }
.bet-size-button:hover, .bet-size-button:focus-visible { color: var(--ink); border-color: var(--green-light); background: rgba(143,224,172,.12); }
.raise-slider { display: block; width: 100%; height: 20px; margin: 7px 0 0; accent-color: var(--green-light); cursor: pointer; }
.raise-row { grid-template-columns: 1fr auto; margin-top: 7px; }
.action-button { min-height: 34px; padding: 8px 9px; border: 1px solid var(--line); cursor: pointer; color: var(--ink); background: var(--paper-deep); font: 500 9px 'DM Mono', monospace; }
.action-button:hover { border-color: var(--green-light); background: #d8e2d8; }
.fold-button { color: var(--coral); }
.raise-button { color: var(--paper); border-color: var(--green); background: var(--green); }
.raise-row input { min-width: 0; padding: 8px; font-size: 10px; }
.table-pot { margin-left: 16px; color: var(--paper); }.table-pot strong { color: #f1b18c; font-size: 12px; }
.blind-level { color: rgba(245,241,232,.72); font-size: 9px; }
.next-reveal-status { position: relative; z-index: 3; color: var(--green-light); font-size: 10px; font-weight: 700; }
.winner-announcement { position: fixed; z-index: 30; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4vh; padding: 8vh 6vw; color: #fff; background: transparent; pointer-events: none; text-align: center; text-shadow: 0 4px 18px #000; }
.winner-announcement strong { font: 900 clamp(4rem, 18vw, 15rem)/.82 Fraunces, Georgia, serif; letter-spacing: .02em; }
.winner-announcement b { max-width: 100%; overflow-wrap: anywhere; color: #fff; font: 900 clamp(2rem, 10vw, 8rem)/.95 Fraunces, Georgia, serif; }
.winner-announcement span, .winner-announcement small { display: none; }
.leave-room-button { padding: 11px 16px; border: 2px solid #fff; cursor: pointer; color: #000; background: #fff; font: 700 11px 'DM Mono', monospace; letter-spacing: .06em; pointer-events: auto; }
.winner-announcement.busted-out b { display: none; }
.winner-announcement.busted-out strong { font-size: clamp(5rem, 25vw, 20rem); }
.winner-announcement[data-revealed="true"] { animation: winner-reveal .35s .45s both; }
body.winner-flash::after { content: ''; position: fixed; z-index: 40; inset: 0; pointer-events: none; background: #fff; animation: winner-flash .45s ease-out both; }
@keyframes winner-flash { 0%, 35% { opacity: 1; } 100% { opacity: 0; } }
@keyframes winner-reveal { from { opacity: 0; transform: scale(1.04); } to { opacity: 1; transform: scale(1); } }

body .card:not(.back) { background: #f5f1e8; color: #17251f; }
body .card.red { color: #c73737; }
body .card.back { color: #f5f1e8; }
body.turn-flash::after { content: ''; position: fixed; z-index: 20; inset: 0; pointer-events: none; background: rgba(255,255,255,.94); animation: turn-flash .7s ease-out both; }
@keyframes turn-flash { 0% { opacity: 0; } 12% { opacity: 1; } 100% { opacity: 0; } }
.dealer-view .shell { padding-top: 24px; padding-bottom: 16px; }
.dealer-view .masthead { padding-bottom: 20px; }
.dealer-view .room-screen { padding-top: 24px; padding-bottom: 16px; }
.dealer-view .room-bar { padding-bottom: 16px; }
.dealer-view .table-layout { grid-template-columns: 190px 1fr; gap: 20px; padding-top: 20px; }
.dealer-view .table-felt { min-height: 470px; }
.table-seats { position: absolute; z-index: 2; inset: 0; pointer-events: none; }
.table-seat { position: absolute; top: 50%; left: 50%; width: 94px; display: flex; flex-direction: column; align-items: center; gap: 3px; color: var(--paper); font-size: 9px; text-align: center; transform: translate(-50%, -50%); }
.table-seat strong { max-width: 94px; overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.runout-name-chance { color: var(--green-light); font: 700 9px 'DM Mono', monospace; font-style: normal; }
.table-seat.current-turn strong { color: #fff; }
.table-seat.current-turn::before { content: 'TURN'; position: absolute; top: -17px; left: 50%; padding: 3px 5px; border: 1px solid var(--green-light); border-radius: 3px; color: #17251f; background: var(--green-light); font-size: 7px; font-weight: 700; letter-spacing: .08em; transform: translateX(-50%); }
.table-seat.current-turn .seat-status { color: var(--green-light); font-weight: 700; }
.dealer-button { position: absolute; top: -18px; right: -3px; width: 22px; height: 22px; display: grid; place-items: center; border: 2px solid #17251f; border-radius: 50%; color: #17251f; background: #f5f1e8; box-shadow: 0 2px 0 rgba(0,0,0,.35); font: 700 11px Georgia, serif; }
.seat-status { color: rgba(245,241,232,.62); font-size: 8px; }
.seat-cards { display: flex; gap: 3px; margin-top: 3px; transition: opacity .2s, transform .2s; }
.seat-cards .card { width: 26px; min-height: 39px; padding: 3px; box-shadow: 2px 2px 0 rgba(0,0,0,.2); font-size: 9px; }
.seat-cards .card .back-mark { width: 15px; height: 22px; font-size: 9px; }
.showdown-seat-cards .card { color: #17251f; background: #f5f1e8; }
.showdown-seat-cards .card.red { color: #c73737; }
.seat-evaluation { display: none; max-width: 120px; color: #fff; font-size: 9px; font-weight: 700; line-height: 1.3; }
.table-seat.showdown-revealed .seat-evaluation { display: block; }
.table-seat.runout-revealed .seat-evaluation { display: block; }
.table-seat.showdown-evaluating { z-index: 6; transform: translate(-50%, -50%) scale(1.35); }
.table-seat.showdown-evaluating .seat-cards { filter: drop-shadow(0 0 10px rgba(255,255,255,.6)); }
.table-seat.showdown-evaluating .seat-evaluation { color: #f1b18c; font-size: 11px; }
.winner-seat { z-index: 5; }
.winner-seat .seat-cards { filter: drop-shadow(0 0 10px rgba(143,224,172,.8)); }
.bet-display { display: flex; align-items: center; gap: 4px; margin-top: 2px; color: #f1b18c; font-size: 9px; }
.bet-chips { position: relative; display: inline-flex; align-items: end; width: 21px; height: 14px; }
.bet-chips i { position: absolute; bottom: 0; width: 12px; height: 12px; border: 2px dashed #f5f1e8; border-radius: 50%; background: var(--coral); box-shadow: 0 1px 0 rgba(0,0,0,.3); }
.bet-chips i:nth-child(1) { left: 0; z-index: 1; }
.bet-chips i:nth-child(2) { left: 4px; bottom: 2px; z-index: 2; background: #f1b18c; }
.bet-chips i:nth-child(3) { left: 8px; bottom: 4px; z-index: 3; background: var(--green-light); }
.table-seat.folded .seat-status { color: var(--coral); }
.table-seat.disconnected .seat-status { color: #f1b18c; }
.table-felt.started .card { animation: none; }
.table-felt.dealing .seat-cards { animation: deal-seat-cards 1.15s cubic-bezier(.2,.8,.2,1) var(--deal-delay) both; }
.table-seat.folding .seat-cards { animation: fold-away .45s ease-in forwards; transform-origin: center center; }
.table-seat { --fold-x: 0px; --fold-y: 0px; }
.table-seat.all-in strong { color: #f1b18c; }
.table-felt.showdown .table-pot { opacity: .25; }
.table-pot { position: relative; z-index: 4; font-weight: 700; }
.winner-seat strong { color: #fff; }
.pot-transfer { display: inline-flex; align-items: center; gap: 3px; color: #f1b18c; font-size: 10px; font-weight: 700; animation: pot-to-winner .8s ease-out both; }
@keyframes pot-to-winner { from { opacity: 0; transform: translateY(-28px) scale(.7); } to { opacity: 1; transform: translateY(0) scale(1); } }
.table-seat:nth-child(1) { top: 10%; left: 50%; }
.table-seat:nth-child(2) { top: 27%; left: 88%; }
.table-seat:nth-child(3) { top: 74%; left: 88%; }
.table-seat:nth-child(4) { top: 90%; left: 50%; }
.table-seat:nth-child(5) { top: 74%; left: 12%; }
.table-seat:nth-child(6) { top: 27%; left: 12%; }
.table-seat:nth-child(7) { top: 12%; left: 75%; }
.table-seat:nth-child(8) { top: 12%; left: 25%; }
@keyframes fold-cards { 0% { opacity: 1; transform: translateY(0) rotate(0); } 70% { opacity: .5; transform: translateY(8px) rotate(10deg) scale(.8); } 100% { opacity: 0; transform: translateY(14px) rotate(18deg) scale(.45); } }
@keyframes deal-seat-cards { 0% { opacity: 0; transform: translate(var(--deal-x, 0), var(--deal-y, -36px)) scale(.35) rotate(-18deg); } 65% { opacity: 1; transform: translate(0, 3px) scale(1.04) rotate(3deg); } 100% { opacity: 1; transform: translate(0, 0) scale(1) rotate(0); } }
@keyframes fold-away { 0% { opacity: 1; transform: translate(0, 0) rotate(0) scale(1); } 100% { opacity: 0; transform: translate(var(--fold-x), var(--fold-y)) rotate(22deg) scale(.65); } }
.table-seat:nth-child(1) { --fold-x: 0px; --fold-y: 28px; }
.table-seat:nth-child(2) { --fold-x: -28px; --fold-y: 18px; --deal-x: 90px; --deal-y: 0; }
.table-seat:nth-child(3) { --fold-x: -28px; --fold-y: -18px; --deal-x: 90px; --deal-y: 0; }
.table-seat:nth-child(4) { --fold-x: 0px; --fold-y: -28px; --deal-x: 0; --deal-y: 90px; }
.table-seat:nth-child(5) { --fold-x: 28px; --fold-y: -18px; --deal-x: -90px; --deal-y: 0; }
.table-seat:nth-child(6) { --fold-x: 28px; --fold-y: 18px; --deal-x: -90px; --deal-y: 0; }
.table-seat:nth-child(7) { --fold-x: -22px; --fold-y: 24px; --deal-x: 55px; --deal-y: 65px; }
.table-seat:nth-child(8) { --fold-x: 22px; --fold-y: 24px; --deal-x: -55px; --deal-y: 65px; }
.table-seat:nth-child(1) { --deal-x: 0; --deal-y: -90px; }
.room-code-display { color: var(--green-light); }
.player-seat { color: var(--ink); }
.table-felt::before { border-color: rgba(255,255,255,.3); }
.table-label { color: rgba(245,241,232,.92); }
.seat-status { color: rgba(245,241,232,.82); }
.action-button:hover { border-color: var(--green-light); background: #56615b; }
.table-label { position: relative; top: auto; z-index: 3; margin-bottom: 12px; }
.community-cards { z-index: 3; }
.room-screen { min-height: 0; }
.table-layout { min-height: 0; }
.dealer-view .room-screen { display: flex; flex-direction: column; min-height: 0; }
.dealer-view .table-layout { flex: 1; min-height: 0; }
.dealer-view .table-panel { min-height: 0; }
.dealer-view .table-felt { min-height: 0; height: 100%; }

@media (max-width: 700px) {
  .shell { width: min(100% - 24px, 520px); padding-top: 10px; padding-bottom: 10px; }
  .room-screen { padding: 10px 0 12px; }
  .room-bar { align-items: center; padding-bottom: 14px; }
  .room-code-display { font-size: 27px; }
  .table-layout { padding-top: 18px; }
  .dealer-view .table-layout { padding-top: 14px; }
  .dealer-view .table-felt { min-height: 0; height: 100%; }
  .dealer-view .table-panel { width: 100%; }
  .dealer-view .table-label { top: 14px; max-width: calc(100% - 24px); white-space: nowrap; }
.dealer-view .table-label { top: auto; }
  .dealer-view .community-cards { gap: clamp(4px, 2vw, 10px); max-width: calc(100% - 28px); }
  .dealer-view .community-cards .card { width: clamp(42px, 13vw, 64px); }
  .table-seat { width: clamp(70px, 22vw, 94px); }
  .table-seat strong { max-width: 100%; }
  .seat-cards .card { width: clamp(22px, 7vw, 30px); min-height: clamp(33px, 10vw, 45px); }
  .seat-cards .card .back-mark { width: clamp(12px, 4vw, 17px); height: clamp(18px, 6vw, 25px); }
  .table-seat:nth-child(1) { top: 11%; left: 50%; }
  .table-seat:nth-child(2) { top: 30%; left: 88%; }
  .table-seat:nth-child(3) { top: 70%; left: 88%; }
  .table-seat:nth-child(4) { top: 88%; left: 50%; }
  .table-seat:nth-child(5) { top: 70%; left: 12%; }
  .table-seat:nth-child(6) { top: 30%; left: 12%; }
  .table-seat:nth-child(7) { top: 14%; left: 76%; }
  .table-seat:nth-child(8) { top: 14%; left: 24%; }
  .player-view .table-layout { padding-top: 10px; }
  .player-view .hand-cards .card { width: clamp(50px, 18vw, 64px); min-height: clamp(68px, 24vw, 88px); }
  .player-view .action-buttons, .player-view .raise-row { gap: 9px; }
  .player-view .bet-size-buttons { gap: 6px; }
  .player-view .bet-size-button { min-height: 34px; font-size: 9px; }
  .player-view .action-button { min-height: 42px; }
}
