:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,sans-serif;background:#07100e;color:#f4f7f5;font-synthesis:none;--panel: rgba(15, 29, 25, .86);--panel-border: rgba(255, 255, 255, .08);--muted: #81918b;--green: #43e8a3;--green-dark: #0d8f62;--gold: #f2c66d}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 70% 20%,#12372a 0,transparent 32%),#07100e}button,textarea,select,input{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.topbar{height:88px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--panel-border);background:#050d0bc7;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.brand{display:flex;align-items:center;gap:14px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;color:#06100d;background:linear-gradient(145deg,#6bf2bb,#2dbd82);box-shadow:0 8px 30px #43e8a33d;font-size:25px}.eyebrow{margin:0 0 3px;color:#6f827b;font-size:10px;line-height:1;letter-spacing:.18em;font-weight:800}h1,h2,h3{margin:0;font-family:Inter,Segoe UI,system-ui,sans-serif;letter-spacing:-.035em}h1,h2{font-size:20px}h3{font-size:16px}.parser-status{padding:9px 13px;border:1px solid rgba(67,232,163,.17);border-radius:999px;color:#a7b7b1;background:#43e8a30f;font-size:12px;font-weight:600}.parser-status span{display:inline-block;width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px var(--green)}.workspace{display:grid;grid-template-columns:310px minmax(0,1fr);gap:18px;padding:18px;min-height:calc(100vh - 88px)}.sidebar{display:flex;flex-direction:column;gap:14px}.panel,.replayer-panel,.history-panel{border:1px solid var(--panel-border);background:var(--panel);box-shadow:0 24px 80px #0003;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.panel{border-radius:20px;padding:19px}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.panel-heading.compact{margin-bottom:15px}.step-badge{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#ffffff0d;color:#74877f;font-size:10px;font-weight:800}#handFile{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.file-drop{min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed rgba(67,232,163,.28);border-radius:15px;background:#43e8a309;cursor:pointer;transition:.2s ease}.file-drop:hover,.file-drop.is-dragging{transform:translateY(-2px);border-color:var(--green);background:#43e8a314}.file-drop strong{margin-top:5px;font-size:13px}.file-drop small{margin-top:3px;color:var(--muted);font-size:10px}.file-icon{font-size:24px;color:var(--green)}.divider{display:flex;align-items:center;gap:8px;margin:14px 0;color:#65766f;font-size:9px;text-transform:uppercase;letter-spacing:.12em}.divider:before,.divider:after{content:"";height:1px;flex:1;background:var(--panel-border)}textarea{width:100%;min-height:102px;resize:vertical;padding:11px;border:1px solid var(--panel-border);border-radius:12px;outline:none;color:#aebbb6;background:#00000038;font:10px/1.45 ui-monospace,monospace}textarea:focus,select:focus{border-color:#43e8a38c;box-shadow:0 0 0 3px #43e8a314}.primary-button{width:100%;margin-top:10px;padding:12px;border:0;border-radius:12px;color:#06130f;background:linear-gradient(135deg,#65efb6,#33cb8d);font-weight:800;cursor:pointer;box-shadow:0 12px 30px #22c0802e}.primary-button:hover{filter:brightness(1.07)}.primary-button:disabled{opacity:.55;cursor:wait;filter:none}.feedback{min-height:28px;margin:9px 1px 0;color:var(--muted);font-size:10px;line-height:1.4}.feedback.is-success{color:#70d9ad}.feedback.is-error{color:#ff8f94}.library-status{display:flex;align-items:center;gap:7px;margin:-5px 0 13px;padding:8px 9px;border-radius:9px;color:var(--muted);background:#ffffff09;font-size:9px;font-weight:700}.library-status span{width:7px;height:7px;border-radius:50%;background:#728078}.library-status.is-connected{color:#8bdab9;background:#43e8a30f}.library-status.is-connected span{background:var(--green);box-shadow:0 0 10px #43e8a3a6}.library-status.is-error{color:#ff8f94}.library-filters{display:grid;grid-template-columns:1fr 1fr;gap:8px}.library-filters label{min-width:0}.library-filters label>span{display:block;margin:0 0 4px;color:var(--muted);font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.library-filters input{width:100%;min-width:0;padding:9px 8px;border:1px solid var(--panel-border);border-radius:9px;outline:0;color:#dce5e1;background:#0c1815;font-size:10px}.library-filters input:focus{border-color:#43e8a38c;box-shadow:0 0 0 3px #43e8a314}.library-results{max-height:228px;display:grid;gap:6px;overflow:auto;padding-right:2px;scrollbar-color:#285141 transparent}.library-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px;padding:9px 10px;border:1px solid rgba(255,255,255,.065);border-radius:10px;color:#e7efeb;background:#00000026;cursor:pointer;text-align:left}.library-result:hover{border-color:#43e8a352;background:#43e8a30e}.library-result:disabled{opacity:.55;cursor:wait}.library-result strong{overflow:hidden;text-overflow:ellipsis;font-size:10px}.library-result span{grid-column:1 / -1;overflow:hidden;color:var(--muted);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.library-result small{grid-column:2;grid-row:1;color:var(--green);font-size:8px}.manual-loader{margin-top:12px;border-top:1px solid var(--panel-border)}.manual-loader summary{padding:11px 1px 0;color:#8ea199;cursor:pointer;font-size:9px;font-weight:700}.manual-loader-content{padding-top:12px}.field-label{display:block;margin-bottom:6px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}select{width:100%;padding:10px 11px;border:1px solid var(--panel-border);border-radius:11px;outline:0;background:#0c1815;color:#dce5e1;font-size:11px}.hand-stats{display:grid;grid-template-columns:1fr auto;row-gap:9px;margin:16px 0 0;padding-top:15px;border-top:1px solid var(--panel-border);font-size:11px}.hand-stats dt{color:var(--muted)}.hand-stats dd{margin:0;color:#e6edea;font-weight:700}.replayer-panel{min-width:0;padding:18px;border-radius:22px;background:linear-gradient(160deg,#0f1d19f0,#08120feb)}.replayer-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.replayer-tools{min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:10px}.deck-picker{flex:0 0 auto;display:flex;align-items:center;gap:8px;padding:4px 4px 4px 10px;border:1px solid rgba(255,255,255,.07);border-radius:11px;color:var(--muted);background:#0003}.deck-picker>span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.deck-picker select{width:auto;min-width:126px;padding:7px 9px;border-radius:8px;font-size:9px;font-weight:700}.replay-workspace{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:14px;align-items:stretch}.game-column{min-width:0}.street-tabs{display:flex;gap:5px;padding:4px;border-radius:11px;background:#0003}.street-tabs span{padding:7px 10px;border-radius:8px;color:#60746c;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.street-tabs span.is-active{color:#08140f;background:var(--green);box-shadow:0 5px 18px #43e8a338}.table-stage{position:relative;min-height:590px;display:grid;place-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.045);border-radius:20px;background:radial-gradient(circle at center,rgba(37,117,82,.15),transparent 60%),#07110e}.ambient{position:absolute;width:260px;height:260px;filter:blur(90px);opacity:.12;border-radius:50%;background:var(--green)}.ambient-one{top:-100px;left:-80px}.ambient-two{right:-70px;bottom:-140px;background:#d4aa55}.poker-table{position:relative;width:94%;height:82%;border:13px solid #18231f;border-radius:50%;background:radial-gradient(ellipse at center,#176449,#0d4533 60%,#0b3529);box-shadow:inset 0 0 0 3px #30443c,inset 0 0 70px #00000061,0 28px 70px #00000080}.felt-ring{position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid rgba(136,243,195,.12);border-radius:inherit}.table-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.board{display:flex;gap:9px;min-height:92px}.table-stage{container-type:inline-size}.board .playing-card{width:clamp(64px,7cqw,88px);height:auto;aspect-ratio:64 / 90}.playing-card{position:relative;flex:0 0 auto;width:64px;height:90px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;border:2px solid rgba(255,255,255,.92);border-radius:9px;color:#101715;background:linear-gradient(145deg,#fff,#edf2f0 72%,#d6dfdc);box-shadow:0 10px 20px #00000061,inset 0 0 0 1px #07141014;font-family:Inter,Segoe UI,sans-serif}.card-image{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:inherit;pointer-events:none;-webkit-user-select:none;user-select:none}.playing-card.is-clean,.player-seat.is-hero .playing-card.is-compact.is-clean{border:0;background:transparent}.playing-card.is-clean .card-image{object-fit:contain}.playing-card.is-slot{border:1px dashed rgba(183,215,202,.26);background:#04191233;box-shadow:inset 0 0 16px #00000029}.card-rank{font-size:26px;line-height:.9;letter-spacing:-.08em}.card-suit{margin-top:4px;font-size:25px;line-height:.8}.playing-card.is-red{color:#d34f55}.playing-card.is-hidden{display:grid;place-items:center;color:#ffffffd1;border:2px solid #b7d7ca;background:repeating-linear-gradient(45deg,#183f33 0,#183f33 5px,#215847 5px,#215847 10px);font-size:25px;text-shadow:0 2px 4px rgba(0,0,0,.35)}.playing-card.is-compact{width:clamp(38px,4cqw,48px);height:auto;aspect-ratio:38 / 53;border-width:1px;border-radius:6px}.playing-card.is-compact .card-rank{font-size:16px}.playing-card.is-compact .card-suit{margin-top:2px;font-size:16px}.playing-card.is-compact.is-hidden{font-size:16px}.player-seat.is-hero .playing-card.is-compact{width:clamp(58px,6cqw,76px);height:auto;aspect-ratio:54 / 76;border-width:2px;border-radius:8px;box-shadow:0 10px 24px #00000080,0 0 0 2px #43e8a333}.player-seat.is-hero .playing-card.is-compact .card-rank{font-size:23px}.player-seat.is-hero .playing-card.is-compact .card-suit{margin-top:3px;font-size:22px}.pot-label{padding:6px 11px;border-radius:999px;color:#8fb5a6;background:#03140e85;font-size:9px;letter-spacing:.1em}.pot-label strong{margin-left:5px;color:#f5d68e;font-size:13px;letter-spacing:0}.pot-breakdown{margin-top:7px;padding:5px 9px;border:1px solid rgba(242,198,109,.24);border-radius:8px;color:#f5d68e;background:#03140e94;font-size:9px;letter-spacing:.04em}#playerLayer{position:absolute;top:0;right:0;bottom:0;left:0}.player-seat{position:absolute;width:145px;transform:translate(-50%,-50%);text-align:center;transition:opacity .25s,filter .25s;z-index:2}.hole-cards{position:relative;z-index:1;display:flex;justify-content:center;margin-bottom:-4px}.hole-cards .playing-card:first-child{transform:rotate(-3deg)}.hole-cards .playing-card+.playing-card{margin-left:-6px;transform:rotate(3deg)}.player-seat.is-hero .hole-cards{margin-bottom:3px}.player-seat.is-hero .hole-cards .playing-card+.playing-card{margin-left:-8px}.player-info{position:relative;z-index:2;padding:9px 10px 8px;border:1px solid rgba(255,255,255,.1);border-radius:11px;background:#101c19;box-shadow:0 8px 22px #00000061}.player-name{display:flex;justify-content:center;align-items:center;gap:6px;white-space:nowrap;overflow:hidden}.player-name strong{overflow:hidden;text-overflow:ellipsis;font-size:11px}.player-name span{color:var(--gold);font-size:8px;font-weight:800}.player-stack{margin-top:4px;color:#e0ebe6;font-size:12px;line-height:1.1;font-weight:800;font-variant-numeric:tabular-nums}.player-winnings{margin-top:3px;color:#f5d68e;font-size:9px;font-weight:800}.player-result{margin-top:3px;color:#b8cec5;font-size:8px;line-height:1.2}.player-seat.is-hero .player-info{border-color:#43e8a37a;background:linear-gradient(150deg,#16372c,#10231d)}.player-seat.is-acting .player-info{box-shadow:0 0 0 2px var(--gold),0 0 28px #f2c66d33}.player-seat.is-all-in .player-info{border-color:#f2c66db3}.player-seat.is-all-in .player-name span{color:#f5d68e}.player-seat.is-winner .player-info{border-color:#f2c66dd9;box-shadow:0 0 0 1px #f2c66d59,0 8px 24px #0006}.player-seat.is-folded{opacity:.36;filter:saturate(.3)}.table-bet{position:absolute;z-index:5;display:flex;align-items:center;gap:5px;transform:translate(-50%,-50%);pointer-events:none}.table-bet strong{min-width:32px;padding:5px 7px;border:1px solid rgba(242,198,109,.32);border-radius:999px;color:#ffe1a0;background:#071410f0;box-shadow:0 4px 12px #00000052;font-size:11px;line-height:1;font-variant-numeric:tabular-nums;text-align:center}.chip-stack{position:relative;width:24px;height:25px;display:block;filter:drop-shadow(0 5px 5px rgba(0,0,0,.35))}.chip-stack i{position:absolute;left:0;width:24px;height:9px;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:repeating-linear-gradient(90deg,var(--chip-color) 0 5px,#f4f2e9 5px 7px);box-shadow:inset 0 -2px #00000040}.chip-stack i:nth-child(1){bottom:0}.chip-stack i:nth-child(2){bottom:6px}.chip-stack i:nth-child(3){bottom:12px}.chip-color-0{--chip-color: #e74f55}.chip-color-1{--chip-color: #3e89dc}.chip-color-2{--chip-color: #e0a93d}.table-bet.is-new{animation:chip-arrive .48s cubic-bezier(.16,.9,.3,1.12)}@keyframes chip-arrive{0%{opacity:0;filter:brightness(1.45) drop-shadow(0 8px 10px rgba(0,0,0,.4));transform:translate(calc(-50% + var(--chip-entry-x)),calc(-50% + var(--chip-entry-y))) scale(.68)}78%{transform:translate(-50%,-50%) scale(1.08)}to{opacity:1;filter:none;transform:translate(-50%,-50%) scale(1)}}.pot-collection{position:absolute;z-index:6;display:flex;align-items:center;gap:5px;pointer-events:none;animation:pot-collect .72s cubic-bezier(.18,.82,.25,1)}.pot-collection strong{min-width:38px;padding:5px 7px;border:1px solid rgba(242,198,109,.45);border-radius:999px;color:#ffe1a0;background:#071410f0;box-shadow:0 5px 15px #0000005c;font-size:11px;line-height:1;font-variant-numeric:tabular-nums;text-align:center}@keyframes pot-collect{0%{opacity:0;filter:brightness(1.6) drop-shadow(0 8px 10px rgba(0,0,0,.45));transform:translate(-50%,-50%) scale(.72)}20%{opacity:1}74%{opacity:1;transform:translate(calc(-50% + var(--collection-x)),calc(-50% + var(--collection-y))) scale(1.08)}to{opacity:0;filter:brightness(1.1);transform:translate(calc(-50% + var(--collection-x)),calc(-50% + var(--collection-y))) scale(.92)}}@media (prefers-reduced-motion: reduce){.table-bet.is-new,.pot-collection{animation:none}}.action-banner{display:flex;align-items:center;gap:12px;margin-top:13px;padding:12px 15px;border:1px solid rgba(242,198,109,.12);border-radius:14px;background:linear-gradient(90deg,rgba(242,198,109,.07),transparent)}.action-number{width:34px;color:var(--gold);font:800 20px Inter,Segoe UI,sans-serif}.action-banner p{margin:0 0 2px;color:#71827b;font-size:8px;letter-spacing:.12em;font-weight:800}.action-banner strong{font-size:12px}.transport{display:grid;grid-template-columns:36px 36px 46px 36px 36px 58px minmax(100px,1fr) auto;align-items:center;gap:7px;padding:13px 0}.transport button{height:34px;border:1px solid var(--panel-border);border-radius:10px;background:#ffffff0a;cursor:pointer}.transport button:hover:not(:disabled){border-color:#43e8a366;background:#43e8a314}.transport button:disabled{opacity:.3;cursor:default}.transport .play-button{height:42px;border:0;border-radius:50%;color:#06120e;background:var(--green);font-weight:900;box-shadow:0 8px 22px #43e8a333}.speed-select{height:34px;padding:0 5px;border:1px solid var(--panel-border);border-radius:9px;color:#9fb1aa;background:#ffffff0a;font-size:10px;font-weight:800;cursor:pointer}input[type=range]{width:100%;accent-color:var(--green)}.counter{min-width:54px;color:#7f928a;font-size:10px;text-align:right}.history-panel{min-height:0;display:flex;flex-direction:column;padding:15px;border-radius:16px;background:#040c0a47;box-shadow:none}.history-heading{display:flex;align-items:center;justify-content:space-between}.history-heading>span{color:#687b73;font-size:9px}.action-history{max-height:688px;display:grid;grid-template-columns:1fr;align-content:start;gap:5px;overflow:auto;margin:12px 0 0;padding:0 3px 0 0;list-style:none;scrollbar-color:#285141 transparent}.action-history li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:7px;align-items:center;padding:7px 8px;border-radius:8px;color:#50645c;background:#ffffff06;cursor:pointer;font-size:9px}.action-history li>span{font-weight:800}.action-history li strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.action-history li small{text-transform:uppercase;font-size:7px}.action-history li.is-complete{color:#869991}.action-history li.is-current{color:#eff7f3;outline:1px solid rgba(67,232,163,.28);background:#43e8a317}.action-history .history-action{display:block;padding:0;color:#d0ded7;--action-color: #a7b8c3}.history-action-button{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:7px;align-items:center;width:100%;padding:9px 8px;border:0;border-left:3px solid var(--action-color);border-radius:8px;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.history-action-button>span{color:var(--action-color);font-weight:800}.action-history .history-action strong{font-size:11px;font-weight:600}.action-history .history-action small{font-size:8px;color:#b2c2ba}.history-action-button:hover{background:#ffffff0f}.history-action-button:focus-visible{outline:2px solid #80eac0;outline-offset:-2px}.action-history .action-fold{--action-color: #91a099}.action-history .action-check{--action-color: #7cc6ee}.action-history .action-call{--action-color: #64d7b4}.action-history .action-bet,.action-history .action-raise{--action-color: #f2ac68}.action-history .action-all-in{--action-color: #ff817b}.action-history .action-collect{--action-color: #f3d17c}.action-history .action-showCards{--action-color: #bca7f4}.action-history .history-action.is-future{color:#91a69b}.history-action.is-future .history-action-button{border-left-color:transparent}.history-action.is-future .history-action-button>span{color:#91a69b}.action-history .history-action.is-current{color:#f2fff8;outline:1px solid #43e8a3;background:#43e8a321}.action-history .street-separator{grid-column:1 / -1;display:flex;gap:8px;padding:12px 2px 5px;color:#abbcc8;background:none;cursor:default;font-size:10px;font-weight:800;letter-spacing:.1em}.action-history .street-separator:after{content:"";flex:1;height:1px;background:currentColor;opacity:.25}.action-history .street-flop{color:#7cc6ee}.action-history .street-turn{color:#bca7f4}.action-history .street-river{color:#f2c075}.action-history .street-showdown{color:#f3d17c}@media (max-width: 1480px){.replay-workspace{grid-template-columns:1fr}.table-stage{min-height:540px}.action-history{max-height:150px;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 980px){.workspace{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr}.table-stage{min-height:500px}}@media (max-width: 680px){.topbar{height:74px;padding:0 16px}.parser-status{display:none}.workspace{padding:10px}.sidebar{grid-template-columns:1fr}.replayer-panel{padding:12px}.replayer-heading{align-items:flex-start;gap:12px;flex-direction:column}.replayer-tools{width:100%;align-items:stretch;flex-direction:column}.deck-picker{justify-content:space-between}.deck-picker select{min-width:140px}.street-tabs{width:100%;overflow-x:auto}.street-tabs span{flex:1;text-align:center;padding:7px 6px}.table-stage{min-height:420px}.poker-table{width:94%;height:78%}.player-seat{width:105px}.player-info{padding:7px}.playing-card.is-compact{width:29px;height:41px}.playing-card.is-compact .card-rank,.playing-card.is-compact .card-suit{font-size:12px}.player-seat.is-hero .playing-card.is-compact{width:43px;height:60px}.player-seat.is-hero .playing-card.is-compact .card-rank,.player-seat.is-hero .playing-card.is-compact .card-suit{font-size:18px}.board{gap:4px;min-height:66px}.board .playing-card{width:44px;height:62px}.board .card-rank,.board .card-suit{font-size:18px}.transport{grid-template-columns:32px 32px 40px 32px 32px}.transport .speed-select{grid-column:span 5;justify-self:end}.transport input,.transport .counter{grid-column:span 5}.action-history{grid-template-columns:1fr}}:root{--panel: #131719;--panel-border: #292e30;--muted: #9ba5a1;--green: #80c8aa;--green-dark: #387c61;--gold: #ddbd80;background:#0c0f11;color:#e9edea}body{background:#0c0f11}.topbar{height:72px;padding:0 26px;background:#101416;-webkit-backdrop-filter:none;backdrop-filter:none}.brand{gap:12px}.brand-mark{width:36px;height:36px;border:1px solid #3b5147;border-radius:10px;background:#1b2d25;color:#a2d0b9;box-shadow:none;font-size:23px}.eyebrow{color:#929d97;font-size:9px;letter-spacing:.14em;line-height:1.4;margin-bottom:4px}h1,h2{font-size:18px;font-weight:600}h3{font-size:14px;font-weight:600}.parser-status{border:0;background:none;color:#9daaa3;font-size:11px;padding:0}.parser-status span,.library-status.is-connected span{box-shadow:none}.workspace{grid-template-columns:272px minmax(0,1fr);gap:16px;padding:20px;min-height:calc(100vh - 72px)}.sidebar{gap:12px}.panel,.replayer-panel,.history-panel{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.panel{border-radius:12px;padding:17px}.step-badge{display:none}.panel-heading{margin-bottom:18px}.library-status{background:transparent;padding:0;margin:0 0 17px;font-size:10px;font-weight:500}.library-status.is-connected{background:none;color:#a2b7aa}.library-filters{gap:12px 8px}.library-filters label>span{font-size:9px;font-weight:600;letter-spacing:.04em;margin-bottom:6px}.library-filters input,select,textarea{background:#0e1214;border-color:#303739;border-radius:7px;color:#dbe2dc}.library-filters input{min-height:36px;font-size:11px}.primary-button{background:#79bd9f;color:#10251b;border-radius:7px;padding:11px;font-size:12px;font-weight:700;box-shadow:none;margin-top:14px}.feedback{font-size:11px;line-height:1.5}.feedback:empty{min-height:0;margin:0}.manual-loader summary{font-size:11px;line-height:1.5;color:#a6b2ab}.file-drop{border-radius:8px;border-color:#426652;background:#17251e}.file-drop:hover,.file-drop.is-dragging{transform:none}.library-result{border-radius:7px;background:#101617}.library-result strong{font-size:11px}.library-result span,.library-result small{font-size:10px}.hand-stats{line-height:1.5;font-size:11px}.hand-stats dd{font-variant-numeric:tabular-nums;font-weight:600}.replayer-panel{padding:18px;border-radius:14px;background:#111618}.replayer-heading{gap:16px;margin-bottom:18px}.replayer-tools{flex-wrap:wrap}.deck-picker{border:0;background:transparent;padding:0;gap:8px}.deck-picker>span{text-transform:none;font-size:11px;font-weight:500;letter-spacing:0}.deck-picker select{font-size:11px;font-weight:500;min-width:106px;background:#1b2224}.street-tabs{background:#0c1112;border:1px solid #262e30;border-radius:7px;padding:3px;gap:2px}.street-tabs span{color:#8b9991;border-radius:4px;padding:6px 8px;font-size:9px;font-weight:600}.street-tabs span.is-active{background:#2a4839;color:#c8ebd9;box-shadow:none}.replay-workspace{grid-template-columns:minmax(0,1fr) 254px;gap:16px}.table-stage{min-height:550px;height:clamp(550px,65vh,720px);border:1px solid #242b2c;border-radius:10px;background:radial-gradient(ellipse at 50% 48%,#1c2624,#111718 54%,#0b1012);isolation:isolate}.ambient{display:none}.poker-table{width:min(76%,880px);height:auto;aspect-ratio:2 / 1;border:12px solid #282c2c;border-radius:50%;background:radial-gradient(ellipse at 50% 42%,#176333,#12502b 65%,#0e3c22);box-shadow:0 0 0 1px #484c49,0 3px 0 2px #141919,0 16px 28px #0007,inset 0 0 0 2px #111e16,inset 0 2px 7px #0008}.poker-table:before{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:inherit;pointer-events:none;opacity:.16;background:url(/table-felt.svg) repeat;mix-blend-mode:soft-light}.felt-ring{top:14px;right:14px;bottom:14px;left:14px;border-color:#86b47724;pointer-events:none}.table-center{gap:14px}.board{gap:6px;min-height:82px}.board .playing-card{width:clamp(48px,6.8cqw,72px);aspect-ratio:72 / 101}.playing-card{box-shadow:0 3px 7px #0005;border-radius:6px}.playing-card.is-vector,.player-seat.is-hero .playing-card.is-compact.is-vector{border:0;background:transparent}.playing-card.is-vector .card-image{object-fit:contain}.board .playing-card.is-slot{visibility:hidden}.playing-card.is-hidden{color:#9cafa7;background:repeating-linear-gradient(45deg,#263d35 0,#263d35 2px,#2a4238 2px,#2a4238 3px);border:1px solid #839b8f;text-shadow:none}.player-seat{width:clamp(104px,15cqw,138px)}.player-info{border:1px solid #404945;border-radius:22px;padding:9px 12px;background:linear-gradient(#1c2222,#121818);box-shadow:0 3px 8px #0005}.player-name strong{font-size:11px;font-weight:600;color:#e3e9e5}.player-name span{color:#cfc4a6}.player-stack{margin-top:5px;font-size:14px;font-weight:600;color:#f1f5f2;letter-spacing:.015em}.player-seat.is-hero .player-info{border-color:#81ac93;background:linear-gradient(#253b31,#1b2c24)}.player-seat.is-acting .player-info{border-color:#e0c78d;box-shadow:0 0 0 1px #e0c78d,0 4px 12px #0005}.player-seat.is-winner .player-info{box-shadow:0 0 0 1px #c8b279,0 3px 8px #0005}.player-seat.is-folded{opacity:.48}.player-seat.is-hero .playing-card.is-compact{width:clamp(50px,6.4cqw,70px);box-shadow:0 3px 7px #0006}.hole-cards{margin-bottom:-2px}.hole-cards .playing-card:first-child{transform:rotate(-2deg)}.hole-cards .playing-card+.playing-card{transform:rotate(2deg);margin-left:-4px}.pot-label{padding:5px 10px;border-radius:5px;color:#b2c5b5;background:#08231599;font-size:10px;letter-spacing:.08em}.pot-label strong{color:#f2e8ca;font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}.pot-breakdown{border-radius:5px;font-size:10px;margin-top:0}.table-bet strong,.pot-collection strong{border-color:#b1ac7840;background:#11261bee;box-shadow:0 2px 4px #0004;color:#e8dfbf;border-radius:5px}.chip-stack{filter:drop-shadow(0 2px 2px #0006)}.table-bet.is-hero-bet{left:calc(50% + clamp(76px,11cqw,112px))!important;top:76%!important}.action-banner{border-radius:7px;background:#19221e;border-color:#304036;padding:11px 14px;margin-top:12px}.action-number{font-size:18px;font-weight:500;color:#bfd0c4}.action-banner p{color:#a0b0a5;font-size:9px;letter-spacing:.08em}.action-banner strong{font-size:13px;font-weight:500}.transport{padding:14px 0 0;gap:8px}.transport button,.speed-select{border-radius:6px;background:#1b2223;border-color:#353e3d}.transport button{font-size:17px}.transport .play-button{border-radius:8px;background:#80c8aa;box-shadow:none;font-size:14px}.counter{color:#b1bdb5;font-variant-numeric:tabular-nums;font-size:11px}.history-panel{border-radius:9px;padding:14px;background:#101517;border-color:#2a3232}.history-heading>span{color:#9aa8a0}.action-history{gap:3px;scrollbar-color:#47544c transparent}.action-history .history-action{background:transparent}.history-action-button{border-left-width:2px;border-radius:4px;padding:9px 7px}.action-history .history-action strong{font-weight:500}.action-history .history-action.is-current{outline:1px solid #749d86;background:#263c30}.action-history .street-separator{padding-top:17px;font-size:9px}button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #a8d4bc;outline-offset:3px}@media (max-width: 1580px){.replay-workspace{grid-template-columns:1fr}.history-panel{margin-top:2px}.action-history{max-height:185px;grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 1100px){.workspace{grid-template-columns:232px minmax(0,1fr);gap:12px;padding:14px}.replayer-heading{flex-wrap:wrap}.replayer-tools{justify-content:flex-start}.table-stage{min-height:530px;height:530px}}@media (max-width: 980px){.workspace{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr}.replayer-panel{grid-row:1}}@media (max-width: 680px){.topbar{height:64px;padding:0 16px}.workspace,.replayer-panel{padding:10px}.replayer-heading,.replayer-tools{gap:10px}.table-stage{min-height:500px;height:500px}.poker-table{width:88%;height:75%;aspect-ratio:auto;border-width:7px;border-radius:50%}.felt-ring{top:10px;right:10px;bottom:10px;left:10px}.player-seat{width:90px;left:var(--compact-left)!important;top:var(--compact-top)!important}.player-info{padding:7px 5px}.player-name strong{font-size:10px}.player-stack{font-size:12px}.board{gap:3px;min-height:56px}.board .playing-card{width:clamp(32px,9cqw,44px);height:auto}.table-center{gap:10px;transform:translateY(21px)}.player-seat.is-hero .playing-card.is-compact{width:43px;height:60px}.playing-card.is-compact{width:28px;height:39px}.table-bet{gap:3px}.table-bet strong{font-size:9px;min-width:26px;padding:4px}.table-bet.is-hero-bet{top:90%!important}.chip-stack{transform:scale(.8);transform-origin:right center}.sidebar,.action-history{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}[hidden]{display:none!important}.workspace{max-width:1800px;margin:auto;grid-template-columns:300px minmax(0,1fr);align-items:start}.topbar{height:80px}.loader-intro,.privacy-note,.welcome p,dialog p{color:var(--muted);font-size:13px;line-height:1.7}.loader-intro{margin:12px 0 24px}.loader-panel{padding:24px}.file-drop{min-height:140px;padding:12px;text-align:center}.file-drop strong{font-size:12px}textarea{min-height:180px;font-size:12px}.privacy-note{font-size:11px;margin-top:20px}.hero-identity{margin:12px 0 0;padding:0;border:0}.hero-identity legend{margin-bottom:7px;color:#91a69c;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero-identity-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}.hero-identity-options label{min-width:0;cursor:pointer}.hero-identity-options input{position:absolute;opacity:0;pointer-events:none}.hero-identity-options span{display:flex;min-height:48px;padding:7px 9px;border:1px solid #303d37;border-radius:7px;flex-direction:column;justify-content:center;background:#141d19;transition:border-color .15s,background .15s}.hero-identity-options strong{color:#c8d7cf;font-size:11px}.hero-identity-options small{margin-top:2px;overflow:hidden;color:#82938b;font-size:9px;text-overflow:ellipsis;white-space:nowrap}.hero-identity-options input:checked+span{border-color:#79bd9f;background:#1a2b23;box-shadow:inset 0 0 0 1px #79bd9f1f}.hero-identity-options input:checked+span strong{color:#9bd1b9}.hero-identity-options input:focus-visible+span{outline:2px solid #a8d4bc;outline-offset:2px}.secondary-button{border:1px solid #36433d;border-radius:7px;padding:10px 14px;background:transparent;color:#b8cec2;cursor:pointer;font-size:12px}.secondary-button:hover{background:#22352b}.loader-panel .secondary-button{width:100%;margin-top:10px}.welcome{align-self:center;padding:40px clamp(20px,5vw,90px)}.welcome .eyebrow{font-size:10px;color:#80c8aa}.welcome h2{font-size:clamp(32px,4vw,62px);line-height:1.13;font-weight:500;margin:20px 0}.welcome-table{width:min(90%,580px);aspect-ratio:2 / 1;border:8px solid #292f2d;border-radius:50%;margin:38px 0;display:grid;place-items:center;background:radial-gradient(ellipse,#175a35,#10341f);box-shadow:0 0 0 1px #414c45,inset 0 2px 12px #0009,0 20px 40px #0004}.welcome-table span{font-size:48px;color:#87b09738}.room-list{display:flex;flex-wrap:wrap;gap:10px 24px;color:#ccd5d0;font-size:13px}.welcome .welcome-caption{font-size:11px}.replay-actions{display:flex;justify-content:space-between;margin-bottom:20px}.replayer-heading h2{overflow-wrap:anywhere}.hand-stats{margin-top:0}dialog{width:min(520px,calc(100% - 32px));max-height:90vh;overflow:auto;padding:28px;color:#e9edea;background:#151c19;border:1px solid #405248;border-radius:16px}dialog::backdrop{background:#030706cc}.dialog-heading{display:flex;align-items:center;justify-content:space-between}.dialog-heading button{border:0;background:none;font-size:26px;cursor:pointer}dialog h2{font-size:26px}dialog .field-label{margin-top:24px}.share-options{display:grid;gap:8px;margin:20px 0;padding:0;border:0}.share-options legend{margin-bottom:8px;color:#dce9e1;font-size:12px;font-weight:700}.share-option{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px;border:1px solid #34463c;border-radius:9px;background:#101814;cursor:pointer}.share-option:has(input:checked){border-color:#78bea2;background:#17271f}.share-option input{margin-top:3px;accent-color:#82cbb1}.share-option span{display:grid;gap:3px}.share-option strong{color:#e3eee8;font-size:12px}.share-option small{color:var(--muted);font-size:11px;line-height:1.45}.decision-picker{margin:-4px 0 18px;padding:12px;border:1px solid #35483e;border-radius:9px;background:#0f1713}.decision-picker .field-label{display:block;margin:0 0 7px}.decision-picker select{width:100%}.decision-picker small{display:block;margin-top:7px;color:var(--muted);font-size:10px;line-height:1.4}.decision-prompt{display:flex;min-height:64px;margin-top:10px;padding:10px 12px;border:1px solid rgba(121,189,159,.38);border-radius:8px;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#17271f,#101a16)}.decision-copy{min-width:0}.decision-copy p{margin:0 0 3px;color:#82cbb1;font-size:8px;font-weight:800;letter-spacing:.11em}.decision-copy strong{color:#edf5f0;font-size:12px}.decision-copy span{display:block;margin-top:3px;color:#a9bdb3;font-size:10px}.decision-buttons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.decision-buttons button{padding:8px 11px;border:1px solid #496357;border-radius:7px;color:#d9e8e0;background:#14211b;cursor:pointer;font-size:10px;font-weight:700}.decision-buttons button:hover,.decision-buttons button:focus-visible{border-color:#8bc9ae;background:#20372c}#shareUrl{width:100%;padding:12px;border:1px solid #405248;background:#0c1410;border-radius:6px;color:#d3e5da;font-size:12px;margin-bottom:12px}textarea:focus-visible,.file-drop:focus-visible{outline:2px solid #a8d4bc;outline-offset:3px}.action-history{position:relative}.pot-collection{animation-fill-mode:both}@media (prefers-reduced-motion: reduce){.pot-collection{display:none}}.has-hand .sidebar{display:none}.has-hand .workspace{grid-template-columns:minmax(0,1fr)}.replayer-panel .hand-panel{padding:10px 0;margin-bottom:12px;background:none;border:0;border-top:1px solid var(--panel-border);border-radius:0}.replayer-panel .hand-panel .panel-heading{display:none}.replayer-panel .hand-stats{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;padding:0;border:0}.replayer-panel .hand-stats dd{margin-right:22px}.has-hand .topbar{height:60px}.has-hand .workspace{min-height:0;padding:12px 20px}.has-hand .replay-actions,.has-hand .replayer-heading{margin-bottom:10px}#replayFeedback:empty{display:none}@media (min-width: 1100px) and (min-height: 720px){.has-hand .replayer-panel{height:calc(100dvh - 84px);padding:14px 18px;display:flex;flex-direction:column}.has-hand .replay-workspace{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) 260px}.has-hand .game-column{display:flex;flex-direction:column;min-height:0}.has-hand .table-stage{flex:1;height:auto;min-height:0;container-type:size}.has-hand .poker-table{width:min(78%,1000px,calc((100cqh - 160px)*2))}.has-hand .history-panel{margin-top:0;min-height:0}.has-hand .action-history{flex:1;min-height:0;max-height:none;grid-template-columns:1fr}.has-hand .action-banner,.has-hand .transport{flex-shrink:0}.has-hand .player-seat{width:clamp(100px,11cqw,138px)}.has-hand .board .playing-card{width:clamp(42px,5.8cqw,72px)}}@media (max-width: 680px){.has-hand .workspace{padding:10px}.replayer-panel .hand-stats{display:grid;grid-template-columns:repeat(2,auto minmax(0,1fr));gap:5px 8px;font-size:10px}.replayer-panel .hand-stats dd{margin:0}}@media (min-width: 1100px) and (min-height: 720px) and (max-height: 850px){.has-hand .poker-table{width:min(78%,calc((100cqh - 120px)*2));container-type:inline-size}.has-hand .player-seat{width:92px}.has-hand .player-info{padding:6px 5px}.has-hand .player-stack{font-size:12px}.has-hand .player-name strong{font-size:10px}.has-hand .player-name span{font-size:6px}.has-hand .board{min-height:52px;gap:4px}.has-hand .board .playing-card{width:clamp(36px,7cqw,48px)}.has-hand .playing-card.is-compact{width:32px}.has-hand .player-seat.is-hero .playing-card.is-compact{width:46px}.has-hand .table-center{gap:7px}}@media (min-width: 981px){body:not(.has-hand) .workspace{grid-template-columns:360px minmax(0,1fr);min-height:calc(100vh - 80px)}body:not(.has-hand) .sidebar{align-self:center}}@media (max-width: 980px){.workspace{grid-template-columns:1fr}.sidebar{display:flex}.welcome{grid-row:1;padding:28px 14px 12px}.welcome-table{display:none}.has-hand .sidebar{grid-row:2}.has-hand .replayer-panel{grid-row:1}}@media (max-width: 680px){.parser-status{display:none}.topbar{height:68px}.brand h1{font-size:16px}.replayer-tools{width:100%}.street-tabs{overflow-x:auto;max-width:100%}.transport{grid-template-columns:repeat(5,1fr) 58px}#timeline{grid-column:1 / 6;min-width:0}.counter{grid-column:6;text-align:center}.player-seat{width:78px}.player-info{padding:7px 3px}.player-stack{font-size:11px}.player-name{gap:2px}.player-name span{font-size:6px}.table-stage{height:580px;min-height:580px}.table-center{transform:translateY(12px)}.table-bet.is-hero-bet{left:76%!important;top:83%!important}.decision-prompt{align-items:stretch;flex-direction:column}.decision-buttons{justify-content:stretch}.decision-buttons button{flex:1}}
