/*
* demo.css
* File include item demo only specific css only
******************************************************************************/

.menu .app-brand.demo {
    height: 64px;
    margin-top: 12px;
}

.app-brand-logo.demo svg {
    width: 22px;
    height: 38px;
}

.app-brand-logo.demo img {
    width: 22px;
    height: 38px;
}

.app-brand-text.demo {
    font-size: 1.75rem;
    letter-spacing: -0.5px;
    text-transform: lowercase;
}

/* ! For .layout-navbar-fixed added fix padding top to .layout-page */
/* Detached navbar */
.layout-navbar-fixed .layout-wrapper:not(.layout-horizontal):not(.layout-without-menu) .layout-page {
    padding-top: 76px !important;
}

/* Default navbar */
.layout-navbar-fixed .layout-wrapper:not(.layout-without-menu) .layout-page {
    padding-top: 64px !important;
}

.docs-page .layout-navbar-fixed.layout-wrapper:not(.layout-without-menu) .layout-page,
.docs-page .layout-menu-fixed.layout-wrapper:not(.layout-without-menu) .layout-page {
    padding-top: 62px !important;
}

/* Navbar page z-index issue solution */
.content-wrapper .navbar {
    z-index: auto;
}

/* ApexChart */
.apexcharts-legend {
    display: flex;
    overflow: auto;
    padding: 0 10px;
}

.apexcharts-legend.apx-legend-position-bottom,
.apexcharts-legend.apx-legend-position-top {
    flex-wrap: wrap;
}

.apexcharts-legend.apx-legend-position-right,
.apexcharts-legend.apx-legend-position-left {
    flex-direction: column;
    bottom: 0;
}

.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left,
.apexcharts-legend.apx-legend-position-top.apexcharts-align-left,
.apexcharts-legend.apx-legend-position-right,
.apexcharts-legend.apx-legend-position-left {
    justify-content: flex-start;
}

.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center,
.apexcharts-legend.apx-legend-position-top.apexcharts-align-center {
    justify-content: center;
}

.apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right,
.apexcharts-legend.apx-legend-position-top.apexcharts-align-right {
    justify-content: flex-end;
}

.apexcharts-legend-series {
    cursor: pointer;
    line-height: normal;
}

.apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series,
.apexcharts-legend.apx-legend-position-top .apexcharts-legend-series {
    display: flex;
    align-items: center;
}

.apexcharts-legend-text {
    position: relative;
    font-size: 14px;
}

.apexcharts-legend-text *,
.apexcharts-legend-marker * {
    pointer-events: none;
}

.apexcharts-legend-marker {
    position: relative;
    display: inline-block;
    cursor: pointer;
    margin-right: 3px;
    border-style: solid;
}

.apexcharts-legend.apexcharts-align-right .apexcharts-legend-series,
.apexcharts-legend.apexcharts-align-left .apexcharts-legend-series {
    display: inline-block;
}

.apexcharts-legend-series.apexcharts-no-click {
    cursor: auto;
}

.apexcharts-legend .apexcharts-hidden-zero-series,
.apexcharts-legend .apexcharts-hidden-null-series {
    display: none !important;
}

.apexcharts-inactive-legend {
    opacity: 0.45;
}

#JadawlStatisticsChart .apexcharts-legend-series {
    border: 1px solid var(--bs-border-color);
    block-size: 83%;
    margin-block-end: 0.4375rem !important;
    padding-block: 4px;
    padding-inline: 12px;
    padding-inline-start: 17px;
    border-radius: var(--bs-border-radius);
}

#JadawlStatisticsChart .apexcharts-legend-text {
    color: #51565a;
}

/*
* Content
******************************************************************************/

.demo-blocks>* {
    display: block !important;
}

.demo-inline-spacing>* {
    margin: 1rem 0.375rem 0 0 !important;
}

/* ? .demo-vertical-spacing class is used to have vertical margins between elements. To remove margin-top from the first-child, use .demo-only-element class with .demo-vertical-spacing class. For example, we have used this class in forms-input-groups.html file. */
.demo-vertical-spacing>* {
    margin-top: 1rem !important;
    margin-bottom: 0 !important;
}

.demo-vertical-spacing.demo-only-element> :first-child {
    margin-top: 0 !important;
}

.demo-vertical-spacing-lg>* {
    margin-top: 1.875rem !important;
    margin-bottom: 0 !important;
}

