:root {
  color-scheme: light;
  --azul-950: #0b2639;
  --azul-900: #12344d;
  --azul-800: #174762;
  --azul-600: #1d6d8c;
  --azul-100: #dbeef4;
  --azul-50: #eff8fa;
  --tinta: #17252f;
  --gris: #657681;
  --borde: #dce4e8;
  --fondo: #f3f6f7;
  --blanco: #fff;
  --error: #9b2929;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body { background: var(--fondo); color: var(--tinta); }
button, input { font: inherit; }
button { cursor: pointer; }
.oculto { display: none !important; }

.marca { display: inline-flex; align-items: center; gap: .8rem; color: var(--azul-900); }
.marca--clara { color: var(--blanco); }
.marca__simbolo { display: block; width: 2.8rem; height: 2.8rem; object-fit: contain; }
.marca strong { font-size: 1.08rem; letter-spacing: -.02em; }
.marca--movil { display: none; margin-bottom: 3rem; }

.pantalla-cargando { display: grid; min-height: 100vh; place-content: center; justify-items: center; gap: 1.1rem; color: var(--gris); }
.pantalla-cargando p { margin: 0; }
.carga { width: 1.2rem; height: 1.2rem; border: 2px solid rgba(29,109,140,.2); border-top-color: var(--azul-600); border-radius: 50%; animation: girar .75s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }

.login { display: grid; min-height: 100vh; grid-template-columns: minmax(320px,1.05fr) minmax(420px,.95fr); }
.login__presentacion { position: relative; display: flex; overflow: hidden; padding: clamp(2rem,5vw,5.5rem); flex-direction: column; justify-content: space-between; color: var(--blanco); background: radial-gradient(circle at 80% 20%,rgba(93,190,204,.2),transparent 32%), linear-gradient(145deg,var(--azul-950),var(--azul-800)); }
.login__presentacion::after { position: absolute; right: -12rem; bottom: -15rem; width: 31rem; height: 31rem; border: 1px solid rgba(255,255,255,.12); border-radius: 50%; box-shadow: 0 0 0 4rem rgba(255,255,255,.025),0 0 0 8rem rgba(255,255,255,.018); content: ""; }
.login__presentacion > * { position: relative; z-index: 1; }
.login__mensaje { max-width: 38rem; }
.login__mensaje h1 { margin: .8rem 0 1.4rem; font-size: clamp(2.5rem,5vw,4.8rem); line-height: 1.02; letter-spacing: -.055em; }
.login__mensaje > p:last-child { max-width: 34rem; color: rgba(255,255,255,.72); font-size: 1.1rem; line-height: 1.7; }
.login__presentacion > small { color: rgba(255,255,255,.5); letter-spacing: .14em; }
.login__acceso { display: grid; padding: 2rem; place-items: center; background: var(--blanco); }
.tarjeta-login { width: min(100%,27rem); }
.etiqueta { margin: 0; font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.etiqueta--azul { color: var(--azul-600); }
.tarjeta-login h2 { margin: .6rem 0; font-size: clamp(2rem,4vw,2.7rem); letter-spacing: -.045em; }
.secundario { margin: 0 0 2.3rem; color: var(--gris); }
.campo { display: grid; gap: .55rem; margin-bottom: 1.2rem; font-size: .88rem; font-weight: 700; }
.campo input { width: 100%; height: 3.25rem; padding: 0 1rem; border: 1px solid var(--borde); border-radius: .7rem; background: var(--blanco); color: var(--tinta); outline: none; transition: .2s; }
.campo input:focus { border-color: var(--azul-600); box-shadow: 0 0 0 4px rgba(29,109,140,.12); }
.mensaje-error { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid #f2caca; border-radius: .65rem; background: #fff0f0; color: var(--error); font-size: .88rem; }
.mensaje-error--exito { border-color: #bfe7d1; background: #effaf4; color: #16733f; }
.boton { display: inline-flex; min-height: 2.85rem; align-items: center; justify-content: center; gap: .65rem; border-radius: .7rem; font-weight: 750; transition: .2s; }
.boton:disabled { cursor: wait; opacity: .7; }
.boton--principal { width: 100%; border: 1px solid var(--azul-900); background: var(--azul-900); color: var(--blanco); }
.boton--principal:hover:not(:disabled) { background: var(--azul-800); }
.boton--secundario { padding: 0 1rem; border: 1px solid var(--borde); background: var(--blanco); color: var(--tinta); }
.boton--accion { padding: 0 1.1rem; border: 1px solid var(--azul-900); background: var(--azul-900); color: var(--blanco); }
.boton--accion:hover:not(:disabled) { background: var(--azul-800); }
.carga--boton { width: 1rem; height: 1rem; border-color: rgba(255,255,255,.3); border-top-color: var(--blanco); }

.app { display: grid; min-height: 100vh; grid-template-columns: 16.5rem minmax(0,1fr); }
.lateral { position: sticky; top: 0; display: flex; height: 100vh; padding: 1.8rem 1.35rem; flex-direction: column; background: var(--azul-950); }
.lateral .marca { padding: 0 .65rem; }
.lateral nav { display: grid; gap: .4rem; margin-top: 3rem; }
.nav-item { display: grid; min-height: 3rem; padding: 0 .85rem; grid-template-columns: 1.3rem 1fr auto; align-items: center; gap: .65rem; border: 0; border-radius: .65rem; background: transparent; color: rgba(255,255,255,.68); text-align: left; }
.nav-item--activo { background: rgba(255,255,255,.1); color: var(--blanco); }
.nav-item:disabled { cursor: default; }
.nav-item small { font-size: .62rem; }
.ambiente { margin: auto .65rem 0; color: rgba(255,255,255,.35); letter-spacing: .15em; }
.contenido { min-width: 0; }
.cabecera { display: flex; min-height: 7.4rem; padding: 1.5rem clamp(1.5rem,4vw,3.5rem); align-items: center; justify-content: space-between; gap: 2rem; border-bottom: 1px solid var(--borde); background: var(--blanco); }
.cabecera p { margin: 0 0 .4rem; color: var(--gris); font-size: .74rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.cabecera h1 { margin: 0; font-size: clamp(1.5rem,3vw,2rem); letter-spacing: -.035em; }
.cabecera__acciones, .identidad { display: flex; align-items: center; }
.cabecera__acciones { gap: 1.3rem; }
.identidad { gap: .75rem; }
.avatar { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border-radius: 50%; background: var(--azul-100); color: var(--azul-900); font-size: .76rem; font-weight: 800; }
.identidad div { display: grid; gap: .15rem; }
.identidad strong { font-size: .85rem; }
.identidad small { color: var(--gris); font-size: .7rem; }
.panel { padding: clamp(1.5rem,4vw,3.5rem); }
.bienvenida { padding: clamp(2rem,5vw,4rem); border-radius: 1.25rem; background: radial-gradient(circle at 90% 10%,rgba(115,207,218,.23),transparent 28%),var(--blanco); box-shadow: 0 20px 50px rgba(13,43,61,.1); }
.bienvenida h2 { margin: .65rem 0; font-size: clamp(2rem,4vw,3.1rem); letter-spacing: -.05em; }
.bienvenida > p:last-child { max-width: 38rem; margin: 0; color: var(--gris); line-height: 1.7; }
.modulos { display: grid; margin-top: 1.5rem; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.modulos article { min-height: 13.5rem; padding: 1.4rem; border: 1px solid var(--borde); border-radius: 1rem; background: var(--blanco); }
.modulos article > span { color: var(--azul-600); font-size: .72rem; font-weight: 800; }
.modulos h3 { margin: 1.35rem 0 .55rem; }
.modulos p { min-height: 3.2rem; margin: 0; color: var(--gris); font-size: .86rem; line-height: 1.5; }
.pendiente { opacity: .62; }
.estado { display: inline-flex; margin-top: 1rem; padding: .35rem .55rem; border-radius: 999px; background: var(--fondo); color: var(--gris); }
.estado--actual { background: var(--azul-50); color: var(--azul-600); }

.usuarios-vista { display: grid; gap: 1.4rem; }
.mi-cuenta-vista { display: grid; max-width: 58rem; gap: 1.4rem; }
.pagina-titulo { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.pagina-titulo h2 { margin: .5rem 0 .35rem; font-size: clamp(2rem,4vw,3rem); letter-spacing: -.05em; }
.pagina-titulo > div > p:last-child { margin: 0; color: var(--gris); }
.pagina-acciones { display: flex; gap: .7rem; }
.resumen-usuarios { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.resumen-usuarios article { display: flex; min-height: 6.4rem; padding: 1.25rem 1.4rem; align-items: center; justify-content: space-between; border: 1px solid var(--borde); border-radius: 1rem; background: var(--blanco); }
.resumen-usuarios span { color: var(--gris); font-size: .82rem; font-weight: 700; }
.resumen-usuarios strong { color: var(--azul-900); font-size: 2rem; }
.mensaje-listado { padding: .9rem 1rem; border: 1px solid var(--borde); border-radius: .75rem; background: var(--blanco); color: var(--gris); font-size: .86rem; }
.mensaje-listado--error { border-color: #f2caca; background: #fff0f0; color: var(--error); }
.mensaje-listado--exito { border-color: #cbe9d8; background: #edf9f2; color: #237347; }
.tabla-contenedor { overflow-x: auto; border: 1px solid var(--borde); border-radius: 1rem; background: var(--blanco); }
.tabla-usuarios { width: 100%; min-width: 780px; border-collapse: collapse; }
.tabla-usuarios th { padding: 1rem 1.2rem; border-bottom: 1px solid var(--borde); background: #f8fafb; color: var(--gris); font-size: .7rem; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.tabla-usuarios td { padding: 1rem 1.2rem; border-bottom: 1px solid #edf1f3; font-size: .86rem; vertical-align: middle; }
.tabla-usuarios tr:last-child td { border-bottom: 0; }
.tabla-usuarios tbody tr:hover { background: #fbfcfc; }
.tabla-usuarios__usuario { font-weight: 750; }
.tabla-usuarios__usuario small { display: block; margin-top: .25rem; color: var(--gris); font-size: .68rem; font-weight: 500; }
.tabla-usuarios__fecha { color: var(--gris); white-space: nowrap; }
.tabla-usuarios__acciones { text-align: right; white-space: nowrap; }
.acciones-fila { display: inline-flex; justify-content: flex-end; gap: .45rem; }
.tabla-usuarios__vacio { padding: 3rem !important; color: var(--gris); text-align: center; }
.insignia-rol, .insignia-estado { display: inline-flex; padding: .38rem .58rem; border-radius: 999px; font-size: .7rem; font-weight: 750; white-space: nowrap; }
.insignia-rol { background: var(--azul-50); color: var(--azul-600); }
.insignia-estado--activo { background: #e9f7ef; color: #237347; }
.insignia-estado--inactivo { background: #f2f3f4; color: #68737b; }
.boton-tabla { min-height: 2.15rem; padding: 0 .75rem; border: 1px solid var(--borde); border-radius: .55rem; background: var(--blanco); color: var(--azul-900); font-size: .72rem; font-weight: 750; }
.boton-tabla:hover { border-color: var(--azul-600); background: var(--azul-50); }
.boton-tabla--deshabilitar { border-color: #efcccc; color: #9b2929; }
.boton-tabla--deshabilitar:hover { border-color: #d88f8f; background: #fff0f0; }
.boton-tabla--activar { border-color: #c8e6d4; color: #237347; }
.boton-tabla--activar:hover { border-color: #85c7a1; background: #edf9f2; }
.tarjeta-cuenta { display: grid; overflow: hidden; border: 1px solid var(--borde); border-radius: 1rem; background: var(--blanco); }
.tarjeta-cuenta__identidad { display: flex; padding: 1.6rem; align-items: center; gap: 1rem; }
.avatar--grande { width: 3.5rem; height: 3.5rem; font-size: 1rem; }
.tarjeta-cuenta h3 { margin: 0 0 .25rem; font-size: 1.25rem; }
.tarjeta-cuenta p { margin: 0; color: var(--gris); font-size: .86rem; }
.tarjeta-cuenta__accion { display: flex; padding: 1.4rem 1.6rem; align-items: center; justify-content: space-between; gap: 1.5rem; border-top: 1px solid var(--borde); background: #fbfcfc; }
.tarjeta-cuenta__accion strong { display: block; margin-bottom: .35rem; }

.modal { width: min(44rem,calc(100vw - 2rem)); max-height: calc(100vh - 2rem); padding: 0; overflow: auto; border: 0; border-radius: 1.1rem; background: var(--blanco); box-shadow: 0 30px 80px rgba(6,30,44,.28); }
.modal--compacto { width: min(36rem,calc(100vw - 2rem)); }
.modal--amplio { width: min(64rem,calc(100vw - 2rem)); }
.modal::backdrop { background: rgba(6,30,44,.62); backdrop-filter: blur(3px); }
.modal__contenido { padding: 1.7rem; }
.modal__cabecera { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.modal__cabecera h2 { margin: .45rem 0 0; font-size: 2rem; letter-spacing: -.04em; }
.modal__cerrar { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; border: 1px solid var(--borde); border-radius: .65rem; background: var(--blanco); color: var(--gris); font-size: 1.4rem; }
.modal__descripcion { margin: .8rem 0 1.6rem; color: var(--gris); }
.formulario-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 0 1rem; }
.campo--completo { grid-column: 1 / -1; }
.campo small { color: var(--gris); font-size: .68rem; font-weight: 500; line-height: 1.4; }
.campo select { width: 100%; height: 3.25rem; padding: 0 1rem; border: 1px solid var(--borde); border-radius: .7rem; background: var(--blanco); color: var(--tinta); outline: none; }
.campo select:focus { border-color: var(--azul-600); box-shadow: 0 0 0 4px rgba(29,109,140,.12); }
.campo textarea { width:100%; min-height:7rem; padding:.85rem 1rem; resize:vertical; border:1px solid var(--borde); border-radius:.7rem; background:var(--blanco); color:var(--tinta); font:inherit; line-height:1.5; outline:none; transition:.2s; }
.campo textarea:focus { border-color:var(--azul-600); box-shadow:0 0 0 4px rgba(29,109,140,.12); }
.modal__acciones { display: flex; margin-top: .5rem; justify-content: flex-end; gap: .7rem; }
.aviso-rol { margin: 0 0 1rem; padding: .85rem 1rem; border: 1px solid #ecd9ad; border-radius: .65rem; background: #fff8e8; color: #765718; font-size: .82rem; line-height: 1.45; }

@media (max-width: 1100px) { .modulos { grid-template-columns: repeat(2,minmax(0,1fr)); } .identidad { display: none; } }
@media (max-width: 800px) {
  .login { display: block; background: var(--blanco); }
  .login__presentacion { display: none; }
  .login__acceso { min-height: 100vh; padding: 1.5rem; }
  .marca--movil { display: inline-flex; }
  .app { display: block; }
  .lateral { position: static; height: auto; padding: 1rem 1.2rem; }
  .lateral nav, .ambiente { display: none; }
  .cabecera { min-height: auto; padding: 1.2rem; }
  .cabecera { flex-wrap: wrap; }
  .cabecera__acciones { gap: .5rem; }
  .cabecera p { display: none; }
  .cabecera h1 { font-size: 1.2rem; }
  .panel { padding: 1.2rem; }
  .modulos { grid-template-columns: 1fr; }
  .pagina-titulo { align-items: stretch; flex-direction: column; }
  .pagina-acciones { width: 100%; flex-direction: column; }
  .pagina-titulo .boton { width: 100%; }
  .tarjeta-cuenta__accion { align-items: stretch; flex-direction: column; }
  .resumen-usuarios { grid-template-columns: 1fr; }
  .formulario-grid { grid-template-columns: 1fr; }
  .campo--completo { grid-column: auto; }
  .modal__acciones { flex-direction: column-reverse; }
  .modal__acciones .boton { width: 100%; }
}


/* Filtros operacionales de Recepciones y Despachos. */
.filtros-operacionales {
  display:flex;
  align-items:flex-end;
  gap:1rem;
  flex-wrap:wrap;
}
.filtro-operacional {
  display:grid;
  min-width:min(100%,17rem);
  gap:.45rem;
  color:var(--gris);
  font-size:.78rem;
  font-weight:750;
}
.filtro-operacional select {
  width:100%;
  height:2.85rem;
  padding:0 .9rem;
  border:1px solid var(--borde);
  border-radius:.7rem;
  background:var(--blanco);
  color:var(--tinta);
  font:inherit;
  font-size:.86rem;
  font-weight:650;
  outline:none;
}
.filtro-operacional select:focus {
  border-color:var(--azul-600);
  box-shadow:0 0 0 4px rgba(29,109,140,.12);
}
@media (max-width:620px) {
  .filtros-operacionales {
    display:grid;
    grid-template-columns:1fr;
  }
  .filtro-operacional {
    min-width:0;
    width:100%;
  }
}

/* Recepciones: primera unidad visual (navegación y listado resumido). */
.recepciones-vista { display:grid; gap:1.4rem; }
.listado-recepciones { display:grid; gap:1rem; }
.recepcion-tarjeta { background:#fff; border:1px solid var(--borde); border-radius:18px; padding:1.35rem 1.45rem; box-shadow:0 8px 26px rgba(8,44,64,.04); }
.recepcion-tarjeta--inactiva { background:#f8fafb; opacity:.82; }
.recepcion-tarjeta__cabecera { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.15rem; }
.recepcion-tarjeta__cabecera h3 { margin:.15rem 0 0; color:var(--azul-950); font-size:1.55rem; line-height:1.1; }
.recepcion-tarjeta__etiqueta { margin:0; color:var(--gris); font-size:.75rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.recepcion-tarjeta__acciones { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; flex-wrap:wrap; }
.boton--pequeno { min-height:2rem; padding:.4rem .75rem; font-size:.78rem; }
.boton--gestion { appearance:none; border:1px solid var(--azul-600); background:var(--azul-600); box-shadow:none; color:#fff; }
.boton--gestion:hover { border-color:var(--azul-900); background:var(--azul-900); box-shadow:none; }
.boton--devolver { appearance:none; border:1px solid #a93636; background:#a93636; box-shadow:none; color:#fff; }
.boton--devolver:hover:not(:disabled) { border-color:#812828; background:#812828; box-shadow:none; }
.recepcion-tarjeta__datos { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.8rem 1.2rem; margin:0; }
.recepcion-tarjeta__datos div { min-width:0; }
.recepcion-tarjeta__datos dt { margin:0 0 .3rem; color:var(--gris); font-size:.74rem; font-weight:700; }
.recepcion-tarjeta__datos dd { margin:0; color:var(--azul-950); font-weight:700; overflow-wrap:anywhere; }
.insignia-reporte { display:inline-flex; align-items:center; min-height:1.8rem; padding:.25rem .7rem; border-radius:999px; background:#eef4f7; color:#47606e; font-size:.75rem; font-weight:800; white-space:nowrap; }
.insignia-reporte--en-captura { background:#e8f6fb; color:#00678e; }
.insignia-reporte--cerrado { background:#e8f7ef; color:#08743e; }
.insignia-reporte--anulado { background:#f3f4f5; color:#6d7780; }

.recepcion-detalle-vista { display:grid; gap:1.25rem; }
.recepcion-detalle { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.detalle-resumen, .detalle-bloque { border:1px solid var(--borde); border-radius:16px; background:#fff; box-shadow:0 8px 26px rgba(8,44,64,.035); }
.detalle-resumen { grid-column:1/-1; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.3rem 1.4rem; }
.detalle-resumen h3 { margin:.2rem 0 .25rem; color:var(--azul-950); font-size:1.8rem; }
.detalle-resumen p:last-child { margin:0; color:var(--gris); }
.detalle-bloque { padding:1.25rem 1.35rem; }
.detalle-bloque:first-of-type { grid-column:1/-1; }
.detalle-bloque h3 { margin:0 0 1rem; color:var(--azul-950); font-size:1.05rem; }
.detalle-bloque__acciones { display:flex; justify-content:flex-end; gap:.5rem; flex-wrap:wrap; margin:-2.85rem 0 1rem; }
.detalle-bloque__acciones--documentos { gap:.5rem; flex-wrap:wrap; }
.detalle-bloque--ancho-completo { grid-column:1/-1; }
.productos-resumen { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin:0 0 1rem; }
.productos-resumen div { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem .85rem; border:1px solid #cfe3eb; border-radius:10px; background:#eef7fa; }
.productos-resumen span { color:var(--gris); font-size:.75rem; font-weight:700; }
.productos-resumen strong { color:var(--azul-900); font-size:1rem; }
.detalle-datos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem 1.25rem; margin:0; }
.detalle-datos div { min-width:0; }
.detalle-datos dt { margin:0 0 .3rem; color:var(--gris); font-size:.74rem; font-weight:700; }
.detalle-datos dd { margin:0; color:var(--azul-950); font-weight:700; overflow-wrap:anywhere; }
.detalle-observaciones { margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--borde); }
.detalle-observaciones strong { color:var(--gris); font-size:.78rem; }
.detalle-observaciones p { margin:.35rem 0 0; line-height:1.55; }
.detalle-lista { display:grid; gap:.6rem; color:var(--gris); }
.detalle-lista__fila { display:grid; align-items:center; gap:.65rem; padding:.7rem .8rem; border-radius:10px; background:#f7fafb; color:var(--tinta); }
.detalle-lista__fila--producto { grid-template-columns:1.1fr 1.5fr .7fr .7fr; }
.detalle-lista__fila--responsable { grid-template-columns:1.3fr 1fr .7fr; }
.detalle-lista__fila span:last-child { text-align:right; }
.detalle-etiquetas { display:flex; gap:.55rem; flex-wrap:wrap; color:var(--gris); }
.detalle-etiquetas span { padding:.45rem .7rem; border-radius:999px; background:#eef6f8; color:var(--azul-700); font-weight:700; }
.detalle-datos--reporte { grid-template-columns:repeat(2,minmax(0,1fr)); }
.documentos-historial { margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--borde); }
.documentos-historial h4 { margin:0 0 .8rem; color:var(--azul-950); font-size:.95rem; }
.documentos-historial__contenedor { overflow-x:auto; }
.documentos-historial table { width:100%; min-width:920px; border-collapse:collapse; }
.documentos-historial th { padding:.65rem .7rem; background:#f1f6f8; color:var(--gris); font-size:.72rem; text-align:left; }
.documentos-historial td { padding:.7rem; border-top:1px solid var(--borde); color:var(--tinta); vertical-align:middle; }
.documentos-historial__acciones { display:flex; gap:.4rem; justify-content:flex-end; }
.insignia-documento { display:inline-flex; padding:.3rem .5rem; border-radius:999px; font-size:.68rem; font-weight:750; white-space:nowrap; }
.insignia-documento--actual { background:#e8f7ef; color:#08743e; }
.insignia-documento--historica { background:#f2f3f4; color:#68737b; }
.detalle-bloque--galeria { grid-column:1/-1; }
.galeria-recepcion { display:grid; gap:1rem; color:var(--gris); }
.galeria-recepcion--error { padding:.9rem 1rem; border:1px solid #f1c4c4; border-radius:10px; background:#fff1f1; color:#ad2626; }
.galeria-recepcion__resumen { margin:0; color:var(--gris); }
.galeria-apartado { overflow:hidden; border:1px solid var(--borde); border-radius:13px; background:#fbfcfd; }
.galeria-apartado__encabezado { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border-bottom:1px solid var(--borde); background:#f1f6f8; }
.galeria-apartado__encabezado h4 { margin:0; color:var(--azul-950); font-size:1rem; }
.galeria-apartado__encabezado span { color:var(--gris); font-size:.78rem; font-weight:700; }
.galeria-item { padding:1rem; }
.galeria-item + .galeria-item { border-top:1px solid var(--borde); }
.galeria-item__titulo { display:grid; gap:.2rem; margin-bottom:.75rem; }
.galeria-item__titulo strong { color:var(--tinta); }
.galeria-item__titulo span { font-size:.8rem; }
.galeria-cuadricula { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,680px),820px)); gap:1.25rem; justify-content:start; }
.foto-tarjeta { display:grid; grid-template-columns:minmax(190px,240px) minmax(420px,520px); justify-content:start; overflow:hidden; margin:0; border:1px solid var(--borde); border-radius:12px; background:#fff; }
.foto-tarjeta__enlace { grid-column:2; grid-row:1; display:block; aspect-ratio:3/4; overflow:hidden; background:#172630; }
.foto-tarjeta__enlace img { width:100%; height:100%; display:block; object-fit:contain; transition:transform .18s ease; }
.foto-tarjeta__enlace:hover img { transform:scale(1.025); }
.foto-tarjeta figcaption { grid-column:1; grid-row:1; display:grid; align-content:start; gap:.42rem; padding:1rem; border-right:1px solid var(--borde); color:var(--gris); font-size:.78rem; }
.foto-tarjeta figcaption strong { color:var(--tinta); font-size:.84rem; }
.foto-tarjeta__observacion { margin-top:.25rem; padding-top:.45rem; border-top:1px solid var(--borde); color:var(--tinta); }
.galeria-par { padding:1rem; }
.galeria-par + .galeria-par, .galeria-par + .galeria-item, .galeria-item + .galeria-par { border-top:1px solid var(--borde); }
.galeria-par__titulo { display:block; margin-bottom:.75rem; color:var(--azul-700); font-size:.86rem; text-transform:uppercase; letter-spacing:.04em; }
.galeria-par__columnas { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; align-items:start; }
.galeria-par__item { min-width:0; }
.galeria-par__item .foto-tarjeta { grid-template-columns:minmax(145px,185px) minmax(0,1fr); width:100%; }
.galeria-par__item .foto-tarjeta__enlace { width:100%; max-width:390px; }
.galeria-par__faltante { min-height:12rem; display:grid; place-items:center; padding:1rem; border:1px dashed var(--borde); border-radius:12px; color:var(--gris); text-align:center; }
.galeria-vacia { padding:1rem; border-radius:10px; background:#f7fafb; }

.productos-editor__cabecera { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.productos-editor__cabecera p { margin:0; color:var(--gris); font-size:.84rem; }
.productos-editor { display:grid; gap:.85rem; }
.producto-editor__fila { padding:1rem; border:1px solid var(--borde); border-radius:12px; background:#f9fbfc; }
.producto-editor__fila-cabecera { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.producto-editor__numero { color:var(--azul-950); }
.producto-editor__campos { display:grid; grid-template-columns:1.1fr 1.5fr .55fr .65fr; gap:.8rem; align-items:start; }
.producto-editor__campo { margin:0; }
.producto-editor__vacio { margin:0; padding:1.2rem; border:1px dashed var(--borde); border-radius:12px; color:var(--gris); text-align:center; }
.sellos-editor__cabecera { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.sellos-editor__cabecera p { margin:0; color:var(--gris); font-size:.84rem; }
.sellos-editor { display:grid; gap:.7rem; }
.sello-editor__fila { display:grid; grid-template-columns:6rem minmax(0,1fr) auto; align-items:end; gap:.85rem; padding:.85rem 1rem; border:1px solid var(--borde); border-radius:12px; background:#f9fbfc; }
.sello-editor__numero { align-self:center; color:var(--azul-950); }
.sello-editor__campo { margin:0; }
.sello-editor__vacio { margin:0; padding:1.2rem; border:1px dashed var(--borde); border-radius:12px; color:var(--gris); text-align:center; }

@media (max-width: 1100px) {
  .recepcion-tarjeta__datos { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .detalle-datos { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .galeria-par__columnas { grid-template-columns:1fr; }
  .producto-editor__campos { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .recepcion-tarjeta__cabecera { align-items:flex-start; flex-direction:column; }
  .recepcion-tarjeta__datos { grid-template-columns:1fr; }
  .recepcion-detalle { grid-template-columns:1fr; }
  .detalle-resumen { align-items:flex-start; flex-direction:column; }
  .detalle-datos, .detalle-datos--reporte { grid-template-columns:1fr; }
  .detalle-lista__fila--producto, .detalle-lista__fila--responsable { grid-template-columns:1fr; }
  .detalle-lista__fila span:last-child { text-align:left; }
  .galeria-cuadricula { grid-template-columns:1fr; }
  .foto-tarjeta { display:block; }
  .foto-tarjeta figcaption { border-top:1px solid var(--borde); border-right:0; }
  .detalle-bloque__acciones { justify-content:flex-start; margin:-.25rem 0 1rem; }
  .productos-resumen { grid-template-columns:1fr; }
  .productos-editor__cabecera { align-items:stretch; flex-direction:column; }
  .producto-editor__campos { grid-template-columns:1fr; }
  .sellos-editor__cabecera { align-items:stretch; flex-direction:column; }
  .sello-editor__fila { grid-template-columns:1fr auto; align-items:center; }
  .sello-editor__campo { grid-column:1/-1; grid-row:2; }
}
/* Despachos: reutilización visual del patrón operacional validado de Recepciones. */
.despachos-vista { display:grid; gap:1.4rem; }
.listado-despachos { display:grid; gap:1rem; }
.despacho-tarjeta { background:#fff; border:1px solid var(--borde); border-radius:18px; padding:1.35rem 1.45rem; box-shadow:0 8px 26px rgba(8,44,64,.04); }
.despacho-tarjeta--inactiva { background:#f8fafb; opacity:.82; }
.despacho-tarjeta__cabecera { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.15rem; }
.despacho-tarjeta__cabecera h3 { margin:.15rem 0 0; color:var(--azul-950); font-size:1.55rem; line-height:1.1; }
.despacho-tarjeta__etiqueta { margin:0; color:var(--gris); font-size:.75rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.despacho-tarjeta__acciones { display:flex; align-items:center; justify-content:flex-end; gap:.65rem; flex-wrap:wrap; }
.boton--pequeno { min-height:2rem; padding:.4rem .75rem; font-size:.78rem; }
.boton--gestion { appearance:none; border:1px solid var(--azul-600); background:var(--azul-600); box-shadow:none; color:#fff; }
.boton--gestion:hover { border-color:var(--azul-900); background:var(--azul-900); box-shadow:none; }
.boton--devolver { appearance:none; border:1px solid #a93636; background:#a93636; box-shadow:none; color:#fff; }
.boton--devolver:hover:not(:disabled) { border-color:#812828; background:#812828; box-shadow:none; }
.despacho-tarjeta__datos { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.8rem 1.2rem; margin:0; }
.despacho-tarjeta__datos div { min-width:0; }
.despacho-tarjeta__datos dt { margin:0 0 .3rem; color:var(--gris); font-size:.74rem; font-weight:700; }
.despacho-tarjeta__datos dd { margin:0; color:var(--azul-950); font-weight:700; overflow-wrap:anywhere; }
.insignia-reporte { display:inline-flex; align-items:center; min-height:1.8rem; padding:.25rem .7rem; border-radius:999px; background:#eef4f7; color:#47606e; font-size:.75rem; font-weight:800; white-space:nowrap; }
.insignia-reporte--en-captura { background:#e8f6fb; color:#00678e; }
.insignia-reporte--cerrado { background:#e8f7ef; color:#08743e; }
.insignia-reporte--anulado { background:#f3f4f5; color:#6d7780; }

.despacho-detalle-vista { display:grid; gap:1.25rem; }
.despacho-detalle { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; }
.detalle-resumen, .detalle-bloque { border:1px solid var(--borde); border-radius:16px; background:#fff; box-shadow:0 8px 26px rgba(8,44,64,.035); }
.detalle-resumen { grid-column:1/-1; display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.3rem 1.4rem; }
.detalle-resumen h3 { margin:.2rem 0 .25rem; color:var(--azul-950); font-size:1.8rem; }
.detalle-resumen p:last-child { margin:0; color:var(--gris); }
.detalle-bloque { padding:1.25rem 1.35rem; }
.detalle-bloque:first-of-type { grid-column:1/-1; }
.detalle-bloque h3 { margin:0 0 1rem; color:var(--azul-950); font-size:1.05rem; }
.detalle-bloque__acciones { display:flex; justify-content:flex-end; gap:.5rem; flex-wrap:wrap; margin:-2.85rem 0 1rem; }
.detalle-bloque__acciones--documentos { gap:.5rem; flex-wrap:wrap; }
.detalle-bloque--ancho-completo { grid-column:1/-1; }
.productos-resumen { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; margin:0 0 1rem; }
.productos-resumen div { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.75rem .85rem; border:1px solid #cfe3eb; border-radius:10px; background:#eef7fa; }
.productos-resumen span { color:var(--gris); font-size:.75rem; font-weight:700; }
.productos-resumen strong { color:var(--azul-900); font-size:1rem; }
.detalle-datos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem 1.25rem; margin:0; }
.detalle-datos div { min-width:0; }
.detalle-datos dt { margin:0 0 .3rem; color:var(--gris); font-size:.74rem; font-weight:700; }
.detalle-datos dd { margin:0; color:var(--azul-950); font-weight:700; overflow-wrap:anywhere; }
.detalle-observaciones { margin-top:1.2rem; padding-top:1rem; border-top:1px solid var(--borde); }
.detalle-observaciones strong { color:var(--gris); font-size:.78rem; }
.detalle-observaciones p { margin:.35rem 0 0; line-height:1.55; }
.detalle-lista { display:grid; gap:.6rem; color:var(--gris); }
.detalle-lista__fila { display:grid; align-items:center; gap:.65rem; padding:.7rem .8rem; border-radius:10px; background:#f7fafb; color:var(--tinta); }
.detalle-lista__fila--producto { grid-template-columns:1.1fr 1.5fr .7fr .7fr; }
.detalle-lista__fila--responsable { grid-template-columns:1.3fr 1fr .7fr; }
.detalle-lista__fila span:last-child { text-align:right; }
.detalle-etiquetas { display:flex; gap:.55rem; flex-wrap:wrap; color:var(--gris); }
.detalle-etiquetas span { padding:.45rem .7rem; border-radius:999px; background:#eef6f8; color:var(--azul-700); font-weight:700; }
.detalle-datos--reporte { grid-template-columns:repeat(2,minmax(0,1fr)); }
.documentos-historial { margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--borde); }
.documentos-historial h4 { margin:0 0 .8rem; color:var(--azul-950); font-size:.95rem; }
.documentos-historial__contenedor { overflow-x:auto; }
.documentos-historial table { width:100%; min-width:920px; border-collapse:collapse; }
.documentos-historial th { padding:.65rem .7rem; background:#f1f6f8; color:var(--gris); font-size:.72rem; text-align:left; }
.documentos-historial td { padding:.7rem; border-top:1px solid var(--borde); color:var(--tinta); vertical-align:middle; }
.documentos-historial__acciones { display:flex; gap:.4rem; justify-content:flex-end; }
.insignia-documento { display:inline-flex; padding:.3rem .5rem; border-radius:999px; font-size:.68rem; font-weight:750; white-space:nowrap; }
.insignia-documento--actual { background:#e8f7ef; color:#08743e; }
.insignia-documento--historica { background:#f2f3f4; color:#68737b; }
.detalle-bloque--galeria { grid-column:1/-1; }
.galeria-despacho { display:grid; gap:1rem; color:var(--gris); }
.galeria-despacho--error { padding:.9rem 1rem; border:1px solid #f1c4c4; border-radius:10px; background:#fff1f1; color:#ad2626; }
.galeria-despacho__resumen { margin:0; color:var(--gris); }
.galeria-apartado { overflow:hidden; border:1px solid var(--borde); border-radius:13px; background:#fbfcfd; }
.galeria-apartado__encabezado { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border-bottom:1px solid var(--borde); background:#f1f6f8; }
.galeria-apartado__encabezado h4 { margin:0; color:var(--azul-950); font-size:1rem; }
.galeria-apartado__encabezado span { color:var(--gris); font-size:.78rem; font-weight:700; }
.galeria-item { padding:1rem; }
.galeria-item + .galeria-item { border-top:1px solid var(--borde); }
.galeria-item__titulo { display:grid; gap:.2rem; margin-bottom:.75rem; }
.galeria-item__titulo strong { color:var(--tinta); }
.galeria-item__titulo span { font-size:.8rem; }
.galeria-cuadricula { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,680px),820px)); gap:1.25rem; justify-content:start; }
.foto-tarjeta { display:grid; grid-template-columns:minmax(190px,240px) minmax(420px,520px); justify-content:start; overflow:hidden; margin:0; border:1px solid var(--borde); border-radius:12px; background:#fff; }
.foto-tarjeta__enlace { grid-column:2; grid-row:1; display:block; aspect-ratio:3/4; overflow:hidden; background:#172630; }
.foto-tarjeta__enlace img { width:100%; height:100%; display:block; object-fit:contain; transition:transform .18s ease; }
.foto-tarjeta__enlace:hover img { transform:scale(1.025); }
.foto-tarjeta figcaption { grid-column:1; grid-row:1; display:grid; align-content:start; gap:.42rem; padding:1rem; border-right:1px solid var(--borde); color:var(--gris); font-size:.78rem; }
.foto-tarjeta figcaption strong { color:var(--tinta); font-size:.84rem; }
.foto-tarjeta__observacion { margin-top:.25rem; padding-top:.45rem; border-top:1px solid var(--borde); color:var(--tinta); }
.galeria-par { padding:1rem; }
.galeria-par + .galeria-par, .galeria-par + .galeria-item, .galeria-item + .galeria-par { border-top:1px solid var(--borde); }
.galeria-par__titulo { display:block; margin-bottom:.75rem; color:var(--azul-700); font-size:.86rem; text-transform:uppercase; letter-spacing:.04em; }
.galeria-par__columnas { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; align-items:start; }
.galeria-par__item { min-width:0; }
.galeria-par__item .foto-tarjeta { grid-template-columns:minmax(145px,185px) minmax(0,1fr); width:100%; }
.galeria-par__item .foto-tarjeta__enlace { width:100%; max-width:390px; }
.galeria-par__faltante { min-height:12rem; display:grid; place-items:center; padding:1rem; border:1px dashed var(--borde); border-radius:12px; color:var(--gris); text-align:center; }
.galeria-vacia { padding:1rem; border-radius:10px; background:#f7fafb; }

.productos-editor__cabecera { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.productos-editor__cabecera p { margin:0; color:var(--gris); font-size:.84rem; }
.productos-editor { display:grid; gap:.85rem; }
.producto-editor__fila { padding:1rem; border:1px solid var(--borde); border-radius:12px; background:#f9fbfc; }
.producto-editor__fila-cabecera { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.producto-editor__numero { color:var(--azul-950); }
.producto-editor__campos { display:grid; grid-template-columns:1.1fr 1.5fr .55fr .65fr; gap:.8rem; align-items:start; }
.producto-editor__campo { margin:0; }
.producto-editor__vacio { margin:0; padding:1.2rem; border:1px dashed var(--borde); border-radius:12px; color:var(--gris); text-align:center; }
.sellos-editor__cabecera { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
.sellos-editor__cabecera p { margin:0; color:var(--gris); font-size:.84rem; }
.sellos-editor { display:grid; gap:.7rem; }
.sello-editor__fila { display:grid; grid-template-columns:6rem minmax(0,1fr) auto; align-items:end; gap:.85rem; padding:.85rem 1rem; border:1px solid var(--borde); border-radius:12px; background:#f9fbfc; }
.sello-editor__numero { align-self:center; color:var(--azul-950); }
.sello-editor__campo { margin:0; }
.sello-editor__vacio { margin:0; padding:1.2rem; border:1px dashed var(--borde); border-radius:12px; color:var(--gris); text-align:center; }

@media (max-width: 1100px) {
  .despacho-tarjeta__datos { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .detalle-datos { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .galeria-par__columnas { grid-template-columns:1fr; }
  .producto-editor__campos { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
  .despacho-tarjeta__cabecera { align-items:flex-start; flex-direction:column; }
  .despacho-tarjeta__datos { grid-template-columns:1fr; }
  .despacho-detalle { grid-template-columns:1fr; }
  .detalle-resumen { align-items:flex-start; flex-direction:column; }
  .detalle-datos, .detalle-datos--reporte { grid-template-columns:1fr; }
  .detalle-lista__fila--producto, .detalle-lista__fila--responsable { grid-template-columns:1fr; }
  .detalle-lista__fila span:last-child { text-align:left; }
  .galeria-cuadricula { grid-template-columns:1fr; }
  .foto-tarjeta { display:block; }
  .foto-tarjeta figcaption { border-top:1px solid var(--borde); border-right:0; }
  .detalle-bloque__acciones { justify-content:flex-start; margin:-.25rem 0 1rem; }
  .productos-resumen { grid-template-columns:1fr; }
  .productos-editor__cabecera { align-items:stretch; flex-direction:column; }
  .producto-editor__campos { grid-template-columns:1fr; }
  .sellos-editor__cabecera { align-items:stretch; flex-direction:column; }
  .sello-editor__fila { grid-template-columns:1fr auto; align-items:center; }
  .sello-editor__campo { grid-column:1/-1; grid-row:2; }
}

/* Clientes */
.clientes-vista .pagina-titulo { margin-bottom: 1rem; }
.listado-clientes { display: grid; gap: 1rem; margin-top: 1rem; }
.filtros-clientes { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; margin-top: 1rem; }
.filtros-clientes > span { margin-right: .2rem; color: var(--gris); font-size: .85rem; font-weight: 700; }
.boton-filtro { min-height: 34px; padding: .4rem .8rem; border: 1px solid var(--borde); border-radius: 999px; background: #fff; color: var(--tinta); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.boton-filtro:hover { border-color: #9fc4d6; }
.boton-filtro--activo { border-color: #8bc6df; background: #eaf7fb; color: var(--azul-600); }
.cliente-tarjeta { overflow: hidden; border: 1px solid var(--borde); border-radius: 16px; background: #fff; }
.cliente-tarjeta--inactivo { background: #fbfcfd; }
.cliente-tarjeta__cabecera { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem; padding: 1.25rem 1.4rem; }
.cliente-tarjeta__identidad { min-width: 0; }
.cliente-tarjeta__identidad h3 { margin: 0 0 .25rem; font-size: 1.1rem; }
.cliente-tarjeta__identidad p { margin: .15rem 0; color: var(--gris); font-size: .9rem; }
.cliente-tarjeta__meta { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; margin-top: .65rem; }
.cliente-tarjeta__acciones { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }
.establecimientos { border-top: 1px solid var(--borde); background: #f8fafb; }
.establecimientos__titulo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem 1.4rem; color: var(--gris); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.establecimientos__alternar { display: inline-flex; align-items: center; gap: .45rem; padding: .35rem .65rem; border: 0; border-radius: 8px; background: transparent; color: var(--azul-600); font: inherit; font-size: .78rem; font-weight: 800; text-transform: none; letter-spacing: 0; cursor: pointer; }
.establecimientos__alternar:hover { background: #eaf5f9; }
.establecimientos__alternar::after { content: "⌄"; font-size: 1rem; line-height: 1; transition: transform .15s ease; }
.establecimientos__alternar[aria-expanded="true"]::after { transform: rotate(180deg); }
.establecimientos__contenido[hidden] { display: none; }
.establecimiento { display: grid; grid-template-columns: minmax(220px,1fr) auto auto; align-items: center; gap: 1rem; padding: .8rem 1.4rem; border-top: 1px solid #e8eef1; }
.establecimiento:first-of-type { border-top: 0; }
.establecimiento__nombre { font-weight: 700; }
.establecimiento__acciones { display: flex; gap: .45rem; flex-wrap: wrap; justify-content: flex-end; }
.establecimientos__vacio { margin: 0; padding: 1rem 1.4rem; color: var(--gris); font-size: .9rem; }
.campo em { font-style: normal; font-weight: 400; color: var(--gris); }
@media (max-width: 820px) { .cliente-tarjeta__cabecera { flex-direction: column; } .cliente-tarjeta__acciones { justify-content: flex-start; } .establecimiento { grid-template-columns: 1fr auto; } .establecimiento__acciones { grid-column: 1/-1; justify-content: flex-start; } }
@media (max-width: 520px) { .cliente-tarjeta__cabecera,.establecimientos__titulo,.establecimiento,.establecimientos__vacio { padding-left: 1rem; padding-right: 1rem; } .establecimiento { grid-template-columns: 1fr; } .establecimiento__acciones { grid-column: auto; } }

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

/* Dashboard: resumen operacional del Inicio. */
.dashboard-vista { display:grid; gap:1.4rem; }
.dashboard-titulo { align-items:center; }
.dashboard-actualizado { margin:-.8rem 0 0; color:var(--gris); font-size:.75rem; text-align:right; }
.dashboard-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.dashboard-kpi { overflow:hidden; border:1px solid var(--borde); border-radius:16px; background:var(--blanco); box-shadow:0 8px 26px rgba(8,44,64,.04); }
.dashboard-kpi header { display:grid; gap:.18rem; padding:1.1rem 1.2rem .95rem; border-bottom:1px solid var(--borde); background:#f8fafb; }
.dashboard-kpi header span { color:var(--azul-950); font-size:1rem; font-weight:800; }
.dashboard-kpi header small { color:var(--gris); font-size:.72rem; }
.dashboard-kpi dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }
.dashboard-kpi dl > div { min-width:0; padding:1.05rem 1rem; border-left:1px solid var(--borde); text-align:center; }
.dashboard-kpi dl > div:first-child { border-left:0; }
.dashboard-kpi dt { margin:0 0 .4rem; color:var(--gris); font-size:.7rem; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.dashboard-kpi dd { margin:0; color:var(--azul-900); font-size:1.85rem; font-weight:850; letter-spacing:-.04em; }
.dashboard-kpi__total { background:var(--azul-50); }
.dashboard-kpi__total dt, .dashboard-kpi__total dd { color:var(--azul-900); }
.dashboard-kpi--total { border-color:#bed8e2; }
.dashboard-kpi--total header { background:var(--azul-950); }
.dashboard-kpi--total header span { color:var(--blanco); }
.dashboard-kpi--total header small { color:rgba(255,255,255,.62); }
.dashboard-graficos { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:1rem; align-items:stretch; }
.dashboard-grafico { min-width:0; padding:1.25rem 1.35rem; border:1px solid var(--borde); border-radius:16px; background:var(--blanco); box-shadow:0 8px 26px rgba(8,44,64,.035); }
.dashboard-grafico__cabecera { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; margin-bottom:1.3rem; }
.dashboard-grafico__cabecera h3 { margin:.35rem 0 0; color:var(--azul-950); font-size:1.08rem; }
.dashboard-grafico__cabecera > small { padding-top:.15rem; color:var(--gris); font-size:.72rem; white-space:nowrap; }
.dashboard-clientes { display:grid; grid-template-columns:minmax(170px,220px) minmax(0,1fr); align-items:center; gap:1.5rem; min-height:250px; }
.dashboard-donut { position:relative; width:min(100%,210px); aspect-ratio:1; justify-self:center; border-radius:50%; background:#e9eef0; box-shadow:inset 0 0 0 1px rgba(11,38,57,.06); }
.dashboard-donut__centro { position:absolute; inset:21%; display:grid; place-content:center; justify-items:center; border-radius:50%; background:var(--blanco); box-shadow:0 0 0 1px rgba(11,38,57,.06); }
.dashboard-donut__centro strong { color:var(--azul-950); font-size:2rem; line-height:1; letter-spacing:-.05em; }
.dashboard-donut__centro span { margin-top:.25rem; color:var(--gris); font-size:.7rem; font-weight:750; text-transform:uppercase; }
.dashboard-leyenda { display:grid; align-content:center; gap:.65rem; min-width:0; }
.dashboard-leyenda__fila { display:grid; grid-template-columns:.72rem minmax(0,1fr) auto; align-items:center; gap:.55rem; min-width:0; padding:.25rem 0; }
.dashboard-leyenda__punto { width:.72rem; height:.72rem; border-radius:50%; }
.dashboard-leyenda__nombre { overflow:hidden; color:var(--tinta); font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.dashboard-leyenda__fila strong { color:var(--azul-900); font-size:.75rem; white-space:nowrap; }
.dashboard-grafico__vacio { margin:0; padding:1rem; border:1px dashed var(--borde); border-radius:10px; color:var(--gris); font-size:.82rem; text-align:center; }
.dashboard-historico { min-height:250px; overflow-x:auto; padding:.15rem .1rem .2rem; }
.dashboard-historico__columnas { display:flex; min-width:max-content; height:245px; align-items:flex-end; gap:.8rem; padding:0 .5rem; border-bottom:1px solid var(--borde); }
.dashboard-mes { display:grid; width:4.2rem; height:100%; grid-template-rows:auto minmax(0,1fr) auto; justify-items:center; gap:.4rem; }
.dashboard-mes__valor { color:var(--azul-900); font-size:.78rem; }
.dashboard-mes__escala { display:flex; width:2rem; height:100%; align-items:flex-end; justify-content:center; }
.dashboard-mes__barra { width:100%; min-height:0; border-radius:.45rem .45rem .15rem .15rem; background:linear-gradient(180deg,var(--azul-600),var(--azul-900)); box-shadow:0 5px 12px rgba(18,52,77,.12); }
.dashboard-mes__etiqueta { min-height:2.2rem; color:var(--gris); font-size:.67rem; line-height:1.15; text-align:center; }

@media (max-width: 1180px) {
  .dashboard-kpis { grid-template-columns:1fr; }
  .dashboard-graficos { grid-template-columns:1fr; }
}

@media (max-width: 720px) {
  .dashboard-actualizado { text-align:left; }
  .dashboard-kpi dl { grid-template-columns:1fr; }
  .dashboard-kpi dl > div { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.8rem 1rem; border-top:1px solid var(--borde); border-left:0; text-align:left; }
  .dashboard-kpi dl > div:first-child { border-top:0; }
  .dashboard-kpi dt { margin:0; }
  .dashboard-kpi dd { font-size:1.4rem; }
  .dashboard-clientes { grid-template-columns:1fr; }
  .dashboard-grafico__cabecera { flex-direction:column; }
  .dashboard-grafico__cabecera > small { white-space:normal; }
}
