/**
 * Estilos base MNP Consultores
 */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
    --mnp-bg-sidebar: #111827; /* Tono oscuro ejecutivo */
    --mnp-primary: #7b2c41;   /* Color acento vino/corporativo */
    --mnp-primary-hover: #5d2131;
    --mnp-bg: #f4f6f9;        /* Fondo principal */
    --mnp-text: #334155;
}

body {
    background-color: #f8f9fa; /* Color unificado limpio (antes var(--mnp-bg)) */
    color: var(--mnp-text);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* Auth Pages */
.auth-body {
    background: linear-gradient(135deg, var(--mnp-bg) 0%, #e2e8f0 100%);
}

.btn-primary {
    background-color: var(--mnp-primary);
    border-color: var(--mnp-primary);
}
.btn-primary:hover, .btn-primary:active, .btn-primary:focus {
    background-color: var(--mnp-primary-hover) !important;
    border-color: var(--mnp-primary-hover) !important;
}

/* Utils */
.text-primary-mnp {
    color: var(--mnp-primary) !important;
}

/* Layout */
#wrapper {
    display: flex;
    height: 100vh; overflow: hidden;
}

#sidebar {
    width: 250px;
    background-color: var(--mnp-bg-sidebar);
    color: #fff;
    flex-shrink: 0;
    transition: all 0.3s;
}

#sidebar .sidebar-heading {
    padding: 1.5rem;
    font-size: 1.2rem;
    font-weight: 700;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

#sidebar .list-group-item {
    background: transparent;
    color: #9ca3af;
    border: none;
    padding: 1rem 1.5rem;
    font-size: 0.95rem;
}

#sidebar .list-group-item:hover, #sidebar .list-group-item.active {
    color: #fff;
    background-color: rgba(255,255,255,0.05);
    border-left: 4px solid var(--mnp-primary);
}

#page-content-wrapper {
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow-y: auto;
}

.topbar {
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    padding: 1rem;
}

/* --- Estilos UI Modernos --- */
.bg-navy { 
    background-color: #1e3a8a !important; 
}
.bg-yellow { 
    background-color: #fef08a !important; 
    color: #1f2937 !important; 
}
.text-navy {
    color: #1e3a8a !important;
}

.card-dash { 
    border: none; 
    border-radius: 8px; 
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); 
    margin-bottom: 24px; 
    overflow: hidden; 
    background: white; 
}
.badge-soft-primary { 
    background-color: rgba(30, 58, 138, 0.1); 
    color: #1e3a8a; 
}

.table-custom { font-size: 0.85rem; border-collapse: separate; border-spacing: 0; }
.table-custom th { background-color: #1f2937; color: white; font-weight: 600; text-align: center; border-bottom: none; vertical-align: middle; padding: 10px; border: 1px solid #374151; }
.table-custom th.bg-yellow { background-color: #fef08a; color: #1f2937; border-color: #eab308; }
.table-custom th.bg-navy { background-color: #1e3a8a; border-color: #1e3a8a; }
.table-custom td { text-align: right; vertical-align: middle; padding: 8px 12px; border: 1px solid #e5e7eb; }
.table-custom td:first-child, .table-custom td:nth-child(2) { text-align: left; }
.table-custom tbody tr:hover { background-color: #f3f4f6; }
.table-custom .row-totales td { font-weight: 700; background-color: #e5e7eb; border-top: 2px solid #9ca3af; }
.table-wrapper { width: 100%; overflow-x: auto; }
.clave-tag { font-weight: 600; color: #1e3a8a; }

/* Correcciones de Letter Tracking */
.letter-spacing-1 { letter-spacing: 1px; 
@media print {
    #sidebar, .topbar, .btn, .d-grid.gap-2, form { display: none !important; }
    body, #wrapper, #page-content-wrapper { height: auto !important; overflow: visible !important; display: block !important; }
    .container-fluid { padding: 0 !important; margin: 0 !important; }
    .shadow-sm { box-shadow: none !important; }
    .card { border: 1px solid #ddd !important; break-inside: avoid; }
    .nav-pills { display: none !important; }
}
