:root {
    --app-bg: #f3f6fb;
    --app-bg-soft: #ffffff;
    --surface: #ffffff;
    --surface-2: #f8fbff;
    --text-main: #112036;
    --text-muted: #61748b;
    --border: #081021;
    --primary: #1f4a6a;
    --primary-2: #2c5f7f;
    --success: #16a34a;
    --shadow-lg: 0 20px 48px rgba(11, 31, 58, 0.12);
    --shadow-md: 0 10px 24px rgba(12, 33, 61, 0.1);
}

html[data-theme="dark"] {
    --app-bg: #0b1220;
    --app-bg-soft: #10192d;
    --surface: #121d33;
    --surface-2: #15233d;
    --text-main: #e9f0fb;
    --text-muted: #a7bbd5;
    --border: #25385a;
    --primary: #7fa6c1;
    --primary-2: #5f87a2;
    --success: #4ade80;
    --shadow-lg: 0 24px 60px rgba(0, 0, 0, 0.45);
    --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.35);
}

body {
    color: var(--text-main);
    background: radial-gradient(1200px 500px at 100% -10%, rgba(31, 41, 55, 0.12), transparent 55%),
                radial-gradient(900px 400px at 0% 0%, rgba(71, 85, 105, 0.1), transparent 50%),
                var(--app-bg);
    transition: background-color .25s ease, color .25s ease;
    position: relative;
    min-height: 100vh;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.88), rgba(255, 255, 255, 0.88)),
        url("../images/bg.png");
    background-repeat: repeat;
    background-size: auto, 620px 620px;
    opacity: 1;
}

/* Unify exam cards image area in /exams and home popular exams */
#examsGrid .exam-image,
#popularExamsGrid .exam-image {
    position: relative;
    height: 220px;
    overflow: hidden;
}

#examsGrid .exam-image img,
#popularExamsGrid .exam-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

@media (max-width: 767.98px) {
    #examsGrid .exam-image,
    #popularExamsGrid .exam-image {
        height: 200px;
    }
}

html[data-theme="dark"] body::before {
    background-image:
        linear-gradient(rgba(11, 18, 32, 0.9), rgba(11, 18, 32, 0.9)),
        url("../images/bg.png");
    background-size: auto, 620px 620px;
    filter: invert(1) contrast(0.9);
    opacity: 0.2;
}

.bg-man-body {
    background: transparent;
}

.header {
    background: transparent !important;
    border-bottom: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin-bottom: 0;
    padding-top: 8px;
}

.hero-banner-slot {
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 0;
    padding-bottom: 0;
}

