
        :root {
            --primary-color: #0066cc;
            --secondary-color: #0052a3;
            --success-color: #0066cc;
            --warning-color: #ff9f1c;
            --danger-color: #e71d36;
            --info-color: #0066cc;
            --light-bg: #f8f9fa;
            --card-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
            --hover-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
        }
        /* Caregiving specific styles */
        .table thead th {
            text-align: center;
        }
        .course-card {
    display: flex;
    
    justify-content: center;     /* vertical center */
    align-items: center;         /* horizontal center */
    text-align: center;

    padding: 18px 16px;
    border-radius: 10px;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
    min-height: 80px;

    box-shadow: 0 8px 20px rgba(0,0,0,.15);
    transition: all .15s ease;
}

.course-card i {
    font-size: 1.6rem;
}

.course-card span {
    font-size: .95rem;
    line-height: 1.2;
    border-bottom: 2px solid white;
    margin-left: 10px;
}

.course-card:hover {
    transform: translateY(-2px);
    opacity: .95;
}

/* Colors */
.bg-caregiving { background: #4b6cb7; }
.bg-healthcare { background: #0d6efd; }
.bg-brown { background: #8B4513; }

/* .vc-detected {
    background-color: #fff8e1 !important;
    border-left: 3px solid #ffc107 !important;
}

.month-payment-box {
    transition: all 0.2s ease;
    cursor: pointer;
}

.month-payment-box:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.vc-badge {
    background: linear-gradient(135deg, #ffc107 0%, #ff9800 100%);
    color: #000;
    font-weight: bold;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
}

.caregiving-course-badge {
    background: linear-gradient(135deg, #4b6cb7 0%, #182848 100%);
    color: white;
    font-weight: bold;
} */

        /* Make bootstrap "success" utilities follow primary blue */
        .text-success { color: var(--primary-color) !important; }
        .btn-success { background-color: var(--primary-color); border-color: var(--primary-color); }
        .btn-success:hover { background-color: #1f5be2; }

        /* Site logo sizing to sit within navbar height */
        .site-logo {
            max-height: 40px;
            height: 40px;
            width: auto;
            object-fit: contain;
            display: inline-block;
        }

        /* Fixed navbar logo to avoid shifting site text */
        #siteLogoNav {
            width: 40px;
            height: 40px;
            object-fit: contain;
            display: inline-block;
            flex-shrink: 0;
        }

        /* Slightly smaller logo on very small screens */
        @media (max-width: 576px) {
            .site-logo {
                height: 36px;
                max-height: 36px;
            }
            #siteLogoNav {
                width: 36px;
                height: 36px;
            }
        }
        
        body {
            background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
            min-height: 100vh;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        
        .glass-card {
            background: rgba(255, 255, 255, 0.9);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 16px;
            box-shadow: var(--card-shadow);
            transition: all 0.3s ease;
        }
        
        .glass-card:hover {
            border: 1px solid rgb(0, 0, 0);
            box-shadow: var(--hover-shadow);
        }

        /* Utility to disable hover/pop animations for specific elements */
        .no-pop, .no-pop:hover {
            transform: none !important;
            box-shadow: var(--card-shadow) !important;
            transition: none !important;
        }

        /* Back link / breadcrumb style */
        .back-link {
            color: #6c757d;
            font-size: 0.95rem;
            text-decoration: none;
        }
        .back-link:hover {
            color: var(--primary-color);
            text-decoration: none;
        }
        .page-header-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 1rem;
        }
        .page-title {
            margin: 0;
        }
        
        .summary-card {
            border-radius: 12px;
            overflow: hidden;
            border: none;
            transition: all 0.3s ease;
        }
        
        .summary-card:hover {
            transform: translateY(-8px);
        }
        
        .summary-icon {
            width: 60px;
            height: 60px;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 24px;
        }
        
        .batch-badge {
            background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
            color: white;
            padding: 6px 16px;
            border-radius: 20px;
            font-weight: 600;
            font-size: 0.875rem;
            box-shadow: 0 2px 4px rgba(67, 97, 238, 0.2);
        }
        
        .upload-area {
            border: 3px dashed var(--primary-color);
            border-radius: 16px;
            padding: 50px 20px;
            text-align: center;
            background: rgba(67, 97, 238, 0.05);
            cursor: pointer;
            transition: all 0.3s ease;
        }
        
        .upload-area:hover {
            background: rgba(67, 97, 238, 0.1);
            border-color: var(--secondary-color);
            transform: scale(1.02);
        }
        
        .or-badge {
            background: rgba(67, 97, 238, 0.1);
            color: var(--primary-color);
            padding: 4px 10px;
            border-radius: 8px;
            font-size: 0.8rem;
            font-weight: 600;
            font-family: 'Monaco', 'Courier New', monospace;
        }
        
        .payment-box {
            background: white;
            border-radius: 12px;
            padding: 20px;
            border: 2px solid #e9ecef;
            transition: all 0.3s ease;
            cursor: pointer;
            position: relative;
        }
        
        .payment-box:hover {
            border-color: var(--primary-color);
            transform: translateY(-3px);
            box-shadow: var(--card-shadow);
        }
        
        .payment-box.misc-fee {
            border-left: 4px solid var(--warning-color);
        }
        
        .payment-box.custom-payment {
            border-left: 4px solid var(--info-color);
        }
        
        .payment-box.regular-payment {
            border-left: 4px solid var(--success-color);
        }
        
        .edit-icon {
            position: absolute;
            top: 10px;
            right: 10px;
            opacity: 0;
            transition: opacity 0.3s ease;
        }
        
        .payment-box:hover .edit-icon {
            opacity: 1;
        }
        
        .btn-modern {
            background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
            border: none;
            border-radius: 10px;
            padding: 10px 24px;
            font-weight: 600;
            color: white;
            transition: all 0.3s ease;
        }
        
        .btn-modern:hover {
            transform: translateY(-2px);
            box-shadow: 0 6px 12px rgba(67, 97, 238, 0.3);
            color: white;
        }
        
        .modal-header {
            background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
            color: white;
            
        }
        
        .form-control-modern {
            border: 2px solid #e9ecef;
            border-radius: 10px;
            padding: 12px 16px;
            transition: all 0.3s ease;
        }
        
        .form-control-modern:focus {
            border-color: var(--primary-color);
            box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1);
        }
        
        .add-payment-btn {
            width: 100%;
            padding: 20px;
            border: 2px dashed #dee2e6;
            border-radius: 12px;
            background: #f8f9fa;
            color: #6c757d;
            font-weight: 600;
            transition: all 0.3s ease;
        }
        
        .add-payment-btn:hover {
            border-color: var(--primary-color);
            background: rgba(67, 97, 238, 0.05);
            color: var(--primary-color);
            transform: translateY(-2px);
        }
        
        .student-row td {
            border-top: 1px solid transparent;
            border-bottom: 1px solid transparent;
            transition: border 0.3s;
        }

        .student-row:hover td {
            border-top: 1px solid black;
            border-bottom: 1px solid black;
        }

        
        .table-modern {
            border-collapse: separate;
            border-spacing: 0 8px;
        }
        
        .table-modern th {
            border: none;
            background: rgba(67, 97, 238, 0.1);
            color: var(--primary-color);
            font-weight: 700;
            padding: 16px;
        }
        
        .table-modern td {
            background: white;
            padding: 16px;
            vertical-align: middle;
        }
        
        .table-modern tr:first-child td:first-child {
            border-top-left-radius: 12px;
        }
        
        .table-modern tr:first-child td:last-child {
            border-top-right-radius: 12px;
        }
        
        .table-modern tr:last-child td:first-child {
            border-bottom-left-radius: 12px;
        }
        
        .table-modern tr:last-child td:last-child {
            border-bottom-right-radius: 12px;
        }
        
        .payment-type-label {
            font-size: 0.85rem;
            font-weight: 600;
            color: #6c757d;
            margin-bottom: 8px;
        }
        
        .payment-amount {
            font-size: 1.2rem;
            font-weight: 700;
            margin-bottom: 4px;
        }
    



        /* Modal scrollable enhancements */
        .modal-dialog-scrollable .modal-body {
            overflow-y: auto;
            max-height: calc(95vh - 120px);
        }

        /* Fix for modal header on scroll */
        .modal-header.sticky-top {
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
            border-bottom: 2px solid var(--primary-color);
        }

        /* Smooth scrolling */
        .modal-body {
            scroll-behavior: smooth;
        }

        /* Custom scrollbar for modal */
        .modal-body::-webkit-scrollbar {
            width: 10px;
        }

        .modal-body::-webkit-scrollbar-track {
            background: #f1f5f9;
            border-radius: 5px;
        }

        .modal-body::-webkit-scrollbar-thumb {
            background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
            border-radius: 5px;
        }

        .modal-body::-webkit-scrollbar-thumb:hover {
            background: linear-gradient(135deg, var(--secondary-color) 0%, var(--primary-color) 100%);
        }

        /* PDF button styling */
        #downloadPdfBtn {
            background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
            color: white;
            border: none;
            padding: 6px 12px;
            border-radius: 6px;
            font-size: 0.875rem;
            font-weight: 500;
            transition: all 0.3s ease;
        }

        #downloadPdfBtn:hover {
            transform: translateY(-2px);
            box-shadow: 0 4px 8px rgba(220, 53, 69, 0.3);
            color: white;
        }

        #downloadPdfBtn:disabled {
            opacity: 0.7;
            cursor: not-allowed;
        }
        .btn-modern {
            background-color: var(--primary-color);
            color: #fff;
            border-radius: 8px;
        }
        .is-invalid {
            border-color: #dc3545 !important;
            box-shadow: 0 0 0 0.2rem rgba(220, 60, 60, 0.25);
        }

        #paymentTypeError {
            display: none;
            color: #dc3545;
            font-size: 0.875rem;
            margin-top: 0.25rem;
        }
        /* //blur */
        .shadow-under-modal {
            box-shadow: 0 0 30px rgba(212, 212, 212, 1);
            
            z-index: 1050; /* make sure it's above backdrop */
            transition: transform 0.2s ease, box-shadow 0.2s ease;
        }


