*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1100px 700px at 38% 28%,#16202d 0%,transparent 60%),radial-gradient(900px 600px at 70% 80%,#131a26 0%,transparent 55%),#0a0d12;color:#e8e6df;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;-webkit-font-smoothing:antialiased;overflow:hidden}.app{display:flex;height:100%}.stage{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:40px 24px}.table-area{position:relative;width:min(100%,1180px);aspect-ratio:1.78;max-height:92vh}.felt{position:absolute;top:9%;right:8%;bottom:9%;left:8%;border-radius:50%;background:radial-gradient(ellipse 70% 65% at 50% 42%,#36915c,#277249 38%,#1c5837 65%,#134127);border:13px solid #422e1d;box-shadow:0 0 0 4px #2a1c10,0 0 0 5px #ffffff0f,inset 0 0 90px #0000008c,inset 0 4px 18px #ffffff14,0 30px 70px #000000a6}.felt__inner-ring{position:absolute;top:6.5%;right:6.5%;bottom:6.5%;left:6.5%;border-radius:50%;border:2px solid rgba(255,255,255,.09);pointer-events:none}.felt__logo{position:absolute;left:50%;top:67%;transform:translate(-50%,-50%);font-size:clamp(14px,2vw,24px);font-weight:800;letter-spacing:.45em;color:#ffffff12;-webkit-user-select:none;user-select:none;pointer-events:none}.felt__waiting{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#ffffff8c;font-size:18px;letter-spacing:.06em}.board{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:14px}.pot{display:flex;align-items:center;gap:8px;padding:6px 16px;border-radius:999px;background:#0006;border:1px solid rgba(255,255,255,.12);color:#ffe9a8;font-weight:700;font-size:clamp(14px,1.5vw,19px);letter-spacing:.03em;white-space:nowrap;box-shadow:0 4px 14px #00000059}.pot__chip{width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd766,#c79a1d 70%);border:2px dashed rgba(0,0,0,.35);flex:none}.board__cards{display:flex;gap:8px;min-height:86px}.card{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,#fff,#f1efe8);border-radius:8px;box-shadow:0 2px 6px #00000073,inset 0 0 0 1px #00000014;-webkit-user-select:none;user-select:none;line-height:1}.card--board{width:clamp(46px,4.8vw,60px);height:clamp(66px,6.9vw,86px)}.card--hole{width:clamp(36px,3.6vw,46px);height:clamp(52px,5.2vw,66px);border-radius:6px}.card__rank{font-weight:800;font-size:clamp(18px,1.9vw,26px);letter-spacing:-.04em}.card--hole .card__rank{font-size:clamp(15px,1.5vw,20px)}.card__suit{font-size:clamp(16px,1.7vw,24px);margin-top:2px}.card--hole .card__suit{font-size:clamp(13px,1.4vw,18px)}.card--black{color:#1c2026}.card--red{color:#c92a2a}.card--dim{filter:grayscale(.8) brightness(.55)}.card--back{background:linear-gradient(160deg,#2b4d8f,#1d3563);padding:4px}.card__back-pattern{width:100%;height:100%;border-radius:4px;border:1px solid rgba(255,255,255,.35);background:repeating-linear-gradient(45deg,rgba(255,255,255,.16) 0 2px,transparent 2px 6px)}.seat{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;z-index:3;transition:opacity .3s ease}.seat--folded{opacity:.55}.seat__cards{display:flex;gap:4px}.seat__cards .card+.card{margin-left:-14px;transform:rotate(6deg)}.seat__plate{min-width:128px;text-align:center;padding:6px 14px 7px;border-radius:12px;background:linear-gradient(180deg,#1c212af5,#101319f5);border:1px solid rgba(255,255,255,.12);box-shadow:0 6px 16px #00000080;transition:box-shadow .25s ease,border-color .25s ease}.seat__name{display:flex;align-items:center;justify-content:center;gap:6px;font-weight:700;font-size:clamp(13px,1.3vw,16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.seat__chips{font-size:clamp(12px,1.15vw,14px);color:#ffd56b;font-variant-numeric:tabular-nums;font-weight:600}.seat__offline{width:8px;height:8px;border-radius:50%;background:#e03131;box-shadow:0 0 6px #e03131;flex:none}.seat--active .seat__plate{border-color:#6edcffe6;box-shadow:0 0 0 2px #6edcff8c,0 0 22px #5ac8ff8c,0 6px 16px #00000080;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 2px #6edcff8c,0 0 16px #5ac8ff73,0 6px 16px #00000080}50%{box-shadow:0 0 0 3px #6edcffd9,0 0 30px #5ac8ffbf,0 6px 16px #00000080}}.seat--winner .seat__plate{border-color:#ffd25af2;box-shadow:0 0 0 2px #ffd25a99,0 0 28px #ffbe3ca6,0 6px 16px #00000080}.seat__badge{position:absolute;top:-10px;right:-14px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.08em;z-index:4}.seat__badge--allin{background:linear-gradient(180deg,#e8590c,#c92a2a);color:#fff;box-shadow:0 2px 8px #c92a2a99}.seat__payout{position:absolute;top:-8px;left:50%;margin-left:-40px;width:80px;text-align:center;font-weight:800;font-size:clamp(16px,1.7vw,22px);color:#ffd54d;text-shadow:0 0 12px rgba(255,190,60,.8),0 2px 4px rgba(0,0,0,.7);pointer-events:none;z-index:5}.seat__handname{position:absolute;bottom:-24px;white-space:nowrap;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#0000008c;border:1px solid rgba(255,255,255,.15);color:#d8d4ca;z-index:4}.seat__handname--winner{color:#ffe08a;border-color:#ffd25a80}.bet{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;padding:3px 10px 3px 5px;border-radius:999px;background:#00000073;border:1px solid rgba(255,255,255,.14);color:#f3eedd;font-weight:700;font-size:clamp(12px,1.2vw,15px);font-variant-numeric:tabular-nums;white-space:nowrap;z-index:2}.bet__chip{width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff8787,#c92a2a 70%);border:2px dashed rgba(255,255,255,.55);flex:none}.dealer-button{position:absolute;transform:translate(-50%,-50%);width:26px;height:26px;border-radius:50%;background:linear-gradient(180deg,#fff,#d9d4c7);color:#222;font-weight:900;font-size:14px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 8px #0000008c,inset 0 -2px 3px #0003;z-index:2}.bubble{position:absolute;max-width:250px;padding:9px 13px;border-radius:14px;background:linear-gradient(180deg,#f8f6f0f7,#e4e0d4f7);color:#23272e;box-shadow:0 10px 28px #0000008c;z-index:10}.bubble__name{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#7a6a35;margin-bottom:3px}.bubble__text{font-size:13px;line-height:1.35;font-style:italic}.bubble__dot{position:absolute;border-radius:50%;background:#f0ede4f2;box-shadow:0 3px 8px #0006}.bubble__dot--1{width:10px;height:10px}.bubble__dot--2{width:6px;height:6px}.bubble--left.bubble--above .bubble__dot--1{right:-7px;bottom:-4px}.bubble--left.bubble--above .bubble__dot--2{right:-16px;bottom:-12px}.bubble--right.bubble--above .bubble__dot--1{left:-7px;bottom:-4px}.bubble--right.bubble--above .bubble__dot--2{left:-16px;bottom:-12px}.bubble--left.bubble--below .bubble__dot--1{right:-7px;top:-4px}.bubble--left.bubble--below .bubble__dot--2{right:-16px;top:-12px}.bubble--right.bubble--below .bubble__dot--1{left:-7px;top:-4px}.bubble--right.bubble--below .bubble__dot--2{left:-16px;top:-12px}.panel{width:340px;flex:none;display:flex;flex-direction:column;background:linear-gradient(180deg,#11151ceb,#0b0e13f2);border-left:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.panel__header{display:flex;align-items:baseline;justify-content:space-between;padding:16px 18px 6px}.panel__title{margin:0;font-size:17px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(180deg,#ffe9a8,#d4a437);-webkit-background-clip:text;background-clip:text;color:transparent}.panel__blinds{padding:0 18px 10px;font-size:12px;color:#e8e6df80;border-bottom:1px solid rgba(255,255,255,.07)}.conn{display:flex;align-items:center;gap:6px;font-size:12px;color:#e8e6dfa6}.conn__dot{width:8px;height:8px;border-radius:50%;background:#868e96}.conn--connected .conn__dot{background:#51cf66;box-shadow:0 0 8px #51cf66cc}.conn--connecting .conn__dot,.conn--reconnecting .conn__dot{background:#fab005;box-shadow:0 0 8px #fab005cc;animation:blink 1s ease-in-out infinite}@keyframes blink{50%{opacity:.35}}.panel__log{flex:1;overflow-y:auto;padding:12px 18px 18px;display:flex;flex-direction:column;gap:5px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.log__line{font-size:13px;line-height:1.45;color:#e8e6dfd9}.log__line--hand{margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);font-weight:700;color:#ffd56b;letter-spacing:.02em}.log__line--street{font-weight:700;color:#8fd3a7;margin-top:3px}.log__line--result{font-weight:700;color:#ffe08a}.log__line--reasoning{color:#aabedcbf;font-style:italic;font-size:12.5px}.log__line--error{color:#ff8787}.log__line--info{color:#e8e6df80;font-style:italic}.log__cards{margin-left:7px;display:inline-flex;gap:4px;vertical-align:baseline}.log__card{display:inline-block;padding:0 5px;border-radius:4px;background:#f1efe8;color:#1c2026;font-weight:700;font-size:12px;line-height:1.5}.log__card--red{color:#c92a2a}.tabs{position:absolute;top:16px;left:16px;z-index:20;display:flex;gap:6px}.tabs__btn{background:#141a24d9;border:1px solid rgba(255,255,255,.08);color:#b9b6ac;padding:7px 14px;border-radius:8px;font-size:13px;cursor:pointer}.tabs__btn:hover{color:#e8e6df}.tabs__btn--active{background:#2e3a4cf2;color:#ffd76a;border-color:#ffd76a59}.view{width:100%;max-width:760px;max-height:100%;overflow-y:auto;padding:56px 8px 24px}.view__head{display:flex;align-items:center;gap:12px;margin-bottom:10px}.view__blinds{color:#b9b6ac;font-size:13px}.view__note{color:#8a8678;font-size:13px}.view__section{margin:22px 0 8px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#8a8678}.badge{background:#2e3a4ce6;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:3px 10px;font-size:12px;letter-spacing:.08em;color:#cfccc2}.badge--gold{color:#ffd76a;border-color:#ffd76a66}.banner{background:linear-gradient(90deg,rgba(255,215,106,.18),transparent);border-left:3px solid #ffd76a;color:#ffd76a;padding:8px 12px;margin:8px 0 4px;border-radius:4px;font-weight:600}.stats{width:100%;border-collapse:collapse;font-size:14px}.stats th{text-align:left;color:#8a8678;font-weight:500;font-size:12px;padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.08)}.stats td{padding:7px 10px;border-bottom:1px solid rgba(255,255,255,.04)}.stats__row--out{opacity:.45}.stats__out{color:#d96a5f;font-size:12px;margin-left:6px}.num--pos{color:#7fd98a}.num--neg{color:#d96a5f}.hand{border:1px solid rgba(255,255,255,.06);border-radius:8px;margin-bottom:6px;padding:8px 12px;cursor:pointer;background:#10151d99}.hand:hover,.hand--open{border-color:#ffd76a40}.hand__row{display:flex;align-items:center;gap:12px}.hand__id{color:#8a8678;font-size:12px;min-width:44px}.hand__time{color:#6f6c62;font-size:12px;min-width:64px}.hand__winners{margin-left:auto;font-size:13px;color:#7fd98a}.hand__detail{margin-top:10px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06)}.hand__player{display:flex;align-items:center;gap:12px;padding:4px 0;font-size:13px}.hand__player--folded{opacity:.5}.hand__pname{min-width:90px}.hand__pextra{color:#8a8678;font-size:12px}.seatinvite{position:absolute;left:16px;bottom:16px;z-index:20}.seatinvite__btn{background:#2e3a4cf2;border:1px solid rgba(255,215,106,.35);color:#ffd76a;padding:8px 14px;border-radius:8px;font-size:13px;cursor:pointer}.seatinvite__btn:hover{background:#38465cf2}.seatinvite__btn:disabled{opacity:.6;cursor:default}.seatinvite__box{background:#10151df7;border:1px solid rgba(255,215,106,.3);border-radius:10px;padding:12px 14px;max-width:560px;box-shadow:0 8px 30px #00000080}.seatinvite__title{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:13px;color:#ffd76a;margin-bottom:8px}.seatinvite__close{background:none;border:none;color:#8a8678;cursor:pointer;font-size:14px}.seatinvite__cmd{display:block;background:#0a0d12;border:1px solid rgba(255,255,255,.08);border-radius:6px;padding:8px 10px;font-size:12px;color:#cfe8d2;word-break:break-all;margin-bottom:8px}.seatinvite__row{display:flex;align-items:center;gap:12px}.seatinvite__hint{color:#8a8678;font-size:12px}
