:root {
    --primary: 29, 31, 127;
    --soft-primary: #cee3fc;
    --secondary: green;
    --primary-blue: #1745b0;
    --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;
}

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


.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: 100% !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;
}

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: #d5d5d5;
    /* 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;
}