.navbar {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    min-width: 0 !important;
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.navbar.bg-man-blue {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    min-height: 0;
}

html[data-theme="dark"] .navbar.bg-man-blue {
    background: transparent !important;
    border: 0 !important;
}

.header .navbar > .container {
    background: linear-gradient(120deg, #ffffff, #f7f9fc) !important;
    border: 1px solid #d7e0ea;
    border-radius: 14px;
    box-shadow: var(--shadow-md);
    padding: .45rem .85rem;
    min-height: 62px;
}

.navbar-collapse {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: .35rem;
    min-width: 0;
}

.navbar-collapse > .navbar-nav {
    min-width: 0;
}

.navbar-collapse > .navbar-nav.me-auto {
    flex: 1 1 auto;
    flex-wrap: nowrap;
}

.navbar-collapse > .navbar-nav:last-child {
    flex: 0 0 auto;
    align-items: center;
    gap: .1rem;
}

.navbar .nav-item {
    min-width: 0;
}

html[data-theme="dark"] .header .navbar > .container {
    background: linear-gradient(120deg, #0f172a, #1f2937) !important;
    border: 1px solid rgba(255, 255, 255, 0.18);
}

.navbar .nav-link {
    color: #1f2f44 !important;
    font-weight: 600;
    border-radius: 10px;
    padding: .5rem .8rem !important;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    line-height: 1.2;
}

.navbar .nav-link:hover,
.navbar .nav-link:focus {
    background: rgba(31, 47, 68, 0.08);
}

html[data-theme="dark"] .navbar .nav-link {
    color: rgba(255, 255, 255, 0.95) !important;
}

html[data-theme="dark"] .navbar .nav-link:hover,
html[data-theme="dark"] .navbar .nav-link:focus {
    background: rgba(255, 255, 255, 0.15);
}

.navbar.bg-man-blue img {
    height: 52px !important;
    width: auto;
    margin-left: 10px !important;
}

.nav-short-label {
    display: none;
}

@media (max-width: 1699.98px) {
    .navbar .nav-link {
        font-size: .9rem;
        padding: .42rem .5rem !important;
    }

    .nav-long-label {
        display: none;
    }

    .nav-short-label {
        display: inline;
    }

    .navbar.bg-man-blue img {
        height: 48px !important;
    }

    .navbar-collapse > .navbar-nav:last-child .nav-link {
        padding-inline: .4rem !important;
    }
}

@media (max-width: 1399.98px) {
    .navbar .nav-link {
        font-size: .86rem;
        padding: .38rem .42rem !important;
    }

    .header .navbar > .container {
        padding: .38rem .65rem;
    }

    .navbar-collapse {
        gap: .2rem;
    }

    .navbar-collapse > .navbar-nav:last-child .nav-link {
        padding-inline: .32rem !important;
    }
}

@media (max-width: 1199.98px) {
    .header .navbar > .container {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        row-gap: .35rem;
        padding: .45rem .65rem;
    }

    .navbar.bg-man-blue img {
        order: 2;
        height: 46px !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .navbar-toggler {
        order: 1;
        border: 1px solid #0d1e35 !important;
        background: #ffffff !important;
        border-radius: 10px;
        width: 42px;
        height: 42px;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    html[data-theme="dark"] .navbar-toggler {
        background: #0f1d35 !important;
        border-color: #2f4569 !important;
    }

    .navbar-toggler:focus {
        box-shadow: 0 0 0 .16rem rgba(31, 74, 106, .2);
    }

    #navbarNav {
        order: 3;
        flex-basis: 100%;
    }

    .navbar-collapse {
        display: none !important;
        min-width: 100%;
        background: linear-gradient(145deg, #f8fbff, #eef4fb);
        border: 1px solid #d4deea;
        border-radius: 12px;
        padding: .55rem;
        margin-top: .2rem;
    }

    .navbar-collapse.show,
    .navbar-collapse.collapsing {
        display: block !important;
    }

    html[data-theme="dark"] .navbar-collapse {
        background: linear-gradient(145deg, #102039, #152a49);
        border-color: #2d4568;
    }

    .navbar-collapse > .navbar-nav {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .3rem .4rem;
        align-items: stretch;
    }

    .navbar-collapse > .navbar-nav.me-auto {
        margin: 0 !important;
    }

    .navbar-collapse > .navbar-nav:last-child {
        margin-top: .45rem;
        padding-top: .45rem;
        border-top: 1px solid rgba(16, 33, 56, 0.12);
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .3rem .4rem;
    }

    html[data-theme="dark"] .navbar-collapse > .navbar-nav:last-child {
        border-top-color: rgba(187, 209, 240, 0.2);
    }

    .navbar .nav-item {
        min-width: 0;
    }

    .navbar .nav-link {
        width: 100%;
        justify-content: center;
        text-align: center;
        white-space: normal;
        min-height: 42px;
        padding: .5rem .55rem !important;
        border: 1px solid rgba(11, 29, 53, 0.12);
        background: rgba(255, 255, 255, 0.7);
        border-radius: 10px;
    }

    html[data-theme="dark"] .navbar .nav-link {
        background: rgba(12, 27, 49, 0.68);
        border-color: rgba(168, 192, 227, 0.24);
    }

    .navbar .dropdown-toggle {
        overflow: hidden;
        text-overflow: ellipsis;
    }
}

@media (max-width: 1199.98px) and (max-height: 560px) {
    .header .navbar > .container {
        padding: .4rem .55rem;
    }

    .navbar-collapse > .navbar-nav,
    .navbar-collapse > .navbar-nav:last-child {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .navbar .nav-link {
        min-height: 38px;
        font-size: .86rem;
        padding: .38rem .45rem !important;
    }
}

.theme-toggle-btn {
    border: 1px solid #cfd9e5;
    background: #eef3f8;
    color: #1f2f44;
    border-radius: 10px;
    padding: .4rem .65rem;
    line-height: 1;
}

.theme-toggle-btn:hover {
    background: #e4ebf3;
    color: #142235;
}

#themeToggleBtn.theme-toggle-floating {
    position: fixed;
    left: 10px;
    top: 38%;
    transform: translateY(-50%);
    min-width: 46px;
    height: 46px;
    border-radius: 14px;
    border: 1px solid #cfd9e5;
    background: linear-gradient(160deg, #ffffff, #edf3f9);
    color: #10243e;
    box-shadow: 0 8px 18px rgba(7, 17, 33, 0.18);
    z-index: 1100;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .42rem;
    padding: 0 .75rem;
    transition: transform .18s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
}

#themeToggleBtn.theme-toggle-floating:hover {
    transform: translateY(-50%) scale(1.06);
    box-shadow: 0 12px 24px rgba(7, 17, 33, 0.24);
    background: linear-gradient(160deg, #f8fbff, #e8f1fb);
}

#themeToggleBtn .theme-toggle-label {
    font-size: .78rem;
    font-weight: 700;
    white-space: nowrap;
}

html[data-theme="dark"] #themeToggleBtn.theme-toggle-floating {
    border: 1px solid rgba(255, 255, 255, 0.28);
    background: linear-gradient(160deg, #0f1b2f, #14253e);
    color: #f3f7ff;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.45);
}

html[data-theme="dark"] #themeToggleBtn.theme-toggle-floating:hover {
    background: linear-gradient(160deg, #12233a, #193050);
}

@media (max-width: 991.98px) {
    #themeToggleBtn.theme-toggle-floating {
        left: 10px;
        top: auto;
        bottom: 88px;
        transform: none;
        min-width: 42px;
        height: 42px;
        border-radius: 12px;
        padding: 0 .55rem;
        z-index: 1090;
    }

    #themeToggleBtn.theme-toggle-floating:hover {
        transform: scale(1.04);
    }

    #themeToggleBtn .theme-toggle-label {
        display: none;
    }

    .floating-wpp {
        left: 10px !important;
        right: auto !important;
        bottom: 140px !important;
        position: fixed !important;
        z-index: 1110 !important;
    }

    .floating-wpp .floating-wpp-button {
        width: 42px !important;
        height: 42px !important;
        border-radius: 12px !important;
        position: relative !important;
        z-index: 1111 !important;
    }

    .floating-wpp:hover {
        bottom: 142px !important;
    }

    .floating-wpp .floating-wpp-popup.active {
        bottom: 54px;
    }

    html.exam-mode #themeToggleBtn.theme-toggle-floating,
    body.exam-mode #themeToggleBtn.theme-toggle-floating {
        display: none !important;
    }

    html.exam-mode #whatsapp.floating-wpp,
    body.exam-mode #whatsapp.floating-wpp {
        display: none !important;
    }

    html.exam-mode #whatsapp.floating-wpp:hover,
    body.exam-mode #whatsapp.floating-wpp:hover {
        display: none !important;
    }

    html.exam-mode #whatsapp.floating-wpp .floating-wpp-button,
    body.exam-mode #whatsapp.floating-wpp .floating-wpp-button {
        display: none !important;
    }
}

