/* Application-owned localization typography. */
html[lang="en"] body { font-family: "Inter", system-ui, sans-serif; }
html[lang="hi"] body { font-family: "Noto Sans Devanagari", "Nirmala UI", sans-serif; }
html[lang="bn"] body { font-family: "Noto Sans Bengali", "Nirmala UI", sans-serif; }
html[lang="ar"] body { font-family: "Noto Sans Arabic", "Segoe UI", Tahoma, sans-serif; }

[dir="rtl"] .ltr-content,
[dir="rtl"] code,
[dir="rtl"] pre,
[dir="rtl"] input[type="email"],
[dir="rtl"] input[type="url"] {
    direction: ltr;
    text-align: left;
}

/* The deskapp vendor styles ship `.dropdown-menu { display: none !important }`
   but the matching `.dropdown-menu.show { display: block }` rule has no
   `!important` — so the hide always wins and NO Bootstrap dropdown can ever
   open (header menus, media library cards, etc.). Restore the intended
   behavior so the admin's dropdowns actually display. */
.dropdown-menu.show {
    display: block !important;
}

/* Live index search loading indicator (shared/live-index-search.js). */
.live-search-loading-row td {
    text-align: center;
    padding: 28px 16px;
    color: var(--app-text-muted, #8892a6);
    font-size: 13px;
}

.live-search-spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    margin-right: 8px;
    vertical-align: -3px;
    border: 2px solid color-mix(in srgb, var(--app-primary, #1b00ff) 25%, transparent);
    border-top-color: var(--app-primary, #1b00ff);
    border-radius: 50%;
    animation: live-search-spin 0.7s linear infinite;
}

[dir="rtl"] .live-search-spinner {
    margin-right: 0;
    margin-left: 8px;
}

@keyframes live-search-spin {
    to {
        transform: rotate(360deg);
    }
}
