:root{--felt:#0f3a26;--felt-dark:#0a2a1a;--chip-edge:#ffffff26;--text:#f5f5f5;--text-dim:#f5f5f5a6;--accent:#f2c14e;--win:#4ad17b;--loss:#e26666;--push:#d4cf8a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:var(--felt);color:var(--text);-webkit-tap-highlight-color:transparent;font-family:-apple-system,system-ui,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}body{min-height:100svh;margin:0}#app{min-height:100svh}.table{min-height:100svh;padding:env(safe-area-inset-top,1rem) 1rem env(safe-area-inset-bottom,1rem);flex-direction:column;gap:1rem;max-width:720px;margin:0 auto;display:flex}.status{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:flex-start;padding-bottom:.5rem;display:flex}.status h1{letter-spacing:.02em;margin:0;font-size:1.1rem;font-weight:600}.bankroll-block{flex-direction:column;align-items:flex-end;gap:.15rem;display:flex}.bankroll{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.stats-line{color:var(--text-dim);font-variant-numeric:tabular-nums;align-items:baseline;gap:.55rem;font-size:.78rem;display:flex}.stats-line .stat-delta.up{color:var(--win);font-weight:600}.stats-line .stat-delta.down{color:var(--loss);font-weight:600}.stats-line .stat-delta.flat{color:var(--text-dim)}.stats-line .new-game,.stats-line .end-game{color:var(--text-dim);padding:0 .2rem;font-size:.78rem}.stats-line .new-game:hover,.stats-line .end-game:hover{color:var(--accent)}.stats-line .stats-toggle{color:var(--text-dim);align-items:baseline;gap:.25rem;padding:0 .2rem;font-size:.78rem;text-decoration:none;display:inline-flex}.stats-line .stats-toggle:hover{color:var(--accent)}.stats-line .stats-toggle .chevron{opacity:.7;font-size:.7rem}.stats-panel{background:#00000040;border:1px solid #ffffff0d;border-radius:10px;padding:.5rem .75rem}.stats-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.85rem}.stats-table th{text-align:left;color:var(--text-dim);padding:.18rem .5rem .18rem 0;font-weight:500}.stats-table td{text-align:right;padding:.18rem 0;font-weight:600}.stats-table tr.net th,.stats-table tr.net td{border-top:1px solid #ffffff1a;padding-top:.4rem;font-size:.95rem}.session-summary .stats-table{padding:.5rem 0;font-size:.95rem}.session-summary .stats-table th{padding:.3rem .5rem .3rem 0}.session-summary .stats-table td{padding:.3rem 0}.session-summary .hint{font-size:.9rem}.count-line{font-variant-numeric:tabular-nums;align-items:baseline;gap:.4rem;font-size:.78rem;display:flex}.count-line .count-label{color:var(--text-dim)}.count-line .count-value{background:#00000040;border-radius:4px;padding:.05rem .4rem;font-size:.95rem;font-weight:700}.count-line .count-value.positive{color:var(--win)}.count-line .count-value.negative{color:var(--loss)}.count-line .count-value.neutral{color:var(--text-dim)}.count-line .count-toggle{color:var(--text-dim);padding:0 .2rem;font-size:.78rem}.count-line .count-toggle:hover{color:var(--accent)}.dealer,.player{flex-direction:column;align-items:center;gap:.5rem;display:flex}.dealer h2,.player h2{letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);align-items:center;gap:.5rem;margin:0;font-size:.85rem;font-weight:500;display:flex}.dealer h2 .total{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:0;background:#00000040;border-radius:4px;padding:.1rem .45rem;font-size:.95rem;font-weight:700}.dealer.empty,.player.empty{justify-content:center;min-height:100px}.hint{color:var(--text-dim);text-align:center;margin:0;font-size:.9rem}.limits{text-align:center;color:var(--text-dim);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:.8rem}.hands-wrapper{flex-flow:wrap;justify-content:center;align-items:flex-start;gap:.6rem;width:100%;display:flex}.player-hand{border:2px solid #0000;border-radius:10px;flex-direction:column;flex:0 auto;align-items:center;gap:.3rem;width:auto;min-width:170px;padding:.6rem .5rem;display:flex}.player-hand.active{border-color:var(--accent);background:#f2c14e0f}.hand-info{font-variant-numeric:tabular-nums;align-items:center;gap:.75rem;font-size:.95rem;display:flex}.hand-info .total{font-weight:700}.hand-info .bet{color:var(--accent);font-weight:600}.hand-info .status-badge{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);background:#00000040;border-radius:3px;padding:.1rem .4rem;font-size:.75rem}.hand-info .outcome{border-radius:4px;padding:.1rem .5rem;font-size:.85rem;font-weight:700}.outcome-win{background:var(--win);color:#042}.outcome-loss{background:var(--loss);color:#410}.outcome-push{background:var(--push);color:#321}.hand{flex-wrap:wrap;justify-content:center;gap:4px;min-height:86px;display:flex}.card{-webkit-user-select:none;user-select:none;width:56px;height:80px;animation:.26s cubic-bezier(.2,.6,.2,1) both deal-in;animation-delay:calc((var(--deal-i,0) - var(--deal-base,0)) * 80ms);transform-origin:top;background:#fbfbfb;border:1px solid #00000026;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;font-weight:700;display:flex;box-shadow:0 2px 4px #00000040}@keyframes deal-in{0%{opacity:0;transform:translate(28px,-36px)rotate(8deg)scale(.92)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@media (prefers-reduced-motion:reduce){.card{animation:none}}.card[data-color=red]{color:#c01616}.card[data-color=black]{color:#1a1a1a}.card-rank{font-size:1.2rem;line-height:1}.card-suit{font-size:1.5rem;line-height:1}.card-back{background:repeating-linear-gradient(45deg,#15604a 0 6px,#0d4736 6px 12px);border-color:#00000059}.settlement{text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;align-self:center;padding:.4rem .75rem;font-weight:700}.settlement.win{color:var(--win);background:#4ad17b2e;border:1px solid #4ad17b4d}.settlement.loss{color:var(--loss);background:#e266662e;border:1px solid #e266664d}.settlement.push{color:var(--push);background:#d4cf8a2e;border:1px solid #d4cf8a4d}.settlement-amount{font-size:1.2rem}.shoe-warning{text-align:center;font-variant-numeric:tabular-nums;color:var(--accent);background:#f2c14e14;border:1px solid #f2c14e4d;border-radius:6px;align-self:center;padding:.3rem .65rem;font-size:.85rem}.controls{background:#00000040;border-radius:12px;flex-direction:column;gap:.6rem;margin-top:auto;padding:.75rem;display:flex}.bet-display{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:.5rem;display:flex}.bet-display .bet-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em;font-size:.75rem}.bet-display .bet-amount{color:var(--accent);font-size:1.3rem;font-weight:700}.chips,.buttons{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}button{border:1px solid var(--chip-edge);min-height:44px;color:var(--text);cursor:pointer;background:#ffffff14;border-radius:999px;padding:.5rem 1rem;font-family:inherit;font-size:1rem;font-weight:600;transition:transform 50ms,background .15s}button:hover:not(:disabled){background:#ffffff24}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.35;cursor:not-allowed}button.primary{background:var(--accent);color:#1a1200;border-color:#00000026}button.primary:hover:not(:disabled){background:#f7cf6a}button.link{color:var(--text-dim);background:0 0;border:none;min-height:auto;padding:0 .25rem;font-size:.85rem;text-decoration:underline}.setup-form{background:#00000040;border-radius:12px;flex-direction:column;gap:1rem;padding:1.25rem;display:flex}.setup-form h2{margin:0;font-size:1.1rem;font-weight:600}.setup-field{grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:.2rem .75rem;display:grid}.setup-field .field-label{grid-area:1/1;font-weight:600}.setup-field input{width:110px;height:40px;color:var(--text);font-variant-numeric:tabular-nums;text-align:right;background:#ffffff14;border:1px solid #fff3;border-radius:8px;grid-area:1/2;padding:.4rem .6rem;font-family:inherit;font-size:1rem}.setup-field input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:#0000}.setup-field .field-default{color:var(--text-dim);grid-area:2/1/auto/-1;font-size:.8rem}.setup-error{min-height:1.2rem;color:var(--loss);text-align:center;font-size:.9rem}.bet-box{background:#ffffff0a;border:1px solid #ffffff0f;border-radius:10px;flex-direction:column;gap:.5rem;padding:.6rem .5rem;display:flex}.bet-amount.invalid{color:var(--loss)}.hands-selector{justify-content:center;align-items:center;gap:.75rem;padding:.25rem 0;display:flex}.hands-selector .hands-label{letter-spacing:.02em;font-variant-numeric:tabular-nums;font-weight:600}.hands-selector .round-btn{border-radius:50%;width:36px;height:36px;min-height:36px;padding:0;font-size:1.2rem;line-height:1}.box-label{color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase;font-size:.85rem;font-weight:700}.toast{top:calc(env(safe-area-inset-top,0px) + .75rem);color:var(--accent);text-align:center;opacity:0;z-index:100;pointer-events:none;background:#0f3a26f5;border:1px solid #f2c14e66;border-radius:8px;max-width:calc(100vw - 2rem);padding:.55rem .9rem;font-size:.88rem;font-weight:600;transition:opacity .3s,transform .3s;position:fixed;left:50%;transform:translate(-50%)translateY(-.5rem);box-shadow:0 4px 14px #00000059}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (width<=380px){.card{width:48px;height:70px}.card-rank{font-size:1rem}.card-suit{font-size:1.3rem}}
