:root{--brown-900: #1f1610;--brown-800: #2e2117;--brown-700: #3d2b16;--brown-600: #5a3f22;--brown-500: #6b4f2a;--felt-1: #7a5a30;--felt-2: #5d4222;--tan-300: #d8c3a5;--tan-200: #e7d8bf;--cream: #f3e9d8;--accent: #c08a3e;--good: #6a8f4f;--bad: #a4503b;--shadow: rgba(0, 0, 0, .45)}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--brown-800);color:var(--cream);-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.app-table{height:100dvh;min-height:0;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--brown-900);border-bottom:1px solid var(--brown-700)}.brand{font-weight:700;letter-spacing:2px;color:var(--tan-300);text-transform:lowercase;font-size:20px}.status{font-size:12px;text-transform:uppercase;letter-spacing:1px;padding:2px 8px;border-radius:10px;background:var(--brown-700);color:var(--tan-200)}.status-open{background:var(--good);color:#fff}.status-closed,.status-connecting{background:var(--accent);color:#fff}.banner{position:fixed;z-index:200;top:54px;left:16px;right:16px;width:auto;max-width:620px;margin:0 auto;padding:10px 16px;border-radius:9px;box-shadow:0 8px 24px var(--shadow);cursor:pointer}.banner.error{background:var(--bad);color:#fff}.dismiss{float:right;opacity:.8}.lobby{flex:1;display:grid;place-items:center;padding:40px 24px;background:radial-gradient(circle at 18% 22%,rgba(192,138,62,.12),transparent 34%),var(--brown-800)}.lobby-shell{width:min(100%,980px);display:grid;grid-template-columns:minmax(280px,.8fr) minmax(440px,1.2fr);align-items:center;gap:clamp(36px,7vw,86px)}.lobby-hero{padding:16px 0}.lobby-eyebrow{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase}.lobby-hero h1{margin:12px 0 16px;color:var(--cream);font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,5vw,58px);font-weight:500;line-height:1.02;letter-spacing:-1.5px}.lobby-hero p{max-width:390px;margin:0;color:var(--tan-300);font-size:15px;line-height:1.6}.lobby-card{width:100%;background:var(--brown-700);border:1px solid var(--brown-600);border-radius:18px;padding:22px;box-shadow:0 18px 44px var(--shadow)}.lobby label{display:block;font-size:11px;font-weight:600;letter-spacing:.4px;color:var(--tan-300)}input{width:100%;margin-top:4px;padding:10px;border-radius:8px;border:1px solid var(--brown-600);background:var(--brown-800);color:var(--cream);font-size:15px}input:focus{outline:2px solid var(--accent)}.setup-heading{display:flex;align-items:center;margin-bottom:10px;color:var(--cream);font-size:14px;font-weight:700}.randomize-name{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:9px 10px;background:var(--brown-600);color:var(--tan-300);font-size:11px;white-space:nowrap}.name-input-row{display:flex;align-items:stretch;gap:6px;margin-top:4px}.name-input-row input{min-width:0;margin-top:0}.setup-fields{display:grid;grid-template-columns:1fr;gap:10px}.lobby-tabs{display:flex;gap:4px;margin:20px 0 14px;padding:4px;border-radius:10px;background:var(--brown-800)}.lobby-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px;background:transparent;color:var(--tan-300);font-size:13px}.lobby-tabs button.active{background:var(--brown-600);color:var(--cream);box-shadow:0 2px 5px var(--shadow)}.lobby-panel{min-height:214px}.lobby-feature{width:100%;display:flex;align-items:center;gap:12px;padding:14px;text-align:left}.feature-icon{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#ffffff1f}.lobby-feature>span:nth-child(2),.preflop-choice>span:nth-child(2){display:flex;flex:1;flex-direction:column}.lobby-feature strong,.training-choice strong{font-size:14px}.lobby-feature small,.training-choice small{margin-top:2px;opacity:.75;font-size:11px}.feature-arrow{flex:0 0 auto!important;font-size:20px}.lobby-divider{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:var(--tan-300);font-size:10px;letter-spacing:1px;text-transform:uppercase}.lobby-divider:before,.lobby-divider:after{content:"";flex:1;height:1px;background:var(--brown-600)}.private-actions{display:grid;grid-template-columns:1fr 1.35fr;gap:9px}.private-actions button,.join-room button{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;font-size:12px}.join-room{display:grid;grid-template-columns:1fr auto;gap:6px}.join-room input{min-width:0;margin:0;padding:9px 5px}.training-panel{display:flex;flex-direction:column;gap:10px}.training-choice{min-height:88px;display:flex;align-items:center;gap:11px;padding:13px;border:1px solid var(--brown-600);border-radius:11px;background:var(--brown-800);color:var(--cream)}.training-choice>div:nth-child(2){flex:1;display:flex;flex-direction:column}.training-choice>button{flex:0 0 auto;padding:9px 12px}.bot-count{width:54px;flex:0 0 auto;text-align:center}.bot-count input{margin-top:3px;padding:7px 4px;text-align:center}.preflop-choice{width:100%;text-align:left}.preflop-choice:hover{border-color:var(--accent);background:var(--brown-700)}.room-settings-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:18px;background:#140d08b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.room-settings{width:min(100%,430px);padding:22px;border:1px solid var(--brown-600);border-radius:16px;background:var(--brown-700);box-shadow:0 20px 55px #000000a6;animation:settingsIn .16s ease-out}.room-settings header,.room-settings footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.room-settings h2{margin:4px 0 0;color:var(--cream);font-size:21px}.room-settings-close{flex:0 0 auto;padding:5px 9px;background:transparent;color:var(--tan-300);font-size:22px}.settings-list{margin:22px 0;padding:4px 0;border-top:1px solid var(--brown-600);border-bottom:1px solid var(--brown-600)}.settings-list label{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 2px}.settings-list label>span{display:flex;flex-direction:column;gap:3px}.settings-list strong{color:var(--cream);font-size:14px}.settings-list small{color:var(--tan-300);font-size:11px}.settings-list input{width:120px;margin:0;text-align:right}.room-settings footer{justify-content:flex-end}.room-settings footer button{flex:0 0 auto}@keyframes settingsIn{0%{opacity:0;transform:translateY(8px) scale(.98)}}.bot-tag{margin-right:3px}.code-input{text-transform:uppercase;letter-spacing:4px;text-align:center;font-weight:700}button{cursor:pointer;border:none;border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;background:var(--tan-300);color:var(--brown-900);transition:filter .15s ease;flex:1}button:hover:not(:disabled){filter:brightness(1.08)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:#fff}button.ghost{background:transparent;border:1px solid var(--brown-600);color:var(--tan-200);flex:0 0 auto}button.ghost.danger{border-color:var(--bad);color:var(--bad)}.table-screen{flex:1;min-height:0;display:flex;flex-direction:column}.table-wrap{flex:1;min-height:0;display:grid;place-items:center;padding:8px 16px}.felt{position:relative;height:min(100%,58.75vw,562px);width:auto;max-width:94vw;aspect-ratio:16 / 10;background:radial-gradient(ellipse at center,var(--felt-1),var(--felt-2));border:14px solid var(--brown-700);border-radius:48%/60%;box-shadow:inset 0 0 60px #0006,0 14px 40px var(--shadow)}.board{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);text-align:center}.board-cards{display:flex;gap:6px;justify-content:center}.pot{margin-top:10px;display:flex;flex-direction:column;gap:2px}.pot-amount{font-weight:700;color:var(--cream);background:#0000004d;padding:4px 12px;border-radius:12px;display:inline-block}.street{font-size:12px;color:var(--tan-200);opacity:.85}.card{width:46px;height:64px;border-radius:6px;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;box-shadow:0 2px 4px var(--shadow);-webkit-user-select:none;user-select:none;transition:margin-top .25s ease,box-shadow .25s ease}.card-win{margin-top:-12px;box-shadow:0 0 0 3px var(--good),0 8px 14px var(--shadow);position:relative;z-index:2}.card-small{width:32px;height:46px;border-radius:5px}.card-red{color:#b3261e}.card-black{color:#1f1610}.card-rank{font-size:18px;line-height:1}.card-small .card-rank{font-size:13px}.card-suit{font-size:18px;line-height:1}.card-small .card-suit{font-size:13px}.card-back{background:repeating-linear-gradient(45deg,var(--brown-600),var(--brown-600) 6px,var(--brown-500) 6px,var(--brown-500) 12px);border:2px solid var(--tan-300)}.seat{position:absolute;transform:translate(-50%,-50%);width:116px;text-align:center}.seat-empty .seat-open{font-size:12px;color:var(--tan-200);opacity:.4;border:1px dashed var(--brown-600);padding:6px 10px;border-radius:10px}.seat-plate{background:var(--brown-800);border:1px solid var(--brown-600);border-radius:10px;padding:6px 8px;box-shadow:0 3px 8px var(--shadow)}.seat-me .seat-plate{border-color:var(--accent)}.seat-turn .seat-plate{box-shadow:0 0 0 3px var(--accent),0 3px 8px var(--shadow)}.seat-folded{opacity:.45}.seat-name{font-size:13px;font-weight:700;color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat-stack{font-size:13px;color:var(--tan-300)}.seat-cards{display:flex;gap:4px;justify-content:center;margin-bottom:4px}.seat-bet{position:absolute;top:-14px;right:-6px;background:var(--accent);color:#fff;font-size:12px;font-weight:700;padding:2px 8px;border-radius:10px}.seat-won{margin-top:4px;color:#fff;background:var(--good);border-radius:8px;font-weight:700;font-size:13px;padding:2px 0}.seat-hand{margin-top:3px;font-size:11px;font-weight:600;color:var(--tan-200);background:#00000059;border-radius:6px;padding:1px 6px}.seat-action{display:inline-block;margin-top:3px;font-size:11px;font-weight:700;color:var(--cream);background:#0006;border:1px solid var(--brown-600);border-radius:6px;padding:1px 7px}.seat-action.action-bet,.seat-action.action-raise{background:var(--accent);border-color:transparent;color:#fff}.seat-action.action-fold{color:var(--tan-300);opacity:.85}.dealer-button{position:absolute;top:-10px;left:-10px;width:22px;height:22px;border-radius:50%;background:var(--cream);color:var(--brown-900);font-size:12px;font-weight:800;display:grid;place-items:center;box-shadow:0 2px 4px var(--shadow)}.badge{display:inline-block;margin-top:4px;font-size:10px;font-weight:700;letter-spacing:1px;padding:1px 6px;border-radius:8px}.badge-allin{background:var(--bad);color:#fff}.badge-out{background:var(--brown-600);color:var(--tan-200)}.action-bar{min-height:96px;display:grid;place-items:center;padding:12px;background:var(--brown-900);border-top:1px solid var(--brown-700)}.between-hands{text-align:center}.winner-line{font-size:16px;font-weight:700;color:var(--cream);margin-bottom:8px}.action-hint{color:var(--tan-300);font-size:14px}.action-hint.runout{color:var(--accent);font-weight:700;letter-spacing:.5px}.controls{width:100%;max-width:640px}.controls-buttons{display:flex;gap:10px}.btn-fold{background:var(--bad);color:#fff}.btn-raise{background:var(--accent);color:#fff}.raise-row{display:flex;align-items:center;gap:10px;margin-top:10px}.raise-row input[type=range]{flex:1}.raise-input{width:110px}.raise-presets{display:flex;gap:6px}.raise-presets button{padding:8px 10px;font-size:12px}.table-footer{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--brown-900);border-top:1px solid var(--brown-700)}.room-code{margin-right:auto;color:var(--tan-300);font-size:14px}.room-code-copy{position:relative;display:inline-flex;align-items:center;gap:5px;width:auto;margin-left:3px;padding:3px 6px;border:1px solid transparent;background:transparent;color:var(--cream);letter-spacing:3px;font-size:16px;line-height:1;cursor:copy}.room-copy-icon{display:inline-flex;align-items:center;color:var(--tan-300);letter-spacing:0}.room-copy-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.room-copy-tip{position:absolute;z-index:10;left:50%;bottom:calc(100% + 8px);transform:translate(-50%) translateY(3px);width:max-content;padding:6px 8px;border:1px solid var(--brown-600);border-radius:6px;background:var(--brown-800);color:var(--cream);box-shadow:0 3px 8px var(--shadow);font-size:11px;font-weight:600;letter-spacing:0;opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease}.room-code-copy:hover .room-copy-tip,.room-code-copy:focus-visible .room-copy-tip{opacity:1;transform:translate(-50%) translateY(0)}.room-code-copy:hover,.room-code-copy:focus-visible{border-color:var(--accent);background:var(--brown-700);color:var(--cream);outline:none}@keyframes dealIn{0%{opacity:0;transform:translateY(-14px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.card-dealt{animation:dealIn .3s ease-out both}@media (prefers-reduced-motion: reduce){.card-dealt{animation:none}}.coach{width:100%;max-width:640px;height:62px;margin:0 auto 4px;background:var(--brown-800);border:1px solid var(--brown-600);border-radius:8px;padding:5px 10px;overflow:hidden}.coach-row{display:flex;justify-content:space-between;align-items:center}.coach-label{font-size:11px;color:var(--tan-300);text-transform:uppercase;letter-spacing:1px}.coach-waiting{font-size:12px;color:var(--tan-300)}.coach-placeholder{height:7px;border-radius:6px;background:var(--brown-900);margin:3px 0;opacity:.5}.coach-eq{font-size:17px;font-weight:800;color:var(--cream)}.coach-equity-actions{display:flex;align-items:center;gap:10px}.coach-toggle{flex:0 0 auto;padding:3px 7px;border:1px solid var(--brown-600);background:transparent;color:var(--tan-200);font-size:11px}.coach-bar{position:relative;height:7px;border-radius:6px;background:var(--brown-900);margin:3px 0}.coach-bar-hidden{opacity:.45}.coach-bar-fill{height:100%;background:var(--accent);border-radius:6px;transition:width .3s ease}.coach-need{position:absolute;top:-2px;bottom:-2px;width:3px;transform:translate(-50%);border-radius:2px}.coach-need.good{background:var(--good)}.coach-need.bad{background:var(--bad)}.coach-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:12px;margin-top:2px;line-height:14px}.coach-odds{color:var(--tan-200)}.coach-odds.good{color:var(--good);font-weight:600}.coach-odds.bad{color:var(--bad);font-weight:600}.coach-outs{color:var(--tan-200);font-weight:600}.preflop-screen{flex:1;min-height:0;display:grid;place-items:center;padding:16px;overflow:auto}.preflop-card{width:min(100%,900px);background:var(--brown-700);border:1px solid var(--brown-600);border-radius:14px;padding:20px;box-shadow:0 12px 30px var(--shadow)}.preflop-head,.preflop-footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.preflop-head h1{margin:2px 0 0;font-size:22px}.preflop-kicker,.preflop-footer span{color:var(--tan-300);font-size:11px;text-transform:uppercase;letter-spacing:1px}.preflop-score{display:flex;flex-direction:column;text-align:right;color:var(--tan-300);font-size:11px;text-transform:uppercase}.preflop-score strong{color:var(--cream);font-size:22px}.preflop-spot{margin:18px 0;padding:18px;text-align:center;background:var(--brown-800);border-radius:12px}.trainer-felt{width:min(100%,760px);height:auto;max-width:none;margin:0 auto}.trainer-pot{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:3px 9px;border-radius:10px;background:#0000004d;color:var(--tan-200);font-size:18px;font-weight:800}.trainer-pot small{display:block;font-size:8px;letter-spacing:1px}.trainer-felt .seat-bet:after{content:" BB"}.preflop-actions{display:flex;gap:10px}.preflop-actions button,.trainer-feedback button{display:flex;align-items:center;justify-content:center;gap:7px}.preflop-card kbd{min-width:21px;padding:2px 5px;border:1px solid currentColor;border-radius:4px;font:700 11px/1.2 Segoe UI,system-ui,sans-serif;opacity:.75;box-shadow:0 1px 0 currentColor}.preflop-actions .trainer-correct{background:var(--good);color:#fff;opacity:1}.preflop-actions .trainer-wrong{background:var(--bad);color:#fff;opacity:1}.trainer-feedback{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:14px;padding:10px 12px;border-radius:9px;background:var(--brown-800);border-left:4px solid var(--good)}.trainer-feedback.wrong{border-left-color:var(--bad)}.trainer-feedback span{color:var(--tan-200);font-size:12px}.trainer-feedback button{flex:0 0 auto}.preflop-footer{margin-top:16px}@media (max-width: 560px){.preflop-card{padding:14px}.preflop-spot{margin:12px 0;padding:14px}.trainer-felt{width:100%;border-width:10px}.trainer-felt .seat{width:76px}.preflop-actions{gap:6px}.preflop-actions button{padding:9px 6px;font-size:12px}.trainer-feedback{grid-template-columns:1fr auto}.trainer-feedback span{grid-column:1 / -1;grid-row:2}}.review{width:100%;max-width:640px;margin:8px auto 0;background:var(--brown-800);border:1px solid var(--brown-600);border-radius:10px;padding:8px 12px;text-align:left}.review-head{display:flex;justify-content:space-between;align-items:baseline;font-size:12px;font-weight:700;color:var(--cream);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}.review-total{font-size:12px;font-weight:700;color:var(--tan-200);letter-spacing:0;text-transform:none}.review-total.good{color:var(--good)}.review-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.review-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tan-200)}.review-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--tan-300)}.level-good .review-dot{background:var(--good)}.level-warn .review-dot{background:#d6a413}.level-bad .review-dot{background:var(--bad)}.review-street{width:52px;flex:0 0 auto;color:var(--tan-300);text-transform:capitalize}.review-action{width:44px;flex:0 0 auto;font-weight:700;color:var(--cream);text-transform:capitalize}.review-note{flex:1 1 auto}.review-loss{flex:0 0 auto;font-weight:700;color:var(--bad)}.my-turn{width:100%;max-width:640px}.countdown{width:100%;max-width:640px;margin:0 auto 8px;text-align:center}.countdown-label{display:block;font-size:13px;color:var(--tan-200);margin-bottom:4px}.countdown-bar{height:6px;width:100%;background:var(--brown-700);border-radius:4px;overflow:hidden}.countdown-fill{height:100%;background:var(--accent);border-radius:4px}@keyframes bannerIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.banner.error{animation:bannerIn .2s ease-out}@media (max-width: 800px){.lobby{align-items:start;padding:24px 18px 36px}.lobby-shell{max-width:560px;grid-template-columns:1fr;gap:18px}.lobby-hero{padding:6px 4px}.lobby-hero h1{margin:8px 0 10px;font-size:clamp(34px,9vw,46px)}.lobby-hero p{font-size:13px}}@media (max-width: 560px){.lobby{padding:18px 10px 28px}.lobby-card{padding:16px;border-radius:14px}.setup-fields,.private-actions{grid-template-columns:1fr}.training-choice{gap:8px;padding:11px}.training-choice .feature-icon{width:34px;height:34px}.table-wrap{padding:8px}.felt{border-width:10px}.felt-narrow{aspect-ratio:4 / 5;height:min(100%,120vw);width:auto;max-width:96vw}.seat{width:76px}.seat-plate{padding:4px 6px}.seat-name,.seat-stack{font-size:11px}.card{width:34px;height:48px}.card-rank,.card-suit{font-size:15px}.card-small{width:26px;height:37px}.card-small .card-rank,.card-small .card-suit{font-size:11px}.board{top:42%}.board-cards{gap:4px}.pot-amount{font-size:13px;padding:3px 8px}.dealer-button{width:18px;height:18px;font-size:10px}.seat-bet{font-size:11px;padding:1px 6px}}
