﻿@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700;800&display=swap');

:root {
    --azul: #102b49;
    --azul-oscuro: #071c32;
    --dorado: #b9954e;
    --dorado-claro: #dfc787;
    --texto: #1c2b3b;
    --gris: #697789;
    --fondo: #f5f7f9;
    --borde: #e1e6ec;
}

* { box-sizing: border-box; }

html {
    scroll-behavior: smooth;
    scroll-padding-top: 90px;
}

body {
    margin: 0;
    color: var(--texto);
    font-family: "DM Sans", sans-serif;
    line-height: 1.65;
}

a { text-decoration: none; color: inherit; }

.encabezado {
    min-height: 78px;
    padding: 12px max(5%, calc((100% - 1180px) / 2));
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    color: white;
    background: var(--azul-oscuro);
}

.marca {
    display: flex;
    align-items: center;
    gap: 12px;
}

.logo {
    width: 48px;
    height: 48px;
    object-fit: contain;
    background: white;
    border-radius: 50%;
    padding: 3px;
}

.pagina-inicio .logo { width: 68px; height: 68px; }

.universidad {
    margin: 0;
    color: var(--dorado-claro);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
}

.marca h2 {
    margin: 0;
    color: white;
    font-size: 15px;
    text-transform: uppercase;
}

nav {
    display: flex;
    align-items: center;
    gap: 22px;
}

nav a {
    font-size: 12px;
    font-weight: 600;
    color: #e5ebf2;
}

nav a:hover { color: var(--dorado-claro); }

.menu-toggle {
    display: none;
    color: white;
    border: 0;
    background: transparent;
    font-size: 26px;
    cursor: pointer;
}

.portada {
    min-height: 430px;
    display: flex;
    align-items: center;
    color: white;
    background:
      linear-gradient(90deg, rgba(7,28,50,.96), rgba(7,28,50,.72)),
      url("../assets/img/portada.jpg") center/cover,
      var(--azul);
}

.contenido-portada {
    width: min(1120px, 90%);
    margin: auto;
    padding: 65px 0;
}

.etiqueta {
    color: var(--dorado);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .17em;
    margin: 0 0 10px;
}

.portada h1 {
    margin: 0;
    font: 800 clamp(42px, 6vw, 68px)/1.05 "Manrope", sans-serif;
    text-transform: uppercase;
    letter-spacing: -.04em;
}

.portada h1 span { color: var(--dorado-claro); }

.portada h3 {
    color: var(--dorado-claro);
    font: 700 clamp(18px, 2vw, 23px) "Manrope", sans-serif;
    margin: 16px 0 8px;
}

.portada .contenido-portada > p:not(.etiqueta) {
    max-width: 530px;
    color: #e1e8f0;
    margin: 8px 0 25px;
}

.boton {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border: 0;
    border-radius: 6px;
    padding: 12px 18px;
    background: var(--dorado);
    color: #132237;
    font: 700 13px "DM Sans", sans-serif;
    cursor: pointer;
    transition: .2s ease;
}

.boton:hover {
    background: var(--dorado-claro);
    transform: translateY(-1px);
}

.boton-azul {
    width: 100%;
    background: var(--azul);
    color: white;
}

.boton-azul:hover { background: #1c4268; }

.seccion {
    padding: 70px max(5%, calc((100% - 1120px) / 2));
}

.seccion-clara { background: var(--fondo); }

.titulo-seccion { max-width: 680px; margin-bottom: 28px; }

h2 {
    font: 800 clamp(28px, 3.5vw, 38px)/1.2 "Manrope", sans-serif;
    color: var(--azul);
    margin: 0 0 14px;
}

.titulo-seccion > p:last-child,
.bloque-servicio > div > p:not(.etiqueta) {
    color: var(--gris);
}

.tarjetas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.tarjeta {
    padding: 25px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: white;
    transition: .2s ease;
}

.tarjeta:hover {
    border-color: var(--dorado);
    transform: translateY(-3px);
}

.tarjeta > span {
    color: var(--dorado);
    font-weight: 700;
    font-size: 12px;
}

.tarjeta h3 {
    color: var(--azul);
    font: 700 20px "Manrope", sans-serif;
    margin: 10px 0;
}

.tarjeta p { color: var(--gris); font-size: 14px; margin-bottom: 0; }

.nota { color: var(--gris); font-size: 11px; margin-top: 20px; }

.bloque-servicio {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 60px;
    align-items: start;
}

.panel {
    padding: 25px;
    border: 1px solid var(--borde);
    border-radius: 10px;
    background: white;
    box-shadow: 0 8px 24px rgba(16,43,73,.05);
}

.panel label {
    display: block;
    margin: 0 0 7px;
    font-size: 12px;
    font-weight: 700;
}

.panel input, .panel select {
    width: 100%;
    padding: 12px;
    margin-bottom: 15px;
    border: 1px solid #d7dee6;
    border-radius: 6px;
    background: white;
    font: inherit;
    font-size: 13px;
}

.panel input:focus, .panel select:focus {
    outline: 2px solid #e5d4ad;
    border-color: var(--dorado);
}

.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.mensaje { color: #286349; font-size: 12px; }

#listaMaterias { list-style: none; padding: 0; }
#listaMaterias li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 0;
    border-bottom: 1px solid var(--borde);
    font-size: 12px;
}

#listaMaterias button {
    border: 0;
    background: transparent;
    color: #9b4747;
    cursor: pointer;
}