.demo-vertical-spacing-lg.demo-only-element> :first-child {
    margin-top: 0 !important;
}

.demo-vertical-spacing-xl>* {
    margin-top: 5rem !important;
    margin-bottom: 0 !important;
}

.demo-vertical-spacing-xl.demo-only-element> :first-child {
    margin-top: 0 !important;
}

.rtl-only {
    display: none !important;
    text-align: left !important;
    direction: ltr !important;
}

[dir="rtl"] .rtl-only {
    display: block !important;
}

/* Dropdown buttons going out of small screens */
@media (max-width: 576px) {
    #dropdown-variation-demo .btn-group .text-truncate {
        width: 231px;
        position: relative;
    }

    #dropdown-variation-demo .btn-group .text-truncate::after {
        position: absolute;
        top: 45%;
        right: 0.65rem;
    }
}

/*
* Layout demo
******************************************************************************/

.layout-demo-wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    margin-top: 1rem;
}

.layout-demo-placeholder img {
    width: 900px;
}

.layout-demo-info {
    text-align: center;
    margin-top: 1rem;
}

.user-profile-header-banner img {
    width: 100%;
    object-fit: cover;
    height: 250px;
}

.user-profile-header {
    margin-top: -2rem;
}

.user-profile-header .user-profile-img {
    border: 5px solid;
    width: 120px;
}

.light-style .user-profile-header .user-profile-img {
    border-color: #fff;
}

.dark-style .user-profile-header .user-profile-img {
    border-color: #2b2c40;
}

