:root{--azul: #1a3a5c;--azul-claro: #2c5f8a;--texto: #2b2b2b;--gris: #6b7280;--linea: #d7dde3;--barra-bg: #d7dde3;--a4-width: 794px}*{box-sizing:border-box;margin:0;padding:0}body{background:#fff;color:var(--texto);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:32px 16px 64px}.toolbar{width:100%;max-width:var(--a4-width);display:flex;justify-content:flex-end;margin-bottom:24px}.btn-descargar{display:inline-flex;align-items:center;gap:8px;background:var(--azul);color:#fff;border:none;border-radius:8px;padding:12px 20px;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .2s ease,transform .1s ease;box-shadow:0 2px 6px #1a3a5c40}.btn-descargar:hover{background:var(--azul-claro)}.btn-descargar:active{transform:translateY(1px)}.btn-descargar[aria-disabled=true]{opacity:.6;pointer-events:none}.cv-page{width:100%;max-width:var(--a4-width);background:#fff;border:1px solid var(--linea);box-shadow:0 8px 30px #0000001f;border-radius:4px;overflow:hidden}.cv-header{padding:40px 44px 28px;border-bottom:3px solid var(--azul);display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.cv-header-info{display:flex;align-items:center;gap:20px}.cv-foto{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--azul);flex-shrink:0}.cv-header .nombre{color:var(--azul);font-size:44px;line-height:1;font-weight:800;letter-spacing:1px}.cv-header .titulo{margin-top:10px;font-size:16px;color:var(--gris);font-weight:500}.cv-header .contacto{font-size:13px;color:var(--texto);display:flex;flex-direction:column;gap:8px;min-width:210px}.cv-header .contacto div{display:flex;align-items:center;gap:8px}.cv-header .contacto .ico{color:var(--azul);font-weight:700;width:16px;display:inline-block;text-align:center}.cv-body{padding:30px 44px 48px}.seccion{margin-bottom:30px}.seccion-titulo{color:var(--azul);font-size:15px;font-weight:800;letter-spacing:2px;text-transform:uppercase;display:flex;align-items:center;gap:10px;margin-bottom:18px}.seccion-titulo:before{content:"+";color:var(--azul);font-weight:700}.seccion-titulo:after{content:"";flex:1;height:2px;background:var(--linea)}.enlaces{display:flex;flex-direction:row;flex-wrap:wrap;gap:8px 20px}.enlace{display:inline-flex;align-items:center;gap:6px;color:var(--texto);font-size:13px;text-decoration:none}.enlace .enlace-icono{width:15px;height:15px;color:var(--azul);flex-shrink:0}.enlace:hover span{text-decoration:underline}.exp-item{position:relative;padding-left:22px;margin-bottom:24px}.exp-item:before{content:"";position:absolute;left:0;top:5px;width:10px;height:10px;border-radius:50%;background:var(--azul)}.exp-cabecera{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.exp-empresa{font-size:15px;font-weight:600}.exp-ubicacion{font-size:13px;color:var(--gris)}.exp-periodo{font-size:13px;color:var(--gris);white-space:nowrap}.puesto-bloque{margin-top:12px;padding-left:14px;border-left:2px solid var(--linea)}.puesto-modalidad{font-size:12.5px;color:var(--gris);font-style:italic;margin:2px 0 8px}.exp-puesto{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin:6px 0 8px}.puesto-bloque .exp-puesto{margin:0}.exp-tareas{list-style:none;display:flex;flex-direction:column;gap:7px}.exp-tareas li{position:relative;padding-left:16px;font-size:13px;line-height:1.5;color:#3a3a3a}.exp-tareas li:before{content:"•";position:absolute;left:0;color:var(--gris)}.exp-tecnologias{margin-top:10px;font-size:12.5px;color:var(--gris);line-height:1.5}.exp-tecnologias strong{color:var(--texto)}.edu-item{position:relative;padding-left:22px;margin-bottom:16px}.edu-item:before{content:"";position:absolute;left:0;top:5px;width:10px;height:10px;border-radius:50%;background:var(--azul)}.habilidades{display:grid;grid-template-columns:1fr 1fr;gap:18px 40px}.habilidad .nombre{font-size:13px;margin-bottom:6px}.habilidad .barra{height:6px;border-radius:4px;background:var(--barra-bg);overflow:hidden}.habilidad .barra .relleno{height:100%;background:var(--azul);border-radius:4px}@media(max-width:640px){.cv-header{flex-direction:column;padding:28px 22px 20px}.cv-header .nombre{font-size:36px}.cv-body{padding:24px 22px 32px}.habilidades{grid-template-columns:1fr}}
