:root {
    --color-principal: var(--color-primario);
    --color-secundario: #f28c28;
    --color-fondo: #f5f7fa;
    --color-texto: #1f2933;
    --color-borde: #d9e2ec;
}

body {
    background-color: var(--color-fondo);
    color: var(--color-texto);
    font-family: 'Montserrat', sans-serif;

}

.navbar {
    background-color: #ffffff !important;
    border-bottom: 1px solid #e5e7eb;
}

.navbar .nav-link,
.navbar .dropdown-toggle {
    color: #0D1B2A !important;
}

.navbar-brand {
    letter-spacing: 0.5px;
}

.btn-primary {
    background-color: var(--color-principal);
    border-color: var(--color-principal);
}

.btn-primary:hover {
    background-color: #173b5c;
    border-color: #173b5c;
}

.btn-success {
    background-color: var(--color-secundario);
    border-color: var(--color-secundario);
    color: #fff;
}

.btn-success:hover {
    background-color: #d97706;
    border-color: #d97706;
    color: #fff;
}

.card {
    border-radius: 14px;
}

.table {
    background-color: #fff;
}

h1, h2, h3, h4, h5 {
    color: var(--color-principal);
}

footer {
    background-color: #fff !important;
}

.logo-principal {
    max-width: 460px;
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

@media (max-width: 576px) {
    .logo-principal {
        width: 70vw !important;
        max-width: 260px !important;
        height: auto !important;
        object-fit: contain;
    }
}

.estado {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 700;
    white-space: nowrap;
}

.estado-pendiente {
    background-color: #fff3cd;
    color: #856404;
}

.estado-aceptada {
    background-color: #d1e7dd;
    color: #0f5132;
}

.estado-rechazada {
    background-color: #f8d7da;
    color: #842029;
}

.estado-proceso {
    background-color: #cff4fc;
    color: #055160;
}

.estado-terminada {
    background-color: #dbeafe;
    color: #1e40af;
}

.estado-caducada {
    background-color: #e5e7eb;
    color: #374151;
}

.estado-eliminada {
    background-color: #7f1d1d;
    color: #ffffff;
}

.estado-default {
    background-color: #e9ecef;
    color: #343a40;
}

.fila-pendiente {
    background-color: #fff8e1 !important;
}

.fila-aceptada {
    background-color: #eaf7ef !important;
}

.fila-rechazada {
    background-color: #fdecec !important;
}

.fila-proceso {
    background-color: #eaf8fb !important;
}

.fila-terminada {
    background-color: #eef4ff !important;
}

.fila-caducada {
    background-color: #f1f3f5 !important;
}

.fila-eliminada {
    background-color: #ffe4e6 !important;
}

body.dark-mode {
    background-color: #0f172a;
    color: #e5e7eb;
}

body.dark-mode .card {
    background-color: #1e293b;
    color: #e5e7eb;
}

body.dark-mode .table {
    background-color: #1e293b;
    color: #e5e7eb;
}

body.dark-mode .navbar {
    background-color: #0D1B2A !important;
    border-bottom: 1px solid #1f2937;
}

body.dark-mode footer {
    background-color: #020617 !important;
    color: #e5e7eb;
}

body.dark-mode h1,
body.dark-mode h2,
body.dark-mode h3,
body.dark-mode h4,
body.dark-mode h5,
body.dark-mode label,
body.dark-mode p,
body.dark-mode small {
    color: #e5e7eb;
}

body.dark-mode .text-muted {
    color: #cbd5e1 !important;
}

body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea {
    background-color: #0f172a;
    color: #e5e7eb;
    border-color: #475569;
}

body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder {
    color: #94a3b8;
}

body.dark-mode .table th,
body.dark-mode .table td {
    background-color: #1e293b !important;
    color: #e5e7eb !important;
    border-color: #334155 !important;
}

body.dark-mode .table thead th {
    background-color: #0f172a !important;
    color: #ffffff !important;
}

body.dark-mode .form-control,
body.dark-mode .form-select,
body.dark-mode input,
body.dark-mode select,
body.dark-mode textarea {
    background-color: #0f172a !important;
    color: #e5e7eb !important;
    border-color: #475569 !important;
}

body.dark-mode .form-control::placeholder,
body.dark-mode input::placeholder,
body.dark-mode textarea::placeholder {
    color: #94a3b8 !important;
}

body.dark-mode a {
    color: #93c5fd;
}

body.dark-mode a:hover {
    color: #bfdbfe;
}

#passwordRules li {
    color: #dc3545;
}

