/* LabPro Custom Styles */
:root {
    --labpro-primary: #2c5aa0;
    --labpro-primary-dark: #1e3d72;
    --labpro-primary-light: #4a7bc8;
    --labpro-secondary: #6c757d;
    --labpro-success: #28a745;
    --labpro-warning: #ffc107;
    --labpro-danger: #dc3545;
    --labpro-info: #17a2b8;
    --labpro-light: #f8f9fa;
    --labpro-dark: #343a40;
    --labpro-gradient: linear-gradient(135deg, #2c5aa0 0%, #4a7bc8 100%);
    --labpro-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    --labpro-shadow-hover: 0 8px 15px rgba(0, 0, 0, 0.15);
}

/* Global Styles */
.labpro-body {
    background: linear-gradient(135deg, #f5f7fa 0%, #e4e8f0 100%);
    min-height: 100vh;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

.labpro-main {
    padding: 1rem 2rem;
    min-height: calc(100vh - 200px);
}

.labpro-container {
    max-width: 1400px;
    margin: 0 auto;
}

/* Navigation Styles */
.labpro-navbar {
    background: var(--labpro-gradient) !important;
    box-shadow: var(--labpro-shadow);
    padding: 0.8rem 1rem;
}

.labpro-brand {
    font-weight: 700;
    font-size: 1.4rem;
    display: flex;
    align-items: center;
}

.labpro-brand i {
    font-size: 1.6rem;
}

.brand-text {
    background: linear-gradient(45deg, #fff, #e3f2fd);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.user-welcome {
    font-size: 0.8rem;
    opacity: 0.9;
    font-weight: 400;
}

.labpro-nav-link {
    font-weight: 500;
    padding: 0.5rem 1rem !important;
    border-radius: 0.375rem;
    margin: 0 0.2rem;
    transition: all 0.3s ease;
}

.labpro-nav-link:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateY(-1px);
}

.labpro-logout-btn {
    border-radius: 0.375rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.labpro-logout-btn:hover {
    transform: translateY(-1px);
    box-shadow: var(--labpro-shadow);
}

/* Footer Styles */
.labpro-footer {
    background: var(--labpro-light) !important;
    border-top: 1px solid #dee2e6;
    box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.05);
}

.labpro-footer-text {
    font-size: 0.9rem;
}

.labpro-version {
    font-size: 0.8rem;
    font-family: 'Courier New', monospace;
}

/* Page Header */
.labpro-page-header {
    text-align: center;
    margin-bottom: 2rem;
    padding: 1rem;
}

.labpro-page-title {
    font-weight: 700;
    color: var(--labpro-primary);
    margin-bottom: 0.5rem;
    font-size: 2.2rem;
    background: linear-gradient(45deg, var(--labpro-primary), var(--labpro-primary-light));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.labpro-page-subtitle {
    color: var(--labpro-secondary);
    font-size: 1.1rem;
    margin-bottom: 0;
}

/* Statistics Cards */
.labpro-stats-row {
    margin-bottom: 2rem;
}

.labpro-stat-card {
    border: none;
    border-radius: 1rem;
    box-shadow: var(--labpro-shadow);
    transition: all 0.3s ease;
    overflow: hidden;
    position: relative;
    cursor: pointer;
}

.labpro-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--labpro-gradient);
}

.labpro-stat-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--labpro-shadow-hover);
}

