/* One compact, direction-independent language control across every page shell. */
.language-selector {
    position: relative;
    display: inline-flex;
    flex: 0 0 auto;
    width: max-content;
    max-width: 100%;
    align-items: center;
    gap: .4rem;
    margin: 0;
    padding: .25rem;
    border: 1px solid #dbe3ef;
    border-radius: .875rem;
    background: #f3f6fb;
    color: #334155;
    direction: ltr;
    font-size: .8125rem;
    line-height: 1.4;
    isolation: isolate;
}

.language-selector__icon {
    width: 1.1rem;
    height: 1.1rem;
    flex: 0 0 auto;
    margin-inline-start: .45rem;
    color: #0b3d91;
}

.language-selector__options {
    display: inline-flex;
    align-items: center;
    gap: .2rem;
}

.language-selector .language-selector__button {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 4rem;
    min-height: 2.75rem;
    padding: .4rem .7rem;
    border: 0;
    border-radius: .625rem;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
    opacity: 1;
    cursor: pointer;
    transition: background-color 120ms ease-out, color 120ms ease-out;
}

.language-selector .language-selector__button[aria-pressed="true"] {
    background: #0b3d91;
    color: #fff;
    cursor: default;
}

.language-selector .language-selector__button:not(:disabled):hover {
    background: #e2eaf6;
    color: #082a5e;
}

.language-selector .language-selector__button:focus-visible {
    outline: 2px solid #0b3d91;
    outline-offset: 2px;
}

.language-selector[aria-busy="true"] {
    cursor: progress;
}

.language-selector[aria-busy="true"] .language-selector__button {
    pointer-events: none;
    cursor: progress;
}

.language-selector[aria-busy="true"] .language-selector__icon {
    animation: language-switch-pulse 800ms ease-in-out infinite alternate;
}

.language-selector__error:not([hidden]) {
    box-sizing: border-box;
    position: absolute;
    inset-block-start: calc(100% + .5rem);
    inset-inline-end: 0;
    z-index: 2;
    width: 100%;
    max-width: min(18rem, calc(100vw - 2rem));
    padding: .65rem .8rem;
    border: 1px solid #e5b5b5;
    border-radius: .625rem;
    background: #fff5f5;
    color: #991b1b;
    text-align: start;
    font-weight: 600;
    white-space: normal;
}

.portal-language-switch {
    position: fixed;
    inset-block-end: max(1rem, env(safe-area-inset-bottom));
    inset-inline-end: max(1rem, env(safe-area-inset-right));
    z-index: 45;
}

.portal-language-switch:not(.portal-language-switch--inline) .language-selector__error {
    inset-block-start: auto;
    inset-block-end: calc(100% + .5rem);
}

.portal-language-switch--inline {
    position: static;
    margin-inline-start: auto;
    flex: 0 0 auto;
    z-index: auto;
}

:where(.has-language-switch) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
}

.public-nav:has(> .language-selector),
.academy-home .topnav .nav-inner:has(> .language-selector) {
    height: auto;
    flex-wrap: wrap;
    padding-block: .6rem;
}

@keyframes language-switch-pulse {
    to { opacity: .4; }
}

@media (prefers-reduced-motion: reduce) {
    .language-selector .language-selector__button { transition: none; }
    .language-selector[aria-busy="true"] .language-selector__icon { animation: none; }
}

/* Restrict direction changes to the English document, retaining explicit content directions. */
html[dir="ltr"],
html[dir="ltr"] body {
    direction: ltr;
}

html[dir="ltr"] :is(.public-nav, .public-nav .nav-actions, .public-nav .brand,
    .public-nav .brand-logos-link, .public-nav .public-nav-menu,
    .topnav .nav-inner, .topnav .nav-links, .topnav .toolbar, .topnav .brand,
    .topnav .brand-logos-link, .topnav .topnav-menu,
    .diploma-manager-page, .diploma-manager-page .card-title-row,
    .diploma-manager-page .toolbar, .diploma-manager-page .diploma-meta,
    .diploma-manager-page .diploma-actions, .diploma-manager-page .pagination-bar,
    .reference-entry-form .reference-file-input, .diploma-modal-box,
    .instructor-modal, .swal2-container, .academy-swal-backdrop,
    .academy-home .academy-home-program-card, .es-pdf-stage, .es-date-range) {
    direction: ltr;
}

html[dir="ltr"] :is(.diploma-manager-page, .academy-home .academy-home-program-card) {
    text-align: start;
}

html[dir="ltr"] .payment-detail-list dt,
html[dir="ltr"] .payment-detail-list dd:not([dir]):not(.english-identifier) {
    direction: ltr;
    text-align: start;
}

html[dir="ltr"] :is(.validation-summary, .validation-summary-card).validation-summary-errors::before {
    content: "Alert";
}

html[dir="ltr"] .sidebar {
    right: auto;
    left: 0;
    border-left: 0;
    border-right: 1px solid #e5e7eb;
}

