:root {
    --primary: 29, 31, 127;
    --soft-primary: #cee3fc;
    --soft-danger: #fceaea;
    --secondary: green;
    --primary-blue: #03045e;
    --light-blue: #2563EB;
}

body,
table {
    font-family: "Geist", sans-serif !important;
}

.bg-primary {
    background-color: var(--primary-blue) !important;
}

.alert-primary {
    background-color: var(--soft-primary) !important;
    border-color: var(--soft-primary) !important;
}

.alert-soft-danger {
    background-color: var(--soft-danger) !important;
    border-color: var(--soft-danger) !important;
    color: #dc3545;
    border-radius: 10px;
    margin-top: 3px;
}

.alert-info-tailwind {
    background-color: #ebf8ff;
    color: #0c4a6e;
    border: 1px solid #7dd3fc;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Success */
.alert-success-tailwind {
    background-color: #dcfce7;
    color: #166534;
    border: 1px solid #86efac;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Warning */
.alert-warning-tailwind {
    background-color: #fef3c7;
    color: #78350f;
    border: 1px solid #fde68a;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Danger */
.alert-danger-tailwind {
    background-color: #fee2e2;
    color: #991b1b;
    border: 1px solid #fca5a5;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Secondary */
.alert-secondary-tailwind {
    background-color: #f3f4f6;
    color: #374151;
    border: 1px solid #d1d5db;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Purple */
.alert-purple-tailwind {
    background-color: #f3e8ff;
    color: #5b21b6;
    border: 1px solid #c4b5fd;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Pink */
.alert-pink-tailwind {
    background-color: #fce7f3;
    color: #be185d;
    border: 1px solid #f9a8d4;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Indigo */
.alert-indigo-tailwind {
    background-color: #e0e7ff;
    color: #3730a3;
    border: 1px solid #a5b4fc;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Teal */
.alert-teal-tailwind {
    background-color: #ccfbf1;
    color: #115e59;
    border: 1px solid #5eead4;
    padding: 0.75rem 1rem;
    border-radius: 0.5rem;
    font-size: 1rem;
}

/* Button Start Here */

/* Info */
.btn-info-tailwind {
    background-color: #3b82f6;
    /* blue-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    /* rounded-md */
    font-size: 1rem;
}

.btn-info-tailwind:hover {
    background-color: #2563eb;
    /* blue-600 */
}

/* Success */
.btn-success-tailwind {
    background-color: #22c55e;
    /* green-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-success-tailwind:hover {
    background-color: #16a34a;
    /* green-600 */
}

/* Warning */
.btn-warning-tailwind {
    background-color: #f59e0b;
    /* yellow-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-warning-tailwind:hover {
    background-color: #d97706;
    /* yellow-600 */
}

/* Danger */
.btn-danger-tailwind {
    background-color: #ef4444;
    /* red-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-danger-tailwind:hover {
    background-color: #dc2626;
    /* red-600 */
}

/* Secondary */
.btn-secondary-tailwind {
    background-color: #6b7280;
    /* gray-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-secondary-tailwind:hover {
    background-color: #4b5563;
    /* gray-600 */
}

/* Purple */
.btn-purple-tailwind {
    background-color: #8b5cf6;
    /* purple-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-purple-tailwind:hover {
    background-color: #7c3aed;
    /* purple-600 */
}

/* Pink */
.btn-pink-tailwind {
    background-color: #ec4899;
    /* pink-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-pink-tailwind:hover {
    background-color: #db2777;
    /* pink-600 */
}

/* Indigo */
.btn-indigo-tailwind {
    background-color: #6366f1;
    /* indigo-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-indigo-tailwind:hover {
    background-color: #4f46e5;
    /* indigo-600 */
}

/* Teal */
.btn-teal-tailwind {
    background-color: #14b8a6;
    /* teal-500 */
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    font-size: 1rem;
}

.btn-teal-tailwind:hover {
    background-color: #0d9488;
    /* teal-600 */
}

.btn-primary {
    background-color: var(--primary-blue) !important;
    border: none !important;
    color: white !important;
}

.text-primary {
    color: rgba(var(--primary), 1) !important;
}

.theme-form .login-form {
    border-radius: 16px !important;
}

.btn {
    border-radius: 8px !important;
    font-weight: 600 !important;
    padding: 8px 16px !important;
    font-size: 14px !important;
    white-space: nowrap;
    margin: 0;
    line-height: normal !important;
}


.btn-info:hover {
    color: white !important;
    background-color: #5f5f5f !important;
}

.badge {
    font-weight: 500 !important;

    &.badge-primary {
        color: #03045e;
        background-color: #10317825;
    }

    &.badge-warning {
        background-color: #fda71129;
        color: #fda711;
    }
}

.general-widget .card {
    border-radius: 16px !important;
    overflow: hidden;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    border: none !important;

    .card-header h5 {
        font-size: 18px;
        font-weight: 600 !important;
    }
}

.card {
    border: none !important;
    border-radius: 16px !important;
    overflow: hidden;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
    color: #2c323f;
}

.nav-menu {
    li {
        padding: 0 !important;
    }

    li.dropdown .nav-link {
        padding-left: 18px !important;
        border-radius: 0 !important;
    }
}

.page-wrapper .page-body-wrapper .page-body {
    padding: 0 16px 0 16px;
}

.page-wrapper.compact-wrapper .page-body-wrapper .according-menu i {
    color: white !important;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-link {
    height: 48px;
    place-content: center;
    margin: 8px 0;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-link.active,
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-link:hover {
    background-color: white;
    color: #2c323f;

    i {
        color: white !important;
    }

    -webkit-transition: all 0.5s ease;
    transition: all 0.5s ease;
    position: relative;
    height: 48px;
    border-radius: 32px !important;
    align-content: center;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li i {
    margin-right: 8px;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title>div {
    border-bottom: none;
}

.page-wrapper .page-main-header {
    background-color: #f5f7fb;
    box-shadow: none !important;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav {
    background-color: var(--primary-blue) !important;
    width: 290px;
    border: none;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li a {
    color: white !important;
    font-size: 16px !important;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-link.active,
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: white !important;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-link.active,
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-link:hover i {
    color: white !important;
}

.page-wrapper .page-body-wrapper .page-header .breadcrumb .breadcrumb-item a {
    color: rgba(var(--primary), 1);
}

.nav-submenu.menu-content {
    margin-top: 8px;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown ul.nav-submenu li:hover a {
    color: rgba(var(--primary), 1);
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu .dropdown ul.nav-submenu li a.active {
    color: rgba(var(--primary), 1);
}

.page-main-header .main-header-right .main-header-left {
    border-right: none;
    padding: 28px 40px;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title>div h6 {
    color: hsla(0, 0%, 100%, 0.6) !important;
    font-size: 14px !important;
    text-transform: uppercase !important;
    font-weight: bold !important;
    margin-left: 16px;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-main-title>div {
    margin: 24px 0 0 0;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu>li .nav-submenu li a {
    font-size: 14px !important;
    font-weight: 600 !important;
}

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user {
    border-bottom: 1px solid #e6edef;
}

.chat-dropdown ul li:hover {
    background-color: transparent !important;
    color: rgba(var(--primary), 1);
}

.page-main-header .main-header-right .nav-right.right-menu ul.nav-menus>li {
    margin-right: 4px;
    padding: 0;

    &:hover {
        background-color: transparent;
    }

    .item {
        display: flex;
        overflow: hidden;
        width: 56px;
        height: 56px;
        background: white;
        border-radius: 999px;
        justify-content: center;
        align-items: center;
    }
}

.page-main-header .main-header-right .nav-right .chat-dropdown {
    width: 330px;
    top: 72px;
    right: 9px;
    left: unset;
    border-radius: 32px;
    overflow: hidden;
}

.media-body {
    padding-left: 0px !important;
}

.page-main-header .main-header-right .toggle-sidebar svg {
    width: 20px;
    color: white;
}

.bg-soft-primary {
    background-color: rgba(var(--primary), 0.1) !important;
    color: rgba(var(--primary), 1);
    color: oklch(0.3, 0.24 294);
}

.bg-soft-danger {
    background-color: #e3352f10 !important;
    color: #e3342f;
}

.bg-soft-warning {
    background-color: #ec912510 !important;
    color: #ec9125;
}

.btn-outline-primary {
    color: var(--light-blue) !important;
    border-color: var(--light-blue) !important;
}

.btn-outline-primary:hover {
    background-color: var(--light-blue) !important;
    color: white !important;
    border-color: var(--light-blue) !important;
}

a {
    color: var(--light-blue);
}

table {
    border: none !important;

    font-size: 16px;

    thead tr th {
        background-color: rgb(243 244 246) !important;
        vertical-align: middle;
        font-weight: 500 !important;
        color: #45474A !important;
        text-transform: capitalize;
    }

    tbody td {
        vertical-align: middle;
        border: none !important;
        border-bottom: 1px solid #e6edef !important;
    }
}

.filter {

    .btn {
        padding: 8px 16px;
        border-radius: 99px !important;
        font-size: 14px;
        font-weight: 500 !important;
        color: #5f5f5f;
        border: 1px solid #ececec;
    }


    .btn-check:checked+.btn,
    .btn-check:active+.btn,
    .btn:active,
    .btn.active,
    .btn.dropdown-toggle.show {
        color: #fff !important;
        background-color: var(--light-blue);
        border-color: var(--light-blue);
    }
}

.page-wrapper,
.page-wrapper.compact-wrapper,
.page-body-wrapper,
header.main-nav,
.main-navbar,
.nav-menu {
    min-height: 100% !important;
    overflow-y: auto !important;
    margin-bottom: 50px !important;
    /* atau min-height */
}

.nav-menu {
    height: 85vh !important;
    overflow-y: auto !important;
    /* atau height: 100% jika kamu ingin persis */
}

header.main-nav {
    scrollbar-width: thin;
    scrollbar-color: rgba(156, 163, 175, 0.5) transparent;
    height: 10%;
}

header.main-nav::-webkit-scrollbar {
    width: 6px;
}

header.main-nav::-webkit-scrollbar-track {
    background: transparent;
}

header.main-nav::-webkit-scrollbar-thumb {
    background-color: rgba(156, 163, 175, 0.5);
    border-radius: 8px;
    border: 2px solid transparent;
}



.badge-soft {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    font-size: 0.875rem;
    border-radius: 9999px;
    font-weight: 500;
}

.badge-soft::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 6px;
}

/* Variasi warna soft (inspired by Tailwind) */
.badge-soft {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    /* 🔑 Ini menjaga agar teks tidak turun ke bawah */
    padding: 0.25rem 0.75rem;
    font-size: 0.875rem;
    border-radius: 9999px;
    font-weight: 500;
    line-height: 1.25;
}

.badge-soft::before {
    content: '';
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    margin-right: 0.5rem;
}

/* === Variant Colors ala shadcn === */

.badge-green {
    background-color: #dcfce7;
    /* Tailwind green-100 */
    color: #166534;
    /* Tailwind green-800 */
}

.badge-green::before {
    background-color: #22c55e;
    /* Tailwind green-500 */
}

.badge-red {
    background-color: #fee2e2;
    /* Tailwind red-100 */
    color: #991b1b;
    /* Tailwind red-800 */
}

.badge-red::before {
    background-color: #ef4444;
    /* Tailwind red-500 */
}

.badge-yellow {
    background-color: #fef9c3;
    /* Tailwind yellow-100 */
    color: #854d0e;
    /* Tailwind yellow-800 */
}

.badge-yellow::before {
    background-color: #eab308;
    /* Tailwind yellow-500 */
}

.badge-blue {
    background-color: #dbeafe;
    /* Tailwind blue-100 */
    color: #1e3a8a;
    /* Tailwind blue-800 */
}

.badge-blue::before {
    background-color: #3b82f6;
    /* Tailwind blue-500 */
}

.badge-gray {
    background-color: #f3f4f6;
    /* Tailwind gray-100 */
    color: #374151;
    /* Tailwind gray-800 */
}

.badge-gray::before {
    background-color: #9ca3af;
    /* Tailwind gray-500 */
}

.table-bordered-strong {
    border: 1px solid #000 !important;
}

.table-bordered-strong th,
.table-bordered-strong td {
    border: 1px solid #000 !important;
}

.table-bordered-strong thead th {
    background-color: #f8f9fa;
}

table.dataTable thead th {
    vertical-align: middle;
    white-space: nowrap;
    padding: 0.75rem 1rem;
}


/* Hapus ikon default */
table.dataTable thead th.sorting::before,
table.dataTable thead th.sorting_asc::before,
table.dataTable thead th.sorting_desc::before {
    margin-left: 10px;
    font-size: 10px;
}

table.dataTable thead th.sorting::after,
table.dataTable thead th.sorting_asc::after,
table.dataTable thead th.sorting_desc::after {
    margin-left: 10px;
    font-size: 10px;
}