/* TraPay design tokens — generated by ui-design-system skill
   Command: design_token_generator.py "#0d3e7e" modern css
   Font overridden to Vazirmatn (Persian). This is the single source of truth. */
:root {
  --meta-version: 1.0.0;
  --meta-style: modern;
  --meta-generated: auto-generated;
  --colors-primary-50: #eef4fc;
  --colors-primary-100: #dbe8f8;
  --colors-primary-200: #8fbaf2;
  --colors-primary-300: #7eb0f2;
  --colors-primary-400: #6da7f2;
  --colors-primary-500: #30517e;
  --colors-primary-600: #1f3d64;
  --colors-primary-700: #122b4b;
  --colors-primary-800: #081a32;
  --colors-primary-900: #020c19;
  --colors-primary-DEFAULT: #0d3e7e;
  --colors-secondary-50: #f2d2a7;
  --colors-secondary-100: #f2ce9f;
  --colors-secondary-200: #f2c78e;
  --colors-secondary-300: #f2c07d;
  --colors-secondary-400: #f2b86c;
  --colors-secondary-500: #7e5c2f;
  --colors-secondary-600: #64461e;
  --colors-secondary-700: #4b3211;
  --colors-secondary-800: #322008;
  --colors-secondary-900: #190f02;
  --colors-secondary-DEFAULT: #7e4d0c;
  --colors-neutral-50: #F9FAFB;
  --colors-neutral-100: #F3F4F6;
  --colors-neutral-200: #E5E7EB;
  --colors-neutral-300: #D1D5DB;
  --colors-neutral-400: #9CA3AF;
  --colors-neutral-500: #6B7280;
  --colors-neutral-600: #4B5563;
  --colors-neutral-700: #374151;
  --colors-neutral-800: #1F2937;
  --colors-neutral-900: #111827;
  --colors-neutral-DEFAULT: #6B7280;
  --colors-semantic-success-base: #10B981;
  --colors-semantic-success-light: #34D399;
  --colors-semantic-success-dark: #059669;
  --colors-semantic-success-contrast: #FFFFFF;
  --colors-semantic-warning-base: #F59E0B;
  --colors-semantic-warning-light: #FBBD24;
  --colors-semantic-warning-dark: #D97706;
  --colors-semantic-warning-contrast: #FFFFFF;
  --colors-semantic-error-base: #EF4444;
  --colors-semantic-error-light: #F87171;
  --colors-semantic-error-dark: #DC2626;
  --colors-semantic-error-contrast: #FFFFFF;
  --colors-semantic-info-base: #3B82F6;
  --colors-semantic-info-light: #60A5FA;
  --colors-semantic-info-dark: #2563EB;
  --colors-semantic-info-contrast: #FFFFFF;
  --colors-surface-background: #FFFFFF;
  --colors-surface-foreground: #111827;
  --colors-surface-card: #FFFFFF;
  --colors-surface-overlay: rgba(0, 0, 0, 0.5);
  --colors-surface-divider: #E5E7EB;
  --typography-fontFamily-sans: 'Vazirmatn', system-ui, -apple-system, sans-serif;
  --tp-font-heading: 'Estedad', 'Vazirmatn', system-ui, sans-serif;
  --typography-fontFamily-serif: Merriweather, Georgia, serif;
  --typography-fontFamily-mono: Fira Code, Monaco, monospace;
  --typography-fontSize-xs: 10px;
  --typography-fontSize-sm: 13px;
  --typography-fontSize-base: 16px;
  --typography-fontSize-lg: 20px;
  --typography-fontSize-xl: 25px;
  --typography-fontSize-2xl: 31px;
  --typography-fontSize-3xl: 39px;
  --typography-fontSize-4xl: 49px;
  --typography-fontSize-5xl: 61px;
  --typography-fontWeight-thin: 100;
  --typography-fontWeight-light: 300;
  --typography-fontWeight-normal: 400;
  --typography-fontWeight-medium: 500;
  --typography-fontWeight-semibold: 600;
  --typography-fontWeight-bold: 700;
  --typography-fontWeight-extrabold: 800;
  --typography-fontWeight-black: 900;
  --typography-lineHeight-none: 1;
  --typography-lineHeight-tight: 1.25;
  --typography-lineHeight-snug: 1.375;
  --typography-lineHeight-normal: 1.5;
  --typography-lineHeight-relaxed: 1.625;
  --typography-lineHeight-loose: 2;
  --typography-letterSpacing-tighter: -0.05em;
  --typography-letterSpacing-tight: -0.025em;
  --typography-letterSpacing-normal: 0;
  --typography-letterSpacing-wide: 0.025em;
  --typography-letterSpacing-wider: 0.05em;
  --typography-letterSpacing-widest: 0.1em;
  --typography-textStyles-h1-fontSize: 48px;
  --typography-textStyles-h1-fontWeight: 700;
  --typography-textStyles-h1-lineHeight: 1.2;
  --typography-textStyles-h1-letterSpacing: -0.02em;
  --typography-textStyles-h2-fontSize: 36px;
  --typography-textStyles-h2-fontWeight: 700;
  --typography-textStyles-h2-lineHeight: 1.3;
  --typography-textStyles-h2-letterSpacing: -0.01em;
  --typography-textStyles-h3-fontSize: 28px;
  --typography-textStyles-h3-fontWeight: 600;
  --typography-textStyles-h3-lineHeight: 1.4;
  --typography-textStyles-h3-letterSpacing: 0;
  --typography-textStyles-h4-fontSize: 24px;
  --typography-textStyles-h4-fontWeight: 600;
  --typography-textStyles-h4-lineHeight: 1.4;
  --typography-textStyles-h4-letterSpacing: 0;
  --typography-textStyles-h5-fontSize: 20px;
  --typography-textStyles-h5-fontWeight: 600;
  --typography-textStyles-h5-lineHeight: 1.5;
  --typography-textStyles-h5-letterSpacing: 0;
  --typography-textStyles-h6-fontSize: 16px;
  --typography-textStyles-h6-fontWeight: 600;
  --typography-textStyles-h6-lineHeight: 1.5;
  --typography-textStyles-h6-letterSpacing: 0.01em;
  --typography-textStyles-body-fontSize: 16px;
  --typography-textStyles-body-fontWeight: 400;
  --typography-textStyles-body-lineHeight: 1.5;
  --typography-textStyles-body-letterSpacing: 0;
  --typography-textStyles-small-fontSize: 14px;
  --typography-textStyles-small-fontWeight: 400;
  --typography-textStyles-small-lineHeight: 1.5;
  --typography-textStyles-small-letterSpacing: 0;
  --typography-textStyles-caption-fontSize: 12px;
  --typography-textStyles-caption-fontWeight: 400;
  --typography-textStyles-caption-lineHeight: 1.5;
  --typography-textStyles-caption-letterSpacing: 0.01em;
  --spacing-0: 0px;
  --spacing-1: 4px;
  --spacing-2: 8px;
  --spacing-3: 12px;
  --spacing-4: 16px;
  --spacing-5: 20px;
  --spacing-6: 24px;
  --spacing-7: 32px;
  --spacing-8: 40px;
  --spacing-9: 48px;
  --spacing-10: 56px;
  --spacing-11: 64px;
  --spacing-12: 72px;
  --spacing-13: 80px;
  --spacing-14: 96px;
  --spacing-15: 112px;
  --spacing-16: 128px;
  --spacing-17: 160px;
  --spacing-18: 192px;
  --spacing-19: 256px;
  --spacing-20: 320px;
  --spacing-21: 384px;
  --spacing-22: 448px;
  --spacing-23: 512px;
  --spacing-xs: 4px;
  --spacing-sm: 8px;
  --spacing-md: 16px;
  --spacing-lg: 24px;
  --spacing-xl: 40px;
  --spacing-2xl: 72px;
  --spacing-3xl: 128px;
  --sizing-container-sm: 640px;
  --sizing-container-md: 768px;
  --sizing-container-lg: 1024px;
  --sizing-container-xl: 1280px;
  --sizing-container-2xl: 1536px;
  --sizing-components-button-sm-height: 32px;
  --sizing-components-button-sm-paddingX: 12px;
  --sizing-components-button-md-height: 40px;
  --sizing-components-button-md-paddingX: 16px;
  --sizing-components-button-lg-height: 48px;
  --sizing-components-button-lg-paddingX: 20px;
  --sizing-components-input-sm-height: 32px;
  --sizing-components-input-sm-paddingX: 12px;
  --sizing-components-input-md-height: 40px;
  --sizing-components-input-md-paddingX: 16px;
  --sizing-components-input-lg-height: 48px;
  --sizing-components-input-lg-paddingX: 20px;
  --sizing-components-icon-sm: 16px;
  --sizing-components-icon-md: 20px;
  --sizing-components-icon-lg: 24px;
  --sizing-components-icon-xl: 32px;
  --borders-radius-none: 0;
  --borders-radius-sm: 4px;
  --borders-radius-DEFAULT: 8px;
  --borders-radius-md: 12px;
  --borders-radius-lg: 16px;
  --borders-radius-xl: 24px;
  --borders-radius-full: 9999px;
  --borders-width-none: 0;
  --borders-width-thin: 1px;
  --borders-width-DEFAULT: 1px;
  --borders-width-medium: 2px;
  --borders-width-thick: 4px;
  --shadows-none: none;
  --shadows-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  --shadows-DEFAULT: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
  --shadows-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  --shadows-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
  --shadows-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
  --shadows-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --shadows-inner: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
  --animation-duration-instant: 0ms;
  --animation-duration-fast: 150ms;
  --animation-duration-DEFAULT: 250ms;
  --animation-duration-slow: 350ms;
  --animation-duration-slower: 500ms;
  --animation-easing-linear: linear;
  --animation-easing-ease: ease;
  --animation-easing-easeIn: ease-in;
  --animation-easing-easeOut: ease-out;
  --animation-easing-easeInOut: ease-in-out;
  --animation-easing-spring: cubic-bezier(0.68, -0.55, 0.265, 1.55);
  --animation-keyframes-fadeIn-from-opacity: 0;
  --animation-keyframes-fadeIn-to-opacity: 1;
  --animation-keyframes-slideUp-from-transform: translateY(10px);
  --animation-keyframes-slideUp-from-opacity: 0;
  --animation-keyframes-slideUp-to-transform: translateY(0);
  --animation-keyframes-slideUp-to-opacity: 1;
  --animation-keyframes-scale-from-transform: scale(0.95);
  --animation-keyframes-scale-to-transform: scale(1);
  --breakpoints-xs: 480px;
  --breakpoints-sm: 640px;
  --breakpoints-md: 768px;
  --breakpoints-lg: 1024px;
  --breakpoints-xl: 1280px;
  --breakpoints-2xl: 1536px;
  --z-index-hide: -1;
  --z-index-base: 0;
  --z-index-dropdown: 1000;
  --z-index-sticky: 1020;
  --z-index-overlay: 1030;
  --z-index-modal: 1040;
  --z-index-popover: 1050;
  --z-index-tooltip: 1060;
  --z-index-notification: 1070;

  /* Canonical --color-* aliases (mirror admin theme.css @theme inline block).
     Lets values authored in the page builder (var(--color-primary), etc.)
     resolve on the public TraPay site identically to the admin preview.
     `--color-primary` / `--color-secondary` are still set from settings in
     layout.blade.php; the rest map to TraPay's existing palette. */
  --color-accent: var(--colors-primary-50);
  --color-muted: var(--colors-neutral-100);
  --color-destructive: var(--colors-semantic-error-base);
  --color-background: var(--colors-surface-background);
  --color-foreground: var(--colors-surface-foreground);
  --color-border: var(--colors-surface-divider);
}

