@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap');

:root {
  --font-family-base: 'Poppins', sans-serif;
}

body, html {
  font-family: var(--font-family-base);
}

.calendar-portlet .portlet {
  margin-bottom: 0px;
}

.text-xs {
  font-size: 0.75rem; /* 12px */
}

.text-sm {
  font-size: 0.875rem; /* 14px */
}

.text-md {
  font-size: 1rem; /* 16px */
}

.text-lg {
  font-size: 1.25rem; /* 20px */
}

.text-xl {
  font-size: 1.5rem; /* 24px */
}

.text-2xl {
  font-size: 2rem; /* 32px */
}

.text-3xl {
  font-size: 2.5rem; /* 40px */
}

.text-4xl {
  font-size: 3rem; /* 48px */
}

.text-bold {
  font-weight: 700;
}

.text-semibold {
  font-weight: 600;
}

.text-normal {
  font-weight: 400;
}

.text-light {
  font-weight: 300;
}

.rounded-0 { border-radius: 0 !important; }
.rounded-1 { border-radius: 0.2rem !important; }
.rounded-2 { border-radius: 0.25rem !important; }
.rounded-3 { border-radius: 0.3rem !important; }
.rounded-4 { border-radius: 0.5rem !important; }
.rounded-5 { border-radius: 1rem !important; }

/* TOP: solo bordes superiores redondeados */
.rounded-top-0 {
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

.rounded-top-1 {
  border-top-left-radius: 0.2rem !important;
  border-top-right-radius: 0.2rem !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.rounded-top-2 {
  border-top-left-radius: 0.25rem !important;
  border-top-right-radius: 0.25rem !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.rounded-top-3 {
  border-top-left-radius: 0.3rem !important;
  border-top-right-radius: 0.3rem !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.rounded-top-4 {
  border-top-left-radius: 0.5rem !important;
  border-top-right-radius: 0.5rem !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.rounded-top-5 {
  border-top-left-radius: 1rem !important;
  border-top-right-radius: 1rem !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

/* BOTTOM: solo bordes inferiores redondeados */
.rounded-bottom-0 {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.rounded-bottom-1 {
  border-bottom-left-radius: 0.2rem !important;
  border-bottom-right-radius: 0.2rem !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

.rounded-bottom-2 {
  border-bottom-left-radius: 0.25rem !important;
  border-bottom-right-radius: 0.25rem !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

.rounded-bottom-3 {
  border-bottom-left-radius: 0.3rem !important;
  border-bottom-right-radius: 0.3rem !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

.rounded-bottom-4 {
  border-bottom-left-radius: 0.5rem !important;
  border-bottom-right-radius: 0.5rem !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}

.rounded-bottom-5 {
  border-bottom-left-radius: 1rem !important;
  border-bottom-right-radius: 1rem !important;
  border-top-left-radius: 0 !important;
  border-top-right-radius: 0 !important;
}


.border{
   border: 1px solid #dee2e6 !important;
}

.border-0 {
  border-width: 0 !important;
}
.border-1 {
  border-width: 1px !important;
}
.border-2 {
  border-width: 2px !important;
}
.border-3 {
  border-width: 3px !important;
}
.border-4 {
  border-width: 4px !important;
}
.border-5 {
  border-width: 5px !important;
}

.bg-lightblue{
 background-color:#DDECF6;
}



/* Tabla simple sin wrapper */
table.tabla-simple {
  /* Colores configurables */
  --tabla-bg: #F3F4F5;   /* fondo más claro */
  --tabla-grid: #DFE0E1; /* color de rejilla interna (antes era el fondo) */
  --tabla-borde: #B9BCC1;/* borde exterior gris */
  --radius: 10px;

  width: 100%;
  border-collapse: separate; /* necesario para border-radius */
  border-spacing: 0;
  background-color: var(--tabla-bg);
  border: 1px solid var(--tabla-borde);
  border-radius: var(--radius);
  overflow: hidden; /* recorte esquinas en navegadores modernos */
}

/* Celdas centradas y rejilla interna del color pedido */
table.tabla-simple th,
table.tabla-simple td {
  text-align: center;
  vertical-align: middle;
  padding: 0.5rem 0.75rem;
  background: transparent;
  border-right: 1px solid var(--tabla-grid);  /* bordes internos */
  border-bottom: 1px solid var(--tabla-grid); /* bordes internos */
}

/* Colores de texto */
table.tabla-simple thead th { color: #003287; }  /* encabezado */
table.tabla-simple tbody td { color: #5F6268; }  /* cuerpo */

/* Evitar doble borde en perímetro derecho e inferior */
table.tabla-simple tr > *:last-child { border-right: none; }
table.tabla-simple tbody tr:last-child > * { border-bottom: none; }


/* Tabla ligera, sin bordes externos, con separadores sutiles entre filas */
table.tabla-light {
  width: 100%;
  border-collapse: collapse;  /* para que los separadores queden limpios */
  border: 0;                  /* sin borde exterior */
  background: transparent;
}

/* Encabezados */
table.tabla-light  th {
  color: #042234;             /* color de encabezado */
  font-weight: 600;
}

/* Celdas (sin bordes por defecto) */
table.tabla-light th,
table.tabla-light td {
  border: 0;
  padding: 0.5rem 0.75rem;
}

/* Separador inferior por fila (color #f1f2f5) */
table.tabla-light tbody tr td {
  border-bottom: 1px solid #f1f2f5;  /* “borde inferior” de cada fila */
}

/* Opcional: separador bajo el thead para distinguirlo del cuerpo */
table.tabla-light  th {
  border-bottom: 1px solid #f1f2f5;
}

/* Quita el separador en la última fila si no lo quieres visible */
table.tabla-light tbody tr:last-child td {
  border-bottom: 0;
}


/* Tabla de datos: fondo blanco, encabezado gris claro y bordes del mismo gris */
table.tabla-datos {
  --td-head-bg: #f1f2f5;      /* gris claro del encabezado */
  --td-border: var(--td-head-bg);

  width: 100%;
  background: #ffffff;        /* fondo general blanco */
  border-collapse: collapse;  /* rejilla limpia */
  border: 1px solid var(--td-border); /* borde exterior igual al encabezado */
}

table.tabla-datos th,
table.tabla-datos td {
  padding: 0.5rem 0.75rem;
  border: 1px solid var(--td-border); /* bordes internos gris claro */
}

table.tabla-datos  th {
  background: var(--td-head-bg);      /* fondo encabezado gris claro */
  font-weight: 600;
}


.img-cover-h-200 { height: 200px;}
.img-cover-h-240 { height: 240px; }
.img-cover-h-300 { height: 300px; }

@media (min-width: 768px) {
  .img-cover-h-md-240 { height: 240px;}
}

.img-fit-contain{
 object-fit: contain; object-position: center; 
}
.img-fit-cover{
 object-fit: cover; object-position: center; 
}


/* Foto con alto fijo, sin deformación y con relleno blanco */
.person-photo {
  display: block;
  width: 100%;
  height: 220px;            /* alto fijo */
  object-fit: contain;      /* NO recorta, mantiene proporción */
  object-position: center;  /* centrada */
  background: #fff;         /* “bandas” blancas cuando sobra espacio */
  border-radius: 0.75rem;   /* opcional */
}

/* Alturas alternativas */
.person-photo.h-180 { height: 180px; }
.person-photo.h-200 { height: 200px; }
.person-photo.h-240 { height: 240px; }

/* (Opcional) variable para cambiar el color de relleno si alguna tarjeta usa otro fondo */
.person-photo.fill-muted { background: #f5f6f7; }

.w-0{
max-width:100%;
}