{"id":31,"date":"2025-08-27T17:30:58","date_gmt":"2025-08-27T15:30:58","guid":{"rendered":"https:\/\/integridadacademica.nubesoft.com.do\/?page_id=31"},"modified":"2025-11-11T16:15:52","modified_gmt":"2025-11-11T15:15:52","slug":"integridad-academica","status":"publish","type":"page","link":"https:\/\/integridadacademica.uapa.edu.do\/","title":{"rendered":"Integridad Acad\u00e9mica"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"31\" class=\"elementor elementor-31\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fc9109f e-con-full e-flex e-con e-parent\" data-id=\"fc9109f\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16e4df7 elementor-widget elementor-widget-image\" data-id=\"16e4df7\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1900\" height=\"625\" src=\"https:\/\/integridadacademica.uapa.edu.do\/wp-content\/uploads\/2025\/08\/Banner-web-1900x625px-3.webp\" class=\"attachment-full size-full wp-image-159\" alt=\"\" srcset=\"https:\/\/integridadacademica.uapa.edu.do\/wp-content\/uploads\/2025\/08\/Banner-web-1900x625px-3.webp 1900w, https:\/\/integridadacademica.uapa.edu.do\/wp-content\/uploads\/2025\/08\/Banner-web-1900x625px-3-300x99.webp 300w, https:\/\/integridadacademica.uapa.edu.do\/wp-content\/uploads\/2025\/08\/Banner-web-1900x625px-3-1024x337.webp 1024w, https:\/\/integridadacademica.uapa.edu.do\/wp-content\/uploads\/2025\/08\/Banner-web-1900x625px-3-768x253.webp 768w, https:\/\/integridadacademica.uapa.edu.do\/wp-content\/uploads\/2025\/08\/Banner-web-1900x625px-3-1536x505.webp 1536w\" sizes=\"(max-width: 1900px) 100vw, 1900px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ca485b3 e-flex e-con-boxed e-con e-parent\" data-id=\"ca485b3\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-279a6a0 elementor-widget elementor-widget-html\" data-id=\"279a6a0\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- BOTONES HORIZONTALES GRANDES: C\u00f3mo citar \/ C\u00f3mo referenciar --> \r\n<div class=\"uapa-duo\">\r\n  <a class=\"uapa-btn cite\" href=\"https:\/\/integridadacademica.uapa.edu.do\/index.php\/c\/\" aria-label=\"Ir a C\u00f3mo citar\">\r\n    <!-- Icono comillas -->\r\n    <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M9.5 6C6.5 6 4 8.5 4 11.5S6.5 17 9.5 17c.8 0 1.5-.7 1.5-1.5S10.3 14 9.5 14c-1.1 0-2-.9-2-2s.9-2 2-2c.8 0 1.5-.7 1.5-1.5S10.3 6 9.5 6zm9 0c-3 0-5.5 2.5-5.5 5.5S15.5 17 18.5 17c.8 0 1.5-.7 1.5-1.5S19.3 14 18.5 14c-1.1 0-2-.9-2-2s.9-2 2-2c.8 0 1.5-.7 1.5-1.5S19.3 6 18.5 6z\"\/><\/svg>\r\n    <span>C\u00f3mo citar<\/span>\r\n  <\/a>\r\n\r\n  <a class=\"uapa-btn ref\" href=\"https:\/\/integridadacademica.uapa.edu.do\/index.php\/como-referenciar\/\" aria-label=\"Ir a C\u00f3mo referenciar\">\r\n    <!-- Icono libro + enlace -->\r\n    <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 3h9a3 3 0 013 3v13a2 2 0 01-2 2H6a3 3 0 01-3-3V6a3 3 0 013-3zm0 2a1 1 0 00-1 1v12a1 1 0 001 1h10V6a1 1 0 00-1-1H6zM21 7h-2v10h2V7zM8 8h6v2H8V8zm0 4h6v2H8v-2z\"\/><\/svg>\r\n    <span>C\u00f3mo referenciar<\/span>\r\n  <\/a>\r\n<\/div>\r\n\r\n<style>\r\n:root{\r\n  --uapa-azul:#041147;\r\n  --uapa-naranja:#ff8300;\r\n  --txt:#1c223a;\r\n}\r\n\r\n\/* CONTENEDOR HORIZONTAL *\/\r\n.uapa-duo{\r\n  display:flex; gap:50px; align-items:center; justify-content:center;\r\n  flex-wrap:wrap; margin:24px 0;\r\n}\r\n\r\n\/* BOT\u00d3N BASE (versi\u00f3n m\u00e1s grande) *\/\r\n.uapa-btn{\r\n  --bg: var(--uapa-azul);\r\n  --fg: #fff;\r\n  display:inline-flex; align-items:center; gap:14px;\r\n  padding:20px 30px; border-radius:18px;\r\n  background:var(--bg); color:var(--fg);\r\n  text-decoration:none; font:800 18px\/1.2 system-ui,-apple-system,\"Segoe UI\",Roboto,Arial;\r\n  border:3px solid transparent;\r\n  box-shadow:0 10px 24px rgba(4,17,71,.18);\r\n  transition:transform .15s ease, box-shadow .2s ease, background .2s ease, color .2s ease;\r\n}\r\n.uapa-btn svg{width:26px;height:26px;fill:currentColor;flex:0 0 26px}\r\n.uapa-btn span{letter-spacing:.4px}\r\n.uapa-btn:hover{\r\n  transform:translateY(-2px);\r\n  box-shadow:0 14px 30px rgba(4,17,71,.25);\r\n}\r\n.uapa-btn:active{transform:translateY(0) scale(.98)}\r\n.uapa-btn:focus-visible{\r\n  outline:none; border-color:var(--uapa-naranja);\r\n  box-shadow:0 0 0 6px rgba(255,131,0,.25);\r\n}\r\n\r\n\/* VARIANTES DE COLOR *\/\r\n.uapa-btn.cite{ --bg: var(--uapa-azul); --fg:#fff; }\r\n.uapa-btn.cite:hover{ background:#0a2568; }\r\n\r\n.uapa-btn.ref{ \r\n  --bg: var(--uapa-naranja); \r\n  --fg:#000; \r\n  color:var(--fg);\r\n}\r\n.uapa-btn.ref:hover{ background:#e67800; }\r\n\r\n\/* ADAPTACI\u00d3N M\u00d3VIL *\/\r\n@media (max-width:480px){\r\n  .uapa-btn{ width:100%; justify-content:center; font-size:17px; padding:18px 20px; }\r\n  .uapa-btn svg{width:22px;height:22px}\r\n}\r\n<\/style>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-adf2972 e-flex e-con-boxed e-con e-parent\" data-id=\"adf2972\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-babe3dd elementor-widget elementor-widget-template\" data-id=\"babe3dd\" data-element_type=\"widget\" data-widget_type=\"template.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-template\">\n\t\t\t\t\t<div data-elementor-type=\"page\" data-elementor-id=\"500\" class=\"elementor elementor-500\" data-elementor-post-type=\"elementor_library\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8837fc2 e-flex e-con-boxed e-con e-parent\" data-id=\"8837fc2\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e8ffa81 elementor-widget elementor-widget-html\" data-id=\"4e8ffa81\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\r\n<section class=\"uapa-apa7\" aria-label=\"Sistema autom\u00e1tico para citas y referencias APA 7\">\r\n  <style>\r\n    :root{\r\n      --uapa-azul:#041147;\r\n      --uapa-naranja:#ff8300;\r\n      --uapa-blanco:#ffffff;\r\n\r\n      --bg-main:#06154d;\r\n      --bg-soft:#eef2ff;\r\n      --card:#ffffff;\r\n      --card-dark:#0a164f;\r\n      --text:#10204d;\r\n      --text-soft:#5d6b98;\r\n      --line:#d9e0fb;\r\n      --line-strong:#b9c6f3;\r\n      --chip:#edf2ff;\r\n      --output:#f7f9ff;\r\n      --shadow:0 18px 45px rgba(4,17,71,.10);\r\n      --shadow-strong:0 18px 40px rgba(4,17,71,.18);\r\n      --radius-xl:22px;\r\n      --radius-lg:18px;\r\n      --radius-md:14px;\r\n      --radius-sm:12px;\r\n\r\n      --sans:ui-sans-serif, Inter, \"Segoe UI\", Roboto, Arial, system-ui;\r\n      --mono:ui-monospace, SFMono-Regular, Menlo, Consolas, \"Liberation Mono\", monospace;\r\n    }\r\n\r\n    .uapa-apa7,\r\n    .uapa-apa7 *{box-sizing:border-box}\r\n\r\n    .uapa-apa7{\r\n      font-family:var(--sans);\r\n      color:var(--text);\r\n      padding:20px 0;\r\n      background:\r\n        radial-gradient(900px 500px at 0% 0%, rgba(255,131,0,.12), transparent 55%),\r\n        radial-gradient(1000px 600px at 100% 0%, rgba(4,17,71,.16), transparent 58%),\r\n        linear-gradient(180deg, #f7f9ff 0%, #eef3ff 100%);\r\n    }\r\n\r\n    .uapa-apa7 .wrap{\r\n      width:min(1180px, calc(100% - 24px));\r\n      margin:auto;\r\n      display:grid;\r\n      gap:18px;\r\n    }\r\n\r\n    .uapa-apa7 .card{\r\n      background:var(--card);\r\n      border:1px solid var(--line);\r\n      border-radius:var(--radius-xl);\r\n      box-shadow:var(--shadow);\r\n      overflow:hidden;\r\n    }\r\n\r\n    .uapa-apa7 .card-inner{\r\n      padding:22px;\r\n    }\r\n\r\n    .uapa-apa7 .hero{\r\n      background:\r\n        linear-gradient(135deg, rgba(4,17,71,1) 0%, rgba(10,22,79,1) 58%, rgba(255,131,0,.96) 160%);\r\n      color:#fff;\r\n      border:none;\r\n      box-shadow:var(--shadow-strong);\r\n      position:relative;\r\n      isolation:isolate;\r\n    }\r\n\r\n    .uapa-apa7 .hero::before,\r\n    .uapa-apa7 .hero::after{\r\n      content:\"\";\r\n      position:absolute;\r\n      border-radius:999px;\r\n      filter:blur(8px);\r\n      opacity:.22;\r\n      z-index:-1;\r\n    }\r\n\r\n    .uapa-apa7 .hero::before{\r\n      width:240px;height:240px;\r\n      top:-80px;right:-40px;\r\n      background:rgba(255,255,255,.28);\r\n    }\r\n\r\n    .uapa-apa7 .hero::after{\r\n      width:260px;height:260px;\r\n      left:-80px;bottom:-120px;\r\n      background:rgba(255,131,0,.35);\r\n    }\r\n\r\n    .uapa-apa7 .eyebrow{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      gap:8px;\r\n      padding:8px 14px;\r\n      border-radius:999px;\r\n      font-size:12px;\r\n      font-weight:800;\r\n      letter-spacing:.35px;\r\n      text-transform:uppercase;\r\n      background:rgba(255,255,255,.14);\r\n      color:#fff;\r\n      border:1px solid rgba(255,255,255,.18);\r\n      margin-bottom:14px;\r\n      backdrop-filter:blur(10px);\r\n    }\r\n\r\n    .uapa-apa7 .title{\r\n      margin:0;\r\n      font-size:clamp(22px, 2.2vw, 30px);\r\n      line-height:1.1;\r\n      font-weight:900;\r\n      letter-spacing:-.01em;\r\n      color:#fff;\r\n    }\r\n\r\n    .uapa-apa7 .hero-grid{\r\n      display:grid;\r\n      gap:18px;\r\n      margin-top:20px;\r\n    }\r\n\r\n    .uapa-apa7 .toolbar{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:12px;\r\n      align-items:center;\r\n    }\r\n\r\n    .uapa-apa7 .toolbar.stack{\r\n      display:grid;\r\n      grid-template-columns:1.2fr auto;\r\n      gap:12px;\r\n    }\r\n\r\n    .uapa-apa7 .pill{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      padding:8px 12px;\r\n      border-radius:999px;\r\n      background:rgba(255,255,255,.12);\r\n      border:1px solid rgba(255,255,255,.15);\r\n      color:#fff;\r\n      font-size:12px;\r\n      font-weight:800;\r\n      letter-spacing:.35px;\r\n      text-transform:uppercase;\r\n      white-space:nowrap;\r\n    }\r\n\r\n    .uapa-apa7 .input,\r\n    .uapa-apa7 .select{\r\n      width:100%;\r\n      min-height:50px;\r\n      border-radius:14px;\r\n      border:1px solid var(--line-strong);\r\n      background:#fff;\r\n      color:var(--text);\r\n      padding:13px 15px;\r\n      font:600 15px\/1.3 var(--sans);\r\n      outline:none;\r\n      transition:border-color .2s ease, box-shadow .2s ease, transform .15s ease;\r\n    }\r\n\r\n    .uapa-apa7 .hero .input,\r\n    .uapa-apa7 .hero .select{\r\n      border-color:rgba(255,255,255,.16);\r\n      background:rgba(255,255,255,.10);\r\n      color:#fff;\r\n      backdrop-filter:blur(8px);\r\n    }\r\n\r\n    .uapa-apa7 .hero .input::placeholder{\r\n      color:rgba(255,255,255,.70);\r\n    }\r\n\r\n    .uapa-apa7 .hero .select option{\r\n      color:#111;\r\n      background:#fff;\r\n    }\r\n\r\n    .uapa-apa7 .input:focus,\r\n    .uapa-apa7 .select:focus{\r\n      border-color:var(--uapa-naranja);\r\n      box-shadow:0 0 0 4px rgba(255,131,0,.14);\r\n    }\r\n\r\n    .uapa-apa7 .hero .input:focus,\r\n    .uapa-apa7 .hero .select:focus{\r\n      border-color:#fff;\r\n      box-shadow:0 0 0 4px rgba(255,255,255,.16);\r\n    }\r\n\r\n    .uapa-apa7 .btn,\r\n    .uapa-apa7 .ghost,\r\n    .uapa-apa7 .copy{\r\n      appearance:none;\r\n      border:none;\r\n      cursor:pointer;\r\n      transition:transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease, color .2s ease;\r\n      font-family:var(--sans);\r\n    }\r\n\r\n    .uapa-apa7 .btn{\r\n      min-height:50px;\r\n      border-radius:14px;\r\n      padding:0 18px;\r\n      font-size:14px;\r\n      font-weight:800;\r\n      letter-spacing:.2px;\r\n      color:#fff;\r\n      background:linear-gradient(180deg, #ff9a27 0%, #ff8300 100%);\r\n      box-shadow:0 12px 24px rgba(255,131,0,.24);\r\n    }\r\n\r\n    .uapa-apa7 .btn:hover{transform:translateY(-1px); box-shadow:0 16px 30px rgba(255,131,0,.30)}\r\n    .uapa-apa7 .btn:active{transform:translateY(0)}\r\n\r\n    .uapa-apa7 .btn.secondary{\r\n      background:linear-gradient(180deg, #ff9a27 0%, #ff8300 100%);\r\n      box-shadow:0 12px 24px rgba(255,131,0,.28);\r\n    }\r\n\r\n    .uapa-apa7 .btn.secondary:hover{box-shadow:0 16px 30px rgba(255,131,0,.34)}\r\n\r\n    .uapa-apa7 .ghost{\r\n      min-height:50px;\r\n      border-radius:14px;\r\n      padding:0 18px;\r\n      font-size:14px;\r\n      font-weight:800;\r\n      color:#fff;\r\n      background:rgba(255,255,255,.08);\r\n      border:1px solid rgba(255,255,255,.18);\r\n      backdrop-filter:blur(8px);\r\n    }\r\n\r\n    .uapa-apa7 .ghost:hover{\r\n      transform:translateY(-1px);\r\n      background:rgba(255,255,255,.14);\r\n    }\r\n\r\n    .uapa-apa7 .section-head{\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:space-between;\r\n      gap:12px;\r\n      margin-bottom:18px;\r\n      flex-wrap:wrap;\r\n    }\r\n\r\n    .uapa-apa7 .section-title{\r\n      margin:0;\r\n      font-size:13px;\r\n      font-weight:900;\r\n      letter-spacing:.35px;\r\n      color:var(--uapa-azul);\r\n      text-transform:uppercase;\r\n    }\r\n\r\n    .uapa-apa7 .badge{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      gap:8px;\r\n      padding:8px 12px;\r\n      border-radius:999px;\r\n      background:var(--chip);\r\n      border:1px solid var(--line);\r\n      color:var(--text-soft);\r\n      font-size:12px;\r\n      font-weight:800;\r\n      text-transform:uppercase;\r\n    }\r\n\r\n    .uapa-apa7 .grid{\r\n      display:grid;\r\n      gap:16px;\r\n    }\r\n\r\n    .uapa-apa7 .meta-grid{\r\n      grid-template-columns:repeat(2, minmax(0,1fr));\r\n    }\r\n\r\n    .uapa-apa7 .field{\r\n      display:grid;\r\n      gap:8px;\r\n    }\r\n\r\n    .uapa-apa7 .field label{\r\n      font-size:12px;\r\n      font-weight:800;\r\n      letter-spacing:.3px;\r\n      color:var(--text-soft);\r\n      text-transform:uppercase;\r\n    }\r\n\r\n    .uapa-apa7 .output-grid{\r\n      display:grid;\r\n      gap:16px;\r\n      grid-template-columns:1fr 1fr;\r\n    }\r\n\r\n    .uapa-apa7 .output-box{\r\n      background:linear-gradient(180deg, #ffffff 0%, #f8faff 100%);\r\n      border:1px solid var(--line);\r\n      border-radius:18px;\r\n      padding:16px;\r\n      min-height:118px;\r\n      box-shadow:inset 0 1px 0 rgba(255,255,255,.7);\r\n    }\r\n\r\n    .uapa-apa7 .output-box.primary{\r\n      min-height:132px;\r\n      background:\r\n        linear-gradient(180deg, rgba(255,131,0,.05) 0%, rgba(255,255,255,1) 100%);\r\n      border-color:#ffdcb6;\r\n    }\r\n\r\n    .uapa-apa7 .out{\r\n      font:500 14px\/1.7 var(--mono);\r\n      color:var(--text);\r\n      white-space:pre-wrap;\r\n      word-break:break-word;\r\n    }\r\n\r\n    .uapa-apa7 .mini-toolbar{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:10px;\r\n      margin-top:12px;\r\n    }\r\n\r\n    .uapa-apa7 .copy{\r\n      min-height:40px;\r\n      padding:0 14px;\r\n      border-radius:12px;\r\n      border:1px solid #ffcf97;\r\n      background:#fff7ef;\r\n      color:#b15b00;\r\n      font-size:13px;\r\n      font-weight:800;\r\n    }\r\n\r\n    .uapa-apa7 .copy:hover{\r\n      transform:translateY(-1px);\r\n      background:#ffedd8;\r\n      box-shadow:0 10px 18px rgba(255,131,0,.14);\r\n    }\r\n\r\n    .uapa-apa7 .help{\r\n      background:linear-gradient(180deg, #fff9f2 0%, #fff 100%);\r\n      border:1px solid #ffd8aa;\r\n      border-left:5px solid var(--uapa-naranja);\r\n      border-radius:16px;\r\n      padding:14px 16px;\r\n      color:#7a5a29;\r\n      font-size:13px;\r\n      line-height:1.6;\r\n    }\r\n\r\n    .uapa-apa7 .footer-notes{\r\n      display:grid;\r\n      gap:10px;\r\n      font-size:13px;\r\n      color:var(--text-soft);\r\n      line-height:1.65;\r\n    }\r\n\r\n    .uapa-apa7 .footer-notes b{\r\n      color:var(--uapa-azul);\r\n    }\r\n\r\n    .uapa-apa7 .small{\r\n      font-size:12px;\r\n    }\r\n\r\n    @media (max-width: 900px){\r\n      .uapa-apa7 .toolbar.stack,\r\n      .uapa-apa7 .meta-grid,\r\n      .uapa-apa7 .output-grid{\r\n        grid-template-columns:1fr;\r\n      }\r\n\r\n      .uapa-apa7 .card-inner{\r\n        padding:18px;\r\n      }\r\n    }\r\n  <\/style>\r\n\r\n  <div class=\"wrap\">\r\n    <header class=\"card hero\">\r\n      <div class=\"card-inner\">\r\n        <span class=\"eyebrow\">Portal de Integridad Acad\u00e9mica UAPA<\/span>\r\n        <h1 class=\"title\">Sistema autom\u00e1tico para citas y referencias APA 7<\/h1>\r\n\r\n        <div class=\"hero-grid\">\r\n          <div class=\"toolbar\">\r\n            <span class=\"pill\">Tipo de fuente<\/span>\r\n            <select id=\"rtype\" class=\"select\" aria-label=\"Tipo de fuente\">\r\n              <option selected value=\"web\">P\u00e1gina web \/ Blog<\/option>\r\n              <option value=\"article\">Art\u00edculo de revista<\/option>\r\n              <option value=\"newspaper\">Noticia (peri\u00f3dico en l\u00ednea)<\/option>\r\n              <option value=\"book\">Libro<\/option>\r\n              <option value=\"chapter\">Cap\u00edtulo de libro<\/option>\r\n              <option value=\"report\">Informe \/ Documento institucional<\/option>\r\n              <option value=\"thesis\">Tesis<\/option>\r\n              <option value=\"conference\">Ponencia \/ Proceedings<\/option>\r\n              <option value=\"video\">Video (YouTube \/ plataforma)<\/option>\r\n              <option value=\"podcast\">Podcast (episodio)<\/option>\r\n              <option value=\"social\">Red social (post)<\/option>\r\n            <\/select>\r\n          <\/div>\r\n\r\n          <div class=\"toolbar stack\">\r\n            <input id=\"sourceUrl\" class=\"input\" type=\"text\" placeholder=\"https:\/\/... (opcional para detecci\u00f3n)\">\r\n            <div class=\"toolbar\">\r\n              <button id=\"detect\" class=\"btn secondary\" type=\"button\">Intentar detectar desde URL<\/button>\r\n              <button id=\"clear\" class=\"ghost\" type=\"button\">Limpiar<\/button>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/header>\r\n\r\n    <section class=\"card\">\r\n      <div class=\"card-inner\">\r\n        <div class=\"section-head\">\r\n          <h2 class=\"section-title\">Datos de la fuente<\/h2>\r\n          <span class=\"badge\">Completa los campos seg\u00fan el tipo seleccionado<\/span>\r\n        <\/div>\r\n        <div id=\"meta\" class=\"grid meta-grid\"><\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <section class=\"card\">\r\n      <div class=\"card-inner\">\r\n        <div class=\"section-head\">\r\n          <h2 class=\"section-title\">Salida APA 7<\/h2>\r\n          <span class=\"badge\">Resultado autom\u00e1tico<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"field\">\r\n          <label>Referencia<\/label>\r\n          <div class=\"output-box primary\">\r\n            <div id=\"ref\" class=\"out\"><\/div>\r\n          <\/div>\r\n          <div class=\"mini-toolbar\">\r\n            <button class=\"copy\" data-copy=\"#ref\" type=\"button\">Copiar referencia<\/button>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"output-grid\" style=\"margin-top:16px;\">\r\n          <div class=\"field\">\r\n            <label>Cita en el texto (parent\u00e9tica)<\/label>\r\n            <div class=\"output-box\">\r\n              <div id=\"intext\" class=\"out\"><\/div>\r\n            <\/div>\r\n            <div class=\"mini-toolbar\">\r\n              <button class=\"copy\" data-copy=\"#intext\" type=\"button\">Copiar cita<\/button>\r\n            <\/div>\r\n          <\/div>\r\n\r\n          <div class=\"field\">\r\n            <label>Cita narrativa (autor en el texto)<\/label>\r\n            <div class=\"output-box\">\r\n              <div id=\"narr\" class=\"out\"><\/div>\r\n            <\/div>\r\n            <div class=\"mini-toolbar\">\r\n              <button class=\"copy\" data-copy=\"#narr\" type=\"button\">Copiar cita narrativa<\/button>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"help\" style=\"margin-top:16px;\">\r\n          Para cita directa a\u00f1ade p\u00e1gina o p\u00e1rrafo: (Autor, a\u00f1o, p. 23) o (Autor, a\u00f1o, p\u00e1rr. 4).\r\n          En recursos sin autor, usa la organizaci\u00f3n o el t\u00edtulo abreviado en la cita.\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <footer class=\"card\">\r\n      <div class=\"card-inner footer-notes\">\r\n        <div><b>Notas APA 7 r\u00e1pidas<\/b><\/div>\r\n        <div>Hasta 20 autores en la referencia. En la cita: 1 autor (Apellido, a\u00f1o); 2 autores (Apellido &amp; Apellido, a\u00f1o); 3+ autores: (Apellido et al., a\u00f1o).<\/div>\r\n        <div>Web: Autor\/Organizaci\u00f3n. (A\u00f1o, d\u00eda de mes). <i>T\u00edtulo<\/i>. Sitio. URL. | Libro impreso: Autor. (A\u00f1o). <i>T\u00edtulo<\/i>. Editorial. | Art\u00edculo: Autor. (A\u00f1o). T\u00edtulo. <i>Revista<\/i>, volumen(n\u00famero), pp\u2013pp. https:\/\/doi.org\/...<\/div>\r\n        <div class=\"small\">&nbsp;<\/div>\r\n      <\/div>\r\n    <\/footer>\r\n  <\/div>\r\n\r\n  <script>\r\n    const MONTHS = [\"enero\",\"febrero\",\"marzo\",\"abril\",\"mayo\",\"junio\",\"julio\",\"agosto\",\"septiembre\",\"octubre\",\"noviembre\",\"diciembre\"];\r\n    const $ = (sel)=> document.querySelector(sel);\r\n    const $$ = (sel)=> Array.from(document.querySelectorAll(sel));\r\n\r\n    function sentCase(s){\r\n      if(!s) return \"\";\r\n      s = s.trim().replace(\/\\s+\/g,' ');\r\n      return s.charAt(0).toUpperCase() + s.slice(1);\r\n    }\r\n\r\n    function clean(s){ return (s || \"\").trim(); }\r\n\r\n    function parseDate(val){\r\n      if(!val) return null;\r\n      val = val.trim();\r\n\r\n      let m = val.match(\/(\\d{4})[-\\\/.](\\d{1,2})[-\\\/.](\\d{1,2})\/);\r\n      if(m) return {y:+m[1], m:+m[2]-1, d:+m[3]};\r\n\r\n      let n = val.toLowerCase().match(\/(\\d{1,2})\\s*(?:de\\s*)?([a-z\u00e1\u00e9\u00ed\u00f3\u00fa\u00f1]+)\\s*(?:de\\s*)?(\\d{4})\/);\r\n      if(n){\r\n        const d = +n[1];\r\n        const monthNormalized = n[2].normalize('NFD').replace(\/\\p{Diacritic}\/gu,'');\r\n        const mi = MONTHS.findIndex(M => M === monthNormalized);\r\n        const y = +n[3];\r\n        if(mi >= 0) return {y,m:mi,d};\r\n      }\r\n\r\n      let y = val.match(\/(\\d{4})\/);\r\n      if(y) return {y:+y[1]};\r\n      return null;\r\n    }\r\n\r\n    function fmtDate(d){\r\n      if(!d) return \"(s. f.)\";\r\n      const y = d.y, m = d.m, dd = d.d;\r\n      if(y && m != null && dd != null) return `(${y}, ${dd} de ${MONTHS[m]})`;\r\n      if(y && m != null) return `(${y}, ${MONTHS[m]})`;\r\n      if(y) return `(${y})`;\r\n      return \"(s. f.)\";\r\n    }\r\n\r\n    function splitAuthors(raw){\r\n      if(!raw) return [];\r\n      return raw\r\n        .split(\/;|\\s+&\\s+|\\s+y\\s+|\\band\\b|\\n|\\|\/i)\r\n        .map(s=>s.trim())\r\n        .filter(Boolean);\r\n    }\r\n\r\n    function fmtAuthor(n){\r\n      if(!n) return \"\";\r\n      n = n.replace(\/\\s+\/g,' ').trim().replace(\/Dr\\.|Dra\\.|Ing\\.|Lic\\.|Mtro\\.|Mtra\\.\/gi,'');\r\n      if(n.includes(',')){\r\n        const [ap, nom] = n.split(',').map(s=>s.trim());\r\n        const ini = (nom || '').split(' ').filter(Boolean).map(x=>x[0].toUpperCase()+'.').join(' ');\r\n        return `${ap}, ${ini}`.trim();\r\n      }\r\n      const parts = n.split(' ');\r\n      const ap = parts.pop();\r\n      const ini = parts.map(x=>x[0].toUpperCase()+'.').join(' ');\r\n      return `${ap}, ${ini}`.trim();\r\n    }\r\n\r\n    function joinAuthors(list){\r\n      if(!list || !list.length) return \"\";\r\n      const f = list.map(fmtAuthor).filter(Boolean);\r\n      if(f.length === 1) return f[0];\r\n      if(f.length === 2) return f.join(' & ');\r\n      return f.slice(0,19).join(', ') + (f.length > 20 ? ', ...' : ' , ') + f.slice(-1);\r\n    }\r\n\r\n    function orgFrom(url){\r\n      try{\r\n        const u = new URL(url);\r\n        return u.hostname\r\n          .replace(\/^www\\.\/,'')\r\n          .replace(\/\\.[a-z]{2,}$\/,'')\r\n          .replace(\/-\/g,' ')\r\n          .replace(\/\\b\\w\/g,m=>m.toUpperCase());\r\n      }catch(e){\r\n        return '';\r\n      }\r\n    }\r\n\r\n    function yearFrom(dateStr){\r\n      const y = (fmtDate(parseDate(dateStr)).match(\/\\d{4}\/) || ['s. f.'])[0];\r\n      return y;\r\n    }\r\n\r\n    function inTextCitation(authors, dateStr, url, page){\r\n      const y = yearFrom(dateStr);\r\n      if(authors && authors.length){\r\n        const first = fmtAuthor(authors[0]).split(',')[0];\r\n        if(authors.length === 1) return page ? `(${first}, ${y}, p. ${page})` : `(${first}, ${y})`;\r\n        if(authors.length === 2){\r\n          const second = fmtAuthor(authors[1]).split(',')[0];\r\n          return page ? `(${first} & ${second}, ${y}, p. ${page})` : `(${first} & ${second}, ${y})`;\r\n        }\r\n        return page ? `(${first} et al., ${y}, p. ${page})` : `(${first} et al., ${y})`;\r\n      }\r\n      const org = orgFrom(url) || 's. f.';\r\n      return page ? `(${org}, ${y}, p. ${page})` : `(${org}, ${y})`;\r\n    }\r\n\r\n    function narrativeCitation(authors, dateStr){\r\n      const y = yearFrom(dateStr);\r\n      if(authors && authors.length){\r\n        const first = fmtAuthor(authors[0]).split(',')[0];\r\n        if(authors.length === 1) return `${first} (${y})`;\r\n        if(authors.length === 2){\r\n          const second = fmtAuthor(authors[1]).split(',')[0];\r\n          return `${first} y ${second} (${y})`;\r\n        }\r\n        return `${first} et al. (${y})`;\r\n      }\r\n      return `(s. f.)`;\r\n    }\r\n\r\n    const TYPES = {\r\n      web: {\r\n        label: 'P\u00e1gina web \/ Blog',\r\n        fields: [\r\n          {id:'author', label:'Autor(es) u organizaci\u00f3n', ph:'Apellido, Inicial.; Organizaci\u00f3n', type:'text'},\r\n          {id:'date', label:'Fecha (AAAA-MM-DD o 14 mayo 2024)', type:'text'},\r\n          {id:'title', label:'T\u00edtulo de la p\u00e1gina', type:'text'},\r\n          {id:'site', label:'Nombre del sitio', type:'text'},\r\n          {id:'url', label:'URL', type:'url'}\r\n        ],\r\n        ref: ({authors,date,title,site,url})=>{\r\n          const haveA = authors && authors.length;\r\n          const a = haveA ? joinAuthors(authors) : (site || orgFrom(url));\r\n          const d = fmtDate(parseDate(date));\r\n          const t = sentCase(title || '');\r\n          const siteStr = site && (!haveA || site.toLowerCase() !== a.toLowerCase()) ? site + '. ' : '';\r\n          return `${a}. ${d}. <i>${t}<\/i>. ${siteStr}${url}`.replace(\/\\s+\/g,' ');\r\n        }\r\n      },\r\n      article: {\r\n        label: 'Art\u00edculo de revista',\r\n        fields: [\r\n          {id:'author', label:'Autor(es)', ph:'Apellido, Inicial.; Apellido, Inicial.', type:'text'},\r\n          {id:'date', label:'A\u00f1o (o fecha completa)', type:'text'},\r\n          {id:'title', label:'T\u00edtulo del art\u00edculo', type:'text'},\r\n          {id:'journal', label:'T\u00edtulo de la revista', type:'text'},\r\n          {id:'volume', label:'Volumen', type:'text'},\r\n          {id:'issue', label:'N\u00famero (opcional)', type:'text'},\r\n          {id:'pages', label:'P\u00e1ginas (pp\u2013pp)', type:'text'},\r\n          {id:'doi', label:'DOI o URL', type:'text'}\r\n        ],\r\n        ref: ({authors,date,title,journal,volume,issue,pages,doi})=>{\r\n          const a = joinAuthors(authors || []);\r\n          const d = fmtDate(parseDate(date));\r\n          const t = sentCase(title || '');\r\n          const vol = volume ? `<i>${volume}<\/i>` : '';\r\n          const iss = issue ? `(${issue})` : '';\r\n          const pp = pages ? `, ${pages}` : '';\r\n          const link = doi ? ` ${doi}` : '';\r\n          return `${a}. ${d}. ${t}. <i>${journal || ''}<\/i>, ${vol}${iss}${pp}.${link}`.replace(\/\\s+\/g,' ').replace(\/\\.,\/g,'.');\r\n        }\r\n      },\r\n      newspaper: {\r\n        label: 'Noticia (peri\u00f3dico en l\u00ednea)',\r\n        fields: [\r\n          {id:'author', label:'Autor(es) u organizaci\u00f3n', type:'text'},\r\n          {id:'date', label:'Fecha (d\u00eda mes a\u00f1o)', type:'text'},\r\n          {id:'title', label:'T\u00edtulo de la noticia', type:'text'},\r\n          {id:'newspaper', label:'Nombre del peri\u00f3dico', type:'text'},\r\n          {id:'url', label:'URL', type:'url'}\r\n        ],\r\n        ref: ({authors,date,title,newspaper,url})=>{\r\n          const a = (authors && authors.length) ? joinAuthors(authors) : (newspaper || orgFrom(url));\r\n          return `${a}. ${fmtDate(parseDate(date))}. <i>${sentCase(title)}<\/i>. ${newspaper ? newspaper + '. ' : ''}${url}`;\r\n        }\r\n      },\r\n      book: {\r\n        label: 'Libro',\r\n        fields: [\r\n          {id:'author', label:'Autor(es)', type:'text'},\r\n          {id:'date', label:'A\u00f1o', type:'text'},\r\n          {id:'title', label:'T\u00edtulo', type:'text'},\r\n          {id:'subtitle', label:'Subt\u00edtulo (opcional)', type:'text'},\r\n          {id:'edition', label:'Edici\u00f3n (opcional, ej. 2.\u00aa ed.)', type:'text'},\r\n          {id:'publisher', label:'Editorial', type:'text'},\r\n          {id:'doi', label:'DOI\/URL (opcional)', type:'text'}\r\n        ],\r\n        ref: ({authors,date,title,subtitle,edition,publisher,doi})=>{\r\n          const a = (authors && authors.length) ? joinAuthors(authors) : '';\r\n          const d = fmtDate(parseDate(date));\r\n          const core = subtitle ? `${sentCase(title)}: ${sentCase(subtitle)}` : sentCase(title);\r\n          const ed = edition ? ` (${edition})` : '';\r\n          const link = doi ? `. ${doi}` : '';\r\n          return `${a ? a + '. ' : ''}${d}. <i>${core}<\/i>${ed}. ${publisher || ''}${link}`.trim();\r\n        }\r\n      },\r\n      chapter: {\r\n        label: 'Cap\u00edtulo de libro',\r\n        fields: [\r\n          {id:'author', label:'Autor(es) del cap\u00edtulo', type:'text'},\r\n          {id:'date', label:'A\u00f1o', type:'text'},\r\n          {id:'chapter', label:'T\u00edtulo del cap\u00edtulo', type:'text'},\r\n          {id:'editors', label:'Editor(es) del libro (Apellido, Inicial.)', type:'text'},\r\n          {id:'book', label:'T\u00edtulo del libro', type:'text'},\r\n          {id:'pages', label:'P\u00e1ginas del cap\u00edtulo (pp. xx\u2013xx)', type:'text'},\r\n          {id:'publisher', label:'Editorial', type:'text'},\r\n          {id:'doi', label:'DOI\/URL (opcional)', type:'text'}\r\n        ],\r\n        ref: ({authors,date,chapter,editors,book,pages,publisher,doi})=>{\r\n          const a = joinAuthors(authors || []);\r\n          const d = fmtDate(parseDate(date));\r\n          const eds = clean(editors) ? `${editors} (Eds.), ` : '';\r\n          const pp = clean(pages) ? ` (${pages})` : '';\r\n          const link = clean(doi) ? `. ${doi}` : '';\r\n          return `${a}. ${d}. ${sentCase(chapter)}. En ${eds}<i>${sentCase(book)}<\/i>${pp}. ${publisher || ''}${link}`;\r\n        }\r\n      },\r\n      report: {\r\n        label: 'Informe \/ Documento institucional',\r\n        fields: [\r\n          {id:'author', label:'Autor(es) \/ Organizaci\u00f3n', type:'text'},\r\n          {id:'date', label:'A\u00f1o', type:'text'},\r\n          {id:'title', label:'T\u00edtulo del informe', type:'text'},\r\n          {id:'number', label:'N\u00famero de informe (opcional)', type:'text'},\r\n          {id:'publisher', label:'Editorial \/ Instituci\u00f3n', type:'text'},\r\n          {id:'doi', label:'DOI\/URL', type:'text'}\r\n        ],\r\n        ref: ({authors,date,title,number,publisher,doi})=>{\r\n          const a = (authors && authors.length) ? joinAuthors(authors) : (publisher || '');\r\n          const num = number ? ` (Informe ${number})` : '';\r\n          const link = doi ? `. ${doi}` : '';\r\n          return `${a}. ${fmtDate(parseDate(date))}. <i>${sentCase(title)}<\/i>${num}. ${publisher || ''}${link}`;\r\n        }\r\n      },\r\n      thesis: {\r\n        label: 'Tesis',\r\n        fields: [\r\n          {id:'author', label:'Autor(es)', type:'text'},\r\n          {id:'date', label:'A\u00f1o', type:'text'},\r\n          {id:'title', label:'T\u00edtulo de la tesis', type:'text'},\r\n          {id:'type', label:'Tipo (Tesis de licenciatura\/maestr\u00eda\/doctoral)', type:'text'},\r\n          {id:'institution', label:'Instituci\u00f3n', type:'text'},\r\n          {id:'doi', label:'Repositorio \/ DOI \/ URL', type:'text'}\r\n        ],\r\n        ref: ({authors,date,title,type,institution,doi})=>{\r\n          const a = joinAuthors(authors || []);\r\n          const d = fmtDate(parseDate(date));\r\n          const repo = doi ? `. ${doi}` : '';\r\n          return `${a}. ${d}. <i>${sentCase(title)}<\/i> [${type}]. ${institution}${repo}`;\r\n        }\r\n      },\r\n      conference: {\r\n        label: 'Ponencia \/ Proceedings',\r\n        fields: [\r\n          {id:'author', label:'Autor(es)', type:'text'},\r\n          {id:'date', label:'A\u00f1o', type:'text'},\r\n          {id:'title', label:'T\u00edtulo de la ponencia', type:'text'},\r\n          {id:'proceedings', label:'T\u00edtulo de actas \/ conferencia', type:'text'},\r\n          {id:'pages', label:'P\u00e1ginas (pp. xx\u2013xx) (opcional)', type:'text'},\r\n          {id:'publisher', label:'Editorial\/organizador (opcional)', type:'text'},\r\n          {id:'doi', label:'DOI\/URL (opcional)', type:'text'}\r\n        ],\r\n        ref: ({authors,date,title,proceedings,pages,publisher,doi})=>{\r\n          const a = joinAuthors(authors || []);\r\n          const d = fmtDate(parseDate(date));\r\n          const pp = pages ? `, ${pages}` : '';\r\n          const pub = publisher ? `. ${publisher}` : '';\r\n          const link = doi ? `. ${doi}` : '';\r\n          return `${a}. ${d}. ${sentCase(title)}. En <i>${sentCase(proceedings)}<\/i>${pp}${pub}${link}`;\r\n        }\r\n      },\r\n      video: {\r\n        label: 'Video (YouTube \/ plataforma)',\r\n        fields: [\r\n          {id:'author', label:'Autor\/Canal', type:'text'},\r\n          {id:'date', label:'Fecha', type:'text'},\r\n          {id:'title', label:'T\u00edtulo del video', type:'text'},\r\n          {id:'platform', label:'Plataforma (YouTube, Vimeo...)', type:'text'},\r\n          {id:'url', label:'URL', type:'url'}\r\n        ],\r\n        ref: ({authors,date,title,platform,url})=>{\r\n          const a = (authors && authors.length) ? joinAuthors(authors) : '';\r\n          return `${a}. ${fmtDate(parseDate(date))}. <i>${sentCase(title)}<\/i> [Video]. ${platform || ''}. ${url || ''}`;\r\n        }\r\n      },\r\n      podcast: {\r\n        label: 'Podcast (episodio)',\r\n        fields: [\r\n          {id:'author', label:'Presentador(es)\/Autor(es)', type:'text'},\r\n          {id:'date', label:'Fecha', type:'text'},\r\n          {id:'title', label:'T\u00edtulo del episodio', type:'text'},\r\n          {id:'series', label:'T\u00edtulo del podcast', type:'text'},\r\n          {id:'number', label:'N.\u00ba de episodio (opcional)', type:'text'},\r\n          {id:'url', label:'URL', type:'url'}\r\n        ],\r\n        ref: ({authors,date,title,series,number,url})=>{\r\n          const a = (authors && authors.length) ? joinAuthors(authors) : '';\r\n          const ep = number ? ` (Ep. ${number})` : '';\r\n          return `${a}. ${fmtDate(parseDate(date))}. <i>${sentCase(title)}<\/i>${ep} [Podcast]. ${series ? series + '. ' : ''}${url || ''}`;\r\n        }\r\n      },\r\n      social: {\r\n        label: 'Red social (post)',\r\n        fields: [\r\n          {id:'author', label:'Autor \/ Cuenta', type:'text'},\r\n          {id:'handle', label:'Usuario (@)', type:'text'},\r\n          {id:'date', label:'Fecha', type:'text'},\r\n          {id:'title', label:'Contenido (primeras palabras o t\u00edtulo)', type:'text'},\r\n          {id:'platform', label:'Plataforma (X, Facebook, Instagram...)', type:'text'},\r\n          {id:'url', label:'URL', type:'url'}\r\n        ],\r\n        ref: ({authors,handle,date,title,platform,url})=>{\r\n          const a = (authors && authors.length) ? joinAuthors(authors) : '';\r\n          const h = handle ? ` (@${handle.replace(\/^@\/, '')})` : '';\r\n          return `${a}${h}. ${fmtDate(parseDate(date))}. ${sentCase(title)} [${platform || 'Publicaci\u00f3n en red social'}]. ${url || ''}`;\r\n        }\r\n      }\r\n    };\r\n\r\n    function renderFields(type){\r\n      const def = TYPES[type];\r\n      const c = $('#meta');\r\n      c.innerHTML = '';\r\n\r\n      def.fields.forEach(f=>{\r\n        const wrap = document.createElement('div');\r\n        wrap.className = 'field';\r\n        wrap.innerHTML =\r\n          `<label for=\"${f.id}\">${f.label}<\/label>` +\r\n          `<input id=\"${f.id}\" class=\"input\" type=\"${f.type === 'url' ? 'url' : 'text'}\" placeholder=\"${f.ph || ''}\">`;\r\n        c.appendChild(wrap);\r\n      });\r\n    }\r\n\r\n    function collect(type){\r\n      const def = TYPES[type];\r\n      const data = {};\r\n      def.fields.forEach(f=>{\r\n        data[f.id] = clean($('#' + f.id)?.value);\r\n      });\r\n      if(data.author) data.authors = splitAuthors(data.author);\r\n      return data;\r\n    }\r\n\r\n    function updateOutputs(){\r\n      const t = $('#rtype').value;\r\n      const data = collect(t);\r\n      const def = TYPES[t];\r\n\r\n      const ref = def.ref(data);\r\n      $('#ref').innerHTML = ref || '&nbsp;';\r\n      $('#intext').textContent = inTextCitation(data.authors, data.date, data.url);\r\n      $('#narr').textContent = narrativeCitation(data.authors, data.date);\r\n    }\r\n\r\n    async function detectFromURL(){\r\n      const sourceUrl = clean($('#sourceUrl').value);\r\n      if(!\/^https?:\\\/\\\/\/i.test(sourceUrl)){\r\n        alert('Ingresa una URL v\u00e1lida (http\/https).');\r\n        return;\r\n      }\r\n\r\n      const btn = $('#detect');\r\n      const originalText = btn.textContent;\r\n      btn.textContent = 'Detectando...';\r\n      btn.disabled = true;\r\n\r\n      try{\r\n        const cleanURL = sourceUrl.replace(\/^https?:\\\/\\\/\/,'');\r\n        const endpoints = [\r\n          `https:\/\/r.jina.ai\/http:\/\/${cleanURL}`,\r\n          `https:\/\/r.jina.ai\/http:\/\/www.${cleanURL}`\r\n        ];\r\n\r\n        let txt = '';\r\n        for(const ep of endpoints){\r\n          try{\r\n            const res = await fetch(ep, {mode:'cors'});\r\n            if(res.ok){\r\n              txt = await res.text();\r\n              break;\r\n            }\r\n          }catch(e){}\r\n        }\r\n\r\n        const title = (txt.match(\/\\n(.{5,120})\\n\/) || [])[1] || '';\r\n        const byline = (txt.match(\/(?:(?:Por|By)\\s*[:\\-]?\\s*)([A-Z\u00c1\u00c9\u00cd\u00d3\u00da\u00d1][^\\n]{3,60})\/) || [])[1] || '';\r\n        const dISO = (txt.match(\/(\\d{4})[-\\\/.](\\d{1,2})[-\\\/.](\\d{1,2})\/) || [])[0] || '';\r\n        const dNat = (txt.match(\/(\\d{1,2})\\s+de\\s+(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)\\s+de\\s+(\\d{4})\/i) || [])[0] || '';\r\n\r\n        if($('#title')) $('#title').value = $('#title').value || title.trim();\r\n        if($('#author')) $('#author').value = $('#author').value || byline.trim();\r\n        if($('#date')) $('#date').value = $('#date').value || (dISO || dNat);\r\n        if($('#site')){\r\n          try{\r\n            const u = new URL(sourceUrl);\r\n            $('#site').value = $('#site').value || u.hostname.replace(\/^www\\.\/,'');\r\n          }catch(e){}\r\n        }\r\n        if($('#url')) $('#url').value = $('#url').value || sourceUrl;\r\n\r\n        updateOutputs();\r\n      } finally {\r\n        btn.textContent = originalText;\r\n        btn.disabled = false;\r\n      }\r\n    }\r\n\r\n    function clearAll(){\r\n      $('#sourceUrl').value = '';\r\n      $$('#meta .input').forEach(i => i.value = '');\r\n      updateOutputs();\r\n    }\r\n\r\n    async function copyFrom(selector, button){\r\n      const el = document.querySelector(selector);\r\n      const text = el.innerText || el.textContent || '';\r\n      try{\r\n        await navigator.clipboard.writeText(text.trim());\r\n        const original = button.textContent;\r\n        button.textContent = 'Copiado';\r\n        setTimeout(()=> button.textContent = original, 1200);\r\n      }catch(e){\r\n        alert('No se pudo copiar. Hazlo manualmente.');\r\n      }\r\n    }\r\n\r\n    function bindCopyButtons(){\r\n      $$('.copy').forEach(btn=>{\r\n        btn.addEventListener('click', ()=>{\r\n          copyFrom(btn.getAttribute('data-copy'), btn);\r\n        });\r\n      });\r\n    }\r\n\r\n    function init(){\r\n      renderFields('web');\r\n      updateOutputs();\r\n\r\n      $('#rtype').addEventListener('change', ()=>{\r\n        renderFields($('#rtype').value);\r\n        updateOutputs();\r\n      });\r\n\r\n      $('#detect').addEventListener('click', detectFromURL);\r\n      $('#clear').addEventListener('click', clearAll);\r\n\r\n      document.addEventListener('input', (e)=>{\r\n        if(e.target.classList.contains('input') || e.target.classList.contains('select')){\r\n          updateOutputs();\r\n        }\r\n      });\r\n\r\n      bindCopyButtons();\r\n    }\r\n\r\n    init();\r\n  <\/script>\r\n<\/section>\r\n\t\t\t\t<\/div>\n\t\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\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\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>C\u00f3mo citar C\u00f3mo referenciar<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-31","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/pages\/31","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/comments?post=31"}],"version-history":[{"count":173,"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/pages\/31\/revisions"}],"predecessor-version":[{"id":506,"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/pages\/31\/revisions\/506"}],"wp:attachment":[{"href":"https:\/\/integridadacademica.uapa.edu.do\/index.php\/wp-json\/wp\/v2\/media?parent=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}