@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
/* ===========================
   GLOBAL
=========================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    font-size:18px;
    scrollbar-width:none;
    -ms-overflow-style:none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar{
    display:none;
}

body{
    font-family: 'Inter', 'Poppins', sans-serif;
    font-size:16px;
    line-height:1.5;
    background:#f3f6fb;
    color:#1f2937;
    min-height:100vh;
    display:flex;
    flex-direction:column;
    scrollbar-width:none;
    -ms-overflow-style:none;
}

button,
input,
select,
textarea{
    font-family:inherit;
}

.navbar{
    height:70px;
    background:#fff;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0 100px;
    border-bottom:1px solid #e2e8f0;
    box-shadow:0 2px 10px rgba(15,23,42,0.04);
    position:sticky;
    top:0;
    z-index:1000;
}

.site-header .navbar{
    font-family: 'Inter', 'Poppins', sans-serif;
    font-size:15px;
}

.nav-logo{
    height:45px;
    object-fit:contain;
}

/* Nav left group (logo + mobile toggle) */
.nav-left{
    display:flex;
    align-items:center;
    gap:8px;
}

.nav-center{
    flex:1;
    display:flex;
    justify-content:center;
}

.nav-links{
    display:flex;
    align-items:center;
    gap:7px;
    background:#f1f5f9;
    padding: 8px 20px;
    border-radius:20px;
}

/* Base style for regular nav links & dropdown toggles */
.nav-links a,
.nav-dropdown-toggle {
    text-decoration:none;
    color:#64748b;
    font-size:14px;
    font-weight:700;
    padding:8px 20px;
    border-radius:20px;
    background: transparent;
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;

    /* Smooth Hover Transition */
    will-change: transform;
    transition: background-color 0.2s ease,
                color 0.2s ease,
                box-shadow 0.2s ease,
                transform 0.2s ease;
}

/* Hover States (Smooth Enlarge + Pill Background) */
.nav-links a:hover,
.nav-dropdown-toggle:hover,
.nav-dropdown:hover .nav-dropdown-toggle {
    background: #ffffff;
    color: #64748b;
    transform: scale(1.05);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

/* Active / Opened States */
.nav-links a.active,
.nav-dropdown-toggle.active,
.nav-dropdown.open .nav-dropdown-toggle,
.nav-dropdown button.active {
    background: #ffffff;
    color: #0E3386;
    padding: 8px 20px;
    border-radius: 20px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
}

/* ====================================
   NAVBAR DROPDOWN (JOB LISTINGS)
==================================== */

.nav-dropdown {
    position: relative;
}

/* Stabilized Toggle Icon */
.nav-dropdown-toggle i {
    font-size: 11px;
    display: inline-block;
    line-height: 1;
    margin: 0;
    padding: 0;
    transition: transform 0.25s ease;
}

.nav-dropdown:hover .nav-dropdown-toggle i,
.nav-dropdown.open .nav-dropdown-toggle i {
    transform: rotate(180deg);
}

/* ====================================
   UNIFIED SMOOTH DROPDOWNS
==================================== */

.nav-dropdown-menu,
.notification-dropdown,
.profile-menu-dropdown {
    position: absolute;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    top: calc(100% + 12px);
    display: block;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);

    transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1),
                transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
                visibility 0.25s linear;
}

/* Invisible Hover Bridge for Job Dropdown */
.nav-dropdown-menu::before {
    content: '';
    position: absolute;
    top: -12px;
    left: 0;
    width: 100%;
    height: 12px;
}

/* Job Dropdown Hover State */
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown.open .nav-dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Notification & Profile Dropdowns: Click ONLY (.open) */
.notification-menu.open .notification-dropdown,
.profile-menu.open .profile-menu-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* Individual Alignments & Widths */
.nav-dropdown-menu {
    left: 0;
    min-width: 210px;
    z-index: 1000;
}

.notification-dropdown {
    right: 0;
    width: 360px;
    max-height: min(70vh, 420px);
    overflow-y: auto;
    overscroll-behavior: contain;
    z-index: 999;
}

