body { 
    font-family: 'Inter', sans-serif; 
}
#app-container, #sidebar-container, .sidebar {
    height: 100vh;
}
.sidebar { 
    transition: transform 0.3s ease-in-out; 
}
.sidebar nav {
    flex-grow: 1;
}
.main-content { 
    transition: margin-left 0.3s ease-in-out; 
}
::-webkit-scrollbar { 
    width: 8px; 
    height: 8px; 
}
::-webkit-scrollbar-track { 
    background: #f1f1f1; 
}
::-webkit-scrollbar-thumb { 
    background: #a8a8a8; 
    border-radius: 10px; 
}
::-webkit-scrollbar-thumb:hover { 
    background: #888; 
}
.modal-overlay { 
    display: none; 
    opacity: 0; 
    transition: opacity 0.3s ease-in-out; 
}
.modal-overlay.active { 
    display: flex; 
    opacity: 1; 
}
.modal-content { 
    transform: scale(0.95); 
    opacity: 0; 
    transition: all 0.3s ease-in-out; 
}
.modal-overlay.active .modal-content { 
    transform: scale(1); 
    opacity: 1; 
}
.fab { 
    transition: transform 0.2s ease-in-out; 
}
.fab:hover { 
    transform: scale(1.1); 
}
.month-selector-btn.active { 
    background-color: #3B82F6; 
    color: white; 
    font-weight: 600; 
}
.dashboard-card { 
    transition: transform 0.2s, box-shadow 0.2s; 
    cursor: pointer; 
}
.dashboard-card:hover { 
    transform: translateY(-5px); 
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); 
}

/* Sidebar Link Styling */
.sidebar .nav-link {
    color: #CBD5E0;
}
.sidebar .nav-link:hover {
    background-color: #4A5568;
    color: #FFFFFF;
}
.sidebar .nav-link.active-link {
    background-color: #2D3748;
    color: #FFFFFF;
    font-weight: 600;
}
.sidebar .nav-link.active-link i {
    color: #FFFFFF;
}

/* --- DataTables UI & Responsive Styling --- */
.dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter, .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_paginate {
    padding: 1rem;
}
.dataTables_wrapper .dataTables_filter input {
    border: 1px solid #d2d6dc;
    padding: 0.5rem;
    border-radius: 0.375rem;
    margin-left: 0.5rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
    padding: 0.5rem 1rem;
    margin: 0 0.25rem;
    border-radius: 0.375rem;
    border: 1px solid #d1d5db;
    background-color: #f9fafb;
    color: #1f2937 !important; /* Default dark text for Prev/Next */
}
/* THIS IS THE FINAL FIX: Target only the numbers inside the anchor tags */
.dataTables_wrapper .dataTables_paginate .paginate_button a {
    color: #3B82F6 !important; /* Blue text for page numbers */
    font-weight: 600;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background-color: #3B82F6;
    border-color: #3B82F6;
}
/* Ensure the current page number text is white */
.dataTables_wrapper .dataTables_paginate .paginate_button.current a,
.dataTables_wrapper .dataTables_paginate .paginate_button.current a:hover {
    color: white !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background-color: #f3f4f6;
    border-color: #d1d5db;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover {
    background-color: #f9fafb;
    color: #9ca3af !important;
    border-color: #e5e7eb;
}
table.dataTable.no-footer {
    border-bottom: 1px solid #e5e7eb;
}
table.dataTable thead th, table.dataTable thead td {
    background-color: #f9fafb;
    border-bottom: 2px solid #e5e7eb;
    font-weight: 600;
    color: #374151;
}
table.dataTable tbody td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #e5e7eb;
}
/* Style for the expand/collapse icon */
table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before, table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before {
    top: 50%;
    margin-top: -12px;
    left: 8px;
    height: 24px;
    width: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #4CAF50;
    border-radius: 50%;
    box-sizing: border-box;
    background-color: #4CAF50;
    color: white;
    font-weight: bold;
    line-height: 24px;
}
table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before, table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before {
    background-color: #F44336;
    border-color: #F44336;
}
/* --- End of DataTables --- */

@media print {
    body * { 
        visibility: hidden; 
    }
    #printable-invoice, #printable-invoice * { 
        visibility: visible; 
    }
    #printable-invoice { 
        position: absolute; 
        left: 0; 
        top: 0; 
        width: 100%; 
    }
}

/* General Mobile Responsiveness */
@media (max-width: 768px) {
    #main-content-area {
        padding: 1rem; /* Less padding on mobile */
    }
    .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter {
        text-align: left;
    }
    .dataTables_wrapper .dataTables_paginate {
        justify-content: center;
    }
    .dashboard-card {
        flex-direction: column;
        align-items: flex-start;
    }
}