/*
 * ERP visual theme
 * Metronic 7 Demo 1 is implemented correctly; its default "soft" palette
 * hides form borders (especially .form-control-solid). This file restores
 * contrast, saturates brand colors, and keeps both light and dark modes readable.
 */

:root {
    --erp-primary: #1a73e8;
    --erp-primary-hover: #1558c0;
    --erp-primary-soft: #d6e8ff;
    --erp-primary-ring: rgba(26, 115, 232, 0.22);
    --erp-success: #0d9488;
    --erp-success-hover: #0f766e;
    --erp-success-soft: #ccfbf1;
    --erp-info: #7c3aed;
    --erp-info-hover: #6d28d9;
    --erp-info-soft: #ede9fe;
    --erp-warning: #f59e0b;
    --erp-warning-hover: #d97706;
    --erp-warning-soft: #fef3c7;
    --erp-danger: #e11d48;
    --erp-danger-hover: #be123c;
    --erp-danger-soft: #ffe4e6;
    --erp-field-bg: #ffffff;
    --erp-field-border: #9aa1b5;
    --erp-field-border-hover: #6d7388;
    --erp-field-text: #181c32;
    --erp-label: #2b2f42;
    --primary: #1a73e8;
    --success: #0d9488;
    --info: #7c3aed;
    --warning: #f59e0b;
    --danger: #e11d48;
}

/* -------------------------------------------------------------------------- */
/* Labels                                                                     */
/* -------------------------------------------------------------------------- */
label,
.col-form-label,
.form-group > label {
    font-weight: 600;
    color: var(--erp-label);
}

label.required:after,
.col-form-label.required:after {
    color: var(--erp-danger);
    font-weight: 700;
}

/* -------------------------------------------------------------------------- */
/* Form controls                                                              */
/* -------------------------------------------------------------------------- */
.form-control,
.form-control-solid,
.custom-select,
.custom-file-label,
select.form-control,
textarea.form-control,
.form-control.form-control-solid {
    background-color: var(--erp-field-bg) !important;
    border: 1.5px solid var(--erp-field-border) !important;
    color: var(--erp-field-text) !important;
    box-shadow: none;
}

.form-control:hover,
.form-control-solid:hover,
.custom-select:hover,
select.form-control:hover,
textarea.form-control:hover {
    border-color: var(--erp-field-border-hover) !important;
}

.form-control:focus,
.form-control:focus-visible,
.form-control-solid:focus,
.form-control-solid.focus,
.custom-select:focus,
select.form-control:focus,
textarea.form-control:focus,
.form-control.form-control-solid:focus,
.form-control.form-control-solid.focus {
    background-color: #ffffff !important;
    border-color: var(--erp-primary) !important;
    color: var(--erp-field-text) !important;
    box-shadow: 0 0 0 3px var(--erp-primary-ring) !important;
}

.form-control::placeholder,
.form-control-solid::placeholder {
    color: #7e8299 !important;
    opacity: 1;
}

.form-control.is-invalid,
.form-control-solid.is-invalid {
    border-color: var(--erp-danger) !important;
}

.form-control.is-invalid:focus,
.form-control-solid.is-invalid:focus {
    box-shadow: 0 0 0 3px rgba(225, 29, 72, 0.2) !important;
}

.form-control.is-valid,
.form-control-solid.is-valid {
    border-color: var(--erp-success) !important;
}

.input-group-text {
    background-color: #eef2f7 !important;
    border: 1.5px solid var(--erp-field-border) !important;
    color: #3f4254 !important;
    font-weight: 600;
}

.input-group .form-control {
    border-right-width: 1.5px;
}

.input-group > .form-control:focus {
    z-index: 3;
}

.custom-file-label {
    background-color: var(--erp-field-bg) !important;
}

.custom-file-label::after {
    background-color: var(--erp-primary-soft) !important;
    color: var(--erp-primary-hover) !important;
    font-weight: 600;
    border-left: 1.5px solid var(--erp-field-border);
}

/* -------------------------------------------------------------------------- */
/* Select2 / bootstrap-select                                                 */
/* -------------------------------------------------------------------------- */
.select2-container {
    width: 100% !important;
}

.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
    background-color: var(--erp-field-bg) !important;
    border: 1.5px solid var(--erp-field-border) !important;
    box-sizing: border-box;
}

.select2-container--default .select2-selection--single {
    height: calc(1.5em + 1.3rem + 2px) !important;
    min-height: calc(1.5em + 1.3rem + 2px) !important;
    padding: 0.65rem 2.25rem 0.65rem 1rem;
    display: flex;
    align-items: center;
}