.profile-menu-dropdown {
    right: 0;
    width: 190px;
    border: 1px solid #e2e8f0;
    z-index: 9999;
}

/* When opened, slide the dropdown down into view (desktop behavior) */
.notification-menu.open .notification-dropdown,
.profile-menu.open .profile-menu-dropdown {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}

/* Dropdown Menu Item Styling */
.nav-dropdown-menu a {
    display: block;
    padding: 12px 18px;
    color: #0E3386;
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    transition: background-color 0.20s ease, color 0.20s ease, transform 0.20s ease;
}

.nav-dropdown-menu a:hover {
    background: #f8fafc;
    color: #0E3386;
}

/* ===========================
   NAV RIGHT SECTION
=========================== */

.nav-right{
    display:flex;
    align-items:center;
    gap:20px;
    position:relative;
    z-index:1300; /* keep right-side controls above mobile panel */
}

/* Ensure notification and profile controls are visible and aligned */
.nav-right .notification-menu,
.nav-right .profile-menu{
    display:inline-flex;
    align-items:center;
}

/* Allow the navbar to show dropdowns outside its bounds */
.navbar{ overflow: visible; }
.login-btn{
    text-decoration:none;
    background:#0E3386;
    color:white;
    padding:10px 22px;
    border-radius:6px;
    font-weight:600;
    transition: background-color 0.25s ease, transform 0.25s ease;
}

.login-btn:hover{
    background:#0a2563;
    transform: scale(1.04);
}

/* ===========================
   PROFILE DROPDOWN
=========================== */

.profile-menu{
    position:relative;
}

.profile-menu-toggle{
    display:flex;
    align-items:center;
    gap:8px;
    background:none;
    border:none;
    cursor:pointer;
    padding:4px 8px;
    border-radius:999px;
    transition: background-color 0.25s ease, transform 0.25s ease;
}

.profile-menu-toggle:hover {
    background:#f1f5f9;
    transform: scale(1.05);
}

.profile{
    width:40px;
    height:40px;
    border-radius:50%;
    object-fit:cover;
    border:2px solid #0E3386;
}

.profile-menu-toggle i{
    color:#64748b;
    font-size:13px;
}

