
:root {
    --azul: #082B4B;
    --azul-oscuro: #061F38;
    --dorado: #F4B942;
    --blanco: #FFFFFF;
    --gris: #F3F6FA;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: Arial, sans-serif;
    background: var(--gris);
    color: var(--azul);
}

/* ENCABEZADO */

.encabezado {
    background: var(--azul-oscuro);
    color: white;
    padding: 15px 5%;

    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
}

.logo {
    display: flex;
    align-items: center;
    gap: 15px;
}

.escudo {
    width: 75px;
    height: 75px;
    object-fit: contain;
}

.logo-texto h2 {
    color: white;
    font-size: 24px;
}

.logo-texto p {
    font-size: 14px;
    color: #D6E1EA;
    margin-top: 5px;
}

/* NAVEGACIÓN */

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

nav a {
    color: white;
    text-decoration: none;
    font-size: 15px;
    transition: color 0.3s;
}

nav a:hover,
nav a.activo {
    color: var(--dorado);
}

.btn-acceso {
    background: var(--dorado);
    color: var(--azul-oscuro);
    padding: 12px 25px;
    border-radius: 8px;
    font-weight: bold;
}

nav a.btn-acceso,
nav a.btn-acceso:hover {
    color: var(--azul-oscuro);
}

/* PORTADA */

.hero {
    min-height: 510px;

    background-image:
        linear-gradient(
            90deg,
            rgba(6, 31, 56, 0.94) 0%,
            rgba(6, 31, 56, 0.78) 25%,
            rgba(6, 31, 56, 0.18) 55%,
            rgba(6, 31, 56, 0) 80%
        ),
        url("../img/portada_topografia.png");

    background-size: cover;
    background-position: center center;

    display: flex;
    align-items: center;

    padding: 60px 6%;
}

.hero-contenido {
    max-width: 560px;
    color: white;
}

.hero-etiqueta {
    font-size: 20px;
    letter-spacing: 7px;
}

.hero h1 {
    font-size: clamp(36px, 5vw, 65px);
    line-height: 1.1;
    margin: 15px 0 20px;
    color: white;
}

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

.hero p {
    font-size: 18px;
    line-height: 1.7;
    max-width: 500px;
}

.linea-dorada {
    width: 75px;
    height: 4px;
    background: var(--dorado);
    margin-top: 25px;
}

/* CONTENIDO ACADÉMICO */

.contenido {
    padding: 65px 6%;
    text-align: center;
}

.contenido h2 {
    margin-bottom: 35px;
    font-size: 28px;
}

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

.tarjeta {
    background: white;
    padding: 35px 25px;
    border-radius: 12px;
    text-align: left;
    box-shadow: 0 5px 20px rgba(0,0,0,0.08);
}

.tarjeta h3 {
    margin-bottom: 15px;
    color: var(--azul);
}

.tarjeta p {
    line-height: 1.7;
    color: #46596B;
}

/* PIE DE PÁGINA */

footer {
    background: var(--azul-oscuro);
    color: white;
    padding: 40px 6% 20px;
}

.footer-contenido {
    display: grid;
    grid-template-columns: 1fr 1.5fr 1.2fr;
    gap: 35px;
}

.footer-columna h3 {
    color: var(--dorado);
    margin-bottom: 12px;
    font-size: 17px;
}

.footer-columna p {
    line-height: 1.7;
    font-size: 14px;
    margin-bottom: 15px;
}

.footer-inferior {
    border-top: 1px solid #36516A;
    margin-top: 30px;
    padding-top: 20px;
    text-align: center;
    font-size: 13px;
    color: #B8C8D7;
}

/* DISEÑO RESPONSIVE */

