/* =========================================================
   SAND CONSTRUCTION ERP
   PREMIUM PRODUCT THEME
   Midnight Ink + Sapphire + Teal
========================================================= */
:root {
    --ink-950: #080e1a;
    --ink-900: #0b1220;
    --ink-850: #0f172a;
    --ink-800: #111827;
    --ink-700: #1f2937;
    --primary-700: #1d4ed8;
    --primary-600: #2563eb;
    --primary-500: #3b82f6;
    --primary-100: #dbeafe;
    --primary-50: #eff6ff;
    --accent-700: #0f766e;
    --accent-600: #0d9488;
    --accent-500: #14b8a6;
    --accent-100: #ccfbf1;
    --accent-50: #f0fdfa;
    --surface-page: #f6f8fc;
    --surface-card: #ffffff;
    --surface-soft: #f8fafc;
    --text-primary: #0f172a;
    --text-secondary: #475569;
    --text-muted: #64748b;
    --border: #e2e8f0;
    --border-soft: #edf2f7;
    --success: #10b981;
    --success-soft: #ecfdf5;
    --danger: #ef4444;
    --danger-soft: #fef2f2;
    --warning: #f59e0b;
    --erp-bg: var(--surface-page);
    --erp-sidebar: var(--ink-900);
    --erp-accent: var(--primary-600);
    --erp-text: var(--text-primary);
    --erp-muted: var(--text-muted);
    --erp-border: var(--border);
}
/* =========================================================
   GLOBAL TYPOGRAPHY
========================================================= */
html,
body {
    font-family:
        Inter,
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Helvetica,
        Arial,
        sans-serif;
    font-size: 14px;
    color: var(--text-primary);
    background: var(--surface-page);
    -webkit-font-smoothing: antialiased;
}
body {
    letter-spacing: -.01em;
}
.form-label {
    margin-bottom: 7px;
    color: var(--text-secondary);
    font-size: 12px !important;
    font-weight: 600;
}
.form-control,
.form-select {
    min-height: 44px;
    border-color: #d9e0e8;
    border-radius: 9px;
    color: var(--text-primary);
    font-size: 13px !important;
    background-color: #fff;
}
.form-control:focus,
.form-select:focus {
    border-color: var(--primary-500);
    box-shadow:
        0 0 0 3px
        rgba(59, 130, 246, .10);
}
.invalid-feedback {
    font-size: 12px;
}
/* =========================================================
   BUTTONS
========================================================= */
.btn-primary {
    border: 0 !important;
    background:
        linear-gradient(
            135deg,
            var(--primary-600),
            var(--accent-600)
        ) !important;
    color: #ffffff !important;
    box-shadow:
        0 8px 20px
        rgba(37, 99, 235, .18);
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}
.btn-primary:hover {
    transform: translateY(-1px);
    background:
        linear-gradient(
            135deg,
            #1d4ed8,
            #0f766e
        ) !important;
    box-shadow:
        0 12px 25px
        rgba(37, 99, 235, .24);
}
.btn-primary:active {
    transform: translateY(0);
}
/* =========================================================
   MAIN SIDEBAR
========================================================= */
.erp-sidebar {
    background:
        radial-gradient(
            circle at 0 0,
            rgba(37, 99, 235, .14),
            transparent 32%
        ),
        linear-gradient(
            180deg,
            #0b1220 0%,
            #111827 60%,
            #0a101c 100%
        );
    border-right:
        1px solid
        rgba(255, 255, 255, .045);
    box-shadow:
        12px 0 35px
        rgba(8, 14, 26, .12);
}
.erp-sidebar-brand {
    border-color:
        rgba(255,255,255,.07);
}
.erp-brand-logo {
    background:
        linear-gradient(
            135deg,
            #2563eb,
            #14b8a6
        );
    color: #ffffff;
    box-shadow:
        0 8px 22px
        rgba(20, 184, 166, .20);
}
.erp-brand-text strong {
    color: #ffffff;
    font-size: 13px;
}
.erp-brand-text span {
    color: #94a3b8;
    font-size: 12px;
}
.erp-menu-heading {
    padding-left: 13px;
    margin-top: 22px;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .55px;
}
.erp-menu-link {
    min-height: 46px;
    padding: 0 13px;
    border-radius: 10px;
    color: #a6b1c2;
    font-size: 12.5px;
    font-weight: 500;
}
.erp-menu-link:hover {
    background:
        rgba(255,255,255,.055);
    color: #ffffff;
}
.erp-menu-item.active
.erp-menu-link {
    position: relative;
    background:
        linear-gradient(
            90deg,
            rgba(37, 99, 235, .20),
            rgba(20, 184, 166, .09)
        );
    color: #ffffff;
    box-shadow:
        inset 3px 0 0
        var(--accent-500);
}
.erp-menu-item.active
.erp-menu-icon {
    color: #5eead4;
}
.erp-sidebar-secure {
    background:
        linear-gradient(
            135deg,
            rgba(37, 99, 235, .09),
            rgba(20, 184, 166, .06)
        );
    border:
        1px solid
        rgba(94, 234, 212, .10);
}
.erp-sidebar-secure > i {
    color: #5eead4;
}
.erp-sidebar-secure strong {
    color: #e2e8f0;
    font-size: 12px;
}
.erp-sidebar-secure span {
    color: #7f8ca0;
    font-size: 12px;
}
/* =========================================================
   HEADER
========================================================= */
.erp-header {
    background:
        rgba(255,255,255,.96);
    border-color: var(--border);
    box-shadow:
        0 1px 0
        rgba(15,23,42,.03);
    backdrop-filter: blur(14px);
}
.erp-page-heading h1 {
    color: var(--text-primary);
    font-size: 21px;
    font-weight: 750;
    letter-spacing: -.4px;
}
.erp-breadcrumb {
    color: var(--text-muted);
    font-size: 12px;
}
.erp-header-fy {
    border-color: var(--border);
    background:
        linear-gradient(
            135deg,
            #ffffff,
            #f8fafc
        );
}
.erp-header-fy-icon {
    background: var(--primary-50);
    color: var(--primary-600);
}
.erp-header-fy small {
    font-size: 12px;
    color: #94a3b8;
}
.erp-header-fy strong {
    color: var(--text-primary);
    font-size: 12px;
}
.erp-user-avatar {
    background:
        linear-gradient(
            135deg,
            var(--primary-600),
            var(--accent-500)
        );
    box-shadow:
        0 6px 16px
        rgba(37,99,235,.18);
}
.erp-user-details strong {
    color: var(--text-primary);
    font-size: 12px;
}
.erp-user-details span {
    color: var(--text-muted);
    font-size: 12px;
}
/* =========================================================
   PAGE BACKGROUND
========================================================= */
.erp-content {
    background:
        radial-gradient(
            circle at 92% 0%,
            rgba(59,130,246,.045),
            transparent 25%
        ),
        var(--surface-page);
}
/* =========================================================
   DASHBOARD HERO
========================================================= */
.dashboard-welcome-card {
    position: relative;
    overflow: hidden;
    min-height: 165px;
    border:
        1px solid
        rgba(255,255,255,.06);
    background:
        radial-gradient(
            circle at 88% 20%,
            rgba(20,184,166,.28),
            transparent 30%
        ),
        linear-gradient(
            120deg,
            #0b1220 0%,
            #172554 53%,
            #0f766e 135%
        );
    box-shadow:
        0 18px 45px
        rgba(15,23,42,.14);
}
.dashboard-welcome-card::before {
    content: "";
    position: absolute;
    width: 430px;
    height: 430px;
    right: -175px;
    top: -220px;
    border-radius: 50%;
    border:
        1px solid
        rgba(94,234,212,.12);
}
.dashboard-welcome-card::after {
    content: "";
    position: absolute;
    width: 230px;
    height: 230px;
    right: -50px;
    top: -80px;
    border-radius: 50%;
    background:
        rgba(255,255,255,.035);
}
.dashboard-welcome-label {
    color: #5eead4;
    font-size: 12px;
    letter-spacing: .9px;
    font-weight: 700;
}
.dashboard-welcome-card h2 {
    margin-top: 10px;
    color: #ffffff;
    font-size: 27px;
    font-weight: 750;
}
.dashboard-welcome-card p {
    color: #cbd5e1;
    font-size: 13px;
}
.dashboard-welcome-card p strong {
    color: #ffffff;
}
.dashboard-welcome-icon {
    width: 94px;
    height: 94px;
    border:
        1px solid
        rgba(255,255,255,.12);
    background:
        linear-gradient(
            135deg,
            rgba(37,99,235,.18),
            rgba(20,184,166,.18)
        );
    color: #5eead4;
    font-size: 45px;
    backdrop-filter: blur(10px);
    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,.10);
}
/* =========================================================
   DASHBOARD CARDS
========================================================= */
.dashboard-stat-card,
.dashboard-panel,
.party-summary-card,
.party-table-card {
    border:
        1px solid
        var(--border);
    background:
        rgba(255,255,255,.96);
    box-shadow:
        0 6px 22px
        rgba(15,23,42,.045);
}
.dashboard-stat-card {
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}
.dashboard-stat-card:hover {
    transform:
        translateY(-2px);
    box-shadow:
        0 12px 30px
        rgba(15,23,42,.075);
}
.dashboard-stat-value {
    color: var(--text-primary);
    font-size: 24px;
}
.dashboard-stat-label {
    color: var(--text-muted);
    font-size: 12px;
}
.dashboard-stat-period {
    background: #f1f5f9;
    color: #64748b;
    font-size: 12px;
}
.dashboard-stat-icon.icon-blue {
    background: #eff6ff;
    color: #2563eb;
}
.dashboard-stat-icon.icon-gold {
    background: #ecfeff;
    color: #0891b2;
}
.dashboard-stat-icon.icon-green {
    background: #ecfdf5;
    color: #059669;
}
.dashboard-stat-icon.icon-red {
    background: #fef2f2;
    color: #dc2626;
}
.dashboard-panel-header h4 {
    color: var(--text-primary);
    font-size: 14px;
}
.dashboard-panel-header span {
    color: var(--text-muted);
    font-size: 12px;
}
.dashboard-empty-icon,
.dashboard-fy-icon {
    background:
        linear-gradient(
            135deg,
            var(--primary-50),
            var(--accent-50)
        );
    color: var(--primary-600);
}
.dashboard-empty-state strong {
    font-size: 13px;
    color: var(--text-secondary);
}
.dashboard-empty-state span {
    font-size: 12px;
    color: var(--text-muted);
}
.dashboard-fy-card {
    background:
        linear-gradient(
            145deg,
            #f8fbff,
            #f0fdfa
        );
    border:
        1px solid
        #e5eef8;
}
.dashboard-fy-status {
    background: #ecfdf5;
    color: #047857;
    font-size: 12px;
}
/* =========================================================
   PARTY PAGE
========================================================= */
.party-page-toolbar h2 {
    color: var(--text-primary);
    font-size: 21px;
    font-weight: 750;
}
.party-page-toolbar p {
    color: var(--text-muted);
    font-size: 12px;
}
.party-summary-card {
    min-height: 100px;
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}
.party-summary-card:hover {
    transform:
        translateY(-2px);
    box-shadow:
        0 12px 28px
        rgba(15,23,42,.07);
}
.party-summary-card span {
    color: var(--text-muted);
    font-size: 12px;
}
.party-summary-card strong {
    color: var(--text-primary);
    font-size: 22px;
}
.party-summary-icon.total {
    background: #eff6ff;
    color: #2563eb;
}
.party-summary-icon.active {
    background: #ecfdf5;
    color: #059669;
}
.party-summary-icon.customer {
    background: #f0fdfa;
    color: #0d9488;
}
.party-summary-icon.supplier {
    background: #eef2ff;
    color: #4f46e5;
}
/* =========================================================
   PARTY FILTER BAR
========================================================= */
.party-filter-bar {
    padding: 16px 18px;
    background:
        linear-gradient(
            180deg,
            #ffffff,
            #fafcff
        );
    border-color:
        var(--border);
}
.party-filter-title {
    color: var(--text-secondary);
    font-size: 12px;
    font-weight: 600;
}
.party-filter-title i {
    color: var(--primary-600);
}
.party-reset-filter-btn {
    font-size: 12px;
    color: var(--text-secondary);
}
/* =========================================================
   TABLE
========================================================= */
.party-table thead th {
    padding:
        15px 15px !important;
    background: #f8fafc;
    color: #475569;
    border-bottom:
        1px solid
        var(--border) !important;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .2px;
}
.party-table tbody td {
    padding:
        15px !important;
    color: #475569;
    border-color:
        #eef2f6 !important;
    font-size: 12px;
}
.party-table tbody tr {
    transition:
        background .15s ease;
}
.party-table tbody tr:hover {
    background: #f8fbff;
}
/* =========================================================
   STATUS
========================================================= */
.party-status-badge {
    padding: 5px 9px;
    font-size: 12px;
}
.party-status-badge.active {
    background: #ecfdf5;
    color: #047857;
}
.party-status-badge.active > span {
    background: #10b981;
}
.party-status-badge.inactive {
    background: #fef2f2;
    color: #b91c1c;
}
.party-status-badge.inactive > span {
    background: #ef4444;
}
/* =========================================================
   ACTION BUTTONS
========================================================= */
.party-action-btn {
    width: 32px;
    height: 32px;
    color: #64748b;
    border-color: #dfe6ee;
    background: #ffffff;
}
.party-action-btn:hover {
    border-color: #bfdbfe;
    background: #eff6ff;
    color: #2563eb;
}
.party-action-btn.status-enable {
    color: #059669;
}
.party-action-btn.status-disable,
.party-action-btn.delete-party {
    color: #dc2626;
}
/* =========================================================
   SELECT2
========================================================= */
.select2-container--default
.select2-selection--single {
    height: 44px !important;
    display: flex;
    align-items: center;
    border:
        1px solid
        #d9e0e8 !important;
    border-radius:
        9px !important;
}
.select2-container--default
.select2-selection--single
.select2-selection__rendered {
    color:
        var(--text-secondary) !important;
    font-size: 12px !important;
}
.select2-container--default
.select2-selection--single
.select2-selection__arrow {
    top: 9px !important;
}
/* =========================================================
   DATATABLE
========================================================= */
div.dt-container {
    font-size: 12px;
}
div.dt-container
.dt-search input {
    min-height: 40px;
    border-color: #d9e0e8;
    border-radius: 9px;
    font-size: 12px;
}
div.dt-container
.dt-search input:focus {
    border-color: var(--primary-500);
    outline: 0;
    box-shadow:
        0 0 0 3px
        rgba(59,130,246,.08);
}
div.dt-container
.dt-length select {
    min-height: 38px;
    border-color: #d9e0e8;
    border-radius: 8px;
    font-size: 12px;
}
div.dt-container
.dt-info,
div.dt-container
.dt-paging {
    color: var(--text-muted);
    font-size: 12px;
}
.datatable-processing-box {
    font-size: 12px;
}
.datatable-processing-box
.spinner-border {
    color: var(--primary-600);
}
/* =========================================================
   PARTY MODAL - FINAL STRUCTURE FIX
========================================================= */
#partyModal {
    padding: 16px !important;
    overflow: hidden !important;
}
#partyModal .party-modal-dialog {
    width: 100%;
    max-width: 1180px;
    height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px);
    margin: 0 auto;
}
#partyModal .modal-content {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: #ffffff;
    box-shadow:
        0 30px 90px
        rgba(8, 14, 26, .25);
}
/*
|--------------------------------------------------------------------------
| IMPORTANT
|--------------------------------------------------------------------------
|
| Header / body / footer are children of #partyForm,
| therefore THE FORM must be the flex container.
|
*/
#partyModal #partyForm {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
#partyModal .modal-header {
    flex: 0 0 auto;
    min-height: 76px;
    padding: 18px 24px;
    background: #ffffff;
    border-bottom: 1px solid #e2e8f0;
}
#partyModal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    height: auto;
    padding: 24px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
