@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#071311;--panel:#0d201c;--line:#234139;--gold:#d6b46b;--muted:#8ca69c;--ink:#edf5ed;--green:#147453;--felt:#0e6047;--red:#d9555b}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% -15%,#1b4233 0,transparent 48%),var(--bg);color:var(--ink);font-family:Manrope,'Noto Sans KR',sans-serif;min-height:100vh}.shell{max-width:1040px;padding:0 22px;margin:auto}.top{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff12}.brand{color:var(--ink);display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;letter-spacing:.13em;font-size:13px}.brand small{display:block;font:9px 'DM Mono',monospace;color:var(--muted);letter-spacing:.16em;margin-top:4px}.mark{font-size:25px;color:var(--gold)}.connection{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}.connection i{width:7px;height:7px;background:#d4a555;border-radius:50%}.connection.online i{background:#5fd59c;box-shadow:0 0 10px #5fd59c}.connection.offline i{background:var(--red)}main{padding:30px 0 50px}.panel{background:linear-gradient(145deg,#10251f,#0a1916);border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 45px #0003}.entry{max-width:610px;margin:32px auto;padding:36px}.eyebrow{color:var(--gold);font:10px 'DM Mono',monospace;letter-spacing:.17em}.entry h1{font-size:clamp(34px,8vw,56px);line-height:1.18;letter-spacing:-.05em;margin:18px 0 10px}.entry h1 em{font-style:normal;color:var(--gold)}.sub{color:var(--muted);margin:0 0 30px}.field-label,.raise-head label{display:block;font-size:12px;color:#c4d5ca;margin-bottom:8px}input{font:inherit;color:var(--ink);background:#071411;border:1px solid #345447;border-radius:10px;padding:13px 14px;min-width:0;outline:none}input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d6b46b20}#nickname{width:100%}.entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:16px}button{font:600 14px Manrope,'Noto Sans KR',sans-serif;color:var(--ink);cursor:pointer;border:1px solid transparent;border-radius:10px;min-height:46px;padding:10px 15px;transition:.15s}button:hover{filter:brightness(1.12);transform:translateY(-1px)}button:disabled{opacity:.4;cursor:not-allowed;transform:none}.primary{background:linear-gradient(130deg,#21845d,#146748);border-color:#429c74;color:white}.secondary{background:#182e27;border-color:#355247}.fine{font-size:11px;color:#779087;margin:22px 0 0}.rooms-wrap{border-top:1px solid var(--line);margin-top:24px;padding-top:19px}.room-head{display:flex;justify-content:space-between;align-items:center;font-size:13px}.text-button{background:none;color:var(--gold);padding:5px 8px;min-height:36px}.rooms{display:grid;gap:8px;margin:12px 0}.room-row{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#091712;border:1px solid #1b382c;border-radius:10px;gap:12px}.room-row strong{font-size:13px}.room-row small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.room-row button{min-height:40px;padding:8px 13px}.empty{color:var(--muted);font-size:12px;padding:12px 2px}.create-row{display:grid;grid-template-columns:1fr auto;gap:8px}.compact{min-height:46px}.gamebar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.table-title{font-weight:700;font-size:19px;margin-top:4px}.bar-actions{display:flex;gap:8px}.icon-btn{background:#13271f;border-color:#284739;color:#c9d9cf;min-height:40px;font-size:12px}.icon-btn.danger{color:#f1a2a2}.table{padding:20px;overflow:hidden;position:relative}.table-top{display:flex;justify-content:space-between;font:10px 'DM Mono',monospace;letter-spacing:.11em;color:#94afa3}.turn-meta{color:var(--gold)}.opponents{display:flex;justify-content:center;gap:clamp(9px,3vw,28px);margin:18px auto 12px;flex-wrap:wrap;min-height:86px}.seat{background:#10251f;border:1px solid #2b4a3c;border-radius:12px;padding:8px 11px;min-width:94px;text-align:center;position:relative}.seat.active{border-color:var(--gold);box-shadow:0 0 14px #d6b46b25}.seat .seat-name{font-size:12px;font-weight:700;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat .seat-stack{font:10px 'DM Mono',monospace;color:#a8baae;margin-top:3px}.seat .seat-bet{position:absolute;bottom:-19px;left:0;right:0;font-size:10px;color:var(--gold)}.seat-status{font-size:9px;color:#ed9b9b;margin-top:2px}.mini-cards{display:flex;justify-content:center;margin-top:5px}.mini-cards .card{height:28px;width:20px;font-size:11px;margin-left:-3px}.felt{min-height:186px;border-radius:50% / 38%;border:1px solid #39906d;box-shadow:inset 0 0 0 7px #0e604733,inset 0 0 50px #061e17;background:radial-gradient(ellipse,#137252,#0a4c39 76%);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;position:relative}.pot{display:flex;align-items:baseline;gap:6px;color:#b4d7c2;font-size:11px}.pot strong{font:500 18px 'DM Mono',monospace;color:#f2d68c}.cards{display:flex;justify-content:center;gap:7px}.board{min-height:82px;align-items:center;margin-top:4px}.card{width:55px;height:76px;background:#f5f2e9;color:#16211b;border-radius:7px;box-shadow:0 5px 14px #00150f88;display:flex;flex-direction:column;justify-content:space-between;padding:6px;font:700 14px 'DM Mono',monospace}.card .suit{font-size:19px;align-self:center}.card.red{color:#c7434e}.card.back{background:repeating-linear-gradient(45deg,#153b2d,#153b2d 4px,#226045 4px,#226045 8px);border:2px solid #d1b66c;color:var(--gold);display:grid;place-items:center;font-size:23px}.result{font-size:13px;font-weight:700;color:#f0d58d;text-align:center;min-height:19px;margin-top:2px}.you{display:flex;align-items:center;justify-content:space-between;gap:15px;max-width:460px;margin:19px auto 4px}.you-info{display:flex;align-items:center;gap:10px;min-width:0}.avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;background:#d4b467;color:#12231a;font:700 10px 'DM Mono',monospace}.you-info strong,.you-info small{display:block}.you-info strong{font-size:13px}.you-info small{font:10px 'DM Mono',monospace;color:#a6b7ac;margin-top:3px}.hole .card{width:62px;height:86px;font-size:16px}.bet-tag{color:var(--gold);font-size:11px}.actions{display:flex;justify-content:center;gap:9px;margin:17px auto 0;flex-wrap:wrap}.actions button{min-width:100px;min-height:48px}.action-fold{background:#34201f;border-color:#68413b}.action-call{background:#1b4935;border-color:#347650}.action-check{background:#1a3832;border-color:#315b4c}.raise-box{max-width:460px;margin:14px auto 0;background:#091813;border:1px solid #29483b;border-radius:13px;padding:14px}.raise-head{display:flex;justify-content:space-between;align-items:center}.raise-head label{margin:0}.raise-head small{color:var(--muted)}.raise-head strong{font:500 16px 'DM Mono',monospace;color:var(--gold)}#raiseAmount{width:100%;padding:0;accent-color:#d6b46b;margin:14px 0 8px}.raise-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.raise-tools button{min-height:39px;font-size:11px;padding:5px;background:#172c23;border-color:#2b4738}.raise-submit{width:100%;margin-top:9px}.secondary-panel{margin-top:12px;padding:0 17px}.secondary-panel summary{min-height:48px;display:flex;align-items:center;cursor:pointer;color:#c3d4c8;font-size:13px;font-weight:600;list-style:none}.secondary-panel summary::-webkit-details-marker{display:none}.secondary-panel summary:after{content:'＋';margin-left:auto;color:var(--gold)}.secondary-panel[open] summary:after{content:'−'}.player-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px;padding:0 0 15px}.player-item{padding:9px;background:#091712;border-radius:8px;font-size:12px}.player-item small{display:block;color:var(--muted);margin-top:3px}.logs{padding:0 0 14px;max-height:180px;overflow:auto}.log{border-top:1px solid #ffffff0c;padding:7px 0;color:#a6b8ad;font-size:12px}.rules{font-size:12px;line-height:1.8;color:#a6b8ad;padding:0 0 15px;margin:0}footer{text-align:center;font:9px 'DM Mono',monospace;letter-spacing:.17em;color:#587167;padding:6px 0 28px}.mini-cards .card{padding:3px;margin:0;gap:0;overflow:hidden;box-shadow:none;flex-direction:row;align-items:center;justify-content:center;width:30px;height:32px;font-size:12px}.mini-cards{gap:3px}.mini-cards .card>span:last-child{display:none}.mini-cards .card .suit{font-size:12px}.mini-cards .card.back{font-size:15px}.icon-btn,.text-button,.room-row button,.raise-tools button{min-height:44px}.seat .seat-bet{position:static;margin-top:3px}.position-badge{display:inline-block;vertical-align:middle;padding:3px 7px;border:1px solid #9b8353;border-radius:6px;background:#302b1b;color:#f3d690;font:700 10px/1.2 monospace;white-space:nowrap;letter-spacing:.02em}.seat>.position-badge{margin-bottom:5px}.you-info strong .position-badge{display:table;margin-top:5px}.you-info{flex-wrap:wrap}.you-info strong{overflow-wrap:anywhere;max-width:140px}.position-help strong{color:#f3d690}.hidden{display:none!important}@media(max-width:580px){.shell{padding:0 12px}.top{height:68px}.entry{padding:25px 20px;margin:15px auto}.entry-actions{grid-template-columns:1fr}.gamebar{align-items:flex-start}.table{padding:14px 10px;border-radius:15px}.felt{min-height:161px}.card{width:43px;height:64px;padding:5px;font-size:12px}.card .suit{font-size:16px}.board{gap:5px;min-height:71px}.hole .card{width:54px;height:76px}.opponents{gap:7px;margin:15px auto 12px}.seat{min-width:82px;padding:7px 8px}.seat .seat-name{font-size:11px}.actions{gap:6px}.actions button{flex:1;min-width:calc(50% - 6px)}.you{padding:0 3px}.bar-actions{gap:5px}.icon-btn{padding:8px 10px;font-size:11px}.table-title{font-size:17px}.raise-box{padding:12px}.create-row{grid-template-columns:1fr auto}}@media(max-width:370px){.shell{padding:0 9px}.table{padding:12px 7px}.card{width:39px;height:59px}.hole .card{width:50px;height:70px}.seat{min-width:73px}.entry{padding:23px 17px}}

