@import url('https://fonts.googleapis.com/css?family=Nova+Flat');

/* Nova Flat Font Application */
:root {
    --bs-body-font-family: 'Nova Flat', system-ui, -apple-system, sans-serif;
}

body,
button,
input,
select,
textarea,
h1, h2, h3, h4, h5, h6,
.card-title,
.logo span,
.sidebar-nav,
.nav-link,
.dropdown-menu,
.table,
.tabulator {
    font-family: 'Nova Flat', system-ui, -apple-system, sans-serif !important;
}

/* Custom application styles */

/* Tabulator NiceAdmin styling enhancements */
.tabulator {
    border: 1px solid #e9ecef;
    background-color: #fff;
    font-size: 13.5px;
    border-radius: 6px;
}
.tabulator .tabulator-header {
    background-color: #f6f9ff !important;
    border-bottom: 2px solid #e2e8f0 !important;
    color: #012970 !important;
    font-weight: 600;
}
.tabulator .tabulator-header .tabulator-col {
    background-color: #f6f9ff !important;
    border-right: 1px solid #e9ecef;
}
.tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover {
    background-color: #eef2fa !important;
}
.tabulator .tabulator-row {
    border-bottom: 1px solid #f2f4f8;
}
.tabulator .tabulator-row.tabulator-row-even {
    background-color: #fafbfc;
}
.tabulator .tabulator-row:hover {
    background-color: #f1f4fb !important;
}
.tabulator .tabulator-footer {
    background-color: #f8f9fa;
    border-top: 1px solid #e9ecef;
    padding: 10px 14px;
}
.tabulator-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    gap: 10px;
    flex-wrap: wrap;
}

/* Tabulator Selectable Rows & Checkboxes */
.tabulator .tabulator-row.tabulator-selectable {
    cursor: pointer;
}
.tabulator .tabulator-row.tabulator-selected {
    background-color: #e8f0fe !important;
    color: #012970 !important;
}
.tabulator .tabulator-row.tabulator-selected:hover {
    background-color: #dbe7fc !important;
}
.tabulator .tabulator-cell.tabulator-row-header input[type="checkbox"],
.tabulator .tabulator-col.tabulator-row-header input[type="checkbox"],
.tabulator input[type="checkbox"] {
    cursor: pointer;
    width: 16px;
    height: 16px;
    accent-color: #4154f1;
    margin: 0;
    vertical-align: middle;
}

/* Tabulator Header Filters */
.tabulator .tabulator-header .tabulator-col .tabulator-header-filter {
    box-sizing: border-box;
    padding: 3px 4px 6px;
    width: 100%;
    text-align: center;
}

.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input,
.tabulator .tabulator-header .tabulator-col .tabulator-header-filter select {
    box-sizing: border-box;
    width: 100%;
    padding: 3px 8px;
    font-size: 0.775rem;
    font-weight: 400;
    line-height: 1.4;
    color: #212529;
    background-color: #ffffff;
    border: 1px solid #ced4da;
    border-radius: 4px;
    font-family: 'Nova Flat', system-ui, -apple-system, sans-serif !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input:focus,
.tabulator .tabulator-header .tabulator-col .tabulator-header-filter select:focus {
    border-color: #4154f1;
    outline: 0;
    box-shadow: 0 0 0 0.15rem rgba(65, 84, 241, 0.25);
}

.tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::placeholder {
    color: #8c98a4;
    opacity: 0.85;
    font-size: 0.74rem;
}

/* Tabulator List Dropdown Popup */
.tabulator-edit-list {
    border: 1px solid #d0d7de !important;
    border-radius: 6px !important;
    box-shadow: 0 6px 16px rgba(1, 41, 112, 0.12) !important;
    background: #ffffff !important;
    font-family: 'Nova Flat', system-ui, -apple-system, sans-serif !important;
    font-size: 0.82rem !important;
    padding: 4px 0 !important;
}

.tabulator-edit-list .tabulator-edit-list-item {
    padding: 6px 12px !important;
    color: #012970 !important;
    cursor: pointer !important;
}

.tabulator-edit-list .tabulator-edit-list-item:hover,
.tabulator-edit-list .tabulator-edit-list-item.focused {
    background-color: #f1f4fb !important;
    color: #4154f1 !important;
}

.tabulator-edit-list .tabulator-edit-list-item.active {
    background-color: #4154f1 !important;
    color: #ffffff !important;
}

/* Modal Enhancements & Constant Height */
#parcelDetailModal .modal-dialog,
#transactionDetailModal .modal-dialog,
#dailyAccountModal .modal-dialog {
    height: 85vh;
    max-height: 85vh;
    margin-top: auto;
    margin-bottom: auto;
    display: flex;
    align-items: center;
}