#passwordRules li.ok {
    color: #198754;
    font-weight: 600;
}

.input-disabled {
    background-color: #e5e7eb !important;
    color: #6b7280 !important;
    border: 1px solid #d1d5db !important;
    cursor: not-allowed;
    opacity: 0.8;
}
/* Modo oscuro */
body.dark-mode .input-disabled {
    background-color: #020617 !important;
    color: #475569 !important;
    border: 1px solid #334155 !important;
    cursor: not-allowed;
    opacity: 0.7;
}

body.dark-mode .form-text {
    color: #94a3b8 !important;
}

.btn-excel {
    background-color: #217346;
    border-color: #217346;
    color: #fff;
}

.btn-excel:hover {
    background-color: #1a5e38;
    border-color: #1a5e38;
    color: #fff;
}

.dashboard-card {
    border: 0;
    border-radius: 14px;
    box-shadow: 0 4px 12px rgba(15, 42, 68, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.dashboard-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(15, 42, 68, 0.18);
}

.dashboard-card .card-body {
    min-height: 110px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dashboard-clientes {
    background-color: var(--color-primario);
    color: #ffffff;
}

.dashboard-clientes,
.dashboard-clientes h5,
.dashboard-clientes h2 {
    color: #ffffff !important;
}

.dashboard-pendiente {
    background-color: #fff3cd;
    color: #856404;
}

.dashboard-proceso {
    background-color: #cff4fc;
    color: #055160;
}

.dashboard-caducada {
    background-color: #e5e7eb;
    color: #374151;
}

body.dark-mode .dashboard-clientes {
    background-color: #0d1b2a;
    color: #ffffff;
}

body.dark-mode .dashboard-pendiente {
    background-color: #78350f;
    color: #fde68a;
}

body.dark-mode .dashboard-proceso {
    background-color: #164e63;
    color: #cffafe;
}

body.dark-mode .dashboard-caducada {
    background-color: #374151;
    color: #e5e7eb;
}

.btn-acento {
    background-color: #f28c28;
    border-color: #f28c28;
    color: #ffffff;
}

.btn-acento:hover {
    background-color: #d97706;
    border-color: #d97706;
    color: #ffffff;
}

.btn-outline-danger {
    border-width: 2px;
}

.footer-site {
    background-color: #f8fafc;
}

.footer-link {
    color: var(--color-primario);
    text-decoration: none;
    font-weight: 500;
}

.footer-link:hover {
    text-decoration: underline;
}

body.dark-mode .footer-site {
    background-color: #0f172a;
    border-color: #334155 !important;
}

body.dark-mode .footer-link {
    color: #93c5fd;
}

body.dark-mode .navbar .nav-link,
body.dark-mode .navbar .dropdown-toggle {
    color: #ffffff !important;
}

.navbar-toggler {
    border-color: rgba(13, 27, 42, 0.35) !important;
}

body.dark-mode .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.45) !important;
}

body.dark-mode .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.95%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

body.dark-mode .navbar .navbar-toggler .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255,255,255,1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2.5' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
    filter: none !important;
}

body.dark-mode .navbar .navbar-toggler {
    border: 1px solid rgba(255,255,255,0.55) !important;
}

.legal-content p {
    text-align: justify !important;
}

.legal-content li {
    text-align: justify;
}

.legal-content h2,
.legal-content h3 {
    margin-top: 1.8rem;
    margin-bottom: 1rem;
}

.legal-content p {
    margin-bottom: 1rem;
    line-height: 1.7;
    text-align: justify !important;
}

.legal-content ul {
    margin-bottom: 1.2rem;
}