{"id":6524,"date":"2026-05-05T13:00:17","date_gmt":"2026-05-05T16:00:17","guid":{"rendered":"https:\/\/www.aif.gob.ar\/?page_id=6524"},"modified":"2026-05-16T00:35:01","modified_gmt":"2026-05-16T03:35:01","slug":"elementor-6524","status":"publish","type":"page","link":"https:\/\/www.aif.gob.ar\/?page_id=6524","title":{"rendered":"Elementor #6524"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6524\" class=\"elementor elementor-6524\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-41fa1bd e-con-full e-flex e-con e-parent\" data-id=\"41fa1bd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9893003 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"9893003\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\r\n     AIF &#xB7; DIRECTORIO DE HERRAMIENTAS DE IA &#xB7; v5 WIDGET\r\n     &#x2705; Listo para Elementor \/ WordPress (HTML Widget)\r\n     &#x2705; Todo scopeado bajo .aif-dir-ia (no rompe el tema)\r\n     &#x2705; Sin <html>, <head>, <body>, sin resets globales\r\n     &#x2705; Fondo blanco puro &#xB7; totalmente responsive\r\n     ========================================================= -->\r\n\r\n<style>\r\n\/* Importaci&oacute;n de fuente (scopeada al widget v&iacute;a font-family expl&iacute;cita) *\/\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Figtree:wght@300;400;500;600;700;800;900&display=swap');\r\n\r\n\/* TODO el CSS aqu&iacute; est&aacute; scopeado bajo .aif-dir-ia\r\n   para no afectar otros elementos de WordPress\/Elementor *\/\r\n\r\n.aif-dir-ia,\r\n.aif-dir-ia *,\r\n.aif-dir-ia *::before,\r\n.aif-dir-ia *::after{\r\n  box-sizing:border-box;\r\n  margin:0;\r\n  padding:0;\r\n  font-family:'Figtree', -apple-system, BlinkMacSystemFont, sans-serif;\r\n  -webkit-font-smoothing:antialiased;\r\n  -moz-osx-font-smoothing:grayscale;\r\n}\r\n\r\n.aif-dir-ia button,\r\n.aif-dir-ia input,\r\n.aif-dir-ia textarea,\r\n.aif-dir-ia select{\r\n  font-family:inherit;\r\n  font-size:inherit;\r\n  color:inherit;\r\n}\r\n\r\n.aif-dir-ia a{\r\n  color:inherit;\r\n  text-decoration:none;\r\n}\r\n\r\n.aif-dir-ia h1,\r\n.aif-dir-ia h2,\r\n.aif-dir-ia h3,\r\n.aif-dir-ia h4{\r\n  font-family:inherit;\r\n}\r\n\r\n.aif-dir-ia{\r\n  \/* Paleta *\/\r\n  --ink:#0a0a0a;\r\n  --ink-soft:#2d2d2d;\r\n  --muted:rgba(10,10,10,.60);\r\n  --muted-2:rgba(10,10,10,.38);\r\n  --orange:#FF9500;\r\n  --orange-2:#FFB347;\r\n  --orange-deep:#E68200;\r\n  --orange-soft:rgba(255,149,0,.08);\r\n  --orange-border:rgba(255,149,0,.22);\r\n  --bg:#FFFFFF;\r\n  --bg-soft:#FAFAFA;\r\n  --bg-card:#FFFFFF;\r\n  --line:rgba(10,10,10,.08);\r\n  --line-2:rgba(10,10,10,.04);\r\n  --shadow-sm:0 1px 2px rgba(10,10,10,.04);\r\n  --shadow-md:0 8px 24px rgba(10,10,10,.05);\r\n  --shadow-lg:0 18px 40px rgba(10,10,10,.07);\r\n  --grad-orange:linear-gradient(135deg,#FF9500 0%,#FFB347 100%);\r\n  --grad-orange-deep:linear-gradient(135deg,#FF9500 0%,#E68200 100%);\r\n  --grad-ink:linear-gradient(135deg,#0a0a0a 0%,#2a2a2a 100%);\r\n  --radius-sm:10px;\r\n  --radius-md:18px;\r\n  --radius-lg:28px;\r\n  --radius-pill:999px;\r\n\r\n  background:#FFFFFF;\r\n  color:var(--ink);\r\n  width:100%;\r\n  position:relative;\r\n  overflow:hidden;\r\n  line-height:1.5;\r\n  font-size:16px;\r\n}\r\n\r\n\/* Patr&oacute;n de puntos muy sutil *\/\r\n.aif-dir-ia::before{\r\n  content:'';\r\n  position:absolute;\r\n  inset:0;\r\n  background-image:radial-gradient(circle at 1px 1px, rgba(10,10,10,.05) 1px, transparent 0);\r\n  background-size:32px 32px;\r\n  pointer-events:none;\r\n  z-index:0;\r\n  -webkit-mask-image:linear-gradient(to bottom, black 0%, transparent 70%);\r\n  mask-image:linear-gradient(to bottom, black 0%, transparent 70%);\r\n  opacity:.5;\r\n}\r\n\r\n.aif-dir-ia .aif-main-wrap{\r\n  position:relative;\r\n  z-index:3;\r\n  padding:clamp(32px,6vw,64px) clamp(14px,3vw,24px) clamp(40px,6vw,64px);\r\n}\r\n\r\n.aif-dir-ia .aif-container{\r\n  max-width:1200px;\r\n  margin:0 auto;\r\n}\r\n\r\n\/* ===== NODOS DECORATIVOS ===== *\/\r\n.aif-dir-ia .nodes-layer{\r\n  position:absolute;\r\n  inset:0;\r\n  pointer-events:none;\r\n  z-index:2;\r\n  overflow:hidden;\r\n}\r\n.aif-dir-ia .node-group{ position:absolute; pointer-events:none; }\r\n.aif-dir-ia .node-tr{ top:80px; right:60px; width:120px; height:120px; }\r\n.aif-dir-ia .node-tl{ top:120px; left:40px; width:90px; height:90px; }\r\n.aif-dir-ia .node-mr{ top:50%; right:30px; width:80px; height:80px; transform:translateY(-50%); }\r\n.aif-dir-ia .node-ml-1{ top:35%; left:50px; width:70px; height:70px; }\r\n.aif-dir-ia .node-br{ bottom:240px; right:80px; width:100px; height:100px; }\r\n.aif-dir-ia .node-bl{ bottom:320px; left:60px; width:85px; height:85px; }\r\n\r\n.aif-dir-ia .dot{ position:absolute; border-radius:50%; animation:aifDotFloat 6s ease-in-out infinite; }\r\n.aif-dir-ia .dot-1{ top:60px; right:220px; width:14px; height:14px; background:rgba(255,149,0,.18); }\r\n.aif-dir-ia .dot-2{ top:200px; right:160px; width:10px; height:10px; background:rgba(255,149,0,.14); animation-delay:-1s; }\r\n.aif-dir-ia .dot-3{ top:40px; left:25%; width:12px; height:12px; background:rgba(255,149,0,.16); animation-delay:-2s; }\r\n.aif-dir-ia .dot-4{ top:25%; left:200px; width:8px; height:8px; background:rgba(10,10,10,.08); animation-delay:-3s; }\r\n.aif-dir-ia .dot-5{ top:60%; left:35%; width:10px; height:10px; background:rgba(255,149,0,.14); animation-delay:-1.5s; }\r\n.aif-dir-ia .dot-6{ bottom:280px; right:25%; width:12px; height:12px; background:rgba(255,149,0,.18); animation-delay:-2.5s; }\r\n.aif-dir-ia .dot-7{ bottom:380px; left:20%; width:8px; height:8px; background:rgba(10,10,10,.06); animation-delay:-0.8s; }\r\n.aif-dir-ia .dot-8{ bottom:200px; right:35%; width:10px; height:10px; background:rgba(255,149,0,.14); animation-delay:-3.5s; }\r\n\r\n.aif-dir-ia .node-halo{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border-radius:50%; border:2px dashed rgba(255,149,0,.12); animation:aifHaloRotate 14s linear infinite; }\r\n.aif-dir-ia .node-halo.lg{ width:110%; height:110%; }\r\n.aif-dir-ia .node-halo.md{ width:108%; height:108%; }\r\n.aif-dir-ia .node-ring{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border-radius:50%; border:2px solid rgba(255,149,0,.18); animation:aifPulseRing 3.8s ease-in-out infinite; }\r\n.aif-dir-ia .node-ring.r2{ border-color:rgba(255,179,71,.13); animation-delay:-1.2s; animation-duration:4.2s; }\r\n.aif-dir-ia .node-ring.lg{ width:80%; height:80%; }\r\n.aif-dir-ia .node-ring.lg.r2{ width:95%; height:95%; }\r\n.aif-dir-ia .node-ring.md{ width:75%; height:75%; }\r\n.aif-dir-ia .node-ring.md.r2{ width:92%; height:92%; }\r\n.aif-dir-ia .node-core{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle, rgba(255,149,0,.35) 0%, rgba(255,149,0,.12) 60%, transparent 70%); }\r\n.aif-dir-ia .node-core.lg{ width:42%; height:42%; }\r\n.aif-dir-ia .node-core.md{ width:40%; height:40%; }\r\n.aif-dir-ia .node-center{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border-radius:50%; background:linear-gradient(135deg, rgba(255,149,0,.5) 0%, rgba(255,179,71,.4) 100%); }\r\n.aif-dir-ia .node-center.lg{ width:20%; height:20%; }\r\n.aif-dir-ia .node-center.md{ width:18%; height:18%; }\r\n\r\n@keyframes aifPulseRing{\r\n  0%, 100%{ transform:translate(-50%,-50%) scale(1); opacity:.6; }\r\n  50%{ transform:translate(-50%,-50%) scale(1.15); opacity:.2; }\r\n}\r\n@keyframes aifHaloRotate{\r\n  from{ transform:translate(-50%,-50%) rotate(0deg); }\r\n  to{ transform:translate(-50%,-50%) rotate(360deg); }\r\n}\r\n@keyframes aifDotFloat{\r\n  0%, 100%{ transform:translateY(0); }\r\n  50%{ transform:translateY(-8px); }\r\n}\r\n@keyframes aifFadeUp{\r\n  from{ opacity:0; transform:translateY(14px); }\r\n  to{ opacity:1; transform:translateY(0); }\r\n}\r\n@keyframes aifDotPulse{\r\n  0%, 100%{ box-shadow:0 0 0 3px rgba(255,149,0,.15); }\r\n  50%{ box-shadow:0 0 0 6px rgba(255,149,0,.05); }\r\n}\r\n\r\n\/* ===== HERO ===== *\/\r\n.aif-dir-ia .hero{\r\n  text-align:center;\r\n  padding:clamp(20px,4vw,48px) 0 clamp(36px,6vw,72px);\r\n  margin-bottom:clamp(36px,6vw,72px);\r\n  position:relative;\r\n}\r\n.aif-dir-ia .hero::after{\r\n  content:'';\r\n  position:absolute;\r\n  bottom:0; left:50%;\r\n  transform:translateX(-50%);\r\n  width:min(560px,80%);\r\n  height:1px;\r\n  background:linear-gradient(90deg, transparent, var(--line), transparent);\r\n}\r\n.aif-dir-ia .eyebrow{\r\n  display:block;\r\n  font-size:.95rem;\r\n  font-weight:600;\r\n  color:var(--orange);\r\n  margin-bottom:18px;\r\n  text-transform:none !important;\r\n  letter-spacing:normal;\r\n}\r\n.aif-dir-ia .eyebrow::before{ display:none; }\r\n\r\n.aif-dir-ia .hero h1{\r\n  font-size:clamp(2.2rem,5vw,4rem);\r\n  font-weight:700;\r\n  line-height:1.08;\r\n  letter-spacing:.2px;\r\n  margin-bottom:clamp(12px,2.5vw,24px);\r\n  color:var(--ink);\r\n  text-transform:none !important;\r\n}\r\n.aif-dir-ia .hero h1 .accent{\r\n  background:linear-gradient(135deg,#FF9500,#FFB347);\r\n  -webkit-background-clip:text;\r\n  background-clip:text;\r\n  -webkit-text-fill-color:transparent;\r\n  color:var(--orange);\r\n}\r\n.aif-dir-ia .hero p{\r\n  max-width:580px;\r\n  margin:0 auto;\r\n  font-size:clamp(.92rem,2vw,1.12rem);\r\n  line-height:1.55;\r\n  color:var(--muted);\r\n  font-weight:400;\r\n  padding:0 8px;\r\n}\r\n\r\n\/* ===== CHAT GROQ ===== *\/\r\n.aif-dir-ia .groq-wrap{\r\n  max-width:680px;\r\n  margin:clamp(18px,3vw,32px) auto 0;\r\n  background:var(--bg-card);\r\n  border:1.5px solid var(--line);\r\n  border-radius:var(--radius-md);\r\n  padding:clamp(14px,3vw,24px);\r\n  box-shadow:0 20px 60px rgba(10,10,10,.05), 0 4px 16px rgba(255,149,0,.05);\r\n  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;\r\n  text-align:left;\r\n}\r\n.aif-dir-ia .groq-wrap:hover{\r\n  transform:translateY(-2px);\r\n  border-color:var(--orange-border);\r\n  box-shadow:0 24px 64px rgba(10,10,10,.08), 0 6px 20px rgba(255,149,0,.09);\r\n}\r\n.aif-dir-ia .groq-header{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:12px;\r\n  margin-bottom:14px;\r\n}\r\n.aif-dir-ia .groq-icon{\r\n  width:clamp(34px,5vw,40px); height:clamp(34px,5vw,40px);\r\n  border-radius:50%;\r\n  background:var(--grad-orange-deep);\r\n  display:flex; align-items:center; justify-content:center;\r\n  flex-shrink:0;\r\n  box-shadow:0 6px 16px rgba(255,149,0,.35);\r\n}\r\n.aif-dir-ia .groq-icon svg{ width:20px; height:20px; color:#fff; }\r\n.aif-dir-ia .groq-title{\r\n  font-size:clamp(.98rem,2.5vw,1.18rem);\r\n  font-weight:800;\r\n  color:var(--ink);\r\n  letter-spacing:-.02em;\r\n  line-height:1.2;\r\n}\r\n.aif-dir-ia .groq-textarea-wrap{ position:relative; }\r\n.aif-dir-ia .groq-textarea{\r\n  width:100%;\r\n  height:clamp(100px,18vw,140px);\r\n  background:var(--bg-soft);\r\n  border:1.5px solid var(--line);\r\n  border-radius:var(--radius-sm);\r\n  padding:13px 13px 54px;\r\n  font-size:clamp(.86rem,1.8vw,.95rem);\r\n  color:var(--ink);\r\n  resize:none;\r\n  outline:none;\r\n  transition:border-color .2s, box-shadow .2s, background .2s;\r\n  line-height:1.5;\r\n}\r\n.aif-dir-ia .groq-textarea::placeholder{ color:var(--muted-2); }\r\n.aif-dir-ia .groq-textarea:focus{\r\n  border-color:var(--orange);\r\n  box-shadow:0 0 0 3px rgba(255,149,0,.1);\r\n  background:var(--bg);\r\n}\r\n.aif-dir-ia .groq-actions{\r\n  position:absolute;\r\n  bottom:10px; right:10px;\r\n  display:flex;\r\n  align-items:center;\r\n  gap:8px;\r\n}\r\n.aif-dir-ia .groq-voice-btn{\r\n  width:36px; height:36px;\r\n  border-radius:10px;\r\n  border:1.5px solid var(--line);\r\n  background:var(--bg-card);\r\n  color:var(--muted);\r\n  cursor:pointer;\r\n  display:flex; align-items:center; justify-content:center;\r\n  transition:all .2s ease;\r\n  flex-shrink:0;\r\n}\r\n.aif-dir-ia .groq-voice-btn:hover{ border-color:var(--orange); color:var(--orange); }\r\n.aif-dir-ia .groq-voice-btn.recording{ border-color:#e11d48; color:#e11d48; background:rgba(225,29,72,.06); }\r\n.aif-dir-ia .groq-voice-btn svg{ width:17px; height:17px; }\r\n.aif-dir-ia .groq-send-btn{\r\n  padding:10px 16px;\r\n  border-radius:10px;\r\n  border:none;\r\n  background:var(--grad-orange-deep);\r\n  color:#fff;\r\n  font-size:.85rem;\r\n  font-weight:700;\r\n  cursor:pointer;\r\n  display:inline-flex; align-items:center; gap:6px;\r\n  transition:all .2s ease;\r\n  box-shadow:0 4px 14px rgba(255,149,0,.3);\r\n  white-space:nowrap;\r\n}\r\n.aif-dir-ia .groq-send-btn:hover{ transform:translateY(-1px); box-shadow:0 8px 20px rgba(255,149,0,.38); }\r\n.aif-dir-ia .groq-send-btn:disabled{ opacity:.5; cursor:not-allowed; transform:none; box-shadow:none; }\r\n.aif-dir-ia .groq-send-btn svg{ width:14px; height:14px; }\r\n.aif-dir-ia .groq-output{\r\n  display:none;\r\n  margin-top:14px;\r\n  padding:14px 16px;\r\n  background:var(--bg-soft);\r\n  border:1.5px solid var(--line);\r\n  border-radius:var(--radius-sm);\r\n  font-size:.9rem;\r\n  color:var(--ink-soft);\r\n  line-height:1.65;\r\n  max-height:280px;\r\n  overflow-y:auto;\r\n}\r\n.aif-dir-ia .groq-output.show{ display:block; }\r\n.aif-dir-ia .groq-output-msg{\r\n  padding:10px 14px;\r\n  border-radius:10px;\r\n  margin-bottom:8px;\r\n  font-size:.88rem;\r\n  line-height:1.5;\r\n  word-wrap:break-word;\r\n  white-space:pre-wrap;\r\n  animation:aifFadeUp .3s ease;\r\n  max-width:90%;\r\n}\r\n.aif-dir-ia .groq-output-msg:last-child{ margin-bottom:0; }\r\n.aif-dir-ia .groq-output-msg.user{\r\n  background:var(--grad-orange);\r\n  color:#fff;\r\n  border-radius:10px 3px 10px 10px;\r\n  margin-left:auto;\r\n  text-align:right;\r\n}\r\n.aif-dir-ia .groq-output-msg.assistant{\r\n  background:#fff;\r\n  color:var(--ink);\r\n  border:1px solid var(--line);\r\n  border-radius:3px 10px 10px 10px;\r\n}\r\n.aif-dir-ia .groq-output-msg.loading{\r\n  color:var(--muted);\r\n  font-style:italic;\r\n  background:transparent;\r\n  border:none;\r\n  padding-left:4px;\r\n}\r\n\r\n\/* ===== BUSCADOR ===== *\/\r\n.aif-dir-ia .search-wrap{\r\n  max-width:680px;\r\n  margin:clamp(22px,4vw,40px) auto 0;\r\n  position:relative;\r\n  z-index:100;\r\n  padding:0 4px;\r\n}\r\n.aif-dir-ia .search-box{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:10px;\r\n  background:var(--bg);\r\n  border:1.5px solid var(--line);\r\n  border-radius:var(--radius-pill);\r\n  padding:5px 5px 5px 20px;\r\n  transition:border-color .2s ease, box-shadow .25s ease, transform .2s ease;\r\n  box-shadow:0 1px 3px rgba(10,10,10,.03);\r\n}\r\n.aif-dir-ia .search-box:focus-within{\r\n  border-color:var(--orange);\r\n  box-shadow:0 0 0 4px rgba(255,149,0,.1), 0 8px 24px rgba(255,149,0,.08);\r\n  transform:translateY(-1px);\r\n}\r\n.aif-dir-ia .search-box svg.search-icon{ width:20px; height:20px; color:var(--muted-2); flex-shrink:0; }\r\n.aif-dir-ia .search-box input{\r\n  flex:1; min-width:0;\r\n  border:none; outline:none; background:transparent;\r\n  padding:13px 4px; font-size:clamp(.88rem,2vw,1rem); color:var(--ink);\r\n}\r\n.aif-dir-ia .search-box input::placeholder{ color:var(--muted-2); }\r\n.aif-dir-ia .surprise-btn{\r\n  padding:11px 20px;\r\n  border-radius:var(--radius-pill);\r\n  border:none;\r\n  background:var(--grad-ink);\r\n  color:#fff;\r\n  font-size:.86rem; font-weight:600;\r\n  cursor:pointer;\r\n  transition:all .25s ease;\r\n  white-space:nowrap;\r\n  display:inline-flex; align-items:center; gap:6px;\r\n  flex-shrink:0;\r\n}\r\n.aif-dir-ia .surprise-btn::before{ content:'\u2728'; font-size:.9rem; }\r\n.aif-dir-ia .surprise-btn:hover{ background:var(--grad-orange-deep); transform:translateY(-1px); box-shadow:0 8px 20px rgba(255,149,0,.28); }\r\n.aif-dir-ia .suggestions{\r\n  position:absolute; top:calc(100% + 8px); left:0; right:0;\r\n  background:var(--bg); border:1px solid var(--line);\r\n  border-radius:var(--radius-md); box-shadow:var(--shadow-lg);\r\n  max-height:320px; overflow-y:auto; z-index:90; display:none;\r\n}\r\n.aif-dir-ia .suggestions.show{ display:block; }\r\n.aif-dir-ia .suggestion-item{\r\n  display:flex; align-items:center; gap:12px;\r\n  padding:12px 16px; cursor:pointer;\r\n  border-bottom:1px solid var(--line-2); transition:background .15s ease;\r\n}\r\n.aif-dir-ia .suggestion-item:last-child{ border-bottom:none; }\r\n.aif-dir-ia .suggestion-item:hover{ background:var(--bg-soft); }\r\n.aif-dir-ia .suggestion-item img{ width:28px; height:28px; border-radius:6px; background:#fff; padding:2px; border:1px solid var(--line); object-fit:contain; flex-shrink:0; }\r\n.aif-dir-ia .suggestion-item span{ font-size:.9rem; color:var(--ink); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\r\n\r\n\/* ===== ACTIONS ===== *\/\r\n.aif-dir-ia .actions-bar{ display:flex; justify-content:center; gap:12px; margin-top:22px; position:relative; z-index:10; padding:0 4px; }\r\n.aif-dir-ia .fav-btn{\r\n  display:inline-flex; align-items:center; gap:10px;\r\n  padding:11px 22px; background:var(--bg);\r\n  border:1.5px solid var(--line); border-radius:var(--radius-pill);\r\n  color:var(--ink-soft); font-size:.88rem; font-weight:600;\r\n  cursor:pointer; transition:all .25s ease;\r\n  box-shadow:0 1px 2px rgba(10,10,10,.03);\r\n}\r\n.aif-dir-ia .fav-btn:hover{ border-color:var(--orange); color:var(--orange); transform:translateY(-1px); box-shadow:0 6px 16px rgba(255,149,0,.12); }\r\n.aif-dir-ia .fav-btn svg{ width:16px; height:16px; }\r\n.aif-dir-ia .fav-count{ background:var(--orange); color:#fff; font-size:.72rem; font-weight:700; padding:2px 8px; border-radius:var(--radius-pill); min-width:20px; text-align:center; display:none; }\r\n.aif-dir-ia .fav-count.show{ display:inline-block; }\r\n\r\n\/* ===== SECCIONES ===== *\/\r\n.aif-dir-ia .section-header{ display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:clamp(18px,3vw,32px); padding-top:8px; gap:20px; flex-wrap:wrap; }\r\n.aif-dir-ia .section-title{ font-size:clamp(1.15rem,3vw,1.6rem); font-weight:800; color:var(--ink); letter-spacing:-.025em; display:flex; align-items:center; gap:14px; line-height:1; margin:0; }\r\n.aif-dir-ia .section-title::before{ content:''; display:inline-block; width:6px; height:clamp(18px,3vw,26px); background:var(--grad-orange); border-radius:3px; box-shadow:0 2px 10px rgba(255,149,0,.3); }\r\n.aif-dir-ia .section-sub{ font-size:.72rem; color:var(--muted); font-weight:600; letter-spacing:.12em; text-transform:uppercase; padding:6px 14px; background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius-pill); }\r\n\r\n\/* ===== FEATURED ===== *\/\r\n.aif-dir-ia .featured-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr)); gap:clamp(12px,2vw,20px); margin-bottom:clamp(40px,7vw,88px); counter-reset:featured-counter; }\r\n.aif-dir-ia .featured-card{ background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius-md); padding:clamp(18px,3vw,28px) clamp(16px,2.5vw,24px) clamp(16px,2.5vw,24px); cursor:pointer; transition:border-color .25s ease, transform .25s ease, box-shadow .35s ease; position:relative; overflow:hidden; counter-increment:featured-counter; }\r\n.aif-dir-ia .featured-card::before{ content:counter(featured-counter, decimal-leading-zero); position:absolute; top:18px; right:20px; font-size:.7rem; font-weight:700; letter-spacing:.1em; color:var(--muted-2); font-variant-numeric:tabular-nums; }\r\n.aif-dir-ia .featured-card::after{ content:''; position:absolute; top:0; left:0; width:100%; height:3px; background:var(--grad-orange); transform:scaleX(0); transform-origin:left; transition:transform .4s cubic-bezier(.4,0,.2,1); }\r\n.aif-dir-ia .featured-card:hover{ border-color:var(--orange-border); transform:translateY(-6px); box-shadow:0 20px 40px rgba(10,10,10,.06), 0 4px 12px rgba(255,149,0,.08); }\r\n.aif-dir-ia .featured-card:hover::after{ transform:scaleX(1); }\r\n\r\n\/* ===== PERFILES ===== *\/\r\n.aif-dir-ia .profiles-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:clamp(10px,1.5vw,16px); margin-bottom:clamp(40px,7vw,96px); }\r\n.aif-dir-ia .profile-card{ background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius-md); padding:clamp(16px,2.5vw,28px) clamp(14px,2.2vw,24px) clamp(16px,2.5vw,24px); cursor:pointer; transition:border-color .25s ease, transform .25s ease, box-shadow .35s ease; position:relative; overflow:hidden; display:flex; flex-direction:column; min-height:170px; }\r\n.aif-dir-ia .profile-card::after{ content:''; position:absolute; top:-40px; right:-40px; width:160px; height:160px; background:radial-gradient(circle, var(--orange-soft), transparent 65%); opacity:0; transition:opacity .4s ease, transform .4s ease; pointer-events:none; }\r\n.aif-dir-ia .profile-card:hover{ border-color:var(--orange); transform:translateY(-5px); box-shadow:0 18px 40px rgba(10,10,10,.06), 0 4px 12px rgba(255,149,0,.08); }\r\n.aif-dir-ia .profile-card:hover::after{ opacity:1; transform:scale(1.1); }\r\n.aif-dir-ia .profile-icon{ font-size:1.4rem; margin-bottom:14px; display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border-radius:14px; background:linear-gradient(145deg, var(--bg-soft), #fff); border:1px solid var(--line); transition:all .35s ease; box-shadow:0 2px 4px rgba(10,10,10,.03), inset 0 1px 0 rgba(255,255,255,.8); position:relative; z-index:1; }\r\n.aif-dir-ia .profile-card:hover .profile-icon{ transform:scale(1.06) rotate(-3deg); background:var(--grad-orange); border-color:var(--orange); box-shadow:0 8px 20px rgba(255,149,0,.25), inset 0 1px 0 rgba(255,255,255,.3); }\r\n.aif-dir-ia .profile-name{ font-size:1rem; font-weight:700; color:var(--ink); margin-bottom:6px; letter-spacing:-.015em; position:relative; z-index:1; line-height:1.25; }\r\n.aif-dir-ia .profile-desc{ font-size:.84rem; color:var(--muted); line-height:1.5; flex-grow:1; position:relative; z-index:1; }\r\n.aif-dir-ia .profile-arrow{ margin-top:14px; display:inline-flex; align-items:center; gap:6px; font-size:.72rem; font-weight:700; color:var(--orange); text-transform:uppercase; letter-spacing:.08em; opacity:0; transform:translateX(-6px); transition:all .25s ease; }\r\n.aif-dir-ia .profile-card:hover .profile-arrow{ opacity:1; transform:translateX(0); }\r\n.aif-dir-ia .profile-arrow svg{ width:12px; height:12px; }\r\n\r\n\/* ===== TOOLS VIEW ===== *\/\r\n.aif-dir-ia .tools-view{ display:none; }\r\n.aif-dir-ia .tools-view.active{ display:block; animation:aifFadeUp .4s ease; }\r\n.aif-dir-ia .home-view.hidden{ display:none; }\r\n.aif-dir-ia .back-btn{ display:inline-flex; align-items:center; gap:8px; background:var(--bg-soft); border:1px solid var(--line); color:var(--ink-soft); font-size:.86rem; font-weight:600; cursor:pointer; padding:8px 16px 8px 12px; border-radius:var(--radius-pill); margin-bottom:22px; transition:all .2s ease; }\r\n.aif-dir-ia .back-btn:hover{ background:var(--bg); border-color:var(--orange); color:var(--orange); transform:translateX(-3px); }\r\n.aif-dir-ia .back-btn svg{ width:18px; height:18px; }\r\n.aif-dir-ia .tools-header{ display:flex; flex-direction:column; gap:18px; padding-bottom:22px; border-bottom:1px solid var(--line); margin-bottom:26px; }\r\n@media (min-width:768px){ .aif-dir-ia .tools-header{ flex-direction:row; align-items:flex-end; justify-content:space-between; gap:32px; } }\r\n.aif-dir-ia .tools-header h2{ font-size:clamp(1.5rem,4vw,2.8rem); font-weight:800; color:var(--ink); letter-spacing:-.03em; margin-bottom:6px; line-height:1.05; }\r\n.aif-dir-ia .tools-header p{ font-size:clamp(.88rem,2vw,1rem); color:var(--muted); margin:0; }\r\n.aif-dir-ia .tools-controls{ display:flex; flex-wrap:wrap; gap:10px; align-items:center; }\r\n.aif-dir-ia .control-group{ display:flex; align-items:center; gap:4px; background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius-pill); padding:4px; max-width:100%; overflow-x:auto; scrollbar-width:none; -webkit-overflow-scrolling:touch; }\r\n.aif-dir-ia .control-group::-webkit-scrollbar{ display:none; }\r\n.aif-dir-ia .price-btn{ padding:8px 14px; border:none; background:transparent; color:var(--muted); font-size:.8rem; font-weight:600; cursor:pointer; border-radius:var(--radius-pill); transition:all .2s ease; white-space:nowrap; flex-shrink:0; }\r\n.aif-dir-ia .price-btn.active{ background:var(--grad-ink); color:#fff; box-shadow:0 4px 12px rgba(10,10,10,.18); }\r\n.aif-dir-ia .price-btn:not(.active):hover{ color:var(--ink); }\r\n.aif-dir-ia .sort-wrap{ display:flex; align-items:center; gap:10px; padding:8px 16px; background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius-pill); }\r\n.aif-dir-ia .sort-wrap label{ font-size:.72rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; }\r\n.aif-dir-ia .sort-wrap select{ border:none; background:transparent; font-size:.82rem; font-weight:600; color:var(--ink); cursor:pointer; outline:none; padding-right:18px; appearance:none; background-image:url(\"data:image\/svg+xml,%3csvg xmlns='http:\/\/www.w3.org\/2000\/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%230a0a0a' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 8l4 4 4-4'\/%3e%3c\/svg%3e\"); background-repeat:no-repeat; background-position:right center; background-size:14px; }\r\n.aif-dir-ia .filters{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:30px; }\r\n.aif-dir-ia .filter-chip{ padding:9px 18px; border:1.5px solid var(--line); background:var(--bg); color:var(--ink-soft); font-size:.83rem; font-weight:600; border-radius:var(--radius-pill); cursor:pointer; transition:all .2s ease; letter-spacing:-.005em; }\r\n.aif-dir-ia .filter-chip:hover{ border-color:var(--orange); color:var(--orange); background:var(--orange-soft); transform:translateY(-1px); }\r\n.aif-dir-ia .filter-chip.active{ background:var(--grad-orange); border-color:var(--orange); color:#fff; box-shadow:0 6px 16px rgba(255,149,0,.28); }\r\n.aif-dir-ia .filter-chip.active:hover{ transform:translateY(-1px); background:var(--grad-orange-deep); }\r\n\r\n\/* ===== TOOL CARDS ===== *\/\r\n.aif-dir-ia .tools-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr)); gap:clamp(12px,2vw,18px); margin-bottom:48px; }\r\n.aif-dir-ia .tool-card{ background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius-md); padding:clamp(16px,2.5vw,24px); cursor:pointer; transition:border-color .25s ease, transform .25s ease, box-shadow .35s ease; display:flex; flex-direction:column; position:relative; overflow:hidden; }\r\n.aif-dir-ia .tool-card::before{ content:''; position:absolute; top:0; left:50%; transform:translateX(-50%) scaleX(0); width:40%; height:2px; background:var(--grad-orange); transform-origin:center; transition:transform .4s cubic-bezier(.4,0,.2,1); border-radius:0 0 2px 2px; }\r\n.aif-dir-ia .tool-card:hover{ border-color:var(--orange-border); transform:translateY(-5px); box-shadow:0 18px 40px rgba(10,10,10,.06), 0 4px 12px rgba(255,149,0,.06); }\r\n.aif-dir-ia .tool-card:hover::before{ transform:translateX(-50%) scaleX(1); }\r\n.aif-dir-ia .tool-card-header{ display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; }\r\n.aif-dir-ia .tool-logo{ width:50px; height:50px; min-width:50px; border-radius:14px; background:#fff; border:1px solid var(--line); padding:7px; display:flex; align-items:center; justify-content:center; overflow:hidden; box-shadow:0 2px 4px rgba(10,10,10,.03), inset 0 1px 0 rgba(255,255,255,.8); transition:transform .3s ease; }\r\n.aif-dir-ia .tool-card:hover .tool-logo, .aif-dir-ia .featured-card:hover .tool-logo{ transform:scale(1.05); }\r\n.aif-dir-ia .tool-logo img{ width:100%; height:100%; object-fit:contain; }\r\n.aif-dir-ia .tool-title-wrap{ flex:1; min-width:0; }\r\n.aif-dir-ia .tool-name{ font-size:1rem; font-weight:700; color:var(--ink); letter-spacing:-.01em; margin-bottom:4px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; line-height:1.25; }\r\n.aif-dir-ia .badge-new{ display:inline-block; font-size:.6rem; font-weight:700; background:var(--orange); color:#fff; padding:2px 8px; border-radius:var(--radius-pill); text-transform:uppercase; letter-spacing:.05em; }\r\n.aif-dir-ia .heart-btn{ background:none; border:none; cursor:pointer; padding:4px; color:var(--muted-2); transition:all .2s ease; flex-shrink:0; }\r\n.aif-dir-ia .heart-btn svg{ width:22px; height:22px; }\r\n.aif-dir-ia .heart-btn:hover{ color:#e11d48; transform:scale(1.15); }\r\n.aif-dir-ia .heart-btn.active{ color:#e11d48; }\r\n.aif-dir-ia .heart-btn.active svg{ fill:#e11d48; }\r\n.aif-dir-ia .tool-desc{ font-size:.86rem; color:var(--muted); line-height:1.55; margin-bottom:16px; flex-grow:1; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }\r\n.aif-dir-ia .tool-footer{ display:flex; align-items:center; justify-content:space-between; padding-top:14px; border-top:1px solid var(--line-2); gap:8px; }\r\n.aif-dir-ia .badge{ font-size:.62rem; font-weight:700; padding:4px 11px; border-radius:var(--radius-pill); letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }\r\n.aif-dir-ia .badge-gratis{ background:#dcfce7; color:#15803d; }\r\n.aif-dir-ia .badge-freemium{ background:#dbeafe; color:#1e40af; }\r\n.aif-dir-ia .badge-pago{ background:#f3e8ff; color:#7e22ce; }\r\n.aif-dir-ia .share-btn{ background:none; border:none; cursor:pointer; padding:6px; color:var(--muted-2); transition:color .2s ease, transform .2s ease; }\r\n.aif-dir-ia .share-btn:hover{ color:var(--orange); transform:translateY(-2px); }\r\n.aif-dir-ia .share-btn svg{ width:18px; height:18px; }\r\n.aif-dir-ia .empty-state{ grid-column:1\/-1; text-align:center; padding:60px 24px; color:var(--muted); }\r\n.aif-dir-ia .empty-state svg{ width:48px; height:48px; color:var(--muted-2); margin-bottom:16px; }\r\n.aif-dir-ia .empty-state p{ font-size:.95rem; }\r\n\r\n\/* ===== MODAL (fixed para que cubra toda la p&aacute;gina) ===== *\/\r\n.aif-dir-ia .modal-backdrop{ position:fixed; inset:0; background:rgba(10,10,10,.55); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); z-index:99999; display:none; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .3s ease; }\r\n.aif-dir-ia .modal-backdrop.show{ display:flex; opacity:1; }\r\n.aif-dir-ia .modal{ background:#fff; border-radius:var(--radius-lg); max-width:600px; width:100%; max-height:85vh; display:flex; flex-direction:column; overflow:hidden; transform:scale(.95); transition:transform .35s cubic-bezier(.4,0,.2,1); box-shadow:0 40px 100px rgba(0,0,0,.25), 0 10px 30px rgba(0,0,0,.1); }\r\n.aif-dir-ia .modal-backdrop.show .modal{ transform:scale(1); }\r\n.aif-dir-ia .modal-header{ padding:20px 24px; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }\r\n.aif-dir-ia .modal-title-row{ display:flex; align-items:center; gap:12px; flex:1; min-width:0; }\r\n.aif-dir-ia .modal-header h2{ font-size:clamp(1.15rem,3vw,1.5rem); font-weight:700; color:var(--ink); letter-spacing:-.02em; margin:0; }\r\n.aif-dir-ia .modal-fav{ background:none; border:none; cursor:pointer; padding:0; color:var(--muted-2); transition:all .2s ease; flex-shrink:0; }\r\n.aif-dir-ia .modal-fav svg{ width:24px; height:24px; }\r\n.aif-dir-ia .modal-fav:hover{ color:#e11d48; transform:scale(1.15); }\r\n.aif-dir-ia .modal-fav.active{ color:#e11d48; }\r\n.aif-dir-ia .modal-fav.active svg{ fill:#e11d48; }\r\n.aif-dir-ia .modal-close{ background:none; border:none; cursor:pointer; padding:4px; color:var(--muted); transition:color .2s ease; flex-shrink:0; }\r\n.aif-dir-ia .modal-close:hover{ color:var(--orange); }\r\n.aif-dir-ia .modal-close svg{ width:22px; height:22px; }\r\n.aif-dir-ia .modal-body{ padding:22px 24px; overflow-y:auto; flex:1; }\r\n.aif-dir-ia .modal-logo-row{ display:flex; align-items:center; gap:16px; margin-bottom:18px; flex-wrap:wrap; }\r\n.aif-dir-ia .modal-logo{ width:60px; height:60px; min-width:60px; border-radius:14px; background:#fff; border:1px solid var(--line); padding:8px; box-shadow:var(--shadow-sm); }\r\n.aif-dir-ia .modal-logo img{ width:100%; height:100%; object-fit:contain; }\r\n.aif-dir-ia .modal-tags{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }\r\n.aif-dir-ia .modal-tag{ font-size:.66rem; font-weight:700; color:var(--orange-deep); background:var(--orange-soft); border:1px solid var(--orange-border); padding:5px 12px; border-radius:var(--radius-pill); text-transform:capitalize; letter-spacing:.02em; }\r\n.aif-dir-ia .modal-desc{ font-size:.96rem; line-height:1.65; color:var(--ink-soft); margin:0; }\r\n.aif-dir-ia .modal-footer{ padding:16px 24px; border-top:1px solid var(--line); background:var(--bg-soft); }\r\n.aif-dir-ia .modal-cta{ display:inline-flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:13px 24px; background:var(--grad-orange-deep); color:#fff; text-decoration:none; font-weight:700; font-size:.94rem; border-radius:var(--radius-pill); transition:all .25s ease; box-shadow:0 10px 24px rgba(255,149,0,.28); letter-spacing:-.005em; }\r\n.aif-dir-ia .modal-cta:hover{ background:var(--grad-ink); transform:translateY(-2px); box-shadow:0 14px 30px rgba(10,10,10,.22); }\r\n.aif-dir-ia .modal-cta svg{ width:16px; height:16px; }\r\n\r\n\/* ===== TOAST ===== *\/\r\n.aif-dir-ia .aif-toast{ position:fixed; bottom:24px; right:24px; background:var(--ink); color:#fff; padding:14px 22px; border-radius:var(--radius-pill); font-size:.9rem; font-weight:600; box-shadow:var(--shadow-lg); z-index:100000; opacity:0; transform:translateY(10px); transition:all .3s ease; pointer-events:none; display:flex; align-items:center; gap:8px; }\r\n.aif-dir-ia .aif-toast.show{ opacity:1; transform:translateY(0); }\r\n.aif-dir-ia .aif-toast svg{ width:16px; height:16px; color:var(--orange); }\r\n\r\n\/* ===== FOOTER ===== *\/\r\n.aif-dir-ia .aif-footer{\r\n  border-top:1px solid var(--line);\r\n  background:#FFFFFF;\r\n  margin-top:clamp(40px,8vw,80px);\r\n  padding:clamp(28px,5vw,48px) clamp(14px,4vw,24px);\r\n  text-align:center;\r\n  position:relative;\r\n  z-index:3;\r\n}\r\n.aif-dir-ia .aif-footer-redes-label{\r\n  font-size:.7rem;\r\n  font-weight:700;\r\n  color:var(--muted);\r\n  text-transform:uppercase;\r\n  letter-spacing:.14em;\r\n  margin-bottom:18px;\r\n}\r\n.aif-dir-ia .aif-footer-links{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n  justify-content:center;\r\n  gap:10px;\r\n  margin-bottom:26px;\r\n}\r\n.aif-dir-ia .aif-footer-link{\r\n  display:inline-flex;\r\n  align-items:center;\r\n  gap:8px;\r\n  padding:10px 16px;\r\n  border-radius:12px;\r\n  border:1px solid var(--line);\r\n  background:var(--orange-soft);\r\n  color:var(--ink-soft);\r\n  font-size:.84rem;\r\n  font-weight:500;\r\n  transition:all .2s ease;\r\n}\r\n.aif-dir-ia .aif-footer-link:hover{\r\n  border-color:rgba(255,149,0,.5);\r\n  background:rgba(255,149,0,.1);\r\n  color:var(--orange);\r\n  transform:translateY(-1px);\r\n}\r\n.aif-dir-ia .aif-footer-link svg{\r\n  width:18px; height:18px;\r\n  color:var(--orange);\r\n  flex-shrink:0;\r\n}\r\n.aif-dir-ia .aif-footer-bottom{\r\n  border-top:1px solid var(--line);\r\n  padding-top:18px;\r\n  margin-top:8px;\r\n  display:flex;\r\n  flex-direction:column;\r\n  align-items:center;\r\n  gap:12px;\r\n}\r\n@media (min-width:640px){\r\n  .aif-dir-ia .aif-footer-bottom{\r\n    flex-direction:row;\r\n    justify-content:space-between;\r\n  }\r\n}\r\n.aif-dir-ia .aif-footer-copy{\r\n  font-size:.78rem;\r\n  color:var(--muted);\r\n  margin:0;\r\n}\r\n.aif-dir-ia .aif-footer-dev{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:12px;\r\n  font-size:.72rem;\r\n  color:var(--muted);\r\n  flex-wrap:wrap;\r\n  justify-content:center;\r\n}\r\n.aif-dir-ia .aif-footer-dev span{ opacity:.7; }\r\n.aif-dir-ia .aif-footer-dev a{\r\n  color:var(--muted);\r\n  transition:color .2s;\r\n  display:inline-flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n}\r\n.aif-dir-ia .aif-footer-dev a:hover{ color:var(--orange); }\r\n.aif-dir-ia .aif-footer-dev a.wa:hover{ color:#22c55e; }\r\n.aif-dir-ia .aif-footer-dev svg{ width:18px; height:18px; }\r\n\r\n.aif-dir-ia .fade-in{ animation:aifFadeUp .6s ease both; }\r\n.aif-dir-ia .d1{ animation-delay:.05s; }\r\n.aif-dir-ia .d2{ animation-delay:.15s; }\r\n.aif-dir-ia .d3{ animation-delay:.25s; }\r\n.aif-dir-ia .d4{ animation-delay:.35s; }\r\n\r\n\/* ===== RESPONSIVE ===== *\/\r\n@media (max-width:1100px){\r\n  .aif-dir-ia .node-tr{ right:24px; width:90px; height:90px; }\r\n  .aif-dir-ia .node-br{ right:30px; width:80px; height:80px; }\r\n}\r\n@media (max-width:980px){\r\n  .aif-dir-ia .node-tl,\r\n  .aif-dir-ia .node-ml-1,\r\n  .aif-dir-ia .node-bl{ display:none; }\r\n  .aif-dir-ia .dot-3, .aif-dir-ia .dot-4, .aif-dir-ia .dot-7{ display:none; }\r\n}\r\n@media (max-width:640px){\r\n  .aif-dir-ia .groq-send-btn .send-label{ display:none; }\r\n  .aif-dir-ia .groq-send-btn{ padding:10px 12px; }\r\n  .aif-dir-ia .groq-voice-btn{ width:34px; height:34px; }\r\n  .aif-dir-ia .groq-output{ max-height:220px; padding:12px; font-size:.85rem; }\r\n  .aif-dir-ia .search-box{ padding:4px 4px 4px 14px; gap:8px; }\r\n  .aif-dir-ia .surprise-btn{ padding:9px 14px; font-size:.76rem; }\r\n  .aif-dir-ia .surprise-btn::before{ display:none; }\r\n  .aif-dir-ia .profiles-grid{ grid-template-columns:repeat(2,1fr); gap:10px; }\r\n  .aif-dir-ia .profile-card{ padding:14px 12px; min-height:auto; }\r\n  .aif-dir-ia .profile-icon{ width:38px; height:38px; font-size:1.05rem; margin-bottom:8px; border-radius:10px; }\r\n  .aif-dir-ia .profile-name{ font-size:.86rem; }\r\n  .aif-dir-ia .profile-desc{ font-size:.72rem; line-height:1.4; }\r\n  .aif-dir-ia .profile-arrow{ display:none; }\r\n  .aif-dir-ia .filter-chip{ padding:8px 14px; font-size:.76rem; }\r\n  .aif-dir-ia .price-btn{ padding:7px 12px; font-size:.74rem; }\r\n  .aif-dir-ia .modal-backdrop{ padding:0; align-items:flex-end; }\r\n  .aif-dir-ia .modal{ border-radius:24px 24px 0 0; max-height:92vh; }\r\n  .aif-dir-ia .modal-header{ padding:16px 18px; }\r\n  .aif-dir-ia .modal-body{ padding:18px; }\r\n  .aif-dir-ia .modal-footer{ padding:14px 18px; }\r\n  .aif-dir-ia .aif-toast{ right:12px; left:12px; bottom:12px; justify-content:center; }\r\n  .aif-dir-ia .node-tr{ top:20px; right:14px; width:50px; height:50px; }\r\n  .aif-dir-ia .node-mr, .aif-dir-ia .node-br{ display:none; }\r\n  .aif-dir-ia .node-halo{ display:none; }\r\n  .aif-dir-ia .aif-footer-link{ padding:8px 12px; font-size:.78rem; }\r\n  .aif-dir-ia .aif-footer-dev span{ display:none; }\r\n  .aif-dir-ia .featured-grid{ grid-template-columns:1fr; }\r\n}\r\n@media (max-width:400px){\r\n  .aif-dir-ia .profiles-grid{ grid-template-columns:1fr; }\r\n  .aif-dir-ia .surprise-btn{ display:none; }\r\n  .aif-dir-ia .search-wrap{ padding:0; }\r\n  .aif-dir-ia .fav-btn{ padding:9px 16px; font-size:.82rem; }\r\n  .aif-dir-ia .aif-footer-link .label{ display:none; }\r\n  .aif-dir-ia .tool-card-header{ gap:10px; }\r\n  .aif-dir-ia .tool-logo{ width:44px; height:44px; min-width:44px; }\r\n}\r\n@media (max-height:500px) and (orientation:landscape){\r\n  .aif-dir-ia .aif-main-wrap{ padding-top:28px; padding-bottom:28px; }\r\n  .aif-dir-ia .hero{ padding:14px 0 28px; margin-bottom:28px; }\r\n  .aif-dir-ia .groq-textarea{ height:90px; }\r\n}\r\n@media (prefers-reduced-motion: reduce){\r\n  .aif-dir-ia *,\r\n  .aif-dir-ia *::before,\r\n  .aif-dir-ia *::after{\r\n    animation-duration:.01ms !important;\r\n    transition-duration:.01ms !important;\r\n  }\r\n}\r\n<\/style>\r\n\r\n<!-- ======================== HTML WIDGET ======================== -->\r\n<div class=\"aif-dir-ia\">\r\n\r\n  <div class=\"nodes-layer\" aria-hidden=\"true\">\r\n    <div class=\"node-group node-tr\"><div class=\"node-halo lg\"><\/div><div class=\"node-ring lg r2\"><\/div><div class=\"node-ring lg\"><\/div><div class=\"node-core lg\"><\/div><div class=\"node-center lg\"><\/div><\/div>\r\n    <div class=\"node-group node-tl\"><div class=\"node-halo md\"><\/div><div class=\"node-ring md r2\"><\/div><div class=\"node-ring md\"><\/div><div class=\"node-core md\"><\/div><div class=\"node-center md\"><\/div><\/div>\r\n    <div class=\"node-group node-mr\"><div class=\"node-ring md r2\"><\/div><div class=\"node-ring md\"><\/div><div class=\"node-core md\"><\/div><div class=\"node-center md\"><\/div><\/div>\r\n    <div class=\"node-group node-ml-1\"><div class=\"node-ring md\"><\/div><div class=\"node-core md\"><\/div><div class=\"node-center md\"><\/div><\/div>\r\n    <div class=\"node-group node-br\"><div class=\"node-halo md\"><\/div><div class=\"node-ring md r2\"><\/div><div class=\"node-ring md\"><\/div><div class=\"node-core md\"><\/div><div class=\"node-center md\"><\/div><\/div>\r\n    <div class=\"node-group node-bl\"><div class=\"node-ring md r2\"><\/div><div class=\"node-ring md\"><\/div><div class=\"node-core md\"><\/div><div class=\"node-center md\"><\/div><\/div>\r\n    <span class=\"dot dot-1\"><\/span><span class=\"dot dot-2\"><\/span><span class=\"dot dot-3\"><\/span><span class=\"dot dot-4\"><\/span>\r\n    <span class=\"dot dot-5\"><\/span><span class=\"dot dot-6\"><\/span><span class=\"dot dot-7\"><\/span><span class=\"dot dot-8\"><\/span>\r\n  <\/div>\r\n\r\n  <div class=\"aif-main-wrap\">\r\n    <div class=\"aif-container\">\r\n\r\n      <div class=\"home-view\" id=\"aif-home-view\">\r\n\r\n        <section class=\"hero\">\r\n          <span class=\"eyebrow fade-in d1\">Herramientas de Inteligencia Artificial<\/span>\r\n          <h1 class=\"fade-in d2\">Potenci&aacute; tu trabajo con <span class=\"accent\">IA<\/span><\/h1>\r\n          <p class=\"fade-in d3\">Explor&aacute; una colecci&oacute;n curada de herramientas de IA seleccionadas por perfil profesional. Encontr&aacute; exactamente lo que necesit&aacute;s.<\/p>\r\n\r\n          <div class=\"groq-wrap fade-in d3\">\r\n            <div class=\"groq-header\">\r\n              <div class=\"groq-icon\">\r\n                <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M13 10V3L4 14h7v7l9-11h-7z\"><\/path><\/svg>\r\n              <\/div>\r\n              <h2 class=\"groq-title\">Asistente Inteligente<\/h2>\r\n            <\/div>\r\n            <div class=\"groq-textarea-wrap\">\r\n              <textarea id=\"groq-input\" class=\"groq-textarea\" placeholder=\"&iquest;Qu&eacute; necesit&aacute;s hacer hoy? (ej: 'Crear un video publicitario', 'Resumir un contrato', 'Dise&ntilde;ar un logo')\"><\/textarea>\r\n              <div class=\"groq-actions\">\r\n                <button id=\"groq-voice-btn\" class=\"groq-voice-btn\" title=\"Dictar consulta\" aria-label=\"Dictar consulta\">\r\n                  <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M19 11a7 7 0 01-7 7m0 0a7 7 0 01-7-7m7 7v4m0 0H8m4 0h4m-4-8a3 3 0 01-3-3V5a3 3 0 116 0v6a3 3 0 01-3 3z\"><\/path><\/svg>\r\n                <\/button>\r\n                <button id=\"groq-btn\" class=\"groq-send-btn\">\r\n                  <span class=\"send-label\">Consultar IA<\/span>\r\n                  <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M14 5l7 7m0 0l-7 7m7-7H3\"><\/path><\/svg>\r\n                <\/button>\r\n              <\/div>\r\n            <\/div>\r\n            <div class=\"groq-output\" id=\"groq-output\"><\/div>\r\n          <\/div>\r\n\r\n          <div class=\"search-wrap fade-in d4\">\r\n            <div class=\"search-box\">\r\n              <svg class=\"search-icon\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"><\/path><\/svg>\r\n              <input type=\"text\" id=\"aif-search\" placeholder=\"Buscar herramienta...\" autocomplete=\"off\">\r\n              <button class=\"surprise-btn\" id=\"aif-surprise\">Sorprendeme<\/button>\r\n            <\/div>\r\n            <div class=\"suggestions\" id=\"aif-suggestions\"><\/div>\r\n          <\/div>\r\n\r\n          <div class=\"actions-bar fade-in d4\">\r\n            <button class=\"fav-btn\" id=\"aif-fav-btn\">\r\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\"><\/path><\/svg>\r\n              Mis Favoritos\r\n              <span class=\"fav-count\" id=\"aif-fav-count\">0<\/span>\r\n            <\/button>\r\n          <\/div>\r\n        <\/section>\r\n\r\n        <section>\r\n          <div class=\"section-header\">\r\n            <h3 class=\"section-title\">Destacadas<\/h3>\r\n            <span class=\"section-sub\">Lo m&aacute;s elegido<\/span>\r\n          <\/div>\r\n          <div class=\"featured-grid\" id=\"aif-featured-grid\"><\/div>\r\n        <\/section>\r\n\r\n        <section>\r\n          <div class=\"section-header\">\r\n            <h3 class=\"section-title\">Explor&aacute; por perfil<\/h3>\r\n            <span class=\"section-sub\">16 categor&iacute;as<\/span>\r\n          <\/div>\r\n          <div class=\"profiles-grid\" id=\"aif-profiles-grid\"><\/div>\r\n        <\/section>\r\n\r\n      <\/div>\r\n\r\n      <div class=\"tools-view\" id=\"aif-tools-view\">\r\n        <button class=\"back-btn\" id=\"aif-back-btn\">\r\n          <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10 19l-7-7m0 0l7-7m-7 7h18\"><\/path><\/svg>\r\n          Volver a perfiles\r\n        <\/button>\r\n        <div class=\"tools-header\">\r\n          <div>\r\n            <h2 id=\"aif-profile-title\"><\/h2>\r\n            <p id=\"aif-profile-subtitle\">Herramientas seleccionadas para este perfil.<\/p>\r\n          <\/div>\r\n          <div class=\"tools-controls\">\r\n            <div class=\"control-group\" id=\"aif-price-filters\">\r\n              <button class=\"price-btn active\" data-price=\"all\">Todos<\/button>\r\n              <button class=\"price-btn\" data-price=\"gratis\">Gratis<\/button>\r\n              <button class=\"price-btn\" data-price=\"freemium\">Freemium<\/button>\r\n              <button class=\"price-btn\" data-price=\"pago\">Pago<\/button>\r\n            <\/div>\r\n            <div class=\"sort-wrap\">\r\n              <label>Ordenar<\/label>\r\n              <select id=\"aif-sort\">\r\n                <option value=\"relevance\">Relevancia<\/option>\r\n                <option value=\"az\">A - Z<\/option>\r\n                <option value=\"za\">Z - A<\/option>\r\n              <\/select>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"filters\" id=\"aif-category-filters\"><\/div>\r\n        <div class=\"tools-grid\" id=\"aif-tools-grid\"><\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"modal-backdrop\" id=\"aif-modal\">\r\n    <div class=\"modal\">\r\n      <div class=\"modal-header\">\r\n        <div class=\"modal-title-row\">\r\n          <h2 id=\"aif-modal-title\"><\/h2>\r\n          <button class=\"modal-fav\" id=\"aif-modal-fav\" title=\"Agregar a favoritos\" aria-label=\"Agregar a favoritos\">\r\n            <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\"><\/path><\/svg>\r\n          <\/button>\r\n        <\/div>\r\n        <button class=\"modal-close\" id=\"aif-modal-close\" aria-label=\"Cerrar\">\r\n          <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\"><\/path><\/svg>\r\n        <\/button>\r\n      <\/div>\r\n      <div class=\"modal-body\">\r\n        <div class=\"modal-logo-row\">\r\n          <div class=\"modal-logo\"><img id=\"aif-modal-logo\" alt=\"\"><\/div>\r\n          <div class=\"modal-tags\" id=\"aif-modal-tags\"><\/div>\r\n        <\/div>\r\n        <p class=\"modal-desc\" id=\"aif-modal-desc\"><\/p>\r\n      <\/div>\r\n      <div class=\"modal-footer\">\r\n        <a class=\"modal-cta\" id=\"aif-modal-link\" href=\"#\" target=\"_blank\" rel=\"noopener\">\r\n          Visitar sitio web\r\n          <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14\"><\/path><\/svg>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"aif-toast\" id=\"aif-toast\">\r\n    <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M5 13l4 4L19 7\"><\/path><\/svg>\r\n    <span id=\"aif-toast-msg\">Notificaci&oacute;n<\/span>\r\n  <\/div>\r\n\r\n  <footer class=\"aif-footer\">\r\n    <p class=\"aif-footer-redes-label\">&iexcl;Seguinos en nuestras redes!<\/p>\r\n    <div class=\"aif-footer-links\">\r\n      <a href=\"https:\/\/www.facebook.com\/aif.tdf\" target=\"_blank\" rel=\"noopener\" class=\"aif-footer-link\">\r\n        <svg fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z\"><\/path><\/svg>\r\n        <span class=\"label\">@aif.tdf<\/span>\r\n      <\/a>\r\n      <a href=\"https:\/\/www.instagram.com\/aif.tdf\" target=\"_blank\" rel=\"noopener\" class=\"aif-footer-link\">\r\n        <svg fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M7.8,2H16.2C19.4,2 22,4.6 22,7.8V16.2A5.8,5.8 0 0,1 16.2,22H7.8C4.6,22 2,19.4 2,16.2V7.8A5.8,5.8 0 0,1 7.8,2M7.6,4A3.6,3.6 0 0,0 4,7.6V16.4C4,18.39 5.61,20 7.6,20H16.4A3.6,3.6 0 0,0 20,16.4V7.6C20,5.61 18.39,4 16.4,4H7.6M17.25,5.5A1.25,1.25 0 0,1 18.5,6.75A1.25,1.25 0 0,1 17.25,8A1.25,1.25 0 0,1 16,6.75A1.25,1.25 0 0,1 17.25,5.5M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9Z\"><\/path><\/svg>\r\n        <span class=\"label\">@aif.tdf<\/span>\r\n      <\/a>\r\n      <a href=\"https:\/\/www.tiktok.com\/@conocimientotdf\" target=\"_blank\" rel=\"noopener\" class=\"aif-footer-link\">\r\n        <svg fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.03 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.35-1.17 1.09-1.25 1.92-.02 1.21.74 2.48 1.88 2.91 1.55.6 3.26-.24 3.82-1.84.17-.38.29-.78.34-1.2.05-5.13.04-10.27.04-15.41z\"><\/path><\/svg>\r\n        <span class=\"label\">@conocimientotdf<\/span>\r\n      <\/a>\r\n      <a href=\"https:\/\/polos.aif.gob.ar\/\" target=\"_blank\" rel=\"noopener\" class=\"aif-footer-link\">\r\n        <svg fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"><\/path><path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3.6 9h16.8M3.6 15h16.8M12 3c-2.4 0-4.5 4-4.5 9s2.1 9 4.5 9s4.5-4 4.5-9s-2.1-9-4.5-9z\"><\/path><\/svg>\r\n        <span class=\"label\">Polos Creativos<\/span>\r\n      <\/a>\r\n    <\/div>\r\n\r\n    <div class=\"aif-footer-bottom\">\r\n      <p class=\"aif-footer-copy\">&copy; 2026 Agencia de Innovaci&oacute;n.<\/p>\r\n      <div class=\"aif-footer-dev\">\r\n        <span>Desarrollado por Franco Morandi Roch<\/span>\r\n        <a href=\"https:\/\/mail.google.com\/mail\/?view=cm&fs=1&to=franmorandi080807@gmail.com\" target=\"_blank\" rel=\"noopener\" title=\"Enviar Email\" aria-label=\"Email\">\r\n          <svg fill=\"currentColor\" viewBox=\"0 0 20 20\"><path d=\"M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z\"><\/path><path d=\"M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z\"><\/path><\/svg>\r\n        <\/a>\r\n        <a href=\"https:\/\/wa.me\/5492964605810\" target=\"_blank\" rel=\"noopener\" class=\"wa\" title=\"WhatsApp\" aria-label=\"WhatsApp\">\r\n          <svg fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M.057 24l1.687-6.163c-1.041-1.804-1.588-3.849-1.587-5.946.003-6.556 5.338-11.891 11.893-11.891 3.181.001 6.167 1.24 8.413 3.488 2.245 2.248 3.481 5.236 3.48 8.414-.003 6.557-5.338 11.892-11.893 11.892-1.99-.001-3.951-.5-5.688-1.448l-6.305 1.654zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884-.001 2.225.651 3.891 1.746 5.634l-.999 3.648 3.742-.981zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372-.272.297-1.04 1.017-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z\"><\/path><\/svg>\r\n        <\/a>\r\n      <\/div>\r\n    <\/div>\r\n  <\/footer>\r\n\r\n<\/div>\r\n\r\n<script>\r\n(function(){\r\n  'use strict';\r\n\r\n  \/\/ ============================================================\r\n  \/\/ CHAT GROQ\r\n  \/\/ \\u26A0\\uFE0F ATENCI\\u00d3N: La API key queda expuesta en cliente. Movela a un backend.\r\n  \/\/ ============================================================\r\n  var GROQ_API_KEY = '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';\r\n  var GROQ_MODEL   = 'llama-3.3-70b-versatile';\r\n  var GROQ_SYSTEM  = 'Sos un asistente de la Agencia de Innovaci\\u00f3n TDF. Respond\\u00e9 en espa\\u00f1ol, de forma clara y concisa.';\r\n\r\n  var groqHistory = [{ role:'system', content: GROQ_SYSTEM }];\r\n\r\n  function groqAddOutput(container, text, role){\r\n    var div = document.createElement('div');\r\n    div.className = 'groq-output-msg ' + role;\r\n    if(role === 'assistant'){\r\n      div.innerHTML = text\r\n        .replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;')\r\n        .replace(\/\\*\\*(.+?)\\*\\*\/g,'<strong>$1<\/strong>')\r\n        .replace(\/\\*(.+?)\\*\/g,'<em>$1<\/em>')\r\n        .replace(\/^### (.+)$\/gm,'<h4 style=\"font-weight:700;margin:10px 0 4px;color:#0a0a0a\">$1<\/h4>')\r\n        .replace(\/^## (.+)$\/gm,'<h3 style=\"font-weight:800;margin:12px 0 4px;color:#0a0a0a\">$1<\/h3>')\r\n        .replace(\/^# (.+)$\/gm,'<h2 style=\"font-weight:800;margin:14px 0 6px;color:#0a0a0a\">$1<\/h2>')\r\n        .replace(\/^\\* (.+)$\/gm,'<li style=\"margin-left:16px;list-style:disc;margin-bottom:4px\">$1<\/li>')\r\n        .replace(\/(<li[\\s\\S]+?<\\\/li>)\/g,'<ul style=\"margin:8px 0\">$1<\/ul>')\r\n        .replace(\/\\n\\n\/g,'<br><br>')\r\n        .replace(\/\\n\/g,'<br>');\r\n    } else {\r\n      div.textContent = text;\r\n    }\r\n    container.appendChild(div);\r\n    container.scrollTop = container.scrollHeight;\r\n    return div;\r\n  }\r\n\r\n  async function groqSend(){\r\n    var textarea = document.getElementById('groq-input');\r\n    var output   = document.getElementById('groq-output');\r\n    var btn      = document.getElementById('groq-btn');\r\n    var text     = textarea.value.trim();\r\n    if(!text) return;\r\n\r\n    textarea.value = '';\r\n    btn.disabled = true;\r\n    output.classList.add('show');\r\n\r\n    groqAddOutput(output, text, 'user');\r\n    groqHistory.push({ role:'user', content: text });\r\n    var loadEl = groqAddOutput(output, 'Escribiendo\\u2026', 'loading');\r\n\r\n    try {\r\n      var res = await fetch('https:\/\/api.groq.com\/openai\/v1\/chat\/completions', {\r\n        method: 'POST',\r\n        headers: { 'Authorization': 'Bearer ' + GROQ_API_KEY, 'Content-Type': 'application\/json' },\r\n        body: JSON.stringify({ model: GROQ_MODEL, messages: groqHistory, max_tokens: 1024, temperature: 0.7 })\r\n      });\r\n      loadEl.remove();\r\n      if(!res.ok){\r\n        var e = await res.json().catch(function(){return{};});\r\n        throw new Error((e && e.error && e.error.message) || ('Error ' + res.status));\r\n      }\r\n      var data  = await res.json();\r\n      var reply = data.choices[0].message.content;\r\n      groqHistory.push({ role:'assistant', content: reply });\r\n      groqAddOutput(output, reply, 'assistant');\r\n    } catch(err){\r\n      try { loadEl.remove(); } catch(e){}\r\n      groqAddOutput(output, '\\u26A0\\uFE0F ' + err.message, 'assistant');\r\n    } finally {\r\n      btn.disabled = false;\r\n      textarea.focus();\r\n    }\r\n  }\r\n\r\n  \/\/ Voz (Web Speech API)\r\n  function setupVoice(){\r\n    var voiceBtn = document.getElementById('groq-voice-btn');\r\n    if(!voiceBtn) return;\r\n    var SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;\r\n    if(!SpeechRecognition){ voiceBtn.style.display='none'; return; }\r\n    var recog = new SpeechRecognition();\r\n    recog.lang = 'es-AR';\r\n    recog.continuous = false;\r\n    recog.interimResults = false;\r\n    var recording = false;\r\n    voiceBtn.addEventListener('click', function(){\r\n      if(recording){ recog.stop(); return; }\r\n      try { recog.start(); } catch(e){}\r\n    });\r\n    recog.onstart = function(){ recording = true; voiceBtn.classList.add('recording'); };\r\n    recog.onend   = function(){ recording = false; voiceBtn.classList.remove('recording'); };\r\n    recog.onresult = function(e){\r\n      var transcript = e.results[0][0].transcript;\r\n      var textarea = document.getElementById('groq-input');\r\n      textarea.value = (textarea.value + ' ' + transcript).trim();\r\n      textarea.focus();\r\n    };\r\n  }\r\n\r\n  \/\/ ================= DATA =================\r\n  var profilesList = [\r\n    { id: 'administracion', name: 'Administraci\\u00f3n y Gesti\\u00f3n', icon: '\\uD83D\\uDCCB', desc: 'Optimiz\\u00e1 flujos de trabajo, documentos y coordinaci\\u00f3n de equipos.' },\r\n    { id: 'ciencia', name: 'Ciencia e Investigaci\\u00f3n', icon: '\\uD83D\\uDD2C', desc: 'An\\u00e1lisis de datos, papers y descubrimiento cient\\u00edfico.' },\r\n    { id: 'comunicacion', name: 'Comunicaci\\u00f3n y Marketing', icon: '\\uD83D\\uDCE3', desc: 'Redes sociales, copywriting y estrategias digitales.' },\r\n    { id: 'creatividad', name: 'Creatividad y Dise\\u00f1o', icon: '\\uD83C\\uDFA8', desc: 'Generaci\\u00f3n de arte, edici\\u00f3n de video y dise\\u00f1o multimedia.' },\r\n    { id: 'directivo', name: 'Direcci\\u00f3n Ejecutiva', icon: '\\uD83D\\uDCC8', desc: 'Toma de decisiones, planificaci\\u00f3n y liderazgo.' },\r\n    { id: 'docente', name: 'Docencia y Educaci\\u00f3n', icon: '\\uD83C\\uDF93', desc: 'Material did\\u00e1ctico, evaluaciones y gesti\\u00f3n del aula.' },\r\n    { id: 'estudiante', name: 'Estudiantes y Acad\\u00e9micos', icon: '\\uD83D\\uDCDA', desc: 'Investigaci\\u00f3n, res\\u00famenes y organizaci\\u00f3n de estudio.' },\r\n    { id: 'finanzas', name: 'Finanzas y Contabilidad', icon: '\\uD83D\\uDCCA', desc: 'An\\u00e1lisis financiero, reportes y proyecciones.' },\r\n    { id: 'ingenieria', name: 'Ingenier\\u00eda y Arquitectura', icon: '\\uD83C\\uDFD7\\uFE0F', desc: 'C\\u00e1lculo estructural, dise\\u00f1o CAD y gesti\\u00f3n de obras.' },\r\n    { id: 'juridico', name: 'Sector Jur\\u00eddico y Legal', icon: '\\u2696\\uFE0F', desc: 'Contratos, jurisprudencia y gesti\\u00f3n de casos.' },\r\n    { id: 'negocios', name: 'Negocios y Emprendimiento', icon: '\\uD83D\\uDE80', desc: 'Startups, planes de negocio y escalabilidad.' },\r\n    { id: 'recursoshumanos', name: 'Recursos Humanos', icon: '\\uD83E\\uDD1D', desc: 'Selecci\\u00f3n, capacitaci\\u00f3n y clima organizacional.' },\r\n    { id: 'salud', name: 'Salud y Bienestar', icon: '\\uD83C\\uDFE5', desc: 'Soporte cl\\u00ednico, investigaci\\u00f3n y gesti\\u00f3n de pacientes.' },\r\n    { id: 'tecnologia', name: 'Tecnolog\\u00eda y Desarrollo', icon: '\\uD83D\\uDCBB', desc: 'Asistentes de c\\u00f3digo, arquitectura y DevOps.' },\r\n    { id: 'ventas', name: 'Ventas y Atenci\\u00f3n al Cliente', icon: '\\uD83D\\uDCB0', desc: 'CRM, prospecci\\u00f3n, cierre y soporte.' },\r\n    { id: 'general', name: 'Directorio Completo', icon: '\\uD83C\\uDF10', desc: 'Explor\\u00e1 la colecci\\u00f3n completa de todas las herramientas.' }\r\n  ];\r\n\r\n  var profilesData = {\r\n    administracion: { title: 'Administraci\\u00f3n y Gesti\\u00f3n', filters: { gestion_proyectos: 'Proyectos', comunicacion_interna: 'Comunicaci\\u00f3n', documentacion: 'Documentos', automatizacion: 'Automatizaci\\u00f3n', planificacion: 'Planificaci\\u00f3n' } },\r\n    ciencia: { title: 'Ciencia e Investigaci\\u00f3n', filters: { busqueda: 'B\\u00fasqueda', analisis_datos: 'An\\u00e1lisis', redaccion_cientifica: 'Redacci\\u00f3n', revision_literatura: 'Literatura', simulacion: 'Simulaci\\u00f3n' } },\r\n    comunicacion: { title: 'Comunicaci\\u00f3n y Marketing', filters: { video: 'Video', imagen: 'Imagen', redaccion: 'Redacci\\u00f3n', redes_sociales: 'Redes', presentar: 'Presentaciones', seo: 'SEO' } },\r\n    creatividad: { title: 'Creatividad y Dise\\u00f1o', filters: { imagen: 'Im\\u00e1genes', audio: 'Audio', video: 'Video', multimedia: 'Multimedia', diseno: 'Dise\\u00f1o', edicion: 'Edici\\u00f3n' } },\r\n    directivo: { title: 'Direcci\\u00f3n Ejecutiva', filters: { planificacion: 'Estrategia', presentaciones_ejecutivas: 'Presentaciones', analisis_datos: 'BI', gestion: 'Gesti\\u00f3n' } },\r\n    docente: { title: 'Docencia y Educaci\\u00f3n', filters: { crear_contenido: 'Material', evaluar: 'Evaluaci\\u00f3n', presentar: 'Clases', gestion_aula: 'Aula', gamificacion: 'Gamificaci\\u00f3n' } },\r\n    estudiante: { title: 'Estudiantes y Acad\\u00e9micos', filters: { investigacion: 'Investigaci\\u00f3n', estudio: 'Tutor\\u00eda', organizacion: 'Organizaci\\u00f3n', redaccion: 'Escritura', resumen: 'Res\\u00famenes' } },\r\n    finanzas: { title: 'Finanzas y Contabilidad', filters: { analisis_financiero: 'An\\u00e1lisis', gestion_financiera: 'Gesti\\u00f3n', visualizacion_datos: 'Visualizaci\\u00f3n', excel: 'Excel' } },\r\n    ingenieria: { title: 'Ingenier\\u00eda y Arquitectura', filters: { gestion_proyectos: 'Proyectos', diseno_cad: 'CAD', simulacion: 'C\\u00e1lculo', programacion: 'C\\u00f3digo', productividad: 'Productividad' } },\r\n    juridico: { title: 'Sector Jur\\u00eddico y Legal', filters: { investigacion_legal: 'Jurisprudencia', redaccion_documentos: 'Contratos', analisis_documentos: 'An\\u00e1lisis', gestion_casos: 'Gesti\\u00f3n' } },\r\n    negocios: { title: 'Negocios y Emprendimiento', filters: { planificacion: 'Plan', marketing: 'Marketing', ventas: 'Ventas', startup: 'Startup', productividad: 'Productividad' } },\r\n    recursoshumanos: { title: 'Recursos Humanos', filters: { seleccion_personal: 'Reclutamiento', capacitacion: 'Formaci\\u00f3n', comunicacion_interna: 'Cultura', productividad: 'Gesti\\u00f3n' } },\r\n    salud: { title: 'Salud y Bienestar', filters: { diagnostico: 'Cl\\u00ednico', gestion_pacientes: 'Administraci\\u00f3n', investigacion_medica: 'Investigaci\\u00f3n', transcripcion: 'Transcripci\\u00f3n' } },\r\n    tecnologia: { title: 'Tecnolog\\u00eda y Desarrollo', filters: { programacion: 'Programaci\\u00f3n', analisis_datos: 'Datos', automatizacion: 'Automatizaci\\u00f3n', diseno_software: 'Arquitectura' } },\r\n    ventas: { title: 'Ventas y Atenci\\u00f3n al Cliente', filters: { gestion_crm: 'CRM', gestion_clientes: 'Prospecci\\u00f3n', presentaciones_ventas: 'Presentaciones', analisis_llamadas: 'Llamadas', email: 'Email' } },\r\n    general: { title: 'Directorio Completo', filters: { imagen: 'Imagen', video: 'Video', redaccion: 'Texto', audio: 'Audio', gestion: 'Productividad', estudio: 'Educaci\\u00f3n', programacion: 'C\\u00f3digo' } }\r\n  };\r\n\r\n  var allTools = [\r\n    { name: 'ChatGPT', link: 'https:\/\/chat.openai.com\/', price: 'Freemium', shortDescription: 'El asistente de IA m\\u00e1s popular.', longDescription: 'Modelo l\\u00edder de OpenAI capaz de realizar casi cualquier tarea de procesamiento de lenguaje natural, desde redacci\\u00f3n creativa hasta programaci\\u00f3n y an\\u00e1lisis de datos.', priceCategory: 'freemium', profiles: ['general','estudiante','negocios'], tags: { general:['redaccion'] } },\r\n    { name: 'Claude', link: 'https:\/\/claude.ai\/', price: 'Freemium', shortDescription: 'Asistente de IA con gran capacidad de an\\u00e1lisis.', longDescription: 'Conocido por su redacci\\u00f3n natural y segura. Su gran ventana de contexto le permite analizar libros enteros o m\\u00faltiples documentos a la vez.', priceCategory: 'freemium', profiles: ['comunicacion','juridico'], tags: { comunicacion:['redaccion'], general:['redaccion'] }, isNew: true },\r\n    { name: 'Google Gemini', link: 'https:\/\/gemini.google.com\/', price: 'Freemium', shortDescription: 'IA multimodal de Google.', longDescription: 'Modelo avanzado de Google, capaz de razonar sobre texto, im\\u00e1genes, audio y video simult\\u00e1neamente. Se integra con Google Workspace.', priceCategory: 'freemium', profiles: ['general','estudiante'], tags: { general:['redaccion'] }, isNew: true },\r\n    { name: 'DeepSeek', link: 'https:\/\/chat.deepseek.com\/', price: 'Gratuito', shortDescription: 'Modelo open source potente para c\\u00f3digo.', longDescription: 'Modelo de lenguaje de c\\u00f3digo abierto que destaca en tareas de codificaci\\u00f3n y resoluci\\u00f3n de problemas l\\u00f3gicos complejos.', priceCategory: 'gratis', profiles: ['tecnologia','ingenieria'], tags: { tecnologia:['programacion'], general:['programacion'] }, isNew: true },\r\n    { name: 'Mistral AI', link: 'https:\/\/chat.mistral.ai\/', price: 'Freemium', shortDescription: 'IA europea eficiente y concisa.', longDescription: 'Modelo optimizado para respuestas directas y r\\u00e1pidas en m\\u00faltiples idiomas. Ideal para redacci\\u00f3n empresarial.', priceCategory: 'freemium', profiles: ['negocios','docente'], tags: { negocios:['productividad'], general:['redaccion'] }, isNew: true },\r\n    { name: 'Grok', link: 'https:\/\/x.com\/i\/grok', price: 'De pago', shortDescription: 'IA con acceso a X (Twitter).', longDescription: 'IA desarrollada por xAI con acceso en tiempo real a X. \\u00datil para tendencias, noticias y an\\u00e1lisis de sentimiento social.', priceCategory: 'pago', profiles: ['comunicacion','negocios','tecnologia'], tags: { comunicacion:['redes_sociales'], general:['redaccion'] } },\r\n    { name: 'Perplexity', link: 'https:\/\/www.perplexity.ai\/', price: 'Freemium', shortDescription: 'Buscador con citas.', longDescription: 'Buscador impulsado por IA que ofrece respuestas directas y precisas, citando siempre las fuentes originales.', priceCategory: 'freemium', profiles: ['estudiante','docente','juridico','ciencia','salud'], tags: { estudiante:['investigacion'], juridico:['investigacion_legal'], ciencia:['busqueda'], salud:['investigacion_medica'], general:['estudio'] } },\r\n    { name: 'Adobe Firefly', link: 'https:\/\/firefly.adobe.com\/', price: 'Freemium', shortDescription: 'Creaci\\u00f3n de im\\u00e1genes profesionales.', longDescription: 'Modelos de IA generativa integrados en Adobe. Especializado en im\\u00e1genes, efectos de texto y vectores.', priceCategory: 'freemium', profiles: ['docente','comunicacion','creatividad'], tags: { docente:['crear_contenido'], comunicacion:['imagen'], creatividad:['imagen','edicion'], general:['imagen'] }, isNew: true },\r\n    { name: 'Midjourney', link: 'https:\/\/www.midjourney.com\/', price: 'De pago', shortDescription: 'Generaci\\u00f3n de im\\u00e1genes art\\u00edsticas.', longDescription: 'IA de im\\u00e1genes conocida por su estilo art\\u00edstico superior y fotorrealismo. Funciona a trav\\u00e9s de Discord.', priceCategory: 'pago', profiles: ['comunicacion','creatividad'], tags: { comunicacion:['imagen'], creatividad:['imagen','diseno'], general:['imagen'] } },\r\n    { name: 'Leonardo Ai', link: 'https:\/\/leonardo.ai\/', price: 'Freemium', shortDescription: 'Arte para juegos y assets.', longDescription: 'Generador de im\\u00e1genes con gran control estil\\u00edstico, ideal para assets de videojuegos y arte conceptual.', priceCategory: 'freemium', profiles: ['comunicacion','creatividad'], tags: { comunicacion:['imagen'], creatividad:['imagen'], general:['imagen'] } },\r\n    { name: 'Krea', link: 'https:\/\/www.krea.ai\/', price: 'Freemium', shortDescription: 'Generaci\\u00f3n en tiempo real.', longDescription: 'Genera y mejora im\\u00e1genes instant\\u00e1neamente mientras dibuj\\u00e1s formas simples.', priceCategory: 'freemium', profiles: ['comunicacion','creatividad'], tags: { comunicacion:['imagen'], creatividad:['imagen'], general:['imagen'] } },\r\n    { name: 'Canva', link: 'https:\/\/www.canva.com\/', price: 'Freemium', shortDescription: 'Dise\\u00f1o gr\\u00e1fico simplificado.', longDescription: 'Plataforma de dise\\u00f1o con herramientas m\\u00e1gicas de IA para generar im\\u00e1genes, borrar fondos y redise\\u00f1ar formatos.', priceCategory: 'freemium', profiles: ['comunicacion','docente'], tags: { comunicacion:['imagen'], general:['diseno'] } },\r\n    { name: 'Remove.bg', link: 'https:\/\/www.remove.bg\/', price: 'Freemium', shortDescription: 'Quitar fondo de im\\u00e1genes.', longDescription: 'Elimina el fondo de cualquier imagen autom\\u00e1ticamente en segundos.', priceCategory: 'freemium', profiles: ['comunicacion','creatividad'], tags: { comunicacion:['imagen'], creatividad:['imagen'], general:['imagen'] } },\r\n    { name: 'CapCut', link: 'https:\/\/www.capcut.com\/', price: 'Freemium', shortDescription: 'Editor de video todo en uno.', longDescription: 'Editor popular con funciones de IA como subt\\u00edtulos autom\\u00e1ticos y eliminaci\\u00f3n de fondo. Esencial para redes sociales.', priceCategory: 'freemium', profiles: ['docente','comunicacion','creatividad'], tags: { docente:['crear_contenido'], comunicacion:['video','redes_sociales'], creatividad:['video','edicion'], general:['video'] } },\r\n    { name: 'Descript', link: 'https:\/\/www.descript.com\/', price: 'Freemium', shortDescription: 'Edita audio y video por texto.', longDescription: 'Edita media borrando el texto transcrito. Revoluciona el flujo de trabajo de video y podcasts.', priceCategory: 'freemium', profiles: ['comunicacion','creatividad'], tags: { comunicacion:['video','audio'], creatividad:['edicion'], general:['video'] } },\r\n    { name: 'RunwayML', link: 'https:\/\/runwayml.com\/', price: 'Freemium', shortDescription: 'Generaci\\u00f3n y edici\\u00f3n de video.', longDescription: 'Suite creativa avanzada. Genera video a partir de texto, edita video con IA y entrena modelos propios.', priceCategory: 'freemium', profiles: ['comunicacion','creatividad'], tags: { comunicacion:['video'], creatividad:['video','edicion','multimedia'], general:['video'] } },\r\n    { name: 'Synthesia', link: 'https:\/\/www.synthesia.io\/', price: 'De pago', shortDescription: 'Videos con avatares de IA.', longDescription: 'Crea videos de formaci\\u00f3n y marketing con avatares de IA hiperrealistas que hablan el texto que escribas.', priceCategory: 'pago', profiles: ['directivo','comunicacion','creatividad','recursoshumanos','ventas'], tags: { directivo:['presentaciones_ejecutivas'], comunicacion:['video'], creatividad:['video'], recursoshumanos:['capacitacion'], ventas:['presentaciones_ventas'], general:['video'] } },\r\n    { name: 'Suno AI', link: 'https:\/\/suno.com\/', price: 'Freemium', shortDescription: 'Crea canciones con texto.', longDescription: 'IA musical que genera canciones realistas de alta calidad con letra y voz a partir de una descripci\\u00f3n de texto.', priceCategory: 'freemium', profiles: ['creatividad'], tags: { creatividad:['audio'], general:['audio'] }, isNew: true },\r\n    { name: 'Murf.ai', link: 'https:\/\/murf.ai\/', price: 'Freemium', shortDescription: 'Voces realistas en off.', longDescription: 'Estudio de voz en off con voces de IA humanas para videos y presentaciones.', priceCategory: 'freemium', profiles: ['comunicacion','docente','creatividad'], tags: { comunicacion:['video'], docente:['presentar'], creatividad:['audio'], general:['audio'] } },\r\n    { name: 'Adobe Podcast', link: 'https:\/\/podcast.adobe.com\/', price: 'Gratuito', shortDescription: 'Mejora de audio.', longDescription: 'Limpia el ruido de fondo y hace que las grabaciones suenen como en un estudio profesional.', priceCategory: 'gratis', profiles: ['comunicacion','docente','creatividad'], tags: { comunicacion:['video'], docente:['crear_contenido'], creatividad:['audio'], general:['audio'] } },\r\n    { name: 'Cursor', link: 'https:\/\/www.cursor.com\/', price: 'Freemium', shortDescription: 'Editor de c\\u00f3digo con IA.', longDescription: 'Editor construido sobre VS Code que integra IA en su n\\u00facleo. Permite editar c\\u00f3digo con lenguaje natural.', priceCategory: 'freemium', profiles: ['tecnologia','ingenieria'], tags: { tecnologia:['programacion'], general:['programacion'] }, isNew: true },\r\n    { name: 'GitHub Copilot', link: 'https:\/\/github.com\/features\/copilot', price: 'De pago', shortDescription: 'Tu par programador.', longDescription: 'Asistente de codificaci\\u00f3n que sugiere l\\u00edneas completas o funciones enteras en tiempo real en tu editor.', priceCategory: 'pago', profiles: ['estudiante','tecnologia','ingenieria'], tags: { estudiante:['programacion'], tecnologia:['programacion'], ingenieria:['programacion'], general:['programacion'] } },\r\n    { name: 'Tabnine', link: 'https:\/\/www.tabnine.com\/', price: 'Freemium', shortDescription: 'C\\u00f3digo privado y seguro.', longDescription: 'Autocompletado de c\\u00f3digo IA que puede ejecutarse localmente, garantizando la privacidad.', priceCategory: 'freemium', profiles: ['tecnologia','estudiante'], tags: { tecnologia:['programacion'], estudiante:['programacion'], general:['programacion'] } },\r\n    { name: 'Replit', link: 'https:\/\/replit.com\/', price: 'Freemium', shortDescription: 'IDE online con IA.', longDescription: 'Entorno de desarrollo en el navegador. Su IA genera, explica y depura c\\u00f3digo directamente en el editor.', priceCategory: 'freemium', profiles: ['tecnologia','estudiante','docente'], tags: { tecnologia:['programacion','automatizacion'], estudiante:['programacion'], docente:['gestion_aula'], general:['programacion'] } },\r\n    { name: 'Hugging Face', link: 'https:\/\/huggingface.co\/', price: 'Gratuito', shortDescription: 'Hub de modelos IA.', longDescription: 'Repositorio masivo de modelos, datasets y demos de IA de c\\u00f3digo abierto.', priceCategory: 'gratis', profiles: ['tecnologia','estudiante'], tags: { tecnologia:['programacion'], estudiante:['estudio'], general:['programacion'] } },\r\n    { name: 'Notion AI', link: 'https:\/\/www.notion.so\/', price: 'Freemium', shortDescription: 'Espacio de trabajo con IA.', longDescription: 'Asistente de IA integrado en Notion. Resume notas, corrige redacci\\u00f3n, traduce textos y genera ideas.', priceCategory: 'freemium', profiles: ['administracion','estudiante','juridico','negocios','ingenieria'], tags: { administracion:['documentacion','planificacion'], estudiante:['organizacion','resumen'], juridico:['gestion_casos'], negocios:['productividad'], ingenieria:['productividad'], general:['gestion','redaccion'] } },\r\n    { name: 'Asana', link: 'https:\/\/asana.com\/', price: 'Freemium', shortDescription: 'Gesti\\u00f3n de proyectos.', longDescription: 'Herramienta organizativa con IA para optimizar flujos de trabajo, res\\u00famenes de estado y asignaci\\u00f3n de tareas.', priceCategory: 'freemium', profiles: ['administracion','directivo','juridico','negocios','recursoshumanos','ingenieria','ventas'], tags: { administracion:['gestion_proyectos','planificacion'], directivo:['planificacion'], juridico:['gestion_casos'], recursoshumanos:['productividad'], ingenieria:['gestion_proyectos'], ventas:['gestion_clientes'], general:['gestion'] } },\r\n    { name: 'Trello', link: 'https:\/\/trello.com', price: 'Freemium', shortDescription: 'Gesti\\u00f3n visual Kanban.', longDescription: 'Tableros Kanban con automatizaci\\u00f3n IA para gesti\\u00f3n de tareas.', priceCategory: 'freemium', profiles: ['administracion','negocios'], tags: { administracion:['planificacion','gestion_proyectos'], general:['gestion'] } },\r\n    { name: 'Zapier', link: 'https:\/\/zapier.com\/', price: 'Freemium', shortDescription: 'Automatizaci\\u00f3n de flujos.', longDescription: 'Plataforma de automatizaci\\u00f3n que conecta apps web. Su IA ayuda a crear \"Zaps\" en lenguaje natural.', priceCategory: 'freemium', profiles: ['administracion','tecnologia','ventas'], tags: { administracion:['automatizacion','gestion_proyectos'], tecnologia:['automatizacion'], ventas:['gestion_crm'], general:['gestion','programacion'] } },\r\n    { name: 'Grammarly', link: 'https:\/\/www.grammarly.com\/', price: 'Freemium', shortDescription: 'Corrector de escritura.', longDescription: 'Mejora claridad, compromiso y tono de tu escritura en tiempo real. Corrige ortograf\\u00eda y gram\\u00e1tica.', priceCategory: 'freemium', profiles: ['comunicacion','estudiante','administracion','docente'], tags: { comunicacion:['redaccion'], estudiante:['redaccion'], administracion:['comunicacion_interna'], docente:['crear_contenido'], general:['redaccion'] } },\r\n    { name: 'DeepL', link: 'https:\/\/www.deepl.com\/', price: 'Freemium', shortDescription: 'Traductor preciso.', longDescription: 'Traductor que capta matices sutiles del lenguaje mejor que sus competidores.', priceCategory: 'freemium', profiles: ['estudiante','docente','comunicacion','juridico'], tags: { estudiante:['investigacion'], docente:['crear_contenido'], comunicacion:['redaccion'], juridico:['analisis_documentos'], general:['redaccion'] } },\r\n    { name: 'Jasper', link: 'https:\/\/www.jasper.ai\/', price: 'De pago', shortDescription: 'Copywriting marketing.', longDescription: 'IA entrenada para redactar contenido de marketing, blogs y anuncios con voz de marca.', priceCategory: 'pago', profiles: ['comunicacion','negocios'], tags: { comunicacion:['redaccion','seo'], negocios:['marketing'], general:['redaccion'] } },\r\n    { name: 'Copy.ai', link: 'https:\/\/www.copy.ai\/', price: 'Freemium', shortDescription: 'Textos de marketing.', longDescription: 'Genera textos de marketing y ventas. Blogs, correos y posts de redes.', priceCategory: 'freemium', profiles: ['comunicacion','negocios','ventas'], tags: { comunicacion:['redaccion','redes_sociales'], negocios:['marketing'], ventas:['email'], general:['redaccion'] } },\r\n    { name: 'Gamma', link: 'https:\/\/gamma.app\/', price: 'Freemium', shortDescription: 'Presentaciones web.', longDescription: 'Genera presentaciones, documentos o p\\u00e1ginas web interactivas a partir de un prompt.', priceCategory: 'freemium', profiles: ['docente','negocios','directivo'], tags: { docente:['presentar'], negocios:['presentaciones_ventas'], directivo:['presentaciones_ejecutivas'], general:['diseno'] } },\r\n    { name: 'Consensus', link: 'https:\/\/consensus.app\/', price: 'Freemium', shortDescription: 'Buscador cient\\u00edfico.', longDescription: 'Motor de b\\u00fasqueda que encuentra y resume respuestas bas\\u00e1ndose en estudios cient\\u00edficos.', priceCategory: 'freemium', profiles: ['ciencia','estudiante','salud'], tags: { ciencia:['busqueda','revision_literatura'], estudiante:['investigacion'], salud:['investigacion_medica'], general:['estudio'] } },\r\n    { name: 'Elicit', link: 'https:\/\/elicit.org\/', price: 'Freemium', shortDescription: 'Asistente de investigaci\\u00f3n.', longDescription: 'Encuentra papers relevantes, resume hallazgos y extrae informaci\\u00f3n de m\\u00faltiples documentos.', priceCategory: 'freemium', profiles: ['ciencia','estudiante','salud'], tags: { ciencia:['revision_literatura','busqueda'], estudiante:['investigacion'], salud:['investigacion_medica'], general:['estudio'] } },\r\n    { name: 'WolframAlpha', link: 'https:\/\/www.wolframalpha.com\/', price: 'Freemium', shortDescription: 'Motor de conocimiento.', longDescription: 'Calcula soluciones paso a paso para problemas complejos de matem\\u00e1ticas, f\\u00edsica y ciencias.', priceCategory: 'freemium', profiles: ['estudiante','ciencia','ingenieria'], tags: { estudiante:['estudio'], ciencia:['simulacion'], ingenieria:['simulacion'], general:['estudio'] } },\r\n    { name: 'Quizlet', link: 'https:\/\/quizlet.com\/', price: 'Freemium', shortDescription: 'Fichas de estudio.', longDescription: 'Transforma apuntes en fichas, ex\\u00e1menes de pr\\u00e1ctica y juegos de aprendizaje personalizados.', priceCategory: 'freemium', profiles: ['estudiante','docente'], tags: { estudiante:['estudio'], docente:['evaluar'], general:['estudio'] } },\r\n    { name: 'MagicSchool.ai', link: 'https:\/\/www.magicschool.ai\/', price: 'Freemium', shortDescription: 'IA para profesores.', longDescription: 'Planific\\u00e1 lecciones, cre\\u00e1 r\\u00fabricas, escrib\\u00ed correos a padres y gener\\u00e1 material did\\u00e1ctico.', priceCategory: 'freemium', profiles: ['docente'], tags: { docente:['crear_contenido','evaluar','gestion_aula'], general:['estudio'] } },\r\n    { name: 'Power BI', link: 'https:\/\/powerbi.microsoft.com\/', price: 'Freemium', shortDescription: 'Visualizaci\\u00f3n de datos.', longDescription: 'Anal\\u00edtica empresarial con Copilot para obtener insights r\\u00e1pidos.', priceCategory: 'freemium', profiles: ['finanzas','directivo'], tags: { finanzas:['visualizacion_datos'], directivo:['analisis_datos'], general:['gestion'] } },\r\n    { name: 'HubSpot', link: 'https:\/\/www.hubspot.com', price: 'Freemium', shortDescription: 'CRM y marketing.', longDescription: 'Software de inbound marketing con IA para contenido.', priceCategory: 'freemium', profiles: ['negocios','ventas'], tags: { negocios:['marketing'], ventas:['gestion_crm'], general:['gestion'] } },\r\n    { name: 'Apollo.io', link: 'https:\/\/www.apollo.io\/', price: 'Freemium', shortDescription: 'Inteligencia de ventas.', longDescription: 'Base de datos B2B para encontrar clientes, enriquecer datos y automatizar correos.', priceCategory: 'freemium', profiles: ['ventas','negocios'], tags: { ventas:['gestion_clientes','email'], negocios:['marketing'], general:['gestion'] } },\r\n    { name: 'Glass Health', link: 'https:\/\/glass.health\/', price: 'Freemium', shortDescription: 'Diagn\\u00f3stico cl\\u00ednico.', longDescription: 'Ayuda a m\\u00e9dicos a generar diagn\\u00f3sticos diferenciales y planes cl\\u00ednicos basados en evidencia.', priceCategory: 'freemium', profiles: ['salud','estudiante'], tags: { salud:['diagnostico','investigacion_medica'], estudiante:['estudio'], general:['estudio'] }, isNew: true },\r\n    { name: 'BioRender', link: 'https:\/\/biorender.com', price: 'Freemium', shortDescription: 'Ilustraci\\u00f3n cient\\u00edfica.', longDescription: 'Crea diagramas cient\\u00edficos profesionales para papers y presentaciones.', priceCategory: 'freemium', profiles: ['ciencia','salud'], tags: { ciencia:['redaccion_cientifica'], salud:['investigacion_medica'], general:['diseno'] } },\r\n    { name: 'Framer AI', link: 'https:\/\/www.framer.com\/', price: 'Freemium', shortDescription: 'Dise\\u00f1o web interactivo.', longDescription: 'Gener\\u00e1 y public\\u00e1 sitios web reales y animados a partir de descripciones de texto.', priceCategory: 'freemium', profiles: ['creatividad','negocios'], tags: { creatividad:['diseno'], negocios:['marketing'], general:['diseno'] } },\r\n    { name: 'Looka', link: 'https:\/\/looka.com\/', price: 'Freemium', shortDescription: 'Dise\\u00f1o de logos.', longDescription: 'Generador de marcas con IA para emprendedores.', priceCategory: 'freemium', profiles: ['negocios','creatividad'], tags: { negocios:['startup','marketing'], creatividad:['diseno'], general:['diseno'] } },\r\n    { name: 'Civitai', link: 'https:\/\/civitai.com\/', price: 'Gratuito', shortDescription: 'Modelos Stable Diffusion.', longDescription: 'Comunidad para compartir y descargar modelos y LoRAs de generaci\\u00f3n de im\\u00e1genes.', priceCategory: 'gratis', profiles: ['creatividad','comunicacion'], tags: { creatividad:['imagen'], comunicacion:['imagen'], general:['imagen'] } }\r\n  ];\r\n\r\n  var FEATURED_NAMES = ['ChatGPT','Claude','Adobe Firefly'];\r\n\r\n  var state = {\r\n    currentProfile: null,\r\n    currentFilter: 'all',\r\n    currentPrice: 'all',\r\n    currentSearch: '',\r\n    favorites: [],\r\n    showFavoritesOnly: false,\r\n    modalTool: null\r\n  };\r\n\r\n  try { state.favorites = JSON.parse(localStorage.getItem('aif_dir_ia_favs') || '[]'); } catch(e){ state.favorites = []; }\r\n\r\n  \/\/ Selectores SCOPEADOS al widget para no afectar el resto de la p\\u00e1gina\r\n  var root = null;\r\n  function $(s){ return root ? root.querySelector(s) : document.querySelector(s); }\r\n  function $$(s){ return root ? Array.prototype.slice.call(root.querySelectorAll(s)) : []; }\r\n\r\n  function getLogo(url){ return 'https:\/\/t2.gstatic.com\/faviconV2?client=SOCIAL&type=FAVICON&fallback_opts=TYPE,SIZE,URL&url=' + encodeURIComponent(url) + '&size=128'; }\r\n  function badgeClass(cat){ if(cat==='gratis') return 'badge-gratis'; if(cat==='pago') return 'badge-pago'; return 'badge-freemium'; }\r\n  function escHtml(s){ return String(s).replace(\/[&<>\"']\/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c];}); }\r\n  function saveFavs(){ try{ localStorage.setItem('aif_dir_ia_favs',JSON.stringify(state.favorites)); }catch(e){} }\r\n  function updateFavCount(){ var el=$('#aif-fav-count'); if(!el) return; el.textContent=state.favorites.length; if(state.favorites.length>0){ el.classList.add('show'); } else { el.classList.remove('show'); } }\r\n\r\n  var toastTimer=null;\r\n  function showToast(msg){\r\n    var el=$('#aif-toast'); var m=$('#aif-toast-msg'); if(!el||!m) return;\r\n    m.textContent=msg; el.classList.add('show');\r\n    clearTimeout(toastTimer);\r\n    toastTimer=setTimeout(function(){ el.classList.remove('show'); },2600);\r\n  }\r\n\r\n  function renderFeatured(){\r\n    var grid=$('#aif-featured-grid'); if(!grid) return;\r\n    grid.innerHTML=allTools.filter(function(t){return FEATURED_NAMES.indexOf(t.name)>-1;}).map(function(t){\r\n      return '<div class=\"featured-card\" data-tool=\"'+escHtml(t.name)+'\">'+\r\n        '<div class=\"tool-card-header\">'+\r\n          '<div class=\"tool-logo\"><img decoding=\"async\" src=\"'+getLogo(t.link)+'\" alt=\"'+escHtml(t.name)+'\" loading=\"lazy\"><\/div>'+\r\n          '<div class=\"tool-title-wrap\"><div class=\"tool-name\">'+escHtml(t.name)+'<\/div><\/div>'+\r\n          '<span class=\"badge '+badgeClass(t.priceCategory)+'\">'+escHtml(t.price)+'<\/span>'+\r\n        '<\/div>'+\r\n        '<p class=\"tool-desc\" style=\"margin-bottom:0;\">'+escHtml(t.shortDescription)+'<\/p>'+\r\n      '<\/div>';\r\n    }).join('');\r\n    $$('.featured-card').forEach(function(c){ c.addEventListener('click',function(){ openModal(c.dataset.tool); }); });\r\n  }\r\n\r\n  function renderProfiles(){\r\n    var grid=$('#aif-profiles-grid'); if(!grid) return;\r\n    grid.innerHTML=profilesList.map(function(p){\r\n      return '<div class=\"profile-card\" data-profile=\"'+escHtml(p.id)+'\">'+\r\n        '<span class=\"profile-icon\">'+p.icon+'<\/span>'+\r\n        '<div class=\"profile-name\">'+escHtml(p.name)+'<\/div>'+\r\n        '<div class=\"profile-desc\">'+escHtml(p.desc)+'<\/div>'+\r\n        '<span class=\"profile-arrow\">Ver herramientas'+\r\n          '<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M17 8l4 4m0 0l-4 4m4-4H3\"><\/path><\/svg>'+\r\n        '<\/span>'+\r\n      '<\/div>';\r\n    }).join('');\r\n    $$('.profile-card').forEach(function(c){ c.addEventListener('click',function(){ openProfile(c.dataset.profile); }); });\r\n  }\r\n\r\n  function renderCategoryFilters(){\r\n    var box=$('#aif-category-filters'); if(!box) return;\r\n    if(state.showFavoritesOnly){ box.innerHTML=''; return; }\r\n    var pd=profilesData[state.currentProfile]; if(!pd){ box.innerHTML=''; return; }\r\n    var html='<button class=\"filter-chip '+(state.currentFilter==='all'?'active':'')+'\" data-filter=\"all\">Todo<\/button>';\r\n    html+=Object.keys(pd.filters||{}).map(function(k){\r\n      return '<button class=\"filter-chip '+(state.currentFilter===k?'active':'')+'\" data-filter=\"'+escHtml(k)+'\">'+escHtml(pd.filters[k])+'<\/button>';\r\n    }).join('');\r\n    box.innerHTML=html;\r\n    box.querySelectorAll('.filter-chip').forEach(function(btn){\r\n      btn.addEventListener('click',function(){\r\n        state.currentFilter=btn.dataset.filter;\r\n        renderCategoryFilters();\r\n        renderTools();\r\n      });\r\n    });\r\n  }\r\n\r\n  function renderTools(){\r\n    var grid=$('#aif-tools-grid'); if(!grid) return;\r\n    var tools=allTools.filter(function(t){\r\n      if(state.showFavoritesOnly) return state.favorites.indexOf(t.name)>-1;\r\n      var matchProfile=state.currentProfile==='general'||(t.profiles&&t.profiles.indexOf(state.currentProfile)>-1);\r\n      var q=state.currentSearch.toLowerCase().trim();\r\n      var matchSearch=!q||t.name.toLowerCase().indexOf(q)>-1||t.shortDescription.toLowerCase().indexOf(q)>-1;\r\n      var matchTag=true;\r\n      if(state.currentFilter!=='all'&&t.tags){\r\n        var tf=state.currentProfile==='general'?(t.tags.general||[]):(t.tags[state.currentProfile]||[]);\r\n        matchTag=tf.indexOf(state.currentFilter)>-1;\r\n      }\r\n      return matchProfile&&matchSearch&&matchTag&&(state.currentPrice==='all'||t.priceCategory===state.currentPrice);\r\n    });\r\n    var sortEl=$('#aif-sort');\r\n    var sort=sortEl?sortEl.value:'relevance';\r\n    if(sort==='az') tools.sort(function(a,b){return a.name.localeCompare(b.name);});\r\n    else if(sort==='za') tools.sort(function(a,b){return b.name.localeCompare(a.name);});\r\n    if(!tools.length){\r\n      grid.innerHTML='<div class=\"empty-state\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.5\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"><\/path><\/svg><p>No se encontraron herramientas con estos filtros.<\/p><\/div>';\r\n      return;\r\n    }\r\n    grid.innerHTML=tools.map(function(t){\r\n      var isFav=state.favorites.indexOf(t.name)>-1;\r\n      return '<div class=\"tool-card\" data-tool=\"'+escHtml(t.name)+'\">'+\r\n        '<div class=\"tool-card-header\">'+\r\n          '<div class=\"tool-logo\"><img decoding=\"async\" src=\"'+getLogo(t.link)+'\" alt=\"'+escHtml(t.name)+'\" loading=\"lazy\"><\/div>'+\r\n          '<div class=\"tool-title-wrap\"><div class=\"tool-name\">'+escHtml(t.name)+(t.isNew?'<span class=\"badge-new\">Nuevo<\/span>':'')+'<\/div><\/div>'+\r\n          '<button class=\"heart-btn '+(isFav?'active':'')+'\" data-fav=\"'+escHtml(t.name)+'\" aria-label=\"Favorito\">'+\r\n            '<svg fill=\"'+(isFav?'currentColor':'none')+'\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\"><\/path><\/svg>'+\r\n          '<\/button>'+\r\n        '<\/div>'+\r\n        '<p class=\"tool-desc\">'+escHtml(t.shortDescription)+'<\/p>'+\r\n        '<div class=\"tool-footer\">'+\r\n          '<span class=\"badge '+badgeClass(t.priceCategory)+'\">'+escHtml(t.price)+'<\/span>'+\r\n          '<button class=\"share-btn\" data-share=\"'+escHtml(t.name)+'\" data-link=\"'+escHtml(t.link)+'\" aria-label=\"Compartir\">'+\r\n            '<svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z\"><\/path><\/svg>'+\r\n          '<\/button>'+\r\n        '<\/div>'+\r\n      '<\/div>';\r\n    }).join('');\r\n    grid.querySelectorAll('.tool-card').forEach(function(c){\r\n      c.addEventListener('click',function(e){\r\n        if(e.target.closest('.heart-btn')||e.target.closest('.share-btn')) return;\r\n        openModal(c.dataset.tool);\r\n      });\r\n    });\r\n    grid.querySelectorAll('.heart-btn').forEach(function(btn){\r\n      btn.addEventListener('click',function(e){ e.stopPropagation(); toggleFav(btn.dataset.fav); });\r\n    });\r\n    grid.querySelectorAll('.share-btn').forEach(function(btn){\r\n      btn.addEventListener('click',function(e){ e.stopPropagation(); shareTool(btn.dataset.share,btn.dataset.link); });\r\n    });\r\n  }\r\n\r\n  function openProfile(profileId){\r\n    state.currentProfile=profileId;\r\n    state.currentFilter='all';\r\n    state.currentPrice='all';\r\n    $('#aif-home-view').classList.add('hidden');\r\n    $('#aif-tools-view').classList.add('active');\r\n    $$('.price-btn').forEach(function(b){ b.classList.toggle('active',b.dataset.price==='all'); });\r\n    if(state.showFavoritesOnly){\r\n      $('#aif-profile-title').textContent='Mis Favoritos';\r\n      $('#aif-profile-subtitle').textContent=state.favorites.length>0?\r\n        ('Ten\\u00e9s '+state.favorites.length+' herramienta'+(state.favorites.length===1?'':'s')+' guardada'+(state.favorites.length===1?'':'s')+'.'):\r\n        'Todav\\u00eda no guardaste ninguna herramienta.';\r\n    } else {\r\n      var pd=profilesData[profileId];\r\n      $('#aif-profile-title').textContent=pd?pd.title:'Directorio';\r\n      $('#aif-profile-subtitle').textContent='Herramientas seleccionadas para este perfil.';\r\n    }\r\n    renderCategoryFilters();\r\n    renderTools();\r\n    \/\/ Scroll suave al inicio del widget (no de la p\\u00e1gina)\r\n    if(root && root.scrollIntoView){\r\n      var y = root.getBoundingClientRect().top + window.pageYOffset - 20;\r\n      window.scrollTo({top:y, behavior:'smooth'});\r\n    }\r\n  }\r\n\r\n  function resetApp(){\r\n    $('#aif-tools-view').classList.remove('active');\r\n    $('#aif-home-view').classList.remove('hidden');\r\n    state.currentProfile=null;\r\n    state.showFavoritesOnly=false;\r\n    state.currentSearch='';\r\n    $('#aif-search').value='';\r\n    $('#aif-suggestions').classList.remove('show');\r\n    if(root){\r\n      var y = root.getBoundingClientRect().top + window.pageYOffset - 20;\r\n      window.scrollTo({top:y, behavior:'smooth'});\r\n    }\r\n  }\r\n\r\n  function showFavorites(){\r\n    if(!state.favorites.length){ showToast('A\\u00fan no ten\\u00e9s favoritos'); return; }\r\n    state.showFavoritesOnly=true;\r\n    openProfile('general');\r\n  }\r\n\r\n  function toggleFav(name){\r\n    var idx=state.favorites.indexOf(name);\r\n    if(idx>-1){ state.favorites.splice(idx,1); showToast('Eliminado de favoritos'); }\r\n    else { state.favorites.push(name); showToast('Agregado a favoritos'); }\r\n    saveFavs();\r\n    updateFavCount();\r\n    $$('.heart-btn').forEach(function(btn){\r\n      if(btn.dataset.fav===name){\r\n        var isFav=state.favorites.indexOf(name)>-1;\r\n        btn.classList.toggle('active',isFav);\r\n        var svg=btn.querySelector('svg');\r\n        if(svg) svg.setAttribute('fill',isFav?'currentColor':'none');\r\n      }\r\n    });\r\n    var mf=$('#aif-modal-fav');\r\n    if(state.modalTool===name&&mf){\r\n      var isFav2=state.favorites.indexOf(name)>-1;\r\n      mf.classList.toggle('active',isFav2);\r\n      var svg2=mf.querySelector('svg');\r\n      if(svg2) svg2.setAttribute('fill',isFav2?'currentColor':'none');\r\n    }\r\n    if(state.showFavoritesOnly) renderTools();\r\n  }\r\n\r\n  function shareTool(name,link){\r\n    if(navigator.clipboard){\r\n      navigator.clipboard.writeText(name+': '+link).then(function(){ showToast('Enlace copiado'); });\r\n    } else {\r\n      showToast(name+': '+link);\r\n    }\r\n  }\r\n\r\n  function surpriseMe(){\r\n    openModal(allTools[Math.floor(Math.random()*allTools.length)].name);\r\n  }\r\n\r\n  function openModal(name){\r\n    var tool=null;\r\n    for(var i=0;i<allTools.length;i++){ if(allTools[i].name===name){ tool=allTools[i]; break; } }\r\n    if(!tool) return;\r\n    state.modalTool=name;\r\n    $('#aif-modal-title').textContent=tool.name;\r\n    $('#aif-modal-desc').textContent=tool.longDescription||tool.shortDescription;\r\n    $('#aif-modal-link').href=tool.link;\r\n    $('#aif-modal-logo').src=getLogo(tool.link);\r\n    $('#aif-modal-logo').alt=tool.name;\r\n    var tags=(tool.tags&&tool.tags.general)||[];\r\n    $('#aif-modal-tags').innerHTML=tags.map(function(t){\r\n      return '<span class=\"modal-tag\">'+escHtml(t.replace(\/_\/g,' '))+'<\/span>';\r\n    }).join('')+'<span class=\"badge '+badgeClass(tool.priceCategory)+'\">'+escHtml(tool.price)+'<\/span>';\r\n    var isFav=state.favorites.indexOf(name)>-1;\r\n    var mf=$('#aif-modal-fav');\r\n    mf.classList.toggle('active',isFav);\r\n    var svg=mf.querySelector('svg');\r\n    if(svg) svg.setAttribute('fill',isFav?'currentColor':'none');\r\n    $('#aif-modal').classList.add('show');\r\n    document.body.style.overflow='hidden';\r\n  }\r\n\r\n  function closeModal(){\r\n    $('#aif-modal').classList.remove('show');\r\n    state.modalTool=null;\r\n    document.body.style.overflow='';\r\n  }\r\n\r\n  function updateSuggestions(q){\r\n    var box=$('#aif-suggestions');\r\n    var query=q.trim().toLowerCase();\r\n    if(!query){ box.classList.remove('show'); return; }\r\n    var matches=allTools.filter(function(t){\r\n      return t.name.toLowerCase().indexOf(query)>-1||t.shortDescription.toLowerCase().indexOf(query)>-1;\r\n    }).slice(0,6);\r\n    if(!matches.length){ box.classList.remove('show'); return; }\r\n    box.innerHTML=matches.map(function(t){\r\n      return '<div class=\"suggestion-item\" data-tool=\"'+escHtml(t.name)+'\"><img decoding=\"async\" src=\"'+getLogo(t.link)+'\" alt=\"\" loading=\"lazy\"><span>'+escHtml(t.name)+'<\/span><\/div>';\r\n    }).join('');\r\n    box.classList.add('show');\r\n    box.querySelectorAll('.suggestion-item').forEach(function(item){\r\n      item.addEventListener('click',function(){\r\n        box.classList.remove('show');\r\n        $('#aif-search').value='';\r\n        openModal(item.dataset.tool);\r\n      });\r\n    });\r\n  }\r\n\r\n  function executeSearch(){\r\n    state.currentSearch=$('#aif-search').value;\r\n    $('#aif-suggestions').classList.remove('show');\r\n    if(state.currentSearch.trim()){\r\n      state.showFavoritesOnly=false;\r\n      openProfile('general');\r\n    }\r\n  }\r\n\r\n  function setupEvents(){\r\n    $('#aif-search').addEventListener('input',function(e){ updateSuggestions(e.target.value); });\r\n    $('#aif-search').addEventListener('keydown',function(e){ if(e.key==='Enter'){ e.preventDefault(); executeSearch(); } });\r\n    $('#aif-surprise').addEventListener('click',surpriseMe);\r\n    $('#aif-fav-btn').addEventListener('click',showFavorites);\r\n    $('#aif-back-btn').addEventListener('click',resetApp);\r\n    $$('.price-btn').forEach(function(btn){\r\n      btn.addEventListener('click',function(){\r\n        state.currentPrice=btn.dataset.price;\r\n        $$('.price-btn').forEach(function(b){ b.classList.toggle('active',b===btn); });\r\n        renderTools();\r\n      });\r\n    });\r\n    $('#aif-sort').addEventListener('change',renderTools);\r\n    $('#aif-modal-close').addEventListener('click',closeModal);\r\n    $('#aif-modal').addEventListener('click',function(e){ if(e.target===$('#aif-modal')) closeModal(); });\r\n    $('#aif-modal-fav').addEventListener('click',function(){ if(state.modalTool) toggleFav(state.modalTool); });\r\n    document.addEventListener('keydown',function(e){\r\n      if(e.key==='Escape'&&$('#aif-modal').classList.contains('show')) closeModal();\r\n    });\r\n    document.addEventListener('click',function(e){\r\n      if(!e.target.closest('.search-wrap')){\r\n        var s=$('#aif-suggestions');\r\n        if(s) s.classList.remove('show');\r\n      }\r\n    });\r\n    $('#groq-btn').addEventListener('click',groqSend);\r\n    $('#groq-input').addEventListener('keydown',function(e){\r\n      if(e.key==='Enter' && (e.ctrlKey || e.metaKey)){ e.preventDefault(); groqSend(); }\r\n    });\r\n  }\r\n\r\n  function init(){\r\n    \/\/ Resolver el root del widget. Si hay m\\u00faltiples instancias, init() se ejecuta una vez por defecto.\r\n    root = document.querySelector('.aif-dir-ia');\r\n    if(!root) return;\r\n    \/\/ Marca para que no se inicialice dos veces si Elementor reinyecta\r\n    if(root.dataset.aifInited === '1') return;\r\n    root.dataset.aifInited = '1';\r\n\r\n    renderFeatured();\r\n    renderProfiles();\r\n    updateFavCount();\r\n    setupEvents();\r\n    setupVoice();\r\n  }\r\n\r\n  if(document.readyState==='loading'){\r\n    document.addEventListener('DOMContentLoaded',init);\r\n  } else {\r\n    init();\r\n  }\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Herramientas de Inteligencia Artificial Potenci&aacute; tu trabajo con IA Explor&aacute; una colecci&oacute;n curada de herramientas de IA seleccionadas por perfil profesional. Encontr&aacute; exactamente lo que necesit&aacute;s. Asistente Inteligente Consultar IA Sorprendeme Mis Favoritos 0 Destacadas Lo m&aacute;s elegido Explor&aacute; por perfil 16 categor&iacute;as Volver a perfiles Herramientas seleccionadas para este perfil. Todos Gratis Freemium Pago [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"page-builder","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-6524","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=\/wp\/v2\/pages\/6524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6524"}],"version-history":[{"count":40,"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=\/wp\/v2\/pages\/6524\/revisions"}],"predecessor-version":[{"id":6638,"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=\/wp\/v2\/pages\/6524\/revisions\/6638"}],"wp:attachment":[{"href":"https:\/\/www.aif.gob.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}