/* ==========================================================================
   ZoomFibre Design Tokens
   Single source of truth for color, type, space, radius and shadow values.
   Do not hardcode hex colors / pixel spacing in component or page CSS —
   reference these custom properties instead.
   ========================================================================== */

:root {
  /* ---- Brand: primary (ZoomFibre orange) ---- */
  --color-primary-50:  #FEEEE9;
  --color-primary-100: #FDDBD1;
  --color-primary-200: #FAB6A3;
  --color-primary-300: #F79075;
  --color-primary-400: #F37354;
  --color-primary-500: #F05636; /* rgb(240, 86, 54) — brand orange */
  --color-primary-600: #D8431F; /* hover */
  --color-primary-700: #B5361A; /* active */
  --color-primary-800: #8C2A14;
  --color-primary-900: #631D0E;

  /* ---- Brand: secondary (ZoomFibre navy) ---- */
  --color-navy-50:  #E7EEF1;
  --color-navy-100: #C3D6DD;
  --color-navy-200: #9BBBC6;
  --color-navy-300: #6C9CAA;
  --color-navy-400: #3E7A8D;
  --color-navy-500: #0A5470;
  --color-navy-600: #023C53; /* rgb(2, 60, 83) — brand navy */
  --color-navy-700: #023348;
  --color-navy-800: #01283A;
  --color-navy-900: #011C29;

  /* ---- Neutrals ---- */
  --color-gray-0:   #FFFFFF;
  --color-gray-50:  #F6F8F9;
  --color-gray-100: #EEF1F3;
  --color-gray-200: #E2E7EA;
  --color-gray-300: #CBD3D8;
  --color-gray-400: #9FACB3;
  --color-gray-500: #74838B;
  --color-gray-600: #57666D;
  --color-gray-700: #404C52;
  --color-gray-800: #2A3337;
  --color-gray-900: #171E21;

  /* ---- Semantic (kept distinct from brand orange) ---- */
  --color-success-50:  #E9F7EF;
  --color-success-500: #1E9E5A;
  --color-success-700: #147A44;
  --color-warning-50:  #FEF6E7;
  --color-warning-500: #B4740E;
  --color-warning-700: #8A5A0A;
  --color-danger-50:   #FCEAEA;
  --color-danger-500:  #D6293E;
  --color-danger-700:  #A31F30;
  --color-info-50:     #E9F1FB;
  --color-info-500:    #2568C4;
  --color-info-700:    #1A4E99;

  /* ---- Surface roles ---- */
  --surface-page: var(--color-gray-50);
  --surface-card: var(--color-gray-0);
  --surface-sidebar: var(--color-gray-0);
  --surface-sunken: var(--color-gray-100);
  --border-subtle: var(--color-gray-200);
  --border-default: var(--color-gray-300);
  --text-heading: var(--color-navy-600);
  --text-body: var(--color-gray-800);
  /* gray-600, not gray-500: gray-500 only clears ~3.9:1 on white, short of the
     4.5:1 AA text minimum. gray-600 clears ~6:1 while still reading as
     secondary/de-emphasized next to --text-body and --text-heading. */
  --text-muted: var(--color-gray-600);
  --text-on-primary: #FFFFFF;
  --text-on-navy: #FFFFFF;
  --focus-ring: var(--color-primary-500);

  /* ---- Typography ---- */
  --font-sans: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --text-xs: 0.75rem;    /* 12px */
  --text-sm: 0.8125rem;  /* 13px */
  --text-base: 0.9375rem;/* 15px */
  --text-md: 1.0625rem;  /* 17px */
  --text-lg: 1.25rem;    /* 20px */
  --text-xl: 1.5rem;     /* 24px */
  --text-2xl: 1.875rem;  /* 30px */
  --leading-tight: 1.25;
  --leading-normal: 1.5;
  --leading-relaxed: 1.7;

  /* ---- Spacing scale ---- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;

  /* ---- Radius scale ---- */
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 18px;
  --radius-xl: 24px;
  --radius-full: 999px;

  /* ---- Hybrid neumorphic shadows (structure/depth only — never on text) ---- */
  --shadow-xs: 0 1px 2px rgba(2, 60, 83, 0.06);
  --shadow-sm: 0 2px 6px rgba(2, 60, 83, 0.08), 0 1px 2px rgba(2, 60, 83, 0.05);
  --shadow-md: 0 8px 20px rgba(2, 60, 83, 0.10), 0 2px 6px rgba(2, 60, 83, 0.06);
  --shadow-lg: 0 16px 40px rgba(2, 60, 83, 0.14), 0 4px 10px rgba(2, 60, 83, 0.06);
  --shadow-inset: inset 0 2px 4px rgba(2, 60, 83, 0.08);
  --shadow-focus: 0 0 0 3px rgba(240, 86, 54, 0.35);

  /* ---- Motion ---- */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;

  /* ---- Layout ---- */
  --sidebar-width: 264px;
  --sidebar-width-collapsed: 76px;
  --topbar-height: 64px;
  --content-max-width: 1280px;
}

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