/* Table Rush — the theme seam on top of design-core tokens.css.
   Brand (approved, never regenerate): Table baby blue #A0CBED · Rush purple #855FEA · navy #0E1237 · ink #E2E9FB.
   Fonts: Sora (display) + Inter (body).
   The OS was written against a small set of SEMANTIC variables (--bg, --card, --b, --gold, --red, --green, --amber,
   --pur, --txt …). We keep those names and give them Table Rush values, so 17,000 lines re-theme through this block.
   Role mapping: --gold family = PRIMARY accent (Rush purple) · --pur family = SECONDARY accent (Table baby blue)
                 --red = danger · --green = success · --amber = warning. */
:root{
  --font-display:"Sora",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-body:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --motion-scale:1;

  /* brand constants (never used directly for UI states — go through the semantic names below) */
  --tr-blue:#A0CBED;--tr-purple:#855FEA;--tr-navy:#0E1237;--tr-ink:#E2E9FB;

  /* ── DARK (default) ── */
  --bg:#0A0F26;--surface:#0E1237;--card:#131D31;--card2:#1A2740;--card3:#21304A;
  --b:#1F2B45;--bl:#2A3A5C;--bxl:#3A4F7A;
  --gold:#855FEA;--goldl:#A98BF0;--goldd:rgba(133,95,234,.14);
  --red:#B03A3A;--redl:#D64545;--redd:rgba(214,69,69,.12);
  --green:#1F8A4C;--greenl:#2FB36A;--greend:rgba(47,179,106,.12);
  --amber:#B27A12;--amberl:#E0A530;--amberd:rgba(224,165,48,.12);
  --pur:#3F7FC2;--purl:#A0CBED;--purd:rgba(160,203,237,.14);
  --txt:#E2E9FB;--txtm:#93A3BD;--txts:#5F6E88;--txtxs:#33405A;
  --shadow:rgba(0,0,0,.45);--glow1:rgba(133,95,234,.16);--glow2:rgba(160,203,237,.07);
  --on-accent:#FFFFFF;
}
/* ── LIGHT ── (per-user setting in the OS; the guest booking page and menu page are always light) */
html[data-theme="light"],.tr-light{
  --bg:#F3F7FC;--surface:#FFFFFF;--card:#FFFFFF;--card2:#EEF3FA;--card3:#E4ECF6;
  --b:#DCE5F1;--bl:#C3D1E4;--bxl:#A3B6D0;
  --gold:#6B45CC;--goldl:#855FEA;--goldd:rgba(107,69,204,.12);
  --red:#B93636;--redl:#D64545;--redd:rgba(185,54,54,.10);
  --green:#1F8040;--greenl:#27A052;--greend:rgba(31,128,64,.12);
  --amber:#9C6A0E;--amberl:#C98F1E;--amberd:rgba(156,106,14,.12);
  --pur:#2F6FB0;--purl:#5E9BD6;--purd:rgba(47,111,176,.12);
  --txt:#17233A;--txtm:#5D6B83;--txts:#8593AA;--txtxs:#B7C2D3;
  --shadow:rgba(23,35,58,.16);--glow1:rgba(133,95,234,.08);--glow2:rgba(160,203,237,.14);
  --on-accent:#FFFFFF;
}

/* ── motion patterns (design-core names) ── */
@keyframes tr-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes tr-depart{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}
@keyframes tr-fade-in{from{opacity:0}to{opacity:1}}
@keyframes tr-fade-out{from{opacity:1}to{opacity:0}}
.tr-arrive{animation:tr-arrive calc(var(--dur-3) * var(--motion-scale)) var(--ease-entrance) both}
.tr-depart{animation:tr-depart calc(var(--dur-2) * var(--motion-scale)) var(--ease-exit) both}
.tr-fade-in{animation:tr-fade-in calc(var(--dur-2) * var(--motion-scale)) var(--ease-entrance) both}
.tr-fade-out{animation:tr-fade-out calc(var(--dur-2) * var(--motion-scale)) var(--ease-exit) both}
/* stagger for lists: apply .tr-arrive to children and set --i */
.tr-stagger > *{animation-delay:calc(min(var(--i,0), 6) * var(--stagger) * var(--motion-scale))}
/* respond: hover/press lift on interactive elements that opt in */
.tr-respond{transition:transform calc(var(--dur-1) * var(--motion-scale)) var(--ease-standard),box-shadow calc(var(--dur-1) * var(--motion-scale)) var(--ease-standard)}
.tr-respond:hover{transform:translateY(-2px)}
.tr-respond:active{transform:translateY(0)}
@media (prefers-reduced-motion: reduce){
  .tr-arrive,.tr-depart,.tr-fade-in,.tr-fade-out{animation-duration:var(--dur-1);animation-name:tr-fade-in}
  .tr-depart,.tr-fade-out{animation-name:tr-fade-out}
  .tr-respond:hover{transform:none}
}
