/* HelTrack language layer: script fonts, right-to-left adjustments shared by every page,
 * mixed-direction content and the language switcher. Loaded after gj-ui.css (see base.html and
 * auth_base.html). Bootstrap's own components mirror through bootstrap.rtl.min.css; the rules
 * here cover HelTrack's custom chrome. Logos, photos, maps, QR codes and barcodes are never
 * mirrored: only icons whose meaning has a direction (arrows, chevrons, "go"/"exit" glyphs). */

/* ---------- Script fonts (set in partials/_language_head.html for scripts that need one) ---------- */
:root[lang] body { font-family: var(--gj-script-font, var(--bs-body-font-family)); }

/* Cursive and Indic scripts break apart with letter spacing, and have no letter case. */
:root:is([lang="fa"], [lang="fa-AF"], [lang="ar"], [lang="ur"], [lang="hi"], [lang="bn"], [lang="pa"], [lang="th"]) body * {
  letter-spacing: 0 !important;
}
/* Arabic-script and Indic text needs more room above and below the line than Latin text. */
:root:is([lang="fa"], [lang="fa-AF"], [lang="ar"], [lang="ur"], [lang="hi"], [lang="bn"], [lang="pa"], [lang="th"]) body { line-height: 1.65; }
:root[lang="ur"] body { line-height: 1.8; }

/* ---------- Mixed-direction content ---------- */
/* Emails, phone numbers, URLs, codes and identifiers keep left-to-right order inside RTL text. */
[dir="rtl"] :is(input[type="email"], input[type="tel"], input[type="url"], input[type="password"], [data-gj-code-input]) { direction: ltr; text-align: right; }
[dir="rtl"] :is(code, kbd, samp, .gj-ltr) { direction: ltr; unicode-bidi: isolate; }
[dir="rtl"] .gj-usermenu__who span, [dir="rtl"] .gj-set__profile-copy > span { unicode-bidi: plaintext; }

/* ---------- Direction-aware icons ---------- */
[dir="rtl"] :is(.bi-arrow-right, .bi-arrow-left, .bi-chevron-right, .bi-chevron-left, .bi-chevron-double-left, .bi-chevron-double-right,
  .bi-caret-right, .bi-caret-left, .bi-caret-right-fill, .bi-caret-left-fill, .bi-box-arrow-right, .bi-box-arrow-in-right, .bi-box-arrow-left,
  .bi-arrow-up-right, .bi-arrow-bar-right, .bi-arrow-bar-left, .bi-reply, .bi-reply-fill, .bi-send, .bi-send-fill, .bi-arrow-return-left,
  .bi-list-nested, .bi-text-indent-left, .bi-text-indent-right, .bi-skip-forward, .bi-skip-backward)::before {
  display: inline-block;
  transform: scaleX(-1);
}

