:root {
    --primary: #0066FF;
    --primary-dark: #0052CC;
    --secondary: #00D4AA;
    --accent: #FF6B35;
    --dark: #0A0F2D;
    --light: #F8FAFF;
    --gray: #64748B;
    --gradient: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
    --glass: rgba(255, 255, 255, 0.08);
    --glass-border: rgba(255, 255, 255, 0.18);
}

.bg-primary-soft {
    background-color: rgba(0, 102, 255, 0.08) !important;
}

.bg-secondary-soft {
    background-color: rgba(0, 212, 170, 0.08) !important;
}

.blur-lg {
    filter: blur(40px);
}

/* Bootstrap Color Overrides */
.bg-primary {
    background-color: var(--primary) !important;
}

.bg-primary-dark {
    background-color: var(--primary-dark) !important;
}

.bg-secondary {
    background-color: var(--secondary) !important;
}

.bg-accent {
    background-color: var(--accent) !important;
}

.bg-dark {
    background-color: var(--dark) !important;
}

.bg-light {
    background-color: var(--light) !important;
}

.bg-gray {
    background-color: var(--gray) !important;
}

.bg-gradient {
    background: var(--gradient) !important;
}

/* Text Colors */
.text-primary {
    color: var(--primary) !important;
}

.text-primary-dark {
    color: var(--primary-dark) !important;
}

.text-secondary {
    color: var(--secondary) !important;
}

.text-accent {
    color: var(--accent) !important;
}

.text-dark {
    color: var(--dark) !important;
}

.text-light {
    color: var(--light) !important;
}

.text-gray {
    color: var(--gray) !important;
}

/* Button Overrides */
.btn-primary {
    background: var(--gradient) !important;
    border-color: var(--primary) !important;
    color: white !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background: var(--primary-dark) !important;
    border-color: var(--primary-dark) !important;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 102, 255, 0.3);
}

.btn-outline-primary {
    color: var(--primary) !important;
    border-color: var(--primary) !important;
    background: transparent !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    color: white !important;
    transform: translateY(-2px);
}

.btn-secondary {
    background-color: var(--secondary) !important;
    border-color: var(--secondary) !important;
    color: var(--dark) !important;
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary:active {
    background-color: #00c29a !important;
    border-color: #00c29a !important;
    color: var(--dark) !important;
}

.btn-accent {
    background-color: var(--accent) !important;
    border-color: var(--accent) !important;
    color: white !important;
}

.btn-accent:hover,
.btn-accent:focus,
.btn-accent:active {
    background-color: #e55a2b !important;
    border-color: #e55a2b !important;
    color: white !important;
}

/* Alert Overrides */
.alert-primary {
    background-color: rgba(0, 102, 255, 0.1) !important;
    border-color: rgba(0, 102, 255, 0.3) !important;
    color: var(--primary-dark) !important;
}

.alert-secondary {
    background-color: rgba(0, 212, 170, 0.1) !important;
    border-color: rgba(0, 212, 170, 0.3) !important;
    color: #008f75 !important;
}

.alert-accent {
    background-color: rgba(255, 107, 53, 0.1) !important;
    border-color: rgba(255, 107, 53, 0.3) !important;
    color: #cc552a !important;
}

/* Badge Overrides */
.badge.bg-primary {
    background-color: var(--primary) !important;
}

.badge.bg-secondary {
    background-color: var(--secondary) !important;
    color: var(--dark) !important;
}

.badge.bg-accent {
    background-color: var(--accent) !important;
}

.badge.bg-dark {
    background-color: var(--dark) !important;
}

.badge.bg-light {
    background-color: var(--light) !important;
    color: var(--dark) !important;
}

/* Progress Bar Overrides */
.progress-bar {
    background-color: var(--primary) !important;
}

.progress-bar.bg-success {
    background-color: var(--secondary) !important;
}

.progress-bar.bg-warning {
    background-color: var(--accent) !important;
}

/* Border Colors */
.border-primary {
    border-color: var(--primary) !important;
}

.border-secondary {
    border-color: var(--secondary) !important;
}

.border-accent {
    border-color: var(--accent) !important;
}

.border-dark {
    border-color: var(--dark) !important;
}

.border-light {
    border-color: var(--light) !important;
}

/* Link Colors */
a {
    color: var(--primary);
}

a:hover {
    color: var(--primary-dark);
}

/* Card Overrides */
.card {
    border: 1px solid rgba(0, 0, 0, 0.08);
    box-shadow: 0 2px 10px rgba(10, 15, 45, 0.08);
}

.card-header.bg-primary {
    background: var(--gradient) !important;
    color: white !important;
}

/* Form Control Focus */
.form-control:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 102, 255, 0.15) !important;
}

