@layer props-odds.utilities {
/* Accessible visually-hidden utility for fallbacks */
.props-odds .sr-only,
.props-odds-scope .sr-only {
  position: absolute !important;
  height: 1px;
  width: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  border: 0;
  padding: 0;
  margin: -1px;
}

/* Hide JCF clones of sr-only elements to prevent double menus */
.props-odds .jcf-select-sr-only,
.props-odds-scope .jcf-select-sr-only {
  display: none !important;
}

/* Scroll helpers shared by table + custom scrollbar */
.props-odds .scrollbar-gutter,
.props-odds-scope .scrollbar-gutter { scrollbar-gutter: stable; }
.props-odds .scrollbar-shim,
.props-odds-scope .scrollbar-shim { height: 1px; width: 0; }

/* Utility toggles for conditional UI states */
.props-odds .matchup-filter-hidden,
.props-odds-scope .matchup-filter-hidden { display: none; }
.props-odds .player-search-hidden,
.props-odds-scope .player-search-hidden { display: none; visibility: hidden; height: 0; overflow: hidden; opacity: 0; }
.props-odds .props-row-hidden,
.props-odds-scope .props-row-hidden { display: none !important; }

html.props-modal-open,
body.props-modal-open {
  overflow-y: auto !important;
  overflow-x: hidden;
}

/* Ensure SVG icons in filter buttons display correctly */
.props-odds .props-matchups-button svg,
.props-odds-scope .props-matchups-button svg,
.props-odds .props-filters-button svg,
.props-odds-scope .props-filters-button svg {
  width: 16px !important;
  height: 16px !important;
  display: inline-block !important;
  flex-shrink: 0;
}
}
