:root {
    --i18n-surface: #f7faff;
    --i18n-ink: #17324f;
    --i18n-muted: #5f7185;
    --i18n-border: #cddaea;
    --i18n-active: #1f69ad;
    --i18n-active-ink: #f8fbff;
}

html[dir="rtl"] body {
    font-family: "Cairo", "Noto Sans Arabic", sans-serif;
}

[dir="auto"],
.bidi-auto {
    unicode-bidi: plaintext;
}

html[dir="rtl"] input.bidi-auto:placeholder-shown,
html[dir="rtl"] textarea.bidi-auto:placeholder-shown,
html[dir="rtl"] input[dir="auto"]:placeholder-shown,
html[dir="rtl"] textarea[dir="auto"]:placeholder-shown {
    direction: rtl;
    text-align: right;
}

html[dir="rtl"] input.bidi-auto:placeholder-shown::placeholder,
html[dir="rtl"] textarea.bidi-auto:placeholder-shown::placeholder,
html[dir="rtl"] input[dir="auto"]:placeholder-shown::placeholder,
html[dir="rtl"] textarea[dir="auto"]:placeholder-shown::placeholder {
    direction: rtl;
    text-align: right;
}

html[dir="rtl"] .form-text,
html[dir="rtl"] .create-field-hint,
html[dir="rtl"] .tool-field-hint,
html[dir="rtl"] .doc-canvas-hint,
html[dir="rtl"] .cover-canvas-hint {
    text-align: right;
}

.bidi-ltr,
[data-bidi="ltr"] {
    direction: ltr;
    unicode-bidi: isolate;
}

.bidi-rtl,
[data-bidi="rtl"] {
    direction: rtl;
    unicode-bidi: isolate;
}

.language-switcher {
    position: fixed;
    z-index: 1085;
    inset-block-start: 1rem;
    inset-inline-end: 1rem;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.3rem;
    color: var(--i18n-ink);
    background: color-mix(in srgb, var(--i18n-surface) 94%, transparent);
    border: 1px solid var(--i18n-border);
    border-radius: 999px;
    box-shadow: 0 8px 24px rgb(23 50 79 / 14%);
    backdrop-filter: blur(10px);
    font-family: "Inter", "Cairo", sans-serif;
    font-size: 0.78rem;
    line-height: 1;
}

.language-switcher__label {
    padding-inline-start: 0.55rem;
    color: var(--i18n-muted);
    font-weight: 600;
}

.language-switcher__options {
    display: inline-flex;
    align-items: center;
    padding: 0.12rem;
    background: #e9f0f8;
    border-radius: 999px;
}

.language-switcher .language-switcher__option {
    min-block-size: 2rem;
    padding-inline: 0.7rem;
    color: var(--i18n-ink);
    background: transparent;
    border: 0;
    border-radius: 999px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}

.language-switcher .language-switcher__option:hover {
    color: var(--i18n-ink);
    background: rgb(255 255 255 / 72%);
}

.language-switcher .language-switcher__option:focus-visible {
    color: var(--i18n-ink);
    background: transparent;
    outline: 3px solid rgb(31 105 173 / 28%);
    outline-offset: 2px;
}

.language-switcher .language-switcher__option.is-active {
    color: var(--i18n-active-ink);
    background: var(--i18n-active);
    box-shadow: 0 2px 8px rgb(23 50 79 / 18%);
}

.language-switcher--nav {
    position: static;
    margin-inline: 0.75rem;
    color: #17324f;
    box-shadow: none;
    backdrop-filter: none;
}

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

html[dir="rtl"] .bidi-directional {
    display: inline-block;
    transform: scaleX(-1);
}

html[dir="rtl"] .pagination-arrow {
    display: inline-block;
    transform: scaleX(-1);
}

@media (max-width: 767.98px) {
    .language-switcher {
        inset-block-start: 0.6rem;
        inset-inline-end: 0.6rem;
    }

    .language-switcher__label {
        position: absolute;
        inline-size: 1px;
        block-size: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .language-switcher--nav {
        margin: 0.75rem 0;
        inline-size: fit-content;
    }
}

@media (prefers-reduced-motion: reduce) {
    .language-switcher .language-switcher__option {
        transition: none;
    }
}