.dataTables_wrapper .card-header .dataTables_filter label {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

@media (max-width: 767.98px) {
    .user-profile-header-banner img {
        height: 150px;
    }

    .user-profile-header .user-profile-img {
        width: 100px;
    }
}

.stick-top {
    position: sticky;
    bottom: 0;
    top: 10px;
}

.stick-top.course-content-fixed {
    top: 80px;
}

@media (max-width: 575.98px) {

    .invoice-edit .invoice-preview-card .invoice-calculations,
    .invoice-add .invoice-preview-card .invoice-calculations {
        width: 100%;
    }
}

@media (min-width: 768px) {

    .invoice-edit .repeater-title,
    .invoice-add .repeater-title {
        position: absolute;
        top: -2.4rem;
    }
}

.invoice-edit .invoice-preview-card .repeater-wrapper:not(:last-child),
.invoice-add .invoice-preview-card .repeater-wrapper:not(:last-child) {
    margin-bottom: 1.5rem;
}

@media print {

    .invoice-edit hr,
    .invoice-add hr {
        margin-top: 1rem !important;
        margin-bottom: 1rem !important;
    }
}

.invoice-preview .invoice-preview-header,
.invoice-edit .invoice-preview-header,
.invoice-add .invoice-preview-header {
    background-color: rgba(34, 48, 62, 0.06);
}

.dark-style .invoice-preview .invoice-preview-header,
.dark-style .invoice-edit .invoice-preview-header,
.dark-style .invoice-add .invoice-preview-header {
    background-color: rgba(230, 230, 241, 0.06);
}

.app-academy .app-academy-img-height {
    height: 130px;
}

@media (min-width: 768px) {
    .app-academy .app-academy-md-25 {
        width: 25%;
    }

    .app-academy .app-academy-md-50 {
        width: 50%;
    }

    .app-academy .app-academy-md-80 {
        width: 80%;
    }
}

@media (min-width: 576px) {
    .app-academy .app-academy-sm-40 {
        width: 40% !important;
    }

    .app-academy .app-academy-sm-60 {
        width: 60% !important;
    }
}

@media (min-width: 1200px) {
    .app-academy .app-academy-xl-100 {
        width: 100% !important;
    }

    .app-academy .app-academy-xl-100 {
        width: 100% !important;
    }
}

.app-logistics-fleet-wrapper {
    position: relative;
    overflow: hidden;
    border: none;
    block-size: calc(100vh - 14.1rem)
}

@media(max-width: 1199.98px) {
    .app-logistics-fleet-wrapper {
        block-size: calc(100vh - 10.5rem)
    }
}

.layout-navbar-hidden .app-logistics-fleet-wrapper {
    block-size: calc(100vh - 6.5rem)
}

.layout-navbar-hidden .app-logistics-fleet-wrapper .logistics-fleet-sidebar-body {
    block-size: calc(100vh - 15.8rem + 4rem)
}

.app-logistics-fleet-wrapper .app-logistics-fleet-sidebar {
    position: absolute;
    z-index: 2;
    overflow: hidden;
    flex-basis: 21.5rem;
    flex-grow: 0;
    background-color: var(--bs-paper-bg);
    block-size: 100%;
    inline-size: 21.5rem;
    inset-inline-start: calc(-21.5rem - 1.2rem);
    transition: all .3s
}

.app-logistics-fleet-wrapper .app-logistics-fleet-sidebar.show {
    inset-inline-start: 0
}

.app-logistics-fleet-wrapper .close-sidebar {
    position: absolute;
    background-color: var(--bs-heading-color);
    inset-block-start: 1.5rem;
    inset-inline-end: 1.5rem
}

.app-logistics-fleet-wrapper .logistics-fleet-sidebar-body {
    block-size: calc(100vh - 13rem)
}

@media(min-width: 1200px) {
    .app-logistics-fleet-wrapper .logistics-fleet-sidebar-body {
        block-size: calc(100vh - 15.8rem)
    }
}

@media(max-width: 767.98px) {
    .app-logistics-fleet-wrapper {
        block-size: calc(100vh - 11.5rem)
    }

    .app-logistics-fleet-wrapper .logistics-fleet-sidebar-body {
        block-size: calc(100vh - 15.8rem + .8rem)
    }

    .layout-navbar-hidden .app-logistics-fleet-wrapper {
        block-size: calc(100vh - 7.5rem)
    }

    .layout-navbar-hidden .app-logistics-fleet-wrapper .logistics-fleet-sidebar-body {
        block-size: calc(100vh - 15.8rem + 2.5rem)
    }
}

@media(min-width: 768px) {
    .app-logistics-fleet-wrapper .app-logistics-fleet-sidebar {
        position: static;
        background-color: rgba(0, 0, 0, 0);
        block-size: auto
    }
}

.app-logistics-fleet-wrapper .btn-white.btn-white-dark-variant {
    box-shadow: 0 .0625rem .3175rem 0 rgba(34, 48, 62, .06);
    color: #384551
}

/* ==========================================================================
   OFFICIAL GLOBAL PUPR BRAND THEME SYSTEM (NAVY BLUE #002B49, GOLD #FFC107, WHITE #FFFFFF)
   ========================================================================== */

:root {
    --pupr-navy: #002B49;
    --pupr-navy-dark: #001A2C;
    --pupr-navy-light: #003F6B;
    --pupr-yellow: #FFC107;
    --pupr-yellow-hover: #E0A800;
    --pupr-yellow-dark: #D97706;
    --pupr-yellow-light: #FFFBEB;
    --pupr-white: #FFFFFF;
    --pupr-gray-bg: #F8FAFC;
    --pupr-gray-border: #E2E8F0;
    --pupr-text-main: #0F172A;
    --pupr-text-muted: #64748B;
}

/* 1. CARDS & ARCHITECTURE */
.card {
    border: 1px solid var(--pupr-gray-border) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 18px rgba(0, 43, 73, 0.04) !important;
    background-color: var(--pupr-white) !important;
    overflow: hidden;
    margin-bottom: 1.5rem !important;
}

.card-header {
    background-color: var(--pupr-navy) !important;
    border-bottom: 3px solid var(--pupr-yellow) !important;
    color: var(--pupr-white) !important;
    font-weight: 700 !important;
    padding: 1rem 1.5rem !important;
}

.card-header h1, .card-header h2, .card-header h3,
.card-header h4, .card-header h5, .card-header h6,
.card-header .card-title {
    color: var(--pupr-white) !important;
    margin-bottom: 0 !important;
}

.card-body {
    padding: 1.5rem !important;
}

.card-footer {
    background-color: var(--pupr-gray-bg) !important;
    border-top: 1px solid var(--pupr-gray-border) !important;
    padding: 1rem 1.5rem !important;
}

/* MODERN CARD HEADERS FOR DETAIL & FORM VIEWS */
.card-header-modern {
    padding: 1rem 1.5rem !important;
    border-bottom: 1px solid var(--pupr-gray-border) !important;
}

.card-header-modern.header-customer,
.card-header-modern.header-permohonan,
.card-header-modern.header-survei,
.card-header-modern.header-sertifikat,
.card-header-modern.header-dokumen {
    background: var(--pupr-navy) !important;
    border-left: 5px solid var(--pupr-yellow) !important;
    border-bottom-color: var(--pupr-navy-dark) !important;
}

.card-header-modern.header-customer h6,
.card-header-modern.header-permohonan h6,
.card-header-modern.header-survei h6,
.card-header-modern.header-sertifikat h6,
.card-header-modern.header-dokumen h6 {
    color: var(--pupr-white) !important;
    margin-bottom: 0 !important;
}

.card-header-modern.header-skrd,
.card-header-modern.header-invoice {
    background: var(--pupr-yellow-light) !important;
    border-left: 5px solid var(--pupr-yellow-dark) !important;
    border-bottom-color: #fef08a !important;
}

.card-header-modern.header-skrd h6,
.card-header-modern.header-invoice h6 {
    color: var(--pupr-navy) !important;
    margin-bottom: 0 !important;
}

/* 2. FORM LABELS & SPACING (CLEAN & PROPORTIONAL) */
.form-label,
label.form-label,
.col-form-label {
    color: var(--pupr-navy) !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    margin-bottom: 0.45rem !important;
    padding-top: 0.25rem !important;
    letter-spacing: 0.2px;
    display: inline-block;
}

.form-group,
.mb-3 {
    margin-bottom: 1.25rem !important;
}

.form-control,
.form-select,
.bootstrap-tagsinput {
    padding: 0.55rem 0.85rem !important;
    border-radius: 8px !important;
    border: 1px solid var(--pupr-gray-border) !important;
    font-size: 0.9rem !important;
    color: var(--pupr-text-main) !important;
    background-color: var(--pupr-white) !important;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--pupr-navy) !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 43, 73, 0.14) !important;
    outline: 0 !important;
}