#partyModal .modal-footer {
    flex: 0 0 auto;
    min-height: 70px;
    margin: 0;
    padding: 13px 24px;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
    box-shadow:
        0 -6px 20px
        rgba(15, 23, 42, .035);
}
/* Scrollbar */
#partyModal .modal-body::-webkit-scrollbar {
    width: 7px;
}
#partyModal .modal-body::-webkit-scrollbar-track {
    background: #f8fafc;
}
#partyModal .modal-body::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background: #cbd5e1;
}
#partyModal .modal-body::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}
@media (max-width: 767.98px) {
    #partyModal {
        padding: 6px !important;
    }
    #partyModal .party-modal-dialog {
        height: calc(100dvh - 12px);
        max-height: calc(100dvh - 12px);
    }
    #partyModal .modal-content {
        border-radius: 12px;
    }
    #partyModal .modal-header {
        padding: 16px 18px;
    }
    #partyModal .modal-body {
        padding: 18px;
    }
    #partyModal .modal-footer {
        padding: 12px 18px;
    }
}
/* =========================================================
   AUTH / LOGIN
========================================================= */
.auth-wrapper {
    background:
        radial-gradient(
            circle at 13% 12%,
            rgba(20,184,166,.08),
            transparent 24%
        ),
        radial-gradient(
            circle at 90% 90%,
            rgba(37,99,235,.07),
            transparent 27%
        ),
        #f5f7fb;
}
.auth-main-card {
    border:
        1px solid
        rgba(226,232,240,.9);
    box-shadow:
        0 32px 90px
        rgba(15,23,42,.13) !important;
}
.auth-construction-panel {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(
            circle at 95% 0%,
            rgba(20,184,166,.18),
            transparent 38%
        ),
        radial-gradient(
            circle at 0% 100%,
            rgba(37,99,235,.22),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            #08111f,
            #0f2344 58%,
            #0f5f65 145%
        ) !important;
}
.auth-construction-panel::after {
    content: "";
    position: absolute;
    width: 430px;
    height: 430px;
    right: -180px;
    top: -180px;
    border:
        1px solid
        rgba(94,234,212,.09);
    border-radius: 50%;
}
.auth-left-brand-icon,
.auth-login-logo {
    background:
        linear-gradient(
            135deg,
            var(--primary-600),
            var(--accent-500)
        ) !important;
    color: #ffffff !important;
    box-shadow:
        0 9px 22px
        rgba(37,99,235,.22);
}
.auth-eyebrow {
    background:
        rgba(94,234,212,.10) !important;
    color: #5eead4 !important;
    border:
        1px solid
        rgba(94,234,212,.10);
}
.auth-left-heading h1 {
    color: #ffffff;
    font-size: 36px;
    line-height: 1.15;
    letter-spacing: -.7px;
}
.auth-left-heading p {
    color: #b7c6d9;
    font-size: 13px;
    line-height: 1.8;
}
.auth-feature-item {
    border:
        1px solid
        rgba(255,255,255,.10) !important;
    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.08),
            rgba(255,255,255,.035)
        ) !important;
    backdrop-filter: blur(10px);
}
.auth-feature-icon {
    background:
        rgba(94,234,212,.10) !important;
    color: #5eead4 !important;
}
.auth-feature-item strong {
    color: #ffffff;
    font-size: 12px;
}
.auth-feature-item span {
    color: #92a5bc;
    font-size: 12px;
}
.auth-truck-icon,
.auth-sand-mountain {
    color: #5eead4 !important;
}
.auth-login-heading h2 {
    color: var(--text-primary);
    font-size: 29px;
}
.auth-login-heading p {
    color: var(--text-muted);
    font-size: 13px;
}
.auth-input-icon {
    color: #64748b;
}
.auth-form-control:focus {
    border-color:
        var(--primary-500) !important;
    box-shadow:
        0 0 0 3px
        rgba(59,130,246,.09) !important;
}
.auth-login-btn {
    min-height: 48px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 650;
}
.auth-register-text {
    font-size: 12px;
}
.auth-register-text a,
.auth-login-area a {
    color: var(--primary-600) !important;
}
.auth-login-footer {
    color: #94a3b8;
    font-size: 12px;
}
.auth-login-footer i {
    color: var(--accent-600);
}
/* Hide / neutralize old yellow visual */
.auth-sand-mountain,
.auth-sand-mountain-one,
.auth-sand-mountain-two {
    opacity: .22;
}
.auth-truck-icon {
    filter:
        hue-rotate(130deg)
        saturate(.9);
}
/* =========================================================
   TOAST
========================================================= */
#toast-container > div {
    border-radius: 11px !important;
    box-shadow:
        0 15px 45px
        rgba(15,23,42,.17) !important;
    font-size: 12px !important;
    opacity: 1 !important;
}
.auth-business-visual {
    display: none !important;
}
.auth-left-heading {
    margin-top: 72px;
}
.auth-feature-grid {
    margin-top: 70px;
}
/* =========================================================
   REMOVE LEGACY AUTH DECORATIONS
========================================================= */
.auth-construction-panel::before,
.auth-construction-content::before,
.auth-left-heading::before,
.auth-left-heading::after {
    content: none !important;
    display: none !important;
}
.auth-construction-panel {
    background:
        radial-gradient(
            circle at 93% 8%,
            rgba(20, 184, 166, .17),
            transparent 35%
        ),
        radial-gradient(
            circle at 5% 100%,
            rgba(37, 99, 235, .20),
            transparent 38%
        ),
        linear-gradient(
            145deg,
            #08111f 0%,
            #0e2040 56%,
            #0b4c59 135%
        ) !important;
}
/*
|--------------------------------------------------------------------------
| Premium subtle decorative rings
|--------------------------------------------------------------------------
*/
.auth-construction-panel::after {
    content: "";
    display: block !important;
    position: absolute;
    width: 390px;
    height: 390px;
    right: -160px;
    top: -165px;
    border-radius: 50%;
    border:
        1px solid
        rgba(94, 234, 212, .09);
    background: transparent !important;
    pointer-events: none;
}
.auth-feature-grid {
    gap: 12px !important;
}
.auth-feature-item {
    min-height: 72px;
    padding: 14px 16px !important;
    border:
        1px solid
        rgba(148, 163, 184, .14) !important;
    border-radius: 13px !important;
    background:
        linear-gradient(
            135deg,
            rgba(255,255,255,.075),
            rgba(255,255,255,.025)
        ) !important;
    box-shadow:
        inset 0 1px 0
        rgba(255,255,255,.04);
    transition:
        transform .2s ease,
        border-color .2s ease,
        background .2s ease;
}
.auth-feature-item:hover {
    transform: translateY(-2px);
    border-color:
        rgba(94, 234, 212, .20) !important;
    background:
        linear-gradient(
            135deg,
            rgba(37,99,235,.11),
            rgba(20,184,166,.075)
        ) !important;
}
.auth-feature-icon {
    width: 38px !important;
    height: 38px !important;
    border-radius: 10px !important;
}
.auth-login-btn {
    min-height: 50px;
    border-radius: 11px !important;
    background:
        linear-gradient(
            110deg,
            #2563eb 0%,
            #1689bd 48%,
            #0d9488 100%
        ) !important;
    border: 0 !important;
    box-shadow:
        0 12px 25px
        rgba(37,99,235,.18);
    font-size: 13px !important;
    font-weight: 700;
}
.auth-login-btn:hover {
    background:
        linear-gradient(
            110deg,
            #1d4ed8,
            #0f766e
        ) !important;
    box-shadow:
        0 15px 32px
        rgba(37,99,235,.25);
}
.auth-login-area {
    max-width: 520px;
    margin: 0 auto;
}
.auth-login-brand {
    margin-bottom: 42px !important;
}
.auth-login-heading {
    margin-bottom: 34px;
}
.auth-login-heading h2 {
    margin-bottom: 7px;
    font-size: 30px !important;
    font-weight: 760;
    letter-spacing: -.6px;
}
.auth-form-control,
.auth-password-group .form-control,
.auth-password-group .input-group-text {
    min-height: 48px;
}
.auth-input-wrapper,
.auth-password-group {
    border-radius: 10px;
}
/* =========================================================
   SITE MODAL
========================================================= */
#siteModal {
    padding: 16px !important;
    overflow: hidden !important;
}
#siteModal .site-modal-dialog {
    width: 100%;
    max-width: 1180px;
    height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px);
    margin: 0 auto;
}
#siteModal .modal-content {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: #ffffff;
    box-shadow:
        0 30px 90px
        rgba(8, 14, 26, .25);
}
#siteModal #siteForm {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
#siteModal .modal-header {
    flex: 0 0 auto;
}
#siteModal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
#siteModal .modal-footer {
    flex: 0 0 auto;
    margin: 0;
    padding: 13px 24px;
    background: #ffffff;
    border-top: 1px solid #e2e8f0;
}
#siteModal .modal-body::-webkit-scrollbar {
    width: 7px;
}
#siteModal .modal-body::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background: #cbd5e1;
}
@media (max-width: 767.98px) {
    #siteModal {
        padding: 6px !important;
    }
    #siteModal .site-modal-dialog {
        height:
            calc(
                100dvh - 12px
            );
        max-height:
            calc(
                100dvh - 12px
            );
    }
}
/* =========================================================
   MATERIAL MODAL
========================================================= */
#materialModal {
    padding: 16px !important;
    overflow: hidden !important;
}
#materialModal .material-modal-dialog {
    width: 100%;
    max-width: 960px;
    height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px);
    margin: 0 auto;
}
#materialModal .modal-content {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: #ffffff;
    box-shadow:
        0 30px 90px
        rgba(8, 14, 26, .25);
}
#materialModal #materialForm {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
#materialModal .modal-header {
    flex: 0 0 auto;
}
#materialModal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-gutter: stable;
}
#materialModal .modal-footer {
    flex: 0 0 auto;
    margin: 0;
    padding: 13px 24px;
    background: #ffffff;
    border-top:
        1px solid
        #e2e8f0;
}
#materialModal
.modal-body::-webkit-scrollbar {
    width: 7px;
}
#materialModal
.modal-body::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background: #cbd5e1;
}
/* =========================================================
   VEHICLE MODAL
========================================================= */
#vehicleModal {
    padding: 16px !important;
    overflow: hidden !important;
}
#vehicleModal .vehicle-modal-dialog {
    width: 100%;
    max-width: 1120px;
    height: calc(100dvh - 32px);
    max-height: calc(100dvh - 32px);
    margin: 0 auto;
}
#vehicleModal .modal-content {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    background: #ffffff;
    box-shadow:
        0 30px 90px
        rgba(8, 14, 26, .25);
}
#vehicleModal #vehicleForm {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
#vehicleModal .modal-header {
    flex: 0 0 auto;
    min-height: 76px;
    padding: 18px 24px;
    background: #ffffff;
    border-bottom:
        1px solid
        #e2e8f0;
}
#vehicleModal .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
}
#vehicleModal .modal-footer {
    flex: 0 0 auto;
    min-height: 70px;
    margin: 0;
    padding: 13px 24px;
    background: #ffffff;
    border-top:
        1px solid
        #e2e8f0;
    box-shadow:
        0 -5px 18px
        rgba(15, 23, 42, .03);
}
#vehicleModal
.modal-body::-webkit-scrollbar {
    width: 7px;
}
#vehicleModal
.modal-body::-webkit-scrollbar-track {
    background: transparent;
}
#vehicleModal
.modal-body::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background: #cbd5e1;
}
#vehicleModal
.modal-body::-webkit-scrollbar-thumb:hover {
    background: #94a3b8;
}
@media (max-width: 767.98px) {
    #vehicleModal {
        padding: 6px !important;
    }
    #vehicleModal .vehicle-modal-dialog {
        height: calc(100dvh - 12px);
        max-height: calc(100dvh - 12px);
    }
    #vehicleModal .modal-content {
        border-radius: 12px;
    }
    #vehicleModal .modal-body {
        padding: 18px;
    }
}
/* =========================================================
   DISPATCH MODULE
========================================================= */
.dispatch-filter-panel {
    padding: 18px;
    border-bottom:
        1px solid
        var(--border);
    background:
        linear-gradient(
            180deg,
            #ffffff,
            #fbfcfe
        );
}
.dispatch-filter-panel
.form-label {
    font-size: 12px !important;
}
.dispatch-table
tbody td {
    white-space: nowrap;
}
.dispatch-table
tbody tr:has(
    .party-status-badge.inactive
) {
    opacity: .72;
}
/* =========================================================
   DISPATCH MODAL
========================================================= */
#dispatchModal {
    padding: 12px !important;
    overflow: hidden !important;
}
#dispatchModal
.dispatch-modal-dialog {
    width: 100%;
    max-width: 1260px;
    height:
        calc(
            100dvh - 24px
        );
    max-height:
        calc(
            100dvh - 24px
        );
    margin: 0 auto;
}
#dispatchModal
.modal-content {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    box-shadow:
        0 30px 90px
        rgba(8,14,26,.25);
}
#dispatchModal
#dispatchForm {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
#dispatchModal
.modal-header {
    flex: 0 0 auto;
    min-height: 76px;
    padding:
        18px 24px;
    border-bottom:
        1px solid
        var(--border);
}
#dispatchModal
.modal-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-gutter: stable;
}
#dispatchModal
.modal-footer {
    flex: 0 0 auto;
    margin: 0;
    padding:
        13px 24px;
    border-top:
        1px solid
        var(--border);
    background: #fff;
    box-shadow:
        0 -6px 20px
        rgba(15,23,42,.035);
}
#dispatchModal
.modal-body::-webkit-scrollbar {
    width: 7px;
}
#dispatchModal
.modal-body::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background: #cbd5e1;
}
.dispatch-unit-label {
    margin-left: 5px;
    padding:
        2px 6px;
    border-radius: 5px;
    background:
        var(--primary-50);
    color:
        var(--primary-600);
    font-size: 12px;
    font-weight: 600;
}
.dispatch-rate-info {
    min-height: 20px;
    margin-top: 6px;
    color:
        var(--accent-600);
    font-size: 12px;
}
.dispatch-field-help {
    display: block;
    margin-top: 6px;
    color:
        var(--text-muted);
    font-size: 12px;
}
.dispatch-slip-warning {
    margin-top: 7px;
    padding:
        8px 10px;
    border:
        1px solid
        #fed7aa;
    border-radius: 8px;
    background:
        #fff7ed;
    color:
        #9a3412;
    font-size: 12px;
}
.dispatch-calculation-card {
    height: 100%;
    min-height: 103px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 15px 18px;
    border:
        1px solid
        #dbeafe;
    border-radius: 12px;
    background:
        linear-gradient(
            135deg,
            #eff6ff,
            #f0fdfa
        );
}
.dispatch-calculation-card
span {
    color:
        var(--text-muted);
    font-size: 12px;
}
.dispatch-calculation-card
strong {
    margin:
        4px 0 2px;
    color:
        var(--text-primary);
    font-size: 23px;
    font-weight: 750;
}
.dispatch-calculation-card
small {
    color:
        var(--text-secondary);
    font-size: 12px;
}
.dispatch-modal-footer {
    justify-content:
        space-between;
}
.dispatch-keyboard-help {
    color:
        var(--text-muted);
    font-size: 12px;
}
.dispatch-keyboard-help i {
    margin-right: 4px;
    color:
        var(--primary-600);
}
/* =========================================================
   CANCEL DISPATCH
========================================================= */
.dispatch-cancel-warning {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 12px;
}
.dispatch-cancel-warning > i {
    margin-top: 1px;
    font-size: 19px;
}
.dispatch-cancel-warning
strong,
.dispatch-cancel-warning
span {
    display: block;
}
.dispatch-cancel-warning
span {
    margin-top: 3px;
}
/* =========================================================
   MOBILE
========================================================= */
@media (
    max-width: 767.98px
) {
    #dispatchModal {
        padding: 6px !important;
    }
    #dispatchModal
    .dispatch-modal-dialog {
        height:
            calc(
                100dvh - 12px
            );
        max-height:
            calc(
                100dvh - 12px
            );
    }
    .dispatch-modal-footer {
        align-items:
            stretch;
        flex-direction:
            column;
    }
    .dispatch-modal-footer
    > .d-flex {
        width: 100%;
    }
    .dispatch-modal-footer
    > .d-flex
    .btn {
        flex: 1;
    }
}
/* =========================================================
   DISPATCH STATEMENT
========================================================= */
.dispatch-statement-filter {
    padding: 20px;
}
.dispatch-sheet {
    overflow: hidden;
    border:
        1px solid
        #cbd5e1;
    border-radius: 12px;
    background: #ffffff;
    box-shadow:
        0 8px 28px
        rgba(15,23,42,.05);
}
.dispatch-sheet-company {
    padding:
        12px 20px;
    border-bottom:
        1px solid
        #94a3b8;
    background:
        #f4d1b2;
    color:
        #000000;
    font-size: 28px;
    font-weight: 800;
    text-align: center;
}
.dispatch-sheet-tagline {
    padding:
        7px 15px;
    background:
        #e8f3f8;
    color:
        #2563eb;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}
.dispatch-sheet-address {
    padding:
        8px 15px;
    border-top:
        1px solid
        #cbd5e1;
    background:
        #e8f3f8;
    color:
        #0f172a;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
}
.dispatch-sheet-meta {
    display: flex;
    justify-content:
        space-between;
    gap: 20px;
    padding:
        9px 15px;
    border-top:
        1px solid
        #cbd5e1;
    background:
        #e8f3f8;
    font-size: 12px;
}
.dispatch-sheet-party {
    padding:
        9px 15px;
    border-top:
        1px solid
        #cbd5e1;
    background:
        #e8f3f8;
    font-size: 13px;
}
.dispatch-sheet-summary {
    display: flex;
    justify-content:
        flex-end;
    border-top:
        1px solid
        #cbd5e1;
    background:
        #ffffff;
}
.dispatch-sheet-summary > div {
    min-width: 165px;
    padding:
        7px 12px;
    border-left:
        1px solid
        #cbd5e1;
}
.dispatch-sheet-summary span {
    display: block;
    color:
        #64748b;
    font-size: 12px;
}
.dispatch-sheet-summary strong {
    display: block;
    margin-top: 2px;
    color:
        #0f172a;
    font-size: 15px;
}
.dispatch-sheet-summary > div:nth-child(2),
.dispatch-sheet-summary > div:nth-child(3) {
    background:
        #fff95c;
}
.dispatch-statement-table {
    width: 100%;
    border-collapse:
        collapse;
    font-size: 12px;
}
.dispatch-statement-table th,
.dispatch-statement-table td {
    padding:
        8px 9px;
    border:
        1px solid
        #94a3b8;
    color:
        #111827;
    vertical-align:
        middle;
}
.dispatch-statement-table thead th {
    background:
        #f4d1b2;
    font-size: 12px;
    font-weight: 700;
    text-align:
        center;
}
.dispatch-statement-table tbody tr:hover {
    background:
        #f8fafc;
}
.dispatch-statement-table tfoot th {
    background:
        #fff95c;
    font-size: 12px;
}
.dispatch-cancelled-row {
    background:
        #fef2f2 !important;
    opacity: .7;
    text-decoration:
        line-through;
}
/* =========================================================
   PRINT
========================================================= */
@media print {
    .erp-sidebar,
    .erp-header,
    .erp-footer,
    .party-page-toolbar,
    .no-print {
        display:
            none !important;
    }
    .erp-main,
    .erp-content {
        width:
            100% !important;
        margin:
            0 !important;
        padding:
            0 !important;
        background:
            #ffffff !important;
    }
    .dispatch-sheet {
        border-radius:
            0;
        box-shadow:
            none;
    }
    @page {
        size:
            A4 landscape;
        margin:
            8mm;
    }
}
/* =========================================================
   DISPATCH EXCEL IMPORT
========================================================= */
.import-upload-card,
.import-format-card {
    padding: 24px;
}
.import-section-title {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 22px;
}
.import-section-title h4,
.import-resolution-header h4,
.import-preview-heading h4 {
    margin: 0;
    color: var(--text-primary);
    font-size: 15px;
    font-weight: 700;
}
.import-section-title p,
.import-resolution-header p,
.import-preview-heading p {
    margin:
        3px 0 0;
    color: var(--text-muted);
    font-size: 12px;
}
.import-section-icon {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 12px;
    background:
        linear-gradient(
            135deg,
            var(--primary-50),
            var(--accent-50)
        );
    color: var(--primary-600);
    font-size: 21px;
}
.import-drop-zone {
    width: 100%;
    min-height: 205px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 30px;
    border:
        1.5px dashed
        #bfcee0;
    border-radius: 14px;
    background:
        linear-gradient(
            145deg,
            #fbfdff,
            #f8fbff
        );
    cursor: pointer;
    transition:
        border-color .18s ease,
        background .18s ease,
        transform .18s ease;
}
.import-drop-zone:hover {
    border-color:
        var(--primary-500);
    background:
        var(--primary-50);
    transform:
        translateY(-1px);
}
.import-drop-zone > i {
    margin-bottom: 10px;
    color:
        var(--primary-600);
    font-size: 36px;
}
.import-drop-zone strong {
    color:
        var(--text-primary);
    font-size: 14px;
}
.import-drop-zone span {
    margin-top: 5px;
    color:
        var(--text-muted);
    font-size: 12px;
}
.import-column-list {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 9px;
}
.import-column-list span {
    padding:
        9px 11px;
    border:
        1px solid
        var(--border);
    border-radius: 8px;
    background:
        #f8fafc;
    color:
        var(--text-secondary);
    font-size: 12px;
}
.import-info-note {
    display: flex;
    gap: 9px;
    margin-top: 17px;
    padding: 12px;
    border:
        1px solid
        #bae6fd;
    border-radius: 9px;
    background:
        #f0f9ff;
    color:
        #075985;
    font-size: 12px;
}
.import-recent-header,
.import-preview-heading,
.import-resolution-header {
    padding:
        17px 20px;
    border-bottom:
        1px solid
        var(--border);
    color:
        var(--text-primary);
    font-size: 14px;
    font-weight: 700;
}
.import-map-row {
    display: grid;
    grid-template-columns:
        minmax(
            250px,
            1.1fr
        )
        minmax(
            320px,
            1.5fr
        )
        90px;
    align-items: center;
    gap: 14px;
    padding:
        13px 20px;
    border-bottom:
        1px solid
        var(--border-soft);
}
.import-map-row:last-child {
    border-bottom: 0;
}
.import-map-source small,
.import-map-source strong,
.import-map-source span {
    display: block;
}
.import-map-source small {
    color:
        var(--text-muted);
    font-size: 12px;
}
.import-map-source strong {
    margin-top: 2px;
    color:
        var(--text-primary);
    font-size: 13px;
}
.import-map-source span {
    margin-top: 2px;
    color:
        var(--text-muted);
    font-size: 12px;
}
.import-status-badge {
    font-size: 12px !important;
    font-weight: 600;
}
.import-issue-line {
    max-width: 330px;
    margin-bottom: 3px;
    white-space: normal;
    font-size: 12px;
}
#dispatchImportRowsTable {
    min-width: 1450px;
}
#dispatchImportRowsTable
tbody td {
    font-size: 12px;
}
@media (
    max-width: 991.98px
) {
    .import-map-row {
        grid-template-columns:
            1fr;
        gap: 9px;
    }
    .import-column-list {
        grid-template-columns:
            1fr;
    }
}
/* =========================================================
   PAYMENTS / RECEIPTS
========================================================= */
.payment-filter-panel {
    padding: 18px;
    border-bottom:
        1px solid
        var(--border);
    background:
        linear-gradient(
            180deg,
            #ffffff,
            #fbfcfe
        );
}
.payment-filter-panel
.form-label {
    font-size: 12px !important;
}
.payment-table tbody td {
    white-space: nowrap;
}
/* =========================================================
   PAYMENT MODAL
========================================================= */
#paymentModal {
    padding: 12px !important;
    overflow: hidden !important;
}
#paymentModal
.payment-modal-dialog {
    width: 100%;
    max-width: 920px;
    height:
        calc(
            100dvh - 24px
        );
    max-height:
        calc(
            100dvh - 24px
        );
    margin: 0 auto;
}
#paymentModal
.modal-content {
    width: 100%;
    height: 100%;
    max-height: 100%;
    overflow: hidden;
    border: 0;
    border-radius: 18px;
    box-shadow:
        0 30px 90px
        rgba(8,14,26,.25);
}
#paymentModal
#paymentForm {
    width: 100%;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
