{"id":6626,"date":"2026-10-26T03:03:24","date_gmt":"2026-10-26T02:03:24","guid":{"rendered":"https:\/\/erasmuslife4you.com\/dig-mapa-dos-sinais-do-corpo\/"},"modified":"2026-10-26T12:49:17","modified_gmt":"2026-10-26T11:49:17","slug":"dig-mapa-dos-sinais-do-corpo","status":"publish","type":"page","link":"https:\/\/erasmuslife4you.com\/pt\/dig-mapa-dos-sinais-do-corpo\/","title":{"rendered":"DIG \u2013 MAPA DOS SINAIS DO CORPO"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"6626\" class=\"elementor elementor-6626 elementor-6485\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a249c1d e-flex e-con-boxed e-con e-parent\" data-id=\"a249c1d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e9de795 elementor-widget elementor-widget-html\" data-id=\"e9de795\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"dig-body-signals-map\">\n\n<style>\n\n\/* =========================================================\n   DIG \u2013 BODY SIGNALS MAP\n   MODULE 4 \u2022 ACTIVITY 2\n========================================================= *\/\n\n#dig-body-signals-map{\n  --azure:#71AFDB;\n  --blue:#286f98;\n  --navy:#173f59;\n  --peach:#F8D4B5;\n  --peach-light:#fff5ec;\n  --blue-light:#eef7fc;\n  --page:#f7fbfd;\n  --text:#293943;\n  --muted:#5f707a;\n  --border:#d9eaf3;\n\n  font-family:Ubuntu,Arial,sans-serif;\n  color:var(--text);\n  background:var(--page);\n  padding:28px 16px 48px;\n  line-height:1.6;\n  box-sizing:border-box;\n}\n\n#dig-body-signals-map *{\n  box-sizing:border-box;\n}\n\n#dig-body-signals-map .dig-shell{\n  max-width:960px;\n  margin:0 auto;\n}\n\n\n\/* =========================================================\n   BRANDING\n========================================================= *\/\n\n#dig-body-signals-map .dig-topbar{\n  display:flex;\n  justify-content:space-between;\n  align-items:center;\n  flex-wrap:wrap;\n  gap:24px;\n  background:#ffffff;\n  border:1px solid var(--border);\n  border-radius:20px;\n  padding:20px 24px;\n  margin-bottom:18px;\n}\n\n#dig-body-signals-map .dig-project-logo{\n  display:block;\n  width:170px;\n  max-width:100%;\n  height:auto;\n}\n\n#dig-body-signals-map .dig-eu-logo{\n  display:block;\n  width:215px;\n  max-width:100%;\n  height:auto;\n}\n\n\n\/* =========================================================\n   HERO\n========================================================= *\/\n\n#dig-body-signals-map .hero{\n  position:relative;\n  overflow:hidden;\n  background:linear-gradient(\n    135deg,\n    rgba(113,175,219,.23),\n    rgba(248,212,181,.50)\n  );\n  border:1px solid rgba(113,175,219,.30);\n  border-radius:30px;\n  padding:40px 38px;\n  margin-bottom:18px;\n}\n\n#dig-body-signals-map .hero::after{\n  content:\"\";\n  position:absolute;\n  width:190px;\n  height:190px;\n  right:-65px;\n  top:-75px;\n  border-radius:50%;\n  background:rgba(255,255,255,.32);\n}\n\n#dig-body-signals-map .hero > *{\n  position:relative;\n  z-index:1;\n}\n\n#dig-body-signals-map .eyebrow{\n  display:inline-block;\n  background:#ffffff;\n  color:var(--blue);\n  border:1px solid rgba(113,175,219,.40);\n  border-radius:999px;\n  padding:7px 14px;\n  margin-bottom:14px;\n  font-size:13px;\n  font-weight:800;\n  letter-spacing:.05em;\n  text-transform:uppercase;\n}\n\n#dig-body-signals-map h1{\n  margin:0 0 12px;\n  color:var(--navy);\n  font-size:40px;\n  line-height:1.08;\n  font-weight:800;\n}\n\n#dig-body-signals-map .hero p{\n  margin:0;\n  max-width:760px;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:16px;\n  line-height:1.72;\n}\n\n\n\/* =========================================================\n   PROGRESS\n========================================================= *\/\n\n#dig-body-signals-map .progress-card{\n  background:#ffffff;\n  border:1px solid var(--border);\n  border-radius:19px;\n  padding:18px 20px;\n  margin-bottom:18px;\n}\n\n#dig-body-signals-map .progress-top{\n  display:flex;\n  justify-content:space-between;\n  align-items:center;\n  gap:12px;\n  margin-bottom:10px;\n}\n\n#dig-body-signals-map .progress-title{\n  color:var(--navy);\n  font-weight:800;\n  font-size:14px;\n}\n\n#dig-body-signals-map .progress-value{\n  color:var(--blue);\n  font-weight:800;\n  font-size:13px;\n}\n\n#dig-body-signals-map .progress-track{\n  height:9px;\n  background:#e9f1f5;\n  border-radius:999px;\n  overflow:hidden;\n}\n\n#dig-body-signals-map .progress-fill{\n  height:100%;\n  width:0;\n  border-radius:999px;\n  background:linear-gradient(90deg,var(--azure),var(--blue));\n  transition:width .4s ease;\n}\n\n\n\/* =========================================================\n   GENERAL\n========================================================= *\/\n\n#dig-body-signals-map .step{\n  background:#ffffff;\n  border-radius:23px;\n  padding:27px;\n  margin:18px 0;\n  box-shadow:0 7px 24px rgba(29,65,84,.06);\n}\n\n#dig-body-signals-map .step-blue{\n  border-left:6px solid var(--azure);\n}\n\n#dig-body-signals-map .step-peach{\n  border-left:6px solid var(--peach);\n}\n\n#dig-body-signals-map .step-label{\n  color:var(--blue);\n  font-size:12px;\n  font-weight:800;\n  text-transform:uppercase;\n  letter-spacing:.07em;\n  margin-bottom:5px;\n}\n\n#dig-body-signals-map h2{\n  margin:0 0 8px;\n  color:var(--navy);\n  font-size:25px;\n  line-height:1.3;\n}\n\n#dig-body-signals-map .help{\n  margin:0 0 18px;\n  color:#425d6d;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:14px;\n  line-height:1.65;\n}\n\n\n\/* =========================================================\n   EMOTION CHOICES\n========================================================= *\/\n\n#dig-body-signals-map .emotion-grid{\n  display:grid;\n  grid-template-columns:repeat(4,minmax(0,1fr));\n  gap:9px;\n}\n\n#dig-body-signals-map .emotion-option{\n  position:relative;\n  cursor:pointer;\n}\n\n#dig-body-signals-map .emotion-option input{\n  position:absolute;\n  opacity:0;\n  pointer-events:none;\n}\n\n#dig-body-signals-map .emotion-box{\n  min-height:59px;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  text-align:center;\n  padding:11px;\n  border:2px solid var(--border);\n  border-radius:14px;\n  background:#ffffff;\n  color:var(--navy);\n  font-size:13px;\n  font-weight:800;\n  transition:\n    transform .2s ease,\n    background .2s ease,\n    border-color .2s ease;\n}\n\n#dig-body-signals-map .emotion-option:nth-child(even) .emotion-box{\n  background:var(--peach-light);\n}\n\n#dig-body-signals-map .emotion-option input:checked + .emotion-box{\n  border-color:var(--blue);\n  background:#e5f4fb;\n  transform:translateY(-3px);\n}\n\n\n\/* =========================================================\n   BODY MAP\n========================================================= *\/\n\n#dig-body-signals-map .map-layout{\n  display:grid;\n  grid-template-columns:minmax(300px,430px) 1fr;\n  gap:25px;\n  align-items:start;\n}\n\n#dig-body-signals-map .body-card{\n  background:linear-gradient(180deg,#eef7fc,#ffffff);\n  border:1px solid var(--border);\n  border-radius:22px;\n  padding:18px;\n  text-align:center;\n}\n\n#dig-body-signals-map .map-instruction{\n  margin:0 0 12px;\n  color:var(--muted);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:12px;\n}\n\n#dig-body-signals-map .body-svg{\n  display:block;\n  width:100%;\n  max-width:350px;\n  height:auto;\n  margin:0 auto;\n}\n\n#dig-body-signals-map .body-base{\n  fill:#ffffff;\n  stroke:#aac8d8;\n  stroke-width:4;\n}\n\n#dig-body-signals-map .zone-hit{\n  fill:rgba(113,175,219,.12);\n  stroke:#71AFDB;\n  stroke-width:2;\n  stroke-dasharray:5 5;\n  cursor:pointer;\n  transition:\n    fill .25s ease,\n    stroke .25s ease,\n    opacity .25s ease;\n}\n\n#dig-body-signals-map .zone-group:hover .zone-hit{\n  fill:rgba(113,175,219,.30);\n}\n\n#dig-body-signals-map .zone-group.active .zone-hit{\n  fill:rgba(248,212,181,.75);\n  stroke:#286f98;\n  stroke-width:4;\n  stroke-dasharray:none;\n}\n\n#dig-body-signals-map .zone-group.mapped .zone-hit{\n  fill:rgba(113,175,219,.46);\n  stroke:#286f98;\n  stroke-dasharray:none;\n}\n\n#dig-body-signals-map .zone-group.active.mapped .zone-hit{\n  fill:rgba(248,212,181,.86);\n}\n\n#dig-body-signals-map .map-key{\n  display:flex;\n  flex-wrap:wrap;\n  justify-content:center;\n  gap:8px;\n  margin-top:12px;\n}\n\n#dig-body-signals-map .map-key span{\n  display:inline-block;\n  padding:6px 10px;\n  border-radius:999px;\n  background:#ffffff;\n  border:1px solid var(--border);\n  color:#58707e;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:10px;\n}\n\n\n\/* =========================================================\n   SIGNAL PANEL\n========================================================= *\/\n\n#dig-body-signals-map .signal-panel{\n  min-height:460px;\n  background:linear-gradient(135deg,#fff5ec,#eef7fc);\n  border:1px solid var(--border);\n  border-radius:22px;\n  padding:22px;\n}\n\n#dig-body-signals-map .signal-kicker{\n  color:var(--blue);\n  font-size:11px;\n  font-weight:800;\n  text-transform:uppercase;\n  letter-spacing:.07em;\n}\n\n#dig-body-signals-map .zone-title{\n  margin:5px 0 5px;\n  color:var(--navy);\n  font-size:22px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .zone-help{\n  margin:0 0 16px;\n  color:var(--muted);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:12px;\n  line-height:1.55;\n}\n\n#dig-body-signals-map .signal-chips{\n  display:flex;\n  flex-wrap:wrap;\n  gap:8px;\n  min-height:110px;\n}\n\n#dig-body-signals-map .signal-chip{\n  border:2px solid var(--border);\n  border-radius:999px;\n  padding:9px 13px;\n  background:#ffffff;\n  color:var(--navy);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:12px;\n  font-weight:700;\n  cursor:pointer;\n  transition:\n    transform .18s ease,\n    background .18s ease,\n    border-color .18s ease;\n}\n\n#dig-body-signals-map .signal-chip:hover{\n  transform:translateY(-1px);\n}\n\n#dig-body-signals-map .signal-chip.active{\n  background:#dff1fa;\n  border-color:var(--blue);\n  transform:translateY(-2px);\n}\n\n#dig-body-signals-map .custom-signal{\n  margin-top:16px;\n}\n\n#dig-body-signals-map .field-label{\n  display:block;\n  margin-bottom:7px;\n  color:var(--navy);\n  font-size:13px;\n  font-weight:800;\n}\n\n#dig-body-signals-map input[type=\"text\"],\n#dig-body-signals-map textarea{\n  width:100%;\n  border:2px solid #cfe2ed;\n  border-radius:12px;\n  background:#ffffff;\n  padding:12px 13px;\n  color:var(--text);\n  outline:none;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:15px;\n  line-height:1.5;\n}\n\n#dig-body-signals-map textarea{\n  min-height:92px;\n  resize:vertical;\n}\n\n#dig-body-signals-map input[type=\"text\"]:focus,\n#dig-body-signals-map textarea:focus{\n  border-color:var(--azure);\n  box-shadow:0 0 0 3px rgba(113,175,219,.17);\n}\n\n#dig-body-signals-map .selected-preview{\n  margin-top:16px;\n  padding:15px;\n  border-radius:15px;\n  background:#ffffff;\n  border:1px solid var(--border);\n}\n\n#dig-body-signals-map .selected-preview-label{\n  color:var(--muted);\n  font-size:10px;\n  font-weight:800;\n  text-transform:uppercase;\n}\n\n#dig-body-signals-map .selected-preview-value{\n  margin-top:3px;\n  color:var(--navy);\n  font-size:15px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .add-signal-btn{\n  width:100%;\n  margin-top:12px;\n  min-height:45px;\n  border:0;\n  border-radius:12px;\n  background:var(--blue);\n  color:#ffffff;\n  cursor:pointer;\n  font-family:Ubuntu,Arial,sans-serif;\n  font-size:14px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .add-signal-btn:disabled{\n  opacity:.45;\n  cursor:not-allowed;\n}\n\n\n\/* =========================================================\n   MY MAP LIST\n========================================================= *\/\n\n#dig-body-signals-map .map-list{\n  display:grid;\n  grid-template-columns:repeat(2,minmax(0,1fr));\n  gap:10px;\n  margin-top:18px;\n}\n\n#dig-body-signals-map .map-entry{\n  position:relative;\n  padding:16px 42px 16px 16px;\n  border-radius:16px;\n  background:#f7fbfd;\n  border:1px solid var(--border);\n}\n\n#dig-body-signals-map .map-entry:nth-child(even){\n  background:var(--peach-light);\n  border-color:#eadfd5;\n}\n\n#dig-body-signals-map .entry-emotion{\n  color:var(--blue);\n  font-size:10px;\n  font-weight:800;\n  text-transform:uppercase;\n  letter-spacing:.05em;\n}\n\n#dig-body-signals-map .entry-main{\n  margin-top:3px;\n  color:var(--navy);\n  font-size:15px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .entry-sub{\n  margin-top:3px;\n  color:var(--muted);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:11px;\n}\n\n#dig-body-signals-map .remove-map{\n  position:absolute;\n  top:11px;\n  right:11px;\n  width:25px;\n  height:25px;\n  border:0;\n  border-radius:50%;\n  background:#edf3f6;\n  color:#667985;\n  cursor:pointer;\n  font-size:15px;\n}\n\n#dig-body-signals-map .empty-map{\n  grid-column:1 \/ -1;\n  padding:20px;\n  border:1px dashed #bad3df;\n  border-radius:15px;\n  color:var(--muted);\n  text-align:center;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:13px;\n}\n\n\n\/* =========================================================\n   TOP 3\n========================================================= *\/\n\n#dig-body-signals-map .top3-list{\n  display:grid;\n  grid-template-columns:repeat(3,minmax(0,1fr));\n  gap:10px;\n  margin-top:18px;\n}\n\n#dig-body-signals-map .top-option{\n  position:relative;\n  cursor:pointer;\n}\n\n#dig-body-signals-map .top-option input{\n  position:absolute;\n  opacity:0;\n  pointer-events:none;\n}\n\n#dig-body-signals-map .top-box{\n  min-height:100px;\n  display:flex;\n  flex-direction:column;\n  justify-content:center;\n  padding:15px;\n  border:2px solid var(--border);\n  border-radius:16px;\n  background:#ffffff;\n  transition:\n    transform .2s ease,\n    border-color .2s ease,\n    background .2s ease;\n}\n\n#dig-body-signals-map .top-option:nth-child(even) .top-box{\n  background:var(--peach-light);\n}\n\n#dig-body-signals-map .top-option input:checked + .top-box{\n  border-color:var(--blue);\n  background:#e5f4fb;\n  transform:translateY(-3px);\n}\n\n#dig-body-signals-map .top-zone{\n  color:var(--blue);\n  font-size:10px;\n  font-weight:800;\n  text-transform:uppercase;\n}\n\n#dig-body-signals-map .top-signal{\n  margin-top:4px;\n  color:var(--navy);\n  font-size:14px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .top-limit{\n  margin-top:12px;\n  color:var(--muted);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:12px;\n}\n\n\n\/* =========================================================\n   BODY ALERT STRIP\n========================================================= *\/\n\n#dig-body-signals-map .alert-card{\n  background:var(--navy);\n  border-radius:22px;\n  padding:23px;\n  margin-top:20px;\n  color:#ffffff;\n}\n\n#dig-body-signals-map .alert-kicker{\n  color:var(--peach);\n  font-size:11px;\n  font-weight:800;\n  text-transform:uppercase;\n  letter-spacing:.06em;\n}\n\n#dig-body-signals-map .alert-title{\n  margin:5px 0 15px;\n  color:#ffffff;\n  font-size:18px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .alert-flow{\n  display:grid;\n  grid-template-columns:repeat(3,1fr);\n  gap:8px;\n}\n\n#dig-body-signals-map .alert-step{\n  padding:13px 10px;\n  border-radius:13px;\n  background:rgba(255,255,255,.09);\n  border:1px solid rgba(255,255,255,.13);\n  text-align:center;\n}\n\n#dig-body-signals-map .alert-step strong{\n  display:block;\n  color:#ffffff;\n  font-size:13px;\n}\n\n#dig-body-signals-map .alert-step span{\n  display:block;\n  margin-top:3px;\n  color:#c7dbe6;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:10px;\n}\n\n\n\/* =========================================================\n   REFLECTION\n========================================================= *\/\n\n#dig-body-signals-map .reflection-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:12px;\n}\n\n#dig-body-signals-map .reflection-card{\n  padding:17px;\n  border-radius:17px;\n  background:#f7fbfd;\n  border:1px solid var(--border);\n}\n\n#dig-body-signals-map .reflection-card:nth-child(even){\n  background:var(--peach-light);\n  border-color:#eadfd5;\n}\n\n\n\/* =========================================================\n   SUMMARY\n========================================================= *\/\n\n#dig-body-signals-map .summary{\n  position:relative;\n  overflow:hidden;\n  background:var(--navy);\n  color:#ffffff;\n  border-radius:25px;\n  padding:28px;\n  margin:20px 0;\n}\n\n#dig-body-signals-map .summary::after{\n  content:\"\";\n  position:absolute;\n  width:180px;\n  height:180px;\n  right:-90px;\n  bottom:-90px;\n  border-radius:50%;\n  background:rgba(113,175,219,.13);\n}\n\n#dig-body-signals-map .summary > *{\n  position:relative;\n  z-index:1;\n}\n\n#dig-body-signals-map .summary-kicker{\n  color:var(--peach);\n  font-size:12px;\n  font-weight:800;\n  text-transform:uppercase;\n  letter-spacing:.07em;\n}\n\n#dig-body-signals-map .summary-title{\n  margin:4px 0 18px;\n  color:#ffffff;\n  font-size:25px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .summary-grid{\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:10px;\n}\n\n#dig-body-signals-map .summary-item{\n  padding:15px;\n  border-radius:14px;\n  background:rgba(255,255,255,.09);\n  border:1px solid rgba(255,255,255,.13);\n}\n\n#dig-body-signals-map .summary-wide{\n  grid-column:1 \/ -1;\n}\n\n#dig-body-signals-map .summary-label{\n  color:#b9dff3;\n  font-size:10px;\n  font-weight:800;\n  text-transform:uppercase;\n  letter-spacing:.05em;\n  margin-bottom:4px;\n}\n\n#dig-body-signals-map .summary-value{\n  color:#ffffff;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:13px;\n  line-height:1.55;\n  white-space:pre-wrap;\n  overflow-wrap:anywhere;\n}\n\n#dig-body-signals-map .summary-message{\n  margin-top:17px;\n  padding-top:16px;\n  border-top:1px solid rgba(255,255,255,.15);\n  color:#ffffff;\n  font-size:18px;\n  font-weight:800;\n  line-height:1.5;\n}\n\n\n\/* =========================================================\n   SUPPORT\n========================================================= *\/\n\n#dig-body-signals-map .support{\n  background:var(--peach-light);\n  border-left:6px solid var(--peach);\n  border-radius:20px;\n  padding:23px;\n  margin:20px 0;\n}\n\n#dig-body-signals-map .support-title{\n  color:#8a5a34;\n  font-size:12px;\n  font-weight:800;\n  text-transform:uppercase;\n  letter-spacing:.07em;\n  margin-bottom:7px;\n}\n\n#dig-body-signals-map .support p{\n  margin:0;\n  color:#425d6d;\n  font-family:Verdana,Arial,sans-serif;\n  font-size:14px;\n  line-height:1.65;\n}\n\n\n\/* =========================================================\n   ACTIONS\n========================================================= *\/\n\n#dig-body-signals-map .actions{\n  display:flex;\n  flex-wrap:wrap;\n  gap:10px;\n  margin:24px 0 8px;\n}\n\n#dig-body-signals-map .btn{\n  min-height:47px;\n  border:0;\n  border-radius:12px;\n  padding:13px 18px;\n  cursor:pointer;\n  font-family:Ubuntu,Arial,sans-serif;\n  font-size:15px;\n  font-weight:800;\n}\n\n#dig-body-signals-map .btn-primary{\n  color:#ffffff;\n  background:var(--blue);\n}\n\n#dig-body-signals-map .btn-secondary{\n  color:var(--blue);\n  background:#ffffff;\n  border:2px solid var(--border);\n}\n\n#dig-body-signals-map .privacy{\n  color:var(--muted);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:12px;\n}\n\n\n\/* =========================================================\n   FOOTER\n========================================================= *\/\n\n#dig-body-signals-map .footer{\n  background:#ffffff;\n  border:1px solid var(--border);\n  border-radius:20px;\n  padding:20px;\n  margin-top:24px;\n}\n\n#dig-body-signals-map .footer-top{\n  display:flex;\n  align-items:flex-start;\n  gap:22px;\n  flex-wrap:wrap;\n}\n\n#dig-body-signals-map .footer .dig-eu-logo{\n  width:180px;\n}\n\n#dig-body-signals-map .disclaimer{\n  flex:1 1 440px;\n  margin:0;\n  color:var(--muted);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:11px;\n  line-height:1.6;\n}\n\n#dig-body-signals-map .project-number{\n  margin-top:14px;\n  padding-top:12px;\n  border-top:1px solid var(--border);\n  color:var(--muted);\n  font-family:Verdana,Arial,sans-serif;\n  font-size:11px;\n}\n\n\n\/* =========================================================\n   MOBILE\n========================================================= *\/\n\n@media(max-width:760px){\n\n  #dig-body-signals-map{\n    padding:18px 10px 34px;\n  }\n\n  #dig-body-signals-map .hero{\n    padding:28px 22px;\n  }\n\n  #dig-body-signals-map h1{\n    font-size:31px;\n  }\n\n  #dig-body-signals-map .emotion-grid{\n    grid-template-columns:repeat(2,1fr);\n  }\n\n  #dig-body-signals-map .map-layout,\n  #dig-body-signals-map .reflection-grid,\n  #dig-body-signals-map .summary-grid{\n    grid-template-columns:1fr;\n  }\n\n  #dig-body-signals-map .map-list{\n    grid-template-columns:1fr;\n  }\n\n  #dig-body-signals-map .top3-list{\n    grid-template-columns:1fr;\n  }\n\n  #dig-body-signals-map .summary-wide{\n    grid-column:auto;\n  }\n\n  #dig-body-signals-map .alert-flow{\n    grid-template-columns:1fr;\n  }\n\n}\n\n\n\/* =========================================================\n   REDUCED MOTION\n========================================================= *\/\n\n@media(prefers-reduced-motion:reduce){\n\n  #dig-body-signals-map *,\n  #dig-body-signals-map *::before,\n  #dig-body-signals-map *::after{\n    transition:none !important;\n    animation:none !important;\n  }\n\n}\n\n\n\/* =========================================================\n   PRINT\n========================================================= *\/\n\n@media print{\n\n  body{\n    background:#ffffff !important;\n  }\n\n  #dig-body-signals-map{\n    background:#ffffff !important;\n    padding:0 !important;\n  }\n\n  #dig-body-signals-map .actions,\n  #dig-body-signals-map .privacy,\n  #dig-body-signals-map .progress-card,\n  #dig-body-signals-map .add-signal-btn,\n  #dig-body-signals-map .remove-map{\n    display:none !important;\n  }\n\n  #dig-body-signals-map .step,\n  #dig-body-signals-map .summary,\n  #dig-body-signals-map .hero,\n  #dig-body-signals-map .dig-topbar,\n  #dig-body-signals-map .footer,\n  #dig-body-signals-map .support{\n    box-shadow:none !important;\n    break-inside:avoid;\n  }\n\n}\n\n<\/style>\n\n\n<div class=\"dig-shell\">\n\n\n  <!-- =====================================================\n       BRANDING\n  ====================================================== -->\n\n  <div class=\"dig-topbar\">\n\n    <img data-recalc-dims=\"1\" decoding=\"async\" class=\"dig-project-logo\" src=\"https:\/\/i0.wp.com\/erasmuslife4you.com\/wp-content\/uploads\/2026\/08\/DIG-FINAL-LOGO1.png?w=640&#038;ssl=1\" alt=\"DIG \u2013 Adia a satisfa\u00e7\u00e3o imediata para teres uma vida melhor\">\n\n    <img data-recalc-dims=\"1\" decoding=\"async\" class=\"dig-eu-logo\" src=\"https:\/\/i0.wp.com\/erasmuslife4you.com\/wp-content\/uploads\/2026\/05\/erasmus-logo.png?w=640&#038;ssl=1\" alt=\"Cofinanciado pela Uni\u00e3o Europeia\">\n\n  <\/div>\n\n\n\n  <!-- =====================================================\n       HERO\n  ====================================================== -->\n\n  <section class=\"hero\">\n\n     <div class=\"eyebrow\">\n     M\u00f3dulo 4 \u2022 Atividade 2\n   <\/div>\n\n    <h1>\n     O meu mapa de sinais do corpo\n   <\/h1>\n\n    <p>\n     Relaciona as emo\u00e7\u00f5es com os sinais f\u00edsicos e descobre quais as pistas do corpo\n     que te podem ajudar a perceber mais cedo o que se est\u00e1 a passar.\n   <\/p> \n\n  <\/section>\n\n\n\n  <!-- =====================================================\n       PROGRESS\n  ====================================================== -->\n\n  <div class=\"progress-card\">\n\n    <div class=\"progress-top\">\n\n       <div class=\"progress-title\">\n       O meu Body Check\n     <\/div>\n\n      <div class=\"progress-value\">\n      <span id=\"bsm-progress-number\">0\/4<\/span> passos\n     <\/div> \n\n    <\/div>\n\n    <div class=\"progress-track\">\n      <div class=\"progress-fill\" id=\"bsm-progress-fill\"><\/div>\n    <\/div>\n\n  <\/div>\n\n\n\n  <!-- =====================================================\n       STEP 1 \u2013 EMOTION\n  ====================================================== -->\n\n  <section class=\"step step-blue\">\n\n     <div class=\"step-label\">\n     Passo 1\n   <\/div>\n\n    <h2>\n     Escolhe uma emo\u00e7\u00e3o para explorar\n   <\/h2>\n\n    <p class=\"help\">\n     Pensa num momento recente em que te lembres claramente de ter sentido uma destas emo\u00e7\u00f5es.\n     Escolhe a op\u00e7\u00e3o que mais se aproxima.\n   <\/p> \n\n\n    <div class=\"emotion-grid\">\n\n       <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Happy\"\/>\n        <span class=\"emotion-box\">Feliz<\/span>\n      <\/label>\n\n      <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Excited\"\/>\n        <span class=\"emotion-box\">Entusiasmado<\/span>\n      <\/label> \n\n       <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Nervous\"\/>\n        <span class=\"emotion-box\">Nervoso<\/span>\n      <\/label>\n\n      <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Angry\"\/>\n        <span class=\"emotion-box\">Zangado<\/span>\n      <\/label> \n\n       <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Frustrated\"\/>\n        <span class=\"emotion-box\">Frustrado<\/span>\n      <\/label>\n\n      <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Sad\"\/>\n        <span class=\"emotion-box\">Triste<\/span>\n      <\/label> \n\n       <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Overwhelmed\"\/>\n        <span class=\"emotion-box\">Sobrecarregado<\/span>\n      <\/label>\n\n      <label class=\"emotion-option\">\n        <input type=\"radio\" name=\"bsm-emotion\" value=\"Relieved\"\/>\n        <span class=\"emotion-box\">Aliviado<\/span>\n      <\/label> \n\n    <\/div>\n\n  <\/section>\n\n\n\n  <!-- =====================================================\n       STEP 2 \u2013 INTERACTIVE BODY MAP\n  ====================================================== -->\n\n  <section class=\"step step-peach\">\n\n     <div class=\"step-label\">\n     Passo 2\n   <\/div>\n\n    <h2>\n     Toca onde sentes a emo\u00e7\u00e3o\n   <\/h2>\n\n    <p class=\"help\">\n     Seleciona uma zona do corpo e, em seguida, escolhe o sinal f\u00edsico que melhor corresponde \u00e0 tua experi\u00eancia.\n     Podes adicionar v\u00e1rias zonas e sinais.\n   <\/p> \n\n\n    <div class=\"map-layout\">\n\n\n      <!-- BODY -->\n\n      <div class=\"body-card\">\n\n        <p class=\"map-instruction\">\n           Toca numa das zonas do corpo destacadas.\n        <\/p>\n\n\n        <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"body-svg\" viewbox=\"0 0 320 560\" role=\"img\" aria-label=\"Interactive human body map\">\n\n\n          <!-- BODY BASE -->\n\n          <circle class=\"body-base\" cx=\"160\" cy=\"66\" r=\"42\">\n          <\/circle>\n\n          <rect class=\"body-base\" x=\"143\" y=\"105\" width=\"34\" height=\"35\" rx=\"14\">\n          <\/rect>\n\n          <path class=\"body-base\" d=\"M112 136\n               Q160 115 208 136\n               L221 290\n               Q205 320 190 330\n               L196 510\n               Q192 535 172 535\n               L160 345\n               L148 535\n               Q128 535 124 510\n               L130 330\n               Q115 320 99 290\n               Z\">\n          <\/path>\n\n          <path class=\"body-base\" d=\"M108 148\n               Q87 158 75 195\n               L48 330\n               Q44 350 58 356\n               Q72 360 78 340\n               L112 225\">\n          <\/path>\n\n          <path class=\"body-base\" d=\"M212 148\n               Q233 158 245 195\n               L272 330\n               Q276 350 262 356\n               Q248 360 242 340\n               L208 225\">\n          <\/path>\n\n\n          <!-- HEAD \/ FACE -->\n\n          <g class=\"zone-group\" data-zone=\"head\" tabindex=\"0\" role=\"button\" aria-label=\"Head and face\">\n\n            <ellipse class=\"zone-hit\" cx=\"160\" cy=\"66\" rx=\"34\" ry=\"31\">\n            <\/ellipse>\n\n          <\/g>\n\n\n          <!-- JAW \/ NECK -->\n\n          <g class=\"zone-group\" data-zone=\"neck\" tabindex=\"0\" role=\"button\" aria-label=\"Jaw, neck and throat\">\n\n            <ellipse class=\"zone-hit\" cx=\"160\" cy=\"122\" rx=\"29\" ry=\"19\">\n            <\/ellipse>\n\n          <\/g>\n\n\n          <!-- SHOULDERS -->\n\n          <g class=\"zone-group\" data-zone=\"shoulders\" tabindex=\"0\" role=\"button\" aria-label=\"Shoulders\">\n\n            <ellipse class=\"zone-hit\" cx=\"160\" cy=\"158\" rx=\"72\" ry=\"24\">\n            <\/ellipse>\n\n          <\/g>\n\n\n          <!-- CHEST -->\n\n          <g class=\"zone-group\" data-zone=\"chest\" tabindex=\"0\" role=\"button\" aria-label=\"Chest and breathing\">\n\n            <ellipse class=\"zone-hit\" cx=\"160\" cy=\"218\" rx=\"48\" ry=\"42\">\n            <\/ellipse>\n\n          <\/g>\n\n\n          <!-- STOMACH -->\n\n          <g class=\"zone-group\" data-zone=\"stomach\" tabindex=\"0\" role=\"button\" aria-label=\"Stomach\">\n\n            <ellipse class=\"zone-hit\" cx=\"160\" cy=\"292\" rx=\"42\" ry=\"37\">\n            <\/ellipse>\n\n          <\/g>\n\n\n          <!-- HANDS -->\n\n          <g class=\"zone-group\" data-zone=\"hands\" tabindex=\"0\" role=\"button\" aria-label=\"Hands\">\n\n            <circle class=\"zone-hit\" cx=\"57\" cy=\"348\" r=\"22\">\n            <\/circle>\n\n            <circle class=\"zone-hit\" cx=\"263\" cy=\"348\" r=\"22\">\n            <\/circle>\n\n          <\/g>\n\n\n          <!-- LEGS -->\n\n          <g class=\"zone-group\" data-zone=\"legs\" tabindex=\"0\" role=\"button\" aria-label=\"Legs and feet\">\n\n            <ellipse class=\"zone-hit\" cx=\"140\" cy=\"435\" rx=\"27\" ry=\"83\">\n            <\/ellipse>\n\n            <ellipse class=\"zone-hit\" cx=\"180\" cy=\"435\" rx=\"27\" ry=\"83\">\n            <\/ellipse>\n\n          <\/g>\n\n\n        <\/path><\/path><\/path><\/svg>\n\n\n        <div class=\"map-key\">\n\n          <span>Cabe\u00e7a \/ rosto<\/span>\n          <span>Pesco\u00e7o<\/span>\n          <span>Ombros<\/span>\n          <span>Peito<\/span>\n          <span>Barriga<\/span>\n          <span>M\u00e3os<\/span>\n          <span>Pernas<\/span>\n\n        <\/div>\n\n      <\/div>\n\n\n\n      <!-- SIGNAL PANEL -->\n\n      <div class=\"signal-panel\">\n\n         <div class=\"signal-kicker\">\n         \u00c1rea do corpo selecionada\n       <\/div>\n\n        <div class=\"zone-title\" id=\"bsm-zone-title\">\n         Escolhe uma \u00e1rea\n       <\/div>\n\n        <p class=\"zone-help\" id=\"bsm-zone-help\">\n         As op\u00e7\u00f5es de sinais f\u00edsicos v\u00e3o aparecer aqui.\n       <\/p>\n\n\n        <div class=\"signal-chips\" id=\"bsm-signal-chips\">\n        <\/div> \n\n\n        <div class=\"custom-signal\">\n\n          <label class=\"field-label\" for=\"bsm-custom-signal\">\n             Mais um sinal?\n          <\/label>\n\n          <input type=\"text\" id=\"bsm-custom-signal\" placeholder=\"Por exemplo: formigueiro, sensa\u00e7\u00e3o de press\u00e3o, m\u00e3os frias...\">\n\n        <\/div>\n\n\n        <div class=\"selected-preview\">\n\n           <div class=\"selected-preview-label\">\n           Estou a adicionar o Signal\n         <\/div>\n\n          <div class=\"selected-preview-value\" id=\"bsm-preview\">\n           \u2014\n         <\/div> \n\n        <\/div>\n\n\n        <button type=\"button\" class=\"add-signal-btn\" id=\"bsm-add\" disabled>\n           Adiciona este sinal ao meu mapa\n        <\/button>\n\n      <\/div>\n\n\n    <\/div>\n\n  <\/section>\n\n\n\n  <!-- =====================================================\n       MY MAP\n  ====================================================== -->\n\n  <section class=\"step step-blue\">\n\n    <div class=\"step-label\">\n       O meu mapa\n    <\/div>\n\n    <h2>\n       Sinais que reparo\n    <\/h2>\n\n    <p class=\"help\">\n       Os sinais que selecionaste aparecem abaixo. As zonas do corpo que marcaste tamb\u00e9m continuam destacadas acima.\n    <\/p>\n\n\n    <div class=\"map-list\" id=\"bsm-map-list\">\n\n      <div class=\"empty-map\">\n         Os sinais do teu corpo v\u00e3o aparecer aqui.\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n\n  <!-- =====================================================\n       STEP 3 \u2013 TOP 3\n  ====================================================== -->\n\n  <section class=\"step step-peach\">\n\n     <div class=\"step-label\">\n     Passo 3\n   <\/div>\n\n    <h2>\n     Escolhe os teus 3 principais sinais corporais\n   <\/h2>\n\n    <p class=\"help\">\n     Quais dos sinais no teu mapa seriam mais \u00fateis para reconheceres mais cedo?\n     Escolhe at\u00e9 tr\u00eas.\n   <\/p> \n\n\n    <div class=\"top3-list\" id=\"bsm-top3-list\">\n\n      <div class=\"empty-map\">\n         Come\u00e7a por incluir alguns sinais corporais.\n      <\/div>\n\n    <\/div>\n\n\n    <div class=\"top-limit\" id=\"bsm-top-count\">\n       0 de 3 selecionados\n    <\/div>\n\n\n\n    <div class=\"alert-card\">\n\n       <div class=\"alert-kicker\">\n       O meu sistema de sinais precoces\n     <\/div>\n\n      <div class=\"alert-title\">\n       Um sinal do corpo pode servir de lembrete para fazeres uma pausa\n     <\/div> \n\n\n      <div class=\"alert-flow\">\n\n        <div class=\"alert-step\">\n          <strong>1. Sinal<\/strong>\n          <span>Reparo em algo no meu corpo<\/span>\n        <\/div>\n\n        <div class=\"alert-step\">\n          <strong>2. Verifica<\/strong>\n          <span>O que \u00e9 que eu posso estar a sentir?<\/span>\n        <\/div>\n\n        <div class=\"alert-step\">\n          <strong>3. Pausa<\/strong>\n          <span>Dou a mim mesmo um momento antes de reagir<\/span>\n        <\/div>\n\n      <\/div>\n\n    <\/div>\n\n  <\/section>\n\n\n\n  <!-- =====================================================\n       STEP 4 \u2013 REFLECTION\n  ====================================================== -->\n\n  <section class=\"step step-blue\">\n\n     <div class=\"step-label\">\n     Passo 4\n   <\/div>\n\n    <h2>\n     Relaciona o sinal com a situa\u00e7\u00e3o\n   <\/h2>\n\n    <p class=\"help\">\n     Os sinais corporais tornam-se mais \u00fateis quando reparas no contexto em que costumam surgir.\n   <\/p> \n\n\n    <div class=\"reflection-grid\">\n\n\n      <div class=\"reflection-card\">\n\n        <label class=\"field-label\" for=\"bsm-when\">\n           Quando \u00e9 que costumo reparar nestes sinais?\n        <\/label>\n\n        <textarea id=\"bsm-when\" placeholder=\"Por exemplo: antes das apresenta\u00e7\u00f5es, durante as discuss\u00f5es, quando estou \u00e0 espera de uma resposta importante...\"><\/textarea>\n\n      <\/div>\n\n\n      <div class=\"reflection-card\">\n\n        <label class=\"field-label\" for=\"bsm-pause\">\n           O que \u00e9 que esse sinal me pode lembrar de fazer?\n        <\/label>\n\n        <textarea id=\"bsm-pause\" placeholder=\"Por exemplo: abranda um pouco, respira fundo, espera antes de responder, v\u00ea o que est\u00e1s a sentir...\"><\/textarea>\n\n      <\/div>\n\n\n    <\/div>\n\n  <\/section>\n\n\n\n  <!-- =====================================================\n       SUPPORT\n  ====================================================== -->\n\n  <div class=\"support\">\n\n     <div class=\"support-title\">\n     Lembra-te\n   <\/div>\n\n    <p>\n     O mesmo sinal f\u00edsico pode surgir com emo\u00e7\u00f5es diferentes.\n     Um batimento card\u00edaco mais r\u00e1pido pode significar nervosismo, excita\u00e7\u00e3o, raiva ou simplesmente atividade f\u00edsica.\n     O teu corpo d\u00e1-te uma pista \u2014 a situa\u00e7\u00e3o ajuda-te a perceber o que se passa.\n   <\/p> \n\n  <\/div>\n\n\n\n  <!-- =====================================================\n       SUMMARY\n  ====================================================== -->\n\n  <section class=\"summary\">\n\n     <div class=\"summary-kicker\">\n     O meu mapa de sinais corporais\n   <\/div>\n\n    <div class=\"summary-title\">\n     As minhas primeiras pistas\n   <\/div> \n\n\n    <div class=\"summary-grid\">\n\n\n      <div class=\"summary-item\">\n\n         <div class=\"summary-label\">\n         Explora\u00e7\u00e3o das emo\u00e7\u00f5es\n       <\/div>\n\n        <div class=\"summary-value\" id=\"bsm-summary-emotion\">\n         \u2014\n       <\/div> \n\n      <\/div>\n\n\n      <div class=\"summary-item\">\n\n         <div class=\"summary-label\">\n         \u00c1reas do corpo mapeadas\n       <\/div>\n\n        <div class=\"summary-value\" id=\"bsm-summary-zones\">\n         \u2014\n       <\/div> \n\n      <\/div>\n\n\n      <div class=\"summary-item summary-wide\">\n\n         <div class=\"summary-label\">\n         Os meus 3 principais sinais corporais\n       <\/div>\n\n        <div class=\"summary-value\" id=\"bsm-summary-top\">\n         \u2014\n       <\/div> \n\n      <\/div>\n\n\n      <div class=\"summary-item\">\n\n         <div class=\"summary-label\">\n         Quando reparo neles\n       <\/div>\n\n        <div class=\"summary-value\" id=\"bsm-summary-when\">\n         \u2014\n       <\/div> \n\n      <\/div>\n\n\n      <div class=\"summary-item\">\n\n         <div class=\"summary-label\">\n         O meu lembrete para fazer uma pausa\n       <\/div>\n\n        <div class=\"summary-value\" id=\"bsm-summary-pause\">\n         \u2014\n       <\/div> \n\n      <\/div>\n\n\n    <\/div>\n\n\n    <div class=\"summary-message\">\n       O meu corpo n\u00e3o me d\u00e1 a resposta completa.\n     Mas pode dar-me uma pista inicial para fazer uma pausa e reparar no que est\u00e1 a acontecer.\n    <\/div>\n\n  <\/section>\n\n\n\n  <!-- =====================================================\n       ACTIONS \u2013 BOTTOM ONLY\n  ====================================================== -->\n\n  <div class=\"actions\">\n\n     <button type=\"button\" class=\"btn btn-primary\" id=\"bsm-print\">\n     Imprimir \/ Guardar como PDF\n   <\/button>\n\n\n    <button type=\"button\" class=\"btn btn-secondary\" id=\"bsm-clear\">\n     Limpar o meu mapa de sinais do corpo\n   <\/button> \n\n  <\/div>\n\n\n  <div class=\"privacy\">\n     As tuas respostas ficam nesta p\u00e1gina enquanto a estiveres a utilizar.\n   N\u00e3o s\u00e3o enviadas, avaliadas nem partilhadas.\n  <\/div>\n\n\n\n  <!-- =====================================================\n       FOOTER\n  ====================================================== -->\n\n  <footer class=\"footer\">\n\n    <div class=\"footer-top\">\n\n      <img data-recalc-dims=\"1\" decoding=\"async\" class=\"dig-eu-logo\" src=\"https:\/\/i0.wp.com\/erasmuslife4you.com\/wp-content\/uploads\/2026\/05\/erasmus-logo.png?w=640&#038;ssl=1\" alt=\"Cofinanciado pela Uni\u00e3o Europeia\">\n\n\n      <p class=\"disclaimer\">\n         Financiado pela Uni\u00e3o Europeia. As opini\u00f5es e pontos de vista aqui expressos s\u00e3o, no entanto,\n       apenas dos autores e n\u00e3o refletem necessariamente os da\n       Uni\u00e3o Europeia nem da Ag\u00eancia Executiva Europeia para a Educa\u00e7\u00e3o e a Cultura\n       (EACEA). Nem a Uni\u00e3o Europeia nem a EACEA podem ser responsabilizadas\n       por eles.\n      <\/p>\n\n    <\/div>\n\n\n    <div class=\"project-number\">\n       DIG \u2013 Adia a gratifica\u00e7\u00e3o imediata para uma vida melhor \u00b7\n     Erasmus+ KA220-YOU \u00b7\n     N.\u00ba do projeto 2024-1-PL01-KA220-YOU-000247051\n    <\/div>\n\n  <\/footer>\n\n\n<\/div>\n\n\n\n<script>\n\n(function(){\n\n  var root =\n    document.getElementById('dig-body-signals-map');\n\n  if(!root || root.dataset.ready === '1'){\n    return;\n  }\n\n  root.dataset.ready = '1';\n\n\n\n  \/* =====================================================\n     DATA\n  ====================================================== *\/\n\n  var zones = {\n\n    head:{\n      label:'Head \/ face',\n      help:'What do you notice around your head or face?',\n      signals:[\n        'Warm face',\n        'Pressure',\n        'Hard to focus',\n        'Tense forehead',\n        'Tears',\n        'Light-headed'\n      ]\n    },\n\n    neck:{\n      label:'Jaw \/ neck \/ throat',\n      help:'What changes do you notice around your jaw, neck or throat?',\n      signals:[\n        'Tight jaw',\n        'Stiff neck',\n        'Lump in throat',\n        'Clenched teeth',\n        'Dry mouth'\n      ]\n    },\n\n    shoulders:{\n      label:'Shoulders',\n      help:'What happens in your shoulders or upper back?',\n      signals:[\n        'Raised shoulders',\n        'Tension',\n        'Stiffness',\n        'Heaviness',\n        'Muscles tighten'\n      ]\n    },\n\n    chest:{\n      label:'Chest \/ breathing',\n      help:'What do you notice in your chest or breathing?',\n      signals:[\n        'Faster heartbeat',\n        'Tight chest',\n        'Shallow breathing',\n        'Heavy feeling',\n        'Breathing speeds up',\n        'Breathing slows'\n      ]\n    },\n\n    stomach:{\n      label:'Stomach',\n      help:'What do you notice in your stomach?',\n      signals:[\n        'Butterflies',\n        'Tight stomach',\n        'Heavy feeling',\n        'Nausea',\n        'Drop feeling',\n        'Hunger disappears'\n      ]\n    },\n\n    hands:{\n      label:'Hands',\n      help:'What happens in your hands or fingers?',\n      signals:[\n        'Shaky hands',\n        'Sweaty palms',\n        'Clenched fists',\n        'Fidgeting',\n        'Cold hands',\n        'Gripping tightly'\n      ]\n    },\n\n    legs:{\n      label:'Legs \/ feet',\n      help:'What changes do you notice in your legs or feet?',\n      signals:[\n        'Restless legs',\n        'Shaky legs',\n        'Heavy legs',\n        'Tapping feet',\n        'Urge to move',\n        'Want to leave'\n      ]\n    }\n\n  };\n\n\n  var selectedZone = '';\n  var selectedSignal = '';\n\n  var mapEntries = [];\n  var topSelections = [];\n\n\n\n  \/* =====================================================\n     ELEMENTS\n  ====================================================== *\/\n\n  var emotionInputs =\n    root.querySelectorAll(\n      'input[name=\"bsm-emotion\"]'\n    );\n\n  var zoneGroups =\n    root.querySelectorAll('.zone-group');\n\n  var zoneTitle =\n    root.querySelector('#bsm-zone-title');\n\n  var zoneHelp =\n    root.querySelector('#bsm-zone-help');\n\n  var chipsWrap =\n    root.querySelector('#bsm-signal-chips');\n\n  var customSignal =\n    root.querySelector('#bsm-custom-signal');\n\n  var preview =\n    root.querySelector('#bsm-preview');\n\n  var addButton =\n    root.querySelector('#bsm-add');\n\n  var mapList =\n    root.querySelector('#bsm-map-list');\n\n  var topList =\n    root.querySelector('#bsm-top3-list');\n\n  var topCount =\n    root.querySelector('#bsm-top-count');\n\n  var whenInput =\n    root.querySelector('#bsm-when');\n\n  var pauseInput =\n    root.querySelector('#bsm-pause');\n\n\n\n  \/* =====================================================\n     HELPERS\n  ====================================================== *\/\n\n  function getEmotion(){\n\n    var checked =\n      root.querySelector(\n        'input[name=\"bsm-emotion\"]:checked'\n      );\n\n    return checked\n      ? checked.value\n      : '';\n\n  }\n\n\n  function unique(values){\n\n    return values.filter(function(value,index,array){\n\n      return array.indexOf(value) === index;\n\n    });\n\n  }\n\n\n\n  \/* =====================================================\n     BODY ZONES\n  ====================================================== *\/\n\n  function selectZone(key){\n\n    if(!zones[key]){\n      return;\n    }\n\n\n    selectedZone = key;\n    selectedSignal = '';\n\n    customSignal.value = '';\n\n\n    zoneGroups.forEach(function(group){\n\n      group.classList.toggle(\n        'active',\n        group.getAttribute('data-zone') === key\n      );\n\n    });\n\n\n    renderSignals();\n\n    updatePreview();\n    updateAll();\n\n  }\n\n\n  zoneGroups.forEach(function(group){\n\n    group.addEventListener(\n      'click',\n      function(){\n\n        selectZone(\n          group.getAttribute('data-zone')\n        );\n\n      }\n    );\n\n\n    group.addEventListener(\n      'keydown',\n      function(event){\n\n        if(\n          event.key === 'Enter' ||\n          event.key === ' '\n        ){\n\n          event.preventDefault();\n\n          selectZone(\n            group.getAttribute('data-zone')\n          );\n\n        }\n\n      }\n    );\n\n  });\n\n\n\n  \/* =====================================================\n     SIGNAL OPTIONS\n  ====================================================== *\/\n\n  function renderSignals(){\n\n    chipsWrap.innerHTML = '';\n\n\n    if(!selectedZone){\n\n      zoneTitle.textContent =\n        'Choose an area';\n\n      zoneHelp.textContent =\n        'Physical signal options will appear here.';\n\n      return;\n\n    }\n\n\n    var data =\n      zones[selectedZone];\n\n\n    zoneTitle.textContent =\n      data.label;\n\n    zoneHelp.textContent =\n      data.help;\n\n\n    data.signals.forEach(function(signal){\n\n      var button =\n        document.createElement('button');\n\n      button.type = 'button';\n\n      button.className =\n        'signal-chip';\n\n      button.textContent =\n        signal;\n\n\n      button.addEventListener(\n        'click',\n        function(){\n\n          chipsWrap\n            .querySelectorAll('.signal-chip')\n            .forEach(function(other){\n\n              other.classList.remove('active');\n\n            });\n\n\n          button.classList.add('active');\n\n          selectedSignal =\n            signal;\n\n          customSignal.value = '';\n\n          updatePreview();\n\n        }\n      );\n\n\n      chipsWrap.appendChild(button);\n\n    });\n\n  }\n\n\n\n  \/* =====================================================\n     CUSTOM SIGNAL\n  ====================================================== *\/\n\n  customSignal.addEventListener(\n    'input',\n    function(){\n\n      if(customSignal.value.trim()){\n\n        selectedSignal =\n          customSignal.value.trim();\n\n\n        chipsWrap\n          .querySelectorAll('.signal-chip')\n          .forEach(function(chip){\n\n            chip.classList.remove('active');\n\n          });\n\n      }else{\n\n        selectedSignal = '';\n\n      }\n\n\n      updatePreview();\n\n    }\n  );\n\n\n\n  \/* =====================================================\n     PREVIEW\n  ====================================================== *\/\n\n  function updatePreview(){\n\n    if(\n      !selectedZone ||\n      !selectedSignal\n    ){\n\n      preview.textContent = '\u2014';\n      addButton.disabled = true;\n      return;\n\n    }\n\n\n    preview.textContent =\n      zones[selectedZone].label +\n      ' \u2192 ' +\n      selectedSignal;\n\n\n    addButton.disabled =\n      !getEmotion();\n\n  }\n\n\n\n  \/* =====================================================\n     EMOTION\n  ====================================================== *\/\n\n  emotionInputs.forEach(function(input){\n\n    input.addEventListener(\n      'change',\n      function(){\n\n        updatePreview();\n        updateAll();\n\n      }\n    );\n\n  });\n\n\n\n  \/* =====================================================\n     ADD SIGNAL\n  ====================================================== *\/\n\n  addButton.addEventListener(\n    'click',\n    function(){\n\n      var emotion =\n        getEmotion();\n\n\n      if(\n        !emotion ||\n        !selectedZone ||\n        !selectedSignal\n      ){\n        return;\n      }\n\n\n      mapEntries.push({\n\n        id:\n          Date.now() +\n          '-' +\n          Math.random().toString(16).slice(2),\n\n        emotion:emotion,\n\n        zone:selectedZone,\n\n        zoneLabel:\n          zones[selectedZone].label,\n\n        signal:selectedSignal\n\n      });\n\n\n      selectedSignal = '';\n      customSignal.value = '';\n\n\n      chipsWrap\n        .querySelectorAll('.signal-chip')\n        .forEach(function(chip){\n\n          chip.classList.remove('active');\n\n        });\n\n\n      updatePreview();\n\n      renderMap();\n      renderTop3();\n      updateAll();\n\n    }\n  );\n\n\n\n  \/* =====================================================\n     MAP LIST\n  ====================================================== *\/\n\n  function renderMap(){\n\n    mapList.innerHTML = '';\n\n\n    if(!mapEntries.length){\n\n      mapList.innerHTML =\n        '<div class=\"empty-map\">Your body signals will appear here.<\/div>';\n\n    }else{\n\n      mapEntries.forEach(function(entry,index){\n\n        var card =\n          document.createElement('div');\n\n        card.className =\n          'map-entry';\n\n\n        var emotion =\n          document.createElement('div');\n\n        emotion.className =\n          'entry-emotion';\n\n        emotion.textContent =\n          entry.emotion;\n\n\n        var main =\n          document.createElement('div');\n\n        main.className =\n          'entry-main';\n\n        main.textContent =\n          entry.signal;\n\n\n        var sub =\n          document.createElement('div');\n\n        sub.className =\n          'entry-sub';\n\n        sub.textContent =\n          entry.zoneLabel;\n\n\n        var remove =\n          document.createElement('button');\n\n        remove.type =\n          'button';\n\n        remove.className =\n          'remove-map';\n\n        remove.setAttribute(\n          'aria-label',\n          'Remove signal'\n        );\n\n        remove.textContent =\n          '\u00d7';\n\n\n        remove.addEventListener(\n          'click',\n          function(){\n\n            var removed =\n              mapEntries[index];\n\n            mapEntries.splice(index,1);\n\n\n            topSelections =\n              topSelections.filter(\n                function(id){\n\n                  return id !== removed.id;\n\n                }\n              );\n\n\n            renderMap();\n            renderTop3();\n            updateAll();\n\n          }\n        );\n\n\n        card.appendChild(emotion);\n        card.appendChild(main);\n        card.appendChild(sub);\n        card.appendChild(remove);\n\n        mapList.appendChild(card);\n\n      });\n\n    }\n\n\n    \/* Update highlighted mapped zones *\/\n\n    var mappedZones =\n      unique(\n        mapEntries.map(function(entry){\n          return entry.zone;\n        })\n      );\n\n\n    zoneGroups.forEach(function(group){\n\n      group.classList.toggle(\n        'mapped',\n        mappedZones.indexOf(\n          group.getAttribute('data-zone')\n        ) !== -1\n      );\n\n    });\n\n  }\n\n\n\n  \/* =====================================================\n     TOP 3\n  ====================================================== *\/\n\n  function renderTop3(){\n\n    topList.innerHTML = '';\n\n\n    if(!mapEntries.length){\n\n      topList.innerHTML =\n        '<div class=\"empty-map\">Add some body signals first.<\/div>';\n\n      topCount.textContent =\n        '0 of 3 selected';\n\n      return;\n\n    }\n\n\n    mapEntries.forEach(function(entry){\n\n      var label =\n        document.createElement('label');\n\n      label.className =\n        'top-option';\n\n\n      var input =\n        document.createElement('input');\n\n      input.type =\n        'checkbox';\n\n      input.value =\n        entry.id;\n\n      input.checked =\n        topSelections.indexOf(entry.id) !== -1;\n\n\n      input.addEventListener(\n        'change',\n        function(){\n\n          if(input.checked){\n\n            if(topSelections.length >= 3){\n\n              input.checked = false;\n\n              return;\n\n            }\n\n            topSelections.push(entry.id);\n\n          }else{\n\n            topSelections =\n              topSelections.filter(\n                function(id){\n\n                  return id !== entry.id;\n\n                }\n              );\n\n          }\n\n\n          renderTop3();\n          updateAll();\n\n        }\n      );\n\n\n      var box =\n        document.createElement('span');\n\n      box.className =\n        'top-box';\n\n\n      var zone =\n        document.createElement('span');\n\n      zone.className =\n        'top-zone';\n\n      zone.textContent =\n        entry.zoneLabel;\n\n\n      var signal =\n        document.createElement('span');\n\n      signal.className =\n        'top-signal';\n\n      signal.textContent =\n        entry.signal;\n\n\n      box.appendChild(zone);\n      box.appendChild(signal);\n\n      label.appendChild(input);\n      label.appendChild(box);\n\n      topList.appendChild(label);\n\n    });\n\n\n    topCount.textContent =\n      topSelections.length +\n      ' of 3 selected';\n\n  }\n\n\n\n  \/* =====================================================\n     SUMMARY\n  ====================================================== *\/\n\n  function updateSummary(){\n\n    var emotion =\n      getEmotion();\n\n\n    root.querySelector(\n      '#bsm-summary-emotion'\n    ).textContent =\n      emotion || '\u2014';\n\n\n\n    var zoneNames =\n      unique(\n        mapEntries.map(function(entry){\n\n          return entry.zoneLabel;\n\n        })\n      );\n\n\n    root.querySelector(\n      '#bsm-summary-zones'\n    ).textContent =\n      zoneNames.length\n        ? zoneNames.join(', ')\n        : '\u2014';\n\n\n\n    var topEntries =\n      mapEntries.filter(function(entry){\n\n        return topSelections.indexOf(entry.id) !== -1;\n\n      });\n\n\n    root.querySelector(\n      '#bsm-summary-top'\n    ).textContent =\n      topEntries.length\n        ? topEntries\n            .map(function(entry){\n\n              return (\n                entry.signal +\n                ' (' +\n                entry.zoneLabel +\n                ')'\n              );\n\n            })\n            .join('\\n')\n        : '\u2014';\n\n\n\n    root.querySelector(\n      '#bsm-summary-when'\n    ).textContent =\n      whenInput.value.trim() || '\u2014';\n\n\n    root.querySelector(\n      '#bsm-summary-pause'\n    ).textContent =\n      pauseInput.value.trim() || '\u2014';\n\n  }\n\n\n\n  \/* =====================================================\n     PROGRESS\n  ====================================================== *\/\n\n  function updateProgress(){\n\n    var completed = 0;\n\n\n    if(getEmotion()){\n      completed++;\n    }\n\n\n    if(mapEntries.length){\n      completed++;\n    }\n\n\n    if(topSelections.length){\n      completed++;\n    }\n\n\n    if(\n      whenInput.value.trim() ||\n      pauseInput.value.trim()\n    ){\n      completed++;\n    }\n\n\n    root.querySelector(\n      '#bsm-progress-number'\n    ).textContent =\n      completed;\n\n\n    root.querySelector(\n      '#bsm-progress-fill'\n    ).style.width =\n      ((completed \/ 4) * 100) + '%';\n\n  }\n\n\n\n  \/* =====================================================\n     UPDATE\n  ====================================================== *\/\n\n  function updateAll(){\n\n    updateSummary();\n    updateProgress();\n\n  }\n\n\n\n  whenInput.addEventListener(\n    'input',\n    updateAll\n  );\n\n\n  pauseInput.addEventListener(\n    'input',\n    updateAll\n  );\n\n\n\n  \/* =====================================================\n     PRINT\n  ====================================================== *\/\n\n  root\n    .querySelector('#bsm-print')\n    .addEventListener(\n      'click',\n      function(){\n\n        updateAll();\n        window.print();\n\n      }\n    );\n\n\n\n  \/* =====================================================\n     CLEAR\n  ====================================================== *\/\n\n  root\n    .querySelector('#bsm-clear')\n    .addEventListener(\n      'click',\n      function(){\n\n\n        emotionInputs.forEach(function(input){\n\n          input.checked = false;\n\n        });\n\n\n        selectedZone = '';\n        selectedSignal = '';\n\n        mapEntries = [];\n        topSelections = [];\n\n        customSignal.value = '';\n\n        whenInput.value = '';\n        pauseInput.value = '';\n\n\n        zoneGroups.forEach(function(group){\n\n          group.classList.remove(\n            'active',\n            'mapped'\n          );\n\n        });\n\n\n        chipsWrap.innerHTML = '';\n\n        zoneTitle.textContent =\n          'Choose an area';\n\n        zoneHelp.textContent =\n          'Physical signal options will appear here.';\n\n        preview.textContent = '\u2014';\n\n        addButton.disabled = true;\n\n\n        renderMap();\n        renderTop3();\n        updateAll();\n\n\n        root.scrollIntoView({\n          behavior:'smooth',\n          block:'start'\n        });\n\n      }\n    );\n\n\n\n  \/* =====================================================\n     INITIALISE\n  ====================================================== *\/\n\n  renderMap();\n  renderTop3();\n  updateAll();\n\n\n})();\n\n<\/script>\n\n<\/div>\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>M\u00f3dulo 4 \u2022 Atividade 2 O meu mapa de sinais do corpo Relaciona as emo\u00e7\u00f5es com os sinais f\u00edsicos e descobre quais as pistas do corpo que te podem ajudar a perceber mais cedo o que se est\u00e1 a passar. O meu Body Check 0\/4 passos Passo 1 Escolhe uma emo\u00e7\u00e3o para explorar Pensa num [&hellip;]<\/p>\n","protected":false},"author":176376442,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"elearning_container_layout":"tg-site-layout--default","elearning_sidebar_layout":"tg-site-layout--default","elearning_remove_content_margin":false,"elearning_sidebar":"default","elearning_transparent_header":"customizer","elearning_logo":0,"elearning_header_style":"default","elearning_menu_item_color":"","elearning_menu_item_hover_color":"","elearning_menu_item_active_color":"","elearning_menu_item_active_style":"","elearning_page_header":true,"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_seo_schema_type":"","_wpcom_ai_launchpad_about_page":false,"_wpcom_ai_launchpad_gallery_page":false,"_wpcom_ai_launchpad_contact_page":false,"_wpcom_ai_launchpad_events_page":false,"_wpcom_ai_launchpad_video_page":false,"_wpcom_ai_launchpad_portfolio_piece":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"footnotes":""},"class_list":["post-6626","page","type-page","status-publish","hentry"],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/PhfHCT-1IS","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/pages\/6626","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/users\/176376442"}],"replies":[{"embeddable":true,"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/comments?post=6626"}],"version-history":[{"count":1,"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/pages\/6626\/revisions"}],"predecessor-version":[{"id":6627,"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/pages\/6626\/revisions\/6627"}],"wp:attachment":[{"href":"https:\/\/erasmuslife4you.com\/pt\/wp-json\/wp\/v2\/media?parent=6626"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}