.profile-menu-dropdown a{
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 18px;
    text-decoration:none;
    color:#334155;
    font-size:14px;
    font-weight:600;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.profile-menu-dropdown a:hover{
    background:#f8fafc;
    color:#64748b;
}

.profile-menu-dropdown i{
    width:18px;
    text-align:center;
}

.logout-link{
    color:#dc2626 !important;
}

.logout-link:hover{
    background:#fef2f2 !important;
    color:#b91c1c !important;
}

/* ==========================
   NOTIFICATIONS
========================== */

.notification-menu{
    position:relative;
    margin-right: -10px;
}

.notification-toggle{
    position:relative;
    border:none;
    background:none;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition: transform 0.25s ease;
}

.notif{
    font-size:22px;
    color:#64748b;
    transition: color 0.25s ease;
}

.notification-toggle:hover {
    transform: scale(1.1);
}

.notification-toggle:hover .notif {
    color:#64748b;
}

.notification-badge{
    position:absolute;
    top:-6px;
    right:-5px;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#dc2626;
    color:white;
    font-size:11px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
}

.notification-header{
    padding:12px 16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-weight:700;
    border-bottom:1px solid #eee;
    background:#f8fafc;
}

.notification-header .mark-all-link{
    font-size:11px;
    color:#0E3386;
    text-decoration:underline;
    cursor:pointer;
    padding: 10px 16px;
    margin-right: 16px;
}
.notification-item{
    display:block;
    text-decoration:none;
    color:#1e293b;
    padding:15px 20px;
    border-bottom:1px solid #f1f5f9;
    transition: background-color 0.2s ease;
}

.notification-item:hover{
    background:#f8fafc;
}

.notification-item.unread{
    background:#eff6ff;
}

.notification-title{
    font-weight:700;
    color:#0E3386;
    margin-bottom:4px;
}

.notification-message{
    font-size:14px;
    color:#64748b;
    margin-bottom:6px;
}

.notification-item small{
    color:#94a3b8;
}

.notification-empty{
    padding:30px;
    text-align:center;
    color:#64748b;
}

/* ===========================
   FOOTER
=========================== */

/* ===========================
   NAVBAR - MOBILE RESPONSIVE
=========================== */

.mobile-nav-toggle{
    display:none;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    padding:0;
    border:none;
    border-radius:8px;
    background:transparent;
    color:#0E3386;
    cursor:pointer;
    font-size:20px;
}

@media (max-width:900px){
    .navbar{
        height:64px;
        padding:0 14px;
        gap:8px;
        overflow:visible;
    }

    .nav-logo{
        height:40px;
        width:auto;
    }

    .nav-left{
        flex-shrink:0;
        gap:6px;
    }

    .mobile-nav-toggle{
        display:inline-flex;
        margin-left:4px;
        background:#f1f5f9;
        font-size:18px;
        transition:background-color 0.2s ease, transform 0.2s ease;
    }

    .mobile-nav-toggle:hover{
        background:#e7edf5;
    }

    .mobile-nav-toggle:active{
        transform:scale(0.96);
    }

    .nav-center{
        flex:0;
    }

    .nav-links{
        display:none;
        position:absolute;
        top:64px;
        left:0;
        right:0;
        max-height:calc(100vh - 64px);
        overflow-y:auto;
        padding:12px;
        flex-direction:column;
        align-items:stretch;
        gap:6px;
        background:#ffffff;
        border-top:1px solid #e2e8f0;
        border-bottom:1px solid #dbe3ed;
        border-radius:0 0 14px 14px;
        box-shadow:0 12px 30px rgba(15,23,42,0.10);
        z-index:1250;
        scrollbar-width:none;
    }

    .nav-links::-webkit-scrollbar{
        display:none;
    }

    .navbar.mobile-open .nav-links{
        display:flex;
    }

    .nav-links a,
    .nav-dropdown-toggle{
        width:100%;
        min-height:44px;
        display:flex;
        align-items:center;
        padding:11px 14px;
        border-radius:8px;
        background:transparent;
        color:#475569;
        font-size:14px;
        font-weight:700;
        transform:none;
    }

    .nav-links a:hover,
    .nav-dropdown-toggle:hover,
    .nav-dropdown:hover .nav-dropdown-toggle{
        background:#f1f5f9;
        color:#0E3386;
        transform:none;
        box-shadow:none;
    }

    .nav-links a.active,
    .nav-dropdown-toggle.active,
    .nav-dropdown.open .nav-dropdown-toggle,
    .nav-dropdown button.active{
        background:#eaf1fb;
        color:#0E3386;
        box-shadow:none;
    }

    .nav-right{
        margin-left:auto;
        padding-right:0;
        display:flex;
        align-items:center;
        gap:8px;
        position:relative;
        z-index:1350;
    }

    .nav-right .notification-menu{
        order:0;
        margin-right:0;
    }

    .nav-right .profile-menu{
        order:1;
    }

    .notification-toggle{
        width:38px;
        height:38px;
        border-radius:50%;
        background:#f8fafc;
    }

    .notification-toggle:hover{
        background:#f1f5f9;
        transform:none;
    }

    .notif{
        font-size:20px;
    }

    .notification-badge{
        top:-2px;
        right:-1px;
        width:17px;
        height:17px;
        font-size:10px;
    }

    .profile-menu-toggle{
        gap:4px;
        padding:2px;
        border-radius:50%;
    }

    .profile-menu-toggle:hover{
        transform:none;
    }

    .profile{
        width:36px;
        height:36px;
    }

    .profile-menu-toggle > i{
        display:none;
    }

    .nav-dropdown-menu,
    .notification-dropdown,
    .profile-menu-dropdown{
        opacity:0;
        visibility:hidden;
        transform:translateY(-6px);
        transition:opacity 0.2s ease, transform 0.2s ease, visibility 0.2s linear;
        background:#ffffff;
        border:1px solid #e2e8f0;
        border-radius:12px;
        box-shadow:0 14px 35px rgba(15,23,42,0.15);
        z-index:1500;
    }

    .notification-dropdown{
        position:fixed;
        top:70px;
        left:12px;
        right:12px;
        width:auto;
        max-width:none;
        max-height:calc(100vh - 90px);
        overflow-y:auto;
        overscroll-behavior:contain;
    }

    .notification-menu.open .notification-dropdown{
        opacity:1;
        visibility:visible;
        transform:translateY(0);
    }

    .notification-header{
        position:sticky;
        top:0;
        z-index:2;
        padding:13px 14px;
        background:#ffffff;
        border-bottom:1px solid #e5e7eb;
    }

    .notification-header > span{
        font-size:14px;
    }

    .notification-header .mark-all-link{
        font-size:11px;
        white-space:nowrap;
    }

    .notification-item{
        padding:13px 14px;
    }

    .notification-title{
        font-size:13px;
    }

    .notification-message{
        font-size:12px;
        line-height:1.5;
    }

    .notification-item small{
        font-size:10px;
    }

    .profile-menu-dropdown{
        position:fixed;
        top:70px;
        right:12px;
        width:min(230px, calc(100vw - 24px));
        max-height:calc(100vh - 90px);
        overflow-y:auto;
    }

    .profile-menu.open .profile-menu-dropdown{
        opacity:1;
        visibility:visible;
        transform:translateY(0);
    }

    .profile-menu-dropdown a{
        min-height:44px;
        padding:12px 15px;
        font-size:13px;
    }

    .nav-dropdown{
        width:100%;
    }

    .nav-dropdown-menu{
        position:static;
        width:100%;
        margin-top:5px;
        display:none;
        opacity:1;
        visibility:visible;
        transform:none;
        background:#f8fafc;
        border-radius:8px;
        box-shadow:none;
    }

    .nav-dropdown.open .nav-dropdown-menu{
        display:block;
    }

    .nav-dropdown-menu a{
        padding:11px 16px 11px 28px;
        font-size:13px;
    }
}

@media (max-width:420px){
    .navbar{
        padding:0 10px;
    }

    .nav-logo{
        height:36px;
    }

    .mobile-nav-toggle{
        width:36px;
        height:36px;
        font-size:16px;
    }

    .nav-right{
        gap:5px;
    }

    .notification-toggle{
        width:34px;
        height:34px;
    }

    .notif{
        font-size:18px;
    }

    .profile{
        width:33px;
        height:33px;
    }

    .notification-dropdown{
        left:8px;
        right:8px;
    }

    .profile-menu-dropdown{
        right:8px;
        width:calc(100vw - 16px);
    }

    .notification-header{
        gap:8px;
    }

    .notification-header > span{
        font-size:13px;
    }

    .notification-header .mark-all-link{
        font-size:10px;
    }
}

/* End mobile navbar tweaks */

/* ===========================
   SHARED DASHBOARD CONTROLS
=========================== */
.dashboard-filter-section {
    background: #ffffff !important;
    padding: 18px 24px !important;
    border: 0 !important;
    border-radius: 18px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05) !important;
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    flex-wrap: wrap !important;
}

