/* Load after the shared and page styles. Grid/flex order follows html[dir];
   these overrides mirror the remaining physical offsets and Bootstrap's LTR
   utilities without changing the English/Chinese layout. */

html[dir="rtl"] {
  --olivia-font-sans: Tahoma, "Segoe UI", system-ui, sans-serif;
  --olivia-font-display: Tahoma, "Segoe UI", system-ui, sans-serif;
}

/* Message text follows its own dir="auto", independently of the page language. */
.dialogue-message[dir="auto"],
textarea[dir="auto"],
input[dir="auto"] {
  text-align: start;
  unicode-bidi: plaintext;
}

html[dir="rtl"] :is(.olivia-nav__label, .olivia-brand__tagline, h1, h2, h3) {
  letter-spacing: normal;
}

html[dir="rtl"] :is(.text-start, .account-kind-note, .olivia-field-hint, .olivia-auth-status, .onboarding-option) {
  text-align: start !important;
}

html[dir="rtl"] :is(.text-end, .account-detail-list dd, .olivia-chat-header__note, .report-card__topline time, .olivia-program-section-heading p) {
  text-align: end !important;
}

/* Bootstrap utilities used by learner templates. */
html[dir="rtl"] .ms-1 { margin-left: 0 !important; margin-right: .25rem !important; }
html[dir="rtl"] .ms-2 { margin-left: 0 !important; margin-right: .5rem !important; }
html[dir="rtl"] .me-2 { margin-right: 0 !important; margin-left: .5rem !important; }
html[dir="rtl"] .me-3 { margin-right: 0 !important; margin-left: 1rem !important; }
html[dir="rtl"] .ms-auto { margin-left: 0 !important; margin-right: auto !important; }
html[dir="rtl"] .ps-3 { padding-left: 0 !important; padding-right: 1rem !important; }

html[dir="rtl"] .form-select {
  padding-right: .75rem;
  padding-left: 2.25rem;
  background-position: left .75rem center;
}

html[dir="rtl"] .form-floating > label {
  right: 0;
  left: auto;
  transform-origin: 100% 0;
}

html[dir="rtl"] .form-floating > :is(.form-control:focus, .form-control:not(:placeholder-shown), .form-select) ~ label {
  transform: scale(.85) translateY(-.5rem) translateX(-.15rem);
}

html[dir="rtl"] .form-check {
  padding-left: 0;
  padding-right: 1.5em;
}

html[dir="rtl"] .form-check .form-check-input {
  float: right;
  margin-left: 0;
  margin-right: -1.5em;
}

html[dir="rtl"] .modal-header .btn-close {
  margin-right: auto;
  margin-left: -.5rem;
}

html[dir="rtl"] .alert-dismissible { padding-right: 1rem; padding-left: 3rem; }
html[dir="rtl"] .alert-dismissible .btn-close { right: auto; left: 0; }

html[dir="rtl"] .olivia-skip-link { left: auto; right: 1rem; }
html[dir="rtl"] .olivia-main-shell { padding-right: 0; padding-left: 1.1rem; }
html[dir="rtl"] .olivia-main-shell--centered { padding-right: 1.1rem; }
html[dir="rtl"] .olivia-nav__link:hover { transform: translateX(-2px); }
html[dir="rtl"] .olivia-nav__link[aria-current="page"] { box-shadow: inset -3px 0 var(--olivia-green-500); }
html[dir="rtl"] .olivia-impersonation-banner a { margin-left: 0; margin-right: auto; }

html[dir="rtl"] :is(.bi-chevron-right, .bi-chevron-left, .bi-arrow-right, .bi-arrow-left, .bi-box-arrow-right) {
  display: inline-block;
  transform: scaleX(-1);
}

