/* Shared language controls and direction-specific adaptations. */
.language-switcher { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.language-switcher label { font-size: 12px; color: var(--text-muted); }
.language-switcher .language-selector-icon { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 24px; height: 24px; margin: 0; cursor: pointer; color: var(--text-muted, currentColor); }
.language-selector-icon svg { display: block; }
.language-selector-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.language-switcher select { width: auto; min-width: 90px; padding: 7px; color: #f5f7fb; background: #0f1d33; border: 1px solid #465367; border-radius: 8px; font: inherit; font-size: 12px; }
.language-switcher button { padding: 7px 10px; color: var(--gold); }
body.auth-door .app-header { display: flex; position: static; justify-content: flex-end; background: transparent; border: 0; padding-block: 12px; }
body.auth-door .app-header > :not(.language-switcher) { display: none; }
@font-face { font-family: 'Noto Sans Arabic'; src: url('../fonts/NotoSansArabic.ttf') format('truetype'); font-display: swap; }
@font-face { font-family: 'Noto Sans SC'; src: url('../fonts/NotoSansSC.woff') format('woff'); font-display: swap; }
html:lang(zh), html:lang(zh) body { --font: 'Noto Sans SC', 'Microsoft YaHei', 'PingFang SC', sans-serif; }
html:lang(zh) body { font-family: var(--font); }
html:lang(zh) :is(h1,h2,h3,h4,button,label,.eyebrow,.chip,.role-tag,.product,.slogan,.page-title) { letter-spacing: normal; text-transform: none; }
html[dir='rtl'] { --font: 'Noto Sans Arabic', 'Segoe UI', Tahoma, sans-serif; }
html[dir='rtl'] body { font-family: var(--font); }
html[dir='rtl'] :is(h1,h2,h3,h4,button,label,.eyebrow,.chip,.role-tag,.product,.slogan,.page-title) { letter-spacing: normal; text-transform: none; }
html[dir='rtl'] :is(.arrow,.department-arrow) { display: inline-block; transform: scaleX(-1); }
html[dir='rtl'] .login-card:hover .lc-cta .arrow,
html[dir='rtl'] .role-card:hover .role-cta .arrow { transform: scaleX(-1) translateX(4px); }
html[dir='rtl'] .guide-note { border-radius: 10px 0 0 10px; }
html[dir='rtl'] .lc-features li::before { transform: scaleX(-1); }
/* Credentials, identifiers, canvas coordinates, and QR artwork retain their order. */
input:is([type='email'],[type='url'],[type='tel'],[type='number'],[type='date'],[type='password']),
input[name='username'], input[autocomplete='one-time-code'], .otp-manual-key,
code, .guest-signature-pad, .signature-pad, .access-card-pin { direction: ltr; unicode-bidi: isolate; }
input[type='text'], textarea { unicode-bidi: plaintext; }
@media (max-width: 760px) {
  .app-header { flex-wrap: wrap; }
  .language-switcher { margin-inline-start: auto; }
  .language-switcher label:not(.language-selector-icon) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
}
@media print { .language-switcher { display: none; } }
