/* ============================================================================
   Cat Data Lab v2 — Canadian casino player math lab
   Self-contained, namespaced under .lab so it never fights the theme CSS.
   Dark "analytical console" aesthetic. All numbers use tabular monospace.
   Contrast targets WCAG 2.1 AA on the dark canvas (learned from v1 review).
   ============================================================================ */

.lab, .lab *, .lab *::before, .lab *::after { box-sizing: border-box; }

.lab {
  /* palette */
  --bg:        #0a0e13;
  --surface:   #111824;
  --surface-2: #0d1420;
  --elev:      #17202d;
  --rule:      #223044;
  --rule-2:    #2d3d52;
  --ctl:       #5a6f88;   /* control borders — clears 3:1 (WCAG 1.4.11) on dark fills */
  --text:      #eaf1f8;
  --muted:     #a4b5c6;   /* ~7:1 on --bg */
  --faint:     #74869a;   /* labels only, >=4.5:1 on surfaces */
  --teal:      #2fd4bf;   /* primary / positive / observed */
  --teal-ink:  #063a34;
  --amber:     #f6b53f;   /* reference / expected */
  --rose:      #ff6f6f;   /* risk / warning */
  --blue:      #64a6ff;   /* neutral series */
  --violet:    #b39bff;

  --mono: ui-monospace, "SF Mono", "JetBrains Mono", "Roboto Mono", Menlo, Consolas, monospace;
  --sans: inherit;

  /* chart tokens (read by tools-chart.css + tools-core.js) */
  --k1: #2fd4bf; --k2: #f6b53f; --k3: #64a6ff; --kr: #ff6f6f;
  --kgrid: #223044; --klabel: #9aa7b4; --kvalue: #eaf1f8;
  --kband: rgba(47,212,191,.14); --kband2: rgba(47,212,191,.08);
  --kmono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;

  --r:   12px;
  --r-sm: 7px;
  --shadow: 0 1px 0 rgba(255,255,255,.03), 0 18px 40px -24px rgba(0,0,0,.8);
  --t: 150ms cubic-bezier(.2,.7,.3,1);

  color: var(--text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  line-height: 1.55;
}

/* Full-bleed dark canvas even inside a light theme main column */
.lab-shell {
  position: relative;
  margin: 0 calc(50% - 50vw);
  padding: 0 max(20px, calc(50vw - 620px));
  background:
    radial-gradient(1200px 520px at 78% -8%, rgba(47,212,191,.10), transparent 60%),
    radial-gradient(900px 480px at 6% 4%, rgba(100,166,255,.07), transparent 55%),
    var(--bg);
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  overflow: clip;
}
.lab-wrap { max-width: 1240px; margin: 0 auto; width: 100%; }

.lab a { color: var(--teal); text-decoration: none; }
.lab a:hover { text-decoration: underline; text-underline-offset: 3px; }
/* component links must beat the broad `.lab a` colour by specificity */
.lab .lab-btn-primary { color: #052620; }
.lab .lab-btn-ghost { color: var(--text); }
.lab .lab-rel-card { color: var(--text); }
.lab .lab-btn:hover, .lab .lab-rel-card:hover, .lab .lab-srclist a:hover { text-decoration: none; }
.lab h1, .lab h2, .lab h3, .lab h4 { margin: 0; font-weight: 650; letter-spacing: -.01em; line-height: 1.15; }
.lab p { margin: 0; }
.lab .num { font-family: var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.lab-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font: 600 11.5px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase;
  color: var(--muted);
}
.lab-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--teal);
  box-shadow: 0 0 0 0 rgba(47,212,191,.5); animation: labPulse 2.6s infinite; }
@keyframes labPulse { 0%{box-shadow:0 0 0 0 rgba(47,212,191,.45)} 70%{box-shadow:0 0 0 7px rgba(47,212,191,0)} 100%{box-shadow:0 0 0 0 rgba(47,212,191,0)} }

