.body, body {
	font-family: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
	background: linear-gradient(90deg, #212529 0%, #343a40 100%);
}
.container {
    max-width: 980px;
    background-color: #ffffff;
}

/* HEV theme for secondary buttons (uses electric green) */
.btn-secondary {
	--bs-btn-color: #fff;
	--bs-btn-bg: #59B200;
	--bs-btn-border-color: #4b9600;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #4b9600;
	--bs-btn-hover-border-color: #59B200;
	--bs-btn-focus-shadow-rgb: 130, 138, 145;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #59B200;
	--bs-btn-active-border-color: #4b9600;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: #6c757d;
	--bs-btn-disabled-border-color: #6c757d;
}

/* HEV theme for outline-primary buttons (custom variables requested) */
.btn-outline-primary {
	--bs-btn-color: #343a40;
	--bs-btn-border-color: #0d6efd;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #0d6efd;
	--bs-btn-hover-border-color: #0d6efd;
	--bs-btn-focus-shadow-rgb: 13, 110, 253;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #0d6efd;
	--bs-btn-active-border-color: #0d6efd;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #0d6efd;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #0d6efd;
	--bs-gradient: none;
}

/* Custom .btn-info variables requested */
.btn-info {
	--bs-btn-color: #FFF;
	--bs-btn-bg: #0085c8;
	--bs-btn-border-color: #05608e;
	--bs-btn-hover-color: #022F4E;
	--bs-btn-hover-bg: #1ba5ea;
	--bs-btn-hover-border-color: #0085c8;
	--bs-btn-focus-shadow-rgb: 11, 172, 204;
	--bs-btn-active-color: #000;
	--bs-btn-active-bg: #3dd5f3;
	--bs-btn-active-border-color: #25cff2;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #000;
	--bs-btn-disabled-bg: #0dcaf0;
	--bs-btn-disabled-border-color: #0dcaf0;
}

/* Custom .btn-outline-secondary variables requested */
.btn-outline-secondary {
	--bs-btn-color: #495057;
	--bs-btn-border-color: #343a40;
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #59B200;
	--bs-btn-hover-border-color: #3e7803;
	--bs-btn-focus-shadow-rgb: 108, 117, 125;
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #59B200;
	--bs-btn-active-border-color: #3e7803;
	--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
	--bs-btn-disabled-color: #6c757d;
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: #6c757d;
	--bs-gradient: none;
}

/* Custom .btn-outline-info variables requested */
.btn-outline-info {
	--bs-btn-color: #0085c8;
    --bs-btn-border-color: #0085c8;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #0085c8;
    --bs-btn-hover-border-color: #0085c8;
    --bs-btn-focus-shadow-rgb: 13, 202, 240;
    --bs-btn-active-color: #000;
    --bs-btn-active-bg: #0085c8;
    --bs-btn-active-border-color: #0085c8;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #0085c8;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: #0085c8;
    --bs-gradient: none;
}

.form-control {
    display: block;
    width: 100%;
    padding: .375rem .75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1;
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    background-clip: padding-box;
    border: var(--bs-border-width) solid var(--bs-border-color);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border-radius: var(--bs-border-radius);
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

/* HEV login styles */
.hev-logo {
    border-radius: 8px;
    max-width: 230px;
}

/* Navbar brand logo */
.hev-navbar-logo { 
    height: 38px; 
    max-height: 38px; 
    display: inline-block; 
}

@media (max-width: 576px) {
    .hev-navbar-logo { 
        height: 32px; 
        max-height: 32px; 
    }
}

.p-4 {
    padding: 1.25rem !important;
}

/* Slightly reduce the default .mb-2 spacing for denser layouts */
.mb-2 {
    margin-bottom: .2rem !important;
}

/* Responsive tweak: slightly smaller logo on small screens */
@media (max-width: 576px) {
    .hev-logo {
        max-width: 210px;
    }
}

.role-options { 
    gap: .5rem; 
}

.role-card { 
    padding: 0.25rem; 
    cursor: pointer; 
}

/* Hover color for role cards */
.role-card:hover { 
    color: #fff; 
}

.role-card.btn-outline-secondary.active, 
.role-card.btn-outline-secondary:has(input:checked),
.role-card.btn-outline-primary.active, 
.role-card.btn-outline-primary:has(input:checked),
.role-card.btn-outline-success.active, 
.role-card.btn-outline-success:has(input:checked),
.role-card.btn-outline-warning.active, 
.role-card.btn-outline-warning:has(input:checked) {
    background: linear-gradient(90deg, #59B200 0%, #59B200 100%);
    color: #fff;
    border-color: transparent;
}

/* Role icon styles */
.role-icon { 
    font-size: 1.6rem; 
    margin-bottom: .35rem; 
    display: flex; 
    align-items: center; 
    justify-content: center; 
}

.role-card .bi { 
    font-size: 1.8rem; 
}

/* Form label tweak */
.form-label {
    margin-bottom: .5rem;
    font-weight: 700;
    font-size: 0.92rem;
}

/* Validation feedback styles */
.is-valid { 
    border-color: #198754 !important; 
    box-shadow: 0 0 0 .15rem rgba(25,135,84,.1); 
}

.is-invalid { 
    border-color: #dc3545 !important; 
    box-shadow: none; 
}

.invalid-feedback { 
    display: none; 
    color: #dc3545; 
    font-size: .85rem; 
    margin-top: .25rem; 
}

.form-text.text-danger { 
    color: #dc3545; 
}

/* Force role-options to row on small screens */
@media (max-width: 576px) {
    .role-options {
        flex-direction: row !important;
    }
}
