/* ==========================================================================
   ISW RRHH · hoja de estilos del modulo
   Convencion ISW: prefijo isw-, sin border-radius, paginacion en vez de scroll.
   ========================================================================== */

:root {
	--isw-azul:       #1E3A5F;
	--isw-azul-claro: #3498DB;
	--isw-rojo:       #E74C3C;
	--isw-naranja:    #E67E22;
	--isw-verde:      #27AE60;
	--isw-morado:     #8E44AD;
	--isw-gris:       #D0D0D0;
	--isw-gris-texto: #555;
	--isw-borde:      #DDD;
}

/* ------------------------------------------------------------------ avisos */
.isw-aviso {
	padding: 12px 14px;
	margin: 10px 0;
	font-size: 14px;
	line-height: 1.5;
	border-left: 4px solid var(--isw-gris);
	background: #F7F8FA;
	border-radius: 0;
}
.isw-aviso-info   { background: #EAF4FB; border-left-color: var(--isw-azul-claro); }
.isw-aviso-ok     { background: #EAF7EE; border-left-color: var(--isw-verde); }
.isw-aviso-alerta { background: #FFF8E1; border-left-color: var(--isw-naranja); }
.isw-aviso ul     { margin: 6px 0 0 18px; padding: 0; }
.isw-aviso li     { margin: 2px 0; }

/* ------------------------------------------------------------------ filtros */
.isw-filtros {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
	padding: 10px 0;
	margin-bottom: 8px;
}
.isw-filtros label { font-size: 13px; color: var(--isw-gris-texto); }

.isw-resumen {
	font-size: 13px;
	color: var(--isw-gris-texto);
	margin: 6px 0 10px;
}

/* ------------------------------------------------------------------ etiquetas */
.isw-badge {
	display: inline-block;
	padding: 2px 9px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.5px;
	color: #fff;
	background: var(--isw-gris);
	border-radius: 0;
	white-space: nowrap;
}
.isw-badge-alta        { background: var(--isw-verde); }
.isw-badge-baja        { background: var(--isw-gris); color: #444; }
.isw-badge-excedencia  { background: var(--isw-naranja); }
.isw-badge-vigente     { background: var(--isw-verde); }
.isw-badge-prorrogado  { background: var(--isw-azul-claro); }
.isw-badge-finalizado  { background: var(--isw-gris); color: #444; }
.isw-badge-anulado     { background: var(--isw-rojo); }
.isw-badge-solicitada  { background: var(--isw-naranja); }
.isw-badge-aprobada    { background: var(--isw-verde); }
.isw-badge-denegada    { background: var(--isw-rojo); }
.isw-badge-anulada     { background: var(--isw-gris); color: #444; }
.isw-badge-disfrutada  { background: var(--isw-azul-claro); }
.isw-badge-generado    { background: var(--isw-azul-claro); }
.isw-badge-enviado     { background: var(--isw-verde); }

.isw-alerta      { color: var(--isw-rojo); font-weight: 700; }
.isw-ok          { color: var(--isw-verde); font-weight: 700; }
.isw-recuperable { color: var(--isw-morado); font-weight: 700; }
.isw-mono        { font-family: Menlo, Consolas, monospace; font-size: 12px; }

.isw-punto {
	display: inline-block;
	width: 11px;
	height: 11px;
	vertical-align: middle;
	border: 1px solid rgba(0,0,0,.18);
}
.isw-punto-rayado {
	background: repeating-linear-gradient(45deg, #888, #888 3px, #fff 3px, #fff 6px);
}

/* ------------------------------------------------------------------ tarjetas */
.isw-tarjetas {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 10px;
	margin: 12px 0;
}
.isw-tarjeta {
	background: #fff;
	border: 1px solid var(--isw-borde);
	border-top: 4px solid var(--isw-gris);
	padding: 12px 14px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.isw-tarjeta-total  { border-top-color: var(--isw-azul); }
.isw-tarjeta-aviso  { border-top-color: var(--isw-morado); }
.isw-num { font-size: 28px; font-weight: 700; line-height: 1.1; color: var(--isw-azul); }
.isw-lbl { font-size: 11px; text-transform: uppercase; letter-spacing: 0.6px; color: var(--isw-gris-texto); }
.isw-sub { font-size: 11px; color: #999; }

/* ------------------------------------------------------------------ paginador */
.isw-pager {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
	padding: 12px;
	background: #fff;
	border: 1px solid var(--isw-borde);
	margin-top: 8px;
}
.isw-pg {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 8px 14px;
	background: var(--isw-azul-claro);
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	font-size: 13px;
	border-radius: 0;
}
.isw-pg:hover  { filter: brightness(0.92); color: #fff; }
.isw-pg-off    { background: var(--isw-gris); color: #888; cursor: default; }
.isw-pg-act    { background: var(--isw-azul); }
.isw-pg-info   { font-size: 13px; font-weight: 700; color: var(--isw-gris-texto); padding: 0 8px; }

/* ------------------------------------------------------------------ calendario */
.isw-calendario-caja { overflow-x: auto; border: 1px solid var(--isw-borde); background: #fff; }
.isw-calendario { border-collapse: collapse; width: 100%; font-size: 12px; }
.isw-calendario th, .isw-calendario td { border: 1px solid #EEE; }

.isw-cal-nombre {
	text-align: left;
	padding: 4px 8px;
	white-space: nowrap;
	position: sticky;
	left: 0;
	background: #fff;
	z-index: 2;
	min-width: 180px;
	border-right: 2px solid var(--isw-gris) !important;
}
.isw-cal-dia {
	width: 22px;
	min-width: 22px;
	text-align: center;
	font-size: 10px;
	padding: 3px 0;
	color: var(--isw-gris-texto);
	background: #FAFBFC;
}
.isw-cal-celda { width: 22px; min-width: 22px; height: 24px; padding: 0; }
.isw-cal-finde   { background: #F0F0F0; }
.isw-cal-festivo { background: #FADBD8; }
.isw-cal-enlace  { display: block; width: 100%; height: 24px; }

.isw-leyenda { display: flex; gap: 14px; flex-wrap: wrap; padding: 10px 0; font-size: 12px; }
.isw-leyenda-item { display: inline-flex; align-items: center; gap: 5px; }

/* ------------------------------------------------------------------ tablas */
.isw-tabla-ancha { overflow-x: auto; }
.isw-sub-fila { background: #FAFBFC; font-size: 12px; color: var(--isw-gris-texto); padding: 6px 10px; }

/* ------------------------------------------------------------------ movil */
@media (max-width: 767px) {
	.isw-filtros { flex-direction: column; align-items: stretch; }
	.isw-filtros select, .isw-filtros input { width: 100%; }
	.isw-tarjetas { grid-template-columns: 1fr 1fr; }
	.isw-pg { flex: 1; justify-content: center; min-height: 44px; }
	.isw-cal-nombre { min-width: 120px; }
}

@media print {
	.isw-filtros, .isw-pager, .tabsAction { display: none !important; }
	.isw-aviso { border: 1px solid #999; }
}
