:root {
    --factulix-primary: #5c8f25;
    --factulix-primary-dark: #456d1b;
    --factulix-accent: #8cc63f;
    --factulix-sidebar: #263238;
    --factulix-sidebar-light: #33434c;
    --factulix-text: #263238;
    --factulix-muted: #6b7780;
    --factulix-background: #f3f6f1;
    --factulix-card: #ffffff;
    --factulix-border: #dfe7da;
    --factulix-soft: #edf5e6;

    --bs-primary: #5c8f25;
    --bs-primary-rgb: 92, 143, 37;
    --bs-link-color: #527f22;
    --bs-link-hover-color: #456d1b;
}

/* Enlaces y colores principales */
a {
    color: #527f22;
}

a:hover {
    color: #456d1b;
}

.text-primary {
    color: #527f22 !important;
}

.bg-primary {
    --bs-bg-opacity: 1;

    background-color:
        rgba(var(--bs-primary-rgb),
            var(--bs-bg-opacity)) !important;
}

.border-primary {
    border-color: #5c8f25 !important;
}

/* Botones */
.btn-primary {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #5c8f25;
    --bs-btn-border-color: #5c8f25;
    --bs-btn-hover-color: #ffffff;
    --bs-btn-hover-bg: #456d1b;
    --bs-btn-hover-border-color: #456d1b;
    --bs-btn-focus-shadow-rgb: 92, 143, 37;
    --bs-btn-active-color: #ffffff;
    --bs-btn-active-bg: #456d1b;
    --bs-btn-active-border-color: #456d1b;
}

/* Fondo general */
body:not([data-theme="dark"]).bg-body-bg {
    background-color: #f3f6f1 !important;
    color: #263238;
}

body:not([data-theme="dark"]) .text-body {
    color: #686868 !important;
}

/* Sidebar */
.sidebar-area {
    background-color: #263238 !important;
    border-right: 1px solid rgba(140, 198, 63, 0.25);
    box-shadow: 5px 0 20px rgba(24, 34, 39, 0.14);
}

.sidebar-area .logo {
    background-color: #ffffff !important;
    border-bottom: 3px solid #8cc63f;
}

.factulix-sidebar-logo {
    display: block;
    width: 155px;
    height: auto;
    border-radius: 6px;
    object-fit: contain;
}

/* Líneas de los botones del sidebar */
.sidebar-area .sidebar-burger-menu span,
.sidebar-area .sidebar-burger-menu-close span {
    border-bottom-color: #33434c !important;
}

/* Títulos de las secciones */
.sidebar-area .menu-title-text {
    color: #9bd454 !important;
    font-weight: 600;
    letter-spacing: 0.04em;
}

/* Enlaces del menú */
.menu-vertical .menu-item .menu-link {
    border-radius: 8px;
    margin-inline: 8px;
    transition:
        color 0.2s ease,
        background-color 0.2s ease;
}

.menu-vertical .menu-inner > .menu-item > .menu-link {
    padding: 9.5px 18px 4px;
}

.menu-vertical .menu-item .menu-link .title,
.menu-vertical .menu-item .menu-link .menu-icon {
    color: #e8edee !important;
}

.menu-vertical .menu-item .menu-link:hover {
    background-color: rgba(140, 198, 63, 0.12) !important;
}

.menu-vertical .menu-item .menu-link:hover .title,
.menu-vertical .menu-item .menu-link:hover .menu-icon {
    color: #a7d969 !important;
}

.menu-vertical .menu-item.open>.menu-link,
.menu-vertical .menu-item .menu-link.active {
    background-color: rgba(140, 198, 63, 0.18) !important;
}

.menu-vertical .menu-item.open>.menu-link .title,
.menu-vertical .menu-item.open>.menu-link .menu-icon,
.menu-vertical .menu-item .menu-link.active .title,
.menu-vertical .menu-item .menu-link.active .menu-icon {
    color: #a7d969 !important;
}

.sidebar-area .menu-link:focus,
.sidebar-area .menu-link:focus-visible {
    outline: 2px solid rgba(140, 198, 63, 0.65) !important;
    outline-offset: -2px;
    box-shadow: none !important;
}

/* Navbar, tarjetas y footer */
body:not([data-theme="dark"]) .header-area,
body:not([data-theme="dark"]) .main-content-container .card,
body:not([data-theme="dark"]) .footer-area {
    background-color: #ffffff !important;
    border-color: #dfe7da !important;
}

body:not([data-theme="dark"]) .main-content-container .card {
    box-shadow: 0 8px 24px rgba(38, 50, 56, 0.06);
}