.input-group .input-group-text {
    background-color: var(--pupr-navy) !important;
    color: var(--pupr-white) !important;
    border-color: var(--pupr-navy) !important;
    border-radius: 8px 0 0 8px !important;
    font-weight: 600 !important;
}

.form-text,
.small.text-muted {
    margin-top: 0.35rem !important;
    font-size: 0.785rem !important;
    color: var(--pupr-text-muted) !important;
}

/* 3. BUTTONS SYSTEM */
.btn {
    border-radius: 8px !important;
    padding: 0.5rem 1.2rem !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    transition: all 0.2s ease-in-out !important;
}

.btn-sm {
    padding: 0.35rem 0.85rem !important;
    font-size: 0.8125rem !important;
}

.btn-lg {
    padding: 0.65rem 1.5rem !important;
    font-size: 0.95rem !important;
}

.btn-primary,
.btn-success,
.btn-info,
.btn-pupr-blue {
    background-color: var(--pupr-navy) !important;
    border-color: var(--pupr-navy) !important;
    color: var(--pupr-white) !important;
}

.btn-primary:hover,
.btn-success:hover,
.btn-info:hover,
.btn-pupr-blue:hover,
.btn-primary:focus,
.btn-success:focus,
.btn-info:focus,
.btn-pupr-blue:focus {
    background-color: var(--pupr-navy-dark) !important;
    border-color: var(--pupr-navy-dark) !important;
    color: var(--pupr-white) !important;
    box-shadow: 0 4px 14px rgba(0, 43, 73, 0.25) !important;
}

.btn-warning,
.btn-pupr-yellow {
    background-color: var(--pupr-yellow) !important;
    border-color: var(--pupr-yellow) !important;
    color: var(--pupr-navy) !important;
    font-weight: 700 !important;
}

.btn-warning:hover,
.btn-pupr-yellow:hover,
.btn-warning:focus,
.btn-pupr-yellow:focus {
    background-color: var(--pupr-yellow-hover) !important;
    border-color: var(--pupr-yellow-hover) !important;
    color: var(--pupr-navy) !important;
    box-shadow: 0 4px 14px rgba(255, 193, 7, 0.3) !important;
}

.btn-outline-primary,
.btn-outline-success,
.btn-outline-info,
.btn-outline-secondary {
    border-color: var(--pupr-navy) !important;
    color: var(--pupr-navy) !important;
    background-color: transparent !important;
}

