:root {
  --language-surface: rgba(255, 255, 255, .96);
  --language-surface-hover: #f1f5f9;
  --language-text: #172033;
  --language-muted: #64748b;
  --language-border: #d7e1ed;
  --language-focus: #2563eb;
  --language-shadow: 0 14px 36px rgba(30, 41, 59, .14);
  --password-tool-surface: #ffffff;
  --password-tool-surface-hover: #eff6ff;
  --password-tool-border: #93c5fd;
  --password-tool-text: #1d4ed8;
  --password-tool-status: #047857;
}

html[data-theme="dark"], html.dark {
  --language-surface: rgba(15, 23, 42, .97);
  --language-surface-hover: #1e293b;
  --language-text: #f8fafc;
  --language-muted: #a8b4c5;
  --language-border: #475569;
  --language-focus: #38bdf8;
  --language-shadow: 0 16px 40px rgba(2, 6, 23, .4);
  --password-tool-surface: rgb(30 41 59 / .72);
  --password-tool-surface-hover: #334155;
  --password-tool-border: rgb(96 165 250 / .65);
  --password-tool-text: #bfdbfe;
  --password-tool-status: #86efac;
}

.catmind-language-switcher {
  position: relative;
  z-index: 70;
  flex: 0 0 auto;
  color: var(--language-text);
  font: 650 .82rem/1.2 system-ui, sans-serif;
}