.dashboard-search-panel {
    display: flex !important;
    align-items: center !important;
    gap: 0 !important;
    box-sizing: border-box !important;
    width: 100% !important;
    height: 44px !important;
    padding: 0 18px !important;
    background: #f1f5f9 !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
}

.dashboard-filter-section {
    justify-content: space-between !important;
}

.dashboard-search-panel {
    position: relative !important;
    width: 100% !important;
    margin-bottom: 24px !important;
}

.dashboard-search-box {
    display: flex !important;
    align-items: center !important;
    flex: 1 !important;
    min-width: 280px !important;
    height: 44px !important;
    padding: 0 18px !important;
    background: #f1f5f9 !important;
    border: 0 !important;
    border-radius: 999px !important;
}

.dashboard-search-box i,
.dashboard-search-panel > .search-icon {
    position: static;
    transform: none;
    margin-right: 10px;
    color: #7b8798;
}

.dashboard-search-box input,
.dashboard-search-panel > input {
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    background: transparent !important;
    color: #1f3f78 !important;
    font-size: 15px !important;
}

.dashboard-filter-group {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
}

.dashboard-filter-select,
.dashboard-filter-select-wrapper select,
.dashboard-filter-group .filter,
.dashboard-filter-group .tab {
    min-height: 44px !important;
    padding: 10px 16px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f1f5f9 !important;
    color: #1f3f78 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    outline: 0 !important;
    cursor: pointer !important;
}