#languageDropdown {
    min-width: 2.1rem;
    justify-content: center;
    text-align: center;
}

.navbar .dropdown-menu {
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow-md);
    background: var(--surface);
}

.dropdown-item {
    color: var(--text-main);
}

.navbar .dropdown-menu .dropdown-item:hover,
.navbar .dropdown-menu .dropdown-item:focus {
    background: #081021 !important;
    color: #ffffff !important;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: var(--surface-2);
    color: var(--text-main);
}

main.container {
    padding-top: 1.2rem !important;
}

.header .container {
    padding-left: calc(var(--bs-gutter-x) * .5);
    padding-right: calc(var(--bs-gutter-x) * .5);
}

.home-modern {
    position: relative;
    isolation: isolate;
}

.home-modern::before,
.home-modern::after {
    content: "";
    position: absolute;
    z-index: -1;
    pointer-events: none;
    filter: blur(36px);
    opacity: .6;
}

.home-modern::before {
    width: 420px;
    height: 420px;
    top: 40px;
    right: -120px;
    background: radial-gradient(circle, rgba(76, 110, 245, 0.18) 0%, rgba(76, 110, 245, 0) 70%);
}

.home-modern::after {
    width: 360px;
    height: 360px;
    bottom: 120px;
    left: -140px;
    background: radial-gradient(circle, rgba(34, 197, 94, 0.16) 0%, rgba(34, 197, 94, 0) 70%);
}

.home-modern section > .container {
    background: linear-gradient(180deg, var(--surface) 0%, var(--surface-2) 100%);
    border: 1px solid var(--border);
    border-radius: 20px;
    box-shadow: var(--shadow-md);
    padding: 1.8rem 1.4rem;
    position: relative;
    overflow: hidden;
}

.home-modern section > .container::before {
    content: "";
    position: absolute;
    top: -55px;
    left: -55px;
    width: 170px;
    height: 170px;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(31, 74, 106, 0.12) 0%, rgba(31, 74, 106, 0) 70%);
}

.home-modern section:last-child > .container {
    padding: 2rem 1.4rem;
}

.brutalism-card:not([class*="bg-"]),
.card:not([class*="bg-"]) {
    border: 1px solid var(--border) !important;
    border-radius: 16px !important;
    box-shadow: var(--shadow-md) !important;
    background: var(--surface) !important;
}

.brutalism-card:hover,
.card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg) !important;
}

.brutalism-card.bg-white,
.brutalism-card.bg-man-light,
.card.bg-white {
    background: var(--surface) !important;
    border: 1px solid var(--border) !important;
    border-radius: 16px !important;
    box-shadow: var(--shadow-md) !important;
    color: var(--text-main) !important;
}