.header-area {
    box-shadow: 0 5px 18px rgba(38, 50, 56, 0.06);
}

.footer-area {
    border-top: 1px solid #dfe7da;
}

/* Formularios */
.form-control,
.form-select {
    border-color: #d4ddd0;
}

.form-control:focus,
.form-select:focus {
    border-color: #5c8f25;
    box-shadow: 0 0 0 0.2rem rgba(92, 143, 37, 0.16);
}

.form-check-input:checked {
    background-color: #5c8f25;
    border-color: #5c8f25;
}

/* Buscador */
body:not([data-theme="dark"]) .src-form .form-control {
    background-color: #f3f6f1 !important;
    border-color: #dfe7da !important;
}

body:not([data-theme="dark"]) .src-form .form-control:focus {
    background-color: #ffffff !important;
    border-color: #5c8f25 !important;
}

/* Tablas */
body:not([data-theme="dark"]) .table {
    --bs-table-bg: transparent;
    --bs-table-color: #263238;
    --bs-table-border-color: #e3e9df;
}

body:not([data-theme="dark"]) .table thead th {
    background-color: #edf5e6;
    color: #33434c;
    border-bottom-color: #d8e3d1;
}

body:not([data-theme="dark"]) .table tbody tr:hover {
    background-color: #f7faf4;
}

/* Desplegables */
body:not([data-theme="dark"]) .header-area .dropdown-menu {
    background-color: #ffffff !important;
    border-color: #dfe7da !important;
    box-shadow: 0 12px 30px rgba(38, 50, 56, 0.12);
}

body:not([data-theme="dark"]) .header-area .dropdown-item:hover,
body:not([data-theme="dark"]) .header-area .dropdown-item:focus {
    background-color: #edf5e6 !important;
    color: #456d1b !important;
}

.dropdown-item.active,
.dropdown-item:active {
    background-color: #5c8f25;
    color: #ffffff;
}

/* Perfil */
.admin-profile .admin-item-link i {
    color: #5c8f25 !important;
}

body:not([data-theme="dark"]) .admin-profile .dropdown-item:hover span,
body:not([data-theme="dark"]) .admin-profile .dropdown-item:hover i {
    color: #456d1b !important;
}

/* Notificaciones */
.header-area .notifications .count,
.page-link.active,
.active>.page-link {
    background-color: #5c8f25 !important;
    border-color: #5c8f25 !important;
}

.notifications .notification-menu.unseen::before {
    background-color: #8cc63f !important;
}

.notifications .notification-menu .text-primary,
.notifications .notification-menu .text-info {
    color: #527f22 !important;
}

/* Modo oscuro */
body[data-theme="dark"].bg-body-bg {
    background-color: #12191c !important;
    color: #dbe3e5;
}

body[data-theme="dark"] .header-area,
body[data-theme="dark"] .main-content-container .card,
body[data-theme="dark"] .footer-area,
body[data-theme="dark"] .dropdown-menu {
    background-color: #1c272c !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

body[data-theme="dark"] .main-content-container h1,
body[data-theme="dark"] .main-content-container h2,
body[data-theme="dark"] .main-content-container h3,
body[data-theme="dark"] .header-area .text-dark {
    color: #f2f5f5 !important;
}

body[data-theme="dark"] .text-body,
body[data-theme="dark"] .main-content-container p {
    color: #aebbc0 !important;
}

body[data-theme="dark"] .src-form .form-control,
body[data-theme="dark"] .form-control,
body[data-theme="dark"] .form-select {
    background-color: #26353c !important;
    border-color: rgba(255, 255, 255, 0.09) !important;
    color: #edf2f2 !important;
}

body[data-theme="dark"] .form-control::placeholder {
    color: #9ba9ae;
}

body[data-theme="dark"] .dropdown-item:hover,
body[data-theme="dark"] .dropdown-item:focus {
    background-color: #2b3a41 !important;
    color: #a7d969 !important;
}

body[data-theme="dark"] .table {
    --bs-table-bg: transparent;
    --bs-table-color: #dbe3e5;
    --bs-table-border-color: rgba(255, 255, 255, 0.08);
}

body[data-theme="dark"] .table thead th {
    background-color: #26353c;
    color: #dbe3e5;
}

body[data-theme="dark"] .table tbody tr:hover {
    background-color: rgba(140, 198, 63, 0.07);
}

html,
body,
button,
input,
select,
textarea,
table,
.navbar-area,
.left-sidebar-area,
.main-content,
.dropdown-menu {
    font-family:
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif !important;
}