
/* ========================================================================= */
/* Reglas genéricas para el layout                                           */
/* ========================================================================= */

body {
	overflow: hidden;
    padding-top: 56px;
}

.obligatorio::after {
	color: red;
	content: ' *';
}

.negrita {
	font-weight: 600;
}

.sombra {
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}


/* --- Plantilla Base ------------------------------------------------------ */

#templateBase-wrapper {
    display: flex;
    min-height: 100vh;
    width: 100%;
}

#templateBase-heightFix {
	margin-top: 56px;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	overflow-y: auto;
}

#templateBase-main {
	height: 100%;
}


/* --- Plantilla Sidebar --------------------------------------------------- */

#templateSidebar-heightFix {
	margin-top: 56px;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	overflow-y: auto;
}

#templateSidebar-wrapper {
    display: flex;
    width: 100%;
}

#templateSidebar-main {
    width: calc(100% - 350px);
    min-height: 100vh;
    transition: all 0.3s;
    position: absolute;
    top: 0;
    right: 0;
}

#templateSidebar-main.active {
    width: 100%;
}

#templateSidebar-sidebar {
    width: 350px;
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    z-index: 999;
    background: #f8f9fa;
    transition: all 0.3s;
}

#templateSidebar-sidebar.active {
    margin-left: -350px;
}

#templateSidebar-dismiss {
    width: 35px;
    height: 35px;
    line-height: 35px;
    text-align: center;
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

#templateSidebar-dismiss:hover {
    background: #fff;
    color: #6c757d;
}

#templateSidebar-sidebarCollapse {
	display: none;
}

#templateSidebar-sidebarCollapse.active {
	display: block;
}

@media (max-width: 768px) {
    #templateSidebar-sidebar {
        margin-left: -350px;
    }
    #templateSidebar-sidebar.active {
        margin-left: 0;
    }
    #templateSidebar-main {
        width: 100%;
    }
    #templateSidebar-main.active {
        width: calc(100% - 350px);
    }
    #templateSidebar-sidebarCollapse {
		display: block;
	}
	#templateSidebar-sidebarCollapse.active {
		display: none;
	}
    #templateSidebar-sidebarCollapse span {
        display: none;
    }
}


/* --- Plantilla Sidebar Overlay ------------------------------------------- */

#templateSidebarOverlay-heightFix {
	margin-top: 56px;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	overflow-y: auto;
}

#templateSidebarOverlay-wrapper {
    display: inline-block;
    height: 100%;
    left: 0;
    min-height: 100%;
    padding: 56px 0 0;
    position: absolute;
    top: 0;
    width: 100%;
}

#templateSidebarOverlay-main {
    height: 100%;
    overflow-y: auto;
    position: relative;
}

#templateSidebarOverlay-sidebar {
    width: 350px;
    position: fixed;
    top: 0;
    left: -350px;
    height: 100vh;
    z-index: 999;
    background: #f8f9fa;
    transition: all 0.3s;
    box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.2);
}

#templateSidebarOverlay-sidebar.active {
    left: 0;
}

#templateSidebarOverlay-dismiss {
    width: 35px;
    height: 35px;
    line-height: 35px;
    text-align: center;
    position: absolute;
    top: 10px;
    right: 10px;
    cursor: pointer;
    -webkit-transition: all 0.3s;
    -o-transition: all 0.3s;
    transition: all 0.3s;
}

#templateSidebarOverlay-dismiss:hover {
    background: #fff;
    color: #7386D5;
}

#templateSidebarOverlay-sidebarCollapse {
	position: absolute;
	bottom: .5em;
	left: .5em;
	z-index: 20;
}

#templateSidebarOverlay-overlay {
    display: none;
    position: fixed;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.7);
    z-index: 998;
    opacity: 0;
    transition: all 0.5s ease-in-out;
}

#templateSidebarOverlay-overlay.active {
    display: block;
    opacity: 1;
}


/* ========================================================================= */
/* Estilos del mapa                                                          */
/* ========================================================================= */

.mapa {
	background: url('../img/mapa/fondo.jpg') repeat;
	height: 100%;
	width: 100%;
}


/* --- Popups del mapa ----------------------------------------------------- */

.ol-popup {
	position: absolute;
	background-color: white;
	-webkit-filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
	filter: drop-shadow(0 1px 4px rgba(0,0,0,0.2));
	padding: 15px;
	border-radius: 10px;
	border: 1px solid #cccccc;
	bottom: 12px;
	left: -50px;
	min-width: 280px;
	z-index: 10;
}

.ol-popup:after, .ol-popup:before {
	top: 100%;
	border: solid transparent;
	content: " ";
	height: 0;
	width: 0;
	position: absolute;
	pointer-events: none;
}

.ol-popup:after {
	border-top-color: white;
	border-width: 10px;
	left: 48px;
	margin-left: -10px;
}

.ol-popup:before {
	border-top-color: #cccccc;
	border-width: 11px;
	left: 48px;
	margin-left: -11px;
}

.ol-popup-closer {
	background: url('../img/mapa/botonCerrar.png') no-repeat center center;
	height: 16px;
	text-decoration: none;
	position: absolute;
	top: 6px;
	right: 6px;
	width: 16px;
}

.ol-popup-closer:hover {
	background-image: url('../img/mapa/botonCerrarHover.png');
}

.ol-popup-content {
	min-width: 320px;
}

.ol-popup-content p {
	margin: 5px 0;
}

.ol-popup-content hr {
	margin: 10px 0;
}


/* --- Controles del mapa -------------------------------------------------- */

.mapa-control {
	position: absolute;
}

.mapa-buscador {
	right: 0.5em;
	top: 0.5em;
	width: 350px;
}

.mapa-buscador-resultados {
	width: 650px;
}

.mapa-buscador-resultados li {
	display: flex;
}

.mapa-buscador-resultados li span {
	width: 24px;
	flex: 0 0 24px;
}

.mapa-buscador-resultados li a {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis; 
}

.mapa-buscador-resultados small.copyright {
	flex: 0 0 100%;
}


/* ========================================================================= */
/* Extensión de Bootstrap                                                    */
/* ========================================================================= */

/* Añade estilo personalizado para las etiquetas de los formularios modales */
form .col-form-label,	/* Para formularios horizontales */
form .form-label {		/* Para formularios normales (no existe en Bootstrap) */
	font-weight: 600;
}

/* Añade estilo personalizado para botones pequeños con icono */
.btn-group .btn-icono {
  padding  : .25rem .4rem;
  font-size  : .875rem;
  line-height  : .5;
  border-radius : .2rem;
}

/* Modifica el texto del botón de los input de tipo file */
.custom-file-input ~ .custom-file-label::after {
	content: "Examinar...";
}

/* Paneles de utilidades (para usar en el panel lateral) */
.tarjeta-herramientas .card-header {
	background-color: #e9ecef;
}

/* Tarjetas plegables */
.tarjeta-plegable .card-header a {
	color: #212529;
	text-decoration: none;
}

/* Anima el icono de las tarjetas plegables al expandir o contraer el contenido */
.tarjeta-plegable .card-header .fas {
	transition: .3s transform ease-in-out;
}
.tarjeta-plegable .card-header .collapsed .fas {
	transform: rotate(90deg);
}


/* --- Diálogo modal a pantalla completa ----------------------------------- */

.modal-fullscreen {
	background: transparent;
}

.modal-fullscreen .modal-content {
	background: transparent;
	border: 0;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.modal-backdrop.modal-backdrop-fullscreen {
	background: #fff;
}

.modal-backdrop.modal-backdrop-fullscreen.show {
	opacity: 1;
	filter: alpha(opacity=100);
}

.modal-fullscreen .modal-dialog {
	background-color: #fff;
	margin: 0;
	margin-right: auto;
	margin-left: auto;
	width: 100%;
}

@media (min-width: 768px) {
	.modal-fullscreen .modal-dialog {
		width: 750px;
	}
}

@media (min-width: 992px) {
	.modal-fullscreen .modal-dialog {
		width: 970px;
	}
}

@media (min-width: 1200px) {
	.modal-fullscreen .modal-dialog {
		width: 1170px;
	}
}

/* Sobreescribe la clase .modal-lg para ampliar el ancho del diálogo modal */
.modal-fullscreen .modal-lg {
    max-width: 1200px !important;
}


/* ========================================================================= */
/* Extensión de DataTables                                                   */
/* ========================================================================= */

.dataTables_filter {
	float: right;
}


/* ========================================================================= */
/* Spinner de carga - https://loading.io/css/                                */
/* ========================================================================= */

/* --- Estilo spinner lds-ellipsis ----------------------------------------- */

.lds-ellipsis {
	display: inline-block;
	position: relative;
	width: 64px;
	height: 64px;
}
.lds-ellipsis div {
	position: absolute;
	top: 27px;
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: #17a2b8;
	animation-timing-function: cubic-bezier(0, 1, 1, 0);}
.lds-ellipsis div:nth-child(1) {
	left: 6px;
	animation: lds-ellipsis1 0.6s infinite;
}
.lds-ellipsis div:nth-child(2) {
	left: 6px;
	animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(3) {
	left: 26px;
	animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(4) {
	left: 45px;
	animation: lds-ellipsis3 0.6s infinite;
}
@keyframes lds-ellipsis1 {
	0% {
		transform: scale(0);
	}
	100% {
		transform: scale(1);
	}
}
@keyframes lds-ellipsis3 {
	0% {
		transform: scale(1);
	}
	100% {
		transform: scale(0);
	}
}
@keyframes lds-ellipsis2 {
	0% {
		transform: translate(0, 0);
	}
	100% {
		transform: translate(19px, 0);
	}
}