.btn-outline-primary:hover,
.btn-outline-success:hover,
.btn-outline-info:hover,
.btn-outline-secondary:hover {
    background-color: var(--pupr-navy) !important;
    color: var(--pupr-white) !important;
}

.btn-outline-warning {
    border-color: var(--pupr-yellow-dark) !important;
    color: var(--pupr-yellow-dark) !important;
}

.btn-outline-warning:hover {
    background-color: var(--pupr-yellow) !important;
    color: var(--pupr-navy) !important;
}

/* 4. TABLES & DATATABLES (CLEAN BORDERLESS SURROUNDING) */
.table {
    margin-bottom: 0 !important;
    border-color: #f1f5f9 !important;
}

.card-datatable {
    border: none !important;
}

.card-datatable .dataTables_wrapper,
div.dataTables_wrapper {
    border: none !important;
    box-shadow: none !important;
}

table.dataTable,
table.dataTable.no-footer,
.dataTables_wrapper table.dataTable,
.table-responsive > table.dataTable,
.card-datatable table.dataTable {
    border: none !important;
    border-top: none !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
}

table.dataTable thead th,
table.dataTable thead td,
.table thead th,
.table-success,
.table-primary {
    background-color: var(--pupr-navy) !important;
    color: var(--pupr-white) !important;
    border-bottom: 2px solid var(--pupr-yellow) !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    padding: 0.75rem 1rem !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
}

.table thead th a,
.table thead th i {
    color: var(--pupr-white) !important;
}

.table tbody td,
table.dataTable tbody td,
table.dataTable tbody th {
    padding: 0.75rem 1rem !important;
    vertical-align: middle !important;
    font-size: 0.875rem !important;
    color: var(--pupr-text-main) !important;
    border-left: none !important;
    border-right: none !important;
    border-bottom: 1px solid #f1f5f9 !important;
}

table.dataTable tfoot th,
table.dataTable tfoot td {
    border: none !important;
}

table.dataTable.table-bordered,
.table-bordered.dataTable,
.card-datatable .table-bordered {
    border: none !important;
}

div.dataTables_scrollHead,
div.dataTables_scrollBody,
div.dataTables_scrollFoot {
    border: none !important;
}

.table-hover tbody tr:hover {
    background-color: #f1f5f9 !important;
}

/* 5. BADGES & LABELS CONTRAST HARMONIZATION */
.badge {
    padding: 0.4em 0.8em !important;
    font-size: 0.785rem !important;
    border-radius: 50rem !important;
    font-weight: 600 !important;
}

.badge.bg-primary,
.badge.bg-success,
.badge.bg-info {
    background-color: var(--pupr-navy) !important;
    color: var(--pupr-white) !important;
}

.badge.bg-warning {
    background-color: var(--pupr-yellow) !important;
    color: var(--pupr-navy) !important;
    font-weight: 700 !important;
}

.bg-label-primary,
.bg-label-success,
.bg-label-info,
.bg-label-secondary,
.badge.bg-purple,
.badge.bg-label-purple {
    background-color: #f1f5f9 !important;
    color: var(--pupr-navy) !important;
    border: 1px solid #cbd5e1 !important;
    font-weight: 600 !important;
}

.bg-label-warning {
    background-color: #fffbeb !important;
    color: var(--pupr-yellow-dark) !important;
    border: 1px solid #fde68a !important;
    font-weight: 700 !important;
}

.bg-label-danger {
    background-color: #fef2f2 !important;
    color: #dc2626 !important;
    border: 1px solid #fca5a5 !important;
}

/* 6. TYPOGRAPHY & HEADER TITLES */
h1, h2, h3, h4, h5, h6,
.page-title,
.fw-bold.py-1 {
    color: var(--pupr-navy);
}

.text-pupr-blue, .text-pupr-navy { color: var(--pupr-navy) !important; }
.text-pupr-yellow, .text-pupr-amber { color: var(--pupr-yellow-dark) !important; }
.bg-pupr-blue, .bg-pupr-navy { background-color: var(--pupr-navy) !important; color: #fff !important; }
.bg-pupr-yellow, .bg-pupr-amber { background-color: var(--pupr-yellow) !important; color: var(--pupr-navy) !important; }

/* 7. FORM & COMPONENT ARCHITECTURE */
.card-modern,
.card-pupr-form,
.card-modern-form {
    border: 1px solid var(--pupr-gray-border) !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.04) !important;
    background: #ffffff !important;
    overflow: hidden;
    margin-bottom: 1.5rem !important;
    transition: all 0.2s ease-in-out;
}

