/* ==========================================================================
   iya.ru — RTL support (ar, fa, he, ur)
   --------------------------------------------------------------------------
   The whole design system is written with CSS *logical* properties
   (margin-inline-start, border-inline-end, inset-inline-start, padding-block…)
   so it already mirrors automatically. This file only covers the handful of
   cases where a physical direction is baked in: icons that must flip, the
   select chevron, chart legends, and typographic tweaks for Arabic-script
   line heights.
   ========================================================================== */

[dir='rtl'] {
  /* Arabic/Persian/Hebrew text reads better with slightly looser leading. */
  line-height: 1.75;
}

[dir='rtl'] body {
  font-feature-settings: 'cv02' 1, 'cv03' 1, 'ss01' 1;
}

/* The Latin UI font has no Arabic glyphs — the system stack takes over.
   Keep numerals Latin (tabular) so tables stay aligned. */
[dir='rtl'] .tabular,
[dir='rtl'] .numeric,
[dir='rtl'] .metric__value,
[dir='rtl'] .stat-strip__value,
[dir='rtl'] td.num {
  font-variant-numeric: tabular-nums lining-nums;
}

/* --- flip directional chrome -------------------------------------------- */
[dir='rtl'] .select {
  background-position: inline-start var(--space-3) center;
  padding-inline-end: var(--space-3);
  padding-inline-start: var(--space-8);
}

[dir='rtl'] .icon-flip,
[dir='rtl'] .breadcrumbs__sep .icon,
[dir='rtl'] .delta .icon--directional,
[dir='rtl'] .pagination .icon-flip {
  transform: scaleX(-1);
}

/* Chevron inside accordion triggers rotates in the other direction. */
[dir='rtl'] .accordion__item.is-open .accordion__trigger .icon {
  transform: rotate(-180deg);
}

/* Switch knob travel is handled in components.css via logical transforms. */
[dir='rtl'] .switch input::after {
  inset-inline-start: auto;
  inset-inline-end: 2px;
}

[dir='rtl'] .switch input:checked::after {
  transform: translateX(-1.0625rem);
}

/* --- mirrored layout pieces --------------------------------------------- */
[dir='rtl'] .input-group .input {
  border-start-start-radius: 0;
  border-end-start-radius: 0;
  border-start-end-radius: var(--radius-md);
  border-end-end-radius: var(--radius-md);
}

[dir='rtl'] .input-group__addon {
  border-inline-start: 1px solid var(--border-strong);
  border-inline-end: 0;
  border-start-start-radius: var(--radius-md);
  border-end-start-radius: var(--radius-md);
  border-start-end-radius: 0;
  border-end-end-radius: 0;
}

[dir='rtl'] .toasts {
  inset-inline-end: auto;
  inset-inline-start: var(--space-5);
}

[dir='rtl'] .chart-tip {
  transform: translate(50%, -120%);
}

[dir='rtl'] .chart-tip.is-visible {
  transform: translate(50%, -120%);
}

/* Chart legends and axis labels read right-to-left. */
[dir='rtl'] .chart__legend {
  flex-direction: row-reverse;
  justify-content: flex-end;
}

[dir='rtl'] .chart__axis text {
  direction: ltr;   /* numerals and latin labels stay LTR inside charts */
}

/* Code, URLs, IPs and hashes never mirror: they are Latin/technical. */
[dir='rtl'] pre,
[dir='rtl'] code,
[dir='rtl'] .mono,
[dir='rtl'] .font-mono,
[dir='rtl'] .ip-primary__value,
[dir='rtl'] .ip-secondary__value,
[dir='rtl'] .visit-row__ip,
[dir='rtl'] .visit-row__time,
[dir='rtl'] .link-row__path-text,
[dir='rtl'] .badge--mono,
[dir='rtl'] .tenant-hero__host,
[dir='rtl'] input.input--mono {
  direction: ltr;
  text-align: left;
  unicode-bidi: embed;
}

/* Keep mixed-content lines (label + technical value) readable. */
[dir='rtl'] .spec {
  direction: rtl;
}

[dir='rtl'] .spec__value--mono {
  direction: ltr;
  text-align: right;
}

/* --- typography tuning --------------------------------------------------- */
[dir='rtl'] h1,
[dir='rtl'] h2,
[dir='rtl'] h3,
[dir='rtl'] .hero__title,
[dir='rtl'] .display,
[dir='rtl'] .display-xl {
  letter-spacing: 0;      /* tracking on Arabic script breaks ligatures */
  line-height: 1.35;
}

[dir='rtl'] .hero__title {
  line-height: 1.25;
}

[dir='rtl'] .section__eyebrow,
[dir='rtl'] .side-nav__label,
[dir='rtl'] .metric__label,
[dir='rtl'] .ip-primary__label {
  letter-spacing: 0;
}

/* Arabic diacritics need a bit more room before clipping. */
[dir='rtl'] .truncate,
[dir='rtl'] .clamp-2 {
  overflow: hidden;
}

/* --- bidi isolation for user-generated content --------------------------- */
/* Agent names, link titles and messages may contain Latin inside RTL text. */
[dir='rtl'] .identity__name,
[dir='rtl'] .link-row__path,
[dir='rtl'] .rank__label,
[dir='rtl'] .alert__title,
[dir='rtl'] .toast,
[dir='rtl'] .swarm-message__author {
  unicode-bidi: plaintext;
}
