/* ==========================================================================
   1. VARIABLES GLOBALES
   ========================================================================= */
:root {
    --primary-color: #1a2a3a; /* Azul oscuro industrial */
    --text-main: #2c3e50;
    --text-light: #627484;
    --bg-sidebar: #f4f6f8;
    --bg-content: #ffffff;
    
    --color-trabajo: #2ecc71;   /* Verde - Experiencia */
    --color-estudio: #3498db;   /* Azul claro - Formación */
    --color-proyecto: #9b59b6;  /* Morado - Proyectos */
    
    --border-light: #e1e8ed;
}

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

/* Ocultar el aviso de impresión por defecto en entornos digitales */
.print-footer-notice {
    display: none;
}


/* ==========================================================================
   2. ESTILOS EXCLUSIVOS PARA PANTALLA (WEB / MÓVIL)
   ========================================================================= */
@media screen {
    body {
        font-family: 'Inter', sans-serif;
        color: var(--text-main);
        background-color: var(--bg-sidebar);
        line-height: 1.6;
    }

    .container {
        display: flex;
        min-height: 100vh;
        max-width: 1400px;
        margin: 0 auto;
        box-shadow: 0 0 20px rgba(0,0,0,0.05);
    }

    /* BARRA LATERAL (WEB) */
    .sidebar {
        width: 340px;
        background-color: var(--bg-sidebar);
        padding: 40px 25px;
        border-right: 1px solid var(--border-light);
    }

    .sidebar-sticky {
        position: sticky;
        top: 40px;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .profile-img {
        width: 150px;
        height: 150px;
        border-radius: 50%;
        object-fit: cover;
        border: 4px solid #ffffff;
        box-shadow: 0 4px 10px rgba(0,0,0,0.1);
        margin-bottom: 20px;
    }

    .sidebar h1 {
        font-size: 1.35rem;
        font-weight: 700;
        color: var(--primary-color);
        text-align: center;
        line-height: 1.2;
        margin-bottom: 8px;
    }

    .sidebar .subtitle {
        font-size: 0.8rem;
        color: var(--text-light);
        text-align: center;
        margin-bottom: 30px;
        font-weight: 500;
        text-transform: uppercase;
        letter-spacing: 1px;
    }

    .contact-info {
        width: 100%;
        margin-bottom: 25px;
    }

    .contact-item {
        display: flex;
        align-items: center;
        margin-bottom: 12px;
        font-size: 0.9rem;
        color: var(--text-main);
    }

    .contact-item i {
        width: 30px;
        font-size: 1rem;
        color: var(--primary-color);
    }

    .skills-section {
        width: 100%;
        border-top: 1px solid var(--border-light);
        padding-top: 20px;
        margin-bottom: 20px;
    }

    .skills-section h3 {
        font-size: 0.85rem;
        color: var(--primary-color);
        margin-bottom: 15px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    /* BARRAS DE PROGRESO INTERACTIVAS (WEB) */
    .skill-progress-wrapper {
        width: 100%;
        margin-bottom: 12px;
    }

    .skill-info-text {
        display: flex !important;
        justify-content: space-between;
        font-size: 0.8rem;
        font-weight: 500;
        margin-bottom: 4px;
        color: var(--text-main);
    }

    .skill-info-text span:last-child {
        color: var(--text-light);
        font-size: 0.75rem;
    }

    .meter-bg {
        width: 100%;
        height: 6px;
        background-color: #e1e8ed;
        border-radius: 3px;
        overflow: hidden;
    }

    .meter-fill {
        width: 0%; 
        height: 100%;
        background-color: var(--primary-color);
        border-radius: 3px;
        transition: width 1s cubic-bezier(0.1, 0.8, 0.2, 1);
    }

    .language-item {
        font-size: 0.85rem;
        color: var(--text-main);
        background: #ffffff;
        padding: 8px 12px;
        border-radius: 6px;
        border: 1px solid var(--border-light);
    }

    /* CONTENIDO PRINCIPAL (WEB) */
    .content {
        flex: 1;
        background-color: var(--bg-content);
        padding: 50px 50px;
    }

    .intro-section, .timeline-section, .innovacion-section {
        margin-bottom: 40px;
    }

    h2 {
        font-size: 1.45rem;
        color: var(--primary-color);
        margin-bottom: 20px;
        font-weight: 700;
        border-bottom: 2px solid var(--bg-sidebar);
        padding-bottom: 8px;
    }

    .intro-section p {
        color: var(--text-main);
        font-size: 0.95rem;
        text-align: justify;
        margin-bottom: 15px;
    }

    /* CONTROLES DE FILTRADO INTERACTIVO */
    .filter-controls {
        display: flex;
        gap: 10px;
        margin-bottom: 25px;
        flex-wrap: wrap;
    }

    .filter-btn {
        font-family: 'Inter', sans-serif;
        font-size: 0.8rem;
        font-weight: 600;
        color: var(--text-light);
        background-color: var(--bg-sidebar);
        border: 1px solid var(--border-light);
        padding: 8px 16px;
        border-radius: 20px;
        cursor: pointer;
        transition: all 0.2s ease;
        display: flex;
        align-items: center;
        gap: 6px;
    }

    .filter-btn:hover {
        background-color: #e1e8ed;
        color: var(--primary-color);
    }

    .filter-btn.active {
        background-color: var(--primary-color);
        color: #ffffff;
        border-color: var(--primary-color);
    }

    .timeline-container {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

    /* TARJETAS DEL CRONOGRAMA */
    .timeline-item {
        padding: 22px;
        background-color: #f8fafc;
        border-radius: 0 8px 8px 0;
        border-left: 4px solid #ccc; 
        opacity: 1;
        transform: scale(1);
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .timeline-item:hover {
        transform: translateX(4px);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    }

    .timeline-item.hidden-item {
        opacity: 0;
        transform: scale(0.92);
        max-height: 0;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        margin: 0 !important;
        border: none !important;
        overflow: hidden;
        pointer-events: none;
    }

    .timeline-meta {
        display: flex;
        align-items: center;
        gap: 12px;
        margin-bottom: 10px;
        flex-wrap: wrap;
    }

    .timeline-date {
        font-size: 0.75rem;
        font-weight: 700;
        color: #ffffff;
        padding: 3px 10px;
        border-radius: 4px;
        text-transform: uppercase;
    }

    .timeline-badge {
        font-size: 0.7rem;
        font-weight: 600;
        padding: 2px 8px;
        border-radius: 4px;
        text-transform: uppercase;
    }

    .timeline-title {
        font-size: 1.1rem;
        font-weight: 600;
        color: var(--primary-color);
    }

    .timeline-subtitle {
        font-size: 0.9rem;
        font-weight: 500;
        color: var(--text-light);
        margin-bottom: 10px;
    }

    .timeline-desc {
        color: var(--text-main);
        font-size: 0.95rem;
        text-align: justify;
    }

    .innovacion-block ul {
        padding-left: 20px;
    }

    .innovacion-block li {
        margin-bottom: 10px;
        color: var(--text-main);
        font-size: 0.95rem;
    }

    /* ASIGNACIÓN DE COLORES DE PANTALLA */
    .is-trabajo { border-left-color: var(--color-trabajo); }
    .is-trabajo .timeline-date { background-color: var(--color-trabajo); }
    .is-trabajo .timeline-badge { background-color: rgba(46, 204, 113, 0.1); color: var(--color-trabajo); }

    .is-estudio { border-left-color: var(--color-estudio); }
    .is-estudio .timeline-date { background-color: var(--color-estudio); }
    .is-estudio .timeline-badge { background-color: rgba(52, 152, 219, 0.1); color: var(--color-estudio); }

    .is-proyecto { border-left-color: var(--color-proyecto); }
    .is-proyecto .timeline-date { background-color: var(--color-proyecto); }
    .is-proyecto .timeline-badge { background-color: rgba(155, 89, 182, 0.1); color: var(--color-proyecto); }

    /* RESPONSIVE MÓVIL */
    @media (max-width: 768px) {
        .container { flex-direction: column; }
        .sidebar { width: 100%; border-right: none; border-bottom: 1px solid var(--border-light); padding: 30px 20px; }
        .sidebar-sticky { position: static; }
        .content { padding: 35px 20px; }
        .filter-controls { gap: 6px; }
        .filter-btn { padding: 6px 12px; font-size: 0.75rem; }
        .timeline-item { padding: 18px; }
    }
}


/* ==========================================================================
   3. ESTILOS EXCLUSIVOS PARA IMPRESIÓN Y EXPORTACIÓN A PDF (CON COLOR)
   ========================================================================= */
@media print {
    @page {
        size: A4;
        margin: 12mm 10mm;
    }
    
    body {
        font-family: Arial, Helvetica, sans-serif;
        color: #2c3e50;
        background: #ffffff !important;
        font-size: 9.5pt;
        line-height: 1.35;
    }

    /* Ocultar elementos puramente interactivos de la web */
    .filter-controls, .meter-bg {
        display: none !important;
    }

    .container {
        display: table !important;
        width: 100% !important;
        box-shadow: none !important;
        margin: 0 !important;
    }

    /* Columna izquierda de datos */
    .sidebar {
        display: table-cell !important;
        width: 28% !important;
        background-color: #f4f6f8 !important;
        padding: 12px 10px !important;
        vertical-align: top;
        border-right: 1px solid var(--border-light) !important;
    }

    .sidebar-sticky {
        position: static !important;
        display: block !important;
    }

    .profile-img {
        width: 90px !important;
        height: 90px !important;
        margin: 0 auto 10px auto !important;
        display: block;
    }

    .sidebar h1 { font-size: 12pt !important; margin-bottom: 2px !important; text-align: center; color: var(--primary-color) !important; }
    .sidebar .subtitle { font-size: 8pt !important; margin-bottom: 15px !important; text-align: center; }
    .contact-item { margin-bottom: 6px !important; font-size: 7.5pt !important; display: block !important; }
    .contact-item i { display: none !important; } 
    
    .skills-section { margin-bottom: 12px !important; padding-top: 10px !important; border-top: 1px solid var(--border-light) !important; }
    .skills-section h3 { font-size: 8pt !important; margin-bottom: 6px !important; color: var(--primary-color) !important; }
    
    /* Competencias fluidas y legibles */
    .skill-progress-wrapper {
        display: block !important;
        width: 100% !important;
        margin-bottom: 6px !important;
    }

    .skill-info-text {
        display: block !important; 
        width: 100% !important;
        font-size: 7.5pt !important;
    }

    .skill-info-text span:first-child {
        font-weight: bold !important;
        color: var(--primary-color) !important;
        display: block !important;
    }

    .skill-info-text span:last-child {
        font-weight: normal !important;
        color: var(--text-light) !important;
        display: block !important;
        padding-left: 4px;
        font-style: italic;
    }

    .language-item {
        display: block !important;
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        font-size: 7.5pt !important;
    }
    
    .language-item strong {
        color: var(--primary-color) !important;
    }

    /* Bloque de aviso + Código QR */
    .print-footer-notice {
        display: block !important;
        margin-top: 20px !important;
        padding-top: 12px !important;
        border-top: 1px dashed #cbd5e1 !important;
        text-align: center !important;
        page-break-inside: avoid !important;
    }

    .print-qr {
        display: block !important;
        width: 70px !important;
        height: 70px !important;
        margin: 0 auto 6px auto !important;
    }

    .print-footer-notice p {
        font-size: 6.5pt !important;
        line-height: 1.2 !important;
        color: var(--text-main) !important;
    }

    /* Columna de contenido principal */
    .content {
        display: table-cell !important;
        width: 72% !important;
        padding: 0 0 0 18px !important;
        background: #ffffff !important;
        vertical-align: top;
    }

    h2 {
        font-size: 10.5pt !important;
        color: var(--primary-color) !important; /* Recupera el color corporativo en PDF */
        margin: 12px 0 6px 0 !important;
        border-bottom: 1px solid var(--primary-color) !important;
        padding-bottom: 2px !important;
        page-break-after: avoid !important;
    }

    .intro-section p { font-size: 8.5pt !important; text-align: justify !important; margin-bottom: 8px !important; }

    .timeline-container { padding-left: 0 !important; }
    
    /* Configuración de tarjetas en PDF conservando los colores identificativos */
    .timeline-item {
        display: block !important;
        opacity: 1 !important;
        transform: none !important;
        max-height: none !important;
        position: static !important;
        margin-bottom: 12px !important;
        background-color: #f8fafc !important; /* Mantenemos el fondo suave en PDF */
        padding: 12px !important;
        border-radius: 0 4px 4px 0 !important;
        page-break-inside: avoid !important; 
    }

    .timeline-badge { display: none !important; }
    .timeline-meta { float: right !important; margin-bottom: 0 !important; }

    /* Forzar que los bloques de fecha retengan sus colores funcionales en el PDF */
    .timeline-date {
        font-size: 8pt !important;
        font-weight: bold !important;
        color: #ffffff !important;
        padding: 2px 6px !important;
        border-radius: 3px !important;
    }

    /* Colores estables inyectados explícitamente para el motor de PDF */
    .is-trabajo { border-left: 3px solid var(--color-trabajo) !important; }
    .is-trabajo .timeline-date { background-color: var(--color-trabajo) !important; }

    .is-estudio { border-left: 3px solid var(--color-estudio) !important; }
    .is-estudio .timeline-date { background-color: var(--color-estudio) !important; }

    .is-proyecto { border-left: 3px solid var(--color-proyecto) !important; }
    .is-proyecto .timeline-date { background-color: var(--color-proyecto) !important; }

    .timeline-title { font-size: 9.5pt !important;