#paymentModal
.modal-header {
    flex: 0 0 auto;
    padding:
        18px 24px;
}
#paymentModal
.modal-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: 24px;
    overflow-x: hidden;
    overflow-y: auto;
}
#paymentModal
.modal-footer {
    flex: 0 0 auto;
    padding:
        13px 24px;
    background: #fff;
    border-top:
        1px solid
        var(--border);
}
#paymentModal
.modal-body::-webkit-scrollbar {
    width: 7px;
}
#paymentModal
.modal-body::-webkit-scrollbar-thumb {
    border-radius: 20px;
    background:
        #cbd5e1;
}
.payment-cancel-warning {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 12px;
}
.payment-cancel-warning > i {
    font-size: 19px;
}
.payment-cancel-warning strong,
.payment-cancel-warning span {
    display: block;
}
.payment-cancel-warning span {
    margin-top: 3px;
}
/* =========================================================
   MOBILE
========================================================= */
@media (
    max-width: 767.98px
) {
    #paymentModal {
        padding: 6px !important;
    }
    #paymentModal
    .payment-modal-dialog {
        height:
            calc(
                100dvh - 12px
            );
        max-height:
            calc(
                100dvh - 12px
            );
    }
}
/* =========================================================
   SIDEBAR SUBMENU
========================================================= */
.erp-menu-item {
    position: relative;
}
/* Parent arrow */
.erp-submenu-arrow {
    margin-left: auto;
    font-size: 17px;
    line-height: 1;
    transition:
        transform .2s ease;
}
.erp-menu-link[aria-expanded="true"]
.erp-submenu-arrow {
    transform:
        rotate(180deg);
}
/* Submenu wrapper */
.erp-submenu {
    list-style: none;
    margin: 6px 0 0;
    padding: 0 8px 0 44px;
}
/* Individual item */
.erp-submenu-item {
    margin: 2px 0;
    padding: 0;
}
/* Submenu link */
.erp-submenu-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    min-height: 36px;
    padding:
        8px 10px;
    border-radius: 8px;
    color:
        rgba(
            226,
            232,
            240,
            .72
        ) !important;
    text-decoration:
        none !important;
    font-size:
        12.5px;
    font-weight:
        500;
    line-height:
        1.35;
    transition:
        background .18s ease,
        color .18s ease,
        transform .18s ease;
}
/* Small submenu icon */
.erp-submenu-link > i {
    flex:
        0 0 auto;
    width:
        16px;
    font-size:
        15px;
    color:
        rgba(
            148,
            163,
            184,
            .85
        );
}
/* Hover */
.erp-submenu-link:hover {
    color:
        #ffffff !important;
    background:
        rgba(
            255,
            255,
            255,
            .055
        );
    text-decoration:
        none !important;
}
/* Active submenu */
.erp-submenu-link.active {
    color:
        #ffffff !important;
    background:
        rgba(
            37,
            99,
            235,
            .14
        );
    font-weight:
        600;
}
/* Active indicator */
.erp-submenu-link.active::before {
    content:
        '';
    position:
        absolute;
    left:
        -12px;
    top:
        50%;
    width:
        3px;
    height:
        18px;
    border-radius:
        6px;
    background:
        #14b8a6;
    transform:
        translateY(-50%);
}
/* Active icon */
.erp-submenu-link.active > i {
    color:
        #14b8a6;
}
/* Parent when submenu active */
.erp-menu-item.open
> .erp-menu-link {
    color:
        #ffffff;
}
/* Collapse spacing */
#reportsSubmenu {
    margin-top:
        2px;
}
/* ============================================================
   DASHBOARD QUICK LINKS FIX
============================================================ */
.dashboard-panel .row > [class*="col-"] {
    display: flex;
}
a.dashboard-quick-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    position: relative;
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 140px;
    text-decoration: none !important;
    color: inherit;
    cursor: pointer;
}
a.dashboard-quick-card:hover,
a.dashboard-quick-card:focus {
    color: inherit;
    text-decoration: none;
}
/*
|--------------------------------------------------------------------------
| Keep decorative number inside card
|--------------------------------------------------------------------------
*/
a.dashboard-quick-card .dashboard-quick-number {
    pointer-events: none;
}
/*
|--------------------------------------------------------------------------
| Prevent text from overflowing
|--------------------------------------------------------------------------
*/
a.dashboard-quick-card strong,
a.dashboard-quick-card span {
    position: relative;
    z-index: 2;
    max-width: 100%;
}
/*
|--------------------------------------------------------------------------
| Smooth hover
|--------------------------------------------------------------------------
*/
a.dashboard-quick-card {
    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}
