@font-face {
  font-family: "Barlow Semi Condensed";
  src: url("barlow-semi-condensed-600.ttf") format("truetype");
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: Manrope;
  src: url("manrope.ttf") format("truetype");
  font-weight: 200 800;
  font-display: swap;
}

:root {
  color-scheme: light;
  --paper: #fff;
  --soft: #f1f4fa;
  --ink: #192335;
  --body: #202126;
  --muted: #596477;
  --rule: #e7e9ed;
  --control: #d6dde8;
  --accent: #2463eb;
  --best: #235dc7;
  --negative: #c13552;
  --selected: #202e46;
  --selected-text: #fff;
  --headline: "Barlow Semi Condensed", "Avenir Next Condensed", "Arial Narrow", sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
    --paper: #141c29; --soft: #202c3f; --ink: #edf3fc; --body: #e4eaf4;
    --muted: #b6c5da; --rule: #364559; --control: #526078; --accent: #9dbfff;
    --best: #9dbfff; --negative: #ff9ba4; --selected: #e0ebff; --selected-text: #192335;
  }
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #141c29; --soft: #202c3f; --ink: #edf3fc; --body: #e4eaf4;
  --muted: #b6c5da; --rule: #364559; --control: #526078; --accent: #9dbfff;
  --best: #9dbfff; --negative: #ff9ba4; --selected: #e0ebff; --selected-text: #192335;
}

