.toast {
    display: none;
    min-width: 20vw
}

.toast.show {
    display: block;
    opacity: 1;
    position: fixed;
    z-index: 99999999;
    margin: 20px;
    right: 0;
    top: 3.5rem;
}

.swal2-container {
    z-index: 99999999;
}

#preloader2 {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999;
    overflow: hidden;
    background: #ffffff82;
}

#preloader2:before {
    content: "";
    position: fixed;
    top: calc(50% - 30px);
    left: calc(50% - 30px);
    border: 6px solid #1977cc;
    border-top-color: #d1e6f9;
    border-radius: 50%;
    width: 60px;
    height: 60px;
    -webkit-animation: animate-preloader 1s linear infinite;
    animation: animate-preloader 1s linear infinite;
}

@-webkit-keyframes animate-preloader {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

@keyframes animate-preloader {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }

    
}

.truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    font-size: smaller;
    color: #000000cf;
    font-style: italic;
}

.modal-dialog.large {
    width: 80% !important;
    max-width: unset;
}

.modal-dialog.mid-large {
    width: 50% !important;
    max-width: unset;
}

#viewer_modal .btn-close {
    position: absolute;
    z-index: 999999;
    /*right: -4.5em;*/
    background: unset;
    color: white;
    border: unset;
    font-size: 27px;
    top: 0;
}

#viewer_modal .modal-dialog {
    width: 80%;
    max-width: unset;
    height: calc(90%);
    max-height: unset;
}

#viewer_modal .modal-content {
    background: black;
    border: unset;
    height: calc(100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

#viewer_modal img,
#viewer_modal video {
    max-height: calc(100%);
    max-width: calc(100%);
}

/* ============================================================== */
/*                 PREMIUM MODERN DESIGN SYSTEM                   */
/* ============================================================== */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

body {
    font-family: 'Inter', sans-serif !important;
    overflow-x: hidden;
}

