/* Route v2 tokens (lead-owned, includes/route/CONTRACT.md). Slices read these and never define globals (scoped to the Route page: html:has(> body.field-body), the Route body).
   Colors come from the site tokens in style.css (dark is the default, brand blue is var(--blue)). */
html:has(> body.field-body) {
  --rt-pad: 12px;
  --rt-gap: 8px;
  --rt-radius: 16px;
  --rt-radius-sm: 10px;
  --rt-card-h: min(46vh, 360px);
  --rt-row-h: 56px;
  --rt-tap: 44px;
  --rt-bottom-space: 72px; /* room under the page for the fixed Chat/mic (S28) */
  --rt-flip: 320ms;
  --rt-slide: 220ms;
  --rt-fade: 160ms;
  --rt-ease: cubic-bezier(.2, .9, .3, 1.15);
  --rt-z-card: 20;
  --rt-z-sheet: 40;
  --rt-z-tray: 60;
  --rt-z-toast: 80;
  --rt-accent: var(--blue);
  --rt-bad: var(--red);
}
@media (prefers-reduced-motion: reduce) {
  html:has(> body.field-body) body { --rt-flip: 1ms; --rt-slide: 1ms; }
}

/* rt_w=1 (PC Dashboard Route widget frame): no site header, left menu or PC tool strip; the phone layout fills the frame. */
html.rt-w header.top, html.rt-w aside.side, html.rt-w .rl-tools, html.rt-w .phone-dock { display: none !important; }
html.rt-w body.field-body { max-width: none; margin: 0; }