/* ============================================================
   TraPay TYPE SCALE — strict, role-based. Use ONLY these classes
   for text. No ad-hoc text-xs/lg/xl or font-size:* anywhere.
   This kills font-size sprawl and keeps the theme consistent.
   ============================================================ */
.tp-display{ font-family:var(--tp-font-heading); font-size:clamp(2.5rem, 1.8rem + 3.2vw, 4rem); font-weight:800; line-height:1.32; letter-spacing:-0.01em; }
.tp-h2{ font-family:var(--tp-font-heading); font-size:clamp(1.75rem, 1.3rem + 1.6vw, 2.25rem); font-weight:800; line-height:1.4; letter-spacing:-0.01em; }
.tp-h3{ font-size:1.125rem; font-weight:600; line-height:1.7; }          /* card / item titles */
.tp-lead{ font-size:1.0625rem; font-weight:400; line-height:1.95; }       /* section intro paragraph */
.tp-body{ font-size:0.9375rem; font-weight:400; line-height:1.9; }        /* default body, card text */
.tp-small{ font-size:0.8125rem; font-weight:400; line-height:1.7; }       /* meta, captions, hours, ticker */
.tp-eyebrow{ font-size:0.8125rem; font-weight:600; line-height:1; }       /* badges / eyebrows / tags / nav */
.tp-stat{ font-size:clamp(2.6rem, 2rem + 2.2vw, 3.6rem); font-weight:800; line-height:1; }  /* big numbers */
