:root{--bg: #0f1216;--panel: #171b21;--panel-2: #1e242c;--border: #2a323c;--text: #e6e9ee;--muted: #8b96a5;--accent: #4ade80;--accent-dim: #22c55e;--danger: #f87171;--felt: #14532d;--felt-edge: #0b3a20;--chip: #f5c542;--card-red: #e5484d;--card-black: #1b1f24}*{box-sizing:border-box}html{height:100%}body{min-height:100%;margin:0}#root{min-height:100vh}body{background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.topbar{display:flex;align-items:center;gap:16px;padding:10px 18px;background:var(--panel);border-bottom:1px solid var(--border)}.topbar h1{font-size:16px;margin:0;letter-spacing:.3px}.topbar .logo{color:var(--accent)}.topbar .spacer{flex:1}.level-pill{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:4px 12px;color:var(--muted);font-size:12px}.main{display:grid;grid-template-columns:minmax(360px,1fr) minmax(420px,1.2fr);gap:14px;padding:14px;min-height:0}@media (max-width: 900px){.main{grid-template-columns:1fr}}.col{display:flex;flex-direction:column;gap:14px;min-height:0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.panel h2{margin:0;padding:10px 14px;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);border-bottom:1px solid var(--border)}.panel .body{padding:14px}.lesson p{margin:0 0 10px;color:#cdd4dd}.lesson .objective{background:var(--panel-2);border-left:3px solid var(--accent);padding:8px 12px;border-radius:6px;margin-bottom:12px}.lesson details{margin-top:8px;color:var(--muted)}.lesson summary{cursor:pointer;color:var(--accent)}.toolbar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--border);background:var(--panel-2)}button.run{background:var(--accent-dim);color:#06210f;font-weight:700;border:none;border-radius:8px;padding:9px 18px;cursor:pointer}button.run:disabled{opacity:.5;cursor:default}button.ghost{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:8px;padding:8px 12px;cursor:pointer}.status{color:var(--muted);font-size:12px}.status.err{color:var(--danger)}.console{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:pre-wrap;background:#0c0f13;color:#ffb4b4;padding:10px 14px;border-top:1px solid var(--border);max-height:140px;overflow:auto}.table-panel .body{display:flex;flex-direction:column;gap:12px}.felt{position:relative;min-height:360px;border-radius:26px;overflow:hidden}.table-felt-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.felt-content{position:relative;z-index:1;min-height:360px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:26px 20px}.felt.compact{min-height:0}.felt.compact .felt-content{min-height:0;padding:14px 16px;gap:8px}.felt.compact .board{min-height:58px}.felt.compact .seat{padding:4px 10px;gap:5px;background:#06140c4d}.seat{display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;border:1px solid transparent;background:#06140c59;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.seat.acting{border-color:var(--accent);box-shadow:0 0 0 2px #4ade8040}.seat.winner{border-color:var(--chip);box-shadow:0 0 16px #f5c54273}.seat-id{display:flex;align-items:center;gap:10px}.seat-meta{text-align:left}.seat .name{font-weight:700;color:#eafff2}.seat .name .tag{color:#9fdcb8;font-weight:400;font-size:12px}.seat .bubble{font-size:12px;color:#06210f;background:var(--accent);border-radius:999px;padding:2px 12px;min-height:20px;font-weight:600;box-shadow:0 2px 6px #0000004d}.seat .bubble.empty{background:transparent;color:transparent;box-shadow:none}.hand{display:flex;gap:6px}.board{display:flex;gap:8px;align-items:center;min-height:90px}.pot{color:var(--chip);font-weight:800;letter-spacing:1px;text-shadow:0 1px 3px rgba(0,0,0,.5)}.pcard{display:block;border-radius:9px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}.avatar{display:block}.opponent-card{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:12px}.opponent-name{font-weight:700}.opponent-blurb{color:var(--muted);font-size:12px}.builder-panel,.builder{display:flex;flex-direction:column}.tabs{display:flex;gap:4px;padding:10px 14px 0}.tab{padding:8px 14px;border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;background:var(--panel-2);color:var(--muted);cursor:pointer;font-size:13px}.tab.on{background:var(--panel);color:var(--text);font-weight:700}.builder-body{padding:14px;border-top:1px solid var(--border)}.palette-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.palette{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.chip{display:flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel-2);color:var(--text);cursor:pointer;font-size:13px}.chip.on{border:2px solid var(--accent)}.chip .sw{width:14px;height:14px;border-radius:4px}.sep{width:1px;height:20px;background:var(--border);margin:0 2px}.mini{padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-size:12px}.vpip{text-align:right}.vpip-label{font-size:12px;color:var(--muted)}.vpip-val{font-size:20px;font-weight:700}.range-grid{display:grid;grid-template-columns:repeat(13,1fr);gap:3px;max-width:520px}.rg-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:11px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;border:.5px solid rgba(0,0,0,.3)}.hint-line{margin-top:10px;font-size:12px;color:var(--muted)}.policy-table{width:100%;border-collapse:collapse}.policy-table th{text-align:left;font-size:12px;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--border)}.policy-table td{padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:middle}.tier-name{font-weight:600}.tier-eg{font-size:12px;color:var(--muted)}.choice{display:flex;gap:6px;flex-wrap:wrap}.choice-btn{padding:6px 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel-2);color:var(--muted);cursor:pointer;font-size:13px}.choice-btn.on{font-weight:700}.why{margin-top:4px;font-size:11px;color:var(--accent);background:#4ade801f;border-radius:6px;padding:2px 8px}.why i{color:var(--muted);font-style:normal}.level-select{display:flex;gap:10px;flex-wrap:wrap}.level-card{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);color:var(--text);cursor:pointer;text-align:left}.level-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.level-card.locked{opacity:.5;cursor:not-allowed}.level-card-name{font-weight:700;font-size:13px}.level-card-tag{font-size:11px;color:var(--muted)}.adv{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}.adv-title{font-size:13px;font-weight:700;margin-bottom:8px}.adv-sub{font-weight:400;color:var(--muted);font-size:12px}.adv-empty{color:var(--muted);font-size:12px;margin-bottom:8px}.adv-rule{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}.adv-when,.adv-then{color:var(--muted);font-size:13px}.adv-select{background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:6px 8px;font-size:13px;cursor:pointer}.adv-remove{background:transparent;color:var(--danger);border:none;font-size:18px;cursor:pointer;line-height:1;padding:0 4px}.adv-add{margin-top:4px}.nav{display:flex;gap:2px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:2px}.nav button{background:transparent;color:var(--muted);border:none;cursor:pointer;padding:5px 14px;border-radius:6px;font-size:13px;font-weight:600}.nav button.on{background:var(--accent-dim);color:#06210f}.learn-wrap{display:flex;justify-content:center;padding:20px 14px 40px}.academy{width:100%;max-width:760px}.academy-progress{display:flex;gap:6px;justify-content:center;margin-bottom:14px}.dot{width:22px;height:5px;border-radius:3px;background:var(--border)}.dot.done{background:var(--accent-dim)}.dot.on{background:var(--accent)}.academy-card .body{padding:20px 22px}.academy-p{color:#cdd4dd;margin:0 0 12px;white-space:pre-line;font-size:15px}.academy-nav{display:flex;align-items:center;gap:12px;padding:14px 22px;border-top:1px solid var(--border);background:var(--panel-2)}.academy-nav .spacer,.academy-count{flex:1}.academy-count{color:var(--muted);font-size:12px;text-align:center}.rank-chart{display:flex;flex-direction:column;gap:6px;margin-top:8px}.rank-row{display:flex;align-items:center;gap:12px;padding:4px 0}.rank-num{width:20px;color:var(--muted);font-weight:700;text-align:right}.rank-name{width:130px;font-weight:600;font-size:13px}.rank-cards{display:flex;gap:4px}.mini-felt{background:radial-gradient(ellipse at center,var(--felt) 0%,var(--felt-edge) 100%);border:5px solid #0a2c18;border-radius:20px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:10px}.mini-seat{display:flex;align-items:center;gap:10px}.mini-board{display:flex;gap:6px;min-height:48px;align-items:center}.mini-pot{color:var(--chip);font-weight:700;font-size:13px}.mini-you{color:#eafff2;font-weight:700}.scripted-situation{color:#cdd4dd;margin:14px 0;font-size:15px}.scripted-choices{display:flex;gap:8px;flex-wrap:wrap}.scripted-btn{padding:9px 18px;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel-2);color:var(--text);cursor:pointer;font-weight:600}.scripted-btn:disabled{cursor:default}.scripted-feedback{margin-top:14px;padding:10px 14px;border-radius:8px;font-size:14px;background:var(--panel-2);border-left:3px solid var(--muted)}.scripted-feedback.good{border-color:var(--accent);background:#4ade801a}.scripted-feedback.bad{border-color:var(--danger);background:#f8717114}.retry{margin-top:8px;color:var(--accent);cursor:pointer;font-size:13px}.quiz-compare{display:flex;gap:28px;justify-content:center;margin-bottom:14px}.quiz-label{color:var(--muted);font-size:12px;margin-bottom:6px;text-align:center}.quiz-prompt{font-size:15px;margin:0 0 12px}.quiz-options{display:flex;flex-direction:column;gap:8px}.quiz-opt{text-align:left;padding:10px 14px;border:1px solid var(--border-strong);border-radius:8px;background:var(--panel-2);color:var(--text);cursor:pointer;font-size:14px}.quiz-opt.good{border-color:var(--accent);background:#4ade801f}.quiz-opt.bad{border-color:var(--danger);background:#f871711a}.play-wrap{width:100%;display:flex;flex-direction:column;gap:14px}.play-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.play-controls select{background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:7px 10px;font-size:14px;cursor:pointer}.play-net{color:var(--muted);font-size:13px}.play-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}.play-turn{color:var(--muted);font-size:14px;margin-right:4px}.play-embedded{display:flex;flex-direction:column;gap:12px;margin-top:8px}.replay-controls{display:flex;align-items:center;gap:10px}.replay-controls select,.replay-controls button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;cursor:pointer}.replay-controls .scrub{flex:1}table.stats{width:100%;border-collapse:collapse;font-size:13px}table.stats th,table.stats td{text-align:right;padding:6px 8px}table.stats th:first-child,table.stats td:first-child{text-align:left}table.stats thead th{color:var(--muted);border-bottom:1px solid var(--border);font-weight:600}table.stats tbody tr.you td{color:var(--accent);font-weight:600}.banner{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;font-weight:700}.banner.win{background:#4ade801f;color:var(--accent);border:1px solid rgba(74,222,128,.4)}.banner.lose{background:#f871711a;color:var(--danger);border:1px solid rgba(248,113,113,.35)}.banner .big{font-size:20px}.winnings{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:10px 12px 6px}.winnings-title{font-size:13px;font-weight:600;margin-bottom:4px}.winnings-title .unit{color:var(--muted);font-weight:400}.winnings-svg{display:block;width:100%;height:auto}.winnings-svg .axis{fill:var(--muted);font-size:10px}.winnings-svg .final{font-size:12px;font-weight:700}.chips-row{display:flex;flex-wrap:wrap;gap:8px}.chip{flex:1 1 90px;min-width:90px;text-align:center;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:8px 6px}.chip-value{font-size:16px;font-weight:700}.chip-label{font-size:11px;color:var(--muted);margin-top:2px}.chip.good .chip-value{color:var(--accent)}.chip.bad .chip-value{color:var(--danger)}.module-map{width:100%;max-width:760px}.module-map-head{margin-bottom:14px}.module-map-head h2{margin:0 0 4px;font-size:20px}.module-map-sub{color:var(--muted);font-size:13px}.module-grid{display:flex;flex-direction:column;gap:10px}.module-card{display:flex;gap:14px;align-items:center;text-align:left;width:100%;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:14px 16px;cursor:pointer;color:var(--text);font:inherit}.module-card:hover{border-color:var(--accent-dim);background:var(--panel-2)}.module-card.complete{border-color:#4ade8073}.module-icon{font-size:28px;width:44px;text-align:center;flex-shrink:0}.module-meta{flex:1;min-width:0}.module-title{font-weight:700}.module-num{color:var(--muted);font-weight:600}.module-check{color:var(--accent)}.module-blurb{color:var(--muted);font-size:13px;margin:2px 0 8px}.module-bar{height:5px;border-radius:3px;background:var(--panel-2);border:1px solid var(--border);overflow:hidden}.module-bar-fill{height:100%;background:var(--accent-dim);border-radius:3px;transition:width .3s ease}.module-status{margin-top:6px;font-size:12px;color:var(--muted)}.academy-topline{display:flex;align-items:center;gap:12px;width:100%;max-width:640px;margin-bottom:10px}.academy-module-name{font-weight:600;font-size:14px;white-space:nowrap}.academy-topline .academy-progress{margin:0;flex:1;justify-content:flex-end}.drill-tag{display:inline-block;margin-bottom:8px;padding:3px 10px;border-radius:999px;background:#4ade801f;border:1px solid rgba(74,222,128,.4);color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.3px}.drill-head{display:flex;justify-content:space-between;margin-bottom:8px;font-size:13px}.drill-progress{color:var(--muted);font-weight:600}.drill-running{color:var(--accent);font-weight:600}.drill-next{margin-top:12px;display:flex;justify-content:flex-end}.drill-summary{text-align:center;padding:12px 0}.drill-score{font-size:40px;font-weight:800;color:var(--accent);margin-bottom:6px}.drill-summary-actions{margin-top:10px;display:flex;justify-content:center;gap:10px}.mini-preflop{color:#bfe9d0;font-size:13px}.mode-tag{margin-left:6px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#4ade801f;border:1px solid rgba(74,222,128,.35);color:var(--accent);vertical-align:2px}.mode-play{width:100%}.mode-intro{flex:1;color:var(--muted);font-size:12.5px;text-align:right}.opp-row{display:flex;justify-content:center;gap:4px;flex-wrap:wrap}.felt.multiway .felt-content{gap:6px}.seat.compact .hand .card{transform:scale(.85);transform-origin:top center}.seat.compact .bubble{font-size:11px;padding:2px 8px}.seat.compact .name{font-size:12px}.stack-chip{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.stack-chip.allin{color:var(--danger);font-weight:700}.bet-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:6px 10px}.bet-presets{display:flex;gap:4px}.bet-preset{font:inherit;font-size:12px;padding:4px 9px;border-radius:999px;background:transparent;border:1px solid var(--border);color:var(--muted);cursor:pointer}.bet-preset:hover{border-color:var(--accent-dim);color:var(--text)}.bet-preset.on{border-color:var(--accent);color:var(--accent);font-weight:600}.bet-slider{width:130px;accent-color:var(--accent)}.home-link{cursor:pointer;-webkit-user-select:none;user-select:none}.home-link:hover .logo{text-shadow:0 0 12px rgba(74,222,128,.7)}.landing{width:100%;max-width:860px;display:flex;flex-direction:column;gap:18px}.landing-hero{position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--felt-edge);min-height:320px}.landing-hero .table-felt-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.landing-hero-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:44px 28px 40px}.landing-cards{display:flex;margin-bottom:-6px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}.landing-cards .tilt-l{transform:rotate(-8deg) translate(5px)}.landing-cards .tilt-r{transform:rotate(8deg) translate(-5px)}.landing-title{margin:0;font-size:44px;letter-spacing:.5px;color:#fff}.landing-title .logo{color:var(--accent)}.landing-tag{margin:0;font-size:19px;color:#eafff1}.landing-tag b{color:var(--accent)}.landing-sub{margin:0;font-size:13.5px;color:#bfe9d0;max-width:520px}.landing-go{margin-top:10px;font:inherit;font-size:16px;font-weight:700;padding:11px 26px;border-radius:999px;border:none;cursor:pointer;background:var(--accent-dim);color:#06130b;box-shadow:0 4px 18px #22c55e66}.landing-go:hover{background:var(--accent)}.landing-tracks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}@media (max-width: 720px){.landing-tracks{grid-template-columns:1fr}}.landing-track{font:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:16px;color:var(--text)}.landing-track:hover{border-color:var(--accent-dim);transform:translateY(-2px)}.landing-track{transition:transform .12s ease,border-color .12s ease}.landing-track-icon{font-size:26px}.landing-track-title{font-weight:700;font-size:16px}.landing-track-pitch{font-size:13px;color:var(--muted);line-height:1.45;flex:1}.landing-track-cta{font-size:13px;color:var(--accent);font-weight:600}.landing-foot{text-align:center;color:var(--muted);font-size:13px;padding-bottom:10px}.app.embedded{display:block;min-height:100vh}.app.embedded .learn-wrap{width:100%;max-width:none;padding:12px 14px 24px}.app.embedded .landing{max-width:900px;margin:0 auto}.app.embedded .landing-hero{min-height:245px}.app.embedded .main{width:100%;max-width:none;padding:12px;grid-template-columns:minmax(310px,1fr) minmax(360px,1.15fr)}@media (max-width: 760px){.app.embedded .main,.app.embedded .landing-tracks{grid-template-columns:1fr}}
