html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

body {
  margin: 0;
  padding: 0;
  margin-bottom: 60px;
}

/* Custom color scheme - Professional and vibrant */
:root {
    /* Custom color definitions - Vibrant and clear */
    --success-bg: #10b981;
    --success-border: #059669;
    --success-text: #064e3b;
    
    --warning-bg: #f59e0b;
    --warning-border: #d97706;
    --warning-text: #78350f;
    
    --danger-bg: #ef4444;
    --danger-border: #dc2626;
    --danger-text: #7f1d1d;
    
    --info-bg: #3b82f6;
    --info-border: #2563eb;
    --info-text: #1e3a8a;
    
    /* Professional primary color for header and branding */
    --primary-bg: #0d6efd;
    --primary-hover: #0b5ed7;
    
    /* Override Bootstrap color system variables */
    --bs-success: #10b981;
    --bs-success-rgb: 16, 185, 129;
    --bs-danger: #ef4444;
    --bs-danger-rgb: 239, 68, 68;
    --bs-warning: #f59e0b;
    --bs-warning-rgb: 245, 158, 11;
    --bs-info: #3b82f6;
    --bs-info-rgb: 59, 130, 246;
    --bs-primary: #0d6efd;
    --bs-primary-rgb: 13, 110, 253;
}

/* Hero Section - Professional blue gradient suitable for ads */
.hero-section {
    background: linear-gradient(135deg, #0d6efd 0%, #0b5ed7 100%);
    color: white;
}

.hero-section h1,
.hero-section p {
    color: white !important;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Header - Clean professional look */
header {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    background-color: white;
}

header h1 {
    margin-bottom: 0;
}

header .bi-heart-pulse-fill {
    color: #dc3545;
}

header .text-primary {
    color: var(--primary-bg) !important;
}

/* Cards */
.card {
    border-radius: 12px;
    border: none;
}

.test-card {
    transition: transform 0.2s, box-shadow 0.2s;
    border: 1px solid #e9ecef;
}

.test-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* Buttons */
.btn-lg {
    padding: 12px 24px;
    font-size: 1.1rem;
}

.btn-primary {
    background-color: var(--primary-bg);
    border-color: var(--primary-bg);
}

.btn-primary:hover {
    background-color: var(--primary-hover);
    border-color: #0a58ca;
}

/* Forms */
.form-control-lg, .form-select-lg {
    font-size: 1.1rem;
    padding: 0.75rem 1rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--primary-bg);
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25);
}

/* Search Results */
#searchResults {
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    max-height: 300px;
    overflow-y: auto;
    border-radius: 8px;
}

#searchResults .list-group-item {
    border-left: 3px solid transparent;
    cursor: pointer;
}

#searchResults .list-group-item:hover {
    border-left-color: var(--primary-bg);
    background-color: #f8f9fa;
}

/* Footer */
footer {
    background-color: #f8f9fa;
    border-top: 1px solid #dee2e6;
    margin-top: 5rem;
}

footer h5 {
    font-size: 1rem;
    margin-bottom: 1rem;
}

footer p {
    line-height: 1.6;
}

footer ul {
    padding-left: 0;
    list-style: none;
}

footer a {
    color: #6c757d;
    text-decoration: none;
}

footer a:hover {
    color: var(--primary-bg);
    text-decoration: underline;
}