.card-modern:hover {
    box-shadow: 0 6px 24px rgba(15, 23, 42, 0.07) !important;
}

.card-body-spacious {
    padding: 1.35rem 1.5rem !important;
}

.card-footer-modern {
    padding: 1rem 1.5rem !important;
    background-color: #F8FAFC !important;
    border-top: 1px solid #F1F5F9 !important;
}

.header-bar-pupr {
    background: var(--pupr-navy) !important;
    border-left: 6px solid var(--pupr-yellow) !important;
    padding: 1.15rem 1.5rem !important;
    color: var(--pupr-white) !important;
}

.section-divider-title {
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    color: var(--pupr-navy) !important;
    background-color: var(--pupr-gray-bg) !important;
    padding: 0.65rem 1rem !important;
    border-radius: 8px !important;
    border-left: 4px solid var(--pupr-navy) !important;
    margin-top: 1rem !important;
    margin-bottom: 1.25rem !important;
}

/* FORM ROWS & VALUE PAIRS (GOVERNMENT STANDARD) */
.formal-row {
    display: flex;
    align-items: center;
    padding: 0.65rem 0 !important;
    border-bottom: 1px solid #F1F5F9;
    font-size: 0.885rem;
}

.formal-row:last-child {
    border-bottom: none;
}

.formal-label {
    width: 190px;
    flex-shrink: 0;
    color: var(--pupr-navy) !important;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    display: flex;
    align-items: center;
}

.formal-colon {
    width: 15px;
    flex-shrink: 0;
    font-weight: 600;
    color: #94A3B8;
}

.formal-value {
    flex-grow: 1;
    color: #0F172A;
    font-weight: 600;
    font-size: 0.9rem;
    word-break: break-word;
}

.formal-summary-box {
    background: #F8FAFC !important;
    border: 1px solid var(--pupr-gray-border) !important;
    border-radius: 10px !important;
    padding: 1rem 1.25rem !important;
}

.search-pelanggan-box {
    background-color: #F0F7FF !important;
    border: 1px solid #BAE6FD !important;
    border-radius: 10px !important;
    padding: 1.15rem 1.25rem !important;
    margin-bottom: 1.25rem !important;
}

