/*.sso-bg::before {
    background-image: url('../images/Background.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    content: "";
    position: fixed;
    inset: 0;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,var(--bg-opacity-top, 10%)) 0%, rgba(0,0,0,var(--bg-opacity-bottom, 60%)) 100%);
    mask-image: linear-gradient(to bottom, rgba(0,0,0,var(--bg-opacity-top, 10%)) 0%, rgba(0,0,0,var(--bg-opacity-bottom, 60%)) 100%);
    z-index: -1;
    pointer-events: none;
}*/
/*.sso-bg {*/
body.nds-minimal {
    --bg-img: url(../images/uniBg.webp);
    --bg-opacity-top: 10%;
    --bg-opacity-bottom: 60%;
}

body.nds-minimal::before {
    content: "";
    position: fixed;
    inset: 0;
    background: linear-gradient(color-mix(in srgb, var(--background-body) var(--bg-opacity-top, 80%), transparent), color-mix(in srgb, var(--background-body) var(--bg-opacity-bottom, 80%), transparent)), var(--bg-img) center / cover no-repeat;
    z-index: -1;
    pointer-events: none;
}

:root {
    /* Navigation & layout tokens (critical for initial render) */
    --nds-nav-height: 72px;
    --nds-minimal-nav-item-height: 40px;
    --nds-sideMenu-width: 260px;
    --nds-sideMenu-toggle-height: 56px;
    --nds-sideInfo-width: 400px;
    --nds-minimal-nav-bp: 960px;
    --nds-content-MaxWidth: 1280px;
    --nds-viewport-base-padding: 32px;
    --nds-transition-speed: .2;
    --shadow-md: 0px 2px 4px -2px rgba(16, 24, 40, .06), 0px 4px 8px -2px rgba(16, 24, 40, .1);
    --background-white: #fff;
}

/* ===== RESET ===== */
html {
    overflow-x: hidden;
}

body {
    overflow-x: hidden;
}

*,
*::before,
*::after {
    box-sizing: border-box;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    padding: 0;
    margin: 0;
}

/* ===== BASE ===== */
body {
    font-family: 'IBM Plex Sans Arabic', sans-serif;
    background-color: var(--background-body, #f9fafb);
    color: var(--text-default, #161616);
    font-size: var(--nds-text-md-FS, 16px);
    line-height: var(--nds-text-md-LH, 24px);
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
}


/* ===== BODY BACKGROUND IMAGE ===== */
body[style*="--bg-img"]::before {
    content: "";
    position: fixed;
    inset: 0;
    background-image: var(--bg-img);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, var(--bg-opacity-top, 10%)) 0%, rgba(0, 0, 0, var(--bg-opacity-bottom, 60%)) 100%);
    mask-image: linear-gradient(to bottom, rgba(0, 0, 0, var(--bg-opacity-top, 10%)) 0%, rgba(0, 0, 0, var(--bg-opacity-bottom, 60%)) 100%);
    z-index: -1;
    pointer-events: none;
}

