@font-face {
  font-family: "Vazirmatn";
  src: url("/fonts/vazirmatn-variable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "IRANYekan";
  src: url("/fonts/iranyekan-regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "IRANYekan";
  src: url("/fonts/iranyekan-bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
}

:root {
  color-scheme: light;

  /* Brand */
  --nv-brand-navy-950: #071522;
  --nv-brand-navy-900: #0b1f33;
  --nv-brand-navy-800: #12304b;
  --nv-brand-navy-700: #19415f;
  --nv-brand-navy-100: #e7edf2;
  --nv-brand-navy-50: #f3f6f8;

  --nv-brand-orange-700: #b96d00;
  --nv-brand-orange-600: #d98200;
  --nv-brand-orange-500: #f59e0b;
  --nv-brand-orange-400: #f9b63f;
  --nv-brand-orange-100: #fff0ce;
  --nv-brand-orange-50: #fff8e8;

  --nv-brand-teal-700: #05766f;
  --nv-brand-teal-600: #079a92;
  --nv-brand-teal-500: #0bb5aa;
  --nv-brand-teal-100: #d8f3f0;
  --nv-brand-teal-50: #eefaf8;

  /* Neutral */
  --nv-neutral-950: #101820;
  --nv-neutral-900: #1f2933;
  --nv-neutral-800: #33414f;
  --nv-neutral-700: #4a5968;
  --nv-neutral-600: #637282;
  --nv-neutral-500: #7b8996;
  --nv-neutral-400: #a4afb9;
  --nv-neutral-300: #cbd3d9;
  --nv-neutral-200: #dde3e7;
  --nv-neutral-100: #e9eef1;
  --nv-neutral-50: #f3f6f7;
  --nv-white: #ffffff;

  /* Semantic */
  --nv-success-700: #0c654f;
  --nv-success-600: #0f7b5f;
  --nv-success-100: #daf3e9;
  --nv-success-50: #edf9f4;
  --nv-warning-700: #8b5600;
  --nv-warning-600: #a86700;
  --nv-warning-100: #ffedc7;
  --nv-warning-50: #fff7e6;
  --nv-danger-700: #9d3030;
  --nv-danger-600: #c23b3b;
  --nv-danger-100: #f8dcdc;
  --nv-danger-50: #fff1f1;
  --nv-info-700: #1d4ed8;
  --nv-info-600: #2563eb;
  --nv-info-100: #dbeafe;
  --nv-info-50: #eff6ff;

  /* Semantic surfaces */
  --nv-bg: #f3f6f7;
  --nv-surface: #ffffff;
  --nv-surface-muted: #f7f9fa;
  --nv-surface-raised: #ffffff;
  --nv-text: #1f2933;
  --nv-text-muted: #637282;
  --nv-text-soft: #7b8996;
  --nv-heading: #0b1f33;
  --nv-border: #dde3e7;
  --nv-border-strong: #cbd3d9;
  --nv-focus: #079a92;
  --nv-inverse: #0b1f33;
  --nv-inverse-text: #f7fafb;

  /* Type */
  --nv-font-fa: "Niroversa IRANSans",Tahoma,Arial,sans-serif;
  --nv-font-latin: "Niroversa IRANSans",Tahoma,Arial,sans-serif;
  --nv-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  /* Space */
  --nv-space-0: 0;
  --nv-space-1: 4px;
  --nv-space-2: 8px;
  --nv-space-3: 12px;
  --nv-space-4: 16px;
  --nv-space-5: 20px;
  --nv-space-6: 24px;
  --nv-space-8: 32px;
  --nv-space-10: 40px;
  --nv-space-12: 48px;
  --nv-space-16: 64px;
  --nv-space-20: 80px;

  /* Radius */
  --nv-radius-xs: 8px;
  --nv-radius-sm: 12px;
  --nv-radius-md: 16px;
  --nv-radius-lg: 20px;
  --nv-radius-xl: 28px;
  --nv-radius-pill: 999px;

  /* Elevation */
  --nv-shadow-1: 0 1px 2px rgba(11,31,51,.05), 0 6px 18px rgba(11,31,51,.05);
  --nv-shadow-2: 0 12px 34px rgba(11,31,51,.12);
  --nv-shadow-3: 0 24px 64px rgba(7,21,34,.22);

  /* Motion */
  --nv-motion-fast: 140ms;
  --nv-motion-standard: 200ms;
  --nv-motion-panel: 260ms;
  --nv-ease-out: cubic-bezier(.2,.8,.2,1);

  /* Layout */
  --nv-sidebar: 264px;
  --nv-sidebar-rail: 76px;
  --nv-topbar: 72px;
  --nv-detail: 480px;
  --nv-detail-wide: 560px;

  /* Data viz */
  --nv-viz-1: #0b1f33;
  --nv-viz-2: #079a92;
  --nv-viz-3: #f59e0b;
  --nv-viz-4: #526b84;
  --nv-viz-5: #7c5bb5;
  --nv-viz-negative: #c23b3b;
  --nv-viz-positive: #0f7b5f;
}

[data-theme="dark"] {
  color-scheme: dark;
  --nv-bg: #071522;
  --nv-surface: #0d2439;
  --nv-surface-muted: #102a41;
  --nv-surface-raised: #14314a;
  --nv-text: #edf3f6;
  --nv-text-muted: #b3c1cb;
  --nv-text-soft: #90a2b0;
  --nv-heading: #ffffff;
  --nv-border: #24435c;
  --nv-border-strong: #31536d;
  --nv-focus: #41c9c0;
  --nv-inverse: #f3f6f7;
  --nv-inverse-text: #0b1f33;
  --nv-shadow-1: 0 1px 2px rgba(0,0,0,.16), 0 8px 20px rgba(0,0,0,.16);
  --nv-shadow-2: 0 16px 40px rgba(0,0,0,.26);
  --nv-shadow-3: 0 28px 72px rgba(0,0,0,.38);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --nv-motion-fast: 0ms;
    --nv-motion-standard: 0ms;
    --nv-motion-panel: 0ms;
  }
}
