/* Personalización dinámica de cada restaurante */

a {
    color: var(--factulix-primary-text);
}

a:hover {
    color: var(--factulix-primary-text-hover);
}

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

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

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

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

/* Botones */
.btn-primary {
    --bs-btn-color: var(--factulix-on-primary);
    --bs-btn-bg: var(--factulix-primary);
    --bs-btn-border-color: var(--factulix-primary);
    --bs-btn-hover-color: var(--factulix-on-primary-dark);
    --bs-btn-hover-bg: var(--factulix-primary-dark);
    --bs-btn-hover-border-color:
        var(--factulix-primary-dark);
    --bs-btn-active-color: var(--factulix-on-primary-dark);
    --bs-btn-active-bg: var(--factulix-primary-dark);
    --bs-btn-active-border-color:
        var(--factulix-primary-dark);
    --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

/* Sidebar */
.sidebar-area {
    border-right:
        1px solid
        rgba(var(--bs-primary-rgb), 0.25);
}

.sidebar-area .logo {
    border-bottom:
        3px solid
        var(--factulix-accent);
}

.sidebar-area .menu-title-text {
    color: var(--factulix-sidebar-accent) !important;
}

.menu-vertical .menu-item .menu-link:hover {
    background-color:
        rgba(var(--bs-primary-rgb), 0.13) !important;
}

.menu-vertical .menu-item .menu-link:hover .title,
.menu-vertical .menu-item .menu-link:hover .menu-icon {
    color: var(--factulix-sidebar-accent) !important;
}

.menu-vertical .menu-item.open > .menu-link,
.menu-vertical .menu-item .menu-link.active {
    background-color:
        rgba(var(--bs-primary-rgb), 0.2) !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: var(--factulix-sidebar-accent) !important;
}

.sidebar-area .menu-link:focus,
.sidebar-area .menu-link:focus-visible {
    outline:
        3px solid
        var(--factulix-sidebar-accent) !important;

    outline-offset: 2px;
}

/* Formularios */
.form-control:focus,
.form-select:focus {
    border-color: var(--factulix-focus);

    box-shadow:
        0 0 0 0.2rem
        rgba(var(--bs-primary-rgb), 0.16);
}

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

/* Buscador */
body:not([data-theme="dark"])
.src-form
.form-control:focus {
    border-color:
        var(--factulix-focus) !important;

    box-shadow:
        0 0 0 0.2rem
        rgba(var(--bs-primary-rgb), 0.15);
}

/* Tablas */
body:not([data-theme="dark"]) .table thead th {
    background-color:
        rgba(var(--bs-primary-rgb), 0.09);
}

body:not([data-theme="dark"]) .table tbody tr:hover {
    background-color:
        rgba(var(--bs-primary-rgb), 0.05);
}

/* Menús desplegables */
body:not([data-theme="dark"])
.header-area
.dropdown-item:hover,
body:not([data-theme="dark"])
.header-area
.dropdown-item:focus {
    background-color:
        rgba(var(--bs-primary-rgb), 0.1) !important;

    color:
        var(--factulix-primary-text) !important;
}

.dropdown-item.active,
.dropdown-item:active {
    background-color:
        var(--factulix-primary);

    color: var(--factulix-on-primary);
}

/* Perfil */
.admin-profile .admin-item-link i {
    color: var(--factulix-primary-text) !important;
}

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

/* Notificaciones y paginación */
.header-area .notifications .count,
.page-link.active,
.active > .page-link {
    background-color:
        var(--factulix-primary) !important;

    border-color:
        var(--factulix-primary) !important;
}

.notifications .notification-menu.unseen::before {
    background-color:
        var(--factulix-accent) !important;
}

.notifications .notification-menu .text-primary,
.notifications .notification-menu .text-info {
    color:
        var(--factulix-primary-text) !important;
}

/* Modo oscuro */
body[data-theme="dark"]
.dropdown-item:hover,
body[data-theme="dark"]
.dropdown-item:focus {
    background-color:
        rgba(var(--bs-primary-rgb), 0.12) !important;

    color:
        var(--factulix-accent) !important;
}

body[data-theme="dark"] .table tbody tr:hover {
    background-color:
        rgba(var(--bs-primary-rgb), 0.08);
}

/* Accesibilidad visual */
.bg-primary,
.badge.bg-primary,
.text-bg-primary,
.dropdown-item.active,
.dropdown-item:active,
.header-area .notifications .count,
.page-link.active,
.active > .page-link {
    color: var(--factulix-on-primary) !important;
}

.btn-primary,
.btn-primary i,
.btn-primary span {
    color: var(--factulix-on-primary) !important;
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary:hover i,
.btn-primary:active i,
.btn-primary:hover span,
.btn-primary:active span {
    color: var(--factulix-on-primary-dark) !important;
}

.form-control,
.form-select,
.input-group-text {
    border-color: #7b8791;
    color: #263238;
}

.form-control::placeholder {
    color: #5f6872;
    opacity: 1;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--factulix-focus) !important;
}

:where(
    a,
    button,
    input,
    select,
    textarea,
    [role="button"],
    [tabindex]
):focus-visible {
    outline: 3px solid var(--factulix-focus) !important;
    outline-offset: 2px;
}

.sidebar-area :where(
    a,
    button,
    input,
    select,
    [role="button"],
    [tabindex]
):focus-visible {
    outline-color:
        var(--factulix-sidebar-accent) !important;
}

.btn-info,
.badge.bg-info,
.text-bg-info {
    color: #102a33 !important;
}

.btn-warning,
.badge.bg-warning,
.text-bg-warning {
    color: #2a1b00 !important;
}

.text-info {
    color: #0b6073 !important;
}

.text-warning {
    color: #765500 !important;
}

.text-success {
    color: #1e6b45 !important;
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
