/* Shared restrained corners; icon-only controls retain circular targets. */
:root{--market-action-height:42px;--market-action-font:600 16px/21px 'DM Sans',sans-serif}
:root{--button-radius:8px;--yes-control-bg:#203c49;--yes-control-text:#8ee4b8;--yes-control-border:#61d6a43d;--no-control-bg:#3b2b49;--no-control-text:#f2a1b3;--no-control-border:#e27a9138}
.compact-save[aria-pressed=false]:is(:hover,:focus-visible) img,.banner-save[aria-pressed=false]:is(:hover,:focus-visible) img{content:url('assets/collections/star-outline-white.svg')}
/* Match the event-page watchlist hover without changing card layout. */
.compact-save,.banner-save{position:relative;isolation:isolate}
.compact-save::before,.banner-save::before{content:'';position:absolute;inset:-8px;border:1px solid transparent;border-radius:var(--button-radius);background:transparent;z-index:-1;pointer-events:none;transition:background-color .18s,border-color .18s}
.banner-save::before{inset:-3px}
.compact-save:is(:hover,:focus-visible)::before,.banner-save:is(:hover,:focus-visible)::before{background:#ffffff14;border-color:#ffffff25}
.banner-save:is(:hover,:focus-visible){background:none}
@media(prefers-reduced-motion:reduce){.compact-save::before,.banner-save::before{transition:none}}
:root body button:not(.slide-tab):not(.topic):not(.trend):not(.outcome-button){border-radius:var(--button-radius)}
:root body #category-navigation .category-pill,:root body #search-panel .search-chips button{border-radius:999px}
:root body :is(#menu,#dismiss,#search-clear,#search-close,.compact-save,.banner-save,.collection-arrow,.category-arrow){border-radius:50%}
#menu,#dismiss{width:28px;height:28px;padding:0;display:grid;place-items:center;flex:none}
/* Square icon-only controls, with their artwork centered independently of font metrics. */
#menu,#dismiss,#search-clear,#search-close,.compact-save,.banner-save,.collection-arrow,.category-arrow{aspect-ratio:1;flex-shrink:0;line-height:1;display:flex;align-items:center;justify-content:center}
#menu>svg{display:block;flex:none;width:18px;height:18px}
#dismiss>svg{display:block;flex:none;width:16px;height:16px}
header #search-clear,#mobile-search #search-clear{width:24px;height:24px;min-width:24px;padding:4px;display:flex;align-items:center;justify-content:center;line-height:1}
header #search-clear>svg,#mobile-search #search-clear>svg{display:block;flex:none;width:16px;height:16px}
.collection-arrow>img,.category-arrow>img{display:block;flex:none;width:16px;height:16px;object-fit:contain}
/* One pulse for all live indicators, keeping each context's accent color. */
.live-dot,.live i,.card-live i,.chart-ranges button[data-chart-range="Live"]::before{display:inline-block;flex:none;width:6px;height:6px;border-radius:50%;background:currentColor;color:#82f5ba;box-shadow:0 0 0 3px #82f5ba14;animation:live-status-pulse 1.8s ease-out infinite}
.market-badge.is-live{gap:7px}
.market-badge.is-live .live-dot{color:#82f5ba}
.chart-ranges button[data-chart-range="Live"]{gap:8px}
@keyframes live-status-pulse{0%{box-shadow:0 0 0 2px #82f5ba30,0 0 0 4px #82f5ba14}75%,100%{box-shadow:0 0 0 7px #82f5ba00,0 0 0 10px #82f5ba00}}
@media(prefers-reduced-motion:reduce){.live-dot,.live i,.card-live i,.chart-ranges button[data-chart-range="Live"]::before{animation:none}}
/* Probability preview keeps each button's size and original action intact. */
button[data-hover-probability]{--probability-fill:#19845e}
button.no[data-hover-probability]{--probability-fill:#b8405b}
.choice-default{display:inline-flex;align-items:center;justify-content:center;gap:inherit;pointer-events:none;transition:opacity 120ms ease-out}
.choice-probability{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums;font-weight:600;opacity:0;pointer-events:none;transition:opacity 120ms ease-out}
:root body :is(.compact-market,.trade-outcomes,.outcomes-panel) button[data-hover-probability]:focus-visible,:root body .featured button[data-hover-probability]:focus-visible{background:var(--probability-fill);color:#fff;border-color:var(--probability-fill);box-shadow:none;filter:none}
button[data-hover-probability]:focus-visible .choice-default{opacity:0}
button[data-hover-probability]:focus-visible .choice-probability{opacity:1}
@media(hover:hover) and (pointer:fine){
 :root body :is(.compact-market,.trade-outcomes,.outcomes-panel) button[data-hover-probability]:hover,:root body .featured button[data-hover-probability]:hover{background:var(--probability-fill);color:#fff;border-color:var(--probability-fill);box-shadow:none;filter:none}
 button[data-hover-probability]:hover .choice-default{opacity:0}
 button[data-hover-probability]:hover .choice-probability{opacity:1}
}
@media(prefers-reduced-motion:reduce){.choice-default,.choice-probability{transition:none}}