.dashboard-filter-group .active-filter,
.dashboard-filter-group .tab.active {
    background: #123e8f !important;
    color: #ffffff !important;
}

.dashboard-filter-select-wrapper {
    position: relative;
    flex: 1;
    min-width: 160px;
}

.dashboard-filter-select-wrapper select {
    width: 100%;
    appearance: none;
    padding-right: 38px;
}

.dashboard-filter-select-wrapper i {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #233d6e;
}

/* Keep page-specific admin styles from changing the shared controls. */
.dashboard-filter-section.dashboard-filter-section {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 24px !important;
    background: #ffffff !important;
    border: 0 !important;
    border-radius: 18px !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05) !important;
}

.dashboard-search-panel.dashboard-search-panel {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 24px !important;
    background: #f1f5f9 !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
}

.dashboard-search-box.dashboard-search-box {
    box-sizing: border-box !important;
    min-width: 0 !important;
    height: 44px !important;
    padding: 0 18px !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
}

.dashboard-search-box.dashboard-search-box input,
.dashboard-search-panel.dashboard-search-panel > input {
    box-sizing: border-box !important;
    min-width: 0 !important;
    height: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.dashboard-filter-group.dashboard-filter-group {
    gap: 12px !important;
}

/* Hide modal scrollbar UI without disabling modal scrolling. */
.modal,
.modal-content,
.job-modal,
.job-modal-content,
.referral-modal,
.modal-overlay {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.modal::-webkit-scrollbar,
.modal-content::-webkit-scrollbar,
.job-modal::-webkit-scrollbar,
.job-modal-content::-webkit-scrollbar,
.referral-modal::-webkit-scrollbar,
.modal-overlay::-webkit-scrollbar {
    display: none;
}

.dashboard-filter-group .dashboard-filter-select,
.dashboard-filter-group.dashboard-filter-group > select {
    box-sizing: border-box !important;
    width: auto !important;
    min-width: 180px !important;
    height: 44px !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #f1f5f9 !important;
    color: #1f3f78 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}

.clean-footer{
    margin-top:auto;
    min-height:80px;
    background:#ffffff;
    border-top:1px solid #e2e8f0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:0 40px;
}

.footer-left{
    display:flex;
    align-items:center;
    gap:15px;
}

.footer-logo{
    height:45px;
}

.footer-left p{
    font-size:15px;
    font-weight:700;
    color:#0E3386;
}

.footer-right{
    display:flex;
    gap:30px;
}

.footer-right span{
    color:#64748b;
    font-size:14px;
}

.footer-right i{
    margin-right:8px;
    color:#0E3386;
}

/* ===========================
   GLOBAL FLASH MODAL
=========================== */

.flash-modal-overlay{
    position:fixed;
    inset:0;
    z-index:10000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(15,23,42,0.48);
    backdrop-filter:blur(4px);
    animation:flashModalFadeIn 0.18s ease forwards;
}

.flash-modal-overlay.closing{
    animation:flashModalFadeOut 0.18s ease forwards;
}

.flash-modal-card{
    position:relative;
    width:min(420px,100%);
    padding:28px 26px 24px;
    background:#ffffff;
    border:1px solid #dfe6ee;
    border-radius:16px;
    box-shadow:0 24px 60px rgba(15,23,42,0.22);
    text-align:center;
    animation:flashModalCardIn 0.22s ease forwards;
}

.flash-modal-overlay.closing .flash-modal-card{
    animation:flashModalCardOut 0.18s ease forwards;
}

.flash-modal-close{
    position:absolute;
    top:14px;
    right:14px;
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:8px;
    background:#f1f5f9;
    color:#64748b;
    font-size:15px;
    cursor:pointer;
    transition:background-color 0.2s ease,color 0.2s ease;
}

.flash-modal-close:hover{
    background:#e7edf5;
    color:#0E3386;
}

.flash-modal-icon{
    width:58px;
    height:58px;
    margin:2px auto 16px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    font-size:26px;
}

.flash-modal-success{
    background:#eaf7f0;
    color:#16834b;
}

.flash-modal-danger,
.flash-modal-error{
    background:#fff1f0;
    color:#b42318;
}

.flash-modal-warning{
    background:#fff7e6;
    color:#a15c00;
}

.flash-modal-info{
    background:#eaf1fb;
    color:#0E3386;
}

.flash-modal-content h2{
    margin:0 0 8px;
    color:#172033;
    font-size:20px;
    font-weight:800;
    line-height:1.3;
}

.flash-modal-content p{
    margin:0;
    color:#52627a;
    font-size:14px;
    line-height:1.6;
    overflow-wrap:anywhere;
}

.flash-modal-more{
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid #edf1f5;
    text-align:left;
}

.flash-modal-more p{
    margin:6px 0 0;
    font-size:13px;
}

.flash-modal-confirm{
    width:100%;
    min-height:44px;
    margin-top:22px;
    padding:0 18px;
    border:0;
    border-radius:8px;
    background:#0E3386;
    color:#ffffff;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
    transition:background-color 0.2s ease,transform 0.2s ease;
}

.flash-modal-confirm:hover{
    background:#0a286a;
}

.flash-modal-confirm:active{
    transform:scale(0.99);
}

.flash-modal-actions{
    display:flex;
    justify-content:center;
    gap:10px;
    width:100%;
}
.flash-modal-actions .flash-modal-confirm,
.flash-modal-actions .flash-modal-cancel{
    min-width:110px;
}
.flash-modal-cancel{
    border:1px solid #cbd5e1;
    background:#ffffff;
    color:#334155;
    border-radius:8px;
    padding:10px 18px;
    font-weight:600;
    cursor:pointer;
}
.flash-modal-cancel:hover{ background:#f8fafc; }

body.flash-modal-open{
    overflow:hidden;
}

@keyframes flashModalFadeIn{
    from{opacity:0;}
    to{opacity:1;}
}

@keyframes flashModalFadeOut{
    from{opacity:1;}
    to{opacity:0;}
}

@keyframes flashModalCardIn{
    from{
        opacity:0;
        transform:translateY(10px) scale(0.98);
    }
    to{
        opacity:1;
        transform:translateY(0) scale(1);
    }
}

@keyframes flashModalCardOut{
    from{
        opacity:1;
        transform:translateY(0) scale(1);
    }
    to{
        opacity:0;
        transform:translateY(8px) scale(0.985);
    }
}

@media (max-width:600px){
    .flash-modal-overlay{
        align-items:flex-end;
        padding:10px;
    }

    .flash-modal-card{
        width:100%;
        padding:25px 18px calc(18px + env(safe-area-inset-bottom));
        border-radius:16px 16px 12px 12px;
    }

    .flash-modal-close{
        top:12px;
        right:12px;
    }

    .flash-modal-icon{
        width:54px;
        height:54px;
        margin-bottom:14px;
        font-size:24px;
    }

    .flash-modal-content h2{
        font-size:18px;
    }

    .flash-modal-content p{
        font-size:13px;
    }

    .flash-modal-confirm{
        min-height:46px;
        margin-top:18px;
        font-size:14px;
    }
}

/* ===========================
   FOOTER - Mobile Responsive
=========================== */

@media (max-width: 768px) {
    .clean-footer {
        flex-direction: column;
        justify-content: center;
        text-align: center;
        gap: 16px;
        padding: 24px 20px;
        min-height: auto;
    }

    .footer-left {
        flex-direction: column;
        gap: 8px;
    }

    .footer-logo {
        height: 40px;
    }

    .footer-left p {
        font-size: 14px;
    }

    .footer-right {
        flex-direction: column;
        align-items: center;
        gap: 10px;
    }

    .footer-right span {
        font-size: 13px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* 2026-10-10: compact, consistent confirmation dialog actions */
.flash-modal-card .flash-modal-actions {
    display: flex !important;
    width: 100%;
    justify-content: flex-end !important;
    align-items: center;
    gap: 10px;
    margin-top: 20px;
    flex-wrap: wrap;
}
.flash-modal-card .flash-modal-actions > .flash-modal-cancel,
.flash-modal-card .flash-modal-actions > .flash-modal-confirm {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 104px !important;
    max-width: 100%;
    min-height: 42px !important;
    height: auto !important;
    padding: 10px 18px !important;
    margin: 0 !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.3 !important;
    box-sizing: border-box;
}
.flash-modal-card .flash-modal-actions > .flash-modal-confirm {
    background: #0e3386 !important;
    border: 1px solid #0e3386 !important;
    color: #fff !important;
}
.flash-modal-card .flash-modal-actions > .flash-modal-confirm:hover:not(:disabled) {
    background: #0a286d !important;
    border-color: #0a286d !important;
}
.flash-modal-card .flash-modal-actions > .flash-modal-cancel {
    background: #fff !important;
    border: 1px solid #c6d5f0 !important;
    color: #0e3386 !important;
}
.flash-modal-card .flash-modal-actions > .flash-modal-cancel:hover:not(:disabled) {
    background: #eef4ff !important;
}
@media (max-width: 420px) {
    .flash-modal-card .flash-modal-actions > .flash-modal-cancel,
    .flash-modal-card .flash-modal-actions > .flash-modal-confirm {
        flex: 1 1 0 !important;
        min-width: 0 !important;
    }
}

/* Center buttons in small confirmation modals */
.swal2-popup .swal2-actions {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100%;
    margin: 24px auto 0 !important;
    padding: 0 16px !important;
    box-sizing: border-box;
}

.swal2-popup .swal2-actions button {
    min-width: 130px;
    min-height: 44px;
    padding: 10px 20px !important;
    margin: 0 !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}

@media (max-width: 400px) {
    .swal2-popup .swal2-actions button {
        min-width: 0;
        flex: 1;
    }
}
/* Shared confirmation dialog: center actions, overriding earlier right alignment. */
.flash-modal-card .flash-modal-actions {
    justify-content: center !important;
    margin-left: auto;
    margin-right: auto;
}
.flash-modal-card .flash-modal-actions > button {
    text-align: center;
}

/* Oct 11.16 QA: tablet notification panel.
   Explicit viewport-based width prevents the dropdown from inheriting a
   narrow transformed header/notification-menu containing block. */
@media (min-width: 481px) and (max-width: 1024px) {
  .notification-menu .notification-dropdown {
    position: fixed !important;
    box-sizing: border-box !important;
    top: 70px !important;
    left: auto !important;
    right: 16px !important;
    width: calc(100vw - 32px) !important;
    max-width: 560px !important;
    max-height: min(72dvh, calc(100dvh - 90px)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    z-index: 9999 !important;
  }
  .notification-dropdown .notification-header,
  .notification-dropdown .notification-item {
    min-width: 0;
    box-sizing: border-box;
  }
  .notification-dropdown .notification-message,
  .notification-dropdown .notification-title {
    overflow-wrap: anywhere;
  }
}