/* ----------------- ANIMATION ENGINES ----------------- */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(-20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Page Entrance Class */
.animate-entrance {
    animation: fadeInUp 0.5s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

/* Staggered load for cards inside the content */
.animate-entrance .card {
    opacity: 0;
    animation: fadeInUp 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.animate-entrance .card:nth-child(1) { animation-delay: 0.1s; }
.animate-entrance .card:nth-child(2) { animation-delay: 0.2s; }
.animate-entrance .card:nth-child(3) { animation-delay: 0.3s; }


/* Main Content Wrapper Background */
.content-wrapper {
    background-color: #F9FAFB !important; /* Soft white/gray background */
}

/* ----------------- NAVBAR (TOP BAR) ----------------- */
.main-header.navbar-green, .main-header {
    background-color: #1F2937 !important; /* Header Dark */
    border-bottom: 1px solid #374151 !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1) !important;
}

.navbar-nav .nav-link,
.brand-link {
    color: #FFFFFF !important;
}

.navbar-nav .nav-link:hover {
    color: #3B82F6 !important;
}

/* ----------------- CARDS & DASHBOARD BOXES ----------------- */
.wrapper .card,
.wrapper .small-box,
.wrapper .info-box {
    border-radius: 12px !important;
    border: 1px solid #E5E7EB !important;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) !important;
    background-color: #FFFFFF !important; /* Cards White */
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.wrapper .small-box:hover,
.wrapper .info-box:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
}

.wrapper .small-box .inner p {
    font-size: 1.1rem;
    color: #6B7280;
    font-weight: 500;
}

.wrapper .small-box .inner h3 {
    color: #111827;
    font-weight: 700;
}

.wrapper .small-box .icon i {
    color: rgba(59, 130, 246, 0.15) !important; /* Accent Blue */
}

/* Remove background colors on small-box if they conflict with our white (DASHBOARD)*/
.wrapper .small-box.bg-light {
    background-color: #FFFFFF !important;
}

.wrapper .card-header {
    background-color: #FFFFFF !important;
    border-bottom: 1px solid #E5E7EB !important;
    padding: 1rem 1.25rem !important;
    border-radius: 12px 12px 0 0 !important;
}

.wrapper .card-title {
    font-weight: 600;
    color: #111827;
}

/* Remove colored top outlines on cards (the sharp lines) */
.wrapper .card-outline.card-success,
.wrapper .card-outline.card-info,
.wrapper .card-outline.card-primary {
    border-top: 3px solid #3B82F6 !important; /* Accent Blue top border */
}

/* ----------------- DASHBOARD CALLOUTS ----------------- */
.wrapper .callout {
    border-radius: 12px !important;
    border-left: 4px solid #3B82F6 !important;
    border-top: 1px solid #E5E7EB !important;
    border-right: 1px solid #E5E7EB !important;
    border-bottom: 1px solid #E5E7EB !important;
    background-color: #FFFFFF !important;
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06) !important;
    padding: 1.5rem !important;
}

.wrapper .callout h5 {
    color: #3B82F6 !important;
    font-weight: 600;
}

/* ----------------- FORMS & BUTTONS ----------------- */
.wrapper .form-control,
.wrapper .select2-container--default .select2-selection--single {
    border-radius: 8px !important;
    border: 1px solid #D1D5DB !important;
    padding: 0.5rem 0.75rem;
    height: auto !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
    background-color: #FFFFFF !important;
    color: #111827 !important;
}

.wrapper .form-control:focus,
.wrapper .select2-container--default.select2-container--focus .select2-selection--single {
    border-color: #3B82F6 !important;
    background-color: #FFFFFF !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5) !important;
    outline: none !important;
}

.wrapper .btn {
    border-radius: 8px !important;
    padding: 0.5rem 1rem !important;
    font-weight: 500 !important;
    transition: all 0.2s ease;
    border: none !important;
}

.wrapper .btn-primary,
.wrapper .bg-gradient-primary,
.wrapper .btn-success {
    background-color: #3B82F6 !important; /* Accent Blue */
    box-shadow: 0 4px 6px -1px rgba(59, 130, 246, 0.3) !important;
    color: #FFFFFF !important;
    border: none !important;
}

.wrapper .btn-primary:hover,
.wrapper .btn-success:hover {
    background-color: #2563EB !important; /* Darker Blue */
    transform: translateY(-1px);
    box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.3) !important;
}

.wrapper .btn-secondary,
.wrapper .btn-default {
    background-color: #E5E7EB !important;
    color: #374151 !important;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05) !important;
}

.wrapper .btn-secondary:hover,
.wrapper .btn-default:hover {
    background-color: #D1D5DB !important;
}

/* ----------------- TABLES ----------------- */
.wrapper table.table-bordered,
.wrapper table.table-condensed,
.wrapper table.table-hover {
    border-radius: 8px !important;
    overflow: hidden;
    border: 1px solid #E5E7EB !important;
    box-shadow: none;
    background-color: #FFFFFF;
}

.wrapper table th {
    background-color: #F3F4F6 !important;
    color: #374151 !important;
    font-weight: 600 !important;
    border: none !important;
    border-bottom: 1px solid #E5E7EB !important;
    padding: 0.75rem 1rem !important;
    text-transform: uppercase;
    font-size: 0.75rem;
    letter-spacing: 0.05em;
}

.wrapper table td {
    border: none !important;
    border-bottom: 1px solid #E5E7EB !important;
    padding: 1rem !important;
    vertical-align: middle !important;
    color: #111827 !important;
    font-size: 0.875rem;
}

.wrapper table tbody tr {
    transition: background-color 0.15s ease;
}

.wrapper table tbody tr:hover {
    background-color: #F9FAFB !important;
}

/* Modals */
.wrapper .modal-content {
    border-radius: 12px !important;
    border: none !important;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04) !important;
}

.wrapper .modal-header {
    border-bottom: 1px solid #E5E7EB !important;
    background-color: #FFFFFF !important;
    border-radius: 12px 12px 0 0 !important;
    padding: 1.25rem !important;
}

.wrapper .modal-title {
    font-weight: 600;
    color: #111827;
}

/* ----------------- MOBILE RESPONSIVENESS ----------------- */
@media (max-width: 768px) {

    .wrapper table th,
    .wrapper table td {
        padding: 0.75rem !important;
        font-size: 0.875rem !important;
    }

    .wrapper .card {
        margin-bottom: 1rem !important;
    }
}

/* Auto-scroll for large tables on small displays */
.card-body {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Force override green classes */
.bg-success, .btn-success, .badge-success {
    background-color: #3B82F6 !important;
    border-color: #3B82F6 !important;
    color: #FFFFFF !important;
}

.text-success {
    color: #3B82F6 !important;
}

.btn-success:hover {
    background-color: #2563EB !important;
    border-color: #2563EB !important;
}

/* Match footer link color */
footer.main-footer a {
    color: #3B82F6 !important;
    font-weight: 600 !important;
}