*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--bg:#0d1a0f;--bg-card:#1a2e1c;--bg-card2:#1f3522;--border:#2d4a2f;--text-primary:#e8f5e9;--text-secondary:#a5d6a7;--text-muted:#6a9b6c;--accent-green:#4caf50;--accent-yellow:#ffc107;--accent-orange:#ff9800;--accent-red:#f44336;--accent-blue:#2196f3;--accent-purple:#9c27b0;--ball-color:#4caf50;--strike-color:#ff9800;--out-color:#f44336;color:var(--text-primary);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}html,body,#root{width:100%;height:100%;overflow-x:hidden}body{background:var(--bg);overscroll-behavior:none}button{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;border:none;outline:none;font-family:inherit}button:focus-visible{outline:2px solid var(--accent-green);outline-offset:2px}input{font-family:inherit}.app{background:var(--bg);flex-direction:column;gap:0;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.setup-screen{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:100dvh;padding:24px 20px;display:flex}.setup-logo{font-size:64px;line-height:1}.setup-title{color:var(--text-primary);letter-spacing:-.5px;font-size:2rem;font-weight:800}.setup-subtitle{color:var(--text-muted);margin-bottom:8px;font-size:.9rem}.setup-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:16px;width:100%;padding:20px;display:flex}.setup-field{flex-direction:column;gap:6px;display:flex}.setup-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;font-size:.8rem;font-weight:600}.setup-input{border:1.5px solid var(--border);background:var(--bg);height:52px;color:var(--text-primary);border-radius:10px;padding:0 14px;font-size:1.1rem;transition:border-color .2s}.setup-input:focus{border-color:var(--accent-green);outline:none}.setup-toggle-row{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.toggle-btn{letter-spacing:.5px;border-radius:20px;height:40px;padding:0 20px;font-size:.85rem;font-weight:700;transition:background .2s,color .2s}.toggle-on{background:var(--accent-green);color:#fff}.toggle-off{background:var(--bg);color:var(--text-muted);border:1.5px solid var(--border)}.setup-note{color:var(--accent-yellow);background:#ffc1071a;border-radius:8px;padding:8px 12px;font-size:.8rem;line-height:1.5}.setup-start-btn{background:var(--accent-green);color:#fff;letter-spacing:.5px;border-radius:14px;width:100%;height:58px;margin-top:4px;font-size:1.2rem;font-weight:700;transition:background .2s,transform .1s}.setup-start-btn:active{background:#388e3c;transform:scale(.98)}.timer-bar{background:var(--bg-card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.timer-display{background:var(--bg);border:1.5px solid var(--border);border-radius:10px;flex:1;align-items:center;gap:8px;padding:8px 14px;transition:background .2s,border-color .2s;display:flex}.timer-display:active{background:var(--bg-card2)}.timer-icon{font-size:1rem}.timer-value{font-variant-numeric:tabular-nums;color:var(--text-primary);letter-spacing:1px;font-size:1.4rem;font-weight:700}.timer-badge{background:var(--accent-red);color:#fff;letter-spacing:.5px;border-radius:6px;padding:2px 6px;font-size:.65rem;font-weight:700;animation:1s ease-in-out infinite pulse}.timer-red .timer-value{color:var(--accent-red)}.timer-yellow .timer-value{color:var(--accent-yellow)}.inning-display{flex-direction:column;align-items:center;gap:1px;min-width:60px;display:flex}.inning-arrow{color:var(--accent-yellow);font-size:1rem;line-height:1}.inning-number{color:var(--text-primary);font-size:1.1rem;font-weight:800;line-height:1.1}.extra-tag{color:var(--accent-purple);text-transform:uppercase;letter-spacing:.5px;font-size:.6rem;font-weight:700}.scoreboard{background:var(--bg-card);border-bottom:1px solid var(--border);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:14px 14px 10px;display:grid}.team-col{border:1.5px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;transition:border-color .2s,background .2s;display:flex}.team-active{border-color:var(--accent-green);background:#4caf5012}.team-name{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:.8rem;font-weight:700;overflow:hidden}.kicking-badge{background:var(--accent-green);color:#fff;letter-spacing:.5px;border-radius:6px;padding:2px 6px;font-size:.6rem;font-weight:700}.score-row{align-items:center;gap:8px;display:flex}.score-value{color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:center;min-width:44px;font-size:2.6rem;font-weight:900;line-height:1}.score-btn{border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.4rem;font-weight:700;line-height:1;transition:background .15s,transform .1s;display:flex}.score-btn:active{transform:scale(.9)}.score-btn.plus{background:var(--accent-green);color:#fff}.score-btn.minus{background:var(--bg);color:var(--text-secondary);border:1.5px solid var(--border)}.mercy-indicator{color:var(--text-muted);text-align:center;font-size:.68rem;font-weight:600}.mercy-hit{color:var(--accent-red);font-weight:700;animation:1.5s ease-in-out infinite pulse}.score-divider{flex-direction:column;align-items:center;gap:6px;display:flex}.vs-label{color:var(--text-muted);letter-spacing:1px;font-size:.75rem;font-weight:700}.inning-runs{flex-direction:column;align-items:center;gap:1px;display:flex}.inning-runs-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.55rem}.inning-runs-value{color:var(--accent-yellow);font-size:.85rem;font-weight:700}.diamond-wrapper{flex-direction:column;align-items:center;gap:6px;padding:12px 16px 4px;display:flex}.diamond-grid{width:200px;height:200px;position:relative}.diamond-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.diamond-cell{position:absolute}.diamond-second{top:0;left:50%;transform:translate(-50%)}.diamond-third{top:50%;left:0;transform:translateY(-50%)}.diamond-first{top:50%;right:0;transform:translateY(-50%)}.diamond-home{bottom:0;left:50%;transform:translate(-50%)}.base-btn{border:2px solid var(--border);background:var(--bg-card);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:60px;height:60px;transition:background .15s,border-color .15s,transform .1s;display:flex}.base-btn:active{transform:scale(.92)}.base-empty{background:var(--bg-card);border-color:var(--border)}.base-occupied{border-color:var(--accent-yellow);background:#ffc10726}.base-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:.65rem;font-weight:700}.base-occupied .base-label{color:var(--accent-yellow)}.runner-dot{color:var(--accent-yellow);font-size:1.1rem;line-height:1}.home-plate{background:var(--bg-card);border:2px solid var(--border);border-radius:10px;justify-content:center;align-items:center;width:60px;height:60px;display:flex}.home-plate .base-label{font-size:.6rem}.diamond-hint{color:var(--text-muted);font-size:.7rem;font-style:italic}.count-display{background:var(--bg-card);border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:center;align-items:center;gap:0;padding:12px 16px;display:flex}.count-item{flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px 4px;display:flex}.count-label{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);font-size:.65rem;font-weight:700}.count-number{font-variant-numeric:tabular-nums;font-size:2.2rem;font-weight:900;line-height:1}.balls-color{color:var(--ball-color)}.strikes-color{color:var(--strike-color)}.outs-color{color:var(--out-color)}.dots-row{gap:4px;display:flex}.dot{border:1.5px solid var(--border);border-radius:50%;width:10px;height:10px}.dot-empty{background:0 0}.dot-filled{border-color:#0000}.count-divider{background:var(--border);flex-shrink:0;width:1px;height:60px}.action-panel{flex-direction:column;gap:10px;padding:16px;display:flex}.action-row{align-items:stretch;gap:8px;display:flex}.action-btn{letter-spacing:.2px;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:56px;padding:4px 8px;font-size:.9rem;font-weight:700;transition:background .15s,transform .1s,opacity .2s;display:flex;position:relative}.action-btn:active:not(:disabled){transform:scale(.96)}.action-btn:disabled{opacity:.35;cursor:not-allowed}.btn-badge{letter-spacing:.3px;color:#ffffffd9;background:#00000040;border-radius:5px;padding:1px 5px;font-size:.6rem;font-weight:700}.btn-sub{color:#ffffffb3;font-size:.65rem;font-weight:600}.btn-ball{color:#a5d6a7;border:1.5px solid var(--accent-green);background:#1b5e20}.btn-ball:active:not(:disabled){background:#2e7d32}.btn-strike{color:#ffcc80;border:1.5px solid var(--accent-orange);background:#4a2800}.btn-strike:active:not(:disabled){background:#5a3200}.btn-out{color:#ef9a9a;border:1.5px solid var(--accent-red);background:#4a0000}.btn-out:active:not(:disabled){background:#5c1111}.btn-foul{color:#d7ccc8;background:#3e2723;border:1.5px solid #6d4c41}.btn-foul:active:not(:disabled){background:#4e342e}.btn-walk{color:#90caf9;border:1.5px solid var(--accent-blue);background:#0d2b4a}.btn-walk:active:not(:disabled){background:#0d3b6a}.btn-reset-count{background:var(--bg-card);color:var(--text-secondary);border:1.5px solid var(--border)}.btn-reset-count:active:not(:disabled){background:var(--bg-card2)}.btn-advance-inning{color:#b39ddb;background:#1a1a4a;border:1.5px solid #7e57c2;flex-direction:column}.btn-advance-inning:active:not(:disabled){background:#252565}.final-inning-badge{color:var(--accent-yellow);text-align:center;background:#ffc1071a;border:1px solid #ffc1074d;border-radius:10px;flex:1;justify-content:center;align-items:center;padding:8px 12px;font-size:.8rem;font-weight:700;display:flex}.danger-zone{border-top:1px solid var(--border);padding-top:6px}.btn-danger{background:var(--bg-card);width:100%;min-height:48px;color:var(--accent-red);border:1.5px solid var(--accent-red);letter-spacing:.3px;border-radius:12px;font-size:.85rem;font-weight:700;transition:background .15s,transform .1s}.btn-danger:active{background:#1a0000;transform:scale(.98)}.game-over-panel{flex-direction:column;align-items:center;gap:12px;padding:32px 20px;display:flex}.game-over-title{color:var(--accent-yellow);font-size:2rem;font-weight:900}.game-over-score{color:var(--text-secondary);text-align:center;font-size:1rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.rules-btn{color:#b39ddb;letter-spacing:.3px;white-space:nowrap;background:#1a1a2e;border:1.5px solid #7e57c2;border-radius:10px;flex-shrink:0;height:44px;padding:0 14px;font-size:.82rem;font-weight:700;transition:background .15s,transform .1s}.rules-btn:active{background:#252550;transform:scale(.96)}.rules-fab{color:#b39ddb;z-index:100;background:#1a1a2e;border:1.5px solid #7e57c2;border-radius:22px;height:44px;padding:0 18px;font-size:.85rem;font-weight:700;transition:background .15s,transform .1s;position:fixed;bottom:24px;right:20px;box-shadow:0 4px 16px #00000080}.rules-fab:active{background:#252550;transform:scale(.96)}.modal-backdrop{z-index:200;background:#000000b3;justify-content:center;align-items:flex-end;animation:.15s fade-in;display:flex;position:fixed;inset:0}.modal-sheet{border-top:1px solid var(--border);background:#111d12;border-radius:20px 20px 0 0;flex-direction:column;width:100%;max-width:480px;max-height:90dvh;animation:.2s slide-up;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 18px 12px;display:flex}.modal-title{color:var(--text-primary);font-size:1rem;font-weight:700}.modal-close{background:var(--bg-card);width:32px;height:32px;color:var(--text-secondary);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;display:flex}.modal-close:active{background:var(--bg-card2)}.modal-search-row{flex-shrink:0;padding:12px 16px 10px;position:relative}.modal-input{border:1.5px solid var(--border);background:var(--bg-card);width:100%;height:50px;color:var(--text-primary);border-radius:12px;padding:0 44px 0 14px;font-size:1rem;transition:border-color .2s}.modal-input:focus{border-color:#7e57c2;outline:none}.modal-clear{background:var(--bg-card2);width:28px;height:28px;color:var(--text-muted);border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;display:flex;position:absolute;top:50%;right:26px;transform:translateY(-50%)}.modal-results{-webkit-overflow-scrolling:touch;flex:1;padding:4px 16px 24px;overflow-y:auto}.modal-hints{padding:8px 0 12px}.modal-hint-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px;font-size:.75rem;font-weight:600}.modal-hint-chips{flex-wrap:wrap;gap:8px;display:flex}.hint-chip{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);border-radius:20px;padding:6px 14px;font-size:.82rem;font-weight:600;transition:background .15s,border-color .15s}.hint-chip:active{color:#b39ddb;background:#1a1a2e;border-color:#7e57c2}.modal-no-results{text-align:center;padding:32px 0}.modal-no-results p{color:var(--text-secondary);font-size:1rem}.modal-no-results-sub{margin-top:6px;color:var(--text-muted)!important;font-size:.85rem!important}.rule-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;margin-bottom:10px;padding:14px}.rule-card-header{flex-direction:column;gap:3px;margin-bottom:8px;display:flex}.rule-category{text-transform:uppercase;letter-spacing:.8px;color:#7e57c2;font-size:.65rem;font-weight:700}.rule-title{color:var(--text-primary);font-size:.95rem;font-weight:700;line-height:1.3}.rule-text{color:var(--text-secondary);font-size:.85rem;line-height:1.55}.rule-text mark,.rule-title mark{color:var(--accent-yellow);background:#ffc1074d;border-radius:2px;padding:0 1px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.history-row{gap:.5rem}.btn-undo,.btn-redo{color:#9fbfa2;background:#2a3a2d;flex:1;min-height:2.6rem;padding:.5rem .25rem;font-size:.85rem}.btn-undo:disabled,.btn-redo:disabled{opacity:.3;cursor:default}.btn-log{color:#b8b0f0;background:#2a2450;flex:1;min-height:2.6rem;padding:.5rem .25rem;font-size:.85rem}.btn-log:hover{background:#3a3470}.btn-out-active{box-shadow:0 0 0 2px #f59e0b,0 0 8px #f59e0b66}.out-picker{background:#1a2e1d;border:1px solid #f59e0b55;border-radius:.75rem;flex-direction:column;align-items:center;gap:.5rem;padding:.75rem .5rem .5rem;display:flex}.out-picker-label{text-transform:uppercase;letter-spacing:.08em;color:#9fbfa2;align-items:center;gap:.5rem;font-size:.75rem;display:flex}.out-picker-warning{color:#f59e0b;text-transform:none;letter-spacing:0;font-size:.7rem}.out-picker-options{justify-content:center;gap:.4rem;width:100%;display:flex}.out-option-btn{color:#e4f4e7;cursor:pointer;background:#243628;border:1px solid #3a5a3d;border-radius:.6rem;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.2rem;min-height:4rem;padding:.3rem;font-size:.7rem;transition:background .15s,transform .1s;display:flex}.out-option-btn:hover{background:#2e4a32;transform:scale(1.04)}.out-option-btn:active{transform:scale(.97)}.out-option-emoji{font-size:1.4rem;line-height:1}.out-option-label{text-align:center;color:#9fbfa2;font-size:.65rem}.out-picker-cancel{color:#6a8a6c;cursor:pointer;background:0 0;border:none;padding:.2rem .5rem;font-size:.8rem;text-decoration:underline}.log-group{border:1px solid #2a3a2d;border-radius:.5rem;margin-bottom:1rem;overflow:hidden}.log-group-header{text-transform:uppercase;letter-spacing:.06em;color:#9fbfa2;background:#1a2e1d;align-items:center;gap:.5rem;padding:.45rem .75rem;font-size:.8rem;font-weight:700;display:flex}.log-group-current .log-group-header{color:#5dde6f;background:#1e3a20}.log-current-badge{color:#5dde6f;text-transform:uppercase;letter-spacing:.08em;background:#5dde6f22;border:1px solid #5dde6f55;border-radius:9999px;padding:.1rem .5rem;font-size:.65rem}.log-event{color:#c4d8c6;border-top:1px solid #1a2a1d;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.82rem;display:flex}.log-event:first-of-type{border-top:none}.log-event-icon{flex-shrink:0;font-size:1rem}.log-event-desc{flex:1}.log-event-time{color:#6a8a6c;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.7rem}.log-ball .log-event-icon{color:#5dde6f}.log-strike .log-event-icon{color:#f97316}.log-foul .log-event-icon{color:#eab308}.log-out .log-event-icon{color:#ef4444}.log-walk .log-event-icon{color:#60a5fa}.log-run .log-event-icon{color:#a78bfa}.log-inning-end .log-event-icon,.log-other .log-event-icon{color:#94a3b8}
