/* R&C Protective Services — centralized design tokens
   Load before shell.css / rc-page.css / module CSS. */

:root {
  /* Brand */
  --rc-black: #0B0B0D;
  --rc-black-2: #17171A;
  --rc-charcoal: #242428;
  --rc-gold: #C9962E;
  --rc-gold-bright: #E2B84F;
  --rc-champagne: #F3D77A;
  --rc-bg: #F7F5EF;
  --rc-off-white: #F7F5EF;
  --rc-white: #FFFFFF;
  --rc-light-gray: #F1F1EE;
  --rc-border-solid: #DDDAD2;
  --rc-border: #DDDAD2;

  /* Text — light surfaces */
  --rc-ink: #141416;
  --rc-text: #141416;
  --rc-text-secondary: #3F3F46;
  --rc-muted: #3F3F46;
  --rc-text-disabled: #71717A;
  --rc-link: #8A6110;
  --rc-link-hover: #6B4A0C;

  /* Text — dark surfaces */
  --rc-text-on-dark: #FFF8EC;
  --rc-text-secondary-on-dark: rgba(255, 248, 236, 0.88);
  --rc-muted-on-dark: rgba(255, 248, 236, 0.78);
  --rc-disabled-on-dark: rgba(255, 248, 236, 0.55);
  --rc-link-on-dark: #F3D77A;
  --rc-gold-on-dark: #E2B84F;

  /* Status text (readable on light) */
  --rc-success: #16803B;
  --rc-success-text: #14532D;
  --rc-warning: #D97706;
  --rc-warning-text: #92400E;
  --rc-danger: #B42318;
  --rc-danger-text: #991B1B;
  --rc-info: #2563EB;
  --rc-info-text: #1E40AF;

  /* Status text (readable on dark) */
  --rc-success-on-dark: #86EFAC;
  --rc-warning-on-dark: #FCD34D;
  --rc-danger-on-dark: #FCA5A5;
  --rc-info-on-dark: #93C5FD;

  /* Typography */
  --rc-font: "Manrope", "Source Sans 3", system-ui, -apple-system, "Segoe UI", sans-serif;
  --rc-font-fallback: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --rc-fs-page-title: clamp(1.625rem, 2.4vw, 2.125rem);
  --rc-fs-subtitle: 1rem; /* 16px */
  --rc-fs-section: clamp(1.125rem, 1.6vw, 1.375rem);
  --rc-fs-card-value: clamp(1.5rem, 2.2vw, 2.125rem);
  --rc-fs-body: 1rem; /* 16px mobile-first */
  --rc-fs-table: 0.9375rem; /* 15px */
  --rc-fs-support: 0.875rem; /* 14px minimum helper */
  --rc-fs-label: 0.9375rem; /* 15px */
  --rc-fs-button: 1rem; /* 16px */
  --rc-fs-badge: 0.75rem; /* 12px readable floor for badges */
  --rc-fs-nav: 0.8125rem; /* 13px mobile nav */
  --rc-fw-regular: 500;
  --rc-fw-semibold: 650;
  --rc-fw-bold: 750;
  --rc-fw-extrabold: 800;
  --rc-lh-body: 1.45;
  --rc-lh-tight: 1.25;

  /* Spacing */
  --rc-space-1: 0.25rem;
  --rc-space-2: 0.5rem;
  --rc-space-3: 0.75rem;
  --rc-space-4: 1rem;
  --rc-space-5: 1.25rem;
  --rc-space-6: 1.5rem;
  --rc-space-8: 2rem;

  /* Radii */
  --rc-radius-sm: 0.5rem;
  --rc-radius: 0.85rem;
  --rc-radius-lg: 1rem;
  --rc-radius-pill: 999px;

  /* Shadows */
  --rc-shadow: 0 4px 16px rgba(11, 11, 13, 0.06);
  --rc-shadow-lg: 0 12px 28px rgba(11, 11, 13, 0.1);

  /* Controls */
  --rc-control-height: 44px;
  --rc-btn-height: 44px;
  --rc-input-height: 44px;

  /* Shell */
  --rc-sidebar-width: 280px;
  --rc-sidebar-collapsed: 72px;
  --rc-topbar-height: 56px;
  --rc-bottom-nav-height: 64px;
  --rc-content-max: 1440px;
  --rc-content-pad-desktop: 24px;
  --rc-content-pad-mobile: 12px;

  /* Z-index */
  --rc-z-dropdown: 40;
  --rc-z-sticky: 50;
  --rc-z-sidebar: 60;
  --rc-z-overlay: 70;
  --rc-z-dialog: 80;
  --rc-z-toast: 90;

  /* Motion */
  --rc-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --rc-duration: 180ms;
  --rc-duration-slow: 280ms;
}

html {
  font-family: var(--rc-font), var(--rc-font-fallback);
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.app-body {
  font-family: var(--rc-font), var(--rc-font-fallback);
  color: var(--rc-text);
  background: var(--rc-bg);
  font-size: var(--rc-fs-body);
  line-height: var(--rc-lh-body);
  font-weight: var(--rc-fw-regular);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Content width standard */
body.app-body .app-content,
body.app-body .content {
  max-width: var(--rc-content-max) !important;
  width: calc(100% - (var(--rc-content-pad-mobile) * 2)) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}

@media (min-width: 768px) {
  body.app-body .app-content,
  body.app-body .content {
    width: calc(100% - (var(--rc-content-pad-desktop) * 2)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --rc-duration: 0ms;
    --rc-duration-slow: 0ms;
  }
}
