/* Shared opponent name/year header: copied from the verified Eaton component. */
.ob-sheet .ob-name,.ob-sheet .ob-yr{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.ob-sheet .ob-name{height:10.5pt;display:flex;align-items:center;white-space:nowrap;color:var(--ob-team-color);font:600 12pt/1 'OB Avenir','Avenir Next Condensed',sans-serif;margin-top:4px}
.ob-sheet .ob-yr,.ob-sheet .ob-who:has(.ob-hand) .ob-yr{transform:translateY(1.8pt);padding-right:0;font-size:8.5pt;gap:1.6pt;height:12.5pt;flex-wrap:nowrap}
.ob-sheet .ob-yr>span,.ob-sheet .ob-yr>i,.ob-sheet .ob-profile-tags{display:flex;align-items:center;height:100%;flex:none}
.ob-sheet .ob-profile-tags .ob-tag{padding-top:0;flex:none}

/* Slight rounding for every opponent card, including its border overlay. */
.ob-sheet .ob-card{border-radius:3pt}
.ob-sheet .ob-card::after{border-radius:inherit}

/* Six readable chronological AB slots; newer ABs extend to the right. */
.ob-sheet .ob-history{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 2.5pt)/6);overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}
.ob-sheet .ob-history::-webkit-scrollbar{display:none;height:0}
/* Desktop result rows drag horizontally; touch keeps native scrolling. */
@media screen and (hover:hover) and (pointer:fine){.ob-sheet .ob-card[data-ob-history-overflow="true"] .ob-history{cursor:grab}}
.ob-sheet .ob-card .ob-history[data-ob-dragging="true"]{cursor:grabbing;user-select:none;scroll-snap-type:none}
.ob-sheet .ob-history::-webkit-scrollbar-thumb{background:#aaa;border-radius:3px}
.ob-sheet .ob-history>.ob-ab{height:100%;grid-template-rows:13.314pt minmax(0,1fr);scroll-snap-align:start}
.ob-sheet .ob-fp>.ob-fp-label,.ob-sheet .ob-discipline{flex-shrink:0}
.ob-sheet .ob-fp-dots{min-width:0;flex:0 1 auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.ob-sheet .ob-fp-dots::-webkit-scrollbar{height:0}
@media screen and (max-width:600px){.ob-sheet .ob-history{scrollbar-width:none}.ob-sheet .ob-history::-webkit-scrollbar{height:0}}
@media screen{.ob-sheet .ob-fp-dots>[data-ob-history-offscreen="true"]{display:none}}
@media print{
 .ob-sheet .ob-history{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-flow:row;grid-auto-columns:auto;overflow:hidden;scroll-snap-type:none;scrollbar-width:none}
 .ob-sheet .ob-history::-webkit-scrollbar{display:none}
 .ob-sheet .ob-history>.ob-ab{grid-template-rows:13.314pt 19.005pt}
 .ob-sheet .ob-history>.ob-ab:nth-last-child(n+7),.ob-sheet .ob-fp-dots>[data-ob-history-old="true"]{display:none}
 /* recent-left documents (newest game first): print keeps the FIRST six. */
 [data-ob-history-order="recent-left"] .ob-sheet .ob-history>.ob-ab:nth-last-child(n+7){display:grid}
 [data-ob-history-order="recent-left"] .ob-sheet .ob-history>.ob-ab:nth-child(n+7){display:none}
}
/* Prior-season at-bats (older games to the right): slightly darker result cell, Craig 2026-10-20. */
.ob-sheet .ob-history>.ob-ab[data-ob-prior-season]>.ob-ab-result{background:#d9d9d9}

/* Shared first-pitch states: orange swing, hollow orange looking, dotted gray ball. */
.ob-sheet.ob-falcon-v7 .ob-fp b.ob-sw{border:.5pt solid #ff9400;background:#ff9400}
.ob-sheet.ob-falcon-v7 .ob-fp b.ob-fp-looking{border:.5pt solid #ff9400;background:#fff}
.ob-sheet.ob-falcon-v7 .ob-fp b.ob-fp-ball{border:.5pt dotted #808184;background:#fff}
/* First-pitch markers are circles without exception (Craig 2026-10-20): width = height, never stretched or shrunk. */
.ob-sheet .ob-fp .ob-fp-dots>b:not(.ob-fp-unknown){flex:0 0 9.538pt;width:9.538pt;height:9.538pt;min-width:9.538pt;min-height:9.538pt;max-width:9.538pt;max-height:9.538pt;aspect-ratio:1/1;box-sizing:border-box;border-radius:50%}
/* Neutral directions stay available for handwritten circles. */
.ob-sheet.ob-falcon-v7 .ob-distribution-empty{justify-content:flex-start;align-items:center;background:#ebebeb;color:#999;font-weight:400}
.ob-sheet.ob-falcon-v7 .ob-distribution-empty .ob-distribution-label{width:18pt;box-sizing:border-box;order:0;font-weight:400;flex-shrink:0}
.ob-sheet.ob-falcon-v7 .ob-direction-options,.ob-sheet.ob-falcon-v7 .ob-distribution-empty:not(:has(.ob-direction-options))::after{display:flex;align-items:center;font-weight:400;white-space:nowrap}
.ob-sheet.ob-falcon-v7 .ob-distribution-empty:not(:has(.ob-direction-options))::after{content:"EXT PULL | PULL | SPRAY | OPPO"}
/* Existing table notes keep a visible card location above the empty field. */
.ob-sheet.ob-falcon-v7 .ob-source-note{position:absolute;top:38pt;left:3pt;right:3pt;max-height:30pt;overflow:auto;color:#666;font:400 6.5pt/1.1 'OB Avenir','Avenir Next Condensed',sans-serif;z-index:2}
.ob-sheet.ob-falcon-v7 .ob-chart[data-ob-notes="true"] .ob-chart-viewport{top:70pt;transform:scale(.6)}
.ob-sheet.ob-falcon-v7 .ob-approach-pitch .pitch-owner{font-size:65%;font-weight:400;margin-right:1pt}
@media print{.ob-sheet.ob-falcon-v7 .ob-source-note{overflow:visible}}
/* Craig's hit-distribution brown palette, 2026-10-19. */
.ob-sheet.ob-falcon-v7 .ob-distribution-ground{--ob-dist-left:#cd8f47;--ob-dist-center:#b25218;--ob-dist-right:#561e05}
.ob-sheet.ob-falcon-v7 .ob-distribution-ground[data-ob-batting-side="L"]{--ob-dist-left:#561e05;--ob-dist-right:#cd8f47}
.ob-sheet.ob-falcon-v7 .ob-distribution-fly{--ob-dist-left:#00cb00;--ob-dist-center:#006d00;--ob-dist-right:#033000}
.ob-sheet.ob-falcon-v7 .ob-distribution-fly[data-ob-batting-side="L"]{--ob-dist-left:#033000;--ob-dist-right:#00cb00}
/* Unselected printed choices stay available for circling without competing with data. */
.ob-sheet.ob-falcon-v7 .ob-direction-options,.ob-sheet.ob-falcon-v7 .ob-distribution-empty:not(:has(.ob-direction-options))::after{opacity:.2}
.ob-sheet.ob-falcon-v7 .ob-distribution-scope{font:400 5.5pt/1 'OB Avenir','Avenir Next Condensed',sans-serif;align-self:flex-end;padding:0 0 1pt 2pt;white-space:nowrap}
/* HF BIP overlays: outcome controls the ring, trajectory controls the center. */
.ob-sheet.ob-falcon-v7 .ob-chart .ob-bub{width:9.3pt;height:9.3pt;border-width:1.32pt;font-size:0;color:transparent;background:#333}
.ob-sheet.ob-falcon-v7 .ob-chart .ob-bub.ob-hit{border-color:#00d682}
.ob-sheet.ob-falcon-v7 .ob-chart .ob-bub.ob-out{border-color:#b90018}
.ob-sheet.ob-falcon-v7 .ob-chart .ob-bub[data-ob-contact-trajectory="ground"]{background:#000}
.ob-sheet.ob-falcon-v7 .ob-chart .ob-bub[data-ob-contact-trajectory="air"]{background:#fff}
/* Keep the complete strikeout rail inside the printed card. */
.ob-sheet.ob-falcon-v7 .ob-chart .ob-strikeouts{top:137pt}
.ob-sheet.ob-falcon-v7 .ob-chart[data-ob-identity-note="true"] .ob-source-note{max-height:45pt}
.ob-sheet.ob-falcon-v7 .ob-chart[data-ob-identity-note="true"] .ob-chart-viewport{top:85pt;transform:scale(.5)}
.ob-sheet.ob-falcon-v7 .ob-chart .ob-bub[data-ob-contact-trajectory="air"]{border-width:1.8pt}
.ob-sheet.ob-falcon-v7 .ob-chart:has(.ob-spray[data-ob-blank="true"]) .ob-strikeouts{top:137pt}
/* Strikeouts sit behind the plate, with the same rendered diameter as HF BIPs. */
.ob-sheet.ob-falcon-v7 .ob-chart{--ob-result-scale:.83;--ob-home-x:50%}
.ob-sheet.ob-falcon-v7 .ob-chart[data-ob-notes="true"]{--ob-result-scale:.6;--ob-home-x:73.931255pt}
.ob-sheet.ob-falcon-v7 .ob-chart[data-ob-identity-note="true"]{--ob-result-scale:.5;--ob-home-x:65.318105pt}
.ob-sheet.ob-falcon-v7 .ob-chart>.ob-strikeouts,.ob-sheet.ob-falcon-v7 .ob-chart:has(.ob-spray[data-ob-blank="true"])>.ob-strikeouts{left:var(--ob-home-x);top:auto;bottom:1pt;height:9.3pt;gap:.8pt;transform:translateX(-50%) scale(var(--ob-result-scale));transform-origin:center bottom}
.ob-sheet.ob-falcon-v7 .ob-chart>.ob-strikeouts .ob-k-symbol{box-sizing:border-box;width:9.3pt;height:9.3pt;border:1.8pt solid #b90018;background:rgba(185,0,24,.5);font-size:0;color:transparent;padding:0}
.ob-sheet.ob-falcon-v7 .ob-chart>.ob-strikeouts .ob-k-label{color:#b90018}