/* ---------------------------------------------------------------- HERO ---- */
.lab-hero { position: relative; padding: 54px 0 30px; }
.lab-hero-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 40px; align-items: center; }
.lab-hero h1 { font-size: clamp(30px, 4.4vw, 50px); margin: 14px 0 14px; letter-spacing: -.025em; }
.lab-hero h1 b { color: var(--teal); font-weight: 650; }
.lab-lead { color: var(--muted); font-size: clamp(15px, 1.5vw, 18px); max-width: 46ch; }
.lab-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.lab-btn {
  display: inline-flex; align-items: center; gap: 9px; cursor: pointer;
  padding: 12px 18px; border-radius: var(--r-sm); font: 600 14px/1 var(--sans);
  border: 1px solid transparent; transition: transform var(--t), background var(--t), border var(--t);
}
.lab-btn-primary { background: var(--teal); color: #052620; }
.lab-btn-primary:hover { text-decoration: none; transform: translateY(-1px); background: #46e2ce; }
.lab-btn-ghost { background: transparent; color: var(--text); border-color: var(--rule-2); }
.lab-btn-ghost:hover { text-decoration: none; border-color: var(--teal); color: var(--teal); }

/* Hero signal panel (server-rendered SVG, animated by JS) */
.lab-hero-panel {
  position: relative; border: 1px solid var(--rule); border-radius: var(--r);
  background: linear-gradient(180deg, var(--surface), var(--surface-2));
  box-shadow: var(--shadow); padding: 16px 16px 12px; overflow: hidden;
}
.lab-hero-panel-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 8px; }
.lab-hero-panel-head span { font: 600 11px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.lab-hero-panel svg { display: block; width: 100%; height: auto; }

/* Metric rail */
.lab-rail { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 30px;
  background: var(--rule); border: 1px solid var(--rule); border-radius: var(--r); overflow: hidden; }
.lab-rail div { background: var(--surface); padding: 16px 18px; }
.lab-rail strong { display: block; font: 700 26px/1 var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -.03em; }
.lab-rail span { display: block; margin-top: 6px; font-size: 12.5px; color: var(--muted); }
.lab-rail div:nth-child(1) strong { color: var(--teal); }
.lab-rail div:nth-child(2) strong { color: var(--amber); }
.lab-rail div:nth-child(3) strong { color: var(--blue); }

/* --------------------------------------------------------- STICKY NAV ---- */
.lab-nav { position: sticky; top: 0; z-index: 40; margin-top: 34px;
  background: rgba(10,14,19,.86); backdrop-filter: blur(10px);
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.lab-nav-inner { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 8px 0; }
.lab-nav-inner::-webkit-scrollbar { display: none; }
.lab-nav a {
  flex: 0 0 auto; color: var(--muted); font: 600 12.5px/1 var(--sans);
  padding: 9px 13px; border-radius: 999px; border: 1px solid transparent; white-space: nowrap;
  transition: color var(--t), background var(--t), border var(--t);
}
.lab-nav a:hover { text-decoration: none; color: var(--text); background: var(--surface); }
.lab-nav a .num { color: var(--faint); margin-right: 7px; font-size: 11px; }
.lab-nav a.is-active { color: var(--teal); border-color: var(--rule-2); background: var(--surface); }
.lab-nav a.is-active .num { color: var(--teal); }

/* ------------------------------------------------------------- TOOLS ---- */
.lab-tools { padding: 30px 0 10px; display: grid; gap: 22px; }
.lab-tool {
  scroll-margin-top: 66px;
  border: 1px solid var(--rule); border-radius: var(--r);
  background: linear-gradient(180deg, var(--surface), var(--surface-2));
  box-shadow: var(--shadow); overflow: hidden;
}
.lab-tool-head { padding: 22px 24px 6px; }
.lab-kicker { font: 600 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; color: var(--faint); }
.lab-kicker b { color: var(--teal); font-weight: 600; }
.lab-tool-head h2 { font-size: clamp(20px, 2.4vw, 26px); margin: 12px 0 8px; }
.lab-tool-head p { color: var(--muted); max-width: 70ch; font-size: 14.5px; }

.lab-grid { display: grid; grid-template-columns: 320px 1fr; gap: 1px; background: var(--rule);
  border-top: 1px solid var(--rule); margin-top: 18px; }
.lab-grid > * { background: var(--surface); }
.lab-inputs { padding: 20px 22px; }
.lab-output { padding: 20px 22px; }

/* forms */
.lab-field { margin-bottom: 14px; }
.lab-field > label { display: block; font: 600 11.5px/1 var(--sans); letter-spacing: .02em;
  text-transform: uppercase; color: var(--muted); margin-bottom: 7px; }
.lab-input, .lab-select {
  width: 100%; appearance: none; -webkit-appearance: none;
  background: var(--surface-2); color: var(--text); border: 1px solid var(--ctl);
  border-radius: var(--r-sm); padding: 11px 12px; font: 500 15px/1.1 var(--mono);
  font-variant-numeric: tabular-nums; transition: border var(--t), box-shadow var(--t);
}
.lab-select { font-family: var(--sans); font-weight: 500;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23a4b5c6' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; padding-right: 34px; }
.lab-input:focus, .lab-select:focus { outline: none; border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(47,212,191,.18); }
.lab-input:hover, .lab-select:hover { border-color: var(--rule-2); }

/* segmented control */
.lab-seg { display: inline-flex; padding: 3px; gap: 3px; background: var(--surface-2);
  border: 1px solid var(--ctl); border-radius: var(--r-sm); width: 100%; }
.lab-seg button {
  flex: 1; cursor: pointer; border: 0; background: transparent; color: var(--muted);
  font: 600 12.5px/1 var(--sans); padding: 9px 8px; border-radius: 5px;
  transition: background var(--t), color var(--t);
}
.lab-seg button[aria-pressed="true"] { background: var(--teal); color: #052620; }
.lab-seg button:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }

.lab-check { display: flex; align-items: center; gap: 9px; color: var(--muted);
  font-size: 13.5px; margin: 4px 0 14px; cursor: pointer; }
.lab-check input { width: 16px; height: 16px; accent-color: var(--teal); }

.lab-action { width: 100%; justify-content: center; margin-top: 4px; }

/* result metrics */
.lab-metrics { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px;
  background: var(--rule); border: 1px solid var(--rule); border-radius: var(--r-sm); overflow: hidden; }
.lab-metric { background: var(--surface-2); padding: 13px 15px; }
.lab-metric span { display: block; font-size: 11.5px; color: var(--muted); letter-spacing: .01em; }
.lab-metric strong { display: block; margin-top: 5px; font: 700 21px/1.05 var(--mono);
  font-variant-numeric: tabular-nums; letter-spacing: -.02em; color: var(--text); }
.lab-metric.is-good strong { color: var(--teal); }
.lab-metric.is-warn strong { color: var(--amber); }
.lab-metric.is-bad  strong { color: var(--rose); }

.lab-verdict { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px;
  padding: 8px 13px; border-radius: 999px; font: 600 13px/1 var(--sans);
  border: 1px solid var(--ctl); background: var(--surface-2); color: var(--muted); }
.lab-verdict::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.lab-verdict.is-good { color: var(--teal); border-color: rgba(47,212,191,.4); }
.lab-verdict.is-warn { color: var(--amber); border-color: rgba(246,181,63,.4); }
.lab-verdict.is-bad  { color: var(--rose); border-color: rgba(255,111,111,.4); }

/* chart shell */
.lab-chart-wrap { margin-top: 16px; border: 1px solid var(--rule); border-radius: var(--r-sm);
  background: var(--surface-2); overflow: hidden; }
.lab-chart-top { display: flex; justify-content: space-between; align-items: center;
  padding: 11px 14px; border-bottom: 1px solid var(--rule); }
.lab-chart-title { font: 600 12px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--faint); }
.lab-legend { display: flex; gap: 14px; flex-wrap: wrap; }
.lab-legend span { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--muted); }
.lab-legend i { width: 12px; height: 3px; border-radius: 2px; display: inline-block; }
.lab-legend .k-teal { background: var(--teal); } .lab-legend .k-amber { background: var(--amber); }
.lab-legend .k-blue { background: var(--blue); } .lab-legend .k-rose { background: var(--rose); }
.lab-legend .k-band { background: linear-gradient(90deg, rgba(47,212,191,.5), rgba(47,212,191,.15)); height: 10px; border-radius: 2px; }
.lab-chart { display: block; width: 100%; height: auto; padding: 10px 12px 4px; }
.lab-chart text { font-family: var(--mono); fill: var(--faint); }
.lab-chart .axis { stroke: var(--rule); stroke-width: 1; }
.lab-chart .gridline { stroke: var(--rule); stroke-width: 1; stroke-dasharray: 2 4; opacity: .55; }
.lab-chart .series-teal { stroke: var(--teal); }
.lab-chart .series-amber { stroke: var(--amber); }
.lab-chart .series-rose { stroke: var(--rose); }
.lab-chart .series-blue { stroke: var(--blue); }
.lab-chart .fill-band { fill: rgba(47,212,191,.14); }
.lab-chart .fill-band-2 { fill: rgba(47,212,191,.08); }
@keyframes labDraw { to { stroke-dashoffset: 0; } }
.lab-chart-note { padding: 8px 14px 12px; font-size: 12px; color: var(--faint); }

/* window range controls */
.lab-range { display: inline-flex; gap: 3px; padding: 3px; border: 1px solid var(--ctl);
  border-radius: 6px; background: var(--surface); }
.lab-range button { cursor: pointer; border: 0; background: transparent; color: var(--muted);
  font: 600 11px/1 var(--mono); padding: 6px 9px; border-radius: 4px; }
.lab-range button[aria-pressed="true"] { background: var(--elev); color: var(--teal); }

/* -------------------------------------------------------- DATA TABLES ---- */
.lab-data { padding: 4px 24px 22px; }
.lab-data-head { display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 16px 0 12px; flex-wrap: wrap; }
.lab-data-head h3 { font-size: 14px; color: var(--muted); font-weight: 600; letter-spacing: .02em; }
.lab-table-scroll { overflow-x: auto; border: 1px solid var(--rule); border-radius: var(--r-sm); }
.lab-table { width: 100%; border-collapse: collapse; font-size: 13.5px; min-width: 560px; }
.lab-table caption { text-align: left; padding: 10px 14px; color: var(--faint); font-size: 12px; border-bottom: 1px solid var(--rule); }
.lab-table th, .lab-table td { padding: 11px 14px; text-align: left; border-bottom: 1px solid var(--rule); }
.lab-table thead th {
  position: sticky; top: 0; background: var(--elev); color: var(--muted);
  font: 600 11.5px/1.2 var(--sans); letter-spacing: .04em; text-transform: uppercase;
  border-bottom: 1px solid var(--rule-2); z-index: 1;
}
.lab-table tbody tr { transition: background var(--t); }
.lab-table tbody tr:hover { background: var(--surface); }
.lab-table td.num, .lab-table th.num { font-family: var(--mono); font-variant-numeric: tabular-nums; text-align: right; }
.lab-table .rank { color: var(--faint); font-family: var(--mono); }
.lab-table th[data-sort] { cursor: pointer; user-select: none; }
.lab-table th[data-sort]::after { content: "↕"; margin-left: 6px; color: var(--muted); font-size: 10px; }
.lab-table th[data-sort][aria-sort="ascending"]::after { content: "↑"; color: var(--teal); }
.lab-table th[data-sort][aria-sort="descending"]::after { content: "↓"; color: var(--teal); }

/* inline value bar cell */
.lab-bar { position: relative; min-width: 120px; }
.lab-bar i { display: block; height: 6px; border-radius: 3px; background: var(--teal); opacity: .85; }
.lab-bar.k-amber i { background: var(--amber); } .lab-bar.k-blue i { background: var(--blue); }
.lab-pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font: 600 11px/1.5 var(--sans);
  border: 1px solid var(--ctl); color: var(--muted); }
.lab-pill.yes { color: var(--teal); border-color: rgba(47,212,191,.35); }
.lab-pill.no  { color: var(--faint); }
.lab-vol { display: inline-flex; gap: 3px; }
.lab-vol b { width: 8px; height: 8px; border-radius: 2px; background: var(--rule-2); }
.lab-vol b.on { background: var(--amber); }

/* timeline diagram */
.lab-timeline { margin-top: 16px; }
.lab-tl-bar { display: flex; height: 34px; border-radius: 6px; overflow: hidden; border: 1px solid var(--rule); }
.lab-tl-seg { display: flex; align-items: center; justify-content: center; font: 600 11px/1 var(--sans);
  color: #04201c; white-space: nowrap; overflow: hidden; }
.lab-tl-seg.s1 { background: var(--teal); } .lab-tl-seg.s2 { background: var(--amber); color:#2a1c00; }
.lab-tl-seg.s3 { background: var(--blue); color:#041226; }
.lab-tl-scale { display: flex; justify-content: space-between; margin-top: 6px; font: 500 11px/1 var(--mono); color: var(--faint); }
.lab-tl-key { display: flex; gap: 16px; flex-wrap: wrap; margin-top: 12px; }
.lab-tl-key span { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--muted); }
.lab-tl-key i { width: 12px; height: 12px; border-radius: 3px; }
.lab-tl-key .s1 { background: var(--teal); } .lab-tl-key .s2 { background: var(--amber); } .lab-tl-key .s3 { background: var(--blue); }

.lab-note { margin-top: 12px; font-size: 12.5px; color: var(--faint); }
.lab-note strong { color: var(--muted); }
.lab-subtle { color: var(--faint); }
.lab-inputs-row { display: flex; gap: 14px; flex-wrap: wrap; align-items: end; border-top: 1px solid var(--rule); }

/* provinces selector */
.lab-prov-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(74px,1fr)); gap: 6px; }
.lab-prov-grid button { cursor: pointer; border: 1px solid var(--ctl); background: var(--surface-2);
  color: var(--muted); font: 700 13px/1 var(--mono); padding: 11px 6px; border-radius: 6px; transition: all var(--t); }
.lab-prov-grid button[aria-pressed="true"] { background: var(--teal); color: #052620; border-color: var(--teal); }
.lab-prov-grid button:hover { border-color: var(--teal); color: var(--text); }
.lab-prov-out { margin-top: 4px; }
.lab-prov-out dl { display: grid; grid-template-columns: 120px 1fr; gap: 1px; background: var(--rule);
  border: 1px solid var(--rule); border-radius: var(--r-sm); overflow: hidden; }
.lab-prov-out dt { background: var(--surface-2); padding: 11px 14px; color: var(--faint); font-size: 12px; }
.lab-prov-out dd { background: var(--surface); padding: 11px 14px; margin: 0; font-size: 13.5px; }

/* ---------------------------------------------------- SOURCES / LINKS ---- */
.lab-foot { display: grid; grid-template-columns: 1.2fr 1fr; gap: 22px; padding: 26px 0 40px; }
.lab-card { border: 1px solid var(--rule); border-radius: var(--r); background: var(--surface);
  padding: 20px 22px; box-shadow: var(--shadow); }
.lab-card h3 { font-size: 15px; margin-bottom: 4px; }
.lab-card p.sub { color: var(--muted); font-size: 13px; margin-bottom: 14px; }
.lab-srclist { display: grid; gap: 8px; }
.lab-srclist a { display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 11px 13px; border: 1px solid var(--rule); border-radius: var(--r-sm);
  background: var(--surface-2); color: var(--text); font-size: 13.5px; transition: border var(--t), transform var(--t); }
.lab-srclist a:hover { text-decoration: none; border-color: var(--teal); transform: translateX(2px); }
.lab-srclist a span { color: var(--faint); font: 600 11px/1 var(--mono); }
.lab-srclist a b { color: var(--teal); }

/* smart internal links (dynamic anchor block) */
.lab-related { padding: 8px 0 44px; }
.lab-related-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.lab-related h3 { font-size: clamp(18px,2vw,22px); }
.lab-related-note { color: var(--faint); font-size: 12px; }
.lab-related-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.lab-rel-card { display: flex; flex-direction: column; gap: 8px; padding: 16px; min-height: 116px;
  border: 1px solid var(--rule); border-radius: var(--r); background: linear-gradient(180deg,var(--surface),var(--surface-2));
  color: var(--text); transition: border var(--t), transform var(--t); }
.lab-rel-card:hover { text-decoration: none; border-color: var(--teal); transform: translateY(-2px); }
.lab-rel-cat { font: 600 10.5px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--teal); }
.lab-rel-card strong { font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.lab-rel-card em { margin-top: auto; font-style: normal; color: var(--faint); font-size: 12px; }
.lab-rel-card b { color: var(--teal); }

/* updates log */
.lab-updates { padding: 4px 0 48px; }
.lab-log { position: relative; padding-left: 22px; }
.lab-log::before { content: ""; position: absolute; left: 5px; top: 6px; bottom: 6px; width: 2px; background: var(--rule); }
.lab-log-item { position: relative; padding: 0 0 18px 0; }
.lab-log-item::before { content: ""; position: absolute; left: -21px; top: 4px; width: 12px; height: 12px;
  border-radius: 50%; background: var(--bg); border: 2px solid var(--teal); }
.lab-log-item time { font: 600 11.5px/1 var(--mono); color: var(--teal); letter-spacing: .04em; }
.lab-log-item strong { display: block; margin: 6px 0 3px; font-size: 14.5px; }
.lab-log-item p { color: var(--muted); font-size: 13px; }

.lab-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* --------------------------------------------------------- RESPONSIVE ---- */
@media (max-width: 940px) {
  .lab-hero-grid { grid-template-columns: 1fr; gap: 26px; }
  .lab-grid { grid-template-columns: 1fr; }
  .lab-foot { grid-template-columns: 1fr; }
  .lab-related-grid { grid-template-columns: repeat(2,1fr); }
  .lab-rail { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 560px) {
  .lab-hero { padding: 36px 0 20px; }
  .lab-metrics { grid-template-columns: 1fr; }
  .lab-related-grid { grid-template-columns: 1fr; }
  .lab-prov-out dl { grid-template-columns: 1fr; }
  .lab-prov-out dt { padding-bottom: 2px; }
}

/* motion / a11y */
@media (prefers-reduced-motion: reduce) {
  .lab *, .lab *::before, .lab *::after { animation: none !important; transition: none !important; }
}
.lab :focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; border-radius: 3px; }
.lab ::selection { background: rgba(47,212,191,.28); }
