/* ==========  ESTILOS ORIGINALES (SIN RECORTES)  ========== */
:root {
    --primary-blue: #0A74DA;
    --dark-bg: #121212;
    --light-bg: #1E1E1E;
    --light-text: #EAEAEA;
    --secondary-text: #A0A0A0;
    --font-main: 'Poppins', sans-serif;
    --nav-height: 70px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    font-family: var(--font-main);
    background-color: var(--dark-bg);
    background-image: linear-gradient(rgba(18, 18, 18, 0.96), rgba(18, 18, 18, 0.96)), url('../assets/images/analytics-bg.jpg');
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
    color: var(--light-text);
    line-height: 1.6;
}
.container { width: 90%; max-width: 1100px; margin: 0 auto; padding: 2rem 0; }
h1, h2, h3, h5 { font-weight: 600; color: var(--light-text); }
h2.section-title {
    font-size: 2.5rem; font-weight: 700; margin-bottom: 2rem;
    text-align: center; color: var(--primary-blue);
    text-transform: uppercase; letter-spacing: 2px;
}
h5 { font-size: 1.1rem; margin-top: 1rem; margin-bottom: .5rem; color: var(--primary-blue); }
p  { color: var(--secondary-text); margin-bottom: 1rem; }
a  { color: var(--primary-blue); text-decoration: none; transition: color .3s ease; }
a:hover { color: #fff; }

/* ---------- NAVBAR ---------- */
.main-nav {
    position: fixed; top: 0; left: 0; width: 100%; height: var(--nav-height);
    background: rgba(18,18,18,.85); backdrop-filter: blur(10px);
    border-bottom: 1px solid #2a2a2a;
    display: flex; justify-content: space-between; align-items: center;
    padding: 0 5%; z-index: 1000; transition: background-color .3s;
}
.nav-logo   { font-size: 1.5rem; font-weight: 700; color: var(--light-text); }
.nav-links  { list-style: none; display: flex; align-items: center; gap: 2rem; }
.nav-link   { color: var(--secondary-text); font-weight: 600; position: relative; padding:.5rem 0; }
.nav-link:hover      { color: var(--light-text); }
.nav-link.active     { color: var(--primary-blue); }
.nav-link.active::after {
    content:''; position:absolute; bottom:0; left:0; width:100%; height:2px; background:var(--primary-blue);
}
.lang-switcher { display:flex; align-items:center; gap:.5rem; margin-left:1rem; }
.lang-btn      { background:none; border:none; color:var(--secondary-text); cursor:pointer; font-size:1rem; font-weight:600; transition:color .3s; }
.lang-btn.active { color:var(--primary-blue); font-weight:700; }
.lang-separator { color:var(--secondary-text); }
.hamburger-btn  { display:none; background:none; border:none; color:var(--light-text); font-size:1.5rem; cursor:pointer; z-index:1001; }

/* ---------- HERO ---------- */
.hero{padding-top:var(--nav-height);min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;}
.hero-content{max-width:800px;}
.profile-pic{
    width:150px;height:150px;border-radius:50%;
    border:5px solid var(--primary-blue);object-fit:cover;margin-bottom:1.5rem;
    box-shadow:0 0 20px rgba(10,116,218,.5);
}
.name  {font-size:3rem;font-weight:700;margin-bottom:.5rem;}
.title {font-size:1.2rem;color:var(--secondary-text);font-weight:300;margin-bottom:1.5rem;}
.social-links a{font-size:1.8rem;margin:0 1rem;color:var(--light-text);}

/* ---------- SECCIONES GENÉRICAS ---------- */
.cv-section{padding:4rem 0;border-bottom:1px solid #2a2a2a;opacity:0;transform:translateY(30px);transition:opacity .6s,transform .6s;}
.cv-section:last-of-type{border-bottom:none;}
.cv-section.visible{opacity:1;transform:translateY(0);}
#about p{font-size:1.1rem;text-align:center;max-width:800px;margin:0 auto;color:var(--light-text);}

/* ---------- TIMELINE ---------- */
.timeline{position:relative;padding-left:30px;}
.timeline::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--primary-blue);}
.timeline-item{margin-bottom:2rem;position:relative;}
.timeline-item:last-child{margin-bottom:0;}
.timeline-item::before{
    content:'';position:absolute;left:-39px;top:5px;width:16px;height:16px;
    border-radius:50%;background:var(--dark-bg);border:3px solid var(--primary-blue);z-index:1;
}
.timeline-content{background:var(--light-bg);padding:1.5rem;border-radius:8px;border-left:3px solid var(--primary-blue);}
.timeline-content h3{font-size:1.4rem;color:var(--light-text);}
.timeline-content h4{color:var(--secondary-text);font-weight:400;margin-bottom:1rem;}
.timeline-content .date{color:var(--primary-blue);font-style:italic;}
.timeline-content .location{font-size:.9rem;color:var(--secondary-text);margin-bottom:1rem;}
.timeline-content .location i{margin-right:5px;}
.timeline-content ul{list-style:none;padding-left:0;}
.timeline-content li{
    position:relative;padding-left:20px;margin-bottom:.5rem;color:var(--secondary-text);
}
.timeline-content li::before{
    content:'›';position:absolute;left:0;top:-2px;color:var(--primary-blue);font-weight:bold;font-size:1.2rem;
}