a.dashboard-quick-card:hover {
    transform: translateY(-2px);
    border-color: rgba(37, 99, 235, 0.22);
    box-shadow:
        0 10px 26px
        rgba(15, 23, 42, 0.08);
}
a.dashboard-quick-card {
    display: flex;
    width: 100%;
    height: 100%;
}
/* ============================================================
   DASHBOARD DISPATCH ANALYTICS
============================================================ */
.dashboard-chart-wrap {
    position: relative;
    min-height: 340px;
    padding-top: 10px;
}
.dashboard-chart {
    width: 100%;
    min-height: 330px;
}
.dashboard-trend-summary {
    min-width: 105px;
    padding: 8px 11px;
    border: 1px solid #e5eaf1;
    border-radius: 10px;
    background: #f8fafc;
}
.dashboard-trend-summary span {
    display: block;
    margin-bottom: 2px;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
}
.dashboard-trend-summary strong {
    display: block;
    color: #0f172a;
    font-size: 13px;
    font-weight: 700;
}
/* ============================================================
   DASHBOARD FINANCIAL PERFORMANCE
============================================================ */
.dashboard-financial-as-on {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 10px;
    border: 1px solid #e5eaf1;
    border-radius: 999px;
    background: #f8fafc;
    color: #64748b;
    font-size: 12px;
}
.dashboard-financial-as-on strong {
    color: #0f172a;
    font-weight: 700;
}
.dashboard-financial-grid {
    display: grid;
    grid-template-columns:
        repeat(
            5,
            minmax(0, 1fr)
        );
    gap: 12px;
    margin-top: 16px;
    margin-bottom: 22px;
}
.dashboard-financial-card {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 11px;
    padding: 13px;
    border: 1px solid #e5eaf1;
    border-radius: 12px;
    background: #ffffff;
}
.dashboard-financial-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    font-size: 18px;
}
.dashboard-financial-card > div:last-child {
    min-width: 0;
}
.dashboard-financial-card span {
    display: block;
    margin-bottom: 3px;
    color: #64748b;
    font-size: 12px;
    font-weight: 500;
}
.dashboard-financial-card strong {
    display: block;
    overflow: hidden;
    color: #0f172a;
    font-size: 14px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-financial-icon.icon-blue {
    color: #2563eb;
    background: rgba(37, 99, 235, 0.09);
}
.dashboard-financial-icon.icon-green {
    color: #059669;
    background: rgba(5, 150, 105, 0.09);
}
.dashboard-financial-icon.icon-red {
    color: #dc2626;
    background: rgba(220, 38, 38, 0.08);
}
.dashboard-financial-icon.icon-gold {
    color: #d97706;
    background: rgba(217, 119, 6, 0.09);
}
.dashboard-financial-icon.icon-teal {
    color: #0f9f92;
    background: rgba(20, 184, 166, 0.10);
}
.dashboard-financial-chart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 15px;
    border-top: 1px solid #edf1f5;
}
.dashboard-financial-chart-header strong {
    display: block;
    color: #0f172a;
    font-size: 13px;
    font-weight: 700;
}
.dashboard-financial-chart-header span {
    display: block;
    margin-top: 2px;
    color: #64748b;
    font-size: 12px;
}
@media (max-width: 1199.98px) {
    .dashboard-financial-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }
}
@media (max-width: 767.98px) {
    .dashboard-financial-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }
}
@media (max-width: 575.98px) {
    .dashboard-financial-grid {
        grid-template-columns:
            1fr;
    }
}
/* ============================================================
   DASHBOARD MATERIAL ANALYTICS
============================================================ */
.dashboard-material-table {
    margin-top: 8px;
    font-size: 12px;
}
.dashboard-material-table thead th {
    padding: 10px 8px;
    border-bottom: 1px solid #e5eaf1;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.dashboard-material-table tbody td {
    padding: 12px 8px;
    border-bottom: 1px solid #edf1f5;
    vertical-align: middle;
}
.dashboard-material-table tbody tr:last-child td {
    border-bottom: 0;
}
.dashboard-material-name {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}
.dashboard-material-name strong {
    overflow: hidden;
    color: #0f172a;
    font-size: 12px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-material-dot {
    flex: 0 0 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #14b8a6;
}
/* ============================================================
   DASHBOARD TOP OUTSTANDING
============================================================ */
.dashboard-outstanding-table {
    margin-top: 8px;
    font-size: 12px;
}
.dashboard-outstanding-table thead th {
    padding: 10px 9px;
    border-bottom: 1px solid #e5eaf1;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}
.dashboard-outstanding-table tbody td {
    padding: 11px 9px;
    border-bottom: 1px solid #edf1f5;
    vertical-align: middle;
    white-space: nowrap;
}
.dashboard-outstanding-table tbody tr:last-child td {
    border-bottom: 0;
}
.dashboard-party-cell {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 180px;
}
.dashboard-party-cell > div:last-child {
    min-width: 0;
}
.dashboard-party-cell strong {
    display: block;
    max-width: 230px;
    overflow: hidden;
    color: #0f172a;
    font-size: 12px;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-party-rank {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: #f1f5f9;
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}
.dashboard-party-code {
    display: block;
    margin-top: 2px;
    color: #94a3b8;
    font-size: 12px;
}
.dashboard-outstanding-amount {
    color: #dc2626;
    font-weight: 700;
}
.dashboard-outstanding-table td small {
    margin-left: 2px;
    color: #dc2626;
    font-size: 12px;
    font-weight: 600;
}
.dashboard-ledger-link {
    white-space: nowrap;
    gap: 5px;
}
/* ============================================================
   DASHBOARD RECENT ACTIVITY
============================================================ */
.dashboard-recent-table {
    margin-top: 8px;
    font-size: 12px;
}
.dashboard-recent-table thead th {
    padding: 9px 8px;
    border-bottom: 1px solid #e5eaf1;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}
.dashboard-recent-table tbody td {
    padding: 10px 8px;
    border-bottom: 1px solid #edf1f5;
    color: #475569;
    vertical-align: middle;
    white-space: nowrap;
}
.dashboard-recent-table tbody tr:last-child td {
    border-bottom: 0;
}
.dashboard-reference {
    display: block;
    color: #0f172a;
    font-size: 12px;
    font-weight: 700;
}
.dashboard-secondary-ref {
    display: block;
    margin-top: 2px;
    color: #94a3b8;
    font-size: 12px;
}
.dashboard-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 54px;
    padding: 4px 7px;
    border-radius: 999px;
    background: #f1f5f9;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    text-transform: capitalize;
}
.dashboard-status-active {
    background: rgba(5, 150, 105, 0.09);
    color: #059669;
}
.dashboard-status-cancelled {
    background: rgba(220, 38, 38, 0.08);
    color: #dc2626;
}

/* ==========================================================================
   Users
   ========================================================================== */

.user-page .user-table thead th {
    white-space: nowrap;
    vertical-align: middle;
}

.user-page .user-table tbody td {
    vertical-align: middle;
}

.user-page .dt-column-order {
    margin-left: 5px;
}

.user-page .dataTables_wrapper,
.user-page .dt-container {
    width: 100%;
}

.user-page .select2-container {
    width: 100% !important;
}

.user-page .party-reset-filter-btn {
    min-height: 38px;
}

@media (max-width: 767.98px) {
    .user-page .party-page-toolbar {
        gap: 12px;
    }

    .user-page .party-add-btn {
        width: 100%;
    }
}