#parcelDetailModal .modal-content,
#transactionDetailModal .modal-content,
#dailyAccountModal .modal-content {
    height: 85vh !important;
    max-height: 85vh !important;
    min-height: 85vh !important;
    display: flex;
    flex-direction: column;
}

#parcelDetailModal .modal-header,
#parcelDetailModal .modal-footer,
#transactionDetailModal .modal-header,
#transactionDetailModal .modal-footer,
#dailyAccountModal .modal-header,
#dailyAccountModal .modal-footer {
    flex-shrink: 0;
}

#parcelDetailModal .modal-body,
#transactionDetailModal .modal-body,
#dailyAccountModal .modal-body {
    flex: 1 1 auto;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#parcelDetailModal #modal-loading-state,
#transactionDetailModal #modal-tx-loading-state,
#dailyAccountModal #modal-sda-loading-state {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 250px;
}

#parcelDetailModal #modal-content-container,
#transactionDetailModal #modal-tx-content-container,
#dailyAccountModal #modal-sda-content-container {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

#parcelDetailModal .tab-content,
#transactionDetailModal .tab-content,
#dailyAccountModal .tab-content {
    flex: 1 1 auto;
}

#parcelDetailModal .nav-tabs-bordered .nav-link,
#transactionDetailModal .nav-tabs-bordered .nav-link,
#dailyAccountModal .nav-tabs-bordered .nav-link {
    font-size: 0.85rem;
    font-weight: 500;
    padding: 8px 12px;
}

#parcelDetailModal .nav-tabs-bordered .nav-link.active,
#transactionDetailModal .nav-tabs-bordered .nav-link.active,
#dailyAccountModal .nav-tabs-bordered .nav-link.active {
    color: #4154f1;
    border-bottom: 2px solid #4154f1;
}

#parcelDetailModal .card,
#transactionDetailModal .card,
#dailyAccountModal .card {
    border-radius: 6px;
}

@media (max-width: 767.98px) {
    #parcelDetailModal .modal-dialog,
    #transactionDetailModal .modal-dialog,
    #dailyAccountModal .modal-dialog {
        height: 100vh;
        max-height: 100vh;
        margin: 0;
    }
    #parcelDetailModal .modal-content,
    #transactionDetailModal .modal-content,
    #dailyAccountModal .modal-content {
        height: 100vh !important;
        max-height: 100vh !important;
        min-height: 100vh !important;
        border-radius: 0;
    }
}


@media print {
    body * {
        visibility: hidden !important;
    }
    #parcelDetailModal,
    #parcelDetailModal *,
    #transactionDetailModal,
    #transactionDetailModal *,
    #dailyAccountModal,
    #dailyAccountModal * {
        visibility: visible !important;
    }
    #parcelDetailModal,
    #transactionDetailModal,
    #dailyAccountModal {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        margin: 0;
        padding: 0;
    }
    #parcelDetailModal .modal-dialog,
    #transactionDetailModal .modal-dialog,
    #dailyAccountModal .modal-dialog {
        max-width: 100% !important;
        margin: 0 !important;
    }
    #parcelDetailModal .modal-footer,
    #parcelDetailModal .btn-close,
    #transactionDetailModal .modal-footer,
    #transactionDetailModal .btn-close,
    #dailyAccountModal .modal-footer,
    #dailyAccountModal .btn-close {
        display: none !important;
    }
}