.brutalism-card.bg-primary,
.card.bg-primary {
    background: linear-gradient(135deg, #1f4a6a, #16364e) !important;
    border-color: #315974 !important;
    color: #f8fbff !important;
}

.brutalism-card.bg-success,
.card.bg-success {
    background: linear-gradient(135deg, #15803d, #166534) !important;
    border-color: #2d8f55 !important;
    color: #f5fff8 !important;
}

.brutalism-card.bg-info,
.card.bg-info {
    background: linear-gradient(135deg, #0369a1, #075985) !important;
    border-color: #1f7cab !important;
    color: #f3fbff !important;
}

.brutalism-card.bg-danger,
.card.bg-danger {
    background: linear-gradient(135deg, #b91c1c, #991b1b) !important;
    border-color: #c84848 !important;
    color: #fff6f6 !important;
}

.brutalism-card.bg-warning,
.card.bg-warning {
    background: linear-gradient(135deg, #f59e0b, #d97706) !important;
    border-color: #e39a1f !important;
    color: #1f2937 !important;
}

.brutalism-card.bg-man-blue,
.card.bg-man-blue {
    background: linear-gradient(135deg, #1f2937, #334155) !important;
    border-color: #475569 !important;
    color: #f8fbff !important;
}

.brutalism-card.bg-primary *,
.card.bg-primary *,
.brutalism-card.bg-success *,
.card.bg-success *,
.brutalism-card.bg-info *,
.card.bg-info *,
.brutalism-card.bg-danger *,
.card.bg-danger *,
.brutalism-card.bg-man-blue *,
.card.bg-man-blue * {
    color: inherit !important;
}

.brutalism-card.bg-warning *,
.card.bg-warning * {
    color: inherit !important;
}

.bg-man-light {
    background: var(--surface-2) !important;
    color: var(--text-main);
}

.btn-man-blue,
.btn-primary {
    --bs-btn-bg: var(--primary);
    --bs-btn-border-color: var(--primary);
    --bs-btn-hover-bg: #193f5a;
    --bs-btn-hover-border-color: #193f5a;
    --bs-btn-active-bg: #142f43;
    --bs-btn-active-border-color: #142f43;
    --bs-btn-color: #fff;
    --bs-btn-hover-color: #fff;
    --bs-btn-active-color: #fff;
    border-radius: 12px;
    font-weight: 700;
}

.btn-outline-primary {
    border-radius: 12px;
}

.form-control,
.form-select,
textarea,
input[type="text"],
input[type="email"],
input[type="password"] {
    border: 1px solid var(--border) !important;
    border-radius: 12px !important;
    background: var(--surface) !important;
    color: var(--text-main) !important;
}

.form-control:focus,
.form-select:focus,
textarea:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 .2rem rgba(37, 99, 235, .18) !important;
}

.table {
    color: var(--text-main);
}

.text-muted {
    color: var(--text-muted) !important;
}

main h1, main h2, main h3, main h4, main h5, main h6,
main p, main li, main small, main span {
    color: inherit;
}

.table > :not(caption) > * > * {
    background: var(--surface);
    border-bottom-color: var(--border);
}

.alert {
    border-radius: 14px;
    border: 1px solid var(--border);
}

.pagination .page-link {
    border-radius: 10px;
    margin: 0 .15rem;
    border: 1px solid var(--border);
    color: var(--text-main);
    background: var(--surface);
}

.pagination .page-item.active .page-link {
    background: var(--primary);
    border-color: var(--primary);
}

.footer {
    background: linear-gradient(180deg, #0e1b31, #081021) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

html[data-theme="dark"] .footer {
    background: linear-gradient(180deg, #081224, #050b16) !important;
}

.footer .text-light,
.footer p,
.footer a {
    color: #d4deea !important;
}

html[data-theme="dark"] .theme-toggle-btn {
    border: 1px solid rgba(255, 255, 255, 0.45);
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
}

html[data-theme="dark"] .theme-toggle-btn:hover {
    background: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.mobile-bottom-nav {
    background: var(--surface);
    border-top: 1px solid var(--border);
    box-shadow: 0 -8px 24px rgba(0, 0, 0, 0.12);
}

.mobile-bottom-nav .nav-item {
    color: var(--text-muted);
}

.mobile-bottom-nav .nav-item:hover,
.mobile-bottom-nav .nav-item.active {
    color: var(--primary);
    background-color: rgba(37, 99, 235, 0.1);
}

.mobile-bottom-nav .nav-item.active::before {
    background: var(--primary);
}

html[data-theme="dark"] .mobile-bottom-nav {
    background: var(--surface);
    box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.45);
}

@media (max-width: 991.98px) {
    .header {
        display: none !important;
    }

    .home-modern section > .container {
        border-radius: 16px;
        padding: 1.2rem .95rem;
    }
}
