:root {
    --erp-blue-primary: #0d6efd;
    --erp-blue-light: #e7f1ff;
    --sidebar-bg: #f8f9fa;
    --sidebar-hover: #e9ecef;
    --sidebar-border: #dee2e6;
}

.sidebar-container {
    width: 240px;
    min-height: 100vh;
    font-family: 'Segoe UI', system-ui, sans-serif;
    background-color: var(--sidebar-bg);
    border-right: 1px solid var(--sidebar-border);
}

/* Logo */
.sidebar-logo-box {
    width: 34px;               /* antes 40px */
    height: 34px;
    font-size: 1rem;
    background-color: var(--erp-blue-primary) !important;
}

/* Iconos */
.sidebar-icon {
    width: 18px;               /* antes 20px */
    text-align: center;
    font-size: .95rem;         /* antes 1.1rem */
}

/* Títulos de sección */
.sidebar-section-title {
    font-size: .62rem;         /* antes .68rem */
    letter-spacing: .4px;
    color: #a0a5b5 !important;
    padding-top: .75rem !important;
    padding-bottom: .2rem !important;
}

/* Avatar */
.sidebar-avatar {
    width: 32px;               /* antes 38px */
    height: 32px;
    background-color: var(--erp-blue-primary) !important;
    font-size: .75rem;
}

/* Enlaces principales */
.sidebar-container .nav-link {
    color: #495057 !important;
    font-weight: 500;
    font-size: .84rem;         /* antes .92rem */
    padding: .45rem .9rem !important; /* antes py-2 px-3 */
    border-radius: 0 !important;
    transition: all .2s ease;
}

.sidebar-container .nav-link:hover {
    background-color: var(--sidebar-hover);
    color: var(--erp-blue-primary) !important;
}

.sidebar-container .nav-link.active {
    background-color: var(--erp-blue-light) !important;
    color: var(--erp-blue-primary) !important;
    font-weight: 600;
    position: relative;
}

.sidebar-container .nav-link.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background-color: var(--erp-blue-primary);
}

/* Menús desplegables */
.dropdown-active-toggle {
    color: var(--erp-blue-primary) !important;
    font-weight: 600 !important;
}

/* Submenús */
.sidebar-container .collapse .nav-link {
    color: #5c636a !important;
    font-weight: 400;
    font-size: .78rem;         /* antes .88rem */
    padding: .25rem .5rem .25rem .75rem !important;
}

.sidebar-container .collapse .nav-link.active {
    background: transparent !important;
    color: var(--erp-blue-primary) !important;
    font-weight: 500;
}

.sidebar-container .collapse .nav-link.active::before {
    display: none;
}

/* ================================================
   Compactación global (toda la interfaz, todas las páginas)
   MISMO nivel que las páginas de listados (ListaCotizaciones / Odprocesadas)
   ================================================ */

/* Base: reduce el tamaño raíz, todo lo que usa rem se encoge proporcionalmente */
html {
    font-size: 14.5px;
}

body {
    font-size: 0.72rem;
}

