:root {
    --primary: #1370F3;
    --primary-hover: #0664B6;
    --dark-bg: #0B0D18;
    --secondary-dark: #1F334F;
    --secondary-dark-alt: #2A4760;
    --background: #F8FAFC;
    --muted-text: #555558;
    --light-muted-text: #c2c2c2ff; /* Updated for better contrast - was #9E9FA3 */
    --soft-blue-bg: #AFCBF0;
    --border: #c9c9c9ff;
    --soft-accent: #649EE5;
    --muted-slate: #61738D;
}

/* Base text and background colors */
body {
    background-color: var(--background);
    color: var(--muted-text);
}

.border-border {
    border-color: var(--border) !important;
}

/* Text Utility Classes */
.text-primary { color: var(--primary) !important; }
.text-primary-hover { color: var(--primary-hover) !important; }
.text-dark { color: var(--dark-bg) !important; }
.text-muted { color: var(--muted-text) !important; }
.text-muted-light { color: var(--light-muted-text) !important; }
.text-white { color: #ffffff !important; }

/* Background Utility Classes */
.bg-primary { background-color: var(--primary) !important; }
.bg-primary-hover { background-color: var(--primary-hover) !important; }
.bg-dark { background-color: var(--dark-bg) !important; }
.bg-secondary-dark { background-color: var(--secondary-dark) !important; }
.bg-secondary-dark-alt { background-color: var(--secondary-dark-alt) !important; }
.bg-soft-blue { background-color: var(--soft-blue-bg) !important; }
.bg-background { background-color: var(--background) !important; }

/* Border Utility Classes */
.border-default { border-color: var(--border) !important; }
.border-primary { border-color: var(--primary) !important; }

/* Button Classes */
.btn-primary {
    background-color: var(--primary);
    color: #ffffff;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

.btn-primary:hover {
    background-color: var(--primary-hover);
    color: #ffffff;
}

.btn-primary:focus {
    outline: none;
    box-shadow: 0 0 0 3px var(--soft-blue-bg);
}

.btn-outline {
    background-color: transparent;
    color: var(--primary);
    border: 2px solid var(--primary);
    transition: all 0.3s ease;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
}

.btn-outline:hover {
    background-color: var(--primary);
    color: #ffffff;
}

/* Section Dark */
.section-dark {
    background-color: var(--dark-bg);
    color: #ffffff;
}

.section-dark .text-muted {
    color: var(--light-muted-text) !important;
}

/* Card Class */
.card {
    background-color: #ffffff;
    border: 1px solid var(--border);
    border-radius: 0.75rem;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.card:hover {
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

/* Form Focus */
input:focus, textarea:focus, select:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 3px var(--soft-blue-bg) !important;
    outline: none !important;
}

/* Links */
a {
    transition: color 0.3s ease;
}

a.text-link {
    color: var(--primary);
}

a.text-link:hover {
    color: var(--primary-hover);
}

/* Badges and Soft Accents */
.badge-soft {
    background-color: var(--soft-blue-bg);
    color: var(--primary);
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
}