.timeline-item.hidden-experience-item{max-height:0;overflow:hidden;margin-bottom:0;padding:0;border:none;opacity:0;transition:max-height .7s,opacity .5s;margin-bottom .7s,padding .7s;}
body.show-hidden-experiences .timeline-item.hidden-experience-item{max-height:500px;margin-bottom:2rem;opacity:1;padding:0;border:none;}
.toggle-experience-wrapper{text-align:center;margin-top:2rem;}
.cta-button{
    display:inline-block;background:var(--primary-blue);color:#fff;padding:.8rem 1.5rem;border-radius:50px;
    font-weight:600;text-decoration:none;transition:all .3s;
}
.cta-button:hover{background:#fff;color:var(--primary-blue);transform:translateY(-3px);}
.cta-button i{margin-left:8px;transition:transform .3s;}
.cta-button.secondary{background:transparent;border:2px solid var(--primary-blue);color:var(--primary-blue);}
.cta-button.secondary:hover{background:var(--primary-blue);color:#fff;}
#toggle-experience-btn.toggled i{transform:rotate(180deg);}

/* ---------- SKILLS ---------- */
.skills-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;}
.skill-tag{
    background:var(--light-bg);color:var(--light-text);padding:.5rem 1.2rem;border-radius:20px;font-size:.9rem;
    font-weight:600;border:1px solid var(--primary-blue);transition:all .3s;
}
.skill-tag:hover{background:var(--primary-blue);color:var(--dark-bg);transform:translateY(-3px);}

/* ---------- PUBLICATIONS ---------- */
.publication-card{background:var(--light-bg);padding:2rem;border-radius:8px;border-left:4px solid var(--primary-blue);}
.publication-card h3{font-size:1.5rem;margin-bottom:.5rem;}
.publication-meta{color:var(--primary-blue);font-style:italic;margin-bottom:1rem;}
.skills-grid-small{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.5rem 0;}
.skill-tag-small{background:#2c2c2c;color:var(--secondary-text);padding:.3rem .8rem;border-radius:15px;font-size:.8rem;}

/* ---------- CERTIFICATIONS + CONTACT ---------- */
.cert-list{list-style:none;text-align:center;font-size:1.1rem;}
.cert-list li{margin-bottom:.5rem;}
.cert-list i{color:var(--primary-blue);margin-right:10px;}

.contact-wrapper{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;}
.contact-info p{font-size:1.1rem;color:var(--light-text);}
.form-container{position:relative;}
.contact-form{display:flex;flex-direction:column;gap:1rem;}
.form-input{
    background:var(--light-bg);border:2px solid #333;border-radius:5px;padding:1rem;
    color:var(--light-text);font-family:var(--font-main);font-size:1rem;transition:border-color .3s;
}
.form-input::placeholder{color:var(--secondary-text);}
.form-input:focus{outline:none;border-color:var(--primary-blue);}
.contact-form .cta-button{border:none;cursor:pointer;text-align:center;}

.form-message{
    padding:1.5rem;border-radius:8px;margin-bottom:1rem;text-align:center;
}
.form-message.success{background:rgba(16,185,129,.1);border:1px solid #10B981;color:#EAEAEA;}
.form-message.error  {background:rgba(239,68,68,.1); border:1px solid #EF4444; color:#F87171;}
.form-message i{font-size:2rem;margin-bottom:1rem;display:block;}
.form-message.success i{color:#10B981;}
.form-message.error i  {color:#EF4444;}
.form-message h3{margin-bottom:.5rem;}

.footer{text-align:center;padding:2rem 1rem;color:var(--secondary-text);font-size:.9rem;background:rgba(18,18,18,.5);}

/* ---------- RESPONSIVE NAV/HERO ---------- */
@media (max-width:900px){
    .name{font-size:2.2rem;}
    .title{font-size:1rem;}
    h2.section-title{font-size:2rem;}
    .nav-links{
        position:fixed;top:var(--nav-height);left:-100%;width:100%;height:calc(100vh - var(--nav-height));
        background:var(--dark-bg);flex-direction:column;justify-content:center;align-items:center;gap:3rem;
        transition:left .4s;
    }
    .nav-links.active{left:0;}
    .nav-link{font-size:1.5rem;}
    .lang-switcher-container{order:10;margin-top:2rem;}
    .hamburger-btn{display:block;}
    .timeline{padding-left:20px;}
    .timeline-item::before{left:-29px;}
    .contact-wrapper{grid-template-columns:1fr;gap:2rem;}
    .contact-info{text-align:center;}
    .contact-info .section-title{text-align:center!important;}
}

/* ========== 2. OVERRIDES N8N CHAT – FINAL ========== */
:root{
    --chat--color-primary:             var(--primary-blue);
    --chat--color-primary-shade-50:    #0865c0;
    --chat--color-primary-shade-100:   #064d91;

    --chat--header--background:        var(--chat--color-primary);
    --chat--header--color:             #ffffff;

    --chat--color-light:               #18191C;
    --chat--color-light-shade-50:      #202125;
    --chat--color-light-shade-100:     #2B2C30;

    --chat--message--user--background: #064d91;
    --chat--message--user--color:      #ffffff;

    --chat--window--width:             420px;
    --chat--window--height:            620px;
    --chat--textarea--height:          56px;

    --chat--toggle--background:        var(--chat--color-primary);
    --chat--toggle--color:             #ffffff;
}

/* botón flotante del widget */
#n8n-chat .chat-toggle-button{
    background:var(--chat--toggle--background)!important;
    color:var(--chat--toggle--color)!important;
    box-shadow:0 4px 10px rgba(10,116,218,.4);
}

/* ventana contenedora */
#n8n-chat .chat-window{
    width:100%;max-width:var(--chat--window--width);
    height:var(--chat--window--height);
    border-radius:12px;overflow:hidden;
}

/* burbuja usuario */
#n8n-chat .chat-message--user .chat-message__bubble,
#n8n-chat .chat-message--user .message-bubble{
    background:var(--chat--message--user--background)!important;
    color:var(--chat--message--user--color)!important;
    border-radius:12px!important;
    padding:.6rem .9rem;
    max-width:90%;
    font-size:.95rem;
    margin-left:auto;margin-right:.4rem;
}

/* caja de entrada */
#n8n-chat .chat-input{
    background:var(--chat--color-light-shade-50);
    border-top:1px solid var(--chat--color-light-shade-100);
    padding:.75rem;display:flex;align-items:center;gap:.75rem;flex-wrap:nowrap;
}
#n8n-chat .chat-input__textarea{
    flex:1 1 auto;width:100%!important;resize:none;
    min-height:42px;max-height:120px;
    padding:.65rem .9rem;
    font-family:var(--chat--font-family,'Poppins',sans-serif);
    font-size:.92rem;color:var(--chat--color-white);
    background:var(--chat--color-light);
    border:1px solid var(--chat--color-light-shade-100);
    border-radius:10px;
    transition:border .25s;
}
#n8n-chat .chat-input__textarea:focus{outline:none;border-color:var(--primary-blue);}
#n8n-chat .chat-input__send{
    background:var(--chat--color-primary);
    width:42px;height:42px;border-radius:8px;
    display:flex;justify-content:center;align-items:center;
    cursor:pointer;transition:background .25s;
}
#n8n-chat .chat-input__send svg{fill:#fff;width:18px;height:18px;}
#n8n-chat .chat-input__send:hover{background:var(--chat--color-primary-shade-50);}

