:root{--color-bg-900: #140d08;--color-bg-800: #1f140b;--color-bg-700: #2a1c0f;--color-bg-600: #3a2615;--color-bg-overlay: rgba(10, 6, 3, .66);--color-parchment: #e8d8b0;--color-parchment-light: #f3e8c9;--color-parchment-dark: #d8c191;--color-parchment-edge: #c2a567;--color-wood: #8a5a2b;--color-wood-dark: #5e3a18;--color-wood-light: #a9743c;--color-leather: #6b4423;--color-gold: #e3a72e;--color-gold-light: #f6cf63;--color-gold-dark: #b06a1f;--color-gold-border: #5e3a18;--color-gold-text: #3d2208;--color-cow-red: #d0322f;--color-cow-red-dark: #9c2220;--color-bull-blue: #2f6fd0;--color-bull-blue-dark: #1f4f9c;--color-chip-green: #3aa856;--color-chip-green-dark: #27713a;--color-chip-green-light: #5ec578;--color-select-cyan: #2fd2c4;--color-select-cyan-dark: #13938a;--color-odds-maroon: #7a2b22;--color-odds-maroon-soft: #a64134;--color-coin-gold: #f1c84b;--color-coin-gold-deep: #c8901c;--color-text-on-dark: #f1e4c8;--color-text-on-dark-muted: #bda57e;--color-text-on-dark-faint: #8a7553;--color-text-on-parchment: #3d2a12;--color-text-on-parchment-muted: #6e5026;--color-success: #3aa856;--color-success-dark: #27713a;--color-danger: #d0322f;--color-danger-dark: #9c2220;--color-warning: #e3a72e;--color-dot-win: #4fb866;--color-dot-lose: #d94b48;--chart-series-1: #e3a72e;--chart-series-2: #2f6fd0;--chart-series-3: #3aa856;--chart-series-4: #d0322f;--chart-series-5: #7a2b22;--chart-grid: rgba(194, 165, 103, .5);--chart-axis: #5e3a18;--font-display: "Baloo 2", "Fredoka", "Trebuchet MS", "Segoe UI", system-ui, sans-serif;--font-body: "Nunito", "Quicksand", "Segoe UI", system-ui, sans-serif;--fs-display: 2.75rem;--lh-display: 1.05;--fs-h1: 2rem;--lh-h1: 1.15;--fs-h2: 1.5rem;--lh-h2: 1.2;--fs-h3: 1.25rem;--lh-h3: 1.25;--fs-body-lg: 1.125rem;--lh-body-lg: 1.55;--fs-body: 1rem;--lh-body: 1.6;--fs-body-sm: .875rem;--lh-body-sm: 1.5;--fs-caption: .75rem;--lh-caption: 1.4;--fs-num-xl: 2.25rem;--lh-num-xl: 1;--fs-num-md: 1.375rem;--lh-num-md: 1;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 14px;--radius-xl: 16px;--radius-pill: 999px;--shadow-panel: 0 6px 16px rgba(0, 0, 0, .45);--shadow-raised: 0 4px 10px rgba(0, 0, 0, .35);--shadow-gold-press: 0 4px 0 #7a4a1d, 0 5px 10px rgba(0, 0, 0, .35);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-8: 48px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--color-bg-900);color:var(--color-text-on-dark);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}.felt-bg{background:radial-gradient(ellipse at 50% 38%,var(--color-bg-600) 0%,var(--color-bg-800) 55%,var(--color-bg-900) 100%)}.panel{background:linear-gradient(180deg,var(--color-parchment-light) 0%,var(--color-parchment) 14%,var(--color-parchment) 86%,var(--color-parchment-dark) 100%);border:3px solid var(--color-wood);border-radius:var(--radius-xl);box-shadow:0 0 0 2px var(--color-wood-dark),inset 0 0 0 1px var(--color-parchment-edge),var(--shadow-panel);color:var(--color-text-on-parchment);padding:var(--space-5)}.panel__header{margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-5)) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-leather);color:var(--color-text-on-dark);border-radius:13px 13px 0 0;font-family:var(--font-display);font-weight:700;font-size:var(--fs-h3);letter-spacing:.02em}.btn-gold{font-family:var(--font-display);font-weight:600;font-size:var(--fs-body-lg);letter-spacing:.02em;color:var(--color-gold-text);background:linear-gradient(180deg,var(--color-gold-light) 0%,var(--color-gold) 48%,var(--color-gold-dark) 100%);border:2px solid var(--color-gold-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);cursor:pointer;box-shadow:inset 0 1px #ffffff8c,var(--shadow-gold-press);transition:transform .06s ease,filter .12s ease,box-shadow .06s ease}.btn-gold:hover{filter:brightness(1.05)}.btn-gold:active{transform:translateY(2px);box-shadow:inset 0 1px #fff6,0 2px #7a4a1d,0 3px 6px #0000004d}.btn-gold:disabled{filter:grayscale(.5) brightness(.85);box-shadow:none;cursor:not-allowed}.btn-wood{font-family:var(--font-body);font-weight:700;font-size:var(--fs-body-sm);letter-spacing:.02em;color:var(--color-text-on-dark);background:linear-gradient(180deg,var(--color-wood-light) 0%,var(--color-wood) 60%,var(--color-wood-dark) 100%);border:2px solid var(--color-wood-dark);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;transition:filter .12s ease,transform .06s ease}.btn-wood:hover{filter:brightness(1.07)}.btn-wood:active{transform:translateY(1px)}.btn-wood:disabled{filter:grayscale(.5) brightness(.8);cursor:not-allowed}.chip{font-family:var(--font-display);font-weight:800;font-size:var(--fs-num-md);font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 1px 0 var(--color-chip-green-dark);background:linear-gradient(180deg,var(--color-chip-green-light) 0%,var(--color-chip-green) 100%);border:2px solid var(--color-chip-green-dark);border-radius:var(--radius-md);min-width:56px;min-height:44px;padding:var(--space-2) var(--space-4);cursor:pointer;transition:transform .08s ease,box-shadow .12s ease,border-color .12s ease}.chip:hover{filter:brightness(1.06)}.chip.is-selected{border-color:var(--color-select-cyan);transform:scale(1.04);box-shadow:0 0 0 3px #2fd2c473,0 0 12px #2fd2c48c}.badge-cow,.badge-bull{font-family:var(--font-display);font-weight:700;color:#fff;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4)}.badge-cow{background:var(--color-cow-red);border:2px solid var(--color-cow-red-dark)}.badge-bull{background:var(--color-bull-blue);border:2px solid var(--color-bull-blue-dark)}.odds{font-family:var(--font-display);font-weight:800;font-size:var(--fs-num-xl);color:var(--color-odds-maroon);letter-spacing:.01em}.odds--soft{color:var(--color-odds-maroon-soft);font-size:var(--fs-num-md)}.odds--pill{display:inline-block;background:var(--color-parchment-light);border:1px solid var(--color-parchment-edge);border-radius:var(--radius-pill);padding:2px 14px}.input-number{font-family:var(--font-display);font-weight:700;font-size:var(--fs-num-md);font-variant-numeric:tabular-nums;text-align:right;color:var(--color-text-on-parchment);background:var(--color-parchment-light);border:2px solid var(--color-wood);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:inset 0 2px 4px #5e3a1840;outline:none;width:100%}.input-number::placeholder{color:var(--color-text-on-parchment-muted)}.input-number:focus{border-color:var(--color-gold);box-shadow:inset 0 2px 4px #5e3a1840,0 0 0 3px #e3a72e66}.input-number.is-invalid{border-color:var(--color-danger);box-shadow:inset 0 2px 4px #5e3a1840,0 0 0 3px #d0322f59}.select-parchment{font-family:var(--font-body);font-weight:700;font-size:var(--fs-body-sm);color:var(--color-text-on-parchment);background:var(--color-parchment-light);border:2px solid var(--color-wood);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);box-shadow:inset 0 2px 4px #5e3a1833;outline:none;cursor:pointer}.select-parchment:focus{border-color:var(--color-gold);box-shadow:inset 0 2px 4px #5e3a1833,0 0 0 3px #e3a72e66}.grid-table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:var(--radius-md)}.grid-table th{background:var(--color-leather);color:var(--color-text-on-dark);font-family:var(--font-body);font-weight:700;font-size:var(--fs-caption);letter-spacing:.04em;text-transform:uppercase;text-align:center;padding:var(--space-2) var(--space-3);white-space:nowrap}.grid-table td{font-variant-numeric:tabular-nums;text-align:right;color:var(--color-text-on-parchment);border:1px solid var(--color-parchment-edge);padding:var(--space-2) var(--space-3)}.grid-table tr:nth-child(2n) td{background:var(--color-parchment-dark)}.grid-table tr:nth-child(odd) td{background:var(--color-parchment)}.grid-table tr.is-active td{background:var(--color-parchment-light);box-shadow:inset 3px 0 0 var(--color-gold)}.grid-table tr.is-loss td{color:var(--color-danger-dark)}.grid-table tr.is-loss td:last-child{font-weight:800;color:var(--color-danger)}.stat-card{background:linear-gradient(180deg,var(--color-parchment-light),var(--color-parchment));border:2px solid var(--color-wood);border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--color-wood-dark),var(--shadow-raised);padding:var(--space-4)}.stat-card__label{font-size:var(--fs-caption);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-on-parchment-muted)}.stat-card__value{font-family:var(--font-display);font-weight:800;font-size:var(--fs-num-xl);font-variant-numeric:tabular-nums;color:var(--color-text-on-parchment);margin-top:var(--space-1)}.stat-card__value--up{color:var(--color-success)}.stat-card__value--down{color:var(--color-danger)}.stat-card__value--coin{color:var(--color-coin-gold-deep)}.dot{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:800;color:#fff;line-height:1}.dot--win{background:var(--color-dot-win);border:1px solid var(--color-success-dark)}.dot--lose{background:var(--color-dot-lose);border:1px solid var(--color-danger-dark)}.coin-value{font-family:var(--font-display);font-weight:800;font-variant-numeric:tabular-nums;color:var(--color-coin-gold);letter-spacing:.01em}a{color:var(--color-gold);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin:0}button{font-family:inherit}:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px}.app{min-height:100vh;padding:var(--space-5)}.app-header{max-width:1400px;margin:0 auto var(--space-5);text-align:center;padding:var(--space-4) var(--space-4) var(--space-2)}.app-header__title{font-family:var(--font-display);font-weight:800;font-size:var(--fs-h1);line-height:var(--lh-h1);color:var(--color-coin-gold);text-shadow:0 2px 0 rgba(0,0,0,.45);letter-spacing:.01em}.app-header__sub{margin-top:var(--space-2);color:var(--color-text-on-dark-muted);font-size:var(--fs-body-sm);max-width:720px;margin-left:auto;margin-right:auto}.app-main{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-5)}.app-toolbar{display:flex;justify-content:flex-end;margin-bottom:calc(-1 * var(--space-3))}.app-footer{max-width:1400px;margin:var(--space-6) auto 0;text-align:center;color:var(--color-text-on-dark-faint);font-size:var(--fs-caption);padding:var(--space-4)}.config-grid{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5)}.config-field{display:flex;flex-direction:column;gap:var(--space-1);flex:0 1 200px;min-width:150px}.config-field__label{font-weight:700;font-size:var(--fs-body-sm);color:var(--color-text-on-parchment)}.config-field__hint{font-size:var(--fs-caption);color:var(--color-text-on-parchment-muted)}.config-field__labelrow{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.config-field__time{font-size:var(--fs-caption);font-weight:700;color:var(--color-gold-dark);white-space:nowrap}.config-field__readonly{font-family:var(--font-display);font-weight:800;font-size:var(--fs-num-md);color:var(--color-gold-dark);padding:var(--space-2) 0;white-space:nowrap}.builder-block{margin-top:var(--space-4)}.builder-block:first-of-type{margin-top:0}.builder-block__title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-body);color:var(--color-text-on-parchment);margin-bottom:var(--space-1)}.builder-block__sub{font-size:var(--fs-caption);font-weight:400;color:var(--color-text-on-parchment-muted);margin-bottom:var(--space-2)}.recovery-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.spot-list{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-3)}.spot-item{display:grid;grid-template-columns:auto minmax(160px,360px) auto 110px auto;justify-content:start;align-items:center;gap:var(--space-2)}.spot-item__no{font-weight:800;color:var(--color-text-on-parchment-muted);font-size:var(--fs-body-sm)}.spot-item__odds{font-size:var(--fs-caption);padding:2px 10px;white-space:nowrap}.spot-item__amount{width:110px}.spot-empty{margin:0 0 var(--space-3);font-size:var(--fs-caption);color:var(--color-text-on-parchment-muted)}.row-controls{display:flex;align-items:center;gap:var(--space-3)}.row-controls__count{font-size:var(--fs-body-sm);color:var(--color-text-on-parchment-muted)}.table-scroll{overflow-x:auto;border-radius:var(--radius-md)}.grid-table .cell-input{width:96px;padding:4px 8px;font-size:var(--fs-body-sm)}.cell-recovery{display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.cell-recovery__odds{font-size:var(--fs-body);font-weight:700;white-space:nowrap}.grid-table .col-loop,.grid-table th.col-recovery,.grid-table td.col-recovery{text-align:center}.grid-table .col-del{text-align:center;width:1%;white-space:nowrap}.btn-row-del{border:1px solid var(--color-wood-dark);background:var(--color-wood);color:var(--color-text-on-dark);width:26px;height:26px;border-radius:6px;font-weight:800;font-size:18px;line-height:1;cursor:pointer}.btn-row-del:hover:not(:disabled){background:var(--color-danger)}.btn-row-del:disabled{opacity:.4;cursor:not-allowed}.row-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.rows-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-1)}.unit-chips{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.unit-chips__label{font-size:var(--fs-caption);color:var(--color-text-on-parchment-muted);margin-right:var(--space-1)}.unit-chip{min-width:46px;padding:5px 12px;border-radius:var(--radius-pill);border:1px solid var(--color-wood);background:var(--color-parchment-light);color:var(--color-text-on-parchment);font-weight:700;font-size:var(--fs-body-sm);cursor:pointer}.unit-chip:hover:not(:disabled){border-color:var(--color-gold-dark)}.unit-chip--active{background:var(--color-gold);border-color:var(--color-gold-dark);color:var(--color-gold-text);box-shadow:0 1px 2px #00000040}.unit-chip:disabled{opacity:.5;cursor:not-allowed}.builder-note{margin-top:var(--space-3);font-size:var(--fs-caption);line-height:1.5;color:var(--color-text-on-parchment-muted)}.builder-note__danger{color:var(--color-danger);font-weight:700}.run-bar__top{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.run-bar__btn{min-width:220px}.run-bar__status{font-size:var(--fs-body-sm);color:var(--color-text-on-parchment)}.run-bar__ok{color:var(--color-success-dark);font-weight:700}.run-bar__hint{color:var(--color-text-on-parchment-muted)}.progress{margin-top:var(--space-3);height:16px;border-radius:var(--radius-pill);background:var(--color-parchment-dark);border:1px solid var(--color-wood);box-shadow:inset 0 2px 4px #5e3a184d;overflow:hidden}.progress__fill{height:100%;background:linear-gradient(180deg,var(--color-gold-light),var(--color-gold) 60%,var(--color-gold-dark));transition:width .15s ease}.run-bar__errors{margin:var(--space-3) 0 0;padding-left:var(--space-5);color:var(--color-danger-dark);font-size:var(--fs-body-sm)}.run-bar__error{margin-top:var(--space-3);color:var(--color-danger);font-weight:700}.results-placeholder__text{color:var(--color-text-on-parchment-muted);font-size:var(--fs-body-sm)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.stat-card__note{margin-top:var(--space-2);font-size:var(--fs-caption);line-height:1.35;color:var(--color-text-on-parchment-muted)}.result-block{margin-top:var(--space-5)}.result-block__title{font-family:var(--font-display);font-weight:700;font-size:var(--fs-h3);color:var(--color-text-on-parchment);margin-bottom:var(--space-2)}.result-empty,.result-block .result-empty{color:var(--color-text-on-parchment-muted);font-size:var(--fs-body-sm)}.dist-facts{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin-bottom:var(--space-2);font-size:var(--fs-caption);color:var(--color-text-on-parchment-muted);font-variant-numeric:tabular-nums}.dist-facts__title{font-weight:800;color:var(--color-text-on-parchment)}.chart-tooltip{background:linear-gradient(180deg,var(--color-parchment-light),var(--color-parchment));border:2px solid var(--color-wood);border-radius:var(--radius-md);box-shadow:0 0 0 1px var(--color-wood-dark),var(--shadow-raised);padding:var(--space-2) var(--space-3);color:var(--color-text-on-parchment);font-size:var(--fs-body-sm)}.chart-tooltip__label{font-weight:800;margin-bottom:2px}.chart-tooltip__row{display:flex;align-items:center;gap:var(--space-2);font-variant-numeric:tabular-nums}.chart-tooltip__dot{width:10px;height:10px;border-radius:50%;display:inline-block}
