/* 多语言：词条加载完成前先隐藏页面，避免闪一下中文；1.5 秒兜底显示，脚本异常也不会白屏。 */
.i18n-pending body {
  visibility: hidden;
  animation: i18n-reveal 0s linear 1.5s forwards;
}

@keyframes i18n-reveal {
  to {
    visibility: visible;
  }
}

/* 波斯语从右到左：布局用逻辑属性自动镜像；这里只处理必须保持从左到右的内容。 */
[dir="rtl"] body {
  direction: rtl;
  text-align: right;
}

[dir="rtl"] .login-language {
  justify-content: flex-start;
}

/* 编号、条码、时间、数值、日志、代码保持从左到右，避免在 RTL 段落里被打乱。 */
[dir="rtl"] .ltr,
[dir="rtl"] .mono,
[dir="rtl"] .num,
[dir="rtl"] .log-box,
[dir="rtl"] .log-view,
[dir="rtl"] .kv dd,
[dir="rtl"] .diff-row > div:not(.field),
[dir="rtl"] input[type="number"],
[dir="rtl"] input[type="date"],
[dir="rtl"] input[type="datetime-local"] {
  direction: ltr;
  unicode-bidi: plaintext;
}

[dir="rtl"] .num,
[dir="rtl"] .kv dd {
  text-align: right;
}

/* 指标卡的数值（如 "21 / 24"、"7/8"）保持从左到右，靠右对齐。 */
[dir="rtl"] .kpi .kpi-value,
[dir="rtl"] .service-tile .tile-value {
  direction: ltr;
  text-align: right;
}