.labpro-stat-primary {
    background: linear-gradient(135deg, #2c5aa0 0%, #4a7bc8 100%);
    color: white;
}

.labpro-stat-success {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
    color: white;
}

.labpro-stat-warning {
    background: linear-gradient(135deg, #ffc107 0%, #fd7e14 100%);
    color: white;
}

.labpro-stat-info {
    background: linear-gradient(135deg, #17a2b8 0%, #6f42c1 100%);
    color: white;
}

.labpro-stat-title {
    font-size: 0.9rem;
    opacity: 0.9;
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.labpro-stat-value {
    font-size: 2.2rem;
    font-weight: 700;
    margin-bottom: 0;
}

.labpro-stat-icon {
    font-size: 2.5rem;
    opacity: 0.8;
}

.labpro-stat-trend {
    font-size: 0.85rem;
    margin-bottom: 0;
}

.labpro-stat-trend.positive::before {
    content: '↑ ';
    color: #d4edda;
}

.labpro-stat-trend.negative::before {
    content: '↓ ';
    color: #f8d7da;
}

/* Content Cards */
.labpro-content-card {
    border: none;
    border-radius: 1rem;
    box-shadow: var(--labpro-shadow);
    transition: all 0.3s ease;
    overflow: hidden;
}

.labpro-content-card:hover {
    box-shadow: var(--labpro-shadow-hover);
}

.labpro-card-header {
    background: var(--labpro-light);
    border-bottom: 1px solid #dee2e6;
    padding: 1.25rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.labpro-card-header .card-title {
    margin: 0;
    font-weight: 600;
    color: var(--labpro-primary);
}

/* Tables */
.labpro-table {
    margin-bottom: 0;
}

.labpro-table-header {
    background: var(--labpro-light);
}

.labpro-table-header th {
    border: none;
    font-weight: 600;
    color: var(--labpro-primary);
    padding: 1rem 0.75rem;
    font-size: 0.9rem;
}

.labpro-table-row {
    transition: all 0.2s ease;
}

.labpro-table-row:hover {
    background-color: #f8f9fa;
    transform: scale(1.005);
}

.labpro-table-row td {
    padding: 1rem 0.75rem;
    vertical-align: middle;
    border-color: #eceef1;
}

/* Badges */
.labpro-badge-success {
    background: var(--labpro-success);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 1rem;
    font-weight: 500;
    font-size: 0.8rem;
}

.labpro-badge-danger {
    background: var(--labpro-danger);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 1rem;
    font-weight: 500;
    font-size: 0.8rem;
}

.labpro-badge-warning {
    background: var(--labpro-warning);
    color: var(--labpro-dark);
    padding: 0.4rem 0.8rem;
    border-radius: 1rem;
    font-weight: 500;
    font-size: 0.8rem;
}

.labpro-badge-info {
    background: var(--labpro-info);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 1rem;
    font-weight: 500;
    font-size: 0.8rem;
}

.labpro-badge-secondary {
    background: var(--labpro-secondary);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 1rem;
    font-weight: 500;
    font-size: 0.8rem;
}

/* Buttons */
.labpro-btn-primary {
    background: var(--labpro-gradient);
    border: none;
    border-radius: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s ease;
    color: white;
}

.labpro-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--labpro-shadow-hover);
    color: white;
}

.labpro-btn-outline {
    border: 2px solid var(--labpro-primary);
    color: var(--labpro-primary);
    background: transparent;
    border-radius: 0.5rem;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    transition: all 0.3s ease;
}

.labpro-btn-outline:hover {
    background: var(--labpro-primary);
    color: white;
    transform: translateY(-2px);
}

.labpro-btn-icon {
    background: transparent;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    padding: 0.4rem 0.6rem;
    color: var(--labpro-secondary);
    transition: all 0.2s ease;
}

.labpro-btn-icon:hover {
    background: var(--labpro-primary);
    color: white;
    border-color: var(--labpro-primary);
}

/* Task List */
.labpro-task-list {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.labpro-task-item {
    padding: 0.75rem;
    border-radius: 0.5rem;
    background: #f8f9fa;
    transition: all 0.2s ease;
    border-left: 4px solid transparent;
}

.labpro-task-item:hover {
    background: #e9ecef;
    transform: translateX(5px);
}

.task-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.task-title {
    font-weight: 500;
    color: var(--labpro-dark);
}

.task-badge {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}


/* Animations */
.animate-on-scroll {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s ease;
}

.animate-on-scroll.animated {
    opacity: 1;
    transform: translateY(0);
}


/* User Welcome Styles - Option 1 */
.labpro-user-welcome {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    font-size: 0.9rem;
    padding: 0.5rem 0;
}

.labpro-user-welcome-mobile {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    font-size: 0.9rem;
    width: 100%;
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding-top: 0.5rem;
}

/* User Dropdown Styles - Option 2 */
.labpro-user-dropdown {
    margin-right: 1rem;
}

.labpro-user-toggle {
    color: white;
    padding: 0.5rem;
    border-radius: 0.5rem;
    transition: all 0.3s ease;
}

.labpro-user-toggle:hover {
    background: rgba(255, 255, 255, 0.15);
}

.labpro-user-avatar {
    font-size: 1.5rem;
}

.labpro-user-name {
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.2;
}

.labpro-user-role {
    font-size: 0.8rem;
    line-height: 1.2;
}

.labpro-dropdown-menu {
    border: none;
    border-radius: 0.5rem;
    box-shadow: var(--labpro-shadow);
    margin-top: 0.5rem;
}

.labpro-dropdown-menu .dropdown-item {
    padding: 0.75rem 1rem;
    font-weight: 500;
    transition: all 0.2s ease;
}

.labpro-dropdown-menu .dropdown-item:hover {
    background: var(--labpro-primary);
    color: white;
}

/* Compact User Styles - Option 3 */
.labpro-compact-user {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    font-size: 0.85rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.375rem;
    background: rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.labpro-compact-user:hover {
    background: rgba(255, 255, 255, 0.15);
}

.labpro-user-short {
    font-weight: 600;
}

.labpro-user-full {
    color: rgba(255, 255, 255, 0.9);
    font-weight: 500;
    font-size: 0.9rem;
    width: 100%;
    padding: 0.5rem 0;
}

/* Patient Module Specific Styles */
.labpro-search-box {
    min-width: 300px;
}

.labpro-search-input {
    border-radius: 0 0.375rem 0.375rem 0;
}

.labpro-action-buttons {
    display: flex;
    gap: 0.5rem;
}

.labpro-btn-group {
    display: flex;
    gap: 0.25rem;
}

.labpro-btn-success {
    background: var(--labpro-success);
    border: none;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    font-weight: 500;
    transition: all 0.3s ease;
    color: white;
}

.labpro-btn-success:hover {
    background: #03532b;
    transform: translateY(-1px);
    color: white;
}

.labpro-btn-danger {
    background: var(--labpro-danger);
    border: none;
    border-radius: 0.5rem;
    padding: 0.5rem 1rem;
    font-weight: 500;
    transition: all 0.3s ease;
    color: white;
}

.labpro-btn-danger:hover {
    background: #c82333;
    transform: translateY(-1px);
    color: white;
}

/* Avatar Styles */
.labpro-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 600;
}

.labpro-avatar-sm {
    width: 40px;
    height: 40px;
    font-size: 0.9rem;
}

.labpro-avatar-xl {
    width: 100px;
    height: 100px;
    font-size: 2rem;
}

/* Patient Stats */
.labpro-patient-stats {
    margin: 1.5rem 0;
}

.labpro-stat-small {
    text-align: center;
}

.labpro-stat-small .stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--labpro-primary);
    line-height: 1;
}

.labpro-stat-small .stat-label {
    font-size: 0.8rem;
    color: var(--labpro-secondary);
    margin-top: 0.25rem;
}


/* Info Display Styles */
.labpro-info-value {
    font-size: 1rem;
    font-weight: 500;
    color: var(--labpro-dark);
    margin-bottom: 0;
}

.labpro-form-label {
    font-weight: 600;
    color: var(--labpro-primary);
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.labpro-section-title {
    color: var(--labpro-primary);
    font-weight: 600;
    border-bottom: 2px solid var(--labpro-primary-light);
    padding-bottom: 0.5rem;
}

/* Form Controls */
.labpro-form-control {
    border-radius: 0.5rem;
    border: 2px solid #e9ecef;
    padding: 0.75rem 1rem;
    transition: all 0.3s ease;
}

.labpro-form-control:focus {
    border-color: var(--labpro-primary);
    box-shadow: 0 0 0 0.2rem rgba(44, 90, 160, 0.25);
}

/* Modal Styles */
.labpro-modal-header {
    background: var(--labpro-light);
    border-bottom: 1px solid #dee2e6;
}

.labpro-modal-footer {
    border-top: 1px solid #dee2e6;
    padding: 1rem 1.5rem;
}

/* Empty State */
.labpro-empty-state {
    padding: 2rem;
}

/* Pagination */
.labpro-pagination .page-link {
    color: var(--labpro-primary);
    border: 1px solid #dee2e6;
    margin: 0 0.25rem;
    border-radius: 0.375rem;
}

.labpro-pagination .page-item.active .page-link {
    background: var(--labpro-primary);
    border-color: var(--labpro-primary);
}

/* Badge Variations */
.labpro-badge-primary {
    background: var(--labpro-primary);
    color: white;
    padding: 0.4rem 0.8rem;
    border-radius: 1rem;
    font-weight: 500;
    font-size: 0.8rem;
}


/* Test Module Styles */
.labpro-test-icon {
    font-size: 3rem;
    color: var(--labpro-primary);
    margin-bottom: 1rem;
}

.labpro-test-status {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
}

/* Timeline */
.labpro-test-timeline {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    margin-top: 2rem;
}

.timeline-item {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.timeline-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #e5e7eb;
    border: 3px solid white;
    box-shadow: 0 0 0 2px #e5e7eb;
    flex-shrink: 0;
}

.timeline-dot.completed {
    background: var(--labpro-success);
    box-shadow: 0 0 0 2px var(--labpro-success);
}

.timeline-content {
    flex: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.timeline-title {
    font-weight: 500;
    color: var(--labpro-dark);
}

.timeline-time {
    font-size: 0.85rem;
    color: var(--labpro-secondary);
}

/* Results Styles */
.labpro-results-container {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 0.5rem;
    border-left: 4px solid var(--labpro-primary);
}

.result-parameter {
    font-weight: 600;
    color: var(--labpro-dark);
    flex: 1;
}

.result-value {
    font-weight: 700;
    color: var(--labpro-primary);
    margin: 0 1rem;
    min-width: 80px;
    text-align: center;
}

.result-range {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.range-text {
    font-size: 0.85rem;
    color: var(--labpro-secondary);
}

.flag {
    padding: 0.25rem 0.75rem;
    border-radius: 1rem;
    font-size: 0.8rem;
    font-weight: 500;
}

.flag-high {
    background: #fef2f2;
    color: #dc2626;
    border: 1px solid #fecaca;
}

.flag-low {
    background: #f0f9ff;
    color: #0369a1;
    border: 1px solid #bae6fd;
}

.flag-normal {
    background: #f0fdf4;
    color: #16a34a;
    border: 1px solid #bbf7d0;
}

.result-interpretation {
    border-top: 1px solid #e5e7eb;
    padding-top: 1.5rem;
}

.labpro-notes-box {
    background: #f8f9fa;
    border-radius: 0.5rem;
    padding: 1rem;
    border-left: 4px solid var(--labpro-primary);
    font-size: 0.9rem;
    line-height: 1.5;
}

/* Test Type Badges */
.test-type-badge {
    padding: 0.5rem 1rem;
    border-radius: 0.5rem;
    font-weight: 500;
    font-size: 0.85rem;
}



/* ///////// */
/* Test Show Page Specific Styles */
.labpro-test-icon {
    font-size: 3rem;
    color: var(--labpro-primary);
    margin-bottom: 1rem;
}

.test-specs-card .card-body {
    padding: 1rem;
}

.test-specs-card .card-body > div {
    padding: 0.5rem 0;
    border-bottom: 1px solid #eceef1;
}

.test-specs-card .card-body > div:last-child {
    border-bottom: none;
}

/* Sub-tests table enhancements */
.table-responsive {
    border-radius: 0.5rem;
}

.table th {
    border-top: none;
    font-weight: 600;
    color: var(--labpro-primary);
}

/* Status badges enhancement */
.badge {
    font-size: 0.75rem;
    padding: 0.4rem 0.8rem;
}

/* Quick stats alignment */
.labpro-stat-small .stat-value {
    font-size: 1.1rem;
    font-weight: 700;
}

.labpro-stat-small .stat-label {
    font-size: 0.75rem;
    color: var(--labpro-secondary);
}

/* ///////// */



/* ///////////// */
/* Test Result Categories Styles */
.result-category-item {
    background: #f8f9fa;
    border-left: 4px solid var(--labpro-primary) !important;
    transition: all 0.3s ease;
}

.result-category-item:hover {
    background: #e9ecef;
    transform: translateX(2px);
}

.remove-category {
    transition: all 0.2s ease;
}

.remove-category:hover {
    transform: scale(1.1);
}
/* ///////////// */

/* Responsive */
@media (max-width: 768px) {
    .result-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .result-value {
        margin: 0;
        text-align: left;
    }
    
    .timeline-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.25rem;
    }
}

/* ---------------------------------------- */
/* Test Form Specific Styles */
.labpro-section-title {
    color: var(--labpro-primary);
    font-weight: 600;
    border-bottom: 2px solid var(--labpro-primary-light);
    padding-bottom: 0.5rem;
    margin-top: 1.5rem;
}

.labpro-form-label {
    font-weight: 600;
    color: var(--labpro-primary);
    margin-bottom: 0.5rem;
    font-size: 0.9rem;
}

.labpro-form-control {
    border-radius: 0.5rem;
    border: 2px solid #e9ecef;
    padding: 0.75rem 1rem;
    transition: all 0.3s ease;
}

.labpro-form-control:focus {
    border-color: var(--labpro-primary);
    box-shadow: 0 0 0 0.2rem rgba(44, 90, 160, 0.25);
}

.labpro-form-control.is-valid {
    border-color: var(--labpro-success);
}

.labpro-form-control.is-invalid {
    border-color: var(--labpro-danger);
}

/* Price input group */
.input-group-text {
    background-color: #f8f9fa;
    border: 2px solid #e9ecef;
    border-right: none;
}

.input-group .labpro-form-control {
    border-left: none;
}

.input-group .labpro-form-control:focus {
    border-left: none;
    border-color: var(--labpro-primary);
}

.input-group:focus-within .input-group-text {
    border-color: var(--labpro-primary);
}

/* Code blocks for templates */
code {
    background: #f8f9fa;
    padding: 0.5rem;
    border-radius: 0.375rem;
    font-family: 'Courier New', monospace;
    color: #e83e8c;
    display: block;
    white-space: pre-wrap;
}

/* File upload styling */
.form-control[type="file"] {
    padding: 0.75rem;
}

.form-control[type="file"]::file-selector-button {
    background: var(--labpro-primary);
    color: white;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 0.375rem;
    margin-right: 1rem;
    transition: all 0.3s ease;
}

.form-control[type="file"]::file-selector-button:hover {
    background: var(--labpro-primary-dark);
}

/* Bulk import section */
.bg-light {
    background-color: #f8f9fa !important;
}


/* Responsive adjustments */
@media (max-width: 768px) {
    .labpro-form-control {
        padding: 0.6rem 0.8rem;
    }
    
    .input-group {
        flex-direction: column;
    }
    
    .input-group-text {
        border-right: 2px solid #e9ecef;
        border-bottom: none;
        border-radius: 0.5rem 0.5rem 0 0;
    }
    
    .input-group .labpro-form-control {
        border-left: 2px solid #e9ecef;
        border-radius: 0 0 0.5rem 0.5rem;
    }
}
/* ---------------------------------------- */

/* Add to custom.css */
.tab-btn {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    padding: 8px 16px;
    cursor: pointer;
    font-weight: 600;
    color: #555;
    transition: 0.2s ease;
}
.tab-btn.active {
    border-color: #007bff;
    color: #007bff;
}
.tab-content {
    display: none;
}
.tab-content.active {
    display: block;
}
/* //////////////////////////// */

/*== ------------------------------------------------------ ==*/
/* Responsive adjustments */
@media (max-width: 991.98px) {
    .labpro-user-welcome {
        display: none !important;
    }
    
    .labpro-compact-user {
        display: none !important;
    }
    
    .labpro-user-dropdown {
        margin-right: 0;
        margin-bottom: 1rem;
        width: 100%;
    }
    
    .labpro-user-toggle {
        justify-content: center;
        padding: 1rem;
    }
    
    .labpro-dropdown-menu {
        width: 100%;
        text-align: center;
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    .labpro-page-title {
        font-size: 1.8rem;
    }
    
    .labpro-stat-value {
        font-size: 1.8rem;
    }
    
    .labpro-stat-icon {
        font-size: 2rem;
    }
    
    .labpro-brand {
        font-size: 1.2rem;
    }
    
    .user-welcome {
        display: none;
    }

    .labpro-search-box {
        min-width: 100%;
        margin-bottom: 1rem;
    }
    
    .labpro-action-buttons {
        width: 100%;
        justify-content: flex-end;
    }
    
    .labpro-btn-group {
        flex-wrap: wrap;
        justify-content: center;
    }
}

@media (max-width: 576px) {
    .labpro-main {
        padding: 1rem 0.5rem;
    }
    
    .labpro-card-header {
        flex-direction: column;
        gap: 1rem;
        align-items: flex-start;
    }
    
    .task-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
}


/* Enhanced Table Styles */
.bg-light-hover {
    transition: all 0.2s ease;
}

.bg-light-hover:hover {
    background-color: #f8f9fa !important;
    transform: translateX(2px);
}

.test-item {
    border-left: 3px solid transparent;
    transition: all 0.3s ease;
}

.test-item:hover {
    border-left-color: var(--labpro-primary);
    background-color: #f8f9fa;
}

.text-xs {
    font-size: 0.75rem;
}

/* Action Button Enhancements */
.btn-sm {
    padding: 0.4rem 0.8rem;
    font-size: 0.8rem;
}

/* Table Responsive Enhancements */
@media (max-width: 1200px) {
    .table-responsive {
        font-size: 0.9rem;
    }
    
    .test-item {
        padding: 0.5rem !important;
    }
}

@media (max-width: 768px) {
    .labpro-table-header th {
        padding: 0.75rem 0.5rem;
        font-size: 0.8rem;
    }
    
    .labpro-table-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .btn-sm {
        padding: 0.3rem 0.6rem;
        font-size: 0.75rem;
    }
}



/* --------------------------------------- */

.form-signin {
  max-width: 330px;
  padding: 1rem;
}

.form-signin .form-floating:focus-within {
  z-index: 2;
}

.form-signin input[type="email"] {
  margin-bottom: -1px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.form-signin input[type="password"] {
  margin-bottom: 10px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

/* Error message styling */
.error {
    color: #b71c1c;           /* deep red text */
    font-size: 0.875rem;      /* slightly smaller */
    margin-top: 4px;
    display: block;
}

/* Highlight invalid form fields */
input.error,
select.error,
textarea.error {
    border: 1px solid #e53935;  /* red border */
    background-color: #ffebee;  /* very light red background */
    border-radius: 4px;
}

/* Optional: smooth transitions for error state */
input.error,
select.error,
textarea.error
div.error {
    transition: border-color 0.3s, background-color 0.3s;
}

/* Flash success message styling */
.success {
    color: #1b5e20;              /* deep green */
    background-color: #e8f5e9;   /* very light green background */
    border: 1px solid #43a047;   /* medium green border */
    padding: 10px 14px;
    border-radius: 4px;
    margin: 10px 0;
    font-size: 0.9rem;
}

/* Flash error message styling */
.error-flash {
    color: #b71c1c;
    background-color: #ffebee;
    border: 1px solid #e53935;
    padding: 10px 14px;
    border-radius: 4px;
    margin: 10px 0;
    font-size: 0.9rem;
}
