@layer components{.live-odds-controls{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.live-odds-controls>.live-odds-controls__primary{display:flex;align-items:flex-start;flex-wrap:wrap;gap:.75rem;margin-right:auto}.live-odds-scroll{overflow-x:auto;width:100%}.live-odds-table{width:100%;border-collapse:collapse;font-size:.8125rem}@media(width >= 48rem){.live-odds-table{font-size:.875rem}}.live-odds-table th,.live-odds-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border);white-space:nowrap;text-align:center;vertical-align:middle}.live-odds-table th{font-size:.6875rem;font-weight:300;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.live-odds-table tbody tr:hover>td{background:var(--color-hover)}.live-odds-table tbody tr:hover>td.live-odds-table__matchup{background:linear-gradient(var(--color-hover), var(--color-hover)),var(--color-surface)}.live-odds-table .live-odds-table__matchup,.live-odds-table .live-odds-table__wager,.live-odds-table .live-odds-table__best{text-align:left}.live-odds-table tbody tr:has(>.live-odds-table__matchup)>td:not(.live-odds-table__matchup){border-bottom-color:color-mix(in srgb, var(--color-border) 45%, transparent)}.live-odds-table__matchup{position:sticky;left:0;z-index:1;background:var(--color-surface);min-width:20rem;max-width:20rem;overflow:hidden}.live-odds-table__wager{color:var(--color-text-secondary)}.live-odds-wager__team{color:var(--color-text)}.live-odds-table__group{border-bottom:2px solid var(--color-border)}.live-odds-table__group--pm{border-bottom-color:var(--color-accent-purple)}.live-odds-table__venue--pm{background:color-mix(in srgb, var(--color-accent-purple) 7%, transparent);border-inline:1px solid var(--color-border)}.live-odds-table__venue--hidden{visibility:collapse}.live-odds-table__best{min-width:9rem;background:color-mix(in srgb, var(--color-primary-green) 5%, transparent);border-inline-start:1px solid var(--color-border)}.live-odds-table__venue{min-width:5.5rem}.live-odds-best__venue{display:block;font-size:.6875rem;font-weight:300;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-secondary)}.live-odds-edge{display:block;margin-top:.125rem;font-size:.6875rem;font-weight:600;color:var(--color-primary-green)}.live-odds-matchup__teams{display:block;overflow:hidden;font-weight:300;color:var(--color-text);text-overflow:ellipsis}.live-odds-matchup__logo{width:1rem;height:1rem;margin-right:.25rem;vertical-align:-0.15rem}.live-odds-matchup__meta{display:block;min-height:1.25rem;font-size:.75rem;color:var(--color-text-muted)}.live-odds-live{display:inline-flex;align-items:center;gap:.3rem;font-weight:600;font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase;color:var(--color-danger-bright)}.live-odds-live__dot{width:.4rem;height:.4rem;border-radius:var(--radius-full);background:currentcolor}.live-odds-price{display:block;margin-inline:auto;width:fit-content;min-width:3.25rem;padding:.0625rem .375rem;border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);border:1px solid rgba(0,0,0,0)}.live-odds-price.live-odds-price--best{border-color:var(--color-primary-green);background:color-mix(in srgb, var(--color-primary-green) 10%, transparent);color:var(--color-text);font-weight:600}.live-odds-updated{display:block;margin-bottom:.375rem;font-size:.75rem;color:var(--color-text-muted);text-align:right;white-space:nowrap;transition:color 1.5s ease}.live-odds-updated.live-odds-updated--flash{color:var(--color-primary-green);transition:none}.live-odds-sync{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.live-odds-sync__btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.8125rem;font-weight:300;cursor:pointer}.live-odds-sync__btn:hover{background:var(--color-hover)}.live-odds-sync__icon{width:1rem;height:1rem}.live-odds-sync__icon--spinning{animation:live-odds-sync-spin .7s linear infinite}@media(prefers-reduced-motion: reduce){.live-odds-sync__icon--spinning{animation:none}}@keyframes live-odds-sync-spin{to{transform:rotate(360deg)}}.live-odds-sync__status{margin:0;min-height:1.25rem;font-size:.75rem;color:var(--color-text-muted)}.live-odds-empty{padding:2rem 0;color:var(--color-text-secondary)}.live-odds-empty__hint{font-size:.875rem;color:var(--color-text-muted)}.live-odds-format{display:inline-flex;gap:.125rem;padding:.1875rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.live-odds-format__btn{padding:.25rem .625rem;border:1px solid rgba(0,0,0,0);border-radius:var(--radius-sm);background:var(--btn-shaded-bg);color:var(--btn-shaded-text);font-size:.75rem;font-weight:300;cursor:pointer}.live-odds-format__btn:hover:not([aria-pressed=true]){color:var(--btn-shaded-active-text)}.live-odds-format__btn[aria-pressed=true]{background:var(--btn-shaded-active-bg);color:var(--btn-shaded-active-text);border-color:var(--btn-shaded-active-border)}.live-odds-price__percent,.live-odds-price__cents{display:none}[data-odds-format-format-value=percent] .live-odds-price__american,[data-odds-format-format-value=percent] .live-odds-price__cents{display:none}[data-odds-format-format-value=percent] .live-odds-price__percent{display:inline}[data-odds-format-format-value=cents] .live-odds-price__american,[data-odds-format-format-value=cents] .live-odds-price__percent{display:none}[data-odds-format-format-value=cents] .live-odds-price__cents{display:inline}[data-price-filter-sign-value=favorite] tr[data-price-sign=underdog]>td:not(.live-odds-table__matchup),[data-price-filter-sign-value=favorite] tr[data-price-sign=unpriced]>td:not(.live-odds-table__matchup),[data-price-filter-sign-value=underdog] tr[data-price-sign=favorite]>td:not(.live-odds-table__matchup),[data-price-filter-sign-value=underdog] tr[data-price-sign=unpriced]>td:not(.live-odds-table__matchup){padding-block:0;border-bottom:0;font-size:0;line-height:0}[data-price-filter-sign-value=favorite] tr[data-price-sign=underdog]>td:not(.live-odds-table__matchup)>*,[data-price-filter-sign-value=favorite] tr[data-price-sign=unpriced]>td:not(.live-odds-table__matchup)>*,[data-price-filter-sign-value=underdog] tr[data-price-sign=favorite]>td:not(.live-odds-table__matchup)>*,[data-price-filter-sign-value=underdog] tr[data-price-sign=unpriced]>td:not(.live-odds-table__matchup)>*{display:none}.live-odds-book-filter{position:relative}.live-odds-book-filter__summary{padding:.375rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font-size:.8125rem;font-weight:300;color:var(--color-text);cursor:pointer;list-style:none}.live-odds-book-filter__summary::-webkit-details-marker{display:none}.live-odds-book-filter__summary:hover{background:var(--color-hover)}.live-odds-book-filter__list{position:absolute;z-index:10;top:calc(100% + .25rem);right:0;display:grid;gap:.375rem;width:max-content;max-height:16rem;margin:0;padding:.625rem;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 4px 12px color-mix(in srgb, black 15%, transparent)}.live-odds-book-filter__item{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--color-text);cursor:pointer}}
