body {
    font-family: 'Lexend', sans-serif;
}
.main-container {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    background-color: #f8f9fa;
}
.content-wrap {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
}
.navbar-brand .logo-svg {
    width: 1.5rem;
    height: 1.5rem;
    color: #0d6efd;
}
.form-signin {
    max-width: 100%;
    padding: 2rem;
    background-color: #ffffff;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1);
}
.form-control:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
.btn-primary {
    --bs-btn-bg: #135bec;
    --bs-btn-border-color: #135bec;
    --bs-btn-hover-bg: #1049c1;
    --bs-btn-hover-border-color: #0f43b3;
    --bs-btn-focus-shadow-rgb: 49,132,253;
}

.material-symbols-outlined {
    font-variation-settings:
    'FILL' 0,
    'wght' 400,
    'GRAD' 0,
    'opsz' 24;
}
:root {
    --bs-primary: #135bec;
    --bs-primary-rgb: 19, 91, 236;
    --bs-body-bg: #f6f6f8;
    --bs-body-color: #101622;
}
.bg-dark {
    --bs-dark: #101622;
    background-color: var(--bs-dark) !important;
}
.bg-dark .bg-body-tertiary {
    --bs-bg-opacity: 1;
    background-color: rgba(33, 37, 41, 0.5) !important;
}
.bg-dark .text-body-secondary {
    color: #adb5bd !important;
}
.bg-dark .text-dark {
    color: #f8f9fa !important;
}
.bg-dark .border-light-subtle {
    border-color: #343a40 !important;
}
.bg-dark .text-body {
    color: #f8f9fa !important;
}
.btn-outline-primary:hover {
    color: var(--bs-primary-contrast);
}
.btn-check:checked+.btn-outline-primary {
    background-color: rgba(var(--bs-primary-rgb), 0.2);
    border-color: var(--bs-primary);
    color: var(--bs-primary);
    font-weight: bold;
}
.btn-outline-secondary {
    --bs-btn-color: #6c757d;
    --bs-btn-border-color: #ced4da;
    --bs-btn-hover-bg: rgba(var(--bs-primary-rgb), 0.1);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-hover-color: var(--bs-primary);
}
.bg-dark .btn-outline-secondary {
    --bs-btn-color: #adb5bd;
    --bs-btn-border-color: #495057;
}
.bg-dark .form-control {
    background-color: var(--bs-dark);
    color: #f8f9fa;
    border-color: #495057;
}
.bg-dark .form-control:focus {
    background-color: var(--bs-dark);
    color: #f8f9fa;
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}
.fs-icon-lg {
    font-size: 3.75rem;line-height: 1;
}

/* CSS cho Radio Button đẹp (vuông) */
.rating-group { display: inline-flex; gap: 5px; }
.rating-group input { display: none; }
.rating-group label {
    width: 40px; height: 40px; border: 1px solid #ced4da;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; border-radius: 4px; font-weight: bold;
}
.rating-group input:checked + label {
    background-color: #0d6efd; color: white; border-color: #0d6efd;
}
/* Animation fade-in nhẹ */
.fade-in { animation: fadeIn 0.5s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }