{"id":5661,"date":"2026-06-17T09:49:03","date_gmt":"2026-06-17T08:49:03","guid":{"rendered":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/?page_id=5661"},"modified":"2026-06-17T12:22:00","modified_gmt":"2026-06-17T11:22:00","slug":"buscador_titulaciones","status":"publish","type":"page","link":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/buscador_titulaciones\/","title":{"rendered":"Buscador_titulaciones"},"content":{"rendered":"<style>\r\n  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\r\n\r\n  :root {\r\n    --azul:       #1a4f8a;\r\n    --azul-claro: #e8f0fa;\r\n    --verde:      #2a6b3c;\r\n    --verde-claro:#e6f4ec;\r\n    --gris-bg:    #f5f6f8;\r\n    --gris-borde: #d8dce4;\r\n    --gris-texto: #5a6272;\r\n    --texto:      #1c2030;\r\n    --blanco:     #ffffff;\r\n    --radio:      8px;\r\n    --sombra:     0 1px 3px rgba(0,0,0,0.08);\r\n  }\r\n\r\n  body {\r\n    font-family: system-ui, -apple-system, \"Segoe UI\", Helvetica, Arial, sans-serif;\r\n    background: var(--gris-bg);\r\n    color: var(--texto);\r\n    min-height: 100vh;\r\n    padding: 2rem 1rem;\r\n  }\r\n\r\n  .contenedor { max-width: 900px; margin: 0 auto; }\r\n\r\n  header {\r\n    margin-bottom: 2rem;\r\n    border-left: 4px solid var(--azul);\r\n    padding-left: 1rem;\r\n  }\r\n  header h1 { font-size: 22px; font-weight: 600; color: var(--texto); margin-bottom: 4px; }\r\n  header p  { font-size: 15px; color: var(--gris-texto); }\r\n\r\n  \/* Panel filtros *\/\r\n  .filtros {\r\n    background: var(--blanco);\r\n    border: 1px solid var(--gris-borde);\r\n    border-radius: var(--radio);\r\n    padding: 1.25rem;\r\n    margin-bottom: 1.25rem;\r\n    box-shadow: var(--sombra);\r\n    display: grid;\r\n    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));\r\n    gap: 1rem;\r\n  }\r\n\r\n  .filtro-grupo label {\r\n    display: block;\r\n    font-size: 12px; font-weight: 600;\r\n    letter-spacing: 0.06em; text-transform: uppercase;\r\n    color: var(--gris-texto); margin-bottom: 6px;\r\n  }\r\n\r\n  .filtro-grupo select {\r\n    width: 100%; padding: 9px 32px 9px 10px; font-size: 15px;\r\n    color: var(--texto);\r\n    background: var(--gris-bg) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a6272' stroke-width='1.5' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\") no-repeat right 10px center;\r\n    border: 1px solid var(--gris-borde); border-radius: var(--radio);\r\n    appearance: none; -webkit-appearance: none; cursor: pointer;\r\n    transition: border-color 0.15s;\r\n  }\r\n  .filtro-grupo select:hover { border-color: var(--azul); }\r\n  .filtro-grupo select:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(26,79,138,0.15); }\r\n\r\n  \/* Barra de acciones *\/\r\n  .barra-resultados {\r\n    display: flex; align-items: center;\r\n    justify-content: space-between;\r\n    flex-wrap: wrap; gap: 8px; margin-bottom: 1rem;\r\n  }\r\n  .barra-izq { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }\r\n  .contador { font-size: 14px; color: var(--gris-texto); }\r\n  .contador strong { color: var(--texto); }\r\n\r\n  .barra-der { display: flex; gap: 8px; flex-wrap: wrap; }\r\n\r\n  .btn-reset {\r\n    font-size: 14px; color: var(--blanco); background: var(--azul);\r\n    border: 1px solid var(--azul); border-radius: var(--radio);\r\n    padding: 6px 16px; cursor: pointer; font-weight: 500;\r\n    transition: background 0.15s;\r\n  }\r\n  .btn-reset:hover { background: #143d6e; border-color: #143d6e; }\r\n\r\n  .btn-pdf {\r\n    font-size: 14px; color: var(--verde); background: var(--verde-claro);\r\n    border: 1px solid #a3ccb0; border-radius: var(--radio);\r\n    padding: 6px 16px; cursor: pointer; font-weight: 500;\r\n    transition: background 0.15s;\r\n    display: flex; align-items: center; gap: 6px;\r\n  }\r\n  .btn-pdf:hover { background: #d0ebd9; }\r\n\r\n  \/* Ordenaci\u00f3n *\/\r\n  .orden-barra {\r\n    display: flex; align-items: center; gap: 10px;\r\n    background: var(--blanco); border: 1px solid var(--gris-borde);\r\n    border-radius: var(--radio); padding: 10px 14px;\r\n    margin-bottom: 1rem; box-shadow: var(--sombra);\r\n    flex-wrap: wrap;\r\n  }\r\n  .orden-barra label { font-size: 12px; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--gris-texto); white-space: nowrap; }\r\n  .orden-barra select {\r\n    padding: 6px 28px 6px 10px; font-size: 14px; color: var(--texto);\r\n    background: var(--gris-bg) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a6272' stroke-width='1.5' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\") no-repeat right 8px center;\r\n    border: 1px solid var(--gris-borde); border-radius: var(--radio);\r\n    appearance: none; -webkit-appearance: none; cursor: pointer;\r\n    transition: border-color 0.15s;\r\n  }\r\n  .orden-barra select:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(26,79,138,0.15); }\r\n\r\n  .btn-dir {\r\n    padding: 6px 12px; font-size: 14px; cursor: pointer;\r\n    background: var(--gris-bg); border: 1px solid var(--gris-borde);\r\n    border-radius: var(--radio); color: var(--gris-texto);\r\n    transition: background 0.15s, border-color 0.15s;\r\n    display: flex; align-items: center; gap: 4px;\r\n  }\r\n  .btn-dir:hover { background: #e8e9ed; border-color: #b0b8c8; }\r\n  .btn-dir.activo { background: var(--azul-claro); border-color: var(--azul); color: var(--azul); }\r\n\r\n  \/* Cabecera de grupo *\/\r\n  .grupo-cabecera {\r\n    display: flex; align-items: center; gap: 10px;\r\n    margin: 1.5rem 0 8px;\r\n  }\r\n  .grupo-cabecera:first-child { margin-top: 0; }\r\n  .grupo-titulo {\r\n    font-size: 12px; font-weight: 700; letter-spacing: 0.07em;\r\n    text-transform: uppercase; color: var(--azul);\r\n    white-space: nowrap;\r\n  }\r\n  .grupo-linea { flex: 1; height: 1px; background: var(--gris-borde); }\r\n  .grupo-count {\r\n    font-size: 12px; background: var(--azul-claro); color: var(--azul);\r\n    padding: 2px 9px; border-radius: 20px; font-weight: 600; white-space: nowrap;\r\n  }\r\n\r\n  \/* Tarjetas *\/\r\n  .resultados { display: flex; flex-direction: column; gap: 0; }\r\n\r\n  .tarjeta {\r\n    background: var(--blanco); border: 1px solid var(--gris-borde);\r\n    border-radius: var(--radio); padding: 0.85rem 1.25rem;\r\n    box-shadow: var(--sombra); transition: border-color 0.15s, box-shadow 0.15s;\r\n    margin-bottom: 6px;\r\n  }\r\n  .tarjeta:hover { border-color: #b0bcd4; box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\r\n\r\n  .tarjeta-titulo { font-size: 15px; font-weight: 500; color: var(--texto); line-height: 1.4; }\r\n  .tarjeta-meta { display: none; }\r\n\r\n  .etiqueta {\r\n    font-size: 13px; padding: 3px 10px; border-radius: 20px;\r\n    display: inline-flex; align-items: center; gap: 5px;\r\n    font-weight: 500; white-space: nowrap;\r\n  }\r\n  .et-tipo-grado  { background: var(--azul-claro); color: var(--azul); }\r\n  .et-tipo-master { background: var(--verde-claro); color: var(--verde); }\r\n  .et-rama   { background: #f0f1f5; color: #4a5168; }\r\n  .et-centro { background: #f0f1f5; color: #4a5168; }\r\n  .et-campus { background: #fff8e6; color: #7a5a00; }\r\n  .et-modalidad { background: #fef0f0; color: #9a2020; }\r\n\r\n  \/* Bloque pr\u00e1cticas *\/\r\n  .practicas-bloque {\r\n    margin-top: 10px; padding-top: 9px;\r\n    border-top: 1px dashed var(--gris-borde);\r\n    display: flex; flex-wrap: wrap; gap: 8px; align-items: center;\r\n  }\r\n  .practicas-label {\r\n    font-size: 12px; font-weight: 700; letter-spacing: 0.05em;\r\n    text-transform: uppercase; color: var(--gris-texto);\r\n    margin-right: 2px;\r\n  }\r\n  .prac-si { background: #e8f0fa; color: #1a4f8a; }\r\n  .prac-no { background: #f5f6f8; color: #8a8f9e; }\r\n  .prac-oblig { background: #f0e8f8; color: #6a1f7a; }\r\n  .prac-optat { background: #e8f4fb; color: #1a6a8a; }\r\n  .prac-cuatri { background: #f5f0e8; color: #7a5a1a; }\r\n  .prac-curso { background: #eef5e8; color: #3a6a1a; }\r\n\r\n  .vacio {\r\n    text-align: center; padding: 3.5rem 1rem; color: var(--gris-texto);\r\n    font-size: 15px; background: var(--blanco);\r\n    border: 1px solid var(--gris-borde); border-radius: var(--radio);\r\n  }\r\n  .vacio svg { display: block; margin: 0 auto 1rem; opacity: 0.3; }\r\n\r\n  \/* Pantalla de acceso *\/\r\n  #pantalla-login {\r\n    position: fixed; inset: 0; background: var(--gris-bg);\r\n    display: flex; align-items: center; justify-content: center; z-index: 999;\r\n  }\r\n  .login-caja {\r\n    background: var(--blanco); border: 1px solid var(--gris-borde);\r\n    border-radius: 12px; padding: 2.5rem 2rem;\r\n    width: 100%; max-width: 360px;\r\n    box-shadow: 0 4px 24px rgba(0,0,0,0.10); text-align: center;\r\n  }\r\n  .login-caja h2 { font-size: 18px; font-weight: 600; color: var(--texto); margin-bottom: 6px; }\r\n  .login-caja p  { font-size: 14px; color: var(--gris-texto); margin-bottom: 1.5rem; }\r\n  .login-caja input[type=\"password\"] {\r\n    width: 100%; padding: 10px 12px; font-size: 16px;\r\n    border: 1px solid var(--gris-borde); border-radius: var(--radio);\r\n    margin-bottom: 12px; text-align: center; letter-spacing: 0.2em;\r\n    transition: border-color 0.15s;\r\n  }\r\n  .login-caja input[type=\"password\"]:focus { outline: none; border-color: var(--azul); box-shadow: 0 0 0 3px rgba(26,79,138,0.15); }\r\n  .login-caja input.error { border-color: #c0392b; box-shadow: 0 0 0 3px rgba(192,57,43,0.12); }\r\n  .login-caja button.btn-entrar {\r\n    width: 100%; padding: 10px; font-size: 15px; font-weight: 600;\r\n    color: var(--blanco); background: var(--azul); border: none;\r\n    border-radius: var(--radio); cursor: pointer; transition: background 0.15s;\r\n  }\r\n  .login-caja button.btn-entrar:hover { background: #143d6e; }\r\n  .login-error { font-size: 13px; color: #c0392b; margin-top: 10px; min-height: 18px; }\r\n\r\n  @media (max-width: 480px) {\r\n    .filtros { grid-template-columns: 1fr; }\r\n    header h1 { font-size: 18px; }\r\n  }\r\n\r\n  \/* \u2500\u2500 Estilos de impresi\u00f3n PDF \u2500\u2500 *\/\r\n  @media print {\r\n    body { background: #fff; padding: 0; font-size: 11px; }\r\n    #pantalla-login, .filtros, .barra-resultados, .orden-barra, .barra-der { display: none !important; }\r\n    .contenedor { max-width: 100%; margin: 0; }\r\n    .print-cabecera { display: block !important; margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid #1a4f8a; }\r\n    .tarjeta { box-shadow: none; break-inside: avoid; border: 1px solid #ccc; margin-bottom: 4px; padding: 6px 10px; }\r\n    .tarjeta:hover { box-shadow: none; }\r\n    .tarjeta-titulo { font-size: 11px; font-weight: 500; }\r\n    .tarjeta-meta { display: none !important; }\r\n    .practicas-bloque { border-top: 1px solid #ddd; padding-top: 5px; margin-top: 5px; gap: 5px; }\r\n    .practicas-label { font-size: 9px; }\r\n    .etiqueta { font-size: 9px; padding: 1px 5px; background: #f0f0f0 !important; color: #333 !important; border-radius: 3px; }\r\n    .grupo-cabecera { margin: 12px 0 4px; }\r\n    .grupo-titulo { font-size: 10px; color: #1a4f8a; }\r\n    .grupo-count { font-size: 10px; background: #e8f0fa; color: #1a4f8a; }\r\n    .print-pie { display: block !important; margin-top: 16px; font-size: 10px; color: #888; border-top: 1px solid #ccc; padding-top: 8px; }\r\n  }\r\n  .print-cabecera { display: none; }\r\n  .print-pie { display: none; }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n\r\n<div id=\"pantalla-login\">\r\n  <div class=\"login-caja\">\r\n    <h2>Acceso restringido<\/h2>\r\n    <p>Introduce la contrase\u00f1a para acceder a la oferta acad\u00e9mica de la Universidad de Le\u00f3n.<\/p>\r\n    <input type=\"password\" id=\"campo-password\" placeholder=\"Contrase\u00f1a\" autofocus onkeydown=\"if(event.key==='Enter') verificar()\">\r\n    <button class=\"btn-entrar\" onclick=\"verificar()\">Entrar<\/button>\r\n    <div class=\"login-error\" id=\"login-error\"><\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"contenedor\" id=\"contenido-principal\" style=\"display:none\">\r\n\r\n  <!-- Cabecera solo visible al imprimir -->\r\n  <div class=\"print-cabecera\" id=\"print-cabecera\"><\/div>\r\n\r\n  <header>\r\n    <h1>Oferta Acad\u00e9mica \u2014 Universidad de Le\u00f3n<\/h1>\r\n    <p>Grados y m\u00e1steres universitarios. Usa los filtros para encontrar tu titulaci\u00f3n.<\/p>\r\n  <\/header>\r\n\r\n  <div class=\"filtros\">\r\n    <div class=\"filtro-grupo\">\r\n      <label for=\"f-titulacion\">Titulaci\u00f3n<\/label>\r\n      <select id=\"f-titulacion\" onchange=\"render()\">\r\n        <option value=\"\">Todas las titulaciones<\/option>\r\n      <\/select>\r\n    <\/div>\r\n    <div class=\"filtro-grupo\">\r\n      <label for=\"f-tipo\">Tipo<\/label>\r\n      <select id=\"f-tipo\" onchange=\"render()\">\r\n        <option value=\"\">Grado y M\u00e1ster<\/option>\r\n        <option value=\"Grado\">Grado<\/option>\r\n        <option value=\"M\u00e1ster\">M\u00e1ster<\/option>\r\n      <\/select>\r\n    <\/div>\r\n    <div class=\"filtro-grupo\">\r\n      <label for=\"f-rama\">Rama de conocimiento<\/label>\r\n      <select id=\"f-rama\" onchange=\"render()\">\r\n        <option value=\"\">Todas las ramas<\/option>\r\n      <\/select>\r\n    <\/div>\r\n    <div class=\"filtro-grupo\">\r\n      <label for=\"f-centro\">Centro \/ Escuela<\/label>\r\n      <select id=\"f-centro\" onchange=\"render()\">\r\n        <option value=\"\">Todos los centros<\/option>\r\n      <\/select>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <!-- Barra de ordenaci\u00f3n -->\r\n  <div class=\"orden-barra\">\r\n    <label for=\"f-orden\">Ordenar por<\/label>\r\n    <select id=\"f-orden\" onchange=\"render()\">\r\n      <option value=\"nombre\">Titulaci\u00f3n (A\u2013Z)<\/option>\r\n      <option value=\"tipo\">Tipo<\/option>\r\n      <option value=\"rama\">Rama de conocimiento<\/option>\r\n      <option value=\"centro\">Centro \/ Escuela<\/option>\r\n      <option value=\"campus\">Campus<\/option>\r\n    <\/select>\r\n    <button class=\"btn-dir\" id=\"btn-dir\" onclick=\"toggleDir()\" title=\"Cambiar direcci\u00f3n\">\r\n      <span id=\"dir-icono\">\u2191<\/span> <span id=\"dir-texto\">Ascendente<\/span>\r\n    <\/button>\r\n  <\/div>\r\n\r\n  <div class=\"barra-resultados\">\r\n    <div class=\"barra-izq\">\r\n      <div class=\"contador\" id=\"contador\"><\/div>\r\n    <\/div>\r\n    <div class=\"barra-der\">\r\n      <button class=\"btn-pdf\" onclick=\"exportarPDF()\">\r\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"12\"\/><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"\/><\/svg>\r\n        Exportar PDF\r\n      <\/button>\r\n      <button class=\"btn-reset\" onclick=\"resetFiltros()\">\u21ba Restablecer filtros<\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"resultados\" id=\"resultados\"><\/div>\r\n\r\n  <div class=\"print-pie\" id=\"print-pie\"><\/div>\r\n\r\n<\/div>\r\n\r\n<script>\r\nfunction verificar() {\r\n  const input = document.getElementById('campo-password');\r\n  if (input.value === '2026') {\r\n    document.getElementById('pantalla-login').style.display = 'none';\r\n    document.getElementById('contenido-principal').style.display = 'block';\r\n  } else {\r\n    input.classList.add('error');\r\n    document.getElementById('login-error').textContent = 'Contrase\u00f1a incorrecta. Int\u00e9ntalo de nuevo.';\r\n    input.value = '';\r\n    setTimeout(() => input.classList.remove('error'), 1500);\r\n  }\r\n}\r\n\r\nconst titulaciones = [\r\n  { nombre: \"Grado en Administraci\u00f3n y Direcci\u00f3n de Empresas\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Biolog\u00eda\", tipo: \"Grado\", rama: \"Ciencias\", centro: \"Facultad de Ciencias Biol\u00f3gicas y Ambientales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"Anual\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Biotecnolog\u00eda\", tipo: \"Grado\", rama: \"Ciencias\", centro: \"Facultad de Ciencias Biol\u00f3gicas y Ambientales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"Anual\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ciencia y Tecnolog\u00eda de los Alimentos\", tipo: \"Grado\", rama: \"Ciencias\", centro: \"Facultad de Veterinaria\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ciencias Ambientales\", tipo: \"Grado\", rama: \"Ciencias\", centro: \"Facultad de Ciencias Biol\u00f3gicas y Ambientales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"Anual\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ciencias de la Actividad F\u00edsica y del Deporte\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias de la Actividad F\u00edsica y del Deporte\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"Anual\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ciencias Gastron\u00f3micas\", tipo: \"Grado\", rama: \"Ciencias\", centro: \"Facultad de Veterinaria\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Comercio Internacional\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Derecho\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Derecho\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Econom\u00eda\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Educaci\u00f3n Infantil\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Educaci\u00f3n\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Educaci\u00f3n Primaria\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Educaci\u00f3n\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Educaci\u00f3n Social\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Educaci\u00f3n\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Enfermer\u00eda\", tipo: \"Grado\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"Anual\", curso: \"2\u00ba, 3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Enfermer\u00eda (Ponferrada)\", tipo: \"Grado\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Ponferrada\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"Anual\", curso: \"2\u00ba, 3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Filolog\u00eda Moderna - Ingl\u00e9s\", tipo: \"Grado\", rama: \"Arte y Humanidades\", centro: \"Facultad de Filosof\u00eda y Letras\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Finanzas\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Fisioterapia\", tipo: \"Grado\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Ponferrada\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"Anual\", curso: \"3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Geograf\u00eda y Ordenaci\u00f3n del Territorio\", tipo: \"Grado\", rama: \"Arte y Humanidades\", centro: \"Facultad de Filosof\u00eda y Letras\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Historia\", tipo: \"Grado\", rama: \"Arte y Humanidades\", centro: \"Facultad de Filosof\u00eda y Letras\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Historia del Arte\", tipo: \"Grado\", rama: \"Arte y Humanidades\", centro: \"Facultad de Filosof\u00eda y Letras\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Informaci\u00f3n y Documentaci\u00f3n\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Filosof\u00eda y Letras\", campus: \"Le\u00f3n\", modalidad: \"A Distancia\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Informaci\u00f3n y Documentaci\u00f3n (en extinci\u00f3n)\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Filosof\u00eda y Letras\", campus: \"Le\u00f3n\", modalidad: \"Semipresencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ingenier\u00eda Aeroespacial\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Ingenier\u00eda Agraria\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00eda Agraria y Forestal\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"Anual\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ingenier\u00eda de Datos e Inteligencia Artificial\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ingenier\u00eda de la Energ\u00eda\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela Superior y T\u00e9cnica de Ingenieros de Minas\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ingenier\u00eda El\u00e9ctrica\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Ingenier\u00eda en Electr\u00f3nica Industrial y Autom\u00e1tica\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Ingenier\u00eda en Geom\u00e1tica y Topograf\u00eda (en extinci\u00f3n)\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela Superior y T\u00e9cnica de Ingenieros de Minas\", campus: \"Ponferrada\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ingenier\u00eda en Geotecnolog\u00edas y Topograf\u00eda\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela Superior y T\u00e9cnica de Ingenieros de Minas\", campus: \"Ponferrada\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: null },\r\n  { nombre: \"Grado en Ingenier\u00eda Forestal y del Medio Natural\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00eda Agraria y Forestal\", campus: \"Ponferrada\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"Anual\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ingenier\u00eda Inform\u00e1tica\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Ingenier\u00eda Mec\u00e1nica\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Ingenier\u00eda Minera\", tipo: \"Grado\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela Superior y T\u00e9cnica de Ingenieros de Minas\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Lengua Espa\u00f1ola y su Literatura\", tipo: \"Grado\", rama: \"Arte y Humanidades\", centro: \"Facultad de Filosof\u00eda y Letras\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Marketing e Investigaci\u00f3n de Mercados\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Medicina\", tipo: \"Grado\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"Grado en Nutrici\u00f3n Humana y Diet\u00e9tica\", tipo: \"Grado\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Ponferrada\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Podolog\u00eda\", tipo: \"Grado\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Ponferrada\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Relaciones Laborales y Recursos Humanos\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias del Trabajo\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Trabajo Social\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Escuela Universitaria de Trabajo Social\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"Anual\", curso: \"3\u00ba, 4\u00ba\" },\r\n  { nombre: \"Grado en Turismo\", tipo: \"Grado\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"4\u00ba\" },\r\n  { nombre: \"Grado en Veterinaria\", tipo: \"Grado\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Veterinaria\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"5\u00ba\" },\r\n  { nombre: \"M\u00e1ster Europeo Universitario en Direcci\u00f3n de Empresas\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"2\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario de Investigaci\u00f3n en Ciberseguridad\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"Anual\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario de Investigaci\u00f3n en Ciberseguridad (On-Line)\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Online\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"Anual\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Abogac\u00eda y Procura\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Derecho\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba, 2\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Ciencias Actuariales y Financieras\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"2\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Cooperaci\u00f3n Internacional para el Desarrollo\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Cultura y Pensamiento Europeo: Tradici\u00f3n y Pervivencia\", tipo: \"M\u00e1ster\", rama: \"Arte y Humanidades\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Derecho de la Ciberseguridad y Entorno Digital\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Derecho\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Enfermer\u00eda en Cuidados Cr\u00edticos y Urgencias\", tipo: \"M\u00e1ster\", rama: \"Ciencias de la Salud\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"Anual\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Entrenamiento y Rendimiento Deportivo\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias de la Actividad F\u00edsica y del Deporte\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"Anual\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Formaci\u00f3n del Profesorado de ESO, Bachillerato y FP\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Educaci\u00f3n\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Geoinform\u00e1tica para la Gesti\u00f3n de Recursos Naturales\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00eda Agraria y Forestal\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Gesti\u00f3n de Personal y Pr\u00e1ctica Laboral\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias del Trabajo\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Gesti\u00f3n de Prevenci\u00f3n de Riesgos Laborales\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias del Trabajo\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Ingenier\u00eda Aeron\u00e1utica\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Ingenier\u00eda Industrial\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Ingenier\u00eda Inform\u00e1tica\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Innovaci\u00f3n en Ciencias Biom\u00e9dicas y de la Salud\", tipo: \"M\u00e1ster\", rama: \"Ciencias de la Salud\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Ecolog\u00eda Aplicada y An\u00e1lisis de Datos Ecol\u00f3gicos\", tipo: \"M\u00e1ster\", rama: \"Ciencias\", centro: \"Facultad de Ciencias Biol\u00f3gicas y Ambientales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Fermentaciones Aplicadas a la Industria Alimentaria y Biotecnol\u00f3gica\", tipo: \"M\u00e1ster\", rama: \"Ciencias\", centro: \"Facultad de Veterinaria\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Investigaci\u00f3n de la Diversidad Bot\u00e1nica y Zool\u00f3gica\", tipo: \"M\u00e1ster\", rama: \"Ciencias\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Investigaci\u00f3n en Biotecnolog\u00eda y Biomedicina\", tipo: \"M\u00e1ster\", rama: \"Ciencias\", centro: \"Facultad de Ciencias Biol\u00f3gicas y Ambientales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Investigaci\u00f3n en Psicolog\u00eda y Ciencias de la Educaci\u00f3n\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Ling\u00fc\u00edstica y Ense\u00f1anza del Espa\u00f1ol como Lengua Extranjera\", tipo: \"M\u00e1ster\", rama: \"Arte y Humanidades\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"2\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Orientaci\u00f3n Educativa\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Educaci\u00f3n\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Producci\u00f3n en Industrias Farmac\u00e9uticas\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"2\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Rob\u00f3tica e Inteligencia Artificial\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Unidad de Posgrado\", campus: \"Le\u00f3n\", modalidad: \"Presencial\" , practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Riesgos Naturales\", tipo: \"M\u00e1ster\", rama: \"Ciencias\", centro: \"Facultad de Ciencias Biol\u00f3gicas y Ambientales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Envejecimiento Saludable y Calidad de Vida\", tipo: \"M\u00e1ster\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Le\u00f3n\", modalidad: \"A Distancia\", practicas: true, caracter: \"Optativa\", cuatrimestre: \"2\u00ba cuatrimestre\", curso: \"1\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Investigaci\u00f3n en Atenci\u00f3n Primaria de Salud\", tipo: \"M\u00e1ster\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Le\u00f3n\", modalidad: \"A Distancia\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Investigaci\u00f3n en Ciencias Sociosanitarias\", tipo: \"M\u00e1ster\", rama: \"Ciencias de la Salud\", centro: \"Facultad de Ciencias de la Salud\", campus: \"Le\u00f3n\", modalidad: \"A Distancia\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Investigaci\u00f3n en Administraci\u00f3n y Econom\u00eda de la Empresa\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Ciencias Econ\u00f3micas y Empresariales\", campus: \"Le\u00f3n\", modalidad: \"Presencial\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario Europeo en Derecho, Datos e Inteligencia Artificial\", tipo: \"M\u00e1ster\", rama: \"Ciencias Sociales y Jur\u00eddicas\", centro: \"Facultad de Derecho\", campus: \"Le\u00f3n\", modalidad: \"Presencial\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Incendios Forestales. Ciencia y Gesti\u00f3n Integral\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00eda Agraria y Forestal\", campus: \"Ponferrada\", modalidad: \"Semipresencial\", practicas: true, caracter: \"Obligatoria\", cuatrimestre: \"1\u00ba cuatrimestre\", curso: \"2\u00ba\" },\r\n  { nombre: \"M\u00e1ster Universitario en Ingenier\u00eda Agron\u00f3mica\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00eda Agraria y Forestal\", campus: \"Le\u00f3n\", modalidad: \"Presencial\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n  { nombre: \"M\u00e1ster Universitario en Ingenier\u00eda Minera y de Recursos Energ\u00e9ticos\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela Superior y T\u00e9cnica de Ingenieros de Minas\", campus: \"Le\u00f3n\", modalidad: \"Presencial\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n\r\n  { nombre: \"M\u00e1ster Universitario en Inteligencia de Negocio y Big Data en Entornos Seguros\", tipo: \"M\u00e1ster\", rama: \"Ingenier\u00eda y Arquitectura\", centro: \"Escuela de Ingenier\u00edas Industrial, Inform\u00e1tica y Aeroespacial\", campus: \"Le\u00f3n\", modalidad: \"Presencial\", practicas: false, caracter: null, cuatrimestre: null, curso: null },\r\n];\r\n\r\nlet dirAsc = true;\r\n\r\nfunction poblarSelect(id, valores) {\r\n  const sel = document.getElementById(id);\r\n  [...new Set(valores)].sort((a, b) => a.localeCompare(b, 'es')).forEach(v => {\r\n    const o = document.createElement('option');\r\n    o.value = v; o.textContent = v;\r\n    sel.appendChild(o);\r\n  });\r\n}\r\n\r\npoblarSelect('f-titulacion', titulaciones.map(t => t.nombre));\r\npoblarSelect('f-rama',       titulaciones.map(t => t.rama));\r\npoblarSelect('f-centro',     titulaciones.map(t => t.centro));\r\n\r\nfunction toggleDir() {\r\n  dirAsc = !dirAsc;\r\n  document.getElementById('dir-icono').textContent = dirAsc ? '\u2191' : '\u2193';\r\n  document.getElementById('dir-texto').textContent  = dirAsc ? 'Ascendente' : 'Descendente';\r\n  document.getElementById('btn-dir').classList.toggle('activo', !dirAsc);\r\n  render();\r\n}\r\n\r\nfunction getFiltradas() {\r\n  const titulacion = document.getElementById('f-titulacion').value;\r\n  const tipo       = document.getElementById('f-tipo').value;\r\n  const rama       = document.getElementById('f-rama').value;\r\n  const centro     = document.getElementById('f-centro').value;\r\n  const campo      = document.getElementById('f-orden').value;\r\n\r\n  const filtradas = titulaciones.filter(t =>\r\n    (!titulacion || t.nombre === titulacion) &&\r\n    (!tipo       || t.tipo   === tipo) &&\r\n    (!rama       || t.rama   === rama) &&\r\n    (!centro     || t.centro === centro)\r\n  );\r\n\r\n  filtradas.sort((a, b) => {\r\n    const cmp = a[campo].localeCompare(b[campo], 'es');\r\n    return dirAsc ? cmp : -cmp;\r\n  });\r\n\r\n  return filtradas;\r\n}\r\n\r\nconst CAMPOS_GRUPO = ['tipo', 'rama', 'centro'];\r\n\r\nfunction tarjetaHTML(t) {\r\n  let pracBlock = '';\r\n  if (t.practicas === true) {\r\n    const curso = t.curso ? `<span class=\"etiqueta prac-curso\">Curso: ${t.curso}<\/span>` : '';\r\n    const cuatri = t.cuatrimestre ? `<span class=\"etiqueta prac-cuatri\">${t.cuatrimestre}<\/span>` : '';\r\n    const car = t.caracter ? `<span class=\"etiqueta ${t.caracter === 'Obligatoria' ? 'prac-oblig' : 'prac-optat'}\">${t.caracter}<\/span>` : '';\r\n    pracBlock = `<div class=\"practicas-bloque\">\r\n      <span class=\"practicas-label\">Pr\u00e1cticas<\/span>\r\n      <span class=\"etiqueta prac-si\">S\u00ed<\/span>\r\n      ${car}${cuatri}${curso}\r\n    <\/div>`;\r\n  } else {\r\n    pracBlock = `<div class=\"practicas-bloque\">\r\n      <span class=\"practicas-label\">Pr\u00e1cticas<\/span>\r\n      <span class=\"etiqueta prac-no\">No<\/span>\r\n    <\/div>`;\r\n  }\r\n  return `<div class=\"tarjeta\"><div class=\"tarjeta-titulo\">${t.nombre}<\/div>${pracBlock}<\/div>`;\r\n}\r\n\r\nfunction render() {\r\n  const filtradas = getFiltradas();\r\n  const campo     = document.getElementById('f-orden').value;\r\n  const nG = filtradas.filter(t => t.tipo === 'Grado').length;\r\n  const nM = filtradas.filter(t => t.tipo === 'M\u00e1ster').length;\r\n  document.getElementById('contador').innerHTML =\r\n    `<strong>${filtradas.length}<\/strong> titulaciones \u2014 <strong>${nG}<\/strong> grados \u00b7 <strong>${nM}<\/strong> m\u00e1steres`;\r\n\r\n  const cont = document.getElementById('resultados');\r\n  if (filtradas.length === 0) {\r\n    cont.innerHTML = `<div class=\"vacio\">\r\n      <svg width=\"40\" height=\"40\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><circle cx=\"11\" cy=\"11\" r=\"8\"\/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"\/><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"\/><\/svg>\r\n      No hay titulaciones para los filtros seleccionados.\r\n    <\/div>`;\r\n    return;\r\n  }\r\n\r\n  if (CAMPOS_GRUPO.includes(campo)) {\r\n    \/\/ Agrupar: ordenar alfab\u00e9ticamente dentro de cada grupo\r\n    const grupos = {};\r\n    filtradas.forEach(t => {\r\n      const clave = t[campo];\r\n      if (!grupos[clave]) grupos[clave] = [];\r\n      grupos[clave].push(t);\r\n    });\r\n    \/\/ Ordenar los registros dentro de cada grupo por nombre\r\n    Object.values(grupos).forEach(g => g.sort((a, b) => a.nombre.localeCompare(b.nombre, 'es')));\r\n    \/\/ Ordenar las claves de grupo seg\u00fan direcci\u00f3n elegida\r\n    const claves = Object.keys(grupos).sort((a, b) => {\r\n      const cmp = a.localeCompare(b, 'es');\r\n      return dirAsc ? cmp : -cmp;\r\n    });\r\n\r\n    cont.innerHTML = claves.map(clave => `\r\n      <div class=\"grupo-cabecera\">\r\n        <span class=\"grupo-titulo\">${clave}<\/span>\r\n        <span class=\"grupo-linea\"><\/span>\r\n        <span class=\"grupo-count\">${grupos[clave].length}<\/span>\r\n      <\/div>\r\n      ${grupos[clave].map(tarjetaHTML).join('')}\r\n    `).join('');\r\n  } else {\r\n    cont.innerHTML = filtradas.map(tarjetaHTML).join('');\r\n  }\r\n}\r\n\r\nfunction resetFiltros() {\r\n  ['f-titulacion','f-tipo','f-rama','f-centro'].forEach(id => document.getElementById(id).value = '');\r\n  document.getElementById('f-orden').value = 'nombre';\r\n  dirAsc = true;\r\n  document.getElementById('dir-icono').textContent = '\u2191';\r\n  document.getElementById('dir-texto').textContent  = 'Ascendente';\r\n  document.getElementById('btn-dir').classList.remove('activo');\r\n  render();\r\n}\r\n\r\nfunction exportarPDF() {\r\n  const filtradas = getFiltradas();\r\n  if (filtradas.length === 0) return;\r\n\r\n  \/\/ Construir resumen de filtros activos\r\n  const campos = {\r\n    'f-titulacion': 'Titulaci\u00f3n',\r\n    'f-tipo': 'Tipo',\r\n    'f-rama': 'Rama',\r\n    'f-centro': 'Centro'\r\n  };\r\n  const filtrosActivos = Object.entries(campos)\r\n    .map(([id, label]) => {\r\n      const v = document.getElementById(id).value;\r\n      return v ? `${label}: ${v}` : null;\r\n    })\r\n    .filter(Boolean);\r\n\r\n  const ordenLabel = document.getElementById('f-orden').options[document.getElementById('f-orden').selectedIndex].text;\r\n  const dirLabel   = dirAsc ? 'Ascendente' : 'Descendente';\r\n  const fecha      = new Date().toLocaleDateString('es-ES', { day: '2-digit', month: 'long', year: 'numeric' });\r\n  const nG = filtradas.filter(t => t.tipo === 'Grado').length;\r\n  const nM = filtradas.filter(t => t.tipo === 'M\u00e1ster').length;\r\n\r\n  \/\/ Rellenar cabecera de impresi\u00f3n\r\n  document.getElementById('print-cabecera').innerHTML = `\r\n    <div style=\"display:flex; justify-content:space-between; align-items:flex-start;\">\r\n      <div>\r\n        <div style=\"font-size:18px; font-weight:700; color:#1a4f8a; margin-bottom:3px;\">Oferta Acad\u00e9mica \u2014 Universidad de Le\u00f3n<\/div>\r\n        <div style=\"font-size:11px; color:#5a6272;\">Generado el ${fecha}<\/div>\r\n      <\/div>\r\n      <div style=\"font-size:11px; color:#5a6272; text-align:right;\">\r\n        ${filtradas.length} titulaciones \u00b7 ${nG} grados \u00b7 ${nM} m\u00e1steres\r\n      <\/div>\r\n    <\/div>\r\n    ${filtrosActivos.length ? `<div style=\"margin-top:8px; font-size:11px; color:#4a5168;\"><strong>Filtros:<\/strong> ${filtrosActivos.join(' \u00b7 ')}<\/div>` : ''}\r\n    <div style=\"margin-top:4px; font-size:11px; color:#4a5168;\"><strong>Ordenado por:<\/strong> ${ordenLabel} (${dirLabel})<\/div>\r\n  `;\r\n\r\n  document.getElementById('print-pie').innerHTML =\r\n    `Universidad de Le\u00f3n \u00b7 www.unileon.es \u00b7 Documento generado autom\u00e1ticamente el ${fecha}`;\r\n\r\n  window.print();\r\n}\r\n\r\nrender();\r\n<\/script>\r\n","protected":false},"excerpt":{"rendered":"<p>Acceso restringido Introduce la contrase\u00f1a para acceder a la oferta acad\u00e9mica de la Universidad de Le\u00f3n. Entrar Oferta Acad\u00e9mica \u2014 Universidad de Le\u00f3n Grados y m\u00e1steres universitarios. Usa los filtros para encontrar tu titulaci\u00f3n. Titulaci\u00f3n Todas las titulaciones Tipo Grado y M\u00e1ster Grado M\u00e1ster Rama de conocimiento Todas las ramas Centro \/ Escuela Todos los [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-5661","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/pages\/5661","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/comments?post=5661"}],"version-history":[{"count":6,"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/pages\/5661\/revisions"}],"predecessor-version":[{"id":5664,"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/pages\/5661\/revisions\/5664"}],"wp:attachment":[{"href":"https:\/\/servicios.unileon.es\/oficina-de-practicas-y-empleabilidad\/wp-json\/wp\/v2\/media?parent=5661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}