html[dir="ltr"] body.dashboard-body > .dashboard {
    margin-right: 0;
    margin-left: 256px;
}

html[dir="ltr"] .main {
    margin-right: 0;
    margin-left: 256px;
}

html[dir="ltr"] .instructor-v12 .main {
    margin-inline: 0;
}

html[dir="ltr"] :is(.table th, .inst-table th, .v8-table th, .v9-table th,
    .v11-table th, .v11-table td, .quick-actions button, .message-list button,
    .v11-chat-list button, .v11-cert-side button:not(.v8-btn), .kanban button,
    .quiz-option, .academy-filter-toggle, .dashboard > .main > .topbar .page-title,
    .dashboard > .main > .topbar .topbar-title) {
    text-align: start;
}

html[dir="ltr"] :is(.reference-search input, .catalog-search-row input) {
    text-align: start;
}

html[dir="ltr"] :is(.table, .inst-table, .v8-table, .v9-table, .v11-table) {
    direction: ltr;
}

html[dir="ltr"] :is(.table, .v8-table) td:first-child {
    border-right: 0;
    border-left: 1px solid #e5e7eb;
}

html[dir="ltr"] :is(.table, .v8-table) td:last-child {
    border-left: 0;
    border-right: 1px solid #e5e7eb;
}

html[dir="ltr"] .notice-list {
    padding-right: 0;
    padding-left: 18px;
}

html[dir="ltr"] .timeline {
    margin-right: 0;
    margin-left: 12px;
    padding-right: 0;
    padding-left: 22px;
    border-right: 0;
    border-left: 2px dashed #e5e7eb;
}

html[dir="ltr"] .timeline .event::before {
    right: auto;
    left: -30px;
}

html[dir="ltr"] .drawer-panel {
    left: auto;
    right: 0;
}

html[dir="ltr"] .dialog button[data-dialog-close] {
    left: auto;
    right: 14px;
}

html[dir="ltr"] :is(.course-badges, .student-v8 .student-program-card .course-badges) {
    right: auto;
    left: .85rem;
}

html[dir="ltr"] .course-discount {
    left: auto;
    right: 12px;
}

html[dir="ltr"] .course-thumb-v12 .inst-badge {
    right: auto;
    left: .75rem;
}

html[dir="ltr"] .msg-threads .inst-list {
    padding-left: 0;
    padding-right: .25rem;
}

html[dir="ltr"] .instructor-v12 .side-nav a:hover {
    transform: translateX(2px);
}

html[dir="ltr"] .quiz-option:hover {
    transform: translateX(3px);
}

html[dir="ltr"] :is(.saudi-riyal-amount, .saudi-riyal-currency) {
    direction: ltr;
}

html[dir="ltr"] .attendance-table tr.attendance-student-row .english-identifier {
    direction: ltr;
}

html[dir="ltr"] :is(.session-list .soon, .session-card.live, .live-card.live-now) {
    border-right-width: 1px;
    border-left: 4px solid #ef4444;
}

html[dir="ltr"] .v9-semester-title {
    border-right: 0;
    border-left: 4px solid #0b3d91;
}

html[dir="ltr"] :is(.btn, .inst-btn, .v8-btn, .toolbar, .topbar, .nav-actions) {
    min-width: 0;
}

html[dir="ltr"] :is(.page-header h1, .inst-page-head h1, .page-title h1) {
    overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
    html[dir="ltr"] .sidebar {
        transform: translateX(-100%) !important;
    }

    html[dir="ltr"] body.sidebar-open .sidebar,
    html[dir="ltr"] .sidebar.open {
        transform: translateX(0) !important;
    }

    html[dir="ltr"] :is(.main, body.dashboard-body > .dashboard) {
        margin-inline: 0 !important;
    }

    html[dir="ltr"] body > .portal-sidebar-toggle {
        left: auto;
        right: max(.8rem, env(safe-area-inset-right));
    }
}

@media (max-width: 768px) {
    html[dir="ltr"] :is(.public-nav .public-nav-menu, .topnav .topnav-menu,
        .academy-home .topnav .topnav-menu) {
        right: auto;
        left: -21rem;
        border-left: 0;
        border-right: 1px solid #e5e7eb;
    }

    html[dir="ltr"] :is(.public-nav .public-nav-menu, .topnav .topnav-menu,
        .academy-home .topnav .topnav-menu):is(.is-open, [data-mobile-menu-open="true"]) {
        right: auto !important;
        left: 0 !important;
    }

    .academy-home .topnav .nav-inner:has(> .language-selector) {
        grid-template-areas: "logos toggle brand" "language language language" "menu menu menu";
    }

    .academy-home .topnav .nav-inner > .language-selector {
        grid-area: language;
        justify-self: end;
    }

    .portal-actions-toolbar .language-selector {
        margin-inline-end: auto;
    }
}

@media print {
    .language-selector,
    .portal-language-switch {
        display: none !important;
    }

    html[dir="ltr"] :is(.main, body.dashboard-body > .dashboard) {
        margin-inline: 0 !important;
    }
}