/* 8. ICON BOX BADGES */
.icon-box-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background-color: #FFFFFF;
    box-shadow: 0 2px 5px rgba(0,0,0,0.06);
    margin-right: 0.75rem;
    font-size: 1.25rem;
}
.icon-box-badge.blue { color: var(--pupr-navy); }
.icon-box-badge.yellow { color: var(--pupr-yellow-dark); }
.icon-box-badge.slate { color: #64748B; }

/* 9. TIMELINE & PROCESS TRACKING WIDGET */
.timeline-scroll-wrapper {
    overflow-x: auto;
    padding-bottom: 8px;
}
.timeline-scroll-wrapper::-webkit-scrollbar {
    height: 6px;
}
.timeline-scroll-wrapper::-webkit-scrollbar-thumb {
    background: #cbd5e1;
    border-radius: 4px;
}
.timeline-inner-container {
    min-width: 680px;
    position: relative;
    padding: 10px 8px;
}

/* 10. BADGE STATUS FRONTEND & STANDARDIZED PILLS */
.badge-status-frontend {
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}
.badge-status-frontend.diajukan { background: #e0f2fe; color: #0369a1; border: 1px solid #7dd3fc; }
.badge-status-frontend.disurvey { background: #fef3c7; color: #b45309; border: 1px solid #fde68a; }
.badge-status-frontend.skrd_terbit, .badge-status-frontend.draf_skrd { background: #e0e7ff; color: #3730a3; border: 1px solid #a5b4fc; }
.badge-status-frontend.diverifikasi { background: #e0e7ff; color: #3730a3; border: 1px solid #a5b4fc; }
.badge-status-frontend.disetujui_pa { background: #fef3c7; color: #b45309; border: 1px solid #fde68a; }
.badge-status-frontend.dibayar { background: #dcfce7; color: #15803d; border: 1px solid #86efac; }
.badge-status-frontend.pengujian, .badge-status-frontend.sewa_aktif { background: #e0f2fe; color: #0284c7; border: 1px solid #38bdf8; }
.badge-status-frontend.selesai { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.badge-status-frontend.ditolak { background: #fee2e2; color: #b91c1c; border: 1px solid #fca5a5; }
.badge-status-frontend.dibatalkan { background: #f1f5f9; color: #475569; border: 1px solid #cbd5e1; }

/* 11. SUPPORTING FILE CHIPS */
.doc-chip {
    padding: 0.55rem 0.85rem;
    border-radius: 8px;
    border: 1px solid #E2E8F0;
    background-color: #FFFFFF;
    transition: all 0.15s ease-in-out;
}
.doc-chip:hover {
    border-color: #93C5FD;
    background-color: #F8FAFC;
}

/* 12. UNIFIED BUTTON HELPERS */
.btn-custom {
    padding: 0.5rem 1.25rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: 0.875rem;
    transition: all 0.2s ease-in-out;
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
}
.btn-pupr-outline-blue, .btn-pupr-outline-navy {
    background-color: #FFFFFF !important;
    color: var(--pupr-navy) !important;
    border: 1px solid #93C5FD !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04) !important;
}
.btn-pupr-outline-blue:hover, .btn-pupr-outline-navy:hover {
    background-color: #EFF6FF !important;
    color: var(--pupr-navy-dark) !important;
    border-color: var(--pupr-navy) !important;
    transform: translateY(-1px);
}
.btn-pupr-amber {
    background-color: var(--pupr-yellow) !important;
    color: var(--pupr-navy) !important;
    font-weight: 700 !important;
    border: 1px solid var(--pupr-yellow) !important;
}
.btn-pupr-amber:hover {
    background-color: var(--pupr-yellow-dark) !important;
    color: var(--pupr-white) !important;
}

.modal-header-pupr {
    background: var(--pupr-navy) !important;
    color: var(--pupr-white) !important;
    border-bottom: 3px solid var(--pupr-yellow) !important;
}

/* 13. STATS CARD WIDGETS & COUNTERS */
.stats-card-widget {
    transition: transform 0.25s ease-in-out, box-shadow 0.25s ease-in-out;
    cursor: pointer;
}
.stats-card-widget:hover {
    transform: translateY(-4px);
    box-shadow: 0 0.5rem 1.25rem rgba(0, 43, 73, 0.12) !important;
}
.stats-card-widget.active-filter {
    border-top: 4px solid var(--pupr-yellow) !important;
    box-shadow: 0 0.5rem 1.25rem rgba(0, 43, 73, 0.18) !important;
}

/* 14. VERTICAL TIMELINE WIDGET (WORK ORDERS & LOGS) */
.timeline-widget {
    position: relative;
    padding-left: 28px;
}
.timeline-widget::before {
    content: '';
    position: absolute;
    left: 11px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: #e2e8f0;
}
.timeline-item {
    position: relative;
    margin-bottom: 20px;
}
.timeline-item:last-child {
    margin-bottom: 0;
}
.timeline-badge {
    position: absolute;
    left: -28px;
    top: 2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    z-index: 1;
    box-shadow: 0 0 0 3px #fff;
}
.timeline-content {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 14px;
}

/* 15. BAST & OFFICIAL DOCUMENT PRINT STYLES */
.bast-print-wrapper {
    font-family: Tahoma, Arial, Helvetica, sans-serif !important;
    color: #000;
    background-color: #fff;
}
.kop-title-main {
    font-size: 16px;
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 2px;
    letter-spacing: 0.5px;
}
.kop-title-sub {
    font-size: 18px;
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 2px;
    letter-spacing: 0.5px;
}
.kop-title-unit {
    font-size: 13px;
    font-weight: bold;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.kop-address {
    font-size: 11px;
    color: #333;
}
.table-bast-bordered th, .table-bast-bordered td {
    border: 1px solid #000 !important;
    padding: 5px 8px;
}

@media print {
    .no-print, header, nav, .layout-navbar, .layout-menu, .btn, .card-footer, .card-header-actions {
        display: none !important;
    }
    .content-wrapper, .container-xxl, .container-fluid, .card, .card-body {
        padding: 0 !important;
        margin: 0 !important;
        box-shadow: none !important;
        border: none !important;
        background: white !important;
    }
}