:root{color-scheme:light;--bg:#f2f5f7;--panel:#fff;--line:#dce3e8;--gold:#a8751a;--muted:#586776;--ink:#17232d;--green:#06734f;--felt:#08744f;--red:#c62936}body{background:var(--bg);color:var(--ink)}.shell{max-width:1080px}.top{border-color:var(--line)}.brand{color:var(--ink)}.brand small{color:var(--muted)}.mark{color:var(--green)}main{padding-top:26px}.panel{background:#fff;border-color:var(--line);box-shadow:0 5px 20px #1931490b}.entry{max-width:680px}.entry h1 em{color:#08734f}.sub,.fine,.empty{color:var(--muted)}input{color:var(--ink);background:#fff;border-color:#b9c6cf}input:focus{border-color:#08734f;box-shadow:0 0 0 3px #08734f20}button{color:var(--ink);background:#fff;border-color:#c4d0d7;min-height:44px;cursor:pointer}button:hover{background:#f3f7f5}.primary{background:#08734f;color:#fff;border-color:#08734f}.primary:hover{background:#075e42;color:#fff}.secondary{background:#fff}.table{padding:18px;background:#fff}.table-top{color:#506373}.turn-meta{color:#08734f;font-weight:800}.opponents{gap:8px;padding:15px 0 12px}.seat{min-width:110px;max-width:160px;flex:1 1 110px;text-align:center;background:#f5f7f8;border:1px solid #d8e0e5;border-radius:12px;padding:9px 7px;color:#23313b}.seat.active{border:2px solid #08734f;background:#eaf7f0}.seat-name{font-size:13px;font-weight:800}.seat-stack{font-size:12px;color:#405465}.position-badge{background:#e7edf1;color:#283d4b}.felt{min-height:192px;border-radius:18px;background:linear-gradient(140deg,#087b53,#075b40);border:5px solid #d6e6de;color:white}.pot{background:#064b36;color:#fff;border-color:#8fceb2}.card{background:#fff;color:#17232d;border-color:#cbd4db;width:57px;height:78px;font-size:17px}.card.red{color:#cf2936}.card.back{background:#164d3a;color:white}.you-info small{color:#4c5f6e}.raise-box{background:#f5f7f8;border-color:var(--line)}.secondary-panel{background:#fff}.player-item{background:#f5f7f8}.log{color:#435463;border-color:#edf0f2}.rules{color:#405160}.room-row{border-color:var(--line)}.room-row small{color:var(--muted)}.review-open{margin:0}.review-overlay{position:fixed;inset:0;z-index:20;background:#14232dcc;display:grid;place-items:center;padding:14px}.review-card{width:min(840px,100%);max-height:min(92vh,900px);overflow:auto;background:#fff;border-radius:16px;padding:20px;box-shadow:0 20px 80px #0005}.review-card>header,.analysis>header{display:flex;justify-content:space-between;align-items:center;gap:12px}.review-card h2{margin:4px 0 12px}.review-body{color:#263744}.review-list-head{display:flex;justify-content:space-between;align-items:center;margin:10px 0}.review-list{display:grid;gap:7px}.review-row{display:flex;align-items:center;justify-content:space-between;text-align:left;gap:12px;min-height:58px}.review-row small{display:block;color:var(--muted);font-weight:500;margin-top:4px}.review-empty,.review-error,.review-note{padding:12px;border-radius:9px;background:#f4f6f7;color:#4a5965}.review-error{color:#a32630;background:#fff0f0}.review-back{margin:0 0 10px}.review-title{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:10px}.replay-controls{display:flex;gap:7px;align-items:center;justify-content:center;margin:14px 0 4px}.replay-controls button{min-width:48px}.replay-controls span{font:12px 'DM Mono',monospace;color:var(--muted);min-width:55px;text-align:center}#revSlider{display:block;width:100%;accent-color:#08734f}.review-state{padding:12px 0}.review-stats{display:flex;gap:10px;flex-wrap:wrap;background:#edf5f0;padding:10px;border-radius:8px}.review-actor{margin:10px 0;padding:12px;background:#e8f5ee;border-left:4px solid #08734f}.review-players{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px}.review-player{border:1px solid var(--line);border-radius:8px;padding:9px;display:grid;gap:4px;font-size:12px}.review-player span,.review-player small{color:#526473}.review-player.folded{opacity:.6}.analysis{margin-top:12px;padding:13px;background:#f5f7f8;border:1px solid var(--line);border-radius:10px}.analysis h3{font-size:15px;margin:0}.analysis small{color:var(--muted)}.range-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin:9px 0}.range-list label{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:12px;align-items:center}.range-list select,.range-list input{max-width:100%;min-width:0;padding:8px}.custom-range{grid-column:1/-1}.checkline{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px}.checkline input{width:18px;height:18px;accent-color:#08734f}.analysis #analyze{width:100%;margin:6px 0}.result-card{border-top:1px solid var(--line);margin-top:10px;padding-top:10px;font-size:13px}.equity-value{font:800 35px 'DM Mono',monospace;color:#08734f}.equity-value small{font:700 12px 'Noto Sans KR',sans-serif;margin-left:6px}.result-card p{margin:7px 0}.disclaimer{color:#526473;font-size:11px}.event-list{margin-top:12px}.event-list summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:700}.event-row{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;min-height:44px;padding:7px 9px;font-size:12px;border-radius:5px}.event-row.selected{background:#e5f4ec;border-color:#72b48f}footer{color:#74828d}@media(max-width:600px){.shell{padding:0 12px}.top{height:62px}.entry{padding:23px 18px;margin:18px auto}.entry-actions{grid-template-columns:1fr}.gamebar{align-items:flex-start}.bar-actions{gap:5px}.icon-btn,.review-open{padding:8px;min-height:44px;font-size:12px}.table{padding:12px 8px}.opponents{gap:5px;padding:12px 0 9px}.seat{min-width:calc(33.333% - 5px);max-width:none;flex:1 1 calc(33.333% - 5px);padding:7px 3px}.seat-name{font-size:11px}.seat-stack{font-size:10px}.position-badge{font-size:9px;padding:3px}.felt{min-height:160px;border-width:4px;padding:11px 5px;gap:9px}.cards{gap:5px;min-height:68px}.card{width:45px;height:64px;font-size:15px;padding:4px}.card .suit{font-size:23px}.hole .card{width:53px;height:74px}.you{gap:10px}.actions{gap:6px}.actions button{flex:1;min-width:82px}.review-overlay{padding:7px}.review-card{padding:15px 12px;max-height:95dvh}.review-row{align-items:flex-start;font-size:12px}.review-row>span:last-child{max-width:35%;text-align:right}.review-player{min-width:0}.review-title{font-size:12px}.review-stats{gap:6px;font-size:12px}.range-list{grid-template-columns:1fr}.range-list label{grid-template-columns:1fr 1fr}.replay-controls{gap:4px}.replay-controls button{min-width:44px;padding:8px}.secondary-panel{padding:0 12px}.create-row input{width:50%}}