@media (max-width: 900px) {

    .encabezado {
        flex-direction: column;
    }

    nav {
        justify-content: center;
    }

    .tarjetas {
        grid-template-columns: 1fr;
    }

    .footer-contenido {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {

    .logo-texto h2 {
        font-size: 20px;
    }

    .escudo {
        width: 60px;
        height: 60px;
    }

    nav {
        gap: 15px;
        justify-content: center;
    }

    nav a {
        font-size: 13px;
    }

    .hero {
        min-height: 470px;
        padding: 50px 6%;

        background-position: 58% center;
    }

    .hero-etiqueta {
        font-size: 14px;
        letter-spacing: 4px;
    }

    .hero p {
        font-size: 16px;
    }
}

/* Formularios de acceso y paneles */
.auth-layout {min-height:100vh;display:flex;justify-content:center;align-items:flex-start;padding:65px 20px;background:#f3f6fa}
.auth-card {background:#fff;border-radius:12px;padding:32px;max-width:680px;width:100%;box-shadow:0 5px 24px #082b4b1c}
.auth-card h1 {margin:22px 0}.auth-card label {display:block;font-weight:600;margin:15px 0}
.auth-card input:not([type=hidden]),.auth-card select {display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #9eacb9;border-radius:6px;font:inherit}
.auth-card button {background:#082b4b;color:white;border:0;border-radius:7px;padding:12px 20px;font-weight:bold;cursor:pointer;margin:12px 0}
.auth-card p {line-height:1.6;margin:12px 0}.alert {padding:12px;border-radius:6px;background:#edf2f6}.alert-error {background:#fce8e8}.alert-success {background:#e6f4ea}
.request-row {padding:14px 0;border-bottom:1px solid #ddd;overflow-wrap:anywhere}

/* Administración de usuarios */
.admin-wide{max-width:1080px}
.user-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}
.user-stats>div{background:#f3f6fa;border-radius:9px;padding:16px;text-align:center}
.user-stats strong{display:block;font-size:26px;color:#082b4b}
.user-stats span{font-size:13px;color:#516578}
.user-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:18px 0}
.user-filters label{flex:1 1 170px}
.user-entry{border:1px solid #d8e0e8;border-radius:10px;padding:18px;margin:16px 0;overflow-wrap:anywhere}
.user-heading{display:flex;align-items:center;flex-wrap:wrap;gap:10px}
.user-heading h2{font-size:19px;margin:0}
.user-tag{font-size:12px;background:#eaf0f5;padding:5px 9px;border-radius:20px}
.user-entry details{margin:12px 0}
.user-entry summary{cursor:pointer;font-weight:bold}
.user-details{padding:10px 0}
.user-actions{display:flex;flex-wrap:wrap;gap:10px}
.auth-card button.btn-danger{background:#8b2834}
@media(max-width:600px){.user-stats{grid-template-columns:repeat(2,1fr)}}

/* Perfil académico */
.profile-header{display:flex;gap:20px;align-items:center;padding:18px;background:#f3f6fa;border-radius:12px;margin:16px 0}
.profile-header h2{font-size:21px}
.profile-avatar{width:96px;height:96px;flex-shrink:0;border-radius:50%;object-fit:cover;border:3px solid #f4b942;background:#fff}
.profile-placeholder{display:flex;align-items:center;justify-content:center;font-size:42px}
.profile-section{border-top:1px solid #d8e0e8;margin-top:25px;padding-top:20px}
.profile-section h2{font-size:21px}
@media(max-width:500px){.profile-header{flex-direction:column;text-align:center}}

/* Editor de asignaturas */
.auth-card textarea{display:block;width:100%;margin-top:7px;padding:12px;border:1px solid #9eacb9;border-radius:6px;font:inherit;resize:vertical}
.user-actions{align-items:center}
.user-actions form{margin:0}

.aula-shell{min-height:100vh;background:#edf2f7;padding-bottom:50px}
.aula-top{background:#082b4b;color:white;padding:32px 5%;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.aula-top h1{margin:12px 0}.aula-top p{color:#dbe8f2}.aula-eyebrow{color:#f4b942;font-size:12px;letter-spacing:2px}
.aula-top nav a{color:white;margin-right:16px}
.aula-layout{max-width:1240px;margin:25px auto;padding:0 20px;display:grid;grid-template-columns:270px minmax(0,1fr);gap:24px}
.aula-side,.aula-main{background:white;border-radius:12px;padding:25px;box-shadow:0 5px 20px #082b4b15}
.aula-side{align-self:start}.aula-side p{line-height:1.6;margin:14px 0}.aula-side ol{padding-left:20px}.aula-side li{margin:12px 0}
.aula-main h2{margin:20px 0}.aula-topic{border:1px solid #dce5ed;border-radius:10px;margin:20px 0}
.aula-topic summary{padding:18px;background:#f3f6fa;cursor:pointer;display:flex;gap:12px;flex-wrap:wrap}
.aula-topic-number{color:#0c537b;font-weight:bold}.aula-topic summary small{margin-left:auto}
.aula-topic-content{padding:18px}.aula-lesson{border:1px solid #dce5ed;padding:18px;border-radius:9px;margin:15px 0}
.aula-main label{display:block;margin:12px 0;font-weight:bold}.aula-main input:not([type=hidden]),.aula-main textarea{display:block;width:100%;padding:10px;margin-top:6px;border:1px solid #aab9c7;border-radius:6px}
.aula-main button{background:#082b4b;color:white;border:0;border-radius:7px;padding:10px 14px;margin:5px;cursor:pointer}
.aula-main p{line-height:1.6;margin:12px 0}
@media(max-width:850px){.aula-layout{grid-template-columns:1fr}}

/* Panel académico por roles */
.campus-shell{min-height:100vh;background:#eef3f8}
.campus-header{background:#082b4b;color:white;padding:35px 6%;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.campus-header span{color:#f4b942;letter-spacing:2px;font-size:12px;font-weight:bold}
.campus-header h1{margin:12px 0;font-size:clamp(24px,3vw,36px)}.campus-header p{color:#d5e3ed}
.campus-header a{color:white;margin-right:16px}.campus-header form{display:inline-block}
.campus-header button{background:#f4b942;border:0;border-radius:7px;padding:11px 16px;color:#082b4b;font-weight:bold;cursor:pointer}
.campus-content{max-width:1240px;margin:auto;padding:35px 20px}
.campus-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:25px}
.campus-heading h2{font-size:26px;margin-bottom:8px}.campus-heading p{color:#5b6e7e}
.campus-primary{display:inline-block;background:#082b4b;color:white!important;padding:12px 18px;border-radius:8px;text-decoration:none;font-weight:bold}
.campus-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;margin:22px 0}
.campus-card{background:white;border:1px solid #dbe5ee;border-radius:13px;padding:24px;box-shadow:0 5px 18px #082b4b10}
.campus-card h3{font-size:20px;margin:15px 0}.campus-card p{line-height:1.6;margin:12px 0;color:#4d6273}
.campus-status{display:inline-block;background:#e7f0f7;color:#14527b;border-radius:20px;padding:6px 11px;font-size:12px;font-weight:bold}
.campus-links{display:flex;flex-wrap:wrap;gap:12px;border-top:1px solid #e2eaf0;padding-top:16px;margin-top:20px}
.campus-links a{color:#0b527e;font-weight:bold;text-decoration:none}

.aula-section-nav{display:flex;flex-direction:column;gap:8px;margin:12px 0 22px}
.aula-section-nav a,.aula-section-nav span{display:block;padding:10px 12px;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px}
.aula-section-nav a{background:#e8f2fa;color:#124a73}
.aula-section-nav a:hover{background:#d2e6f5}
.aula-section-nav span{background:#f0f2f4;color:#7a8792}

/* Espaciado y legibilidad del registro académico */
.campus-content table{width:100%;border-collapse:separate;border-spacing:0;min-width:700px;text-align:left}
.campus-content table th,.campus-content table td{padding:15px 20px;vertical-align:top;border-bottom:1px solid #e0e8f0;line-height:1.55}
.campus-content table th{background:#eaf1f8;color:#123c5b;font-weight:700;white-space:nowrap}
.campus-content table tbody tr:nth-child(even){background:#f7fafc}
.campus-content table tbody tr:hover{background:#edf5fb}
.campus-content table td{overflow-wrap:anywhere}

.announcement-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;margin-left:7px;border-radius:999px;background:#c62828;color:#fff;font-size:12px;font-weight:800;line-height:1;vertical-align:middle}

/* Avisos nuevos: número a la derecha y señal visual discreta */
.aula-section-nav a:has(.announcement-count){display:flex;align-items:center;justify-content:space-between;gap:10px;animation:announcement-highlight 2.2s ease-in-out infinite}
.aula-section-nav .announcement-count{flex:0 0 auto;margin-left:auto;white-space:nowrap;box-shadow:0 0 0 0 rgba(198,40,40,.4);animation:announcement-pulse 2.2s ease-in-out infinite}
@keyframes announcement-highlight{0%,100%{background:#e8f2fa}50%{background:#ffe5b4}}
@keyframes announcement-pulse{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(198,40,40,.35)}50%{transform:scale(1.12);box-shadow:0 0 0 6px rgba(198,40,40,0)}}
@media(prefers-reduced-motion:reduce){.aula-section-nav a:has(.announcement-count),.aula-section-nav .announcement-count{animation:none}.aula-section-nav a:has(.announcement-count){background:#fff0d8}}

/* Centrar el contador en el área derecha del recuadro de Anuncios */
.aula-section-nav a:has(.announcement-count){position:relative;padding-right:68px;justify-content:flex-start}
.aula-section-nav a .announcement-count{position:absolute;right:24px;top:50%;margin:0;transform:translateY(-50%);animation:announcement-pulse-centered 2.2s ease-in-out infinite}
@keyframes announcement-pulse-centered{0%,100%{transform:translateY(-50%) scale(1);box-shadow:0 0 0 0 rgba(198,40,40,.35)}50%{transform:translateY(-50%) scale(1.12);box-shadow:0 0 0 6px rgba(198,40,40,0)}}
@media(prefers-reduced-motion:reduce){.aula-section-nav a .announcement-count{animation:none}}

/* Campanita y avisos de actividad */
.notification-bell{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border-radius:9px;background:#e8f2fa;color:#124a73;font-weight:700;text-decoration:none;white-space:nowrap}
.notification-bell .announcement-count{margin-left:3px;animation:announcement-pulse 2.2s ease-in-out infinite}
.notification-new{border-left:5px solid #2476b8;background:#f3f9ff}
@media(prefers-reduced-motion:reduce){.notification-bell .announcement-count{animation:none}}

/* Contraste accesible de la campanita en encabezados oscuros */
.campus-header .notification-bell,.aula-top .notification-bell{background:#ffffff!important;color:#123b5a!important;border:2px solid #c6dbe9!important;box-shadow:0 2px 6px rgba(0,0,0,.12);text-shadow:none!important}
.campus-header .notification-bell:hover,.aula-top .notification-bell:hover{background:#dceefb!important;color:#092f4d!important}
.campus-header .notification-bell .announcement-count,.aula-top .notification-bell .announcement-count{background:#b91c1c!important;color:#ffffff!important}

/* Aula: navegación alineada e índice académico jerárquico */
.aula-side,.aula-side h3,.aula-side h2{text-align:left}
.aula-section-nav{align-items:stretch;text-align:left}
.aula-section-nav a,.aula-section-nav span{text-align:left}
.aula-index{display:flex;flex-direction:column;align-items:stretch;gap:10px;text-align:left}
.aula-index-topic{display:block;width:100%;background:#edf4fa;border:1px solid #cfdfeb;border-radius:10px;overflow:hidden}
.aula-index-topic>summary{cursor:pointer;padding:12px 11px;font-size:14px;font-weight:700;color:#143d5c;line-height:1.5}
.aula-index-topic>summary:hover{background:#dceaf6}
.aula-index-topic .index-level{display:block;color:#35678a;font-size:12px}
.aula-index-children{padding:0 10px 10px 14px;border-left:3px solid #70a4c9;margin-left:12px}
.aula-index-lesson{padding:8px 0;min-width:0}
.aula-index-lesson>a{color:#194d70!important;text-decoration:none;overflow-wrap:anywhere;font-weight:600;font-size:13px}
.aula-index-tasks{display:flex;flex-direction:column;gap:5px;padding:7px 0 0 13px}
.aula-index-tasks a{font-size:12px;color:#526b7d!important;text-decoration:none;overflow-wrap:anywhere}
.aula-index a:hover{text-decoration:underline}
.aula-main .aula-topic{border:2px solid #b7cfdf;border-radius:15px;background:#fff;overflow:hidden;margin:22px 0 30px;box-shadow:0 7px 22px rgba(14,52,81,.09)}
.aula-main .aula-topic>summary{background:linear-gradient(100deg,#164768,#286b91);color:#fff;padding:18px 22px;display:flex;align-items:center;flex-wrap:wrap;gap:12px;line-height:1.5}
.aula-main .aula-topic>summary strong,.aula-main .aula-topic>summary small{color:#fff}
.aula-main .aula-topic>summary .aula-topic-number{background:#e6b85a;color:#173750;border-radius:7px;padding:5px 10px;font-weight:800}
.aula-main .aula-topic-content{padding:20px;background:#f5f9fc}
.aula-main .aula-lesson{border:1px solid #cbdde9;border-left:5px solid #4383ac;background:#fff;border-radius:11px;padding:18px;margin:18px 0;box-shadow:0 2px 8px rgba(19,66,97,.05)}
.aula-main .aula-task{background:#fff9eb;border:1px solid #ead7a9;border-left:4px solid #c99534;border-radius:9px;padding:15px;margin:14px 0}
.aula-main .aula-topic,.aula-main .aula-lesson,.aula-main .aula-task{scroll-margin-top:20px}
@media(max-width:700px){.aula-main .aula-topic-content{padding:12px}.aula-main .aula-topic>summary{padding:14px}}

/* Administración: asignación institucional de docentes */
.admin-course-section{margin:25px 0 35px;padding:22px;border:1px solid #c9dce9;border-radius:14px;background:#f2f7fb;text-align:left}
.admin-course-section h2{color:#123e60;margin-bottom:10px}
.admin-course-section>p{line-height:1.6;margin-bottom:16px}
.admin-course-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1fr);gap:18px;align-items:center;background:#fff;border:1px solid #d8e4ed;border-left:5px solid #397eaa;border-radius:10px;padding:16px;margin:12px 0}
.admin-course-row p{margin-top:6px;color:#4a6173}
.admin-course-row form{display:flex;flex-wrap:wrap;align-items:end;gap:10px}
.admin-course-row form label{flex:1;min-width:190px}
.admin-course-row select{max-width:100%;color:#123e60;background:#fff}
.admin-course-section details{margin-top:18px;padding:12px;background:#fff;border-radius:9px}
.admin-course-section details p{margin:12px 0;line-height:1.5}
@media(max-width:720px){.admin-course-row{grid-template-columns:1fr}}

/* Portada institucional V Edición: identidad azul, verde y blanco */
.encabezado{border-bottom:4px solid #64a33f}
.hero{min-height:560px}
.hero-etiqueta{display:inline-block;font-size:13px;letter-spacing:2px;font-weight:800;color:#c9e5b7;margin-bottom:17px}
.hero-lema{font-size:21px!important;font-style:italic;color:#d9f0c9;margin-top:18px}
.hero-link{display:inline-block;margin-top:24px;background:#75b34c;color:#082b4b;padding:13px 23px;border-radius:8px;text-decoration:none;font-weight:800}
.hero-link:hover{background:#a5d47d}
.master-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#d7e4ed;max-width:1160px;margin:-33px auto 0;position:relative;border-radius:14px;overflow:hidden;box-shadow:0 12px 30px #082b4b24}
.master-facts>div{background:#fff;padding:22px 16px;text-align:center;border-top:5px solid #64a33f}
.master-facts span{display:block;color:#587083;font-size:13px;margin-bottom:8px}
.master-facts strong{font-size:25px;color:#083452}
.master-intro{padding-top:80px}
.master-kicker{color:#4d8734;font-weight:800;font-size:12px;letter-spacing:2px;margin-bottom:12px}
.master-lead{max-width:790px;margin:0 auto 32px;color:#41596b;font-size:18px;line-height:1.7}
.master-intro .tarjeta{border-top:4px solid #6aaa46}
.master-section{padding:72px 6%;text-align:center}
.master-section h2{font-size:30px;margin-bottom:18px}
.master-section>p:not(.master-kicker){max-width:850px;margin:0 auto 26px;line-height:1.65;color:#486073}
.master-plan{background:#eaf2f8}
.master-modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:1150px;margin:28px auto}
.master-modules article{background:white;text-align:left;border-radius:12px;padding:26px;border-top:5px solid #38739b;box-shadow:0 5px 18px #082b4b12}
.master-modules article:nth-child(2){border-top-color:#6aaa46}
.master-modules article:nth-child(3){border-top-color:#c39b42}
.master-modules span{color:#538039;font-weight:800;font-size:12px}
.master-modules h3{margin:12px 0;color:#123d5a}
.master-modules p{line-height:1.5;color:#506879}
.master-section .master-note{font-size:13px;color:#617384;max-width:950px}
.master-training{background:#fff}
.master-training-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1050px;margin:25px auto;text-align:left}
.master-training-grid div{background:#f2f7fa;border:1px solid #d7e5ec;border-left:4px solid #65a444;padding:20px;border-radius:9px;font-weight:600;line-height:1.5}
.master-admission{background:#f0f5f0}
.master-admission-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:1050px;margin:24px auto;text-align:left}
.master-admission-grid>div{background:#fff;border:1px solid #d8e6d7;border-radius:12px;padding:28px}
.master-admission-grid h3{color:#194967;margin:0 0 12px}
.master-admission-grid h3:not(:first-child){margin-top:22px}
.master-admission-grid p,.master-admission-grid li{color:#475d6c;line-height:1.75}
.master-admission-grid ol{padding-left:22px}
@media(max-width:850px){.master-facts{margin:-15px 16px 0}.master-modules{grid-template-columns:1fr}.master-admission-grid{grid-template-columns:1fr}}
@media(max-width:600px){.master-facts{grid-template-columns:1fr}.master-facts>div{padding:14px}.master-facts strong{font-size:21px}.master-training-grid{grid-template-columns:1fr}.master-section{padding:52px 5%}.master-intro{padding-top:55px}.hero-etiqueta{letter-spacing:1px;font-size:11px}}

/* Expediente de admisión del maestrante */
.admission-section{border:2px solid #c8dce8;background:#f4f9fc;border-radius:13px;padding:20px;margin:25px 0}
.admission-section>h2{color:#174969}
.admission-document{padding:17px;margin:15px 0;border:1px solid #d3e2eb;border-left:5px solid #4386a8;border-radius:10px;background:#fff}
.admission-document>div>strong{display:block;margin-bottom:8px}
.admission-document form{margin-top:12px}
.admission-document label{font-size:14px}
.admission-document p{overflow-wrap:anywhere}
.admission-ready,.admission-pending{display:inline-block;padding:5px 10px;border-radius:15px;font-size:12px;font-weight:700}
.admission-ready{background:#e0f2e2;color:#236331}
.admission-pending{background:#fff1d6;color:#82530a}

/* Descarga de expedientes privados para administración */
.admin-expediente{margin:12px 0;padding:13px;background:#edf5fa;border-left:4px solid #387aa5;border-radius:8px;line-height:1.8}
.admin-zip-link{display:inline-block;margin-left:10px;background:#155779;color:#fff!important;text-decoration:none;padding:7px 13px;border-radius:7px;font-weight:700}
.admin-zip-link:hover{background:#0b3956}

.profile-page-card{max-width:1250px}
.profile-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:26px;align-items:start}
.profile-left-column,.profile-right-column,.profile-password-column{min-width:0}
.profile-right-column .admission-section{margin:0}
.profile-password-column{grid-column:1}
@media(max-width:820px){.profile-columns{grid-template-columns:1fr}.profile-password-column{grid-column:auto}}

/* Contactos públicos de matrícula e información */
.master-contacts{padding:70px 6%;background:#fff;text-align:center}
.master-contacts h2{font-size:clamp(24px,3vw,32px);margin-bottom:12px;color:#082b4b}
.master-contacts-intro{color:#526777;line-height:1.6;margin:0 auto 28px;max-width:800px}
.master-contact-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;max-width:1400px;margin:0 auto;text-align:left}
.master-contact-card{border:1px solid #d6e4ec;border-top:5px solid #64a33f;background:#f6fafc;border-radius:12px;padding:23px 18px;min-width:0}
.master-contact-role{display:block;color:#38802c;text-transform:uppercase;font-size:12px;letter-spacing:.6px;font-weight:800;margin-bottom:10px}
.master-contact-card h3{font-size:17px;line-height:1.35;margin-bottom:15px;color:#102f4e}
.master-contact-card a{display:block;color:#125478;text-decoration:none;font-size:14px;line-height:1.6;overflow-wrap:anywhere;margin-top:8px}
.master-contact-card a:hover{text-decoration:underline}
.master-contact-developer{background:#edf6e9;border-color:#b6d6a8}
@media(max-width:1100px){.master-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.master-contact-grid{grid-template-columns:1fr}.master-contacts{padding:50px 5%}}

/* Escudo oficial sobre la fachada fotografiada: ajuste de escritorio */
.hero{position:relative;overflow:hidden}
.hero-facade-crest{position:absolute;z-index:1;right:5.2%;top:17%;width:clamp(95px,10vw,165px);aspect-ratio:1;background:#45b9e5;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0004;pointer-events:none}
.hero-facade-crest img{width:94%;height:94%;object-fit:cover;border-radius:50%}
.hero-contenido{position:relative;z-index:2}
@media(max-width:900px){.hero-facade-crest{display:none}}

.security-verification{padding:16px;margin:18px 0;border:1px solid #d0dfeb;border-radius:10px;background:#f3f8fb}
.security-verification p{margin:0 0 12px}

/* Publicación del aula integrada con los enlaces de la tarjeta docente */
.campus-links form{display:inline-flex;margin:0;padding:0}
.campus-links .campus-link-button{appearance:none;background:transparent;border:0;border-radius:0;box-shadow:none;padding:0;margin:0;color:#0b527e;font:inherit;font-weight:bold;line-height:inherit;text-decoration:none;cursor:pointer}
.campus-links .campus-link-button:hover{text-decoration:underline}

/* Portada panorámica aprobada: campus a la izquierda, minería a la derecha. */
.pagina-portada .hero {
    display:flex;
    align-items:center;
    position:relative;
    min-height:690px;
    overflow:hidden;
    padding:0;
    background:#062440;
}
.pagina-portada .hero-collage {
    position:absolute;
    inset:0;
    display:flex;
    z-index:0;
    overflow:hidden;
}
.pagina-portada .hero-campus,
.pagina-portada .hero-mineria {
    height:100%;
    background-repeat:no-repeat;
    background-size:cover;
}
.pagina-portada .hero-campus {
    background-image:url("../img/universidad_portada_nueva.jpg");
    background-position:center;
    flex:0 0 58%;
}
.pagina-portada .hero-mineria {
    background-image:url("../img/portada_topografia.png");
    background-position:center;
    flex:1;
}
.pagina-portada .hero::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(2,25,49,.97) 0%,rgba(3,30,57,.86) 22%,rgba(4,35,64,.48) 42%,transparent 69%);
    pointer-events:none;
    z-index:1;
}
.pagina-portada .hero .hero-contenido {
    position:relative;
    z-index:2;
    max-width:760px;
    padding:75px 6%;
    background:transparent;
    color:#fff;
}
.pagina-portada .hero .hero-contenido h1 {
    font-size:clamp(42px,5.1vw,84px);
    line-height:1.08;
}
@media(max-width:900px) {
    .pagina-portada .hero {min-height:600px}
    .pagina-portada .hero-campus {flex-basis:60%}
    .pagina-portada .hero::after {background:linear-gradient(90deg,rgba(2,25,49,.94),rgba(2,25,49,.52) 72%,rgba(2,25,49,.2))}
    .pagina-portada .hero .hero-contenido {padding:65px 5%}
    .pagina-portada .hero .hero-contenido h1 {font-size:clamp(34px,7vw,60px)}
}
/* Solo portada pública: mantener visible el cintillo institucional al desplazarse */
.pagina-portada > .encabezado {
    position: sticky;
    top: 0;
    z-index: 1000;
}
.pagina-portada {
    scroll-padding-top: 125px;
}
.pagina-portada section[id] {
    scroll-margin-top: 125px;
}

/* La ficha académica empieza DESPUÉS de la imagen, sin solaparse. */
.pagina-portada .master-facts {
    margin:0 auto;
    max-width:none;
    width:100%;
    border-radius:0;
    box-shadow:0 6px 20px rgba(8,43,75,.08);
    overflow:visible;
}
.pagina-portada .master-facts > div {padding:24px 16px}
@media(max-width:650px) {
    .pagina-portada .master-facts {grid-template-columns:1fr}
}
