| 1 | <!DOCTYPE html> |
| 2 | <html lang="es"> |
| 3 | <head> |
| 4 | <meta charset="UTF-8"> |
| 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| 6 | <title>Mi Perfil | MAPS Connect</title> |
| 7 | <script>try{if(localStorage.getItem('tema-maps')==='oscuro'){document.documentElement.classList.add('dark-mode')}}catch(e){}</script> |
| 8 | <script src="../js/estilos.js?v=17"></script> |
| 9 | <link rel="stylesheet" href="../css/base.css?v=8"> |
| 10 | <link rel="stylesheet" href="../css/layout.css?v=5"> |
| 11 | <link rel="stylesheet" href="../css/components.css?v=8"> |
| 12 | <link rel="stylesheet" href="../css/colores.css?v=1"> |
| 13 | <link rel="stylesheet" href="../css/perfil.css?v=6"> |
| 14 | <link rel="stylesheet" href="../css/estilos.css?v=26"> |
| 15 | </head> |
| 16 | <body> |
| 17 | <div class="app-layout"> |
| 18 | <aside class="sidebar" id="sidebar"></aside> |
| 19 | <div class="main-wrapper"> |
| 20 | <header class="topbar" id="topbar"></header> |
| 21 | <main class="main-content" id="main-content"> |
| 22 | |
| 23 | <section class="perfil-container" id="perfil-root"> |
| 24 | |
| 25 | <!-- 1. CABECERA DE PERFIL --> |
| 26 | <div class="card profile-header-card"> |
| 27 | <div class="profile-main-info" id="profile-header-info"> |
| 28 | <!-- Avatar, nombre y datos se renderizan desde el backend (o sesión) --> |
| 29 | </div> |
| 30 | <div class="profile-header-actions"> |
| 31 | <button class="btn-clean" type="button" id="btn-cambiar-foto">Cambiar Foto</button> |
| 32 | <button class="btn-clean" type="button" id="btn-cambiar-semestre">Cambiar Semestre</button> |
| 33 | <button class="btn-clean" type="button" id="btn-editar-proposito">Editar Propósito</button> |
| 34 | <input type="file" id="foto-input" accept="image/png,image/jpeg,image/webp" hidden> |
| 35 | </div> |
| 36 | </div> |
| 37 | |
| 38 | <!-- 2. LAYOUT A DOS COLUMNAS --> |
| 39 | <div class="profile-grid"> |
| 40 | |
| 41 | <!-- COLUMNA IZQUIERDA: TRAYECTORIA ACADÉMICA MAPS --> |
| 42 | <section class="card"> |
| 43 | <h3 class="section-heading">Identidad y Ruta MAPS</h3> |
| 44 | |
| 45 | <div class="purpose-box" id="profile-purpose" hidden> |
| 46 | <strong>Propósito de Vida</strong> |
| 47 | <p id="profile-purpose-text"></p> |
| 48 | </div> |
| 49 | |
| 50 | <h4 class="sub-heading">Certificados del Plan de Estudios</h4> |
| 51 | <div id="profile-certificados"> |
| 52 | <!-- Los certificados se renderizan aquí solo cuando el backend responde --> |
| 53 | </div> |
| 54 | </section> |
| 55 | |
| 56 | <!-- COLUMNA DERECHA: REPUTACIÓN Y ACTIVIDAD COMUNITARIA --> |
| 57 | <aside class="card"> |
| 58 | <h3 class="section-heading">Aportaciones en la Comunidad</h3> |
| 59 | |
| 60 | <div class="stats-summary" id="profile-stats"> |
| 61 | <!-- Las estadísticas se renderizan aquí solo cuando el backend responde --> |
| 62 | </div> |
| 63 | |
| 64 | <h4 class="sub-heading">Actividad Reciente</h4> |
| 65 | <ul class="activity-list" id="profile-actividad"> |
| 66 | <!-- La actividad se renderiza aquí solo cuando el backend responde --> |
| 67 | </ul> |
| 68 | </aside> |
| 69 | |
| 70 | </div> |
| 71 | |
| 72 | <!-- 3. MI RED: SEGUIDORES Y DESCUBRIR PERSONAS --> |
| 73 | <section class="card" id="profile-red" hidden> |
| 74 | <h3 class="section-heading">Mi Red</h3> |
| 75 | <div class="red-stats" id="red-stats"></div> |
| 76 | <h4 class="sub-heading">Descubrir personas</h4> |
| 77 | <div class="discover-grid" id="discover-list"> |
| 78 | <p class="discover-empty">Cargando personas...</p> |
| 79 | </div> |
| 80 | </section> |
| 81 | |
| 82 | </section> |
| 83 | |
| 84 | </main> |
| 85 | </div> |
| 86 | </div> |
| 87 | <script src="../js/api.js?v=5"></script> |
| 88 | <script src="../js/auth.js?v=7"></script> |
| 89 | <script src="../js/utils.js?v=5"></script> |
| 90 | <script src="../js/tema.js?v=2"></script> |
| 91 | <script src="../js/colores.js?v=1"></script> |
| 92 | <script src="../js/aviso-privacidad.js?v=1"></script> |
| 93 | <script src="../js/layout.js?v=12"></script> |
| 94 | <script src="../js/pages/perfil.js?v=7"></script> |
| 95 | </body> |
| 96 | </html> |