@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-Thin.woff2") format("woff2");
  font-style: normal;
  font-weight: 100;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-ExtraLight.woff2") format("woff2");
  font-style: normal;
  font-weight: 200;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-Light.woff2") format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-DemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-ExtraBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang UI";
  src: url("/fonts/farhang/FarhangDot1FaNum-Black.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-ThinSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 100;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-ExtraLightSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 200;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-LightSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-RegularSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-MediumSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-DemiBoldSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-BoldSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-ExtraBoldSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

@font-face {
  font-family: "BORNA Farhang Display";
  src: url("/fonts/farhang/FarhangFaNum-BlackSharp.woff2") format("woff2");
  font-style: normal;
  font-weight: 900;
  font-display: swap;
}

/* BORNA_TYPOGRAPHY_V539_R29
   Primary UI: Farhang Dot1 FaNum
   Display / headings: Farhang FaNum Sharp
   Persian-first, dense SaaS hierarchy, no synthetic weights.
*/
:root {
  --borna-font-ui: "BORNA Farhang UI", Tahoma, Arial, sans-serif;
  --borna-font-display: "BORNA Farhang Display", "BORNA Farhang UI", Tahoma, Arial, sans-serif;
  --borna-font-mono: ui-monospace, "SFMono-Regular", Consolas, "Liberation Mono", monospace;

  --borna-fw-regular: 400;
  --borna-fw-medium: 500;
  --borna-fw-semibold: 600;
  --borna-fw-bold: 700;
  --borna-fw-extrabold: 800;

  --borna-lh-control: 1.42;
  --borna-lh-ui: 1.56;
  --borna-lh-body: 1.72;
  --borna-lh-relaxed: 1.84;
  --borna-lh-heading: 1.36;

  --borna-tracking-fa: 0;
  --borna-tracking-heading: -0.008em;
  --borna-tracking-control: -0.004em;

  --borna-type-2xs: 0.6875rem;
  --borna-type-xs: 0.75rem;
  --borna-type-sm: 0.8125rem;
  --borna-type-md: 0.875rem;
  --borna-type-lg: 1rem;
  --borna-type-xl: 1.125rem;
  --borna-type-2xl: 1.375rem;
  --borna-type-3xl: 1.75rem;
}

html {
  font-family: var(--borna-font-ui);
  font-synthesis: none;
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--borna-font-ui) !important;
  font-weight: var(--borna-fw-regular);
  line-height: var(--borna-lh-body);
  letter-spacing: var(--borna-tracking-fa);
  font-feature-settings: "kern" 1;
}

/* Text-bearing controls inherit one coherent UI face. */
button,
input,
textarea,
select,
option,
optgroup,
label {
  font-family: var(--borna-font-ui) !important;
  font-synthesis: none;
}

button,
[role="button"],
.btn,
.button,
.action,
.toolbar button,
.tabs button,
.tab {
  font-weight: var(--borna-fw-semibold) !important;
  line-height: var(--borna-lh-control);
  letter-spacing: var(--borna-tracking-control);
}

input,
textarea,
select {
  font-weight: var(--borna-fw-regular);
  line-height: var(--borna-lh-ui);
  letter-spacing: 0;
}

input::placeholder,
textarea::placeholder {
  font-family: var(--borna-font-ui);
  font-weight: var(--borna-fw-regular);
  letter-spacing: 0;
  opacity: .68;
}

/* Display hierarchy: Sharp is reserved for titles, not dense body copy. */
h1,
h2,
h3,
.page-title,
.screen-title,
.modal-title,
.dialog-title,
.panel-title,
.section-title,
.card-title,
[data-typography="display"] {
  font-family: var(--borna-font-display) !important;
  font-synthesis: none;
  line-height: var(--borna-lh-heading);
  letter-spacing: var(--borna-tracking-heading);
}

h1,
.page-title,
.screen-title {
  font-weight: var(--borna-fw-extrabold) !important;
}

h2,
.modal-title,
.dialog-title {
  font-weight: var(--borna-fw-bold) !important;
}

h3,
.panel-title,
.section-title,
.card-title {
  font-weight: var(--borna-fw-semibold) !important;
}

h4,
h5,
h6 {
  font-family: var(--borna-font-ui) !important;
  font-weight: var(--borna-fw-semibold) !important;
  line-height: 1.46;
  letter-spacing: 0;
}

/* Dense product UI. */
nav,
aside,
.menu,
.sidebar,
.topbar,
.toolbar,
.breadcrumb,
.pagination {
  font-family: var(--borna-font-ui) !important;
  line-height: var(--borna-lh-ui);
}

th,
.table-head,
.table-header {
  font-family: var(--borna-font-ui) !important;
  font-weight: var(--borna-fw-semibold) !important;
  line-height: 1.5;
}

td,
.table-cell {
  font-weight: var(--borna-fw-regular);
  line-height: 1.58;
}

.badge,
.chip,
.pill,
.tag,
.status,
.role-badge,
.counter,
.kpi-label {
  font-family: var(--borna-font-ui) !important;
  font-weight: var(--borna-fw-semibold) !important;
  line-height: 1.34;
  letter-spacing: 0;
}

.meta,
.metadata,
.caption,
.helper,
.help-text,
.hint,
.secondary-text,
.muted,
small {
  font-family: var(--borna-font-ui) !important;
  font-weight: var(--borna-fw-regular);
  line-height: 1.62;
  letter-spacing: 0;
}

strong,
b {
  font-weight: var(--borna-fw-bold);
}

p,
li,
dd,
dt,
blockquote {
  line-height: var(--borna-lh-body);
}

/* Technical content remains visually distinct and direction-safe. */
code,
pre,
kbd,
samp,
.mono,
[data-mono="true"] {
  font-family: var(--borna-font-mono) !important;
  font-variant-numeric: tabular-nums;
  direction: ltr;
  unicode-bidi: isolate;
}

input[type="email"],
input[type="url"],
input[type="tel"],
input[data-ltr="true"] {
  direction: ltr;
  text-align: left;
  unicode-bidi: plaintext;
}

.numeric,
[data-numeric="true"],
time {
  font-variant-numeric: tabular-nums;
}

/* Keep icon-font glyphs untouched if any legacy surface still uses them. */
.material-icons,
.material-symbols-outlined,
.fa,
.fas,
.far,
.fab,
[class^="icon-font-"],
[class*=" icon-font-"] {
  font-family: inherit;
  letter-spacing: normal;
}

/* Responsive rhythm: no sudden typography jump between classroom widths. */
@media (max-width: 900px) {
  body {
    line-height: 1.68;
  }

  h1,
  h2,
  h3,
  .page-title,
  .screen-title,
  .modal-title,
  .dialog-title,
  .panel-title,
  .section-title {
    line-height: 1.4;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