html[dir="rtl"] .account-avatar-button > span { right: auto; left: .05rem; }
html[dir="rtl"] .program-chat-alert { right: auto; left: 1rem; }
html[dir="rtl"] .debug-button { right: auto; left: 0; }
html[dir="rtl"] .memory-button-group { right: auto; left: 14px; }
html[dir="rtl"] .olivia-chat-aside { padding-right: 0; padding-left: .15rem; }
html[dir="rtl"] .still-thinking { margin-left: 0; margin-right: .35rem; }
html[dir="rtl"] .dialogue-message-ai { border-radius: 18px 7px 18px 18px; }
html[dir="rtl"] .dialogue-message-human { border-radius: 7px 18px 18px 18px; }
html[dir="rtl"] .olivia-btn-action { margin: 0 0 .55rem .45rem !important; }

html[dir="rtl"] :is(.olivia-composer__inner, .olivia-chat-card > .input-group) {
  padding-right: .85rem !important;
  padding-left: .45rem !important;
}

html[dir="rtl"] .olivia-auth-story::after { right: auto; left: -5rem; }
html[dir="rtl"] .olivia-auth-form .form-floating > .form-control { padding-right: 1rem; }
html[dir="rtl"] .olivia-password-field .form-control { padding-right: 1rem; padding-left: 3.25rem; }
html[dir="rtl"] .form-toggle-password { right: auto !important; left: .35rem !important; }

/* The marquee travels as a continuous physical strip, so it retains LTR
   geometry while each translated phrase keeps RTL text direction. */
html[dir="rtl"] .olivia-support-loop__track { direction: ltr; }
html[dir="rtl"] .olivia-support-loop__track span { direction: rtl; }

html[dir="rtl"] .olivia-onboarding-options { margin-right: 3.1rem; margin-left: 0; }
html[dir="rtl"] .onboarding-option { padding-right: 2.8rem; padding-left: 1rem; }
html[dir="rtl"] .onboarding-option::before { left: auto; right: 1rem; }
html[dir="rtl"] .olivia-session-row:hover { transform: translateX(-3px); }

html[dir="rtl"] .memory-boundary {
  padding-left: 0;
  padding-right: clamp(1.2rem, 3vw, 2.2rem);
  border-left: 0;
  border-right: 1px solid var(--memory-rule);
}

html[dir="rtl"] .memory-list-section {
  padding-right: 0;
  padding-left: clamp(.2rem, 2vw, 1.5rem);
}

html[dir="rtl"] .memory-list-section + .memory-list-section {
  padding-left: 0;
  padding-right: clamp(1.3rem, 3vw, 2rem);
  border-left: 0;
  border-right: 1px solid var(--memory-rule);
}

@media (max-width: 920px) {
  html[dir="rtl"] .memory-boundary { padding-right: 0; border-right: 0; }
}

@media (max-width: 860px) {
  html[dir="rtl"] .olivia-main-shell { padding: .55rem; }
  html[dir="rtl"] .olivia-program-section-heading p { text-align: start !important; }
}

@media (max-width: 767px) {
  html[dir="rtl"] .olivia-impersonation-banner a { margin-right: 0; }
}

@media (max-width: 700px) {
  html[dir="rtl"] .account-detail-list dd { text-align: start !important; }
  html[dir="rtl"] .olivia-onboarding-options { margin-right: 0; }
  html[dir="rtl"] .memory-list-section,
  html[dir="rtl"] .memory-list-section + .memory-list-section {
    padding-inline: 0;
    border-right: 0;
  }
}

@media (max-width: 575px) {
  html[dir="rtl"] .olivia-composer__inner { padding-right: .65rem !important; }
}

@media (prefers-reduced-motion: reduce) {
  html[dir="rtl"] :is(.olivia-nav__link:hover, .olivia-session-row:hover) { transform: none; }
}

/* Anonymous entry pages offer the same native language names as account settings. */
.olivia-language-switcher {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  justify-content: flex-end;
  margin: 1rem auto;
  max-width: 1320px;
  padding-inline: 1rem;
  width: 100%;
}
.olivia-language-switcher .form-select { width: auto; min-width: 9rem; }
.olivia-language-switcher label { font-size: .9rem; }
