@font-face {
    font-family: "Avenir";
    src: url("../fonts/Avenir-Light.woff2") format("woff2");
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Avenir";
    src: url("../fonts/Avenir-Book.woff2") format("woff2");
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Avenir";
    src: url("../fonts/Avenir-Medium.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Avenir";
    src: url("../fonts/Avenir-Heavy.woff2") format("woff2");
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: "Avenir";
    src: url("../fonts/Avenir-Black.woff2") format("woff2");
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

:root {
    --mud-drawer-width-left: 300px !important;
}

body {
    font-family: "Avenir" !important;
    background: #F8F8F8 !important;
    color: #1F1F1F !important;
}

* {
    font-family: "Avenir" !important;
}

/* Restore e-icons font for Syncfusion icon elements (overridden by the wildcard above) */
.e-icons,
[class*="e-icons"]::before,
.e-chips-close::before,
.e-chips .e-chips-close::before {
    font-family: "e-icons" !important;
}

/* Pill-shaped chips for SfMultiSelect */
.e-multi-select-wrapper .e-chips {
    border-radius: 999px !important;
}

.e-multi-select-wrapper .e-chips .e-chips-close {
    border-radius: 999px !important;
}


a {
    text-transform: none !important;
    color: #1F1F1F !important;
    text-decoration: none !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 700;
}


h1 {
    font-size: 26px !important
}

h2 {
    font-size: 24px !important
}

h3 {
    font-size: 22px !important
}

h4 {
    font-size: 20px !important
}

h5 {
    font-size: 18px !important
}

h6 {
    font-size: 18px !important
}


header {
    background-image: url("../img/bg-header.jpg");
    background-color: #032A67;
    background-position: top left;
    background-repeat: no-repeat;
    background-size: cover;
    box-shadow: none !important;
}

.custom-sidebar-menu .mud-nav-link-text {
    margin: 0 !important;
    margin: 0 !important;
    display: flex;
    align-items: center;
}

.mud-appbar,
.mud-drawer {
    z-index: 1302 !important;
}

.mud-drawer-content {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Main Navigation Menu - Fills available space and scrolls */
.nav-menu-wrapper {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
}

.mud-navmenu {
    padding: 32px 16px;
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    min-height: 0;
}

.mud-navmenu::-webkit-scrollbar {
    display: block;
    width: 6px;
}

.mud-navmenu::-webkit-scrollbar-thumb {
    background-color: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
}

/* Fix for scrolling being trapped inside expanded menu groups */
.mud-nav-group .mud-navmenu,
.mud-collapse-wrapper-inner .mud-navmenu {
    padding: 0;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    flex: none;
}

.sidebar-paper {
    padding: 32px 16px;
    max-height: calc(100vh - 44px - 44px);
    overflow-y: auto;
    background-color: transparent;
    color: #ffffff !important;
    height: 100%;
}

.mud-drawer-open-mini-md-left .mud-main-content {
    margin-left: 300px;
}

.bottom-section-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    padding: 24px;
    background: #fff;
    z-index: 1001;
    box-shadow: 0px -4px 16px 0px #0000001A;
    /* jangan definisikan ulang di modifier */
    width: calc(100% - 300px);
    margin-left: 300px;
    transition: width 225ms cubic-bezier(0, 0, 0.2, 1), margin-left 225ms cubic-bezier(0, 0, 0.2, 1);
}

.content-has-bottom-section {
    padding-bottom: 330px !important;
}

@media screen and (min-width: 997px) {
    .content-has-bottom-section {
        padding-bottom: 220px !important;
    }
}

.mud-drawer-close-responsive-sm-left .bottom-section-fixed {
    width: 100%;
    margin-left: 0;
}

.mud-drawer.mud-drawer-mini.mud-drawer-pos-left.mud-drawer--closed {
    width: 94px !important;
}

.mud-nav-link-text button {
    display: flex;
    justify-content: center;
    align-items: center;
}

.custom-sidebar-menu .mud-nav-link-text p {
    line-height: 1;
    height: 20px;
    width: 20px;
}

.mud-nav-item a {
    color: #fff !important;
    font-weight: 500;
}

.mud-drawer-open-mini-md-left .mud-appbar {
    width: calc(100% - 300px);
}

.mud-drawer-close-mini-md-left .mud-appbar {
    width: calc(100% - 94px);
}

.mud-appbar.mud-appbar-fixed-top {
    left: unset !important;
}

.mud-drawer-close-mini-md-left .mud-main-content {
    margin-left: 94px;
}

.mud-drawer {
    top: 0 !important;
    height: 100% !important;
    background-image: url("../img/bg-sidebar.jpg");
    background-color: #032A67;
    background-position: top left;
    background-repeat: no-repeat;
    background-size: cover;
    width: 300px !important;
}

.mud-nav-item a {
    text-decoration: none;
}


.mud-nav-group button {
    justify-content: space-between;
    color: #fff;
    padding-left: calc(16px + 26px);
}

.mud-nav-group button::before {
    content: '';
    position: absolute;
    left: 16px;
    background: url(../icons/icon-data.svg);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    width: 20px;
    height: 20px;
}

.mud-nav-group.menu-data button::before {
    background: url(../icons/icon-data.svg);
}

.mud-nav-group.menu-tarif button::before {
    background: url(../icons/icon-stacked-coin.svg);
}

.mud-nav-group.menu-approvals button::before {
    background: url(../icons/icon-checkmark.svg);
}

.mud-nav-group.menu-user button::before {
    background: url(../icons/icon-users.svg);
}

.mud-nav-group.menu-report button::before {
    background: url(../icons/icon-report.svg);
}

.mud-nav-group.menu-planning button::before {
    background: url(../icons/icon-planning.svg);
}

.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link {
    padding-inline-start: 16px;
    padding-inline-end: 16px;
    width: 100%;
    margin-left: 36px;
}

.mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link.active {
    background: transparent !important;
    border: 1px solid transparent !important;
    color: #FB6108 !important;
}

.mud-drawer-close-mini-md-left .mud-nav-link .mud-nav-link-expand-icon {
    display: none;
}

/* Pilih menu report yang punya .active di dalam navmenu */
.mud-nav-group:has(.mud-nav-link.active)>.mud-nav-link.mud-expanded {
    background: linear-gradient(92.04deg, #089DF6 2.4%, #00569C 98.79%);
    border-radius: 16px;
    border: 1px solid #089DF6;
    color: #fff;
}


/* Menyembunyikan title MudNavGroup saat drawer dalam mode mini */
.my-drawer.open .mud-nav-group button .mud-nav-link-text {
    display: block !important;
    margin-left: 0;
    white-space: nowrap;
}

/* Menyembunyikan title MudNavGroup saat drawer dalam mode mini */
.my-drawer.mini .mud-nav-group button .mud-nav-link-text {
    display: none !important;
    white-space: nowrap;
}

.my-drawer.open .profile-info-wrapper .profile-info-detail {
    display: block;
}

.my-drawer.mini .profile-info-wrapper .profile-info-detail {
    display: none;
}

/* Sidebar Flex Layout: Logo (fixed) | Content (flexible) */
.mud-drawer-content .logo {
    flex: 0 0 auto;
}

.mud-drawer-content>div:not(.logo):not(.profile-info-wrapper) {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.profile-info-wrapper {
    flex: 0 0 auto !important;
}


.mud-drawer--closed.mud-drawer-mini .mud-nav-group * .mud-navmenu .mud-nav-item .mud-nav-link {
    padding: 0 !important;
    background: none;
    border: none;
    outline: none;
}

.mud-nav-group svg {
    filter: brightness(0) saturate(100%) invert(100%) sepia(100%) saturate(1%) hue-rotate(204deg) brightness(107%) contrast(101%);
}

.mud-nav-link {
    height: 42px;
    display: flex;
    align-items: center;
    gap: 8px;
    /*    overflow: hidden;*/
}

.mud-nav-link .mud-nav-link-text {
    display: contents;
}

.mud-drawer-mini .mud-nav-link {
    gap: 6px;
}

.mud-navmenu.mud-navmenu-default .mud-nav-link:not(.active),
.mud-nav-link .mud-ripple {
    border: 1px solid transparent;
    box-shadow: none;
    border-radius: 16px;
}

.mud-nav-link *,
.mud-nav-link:focus,
.mud-nav-link:focus-visible {
    outline: none !important;
    box-shadow: none !important;
}


.mud-navmenu.mud-navmenu-default .mud-nav-link.active:not(.mud-nav-link-disabled),
.mud-nav-link .mud-ripple {
    background: linear-gradient(92.04deg, #089DF6 2.4%, #00569C 98.79%);
    border-radius: var(--bs-border-radius-pill);
    border: 1px solid #089DF6
}

.custom-icon-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    gap: 6px;
}

.custom-icon {
    width: 20px;
    height: 20px;
}

.text-main {
    color: #005EE6;
}


.logo-login {
    margin-bottom: 80px;
}

.input-login {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

@media screen and (max-width: 767px) {
    .login-box {
        width: 280px;
    }
}

.input-login .e-input-group {
    background: #FFFFFF33 !important;
    border: none;
    width: 100%;
    padding: 14px 8px;
    border: 1px solid #fff;
    /*        border-radius: 12px !important;*/
    color: #fff !important;
    height: unset !important;
}

.e-input-group.e-input-focus:not(.e-success):not(.e-warning):not(.e-error),
.e-input-group.e-control-wrapper.e-input-focus:not(.e-success):not(.e-warning):not(.e-error) {
    /*    border-radius: 4px !important;*/
    box-shadow: none !important;
}

.e-input-group:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error),
.e-input-group.e-control-wrapper:not(.e-disabled):active:not(.e-success):not(.e-warning):not(.e-error) {
    box-shadow: none !important;
    /*    border-radius: 4px !important;*/
}

.e-input-group:not(.e-disabled) .e-input-group-icon:hover,
.e-input-group.e-control-wrapper:not(.e-disabled) .e-input-group-icon:hover {
    background: var(--bs-primary) !important;
    color: #fff !important;
}

/*
.input-login .e-input-group input {
    background: #FFFFFF33;
    padding: 14px 8px;
    border: 1px solid #fff;
    border-radius: 12px;
    color: #fff;
}

.input-login .e-input-group input::placeholder {
    color: rgba(255,255,255,0.5);
}

.input-login .e-input-group input:focus-visible {
    border: 1px solid #B3CEEC;
    outline: 0;
}

.input-login .e-input-group .input-login input {
    width: 100%;
    max-width: 380px;
}*/
.e-btn:not(.e-indicator) {
    box-shadow: 0px 1px 2px 0px #0000007A !important;
}

.mud-button {
    box-shadow: 0px 1px 2px 0px #0000007A !important;
}

.mud-message-box__cancel-button,
.mud-message-box__yes-button {
    flex-grow: 1;
    border-radius: var(--bs-border-radius-pill);
}

.mud-message-box__cancel-button {
    color: #fff !important;
    background-color: #D82720 !important;
}

.mud-message-box__cancel-button:hover {
    color: #fff !important;
    background-color: #D82720 !important;
}

.mud-message-box__yes-button {
    color: #fff !important;
    background-color: #0360D9 !important;
}

.mud-message-box__yes-button:hover {
    color: #fff !important;
    background-color: #0360D9 !important;
}

.btn-general {
    background: #005EE6 !important;
    box-shadow: 0px 6px 16.9px 0px #00000026;
    border-radius: 12px !important;
    padding: 6px !important;
    color: #fff !important;
    font-size: 16px;
    font-weight: 500;
    min-width: 70px;
}

.btn-general.white {
    background: #FFFFFF !important;
    color: #005EE6 !important;
}

.dashboard-header {
    width: 100%;
    padding: 32px;
    border-radius: 0 0 40px 40px;
    background-image: url("../img/bg-dashboard-header.jpg");
    background-size: cover;
    background-position: top right;
}


.main-content:has(.dashboard-header),
.main-content:has(.title-wrapper),
.main-content:has(.slider),
.main-content:has(.chat-wrapper) {
    padding: 0 !important;
}

input[type=search] {
    background: #fff;
    border: 1px solid #B3CEEC;
    padding: 16px 16px 16px 42px;
    border-radius: 24px;
    color: #000;
    width: 100%;
}

input[type=search]:focus-visible {
    outline: none !important;
}

.search-wrapper {
    width: 100%;
    position: relative;
    display: inline-block;
}

.search-wrapper::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    background: url(../icons/icon-search.svg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 20px;
    height: 20px;
    pointer-events: none;
}

.title-header {
    padding: 32px 24px;
    font-size: 28px;
    font-weight: 800;
    text-align: start;
}

.dashboard-item {
    border-radius: 24px;
    padding: 16px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    cursor: pointer;
}

.dashboard-slider-item {
    border-radius: 24px;
    padding: 16px 24px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
    cursor: pointer;
}

.dashboard-slider-item.first {
    background: #F09E62;
}

.dashboard-slider-item.second {
    background: #43BFD1;
}

.dashboard-slider-item.third {
    background: #BD6967;
}

.dashboard-slider-item.fourth {
    background: #E56796;
}

.dashboard-slider-item.fifth {
    background: #8397B0;
}

.dashboard-slider-item.sixth {
    background: #378FA7;
}

.dashboard-slider-item.seventh {
    background: #747E80;
}

.slider-small-info {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.e-carousel .e-carousel-indicators {
    bottom: -38px !important;
}

.e-carousel .e-next-icon::before {
    content: "" !important;
    display: flex !important;
    width: 30px;
    height: 30px;
    background: url("../icons/icon-chevron-forward.svg");
    background-size: cover;
}

.e-carousel .e-previous-icon::before {
    content: "" !important;
    display: flex !important;
    width: 30px;
    height: 30px;
    background: url("../icons/icon-chevron-backward.svg");
    background-size: cover;
}

.e-carousel .e-carousel-indicators.e-default .e-indicator-bar .e-indicator div {
    background-color: rgba(13, 110, 253, 0.5);
}

.avatar {
    border-radius: 9999px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 8px;
    color: #fff;
    font-weight: 600;
    font-size: 21px;
    background: #005EE6;
    aspect-ratio: 1/1;
}


.avatar.white {
    background: #fff;
    color: #1b1b1b;
}

.avatar.blue {
    background: #005EE6;
    color: #fff;
}

.avatar.orange {
    background: #BA5113;
    color: #EAD6CA;
}

.chip {
    border-radius: 32px;
    font-size: 14px;
    padding: 2px 8px;
    text-align: center;
    width: fit-content;
}

.chip.blue {
    background: #D1E9FE;
    color: #005EE6;
}

.chip.green {
    background: #499D10;
    color: #FFF;
}


.custom-btn-orange {
    background: #FB6108 !important;
    color: #fff !important;
    box-shadow: none;
}

.custom-btn-orange:hover {
    background: #FF9355;
}


.custom-icon-btn {
    width: 24px;
    height: 24px;
    object-fit: contain;
}

.profile-info-wrapper {
    padding: 32px 16px
}

.profile-info {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    /*    background: url("../img/bg-profile-info.jpg");*/
    background: #FC7B30;
    background-position: left center;
    background-size: cover;
    border-radius: 12px;
    cursor: pointer;
}

.mud-menu-list {
    padding: 0 !important;
}

.bg-white {
    background: #fff;
}

.profile-menu-popover.mud-popover {
    border-radius: 16px;
    overflow: hidden;
    min-width: 440px;
}


.popover-profile-header {
    background: url("../img/bg-profile-info.jpg");
    background-position: left center;
    background-size: cover;
    padding: 12px 16px;
}

.popover-profile-footer {
    padding: 12px 16px;
}

.custom-select .mud-input-control-input-container {
    border: none;
    border-radius: 8px;
    background: #FFC19D;
    padding: 12px;
    color: #98410F;
}

.custom-select .mud-input.mud-input-underline:before {
    border-bottom: none !important;
}

.custom-select .mud-input>input.mud-input-root,
div.mud-input-slot.mud-input-root {
    color: #98410F !important;
}

.custom-select .mud-input:focus-within {
    border: none !important;
}

button {
    text-transform: none !important;
}

.mud-tabs-tabbar {
    box-shadow: none;
    background: transparent;
    width: 100%;
}

.mud-tabs-tabbar .mud-tabs-tabbar-inner {
    width: 100%;
}

.tab-center .mud-tabs-tabbar {
    display: flex;
    justify-content: center;
}

.tab-start .mud-tabs-tabbar {
    display: flex;
    justify-content: start;
}



.group-tabbing .mud-tabs-tabbar-wrapper {
    border: 1px solid #858585;
    border-radius: 24px;
    overflow: hidden;
}

.group-tabbing .mud-tab {
    padding: 10px 20px !important;
    background: #FFF !important;
    color: #1F1F1F !important;
    min-height: unset;
    font-size: 20px;
    text-transform: unset;
    min-width: unset !important;
    line-height: 1;
}

.group-tabbing .mud-tab.mud-tab-active {
    background: #0360D9 !important;
    color: #fff !important;
}

.pill-tabs>.mud-tabs-tabbar .mud-tabs-tabbar-content {
    align-content: center !important;
}

/* --- pill tabs --- */
.pill-tabs>.mud-tabs-tabbar .mud-tab {
    padding: 10px 20px !important;
    border: 1px solid #E9E9E9 !important;
    border-radius: 24px !important;
    background: #FFF !important;
    color: #1F1F1F !important;
    min-height: unset !important;
    font-size: 20px !important;
    text-transform: unset !important;
    min-width: unset !important;
    line-height: 1 !important;
}

@media screen and (max-width: 991px) {

    /* --- pill tabs --- */
    .pill-tabs>.mud-tabs-tabbar .mud-tab {
        padding: 4px 10px !important;
        border-radius: 16px !important;
        font-size: 12px !important;
    }
}

/* aktif pill */
.pill-tabs>.mud-tabs-tabbar .mud-tab.mud-tab-active {
    background: #E5EFFC !important;
    color: #005EE6 !important;
    border-color: #005EE6 !important;
}


/* --- line tabs --- */
.line-tabs>.mud-tabs-tabbar .mud-tab {
    padding: 10px 20px !important;
    border-bottom: 4px solid transparent !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #1F1F1F !important;
    min-height: unset !important;
    font-size: 20px !important;
    text-transform: unset !important;
    min-width: unset !important;
    line-height: 1 !important;
}

/* aktif line */
.line-tabs>.mud-tabs-tabbar .mud-tab.mud-tab-active {
    background: transparent !important;
    color: #0360D9 !important;
    border-bottom: 4px solid #0360D9 !important;
}



.mud-tab-slider {
    display: none;
}

.add-tab-gap .mud-tabs-tabbar-wrapper {
    gap: 16px;
}

/* Prevent tabs from scrolling out of view when navigating directly to a tab */
.mud-tabs>.mud-tabs-tabbar {
    flex-shrink: 0;
}

/* Disable auto-scroll to active tab panel */
.mud-tabs>.mud-tabs-panels>.mud-tabpanel {
    scroll-margin: 0;
}

/* Allow the tab strip to scroll horizontally (swipe / programmatic) on line-tabs.
   Targets .mud-tabs-tabbar-content specifically, NOT .mud-tabs-tabbar-inner - the inner element
   is the flex row that also holds the prev/next scroll buttons, and scrolling it drags those
   buttons along with the tabs. -content is the clipped box around just the tab strip, with the
   buttons sitting outside it as flex siblings, so it can scroll on its own without moving them. */
.line-tabs>.mud-tabs-tabbar .mud-tabs-tabbar-content {
    overflow-x: auto;
    scrollbar-width: none;
    /* Firefox */
    -ms-overflow-style: none;
    /* IE and Edge */
}

.line-tabs>.mud-tabs-tabbar .mud-tabs-tabbar-content::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari, Opera */
}

/* Make tabs smaller on mobile to prevent overflow */
@media screen and (max-width: 768px) {
    .line-tabs>.mud-tabs-tabbar .mud-tab {
        padding: 8px 12px !important;
        font-size: 14px !important;
    }

    .add-tab-gap .mud-tabs-tabbar-wrapper {
        gap: 8px;
    }
}

.custom-tab-content {
    margin-top: 32px;
}

.mud-breadcrumbs .mud-breadcrumb-item a {
    text-decoration: none;
    color: #000;
    font-weight: 500;
}

.mud-breadcrumbs .mud-breadcrumb-item:nth-last-child(1) a {
    color: #FB6108 !important;
    font-weight: 600;
    pointer-events: none;
}

.e-grid .e-headercell,
.e-grid .e-detailheadercell {
    background: #1E63F4 !important;
    color: #fff !important;
    padding: 24px 12px;
}

.title-wrapper {
    padding: 12px 16px;
    border-left: 8px solid #FB6108;
    font-weight: 700;
    font-size: 24px;
}

/*.e-accordion .e-tgl-collapse-icon::before {
    content: "\2b9f";
}*/

.e-acrdn-header {
    position: relative;
}

.e-acrdn-header-content {
    width: 100%;
}

.e-toggle-icon {
    top: 50% !important;
    transform: translateY(-50%);
}

.custom-accordion .accordion-button:not(.collapsed) {
    background: #fff !important;
    box-shadow: none;
}

.default-timeline-section .e-timeline {
    --dot-size: 22px;
}


.default-timeline-section .e-dot::before {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    background-color: #9F9F9F;
    border-radius: 50%;
    margin: auto;
    position: relative;
    top: 0;
    min-width: 0;
    min-height: 0;
}

.default-timeline-section .e-dot-item {
    top: 5px;
}

.default-timeline-section .e-dot {
    background-color: white;
    border: 2px solid #9F9F9F;
    outline: none;
    box-shadow: none;
    width: var(--dot-size, 20px);
    height: var(--dot-size, 20px);
    border-radius: 50%;
}

.default-timeline-section .e-timeline .e-timeline-item.e-connector::after {
    border-color: #9F9F9F;
    border-style: dashed;
    left: calc(var(--dot-size) + (var(--dot-size) / 2) - 1px) !important;
    top: 12px;
}

.default-timeline-section .e-timeline-item .e-opposite-content {
    display: none;
}


.distance-data {
    position: absolute;
    top: 50%;
    left: calc(var(--dot-size) + (var(--dot-size) / 2) - 1px) !important;
    transform: translate(-50%, -50%);
    background: #F8F8F8;
    font-size: 12px;
    color: #858585;
    width: 40px;
    text-align: center;
    z-index: 1000;
}

.e-icons {
    font-family: 'e-icons' !important;
}


.customs-dropdown.e-ddl.e-control-wrapper {
    padding: 8px 0;
    /*    border-radius: var(--bs-border-radius-pill);*/
    border-radius: 8px;
    font-size: 16px;
}

.customs-dropdown .e-dropdownbase .e-list-item,
.customs-dropdown .e-dropdownbase .e-list-item.e-item-focus {
    color: #1F1F1F;
    padding: 12px 24px 12px 64px;
    font-size: 16px !important;
    position: relative;
    border-bottom: 1px solid #858585;
}

.customs-dropdown.no-icon .e-dropdownbase .e-list-item,
.customs-dropdown.no-icon .e-dropdownbase .e-list-item.e-item-focus {
    color: #1F1F1F;
    padding: 8px 12px;
    font-size: 16px !important;
    position: relative;
    border-bottom: 1px solid #858585;
}

.customs-dropdown.no-icon .e-dropdownbase .e-list-item::before {
    display: none;
}

.customs-dropdown .e-dropdownbase .e-list-item::before {
    content: "";
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    background: url("../icons/icon-vessel-hitam.svg");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}



.custom-dropdown.e-input-group.e-input-focus:hover:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled):not(.e-float-icon-left),
.e-outline.e-input-group.e-input-focus.e-control-wrapper:hover:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled):not(.e-float-icon-left),
.e-outline.e-input-group.e-input-focus:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled),
.e-outline.e-input-group.e-control-wrapper.e-input-focus:not(.e-success):not(.e-warning):not(.e-error):not(.e-disabled) {
    border-color: #b1bd15;
    box-shadow: inset 1px 1px #b1bd15, inset -1px 0 #b1bd15, inset 0 -1px #b1bd15;
}

.customs-dropdown .e-dropdownbase .e-list-item.e-item-focus,
.customs-dropdown .e-dropdownbase .e-list-item.e-active,
.customs-dropdown .e-dropdownbase .e-list-item.e-active.e-hover,
.customs-dropdown .e-dropdownbase .e-list-item.e-hover {
    background-color: #E9E9E9;
    color: #1f1f1f;
}

.customs-dropdown.e-input-focus {
    /*    border-radius: var(--bs-border-radius-pill) !important;*/
    border-radius: 8px !important;
}

.btn-close-modal {
    position: absolute;
    top: 1em;
    right: 1em;
}

.line-separator {
    position: relative;
    width: 100%;
    height: 12px;
    flex-grow: 1;
}

.line-separator::before {
    content: '';
    height: 100%;
    width: 1px;
    position: absolute;
    left: 0;
    top: 0;
    background: #858585;
}

.line-separator::after {
    content: '';
    height: 1px;
    width: 100%;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    background: #858585;
}

.divider-vertical {
    position: relative;
    padding-right: 12px;
}


.divider-vertical::before {
    content: '';
    height: 19px;
    width: 1px;
    background: #1F1F1F;
    margin: 0 4px;
    position: absolute;
    left: 0;
    top: 0;
}


.banner-slider-home {
    padding: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 20px;
    background-size: cover;
    background-position: center center;
    aspect-ratio: 1/1;
}

@media screen and (min-width: 992px) {
    .banner-slider-home {
        padding: 40px;
        height: 320px;
        width: 100%;
    }
}


.accordion-center-icon .accordion-button::after {
    margin: auto !important;
}


.ellipsis-text {
    display: inline-block;
    /* atau block / inline-block tergantung layout */
    max-width: 100%;
    /* atur sesuai kebutuhan, bisa pakai width: 200px; */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    /* opsional, untuk tampilan rata dengan teks lain */
}

.mud-dialog {
    border-radius: 16px !important;
}


.floating-chat {
    position: fixed;
    bottom: 1em;
    right: 1em;
    background: #fff;
    border-radius: 8px;
    width: 80%;
    max-width: 400px;
    height: 70%;
    max-height: 800px;
}

.floating-chat .header {
    padding: 1em;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.floating-chat .body {
    height: calc(100% - 64px);
    overflow-y: auto;
    padding: 0 16px 16px 16px;
}

.floating-chat .body:has(.chat-ui) {
    padding: 0;
}


@media (max-width: 768px) {
    .floating-chat {
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: none;
        max-height: none !important;
        border-radius: 0;
        z-index: 1399 !important;
    }

    .floating-chat .chat-list-wrapper {
        max-height: none !important;
    }
}


.e-grid .e-table {
    min-width: 100% !important;
}



/*VO Section*/


table.table-custom tr:nth-last-child(1) {
    border-bottom: 1px solid #B7B7B7
}

table.table-custom tr:nth-last-child(2) {
    border-bottom: none
}

.e-acrdn-header-content {
    width: 100%
}

.e-accordion .e-tgl-collapse-icon::before {
    content: "\e729"
}

.circle {
    width: 28px;
    height: 28px;
    border-radius: 9999px;
    background: #fff
}

.circle.blue {
    border: 4px solid #005EE6
}

/* OUTER CARD */

.e-accordion .e-acrdn-item.e-selected>.e-acrdn-header:focus {
    box-shadow: none !important;
}

.vo-outer-acc.e-accordion {
    border-radius: 18px;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
    margin-bottom: 16px;
    overflow: hidden
}

/* Header bar */
.vo-outer-header {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 20px 10px
}

.vo-left {
    display: flex;
    align-items: center;
    gap: 12px
}

.vo-dot {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #1E66F5;
    display: inline-block;
    flex-shrink: 0;
}

.vo-title-wrap {
    line-height: 1.2
}

.vo-title {
    font-weight: 800;
    font-size: 20px
}

.vo-subtitle {
    color: #2c2c2c;
    opacity: .7;
    font-weight: 700
}

.vo-date {
    margin-left: auto;
    font-weight: 700
}

.vo-sep {
    height: 1px;
    background: #e8e8e8;
    margin: 10px 20px
}

.vo-proceed {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 0 20px 12px
}

.vo-proceed-label {
    color: #1E66F5;
    font-weight: 700
}

.vo-proceed-value {
    font-weight: 800;
    font-size: 18px
}

/* INNER ACCORDION */

.vo-inner-acc {
    border: 0;
}

.vo-inner-acc .e-accordion .e-acrdn-item.e-select {
    background: none;
    border-color: unset !important;
    border-style: unset !important;
    border-width: unset !important;
}

.vo-inner-acc .e-acrdn-item {
    border-radius: 14px !important;
    border: 1px solid #B7B7B7 !important;
    margin: 12px 0;
    overflow: hidden;
}

.vo-inner-header {
    display: flex;
    align-items: center;
    padding: 14px 34px 14px 14px
}

.vo-status {
    font-weight: 800
}

.vo-status.ok {
    color: #0F766E
}

.vo-status.no {
    color: #E11D48
}

.vo-time {
    margin-left: auto;
    font-weight: 800
}

.vo-inner-body {
    padding: 14px 16px 18px
}

.vo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 18px
}

.vo-field .vo-label {
    color: #666
}

.vo-field .vo-value {
    font-weight: 800;
    font-size: 18px
}

.vo-not-recorded {
    color: #E11D48;
    font-weight: 700;
    margin-top: 4px
}

.vo-not-recorded-sub {
    color: #666
}

.vo-notes.hide {
    display: none
}

.vo-remark {
    margin-top: 10px
}

.vo-textarea {
    width: 100%
}

.vo-actions {
    margin-top: 16px
}

.vo-btn-edit {
    border-radius: 16px;
    padding: 10px 20px;
    font-weight: 700
}


/* ----- CSS Untuk swipe mobile view ----- */
/* ----- MOBILE BEHAVIOR (default) ----- */

/* Posisi default: panel tengah terlihat */
.state-center {
    transform: translateX(-100%);
}

/* Panel kiri terlihat */
.state-left {
    transform: translateX(calc(-100% + 300px));
}

/* Panel kanan terlihat */
.state-right {
    transform: translateX(calc(-100% - 300px));
}

/* ----- DESKTOP BEHAVIOR (nonaktifkan swipe) ----- */
@media (min-width: 992px) {
    .swipe-inner {
        transform: translateX(0) !important;
        /* selalu posisi tengah */
        transition: none !important;
        /* matikan animasi */
    }

    .swipe-container {
        overflow: visible !important;
        /* biar layout tidak terpotong */
    }
}

.card {
    overflow: hidden;
}


.e-chart-title {
    white-space: pre-line !important;
}

.chart-wrapper {
    flex: 1;
    min-width: 300px;
}

.icon-wrapper {
    flex-shrink: 0;
    width: 48px;
    height: 100%;
}

.card.chart {
    min-height: 300px;
    width: 100%;
    height: 100%;
    min-width: 0;
    padding: 8px;
}

/*.with-vr {
    position: relative;
}

    .with-vr:before {
        content: "";
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        height: 50px;
        width: 1px;
        background: #005EE6;
    }

    .with-vr:after {
        content: "";
        position: absolute;
        left: -1px;
        top: 50%;
        transform: translateY(-50%);
        height: 50px;
        width: 1px;
        background: #005EE6;
    }*/

@media screen and (min-width: 992px) {
    .border-lg-end {
        border-right: 1px solid #fff !important;
    }
}

/*pagination*/

.e-pager.e-adaptive {
    flex-wrap: wrap;
}

@media screen and (max-width: 991px) {
    .e-pager.e-adaptive {
        justify-content: center;
    }
}

/* "LT" (Local Time) postfix shown inside a time-activity input, next to the picked value */
.time-field-lt {
    position: relative;
}

.time-field-lt .e-input-group input.e-input,
.time-field-lt .e-time-wrapper input.e-input {
    padding-right: 60px !important;
}

.time-field-lt .lt-suffix {
    position: absolute;
    top: 50%;
    right: 54px;
    transform: translateY(-50%);
    font-size: 12px;
    font-weight: 700;
    color: rgba(0, 0, 0, 0.6);
    pointer-events: none;
    z-index: 3;
}
