/* Compact positions and an expandable numeric score book; inherits tenant surfaces. */
.sp-position{display:flex;flex-wrap:wrap;gap:2px;font-size:11px;line-height:1.3;font-weight:650;font-variant-numeric:tabular-nums;min-width:0}
.sp-position:empty{display:none}.sp-pnl,.sp-after{white-space:nowrap}.positive{color:var(--money-pos,#168347)}.negative{color:var(--money-neg,#d43d51)}.neutral{color:inherit}
.sp-book{grid-column:1/-1;min-width:0;border:0;font-size:11px;background:none}
.sp-book:not([open]){position:absolute;inset:0;pointer-events:none}
.sp-book summary{position:absolute;left:4px;top:6px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;cursor:pointer;list-style:none;color:inherit;border:1px solid color-mix(in srgb,currentColor 18%,transparent);border-radius:5px;pointer-events:auto;background:transparent}
.sp-book summary::-webkit-details-marker{display:none}.sp-book summary:focus-visible{outline:2px solid currentColor;outline-offset:2px}.sp-book[open] summary{background:color-mix(in srgb,currentColor 12%,transparent)}
.sp-book-panel{border-top:1px solid color-mix(in srgb,currentColor 12%,transparent);background:color-mix(in srgb,currentColor 3%,transparent)}
.sp-book-heading{display:flex;gap:8px;align-items:center;padding:7px 10px}.sp-book-risk{margin-left:auto;font-size:10px;font-variant-numeric:tabular-nums}
.session-market{position:relative}.session-name{padding-inline-start:30px}.kx-fancyrow__who{padding-inline-start:34px}
.sp-book-scroll{max-height:220px;overflow:auto;overscroll-behavior:contain}.sp-book table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:11px}.sp-book th,.sp-book td{padding:5px 12px;text-align:right;border-bottom:1px solid color-mix(in srgb,currentColor 8%,transparent)}.sp-book th:first-child{text-align:left}.sp-book thead{position:sticky;top:0;background:var(--surface,var(--k-surface,#f1f3f6));color:var(--ink,var(--k-text,#263247))}.sp-book-note{padding:6px 10px;margin:0;font-size:11px;opacity:.7}
.kx-fancyrow:has(.sp-book[open]){align-items:start}.kx-xrow__runner:has(.sp-position){flex-wrap:wrap}.kx-xrow__runner .sp-position{flex-basis:100%;padding-left:28px}.kx-mc__team:has(.sp-position){flex-wrap:wrap}.kx-mc__team .sp-position{flex-basis:100%;padding-left:24px}.selection-name:has(.sp-position),.race-runner-name:has(.sp-position){flex-wrap:wrap}.selection-name .sp-position,.race-runner-name .sp-position{flex-basis:100%}
.sp-market-message{display:block;font-size:10px;line-height:1.35;overflow-wrap:anywhere;opacity:.7}.sp-market-message:empty{display:none}.sp-move{font-size:8px;margin-left:3px;vertical-align:middle}.kx-mc__summary{display:flex;align-items:center;gap:5px;min-width:0;padding:4px 10px;font-size:10px;line-height:1.4;font-variant-numeric:tabular-nums;border-bottom:1px solid color-mix(in srgb,currentColor 8%,transparent)}.kx-mc__summary-score{min-width:0;flex:1;white-space:normal}.kx-mc__matched{white-space:nowrap;opacity:.7}
@media(prefers-color-scheme:dark){[data-theme=dark] .positive{color:var(--money-pos-dark,#70d99b)}[data-theme=dark] .negative{color:var(--money-neg-dark,#ff8696)}}

.kx-odds,.odds{position:relative}.kx-odds>.sp-move,.odds>.sp-move{position:absolute;top:4px;right:4px;font-style:normal}.kx-fancyrow>.sp-market-message{grid-column:1/-1;padding:2px 8px}

/* P14 odds-change flash (price-flash.js, every brand but Lobby v2): an overlay tint pulse and a short slide of the number. */
[data-action="odds"]:is(.price-up,.price-down)::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;animation:price-tint .6s ease-out}
[data-action="odds"].price-up::after{background:color-mix(in srgb,var(--money-pos,#168347) 38%,var(--back,transparent))}
[data-action="odds"].price-down::after{background:color-mix(in srgb,var(--money-neg,#d43d51) 38%,var(--back,transparent))}
[data-action="odds"].lay.price-up::after{background:color-mix(in srgb,var(--money-pos,#168347) 38%,var(--lay,transparent))}
[data-action="odds"].lay.price-down::after{background:color-mix(in srgb,var(--money-neg,#d43d51) 38%,var(--lay,transparent))}
[data-action="odds"]:is(.price-up,.price-down)>strong{display:inline-block}
[data-action="odds"].price-up>strong{animation:price-slide-up .4s ease-out}
[data-action="odds"].price-down>strong{animation:price-slide-down .4s ease-out}
@keyframes price-tint{0%{opacity:0}15%{opacity:1}100%{opacity:0}}
@keyframes price-slide-up{0%{transform:translateY(35%);opacity:.4}100%{transform:none;opacity:1}}
@keyframes price-slide-down{0%{transform:translateY(-35%);opacity:.4}100%{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){[data-action="odds"]:is(.price-up,.price-down)::after,[data-action="odds"]:is(.price-up,.price-down)>strong{animation:none}}
.reduce-motion [data-action="odds"]:is(.price-up,.price-down)::after,.reduce-motion [data-action="odds"]:is(.price-up,.price-down)>strong{animation:none}

@media(max-width:760px){
 /* A position must grow below its runner, never across the Back/Lay quote. */
 .sp-position{max-width:100%;flex-basis:100%}
 .sp-pnl,.sp-after{max-width:100%;white-space:normal;overflow-wrap:anywhere}
 .sp-book-heading{flex-wrap:wrap}
 .sp-book-risk{min-width:0;overflow-wrap:anywhere}
 .sp-book summary{width:40px;height:40px;left:2px;top:4px}
 .session-name{padding-inline-start:36px}
}