body.fullWidth {
    --nds-content-MaxWidth: 100%;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

.nds-main-nav .nds-brand {
    height: var(--nds-nav-height);
    padding: var(--spacing-lg, 12px) 0;
}

.nds-brand-logo {
    height: 100%;
}

.nds-text-icon {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: var(--spacing-xs, 4px);
    border: unset;
    background-color: transparent;
}

/* ===== ICON FONT LOADING ===== */
/* Hide icon pseudo-elements until font loaded (prevents FOUT) */
i.hgi-stroke,
.nds-breadcrumb li:not(:last-child)::after,
.nds-btn:is(.nds-menu-btn, .nds-next, .nds-prev, .nds-up, .nds-down)::after,
:is(.nds-external)::after,
.nds-form-control input[type="checkbox"]::after,
:is(.nds-select, .nds-date-picker) .nds-form-control::after,
.nds-step[data-step-state="completed"] .nds-stepper-circle::before {
    opacity: 0;
}

/* ===== TOPBAR & NAV ===== */
.nds-topbar {
    background-color: var(--background-neutral-100, #f3f4f6);
    height: 40px;
    z-index: 1000;
}

.nds-topbar>*,
#nds-digitalStamp {
    display: none;
}

.nds-main-nav {
    position: sticky;
    top: 0;
    inset-inline: 0;
    background-color: var(--nds-nav-background-color, #fff);
    height: var(--nds-nav-height, 72px);
    box-shadow: var(--shadow-md);
    z-index: 1000;
}

/* ===== CLS PREVENTION ===== */
/* Hide content until JS hydrates, but reserve layout space */
.nds-hero-section :is(.nds-section-wrapper, .nds-section-head, .nds-section-content),
.nds-content-layout {
    visibility: hidden;
}

[hidden]:is(.nds-tabs, .nds-drawer, .nds-swiper, .nds-breadcrumb-nav, .nds-sideInfo, .nds-user-feedback, .nds-footer) {
    display: block;
    visibility: hidden;
    overflow-x: hidden;
    max-width: 100%;
}

#nds-sharePage {
    display: none;
}

/* ===== CARD (CLS) ===== */
.nds-card {
    width: var(--card-width, 100%);
    max-width: var(--card-width, 100%);
    position: relative;
}

/* ===== LOGIN CARD WIDTH ===== */
.registration-card {
    width: 200px;
    max-width: 400px;
}

.nds-card:not([hidden]):has([class*='nds-card-']) {
    display: flex;
    flex-direction: column;
    gap: var(--card-gap, var(--spacing-3xl, 24px));
}

.nds-card :not([hidden]):is(.nds-card-header, .nds-card-content, .nds-card-text, .nds-card-meta),
.nds-card-form:not([hidden]) {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.nds-card .nds-card-header {
    gap: var(--card-gap, var(--spacing-3xl, 24px));
}

.nds-card .nds-card-header:is(:has(.nds-close), .nds-row) {
    flex-direction: row;
    justify-content: space-between;
}

.nds-card .nds-card-content,
.nds-card-form {
    gap: var(--card-gap, var(--spacing-3xl, 24px));
    flex: 1;
}

.nds-card .nds-card-actions:not([hidden]) {
    display: flex;
    width: 100%;
    margin-top: auto;
}


.nds-feedback-icon {
    display: inline-flex;
    width: 40px;
    height: 40px;
}

nds-alert[data-status="error"] .nds-feedback-icon i {
    color: var(--featuredicons-icon-error, #dc2626);
}

/* ===== BREADCRUMB ===== */
.nds-breadcrumb,
.nds-breadcrumb li {
    display: flex;
}

.nds-breadcrumb li::after {
    content: '';
    min-width: 24px;
}

/* ===== HERO SECTION ===== */
.nds-hero-section {
    width: 100%;
    background-color: var(--background-sa-flag, #074c30);
    position: relative;
    background-position: 50% 50%;
    --section-padding-block: 0;
    max-height: 550px;
}

.nds-hero-section:not(.sub) {
    overflow: hidden;
    aspect-ratio: 16 / 9;
    height: 60svh;
    min-height: 400px;
}

/* Hero image & overlay */
.nds-hero-image {
    width: 100%;
    height: 100%;
}

.nds-hero-image-wrapper::before {
    --_overlay: var(--overlay, 0.20);
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(9, 42, 30, var(--_overlay)) 0%, rgba(9, 42, 30, var(--_overlay)) 100%);
    pointer-events: none;
}

/* Sub hero (breadcrumb bar) — fallback */
.nds-hero-section.sub {
    --section-padding-block: var(--spacing-2xl, 20px);
    background-image: linear-gradient(90deg,
            transparent 0%,
            var(--background-brand-light, #f3fcf6) 70%),
        var(--hero_image);
    background-position-x: left;
    background-size: cover;
    background-repeat: no-repeat;
    background-color: var(--background-brand-light, #f3fcf6);
    height: fit-content;
    min-height: 100px;
    box-shadow: inset 0px -2px 4px rgba(0, 0, 0, 0.05) !important;
    border-radius: 0 !important;
}

html[dir="ltr"] .nds-hero-section.sub {
    background-image: linear-gradient(270deg,
            transparent 0%,
            var(--background-brand-light, #f3fcf6) 70%),
        var(--hero_image);
}

/* Sub hero — progressive enhancement with color-mix */
@supports (background: color-mix(in srgb, #000 0%, transparent)) {
    .nds-hero-section.sub {
        background-image: linear-gradient(90deg,
                color-mix(in srgb, var(--background-brand-light, #f3fcf6) 0%, transparent) 0%,
                color-mix(in srgb, var(--background-brand-light, #f3fcf6) 100%, transparent) 70%),
            var(--hero_image);
    }

    html[dir="ltr"] .nds-hero-section.sub {
        background-image: linear-gradient(270deg,
                color-mix(in srgb, var(--background-brand-light, #f3fcf6) 0%, transparent) 0%,
                color-mix(in srgb, var(--background-brand-light, #f3fcf6) 100%, transparent) 70%),
            var(--hero_image);
    }
}

.nds-hero-section.sub .nds-hero-image-wrapper {
    display: none;
}

.nds-hero-section.sub.flat {
    background: #fff !important;
    box-shadow: unset !important;
}

/* ===== HERO SWIPER ===== */
.nds-swiper.nds-hero {
    width: 100%;
    height: 100%;
    position: relative;
}

.nds-swiper.nds-hero .nds-swiper-slide {
    position: relative;
    background-size: cover;
    background-position: center;
    color: var(--text-oncolor-primary, #fff);
    overflow: hidden;
    height: 100%;
    width: 100%;
}

.nds-swiper-wrapper {
    height: 100%;
    display: flex;
}

.nds-swiper.nds-hero :is(.nds-section-title, .nds-section-description) {
    color: var(--text-oncolor-primary, #fff);
}

@media (max-width: 768px) {
    .nds-hero-section:not(.sub) .nds-section-content .nds-section-title::before {
        width: 80vw;
    }
}

.registration-card {
    --card-width: 400px;
}

.captcha-input-control {
    flex: 1;
}

.no-login-card {
    --card-width: 400px;
    max-width: var(--card-width, 400px);
}

.nds-alert-description ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

#LoggedOutAlert .nds-alert-content {
    flex-direction: column;
}

.nds-alert-description ul li {
    padding: 0;
    margin: 0;
}

[dir="rtl"] .nds-center .nds-card-title,
[dir="rtl"] .nds-center .nds-card-description {
    text-align: center;
}

[dir="rtl"] .nds-alert-description,
[dir="rtl"] .nds-alert-title,
[dir="rtl"] .nds-card-description,
[dir="rtl"] .nds-card-title,
[dir="rtl"] .nds-form-header label,
[dir="rtl"] .nds-form-header .label,
[dir="rtl"] .nds-feedback-message,
[dir="rtl"] .nds-divider-text,
[dir="rtl"] .nds-feedback.nds-outline,
[dir="rtl"] .forgot-data-link,
[dir="rtl"] .nds-card-actions .label,
[dir="rtl"] .nds-btn .label {
    text-align: right;
    direction: rtl;
}

.navbar-blue-bg {
    background: #206bc4ed;
}

/**
Navbar blue
 */
.iu-header {
    background-image: url("../images/header-bg.jpg");
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% 232px;
}

.page-header-welcome {
    padding: 6rem var(--tblr-gutter-x, 1.5rem) 4rem var(--tblr-gutter-x, 1.5rem);
    background: #206bc4;
    position: relative;
    overflow: hidden;
    color: #fff;
    background-size: cover;
    background-position: 50%;
}

.page-header-welcome-h .page-header-welcome {
    padding: 8rem 0 6rem 0;
}

.iu-header .page-header-welcome {
    background: transparent;
}

.background-image {
    position: fixed;
    background: url(../images/background.svg);
    top: 0;
    width: 100%;
    height: 100%;
    background-repeat: no-repeat, no-repeat;
    background-position: center center, center center;
    background-size: cover, cover;
    -webkit-animation: fadeIn 1s;
    animation: fadeIn 1s;
    overflow: scroll;
}

.theme-dark .background-image {
    background: none;
}

/*.modal {
    margin-top: 230px;
}*/
.svg_icons {
    transform: scale(1.8);
}

/* arabic */
@font-face {
    font-family: 'Readex Pro';
    font-style: normal;
    font-weight: 400;
    src: url(../fonts/readexpro_ar.woff2) format('woff2');
    unicode-range: U+0600-06FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE80-FEFC;
}

/* latin-ext */
@font-face {
    font-family: 'Readex Pro';
    font-style: normal;
    font-weight: 400;
    src: url(../fonts/readexpro_latin_ext.woff2) format('woff2');
    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* latin */
@font-face {
    font-family: 'Readex Pro';
    font-style: normal;
    font-weight: 400;
    src: url(../fonts/readexpro_latin.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

body.NIC {
    background-image: url('../images/Background.png');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    position: relative;
    font-family: "Readex Pro";
    font-size: 14px;
    line-height: 1.5rem;
    background-attachment: fixed;
    min-height: 800px;
}

body.NIC.rtls {
    direction: rtl;
}


.vertical-center {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    -ms-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    min-width: 90%;
}

.NIC .middle-box.loginscreen {
    background-color: #fff;
    width: 100%;
    max-width: 500px;
    margin: auto;
    padding: 25px;
    border-radius: 25px;
}

.box-head {
    border-bottom: 1px solid #e0e0e0;
}

.nafath-title {
    font-size: 1.3rem;
    font-weight: 400;
    color: #282828;
    padding-bottom: 10px;
}

.nafath-welcome {
    font-size: 1.1rem;
    font-weight: 400;
}

.nafath-desc {
    font-size: 0.9rem;
    font-weight: 400;
}

.NIC .btn {
    font-size: 1.2rem;
}

.nafath-multi {
    font-size: 0.9rem;
    white-space: nowrap;
}

.nafath-multi .user_name {
    font-size: 0.8rem;
    color: black;
}

.nafath-multi .user_desc {
    font-size: 0.7rem;
    color: #767676;
}

.NIC .nafath-multi .btn {
    font-size: 0.9rem;
}

@media (max-width: 768px) {

    .vertical-center {
        margin: 0;
        position: absolute;
        top: 50px;
        left: 50%;
        -ms-transform: translate(-50%, 0);
        transform: translate(-50%, 0);
        max-width: 90%;
    }
}

.float-end {
    float: right;
}


.link-secondary {
    cursor: pointer;
}

.modal {
    padding: 0 !important;
}

.modal-title {
    margin-top: 0;
}

.modal-content {
    background-clip: padding-box;
    background-color: #fff;
    border: 1px solid rgba(0, 0, 0, 0);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
    padding: 16px;
}

.otp-input {
    font-size: 23px !important;
    text-align: center;
    display: block;
    width: 60px;
    height: 60px;
    border-radius: 4px;
}