* { box-sizing: border-box; }
dialog pre, #session-events pre { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 100%; font-size: .78rem; }
[hidden] { display: none !important; }
body { margin: 0; background: var(--paper); color: var(--body); font: 15px/1.5 system-ui, sans-serif; }
a { color: var(--accent); }
button, input, select, .desk-action {
  font: inherit; color: inherit; background: var(--paper); border: 1px solid var(--control);
  border-radius: 8px; padding: .45rem .7rem; min-width: 0;
}
button, summary, select { cursor: pointer; }
button:disabled { opacity: .5; cursor: default; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
input[type="checkbox"] { accent-color: var(--accent); }
.skip-link { position: absolute; left: 1rem; top: -4rem; padding: .5rem; background: var(--paper); z-index: 2; }
.skip-link:focus { top: 0; }

.p-chrome {
  display: flex; align-items: center; flex-wrap: wrap; gap: 1.65rem;
  min-height: 100px; padding: 1rem clamp(1.125rem, 3.125vw, 3rem);
  border-bottom: 1px solid var(--rule);
}
.p-brand {
  display: inline-flex; align-items: center; gap: .7rem; margin-inline-end: auto;
  color: var(--ink); text-decoration: none; font-size: 1.18rem; font-weight: 750; letter-spacing: -.045em;
}
.desk-brand-mark {
  display: grid; place-items: center; flex: 0 0 36px; height: 36px;
  border-radius: 9px; background: #2463eb; color: #fff;
  font-size: 1.14rem; font-weight: 750; font-style: italic;
}
.p-nav {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  width: min(280px, 100%); padding: 4px; border-radius: 99px; background: var(--soft);
}
.p-nav a {
  display: grid; place-items: center; min-height: 36px; padding: .35rem;
  border-radius: 99px; color: var(--muted); text-decoration: none; font-size: .82rem; font-weight: 600;
}
.p-nav a:hover { color: var(--ink); }
.p-nav a[aria-current] { color: var(--selected-text); background: var(--selected); }
.p-format { display: flex; align-items: center; gap: .55rem; font-size: .83rem; color: var(--muted); }
.p-format select { border-color: transparent; padding: .4rem .25rem; color: var(--ink); font-weight: 600; }

main { max-width: 1280px; margin: auto; padding: 2rem clamp(1.125rem, 3.125vw, 3rem) 3rem; }
h1, h2, h3, p { margin: 0 0 .65rem; }
h1, h2, h3 { font-family: var(--headline); font-weight: 600; color: var(--ink); }
h1 { font-size: 44px; line-height: 1.05; letter-spacing: -.6px; }
h2 { font-size: 21px; line-height: 1.18; }
h3 { font-size: 19px; line-height: 1.2; }
.desk-title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.desk-title h1 { margin: 0; }
.desk-title span, .desk-note, .desk-meta, small { color: var(--muted); font-size: .8rem; }
.desk-title span { flex: 0 0 auto; }
.desk-note:empty, #feedback:empty { display: none; }

.desk-filters { position: relative; display: flex; align-items: end; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.25rem; }
.desk-filters label, .desk-settings label { display: flex; flex-direction: column; gap: .22rem; color: var(--muted); font-size: .82rem; }
.desk-filters input, .desk-filters select { color: var(--ink); max-width: 100%; }
.desk-filters input[type="number"] { width: 8rem; }
#stake-field { margin-inline-start: auto; }
summary { color: var(--accent); }
fieldset { display: flex; flex-wrap: wrap; gap: .45rem .8rem; border: 0; margin: 0 0 .6rem; padding: 0; min-width: 0; }
legend { font-weight: 650; }
fieldset label, .desk-thresholds label:has(input[type="checkbox"]) { display: flex; flex-direction: row; align-items: center; }
.desk-thresholds, .desk-settings { display: flex; flex-wrap: wrap; gap: .8rem; margin: .6rem 0; }

.desk-columns, .desk-row {
  display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(6rem, .55fr) minmax(0, 2.8fr);
  gap: 1.125rem; align-items: center;
}
.desk-columns { padding: .8rem 0; color: var(--muted); font-size: .82rem; font-weight: 500; }
.desk-row { border-top: 1px solid var(--rule); padding: 1.85rem 0; overflow-wrap: anywhere; }
.desk-trade { min-width: 0; }
.desk-trade small, .desk-reference small { display: block; }
.desk-matchup { text-wrap: pretty; }
.desk-outcome { font-size: 24px; line-height: 1.12; margin: .24rem 0 .38rem; text-wrap: pretty; }
.desk-reference { color: var(--ink); }
.desk-reference-odds { display: block; font-size: 23px; font-weight: 550; line-height: 1.15; }
.desk-reference-label, .desk-pair-fee { display: block; }
.desk-pair-fee { margin-block: .15rem .4rem; color: var(--muted); }
.desk-ev-offers { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; align-items: start; }
.desk-offer {
  display: grid; gap: .25rem; text-align: left; border: 0; background: transparent;
  border-radius: 8px; padding: .55rem .6rem; min-height: 5.25rem;
}
.desk-offer:hover, .desk-offer:active { background: var(--soft); }
.desk-site { font-size: .75rem; color: var(--muted); font-weight: 500; }
.desk-best .desk-site { color: var(--body); font-weight: 700; }
.desk-offer strong { font-size: clamp(1.15rem, 2.45vw, 1.65rem); line-height: 1.2; font-weight: 580; }
.desk-best strong { font-weight: 720; }
.desk-best .positive { color: var(--best); }
.negative { color: var(--negative); }
.desk-offer .p-odds { color: var(--muted); font-size: .81rem; }
.desk-offer strong, .desk-reference-odds, .desk-return, .desk-leg, .desk-balance { font-variant-numeric: tabular-nums; }

.desk-arb { grid-template-columns: minmax(0, 1fr) repeat(2, minmax(0, 1.35fr)); align-items: start; column-gap: 1.65rem; }
.desk-arb .desk-outcome { margin-top: 0; }
.desk-pair { border-inline-start: 1px solid var(--rule); padding-inline-start: 1.125rem; min-width: 0; }
.desk-return { font-size: 32px; font-weight: 650; letter-spacing: -.035em; line-height: 1.2; margin: .45rem 0 .85rem; }
.desk-return small { display: inline-block; margin-inline-start: .45rem; font-weight: 500; letter-spacing: 0; }
.desk-leg { display: flex; justify-content: space-between; gap: .65rem; font-size: .81rem; margin-top: .38rem; }
.desk-leg > :first-child { min-width: 0; text-wrap: pretty; }
.desk-leg > :last-child { flex: 0 0 auto; white-space: nowrap; }
.desk-expand { grid-column: 1 / -1; }
.desk-expand summary { width: fit-content; padding-block: .25rem; font-size: .87rem; }
.desk-pair-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: 1rem; margin-top: .8rem; }
.desk-pages { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.desk-session { margin-top: 1.2rem; }
#session-history pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.desk-empty { padding: 1.8rem 0; border-top: 1px solid var(--rule); }
.desk-empty p { max-width: 42rem; }
.desk-empty-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem 1rem; }
dialog {
  border: 1px solid var(--rule); border-radius: 14px; background: var(--paper); color: var(--ink);
  padding: 1.4rem; width: min(35rem, calc(100vw - 2rem));
}
dialog::backdrop { background: #101b3180; }

.desk-tabs { display: flex; gap: .25rem 1.4rem; flex-wrap: wrap; }
.desk-tabs a { color: var(--muted); text-decoration: none; font-size: .87rem; padding: .8rem 0 .68rem; border-bottom: 2px solid transparent; }
.desk-tabs a:hover, .desk-tabs a[aria-current] { color: var(--ink); }
.desk-tabs a[aria-current] { font-weight: 650; border-color: var(--ink); }
.desk-admin-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 2.8rem; margin-top: 2rem; }
.desk-admin-row { padding: 1rem 0; border-bottom: 1px solid var(--rule); display: flex; gap: 1rem; justify-content: space-between; align-items: center; }
.desk-admin-row p { margin: .25rem 0 0; }
.desk-admin-row button, .desk-action { border-radius: 99px; padding: .42rem .95rem; font-size: .86rem; flex: 0 0 auto; }
.desk-action { display: inline-block; color: var(--ink); text-decoration: none; }
.desk-action:hover, .desk-admin-row button:hover:enabled { background: var(--soft); }
.desk-balance { color: var(--ink); margin: 1rem 0 .6rem; }
.desk-balance strong { display: inline-block; font-size: clamp(2.15rem, 4.3vw, 2.8rem); font-weight: 680; line-height: 1.12; letter-spacing: -.045em; }
.desk-balance span { color: var(--muted); font-size: .83rem; margin-inline-start: .45rem; }
.desk-admin-layout .desk-action[href$="usage"] { margin-top: .55rem; }
.desk-admin-section { margin-top: 1.5rem; }
.desk-admin-section dl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: .45rem 1rem; }
.desk-admin-section dt { color: var(--muted); overflow-wrap: anywhere; }
.desk-admin-section dd { margin: 0; overflow-wrap: anywhere; }
.desk-admin-section pre { max-height: 28rem; overflow: auto; background: var(--soft); padding: 1rem; }
.desk-admin-section details, .desk-admin-section section { border-top: 1px solid var(--rule); padding: .85rem 0; }
.desk-admin-section .issue { padding: .6rem 0; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .desk-offer, .p-nav a, .desk-action, .desk-admin-row button {
    transition: background-color 140ms ease, color 140ms ease, transform 140ms ease;
  }
  .desk-offer:hover, .desk-action:hover { transform: translateY(-1px); }
  .desk-offer:active, .desk-action:active { transform: translateY(0); }
}
@media (max-width: 800px) {
  h1 { font-size: 40px; }
  .p-chrome { min-height: 80px; gap: 1rem; }
  .desk-columns { display: none; }
  .desk-row { grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; padding-block: 1.4rem; }
  .desk-reference { text-align: right; }
  .desk-ev-offers { grid-column: 1 / -1; }
  .desk-offer strong { font-size: 25px; }
  .desk-arb { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .desk-arb .desk-trade { grid-column: 1 / -1; }
  #stake-field { margin-inline-start: 0; }
}
@media (max-width: 560px) {
  h1 { font-size: 36px; }
  .p-chrome { display: grid; justify-items: start; gap: .9rem; padding-block: 1.25rem; }
  .p-nav { width: min(250px, 100%); }
  main { padding-top: 1.5rem; }
  .desk-title { gap: .5rem; flex-wrap: wrap; }
  .desk-filters { gap: .65rem; }
  .desk-filters > label { min-width: 0; flex: 0 1 auto; }
  .desk-filters input[type="search"] { width: 10rem; }
  .desk-row { grid-template-columns: minmax(0, 1fr) minmax(4.6rem, auto); }
  .desk-ev-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .desk-offer { padding: .65rem .7rem; }
  .desk-offer strong { font-size: 27px; }
  .desk-arb, .desk-admin-layout { grid-template-columns: minmax(0, 1fr); }
  .desk-arb .desk-pair { padding-inline-start: .9rem; }
  .desk-admin-layout { gap: 1.6rem; }
  .desk-tabs { gap: 0 1rem; }
  .desk-admin-row { flex-wrap: wrap; }
}

.desk-refresh{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0}.desk-refresh button{flex-shrink:0}

/* The comparison toolbar stays on one line on desktop, with advanced filters on demand. */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.desk-app .p-chrome { min-height: 72px; padding-block: .7rem; }
.desk-app main { padding-top: 1.5rem; }
.desk-kicker { margin: 0 0 .28rem; color: var(--muted); font-size: .73rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
.desk-filters { display: block; margin: 0 0 .7rem; }
.desk-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; }
.desk-toolbar > label { flex: 0 1 auto; }
.desk-toolbar .desk-search { flex: 1 1 13rem; }
.desk-toolbar .desk-search input { width: 100%; }
.desk-toolbar :is(input,select,button) { min-height: 2.5rem; font-size: .86rem; }
.desk-toolbar #stake-field { flex-direction: row; align-items: center; margin: 0; }
#stake-field input { width: 7rem; }
#open-filters { display: inline-flex; align-items: center; gap: .45rem; font-weight: 630; }
#filter-count { display: inline-grid; place-items: center; min-width: 1.2rem; min-height: 1.2rem; padding: 0 .22rem; border-radius: 1rem; background: var(--selected); color: var(--selected-text); font-size: .72rem; }
.filter-chips { display: flex; flex-wrap: wrap; gap: .32rem; margin-top: .48rem; }
.filter-chip { padding: .24rem .5rem; border: 0; border-radius: 1rem; background: var(--soft); font-size: .77rem; }
#filter-panel { width: min(35rem, calc(100vw - 1.5rem)); padding: 1.15rem; }
#filter-panel h2 { font-size: 26px; }
#filter-panel .desk-title { align-items: center; margin-bottom: .8rem; }
#filter-panel .desk-title h2 { margin: 0; }
.filter-selections fieldset { gap: .35rem; margin-bottom: .85rem; }
.filter-selections legend { font-size: .84rem; margin-bottom: .26rem; }
.filter-selections label { position: relative; flex-direction: row; align-items: center; padding: .32rem .6rem; border: 1px solid var(--control); border-radius: 1.25rem; cursor: pointer; }
.filter-selections label:has(:checked) { background: var(--soft); color: var(--ink); border-color: var(--control); }
.filter-selections label:has(:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.filter-selections label input { appearance: none; margin: 0; width: .55rem; height: .55rem; border-radius: 50%; border: 1px solid var(--control); padding: 0; }
.filter-selections label input:checked { background: var(--accent); border-color: var(--accent); }
.filter-section { padding: .6rem 0; border-top: 1px solid var(--rule); }
.filter-section summary { color: var(--ink); font-size: .86rem; font-weight: 625; }
.filter-section .desk-thresholds { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.filter-section input[type="number"] { width: 100%; }
.filter-footer { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--rule); padding-top: .65rem; }
.desk-primary { background: var(--selected); color: var(--selected-text); }
.coverage-strip { padding: .56rem .7rem; border: 1px solid var(--rule); border-radius: 8px; color: var(--muted); font-size: .78rem; font-variant-numeric: tabular-nums; }
.replay-bar { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem 1.05rem; padding: .6rem .75rem; margin-bottom: .72rem; border: 1px solid var(--control); border-radius: 10px; background: var(--soft); }
.replay-bar label { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; font-size: .83rem; }
.replay-bar nav { display: flex; gap: .8rem; margin-inline-start: auto; font-size: .83rem; }
.replay-bar nav [aria-current] { color: var(--ink); font-weight: 700; }
.desk-row { padding-block: .85rem; }
.desk-offer { min-height: 4.7rem; border: 1px solid var(--rule); }
.desk-offer.desk-best { border-color: var(--control); background: var(--soft); }
.desk-pair-inspect { margin-top: .62rem; padding: .32rem .55rem; font-size: .8rem; }
#trade { width: min(52rem, calc(100vw - 1.5rem)); max-height: calc(100dvh - 1.5rem); padding: 0; }
#trade > .desk-title { position: sticky; top: 0; z-index: 1; align-items: center; margin: 0; padding: .9rem 1.1rem; background: var(--paper); border-bottom: 1px solid var(--rule); flex-wrap: nowrap; }
#trade h2 { font-size: clamp(21px, 4vw, 28px); margin: 0; }
#trade-body { padding: .85rem 1.1rem .35rem; }
.inspection-matchup { font-size: .93rem; font-weight: 650; }
.inspection-mode { font-size: .79rem; color: var(--muted); }
.inspection-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; margin-block: .55rem .85rem; }
.inspection-tiles > div { display: grid; gap: .22rem; background: var(--soft); padding: .55rem .6rem; border-radius: 8px; }
.inspection-tiles strong { font-size: clamp(.82rem, 2.4vw, 1.12rem); font-variant-numeric: tabular-nums; }
.inspection-section, .inspection-disclosure { padding: .72rem 0; border-top: 1px solid var(--rule); }
.inspection-section h3 { font-size: 22px; }
.inspection-section ul { margin: .3rem 0 0; padding-inline-start: 1.25rem; }
.inspection-facts { margin: .35rem 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: .25rem .85rem; font-size: .85rem; }
.inspection-facts dt { color: var(--muted); }
.inspection-facts dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.inspection-disclosure { font-size: .85rem; }
.inspection-section .inspection-disclosure { padding-block: .45rem; border: 0; }
.inspection-disclosure[open] summary { margin-bottom: .4rem; }
.inspection-formula, .inspection-gap { font-size: .84rem; padding: .42rem .58rem; border-radius: 7px; background: var(--soft); margin: .4rem 0; }
.inspection-footer { position: sticky; bottom: 0; z-index: 1; display: flex; flex-wrap: wrap; gap: .5rem; padding: .45rem 1.1rem .7rem; background: var(--paper); border-top: 1px solid var(--rule); }
.inspection-footer:not(:has(button:not([hidden]), #trade-note:not(:empty))) { display: none; }
#trade-note { flex-basis: 100%; margin: 0; font-size: .84rem; }
#trade-note:empty { display: none; }
@media (max-width: 560px) {
  .desk-app .p-chrome { display: flex; }
  .desk-app .p-nav { order: 3; width: 100%; }
  .desk-toolbar .desk-search { flex-basis: 100%; }
  .desk-toolbar .desk-search input { width: 100%; }
  .desk-toolbar { gap: .35rem; }
  .desk-toolbar :is(input,select,button) { font-size: .8rem; padding-inline: .45rem; }
  .inspection-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .replay-bar nav { margin-inline-start: 0; }
}

.desk-individual .desk-ev-offers { display: block; }
.desk-individual .desk-offer { width: 100%; grid-template-columns: minmax(5.2rem, 1fr) auto auto; align-items: baseline; gap: .3rem .65rem; }
.desk-individual .desk-offer .p-odds { font-size: .95rem; }
.desk-individual .offer-breakdown, .desk-individual .offer-reason { grid-column: 1 / -1; }

.desk-offer, .desk-offer small, .desk-pair small { min-width: 0; overflow-wrap: anywhere; }
.fee-census-facts { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 3fr); gap: .35rem .75rem; }
.fee-census-facts dd { margin: 0; overflow-wrap: anywhere; }

.opportunities-app {
  --canvas: #f1f3f9;
  --sidebar: #131c31;
  --sidebar-text: #dce5fc;
  --sidebar-current: #25334f;
  --accent: #3046c8;
  --selection: #edf0fc;
  --selection-edge: #a6b3ff;
  --gain: #116452;
  --gain-bg: #e7f4ee;
  --loss-bg: #fbefef;
  background: var(--canvas);
  font-family: Manrope, system-ui, sans-serif;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .opportunities-app {
    --canvas: #101723; --accent: #a7bcff; --selection: #253658; --selection-edge: #6484bd;
    --gain: #a2e3cf; --gain-bg: #203c39; --loss-bg: #44282e;
  }
}
:root[data-theme="dark"] .opportunities-app {
  --canvas: #101723; --accent: #a7bcff; --selection: #253658; --selection-edge: #6484bd;
  --gain: #a2e3cf; --gain-bg: #203c39; --loss-bg: #44282e;
}
.opportunities-app .p-chrome { background: var(--sidebar); color: var(--sidebar-text); }
.opportunities-app .p-brand { color: var(--sidebar-text); font-family: var(--headline); font-size: 1.8rem; }
.opportunities-app .desk-brand-mark { background: #dfe5fd; color: #26399d; font-family: system-ui, sans-serif; font-style: normal; }
.opportunities-app .p-nav { background: transparent; }
.opportunities-app .p-nav a { color: var(--sidebar-text); border-radius: 9px; }
.opportunities-app .p-nav a[aria-current], .opportunities-app .p-nav a:hover { color: #fff; background: var(--sidebar-current); }
.opportunities-app .p-format { color: var(--sidebar-text); }
.opportunities-app .p-format select { background: var(--sidebar-current); color: #fff; }
.opportunities-app .desk-title { align-items: center; }
.opportunities-app .desk-title h1 { font-size: clamp(2.3rem, 4vw, 3.2rem); }
.opportunities-app .desk-action { border-radius: 9px; font-weight: 650; }
.opportunities-app .desk-primary { color: #fff; background: #3046c8; }
.opportunities-app .desk-primary:hover { background: #253ab8; }
.opportunities-app .desk-toolbar { gap: .65rem; }
.opportunities-app .desk-toolbar > .desk-toggle {
  flex-direction: row; align-items: center; flex-shrink: 0; gap: .35rem; color: var(--ink);
}
.opportunities-app .desk-toggle input { min-height: 0; }
.opportunities-app #group-field select { max-width: 12rem; }
.opportunities-app .coverage-strip {
  border: 0; padding: 0; margin: .85rem 0 .25rem; font-size: .8rem; font-weight: 650;
}
.opportunities-app .desk-refresh { margin: .35rem 0 .85rem; }
.opportunities-app .desk-refresh button { font-size: .78rem; }
.opportunities-app .desk-empty,
.opportunity-card, .odds-card {
  background: var(--paper); border: 1px solid var(--rule); border-radius: 14px;
  box-shadow: 0 8px 32px #17284908; overflow: hidden;
}
.opportunities-app .desk-empty { padding: 1.25rem; }
.opportunities-app .desk-empty h2 { font-size: 1.7rem; margin-bottom: .35rem; }
.opportunity-tabs {
  display: inline-flex; align-items: center; gap: .18rem; padding: .2rem; border-radius: 10px;
  background: var(--selection); max-width: 100%;
}
.opportunity-tabs a, .opportunity-tabs button {
  display: inline-flex; align-items: center; min-height: 2.3rem; padding: .32rem .78rem;
  border: 0; border-radius: 7px; text-decoration: none; color: var(--muted);
  background: transparent; font-size: .86rem; font-weight: 650;
}
.opportunity-tabs :is([aria-current], [aria-pressed="true"]) {
  background: var(--paper); color: var(--accent); box-shadow: 0 1px 5px #27326c25;
}
.desk-path { margin: 0 0 1rem; font-size: .85rem; }
.desk-path a { color: var(--muted); }
.opportunity-card { padding: .9rem 1rem; margin-bottom: .75rem; }
.opportunity-card :focus-visible, .odds-matrix :focus-visible { outline-offset: -2px; }
.opportunity-card-header { display: flex; justify-content: space-between; align-items: start; gap: .75rem; }
.opportunity-card-header small { font-size: .76rem; font-weight: 650; }
.opportunity-card-header h2 { font-size: clamp(1.42rem, 2.45vw, 1.95rem); margin: .15rem 0; }
.opportunity-card-header p { color: var(--muted); font-size: .85rem; margin-bottom: .72rem; }
.opportunity-score { display: grid; text-align: right; gap: .04rem; background: var(--soft); color: var(--ink); border-radius: 9px; padding: .4rem .65rem; }
.opportunity-score strong { font: 600 clamp(1.25rem, 2.35vw, 1.9rem)/1.1 var(--headline); font-variant-numeric: tabular-nums; }
.opportunity-score small { color: inherit; font-weight: 500; max-width: 15rem; }
.opportunity-score.positive, .matrix-reference { color: var(--gain); background: var(--gain-bg); }
.opportunity-score.negative { color: var(--negative); background: var(--loss-bg); }
.opportunity-quotes {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 10.5rem), 1fr));
  gap: .48rem; align-items: stretch;
}
.opportunities-app .desk-offer { background: var(--paper); padding: .48rem .65rem; min-height: 0; }
.opportunities-app .desk-offer .p-odds { color: var(--ink); font-size: .92rem; font-weight: 720; }
.opportunities-app .desk-offer.desk-best { border-color: var(--selection-edge); background: var(--selection); }
.opportunities-app .desk-offer:hover { background: var(--selection); }
.opportunity-reference {
  display: flex; flex-direction: column; gap: .14rem; border: 1px solid var(--rule);
  background: var(--gain-bg); border-radius: 8px; padding: .48rem .65rem; color: var(--gain);
  font-size: .83rem; overflow-wrap: anywhere;
}
.opportunity-reference span, .opportunity-reference small { color: var(--muted); font-size: .75rem; }
.opportunity-reference-prices { display: flex; flex-wrap: wrap; gap: .15rem .45rem; }
.opportunity-reference-prices > span { display: inline-block; }
.opportunity-actions { display: flex; justify-content: space-between; gap: .5rem; align-items: center; margin-top: .55rem; }
.opportunity-link {
  padding: .2rem 0; border: 0; background: transparent; text-decoration: none;
  color: var(--accent); font-size: .83rem; font-weight: 680;
}
.opportunity-link:hover { text-decoration: underline; }
.opportunity-arb .desk-expand button { display: block; }
.arb-card-comparison { display: grid; grid-template-columns: minmax(0, 1fr) minmax(10.5rem, .3fr); gap: .55rem; }
.arb-card-comparison .odds-scroll { border: 1px solid var(--rule); border-radius: 8px; }
.odds-card { margin-bottom: 1rem; }
.odds-card > header { position: relative; padding: .85rem 1rem .65rem; }
.odds-card > header h2 { font-size: 1.6rem; margin-bottom: .15rem; }
.odds-card > header p { margin: 0; }
.odds-card > header .opportunity-link { display: inline-block; margin-top: .15rem; }
.odds-scroll { overflow: auto; max-width: 100%; }
.odds-matrix { border-spacing: 0; border-collapse: separate; width: 100%; text-align: center; font-size: .82rem; }
.odds-matrix th, .odds-matrix td { padding: .38rem .42rem; border-bottom: 1px solid var(--rule); }
.odds-matrix thead th { background: var(--soft); color: var(--muted); font-size: .74rem; white-space: nowrap; }
.odds-matrix tbody th, .odds-matrix thead tr:first-child th:first-child {
  position: sticky; left: 0; z-index: 1; text-align: start; padding-inline: .6rem;
  min-width: 9rem; max-width: 15rem; box-shadow: 1px 0 var(--rule);
}
.odds-matrix tbody th { background: var(--paper); color: var(--ink); }
.odds-matrix small { display: block; font-size: .72rem; font-weight: 450; }
.odds-matrix .desk-offer { display: inline-grid; text-align: center; padding: .22rem .35rem; margin: .12rem; white-space: nowrap; border-color: transparent; }
.odds-matrix .desk-offer .p-odds { font-size: .84rem; }
.odds-matrix td > .p-odds { display: block; white-space: nowrap; font-weight: 650; }
.matrix-reference small { color: inherit; }
.odds-card .odds-matrix td { min-width: 4.7rem; }
.matrix-legend, .matrix-empty { margin: .6rem 1rem; }
.odds-matrix .selected-game-line > th { border-inline-start: 3px solid currentColor; }
.quote-freshness { color: var(--muted); }
.inspection-price-unit { display: block; font-weight: 500; }
.inspection-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 1rem; }
.inspection-leg { margin-top: .45rem; border: 1px solid var(--rule); border-radius: 8px; padding: .5rem .6rem; }
.inspection-leg h4 { margin: 0 0 .25rem; }
.inspection-payoffs { width: 100%; border-collapse: collapse; font-size: .83rem; margin-bottom: .5rem; }
.inspection-payoffs :is(th,td) { border-bottom: 1px solid var(--rule); text-align: start; padding: .35rem .18rem; }
.opportunities-app .positive { color: var(--gain); }
@media (min-width: 900px) {
  .opportunities-app .p-chrome {
    position: fixed; inset: 0 auto 0 0; width: 11.5rem; display: flex; flex-direction: column;
    align-items: stretch; gap: 1rem; padding: 1.35rem .9rem; border: 0;
  }
  .opportunities-app .p-brand { margin: 0 .45rem .55rem; }
  .opportunities-app .p-nav { display: grid; grid-template-columns: 1fr; width: 100%; gap: .2rem; padding: 0; }
  .opportunities-app .p-nav a { justify-items: start; padding-inline: .7rem; }
  .opportunities-app .p-format { margin: auto .45rem 0; }
  .opportunities-app main { max-width: 100rem; margin-inline-start: 11.5rem; padding: 2rem clamp(1.3rem, 2.45vw, 2.25rem) 2rem; }
}
@media (max-width: 560px) {
  .opportunities-app main { padding-inline: .8rem; }
  .opportunities-app .p-chrome { gap: .35rem .8rem; padding-inline: .8rem; }
  .opportunities-app .p-nav { padding: 0; }
  .opportunities-app .desk-toolbar { gap: .4rem; }
  .opportunities-app .desk-toolbar .desk-search { flex-basis: 100%; }
  .opportunity-card { padding-inline: .65rem; }
  .opportunity-card-header { gap: .35rem; }
  .opportunity-score { padding-inline: .45rem; min-width: 5rem; }
  .opportunity-score small { max-width: 8rem; font-size: .67rem; }
  .opportunity-quotes { grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); }
  .arb-card-comparison { grid-template-columns: minmax(0, 1fr); }
  .odds-matrix tbody th, .odds-matrix thead tr:first-child th:first-child { min-width: 7.4rem; max-width: 8rem; }
}

.sportsbook-comparison { display: grid; gap: .35rem; margin-block: .55rem; }
.sportsbook-comparison > small, .sportsbook-price small { color: var(--muted); }
.sportsbook-prices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .4rem; }
.sportsbook-prices > div { min-width: 0; padding: .4rem .5rem; border: 1px solid var(--rule); border-radius: 6px; }
.sportsbook-prices strong, .sportsbook-price small { display: block; font-size: .75rem; }
.sportsbook-price .matrix-reference small { color: inherit; }
@media (max-width: 480px) {
  .sportsbook-prices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