.form-select:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(0, 102, 255, 0.15) !important;
}

.form-check-input:checked {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
}

/* Table Overrides */
.table-primary {
    --bs-table-bg: rgba(0, 102, 255, 0.1) !important;
    --bs-table-border-color: rgba(0, 102, 255, 0.2) !important;
}

.table-hover tbody tr:hover {
    background-color: rgba(0, 102, 255, 0.05) !important;
}

/* Nav & Tab Overrides */
.nav-pills .nav-link.active {
    background-color: var(--primary) !important;
}

.nav-pills .nav-link:not(.active) {
    color: var(--dark) !important;
}

.nav-tabs .nav-link.active {
    color: var(--primary) !important;
    border-bottom-color: var(--primary) !important;
}

.nav-tabs .nav-link:hover {
    color: var(--primary) !important;
}

/* Pagination */
.page-link {
    color: var(--primary) !important;
}

.page-link:hover {
    color: var(--primary-dark) !important;
}

.page-item.active .page-link {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
}

/* List Group */
.list-group-item.active {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
}

/* Modal Header */
.modal-header {
    background: var(--gradient) !important;
    color: white !important;
}

.modal-header .btn-close {
    filter: invert(1);
}

/* Custom Utility Classes */
.gradient-text {
    background: var(--gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.glass-effect {
    background: var(--glass);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
}

.shadow-primary {
    box-shadow: 0 4px 15px rgba(0, 102, 255, 0.2) !important;
}

.shadow-secondary {
    box-shadow: 0 4px 15px rgba(0, 212, 170, 0.2) !important;
}

.shadow-accent {
    box-shadow: 0 4px 15px rgba(255, 107, 53, 0.2) !important;
}

/* Hover Effects */
.hover-lift {
    transition: all 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

/* Background Gradients */
.bg-gradient-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%) !important;
}

.bg-gradient-secondary {
    background: linear-gradient(135deg, var(--secondary) 0%, #00b894 100%) !important;
}

.bg-gradient-accent {
    background: linear-gradient(135deg, var(--accent) 0%, #e55a2b 100%) !important;
}

/* Text Shadows */
.text-shadow {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.text-shadow-dark {
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

/* Border Radius Extensions */
.rounded-top-lg {
    border-top-left-radius: 1rem !important;
    border-top-right-radius: 1rem !important;
}

.rounded-bottom-lg {
    border-bottom-left-radius: 1rem !important;
    border-bottom-right-radius: 1rem !important;
}

/* Spacing Extensions */
.mt-n1 {
    margin-top: -0.25rem !important;
}

.mt-n2 {
    margin-top: -0.5rem !important;
}

.mb-n1 {
    margin-bottom: -0.25rem !important;
}

.mb-n2 {
    margin-bottom: -0.5rem !important;
}

/* Custom Widths */
.w-10 {
    width: 10% !important;
}

.w-15 {
    width: 15% !important;
}

.w-20 {
    width: 20% !important;
}

.w-30 {
    width: 30% !important;
}

.w-40 {
    width: 40% !important;
}

.w-60 {
    width: 60% !important;
}

.w-70 {
    width: 70% !important;
}

.w-80 {
    width: 80% !important;
}

.w-90 {
    width: 90% !important;
}

/* Custom Heights */
.h-10 {
    height: 10% !important;
}

.h-15 {
    height: 15% !important;
}

.h-20 {
    height: 20% !important;
}

.h-30 {
    height: 30% !important;
}

.h-40 {
    height: 40% !important;
}

.h-60 {
    height: 60% !important;
}

.h-70 {
    height: 70% !important;
}

.h-80 {
    height: 80% !important;
}

.h-90 {
    height: 90% !important;
}

/* Z-index Utilities */
.z-10 {
    z-index: 10 !important;
}

.z-20 {
    z-index: 20 !important;
}

.z-30 {
    z-index: 30 !important;
}

.z-40 {
    z-index: 40 !important;
}

.z-50 {
    z-index: 50 !important;
}

/* Opacity Utilities */
.opacity-10 {
    opacity: 0.1 !important;
}

.opacity-20 {
    opacity: 0.2 !important;
}

.opacity-30 {
    opacity: 0.3 !important;
}

.opacity-40 {
    opacity: 0.4 !important;
}

.opacity-60 {
    opacity: 0.6 !important;
}

.opacity-70 {
    opacity: 0.7 !important;
}

.opacity-80 {
    opacity: 0.8 !important;
}

.opacity-90 {
    opacity: 0.9 !important;
}