:root {
  /* Brand palette from ready DRYBAR font/color palette document. */
  --rd-white: #fefefe;
  --rd-warm-grey-200: #c2bbae;
  --rd-taupe-500: #8e7e65;
  --rd-bronze-700: #6e5a3f;
  --rd-charcoal-900: #2f2c25;

  /* Product neutrals derived from the brand palette for app surfaces. */
  --rd-canvas: #f7f4ee;
  --rd-surface: #fefefe;
  --rd-surface-warm: #fbfaf7;
  --rd-border: #ded7cb;
  --rd-border-strong: #c2bbae;

  /* Functional colors should stay quiet and secondary to the brand palette. */
  --rd-success: #286f4a;
  --rd-success-soft: #eef6f1;
  --rd-warning: #a0644e;
  --rd-warning-soft: #f6eee9;
  --rd-line: #06c755;

  /* Brand typography. Use web-safe fallbacks until licensed/hosted fonts are added. */
  --rd-font-display: "Playfair Display", Kanit, Didot, "Bodoni 72", Georgia, serif;
  --rd-font-body: Montserrat, Kanit, Tahoma, "Avenir Next", Avenir, Gotham, Inter, system-ui, sans-serif;
  --rd-font-ui: Montserrat, Kanit, Tahoma, "Avenir Next", Inter, system-ui, sans-serif;

  /* Type scale for mobile/iPad app and future operational tools. */
  --rd-text-xs: 0.75rem;
  --rd-text-sm: 0.875rem;
  --rd-text-md: 1rem;
  --rd-text-lg: 1.125rem;
  --rd-text-xl: 1.5rem;
  --rd-text-2xl: 2rem;
  --rd-text-3xl: 2.75rem;
  --rd-text-4xl: 3.375rem;

  --rd-leading-tight: 1.08;
  --rd-leading-body: 1.42;
  --rd-leading-ui: 1.2;

  /* Compact enough for express operations, generous enough for premium clarity. */
  --rd-space-1: 0.25rem;
  --rd-space-2: 0.5rem;
  --rd-space-3: 0.75rem;
  --rd-space-4: 1rem;
  --rd-space-5: 1.25rem;
  --rd-space-6: 1.5rem;
  --rd-space-7: 1.75rem;
  --rd-space-8: 2rem;
  --rd-space-10: 2.5rem;
  --rd-space-12: 3rem;

  /* Keep cards restrained; this is premium operations, not playful SaaS. */
  --rd-radius-sm: 6px;
  --rd-radius-md: 8px;
  --rd-radius-lg: 10px;
  --rd-shadow-soft: 0 18px 55px rgba(47, 44, 37, 0.12);
  --rd-shadow-focus: 0 0 0 3px rgba(142, 126, 101, 0.22);

  --rd-touch-min: 44px;
  --rd-control-height: 52px;
  --rd-control-height-lg: 58px;
}
