{"id":3383,"date":"2026-06-04T17:35:07","date_gmt":"2026-06-04T17:35:07","guid":{"rendered":"https:\/\/agenciavitena.com\/?page_id=3383"},"modified":"2026-06-04T17:35:47","modified_gmt":"2026-06-04T17:35:47","slug":"teste-atila","status":"publish","type":"page","link":"https:\/\/agenciavitena.com\/index.php\/teste-atila\/","title":{"rendered":"Teste &#8211; \u00c1tila"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3383\" class=\"elementor elementor-3383\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fd089f5 e-flex e-con-boxed e-con e-parent\" data-id=\"fd089f5\" 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-1370069 elementor-widget elementor-widget-html\" data-id=\"1370069\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\n<!DOCTYPE html>\n<html lang=\"pt-BR\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>AEP Sistema \u2014 NR 17 \u00b7 NR 01 \u00b7 eSocial<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Instrument+Sans:ital,wdth,wght@0,75..100,400..700;1,75..100,400..700&display=swap\" rel=\"stylesheet\">\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n<style>\n:root {\n  \/* \u2500\u2500 Vitena violet palette \u2500\u2500 *\/\n  --primary:        #4c4496;   \/* base brand *\/\n  --primary-dark:   #352f6a;   \/* hover \/ pressed *\/\n  --primary-deep:   #211d42;   \/* sidebar bg *\/\n  --primary-mid:    #6a62b8;   \/* links \/ accents *\/\n  --primary-light:  #eeedf8;   \/* light tint bg *\/\n  --primary-soft:   #d8d6f0;   \/* light tint border *\/\n  --accent:         #5850aa;   \/* interactive accent *\/\n\n  \/* \u2500\u2500 semantic \u2500\u2500 *\/\n  --success-bg:     #EAF3DE;\n  --success-text:   #3B6D11;\n  --success-border: #C0DD97;\n  --warn-bg:        #FAEEDA;\n  --warn-text:      #854F0B;\n  --warn-border:    #FAC775;\n  --danger-bg:      #FCEBEB;\n  --danger-text:    #A32D2D;\n  --danger-border:  #F7C1C1;\n  --alert-bg:       #FAECE7;\n  --alert-text:     #993C1D;\n  --alert-border:   #F5C4B3;\n\n  \/* \u2500\u2500 neutrals \u2500\u2500 *\/\n  --gray-50:  #F8F7FB;\n  --gray-100: #F0EFF8;\n  --gray-200: #E0DFF0;\n  --gray-300: #C4C2DC;\n  --gray-500: #6D6B8A;\n  --gray-700: #3A3858;\n  --gray-900: #16142E;\n  --white:    #ffffff;\n\n  \/* \u2500\u2500 shape \u2500\u2500 *\/\n  --radius-sm: 6px;\n  --radius-md: 8px;\n  --radius-lg: 12px;\n  --shadow-sm: 0 1px 3px rgba(76,68,150,0.10);\n  --shadow-md: 0 4px 16px rgba(76,68,150,0.14);\n}\n*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\nhtml { font-size: 14px; }\nbody {\n  font-family: 'Instrument Sans', sans-serif;\n  letter-spacing: -0.01em;\n  background: #ECEAF5;\n  color: var(--gray-900);\n  min-height: 100vh;\n  padding-top: 28px;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   LAYOUT\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.app-shell { display: flex; min-height: 100vh; }\n.sidebar {\n  width: 240px;\n  flex-shrink: 0;\n  background: var(--primary-deep);\n  display: flex;\n  flex-direction: column;\n  position: fixed;\n  top: 28px; left: 0; bottom: 0;\n  z-index: 100;\n}\n.sidebar-brand {\n  padding: 20px 20px 16px;\n  border-bottom: 1px solid rgba(255,255,255,0.1);\n}\n.brand-logo {\n  display: flex; align-items: center; gap: 10px;\n}\n.brand-icon-wrap {\n  width: 34px; height: 34px;\n  background: rgba(255,255,255,0.15);\n  border-radius: var(--radius-md);\n  display: flex; align-items: center; justify-content: center;\n}\n.brand-icon-wrap svg { width: 18px; height: 18px; stroke: #fff; fill: none; stroke-width: 2; }\n.brand-text { line-height: 1.2; }\n.brand-name { font-size: 15px; font-weight: 600; color: #fff; letter-spacing: -0.02em; }\n.brand-sub { font-size: 10px; color: rgba(255,255,255,0.5); letter-spacing: 0.05em; text-transform: uppercase; }\n.sidebar-steps { padding: 16px 12px; flex: 1; }\n.step-item {\n  display: flex; align-items: center; gap: 10px;\n  padding: 8px 10px;\n  border-radius: var(--radius-md);\n  cursor: pointer;\n  margin-bottom: 2px;\n  transition: background 0.15s;\n  position: relative;\n}\n.step-item:not(:last-child)::after {\n  content: '';\n  position: absolute;\n  left: 21px; top: 100%;\n  width: 1px; height: 2px;\n  background: rgba(255,255,255,0.15);\n}\n.step-item:hover { background: rgba(255,255,255,0.08); }\n.step-item.active { background: rgba(255,255,255,0.15); }\n.step-item.done { opacity: 0.7; }\n.step-num {\n  width: 24px; height: 24px;\n  border-radius: 50%;\n  border: 1.5px solid rgba(255,255,255,0.3);\n  display: flex; align-items: center; justify-content: center;\n  font-size: 11px; font-weight: 600; color: rgba(255,255,255,0.7);\n  flex-shrink: 0;\n  transition: all 0.15s;\n}\n.step-item.active .step-num { background: #fff; border-color: #fff; color: var(--primary-deep); }\n.step-item.done .step-num { background: var(--success-bg); border-color: var(--success-border); color: var(--success-text); }\n.step-label { font-size: 12px; color: rgba(255,255,255,0.7); font-weight: 500; }\n.step-item.active .step-label { color: #fff; }\n.sidebar-footer {\n  padding: 16px;\n  border-top: 1px solid rgba(255,255,255,0.1);\n  font-size: 11px;\n  color: rgba(255,255,255,0.4);\n  text-align: center;\n}\n\n.main-content {\n  margin-left: 240px;\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n}\n.topbar {\n  background: var(--white);\n  border-bottom: 1px solid var(--gray-200);\n  padding: 0 32px;\n  height: 56px;\n  display: flex; align-items: center; justify-content: space-between;\n  position: sticky; top: 28px; z-index: 50;\n}\n.topbar-title { font-size: 15px; font-weight: 600; color: var(--gray-900); letter-spacing: -0.02em; }\n.topbar-sub { font-size: 12px; color: var(--gray-500); }\n.topbar-right { display: flex; align-items: center; gap: 8px; }\n.topbar-badge {\n  font-size: 11px; font-weight: 500;\n  background: var(--primary-light);\n  color: var(--accent);\n  padding: 3px 8px;\n  border-radius: 999px;\n  border: 1px solid var(--primary-soft);\n}\n.page-body { padding: 28px 32px; flex: 1; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREENS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.screen { display: none; }\n.screen.active { display: block; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   CARDS \/ SECTIONS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.card {\n  background: var(--white);\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-lg);\n  padding: 20px 24px;\n  margin-bottom: 16px;\n  box-shadow: var(--shadow-sm);\n}\n.section-header {\n  display: flex; align-items: center; gap: 8px;\n  margin-bottom: 18px;\n  padding-bottom: 12px;\n  border-bottom: 1px solid var(--gray-100);\n}\n.section-header svg { width: 16px; height: 16px; stroke: var(--primary); fill: none; stroke-width: 2; flex-shrink: 0; }\n.section-title {\n  font-size: 11px; font-weight: 600;\n  text-transform: uppercase; letter-spacing: 0.07em;\n  color: var(--gray-500);\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   FORM ELEMENTS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.form-grid { display: grid; gap: 14px; }\n.col2 { grid-template-columns: 1fr 1fr; }\n.col3 { grid-template-columns: 1fr 1fr 1fr; }\n.col4 { grid-template-columns: 1fr 1fr 1fr 1fr; }\n.span2 { grid-column: span 2; }\n.span3 { grid-column: span 3; }\n.span-all { grid-column: 1 \/ -1; }\n.field { display: flex; flex-direction: column; gap: 5px; }\n.field label {\n  font-size: 12px; font-weight: 600;\n  color: var(--gray-700);\n  letter-spacing: -0.01em;\n}\n.field input, .field select, .field textarea {\n  font-family: 'Instrument Sans', sans-serif;\n  font-size: 13px;\n  letter-spacing: -0.01em;\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-md);\n  padding: 8px 11px;\n  background: var(--white);\n  color: var(--gray-900);\n  transition: border-color 0.15s, box-shadow 0.15s;\n  outline: none;\n  height: 36px;\n}\n.field textarea { height: auto; resize: vertical; min-height: 72px; }\n.field input:focus, .field select:focus, .field textarea:focus {\n  border-color: var(--primary);\n  box-shadow: 0 0 0 3px rgba(76,68,150,0.12);\n}\n.field .hint { font-size: 11px; color: var(--gray-500); }\n.divider { height: 1px; background: var(--gray-100); margin: 16px 0; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   PILLS \/ BADGES\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.pill-group { display: flex; gap: 6px; flex-wrap: wrap; }\n.pill {\n  display: inline-flex; align-items: center; gap: 5px;\n  padding: 5px 11px;\n  border: 1px solid var(--gray-200);\n  border-radius: 999px;\n  font-size: 12px; font-weight: 500;\n  color: var(--gray-500);\n  cursor: pointer;\n  user-select: none;\n  transition: all 0.15s;\n  background: var(--white);\n}\n.pill svg { width: 13px; height: 13px; stroke: currentColor; fill: none; stroke-width: 2; }\n.pill:hover { border-color: var(--primary-soft); color: var(--accent); background: var(--primary-light); }\n.pill.on { background: var(--primary); border-color: var(--primary); color: #fff; }\n.pill.on svg { stroke: #fff; }\n\n.badge {\n  display: inline-block;\n  font-size: 11px; font-weight: 600;\n  padding: 2px 8px;\n  border-radius: 4px;\n  letter-spacing: 0.02em;\n}\n.badge-gr1 { background: var(--success-bg); color: var(--success-text); }\n.badge-gr2 { background: var(--warn-bg); color: var(--warn-text); }\n.badge-gr3 { background: var(--alert-bg); color: var(--alert-text); }\n.badge-gr4 { background: var(--danger-bg); color: var(--danger-text); }\n.badge-cat0 { background: var(--gray-100); color: var(--gray-700); }\n.badge-cat1 { background: var(--success-bg); color: var(--success-text); }\n.badge-cat2 { background: var(--warn-bg); color: var(--warn-text); }\n.badge-cat3 { background: var(--alert-bg); color: var(--alert-text); }\n.badge-cat4 { background: var(--danger-bg); color: var(--danger-text); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   GHE BLOCKS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.ghe-block {\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-lg);\n  overflow: hidden;\n  margin-bottom: 12px;\n}\n.ghe-block-head {\n  display: flex; align-items: center; justify-content: space-between;\n  background: var(--gray-50);\n  padding: 10px 16px;\n  border-bottom: 1px solid var(--gray-200);\n}\n.ghe-block-label { font-size: 13px; font-weight: 600; color: var(--primary); letter-spacing: -0.01em; }\n.ghe-block-body { padding: 16px; }\n.worker-row { display: flex; gap: 8px; margin-bottom: 6px; align-items: center; }\n.worker-row input { font-family: 'Instrument Sans', sans-serif; font-size: 12px; border: 1px solid var(--gray-200); border-radius: var(--radius-sm); padding: 5px 8px; flex: 1; height: 30px; color: var(--gray-900); }\n.worker-row input:focus { outline: none; border-color: var(--primary); }\n.worker-row input.w-cargo { width: 130px; flex: none; }\n.worker-row input.w-mat { width: 90px; flex: none; }\n.btn-icon {\n  width: 28px; height: 28px;\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-sm);\n  background: var(--white);\n  display: flex; align-items: center; justify-content: center;\n  cursor: pointer;\n  color: var(--gray-500);\n  flex-shrink: 0;\n  transition: all 0.15s;\n}\n.btn-icon svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }\n.btn-icon:hover { border-color: var(--danger-border); color: var(--danger-text); background: var(--danger-bg); }\n.btn-add-worker {\n  display: inline-flex; align-items: center; gap: 4px;\n  font-size: 11px; font-weight: 500;\n  color: var(--accent);\n  background: none; border: none; cursor: pointer;\n  padding: 4px 2px;\n  font-family: 'Instrument Sans', sans-serif;\n}\n.btn-add-worker svg { width: 12px; height: 12px; stroke: currentColor; fill: none; stroke-width: 2; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   BUTTONS\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.btn {\n  display: inline-flex; align-items: center; gap: 6px;\n  font-family: 'Instrument Sans', sans-serif;\n  font-size: 13px; font-weight: 600;\n  letter-spacing: -0.01em;\n  padding: 9px 18px;\n  border-radius: var(--radius-md);\n  cursor: pointer;\n  transition: all 0.15s;\n  border: 1px solid transparent;\n}\n.btn svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; }\n.btn-primary { background: var(--primary); color: #fff; }\n.btn-primary:hover { background: var(--primary-dark); }\n.btn-secondary { background: var(--white); color: var(--gray-700); border-color: var(--gray-200); }\n.btn-secondary:hover { background: var(--gray-50); border-color: var(--gray-300); }\n.btn-ghost { background: none; color: var(--accent); border-color: var(--primary-soft); }\n.btn-ghost:hover { background: var(--primary-light); }\n.btn-success { background: #2F7D32; color: #fff; }\n.btn-success:hover { background: #1B5E20; }\n.btn-sm { padding: 6px 12px; font-size: 12px; }\n.btn-add-ghe {\n  display: inline-flex; align-items: center; gap: 5px;\n  font-size: 12px; font-weight: 600;\n  color: var(--accent);\n  background: var(--primary-light);\n  border: 1px solid var(--primary-soft);\n  border-radius: var(--radius-md);\n  padding: 6px 12px;\n  cursor: pointer;\n  font-family: 'Instrument Sans', sans-serif;\n  transition: all 0.15s;\n}\n.btn-add-ghe:hover { background: var(--primary-soft); }\n.btn-add-ghe svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }\n.btn-remove {\n  background: none; border: none; cursor: pointer;\n  color: var(--gray-500); padding: 4px;\n  display: flex; align-items: center;\n  border-radius: var(--radius-sm);\n  transition: all 0.15s;\n}\n.btn-remove svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; }\n.btn-remove:hover { color: var(--danger-text); background: var(--danger-bg); }\n\n.bottom-bar {\n  display: flex; align-items: center; justify-content: space-between;\n  padding: 16px 0 0;\n  margin-top: 8px;\n  border-top: 1px solid var(--gray-200);\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN 2 \u2014 CHECKLIST\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.checklist-group { margin-bottom: 20px; }\n.checklist-group-title {\n  display: flex; align-items: center; gap: 8px;\n  font-size: 13px; font-weight: 600;\n  color: var(--primary);\n  padding: 10px 14px;\n  background: var(--primary-light);\n  border: 1px solid var(--primary-soft);\n  border-radius: var(--radius-md);\n  margin-bottom: 2px;\n  letter-spacing: -0.01em;\n}\n.checklist-group-title svg { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; }\n.checklist-item {\n  display: grid;\n  grid-template-columns: 32px 1fr 110px 110px 120px;\n  gap: 8px;\n  align-items: center;\n  padding: 8px 14px;\n  border: 1px solid var(--gray-200);\n  border-top: none;\n  background: var(--white);\n  transition: background 0.1s;\n}\n.checklist-item:last-child { border-radius: 0 0 var(--radius-md) var(--radius-md); }\n.checklist-item:hover { background: var(--gray-50); }\n.checklist-item.has-risk { background: #F5F4FB; }\n.checklist-item .item-toggle {\n  width: 20px; height: 20px;\n  border: 1.5px solid var(--gray-300);\n  border-radius: 4px;\n  cursor: pointer;\n  display: flex; align-items: center; justify-content: center;\n  flex-shrink: 0;\n  transition: all 0.15s;\n  background: var(--white);\n}\n.checklist-item .item-toggle.checked {\n  background: var(--primary);\n  border-color: var(--primary);\n}\n.checklist-item .item-toggle.checked::after {\n  content: '';\n  display: block;\n  width: 10px; height: 10px;\n  background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\");\n  background-size: contain; background-repeat: no-repeat;\n}\n.item-text { font-size: 12px; color: var(--gray-700); line-height: 1.4; }\n.item-norm { font-size: 10px; color: var(--gray-500); }\n.item-select {\n  font-family: 'Instrument Sans', sans-serif;\n  font-size: 12px;\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-sm);\n  padding: 4px 6px;\n  background: var(--white);\n  color: var(--gray-700);\n  height: 28px;\n  outline: none;\n  width: 100%;\n}\n.item-select:focus { border-color: var(--primary); }\n.item-select:disabled { background: var(--gray-50); color: var(--gray-300); cursor: not-allowed; }\n.aiha-result {\n  font-size: 11px; font-weight: 600;\n  text-align: center;\n  padding: 3px 6px;\n  border-radius: 4px;\n  white-space: nowrap;\n}\n.checklist-header {\n  display: grid;\n  grid-template-columns: 32px 1fr 110px 110px 120px;\n  gap: 8px;\n  padding: 6px 14px;\n  background: var(--gray-50);\n  border: 1px solid var(--gray-200);\n  border-bottom: none;\n  border-radius: var(--radius-md) var(--radius-md) 0 0;\n  font-size: 10px; font-weight: 600; color: var(--gray-500);\n  text-transform: uppercase; letter-spacing: 0.06em;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN 3 \u2014 DASHBOARD\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 20px; }\n.kpi-card {\n  background: var(--white);\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-lg);\n  padding: 16px 18px;\n  box-shadow: var(--shadow-sm);\n}\n.kpi-label { font-size: 11px; font-weight: 600; color: var(--gray-500); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 6px; }\n.kpi-value { font-size: 28px; font-weight: 700; letter-spacing: -0.03em; color: var(--gray-900); line-height: 1; }\n.kpi-sub { font-size: 11px; color: var(--gray-500); margin-top: 4px; }\n.kpi-card.danger .kpi-value { color: var(--danger-text); }\n.kpi-card.warn .kpi-value { color: var(--warn-text); }\n.kpi-card.ok .kpi-value { color: var(--success-text); }\n.charts-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }\n.chart-card { background: var(--white); border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 20px; box-shadow: var(--shadow-sm); }\n.chart-title { font-size: 13px; font-weight: 600; color: var(--gray-700); margin-bottom: 16px; letter-spacing: -0.01em; }\n.chart-wrap { position: relative; height: 220px; }\n.risk-table { width: 100%; border-collapse: collapse; font-size: 12px; }\n.risk-table th { text-align: left; padding: 8px 12px; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gray-500); border-bottom: 1px solid var(--gray-200); }\n.risk-table td { padding: 9px 12px; border-bottom: 1px solid var(--gray-100); color: var(--gray-700); vertical-align: middle; }\n.risk-table tr:last-child td { border-bottom: none; }\n.risk-bar { height: 6px; background: var(--gray-100); border-radius: 3px; overflow: hidden; width: 100%; }\n.risk-bar-fill { height: 100%; border-radius: 3px; transition: width 0.5s ease; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN 4 \u2014 INVENT\u00c1RIO\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.inv-table-wrap { overflow-x: auto; margin: 0 -4px; }\n.inv-table { width: 100%; border-collapse: collapse; font-size: 12px; min-width: 900px; }\n.inv-table th {\n  text-align: left; padding: 10px 12px;\n  font-size: 10px; font-weight: 600;\n  text-transform: uppercase; letter-spacing: 0.06em;\n  color: #fff;\n  background: var(--primary);\n  position: sticky; top: 0;\n  white-space: nowrap;\n}\n.inv-table td { padding: 10px 12px; border-bottom: 1px solid var(--gray-100); color: var(--gray-700); vertical-align: top; line-height: 1.5; }\n.inv-table tr:hover td { background: var(--gray-50); }\n.inv-table tr:last-child td { border-bottom: none; }\n.esocial-code {\n  font-family: 'Courier New', monospace;\n  font-size: 11px; font-weight: 700;\n  background: var(--primary-light);\n  color: var(--primary);\n  padding: 2px 6px;\n  border-radius: 4px;\n  white-space: nowrap;\n}\n.status-badge {\n  display: inline-flex; align-items: center; gap: 4px;\n  font-size: 10px; font-weight: 600;\n  padding: 3px 7px;\n  border-radius: 999px;\n  white-space: nowrap;\n}\n.status-ok { background: var(--success-bg); color: var(--success-text); }\n.status-warn { background: var(--warn-bg); color: var(--warn-text); }\n.status-alert { background: var(--alert-bg); color: var(--alert-text); }\n.status-danger { background: var(--danger-bg); color: var(--danger-text); }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   SCREEN 5 \u2014 PLANO DE A\u00c7\u00c3O\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.action-card {\n  background: var(--white);\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-lg);\n  margin-bottom: 14px;\n  overflow: hidden;\n  box-shadow: var(--shadow-sm);\n}\n.action-head {\n  display: flex; align-items: center; gap: 10px;\n  padding: 12px 18px;\n  background: var(--gray-50);\n  border-bottom: 1px solid var(--gray-200);\n}\n.action-num {\n  width: 26px; height: 26px;\n  background: var(--primary);\n  color: #fff;\n  border-radius: 50%;\n  display: flex; align-items: center; justify-content: center;\n  font-size: 12px; font-weight: 700; flex-shrink: 0;\n}\n.action-title { font-size: 13px; font-weight: 600; color: var(--gray-900); flex: 1; letter-spacing: -0.01em; }\n.action-body { padding: 16px 18px; }\n.action-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; margin-bottom: 14px; }\n.action-field { display: flex; flex-direction: column; gap: 4px; }\n.action-field label { font-size: 11px; font-weight: 600; color: var(--gray-500); text-transform: uppercase; letter-spacing: 0.05em; }\n.action-field input, .action-field select, .action-field textarea {\n  font-family: 'Instrument Sans', sans-serif;\n  font-size: 12px;\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-sm);\n  padding: 6px 9px;\n  background: var(--white);\n  color: var(--gray-900);\n  height: 32px;\n  outline: none;\n}\n.action-field textarea { height: auto; min-height: 56px; resize: vertical; }\n.action-field input:focus, .action-field select:focus, .action-field textarea:focus {\n  border-color: var(--primary);\n}\n.status-select-wrap { position: relative; }\n.status-dot {\n  display: inline-block; width: 8px; height: 8px;\n  border-radius: 50%; margin-right: 5px;\n}\n.sign-block {\n  display: grid; grid-template-columns: 1fr 1fr; gap: 24px;\n  margin-top: 8px;\n}\n.sign-line {\n  border-top: 1px solid var(--gray-300);\n  padding-top: 8px;\n  font-size: 11px; color: var(--gray-500);\n  text-align: center;\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   PDF EXPORT SECTION\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n.export-bar {\n  background: var(--white);\n  border: 1px solid var(--gray-200);\n  border-radius: var(--radius-lg);\n  padding: 20px 24px;\n  display: flex; align-items: center; justify-content: space-between;\n  margin-bottom: 20px;\n  box-shadow: var(--shadow-sm);\n}\n.export-info h3 { font-size: 15px; font-weight: 600; color: var(--gray-900); letter-spacing: -0.02em; }\n.export-info p { font-size: 12px; color: var(--gray-500); margin-top: 2px; }\n.export-actions { display: flex; gap: 8px; }\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   PRINT \/ PDF\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media print {\n  .sidebar, .topbar, .bottom-bar, .export-bar, .no-print, .announce-bar, .progress-bar { display: none !important; }\n  body { padding-top: 0; }\n  .main-content { margin-left: 0; }\n  .page-body { padding: 0; }\n  .screen { display: block !important; }\n  body { background: #fff; font-size: 11px; }\n  .card { box-shadow: none; border: 1px solid #ddd; page-break-inside: avoid; }\n  .kpi-grid { grid-template-columns: repeat(4,1fr); }\n  .charts-row { grid-template-columns: 1fr 1fr; }\n}\n\n\/* \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n   RESPONSIVE\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 *\/\n@media (max-width: 900px) {\n  .sidebar { width: 56px; }\n  .step-label, .brand-text, .sidebar-footer { display: none; }\n  .main-content { margin-left: 56px; }\n  .page-body { padding: 20px 16px; }\n  .topbar { padding: 0 16px; }\n  .kpi-grid { grid-template-columns: repeat(2,1fr); }\n  .charts-row { grid-template-columns: 1fr; }\n  .col3, .col4 { grid-template-columns: 1fr 1fr; }\n  .action-grid { grid-template-columns: 1fr 1fr; }\n}\n@media (max-width: 640px) {\n  .col2, .col3, .col4 { grid-template-columns: 1fr; }\n  .checklist-item { grid-template-columns: 24px 1fr; }\n  .checklist-item .item-select, .checklist-item .aiha-result { display: none; }\n  .kpi-grid { grid-template-columns: 1fr 1fr; }\n}\n\n\/* cnpj mask *\/\ninput.cnpj-mask {}\n\n\/* tooltip *\/\n.tooltip { position: relative; }\n.tooltip:hover::after {\n  content: attr(data-tip);\n  position: absolute;\n  bottom: calc(100% + 6px);\n  left: 50%; transform: translateX(-50%);\n  background: var(--gray-900);\n  color: #fff;\n  font-size: 11px;\n  padding: 4px 8px;\n  border-radius: 4px;\n  white-space: nowrap;\n  pointer-events: none;\n  z-index: 999;\n}\n\n\/* confirm modal *\/\n.modal-overlay {\n  display: none;\n  position: fixed; inset: 0;\n  background: rgba(0,0,0,0.4);\n  z-index: 999;\n  align-items: center; justify-content: center;\n}\n.modal-overlay.open { display: flex; }\n.modal {\n  background: var(--white);\n  border-radius: var(--radius-lg);\n  padding: 24px;\n  max-width: 400px; width: 90%;\n  box-shadow: var(--shadow-md);\n}\n.modal h3 { font-size: 16px; font-weight: 600; margin-bottom: 10px; }\n.modal p { font-size: 13px; color: var(--gray-500); margin-bottom: 20px; line-height: 1.5; }\n.modal-actions { display: flex; gap: 8px; justify-content: flex-end; }\n\n\/* announcement bar *\/\n.announce-bar {\n  position: fixed; top: 0; left: 0; right: 0;\n  height: 28px;\n  background: #4c4496;\n  display: flex; align-items: center; justify-content: center;\n  gap: 16px;\n  z-index: 1000;\n  user-select: none;\n}\n.announce-brand {\n  font-size: 11px; font-weight: 700;\n  color: rgba(255,255,255,0.95);\n  letter-spacing: 0.04em;\n  text-transform: uppercase;\n}\n.announce-sep {\n  width: 1px; height: 12px;\n  background: rgba(255,255,255,0.25);\n  flex-shrink: 0;\n}\n.announce-text {\n  font-size: 11px;\n  color: rgba(255,255,255,0.75);\n  letter-spacing: 0.01em;\n}\n.announce-badge {\n  font-size: 10px; font-weight: 600;\n  background: rgba(255,255,255,0.15);\n  color: rgba(255,255,255,0.9);\n  border: 1px solid rgba(255,255,255,0.2);\n  padding: 1px 7px;\n  border-radius: 999px;\n  letter-spacing: 0.03em;\n  white-space: nowrap;\n}\n\n\/* progress bar on top \u2014 below announce bar *\/\n.progress-bar {\n  position: fixed; top: 28px; left: 240px; right: 0;\n  height: 3px;\n  background: var(--gray-200);\n  z-index: 999;\n}\n.progress-fill {\n  height: 100%;\n  background: linear-gradient(90deg, #4c4496, #7B6FD4);\n  transition: width 0.4s ease;\n}\n<\/style>\n<\/head>\n<body>\n\n<div class=\"announce-bar\">\n  <span class=\"announce-brand\">Vitena | Comunica\u00e7\u00e3o Digital<\/span>\n  <div class=\"announce-sep\"><\/div>\n  <span class=\"announce-text\">Software em teste comercial<\/span>\n  <div class=\"announce-sep\"><\/div>\n  <span class=\"announce-badge\">Autorizado \u00b7 Dr. Nicolas Fischer \u2014 SBC 56785 \/ RS<\/span>\n<\/div>\n\n<div class=\"progress-bar\"><div class=\"progress-fill\" id=\"progress-fill\" style=\"width:20%\"><\/div><\/div>\n\n<div class=\"app-shell\">\n\n<!-- SIDEBAR -->\n<aside class=\"sidebar\">\n  <div class=\"sidebar-brand\">\n    <div class=\"brand-logo\">\n      <div class=\"brand-icon-wrap\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M12 2L3 7v5c0 5.25 3.75 10.15 9 11.35C17.25 22.15 21 17.25 21 12V7L12 2z\"\/><\/svg>\n      <\/div>\n      <div class=\"brand-text\">\n        <div class=\"brand-name\">AEP Sistema<\/div>\n        <div class=\"brand-sub\">NR 17 \u00b7 NR 01 \u00b7 eSocial<\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n  <nav class=\"sidebar-steps\" id=\"sidebar-nav\">\n    <div class=\"step-item active\" data-screen=\"1\" onclick=\"goTo(1)\">\n      <div class=\"step-num\">1<\/div>\n      <span class=\"step-label\">Identifica\u00e7\u00e3o<\/span>\n    <\/div>\n    <div class=\"step-item\" data-screen=\"2\" onclick=\"goTo(2)\">\n      <div class=\"step-num\">2<\/div>\n      <span class=\"step-label\">Checklist AEP<\/span>\n    <\/div>\n    <div class=\"step-item\" data-screen=\"3\" onclick=\"goTo(3)\">\n      <div class=\"step-num\">3<\/div>\n      <span class=\"step-label\">Dashboard<\/span>\n    <\/div>\n    <div class=\"step-item\" data-screen=\"4\" onclick=\"goTo(4)\">\n      <div class=\"step-num\">4<\/div>\n      <span class=\"step-label\">Invent\u00e1rio PGR<\/span>\n    <\/div>\n    <div class=\"step-item\" data-screen=\"5\" onclick=\"goTo(5)\">\n      <div class=\"step-num\">5<\/div>\n      <span class=\"step-label\">Plano de A\u00e7\u00e3o<\/span>\n    <\/div>\n  <\/nav>\n  <div class=\"sidebar-footer\">v2.1 \u00b7 NR 17\/2021 \u00b7 NR 01\/2022<\/div>\n<\/aside>\n\n<!-- MAIN -->\n<div class=\"main-content\">\n  <header class=\"topbar\">\n    <div>\n      <div class=\"topbar-title\" id=\"topbar-title\">Identifica\u00e7\u00e3o da Empresa<\/div>\n      <div class=\"topbar-sub\" id=\"topbar-sub\">Passo 1 de 5 \u2014 Dados cadastrais e GHE<\/div>\n    <\/div>\n    <div class=\"topbar-right\">\n      <span class=\"topbar-badge\" id=\"company-name-badge\">Nova avalia\u00e7\u00e3o<\/span>\n      <button class=\"btn btn-sm btn-secondary no-print\" onclick=\"window.print()\">\n        <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 6 2 18 2 18 9\"\/><path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"\/><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"\/><\/svg>\n        Imprimir\n      <\/button>\n    <\/div>\n  <\/header>\n\n  <div class=\"page-body\">\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 1 \u2014 IDENTIFICA\u00c7\u00c3O\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"screen active\" id=\"screen-1\">\n  <div class=\"card\">\n    <div class=\"section-header\">\n      <svg viewBox=\"0 0 24 24\"><path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/><\/svg>\n      <span class=\"section-title\">Dados cadastrais<\/span>\n    <\/div>\n    <div class=\"form-grid col2\">\n      <div class=\"field span-all\">\n        <label>Raz\u00e3o social *<\/label>\n        <input type=\"text\" id=\"razao-social\" placeholder=\"Nome completo da empresa\" oninput=\"updateBadge()\">\n      <\/div>\n      <div class=\"field\">\n        <label>CNPJ *<\/label>\n        <input type=\"text\" id=\"cnpj\" placeholder=\"00.000.000\/0001-00\" maxlength=\"18\" oninput=\"maskCNPJ(this)\">\n      <\/div>\n      <div class=\"field\">\n        <label>CNAE principal *<\/label>\n        <input type=\"text\" id=\"cnae\" placeholder=\"Ex: 41.20-4-00\">\n      <\/div>\n      <div class=\"field\">\n        <label>Grau de risco<\/label>\n        <select id=\"grau-risco\" onchange=\"updateGR()\">\n          <option value=\"\">Selecione<\/option>\n          <option value=\"1\">Grau 1<\/option>\n          <option value=\"2\">Grau 2<\/option>\n          <option value=\"3\">Grau 3<\/option>\n          <option value=\"4\">Grau 4<\/option>\n        <\/select>\n        <span id=\"gr-badge\"><\/span>\n      <\/div>\n      <div class=\"field\">\n        <label>Endere\u00e7o<\/label>\n        <input type=\"text\" id=\"endereco\" placeholder=\"Logradouro, n\u00famero, bairro \u2014 Cidade\/UF\">\n      <\/div>\n      <div class=\"field\">\n        <label>Telefone \/ e-mail<\/label>\n        <input type=\"text\" id=\"contato\" placeholder=\"(00) 00000-0000 \u00b7 email@empresa.com\">\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"card\">\n    <div class=\"section-header\">\n      <svg viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg>\n      <span class=\"section-title\">Per\u00edodo e respons\u00e1vel t\u00e9cnico<\/span>\n    <\/div>\n    <div class=\"form-grid col4\">\n      <div class=\"field\">\n        <label>Data in\u00edcio<\/label>\n        <input type=\"date\" id=\"data-inicio\">\n      <\/div>\n      <div class=\"field\">\n        <label>Data conclus\u00e3o<\/label>\n        <input type=\"date\" id=\"data-fim\">\n      <\/div>\n      <div class=\"field\">\n        <label>Vers\u00e3o<\/label>\n        <input type=\"text\" id=\"versao\" value=\"1.0\" placeholder=\"Ex: 1.0\">\n      <\/div>\n      <div class=\"field\">\n        <label>Respons\u00e1vel t\u00e9cnico<\/label>\n        <input type=\"text\" id=\"responsavel\" placeholder=\"Nome do profissional\">\n      <\/div>\n      <div class=\"field span2\">\n        <label>Registro profissional<\/label>\n        <input type=\"text\" id=\"registro\" placeholder=\"MTE \/ CREA \/ CRF + n\u00famero\">\n      <\/div>\n      <div class=\"field span2\">\n        <label>M\u00f3dulos especiais ativos<\/label>\n        <div class=\"pill-group\" id=\"modulos-group\">\n          <label class=\"pill\" id=\"pill-checkout\">\n            <input type=\"checkbox\" id=\"mod-checkout\" value=\"checkout\" onchange=\"togglePill('pill-checkout',this)\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"\/><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\/><path d=\"M16 10a4 4 0 0 1-8 0\"\/><\/svg>\n            Checkout \u2014 Anexo I\n          <\/label>\n          <label class=\"pill\" id=\"pill-tele\">\n            <input type=\"checkbox\" id=\"mod-tele\" value=\"telemarketing\" onchange=\"togglePill('pill-tele',this)\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07A19.5 19.5 0 0 1 4.15 13a19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 3.06 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L7.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 21 16.92z\"\/><\/svg>\n            Teleatendimento \u2014 Anexo II\n          <\/label>\n          <label class=\"pill\" id=\"pill-carga\">\n            <input type=\"checkbox\" id=\"mod-carga\" value=\"carga\" onchange=\"togglePill('pill-carga',this)\">\n            <svg viewBox=\"0 0 24 24\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg>\n            Transporte de cargas\n          <\/label>\n        <\/div>\n        <span class=\"hint\">Ativa m\u00f3dulos espec\u00edficos no checklist<\/span>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"card\">\n    <div class=\"section-header\" style=\"justify-content:space-between\">\n      <div style=\"display:flex;align-items:center;gap:8px;\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"\/><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"\/><\/svg>\n        <span class=\"section-title\">Grupos homog\u00eaneos de exposi\u00e7\u00e3o (GHE)<\/span>\n      <\/div>\n      <button class=\"btn-add-ghe\" onclick=\"addGHE()\">\n        <svg viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"\/><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"\/><\/svg>\n        Adicionar GHE\n      <\/button>\n    <\/div>\n    <div id=\"ghe-container\"><\/div>\n  <\/div>\n\n  <div class=\"bottom-bar\">\n    <button class=\"btn btn-secondary\" disabled>\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n      Voltar\n    <\/button>\n    <button class=\"btn btn-primary\" onclick=\"goTo(2)\">\n      Pr\u00f3ximo: Checklist AEP\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n    <\/button>\n  <\/div>\n<\/div><!-- \/screen-1 -->\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 2 \u2014 CHECKLIST AEP\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"screen\" id=\"screen-2\">\n  <div class=\"card\" style=\"margin-bottom:16px;\">\n    <p style=\"font-size:13px;color:var(--gray-500);line-height:1.6;\">\n      Marque <strong style=\"color:#C53030;\">Sim<\/strong> apenas quando o item representa um <strong>perigo ou inadequa\u00e7\u00e3o<\/strong> no posto avaliado. Para os itens marcados, selecione a <strong>Severidade<\/strong> (impacto potencial \u00e0 sa\u00fade) e a <strong>Exposi\u00e7\u00e3o<\/strong> (frequ\u00eancia na jornada). O sistema calcula automaticamente a categoria de risco pela <strong>Matriz AIHA<\/strong>.\n    <\/p>\n  <\/div>\n\n  <div id=\"checklist-container\"><\/div>\n\n  <div class=\"bottom-bar\">\n    <button class=\"btn btn-secondary\" onclick=\"goTo(1)\">\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n      Voltar\n    <\/button>\n    <button class=\"btn btn-primary\" onclick=\"goTo(3)\">\n      Ver Dashboard\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n    <\/button>\n  <\/div>\n<\/div><!-- \/screen-2 -->\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 3 \u2014 DASHBOARD\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"screen\" id=\"screen-3\">\n  <div class=\"kpi-grid\" id=\"kpi-grid\">\n    <div class=\"kpi-card danger\">\n      <div class=\"kpi-label\">Cr\u00edticos (Cat. 3\u20134)<\/div>\n      <div class=\"kpi-value\" id=\"kpi-critico\">0<\/div>\n      <div class=\"kpi-sub\">a\u00e7\u00e3o imediata<\/div>\n    <\/div>\n    <div class=\"kpi-card warn\">\n      <div class=\"kpi-label\">Moderados (Cat. 2)<\/div>\n      <div class=\"kpi-value\" id=\"kpi-moderado\">0<\/div>\n      <div class=\"kpi-sub\">planejar melhoria<\/div>\n    <\/div>\n    <div class=\"kpi-card ok\">\n      <div class=\"kpi-label\">Aceit\u00e1veis (Cat. 0\u20131)<\/div>\n      <div class=\"kpi-value\" id=\"kpi-aceitavel\">0<\/div>\n      <div class=\"kpi-sub\">monitorar<\/div>\n    <\/div>\n    <div class=\"kpi-card\">\n      <div class=\"kpi-label\">Conformidade geral<\/div>\n      <div class=\"kpi-value\" id=\"kpi-conformidade\">\u2013<\/div>\n      <div class=\"kpi-sub\">itens adequados<\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"charts-row\">\n    <div class=\"chart-card\">\n      <div class=\"chart-title\">Perigos por categoria AIHA<\/div>\n      <div class=\"chart-wrap\"><canvas id=\"chart-aiha\"><\/canvas><\/div>\n    <\/div>\n    <div class=\"chart-card\">\n      <div class=\"chart-title\">Distribui\u00e7\u00e3o por vari\u00e1vel ergon\u00f4mica<\/div>\n      <div class=\"chart-wrap\"><canvas id=\"chart-variavel\"><\/canvas><\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"card\">\n    <div class=\"section-header\">\n      <svg viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><\/svg>\n      <span class=\"section-title\">Resumo de criticidade por vari\u00e1vel<\/span>\n    <\/div>\n    <table class=\"risk-table\" id=\"risk-summary-table\">\n      <thead>\n        <tr>\n          <th>Vari\u00e1vel ergon\u00f4mica<\/th>\n          <th>Total itens<\/th>\n          <th>Inadequa\u00e7\u00f5es<\/th>\n          <th>Cr\u00edticos<\/th>\n          <th>N\u00edvel<\/th>\n          <th>\u00cdndice de risco<\/th>\n        <\/tr>\n      <\/thead>\n      <tbody id=\"risk-table-body\"><\/tbody>\n    <\/table>\n  <\/div>\n\n  <div class=\"bottom-bar\">\n    <button class=\"btn btn-secondary\" onclick=\"goTo(2)\">\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n      Voltar\n    <\/button>\n    <button class=\"btn btn-primary\" onclick=\"goTo(4)\">\n      Gerar Invent\u00e1rio PGR\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n    <\/button>\n  <\/div>\n<\/div><!-- \/screen-3 -->\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 4 \u2014 INVENT\u00c1RIO PGR\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"screen\" id=\"screen-4\">\n  <div class=\"export-bar no-print\">\n    <div class=\"export-info\">\n      <h3>Invent\u00e1rio Ergon\u00f4mico de Riscos<\/h3>\n      <p>Articula\u00e7\u00e3o NR 01 (1.5.3.1.4 e 1.5.3.2.1) \u00b7 Integrado ao PGR \u00b7 Codificado para eSocial Tabela 23<\/p>\n    <\/div>\n    <div class=\"export-actions\">\n      <button class=\"btn btn-secondary btn-sm\" onclick=\"filterInv('all')\">Todos<\/button>\n      <button class=\"btn btn-sm\" style=\"background:var(--alert-bg);color:var(--alert-text);border-color:var(--alert-border);\" onclick=\"filterInv('critico')\">Cr\u00edticos<\/button>\n      <button class=\"btn btn-sm\" style=\"background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border);\" onclick=\"filterInv('moderado')\">Moderados<\/button>\n    <\/div>\n  <\/div>\n\n  <div class=\"card\">\n    <div class=\"inv-table-wrap\">\n      <table class=\"inv-table\">\n        <thead>\n          <tr>\n            <th>C\u00f3d. eSocial<\/th>\n            <th>Processo \/ atividade<\/th>\n            <th>Perigo ergon\u00f4mico<\/th>\n            <th>Fonte geradora<\/th>\n            <th>Trajet\u00f3ria \/ exposi\u00e7\u00e3o<\/th>\n            <th>Poss\u00edveis danos<\/th>\n            <th>Medidas existentes<\/th>\n            <th>EPC \/ EPI<\/th>\n            <th>Matriz AIHA<\/th>\n            <th>Status<\/th>\n          <\/tr>\n        <\/thead>\n        <tbody id=\"inv-table-body\"><\/tbody>\n      <\/table>\n    <\/div>\n  <\/div>\n\n  <div class=\"bottom-bar\">\n    <button class=\"btn btn-secondary\" onclick=\"goTo(3)\">\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n      Voltar\n    <\/button>\n    <button class=\"btn btn-primary\" onclick=\"goTo(5)\">\n      Gerar Plano de A\u00e7\u00e3o\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg>\n    <\/button>\n  <\/div>\n<\/div><!-- \/screen-4 -->\n\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     SCREEN 5 \u2014 PLANO DE A\u00c7\u00c3O + PDF\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<div class=\"screen\" id=\"screen-5\">\n  <div class=\"export-bar no-print\">\n    <div class=\"export-info\">\n      <h3>Plano de A\u00e7\u00e3o Ergon\u00f4mico \u2014 5W2H<\/h3>\n      <p>Diretriz NR 01 subitem 1.5.5.2 \u00b7 Gerado automaticamente a partir dos riscos Cat. 2, 3 e 4<\/p>\n    <\/div>\n    <div class=\"export-actions\">\n      <button class=\"btn btn-success\" onclick=\"window.print()\">\n        <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 6 2 18 2 18 9\"\/><path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"\/><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"\/><\/svg>\n        Imprimir \/ Exportar PDF\n      <\/button>\n    <\/div>\n  <\/div>\n\n  <div id=\"action-cards-container\"><\/div>\n\n  <div class=\"card\" style=\"margin-top:20px;\">\n    <div class=\"section-header\">\n      <svg viewBox=\"0 0 24 24\"><path d=\"M20 14.66V20a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h5.34\"\/><polygon points=\"18 2 22 6 12 16 8 16 8 12 18 2\"\/><\/svg>\n      <span class=\"section-title\">Declara\u00e7\u00e3o de responsabilidade t\u00e9cnica<\/span>\n    <\/div>\n    <p style=\"font-size:12px;color:var(--gray-600);line-height:1.7;margin-bottom:20px;\">\n      Declaramos que a presente An\u00e1lise Ergon\u00f4mica Preliminar (AEP) foi realizada em estrita conformidade com os preceitos legais vigentes estabelecidos pela Norma Regulamentadora n\u00ba 17 (Portaria MTP n\u00ba 423\/2021) e com os crit\u00e9rios de integra\u00e7\u00e3o ao GRO contidos na Norma Regulamentadora n\u00ba 01. As recomenda\u00e7\u00f5es propostas visam a melhoria cont\u00ednua das condi\u00e7\u00f5es de trabalho, o conforto e a preserva\u00e7\u00e3o da integridade f\u00edsica e mental dos trabalhadores.\n    <\/p>\n    <div id=\"data-assinatura\" style=\"font-size:12px;color:var(--gray-500);margin-bottom:20px;\"><\/div>\n    <div class=\"sign-block\">\n      <div class=\"sign-line\">\n        <div id=\"sign-responsavel\" style=\"font-weight:600;font-size:13px;color:var(--gray-900);margin-bottom:4px;\"><\/div>\n        <div id=\"sign-registro\" style=\"color:var(--gray-500);font-size:12px;\"><\/div>\n        Respons\u00e1vel T\u00e9cnico pela AEP\n      <\/div>\n      <div class=\"sign-line\">\n        ___________________________________<br>\n        Representante Legal da Empresa<br>\n        Ci\u00eancia e Aceite\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"bottom-bar\">\n    <button class=\"btn btn-secondary\" onclick=\"goTo(4)\">\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg>\n      Voltar\n    <\/button>\n    <button class=\"btn btn-primary no-print\" onclick=\"window.print()\">\n      <svg viewBox=\"0 0 24 24\"><polyline points=\"6 9 6 2 18 2 18 9\"\/><path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"\/><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"\/><\/svg>\n      Gerar PDF Completo\n    <\/button>\n  <\/div>\n<\/div><!-- \/screen-5 -->\n\n  <\/div><!-- \/page-body -->\n<\/div><!-- \/main-content -->\n<\/div><!-- \/app-shell -->\n\n<!-- \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n     JAVASCRIPT\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550 -->\n<script>\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   STATE\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nlet currentScreen = 1;\nlet gheCount = 0;\nlet checklistData = [];\nlet chartAIHA = null;\nlet chartVariavel = null;\n\nconst SCREEN_TITLES = {\n  1: ['Identifica\u00e7\u00e3o da Empresa', 'Passo 1 de 5 \u2014 Dados cadastrais e GHE'],\n  2: ['Checklist AEP', 'Passo 2 de 5 \u2014 Avalia\u00e7\u00e3o de perigos e Matriz AIHA'],\n  3: ['Dashboard de Resultados', 'Passo 3 de 5 \u2014 An\u00e1lise estat\u00edstica e criticidade'],\n  4: ['Invent\u00e1rio Ergon\u00f4mico', 'Passo 4 de 5 \u2014 Dados t\u00e9cnicos para o PGR \u00b7 eSocial'],\n  5: ['Plano de A\u00e7\u00e3o 5W2H', 'Passo 5 de 5 \u2014 Recomenda\u00e7\u00f5es e responsabilidades']\n};\n\nconst PROGRESS = { 1:20, 2:40, 3:60, 4:80, 5:100 };\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   NAVIGATION\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nfunction goTo(n) {\n  document.getElementById('screen-' + currentScreen).classList.remove('active');\n  document.getElementById('screen-' + n).classList.add('active');\n\n  document.querySelectorAll('.step-item').forEach(el => {\n    el.classList.remove('active');\n    if (parseInt(el.dataset.screen) < n) el.classList.add('done');\n    else el.classList.remove('done');\n  });\n  document.querySelector('[data-screen=\"' + n + '\"]').classList.add('active');\n\n  document.getElementById('topbar-title').textContent = SCREEN_TITLES[n][0];\n  document.getElementById('topbar-sub').textContent = SCREEN_TITLES[n][1];\n  document.getElementById('progress-fill').style.width = PROGRESS[n] + '%';\n\n  currentScreen = n;\n\n  if (n === 3) buildDashboard();\n  if (n === 4) buildInventario();\n  if (n === 5) buildPlanoAcao();\n\n  window.scrollTo({ top: 0, behavior: 'smooth' });\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   SCREEN 1 HELPERS\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nfunction maskCNPJ(el) {\n  let v = el.value.replace(\/\\D\/g,'');\n  if (v.length > 14) v = v.slice(0,14);\n  v = v.replace(\/^(\\d{2})(\\d)\/, '$1.$2');\n  v = v.replace(\/^(\\d{2})\\.(\\d{3})(\\d)\/, '$1.$2.$3');\n  v = v.replace(\/\\.(\\d{3})(\\d)\/, '.$1\/$2');\n  v = v.replace(\/(\\d{4})(\\d)\/, '$1-$2');\n  el.value = v;\n}\n\nfunction updateBadge() {\n  const v = document.getElementById('razao-social').value.trim();\n  document.getElementById('company-name-badge').textContent = v || 'Nova avalia\u00e7\u00e3o';\n}\n\nfunction updateGR() {\n  const v = document.getElementById('grau-risco').value;\n  const bd = document.getElementById('gr-badge');\n  const m = { '1':['badge-gr1','Atividade de baixo risco'], '2':['badge-gr2','Risco moderado'], '3':['badge-gr3','Risco elevado'], '4':['badge-gr4','Risco muito elevado'] };\n  bd.innerHTML = v && m[v] ? `<span class=\"badge ${m[v][0]}\" style=\"margin-top:4px;display:inline-block;\">${m[v][1]}<\/span>` : '';\n}\n\nfunction togglePill(id, cb) {\n  document.getElementById(id).classList.toggle('on', cb.checked);\n  buildChecklist();\n}\n\nfunction addGHE() {\n  gheCount++;\n  const id = gheCount;\n  const c = document.getElementById('ghe-container');\n  const div = document.createElement('div');\n  div.className = 'ghe-block';\n  div.id = 'ghe-' + id;\n  div.innerHTML = `\n    <div class=\"ghe-block-head\">\n      <span class=\"ghe-block-label\">GHE ${String(id).padStart(2,'0')}<\/span>\n      <button class=\"btn-remove\" onclick=\"removeGHE(${id})\" title=\"Remover GHE\">\n        <svg viewBox=\"0 0 24 24\"><polyline points=\"3 6 5 6 21 6\"\/><path d=\"M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6\"\/><path d=\"M10 11v6\"\/><path d=\"M14 11v6\"\/><path d=\"M9 6V4h6v2\"\/><\/svg>\n      <\/button>\n    <\/div>\n    <div class=\"ghe-block-body\">\n      <div class=\"form-grid col3\" style=\"margin-bottom:14px;\">\n        <div class=\"field\">\n          <label>Nome do GHE<\/label>\n          <input type=\"text\" placeholder=\"Ex: GHE 01 \u2014 Administrativo\">\n        <\/div>\n        <div class=\"field\">\n          <label>Setor \/ \u00e1rea<\/label>\n          <input type=\"text\" placeholder=\"Ex: Departamento Financeiro\">\n        <\/div>\n        <div class=\"field\">\n          <label>Perfil de exposi\u00e7\u00e3o<\/label>\n          <select>\n            <option value=\"\">Selecione<\/option>\n            <option>Administrativo (sentado)<\/option>\n            <option>Operacional (em p\u00e9)<\/option>\n            <option>Misto<\/option>\n            <option>Campo \/ externo<\/option>\n          <\/select>\n        <\/div>\n        <div class=\"field\">\n          <label>Cargos componentes<\/label>\n          <input type=\"text\" placeholder=\"Ex: Analista, Supervisor\">\n        <\/div>\n        <div class=\"field\">\n          <label>Jornada semanal<\/label>\n          <input type=\"text\" placeholder=\"Ex: 44h \u2014 Seg a Sex\">\n        <\/div>\n        <div class=\"field\">\n          <label>Total de trabalhadores<\/label>\n          <input type=\"number\" min=\"1\" placeholder=\"0\">\n        <\/div>\n      <\/div>\n      <div style=\"margin-bottom:6px;\">\n        <label style=\"font-size:12px;font-weight:600;color:var(--gray-700);display:block;margin-bottom:8px;\">Trabalhadores entrevistados<\/label>\n        <div id=\"workers-${id}\">\n          <div class=\"worker-row\">\n            <input type=\"text\" placeholder=\"Nome completo\" style=\"flex:1;\">\n            <input type=\"text\" class=\"w-cargo\" placeholder=\"Cargo\">\n            <input type=\"text\" class=\"w-mat\" placeholder=\"Matr\u00edcula\">\n            <button class=\"btn-icon\" onclick=\"removeWorker(this)\">\n              <svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n            <\/button>\n          <\/div>\n        <\/div>\n        <button class=\"btn-add-worker\" onclick=\"addWorker(${id})\">\n          <svg viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><line x1=\"19\" y1=\"8\" x2=\"19\" y2=\"14\"\/><line x1=\"22\" y1=\"11\" x2=\"16\" y2=\"11\"\/><\/svg>\n          Adicionar colaborador\n        <\/button>\n      <\/div>\n      <div class=\"field\" style=\"margin-top:10px;\">\n        <label>Descri\u00e7\u00e3o sum\u00e1ria das atividades<\/label>\n        <textarea placeholder=\"Descreva a rotina real observada neste grupo \u2014 posturas, equipamentos, variabilidade das tarefas, ciclos de trabalho\u2026\"><\/textarea>\n      <\/div>\n    <\/div>\n  `;\n  c.appendChild(div);\n}\n\nfunction removeGHE(id) {\n  const el = document.getElementById('ghe-' + id);\n  if (el) el.remove();\n}\n\nfunction addWorker(gheId) {\n  const c = document.getElementById('workers-' + gheId);\n  const row = document.createElement('div');\n  row.className = 'worker-row';\n  row.innerHTML = `\n    <input type=\"text\" placeholder=\"Nome completo\" style=\"flex:1;\">\n    <input type=\"text\" class=\"w-cargo\" placeholder=\"Cargo\">\n    <input type=\"text\" class=\"w-mat\" placeholder=\"Matr\u00edcula\">\n    <button class=\"btn-icon\" onclick=\"removeWorker(this)\">\n      <svg viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n    <\/button>\n  `;\n  c.appendChild(row);\n}\n\nfunction removeWorker(btn) {\n  const row = btn.closest('.worker-row');\n  const c = row.parentElement;\n  if (c.querySelectorAll('.worker-row').length > 1) row.remove();\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   CHECKLIST DATA\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nconst CHECKLIST_GROUPS = [\n  {\n    id: 'org', label: 'Organiza\u00e7\u00e3o do trabalho', icon: 'settings', esocial_prefix: '01',\n    items: [\n      { id:'o1', text:'Posturas extremas de tronco, pesco\u00e7o ou membros durante a atividade', norm:'NR 17 (17.4.3 \"a\")', esocial:'01.01', fonte:'Posto de trabalho inadequado', traj:'Carga biomec\u00e2nica est\u00e1tica sobre articula\u00e7\u00f5es', danos:'Cervicalgia, dorsalgia, DORT', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o2', text:'Movimentos bruscos ou de impacto nos membros superiores', norm:'NR 17 (17.4.3 \"c\")', esocial:'01.02', fonte:'Ferramentas\/equipamentos inadequados', traj:'Impacto mec\u00e2nico repetitivo sobre tend\u00f5es e articula\u00e7\u00f5es', danos:'Tendinite, epicondilite, s\u00edndrome do t\u00fanel do carpo', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o3', text:'Uso excessivo de for\u00e7a muscular ou esfor\u00e7o f\u00edsico intenso', norm:'NR 17 (17.4.3 \"b\")', esocial:'01.03', fonte:'Exig\u00eancia da tarefa', traj:'Sobrecarga muscular por contra\u00e7\u00e3o isom\u00e9trica prolongada', danos:'Fadiga muscular cr\u00f4nica, DORT', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o4', text:'Movimentos com alta frequ\u00eancia de repeti\u00e7\u00e3o', norm:'NR 17 (17.4.3 \"d\")', esocial:'01.04', fonte:'Ciclos curtos de trabalho repetitivo', traj:'Microtraumatismos cumulativos em tend\u00f5es e ligamentos', danos:'LER\/DORT, s\u00edndrome do t\u00fanel do carpo', medidas:'Pausas informais', epc:'\u2013' },\n      { id:'o5', text:'Ritmo intenso imposto por equipamento ou sistema', norm:'NR 17 (17.4.1 \"d\")', esocial:'01.05', fonte:'M\u00e1quinas \/ software de controle de produ\u00e7\u00e3o', traj:'Exposi\u00e7\u00e3o cont\u00ednua a demandas al\u00e9m da capacidade fisiol\u00f3gica', danos:'Fadiga, estresse ocupacional, burnout', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o6', text:'Postura em p\u00e9 por longos per\u00edodos sem possibilidade de sentar', norm:'NR 17 (17.6.7)', esocial:'01.06', fonte:'Layout do posto de trabalho', traj:'Compress\u00e3o vascular e sobrecarga articular dos membros inferiores', danos:'Varizes, fadiga de MMII, lombalgia', medidas:'Tapete antifadiga (eventual)', epc:'Tapete antifadiga' },\n      { id:'o7', text:'Postura sentada por longos per\u00edodos sem altern\u00e2ncia', norm:'NR 17 (17.6.2)', esocial:'01.07', fonte:'Natureza sedent\u00e1ria da tarefa', traj:'Compress\u00e3o do disco intervertebral e musculatura paravertebral', danos:'Lombalgia, h\u00e9rnia de disco, cervicalgia', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o8', text:'Aus\u00eancia de pausas regulares para recupera\u00e7\u00e3o psicofisiol\u00f3gica', norm:'NR 17 (17.4.3.1 \"a\")', esocial:'01.08', fonte:'Organiza\u00e7\u00e3o do trabalho sem pausa estruturada', traj:'Aus\u00eancia de recupera\u00e7\u00e3o dos grupos musculares sobrecarregados', danos:'Fadiga cumulativa, DORT, burnout', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o9', text:'Impossibilidade de ir ao banheiro a qualquer momento', norm:'NR 17 (17.4.3.3)', esocial:'01.09', fonte:'Norma interna ou din\u00e2mica de produ\u00e7\u00e3o', traj:'Reten\u00e7\u00e3o de necessidades fisiol\u00f3gicas com efeito sobre sa\u00fade renal e urin\u00e1ria', danos:'Cistite, infec\u00e7\u00e3o urin\u00e1ria recorrente', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o10', text:'Aus\u00eancia de rod\u00edzio de tarefas \/ altern\u00e2ncia de fun\u00e7\u00f5es', norm:'NR 17 (17.4.3.1 \"b\")', esocial:'01.10', fonte:'Organiza\u00e7\u00e3o r\u00edgida de cargos', traj:'Manuten\u00e7\u00e3o permanente dos mesmos grupos musculares ativos', danos:'DORT, fadiga localizada', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'o11', text:'Dimens\u00f5es insuficientes do espa\u00e7o de trabalho para livre movimenta\u00e7\u00e3o', norm:'NR 17 (17.4.6)', esocial:'01.11', fonte:'Layout f\u00edsico inadequado', traj:'Restri\u00e7\u00e3o postural por espa\u00e7o insuficiente', danos:'Posturas for\u00e7adas, fadiga, acidentes', medidas:'Nenhuma', epc:'\u2013' },\n    ]\n  },\n  {\n    id: 'carga', label: 'Levantamento e transporte de cargas', icon: 'package', esocial_prefix: '02', modulo: 'carga',\n    items: [\n      { id:'c1', text:'Locais de pega ou dep\u00f3sito mal posicionados (exigem tor\u00e7\u00e3o\/flex\u00e3o de tronco)', norm:'NR 17 (17.5.2 \"a\")', esocial:'02.01', fonte:'Organiza\u00e7\u00e3o do estoque\/layout log\u00edstico', traj:'Flex\u00e3o e rota\u00e7\u00e3o do tronco durante a pega manual da carga', danos:'Lombalgia aguda, h\u00e9rnia discal L4\/L5', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'c2', text:'Dist\u00e2ncia horizontal de pega superior a 60 cm', norm:'NR 17 (17.5.2) + ISO 11228-1', esocial:'02.02', fonte:'Prateleiras, paletes ou bancadas em posi\u00e7\u00e3o desfavor\u00e1vel', traj:'Momento de for\u00e7a elevado sobre a coluna por alcance estendido', danos:'Lombalgia, distens\u00e3o muscular, h\u00e9rnia', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'c3', text:'Peso ou dimens\u00f5es da carga comprometem a seguran\u00e7a do trabalhador', norm:'NR 17 (17.5.1)', esocial:'02.03', fonte:'Caixas, sacarias, equipamentos pesados', traj:'Sobrecarga compressiva sobre a coluna lombar e discos intervertebrais', danos:'H\u00e9rnia discal, lombalgia cr\u00f4nica, les\u00e3o muscular', medidas:'Nenhuma', epc:'Cinto lombar (eventual)' },\n      { id:'c4', text:'Longas dist\u00e2ncias percorridas com a carga', norm:'NR 17 (17.5.2 \"c\")', esocial:'02.04', fonte:'Layout log\u00edstico com percursos longos', traj:'Fadiga muscular progressiva com carga no transporte', danos:'Fadiga de MMII, DORT, lombalgia', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'c5', text:'Aus\u00eancia de meios mec\u00e2nicos auxiliares (carrinhos, paleteiras, talhas)', norm:'NR 17 (17.5.4 \"a\")', esocial:'02.05', fonte:'Falta de equipamentos log\u00edsticos', traj:'Transfer\u00eancia direta da carga para o sistema musculoesquel\u00e9tico humano', danos:'DORT, lombalgia, distens\u00e3o muscular', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'c6', text:'Aus\u00eancia de treinamento sobre m\u00e9todos de levantamento manual', norm:'NR 17 (17.5.5)', esocial:'02.06', fonte:'Gest\u00e3o de treinamentos inadequada', traj:'T\u00e9cnica incorreta de levantamento aumenta risco de les\u00e3o', danos:'Lombalgia aguda, distens\u00e3o, h\u00e9rnia', medidas:'Nenhuma', epc:'\u2013' },\n    ]\n  },\n  {\n    id: 'mobi', label: 'Mobili\u00e1rio dos postos de trabalho', icon: 'layout',\n    items: [\n      { id:'m1', text:'Aus\u00eancia de regulagens no mobili\u00e1rio (mesa, cadeira, bancada)', norm:'NR 17 (17.6.1 \"b\")', esocial:'03.01', fonte:'Mobili\u00e1rio fixo sem ajuste', traj:'Impossibilidade de adapta\u00e7\u00e3o do posto \u00e0 biometria do trabalhador', danos:'Cervicalgia, lombalgia, DORT em MMSS', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'m2', text:'Altura e dimens\u00f5es da superf\u00edcie de trabalho incompat\u00edveis com a tarefa', norm:'NR 17 (17.6.3 \"b\")', esocial:'03.02', fonte:'Mesa\/bancada subdimensionada ou muito alta\/baixa', traj:'Amplitude articular nociva de ombros e punhos durante a tarefa', danos:'Tendinite de ombro, cervicalgia, lombalgia', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'m3', text:'\u00c1rea de trabalho fora da zona de alcance manual funcional', norm:'NR 17 (17.6.3 \"c\")', esocial:'03.03', fonte:'Layout de ferramentas e materiais', traj:'Alcances excessivos com sobrecarga nos ombros e coluna', danos:'Tendinite de ombro, lombalgia', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'m4', text:'Espa\u00e7o insuficiente para pernas e p\u00e9s na base do mobili\u00e1rio', norm:'NR 17 (17.6.3 \"d\")', esocial:'03.04', fonte:'Mesa\/bancada com base fechada ou muito espessa', traj:'Posicionamento for\u00e7ado das pernas e p\u00e9s, compress\u00e3o vascular', danos:'Varizes, fadiga de MMII, desconforto postural', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'m5', text:'Cadeira inadequada, sem regulagens ou danificada', norm:'NR 17 (17.6.6)', esocial:'03.05', fonte:'Cadeira sem ajuste ou deteriorada', traj:'Impossibilidade de postura neutra na coluna e membros', danos:'Lombalgia cr\u00f4nica, cervicalgia, DORT', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'m6', text:'Aus\u00eancia de apoio para os p\u00e9s quando necess\u00e1rio', norm:'NR 17 (17.6.4)', esocial:'03.06', fonte:'Posto sem apoio de p\u00e9s para trabalhadores de menor estatura', traj:'Compress\u00e3o da face posterior das coxas e m\u00e1 postura compensat\u00f3ria', danos:'Varizes, lombalgia, s\u00edndrome de compress\u00e3o femoral', medidas:'Nenhuma', epc:'Apoio de p\u00e9s' },\n    ]\n  },\n  {\n    id: 'equip', label: 'M\u00e1quinas, equipamentos e ferramentas', icon: 'tool',\n    items: [\n      { id:'e1', text:'Ferramentas inadequadas, improvisadas ou sem isolamento adequado', norm:'NR 17 (17.7.1)', esocial:'04.01', fonte:'Ferramentas sem ergonomia ou danificadas', traj:'Compress\u00e3o local em palma e dedos; postura n\u00e3o neutra do punho', danos:'S\u00edndrome do t\u00fanel do carpo, epicondilite, vibra\u00e7\u00e3o', medidas:'Nenhuma', epc:'Luva antivibrat\u00f3ria (eventual)' },\n      { id:'e2', text:'Equipamentos com vibra\u00e7\u00e3o excessiva transmitida ao operador', norm:'NR 17 (17.4.3 \"e\") + NR 09 Anexo I', esocial:'04.02', fonte:'Ferramentas vibrat\u00f3rias (lixadeiras, marteletes)', traj:'Vibra\u00e7\u00e3o transmitida ao sistema m\u00e3o-bra\u00e7o ou corpo inteiro', danos:'S\u00edndrome de Raynaud, dor articular, lombalgia', medidas:'Luvas antivibrat\u00f3rias', epc:'EPI antivibra\u00e7\u00e3o' },\n      { id:'e3', text:'Uso intensivo de teclado\/mouse sem adapta\u00e7\u00f5es ergon\u00f4micas', norm:'NR 17 (17.7.3.2)', esocial:'04.03', fonte:'Computador sem ajuste de altura\/dist\u00e2ncia', traj:'Desvio ulnar e extens\u00e3o de punhos com uso cont\u00ednuo do teclado', danos:'LER\/DORT \u2014 s\u00edndrome do t\u00fanel do carpo, tendinite', medidas:'Nenhuma', epc:'Mouse vertical \/ suporte de pulso' },\n      { id:'e4', text:'Notebook\/laptop usado diretamente sobre a mesa sem suporte', norm:'NR 17 (17.7.3.2)', esocial:'04.04', fonte:'Notebook posicionado no n\u00edvel da mesa', traj:'Flex\u00e3o cervical prolongada para visualizar a tela baixa', danos:'Cervicalgia, cefaleia tensional, fadiga visual', medidas:'Nenhuma', epc:'Suporte de notebook + teclado externo' },\n    ]\n  },\n  {\n    id: 'amb', label: 'Conforto ambiental', icon: 'sun',\n    items: [\n      { id:'a1', text:'Ilumina\u00e7\u00e3o insuficiente ou inadequada para a tarefa', norm:'NR 17 (17.8.3) + NHO 11', esocial:'05.01', fonte:'Sistema de ilumina\u00e7\u00e3o subdimensionado', traj:'Esfor\u00e7o visual excessivo e posturas de aproxima\u00e7\u00e3o compensat\u00f3ria', danos:'Fadiga visual, cefaleia, miopia funcional', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'a2', text:'Ofuscamento ou reflexos inc\u00f4modos na tela ou superf\u00edcie de trabalho', norm:'NR 17 (17.8.2)', esocial:'05.02', fonte:'Janelas sem cortinas \/ lumin\u00e1ria posicionada incorretamente', traj:'Reflexo na tela induz inclina\u00e7\u00e3o lateral e tens\u00e3o cervical compensat\u00f3ria', danos:'Fadiga visual, cefaleia, cervicalgia', medidas:'Nenhuma', epc:'Filtro antirreflexo' },\n      { id:'a3', text:'Ru\u00eddo ambiental provoca desconforto ou dificulta comunica\u00e7\u00e3o', norm:'NR 17 (17.8.4.1)', esocial:'05.03', fonte:'M\u00e1quinas, tr\u00e1fego externo, conversas simult\u00e2neas', traj:'Exposi\u00e7\u00e3o sonora acima do n\u00edvel de conforto para atividade intelectual', danos:'Irritabilidade, estresse, fadiga cognitiva', medidas:'Nenhuma', epc:'Protetor auricular (eventual)' },\n      { id:'a4', text:'Temperatura fora da faixa de conforto (abaixo de 18\u00b0C ou acima de 25\u00b0C)', norm:'NR 17 (17.8.4.2)', esocial:'05.04', fonte:'Sistema de climatiza\u00e7\u00e3o inadequado', traj:'Exposi\u00e7\u00e3o prolongada a desconforto t\u00e9rmico afetando produtividade e sa\u00fade', danos:'Problemas respirat\u00f3rios, fadiga, estresse t\u00e9rmico', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'a5', text:'Piso escorregadio, irregular ou com obst\u00e1culos', norm:'NR 17 (17.1.1) + NR 01', esocial:'05.05', fonte:'Piso molhado, deteriorado ou sobrecarregado', traj:'Risco de queda com possibilidade de trauma musculoesquel\u00e9tico', danos:'Fratura, contus\u00e3o, entorse', medidas:'Nenhuma', epc:'EPI antiderrapante (eventual)' },\n    ]\n  },\n  {\n    id: 'psico', label: 'Fatores psicossociais', icon: 'brain',\n    items: [\n      { id:'p1', text:'Excesso de demandas, press\u00e3o por metas ou produtividade', norm:'NR 17 (17.4.1 \"b\" e \"c\") + NR 01', esocial:'06.01', fonte:'Cultura organizacional de alta press\u00e3o', traj:'Resposta de estresse cr\u00f4nico com impacto neurol\u00f3gico e cardiovascular', danos:'Burnout, ansiedade, depress\u00e3o, doen\u00e7as cardiovasculares', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'p2', text:'Baixo controle ou autonomia sobre o pr\u00f3prio ritmo de trabalho', norm:'NR 17 (17.4.1 \"e\")', esocial:'06.02', fonte:'Organiza\u00e7\u00e3o do trabalho prescritiva e r\u00edgida', traj:'Sensa\u00e7\u00e3o de impot\u00eancia e aus\u00eancia de controle \u2014 fator de risco para burnout', danos:'Estresse cr\u00f4nico, burnout, depress\u00e3o', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'p3', text:'Exig\u00eancia cognitiva elevada \/ tomada de decis\u00e3o sob press\u00e3o constante', norm:'NR 17 (17.4.1)', esocial:'06.03', fonte:'Natureza complexa da tarefa com recursos insuficientes', traj:'Sobrecarga do sistema cognitivo com fadiga mental cumulativa', danos:'Fadiga mental, burnout, cefaleia tensional', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'p4', text:'Conflitos interpessoais, ass\u00e9dio moral ou falta de suporte da chefia', norm:'NR 01 \u2014 GRO (psicossocial)', esocial:'06.04', fonte:'Rela\u00e7\u00f5es de trabalho disfuncionais', traj:'Exposi\u00e7\u00e3o a viol\u00eancia psicol\u00f3gica com impacto direto na sa\u00fade mental', danos:'Depress\u00e3o, ansiedade, TEPT, adoecimento ps\u00edquico', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'p5', text:'Jornadas excessivas, horas extras frequentes ou trabalho no descanso', norm:'NR 01 \u2014 GRO (psicossocial)', esocial:'06.05', fonte:'Planejamento de pessoal insuficiente', traj:'Priva\u00e7\u00e3o de sono e recupera\u00e7\u00e3o insuficiente entre jornadas', danos:'Burnout, dist\u00farbios do sono, doen\u00e7as cardiovasculares', medidas:'Nenhuma', epc:'\u2013' },\n    ]\n  },\n  {\n    id: 'checkout', label: 'Operadores de checkout \u2014 Anexo I', modulo: 'checkout', icon: 'scan',\n    items: [\n      { id:'ch1', text:'Balc\u00e3o de checkout com quinas vivas ou bordas sem arredondamento', norm:'Anexo I (3.1 \"c\")', esocial:'07.01', fonte:'Mobili\u00e1rio do checkout inadequado', traj:'Compress\u00e3o mec\u00e2nica dos antebra\u00e7os sobre borda viva', danos:'Compress\u00e3o nervosa, hematoma, contus\u00e3o', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'ch2', text:'Balan\u00e7a desnivelada ou acima do plano do balc\u00e3o (exige elevar mercadorias)', norm:'Anexo I (3.1 \"h\")', esocial:'07.02', fonte:'Instala\u00e7\u00e3o incorreta da balan\u00e7a', traj:'Eleva\u00e7\u00e3o frequente de itens acima do plano ideal, sobrecarregando ombros', danos:'Tendinite de ombro, s\u00edndrome do manguito rotador', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'ch3', text:'Posto impede a altern\u00e2ncia entre as posturas em p\u00e9 e sentada', norm:'Anexo I (3.1 \"a\")', esocial:'07.03', fonte:'Layout fixo sem espa\u00e7o para assento', traj:'Bipedesta\u00e7\u00e3o est\u00e1tica prolongada sem descanso articular', danos:'Varizes, fadiga, lombalgia', medidas:'Nenhuma', epc:'Assento tipo sela (recomendado)' },\n      { id:'ch4', text:'Aus\u00eancia de ensacadores em momentos de pico de mercadorias volumosas', norm:'Anexo I (4.2)', esocial:'07.04', fonte:'Dimensionamento insuficiente de equipe', traj:'Operador realiza tarefa de ensacamento al\u00e9m do escopo individual', danos:'Sobrecarga cumulativa, DORT em MMSS', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'ch5', text:'Metas de produtividade baseadas no n\u00famero de itens passados por minuto', norm:'Anexo I (5.2)', esocial:'07.05', fonte:'Sistema de avalia\u00e7\u00e3o de desempenho quantitativo', traj:'Cad\u00eancia imposta acima da capacidade fisiol\u00f3gica individual', danos:'DORT, estresse, burnout', medidas:'Nenhuma', epc:'\u2013' },\n    ]\n  },\n  {\n    id: 'tele', label: 'Teleatendimento \/ Telemarketing \u2014 Anexo II', modulo: 'telemarketing', icon: 'headset',\n    items: [\n      { id:'t1', text:'Mobili\u00e1rio sem superf\u00edcies de regulagem independentes para teclado e monitor', norm:'Anexo II (3.1 \"b\")', esocial:'08.01', fonte:'Bancada de atendimento sem ajuste', traj:'Impossibilidade de posicionar tela e teclado em alturas independentes e ideais', danos:'Cervicalgia, lombalgia, DORT em MMSS', medidas:'Nenhuma', epc:'Suporte regul\u00e1vel' },\n      { id:'t2', text:'Headset compartilhado entre operadores sem protetores individuais', norm:'Anexo II (4.1 e 4.2.1)', esocial:'08.02', fonte:'Gest\u00e3o de equipamentos inadequada', traj:'Contato com equipamento sem higieniza\u00e7\u00e3o individual entre turnos', danos:'Infec\u00e7\u00f5es de ouvido, otite, impetigo', medidas:'Nenhuma', epc:'Headset individual' },\n      { id:'t3', text:'Headset n\u00e3o permite altern\u00e2ncia de orelhas durante a jornada', norm:'Anexo II (4.2 \"c\")', esocial:'08.03', fonte:'Modelo de headset sem versatilidade', traj:'Exposi\u00e7\u00e3o sonora unilateral prolongada em uma orelha', danos:'Perda auditiva unilateral, zumbido', medidas:'Nenhuma', epc:'Headset bilateral altern\u00e1vel' },\n      { id:'t4', text:'Aus\u00eancia das duas pausas de 10 minutos previstas na jornada', norm:'Anexo II (6.4.1)', esocial:'08.04', fonte:'Organiza\u00e7\u00e3o do trabalho sem pausa estruturada', traj:'Aus\u00eancia de recupera\u00e7\u00e3o psicofisiol\u00f3gica entre ciclos de atendimento', danos:'Fadiga vocal, burnout, DORT em MMSS', medidas:'Nenhuma', epc:'\u2013' },\n      { id:'t5', text:'Jornada di\u00e1ria superior a 6 horas em efetiva atividade de teleatendimento', norm:'Anexo II (6.3)', esocial:'08.05', fonte:'Escala de trabalho excessiva', traj:'Exposi\u00e7\u00e3o al\u00e9m do limite legal com ac\u00famulo de fatores de risco', danos:'Burnout, DORT, dist\u00farbio de voz, fadiga cr\u00f4nica', medidas:'Nenhuma', epc:'\u2013' },\n    ]\n  },\n];\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   BUILD CHECKLIST\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nfunction buildChecklist() {\n  const modCheckout = document.getElementById('mod-checkout') && document.getElementById('mod-checkout').checked;\n  const modTele = document.getElementById('mod-tele') && document.getElementById('mod-tele').checked;\n  const modCarga = document.getElementById('mod-carga') && document.getElementById('mod-carga').checked;\n\n  const container = document.getElementById('checklist-container');\n  container.innerHTML = '';\n\n  CHECKLIST_GROUPS.forEach(group => {\n    if (group.modulo === 'checkout' && !modCheckout) return;\n    if (group.modulo === 'telemarketing' && !modTele) return;\n    if (group.modulo === 'carga' && !modCarga) return;\n\n    const div = document.createElement('div');\n    div.className = 'checklist-group';\n    div.id = 'cg-' + group.id;\n\n    let html = `<div class=\"checklist-group-title\">${group.label}<\/div>`;\n    html += `<div class=\"checklist-header\">\n      <span><\/span>\n      <span>Item \/ Inadequa\u00e7\u00e3o<\/span>\n      <span>Severidade (1\u20134)<\/span>\n      <span>Exposi\u00e7\u00e3o (1\u20134)<\/span>\n      <span>Matriz AIHA<\/span>\n    <\/div>`;\n\n    group.items.forEach(item => {\n      const savedState = checklistData.find(d => d.id === item.id) || {};\n      const checked = savedState.checked || false;\n      const sev = savedState.sev || '';\n      const exp = savedState.exp || '';\n      const cat = calcAIHA(checked, sev, exp);\n\n      html += `<div class=\"checklist-item ${checked ? 'has-risk' : ''}\" id=\"row-${item.id}\">\n        <div class=\"item-toggle ${checked ? 'checked' : ''}\" onclick=\"toggleItem('${item.id}', '${group.id}')\"><\/div>\n        <div>\n          <div class=\"item-text\">${item.text}<\/div>\n          <div class=\"item-norm\">${item.norm} \u00b7 eSocial ${item.esocial}<\/div>\n        <\/div>\n        <select class=\"item-select\" id=\"sev-${item.id}\" onchange=\"updateAIHA('${item.id}')\" ${!checked ? 'disabled' : ''}>\n          <option value=\"\">\u2014<\/option>\n          <option value=\"1\" ${sev=='1'?'selected':''}>1 \u00b7 M\u00ednima<\/option>\n          <option value=\"2\" ${sev=='2'?'selected':''}>2 \u00b7 Moderada<\/option>\n          <option value=\"3\" ${sev=='3'?'selected':''}>3 \u00b7 S\u00e9ria<\/option>\n          <option value=\"4\" ${sev=='4'?'selected':''}>4 \u00b7 Cr\u00edtica<\/option>\n        <\/select>\n        <select class=\"item-select\" id=\"exp-${item.id}\" onchange=\"updateAIHA('${item.id}')\" ${!checked ? 'disabled' : ''}>\n          <option value=\"\">\u2014<\/option>\n          <option value=\"1\" ${exp=='1'?'selected':''}>1 \u00b7 Rara<\/option>\n          <option value=\"2\" ${exp=='2'?'selected':''}>2 \u00b7 Intermitente<\/option>\n          <option value=\"3\" ${exp=='3'?'selected':''}>3 \u00b7 Frequente<\/option>\n          <option value=\"4\" ${exp=='4'?'selected':''}>4 \u00b7 Cont\u00ednua<\/option>\n        <\/select>\n        <div class=\"aiha-result badge ${aihaClass(cat)}\" id=\"aiha-${item.id}\">${aihaLabel(cat)}<\/div>\n      <\/div>`;\n    });\n\n    div.innerHTML = html;\n    container.appendChild(div);\n  });\n}\n\nfunction toggleItem(itemId, groupId) {\n  const row = document.getElementById('row-' + itemId);\n  const toggle = row.querySelector('.item-toggle');\n  const isChecked = !toggle.classList.contains('checked');\n  toggle.classList.toggle('checked', isChecked);\n  row.classList.toggle('has-risk', isChecked);\n\n  const sevEl = document.getElementById('sev-' + itemId);\n  const expEl = document.getElementById('exp-' + itemId);\n  sevEl.disabled = !isChecked;\n  expEl.disabled = !isChecked;\n  if (!isChecked) { sevEl.value = ''; expEl.value = ''; }\n\n  saveChecklistState(itemId, isChecked, sevEl.value, expEl.value);\n  updateAIHA(itemId);\n}\n\nfunction updateAIHA(itemId) {\n  const toggle = document.getElementById('row-' + itemId).querySelector('.item-toggle');\n  const checked = toggle.classList.contains('checked');\n  const sev = document.getElementById('sev-' + itemId).value;\n  const exp = document.getElementById('exp-' + itemId).value;\n  const cat = calcAIHA(checked, sev, exp);\n  const el = document.getElementById('aiha-' + itemId);\n  el.textContent = aihaLabel(cat);\n  el.className = 'aiha-result badge ' + aihaClass(cat);\n  saveChecklistState(itemId, checked, sev, exp);\n}\n\nfunction saveChecklistState(id, checked, sev, exp) {\n  const idx = checklistData.findIndex(d => d.id === id);\n  const item = findItem(id);\n  const data = { id, checked, sev, exp, cat: calcAIHA(checked, sev, exp), item };\n  if (idx >= 0) checklistData[idx] = data;\n  else checklistData.push(data);\n}\n\nfunction findItem(id) {\n  for (const g of CHECKLIST_GROUPS) {\n    const found = g.items.find(i => i.id === id);\n    if (found) return { ...found, groupLabel: g.label };\n  }\n  return null;\n}\n\nfunction calcAIHA(checked, sev, exp) {\n  if (!checked || !sev || !exp) return checked ? -1 : 0;\n  const p = parseInt(sev) * parseInt(exp);\n  if (p <= 1) return 0;\n  if (p <= 3) return 1;\n  if (p <= 6) return 2;\n  if (p <= 9) return 3;\n  return 4;\n}\n\nfunction aihaClass(cat) {\n  if (cat === -1) return 'badge-cat0';\n  return ['badge-cat0','badge-cat1','badge-cat2','badge-cat3','badge-cat4'][cat] || 'badge-cat0';\n}\n\nfunction aihaLabel(cat) {\n  if (cat === -1) return 'Preencher \u2192';\n  return ['Cat 0 \u00b7 Desprez\u00edvel','Cat 1 \u00b7 Baixo','Cat 2 \u00b7 Moderado','Cat 3 \u00b7 S\u00e9rio','Cat 4 \u00b7 Cr\u00edtico'][cat] || '\u2013';\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   SCREEN 3 \u2014 DASHBOARD\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nfunction buildDashboard() {\n  const risks = checklistData.filter(d => d.checked);\n  const total = risks.length;\n  const critico = risks.filter(d => d.cat >= 3).length;\n  const moderado = risks.filter(d => d.cat === 2).length;\n  const aceitavel = risks.filter(d => d.cat <= 1 && d.cat >= 0).length;\n  const allItems = CHECKLIST_GROUPS.reduce((a,g) => a + g.items.length, 0);\n  const conformidade = allItems > 0 ? Math.round(((allItems - total) \/ allItems) * 100) : 100;\n\n  document.getElementById('kpi-critico').textContent = critico;\n  document.getElementById('kpi-moderado').textContent = moderado;\n  document.getElementById('kpi-aceitavel').textContent = aceitavel;\n  document.getElementById('kpi-conformidade').textContent = conformidade + '%';\n\n  \/\/ Chart AIHA\n  const ctx1 = document.getElementById('chart-aiha').getContext('2d');\n  if (chartAIHA) chartAIHA.destroy();\n  const catLabels = ['Cat 0 \u00b7 Desprez\u00edvel', 'Cat 1 \u00b7 Baixo', 'Cat 2 \u00b7 Moderado', 'Cat 3 \u00b7 S\u00e9rio', 'Cat 4 \u00b7 Cr\u00edtico'];\n  const catCounts = [0,1,2,3,4].map(c => risks.filter(d => d.cat === c).length);\n  chartAIHA = new Chart(ctx1, {\n    type: 'bar',\n    data: {\n      labels: catLabels,\n      datasets: [{\n        data: catCounts,\n        backgroundColor: ['#C4C2DC','#6EBD88','#F6AD55','#F56565','#A32D2D'],\n        borderRadius: 5,\n        borderSkipped: false,\n      }]\n    },\n    options: {\n      responsive: true, maintainAspectRatio: false,\n      plugins: { legend: { display: false } },\n      scales: {\n        y: { beginAtZero: true, ticks: { stepSize: 1 }, grid: { color: '#F0F2F5' } },\n        x: { grid: { display: false }, ticks: { font: { size: 10 } } }\n      }\n    }\n  });\n\n  \/\/ Chart Vari\u00e1vel\n  const ctx2 = document.getElementById('chart-variavel').getContext('2d');\n  if (chartVariavel) chartVariavel.destroy();\n  const groupCounts = CHECKLIST_GROUPS.map(g => ({\n    label: g.label.length > 22 ? g.label.slice(0,22)+'\u2026' : g.label,\n    count: risks.filter(d => g.items.some(i => i.id === d.id)).length\n  })).filter(g => g.count > 0);\n\n  chartVariavel = new Chart(ctx2, {\n    type: 'bar',\n    data: {\n      labels: groupCounts.map(g => g.label),\n      datasets: [{\n        data: groupCounts.map(g => g.count),\n        backgroundColor: '#4c4496',\n        borderRadius: 4,\n        borderSkipped: false,\n      }]\n    },\n    options: {\n      indexAxis: 'y',\n      responsive: true, maintainAspectRatio: false,\n      plugins: { legend: { display: false } },\n      scales: {\n        x: { beginAtZero: true, ticks: { stepSize: 1 }, grid: { color: '#F0F2F5' } },\n        y: { grid: { display: false }, ticks: { font: { size: 10 } } }\n      }\n    }\n  });\n\n  \/\/ Risk table\n  const tbody = document.getElementById('risk-table-body');\n  tbody.innerHTML = '';\n  CHECKLIST_GROUPS.forEach(g => {\n    const gRisks = risks.filter(d => g.items.some(i => i.id === d.id));\n    const gTotal = g.items.length;\n    const gCrit = gRisks.filter(d => d.cat >= 3).length;\n    const pct = gTotal > 0 ? Math.round((gRisks.length \/ gTotal) * 100) : 0;\n    let level = '', levelClass = '';\n    if (pct === 0) { level = 'Adequado'; levelClass = 'status-ok'; }\n    else if (pct < 30) { level = 'Baixo'; levelClass = 'status-ok'; }\n    else if (pct < 60) { level = 'Moderado'; levelClass = 'status-warn'; }\n    else { level = 'Cr\u00edtico'; levelClass = 'status-danger'; }\n\n    const barColor = pct === 0 ? '#6EBD88' : pct < 30 ? '#F6AD55' : '#A32D2D';\n    tbody.innerHTML += `<tr>\n      <td>${g.label}<\/td>\n      <td>${gTotal}<\/td>\n      <td>${gRisks.length}<\/td>\n      <td>${gCrit}<\/td>\n      <td><span class=\"status-badge ${levelClass}\">${level}<\/span><\/td>\n      <td style=\"min-width:120px;\">\n        <div style=\"display:flex;align-items:center;gap:8px;\">\n          <div class=\"risk-bar\" style=\"flex:1;\"><div class=\"risk-bar-fill\" style=\"width:${pct}%;background:${barColor};\"><\/div><\/div>\n          <span style=\"font-size:11px;font-weight:600;color:var(--gray-700);min-width:28px;\">${pct}%<\/span>\n        <\/div>\n      <\/td>\n    <\/tr>`;\n  });\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   SCREEN 4 \u2014 INVENT\u00c1RIO\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nlet invFilter = 'all';\n\nfunction buildInventario() {\n  const risks = checklistData.filter(d => d.checked && d.cat > 0);\n  renderInventario(risks);\n}\n\nfunction renderInventario(risks) {\n  const tbody = document.getElementById('inv-table-body');\n  tbody.innerHTML = '';\n\n  let filtered = risks;\n  if (invFilter === 'critico') filtered = risks.filter(d => d.cat >= 3);\n  if (invFilter === 'moderado') filtered = risks.filter(d => d.cat === 2);\n\n  if (filtered.length === 0) {\n    tbody.innerHTML = `<tr><td colspan=\"10\" style=\"text-align:center;color:var(--gray-500);padding:24px;\">Nenhuma inadequa\u00e7\u00e3o registrada com a categoria selecionada.<\/td><\/tr>`;\n    return;\n  }\n\n  filtered.forEach(d => {\n    const item = d.item;\n    if (!item) return;\n    const statusLabel = d.cat <= 1 ? ['Aceit\u00e1vel','status-ok'] : d.cat === 2 ? ['Alerta','status-warn'] : d.cat === 3 ? ['S\u00e9rio','status-alert'] : ['Cr\u00edtico','status-danger'];\n    tbody.innerHTML += `<tr>\n      <td><span class=\"esocial-code\">${item.esocial || '\u2013'}<\/span><\/td>\n      <td>${item.groupLabel || '\u2013'}<\/td>\n      <td style=\"font-weight:500;\">${item.text}<\/td>\n      <td>${item.fonte || '\u2013'}<\/td>\n      <td>${item.traj || '\u2013'}<\/td>\n      <td>${item.danos || '\u2013'}<\/td>\n      <td>${item.medidas || 'Nenhuma identificada'}<\/td>\n      <td>${item.epc || '\u2013'}<\/td>\n      <td><span class=\"badge ${aihaClass(d.cat)}\">${aihaLabel(d.cat)}<\/span><\/td>\n      <td><span class=\"status-badge ${statusLabel[1]}\">${statusLabel[0]}<\/span><\/td>\n    <\/tr>`;\n  });\n}\n\nfunction filterInv(f) {\n  invFilter = f;\n  buildInventario();\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   SCREEN 5 \u2014 PLANO DE A\u00c7\u00c3O\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nfunction buildPlanoAcao() {\n  const risks = checklistData.filter(d => d.checked && d.cat >= 2);\n  const container = document.getElementById('action-cards-container');\n  container.innerHTML = '';\n\n  if (risks.length === 0) {\n    container.innerHTML = `<div class=\"card\" style=\"text-align:center;padding:32px;color:var(--gray-500);\">Nenhum risco Cat. 2 ou superior identificado. Parab\u00e9ns \u2014 a empresa apresenta bom n\u00edvel ergon\u00f4mico!<\/div>`;\n    return;\n  }\n\n  risks.forEach((d, idx) => {\n    const item = d.item;\n    if (!item) return;\n    const catLabel = d.cat === 2 ? 'Moderado' : d.cat === 3 ? 'S\u00e9rio' : 'Cr\u00edtico';\n    const prazo = d.cat >= 4 ? '15 dias' : d.cat === 3 ? '30 dias' : '90 dias';\n\n    const card = document.createElement('div');\n    card.className = 'action-card';\n    card.innerHTML = `\n      <div class=\"action-head\">\n        <div class=\"action-num\">${idx+1}<\/div>\n        <div class=\"action-title\">${item.text}<\/div>\n        <span class=\"badge ${aihaClass(d.cat)}\" style=\"margin-left:8px;\">${catLabel}<\/span>\n      <\/div>\n      <div class=\"action-body\">\n        <div class=\"action-grid\">\n          <div class=\"action-field span2\" style=\"grid-column:span 2;\">\n            <label>O qu\u00ea \u2014 Medida recomendada<\/label>\n            <textarea placeholder=\"Descreva a a\u00e7\u00e3o corretiva ou preventiva necess\u00e1ria\u2026\">${item.epc && item.epc !== '\u2013' ? 'Implantar\/adquirir: ' + item.epc + '. Revisar o layout e condi\u00e7\u00f5es do posto conforme NR 17.' : 'Revisar as condi\u00e7\u00f5es do posto de trabalho e implementar medidas de engenharia ou administrativas para eliminar ou controlar o fator de risco.'}<\/textarea>\n          <\/div>\n          <div class=\"action-field\">\n            <label>Quem \u2014 Respons\u00e1vel<\/label>\n            <input type=\"text\" placeholder=\"Nome ou setor respons\u00e1vel\">\n          <\/div>\n          <div class=\"action-field\">\n            <label>Quando \u2014 Prazo<\/label>\n            <input type=\"text\" value=\"${prazo}\" placeholder=\"Ex: 30 dias\">\n          <\/div>\n          <div class=\"action-field\">\n            <label>Status<\/label>\n            <select>\n              <option>A iniciar<\/option>\n              <option>Em andamento<\/option>\n              <option>Conclu\u00eddo<\/option>\n              <option>Cancelado<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"action-field span2\" style=\"grid-column:span 2;\">\n            <label>Como \u2014 Detalhamento<\/label>\n            <input type=\"text\" placeholder=\"Descreva o m\u00e9todo de implementa\u00e7\u00e3o\">\n          <\/div>\n          <div class=\"action-field\">\n            <label>Quanto \u2014 Investimento estimado<\/label>\n            <input type=\"text\" placeholder=\"Ex: R$ 1.200,00\">\n          <\/div>\n        <\/div>\n        <div style=\"font-size:11px;color:var(--gray-500);padding-top:4px;\">\n          Ref. normativa: <strong>${item.norm}<\/strong> \u00b7 eSocial: <strong>${item.esocial}<\/strong> \u00b7 Risco: <strong>${aihaLabel(d.cat)}<\/strong>\n        <\/div>\n      <\/div>\n    `;\n    container.appendChild(card);\n  });\n\n  \/\/ Signature block\n  const resp = document.getElementById('responsavel') ? document.getElementById('responsavel').value : '';\n  const reg = document.getElementById('registro') ? document.getElementById('registro').value : '';\n  const empresa = document.getElementById('razao-social') ? document.getElementById('razao-social').value : '';\n  const dataFim = document.getElementById('data-fim') ? document.getElementById('data-fim').value : '';\n\n  document.getElementById('sign-responsavel').textContent = resp || 'Respons\u00e1vel T\u00e9cnico';\n  document.getElementById('sign-registro').textContent = reg || '';\n  document.getElementById('data-assinatura').textContent =\n    empresa + (dataFim ? ' \u00b7 ' + new Date(dataFim + 'T12:00:00').toLocaleDateString('pt-BR', {day:'2-digit',month:'long',year:'numeric'}) : '');\n}\n\n\/* \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n   INIT\n\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 *\/\nwindow.addEventListener('DOMContentLoaded', () => {\n  addGHE();\n  buildChecklist();\n\n  \/\/ Set today as default dates\n  const today = new Date().toISOString().slice(0,10);\n  document.getElementById('data-inicio').value = today;\n  document.getElementById('data-fim').value = today;\n});\n<\/script>\n<\/body>\n<\/html>\n\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>AEP Sistema \u2014 NR 17 \u00b7 NR 01 \u00b7 eSocial Vitena | Comunica\u00e7\u00e3o Digital Software em teste comercial Autorizado \u00b7 Dr. Nicolas Fischer \u2014 SBC 56785 \/ RS AEP Sistema NR 17 \u00b7 NR 01 \u00b7 eSocial 1 Identifica\u00e7\u00e3o 2 Checklist AEP 3 Dashboard 4 Invent\u00e1rio PGR 5 Plano de A\u00e7\u00e3o v2.1 \u00b7 NR 17\/2021&hellip; <a class=\"more-link\" href=\"https:\/\/agenciavitena.com\/index.php\/teste-atila\/\">Continuar lendo <span class=\"screen-reader-text\">Teste &#8211; \u00c1tila<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-3383","page","type-page","status-publish","hentry","entry"],"_links":{"self":[{"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/pages\/3383","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/comments?post=3383"}],"version-history":[{"count":4,"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/pages\/3383\/revisions"}],"predecessor-version":[{"id":3387,"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/pages\/3383\/revisions\/3387"}],"wp:attachment":[{"href":"https:\/\/agenciavitena.com\/index.php\/wp-json\/wp\/v2\/media?parent=3383"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}