.app-root{display:flex;flex-direction:column;min-height:100vh;background:var(--bg-base)}.app-header{display:flex;align-items:center;gap:24px;padding:0 20px;height:52px;background:#081422;border-bottom:1px solid var(--border);flex-shrink:0;position:sticky;top:0;z-index:100}.header-brand{display:flex;align-items:center;gap:8px;flex-shrink:0}.brand-logo{font-size:18px}.brand-logo-img{height:22px;width:auto;display:block}.header-game-state{display:flex;align-items:center;gap:20px;flex:1}.scorebug{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:4px 14px}.scorebug-logo{width:24px;height:24px;object-fit:contain;flex-shrink:0}.scorebug-team{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.scorebug-runs{font-family:var(--font-mono);font-size:18px;font-weight:700;color:var(--text-primary);min-width:22px;text-align:center}.scorebug-divider{color:var(--text-dim);font-size:14px}.game-meta{display:flex;align-items:center;gap:12px}.inning-indicator{font-size:14px;font-weight:600;color:var(--accent);min-width:36px}.count-indicator{font-family:var(--font-mono);font-size:12px;color:var(--text-secondary)}.current-batter{display:flex;align-items:center;gap:8px}.batter-name{font-size:14px;font-weight:600;color:var(--text-primary)}.app-main{flex:1;overflow:auto;padding:20px}.lineup-wrapper{max-width:1100px;margin:0 auto;position:relative}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px;color:var(--text-secondary);font-size:15px}.error-banner{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;padding:12px 16px;color:var(--poor);margin-bottom:16px;font-size:13px}.game-layout{display:flex;flex-direction:column;gap:0;max-width:1400px;margin:0 auto;width:100%}.tab-bar{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-shrink:0}.tab-btn{padding:8px 20px;background:transparent;color:var(--text-dim);font-size:13px;font-weight:500;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;letter-spacing:.02em;transition:all .15s}.tab-btn:hover{color:var(--text-secondary)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.tab-content{flex:1;min-height:0;overflow:auto}.print-box-score{display:none}@media print{html,body,#root{background:#fff!important;color:#000!important;height:auto!important;overflow:visible!important}.app-root{display:none!important}.print-box-score{display:block!important;font-family:Georgia,Times New Roman,serif;font-size:9.5pt;color:#000;background:#fff;padding:.4in .5in;width:100%;box-sizing:border-box}.pbs-header{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid #000;padding-bottom:4pt;margin-bottom:8pt}.pbs-brand{font-size:12pt;font-weight:700;letter-spacing:.04em}.pbs-date{font-size:9pt;color:#444}.pbs-score-banner{display:flex;align-items:baseline;gap:8pt;margin-bottom:10pt;flex-wrap:wrap}.pbs-team-abbr{font-size:11pt;font-weight:700;font-family:monospace;letter-spacing:.06em}.pbs-team-name-full{font-size:9pt;color:#444}.pbs-final-score{font-size:20pt;font-weight:700;font-family:monospace;margin:0 6pt;letter-spacing:.04em}.pbs-final-label{font-size:9pt;font-weight:700;letter-spacing:.1em;color:#666;margin-left:auto;align-self:center}.pbs-section{margin-bottom:8pt}.pbs-section-title{font-size:7.5pt;font-weight:700;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #999;padding-bottom:2pt;margin:0 0 4pt;color:#333}.pbs-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12pt;margin-bottom:8pt}.pbs-table{width:100%;border-collapse:collapse;font-size:8.5pt;font-family:monospace}.pbs-table th{text-align:right;font-weight:700;padding:2pt 4pt;border-bottom:1px solid #000;font-size:7.5pt;letter-spacing:.05em}.pbs-table th.pbs-name-col,.pbs-table td.pbs-name-col{text-align:left;font-family:Georgia,serif}.pbs-table td{text-align:right;padding:1.5pt 4pt;border-bottom:1px solid #ddd}.pbs-totals td{font-weight:700;border-top:1px solid #000;border-bottom:none}.pbs-linescore th,.pbs-linescore td{min-width:14pt;text-align:center}.pbs-linescore .pbs-team-col{text-align:left;font-weight:700;min-width:28pt}.pbs-rhe-sep{border-left:1.5pt solid #000;padding-left:6pt!important}.pbs-runs{font-weight:700}.pbs-pitcher-role{font-size:7pt;color:#666;font-style:italic;margin-left:2pt}.pbs-notables-section{margin-top:4pt}.pbs-notable-row{display:flex;align-items:baseline;gap:6pt;font-size:8.5pt;margin-bottom:3pt;flex-wrap:wrap}.pbs-notable-label{font-weight:700;font-size:7.5pt;letter-spacing:.06em;text-transform:uppercase;min-width:80pt;flex-shrink:0}.pbs-notable-item{margin-right:8pt}.pbs-notable-meta{font-size:7.5pt;color:#555;margin-left:2pt}.pbs-empty{font-size:8pt;color:#888;font-style:italic;margin:2pt 0}.pbs-footer{margin-top:10pt;padding-top:4pt;border-top:1px solid #ccc;font-size:7.5pt;color:#888;text-align:center;letter-spacing:.04em}}:root{--bg-base: #0d1b2a;--bg-panel: #112236;--bg-card: #162d45;--bg-row-alt: #0f1f30;--bg-hover: #1a3050;--border: #1e3a52;--border-dim: #162840;--text-primary: #e8f4fd;--text-secondary: #7ca3be;--text-dim: #4a7190;--text-label: #94b8cc;--accent: #3b82f6;--accent-dim: #1d4ed8;--accent-glow: rgba(59,130,246,.2);--elite: #a855f7;--great: #22c55e;--avg: #e8f4fd;--below: #f59e0b;--poor: #ef4444;--available: #22c55e;--limited: #f59e0b;--unavailable: #ef4444;--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}.mono{font-family:var(--font-mono)}.label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-label)}.dim{color:var(--text-dim)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-elite{color:var(--elite);font-weight:600}.stat-great{color:var(--great);font-weight:500}.stat-avg{color:var(--avg)}.stat-below{color:var(--below)}.stat-poor{color:var(--poor)}.badge-available{color:var(--available);background:#22c55e1f}.badge-limited{color:var(--limited);background:#f59e0b1f}.badge-unavailable{color:var(--unavailable);background:#ef44441f}.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.loading-state{display:flex;align-items:center;justify-content:center;height:120px;color:var(--text-dim);font-size:13px;gap:8px}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stat-table{width:100%;border-collapse:collapse;font-size:13px}.stat-table th{padding:6px 10px;text-align:left;background:var(--bg-panel);color:var(--text-label);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0;z-index:1}.stat-table th:hover{color:var(--text-primary)}.stat-table th.sorted-asc:after{content:" ↑"}.stat-table th.sorted-desc:after{content:" ↓"}.stat-table td{padding:7px 10px;border-bottom:1px solid var(--border-dim);font-family:var(--font-mono);font-size:13px;white-space:nowrap}.stat-table tr:nth-child(2n) td{background:var(--bg-row-alt)}.stat-table tr:hover td{background:var(--bg-hover)}.stat-table .name-cell{font-family:var(--font-sans);font-weight:500;color:var(--text-primary)}.stat-table .pos-cell{color:var(--text-dim);font-size:11px;font-family:var(--font-sans)}button{cursor:pointer;border:none;font-family:var(--font-sans);transition:all .15s ease}.btn{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-sm{padding:4px 10px;font-size:12px}input,select{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-family:var(--font-sans);font-size:13px;padding:7px 10px;outline:none;width:100%;transition:border-color .15s}input:focus,select:focus{border-color:var(--accent)}select option{background:var(--bg-card)}.card{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:16px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-label)}.lineup-form{padding:24px 0}.lineup-form-header{text-align:center;margin-bottom:28px}.lineup-title{font-size:24px;font-weight:700;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:6px}.lineup-sub{color:var(--text-dim);font-size:13px}.lineup-teams-row{display:flex;gap:20px;align-items:flex-start}.vs-divider{font-size:11px;font-weight:700;color:var(--text-dim);letter-spacing:.1em;padding-top:60px;flex-shrink:0;align-self:flex-start}.team-card{flex:1;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:16px;min-width:0}.team-card-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.team-label-away{color:#60a5fa}.team-label-home{color:#f59e0b}.lineup-grid{margin-bottom:16px}.lineup-slot{display:flex;align-items:center;gap:8px;margin-bottom:6px}.slot-number{width:20px;text-align:right;color:var(--text-dim);font-size:12px;font-family:var(--font-mono);flex-shrink:0}.slot-number.at-bat-arrow{color:#f59e0b;font-size:10px;text-align:center}.slot-pos-select{font-size:11px;font-weight:700;font-family:var(--font-mono);color:var(--accent);background:#60a5fa1a;border:1px solid rgba(96,165,250,.3);border-radius:4px;padding:2px;width:44px;flex-shrink:0;cursor:pointer}.slot-pos-spacer{width:44px;flex-shrink:0}.pitcher-row{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:6px}.lineup-submit-row{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:28px;padding-top:16px;border-top:1px solid var(--border)}.matchups-layout{display:flex;flex-direction:column;gap:16px}.pitcher-capsules{display:flex;gap:12px;align-items:stretch}.vs-badge{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--text-dim);letter-spacing:.1em;flex-shrink:0;padding:0 4px}.pitcher-capsule{flex:1;position:relative;overflow:hidden;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:14px}.pitcher-capsule.empty{display:flex;align-items:center;justify-content:center;min-height:80px}.pitcher-capsule-header{margin-bottom:10px}.pitcher-name-row{display:flex;align-items:center;gap:8px;margin-top:4px}.pitcher-full-name{font-size:16px;font-weight:700;color:var(--text-primary)}.hand-badge{font-size:10px;font-weight:700;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;padding:1px 6px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.record{font-size:12px;color:var(--text-dim);font-family:var(--font-mono)}.pitcher-stat-grid{display:flex;flex-wrap:wrap;gap:10px 20px}.pitcher-stat-item{display:flex;flex-direction:column;gap:2px}.pitcher-stat-val{font-family:var(--font-mono);font-size:15px;font-weight:600}.matchup-tables{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 1100px){.matchup-tables{grid-template-columns:1fr}}.matchup-table-wrap{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:14px;overflow:hidden}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.bvp-subhead th{background:#1d4ed81f;font-size:10px;padding:3px 10px}.player-name-cell{display:flex;align-items:center;gap:8px}.player-name-info{display:flex;flex-direction:column;gap:2px}.jersey-number{font-size:10px;font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;flex-shrink:0}.milestone-badges{display:flex;flex-wrap:wrap;gap:3px}.milestone-badge{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:700;font-family:var(--font-mono);letter-spacing:.02em;color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:3px;padding:1px 5px;white-space:nowrap;cursor:default;animation:milestone-pulse 3s ease-in-out infinite}.streak-badge{display:inline-block;align-self:flex-start;width:fit-content;font-size:9.5px;font-weight:700;font-family:var(--font-mono);letter-spacing:.04em;border-radius:3px;padding:1px 5px;white-space:nowrap;cursor:default;margin-top:2px}.streak-hit,.streak-hr,.streak-ob,.streak-rbi{background:#cbd5e11a;color:#cbd5e1;border:1px solid rgba(203,213,225,.3)}.hl-toggle-btn{background:none;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#ffffff73;font-size:11px;padding:0 4px;cursor:pointer;line-height:1.3;transition:color .12s,border-color .12s}.hl-toggle-btn:hover,.hl-toggle-btn.active{border-color:var(--accent, #4a9eff)}.hl-count-up{color:#4ade80;font-weight:700;font-size:10px;margin-right:2px}.hl-count-down{color:#f87171;font-weight:700;font-size:10px}.highlights-row-cell{padding:8px 12px!important;background:#ffffff05}.hl-panel{max-width:420px}.hl-empty{font-size:12px;color:var(--text-dim, rgba(255,255,255,.35));font-style:italic}.hl-section{display:flex;flex-direction:column;gap:4px}.hl-row{display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:5px;font-size:12px}.hl-row-elite{background:#22c55e0f;border-left:3px solid rgba(34,197,94,.5)}.hl-row-poor{background:#ef44440f;border-left:3px solid rgba(239,68,68,.5)}.hl-indicator{font-size:10px;font-weight:700;width:14px;text-align:center}.hl-up{color:#4ade80}.hl-down{color:#f87171}.hl-metric-name{font-weight:600;color:var(--text-primary, #fff);min-width:70px}.hl-metric-val{font-family:var(--font-mono, monospace);font-weight:700;font-size:13px;min-width:48px}.hl-vs-avg{color:var(--text-dim, rgba(255,255,255,.4));font-size:11px;white-space:nowrap}.hl-avg-val{font-family:var(--font-mono, monospace);color:var(--text-secondary, rgba(255,255,255,.6))}.hl-diff{margin-left:4px;font-family:var(--font-mono, monospace);font-weight:600}.hl-diff-good{color:#4ade80}.hl-diff-bad{color:#f87171}.pitcher-highlights{margin-top:8px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}.pitcher-highlights .hl-section{margin-top:4px}.pitcher-highlights .hl-row{font-size:11px;padding:3px 6px}.pitcher-highlights .hl-metric-name{min-width:50px;font-size:11px}.pitcher-highlights .hl-metric-val{font-size:12px;min-width:40px}.pitcher-highlights .hl-vs-avg{font-size:10px}.runner-adv-modal{background:var(--bg-card, #1e293b);border:1px solid var(--border, rgba(255,255,255,.1));border-radius:10px;padding:16px;min-width:300px;max-width:400px;width:90vw;box-shadow:0 12px 40px #0009}.runner-adv-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.runner-adv-title{font-size:14px;font-weight:700;color:var(--text-primary, #f1f5f9)}.runner-adv-outcome-tag{font-size:11px;font-weight:600;color:var(--accent, #4a9eff);background:#4a9eff1a;border:1px solid rgba(74,158,255,.25);border-radius:4px;padding:1px 6px}.runner-adv-hint{font-size:11px;color:var(--text-dim, #64748b);margin-bottom:12px}.runner-adv-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05)}.runner-adv-row:last-of-type{border-bottom:none}.runner-adv-batter-row{opacity:.6}.runner-adv-from{display:flex;align-items:center;gap:6px;min-width:80px}.runner-adv-base-pill{font-size:10px;font-weight:700;color:#f59e0b;background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);border-radius:4px;padding:1px 5px}.runner-adv-name{font-size:12px;font-weight:600;color:var(--text-primary, #f1f5f9);white-space:nowrap}.runner-adv-batter-tag{font-size:10px;font-weight:400;color:var(--text-dim, #64748b)}.runner-adv-chevron{font-size:14px;color:var(--text-dim, #64748b);flex-shrink:0}.runner-adv-opts{display:flex;gap:4px;flex-wrap:wrap}.runner-adv-opt{font-size:11px;font-weight:600;padding:3px 8px;border-radius:5px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:var(--text-secondary, #94a3b8);cursor:pointer;transition:all .12s}.runner-adv-opt:hover{background:#ffffff1a;color:var(--text-primary, #f1f5f9)}.runner-adv-opt.active{background:#4a9eff33;border-color:#4a9eff80;color:#93c5fd}.runner-adv-opt.opt-scored{color:#4ade80;border-color:#4ade804d}.runner-adv-opt.opt-scored.active{background:#4ade8026;border-color:#4ade8080;color:#4ade80}.runner-adv-opt.opt-out{color:#f87171;border-color:#f871714d}.runner-adv-opt.opt-out.active{background:#f8717126;border-color:#f8717180;color:#f87171}.runner-adv-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.07)}.runner-adv-confirm{font-size:12px;font-weight:700;padding:6px 16px;border-radius:6px;border:1px solid rgba(74,158,255,.4);background:#4a9eff26;color:#93c5fd;cursor:pointer;transition:all .12s}.runner-adv-confirm:hover{background:#4a9eff40;border-color:#4a9eff99}@keyframes milestone-pulse{0%,to{box-shadow:0 0 #f59e0b00}50%{box-shadow:0 0 4px 1px #f59e0b59}}.pitcher-switcher{display:flex;align-items:center;gap:5px;margin-left:auto}.pitcher-switcher-select{font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:2px 6px;cursor:pointer}.player-headshot{width:32px;height:32px;border-radius:50%;object-fit:cover;object-position:center 15%;flex-shrink:0;background:var(--surface-2, #1e2a3a);border:1px solid var(--border)}.player-headshot--pitcher{width:40px;height:40px}.team-logo-sm{width:28px;height:28px;object-fit:contain;flex-shrink:0}.sb-team-logo-sm{width:18px;height:18px;object-fit:contain;flex-shrink:0}.team-logo-md{width:40px;height:40px;object-fit:contain;flex-shrink:0}.section-header .team-logo-md{filter:drop-shadow(0 0 5px rgba(255,255,255,.35)) brightness(1.25)}.pitcher-capsule-watermark{position:absolute;top:8px;right:10px;left:unset;width:80px;height:80px;object-fit:contain;opacity:.18;pointer-events:none;filter:drop-shadow(0 0 6px rgba(255,255,255,.4)) brightness(1.3) grayscale(20%)}.pitcher-capsule-watermark.flip{right:unset;left:10px}.pitcher-arsenal{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.arsenal-label{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--text-dim);text-transform:uppercase;margin-right:2px}.arsenal-pitch{display:flex;gap:3px;align-items:baseline;font-family:var(--font-mono);background:#ffffff0a;border-radius:4px;padding:2px 5px}.arsenal-type{font-size:11px;font-weight:700;color:var(--accent)}.arsenal-pct{font-size:11px;color:var(--text-primary)}.arsenal-velo{font-size:10px;color:var(--text-secondary)}.arsenal-whiff{font-size:10px;color:var(--text-dim)}.color-key{display:flex;align-items:center;gap:14px;padding:6px 14px;background:var(--surface-2, rgba(255,255,255,.04));border:1px solid var(--border);border-radius:6px;font-size:11px;flex-wrap:wrap;margin-bottom:12px}.color-key-label{color:var(--text-dim);font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:10px}.color-key-divider{color:var(--border);margin:0 2px}.color-key-below{color:var(--below)}.dot-key{font-size:11px}.dot-multi-key{color:#ec4899}.dot-hit-key{color:var(--text-primary)}.dot-out-key{color:var(--text-dim)}.dot-noab-key{color:var(--text-dim);opacity:.5}.streak-dots{display:inline-flex;gap:3px;align-items:center}.dot-sym{font-size:11px;line-height:1;flex-shrink:0}.dot-multi{color:#ec4899}.dot-hit{color:var(--text-primary)}.dot-out{color:var(--text-dim)}.dot-no-ab{color:var(--text-dim);opacity:.35}.row-at-bat{background:#f59e0b12!important;box-shadow:inset 3px 0 #f59e0b}.order-cell{min-width:26px;text-align:center}.at-bat-badge{display:inline-block;color:#f59e0b;font-size:11px;line-height:1;animation:at-bat-pulse 1.2s ease-in-out infinite}@keyframes at-bat-pulse{0%,to{opacity:1;transform:translate(0)}50%{opacity:.6;transform:translate(2px)}}.table-footnote{margin-top:8px;font-size:11px;color:var(--text-dim);line-height:1.6}.bullpen-layout{display:flex;flex-direction:column;gap:20px}.bullpen-team-section{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:16px}.availability-summary{display:flex;gap:6px;align-items:center}.row-unavailable td{opacity:.65}.throw-arm{font-weight:700;font-size:12px;letter-spacing:.05em}.throw-arm[data-arm=L]{color:#f59e0b}.throw-arm[data-arm=R]{color:var(--text-secondary)}.role-header-row td{background:var(--bg-card, #1a2235);padding:6px 10px;border-top:1px solid var(--border);border-bottom:none}.role-header-row:first-child td{border-top:none}.role-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-secondary);margin-right:10px}.role-situational{font-size:10px;font-weight:600;letter-spacing:.04em;opacity:.9}.bp-name-row{display:flex;align-items:center;gap:6px}.bp-hl-toggle{flex-shrink:0}.bp-hl-row>td{padding:0 8px 6px 30px!important;background:#ffffff05}.bp-hl-panel{display:flex;flex-wrap:wrap;gap:2px 16px}.scorebook{display:flex;flex-direction:column;gap:16px}.line-score-card{overflow:hidden}.line-score-tbl td,.line-score-tbl th{text-align:center;min-width:28px}.scorebook-controls-row{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.diamond-card{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:12px;min-width:160px}.inning-display{display:flex;align-items:center;gap:4px}.inning-half{font-size:20px;color:var(--accent)}.inning-num{font-size:32px;font-weight:800;font-family:var(--font-mono)}.inning-label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;align-self:flex-end;padding-bottom:4px}.diamond-wrap svg{display:block}.base-action-menu{position:absolute;display:flex;flex-direction:column;gap:3px;z-index:20;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:5px;box-shadow:0 4px 16px #00000059;min-width:70px}.base-action-btn{font-size:11px;font-weight:600;padding:4px 8px;border-radius:5px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text-primary);cursor:pointer;text-align:center;transition:background .12s,color .12s}.base-action-btn:hover{background:var(--bg-hover)}.base-action-score{border-color:#4a9eff66;color:#4a9eff}.base-action-score:hover{background:#4a9eff1f}.base-action-out{border-color:#ef444466;color:#ef4444}.base-action-out:hover{background:#ef44441f}.base-action-cancel{color:var(--text-dim);font-weight:400;font-size:10px}.base-action-label{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);text-align:center;padding:1px 0 2px}.base-action-sb{border-color:#a78bfa66;color:#a78bfa}.base-action-sb:hover{background:#a78bfa1f}.count-display{width:100%}.count-row{display:flex;align-items:center;gap:5px;margin-bottom:5px}.count-label{width:14px;font-size:11px;font-weight:700;color:var(--text-dim);text-align:center;text-transform:uppercase}.count-dot{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--text-dim);background:transparent;transition:all .1s}.count-dot.ball{background:#22c55e;border-color:#22c55e}.count-dot.strike{background:#ef4444;border-color:#ef4444}.count-dot.out{background:#f59e0b;border-color:#f59e0b}.pitch-controls-card{flex-shrink:0;min-width:200px}.pitch-btns{display:flex;gap:6px}.pitch-btn{flex:1;padding:10px 6px;border-radius:6px;font-size:13px;font-weight:600;border:none;cursor:pointer;transition:all .15s}.pitch-btn.ball{background:#22c55e26;color:var(--great);border:1px solid rgba(34,197,94,.3)}.pitch-btn.strike{background:#ef444426;color:var(--poor);border:1px solid rgba(239,68,68,.3)}.pitch-btn.foul{background:#94a3b81a;color:var(--text-secondary);border:1px solid var(--border)}.pitch-btn:hover{filter:brightness(1.2);transform:translateY(-1px)}.pitch-btn kbd{display:inline-block;margin-left:5px;padding:1px 5px;border-radius:3px;font-size:10px;font-family:monospace;font-weight:700;background:#00000040;border:1px solid rgba(255,255,255,.15);color:inherit;opacity:.7;vertical-align:middle;line-height:1.4}.pitch-undo-row{display:flex;justify-content:flex-end;margin-top:6px}.undo-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--text-dim);font-size:11px;cursor:pointer;transition:color .15s,border-color .15s}.undo-btn:not(:disabled):hover{color:var(--text-secondary);border-color:var(--text-dim)}.undo-btn:disabled{opacity:.35;cursor:default}.undo-btn kbd{display:inline-block;padding:1px 4px;border-radius:3px;font-size:10px;font-family:monospace;font-weight:700;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:inherit;line-height:1.4}.outcome-btn-pending{outline:2px solid var(--accent, #4a9eff);outline-offset:2px}.outcome-detail-form{margin-top:10px;padding:10px 12px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:8px;display:flex;flex-direction:column;gap:8px}.outcome-detail-header{display:flex;justify-content:space-between;align-items:center}.outcome-detail-label{font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.outcome-detail-optional{font-weight:400;opacity:.6;text-transform:none;letter-spacing:0}.outcome-detail-skip{background:none;border:none;color:var(--text-dim);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color .15s,background .15s}.outcome-detail-skip:hover{color:var(--text-secondary);background:#ffffff0f}.outcome-detail-body{display:flex;flex-direction:column;gap:8px}.outcome-notation-input{width:100%;box-sizing:border-box;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:6px;color:var(--text-primary, #fff);font-size:13px;padding:6px 10px;outline:none;transition:border-color .15s;font-family:SF Mono,Fira Code,monospace;letter-spacing:.05em}.outcome-notation-input::placeholder{color:#ffffff47;font-family:inherit}.outcome-notation-input:focus{border-color:var(--accent, #4a9eff)}.notation-display{text-align:center;font-family:SF Mono,Fira Code,monospace;font-size:18px;letter-spacing:.1em;color:var(--text-primary, #fff);padding:4px 0 2px;min-height:26px}.field-diagram{width:100%;max-width:220px;margin:0 auto;display:block;cursor:default}.field-pos-group{cursor:pointer}.field-pos-circle{fill:#ffffff0f;stroke:#ffffff38;stroke-width:1.5;transition:fill .12s,stroke .12s}.field-pos-group:hover .field-pos-circle{fill:#4a9eff26;stroke:var(--accent, #4a9eff)}.field-pos-circle.field-pos-active{fill:#4a9eff38;stroke:var(--accent, #4a9eff)}.field-pos-number{fill:var(--text-primary, #fff);font-size:11px;font-weight:600;pointer-events:none}.field-pos-label{fill:#ffffff73;font-size:7px;pointer-events:none}.notation-actions{display:flex;gap:6px;justify-content:center;margin-top:6px}.notation-undo-btn,.notation-clear-btn,.notation-confirm-btn{padding:5px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:#ffffff0f;color:var(--text-primary, #fff);font-size:12px;cursor:pointer;transition:background .12s}.notation-undo-btn:disabled,.notation-clear-btn:disabled{opacity:.35;cursor:default}.notation-confirm-btn{background:var(--accent, #4a9eff);border-color:var(--accent, #4a9eff);color:#fff;font-weight:600}.notation-confirm-btn:hover{filter:brightness(1.15)}.outcome-ball-type-row{display:flex;gap:6px}.ball-type-btn{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:700;padding:5px 0;cursor:pointer;transition:background .15s,border-color .15s,color .15s;letter-spacing:.04em}.ball-type-btn:hover{background:#ffffff1a;color:var(--text-primary, #fff)}.ball-type-active{background:var(--accent, #4a9eff)!important;border-color:var(--accent, #4a9eff)!important;color:#fff!important}.outcome-detail-confirm{width:100%;padding:7px 0;font-size:13px;font-weight:600}.outcome-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.outcome-btn{padding:7px 4px;border-radius:5px;font-size:12px;font-weight:600;border:1px solid;cursor:pointer;transition:all .12s}.outcome-btn:hover{filter:brightness(1.3);transform:translateY(-1px)}.out-btn{background:#ef44441f;color:var(--poor);border-color:#ef44444d}.hit-btn{background:#22c55e1f;color:var(--great);border-color:#22c55e4d}.neutral-btn{background:#94a3b814;color:var(--text-secondary);border-color:var(--border)}.pitch-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.pitch-pad-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:10px 4px 9px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:var(--surface-2, rgba(255,255,255,.06));color:var(--text-secondary);font-size:11px;font-weight:600;line-height:1.2;text-align:center;cursor:pointer;transition:all .14s}.pitch-pad-btn:hover{filter:brightness(1.25);transform:translateY(-1px)}.pitch-pad-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#ffffff1a;font-size:13px;font-weight:800;font-family:var(--font-mono, monospace);flex-shrink:0}.ball-btn{background:#22c55e1a;border-color:#22c55e40;color:var(--great)}.ball-btn .pitch-pad-badge{background:#22c55e33}.called-btn{background:#eab3081a;border-color:#eab3084d;color:#facc15}.called-btn .pitch-pad-badge{background:#eab30833}.swing-btn{background:#ef44441a;border-color:#ef444440;color:#ef4444}.swing-btn .pitch-pad-badge{background:#ef444433}.foul-btn{background:#0f172a66;border-color:#0f172a99;color:#e2e8f0}.foul-btn .pitch-pad-badge{background:#0f172ab3}.bip-btn{background:#60a5fa1a;border-color:#60a5fa4d;color:#60a5fa}.bip-btn .pitch-pad-badge{background:#60a5fa33}.more-btn{background:#ffffff0a;border-color:var(--border);color:var(--text-dim)}.pitch-pad-label{line-height:1.2;text-align:center}.pitch-pad-kbd{display:inline-block;padding:1px 5px;border-radius:3px;font-size:9px;font-family:var(--font-mono, monospace);font-weight:700;font-style:normal;background:#0000004d;border:1px solid rgba(255,255,255,.15);color:inherit;opacity:.65;line-height:1.5;letter-spacing:.04em}.bip-layer{display:flex;flex-direction:column;gap:8px}.bip-back-btn{align-self:flex-start;background:none;border:none;color:var(--accent, #4a9eff);font-size:12px;font-weight:600;cursor:pointer;padding:2px 0;opacity:.85}.bip-back-btn:hover{opacity:1}.bip-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.bip-contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.bip-contact-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:8px;border:1px solid rgba(96,165,250,.35);background:#60a5fa12;color:var(--text-secondary);cursor:pointer;transition:all .14s}.bip-kbd-hint{position:absolute;top:3px;left:4px;font-size:9px;font-weight:700;font-family:var(--font-mono, monospace);opacity:.45;line-height:1;pointer-events:none}.bip-contact-btn:hover .bip-kbd-hint{opacity:.8}.bip-contact-btn:hover{background:#60a5fa26;border-color:#60a5fa99;color:#60a5fa}.bip-contact-abbr{font-size:13px;font-weight:800;font-family:var(--font-mono, monospace);color:#60a5fa}.bip-contact-name{font-size:10px;font-weight:600;text-align:center;line-height:1.2}.bip-outcome-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.bip-outcome-btn{position:relative;padding:7px 4px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid;cursor:pointer;transition:all .12s}.bip-outcome-btn:hover{filter:brightness(1.3);transform:translateY(-1px)}.bip-outcome-btn:hover .bip-kbd-hint{opacity:.75}.bip-flag-row{display:flex;gap:8px}.bip-flag-row .bip-outcome-btn{flex:1;padding:9px 4px}.pitch-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:1000;display:flex;align-items:center;justify-content:center}.pitch-modal-sheet{background:var(--surface, #1e2130);border:1px solid rgba(255,255,255,.12);border-radius:16px;min-width:300px;max-width:420px;width:90vw;overflow:hidden;box-shadow:0 20px 60px #0009}.pitch-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,.08)}.pitch-modal-title{font-size:15px;font-weight:700;color:var(--text-primary)}.pitch-modal-undo{background:none;border:none;color:var(--accent, #4a9eff);font-size:13px;font-weight:600;cursor:pointer;padding:3px 8px;border-radius:6px;transition:background .15s}.pitch-modal-undo:hover{background:#60a5fa1f}.pitch-modal-undo:disabled{opacity:.3;cursor:default}.pitch-modal-item{display:flex;align-items:center;gap:12px;width:100%;padding:11px 16px;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.05);color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:background .12s}.pitch-modal-item:hover{background:#ffffff0d}.pitch-modal-item.danger{color:#f87171;font-weight:600}.pitch-modal-item.danger:hover{background:#ef444414}.pitch-modal-badge{display:flex;align-items:center;justify-content:center;min-width:36px;height:28px;border-radius:6px;background:#ffffff14;font-size:11px;font-weight:800;font-family:var(--font-mono, monospace);color:var(--text-secondary);flex-shrink:0}.pitch-modal-badge.bip-badge{color:#60a5fa;background:#60a5fa1f}.pitch-modal-item-label{flex:1}.pitch-modal-arrow{color:var(--text-dim);font-size:14px}.pitch-modal-divider{height:1px;background:#ffffff1a;margin:4px 0}.pitch-modal-ilp-sub{display:flex;gap:8px;padding:6px 16px 10px 64px}.pitch-modal-ilp-opt{flex:1;padding:7px 8px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#ffffff0d;color:var(--text-secondary);font-size:12px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}.pitch-modal-ilp-opt:hover{background:#ffffff1a;border-color:#fff3;color:var(--text-primary)}.kbd-focused{outline:2px solid var(--accent, #4a9eff)!important;outline-offset:2px}.pitch-type-row{display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px 4px;border-bottom:1px solid rgba(255,255,255,.07)}.pitch-type-btn{position:relative;font-family:var(--font-mono, monospace);font-size:11px;font-weight:700;letter-spacing:.04em;padding:4px 9px;border-radius:6px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:var(--text-secondary, #aaa);cursor:pointer;transition:background .12s,color .12s,border-color .12s}.pitch-type-btn:hover{background:#ffffff21;color:var(--text-primary, #fff);border-color:#ffffff4d}.pitch-type-btn.active{background:var(--accent, #4a9eff);border-color:var(--accent, #4a9eff);color:#fff}.pitch-type-kbd{position:absolute;top:3px;left:4px;font-family:var(--font-mono, monospace);font-size:7px;font-weight:700;opacity:.45;line-height:1;pointer-events:none}.pitch-type-btn:hover .pitch-type-kbd,.pitch-type-btn.active .pitch-type-kbd{opacity:.8}.pitch-seq-list{display:flex;flex-direction:column;gap:3px;margin-top:4px;padding-left:2px}.pitch-seq-row{display:flex;flex-wrap:wrap;gap:3px;opacity:.55}.pitch-seq-row--live{opacity:1}.pitch-dot{display:inline-block;position:relative;font-family:var(--font-mono, monospace);font-size:9px;font-weight:700;line-height:1;padding:2px 4px;border-radius:3px;color:#fff;letter-spacing:.01em;white-space:nowrap}.pitch-dot--ball{background:#22c55e}.pitch-dot--called{background:#facc15}.pitch-dot--swing{background:#ef4444}.pitch-dot--foul{background:#0f172a}.pitch-dot--bip{background:#60a5fa}.pitch-dot--other{background:#7c3aed}.pitch-dot--bip-outlined{outline:2px solid rgba(255,255,255,.85);outline-offset:1px;border-radius:2px}.pitch-seq-toggle{font-size:10px;font-weight:600;padding:2px 8px;border-radius:4px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;letter-spacing:.03em;transition:color .15s,border-color .15s}.pitch-seq-toggle:hover{color:var(--text-secondary);border-color:var(--text-dim)}.pitch-seq-toggle.active{color:var(--accent, #4a9eff);border-color:var(--accent, #4a9eff)}.sb-pitcher-footer{display:flex;justify-content:flex-end;padding:6px 0 2px}.batter-card{flex:1;min-width:200px}.mini-lineup{margin-bottom:12px}.mini-lineup-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;cursor:pointer;transition:background .1s;font-size:13px}.mini-lineup-row:hover{background:var(--bg-hover)}.drag-handle{font-size:13px;color:var(--text-dim, #64748b);cursor:grab;padding:0 3px 0 0;flex-shrink:0;-webkit-user-select:none;user-select:none;opacity:0;transition:opacity .15s}.mini-lineup-row:hover .drag-handle{opacity:1}.mini-lineup-row.current .drag-handle{opacity:.5}.mini-lineup-row.dragging{opacity:.35}.mini-lineup-row.drag-over{border-top:2px solid var(--accent, #4a9eff)!important;background:#4a9eff0f}.mini-lineup-row.highlighted{background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.mini-lineup-row.current{background:#f59e0b14;border:1px solid rgba(245,158,11,.3);font-weight:600}.mini-lineup-row.current .mini-name{color:#f59e0b}.mini-name{flex:1;truncate:true;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-pos{font-size:10px;color:var(--text-dim);font-family:var(--font-mono)}.score-adj{border-top:1px solid var(--border);padding-top:10px}.score-override-warn{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:#f59e0b;font-size:11px;line-height:1.4;padding:6px 10px;border-radius:4px;margin-bottom:8px;cursor:pointer}.score-override-dismiss{display:inline-block;margin-left:8px;text-decoration:underline;opacity:.7}.score-adj-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.adj-btn{width:24px;height:24px;border-radius:50%;background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);font-size:16px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .1s}.adj-btn:hover{background:var(--bg-hover)}.adj-val{font-family:var(--font-mono);font-size:16px;font-weight:700;min-width:24px;text-align:center}.situational-layout{display:flex;flex-direction:column;gap:16px}.sit-batter-name{font-size:22px;font-weight:700;margin-bottom:6px}.sit-batter-meta{display:flex;gap:6px;margin-bottom:12px}.season-line{display:flex;flex-wrap:wrap;gap:6px}.stat-pill{display:flex;flex-direction:column;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:5px 10px;min-width:52px}.stat-pill-label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:2px}.stat-pill-val{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--text-primary)}.active-situations{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:8px 12px;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;font-size:12px}.splits-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.split-card{transition:border-color .2s}.split-card.highlighted{border-color:var(--accent);background:#3b82f60a}.spotlight-section{background:linear-gradient(135deg,#3b82f614,#6366f10f);border:1px solid var(--accent);border-radius:10px;padding:14px 16px}.spotlight-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.spotlight-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}.spotlight-tags{display:flex;flex-wrap:wrap;gap:6px}.spotlight-tag{font-size:11px;font-weight:700;background:#3b82f626;color:var(--accent);border:1px solid rgba(59,130,246,.3);border-radius:4px;padding:2px 8px;letter-spacing:.03em}.spotlight-cards{display:flex;flex-wrap:wrap;gap:10px}.spotlight-card{flex:1;min-width:160px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.spotlight-card-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-dim);margin-bottom:8px}.spotlight-stats{display:flex;gap:14px;flex-wrap:wrap}.spotlight-stat{display:flex;flex-direction:column;align-items:center}.spotlight-stat-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:2px}.spotlight-stat-val{font-family:var(--font-mono);font-size:22px;font-weight:700;line-height:1}.order-cell-inner{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:22px}.ph-btn{display:none;font-size:9px;line-height:1;padding:1px 4px;background:#60a5fa1a;border:1px solid rgba(96,165,250,.3);border-radius:3px;color:var(--accent);cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s}.ph-btn:hover{background:#60a5fa38}.ph-btn--active{display:block!important;background:#60a5fa47;border-color:var(--accent)}.matchup-tbl tr:hover .ph-btn{display:block}.lineup-totals-row{border-top:2px solid var(--border)}.lineup-totals-row td{background:var(--bg-card, #1a2235);padding:5px 8px}.totals-label{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);white-space:nowrap}.totals-stat{font-size:11px;font-weight:600;color:var(--text-secondary);text-align:center}.mini-lineup-row:hover .ph-btn{display:block}.ph-btn--mini{margin-left:auto;flex-shrink:0}.ph-picker-row td{padding:0!important}.ph-picker-cell{background:#1d4ed80f;border-left:3px solid var(--accent)}.ph-picker{display:flex;align-items:center;gap:10px;padding:8px 14px;flex-wrap:wrap}.ph-picker-label{font-size:11px;color:var(--text-secondary);white-space:nowrap}.ph-picker-label strong{color:var(--text-primary)}.ph-picker-select{flex:1;min-width:200px;max-width:400px;font-size:12px;background:var(--bg-card);border:1px solid var(--accent);border-radius:4px;color:var(--text-primary);padding:4px 8px;cursor:pointer}.ph-picker--mini{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;background:#1d4ed80f;border-left:3px solid var(--accent);border-radius:0 0 4px 4px;margin:-2px 0 3px}.ph-picker--mini .ph-picker-select{min-width:0;max-width:none;width:100%}.subs-log{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:12px 16px}.subs-log-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.subs-log-count{font-family:var(--font-mono);font-size:11px;background:var(--bg-card);border:1px solid var(--border);border-radius:3px;padding:0 6px;color:var(--text-secondary)}.subs-log-entries{display:flex;flex-direction:column;gap:6px}.subs-log-entry{display:flex;align-items:center;gap:8px;font-size:12px}.subs-inning{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);width:30px;flex-shrink:0}.subs-batting-order{font-family:var(--font-mono);font-size:11px;color:var(--text-dim);width:26px;flex-shrink:0}.subs-out{color:var(--text-secondary);text-decoration:line-through;text-decoration-color:var(--text-dim)}.subs-arrow{color:var(--accent);font-size:12px}.subs-in{color:var(--text-primary);font-weight:600}.subs-side-badge{font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.04em}.subs-side-away{background:#60a5fa1f;color:#60a5fa;border:1px solid rgba(96,165,250,.28)}.subs-side-home{background:#f59e0b1f;color:var(--accent);border:1px solid rgba(245,158,11,.28)}.sb-pitcher-strip{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-bottom:10px}.sb-pitcher-header{display:flex;align-items:center;gap:6px;margin-bottom:8px}.sb-change-pitcher-btn{margin-left:auto;font-size:10px!important;padding:2px 8px!important;opacity:.7;transition:opacity .15s}.sb-change-pitcher-btn:hover,.sb-change-pitcher-btn.active{opacity:1;color:var(--accent)!important;border-color:var(--accent)!important}.sb-pitcher-sub{display:flex;align-items:center;gap:8px;padding:8px 0 2px;border-top:1px solid var(--border);margin-top:8px;flex-wrap:wrap}.sb-pitcher-sub-label{font-size:11px;color:var(--text-dim);white-space:nowrap;flex-shrink:0}.sb-pitcher-sub-select{flex:1;min-width:0;font-size:12px;background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:4px 6px;cursor:pointer}.sb-pitcher-sub-select:focus{outline:none;border-color:var(--accent)}.sb-pitcher-team-badge{font-size:10px;font-weight:700;font-family:var(--font-mono);color:var(--accent);background:#60a5fa1a;border:1px solid rgba(96,165,250,.25);border-radius:3px;padding:0 5px}.sb-pitcher-body{display:flex;align-items:center;gap:10px}.sb-pitcher-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.sb-pitcher-name{font-size:14px;font-weight:700;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-pitcher-meta{display:flex;align-items:center;gap:5px}.sb-season-stats-row{display:flex;align-items:center;gap:7px;margin-top:3px;flex-wrap:wrap}.sb-season-stat{display:flex;align-items:baseline;gap:3px;opacity:.5}.sb-season-stat-lbl{font-size:9px;font-weight:700;letter-spacing:.05em;color:var(--text-dim);text-transform:uppercase}.sb-season-stat-val{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--text-secondary)}.sb-pitcher-game-line{display:flex;align-items:center;gap:5px;padding:7px 0 3px;border-top:1px solid var(--border);margin-top:7px;flex-wrap:wrap}.sb-game-line-lbl{font-size:9px;font-weight:800;letter-spacing:.1em;color:var(--text-dim);text-transform:uppercase;margin-right:2px}.sb-game-stat{display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 8px;background:var(--bg-card);border:1px solid var(--border);border-radius:4px;min-width:32px}.sb-game-stat-val{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--text-primary);line-height:1}.sb-game-stat-lbl{font-size:8px;font-weight:700;letter-spacing:.06em;color:var(--text-dim);text-transform:uppercase}.sb-pitcher-stats,.sb-pitcher-stat{display:none}.sb-stat-val{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-primary)}.sb-stat-lbl{font-size:9px;font-weight:700;color:var(--text-dim);text-transform:uppercase}.sb-pitch-count{display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--bg-panel);border:1px solid var(--border);border-radius:5px;padding:5px 10px;flex-shrink:0}.sb-pitch-count-num{font-family:var(--font-mono);font-size:22px;font-weight:800;color:var(--text-primary);line-height:1}.sb-pitch-count-lbl{font-size:9px;font-weight:700;letter-spacing:.08em;color:var(--text-dim);text-transform:uppercase}.fatigue-badge{display:flex;flex-direction:column;align-items:center;border-radius:6px;padding:4px 10px;min-width:52px;border:1px solid;flex-shrink:0}.fatigue-badge-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.7;margin-bottom:1px}.fatigue-badge-val{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;line-height:1}.fatigue-fresh{background:#22c55e1f;border-color:#22c55e4d;color:#4ade80}.fatigue-normal{background:#eab3081a;border-color:#eab3084d;color:#fde047}.fatigue-elevated{background:#f973161f;border-color:#f973164d;color:#fb923c}.fatigue-high{background:#ef44441f;border-color:#ef44444d;color:#f87171}.fatigue-pitch-est{display:flex;flex-direction:column;gap:3px;margin-top:4px}.fatigue-pitch-est-bar{height:4px;border-radius:2px;background:#ffffff14;overflow:hidden;width:100%}.fatigue-pitch-est-fill{height:100%;border-radius:2px;transition:width .3s ease}.fatigue-fill-fresh{background:#4ade80}.fatigue-fill-normal{background:#fde047}.fatigue-fill-elevated{background:#fb923c}.fatigue-fill-high{background:#f87171}.fatigue-pitch-est-label{font-size:10px;color:var(--text-secondary);line-height:1.3}.fatigue-pitch-est-label strong{color:var(--text-primary)}.fatigue-pitch-est-sub{color:var(--text-dim);font-size:9.5px}.fatigue-tooltip-wrap{position:relative;display:inline-flex;flex-direction:column}.fatigue-tooltip-wrap:hover .fatigue-tooltip{display:block}.fatigue-tooltip{display:none;position:absolute;bottom:calc(100% + 6px);right:0;background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;white-space:nowrap;z-index:100;font-size:11px;min-width:180px;box-shadow:0 4px 16px #0006}.fatigue-tooltip-row{display:flex;justify-content:space-between;gap:16px;padding:2px 0;color:var(--text-secondary)}.fatigue-tooltip-row strong{color:var(--text-primary)}.sb-pitcher-arsenal{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:8px;padding-top:7px;border-top:1px solid var(--border)}.sb-arsenal-pitch{display:flex;gap:3px;align-items:baseline;background:#ffffff08;border-radius:3px;padding:1px 5px;font-family:var(--font-mono)}.sb-mound-compact{display:flex;align-items:center;gap:8px;padding:6px 10px;flex-wrap:wrap}.sb-compact-headshot{width:28px;height:28px;border-radius:50%;object-fit:cover;background:#ffffff0d}.sb-compact-name{font-weight:600;font-size:13px;color:var(--text-primary)}.sb-compact-sep{width:1px;height:14px;background:#ffffff1f;flex-shrink:0}.sb-compact-pc{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--text-secondary)}.sb-compact-fatigue{font-size:13px}.sb-compact-remaining{font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}.sb-compact-arsenal{display:flex;gap:4px;align-items:center}.sb-compact-pitch{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--accent);background:#ffffff0d;border-radius:3px;padding:1px 5px}.sb-compact-kbd{font-family:var(--font-mono);font-size:9px;font-weight:600;color:var(--text-dim);background:#ffffff14;border-radius:2px;padding:0 3px;min-width:13px;text-align:center}.mini-batter-info{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}.mini-batter-info .mini-name{flex:unset}.mini-name-row{display:flex;align-items:baseline;gap:5px;min-width:0}.mini-jersey{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--text-dim);flex-shrink:0}.mini-season-line{font-size:9.5px;font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.mini-base-badge{font-size:9px;font-weight:800;font-family:var(--font-mono);color:#f59e0b;background:#f59e0b26;border:1px solid rgba(245,158,11,.35);border-radius:3px;padding:0 4px;line-height:1.5;flex-shrink:0}.today-line{display:flex;align-items:center;gap:3px;flex-shrink:0;margin-left:auto}.tl-hits{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--great)}.tl-oh{font-family:var(--font-mono);font-size:11px;color:var(--text-dim)}.tl-badge{font-size:9px;font-weight:700;font-family:var(--font-mono);border-radius:3px;padding:1px 4px;line-height:1.4;white-space:nowrap}.tl-hr{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.tl-rbi{background:#22c55e1f;color:var(--great);border:1px solid rgba(34,197,94,.28)}.tl-bb{background:#60a5fa1f;color:var(--accent);border:1px solid rgba(96,165,250,.25)}.tl-k{background:#ef44441a;color:var(--poor);border:1px solid rgba(239,68,68,.25)}.tl-sb{background:#a78bfa1f;color:#a78bfa;border:1px solid rgba(167,139,250,.28)}.tl-cs{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.25)}.spray-toggle-btn{display:inline-flex;align-items:center;justify-content:center;font-size:11px;line-height:1;padding:1px 4px;border-radius:3px;border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer;flex-shrink:0;transition:color .12s,border-color .12s,background .12s}.spray-toggle-btn:hover,.spray-toggle-btn.active{color:var(--accent);border-color:var(--accent);background:var(--accent-glow)}.spray-row td.spray-row-cell{padding:10px 16px 14px;background:var(--bg-panel);border-top:1px solid var(--border);border-bottom:2px solid var(--border)}.spray-chart{display:inline-flex;flex-direction:column;align-items:flex-start;gap:8px}.spray-chart-svg{border-radius:5px;overflow:hidden;width:260px;height:222px;display:block}.spray-legend{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spray-legend-item{display:flex;align-items:center;gap:4px}.spray-dot-icon{width:8px;height:8px;border-radius:50%;flex-shrink:0;display:inline-block}.spray-legend-label{font-size:10px;font-weight:700;color:var(--text-secondary);font-family:var(--font-mono)}.spray-legend-count{font-size:10px;font-family:var(--font-mono);color:var(--text-dim)}.spray-legend-divider{width:1px;height:12px;background:var(--border);flex-shrink:0}.spray-summary{font-size:10px;font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap}.pbp-log{margin-top:12px;padding:10px 12px}.pbp-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.pbp-header-right{display:flex;align-items:center;gap:6px;margin-left:auto}.pbp-filter-btn{font-size:10px;font-family:var(--font-mono);color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:1px 8px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.pbp-filter-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.pbp-count{font-size:10px;font-family:var(--font-mono);color:var(--text-dim);background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:1px 7px}.pbp-empty{font-size:12px;color:var(--text-dim);padding:8px 0;text-align:center}.pbp-scroll{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.pbp-entry{display:flex;align-items:baseline;gap:5px;font-size:12px;font-family:var(--font-mono);padding:4px 6px;border-radius:4px;background:var(--bg-panel);border-left:3px solid transparent;line-height:1.4;position:relative}.pbp-delete-btn{position:absolute;right:4px;top:50%;transform:translateY(-50%);opacity:0;background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3);border-radius:3px;font-size:12px;line-height:1;padding:2px 5px;cursor:pointer;font-family:var(--font-mono);transition:opacity .15s}.pbp-delete-btn:hover{opacity:1;background:#ef44444d;color:#fca5a5}.pbp-entry.pbp-hr{border-left-color:#f59e0b;background:#f59e0b0f}.pbp-entry.pbp-hit{border-left-color:#4ade80;background:#4ade800d}.pbp-entry.pbp-k{border-left-color:#f87171;background:#f871710d}.pbp-entry.pbp-bb{border-left-color:#60a5fa;background:#60a5fa0d}.pbp-entry.pbp-out{border-left-color:var(--border)}.pbp-entry.pbp-error,.pbp-entry.pbp-sb{border-left-color:#a78bfa;background:#a78bfa0d}.pbp-runner{font-style:italic;opacity:.9}.pbp-inning{font-size:10px;color:var(--text-dim);min-width:22px;flex-shrink:0}.pbp-team{font-size:9px;color:var(--text-dim);min-width:28px;flex-shrink:0;text-transform:uppercase;letter-spacing:.04em}.pbp-batter{color:var(--text-primary);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}.pbp-dash{color:var(--text-dim);flex-shrink:0}.pbp-outcome{font-weight:700;flex-shrink:0}.pbp-outcome.pbp-hr{color:#f59e0b}.pbp-outcome.pbp-hit{color:#4ade80}.pbp-outcome.pbp-k{color:#f87171}.pbp-outcome.pbp-bb{color:#60a5fa}.pbp-outcome.pbp-out{color:var(--text-secondary)}.pbp-outcome.pbp-error,.pbp-outcome.pbp-sb{color:#a78bfa}.pbp-suffix{color:var(--text-secondary);font-size:11px;flex-shrink:0}.pbp-notation{font-size:10px;font-family:SF Mono,Fira Code,monospace;color:var(--text-secondary);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:1px 5px;letter-spacing:.04em;flex-shrink:0}.pbp-ball-type{font-size:10px;font-weight:700;color:#ffffff80;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:1px 5px;letter-spacing:.04em;flex-shrink:0}.pbp-pitcher{color:var(--text-dim);font-size:10px;margin-left:auto;flex-shrink:0;white-space:nowrap}.zone-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;font-size:11px;line-height:1;color:var(--text-dim);background:transparent;border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:color .12s,border-color .12s,background .12s}.zone-toggle-btn:hover{color:#a78bfa;border-color:#a78bfa;background:#a78bfa1f}.zone-toggle-btn.active{color:#a78bfa;border-color:#a78bfa;background:#a78bfa2e}.zone-row{background:var(--surface-2, #0d1f2d)}.zone-row-cell{padding:10px 16px 12px!important}.zone-map{display:inline-flex;flex-direction:column;gap:4px;padding:8px 10px 6px;background:var(--surface-3, #0a1824);border:1px solid var(--border);border-radius:6px}.zone-map-header{display:flex;align-items:baseline;gap:8px}.zone-map-title{font-size:10px;font-weight:700;letter-spacing:.08em;color:#a78bfa;text-transform:uppercase}.zone-map-sub{font-size:10px;color:var(--text-dim)}.zone-map-placeholder{font-size:12px;color:var(--text-dim);padding:8px 0}.zone-map-body{display:flex;align-items:flex-start;gap:8px}.zone-map-vlabels{display:flex;flex-direction:column;justify-content:space-around;font-size:9px;color:var(--text-dim);letter-spacing:.03em;text-transform:uppercase;height:160px;padding:2px 0}.zone-map-inner{display:flex;flex-direction:column;gap:3px}.zone-map-svg{border-radius:4px;overflow:hidden}.zone-map-hlabels{display:flex;justify-content:space-around;font-size:9px;color:var(--text-dim);letter-spacing:.03em;text-transform:uppercase;width:190px}.zone-map-scale{display:flex;flex-direction:column;align-items:center;gap:3px;margin-left:4px}.zone-map-scale-bar{width:12px;height:100px;border-radius:6px;background:linear-gradient(to bottom,#dc2626,#2d4a5c,#1d4ed8);border:1px solid rgba(255,255,255,.12)}.zone-map-scale-ticks{display:flex;flex-direction:column;font-size:8px;font-family:var(--font-mono);color:var(--text-dim);text-align:center}.zone-map-overall{font-size:9px;font-family:var(--font-mono);color:var(--text-secondary);text-align:center;margin-top:4px;white-space:nowrap}.game-summary{display:flex;flex-direction:column;min-height:calc(100vh - 52px);background:var(--bg-base)}.gs-topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0}.gs-topbar-title{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.gs-body{flex:1;overflow-y:auto;padding:20px;max-width:1200px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:16px}.gs-score-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;padding:20px 24px}.gs-score-team{display:flex;align-items:center;gap:10px;flex:1}.gs-score-team--right{flex-direction:row-reverse}.gs-team-logo{width:48px;height:48px;object-fit:contain;flex-shrink:0;filter:drop-shadow(0 0 6px rgba(255,255,255,.2))}.gs-team-abbr{font-size:18px;font-weight:800;letter-spacing:.04em;color:var(--text-primary);font-family:var(--font-mono)}.gs-team-name{font-size:12px;color:var(--text-dim);white-space:nowrap}.gs-score-center{text-align:center;flex-shrink:0}.gs-final-score{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:40px;font-weight:800;line-height:1}.gs-score-win{color:var(--text-primary)}.gs-score-loss{color:var(--text-dim)}.gs-score-dash{color:var(--border);font-size:28px}.gs-final-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);margin-top:4px}.gs-section{padding:14px 16px}.gs-section-title{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}.gs-two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 900px){.gs-two-col{grid-template-columns:1fr}}.gs-table{width:100%;border-collapse:collapse;font-size:12px;font-family:var(--font-mono)}.gs-table th{text-align:right;font-size:10px;font-weight:700;letter-spacing:.05em;color:var(--text-dim);padding:3px 6px 5px;border-bottom:1px solid var(--border)}.gs-table th.gs-name-col,.gs-table td.gs-name-col{text-align:left;font-family:var(--font-sans);font-size:12px}.gs-table td{text-align:right;padding:4px 6px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text-secondary)}.gs-table tbody tr:hover td{background:var(--bg-hover)}.gs-totals td{font-weight:700;border-top:1px solid var(--border);border-bottom:none;color:var(--text-primary)}.gs-row-highlight td{background:#22c55e0a}.gs-hits{color:var(--great);font-weight:600}.gs-hr{color:#f59e0b;font-weight:600}.gs-rbi{color:var(--great)}.gs-runs-allowed{color:var(--poor)}.gs-dim{color:var(--text-dim)}.gs-role{font-size:9px;color:var(--text-dim);font-style:italic;margin-left:3px}.gs-rhe-sep{border-left:2px solid var(--border);padding-left:10px!important}.gs-notable-row{display:flex;align-items:flex-start;gap:10px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04)}.gs-notable-row:last-child{border-bottom:none}.gs-notable-label{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);min-width:80px;flex-shrink:0;padding-top:3px}.gs-notable-items{display:flex;flex-wrap:wrap;gap:6px}.gs-notable-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 8px;border-radius:4px}.gs-chip-streak{background:#22c55e1a;color:var(--great);border:1px solid rgba(34,197,94,.25)}.gs-chip-milestone{background:#a78bfa1a;color:#a78bfa;border:1px solid rgba(167,139,250,.25)}.gs-chip-meta{font-size:10px;font-weight:400;opacity:.75}.gs-empty{font-size:12px;color:var(--text-dim);font-style:italic;margin:4px 0}.gs-bottom-bar{display:flex;justify-content:center;gap:12px;padding:8px 0 24px}.ai-insight-btn{background:none;border:1px solid var(--accent-dim);border-radius:3px;color:var(--accent);cursor:pointer;font-size:9px;font-weight:700;letter-spacing:.06em;line-height:1;padding:2px 5px;opacity:.55;transition:opacity .15s,background .15s}.ai-insight-btn:hover{opacity:1;background:#38bdf814}.ai-insight-btn.active{opacity:1;background:#38bdf81f;border-color:var(--accent)}.insights-row-cell{padding:10px 16px 14px;background:#0a1220b3;border-top:1px solid var(--border)}.insights-panel{display:flex;flex-direction:column;gap:7px;max-width:800px}.insights-loading{color:var(--text-secondary);font-size:12px;display:flex;align-items:center;gap:8px}.insights-error{color:#f87171;font-size:12px;font-style:italic}.insight-item{display:flex;align-items:baseline;gap:8px}.insight-num{color:var(--text-dim);font-size:11px;font-weight:600;min-width:14px;flex-shrink:0}.insight-badge{border-radius:3px;font-size:9px;font-weight:700;letter-spacing:.08em;padding:2px 5px;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.insight-badge-bvp{background:#6366f133;color:#a5b4fc}.insight-badge-streak{background:#22c55e26;color:#4ade80}.insight-badge-platoon{background:#eab30826;color:#fde047}.insight-badge-arsenal{background:#ef444426;color:#fca5a5}.insight-badge-milestone{background:#f59e0b33;color:#fbbf24}.insight-badge-today{background:#38bdf826;color:#7dd3fc}.insight-text{color:var(--text-primary);font-size:12.5px;line-height:1.5}.insights-attribution{font-size:10px;color:var(--text-dim);margin-top:3px;opacity:.6}.box-score{padding:12px 0;max-width:960px;margin:0 auto}.bs-section{margin-bottom:20px}.bs-section-title{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 6px;padding:0 4px}.bs-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.bs-table th{font-size:10px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-dim);padding:4px 5px;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap}.bs-table td{padding:4px 5px;text-align:center;border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.04));color:var(--text-primary)}.bs-table tbody tr:hover{background:#ffffff08}.bs-name-col{text-align:left!important;white-space:nowrap;min-width:120px;font-weight:500}.bs-row-dim td{color:var(--text-dim);opacity:.5}.bs-totals-row td{font-weight:700;border-top:1.5px solid var(--border);color:var(--text-primary)}.bs-linescore{margin-bottom:16px}.bs-team-col{text-align:left!important;font-weight:700;min-width:48px;white-space:nowrap}.bs-inn-col{min-width:24px;width:24px}.bs-rhe-col{min-width:28px;border-left:1px solid var(--border)}.bs-rhe-bold{font-weight:700}.bs-pitcher-role{font-size:10px;color:var(--text-dim);font-weight:400;margin-left:4px}.bs-empty{text-align:center;color:var(--text-dim);padding:12px;font-style:italic}.bs-empty-msg{text-align:center;color:var(--text-dim);padding:32px 16px;font-size:13px}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg-primary);padding:24px 16px}.auth-card{width:100%;max-width:400px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:32px;display:flex;flex-direction:column;gap:24px}.auth-brand{display:flex;align-items:center;justify-content:center}.auth-brand .brand-logo-img{height:32px}.auth-tabs{display:flex;border-bottom:1px solid var(--border)}.auth-tab{flex:1;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:13px;font-weight:600;padding:8px 0;cursor:pointer;transition:color .15s,border-color .15s;margin-bottom:-1px}.auth-tab.active{color:var(--text-primary);border-bottom-color:var(--accent)}.auth-tab:hover:not(.active){color:var(--text-primary)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-label{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary)}.auth-input{background:var(--bg-deep);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:14px;padding:9px 12px;outline:none;transition:border-color .15s}.auth-input:focus{border-color:var(--accent)}.auth-input::placeholder{color:var(--text-dim)}.auth-error{background:#ef44441f;border:1px solid rgba(239,68,68,.35);border-radius:6px;color:#f87171;font-size:13px;padding:8px 12px}.auth-submit{width:100%;padding:10px;font-size:14px;margin-top:4px}.auth-switch{text-align:center;font-size:13px;color:var(--text-secondary);margin:0}.auth-switch-btn{background:none;border:none;color:var(--accent);font-size:13px;cursor:pointer;padding:0;text-decoration:underline}.user-menu-wrap{position:relative}.user-avatar-btn{width:30px;height:30px;border-radius:50%;background:var(--accent);border:none;color:#fff;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}.user-avatar-btn:hover{opacity:.85}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0006;z-index:200;overflow:hidden}.user-menu-info{display:flex;flex-direction:column;gap:2px;padding:12px 14px}.user-menu-name{font-size:13px;font-weight:600;color:var(--text-primary)}.user-menu-email{font-size:11px;color:var(--text-dim)}.user-menu-role{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-top:2px}.user-menu-divider{height:1px;background:var(--border)}.user-menu-item{display:block;width:100%;background:none;border:none;text-align:left;color:var(--text-primary);font-size:13px;padding:10px 14px;cursor:pointer;transition:background .12s}.user-menu-item:hover{background:#ffffff0d}.user-menu-signout{color:#f87171}.save-flash{font-size:12px;font-weight:600;padding:3px 8px;border-radius:4px;animation:fadeIn .15s ease}.save-flash-ok{color:#4ade80}.save-flash-err{color:#f87171}.gh-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:300;display:flex;justify-content:flex-end}.gh-panel{width:360px;max-width:100vw;background:var(--bg-card);border-left:1px solid var(--border);display:flex;flex-direction:column;height:100%;animation:slideInRight .2s ease}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.gh-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.gh-title{font-size:14px;font-weight:700;color:var(--text-primary)}.gh-close{background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;line-height:1;padding:4px}.gh-close:hover{color:var(--text-primary)}.gh-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:32px 24px;color:var(--text-secondary);font-size:13px;text-align:center}.gh-empty-sub{color:var(--text-dim);font-size:12px}.gh-list{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}.gh-item{display:flex;flex-direction:column;gap:6px;padding:14px 18px;border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.05))}.gh-item:last-child{border-bottom:none}.gh-matchup{display:flex;align-items:center;gap:10px}.gh-team{display:flex;align-items:center;gap:5px}.gh-logo{width:22px;height:22px;object-fit:contain}.gh-abbr{font-size:13px;font-weight:700;color:var(--text-primary)}.gh-score{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:16px;font-weight:700;color:var(--text-primary);flex:1;justify-content:center}.gh-score-sep{color:var(--text-dim);font-weight:400}.gh-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px}.gh-inning{color:var(--accent);font-weight:600}.gh-date{color:var(--text-dim)}.gh-actions{display:flex;gap:6px}.gh-delete-btn{color:var(--text-dim)}.gh-delete-btn:hover{color:#f87171}.admin-panel{width:560px}.admin-user-list{overflow-y:auto;flex:1}.admin-user-row{display:grid;grid-template-columns:1fr 56px 72px 100px 72px;align-items:center;gap:8px;padding:10px 18px;border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.05))}.admin-user-row:last-child{border-bottom:none}.admin-user-header{font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-dim);padding-top:12px;padding-bottom:8px;border-bottom:1px solid var(--border)!important}.admin-user-me{background:rgba(var(--accent-rgb, 88, 130, 255),.06)}.admin-user-info{display:flex;align-items:center;gap:10px;min-width:0}.admin-user-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-user-name{font-size:13px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:6px}.admin-user-email{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-me-tag{font-size:10px;font-weight:700;color:var(--accent);background:#5882ff26;border-radius:3px;padding:1px 5px}.admin-col-games,.admin-col-role,.admin-col-joined,.admin-col-action{font-size:12px;text-align:center}.admin-stat{font-family:var(--font-mono);font-size:13px;color:var(--text-primary);font-weight:600}.admin-date{color:var(--text-secondary);font-size:11px}.admin-role-badge{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:3px;padding:2px 6px}.admin-role-badge.admin{color:#fbbf24;background:#fbbf241f}.admin-role-badge.user{color:var(--text-secondary);background:#ffffff0f}.admin-games-btn{background:none;border:none;font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px;border-radius:4px;transition:background .12s}.admin-games-btn:hover:not(:disabled){background:#ffffff12}.admin-games-btn:disabled{cursor:default;color:var(--text-dim)}.admin-games-btn.active{color:var(--accent)}.admin-games-arrow{font-size:9px;color:var(--text-dim)}.admin-games-panel{background:#0003;border-top:1px solid var(--border-subtle, rgba(255,255,255,.05));border-bottom:1px solid var(--border-subtle, rgba(255,255,255,.05))}.admin-games-list{list-style:none;margin:0;padding:4px 0}.admin-game-row{display:flex;align-items:center;gap:10px;padding:8px 24px 8px 36px;border-bottom:1px solid rgba(255,255,255,.03)}.admin-game-row:last-child{border-bottom:none}.admin-game-meta{display:flex;flex-direction:column;gap:2px;min-width:120px}.admin-games-empty{padding:12px 36px;font-size:12px;color:var(--text-dim);font-style:italic}
