 :root {
            --primary: #4361ee;
            --primary-light: #eef2ff;
            --secondary: #6c757d;
            --success: #28a745;
            --warning: #ffc107;
            --danger: #dc3545;
            --info: #17a2b8;
            --light: #f8f9fa;
            --dark: #343a40;
            --border: #e9ecef;
            --text-muted: #6c757d;
            --bg-card: #ffffff;
            --bg-body: #f5f7fb;
        }

        body {
            background-color: var(--bg-body);
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
            color: #333;
        }

        .main-content {
            margin-left: 250px;
            padding: 20px;
            transition: all 0.3s;
        }

        /* Page Header */
        .page-header {
            background: var(--bg-card);
            border-radius: 10px;
            padding: 1.5rem;
            margin-bottom: 1.5rem;
            box-shadow: 0 2px 4px rgba(0,0,0,0.05);
        }

        .icon-wrapper {
            width: 60px;
            height: 60px;
            border-radius: 10px;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 15px;
        }

        .icon-wrapper i {
            font-size: 1.5rem;
            color: white;
        }

        .page-header h2 {
            font-weight: 700;
            color: var(--dark);
            font-size: 1.6rem;
        }

        .page-header p {
            color: var(--text-muted);
            margin-bottom: 0;
        }

        /* Cards */
        .card {
            border: none;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.05);
            margin-bottom: 1.5rem;
            overflow: hidden;
        }

        .card-header {
            background-color: var(--bg-card);
            border-bottom: 1px solid var(--border);
            padding: 1rem 1.5rem;
        }

        .card-header h5 {
            font-weight: 600;
            color: var(--dark);
            margin-bottom: 0;
        }

        .card-body {
            padding: 1.5rem;
        }

        /* Filter Card */
        .filter-card .form-label {
            font-weight: 500;
            color: var(--dark);
            margin-bottom: 0.5rem;
        }

        .filter-card .form-control,
        .filter-card .form-select {
            border-radius: 8px;
            border: 1px solid var(--border);
            padding: 0.75rem 1rem;
            font-size: 0.96rem;
        }

        .filter-card .btn {
            border-radius: 8px;
            padding: 0.75rem 1.5rem;
            font-size: 0.9rem;
            font-weight: 500;
        }

        /* Employee Card */
        .employee-card {
            border-left: 4px solid var(--primary);
        }

        .employee-photo {
            width: 70px;
            height: 70px;
            border-radius: 50%;
            overflow: hidden;
            border: 3px solid var(--primary-light);
        }

        .employee-photo img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .employee-info .badge {
            font-size: 0.75rem;
            padding: 0.35rem 0.65rem;
            border-radius: 6px;
        }

        .info-box {
            padding: 0.5rem;
        }

        .info-box i {
            font-size: 1.5rem;
            margin-bottom: 0.5rem;
        }

        .info-box small {
            font-size: 0.75rem;
        }

        /* Tables */
        .table-responsive {
            overflow-x: auto;
        }

        .custom-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 0.875rem;
        }

        .custom-table th {
            background-color: var(--primary-light);
            color: var(--primary);
            font-weight: 600;
            text-align: left;
            padding: 0.75rem 1rem;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            position: sticky;
            top: 0;
        }

        .custom-table td {
            padding: 0.75rem 1rem;
            border-bottom: 1px solid var(--border);
        }

        .custom-table tr:hover {
            background-color: var(--primary-light);
        }

        /* Apply custom-table styles to all tables */
        .records-table,
        .summary-table {
            width: 100%;
            border-collapse: collapse;
            font-size: 0.875rem;
        }

        .records-table th,
        .summary-table th {
            background-color: var(--primary-light);
            color: var(--primary);
            font-weight: 600;
            text-align: left;
            padding: 0.75rem 1rem;
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            position: sticky;
            top: 0;
        }

        .records-table td,
        .summary-table td {
            padding: 0.75rem 1rem;
            border-bottom: 1px solid var(--border);
        }

        .records-table tr:hover,
        .summary-table tr:hover {
            background-color: var(--primary-light);
        }

        /* Loading State */
        .loading-container .card {
            border: 1px dashed var(--border);
        }

        .spinner-border {
            border-width: 0.2em;
        }

        /* Floating Actions */
        .floating-actions {
            position: fixed;
            bottom: 30px;
            right: 30px;
            z-index: 1000;
        }

        .btn-floating {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 4px 10px rgba(0,0,0,0.15);
            transition: all 0.3s;
        }

        .btn-floating:hover {
            transform: translateY(-3px);
            box-shadow: 0 6px 15px rgba(0,0,0,0.2);
        }

        /* Responsive */
        @media (max-width: 768px) {
            .main-content {
                margin-left: 0;
                padding: 15px;
            }
            
            .employee-photo {
                width: 50px;
                height: 50px;
            }
            
            .icon-wrapper {
                width: 50px;
                height: 50px;
            }
            
            .info-box {
                margin-bottom: 1rem;
            }
        }