:root{--main-color: #046b7d;--link-color: #046b7d;--glow-color: #25f6fe;--glow-rgb: 37, 246, 254;--shadow-color: #046b7d;--header-color: #dee2e6;--highlight-bg: #ffffcc;--deadline-color: #c0261f;--deadline-row-bg: #fdf0ee;--feriado-row-bg: #dff0d8;--stripe-row-bg: #eaecee;--modalidad-presencial-bg: #e3eff1;--modalidad-presencial-fg: #045766;--modalidad-virtual-bg: #ece9f7;--modalidad-virtual-fg: #4b3a99;--modalidad-asincronica-bg: #fdf3e0;--modalidad-asincronica-fg: #8a5a00;--modalidad-suspendida-bg: var(--deadline-row-bg);--modalidad-suspendida-fg: var(--deadline-color);--page-bg-top: #010101;--page-bg-bottom: #03181a;--card-bg: #f3f4f5;--text-color: #0d0d0d;--header-font: "Chakra Petch";--text-font: "Rubik";--mono-font: "IBM Plex Mono";--hero-font-size: clamp(2.25rem, 4.6vw, 4.75rem);--hero-text-shadow: 0 0 0.6em rgba(var(--glow-rgb), 0.5), 0 0 0.22em rgba(var(--glow-rgb), 0.7), 0.04em 0.04em 0 rgba(0, 0, 0, 0.7);--bs-body-font-size: 1.2rem;--bs-code-color: var(--main-color)}html{scroll-behavior:smooth}body{font-family:var(--text-font),sans-serif;font-optical-sizing:auto;font-weight:300;font-style:normal;background:linear-gradient(0deg, var(--page-bg-bottom), var(--page-bg-top));color:var(--text-color)}main{margin-top:3.75rem}main img{max-width:100%}strong,b,dt{font-weight:500}pre,code,kbd,samp{font-family:var(--mono-font),var(--bs-font-monospace);background-color:#e9ecef !important}.bg-light{background-color:var(--card-bg) !important}a{color:var(--link-color);padding:1px 1px;border-radius:3px;transition:background-color 0.25s ease, color 0.25s ease}a:hover{background-color:var(--link-color);color:#fff;text-decoration:underline dotted}a:has(>img):hover{text-decoration:none !important;background-color:inherit !important}li:target{background-color:var(--highlight-bg);border:3px solid var(--main-color);border-radius:0.25rem;padding:0.25rem 0.5rem;scroll-margin-top:5rem}.navbar-brand{font-family:var(--header-font),sans-serif;font-weight:600;letter-spacing:0.02em}.navbar-brand:hover{color:#fff;text-decoration:none;background-color:inherit !important}.navbar-nav .nav-link{font-weight:500;white-space:nowrap}.navbar-nav .nav-link.active{font-weight:700;color:#fff}.navbar-nav .nav-link:hover{background-color:inherit !important;color:var(--glow-color);text-decoration:none}.banner{min-height:45rem;border-color:#000 !important;border-width:0.8em !important;background-attachment:scroll;background-repeat:no-repeat;background-size:cover;background-position:center center}.banner-title h1{margin-bottom:0.6rem;font-family:var(--header-font),sans-serif;font-size:var(--hero-font-size);font-weight:700;line-height:0.92em;letter-spacing:-0.01em;text-transform:uppercase;border-bottom:0;text-shadow:var(--hero-text-shadow)}.banner-title .banner-subtitle{font-family:var(--header-font),sans-serif;font-size:clamp(1rem, 1.7vw, 1.7rem);font-weight:500;letter-spacing:0.08em;text-transform:uppercase;color:var(--glow-color);border:0;text-shadow:0 0 0.6em rgba(var(--glow-rgb), 0.5),0.03em 0.03em 0 rgba(0,0,0,0.85)}.banner-title .banner-subtitle .banner-code,.banner-title .banner-subtitle .banner-term{display:block}@media (max-width: 767.98px){.banner-title .banner-subtitle .banner-code{display:none}}.banner--perspectiva .banner-row{perspective:60rem;perspective-origin:21% -45%}.banner--perspectiva .banner-title{transform:rotateY(-33deg) translateY(2.5rem) skewX(-5deg) skewY(-10deg)}.banner--centrado{display:flex;align-items:flex-end}.banner--centrado .banner-row{justify-content:center !important}.banner--centrado .banner-title{flex:0 0 100%;max-width:100%;text-align:center !important}.banner--centrado .banner-title h1{text-align:center;font-size:clamp(2.25rem, 7vw, 7rem)}.banner--centrado .banner-title .banner-subtitle .banner-code,.banner--centrado .banner-title .banner-subtitle .banner-term{display:inline}.banner--centrado .banner-title .banner-subtitle .banner-code::after{content:" · ";opacity:0.6}@media (max-width: 767.98px){.banner--centrado .banner-title .banner-subtitle .banner-code{display:inline}}@media (max-width: 1024px){.banner{min-height:32rem}.banner--perspectiva .banner-title{transform:none;background-color:rgba(0,0,0,0.55);border-radius:0.75rem}.banner-title h1{text-align:center}.banner-title .banner-subtitle{text-align:center}}@media (max-width: 575px){.banner{min-height:24rem;border-width:0.5em !important}.banner-title{background-color:rgba(0,0,0,0.55);border-radius:0.75rem}}.main-content{color:var(--text-color);overflow-wrap:break-word}.content h1{font-weight:800;border-bottom:5px solid var(--header-color)}.content h2{font-weight:600;border-bottom:3px dotted var(--header-color)}.content h3{font-weight:600;font-size:1.35rem}.content h1.page-header{margin-bottom:1.5rem;font-family:var(--header-font),sans-serif;font-size:3.8rem;font-weight:700;border-bottom:0;text-shadow:0.1rem 0.1rem var(--shadow-color)}.content figure{max-width:880px;margin:1.5rem auto 2rem}.content figure img{display:block;width:auto;max-width:100%;margin:0 auto;border:1px solid #dee2e6;border-radius:0.5rem;box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.08)}.content figure figcaption{margin-top:0.6rem;font-size:0.9rem;color:#6c757d;text-align:center}.content table:not(.table){width:100%;margin-bottom:1rem;border-collapse:collapse}.content table:not(.table) th,.content table:not(.table) td{padding:0.5rem;border-bottom:1px solid #dee2e6}.content table:not(.table) th{text-align:left;font-weight:600}.course-info{font-size:90%}.course-info>dd{padding-left:0}.anuncios{margin:0 0 2.5rem;padding:1.1rem 1.4rem;border:1px solid #dee2e6;border-left:5px solid var(--main-color);border-radius:0.75rem;background-color:#fff}.anuncios-title{display:flex;align-items:center;gap:0.45rem;margin:0;font-family:var(--header-font),sans-serif;font-size:1.5rem;font-weight:700;color:var(--main-color);border-bottom:0 !important}.anuncios-subtitle{display:flex;align-items:center;gap:0.4rem;margin:0.7rem 0 0.4rem;font-size:1.05rem;font-weight:500}.anuncios-texto{margin:0 0 0.6rem}.anuncios-texto:last-child{margin-bottom:0}.anuncios-lista{margin:0 0 0.6rem;padding-left:1.2rem}.anuncios-lista li{margin-bottom:0.2rem}.anuncios-lista li:last-child{margin-bottom:0}.anuncios-lista:last-child{margin-bottom:0}.anuncios-fechas{margin:0;padding-left:0;list-style:none}.anuncios-fechas li{display:flex;align-items:baseline;gap:0.6rem;padding:0.35rem 0;border-bottom:1px solid #dee2e6}.anuncios-fechas li:last-child{border-bottom:none}.anuncios-fecha{min-width:7em;font-weight:500}.anuncios-hora,.anuncios-aula{color:#6c757d}.anuncios-tachada .anuncios-fecha,.anuncios-tachada .anuncios-hora,.anuncios-tachada .anuncios-aula{color:#6c757d;text-decoration:line-through}.anuncios-reprogramada{font-weight:500;color:var(--main-color)}@media (max-width: 575px){.main-content{border-radius:0 !important}.content h1.page-header{font-size:2.4rem}.anuncios-fechas li{flex-wrap:wrap;gap:0.3rem}}.docentes-section{margin-top:2rem}.docentes-section:first-child{margin-top:0}.docentes-section-title{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.75rem;font-family:var(--header-font),sans-serif;font-weight:600;font-size:1.3rem;border-bottom:2px dotted var(--header-color);padding-bottom:0.35rem}.docentes-person{display:flex;align-items:center;gap:0.9rem;padding:0.5rem 0}.docentes-person-img{width:68px;height:68px;min-width:68px;border-radius:50%;object-fit:cover;filter:grayscale(100%);transition:filter 0.25s ease}.docentes-person:hover .docentes-person-img{filter:grayscale(0%)}.docentes-person-name{font-weight:500;line-height:1.25}.docentes-person-name a{color:var(--main-color);text-decoration:underline}.calendario{border-left:none;border-right:none}.calendario th,.calendario td{border-left:none;border-right:none}.calendario td.calendar-apuntes,.calendario td.calendar-slides,.calendario td.calendar-video{text-align:center}.calendario td.calendar-apuntes a.schedule-badge,.calendario td.calendar-slides a.schedule-badge,.calendario td.calendar-video a.schedule-badge{display:inline-block;padding:0.25rem 0.4rem;border-radius:0.35rem}.calendario a.schedule-badge{white-space:nowrap;border:none !important}.calendario a.schedule-badge:hover{background-color:var(--highlight-bg);color:var(--link-color);text-decoration:none}.calendario tbody tr:nth-of-type(odd) td{background-color:var(--stripe-row-bg)}.calendario tbody tr.cal-feriado td{background-color:var(--feriado-row-bg)}span.cal-entrega{font-weight:500;color:var(--deadline-color)}.calendar-date{font-size:95%}.calendario .cal-modalidad{display:block;width:fit-content;margin-top:0.35rem;padding:0.05rem 0.5rem;border-radius:999px;font-size:0.72rem;font-weight:500;line-height:1.6;letter-spacing:0.01em;white-space:nowrap}.calendario .cal-modalidad-presencial{background-color:var(--modalidad-presencial-bg);color:var(--modalidad-presencial-fg)}.calendario .cal-modalidad-virtual{background-color:var(--modalidad-virtual-bg);color:var(--modalidad-virtual-fg)}.calendario .cal-modalidad-asincronica{background-color:var(--modalidad-asincronica-bg);color:var(--modalidad-asincronica-fg)}.calendario .cal-modalidad-suspendida{background-color:var(--modalidad-suspendida-bg);color:var(--modalidad-suspendida-fg)}.calendario .calendar-activity{vertical-align:top}.calendario .calendar-activity .lecture-title{display:block;margin-bottom:0.35rem;font-weight:700}.calendario .calendar-activity .cal-activity-dl{display:grid;grid-template-columns:minmax(5.5rem, auto) 1fr;gap:0.2rem 0.65rem;align-items:baseline;margin:0;padding-left:0.25rem;font-size:0.95em}.calendario .calendar-activity .cal-activity-dl dt{margin:0;font-weight:400;color:#6c757d}.calendario .calendar-activity .cal-activity-dl dd{margin:0;padding-left:0}.calendario .calendar-activity .cal-activity-dl ul.cal-reading-list{display:flex;flex-direction:column;gap:0.2rem;margin:0;padding-left:0;list-style:none}.calendario .calendar-activity .cal-activity-dl ul.cal-reading-list>li{margin:0}@media (min-width: 768px){.calendario .cal-mobile-only{display:none}}@media (max-width: 767.98px){.calendario th:nth-child(3),.calendario th:nth-child(4),.calendario th:nth-child(5),.calendario td.calendar-apuntes,.calendario td.calendar-slides,.calendario td.calendar-video{display:none}}.cal-bibliografia-heading{margin-top:2rem;font-size:1.15rem;font-weight:600}.cal-bibliografia{margin:0.5rem 0 0;padding-left:1.5rem}.cal-bibliografia cite{font-style:italic}@media (max-width: 575px){.calendario{font-size:85%}}.footer{z-index:20;border-top:1px solid rgba(255,255,255,0.12);color:rgba(255,255,255,0.7)}.footer-brand{font-family:var(--header-font),sans-serif;font-weight:600;color:#fff}.footer-email{font-size:0.9rem;color:var(--glow-color)}.footer-email:hover{background-color:var(--glow-color);color:#04202a}.dropdown-menu .dropdown-item:hover{background-color:var(--main-color);color:#fff}