/* Range Chart Styles */
.range-chart {
    background: linear-gradient(to bottom, #f8f9fa, #ffffff);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.range-chart .fw-bold {
    font-size: 1.1rem;
}

/* Visual Range Chart - VIBRANT COLORS ONLY */
/* Normal Range - Strong Emerald Green */
.range-chart .bg-success,
.range-chart .bg-success.bg-opacity-50,
.range-chart .position-relative .bg-success,
.range-chart .position-relative .bg-success.bg-opacity-50,
.range-chart .position-relative .position-absolute .bg-success,
.range-chart .position-relative .position-absolute .bg-success.bg-opacity-50,
.range-chart .position-absolute.w-100 .bg-success.bg-opacity-50,
div.range-chart div.bg-success.bg-opacity-50 {
    background-color: #10b981 !important;
    border: 2px solid #059669 !important;
}

/* Out of Range - Strong Red */
.range-chart .bg-danger,
.range-chart .bg-danger.bg-opacity-25,
.range-chart .position-relative .bg-danger,
.range-chart .position-relative .bg-danger.bg-opacity-25,
.range-chart .position-relative .position-absolute .bg-danger,
.range-chart .position-relative .position-absolute .bg-danger.bg-opacity-25,
.range-chart .position-absolute.w-100 .bg-danger.bg-opacity-25,
div.range-chart div.bg-danger.bg-opacity-25 {
    background-color: #ef4444 !important;
    opacity: 0.4 !important;
    border-radius: 8px !important;
}

/* User value marker - Vibrant Blue */
.range-chart .bg-primary,
.range-chart .position-relative .bg-primary {
    background-color: #3b82f6 !important;
}

/* Legend squares at bottom - Vibrant colors */
.range-chart .d-flex.justify-content-center .bg-danger.bg-opacity-25,
.range-chart .d-flex .bg-danger.bg-opacity-25 {
    background-color: #ef4444 !important;
    opacity: 0.4 !important;
}

.range-chart .d-flex.justify-content-center .bg-success.bg-opacity-50,
.range-chart .d-flex .bg-success.bg-opacity-50 {
    background-color: #10b981 !important;
    border: 2px solid #059669 !important;
}

.range-chart .d-flex.justify-content-center .bg-primary,
.range-chart .d-flex .bg-primary {
    background-color: #3b82f6 !important;
}

/* Text colors in range chart */
.range-chart .text-success {
    color: #10b981 !important;
    font-weight: 600;
}

/* Override Bootstrap alert colors - VIBRANT */
.alert-success {
    background-color: #10b981 !important;
    border-color: #059669 !important;
    color: white !important;
}

.alert-success .alert-heading,
.alert-success strong {
    color: white !important;
}

.alert-warning {
    background-color: #f59e0b !important;
    border-color: #d97706 !important;
    color: white !important;
}

.alert-warning .alert-heading,
.alert-warning strong {
    color: white !important;
}

.alert-danger {
    background-color: #ef4444 !important;
    border-color: #dc2626 !important;
    color: white !important;
}

.alert-danger .alert-heading,
.alert-danger strong {
    color: white !important;
}

.alert-info {
    background-color: #3b82f6 !important;
    border-color: #2563eb !important;
    color: white !important;
}

.alert-info .alert-heading,
.alert-info strong {
    color: white !important;
}

/* Badge colors - VIBRANT */
.badge.bg-success {
    background-color: #10b981 !important;
}

.badge.bg-warning {
    background-color: #f59e0b !important;
}

.badge.bg-danger {
    background-color: #ef4444 !important;
}

.badge.bg-info {
    background-color: #3b82f6 !important;
}

.badge.bg-primary {
    background-color: var(--primary-bg) !important;
}

/* Progress bars - VIBRANT */
.progress-bar.bg-success {
    background-color: #10b981 !important;
}

.progress-bar.bg-warning {
    background-color: #f59e0b !important;
}

.progress-bar.bg-danger {
    background-color: #ef4444 !important;
}

.progress-bar.bg-info {
    background-color: #3b82f6 !important;
}

.progress-bar.bg-primary {
    background-color: var(--primary-bg) !important;
}

/* Card headers - VIBRANT */
.card-header.bg-success {
    background-color: #10b981 !important;
    color: white !important;
}

.card-header.bg-primary {
    background-color: var(--primary-bg) !important;
    color: white !important;
}

.card-header.bg-info {
    background-color: #3b82f6 !important;
    color: white !important;
}

.card-header.bg-dark {
    background-color: #1f2937 !important;
    color: white !important;
}

/* Text colors - VIBRANT */
.text-success {
    color: #10b981 !important;
}

.text-warning {
    color: #f59e0b !important;
}

.text-danger {
    color: #ef4444 !important;
}

.text-primary {
    color: var(--primary-bg) !important;
}

/* Border colors - VIBRANT */
.border-success,
.border.border-2.border-success {
    border-color: #059669 !important;
}

/* Button colors - VIBRANT */
.btn-success {
    background-color: #10b981 !important;
    border-color: #059669 !important;
    color: white !important;
}

.btn-success:hover {
    background-color: #059669 !important;
    border-color: #047857 !important;
}

.btn-warning {
    background-color: #f59e0b !important;
    border-color: #d97706 !important;
    color: white !important;
}

.btn-warning:hover {
    background-color: #d97706 !important;
    border-color: #b45309 !important;
}

.btn-danger {
    background-color: #ef4444 !important;
    border-color: #dc2626 !important;
    color: white !important;
}

.btn-danger:hover {
    background-color: #dc2626 !important;
    border-color: #b91c1c !important;
}

.btn-primary:focus, .btn-success:focus, .btn-warning:focus, .btn-danger:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem rgba(13, 110, 253, 0.5);
}

html {
    position: relative;
    min-height: 100%;
}

/* Admin Dashboard Styles */
.admin-card {
    transition: transform 0.2s ease;
}

.admin-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
}

.stat-card {
    border-left: 4px solid var(--primary-bg);
}