/* TaxHisab design tokens. Source of truth: the design project's tokens/*.css — keep in step with it.
   Fonts are loaded with <link> in _Layout (an @import here would block rendering). */

:root {
  /* Fonts */
  --font-display: 'Outfit', 'Hind Siliguri', system-ui, sans-serif;
  --font-body: 'Karla', 'Hind Siliguri', system-ui, sans-serif;
  --font-bengali: 'Hind Siliguri', 'Karla', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', monospace;

  /* Primary — Deep Emerald (finance-grade, not government) */
  --primary-50: #EEF7F1;
  --primary-100: #D7ECDF;
  --primary-200: #AFD9C1;
  --primary-300: #82C29F;
  --primary-400: #56AA80;
  --primary-500: #2E8F65;
  --primary-600: #187452;
  --primary-700: #0F5132;
  --primary-800: #0B3F27;
  --primary-900: #08301D;

  /* Neutrals — cool, slightly green-grey, paper-like */
  --neutral-0: #FFFFFF;
  --neutral-50: #F7F8F8;
  --neutral-100: #EEF0F0;
  --neutral-200: #DDE1E0;
  --neutral-300: #C3C9C8;
  --neutral-400: #9AA3A1;
  --neutral-500: #737D7B;
  --neutral-600: #565F5D;
  --neutral-700: #3F4645;
  --neutral-800: #282E2D;
  --neutral-900: #171B1A;
  --neutral-950: #0D0F0F;

  /* Secondary accent — Flag Red. Decorative/brand use only, never for errors */
  --accent-50: #FDECEA;
  --accent-100: #FBD2CD;
  --accent-200: #F5A79D;
  --accent-300: #ED7A6B;
  --accent-500: #E23D2A;
  --accent-600: #C42A1C;
  --accent-700: #A32217;
  --accent-800: #7A190F;
  --accent-900: #520F09;

  /* Tertiary accent — Gold. Premium/upsell moments only */
  --gold-50: #FCF6E7;
  --gold-100: #F6E7BD;
  --gold-200: #EDD48A;
  --gold-300: #E0BB56;
  --gold-500: #C89B2C;
  --gold-600: #A87D1D;
  --gold-700: #8A6416;
  --gold-800: #6B4C10;
  --gold-900: #4A340A;

  /* Semantic */
  --success-50: #EAF6EC;
  --success-100: #CDEAD2;
  --success-500: #2F9E44;
  --success-600: #237E36;
  --success-700: #1F7A32;
  --success-900: #123D19;

  --warning-50: #FEF6E7;
  --warning-100: #FCE8C1;
  --warning-500: #D97706;
  --warning-600: #B45309;
  --warning-700: #92400E;
  --warning-900: #4A2306;

  --error-50: #FDECEC;
  --error-100: #FAD2D2;
  --error-500: #DC2626;
  --error-600: #C11F1F;
  --error-700: #B91C1C;
  --error-900: #5C1010;

  --info-50: #EAF2FB;
  --info-100: #CFE2F5;
  --info-500: #2B6CB0;
  --info-600: #235A93;
  --info-700: #1D4E85;
  --info-900: #12314F;

  /* Semantic aliases */
  --color-bg: var(--neutral-0);
  --color-bg-subtle: var(--neutral-50);
  --color-bg-muted: var(--neutral-100);
  --color-surface: var(--neutral-0);
  --color-surface-raised: var(--neutral-0);
  --color-border: var(--neutral-200);
  --color-border-strong: var(--neutral-300);
  --color-border-focus: var(--primary-600);

  --text-primary: var(--neutral-900);
  --text-secondary: var(--neutral-600);
  --text-tertiary: var(--neutral-500);
  --text-disabled: var(--neutral-400);
  --text-on-primary: var(--neutral-0);
  --text-link: var(--primary-700);
  --text-link-hover: var(--primary-800);

  --brand-primary: var(--primary-700);
  --brand-primary-hover: var(--primary-800);
  --brand-primary-active: var(--primary-900);
  --brand-primary-subtle: var(--primary-50);
  --brand-primary-border: var(--primary-200);

  --brand-accent: var(--accent-600);
  --brand-accent-hover: var(--accent-700);
  --brand-accent-subtle: var(--accent-50);
  --brand-accent-border: var(--accent-200);

  --state-success-bg: var(--success-50);
  --state-success-border: var(--success-100);
  --state-success-text: var(--success-700);
  --state-success-icon: var(--success-500);

  --state-warning-bg: var(--warning-50);
  --state-warning-border: var(--warning-100);
  --state-warning-text: var(--warning-700);
  --state-warning-icon: var(--warning-500);

  --state-error-bg: var(--error-50);
  --state-error-border: var(--error-100);
  --state-error-text: var(--error-700);
  --state-error-icon: var(--error-500);

  --state-info-bg: var(--info-50);
  --state-info-border: var(--info-100);
  --state-info-text: var(--info-700);
  --state-info-icon: var(--info-500);

  --focus-ring: 0 0 0 3px rgba(15, 81, 50, 0.28);
  --focus-ring-error: 0 0 0 3px rgba(220, 38, 38, 0.22);

  /* Typography */
  --text-display-2xl-size: 3rem;
  --text-display-2xl-line: 3.5rem;
  --text-display-xl-size: 2.5rem;
  --text-display-xl-line: 3rem;
  --text-display-lg-size: 2rem;
  --text-display-lg-line: 2.5rem;

  --text-heading-lg-size: 1.75rem;
  --text-heading-lg-line: 2.25rem;
  --text-heading-md-size: 1.5rem;
  --text-heading-md-line: 2rem;
  --text-heading-sm-size: 1.25rem;
  --text-heading-sm-line: 1.75rem;

  --text-body-lg-size: 1.125rem;
  --text-body-lg-line: 1.75rem;
  --text-body-md-size: 1rem;
  --text-body-md-line: 1.5rem;
  --text-body-sm-size: 0.875rem;
  --text-body-sm-line: 1.25rem;

  --text-caption-size: 0.75rem;
  --text-caption-line: 1rem;
  --text-overline-size: 0.6875rem;
  --text-overline-line: 1rem;

  --weight-regular: 400;
  --weight-medium: 500;
  --weight-semibold: 600;
  --weight-bold: 700;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-24: 96px;

  --container-max: 1200px;
  --gutter-mobile: 16px;
  --gutter-tablet: 24px;
  --gutter-desktop: 32px;

  --touch-target-min: 44px;

  /* Radius */
  --radius-none: 0px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-full: 999px;

  /* Elevation */
  --shadow-sm: 0 1px 2px rgba(13, 15, 15, 0.06);
  --shadow-md: 0 2px 8px rgba(13, 15, 15, 0.08), 0 1px 2px rgba(13, 15, 15, 0.06);
  --shadow-lg: 0 8px 24px rgba(13, 15, 15, 0.10), 0 2px 6px rgba(13, 15, 15, 0.06);
  --shadow-xl: 0 16px 40px rgba(13, 15, 15, 0.14), 0 4px 10px rgba(13, 15, 15, 0.08);
  --shadow-focus: var(--focus-ring);

  /* Motion */
  --ease-standard: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --duration-fast: 120ms;
  --duration-base: 200ms;
  --duration-slow: 320ms;
}
