/* release 160: the Betting Lab in the shadcn/ui look (zinc palette, white cards with a thin border and a small shadow, 0.5rem
   inputs and buttons, segmented tabs). Only colours, borders, radii, spacing and type change; the page's content and order stay. */
.lab-page{--report-surface:#fff;--report-rule:#e4e4e7;--report-soft:#f4f4f5;--report-ink:#09090b;--report-muted:#63636b;--lab-shadow:0 1px 2px 0 rgb(0 0 0 / .05)}
.lab-page .report-tag{display:inline-flex;align-items:center;height:1.4rem;padding:0 .55rem;border-radius:.375rem;background:#f4f4f5;color:#18181b;border:0;font-size:.6875rem;font-weight:600;letter-spacing:.04em}
.lab-page .report-hero p{color:#63636b}
/* sport chips: outline buttons; the current sport is the dark "default" button */
.workspace-page.lab-page .lab-sport{height:2.5rem;padding:0 .9rem;border:1px solid #e4e4e7;border-radius:.5rem;background:#fff;color:#09090b;font-size:.875rem;font-weight:500;box-shadow:var(--lab-shadow)}
.workspace-page.lab-page .lab-sport:hover{background:#f4f4f5}
.workspace-page.lab-page .lab-sport[aria-current=page]{background:#18181b;border-color:#18181b;color:#fafafa}
.workspace-page.lab-page .lab-sport .sport-symbol{width:22px;height:22px}
/* cards */
.workspace-page.lab-page .lab-controls,.workspace-page.lab-page .lab-panel,.workspace-page.lab-page .lab-status,.workspace-page.lab-page .lab-advanced{background:#fff;border:1px solid #e4e4e7;border-radius:.75rem;box-shadow:var(--lab-shadow)}
.workspace-page.lab-page .lab-panel-heading{padding:1.25rem 1.5rem .75rem}
.workspace-page.lab-page .lab-panel-heading h2{font-size:1rem;font-weight:600;letter-spacing:-.01em;color:#09090b}
.workspace-page.lab-page .lab-panel-heading>span{font-size:.75rem;color:#63636b}
.workspace-page.lab-page .lab-status>.ti{color:#09090b}
.workspace-page.lab-page .lab-status strong{font-size:.875rem;font-weight:600}
.workspace-page.lab-page .lab-status p{font-size:.8125rem;line-height:1.5}
/* inputs, selects, buttons */
.workspace-page.lab-page .lab-field label{font-size:.875rem;font-weight:500;color:#09090b}
.workspace-page.lab-page .lab-field select,.workspace-page.lab-page .lab-field input{height:2.5rem;padding:0 .75rem;background:#fff;border:1px solid #e4e4e7;border-radius:.5rem;font-size:.875rem;color:#09090b;box-shadow:var(--lab-shadow)}
.workspace-page.lab-page .lab-field select:focus-visible,.workspace-page.lab-page .lab-field input:focus-visible,.workspace-page.lab-page button:focus-visible,.workspace-page.lab-page .lab-sport:focus-visible{outline:2px solid #a1a1aa;outline-offset:2px}
.workspace-page.lab-page .lab-secondary{height:2.5rem;padding:0 1rem;background:#fff;border:1px solid #e4e4e7;border-radius:.5rem;color:#09090b;font-size:.875rem;font-weight:500;box-shadow:var(--lab-shadow)}
.workspace-page.lab-page .lab-secondary:hover{background:#f4f4f5}
/* tables */
.workspace-page.lab-page .lab-table thead th{background:#fafafa;color:#63636b;font-size:.75rem;font-weight:500}
.workspace-page.lab-page .lab-table th,.workspace-page.lab-page .lab-table td{border-top:1px solid #e4e4e7;padding:.75rem 1.5rem}
.workspace-page.lab-page .lab-table tbody tr:hover{background:#fafafa}
.workspace-page.lab-page .lab-table tbody th{font-size:.875rem;font-weight:500;color:#09090b}
/* the model's bars and the player bars: shadcn chart colours */
.workspace-page.lab-page .lab-prob-track,.workspace-page.lab-page .lab-player-track,.workspace-page.lab-page .lab-gap-track{background:#f4f4f5;border-radius:999px}
.workspace-page.lab-page .lab-prob-track>i,.workspace-page.lab-page .lab-player-track>i{border-radius:999px}
.workspace-page.lab-page .lab-prob-row.market .lab-prob-track>i,.workspace-page.lab-page .lab-legend span+span i{background:#2a9d90}
.workspace-page.lab-page .lab-legend{font-size:.75rem}
.workspace-page.lab-page .lab-annotation{font-size:.8125rem;padding:1rem 1.5rem}
/* the folded advanced tools */
.workspace-page.lab-page .lab-advanced>summary{padding:1rem 1.5rem;font-size:.9375rem;font-weight:600;cursor:pointer}
.workspace-page.lab-page .lab-advanced>summary:hover{background:#fafafa;border-radius:.75rem}
.workspace-page.lab-page .lab-advanced-body{padding:0 1.5rem 1.5rem}
.workspace-page.lab-page .lab-advanced h3{font-size:.9375rem;font-weight:600}
/* the sportsbook panel's own controls get the card's padding (they sat on the border) */
.workspace-page.lab-page #labPriceCheck [data-price-check-body],.workspace-page.lab-page #labPriceCheck>.pc-body,.workspace-page.lab-page #labPriceCheck>.pc-sub{padding-left:1.5rem;padding-right:1.5rem}
.workspace-page.lab-page #labPriceCheck>:last-child{padding-bottom:1.25rem}
@media(max-width:700px){
  .workspace-page.lab-page .lab-panel-heading{padding:1rem 1rem .5rem}
  .workspace-page.lab-page .lab-table th,.workspace-page.lab-page .lab-table td{padding:.65rem 1rem}
  .workspace-page.lab-page #labPriceCheck [data-price-check-body],.workspace-page.lab-page #labPriceCheck>.pc-body,.workspace-page.lab-page #labPriceCheck>.pc-sub{padding-left:1rem;padding-right:1rem}
  .workspace-page.lab-page .lab-sport{height:2.25rem;padding:0 .7rem;font-size:.8125rem}
}

/* release 162: the lab's three bar charts as shadcn "Bar Chart - Custom Label": thick rounded bars that grow in, the label inside
   the bar (or just past it when the bar is short), the value at the end. Model = orange (chart-1), market = teal (chart-2). */
.workspace-page.lab-page{--cl-1:#e76e50;--cl-2:#2a9d90;--cl-neg:#e76e50;--cl-pos:#2a9d90}
.workspace-page.lab-page .lab-cl-row{display:grid;grid-template-columns:minmax(0,1fr) 3.6rem;align-items:center;gap:.6rem;margin:.35rem 0}
.workspace-page.lab-page .lab-cl-row>strong{text-align:right;font-size:.8125rem;font-weight:600;color:#09090b;font-variant-numeric:tabular-nums}
.workspace-page.lab-page .lab-cl-track{position:relative;height:1.85rem}
.workspace-page.lab-page .lab-cl-bar{position:absolute;inset:0 auto 0 0;width:var(--w);min-width:3px;display:flex;align-items:center;border-radius:.375rem;background:#3f3f46;transform-origin:left;animation:lab-grow .7s cubic-bezier(.2,.8,.2,1) both}
.workspace-page.lab-page .lab-cl-name{padding:0 .65rem;color:#fff;font-size:.8125rem;font-weight:500;white-space:nowrap}
.workspace-page.lab-page .lab-cl-row.is-out .lab-cl-name{position:absolute;left:100%;color:#09090b;padding-left:.5rem}
.workspace-page.lab-page .lab-cl-row.is-model .lab-cl-bar{background:var(--cl-1)}
.workspace-page.lab-page .lab-cl-row.is-market .lab-cl-bar{background:var(--cl-2);animation-delay:.08s}
.workspace-page.lab-page .lab-cl-row.is-empty .lab-cl-bar{background:#e4e4e7}
.workspace-page.lab-page .lab-cl-row.is-player .lab-cl-bar{background:#3f3f46}
.workspace-page.lab-page .lab-cl-row:hover .lab-cl-bar{filter:brightness(1.12)}
.workspace-page.lab-page .lab-prob-group{padding:.35rem 0}
.workspace-page.lab-page .lab-prob-label{font-size:.8125rem;font-weight:600;color:#09090b;margin-bottom:.15rem}
.workspace-page.lab-page .lab-legend i{width:.7rem;height:.7rem;border-radius:.2rem;background:var(--cl-1)}
.workspace-page.lab-page .lab-legend span+span i{background:var(--cl-2)}
.workspace-page.lab-page .lab-chart-scale{margin:.5rem 4.2rem 0 0}
/* diverging bars: the name on the left, bars grow out from the centre line, the signed value at the bar's end */
.workspace-page.lab-page .lab-dv-row{display:grid;grid-template-columns:var(--dv-name,8rem) minmax(0,1fr);align-items:center;gap:.75rem;margin:.6rem 0}
.workspace-page.lab-page .lab-dv-name{font-size:.8125rem;font-weight:500;color:#09090b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.workspace-page.lab-page .lab-dv-track{position:relative;height:1.85rem;border-radius:.375rem;background:linear-gradient(#a1a1aa,#a1a1aa) center/1px 100% no-repeat}
.workspace-page.lab-page .lab-dv-bar{position:absolute;top:0;bottom:0;width:var(--w);min-width:3px;display:flex;align-items:center;animation:lab-grow .7s cubic-bezier(.2,.8,.2,1) both}
.workspace-page.lab-page .lab-dv-row.is-pos .lab-dv-bar{left:50%;border-radius:0 .375rem .375rem 0;background:var(--cl-pos);transform-origin:left;justify-content:flex-end}
.workspace-page.lab-page .lab-dv-row.is-neg .lab-dv-bar{right:50%;border-radius:.375rem 0 0 .375rem;background:var(--cl-neg);transform-origin:right;justify-content:flex-start}
.workspace-page.lab-page .lab-dv-val{position:absolute;font-size:.8125rem;font-weight:600;color:#09090b;white-space:nowrap;font-variant-numeric:tabular-nums}
.workspace-page.lab-page .lab-dv-row.is-pos .lab-dv-val{left:100%;padding-left:.4rem}
.workspace-page.lab-page .lab-dv-row.is-neg .lab-dv-val{right:100%;padding-right:.4rem}
.workspace-page.lab-page .lab-gap-scale{margin:.4rem 0 0 calc(var(--dv-name,8rem) + .75rem)}
.workspace-page.lab-page .lab-dv-row.is-in .lab-dv-val{color:#fff}
.workspace-page.lab-page .lab-dv-row.is-in.is-pos .lab-dv-val{left:auto;right:0;padding:0 .55rem 0 0}
.workspace-page.lab-page .lab-dv-row.is-in.is-neg .lab-dv-val{right:auto;left:0;padding:0 0 0 .55rem}
@media(max-width:700px){.workspace-page.lab-page{--dv-name:4.75rem}}
/* player bars: the name inside the bar, the score at the end, the sample line under it */
.workspace-page.lab-page .lab-player.is-cl{margin:.55rem 0}
.workspace-page.lab-page .lab-player.is-cl .lab-cl-row{margin:0}
.workspace-page.lab-page .lab-player-context{font-size:.6875rem;color:#63636b;margin-top:.2rem}
@keyframes lab-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.workspace-page.lab-page .lab-cl-bar,.workspace-page.lab-page .lab-dv-bar{animation:none}}
/* release 162: one meaning per colour across the lab: orange = Scoutics model, teal = the market (books' consensus),
   blue = estimated edge (price chart), dark = best price; the gap bar takes the colour of whichever side is higher.
   Checked with the colour-blind validator: orange/teal/blue pass every pair (CVD dE >= 10, normal-vision dE >= 22). */
.workspace-page.lab-page{--cl-1:#e2733a;--cl-2:#0d9488;--cl-pos:#e2733a;--cl-neg:#0d9488}
