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

body {
    font-family: "Geist", sans-serif !important;
    font-size: 16px;
    color: var(--text-foreground);
}

p {
    font-family: "Geist", sans-serif !important;
    font-size: 16px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: "Geist", sans-serif !important;
    color: #364153 !important;
    font-weight: 600 !important;
}

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;
}

.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;
}

/* sidebar */
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu {
    height: calc(100vh - 100px);
}
.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);
    }
}


/* form */
.theme-form .form-group input[type="text"],
.form-control {
    border-radius: 12px;
    padding: 10px 14px;
    font-size: 16px;
    color: #314158;
}

.form-control::placeholder {
    color: #314158;
    font-size: 16px;
}

/* login */

.login-form p {
    font-weight: 400;
}

.login-form .input-group-append .btn {
    height: 100%;
    border-radius: 0 12px 12px 0 !important;
}

.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 */
}

.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;
}

.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;
}

/* === SHADCN-LIKE BUTTONS === */
.btn-shadcn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;

    font-weight: 500;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;

    border: 1px solid transparent;
    cursor: pointer;
    user-select: none;

    transition: all 0.2s ease-in-out;
}

/* === Variants === */

/* PRIMARY */
.btn-shadcn-primary {
    background-color: #0f62fe;       /* Tailwind blue-600 style */
    color: #fff;
    border-color: #0f62fe;
    box-shadow: 0 2px 4px rgba(15, 98, 254, 0.25);
}
.btn-shadcn-primary:hover {
    background-color: #0353e9;
}
.btn-shadcn-primary:active {
    background-color: #0041c2;
}
.btn-shadcn-primary:focus-visible {
    outline: 2px solid #93c5fd;
    outline-offset: 2px;
}

/* SECONDARY */
.btn-shadcn-secondary {
    background-color: #f3f4f6; /* gray-100 */
    color: #111827;           /* gray-900 */
    border-color: #e5e7eb;    /* gray-200 */
}
.btn-shadcn-secondary:hover {
    background-color: #e5e7eb;
}
.btn-shadcn-secondary:active {
    background-color: #d1d5db;
}

/* OUTLINE */
.btn-shadcn-outline {
    background-color: transparent;
    color: #0f62fe;
    border-color: #0f62fe;
}
.btn-shadcn-outline:hover {
    background-color: rgba(15, 98, 254, 0.08);
}

/* GHOST */
.btn-shadcn-ghost {
    background-color: transparent;
    color: #374151;
}
.btn-shadcn-ghost:hover {
    background-color: #f9fafb;
}

/* DESTRUCTIVE */
.btn-shadcn-danger {
    background-color: #ef4444; /* red-500 */
    color: white;
    border-color: #ef4444;
}
.btn-shadcn-danger:hover {
    background-color: #dc2626;
}

/* DISABLED STATE */
.btn-shadcn:disabled,
.btn-shadcn.disabled {
    opacity: 0.6;
    pointer-events: none;
}

.nav-underline .nav-link {
    color: #6c757d;
    border: none;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    transition: color 0.2s ease, border-color 0.2s ease;
  }

  .nav-underline .nav-link:hover {
    color: #0d6efd;
  }

  .nav-underline .nav-link.active {
    color: #0d6efd;
    border-bottom-color: #0d6efd;
    font-weight: bold;
  }

  .nav-underline {
    border-bottom: 1px solid #dee2e6; /* garis abu lembut bawah nav */
  }