.informacion h3 { color: var(--azul); margin: 0; }
.informacion p { color: var(--gris); font-size: 13px; }
.informacion hr { border: 0; border-top: 1px solid var(--borde); margin: 22px 0; }

.enlace { display: inline-block; margin-top: 12px; color: #8a682c; font-size: 13px; font-weight: 700; }
.enlace:hover { text-decoration: underline; }

footer {
    padding: 25px 5%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    background: var(--azul-oscuro);
    color: white;
}

footer strong { font: 700 13px "Manrope", sans-serif; }
footer p { color: #b9c5d2; font-size: 11px; margin: 3px 0 0; }

@media (max-width: 950px) {
    .encabezado { position: relative; }
    .menu-toggle { display: block; }
    nav {
        display: none;
        position: absolute;
        z-index: 5;
        top: 100%;
        left: 0;
        right: 0;
        padding: 15px 5%;
        background: var(--azul-oscuro);
        flex-direction: column;
        align-items: stretch;
        gap: 0;
    }
    nav.abierto { display: flex; }
    nav a { padding: 12px 0; border-bottom: 1px solid #ffffff18; }
    .tarjetas { grid-template-columns: 1fr; }
    .bloque-servicio { grid-template-columns: 1fr; gap: 25px; }
}

@media (max-width: 600px) {
    .encabezado { padding: 12px 5%; }
    .marca h2 { font-size: 12px; }
    .logo { width: 40px; height: 40px; }
    .pagina-inicio .logo { width: 54px; height: 54px; }
    .portada { min-height: 390px; }
    .contenido-portada { padding: 48px 0; }
    .seccion { padding-top: 50px; padding-bottom: 50px; }
    .panel { padding: 19px; }
    footer { align-items: flex-start; flex-direction: column; }
}

/* PLANIFICADOR ACADEMICO */
.planificador{max-width:1320px;margin:auto;padding:28px 22px 55px}
.planificador-hero{background:linear-gradient(120deg,#091a30,#1d4268);color:white;padding:34px;border-radius:16px}
.planificador-hero h2{font-size:clamp(2rem,4vw,3rem);line-height:1.15;margin:8px 0 12px}
.planificador-hero>p:not(.etiqueta){max-width:760px;color:#e1e9f2}
.resumen-horario{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.resumen-horario div{min-width:130px;display:grid;gap:3px;padding:14px 18px;background:#ffffff18;border:1px solid #ffffff30;border-radius:10px}
.resumen-horario strong{color:#e3c36d;font-size:1.8rem}
.resumen-horario span{color:#e1e9f2;font-size:.88rem}
.planificador-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.8fr);gap:22px;margin-top:24px;align-items:start}
.catalogo-panel,.seleccion-panel,.resultado-conflictos,.vista-semanal{background:white;border:1px solid var(--borde);border-radius:14px;padding:23px;box-shadow:0 5px 18px #1027440b;min-width:0}
.cabecera-panel{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}
.cabecera-panel h2,.resultado-conflictos h2,.vista-semanal h2{color:var(--azul);margin:0;font-size:1.45rem}
.cabecera-panel .etiqueta,.resultado-conflictos .etiqueta,.vista-semanal .etiqueta{margin:0 0 5px}
.contador,.codigo-materia,.grupo-materia{background:#edf2f7;color:var(--azul);border-radius:20px;padding:5px 10px;font-size:.8rem;font-weight:700}
.catalogo-panel>label,.filtros-horario label{display:block;margin:12px 0 6px}
.filtros-horario{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.catalogo-lista,.elegidas-lista{display:grid;gap:12px;margin-top:18px}
#catalogoMaterias[hidden]{display:none!important}
.opcion-materia,.elegida-card{border:1px solid var(--borde);border-radius:10px;padding:16px;min-width:0}
.opcion-materia h3,.elegida-card h3{margin:10px 0 5px;color:var(--azul);font-size:1.05rem}
.opcion-top{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.detalle-materia,.detalle-horario{font-size:.88rem;margin:7px 0;overflow-wrap:anywhere}
.detalle-horario{color:#334d67}
.boton-pequeno{padding:8px 12px;font-size:.85rem;margin-top:8px}
.boton:disabled{opacity:.5;cursor:not-allowed}
.estado-pendiente{color:#8a5a00;background:#fff5db;border-radius:6px;padding:8px 10px;font-size:.86rem}
.estado-ok{color:#17613a;background:#eaf7ef;border-radius:8px;padding:13px}
.estado-neutral{background:#eef3f8;border-radius:8px;padding:13px}
.texto-secundario{color:#68778a;font-size:.9rem}
.boton-secundario-horario{background:#e9eef4;color:var(--azul)}
.resultado-conflictos,.vista-semanal{margin-top:24px}
.conflicto-card{border:1px solid #e7b9b9;border-left:4px solid #b33d3d;background:#fff8f8;border-radius:8px;padding:14px;margin-top:12px}
.conflicto-card strong{color:#8d2424}
.alternativa-bloque{border:1px solid var(--borde);border-radius:10px;padding:15px;margin-top:14px}
.alternativa-bloque h3{color:var(--azul);margin-top:0}
.alternativa-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-top:1px solid var(--borde)}
.aviso-pendiente{margin-top:14px;background:#fff5db;padding:14px;border-radius:8px;color:#674b14}
.aviso-pendiente p{margin-bottom:0}
.semana-grid{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:10px;overflow-x:auto;padding-bottom:8px;margin-top:20px}
.dia-columna{background:#f4f7fa;border:1px solid #e1e7ef;border-radius:10px;padding:10px;min-height:150px}
.dia-titulo{font-size:.9rem;color:var(--azul);text-align:center;margin:4px 0 12px}
.dia-vacio{color:#8793a1;text-align:center;font-size:.85rem}
.bloque-clase{background:var(--materia-fondo,#fff);border-left:4px solid var(--materia-borde,var(--dorado));padding:9px;margin:8px 0;border-radius:6px;box-shadow:0 2px 6px #0000000a;overflow-wrap:anywhere}
.bloque-clase strong,.bloque-clase span,.bloque-clase small{display:block}
.bloque-clase strong{color:var(--azul);font-size:.82rem;line-height:1.35}
.bloque-clase span{font-size:.8rem;margin-top:5px}
.bloque-clase small{color:#68778a;margin-top:4px}
@media(max-width:900px){.planificador-layout{grid-template-columns:1fr}.semana-grid{grid-template-columns:repeat(3,minmax(135px,1fr))}}
@media(max-width:560px){.planificador{padding:18px 12px 35px}.planificador-hero,.catalogo-panel,.seleccion-panel,.resultado-conflictos,.vista-semanal{padding:17px}.filtros-horario{grid-template-columns:1fr}.alternativa-item{align-items:flex-start;flex-direction:column}.semana-grid{grid-template-columns:repeat(2,minmax(135px,1fr))}}
@media print{@page{size:landscape;margin:12mm}body{background:white}.planificador{max-width:none;padding:0}body *{visibility:hidden!important}.vista-semanal,.vista-semanal *{visibility:visible!important}.vista-semanal{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:0;border:0;box-shadow:none}.vista-semanal .cabecera-panel{margin:0 0 8px}.semana-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;overflow:visible;padding:0;margin:0}.dia-columna{break-inside:avoid;min-height:0;padding:6px;background:white}.dia-titulo{margin:2px 0 8px}.bloque-clase{break-inside:avoid;box-shadow:none;padding:6px;margin:5px 0}.bloque-clase strong{font-size:9pt}.bloque-clase span,.bloque-clase small{font-size:8pt}}

/* PAGINA INSTITUCIONAL */
.institucional{max-width:1180px;margin:0 auto;padding:36px 5% 64px}
.encabezado-institucional{display:block;padding-top:12px;padding-bottom:10px}
.cabecera-institucional{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(110px,1fr) minmax(0,2fr) minmax(110px,1fr);align-items:center;gap:24px}
.logo-lateral{display:flex;align-items:center;width:max-content}
.logo-lateral-izquierdo{justify-self:start}
.logo-lateral-derecho{justify-self:end}
.logo-lateral img{display:block;width:104px;height:104px;object-fit:contain;background:transparent;border:0;border-radius:0;padding:0}
.titulo-cabecera-institucional{text-align:center;min-width:0}
.titulo-cabecera-institucional p{margin:0;color:var(--dorado-claro);font-size:clamp(.85rem,1.5vw,1.12rem);font-weight:700;line-height:1.3}
.titulo-cabecera-institucional h1{margin:5px 0 0;color:#fff;font-family:Manrope,sans-serif;font-size:clamp(1.25rem,2.2vw,1.8rem);line-height:1.2;text-transform:uppercase}
.encabezado-institucional nav{justify-content:center;margin:6px auto 0}
.institucional-portada{display:block;padding:30px 34px;background:linear-gradient(120deg,#091a30,#1d4268);color:white;border-radius:16px}
.institucional-portada h1{font-family:Manrope,sans-serif;font-size:clamp(1.65rem,3vw,2.55rem);line-height:1.15;margin:5px 0 8px}
.institucional-portada>p:last-child{margin:0;color:#e6edf4}
.bloque-autoridades{margin-top:42px}
.titulo-institucional{margin-bottom:18px}
.titulo-institucional .etiqueta{margin-bottom:5px}
.titulo-institucional h2{color:var(--azul);margin:0;font-family:Manrope,sans-serif;font-size:clamp(1.35rem,2.8vw,1.8rem);line-height:1.25}
.titulo-institucional>p:last-child{color:var(--gris);margin:8px 0 0}
.tarjetas-autoridades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tarjeta-autoridad{display:flex;align-items:center;gap:20px;min-height:184px;padding:18px;background:white;border:1px solid var(--borde);border-radius:12px;box-shadow:0 6px 18px #102b490b}
.iniciales{display:grid;place-items:center;flex:0 0 58px;height:58px;border-radius:50%;background:#e8eef5;color:var(--azul);font-family:Manrope,sans-serif;font-weight:800;font-size:1.05rem}
.foto-autoridad{display:flex;flex:0 0 124px;width:124px;height:148px;align-items:center;justify-content:center;flex-direction:column;gap:5px;border-radius:10px;background:linear-gradient(145deg,#e7edf3,#d9e2eb);color:var(--azul);font-family:Manrope,sans-serif;font-weight:800;font-size:1.4rem;border:1px solid #d2dbe5}
.foto-persona{display:block;flex:0 0 124px;width:124px;height:148px;object-fit:cover;object-position:center 30%;border-radius:10px}
.foto-autoridad small{font:500 .72rem "DM Sans",sans-serif;color:var(--gris)}
.tarjeta-autoridad h3{margin:0;color:var(--azul);font-size:1rem;line-height:1.35}
.tarjeta-autoridad p{margin:5px 0 0;color:var(--gris);font-size:.92rem}
.tarjeta-carrera{grid-template-columns:minmax(0,1fr)}
.tarjeta-carrera .tarjeta-autoridad{border-left:4px solid var(--dorado)}
.consejo-carrera{margin-top:48px;padding:30px;background:#fff;border:1px solid var(--borde);border-radius:16px;box-shadow:0 8px 24px #102b490d}
.mesa-consejo,.comisiones-consejo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.cargo-consejo,.comision-consejo{padding:20px;background:var(--fondo);border:1px solid var(--borde);border-radius:10px}
.cargo-consejo{display:flex;align-items:center;gap:16px;border-top:3px solid var(--dorado)}
.cargo-consejo p{margin:0 0 5px;color:var(--gris);font-size:.88rem;font-weight:700}
.cargo-consejo h3{margin:0;color:var(--azul);font-size:1rem}
.foto-consejo{display:flex;flex:0 0 78px;width:78px;height:92px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border-radius:8px;background:linear-gradient(145deg,#e7edf3,#d9e2eb);color:var(--azul);font-family:Manrope,sans-serif;font-weight:800;font-size:1rem;border:1px solid #d2dbe5}
.foto-consejo small{font:500 .68rem "DM Sans",sans-serif;color:var(--gris)}
.comisiones-consejo{margin-top:16px}
.comision-consejo h3{margin:0;color:var(--azul);font-size:1rem;line-height:1.4}
.miembros-comision{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.miembro-consejo{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;background:#fff;border:1px solid var(--borde);border-radius:9px}
.miembro-consejo p{margin:0;font-size:.9rem;line-height:1.35;color:var(--texto)}
@media(max-width:700px){.institucional{padding:22px 5% 44px}.institucional-portada{padding:22px 20px}.tarjetas-autoridades,.mesa-consejo,.comisiones-consejo{grid-template-columns:1fr}.bloque-autoridades{margin-top:32px}.consejo-carrera{padding:20px;margin-top:36px}.foto-autoridad{flex-basis:112px;width:112px;height:138px}.foto-persona{flex-basis:112px;width:112px;height:138px}}
@media(max-width:950px){.encabezado-institucional nav{margin:0}.encabezado-institucional .menu-toggle{margin:8px 0 0 auto}}
@media(max-width:600px){.cabecera-institucional{grid-template-columns:78px minmax(0,1fr) 78px;gap:10px}.logo-lateral img{width:76px;height:76px}.titulo-cabecera-institucional p{font-size:.82rem}.titulo-cabecera-institucional h1{font-size:1.08rem}}
@media(max-width:420px){.cabecera-institucional{grid-template-columns:58px minmax(0,1fr) 58px;gap:7px}.logo-lateral img{width:56px;height:56px}.titulo-cabecera-institucional p{font-size:.7rem}.titulo-cabecera-institucional h1{font-size:.92rem}.institucional-portada{padding:20px 16px}.tarjeta-autoridad{gap:12px;padding:13px;min-height:164px}.foto-autoridad{flex-basis:98px;width:98px;height:132px}.foto-persona{flex-basis:98px;width:98px;height:132px}.cargo-consejo{gap:10px;padding:12px}.foto-consejo{flex-basis:64px;width:64px;height:78px}.miembros-comision{grid-template-columns:1fr}.miembro-consejo{gap:12px}}

/* Fotos de autoridades: al añadir cada JPG y recargar, reemplaza el marcador. */
.foto-slot{position:relative;display:flex;flex:0 0 124px;width:124px;height:148px;align-items:center;justify-content:center;overflow:hidden;border-radius:10px;background:linear-gradient(145deg,#e7edf3,#d9e2eb);border:1px solid #d2dbe5;color:var(--gris);font-size:.76rem;text-align:center}
.foto-slot img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.foto-slot img[hidden],.foto-slot span[hidden]{display:none}
.foto-slot span{padding:8px}
.foto-slot-consejo{flex-basis:78px;width:78px;height:92px;border-radius:8px}
.boton-buscar-horario{margin-top:14px}
@media(max-width:700px){.foto-slot{flex-basis:112px;width:112px;height:138px}}
@media(max-width:420px){.foto-slot{flex-basis:98px;width:98px;height:132px}.foto-slot-consejo{flex-basis:64px;width:64px;height:78px}}


/* Capa visual integrada desde estilos-prueba.css */
/* Capa temporal de prueba visual. Se puede revertir quitando esta hoja de los HTML. */
:root{
    --prueba-superficie:#fff;
    --prueba-fondo:#f2f4f7;
    --prueba-sombra:0 16px 40px rgba(16,43,73,.09);
    --prueba-radio:18px;
}

body{background:var(--prueba-fondo)}
.encabezado{
    position:relative;
    border-bottom:3px solid var(--dorado);
    background:linear-gradient(112deg,#071c32 0%,#102b49 70%,#193a5e 100%);
    box-shadow:0 8px 24px rgba(7,28,50,.12);
}
.marca{gap:15px}
.logo{width:54px;height:54px;padding:2px;background:transparent;border-radius:0}
.pagina-inicio .logo{width:74px;height:74px}
nav{gap:8px}
nav a{padding:10px 13px;border-radius:999px;transition:background .2s ease,color .2s ease}
nav a:hover,nav a.activo{color:#fff;background:rgba(255,255,255,.12)}
nav a.activo{box-shadow:inset 0 -2px var(--dorado-claro)}

.portada{
    position:relative;
    min-height:500px;
    overflow:hidden;
    background:
        radial-gradient(ellipse at 78% 35%,rgba(223,199,135,.18),transparent 32%),
        linear-gradient(112deg,#071c32 0%,#102b49 65%,#1b4268 100%);
}
.portada::before,.portada::after{content:"";position:absolute;pointer-events:none}
.portada::before{
    width:min(40vw,500px);aspect-ratio:1;right:7%;top:50%;
    border:1px solid rgba(223,199,135,.32);border-radius:50%;
    transform:translateY(-50%);box-shadow:0 0 0 34px rgba(223,199,135,.035),0 0 0 68px rgba(223,199,135,.025)
}
.portada::after{height:68%;width:3px;right:12%;top:16%;background:linear-gradient(transparent,var(--dorado-claro),transparent);opacity:.65}
.contenido-portada{position:relative;z-index:1;padding:82px 0}
.portada h1{max-width:760px;text-shadow:0 8px 30px #071c3255}
.portada .etiqueta{color:var(--dorado-claro)}
.portada .boton{padding:14px 22px;border-radius:8px;box-shadow:0 8px 22px #0003}

.seccion{padding-top:76px;padding-bottom:76px}
.titulo-seccion h2,.bloque-servicio h2{font-family:"Manrope",sans-serif;letter-spacing:-.025em;line-height:1.2}
.titulo-seccion>p:last-child,.bloque-servicio>div>p:not(.etiqueta){line-height:1.8}
.tarjetas{gap:20px}
.tarjeta,.panel,.tarjeta-autoridad,.consejo-carrera,.catalogo-panel,.seleccion-panel,.resultado-conflictos,.vista-semanal{
    border-radius:var(--prueba-radio);
    box-shadow:var(--prueba-sombra);
}
.tarjeta{
    position:relative;overflow:hidden;padding:28px 26px 30px;
    border:1px solid #e3e8ee;background:linear-gradient(180deg,#fff,#fbfcfd)
}
.tarjeta::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:linear-gradient(90deg,var(--dorado),#e6d5a9 65%,transparent)}
.tarjeta:hover{transform:translateY(-5px);box-shadow:0 22px 42px rgba(16,43,73,.13)}
.tarjeta>span{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#f5f0e4;color:#87692f;font-weight:800}
.tarjeta h3{font:700 1.22rem "Manrope",sans-serif;color:var(--azul)}
.bloque-servicio{gap:64px;align-items:center}
.panel{padding:28px;background:linear-gradient(145deg,#fff,#f8fafc);border:1px solid #e1e7ee}
.informacion{border-top:4px solid var(--dorado)}
.boton{border-radius:8px;box-shadow:0 5px 14px rgba(16,43,73,.11)}
.boton:hover{box-shadow:0 9px 18px rgba(16,43,73,.17)}
.enlace{color:#173e66;font-weight:700}
footer{border-top:3px solid var(--dorado);padding-top:30px;padding-bottom:30px;background:#071c32}

.planificador{padding-top:38px}
.planificador-hero,.institucional-portada{
    position:relative;overflow:hidden;
    background:radial-gradient(ellipse at 90% 10%,rgba(223,199,135,.2),transparent 34%),linear-gradient(112deg,#071c32,#173d64);
    border:1px solid #315371;border-radius:22px;box-shadow:0 18px 44px rgba(7,28,50,.16)
}
.planificador-hero{padding:42px}
.planificador-hero .etiqueta,.institucional-portada .etiqueta{color:var(--dorado-claro)}
.planificador-hero h2,.institucional-portada h1{font-family:"Manrope",sans-serif;letter-spacing:-.035em}
.resumen-horario div{min-width:150px;padding:16px 20px;border-radius:12px;background:#ffffff12;border-color:#ffffff35}
.catalogo-panel,.seleccion-panel,.resultado-conflictos,.vista-semanal{border-color:#e0e6ed;padding:27px}
.cabecera-panel h2,.resultado-conflictos h2,.vista-semanal h2{font-family:"Manrope",sans-serif;letter-spacing:-.02em}
.catalogo-panel input,.catalogo-panel select,.panel input{min-height:46px;border-radius:9px;border-color:#d4dce5;background:#fbfcfd}
.catalogo-panel input:focus,.catalogo-panel select:focus,.panel input:focus{outline:3px solid #b9954e35;border-color:var(--dorado)}
.boton-buscar-horario{padding:13px 20px}
.dia-columna{border-radius:11px;background:#f4f6f8}
.bloque-clase{border-radius:8px}

.institucional{padding-top:42px}
.institucional-portada{padding:38px 42px}
.bloque-autoridades{margin-top:48px}
.titulo-institucional h2{font-family:"Manrope",sans-serif;letter-spacing:-.025em}
.tarjeta-autoridad{min-height:205px;padding:22px;background:linear-gradient(145deg,#fff,#f9fafb);border-color:#e0e6ed}
.foto-slot{flex-basis:140px;width:140px;height:164px;border-radius:12px;background:linear-gradient(145deg,#e9edf2,#dce4ec)}
.foto-slot-consejo{flex-basis:88px;width:88px;height:104px}
.consejo-carrera{padding:34px;border-color:#e0e6ed}
.cargo-consejo,.comision-consejo{border-radius:14px}

body>main.seccion{max-width:900px;margin:0 auto;padding:78px 5% 100px}
body>main.seccion>.etiqueta{color:#987633}
body>main.seccion>.titulo-seccion{margin:0 0 12px;font-size:clamp(2rem,4vw,3rem)}
body>main.seccion>.panel{margin-top:30px;padding:32px}
body>main.seccion form{display:grid;gap:13px;max-width:560px}
body>main.seccion form label{font-weight:700;color:var(--azul)}
body>main.seccion form .boton{justify-self:start;margin-top:6px}

@media(max-width:900px){
    .encabezado{flex-wrap:wrap}
    nav{flex-wrap:wrap;gap:4px}
    .bloque-servicio{gap:34px}
    .foto-slot{flex-basis:120px;width:120px;height:148px}
}
@media(max-width:600px){
    .encabezado{padding:12px 5%;gap:12px}
    nav{width:100%;justify-content:center}
    nav a{padding:8px 9px;font-size:11px}
    .portada{min-height:440px}
    .portada::before{width:70vw;right:-15%;opacity:.7}
    .portada::after{right:8%}
    .contenido-portada{padding:62px 0}
    .seccion{padding-top:54px;padding-bottom:54px}
    .tarjetas{grid-template-columns:1fr}
    .bloque-servicio{grid-template-columns:1fr}
    .planificador-hero,.institucional-portada{padding:27px 22px}
    .tarjetas-autoridades,.mesa-consejo,.comisiones-consejo{grid-template-columns:1fr}
    .tarjeta-autoridad{min-height:0}
    .foto-slot{flex-basis:108px;width:108px;height:132px}
    .foto-slot-consejo{flex-basis:78px;width:78px;height:92px}
    .consejo-carrera{padding:22px}
    body>main.seccion{padding:54px 5% 75px}
    body>main.seccion>.panel{padding:24px}
}

@media print{
    @page{size:landscape;margin:12mm}
    body{background:white}
    .planificador{max-width:none;padding:0}
    body *{visibility:hidden!important}
    .vista-semanal,.vista-semanal *{visibility:visible!important}
    .vista-semanal{position:absolute;left:0;top:0;width:100%;max-width:none;margin:0;padding:0;border:0;box-shadow:none}
    .vista-semanal .cabecera-panel{margin:0 0 8px}
    .semana-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;overflow:visible;padding:0;margin:0}
    .dia-columna{break-inside:avoid;min-height:0;padding:6px;background:white}
    .dia-titulo{margin:2px 0 8px}
    .bloque-clase{break-inside:avoid;box-shadow:none;padding:6px;margin:5px 0}
    .bloque-clase strong{font-size:9pt}
    .bloque-clase span,.bloque-clase small{font-size:8pt}
}

/* Segundo ajuste de la prueba: más dorado y un encabezado más ligero. */
body:not(.pagina-institucional) .encabezado{
    background:#fffdf8;
    color:var(--azul);
    border-bottom:4px solid var(--dorado);
    box-shadow:0 5px 20px rgba(16,43,73,.08)
}
body:not(.pagina-institucional) .universidad{color:#8c6b2e;font-size:11px;letter-spacing:.14em}
body:not(.pagina-institucional) nav a{color:#30465d}
body:not(.pagina-institucional) nav a:hover,
body:not(.pagina-institucional) nav a.activo{color:var(--azul);background:#f4ead2}
body:not(.pagina-institucional) nav a.activo{box-shadow:inset 0 -2px var(--dorado)}
.portada{
    min-height:520px;
    background:linear-gradient(90deg,#071c32 0%,#102b49 56%,#b9954e 56%,#ead8aa 100%);
}
.portada::before{
    width:min(34vw,430px);right:6%;
    border-color:rgba(16,43,73,.18);
    box-shadow:0 0 0 30px rgba(16,43,73,.035),0 0 0 60px rgba(16,43,73,.025)
}
.portada::after{right:43%;background:linear-gradient(transparent,#f0dfb4,transparent);opacity:.8}
.portada-layout{
    position:relative;z-index:1;
    width:min(1120px,90%);min-height:520px;margin:auto;
    display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);
    align-items:center;gap:38px
}
.contenido-portada{width:auto;margin:0;padding:68px 0}
.portada-emblema{
    justify-self:center;width:min(100%,360px);margin:0;padding:0;
    background:transparent;border:0;border-radius:0;
    box-shadow:none;backdrop-filter:none
}
.portada-emblema img{display:block;width:100%;max-height:360px;object-fit:contain;mix-blend-mode:normal}
.portada .etiqueta{display:inline-block;padding:7px 11px;color:#fff2cf;background:#b9954e;border-radius:4px;letter-spacing:.12em}
.portada h1 span{color:#f0d899}
.portada .boton{background:#dfc787;color:#102b49}
.portada .boton:hover{background:#f0d899}
.seccion-clara{background:#eee5d2}
.tarjeta::before{height:6px;background:linear-gradient(90deg,#9b7835,#d2b66f 58%,#eadbb7)}
.tarjeta>span{background:#f2e6c8;color:#74571f}
.informacion{background:linear-gradient(145deg,#fffdf8,#f3e8cf);border-top-color:#b9954e}
.planificador-hero{
    color:var(--azul);
    background:radial-gradient(ellipse at 92% 12%,rgba(185,149,78,.24),transparent 36%),linear-gradient(115deg,#fffdf8,#f0e4c5);
    border-color:#ddc990;box-shadow:0 16px 38px rgba(111,83,28,.12)
}
.planificador-hero .etiqueta{color:#8b692d}
.planificador-hero>p:not(.etiqueta){color:#40536a}
.planificador-hero .resumen-horario div{background:#fffaf0;border-color:#dfcfaa}
.planificador-hero .resumen-horario strong{color:#8b692d}
.planificador-hero .resumen-horario span{color:#40536a}
.institucional-portada{border-left:8px solid var(--dorado)}
.cargo-consejo>div:last-child>p{color:#8b692d}
.boton{background:#c5a45c;color:#102b49}
.boton:hover{background:#dfc787}
@media(max-width:900px){
    .portada-layout{gap:22px}
    .portada-emblema{width:min(100%,300px)}
    .portada-emblema img{max-height:300px}
}
@media(max-width:600px){
    .portada{background:linear-gradient(180deg,#071c32 0%,#102b49 60%,#b9954e 60%,#ead8aa 100%)}
    .portada::before{width:70vw;right:15%;top:76%;border-color:#102b4930}
    .portada::after{display:none}
    .portada-layout{min-height:0;grid-template-columns:1fr;gap:10px;padding:45px 0 34px}
    .contenido-portada{padding:10px 0 18px}
    .portada-emblema{width:min(78%,270px);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
    .portada-emblema img{max-height:240px}
}
@media print{
    .portada-layout{display:block}
}

.encabezado-institucional{
    background:linear-gradient(110deg,#fffdf8,#f5efdf);
    border-bottom:4px solid var(--dorado);
    box-shadow:0 5px 20px rgba(16,43,73,.08)
}
.cabecera-institucional{
    grid-template-columns:clamp(108px,13vw,140px) minmax(0,1fr) clamp(108px,13vw,140px);
    gap:clamp(8px,2vw,22px)
}
.logo-lateral{width:100%;justify-content:center;overflow:visible}
.logo-lateral img{
    display:block;width:clamp(92px,10vw,116px);height:clamp(92px,10vw,116px);
    max-width:100%;max-height:100%;padding:4px;object-fit:contain;object-position:center
}
.titulo-cabecera-institucional p{color:#826329}
.titulo-cabecera-institucional h1{color:var(--azul)}
.encabezado-institucional nav a{color:#30465d}
.encabezado-institucional nav a:hover,
.encabezado-institucional nav a.activo{color:var(--azul);background:#f1e5c7}
.encabezado-institucional nav a.activo{box-shadow:inset 0 -2px var(--dorado)}
@media(max-width:600px){
    .cabecera-institucional{grid-template-columns:72px minmax(0,1fr) 72px;gap:7px}
    .logo-lateral img{width:68px;height:68px;padding:2px}
    .titulo-cabecera-institucional p{font-size:.78rem}
    .titulo-cabecera-institucional h1{font-size:1.02rem}
}
@media(max-width:420px){
    .cabecera-institucional{grid-template-columns:58px minmax(0,1fr) 58px;gap:5px}
    .logo-lateral img{width:54px;height:54px;padding:2px}
    .titulo-cabecera-institucional p{font-size:.65rem}
    .titulo-cabecera-institucional h1{font-size:.85rem}
}

/* Navegación móvil: funciona con toque y mantiene contraste en todas las páginas. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
img{max-width:100%}
.encabezado .menu-toggle{
    color:var(--azul);width:46px;height:46px;display:none;
    align-items:center;justify-content:center;border:1px solid #d8c79e;
    border-radius:10px;background:#f7f0df;font-size:25px;line-height:1
}
.encabezado .menu-toggle:focus-visible,.encabezado nav a:focus-visible{
    outline:3px solid #b9954e;outline-offset:3px
}
@media(max-width:950px){
    .encabezado .menu-toggle{display:flex;flex:0 0 46px;cursor:pointer;touch-action:manipulation}
    .encabezado nav#navegacion{
        display:none;position:absolute;z-index:20;top:100%;left:0;right:0;
        flex-direction:column;align-items:stretch;gap:0;flex-wrap:nowrap;
        margin:0;padding:8px 5% 12px;background:#fffdf8;
        border:1px solid #e5d9bb;border-top:0;border-radius:0 0 14px 14px;
        box-shadow:0 14px 24px rgba(16,43,73,.16)
    }
    .encabezado nav#navegacion.abierto{display:flex}
    .encabezado nav#navegacion a,
    body:not(.pagina-institucional) nav#navegacion a,
    .encabezado-institucional nav#navegacion a{
        display:block;padding:13px 15px;color:var(--azul);font-size:15px;
        line-height:1.35;border:0;border-bottom:1px solid #eee5d2;border-radius:0
    }
    .encabezado nav#navegacion a:last-child{border-bottom:0}
    .encabezado nav#navegacion a:hover,
    .encabezado nav#navegacion a.activo{color:#102b49;background:#f3e7c9}
    .encabezado nav#navegacion a.activo{box-shadow:inset 4px 0 var(--dorado)}
    .encabezado-institucional .menu-toggle{margin:8px 5% 8px auto}
}
@media(max-width:600px){
    .encabezado:not(.encabezado-institucional){gap:10px}
    .encabezado:not(.encabezado-institucional) .marca{min-width:0;flex:1}
    .encabezado:not(.encabezado-institucional) .marca>div{min-width:0}
    .encabezado:not(.encabezado-institucional) .marca h1{font-size:1rem;line-height:1.2}
    .encabezado:not(.encabezado-institucional) .marca p:not(.universidad){display:none}
    .encabezado-institucional .menu-toggle{margin-right:5%}
    input,select,textarea{font-size:16px!important}
    .boton,.menu-toggle{min-height:44px}
}

/* Ajustes finales para pantallas táctiles, áreas seguras y lectura móvil */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { overflow-x: hidden; }
button, a, select, input { -webkit-tap-highlight-color: transparent; }
.semana-grid {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    scrollbar-gutter: stable;
}
@supports (padding: max(0px)) {
    .encabezado, footer {
        padding-left: max(5%, env(safe-area-inset-left));
        padding-right: max(5%, env(safe-area-inset-right));
    }
}
@media (max-width: 600px) {
    .portada { min-height: 0; }
    .portada-layout { width: min(1120px, calc(100% - 36px)); }
    .seccion { padding-left: max(5%, 18px); padding-right: max(5%, 18px); }
    .planificador { padding-left: 14px; padding-right: 14px; }
    .catalogo-panel, .seleccion-panel, .resultado-conflictos, .vista-semanal { min-width: 0; }
    .semana-grid { scroll-snap-type: x proximity; }
    .dia-columna { scroll-snap-align: start; }
}
@media (max-width: 380px) {
    .portada h1 { font-size: clamp(38px, 12vw, 48px); }
    .resumen-horario div { min-width: 0; flex: 1 1 42%; }
    .planificador-hero { padding: 20px 17px; }
    .tarjeta-autoridad, .cargo-consejo { align-items: flex-start; }
}

/* Publicaciones de actividades */
.actividades-principal{width:min(1120px,90%);margin:0 auto;padding:38px 0 76px}
.actividades-hero{position:relative;overflow:hidden;padding:clamp(30px,5vw,54px);border:1px solid #315371;border-radius:20px;color:#fff;background:radial-gradient(ellipse at 90% 5%,rgba(223,199,135,.2),transparent 34%),linear-gradient(112deg,#071c32,#173d64);box-shadow:0 18px 44px rgba(7,28,50,.15)}
.actividades-hero .etiqueta{color:var(--dorado-claro)}
.actividades-hero h1{max-width:760px;margin:0;color:#fff;font:800 clamp(2rem,5vw,3.35rem)/1.12 "Manrope",sans-serif;letter-spacing:-.035em}
.actividades-hero>p:last-child{max-width:680px;margin:14px 0 0;color:#e1e9f2}
.actividades-seccion{padding-top:48px}
.actividades-cabecera{margin-bottom:22px}
.actividades-cabecera h2{margin:0 0 8px;font-family:"Manrope",sans-serif}
.mensaje-actividades{color:var(--gris)}
.actividades-lista{display:grid;gap:20px}
.actividad-card{display:grid;grid-template-columns:minmax(230px,.78fr) minmax(0,1.22fr);overflow:hidden;border:1px solid var(--borde);border-radius:16px;background:#fff;box-shadow:0 10px 28px rgba(16,43,73,.07)}
.actividad-portada{min-height:250px;margin:0;background:#e8edf2}
.actividad-portada img{display:block;width:100%;height:100%;min-height:250px;max-height:420px;object-fit:cover}
.actividad-cuerpo{min-width:0;padding:clamp(22px,4vw,34px)}
.actividad-fecha{margin:0 0 8px;color:#8b692d;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.actividad-cuerpo h2{margin:0 0 12px;color:var(--azul);font:700 clamp(1.35rem,2.5vw,1.8rem)/1.25 "Manrope",sans-serif}
.actividad-resumen{color:#40536a;font-size:1.05rem;font-weight:600;line-height:1.6}
.actividad-texto{color:var(--gris);line-height:1.8;white-space:pre-line}
.actividad-galeria{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}
.actividad-galeria figure{height:150px;margin:0;overflow:hidden;border-radius:9px;background:#e8edf2}
.actividad-galeria img{display:block;width:100%;height:100%;object-fit:cover}
.actividad-card>.actividad-cuerpo:only-child{grid-column:1/-1}
@media(max-width:700px){
 .actividades-principal{padding-top:22px;padding-bottom:50px}
 .actividades-hero{border-radius:15px}
 .actividades-seccion{padding-top:34px}
 .actividad-card{grid-template-columns:1fr}
 .actividad-portada,.actividad-portada img{min-height:0;height:auto;aspect-ratio:16/9}
 .actividad-cuerpo{padding:22px}
 .actividad-galeria figure{height:125px}
}
@media(max-width:400px){
 .actividades-principal{width:calc(100% - 32px)}
 .actividad-galeria{gap:7px}
 .actividad-galeria figure{height:105px}
}