/* móvil fullscreen */
@media(max-width:600px){
    :root{
        --chat--window--width:100vw;
        --chat--window--height:100vh;
    }
    #n8n-chat .chat-input__textarea{font-size:.9rem;min-height:36px;}
    #n8n-chat .chat-input__send{width:36px;height:36px;}
}

/* contenedor inferior (input-bar) */
#n8n-chat .chat-input{
	/* fondo sutilmente más claro que el panel */
	background: var(--chat--color-light);
	border-top: 2px solid var(--chat--color-light-shade-100);
	padding: 1rem .9rem;
	display: flex;
	align-items: flex-end;
	gap: .8rem;
	/* redondeo cuando la ventana está suelta (modo window) */
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
}

/* textarea cómodo y ancho */
#n8n-chat .chat-input__textarea{
	flex: 1 1 auto;
	width: 100% !important;
	min-height: 48px;
	max-height: 150px;
	resize: none;

	padding: .7rem 1rem;
	font-size: .95rem;
	font-family: var(--chat--font-family, 'Poppins', sans-serif);

	color: var(--chat--color-white);
	background: var(--chat--color-light-shade-50);

	border: 1px solid var(--chat--color-light-shade-100);
	border-radius: 8px;
	transition: border .25s;
}
#n8n-chat .chat-input__textarea::placeholder{
	color: var(--chat--color-white);
	opacity: .65;
}
#n8n-chat .chat-input__textarea:focus{
	outline: none;
	border-color: var(--chat--color-primary);
}

/* botón enviar ↗ */
#n8n-chat .chat-input__send{
	width: 44px;
	height: 44px;
	border-radius: 8px;
	background: var(--chat--color-primary);
	display: flex;
	justify-content: center;
	align-items: center;
	cursor: pointer;
	transition: background .25s;
}
#n8n-chat .chat-input__send svg{
	fill: #fff;
	width: 20px; height: 20px;
}
#n8n-chat .chat-input__send:hover{
	background: var(--chat--color-primary-shade-50);
}

/* ——— pequeños ajustes móviles ——— */
@media (max-width: 480px){
	#n8n-chat .chat-input__textarea{font-size: .9rem; min-height: 42px;}
	#n8n-chat .chat-input__send   {width: 40px; height: 40px;}
}