.table-area{margin:18px 0 22px}.table-tools{display:flex;gap:8px;flex-wrap:wrap}.table-tools button{flex:1;min-width:120px}.holdem-table{position:relative;width:100%;max-width:600px;height:500px;margin:18px auto 24px;isolation:isolate}.table-felt{position:absolute;inset:34px 26px;background:radial-gradient(ellipse,#234d40,#102d26 70%);border:12px solid #4d3a24;outline:2px solid #977449;border-radius:48%;box-shadow:inset 0 0 0 2px #b9935040,inset 0 0 28px #0008,0 8px 22px #0005;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:50px 44px;gap:8px}.table-felt strong{font-size:17px;color:#dec598;letter-spacing:.08em}.table-felt span,.table-felt small{font-size:12px;color:#d8e6da}.member-shell .card .table-seat{position:absolute;width:100px;min-height:76px;margin:0;padding:7px 4px;border:1px solid #96805b;border-radius:14px;background:#211e18;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;color:#eee2cc;box-shadow:0 3px 9px #0007;font-size:13px;transform:translateY(-50%)}.table-seat strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.table-seat small{font-size:11px;color:#c8bca5}.table-seat .seat-number{display:block;border-radius:50%;background:#d3b57e;color:#20180b;width:23px;height:23px;line-height:23px;font-weight:800}.member-shell .card .table-seat.occupied{border-color:#c5d9c6;background:#234736}.member-shell .card .table-seat.vacant{border-style:dashed}.member-shell .card .seat-1{left:25%;top:8%;transform:translate(-50%,-50%)}.member-shell .card .seat-2{left:75%;top:8%;transform:translate(-50%,-50%)}.seat-3{right:0;top:28%}.seat-4{right:0;top:50%}.seat-5{right:0;top:72%}.member-shell .card .seat-6{left:75%;top:92%;transform:translate(-50%,-50%)}.member-shell .card .seat-7{left:25%;top:92%;transform:translate(-50%,-50%)}.seat-8{left:0;top:72%}.seat-9{left:0;top:50%}.seat-10{left:0;top:28%}.unassigned-seats,.seat-scan-banner{padding:16px;border:1px solid #967746;background:#292218;border-radius:14px;margin:14px 0}.unassigned-seats p,.seat-scan-banner p,.table-sync{font-size:13px;line-height:1.6}.table-sync{color:#c8bca5}.poker-inputs{display:grid;gap:9px}.poker-player-input{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;background:#27241e;border-radius:12px}.poker-player-input:has(>label:only-child){grid-template-columns:1fr}.poker-player-input label{font-size:13px}.poker-player-input input,.poker-player-input select{width:100%;min-width:0;font-size:16px}.pot-result{padding:12px;background:#27382e;border:1px solid #557660;border-radius:12px;margin:10px 0}#pokerToolResult{max-width:100%;overflow-x:auto;scroll-margin:20px}#pokerToolResult table{width:100%;font-size:13px}#pokerToolResult td,#pokerToolResult th{padding:8px;white-space:nowrap}#portalDialog:has(.poker-inputs){width:calc(100% - 24px);max-width:640px}.poker-inputs~button{margin-top:12px}@media(max-width:500px){.holdem-table{height:510px}.member-shell .card .table-seat{width:82px;font-size:12px}.table-seat strong{font-size:12px}.table-felt{inset:28px 17px;border-width:9px;padding:30px 50px}.table-felt strong{font-size:13px}.table-felt span,.table-felt small{font-size:11px}.member-shell .card .seat-1,.member-shell .card .seat-7{left:29%}.member-shell .card .seat-2,.member-shell .card .seat-6{left:71%}.table-tools{gap:4px}.table-tools button{font-size:13px;min-width:0;padding:10px 6px}.poker-player-input{gap:6px;padding:8px}.poker-player-input label{font-size:12px}}

.game-table-picker{border:0;padding:0;margin:0;min-width:0}.game-table-picker legend{margin-bottom:10px;font-weight:700}.game-table-colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.game-table-color{position:relative;cursor:pointer;margin:0!important}.game-table-color input{position:absolute;opacity:0;width:1px;height:1px}.game-table-color span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:50px;padding:8px;border:1px solid #667085;border-radius:12px;background:#151d2a;color:#fff;font-size:15px}.game-table-color b{visibility:hidden}.game-table-color input:checked+span{border-color:#e7c56c;background:#393322;box-shadow:inset 0 0 0 1px #e7c56c}.game-table-color input:checked+span b{visibility:visible}.game-table-color input:focus-visible+span{outline:3px solid #fff;outline-offset:3px}@media(max-width:380px){.game-table-colors{grid-template-columns:repeat(2,minmax(0,1fr))}}

.holdem-table{--felt-center:#234d40;--felt-edge:#102d26}.holdem-table.felt-red{--felt-center:#922f38;--felt-edge:#4a1720}.holdem-table.felt-blue{--felt-center:#245b96;--felt-edge:#132b52}.holdem-table.felt-green{--felt-center:#286346;--felt-edge:#113923}.holdem-table.felt-sky{--felt-center:#327f95;--felt-edge:#194559}.holdem-table.felt-purple{--felt-center:#704191;--felt-edge:#351d4b}.holdem-table.felt-black{--felt-center:#373940;--felt-edge:#111216}.holdem-table .table-felt{background:radial-gradient(ellipse,var(--felt-center),var(--felt-edge) 75%)}.member-shell .card .holdem-table .table-seat.occupied{background:var(--felt-edge);border-color:#e5d2a5}.table-felt span,.table-felt small{color:#f6f3ea}#joinRequestNotice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:14px}#joinRequestNotice[hidden]{display:none}

.game-control-bar{padding:16px;border:1px solid #a88745;border-radius:14px;background:#282319;margin:14px 0}.game-control-bar>div{display:flex;gap:10px;flex-wrap:wrap}.game-control-bar button{flex:1;min-width:130px;min-height:50px}.game-control-bar p{margin:12px 0 5px}.game-control-bar button:disabled{opacity:.55;cursor:not-allowed}

.member-shell .card .table-seat.requested{background:#654913;border-color:#e8c46a}.customer-join-table .table-seat:disabled{opacity:1;color:#ece7db}.customer-join-table .table-seat.vacant:disabled{opacity:.5}.customer-join-table .table-seat:focus-visible{outline:3px solid white;outline-offset:3px}

/* 사이드팟: 딜러 버튼 먼저 */
.sidepot-button-step{padding:10px 12px;margin:0 0 10px;border:1px solid #dfc18a55;border-radius:10px;background:#dfc18a10}
.sidepot-button-step p{margin:6px 0 0;font-size:12px}
.poker-inputs-lock{border:0;margin:0;padding:0;min-width:0}
.poker-inputs-lock:disabled{opacity:.4}
.pos-tag{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;color:#dfc18a;letter-spacing:.04em}
.pos-tag:empty{display:none}

/* 자리 이동 (누르고 빈 좌석 선택 / 끌어다 놓기) */
.seat-move-banner{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:6px 0 8px;padding:10px 12px;border-radius:10px;border:1px solid #6fcf9780;background:#6fcf9714}
.seat-move-banner span{flex:1 1 auto;font-size:13px}
.seat-move-banner small{font-size:12px;opacity:.75}
.seat-move-banner button{margin:0;width:auto;font-size:12px;padding:6px 12px}
.seat-moving .table-seat.vacant,.table-seat.drop-ok{outline:2px dashed #6fcf97;outline-offset:1px}
.table-seat.drop-target{outline:3px solid #6fcf97;background:#6fcf9740!important}
.table-seat.move-source,.table-seat.drag-source{outline:2px solid #dfc18a;opacity:.55}
.table-seat.occupied{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
body.seat-dragging,body.seat-dragging *{cursor:grabbing!important;user-select:none}
.seat-drag-ghost{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;padding:8px 14px;border-radius:999px;background:#dfc18a;color:#1a1408;font-weight:700;font-size:13px;box-shadow:0 6px 18px #0008;white-space:nowrap}
.seat-move-route{font-size:15px}

/* 실제 홀덤 테이블 배치: 딜러는 아래쪽 긴 변 가운데, 딜러 왼쪽이 1번이고
 * 시계 방향으로 돌아 딜러 오른쪽이 10번. 1·2 왼쪽 아래, 3 왼쪽 끝, 4~7 위쪽 긴 변,
 * 8 오른쪽 끝, 9·10 오른쪽 아래. */
.member-shell .card .holdem-table .table-seat{right:auto;transform:translate(-50%,-50%)}
.member-shell .card .holdem-table .seat-1{left:33%;top:90%}
.member-shell .card .holdem-table .seat-2{left:13%;top:77%}
.member-shell .card .holdem-table .seat-3{left:6%;top:48%}
.member-shell .card .holdem-table .seat-4{left:17%;top:17%}
.member-shell .card .holdem-table .seat-5{left:39%;top:8%}
.member-shell .card .holdem-table .seat-6{left:61%;top:8%}
.member-shell .card .holdem-table .seat-7{left:83%;top:17%}
.member-shell .card .holdem-table .seat-8{left:94%;top:48%}
.member-shell .card .holdem-table .seat-9{left:87%;top:77%}
.member-shell .card .holdem-table .seat-10{left:67%;top:90%}
.holdem-table .dealer-spot{position:absolute;z-index:2;left:50%;top:93%;transform:translate(-50%,-50%);padding:4px 12px;border-radius:999px;background:#f4efe4;color:#1a1408;font-size:11px;font-weight:800;letter-spacing:.12em;box-shadow:0 2px 6px #0008}
.holdem-table{height:460px}
@media(max-width:500px){
 .holdem-table{height:440px}
 .member-shell .card .holdem-table .table-seat{width:66px;min-height:60px;padding:4px 2px;font-size:11px}
 .member-shell .card .holdem-table .table-seat strong{font-size:11px}
 .member-shell .card .holdem-table .table-seat small{font-size:10px}
 .member-shell .card .holdem-table .seat-3{left:9%}
 .member-shell .card .holdem-table .seat-8{left:91%}
 .member-shell .card .holdem-table .seat-1{left:28%}
 .member-shell .card .holdem-table .seat-10{left:72%}
 .holdem-table .dealer-spot{font-size:10px;padding:3px 9px}
}
/* 테이블 모양: 실제 게임 테이블처럼 양끝이 둥근 긴 타원(스타디움)에 어두운 레일, 안쪽 빛나는 테두리와
   베팅 라인. 색은 고른 테이블 색(--felt-center/--felt-edge)을 따른다. */
.holdem-table .table-felt{
 border-radius:9999px;border:14px solid transparent;outline:0;
 background:
  radial-gradient(ellipse 70% 60% at 50% 45%,color-mix(in srgb,var(--felt-center) 84%,#fff 16%) 0%,var(--felt-center) 45%,var(--felt-edge) 100%) padding-box,
  linear-gradient(180deg,#5b6170 0%,#2a2e37 38%,#171a20 100%) border-box;
 box-shadow:0 0 0 2px #07080b,0 0 0 4px #3c414d,0 14px 30px #000b,
  inset 0 0 0 2px color-mix(in srgb,var(--felt-center) 45%,#fff 55%),
  inset 0 0 18px 3px color-mix(in srgb,var(--felt-center) 55%,#fff 45%),
  inset 0 0 60px #0007;
}
.holdem-table .table-felt::before{content:"";position:absolute;inset:16% 13%;border-radius:9999px;border:2px solid color-mix(in srgb,var(--felt-center) 40%,#fff 60%);opacity:.35;pointer-events:none;z-index:0}
.holdem-table .table-felt>*{position:relative;z-index:1}
@media(max-width:500px){.holdem-table .table-felt{border-width:10px}}
body.dealer-mode .dealer-target .table-felt{border-width:clamp(10px,2.2vmin,18px)}