/* ---------- Language switcher ---------- */
.gj-langmenu { position: relative; }
.gj-langmenu__toggle { position: relative; display: inline-flex; align-items: center; gap: .2rem; }
.gj-langmenu__code {
  position: absolute; inset-block-end: 2px; inset-inline-end: 1px; min-width: 1rem; padding: 0 .18rem;
  color: var(--app-context-dark, var(--theme-brand-dark)); background: var(--theme-surface); border: 1px solid var(--theme-line);
  border-radius: 5px; font-size: .52rem; font-weight: 900; line-height: 1.25; letter-spacing: .02em; pointer-events: none;
}
[data-bs-theme="dark"] .gj-langmenu__code { color: var(--app-context-accent, #8db8ff); }
.gj-langmenu--authbar .gj-langmenu__code { inset-block-end: 3px; inset-inline-end: 2px; }
.gj-langmenu__menu {
  width: min(320px, calc(100vw - 1.5rem)); max-height: min(70vh, 520px); padding: 0; overflow: hidden; display: none;
  color: var(--theme-ink); background: var(--theme-surface); border: 1px solid var(--theme-line); border-radius: var(--gj-radius-md, .85rem);
  box-shadow: 0 2px 4px rgb(16 24 40 / .06), 0 22px 44px -16px rgb(16 24 40 / .3);
}
.gj-langmenu__menu.show { display: flex; flex-direction: column; animation: gj-langmenu-pop .16s cubic-bezier(.2, .8, .2, 1); }
.gj-langmenu__head {
  display: flex; align-items: center; gap: .65rem; padding: .8rem .9rem; border-bottom: 1px solid var(--theme-line);
  background: radial-gradient(70% 140% at 100% 0%, color-mix(in srgb, var(--app-context-accent, #2f6f9f) 14%, transparent), transparent 70%);
}
.gj-langmenu__head-icon {
  display: grid; flex: 0 0 2.1rem; width: 2.1rem; height: 2.1rem; place-items: center; color: #fff; border-radius: 10px;
  background: linear-gradient(135deg, var(--app-context-accent, #2f6f9f), var(--app-context-accent2, #7c3aed));
  box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--app-context-accent, #2f6f9f) 60%, transparent);
}
.gj-langmenu__head strong { display: block; font-size: .86rem; font-weight: 850; }
.gj-langmenu__head small { display: block; color: var(--theme-muted); font-size: .72rem; }
.gj-langmenu__list { display: grid; gap: .15rem; margin: 0; padding: .4rem; overflow-y: auto; list-style: none; }
.gj-langmenu__option {
  display: flex; width: 100%; align-items: center; gap: .6rem; padding: .5rem .6rem; color: var(--theme-ink); text-align: start;
  background: transparent; border: 1px solid transparent; border-radius: .6rem; cursor: pointer; transition: background .14s ease, border-color .14s ease;
}
.gj-langmenu__option:hover { background: color-mix(in srgb, var(--app-context-soft, #e8f1f8) 70%, var(--theme-surface)); }
.gj-langmenu__option:focus-visible { outline: 3px solid color-mix(in srgb, var(--app-context-accent, #2f6f9f) 50%, transparent); outline-offset: 1px; }
.gj-langmenu__option.is-current { background: var(--app-context-soft, #e8f1f8); border-color: color-mix(in srgb, var(--app-context-accent, #2f6f9f) 35%, transparent); }
[data-bs-theme="dark"] .gj-langmenu__option.is-current { background: color-mix(in srgb, var(--app-context-accent, #8db8ff) 16%, #151b22); }
.gj-langmenu__names { display: grid; flex: 1; line-height: 1.3; }
.gj-langmenu__names strong { font-size: .9rem; font-weight: 750; }
.gj-langmenu__names small { color: var(--theme-muted); font-size: .7rem; }
/* Each name keeps its own direction but lines up with the menu's reading edge. */
.gj-langmenu__names > *, .gj-lang__card-copy > * { unicode-bidi: isolate; text-align: start; }
[dir="rtl"] .gj-langmenu__names > *, [dir="rtl"] .gj-lang__card-copy > * { text-align: right; }
.gj-langmenu__badge {
  padding: .1rem .45rem; color: #92400e; background: #fdf3e1; border: 1px solid rgb(194 124 14 / .3); border-radius: 999px;
  font-size: .64rem; font-weight: 850; white-space: nowrap;
}
[data-bs-theme="dark"] .gj-langmenu__badge { color: #f7cf86; background: rgba(245, 196, 108, .15); }
.gj-langmenu__check { color: var(--app-context-dark, var(--theme-brand-dark)); font-size: 1rem; opacity: 0; transform: scale(.6); transition: opacity .14s ease, transform .14s ease; }
[data-bs-theme="dark"] .gj-langmenu__check { color: var(--app-context-accent, #8db8ff); }
.gj-langmenu__option.is-current .gj-langmenu__check { opacity: 1; transform: none; }
.gj-langmenu__note { display: flex; gap: .45rem; margin: 0; padding: .6rem .9rem; color: var(--theme-muted); border-top: 1px solid var(--theme-line); font-size: .72rem; line-height: 1.45; }
html.gj-language-switching body { cursor: progress; }
html.gj-language-switching .gj-langmenu__list { opacity: .6; pointer-events: none; }
.gj-usermenu__meta { margin-inline-start: auto; color: var(--theme-muted); font-size: .74rem; font-weight: 700; }
@keyframes gj-langmenu-pop { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .gj-langmenu__menu.show { animation: none; } }

/* ---------- Right-to-left shell (sidebar, navbar brand block, footer, sign-in bar) ---------- */
[dir="rtl"] .gj-ui .gj-sidebar {
  left: auto; right: -100%;
  border-right: 0 !important; border-left: 1px solid var(--theme-chrome-line) !important;
  box-shadow: -10px 0 34px color-mix(in srgb, var(--app-context-deeper) 28%, transparent);
  transition: right .22s ease, width .22s ease, opacity .22s ease;
}
[dir="rtl"] .gj-ui .gj-sidebar.active { left: auto; right: 0; }
[dir="rtl"] .gj-ui .gj-sidebar__link.active {
  background: linear-gradient(270deg, color-mix(in srgb, var(--gj-chrome-glow) 18%, transparent), color-mix(in srgb, var(--gj-chrome-glow) 3%, transparent)) !important;
}
[dir="rtl"] .gj-ui .gj-sidebar__link.active::before { left: auto; right: -12px; border-radius: 3px 0 0 3px; }
[dir="rtl"] .gj-ui .gj-sidebar.collapsed .gj-sidebar__link.active::before { left: auto; right: -10px; }
@media (min-width: 992px) {
  [dir="rtl"] .gj-ui .gj-sidebar { right: 0; }
  [dir="rtl"] .gj-shell .gj-shell__content { margin-left: 0 !important; margin-right: var(--gj-shell-sidebar-width) !important; transition: margin-right .22s ease, padding .22s ease; }
  [dir="rtl"] .gj-shell:has(.gj-sidebar.collapsed) .gj-shell__content { margin-left: 0 !important; margin-right: var(--gj-shell-sidebar-collapsed) !important; }
  [dir="rtl"] .gj-shell:has(.gj-sidebar) .app-footer { left: 0 !important; right: var(--gj-shell-sidebar-width) !important; }
  [dir="rtl"] .gj-shell:has(.gj-sidebar.collapsed) .app-footer { left: 0 !important; right: var(--gj-shell-sidebar-collapsed) !important; }
  [dir="rtl"] .gj-shell:has(.gj-sidebar) .gj-navbar__lead { border-right: 0; border-left: 1px solid var(--theme-chrome-line); }
  [dir="rtl"] .gj-shell:has(.gj-sidebar) .gj-navbar__lead::before { background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--gj-chrome-glow) 22%, transparent), transparent 60%); }
}
[dir="rtl"] .gj-authbar__indicator { left: auto; right: 4px; }
[dir="rtl"] .gj-authbar__switch[data-active="register"] .gj-authbar__indicator { transform: translateX(-100%); }