.catmind-language-trigger {
  display: inline-flex;
  min-width: 7.6rem;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border: 1px solid var(--language-border);
  border-radius: .75rem;
  background: var(--language-surface);
  color: var(--language-text);
  padding: .55rem .7rem;
  box-shadow: 0 4px 14px rgba(30, 41, 59, .07);
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.catmind-language-trigger:hover { background: var(--language-surface-hover); border-color: color-mix(in srgb, var(--language-focus) 45%, var(--language-border)); }
.catmind-language-trigger:focus-visible, .catmind-language-menu button:focus-visible { outline: 3px solid color-mix(in srgb, var(--language-focus) 65%, transparent); outline-offset: 2px; }
.catmind-language-globe { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.catmind-language-chevron { width: .8rem; height: .8rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; transition: transform 160ms ease; }
.catmind-language-trigger[aria-expanded="true"] .catmind-language-chevron { transform: rotate(180deg); }

.catmind-language-menu {
  position: fixed;
  z-index: 90;
  width: 13rem;
  max-height: min(70vh, 36rem);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--language-border);
  border-radius: .9rem;
  background: var(--language-surface);
  padding: .35rem;
  box-shadow: var(--language-shadow);
}
.catmind-language-menu[hidden] { display: none; }
.catmind-language-menu button { display: flex; width: 100%; min-height: 2.75rem; align-items: center; justify-content: space-between; border: 0; border-radius: .6rem; background: transparent; color: var(--language-text); padding: .65rem .75rem; text-align: start; }
.catmind-language-menu button:hover { background: var(--language-surface-hover); }
.catmind-language-menu button.is-current { background: color-mix(in srgb, var(--language-focus) 11%, var(--language-surface)); color: var(--language-focus); font-weight: 800; }
.catmind-language-menu button.is-current span::before { content: "\2713"; margin-inline-end: .5rem; }
.catmind-language-menu small { color: var(--language-muted); font-size: .68rem; font-weight: 800; letter-spacing: .08em; }

.catmind-language-secondary-row, .catmind-language-utility-row { display: flex; width: min(calc(100% - 2rem), 72rem); justify-content: flex-end; margin-inline: auto; padding: .4rem 0 .65rem; }
.catmind-language-utility-row { width: 100%; padding: .75rem 1rem 0; }
.auth-page { position: relative; }
.auth-page .catmind-language-utility-row { position: absolute; top: .75rem; inset-inline-end: .75rem; width: auto; align-items: center; gap: .5rem; padding: 0; }
.auth-page .catmind-language-utility-row > .theme-toggle-corner { position: relative; inset: auto; z-index: 70; margin: 0; }

.catmind-content-language-notice {
  position: relative;
  z-index: 55;
  border-bottom: 1px solid var(--language-border);
  background: var(--language-surface);
  color: var(--language-text);
  padding: .6rem 1rem;
  text-align: center;
  font: 600 .8rem/1.4 system-ui, sans-serif;
}

/* Arabic uses document-level RTL plus logical alignment. Media playback,
   timelines and numeric controls retain their natural LTR direction. */
html[dir="rtl"] body { text-align: start; }
html[dir="rtl"] .catmind-language-trigger,
html[dir="rtl"] .catmind-language-menu,
html[dir="rtl"] input,
html[dir="rtl"] textarea,
html[dir="rtl"] select { text-align: start; }
html[dir="rtl"] input[type="email"],
html[dir="rtl"] input[type="url"],
html[dir="rtl"] input[type="tel"],
html[dir="rtl"] input[type="number"],
html[dir="rtl"] video,
html[dir="rtl"] audio,
html[dir="rtl"] progress,
html[dir="rtl"] [data-direction="ltr"] { direction: ltr; }
html[dir="rtl"] .catmind-language-chevron { transform: scaleX(-1); }
html[dir="rtl"] .catmind-language-trigger[aria-expanded="true"] .catmind-language-chevron { transform: scaleX(-1) rotate(180deg); }

/* Physical legacy utilities are mirrored until their source markup is fully
   converted to Tailwind logical utilities. */
html[dir="rtl"] .ml-auto { margin-left: 0; margin-right: auto; }
html[dir="rtl"] .ml-2 { margin-left: 0; margin-right: .5rem; }
html[dir="rtl"] .ml-3 { margin-left: 0; margin-right: .75rem; }
html[dir="rtl"] .mr-1 { margin-right: 0; margin-left: .25rem; }
html[dir="rtl"] .pl-4 { padding-left: 0; padding-right: 1rem; }
html[dir="rtl"] .pl-5 { padding-left: 0; padding-right: 1.25rem; }
html[dir="rtl"] .pl-3 { padding-left: 0; padding-right: .75rem; }
html[dir="rtl"] .pr-3 { padding-right: 0; padding-left: .75rem; }
html[dir="rtl"] .text-left { text-align: right; }
html[dir="rtl"] .text-right { text-align: left; }
html[dir="rtl"] .article-body ul,
html[dir="rtl"] .article-body ol,
html[dir="rtl"] .faq-answer ol { padding-left: 0; padding-right: 1.35rem; }
html[dir="rtl"] .hub-standard-grid div,
html[dir="rtl"] .faq-index,
html[dir="rtl"] .owner-context,
html[dir="rtl"] .company-address,
html[dir="rtl"] .terms-index,
html[dir="rtl"] .privacy-retention > div,
html[dir="rtl"] .cookies-control-list > div {
  border-left: 0;
  border-right: 2px solid var(--language-border);
  padding-left: 0;
  padding-right: 1rem;
}
html[dir="rtl"] .comparison-table th:first-child,
html[dir="rtl"] .cookies-table th { text-align: right; }
html[dir="rtl"] .hero-trust-row span::before,
html[dir="rtl"] .trial-features li::before,
html[dir="rtl"] .table-check::before { margin-right: 0; margin-left: .5rem; }
html[dir="rtl"] .file\:mr-4::file-selector-button { margin-right: 0; margin-left: 1rem; }

.password-tools {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .55rem;
  margin-top: .55rem;
}
.password-tool-button {
  min-height: 2.5rem;
  border: 1px solid var(--password-tool-border);
  border-radius: .5rem;
  padding: .45rem .75rem;
  color: var(--password-tool-text);
  background: var(--password-tool-surface);
  font: 600 .82rem/1.2 system-ui, sans-serif;
}
.password-tool-button:hover { background: var(--password-tool-surface-hover); color: var(--password-tool-text); }
.password-tool-button:focus-visible { outline: 2px solid rgb(56 189 248); outline-offset: 2px; }
.password-generated-status { flex-basis: 100%; min-height: 1.2em; color: var(--password-tool-status); font-size: .78rem; }

@media (min-width: 1024px) {
  html[dir="rtl"] .lg\:border-l { border-left-width: 0; border-right-width: 1px; }
}

@media (max-width: 640px) {
  .catmind-language-trigger { width: 2.75rem; min-width: 2.75rem; height: 2.75rem; padding: 0; }
  .catmind-language-current, .catmind-language-chevron { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .catmind-language-globe { width: 1.3rem; height: 1.3rem; }
  .catmind-language-menu { position: fixed; top: auto; right: .75rem; bottom: max(.75rem, env(safe-area-inset-bottom)); left: .75rem; width: auto; padding: .55rem; border-radius: 1rem; }
  .catmind-language-menu button { min-height: 3rem; }
  .auth-page { padding-top: 4.25rem !important; }
  html[data-i18n-page="index"] header { padding-inline: .75rem; }
  html[data-i18n-page="index"] header .theme-logo { max-width: 6.8rem; }
  html[data-i18n-page="index"] header .account-actions { gap: .25rem; }
  html[data-i18n-page="index"] header .account-actions > a:first-of-type { display: none; }
  html[data-i18n-page="index"] header .account-actions > a[href="register.html"] { padding: .55rem .65rem; font-size: .78rem; }
}

@media (max-width: 380px) {
  html[data-i18n-page="index"] header .theme-logo { max-width: 6.8rem; }
  html[data-i18n-page="index"] header .account-actions { gap: .25rem; }
  html[data-i18n-page="index"] header .account-actions > a:first-of-type { display: none; }
}
