html {
	position: relative;
	min-height: 100%;
	line-height: normal!important;
}
body {
	font-family: var(--fuente), system-ui, sans-serif;
	font-size: 14px;
	overflow-x: hidden;
	font-weight: 400!important;
	color: #000000;
	background: #FFFFFF!important;
	line-height: normal!important;
	color: var(--texto-principal);
}


a				{ text-decoration: none; }
div.main		{ min-height: 450px; }
.row			{ margin: 0px !important; }

@media (min-width: 960px) 			{ .modal-lg, .modal-xl { max-width: 900px; }		}
@media (min-width: 992px) 			{ .modal-lg, .modal-xl { max-width: 900px; }		}
@media (min-width: 1200px) 			{ .modal-xl { max-width: 1140px; }					}

*::placeholder { color: #BBBBBB!important; }
label, .form-label		{ font-size:13px; font-weight: 400; color: #787878; margin: 2px 2px; }
select, input, textarea, select > option { border: 1px solid #999999; border-radius: 5px!important; font-family: Tahoma!important }
select.form-select, select > option, input.form-control, textarea.form-control  {
	font-family: Tahoma!important; font-size: 14px!important; border: 1px solid #999999; padding: 4px; }

.select2 { border: 1px solid #AAAAAA!important; border-radius: 5px!important; padding: 0px!important; }
.select2-selection__rendered { font-size: 14px!important; margin: 0px!important; }
.select2-results__option { font-size: 14px!important; padding: 3px 8px!important; }

.bg-sarasqueta { background: var(--canal-color) !important; color: var(--canal-texto); }
.btn-sarasqueta { background: var(--violeta-principal); color: var(--canal-texto); }
.btn-sarasqueta:hover { background: var(--violeta-claro-2); color: #000000; }
.text-sarasqueta { color: var(--violeta-principal); }

.bg-pedido-activo { background: var(--violeta-claro-2); }

.show-password 	{   cursor: pointer }


.requerido-rojo, select.requerido-rojo		{ border-bottom: 1px solid #ff0000!important; background: #fFFAFA; }

.requerido, .requerido-numerico, .requerido-extension, .requerido-email {  }

.selectpicker-gris 		{ color: #343a40; background-color: #FFFFFF; border-color: #999999; }
.selectpicker-gris:hover { background-color: #FFFFFF; }
.selectpicker-gris:focus, .selectpicker-gris.focus { box-shadow: 0 0 0 2px rgba(52, 58, 64, 0.5); }

.selectpicker { color: #AAAAAA; background: #FFFFFF!important; }

.dropdown-365 .dropdown-menu	{ background: #6699CC; padding: 0px; }
.dropdown-365 .dropdown-item 	{ padding: 3px 6px; color: #FFFFFF; border-bottom: dotted #000000 1px!important; }
.dropdown-365 .fa 				{ font-size: 13px; width: 25px; text-align: center; }

.responsive-table { display: inline-block; min-width: 100%; box-sizing: border-box; }
.responsive-table > table { width: 100%; border-collapse: collapse; }

@media print {
	.no-printer { display:none }
	.bg-gris	{ background: #CCCCCC!important; -webkit-print-color-adjust: exact;  }
}

.table-small	{ font-size: 14px!important; }
.table-small td { padding: 0.4rem!important; vertical-align: middle!important;  }

.table-xsmall	{ font-size: 14px!important;; }
.table-xsmall td { padding: 0.2rem!important; vertical-align: middle!important; }

thead.head-365-datatable th { font-size: 15px!important; text-transform: uppercase; color: var(--canal-texto);
	padding: 15px 10px;
	background: var(--canal-color) !important;
}

.modal-header { font-size: 13px!important; color: var(--canal-texto);
	background: var(--canal-color) !important;
}

.row .campo		{ padding: 8px 6px; }

/* LOGIN (ingreso / recordar / restablecer): fondo y franja con el color del canal */
body:has(.login-marca) {
	background: linear-gradient(135deg, var(--violeta-oscuro) 0%, var(--canal-color) 55%, var(--violeta-claro-2) 100%) fixed !important;
}
/* Franja de marca en blanco: los logos vienen con fondo blanco */
.login-marca			{ background: #FFFFFF; color: var(--canal-color); text-align: center; padding: 28px 20px; border-bottom: 3px solid var(--canal-color); }
.login-marca img		{ max-height: 60px; max-width: 80%; }
.login-marca .navbar-brand-texto { margin: 0; font-size: 24px; color: var(--canal-color); }
.login-card					{ font-family: var(--fuente), system-ui, sans-serif; }
.login-titulo				{ font-size: 22px; font-weight: 600; color: var(--texto-principal); text-align: center; margin: 0 0 4px; }
.login-subtitulo			{ font-size: 14px; color: var(--texto-secundario); text-align: center; margin: 0 0 28px; }
.login-card .form-label		{ font-size: 13px; font-weight: 500; color: var(--texto-secundario); margin: 0 0 4px; }
.login-card .form-control	{ padding: 10px 12px; border-color: #CCCCCC; }
.login-card .form-control:focus { border-color: var(--canal-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--canal-color) 20%, transparent); }
.campo-trampa				{ position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.login-clave				{ position: relative; }
.login-clave .form-control	{ padding-right: 40px; }
.login-clave .show-password	{ position: absolute; right: 14px; top: 50%; transform: translateY(-50%); color: var(--texto-secundario); }




/* BARRA: fondo blanco (para que se vea el logo), letras e íconos con el color del canal */

.navbar {
	font-family: var(--fuente), system-ui, sans-serif;
	font-size: 15px;
	font-weight: 500;
	color: var(--canal-color)!important;
	background: #FFFFFF !important;
	border-bottom: 1px solid #E5E5E5;
	transition: all 0.5s;
}
.navbar li.nav-item					{ padding: 8px; }
.navbar a.nav-link					{ color: var(--canal-color)!important; padding: 10px; border-bottom: 2px solid transparent; transition: all 0.3s; }
.navbar a.nav-link:hover			{ border-bottom: 2px var(--canal-color) solid; border-radius: 8px; }
.navbar i							{ font-size: 14px; }
.navbar .nav-icono-plus				{ font-size: 8px; vertical-align: top; margin-left: 1px; }	/* el "+" chiquito de "nueva campaña" */

.navbar-brand				{ margin: 0px; padding: 0px;  }
.navbar-brand img			{ margin: 0px 20px; transition: all 0.5s; max-height: 50px; max-width: 200px; width: auto; height: auto; }
.navbar-brand-texto			{ display: inline-block; margin: 0px 20px; font-size: 20px; font-weight: 700; color: var(--canal-color); letter-spacing: 0.3px; }

/* Desplegables: misma tipografía y color que el menú, sin negrita. Se abren por hover en escritorio (ver body_top.php) */
li.dropdown .dropdown-menu			{ background: #FFFFFF; font-family: var(--fuente), system-ui, sans-serif; font-size: 14px; font-weight: 400; text-transform: none; padding: 4px 0; border: 1px solid #E5E5E5; border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.08); margin-top: 0; }
li.dropdown .dropdown-menu a		{ color: var(--canal-color); font-weight: 400; padding: 8px 14px; }
li.dropdown .dropdown-menu a i		{ width: 18px; text-align: center; margin-right: 4px; font-size: 13px; }
li.dropdown .dropdown-menu a:hover,
li.dropdown .dropdown-menu a:focus	{ background: var(--violeta-claro); color: var(--canal-color); }
li.dropdown .dropdown-header		{ color: var(--texto-secundario, #777777); font-size: 11px; font-weight: 500; padding: 6px 14px 4px; }

/* BARRA DE TÍTULO ("Inicio" · nombre del usuario): color del canal */
/* Es el título de cada pantalla (las vistas ya no repiten el h3). El nombre del usuario, a la derecha, queda chico */
.encabezado						{ background: var(--canal-color); }
.encabezado .container			{ padding: 12px 8px !important; }
.encabezado h1					{ color: var(--canal-texto); font-size: 18px; font-weight: 600; margin: 0px; line-height: 24px; }
.encabezado h1.encabezado-usuario	{ font-size: 15px; font-weight: 500; }

@media (max-width: 668px) {
	.navbar 							{ font-size: 17px; }
	.navbar ul.navbar-nav				{ background: #FFFFFF; }
	.navbar li.nav-item					{ padding: 0px; padding-left: 30px; border-bottom: 1px dotted #DDDDDD; }
	.navbar li.nav-item:first-child		{ margin-top: 10px; }
	.navbar li.nav-item:last-child		{ border-bottom: none; }
	.navbar a.nav-link					{ padding: 5px; border-bottom: none; transition: all 0.3s; }
	.navbar a.nav-link:hover			{ border-bottom: none; }

	.navbar-brand img					{ max-height: 40px; max-width: 160px; }
	.encabezado h1						{ font-size: 16px; }
	.encabezado h1.encabezado-usuario	{ font-size: 13px; }
}

/* Ícono hamburguesa: se pinta con el color del canal (máscara en vez de imagen fija blanca) */
.navbar-toggler-icon {
	background-image: none;
	background-color: var(--canal-color);
	-webkit-mask: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='black' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E") center / contain no-repeat;
	        mask: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='black' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E") center / contain no-repeat;
}
.navbar-toggler { border-color: var(--canal-color)!important; }










/* ============================================
   FOOTER
============================================ */
#footer {
    background: var(--canal-color) !important;
    border-top: 2px solid #CCCCCC;
    line-height: 1.4;
    padding-top: 0.5rem;        /* antes 1.5rem */
}
#footer, #footer p, #footer a {
    color: var(--canal-texto);
    font-size: 13px;            /* antes 14px */
    font-weight: 400;
}

/* Cada bloque del footer */
.footer-bloque {
    padding: 0.4rem 0.5rem;
    text-align: center;
}

/* Logo: sobre una placa blanca, porque los logos vienen con fondo blanco */
.footer-logo {
    max-height: 34px;
    width: auto;
    background: #FFFFFF;
    padding: 6px 12px;
    border-radius: 8px;
    box-sizing: content-box;
}

/* Items de contacto */
/* Datos de contacto: cada uno es un link con ícono (email / instagram / whatsapp) */
.footer-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--canal-texto);
    text-decoration: none;
    border-bottom: 1px dotted color-mix(in srgb, var(--canal-texto) 40%, transparent);
    transition: border-color 0.2s ease;
}
.footer-item:hover { color: var(--canal-texto); border-bottom-color: var(--canal-texto); }
.footer-item i {
    width: 16px;
    text-align: center;
    opacity: 0.85;
    font-size: 15px;
}

/* Barra de créditos */
.footer-creditos {
    background: var(--violeta-oscuro);
    color: #fff;
    text-align: center;
    padding: 6px 12px;          /* antes 10px 12px */
    font-size: 12px;            /* antes 12px */
    margin-top: 0.4rem;         /* antes 1rem */
}
.footer-creditos a {
    color: #FFFFFF;
    font-weight: 900;
    opacity: 0.9;
}
.footer-creditos a:hover { opacity: 1; }


@media (max-width: 668px) {
    .footer-bloque  { text-align: center; padding: 0.5rem 1rem; }
    .footer-item    { justify-content: center; }
}









/* ============================================
   VARIABLES DE COLOR (paleta institucional)
============================================ */
:root {
    /* Valores por defecto: cada canal los pisa desde header.php (tabla `canales`) */
    --canal-color: #794BFF;
    --canal-texto: #FFFFFF;
    --fuente: 'Onest';

    /* La paleta deriva del color del canal (se mantienen los nombres para no tocar las reglas) */
    --violeta-principal: var(--canal-color);
    --violeta-oscuro: color-mix(in srgb, var(--canal-color) 45%, #000000);
    --violeta-medio: color-mix(in srgb, var(--canal-color) 75%, #000000);
    --violeta-claro: color-mix(in srgb, var(--canal-color) 8%, #FFFFFF);
    --violeta-claro-2: color-mix(in srgb, var(--canal-color) 35%, #FFFFFF);
    --texto-principal: #2C2C2A;
    --texto-secundario: #5F5E5A;
}

/* ============================================
   SECCIÓN DE PASOS (página de inicio)
============================================ */
.pasos-section          { padding: 1rem 0 2rem; }
.pasos-header           { margin-bottom: 1.75rem; }
.pasos-header h2        { font-size: 22px; font-weight: 600; color: var(--texto-principal); margin: 0 0 6px; }
.pasos-header p         { font-size: 14px; color: var(--texto-secundario); margin: 0; }

.pasos-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    margin-bottom: 2rem;
}

/* Línea punteada conectora */
.pasos-grid::before {
    content: "";
    position: absolute;
    top: 32px;
    left: 12%;
    right: 12%;
    height: 2px;
    background: repeating-linear-gradient(to right, var(--violeta-claro-2) 0, var(--violeta-claro-2) 6px, transparent 6px, transparent 12px);
    z-index: 0;
}

.paso-card {
    position: relative;
    z-index: 1;
    background: #FFFFFF;
    border: 1px solid var(--violeta-claro);
    border-radius: 12px;
    padding: 18px 16px;
    transition: all 0.2s ease;
}
.paso-card:hover {
    border-color: var(--violeta-claro-2);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(121, 75, 255, 0.08);
}
.paso-card.activo {
    background: var(--violeta-claro);
    border: 2px solid var(--violeta-principal);
    padding: 17px 15px;
}

.paso-card-head         { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.paso-numero {
    width: 38px; height: 38px;
    border-radius: 50%;
    background: var(--violeta-principal);
    color: #FFFFFF;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 15px;
    flex-shrink: 0;
}
.paso-card.activo .paso-numero  { box-shadow: 0 0 0 4px rgba(121, 75, 255, 0.18); }

.paso-icono             { font-size: 22px; color: var(--violeta-principal); }
.paso-titulo            { font-weight: 600; font-size: 15px; color: var(--violeta-oscuro); margin: 0 0 4px; }
.paso-descripcion       { font-size: 13px; color: var(--texto-secundario); line-height: 1.5; margin: 0; }
.paso-card.activo .paso-descripcion { color: var(--violeta-medio); }

@media (max-width: 900px) {
    .pasos-grid             { grid-template-columns: repeat(2, 1fr); }
    .pasos-grid::before     { display: none; }
}
@media (max-width: 500px) {
    .pasos-grid             { grid-template-columns: 1fr; }
}







/* ============================================
   STEPPER (barra de progreso de 4 pasos)
   Reutilizable en pasos 1, 2, 3 y 4
============================================ */
.stepper {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 1.5rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--violeta-claro);
    flex-wrap: nowrap;
}
.stepper-item {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.stepper-item.pendiente { opacity: 0.5; }
.stepper-item.completado { opacity: 0.8; }

.stepper-numero {
    width: 28px; height: 28px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 12px;
    background: var(--violeta-claro);
    color: var(--violeta-principal);
    flex-shrink: 0;
}
.stepper-item.activo .stepper-numero,
.stepper-item.completado .stepper-numero {
    background: var(--violeta-principal);
    color: #fff;
}
.stepper-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--texto-secundario);
    white-space: nowrap;
}
.stepper-item.activo .stepper-label { color: var(--violeta-oscuro); font-weight: 600; }

.stepper-linea {
    flex: 1;
    height: 2px;
    min-width: 20px;
    background: repeating-linear-gradient(to right, var(--violeta-claro-2) 0, var(--violeta-claro-2) 4px, transparent 4px, transparent 8px);
}

@media (max-width: 700px) {
    .stepper-label { display: none; }
    .stepper-item { gap: 0; }
}


/* ============================================
   GRILLA DE MARCAS (paso 1)
============================================ */
.paso-titulo-h3 {
    font-size: 20px;
    font-weight: 600;
    color: var(--texto-principal);
    margin: 0 0 4px;
}
.paso-subtitulo {
    font-size: 13px;
    color: var(--texto-secundario);
    margin: 0 0 1.25rem;
}

.marcas-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 14px;
    margin-bottom: 1.5rem;
}
@media (max-width: 900px) { .marcas-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 600px) { .marcas-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 400px) { .marcas-grid { grid-template-columns: repeat(2, 1fr); } }

.marca-card {
    position: relative;
    background: #fff;
    border: 2px solid #E5E5E5;
    border-radius: 12px;
    padding: 14px 10px;
    text-align: center;
    cursor: pointer;
    transition: all 0.2s ease;
}
.marca-card:hover {
    border-color: var(--violeta-claro-2);
    transform: translateY(-2px);
}
.marca-card.seleccionada {
    border-color: var(--violeta-principal);
    box-shadow: 0 4px 12px rgba(121, 75, 255, 0.15);
}
.marca-card .marca-check {
    position: absolute;
    top: 8px; right: 8px;
    width: 22px; height: 22px;
    border-radius: 50%;
    background: var(--violeta-principal);
    color: #fff;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 11px;
}
.marca-card.seleccionada .marca-check { display: flex; }

.marca-card img {
    max-height: 60px;
    width: auto;
    margin: 0 auto 8px;
    display: block;
}
.marca-card h6 {
    font-size: 12px;
    font-weight: 500;
    color: var(--violeta-oscuro);
    margin: 0;
}


/* ============================================
   BARRA INFERIOR (contador + botón siguiente)
============================================ */
.paso-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: 1rem;
    border-top: 1px solid var(--violeta-claro);
    margin-top: 1.5rem;
    gap: 12px;
    flex-wrap: wrap;
}
.paso-footer-info {
    font-size: 13px;
    color: var(--texto-secundario);
}
.paso-footer-info strong {
    font-weight: 600;
    color: var(--violeta-principal);
}










/* ============================================
   PASO 2 - PRODUCTOS
============================================ */

/* Filtros compactos */
.filtros-box {
    background: #FAFAFA;
    border: 1px solid var(--violeta-claro);
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 1rem;
}
.filtros-box label {
    font-size: 11px;
    color: var(--texto-secundario);
    margin: 0 0 2px;
    display: block;
    font-weight: 500;
}
.filtros-box .form-select,
.filtros-box .form-control {
    padding: 5px 8px !important;
    font-size: 13px !important;
    font-family: var(--fuente), system-ui, sans-serif !important;
    height: auto;
}

/* Encabezado de Marca */
.marca-header {
    background: linear-gradient(135deg, var(--violeta-medio), var(--violeta-principal));
    color: #fff;
    padding: 14px 14px;
    border-radius: 8px;
    margin: 14px 0 6px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-weight: 600;
    font-size: 14px;
}
.marca-header .marca-count {
    font-size: 11px;
    background: rgba(255,255,255,0.2);
    padding: 2px 10px;
    border-radius: 999px;
    font-weight: 500;
}

/* Encabezado de Categoría */
/* Encabezado de Categoría — fondo un poco más oscuro */
.categ-header {
    background: var(--violeta-principal);  /* antes era --violeta-claro */
    color: var(--violeta-claro);
    padding: 12px 14px;
    border-radius: 6px;
    margin: 8px 0 4px;
    font-weight: 500;
    font-size: 13px;
}

/* Header de columnas */
.prod-thead {
    display: grid;
    grid-template-columns: 110px 1fr 100px 90px 70px 90px;
    gap: 8px;
    padding: 6px 12px;
    font-size: 11px;
    color: var(--texto-secundario);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}
.prod-thead .col-center { text-align: center; }

/* Fila de producto */
.prod-row {
    display: grid;
    grid-template-columns: 110px 1fr 100px 90px 70px 90px;
    gap: 8px;
    padding: 8px 12px;
    background: #fff;
    XXXborder: 1px solid #F0F0F0;
    border-radius: 8px;
    XXXmargin-bottom: 0px;
    align-items: center;
    font-size: 13px;
    transition: all 0.15s ease;
}
.prod-row:hover { border-color: var(--violeta-claro-2); }

.prod-row.activa {
    background: var(--violeta-claro);
    border-color: var(--violeta-principal);
}
.prod-row .col-center { text-align: center; }

.prod-codigo {
    color: var(--violeta-oscuro);
    font-weight: 500;
    font-size: 12px;
}
.prod-nombre   { color: var(--texto-principal); }
.prod-lote     { color: var(--texto-secundario); font-size: 12px; }
.prod-stock    { font-weight: 600; }

/* Vencimiento — sin estilos especiales, igual para todos */
.prod-venc {
    color: var(--texto-secundario);
    font-size: 13px;
}

/* Select de cantidad estilizado */
.prod-row .form-select {
    padding: 4px 22px 4px 8px !important;
    font-size: 13px !important;
    text-align: center;
    font-family: var(--fuente), sans-serif !important;
    border-radius: 6px !important;
    height: auto;
}
.prod-row.activa .form-select {
    border-color: var(--violeta-principal) !important;
    color: var(--violeta-oscuro);
    font-weight: 600;
}

.prod-thead,
.prod-row {
    grid-template-columns: 110px 1fr 140px 100px 70px 90px;
}

/* Responsive del listado */
@media (max-width: 800px) {
    .prod-thead     { display: none; }
    .prod-row {
        grid-template-columns: 1fr 1fr;
        gap: 6px;
        padding: 10px;
    }
    .prod-row .prod-codigo  { grid-column: 1 / 3; font-size: 11px; }
    .prod-row .prod-nombre  { grid-column: 1 / 3; font-weight: 500; }
}


/* ============================================
   CARRITO FLOTANTE
============================================ */
.carrito-flota {
    position: fixed;
    top: 110px;
    right: 0;
    background: var(--violeta-principal);
    color: #fff;
    padding: 12px 16px;
    border-radius: 12px 0 0 12px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: -4px 4px 16px rgba(121, 75, 255, 0.3);
    cursor: pointer;
    z-index: 1000;
    transition: all 0.2s ease;
    min-width: 150px;
}
.carrito-flota:hover { transform: translateX(-4px); }
.carrito-flota .carrito-icon {
    font-size: 22px;
}
.carrito-flota .carrito-label {
    font-size: 11px;
    opacity: 0.85;
    line-height: 1.2;
}
.carrito-flota .carrito-total {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.1;
}

/* Carrito de abajo (resumen al final de la página) */
.carrito-resumen {
    background: #fff;
    border: 1px solid var(--violeta-claro);
    border-radius: 12px;
    padding: 16px;
    margin: 1.5rem 0;
}
.carrito-resumen-titulo {
    font-size: 15px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 0 0 12px;
}
.carrito-item {
    background: #FAFAFA;
    border: 1px solid var(--violeta-claro);
    border-radius: 8px;
    padding: 10px 12px;
    font-size: 12px;
}
.carrito-item .ci-codigo {
    font-family: 'Courier New', monospace;
    color: var(--violeta-principal);
    font-weight: 600;
    font-size: 11px;
}
.carrito-item .ci-nombre {
    color: var(--texto-principal);
    margin: 2px 0;
    font-weight: 500;
}
.carrito-item .ci-cantidad {
    color: var(--violeta-oscuro);
    font-weight: 600;
}






/* Botón Volver (secundario) */
.btn-volver {
    background: #fff;
    color: var(--violeta-principal);
    border: 1px solid var(--violeta-claro-2);
    font-family: var(--fuente), sans-serif;
    font-weight: 500;
    transition: all 0.2s ease;
}
.btn-volver:hover {
    background: var(--violeta-claro);
    color: var(--violeta-oscuro);
    border-color: var(--violeta-principal);
}








/* ============================================
   PASO 3 - DESTINATARIO / DIRECCIÓN / FECHA
============================================ */

/* Caja de cada sección (destinatario, dirección, fecha) */
.seccion-box {
    background: #fff;
    border: 2px solid #E5E5E5;
    border-radius: 12px;
    padding: 16px;
    height: 100%;
    transition: all 0.2s ease;
}
.seccion-box.activa {
    border-color: var(--violeta-principal);
    box-shadow: 0 4px 12px rgba(121, 75, 255, 0.08);
}
.seccion-box.deshabilitada {
    background: #FAFAFA;
    opacity: 0.55;
    pointer-events: none;
}

/* Header de cada caja: número + título */
.seccion-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.seccion-numero {
    width: 28px; height: 28px;
    border-radius: 50%;
    background: var(--violeta-claro);
    color: var(--violeta-principal);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 13px;
    flex-shrink: 0;
}
.seccion-box.activa .seccion-numero {
    background: var(--violeta-principal);
    color: #fff;
}
.seccion-titulo {
    font-size: 15px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 0;
}
.seccion-box.deshabilitada .seccion-titulo { color: var(--texto-secundario); }

/* Mini-tarjeta de resultado (datos del destinatario / dirección) */
.seccion-datos {
    background: #FAFAFA;
    border-radius: 8px;
    padding: 10px 12px;
    margin-top: 10px;
    font-size: 12px;
}
.seccion-datos .dato-label {
    color: var(--texto-secundario);
    font-size: 11px;
    margin-top: 4px;
}
.seccion-datos .dato-label:first-child { margin-top: 0; }
.seccion-datos .dato-valor {
    color: var(--violeta-oscuro);
    font-weight: 500;
    margin-bottom: 4px;
}

/* Info-box (mensajes de horario, anticipación, etc.) */
.info-box {
    background: #E6F1FB;
    border-left: 3px solid #185FA5;
    color: #0C447C;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 13px;
    margin: 1rem 0;
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.info-box i { margin-top: 2px; }


/* Resumen de productos (card al final del paso 3) */
.resumen-productos {
    background: #fff;
    border: 1px solid var(--violeta-claro);
    border-radius: 12px;
    padding: 16px;
    margin: 1.5rem 0;
}
.resumen-productos h4 {
    font-size: 15px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 0 0 12px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.resumen-productos h4 .badge-unidades {
    background: var(--violeta-claro);
    color: var(--violeta-principal);
    font-size: 11px;
    padding: 3px 10px;
    border-radius: 999px;
    font-weight: 500;
}
.resumen-prod-item {
    background: #FAFAFA;
    border: 1px solid var(--violeta-claro);
    border-radius: 8px;
    padding: 10px;
    height: 100%;
}
.resumen-prod-item .rp-codigo {
    font-family: 'Courier New', monospace;
    color: var(--violeta-principal);
    font-size: 11px;
    font-weight: 600;
}
.resumen-prod-item .rp-nombre {
    color: var(--texto-principal);
    margin: 4px 0;
    font-size: 13px;
    font-weight: 500;
}
.resumen-prod-item .rp-cantidad {
    color: var(--violeta-oscuro);
    font-weight: 600;
    font-size: 12px;
}


/* ============================================
   MODALES (nuevo destinatario / nueva dirección)
============================================ */
.modal-sarasqueta .modal-content {
    border: none;
    border-radius: 14px;
    overflow: hidden;
}
.modal-sarasqueta .modal-header {
    background: var(--violeta-principal) !important;
    color: #fff !important;
    border: none;
    padding: 14px 20px !important;
}
.modal-sarasqueta .modal-header .modal-title {
    font-family: var(--fuente), sans-serif;
    font-weight: 600;
    font-size: 16px;
    color: #fff;
}
.modal-sarasqueta .modal-body {
    padding: 20px;
    font-family: var(--fuente), sans-serif;
}
.modal-sarasqueta .modal-footer {
    border-top: 1px solid var(--violeta-claro);
    padding: 12px 20px;
    background: #FAFAFA;
}
.modal-sarasqueta label {
    font-size: 12px;
    color: var(--texto-secundario);
    margin-bottom: 4px;
    font-weight: 500;
}

/* Caja lateral de dirección dentro del modal */
.modal-dire-resultado {
    background: var(--violeta-claro);
    border-radius: 8px;
    padding: 12px;
}
.modal-dire-resultado small {
    color: var(--violeta-medio);
    font-weight: 500;
}

/* Mapa */
#map {
    width: 100% !important;
    height: 380px;
    border-radius: 8px;
    border: 1px solid var(--violeta-claro-2);
}
.pac-container { z-index: 2000 !important; }








/* ============================================
   PASO 4 - REVISIÓN Y CONFIRMACIÓN
============================================ */

/* Sección de revisión: encabezado con título + contador */
.revision-encabezado {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 0 12px;
    flex-wrap: wrap;
    gap: 8px;
}
.revision-encabezado h3 {
    font-size: 15px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 0;
}
.revision-encabezado .resumen-info {
    font-size: 13px;
    color: var(--texto-secundario);
}
.revision-encabezado .resumen-info strong {
    font-weight: 600;
    color: var(--violeta-principal);
}

/* Caja de datos (destinatario, dirección, entrega) */
.revision-box {
    background: #fff;
    border: 1px solid var(--violeta-claro);
    border-radius: 12px;
    padding: 14px;
    height: 100%;
}
.revision-box-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.revision-box-icon {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: var(--violeta-claro);
    color: var(--violeta-principal);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 14px;
}
.revision-box-titulo {
    font-size: 14px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 0;
    flex: 1;
}

/* Badge "Nueva" para destinatario/dirección nueva */
.badge-nuevo {
    background: #EAF3DE;
    color: #3B6D11;
    font-size: 10px;
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Pares label/valor dentro de las cajas */
.dato-label {
    font-size: 11px;
    color: var(--texto-secundario);
    margin: 0 0 2px;
}
.dato-valor {
    font-size: 13px;
    color: var(--violeta-oscuro);
    font-weight: 500;
    margin: 0 0 10px;
    word-break: break-word;
}
.dato-valor:last-child { margin-bottom: 0; }


/* Alerta sin stock (más amable que la actual) */
.sin-stock-box {
    background: #FCEBEB;
    border: 1px solid #F7C1C1;
    border-radius: 12px;
    padding: 24px;
    text-align: center;
    margin: 2rem auto;
    max-width: 600px;
}
.sin-stock-box .sin-stock-icon {
    font-size: 32px;
    color: #A32D2D;
    margin-bottom: 8px;
}
.sin-stock-box h6 {
    font-size: 16px;
    font-weight: 600;
    color: #501313;
    margin: 0 0 6px;
}
.sin-stock-box p {
    font-size: 13px;
    color: #791F1F;
    margin: 0 0 14px;
}


/* Botón verde de confirmación final */
.btn-confirmar {
    background: #639922;
    color: #fff;
    border: none;
    padding: 10px 28px;
    border-radius: 999px;
    font-family: var(--fuente), sans-serif;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(99, 153, 34, 0.25);
    transition: all 0.2s ease;
}
.btn-confirmar:hover {
    background: #3B6D11;
    box-shadow: 0 6px 16px rgba(99, 153, 34, 0.35);
    color: #fff;
}
.btn-confirmar:active { transform: scale(0.98); }










/* ============================================
   MODALES GLOBALES (compactos y consistentes)
============================================ */

/* Aplica a TODOS los modales del sistema */
.modal-content {
    border: 2px solid var(--violeta-claro-2) !important;
    border-radius: 14px !important;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(121, 75, 255, 0.15);
}

/* Header violeta institucional */
.modal-header {
    background: var(--violeta-principal) !important;
    color: #fff !important;
    border: none !important;
    padding: 12px 18px !important;
}
.modal-header .modal-title {
    font-family: var(--fuente), sans-serif !important;
    font-weight: 600 !important;
    font-size: 14px !important;
    color: #fff !important;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}
.modal-header .btn-close {
    filter: invert(1) brightness(2);
    opacity: 0.8;
    padding: 6px;
}
.modal-header .btn-close:hover { opacity: 1; }

/* Cuerpo */
.modal-body {
    padding: 18px !important;
    font-family: var(--fuente), sans-serif;
    font-size: 13px;
    color: var(--texto-principal);
}

/* Footer (gris claro) */
.modal-footer {
    background: #FAFAFA !important;
    border-top: 1px solid var(--violeta-claro) !important;
    padding: 10px 18px !important;
    gap: 8px;
}

/* Botón "Cerrar" del footer (reemplaza el link gris) */
.modal-footer .btn-cerrar-modal {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fff;
    color: var(--violeta-principal);
    border: 1px solid var(--violeta-claro-2);
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.2s ease;
    cursor: pointer;
}
.modal-footer .btn-cerrar-modal:hover {
    background: var(--violeta-claro);
    color: var(--violeta-oscuro);
    border-color: var(--violeta-principal);
}


/* ============================================
   WebMsgModal (alertas chicas: error/éxito/cargando)
============================================ */
#WebMsgModal .modal-body {
    padding: 28px 20px 20px !important;
    text-align: center;
    min-height: auto;
}
#WebMsgModal .modal-body .icono-alerta {
    font-size: 32px;
    display: block;
    margin-bottom: 12px;
}
#WebMsgModal .modal-body .mensaje-alerta {
    font-size: 14px;
    color: var(--texto-principal);
    line-height: 1.5;
}

/* Colores específicos según tipo */
#WebMsgModal .icono-alerta.tipo-alerta    { color: #E24B4A; }
#WebMsgModal .icono-alerta.tipo-exito     { color: #639922; }
#WebMsgModal .icono-alerta.tipo-cargando  { color: var(--violeta-principal); }
#WebMsgModal .icono-alerta.tipo-info      { color: var(--violeta-principal); }


/* ============================================
   Sobrescritura para SQPedidoModal (modal de detalle de pedidos)
============================================ */
#SQPedidoModal .modal-body {
    min-height: 110px;
}









/* Banda de impersonación (informativa, no error) */
.alert-impersonado {
    background: #E6F1FB;
    color: #0C447C;
    border: none;
    border-bottom: 1px solid #B5D4F4;
    padding: 10px 16px !important;
    text-align: center;
    font-size: 13px;
    margin: 0 !important;
}
.alert-impersonado i { opacity: 0.8; }
.alert-impersonado b { color: #042C53; }











/* ============================================
   MIS PEDIDOS — tarjetas resumen + tablas
============================================ */

/* Encabezado de sección con buscador opcional */
.mis-pedidos-titulo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 1.75rem 0 12px;
    gap: 12px;
    flex-wrap: wrap;
}
.mis-pedidos-titulo h4 {
    font-size: 16px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 0;
}
.mis-pedidos-titulo .nota {
    font-size: 11px;
    color: #888;
}

/* Buscador rápido */
.buscador-tabla {
    position: relative;
}
.buscador-tabla input {
    padding: 6px 12px 6px 32px;
    border: 1px solid #DDD;
    border-radius: 999px;
    font-size: 12px;
    width: 240px;
    font-family: var(--fuente), sans-serif;
}
.buscador-tabla input:focus {
    outline: none;
    border-color: var(--violeta-principal);
    box-shadow: 0 0 0 2px rgba(121, 75, 255, 0.15);
}
.buscador-tabla i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #888;
    font-size: 12px;
}


/* Nro de pedido estilizado */
.ped-nro {
    font-family: 'Courier New', monospace;
    color: var(--violeta-principal);
    font-weight: 600;
}

/* Botón de acción en tabla */
.btn-tabla {
    background: #fff;
    color: var(--violeta-principal);
    border: 1px solid var(--violeta-claro-2);
    padding: 4px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    font-family: var(--fuente), sans-serif;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: all 0.2s ease;
    margin-left: 4px;
}
.btn-tabla:hover {
    background: var(--violeta-claro);
    color: var(--violeta-oscuro);
    border-color: var(--violeta-principal);
}

/* Candado para no aprobados */
.icono-lock {
    color: #BA7517;
    font-size: 12px;
}










/* ============================================
   STOCK DE PRODUCTOS
============================================ */

/* Barra de filtros compacta */
.stock-filtros {
    background: #FAFAFA;
    border: 1px solid var(--violeta-claro);
    border-radius: 10px;
    padding: 10px 12px;
    margin-bottom: 1rem;
    display: grid;
    grid-template-columns: 220px 1fr auto;
    gap: 10px;
    align-items: end;
}
.stock-filtros label {
    font-size: 11px;
    color: var(--texto-secundario);
    margin-bottom: 2px;
    display: block;
    font-weight: 500;
}
.stock-filtros .form-select,
.stock-filtros .form-control {
    padding: 5px 8px !important;
    font-size: 12px !important;
    font-family: var(--fuente), sans-serif !important;
    height: auto;
}

@media (max-width: 800px) {
    .stock-filtros {
        grid-template-columns: 1fr;
    }
}


/* Mini-resumen arriba de la tabla */
.stock-resumen {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 13px;
    color: var(--texto-secundario);
    flex-wrap: wrap;
    gap: 8px;
}
.stock-resumen strong {
    color: var(--violeta-principal);
    font-weight: 600;
}


/* Botón Exportar Excel (verde) */
.btn-excel {
    background: #639922;
    color: #fff;
    border: none;
    padding: 6px 18px;
    border-radius: 999px;
    font-family: var(--fuente), sans-serif;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: background 0.2s ease;
}
.btn-excel:hover {
    background: #3B6D11;
    color: #fff;
}


/* Header de categoría dentro de la tabla */
/* Header de categoría dentro de la tabla — más sólido y sin zebra */
.stock-categ-row td {
    background: var(--violeta-claro) !important;
    color: var(--violeta-oscuro) !important;
    font-weight: 600;
    font-size: 13px;
    padding: 10px 12px !important;
    border-top: 2px solid var(--violeta-claro-2) !important;
    border-bottom: 2px solid var(--violeta-claro-2) !important;
}
.stock-categ-row .categ-count {
    background: rgba(255, 255, 255, 0.7);
    color: var(--violeta-principal);
    font-size: 11px;
    padding: 2px 10px;
    border-radius: 999px;
    margin-left: 8px;
    font-weight: 500;
}

/* Anular el striped en filas de categoría */
.table-striped > tbody > tr.stock-categ-row > td,
.table-striped > tbody > tr.stock-categ-row:nth-of-type(odd) > td {
    background: var(--violeta-claro) !important;
}







/* ============================================
   DESTINATARIOS
============================================ */

/* Badge "Inactivo" (solo se muestra cuando aplica) */
.badge-inactivo {
    background: var(--violeta-claro);
    color: var(--violeta-medio);
    padding: 3px 10px;
    border-radius: 999px;
    font-weight: 500;
    font-size: 11px;
    display: inline-block;
}

/* Texto "(sin nombre)" para destinatarios sin nombre */
.sin-nombre {
    color: #888;
    font-style: italic;
}


/* ============================================
   MODAL DETALLE DESTINATARIO
============================================ */

/* Grid de pares label/valor */
.detalle-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 16px;
}
.detalle-grid .dato-label {
    font-size: 11px;
    color: var(--texto-secundario);
    margin-bottom: 2px;
}
.detalle-grid .dato-valor {
    font-size: 13px;
    color: var(--violeta-oscuro);
    font-weight: 500;
}

/* Subtítulo dentro del modal */
.detalle-subtitulo {
    font-size: 12px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 16px 0 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.detalle-subtitulo .badge-cantidad {
    font-size: 10px;
    background: var(--violeta-claro);
    color: var(--violeta-principal);
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 500;
}

/* Marcas como pills */
.detalle-marcas {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 16px;
}
.detalle-marca-pill {
    background: var(--violeta-claro);
    color: var(--violeta-oscuro);
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 500;
}

/* Direcciones como cards */
.detalle-direccion {
    background: #FAFAFA;
    border: 1px solid var(--violeta-claro);
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 6px;
    font-size: 12px;
}
.detalle-direccion:last-child { margin-bottom: 0; }
.detalle-direccion .dire-principal {
    color: var(--violeta-oscuro);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
}
.detalle-direccion .dire-secundaria {
    color: var(--texto-secundario);
    font-size: 11px;
    margin-top: 2px;
    margin-left: 18px;
}









/* ============================================
   MIS DATOS
============================================ */

/* Card de sección (datos personales / marcas) */
.mis-datos-card {
    background: #fff;
    border: 1.5px solid var(--violeta-claro-2);
    border-radius: 12px;
    padding: 16px;
    height: 100%;
}
.mis-datos-card h4 {
    font-size: 17px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 0 0 14px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.mis-datos-card h4 i { color: var(--violeta-principal); }
.mis-datos-card h4 .badge-cant {
    font-size: 10px;
    background: var(--violeta-claro);
    color: var(--violeta-principal);
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 500;
    margin-left: auto;
}


/* Grilla de marcas dentro del perfil */
.marcas-grid-mini {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.marca-card-mini {
    background: #FAFAFA;
    border: 1px solid var(--violeta-claro);
    border-radius: 8px;
    padding: 8px;
    text-align: center;
}
.marca-card-mini img {
    max-height: 42px;
    width: auto;
    margin: 0 auto 4px;
    display: block;
}
.marca-card-mini .marca-nombre-mini {
    font-size: 11px;
    color: var(--violeta-oscuro);
    font-weight: 500;
}

@media (max-width: 500px) {
    .marcas-grid-mini { grid-template-columns: repeat(2, 1fr); }
}









/* ============================================
   CAMBIAR CONTRASEÑA
============================================ */

/* Contenedor centrado */
.cambiar-clave-wrap {
    max-width: 480px;
    margin: 0 auto;
}

/* Input con ícono de ojo a la derecha */
.input-clave {
    position: relative;
    margin-bottom: 16px;
}
.input-clave label {
    font-size: 12px;
    color: var(--texto-secundario);
    display: block;
    margin-bottom: 4px;
    font-weight: 500;
}
.input-clave input {
    width: 100%;
    padding: 8px 38px 8px 12px;
    border: 1px solid #DDD;
    border-radius: 8px;
    font-size: 13px;
    font-family: var(--fuente), sans-serif;
}
.input-clave input:focus {
    outline: none;
    border-color: var(--violeta-principal);
    box-shadow: 0 0 0 2px rgba(121, 75, 255, 0.15);
}
.input-clave .show-password {
    position: absolute;
    right: 12px;
    top: 30px;
    color: #888;
    cursor: pointer;
    font-size: 14px;
    user-select: none;
}
.input-clave .show-password:hover { color: var(--violeta-principal); }

/* Estados del campo repetir clave */
.input-clave.coincide input  { border-color: #639922; }
.input-clave.no-coincide input { border-color: #E24B4A; }
.input-clave .icono-match {
    position: absolute;
    right: 38px;
    top: 30px;
    font-size: 13px;
}
.input-clave.coincide .icono-match    { color: #639922; }
.input-clave.no-coincide .icono-match { color: #E24B4A; }

/* Mensaje de coincidencia debajo del input */
.match-msg {
    font-size: 11px;
    margin-top: 4px;
    display: none;
}
.match-msg.coincide    { color: #639922; display: block; }
.match-msg.no-coincide { color: #E24B4A; display: block; }


/* ============================================
   REQUISITOS DE CONTRASEÑA
============================================ */
.pswd-info {
    background: #FAFAFA;
    border: 1px solid var(--violeta-claro);
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 16px;
}
.pswd-info-titulo {
    font-size: 11px;
    color: var(--texto-secundario);
    margin-bottom: 8px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.pswd-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}
.pswd-info-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: #888;
    transition: color 0.2s ease;
}
.pswd-info-item .pswd-circle {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #DDD;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    flex-shrink: 0;
    transition: background 0.2s ease;
}
.pswd-info-item.valid {
    color: #3B6D11;
}
.pswd-info-item.valid .pswd-circle {
    background: #639922;
}

@media (max-width: 500px) {
    .pswd-info-grid { grid-template-columns: 1fr; }
}









/* ============================================
   DETALLE DE CAMPAÑA (modal)
============================================ */
.detalle-campana-header {
    background: var(--violeta-claro);
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 16px;
    display: grid;
    grid-template-columns: 2fr 1.5fr 1fr 1fr 1fr;
    gap: 16px;
}
.detalle-campana-header .dato-label {
    font-size: 10px;
    color: var(--violeta-medio);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin: 0 0 2px;
    font-weight: 500;
}
.detalle-campana-header .dato-valor {
    font-size: 13px;
    color: var(--violeta-oscuro);
    font-weight: 600;
    margin: 0;
}

.detalle-subtitulo-campana {
    font-size: 14px;
    font-weight: 600;
    color: var(--violeta-oscuro);
    margin: 20px 0 8px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.detalle-subtitulo-campana .badge-cantidad {
    font-size: 10px;
    background: var(--violeta-claro);
    color: var(--violeta-principal);
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 500;
}

@media (max-width: 700px) {
    .detalle-campana-header {
        grid-template-columns: 1fr 1fr;
    }
}





/* ============================================
   DETALLE DE PEDIDO (modal)
============================================ */

/* Encabezado con datos generales */
.pedido-header {
    background: var(--violeta-claro);
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 16px;
    display: grid;
    grid-template-columns: 1fr 1.5fr 1.5fr 1.5fr;
    gap: 16px;
}
.pedido-header .dato-label {
    font-size: 10px;
    color: var(--violeta-medio);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    margin: 0 0 2px;
    font-weight: 500;
}
.pedido-header .dato-valor {
    font-size: 13px;
    color: var(--violeta-oscuro);
    font-weight: 600;
    margin: 0;
}

/* Card de destinatario dentro del detalle */
.pedido-destinatario {
    background: #fff;
    border: 1px solid var(--violeta-claro);
    border-radius: 8px;
    padding: 12px 14px;
    margin-bottom: 20px;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.5fr 0.8fr;
    gap: 14px;
}
.pedido-destinatario .dato-label {
    font-size: 11px;
    color: var(--texto-secundario);
    margin-bottom: 2px;
}
.pedido-destinatario .dato-valor {
    font-size: 13px;
    color: var(--violeta-oscuro);
    font-weight: 500;
}


/* Mensaje del cliente como info-box */
.pedido-mensaje-cliente {
    background: #E6F1FB;
    border-left: 3px solid #185FA5;
    border-radius: 6px;
    padding: 10px 14px;
    margin-top: 16px;
}
.pedido-mensaje-cliente .msg-label {
    font-size: 11px;
    color: var(--texto-secundario);
    margin-bottom: 4px;
    font-weight: 500;
}
.pedido-mensaje-cliente .msg-texto {
    font-size: 13px;
    color: #0C447C;
}


/* Estado de aprobación (texto descriptivo) */
.estado-aprobado    { color: #639922; font-weight: 600; font-size: 12px; }
.estado-pendiente   { color: #BA7517; font-weight: 600; font-size: 12px; }


/* Botones del supervisor */
.btn-aprobar {
    background: #639922;
    color: #fff;
    border: none;
    padding: 7px 20px;
    border-radius: 999px;
    font-family: var(--fuente), sans-serif;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: background 0.2s ease;
    box-shadow: 0 2px 8px rgba(99, 153, 34, 0.2);
}
.btn-aprobar:hover {
    background: #3B6D11;
    color: #fff;
}

.btn-rechazar {
    background: #fff;
    color: #A32D2D;
    border: 1px solid #F7C1C1;
    padding: 6px 18px;
    border-radius: 999px;
    font-family: var(--fuente), sans-serif;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.2s ease;
}
.btn-rechazar:hover {
    background: #FCEBEB;
    color: #791F1F;
    border-color: #A32D2D;
}


@media (max-width: 700px) {
    .pedido-header,
    .pedido-destinatario {
        grid-template-columns: 1fr 1fr;
    }
}




/* ============================================
   BOTONES CHICOS "PÍLDORA" (modales, barras de filtros)
   Mismo tamaño que .btn-cerrar-modal: el sistema usa botones chicos en todos lados.
============================================ */
.btn-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #fff;
    color: var(--violeta-principal);
    border: 1px solid var(--violeta-claro-2);
    padding: 5px 14px;
    border-radius: 999px;
    font-family: var(--fuente), sans-serif;
    font-size: 12px;
    font-weight: 500;
    line-height: 18px;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.2s ease;
    white-space: nowrap;
}
.btn-pill:hover {
    background: var(--violeta-claro);
    color: var(--violeta-oscuro);
    border-color: var(--violeta-principal);
}
.btn-pill:disabled { opacity: 0.6; cursor: default; }
.btn-pill.btn-pill-primario {
    background: var(--violeta-principal);
    color: var(--canal-texto);
    border-color: var(--violeta-principal);
    font-weight: 600;
}
.btn-pill.btn-pill-primario:hover {
    background: var(--violeta-oscuro);
    color: #fff;
}

/* Barra de filtros de 4 columnas iguales (la última puede llevar un botón alineado a la derecha) */
.stock-filtros-4 { grid-template-columns: repeat(4, 1fr); }
.stock-filtros-4 > .text-end { align-self: end; }
@media (max-width: 800px) {
    .stock-filtros-4 { grid-template-columns: 1fr; }
    .stock-filtros-4 > .text-end { text-align: left !important; }
}


/* ============================================
   LISTADO DE CAMPAÑAS
============================================ */
.cam-tipo {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 500;
    background: #EEEEEE;
    color: #333333;
    white-space: nowrap;
}
.cam-tipo-10 { background: #DDEEFF; color: #1F4E79; }   /* Influencers */
.cam-tipo-20 { background: #FFF2B3; color: #6B5300; }   /* PDV */
.cam-tipo-40 { background: #E9DDFF; color: #4B2A85; }   /* Lorealistar */

table.dataTable tr.fila-cerrada td { color: #999999; }
table.dataTable tr.fila-cerrada td .cam-tipo { opacity: 0.6; }
.alert-impersonado a { color: #042C53; font-weight: 600; text-decoration: underline; }
