:root {
    --brand-primary: #4d5dbe;
    --brand-primary-hover: #3f4da3;
    --brand-primary-active: #35418b;
    --brand-primary-soft: #eef0fb;
    --brand-primary-rgb: 77, 93, 190;

    /* Compatibility aliases used by the standalone product templates. */
    --primary-red: var(--brand-primary);
    --secondary-red: var(--brand-primary-hover);
    --bs-primary: var(--brand-primary);
    --bs-primary-rgb: var(--brand-primary-rgb);
    --bs-link-color: var(--brand-primary);
    --bs-link-hover-color: var(--brand-primary-hover);
}

.bg-primary,
.navbar-custom,
.header-bar {
    background-color: var(--brand-primary) !important;
}

.text-primary {
    color: var(--brand-primary) !important;
}

.border-primary {
    border-color: var(--brand-primary) !important;
}

.btn-primary {
    --bs-btn-bg: var(--brand-primary);
    --bs-btn-border-color: var(--brand-primary);
    --bs-btn-hover-bg: var(--brand-primary-hover);
    --bs-btn-hover-border-color: var(--brand-primary-hover);
    --bs-btn-active-bg: var(--brand-primary-active);
    --bs-btn-active-border-color: var(--brand-primary-active);
    --bs-btn-disabled-bg: var(--brand-primary);
    --bs-btn-disabled-border-color: var(--brand-primary);
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-primary);
    --bs-btn-border-color: var(--brand-primary);
    --bs-btn-hover-bg: var(--brand-primary);
    --bs-btn-hover-border-color: var(--brand-primary);
    --bs-btn-active-bg: var(--brand-primary-active);
    --bs-btn-active-border-color: var(--brand-primary-active);
    --bs-btn-disabled-color: var(--brand-primary);
    --bs-btn-disabled-border-color: var(--brand-primary);
}

.btn-check:checked + .btn-outline-primary,
.btn-check:active + .btn-outline-primary {
    color: #fff;
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.page-link {
    color: var(--brand-primary);
}

.page-link:hover {
    color: var(--brand-primary-hover);
    background-color: var(--brand-primary-soft);
}

.active > .page-link,
.page-link.active,
.nav-pills .nav-link.active,
.list-group-item.active {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus {
    border-color: rgba(var(--brand-primary-rgb), 0.7);
    box-shadow: 0 0 0 0.2rem rgba(var(--brand-primary-rgb), 0.18);
}

.form-check-input:checked {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary);
}

.brand-logo-link {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    text-decoration: none;
}

.navbar-custom .navbar-brand {
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.brand-logo {
    display: block;
    width: auto;
    height: 46px;
    max-width: 220px;
    object-fit: contain;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.brand-navbar-user {
    min-width: 0;
}

.brand-navbar-user .navbar-text {
    color: rgba(255, 255, 255, 0.92);
}

/* Existing custom primary actions in standalone product/login pages. */
.btn-search,
.btn-save,
.btn-import,
.btn-login {
    background-color: var(--brand-primary) !important;
    border-color: var(--brand-primary) !important;
}

.btn-search:hover,
.btn-save:hover,
.btn-import:hover,
.btn-login:hover {
    background-color: var(--brand-primary-hover) !important;
    border-color: var(--brand-primary-hover) !important;
}

@media (max-width: 767.98px) {
    .brand-logo {
        height: 38px;
        max-width: 160px;
    }

    .brand-navbar-user {
        font-size: 0.8rem;
    }

    .brand-navbar-greeting {
        display: none;
    }
}