main .content {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

/* --- Encabezados --- */
h1, .h1 { font-size: 1.15rem; }
h2, .h2 { font-size: 1rem; }
h3, .h3 { font-size: 0.9rem; }
h4, .h4 { font-size: 0.85rem; }
h5, .h5 { font-size: 0.8rem; }
h6, .h6 { font-size: 0.75rem; }

/* --- Cards --- */
.card .card-header {
    padding: 0.2rem 0.4rem;
    font-size: 0.6rem;
}

.card .card-title {
    font-size: 0.72rem;
    margin-bottom: 0.25rem;
}

.card .card-body {
    padding: 0.35rem 0.55rem;
}

.card .card-footer {
    padding: 0.3rem 0.55rem;
}

/* --- Formularios --- */
.form-control,
.form-select {
    font-size: 0.58rem;
    padding: 0.12rem 0.25rem;
    height: auto;
}

.form-label {
    font-size: 0.55rem;
    margin-bottom: 0.1rem;
    font-weight: 600;
}

.form-text {
    font-size: 0.55rem;
}

.input-group-text {
    font-size: 0.58rem;
    padding: 0.12rem 0.25rem;
}

/* --- Tablas --- */
.table {
    font-size: 0.58rem;
}

.table th,
.table td {
    padding: 0.18rem 0.3rem;
}

.table .form-control,
.table .form-select {
    font-size: 0.58rem;
    padding: 0.1rem 0.2rem;
    height: auto;
}

/* --- Botones --- */
.btn {
    font-size: 0.6rem;
    padding: 0.2rem 0.5rem;
}

.btn-sm {
    font-size: 0.56rem;
    padding: 0.12rem 0.3rem;
}

/* --- Badges --- */
.badge {
    font-size: 0.54rem;
    padding: 0.18rem 0.3rem;
}

/* --- Modales --- */
.modal-title {
    font-size: 0.75rem;
}

.modal-header {
    padding: 0.4rem 0.6rem;
}

.modal-body {
    padding: 0.5rem 0.7rem;
}

/* --- Paginación --- */
.pagination .page-link {
    font-size: 0.58rem;
    padding: 0.12rem 0.35rem;
}

/* --- Tabs / nav --- */
.nav-tabs .nav-link {
    font-size: 0.6rem;
    padding: 0.3rem 0.6rem;
}

/* --- Alertas --- */
.alert {
    font-size: 0.6rem;
    padding: 0.4rem 0.6rem;
}

/* --- Dropdowns --- */
.dropdown-menu {
    font-size: 0.6rem;
}

.dropdown-item {
    font-size: 0.6rem;
    padding: 0.25rem 0.6rem;
}

/* --- Contenedores de pagina (antes .vista-compacta por pagina) --- */
.container-fluid,
.vista-compacta {
    font-size: 0.58rem;
}

/* ================================================
   (Consolidado) Estilos de paginas de Cotizaciones
   ================================================ */
/* ================================================
   Estilos compartidos para páginas de Cotizaciones
   ================================================ */

/* --- Layout compacto --- */
.pagina-cotizacion .container-fluid {
    font-size: 0.58rem;
    max-width: 100%;
}

/* --- Cards compactas --- */
.pagina-cotizacion .card .card-header {
    padding: 0.2rem 0.4rem;
    font-size: 0.6rem;
}

.pagina-cotizacion .card .card-body {
    padding: 0.35rem 0.55rem;
}

.pagina-cotizacion .card .row.g-3 {
    --bs-gutter-x: 0.4rem;
    --bs-gutter-y: 0.4rem;
}

.pagina-cotizacion .card .form-control,
.pagina-cotizacion .card .form-select {
    font-size: 0.58rem;
    padding: 0.12rem 0.25rem;
    height: auto;
}

.pagina-cotizacion .card .form-label {
    margin-bottom: 0.1rem;
    font-size: 0.55rem;
    font-weight: 600;
}

/* --- Tabla de detalle compacta --- */
.pagina-cotizacion .table-responsive table {
    font-size: 0.58rem;
}

.pagina-cotizacion .table-responsive .form-control,
.pagina-cotizacion .table-responsive .form-select {
    font-size: 0.58rem;
    padding: 0.12rem 0.25rem;
    height: auto;
}

.pagina-cotizacion .table-responsive th,
.pagina-cotizacion .table-responsive td {
    padding: 0.18rem 0.3rem;
}

/* --- Detalle de productos: letra más pequeña --- */
.pagina-cotizacion .table-responsive .tabla-detalle {
    font-size: 0.54rem;
}

.pagina-cotizacion .table-responsive .tabla-detalle .form-control,
.pagina-cotizacion .table-responsive .tabla-detalle .form-select {
    font-size: 0.54rem;
    padding: 0.1rem 0.2rem;
    height: auto;
}

.pagina-cotizacion .table-responsive .tabla-detalle th,
.pagina-cotizacion .table-responsive .tabla-detalle td {
    padding: 0.12rem 0.2rem;
}

/* --- Tablas de listado (vista compacta) --- */
.pagina-cotizacion .table th,
.pagina-cotizacion .table td {
    padding: 0.18rem 0.3rem;
    font-size: 0.58rem;
}

.pagina-cotizacion .badge {
    font-size: 0.54rem;
    padding: 0.18rem 0.3rem;
}

.pagina-cotizacion .form-control,
.pagina-cotizacion .form-select,
.pagina-cotizacion .btn-sm {
    font-size: 0.58rem;
    padding: 0.12rem 0.25rem;
}

.pagina-cotizacion .modal-body {
    font-size: 0.7rem;
}

/* --- Buscador de productos (EditarPreCotizacion / IA) --- */
.pagina-cotizacion .sugerencias-productos-pro {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    min-width: 480px;
    max-width: 650px;
    background-color: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 0.25rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    z-index: 2000;
    max-height: 200px;
    overflow-y: auto;
}

.pagina-cotizacion .item-sugerencia-pro {
    display: block;
    width: 100%;
    padding: 0.3rem 0.5rem;
    text-align: left;
    background: transparent;
    border: 0;
border-bottom: 1px solid #f1f5f9;
    font-size: 0.6rem;
    color: #334155;
    transition: background-color 0.15s;
}

.pagina-cotizacion .item-sugerencia-pro:hover {
    background-color: #e7f1ff;
    transform: translateX(2px);
    border-left: 3px solid var(--erp-blue-primary);
}

.pagina-cotizacion .item-sugerencia-pro:last-child {
    border-bottom: 0;
}

/* --- Buscador de productos (NuevaCotizacion) --- */
.pagina-cotizacion .buscador-producto-container {
    position: relative;
    min-width: 320px;
}

.pagina-cotizacion .dropdown-productos-pro {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 550px;
    max-width: 750px;
    background-color: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.15);
    z-index: 2000;
    max-height: 250px;
    overflow-y: auto;
}