.select2-container--default .select2-selection--multiple {
    min-height: calc(1.5em + 1.3rem + 2px);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--erp-field-text) !important;
    line-height: 1.5 !important;
    padding: 0 !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 100% !important;
    top: 0;
    right: 6px;
}

.select2-container--default .select2-selection--single .select2-selection__clear {
    margin-top: 0;
    height: auto;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--multiple {
    border-color: var(--erp-primary) !important;
    box-shadow: 0 0 0 3px var(--erp-primary-ring);
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: var(--erp-primary) !important;
}

.select2-dropdown {
    border-color: var(--erp-field-border) !important;
}

.bootstrap-select > .dropdown-toggle,
.bootstrap-select > .dropdown-toggle.btn-light {
    background-color: var(--erp-field-bg) !important;
    border: 1.5px solid var(--erp-field-border) !important;
    color: var(--erp-field-text) !important;
}

.bootstrap-select > .dropdown-toggle:focus,
.bootstrap-select > .dropdown-toggle:active {
    border-color: var(--erp-primary) !important;
    box-shadow: 0 0 0 3px var(--erp-primary-ring) !important;
}

/* -------------------------------------------------------------------------- */
/* Checkboxes / radios / switches                                             */
/* -------------------------------------------------------------------------- */
.checkbox > span,
.radio > span {
    border: 1.5px solid var(--erp-field-border) !important;
    background-color: #ffffff !important;
}

.checkbox > input:checked ~ span,
.radio > input:checked ~ span {
    border-color: var(--erp-primary) !important;
    background-color: var(--erp-primary) !important;
}

.form-check-input {
    border: 1.5px solid var(--erp-field-border);
    width: 1.15rem;
    height: 1.15rem;
}

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

.switch input:checked ~ span {
    background-color: var(--erp-primary) !important;
}

/* -------------------------------------------------------------------------- */
/* Buttons                                                                    */
/* -------------------------------------------------------------------------- */
.btn-primary {
    background-color: var(--erp-primary) !important;
    border-color: var(--erp-primary) !important;
    color: #ffffff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.show > .btn-primary.dropdown-toggle {
    background-color: var(--erp-primary-hover) !important;
    border-color: var(--erp-primary-hover) !important;
    color: #ffffff !important;
}

.btn-success {
    background-color: var(--erp-success) !important;
    border-color: var(--erp-success) !important;
}

.btn-success:hover,
.btn-success:focus,
.btn-success:active {
    background-color: var(--erp-success-hover) !important;
    border-color: var(--erp-success-hover) !important;
}

.btn-info {
    background-color: var(--erp-info) !important;
    border-color: var(--erp-info) !important;
}

.btn-info:hover,
.btn-info:focus,
.btn-info:active {
    background-color: var(--erp-info-hover) !important;
    border-color: var(--erp-info-hover) !important;
}

.btn-warning {
    background-color: var(--erp-warning) !important;
    border-color: var(--erp-warning) !important;
    color: #181c32 !important;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning:active {
    background-color: var(--erp-warning-hover) !important;
    border-color: var(--erp-warning-hover) !important;
}

.btn-danger {
    background-color: var(--erp-danger) !important;
    border-color: var(--erp-danger) !important;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger:active {
    background-color: var(--erp-danger-hover) !important;
    border-color: var(--erp-danger-hover) !important;
}

.btn-light-primary {
    background-color: var(--erp-primary-soft) !important;
    color: var(--erp-primary-hover) !important;
    border-color: transparent !important;
}

.btn-light-primary:hover,
.btn-light-primary:focus,
.btn-light-primary:active {
    background-color: #bdd9ff !important;
    color: var(--erp-primary-hover) !important;
}

.btn-light-success {
    background-color: var(--erp-success-soft) !important;
    color: var(--erp-success-hover) !important;
}

.btn-light-info {
    background-color: var(--erp-info-soft) !important;
    color: var(--erp-info-hover) !important;
}

.btn-light-warning {
    background-color: var(--erp-warning-soft) !important;
    color: var(--erp-warning-hover) !important;
}

.btn-light-danger {
    background-color: var(--erp-danger-soft) !important;
    color: var(--erp-danger-hover) !important;
}

.btn-light,
.btn-secondary {
    border: 1.5px solid var(--erp-field-border) !important;
    color: #3f4254 !important;
}

.btn-outline-primary {
    color: var(--erp-primary) !important;
    border-color: var(--erp-primary) !important;
}

.btn-outline-primary:hover {
    background-color: var(--erp-primary) !important;
    color: #ffffff !important;
}

/* -------------------------------------------------------------------------- */
/* Badges / labels                                                            */
/* -------------------------------------------------------------------------- */
.label-primary,
.badge-primary {
    background-color: var(--erp-primary) !important;
    color: #ffffff !important;
}

.label-success,
.badge-success {
    background-color: var(--erp-success) !important;
    color: #ffffff !important;
}

.label-warning,
.badge-warning {
    background-color: var(--erp-warning) !important;
    color: #181c32 !important;
}

.label-danger,
.badge-danger {
    background-color: var(--erp-danger) !important;
    color: #ffffff !important;
}

.label-info,
.badge-info {
    background-color: var(--erp-info) !important;
    color: #ffffff !important;
}

.badge.bg-primary,
.badge.bg-success,
.badge.bg-info,
.badge.bg-danger,
.badge.bg-secondary,
.badge.bg-dark {
    color: #ffffff !important;
}

.label-dark,
.badge-dark {
    background-color: #181c32 !important;
    color: #ffffff !important;
}

.badge.bg-warning {
    color: #181c32 !important;
}

.label-solid-primary {
    background-color: var(--erp-primary) !important;
    color: #ffffff !important;
}

.label-solid-success {
    background-color: var(--erp-success) !important;
    color: #ffffff !important;
}

.label-solid-warning {
    background-color: var(--erp-warning) !important;
    color: #181c32 !important;
}

.label-solid-danger {
    background-color: var(--erp-danger) !important;
    color: #ffffff !important;
}

.label-solid-info {
    background-color: var(--erp-info) !important;
    color: #ffffff !important;
}

.label-solid-dark {
    background-color: #3f4254 !important;
    color: #ffffff !important;
}

.label-inline.label-wrap {
    white-space: normal !important;
    height: auto !important;
    line-height: 1.35 !important;
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

body.dark-mode .label-solid-primary,
body.dark-mode .label-solid-primary.font-weight-bold,
body.dark-mode .label-solid-primary.font-weight-bolder,
body.dark-mode .label-solid-success,
body.dark-mode .label-solid-success.font-weight-bold,
body.dark-mode .label-solid-success.font-weight-bolder,
body.dark-mode .label-solid-danger,
body.dark-mode .label-solid-danger.font-weight-bold,
body.dark-mode .label-solid-danger.font-weight-bolder,
body.dark-mode .label-solid-info,
body.dark-mode .label-solid-info.font-weight-bold,
body.dark-mode .label-solid-info.font-weight-bolder,
body.dark-mode .label-solid-dark,
body.dark-mode .label-solid-dark.font-weight-bold,
body.dark-mode .label-solid-dark.font-weight-bolder {
    color: #ffffff !important;
}

body.dark-mode .label-solid-warning,
body.dark-mode .label-solid-warning.font-weight-bold,
body.dark-mode .label-solid-warning.font-weight-bolder {
    color: #181c32 !important;
}

a:not(.btn):not(.menu-link):not(.nav-link):not(.dropdown-item):not(.page-link) {
    color: var(--erp-primary);
}

a:not(.btn):not(.menu-link):not(.nav-link):not(.dropdown-item):not(.page-link):hover {
    color: var(--erp-primary-hover);
}

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

.bg-primary {
    background-color: var(--erp-primary) !important;
}

/* -------------------------------------------------------------------------- */
/* Cards / tables / pagination                                                */
/* -------------------------------------------------------------------------- */
.card,
.card-custom {
    border: 1px solid #d7dbe7;
}

.card-header {
    border-bottom-color: #d7dbe7 !important;
}

.table thead th {
    color: #181c32;
    font-weight: 700;
    background-color: #eef3f9;
    border-bottom-color: #c9d0df !important;
}

.page-item.active .page-link {
    background-color: var(--erp-primary) !important;
    border-color: var(--erp-primary) !important;
}

.nav-pills .nav-link.active,
.nav-tabs .nav-link.active {
    color: var(--erp-primary) !important;
}

.nav-pills .nav-link.active {
    background-color: var(--erp-primary-soft) !important;
}

/* -------------------------------------------------------------------------- */
/* Aside active item                                                          */
/* -------------------------------------------------------------------------- */
.aside-menu .menu-item.menu-item-active > .menu-link,
.aside-menu .menu-item.menu-item-here > .menu-link {
    background-color: rgba(26, 115, 232, 0.18);
}

.aside-menu .menu-item.menu-item-active > .menu-link .menu-text,
.aside-menu .menu-item.menu-item-active > .menu-link .menu-icon {
    color: #ffffff;
}

/* -------------------------------------------------------------------------- */
/* Alerts / flash messages                                                    */
/* Metronic 7 does not define alert-light-*; dark-mode also forces            */
/* .font-weight-bold to a light gray that washes out the text.                */
/* -------------------------------------------------------------------------- */
.alert.alert-custom {
    border: 1px solid transparent;
}

.alert.alert-light-success {
    background-color: var(--erp-success-soft) !important;
    border-color: #99f6e4 !important;
}

.alert.alert-light-info {
    background-color: var(--erp-info-soft) !important;
    border-color: #c4b5fd !important;
}

.alert.alert-light-warning {
    background-color: var(--erp-warning-soft) !important;
    border-color: #fcd34d !important;
}

.alert.alert-light-danger {
    background-color: var(--erp-danger-soft) !important;
    border-color: #fda4af !important;
}

.alert.alert-light-secondary {
    background-color: #eef2f7 !important;
    border-color: #c9d0df !important;
}

.alert.alert-light-success,
.alert.alert-light-success .alert-text,
.alert.alert-light-success .alert-text.font-weight-bold,
.alert.alert-light-success .font-weight-bold,
.alert.alert-light-success .alert-icon i,
.alert.alert-light-success .alert-close i {
    color: var(--erp-success-hover) !important;
}

.alert.alert-light-info,
.alert.alert-light-info .alert-text,
.alert.alert-light-info .alert-text.font-weight-bold,
.alert.alert-light-info .font-weight-bold,
.alert.alert-light-info .alert-icon i,
.alert.alert-light-info .alert-close i {
    color: var(--erp-info-hover) !important;
}

.alert.alert-light-warning,
.alert.alert-light-warning .alert-text,
.alert.alert-light-warning .alert-text.font-weight-bold,
.alert.alert-light-warning .font-weight-bold,
.alert.alert-light-warning .alert-icon i,
.alert.alert-light-warning .alert-close i {
    color: #92400e !important;
}

.alert.alert-light-danger,
.alert.alert-light-danger .alert-text,
.alert.alert-light-danger .alert-text.font-weight-bold,
.alert.alert-light-danger .font-weight-bold,
.alert.alert-light-danger .alert-icon i,
.alert.alert-light-danger .alert-close i {
    color: var(--erp-danger-hover) !important;
}

.alert.alert-light-secondary,
.alert.alert-light-secondary .alert-text,
.alert.alert-light-secondary .alert-text.font-weight-bold,
.alert.alert-light-secondary .font-weight-bold,
.alert.alert-light-secondary .alert-icon i,
.alert.alert-light-secondary .alert-close i {
    color: #3f4254 !important;
}

/* -------------------------------------------------------------------------- */
/* Dark mode                                                                  */
/* -------------------------------------------------------------------------- */
body.dark-mode {
    --erp-field-bg: #16162a;
    --erp-field-border: #6b6f86;
    --erp-field-border-hover: #8d91a8;
    --erp-field-text: #f4f5f8;
    --erp-label: #e4e6ef;
    --erp-primary-ring: rgba(61, 158, 255, 0.28);
}

body.dark-mode label,
body.dark-mode .col-form-label,
body.dark-mode .form-group > label {
    color: var(--erp-label) !important;
}

body.dark-mode .form-control,
body.dark-mode .form-control-solid,
body.dark-mode .custom-select,
body.dark-mode .custom-file-label,
body.dark-mode select.form-control,
body.dark-mode textarea.form-control,
body.dark-mode .form-control.form-control-solid {
    background-color: var(--erp-field-bg) !important;
    border-color: var(--erp-field-border) !important;
    color: var(--erp-field-text) !important;
}

body.dark-mode .form-control:focus,
body.dark-mode .form-control-solid:focus,
body.dark-mode .form-control.form-control-solid:focus,
body.dark-mode select.form-control:focus,
body.dark-mode textarea.form-control:focus {
    background-color: #121225 !important;
    border-color: #4da3ff !important;
    color: #ffffff !important;
    box-shadow: 0 0 0 3px var(--erp-primary-ring) !important;
}

body.dark-mode .form-control::placeholder,
body.dark-mode .form-control-solid::placeholder {
    color: #8e92a8 !important;
}

body.dark-mode .input-group-text {
    background-color: #1f1f35 !important;
    border-color: var(--erp-field-border) !important;
    color: #c9cde0 !important;
}

body.dark-mode .select2-container--default .select2-selection--single,
body.dark-mode .select2-container--default .select2-selection--multiple {
    background-color: var(--erp-field-bg) !important;
    border-color: var(--erp-field-border) !important;
}

body.dark-mode .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--erp-field-text) !important;
}

body.dark-mode .select2-dropdown {
    background-color: #2b2b40 !important;
    border-color: var(--erp-field-border) !important;
}

body.dark-mode .bootstrap-select > .dropdown-toggle,
body.dark-mode .bootstrap-select > .dropdown-toggle.btn-light {
    background-color: var(--erp-field-bg) !important;
    border-color: var(--erp-field-border) !important;
    color: var(--erp-field-text) !important;
}

body.dark-mode .checkbox > span,
body.dark-mode .radio > span {
    background-color: var(--erp-field-bg) !important;
    border-color: var(--erp-field-border) !important;
}

body.dark-mode .card,
body.dark-mode .card-custom {
    border-color: #3d3d58;
}

body.dark-mode .card-header {
    border-bottom-color: #3d3d58 !important;
}

body.dark-mode .table thead th {
    background-color: #1b1b29 !important;
    color: #e4e6ef !important;
    border-bottom-color: #4a4a66 !important;
}

body.dark-mode .btn-light,
body.dark-mode .btn-secondary {
    background-color: #1f1f35 !important;
    border-color: var(--erp-field-border) !important;
    color: #d6d8e6 !important;
}

body.dark-mode .btn-light-primary {
    background-color: rgba(26, 115, 232, 0.22) !important;
    color: #8ec2ff !important;
}

body.dark-mode .theme-toggle-btn:hover {
    background-color: var(--erp-primary);
    color: #ffffff;
}

body.dark-mode .alert.alert-light-success {
    background-color: rgba(13, 148, 136, 0.2) !important;
    border-color: rgba(45, 212, 191, 0.45) !important;
}

body.dark-mode .alert.alert-light-info {
    background-color: rgba(124, 58, 237, 0.2) !important;
    border-color: rgba(167, 139, 250, 0.45) !important;
}

body.dark-mode .alert.alert-light-warning {
    background-color: rgba(245, 158, 11, 0.18) !important;
    border-color: rgba(251, 191, 36, 0.4) !important;
}

body.dark-mode .alert.alert-light-danger {
    background-color: rgba(225, 29, 72, 0.2) !important;
    border-color: rgba(251, 113, 133, 0.4) !important;
}

body.dark-mode .alert.alert-light-secondary {
    background-color: #1f1f35 !important;
    border-color: #4a4a66 !important;
}

body.dark-mode .alert.alert-light-success,
body.dark-mode .alert.alert-light-success .alert-text,
body.dark-mode .alert.alert-light-success .font-weight-bold,
body.dark-mode .alert.alert-light-success .alert-icon i,
body.dark-mode .alert.alert-light-success .alert-close i {
    color: #5eead4 !important;
}

body.dark-mode .alert.alert-light-info,
body.dark-mode .alert.alert-light-info .alert-text,
body.dark-mode .alert.alert-light-info .font-weight-bold,
body.dark-mode .alert.alert-light-info .alert-icon i,
body.dark-mode .alert.alert-light-info .alert-close i {
    color: #c4b5fd !important;
}

body.dark-mode .alert.alert-light-warning,
body.dark-mode .alert.alert-light-warning .alert-text,
body.dark-mode .alert.alert-light-warning .font-weight-bold,
body.dark-mode .alert.alert-light-warning .alert-icon i,
body.dark-mode .alert.alert-light-warning .alert-close i {
    color: #fcd34d !important;
}

body.dark-mode .alert.alert-light-danger,
body.dark-mode .alert.alert-light-danger .alert-text,
body.dark-mode .alert.alert-light-danger .font-weight-bold,
body.dark-mode .alert.alert-light-danger .alert-icon i,
body.dark-mode .alert.alert-light-danger .alert-close i {
    color: #fda4af !important;
}

body.dark-mode .alert.alert-light-secondary,
body.dark-mode .alert.alert-light-secondary .alert-text,
body.dark-mode .alert.alert-light-secondary .font-weight-bold,
body.dark-mode .alert.alert-light-secondary .alert-icon i,
body.dark-mode .alert.alert-light-secondary .alert-close i {
    color: #e4e6ef !important;
}