.pagina-cotizacion .dropdown-productos-pro::-webkit-scrollbar {
    width: 6px;
}

.pagina-cotizacion .dropdown-productos-pro::-webkit-scrollbar-thumb {
    background-color: #cbd5e1;
    border-radius: 3px;
}

.pagina-cotizacion .dropdown-item-pro {
    display: block;
    width: 100%;
    padding: 0.4rem 0.6rem;
    clear: both;
    text-align: inherit;
    background-color: transparent;
border: 0;
    border-bottom: 1px solid #f1f5f9;
    font-size: 0.6rem;
    transition: background-color 0.15s ease-in-out;
}

.pagina-cotizacion .dropdown-item-pro:hover {
    background-color: #e7f1ff;
    transform: translateX(2px);
    border-left: 3px solid var(--erp-blue-primary);
}

.pagina-cotizacion .dropdown-item-pro:hover .badge {
    filter: brightness(1.1);
}

.pagina-cotizacion .dropdown-item-pro:last-child {
    border-bottom: 0;
}

/* --- Buscador de clientes: visibilidad en dropdown de resultados --- */
.pagina-cotizacion .list-group-item-action:hover,
.pagina-cotizacion .list-group-item.list-group-item-action:hover {
    background-color: #e7f1ff !important;
    transform: translateX(2px);
    border-left: 3px solid var(--erp-blue-primary) !important;
}

.pagina-cotizacion .list-group-item-action:focus {
    background-color: #e7f1ff !important;
    border-left: 3px solid var(--erp-blue-primary) !important;
}

.pagina-cotizacion .list-group-item.list-group-item-action:active {
    background-color: #dbeafe !important;
}

/* ================================================
   Listados (páginas de tablas) aún más compactos
   ================================================ */
.pagina-cotizacion.pagina-lista .container-fluid {
    font-size: 0.58rem;
}

.pagina-cotizacion.pagina-lista .card .card-header {
    font-size: 0.6rem;
    padding: 0.2rem 0.4rem;
}

.pagina-cotizacion.pagina-lista .form-control,
.pagina-cotizacion.pagina-lista .form-select {
    font-size: 0.58rem;
    padding: 0.12rem 0.25rem;
    height: auto;
}

.pagina-cotizacion.pagina-lista .table th,
.pagina-cotizacion.pagina-lista .table td {
    padding: 0.18rem 0.3rem;
    font-size: 0.58rem;
}

.pagina-cotizacion.pagina-lista .badge {
    font-size: 0.54rem;
    padding: 0.18rem 0.3rem;
}

.pagina-cotizacion.pagina-lista .btn-sm {
    font-size: 0.56rem;
    padding: 0.12rem 0.3rem;
}

.pagina-cotizacion.pagina-lista .pagination .page-link {
    font-size: 0.58rem;
    padding: 0.12rem 0.35rem;
}

.pagina-cotizacion.pagina-lista .table-responsive .tabla-detalle th,
.pagina-cotizacion.pagina-lista .table-responsive .tabla-detalle td {
    font-size: 0.54rem;
    padding: 0.12rem 0.2rem;
}
