{"id":5603,"date":"2026-08-20T22:18:33","date_gmt":"2026-08-21T02:18:33","guid":{"rendered":"https:\/\/www.manaus.am.gov.br\/semef\/?page_id=5603"},"modified":"2026-08-31T16:16:19","modified_gmt":"2026-08-31T20:16:19","slug":"estaduais","status":"publish","type":"page","link":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/","title":{"rendered":"Estaduais"},"content":{"rendered":"\n<div class=\"viz-root\" id=\"viz-root\">\n<style>\n\/* \u2500\u2500 design tokens (escopados em .viz-root, nunca em :root) \u2500\u2500 *\/\n.viz-root{\n  color-scheme:light;\n  --viz-page:#f9f9f7;--viz-s1:#fcfcfb;--viz-s2:#f0efec;\n  --viz-ink:#0b0b0b;--viz-ink2:#52514e;--viz-muted:#898781;\n  --viz-grid:#e1e0d9;--viz-axis:#c3c2b7;--viz-ring:rgba(11,11,11,.10);\n  --viz-c1:#2a78d6;--viz-c2:#eb6834;--viz-c3:#1baf7a;--viz-c4:#eda100;--viz-c5:#e87ba4;--viz-c6:#4a3aa7;\n  --viz-ok:#006300;--viz-warn:#a06000;--viz-bad:#c0392b;\n  --viz-ok-bg:#e6f4e6;--viz-warn-bg:#fff3cd;--viz-bad-bg:#fde8e8;\n}\n\n\/* reset e base \u2014 escopados a .viz-root e seus descendentes apenas (n\u00e3o vaza para o site host) *\/\n.viz-root,.viz-root *,.viz-root *::before,.viz-root *::after{box-sizing:border-box;margin:0;padding:0}\n.viz-root{\n  display:block;\n  font-family:system-ui,-apple-system,\"Segoe UI\",sans-serif;\n  background:var(--viz-page);color:var(--viz-ink);\n  font-size:14px;line-height:1.5;\n  padding-bottom:56px;max-width:780px;margin:0 auto;overflow-x:hidden;\n}\n\n\/* \u2500\u2500 header \u2500\u2500 *\/\n.viz-root .hdr{background:var(--viz-s1);border-bottom:1px solid var(--viz-ring);position:sticky;top:0;z-index:30}\n.viz-root .hdr-inner{max-width:780px;margin:0 auto;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}\n.viz-root .hdr-title .hdr-h1{font-size:14.5px;font-weight:700;letter-spacing:-.01em;line-height:1.25}\n.viz-root .hdr-title p{font-size:11px;color:var(--viz-muted);margin-top:2px}\n.viz-root .viz-btn{border:1px solid var(--viz-ring);background:var(--viz-s2);color:var(--viz-ink2);border-radius:8px;padding:5px 12px;font-size:12px;cursor:pointer;transition:background .12s;white-space:nowrap}\n.viz-root .viz-btn:hover{background:var(--viz-grid)}\n\n\/* \u2500\u2500 filter bar \u2500\u2500 *\/\n.viz-root .fbar{border-bottom:1px solid var(--viz-ring);background:var(--viz-s1)}\n.viz-root .fbar-inner{max-width:780px;margin:0 auto;padding:9px 14px;display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;min-height:44px}\n.viz-root .fbar-inner2{padding-top:0;border-top:1px dashed var(--viz-ring)}\n.viz-root .fgroup-wrap-obj{flex:0 0 auto}\n.viz-root .fselect-obj{width:220px;min-width:0}\n.viz-root .fbar-inner2 .chip-clear{margin-left:auto}\n.viz-root .fgroup-wrap{display:flex;align-items:center;gap:6px;flex-wrap:wrap}\n.viz-root .flabel{font-size:10px;color:var(--viz-muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;display:inline-flex;align-items:center;height:30px}\n.viz-root .fgroup{display:flex;gap:4px;flex-wrap:wrap;align-items:center}\n\n\/* \u2500\u2500 chips (Ano) \u2500\u2500 *\/\n.viz-root .chip{\n  box-sizing:border-box;height:30px;\n  border:1px solid var(--viz-ring);background:var(--viz-s2);color:var(--viz-ink2);\n  border-radius:100px;padding:0 13px;font-size:11.5px;font-weight:500;\n  cursor:pointer;user-select:none;transition:all .12s;white-space:nowrap;\n  display:inline-flex;align-items:center;\n}\n.viz-root .chip:hover:not(.off){border-color:var(--viz-c1);color:var(--viz-c1)}\n.viz-root .chip.on{background:var(--viz-c1);border-color:var(--viz-c1);color:#fff}\n.viz-root .chip.off{opacity:.28;cursor:default;border-style:dashed}\n.viz-root .chip-clear{margin-left:6px;border-color:transparent;background:transparent;color:var(--viz-muted);font-size:11px}\n.viz-root .chip-clear.has-filter{color:var(--viz-bad);border-color:var(--viz-bad);background:var(--viz-bad-bg)}\n.viz-root .chip-clear:hover{background:var(--viz-bad-bg);border-color:var(--viz-bad);color:var(--viz-bad)}\n\n\/* \u2500\u2500 select dropdown (Parlamentar) \u2500\u2500 *\/\n.viz-root .fselect{\n  box-sizing:border-box;height:30px;max-width:100%;\n  border:1px solid var(--viz-ring);background:var(--viz-s2);color:var(--viz-ink2);\n  border-radius:8px;padding:0 10px;font-size:12px;font-weight:500;\n  cursor:pointer;transition:all .12s;min-width:120px;\n  display:inline-flex;align-items:center;\n}\n.viz-root .fselect:hover{border-color:var(--viz-c1);color:var(--viz-c1)}\n.viz-root .fselect:focus{outline:none;border-color:var(--viz-c1)}\n.viz-root .fselect option{color:var(--viz-ink);background:var(--viz-s1)}\n\n\/* \u2500\u2500 main \u2500\u2500 *\/\n.viz-root .main{max-width:780px;margin:0 auto;padding:16px 14px;display:flex;flex-direction:column;gap:18px;overflow-x:hidden}\n\n\/* \u2500\u2500 KPI \u2500\u2500 *\/\n.viz-root .kpi-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}\n.viz-root .kpi{background:var(--viz-s1);border:1px solid var(--viz-ring);border-radius:12px;padding:12px 13px;min-width:0}\n.viz-root .kpi-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--viz-muted);margin-bottom:4px}\n.viz-root .kpi-val{font-size:20px;font-weight:800;letter-spacing:-.03em;line-height:1;word-break:break-word}\n.viz-root .kpi-sub{font-size:11px;color:var(--viz-ink2);margin-top:3px}\n\n\/* \u2500\u2500 chart grid \u2500\u2500 *\/\n.viz-root .viz-row{display:grid;gap:14px}\n.viz-root .viz-row.r21{grid-template-columns:1fr}\n.viz-root .viz-row.r11{grid-template-columns:1fr}\n\n.viz-root .viz-card{background:var(--viz-s1);border:1px solid var(--viz-ring);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}\n.viz-root .card-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}\n.viz-root .viz-card-title{font-size:13px;font-weight:700}\n.viz-root .card-sub{font-size:11px;color:var(--viz-muted);margin-top:1px}\n.viz-root .clegend{display:flex;gap:12px;flex-wrap:wrap;align-items:center}\n.viz-root .ci{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--viz-ink2)}\n.viz-root .cdot{width:9px;height:9px;border-radius:2px;flex-shrink:0}\n.viz-root .cwrap{position:relative}\n.viz-root .viz-chart{width:100%;height:100%;display:block}\n.viz-root .viz-chart svg text{font-family:inherit}\n\n\/* \u2500\u2500 export buttons \u2500\u2500 *\/\n.viz-root .exp-group{display:flex;gap:6px;align-items:center;flex-wrap:wrap}\n.viz-root .btn-exp{border:1px solid var(--viz-ring);background:var(--viz-s2);color:var(--viz-ink2);border-radius:7px;padding:4px 11px;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;white-space:nowrap}\n.viz-root .btn-exp:hover{background:var(--viz-grid)}\n.viz-root .btn-exp.csv:hover{border-color:#1baf7a;color:#1baf7a}\n\n\/* \u2500\u2500 table \u2500\u2500 *\/\n.viz-root .tcard{background:var(--viz-s1);border:1px solid var(--viz-ring);border-radius:12px;overflow:hidden}\n.viz-root .thdr{padding:13px 17px;border-bottom:1px solid var(--viz-ring);display:flex;align-items:center;justify-content:space-between;gap:10px}\n.viz-root .twrap{overflow-x:auto}\n.viz-root table{width:100%;border-collapse:collapse;font-size:12px}\n.viz-root thead{background:var(--viz-s2);position:sticky;top:0}\n.viz-root th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--viz-muted);white-space:nowrap}\n.viz-root th.r,.viz-root td.r{text-align:right;font-variant-numeric:tabular-nums}\n.viz-root th.sortable{cursor:pointer;user-select:none;transition:color .12s}\n.viz-root th.sortable:hover{color:var(--viz-ink)}\n.viz-root th.sortable.sorted{color:var(--viz-c1)}\n.viz-root .sort-ind{display:inline-block;font-size:9px;margin-left:3px;opacity:.85}\n.viz-root td{padding:7px 12px;border-bottom:1px solid var(--viz-grid);color:var(--viz-ink2);vertical-align:middle}\n.viz-root tr:last-child td{border-bottom:none}\n.viz-root tbody tr:hover td{background:var(--viz-s2)}\n.viz-root .ytag{display:inline-block;background:var(--viz-s2);border:1px solid var(--viz-ring);border-radius:3px;padding:1px 5px;font-size:10px;font-weight:700;color:var(--viz-muted)}\n.viz-root .ptag{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap}\n.viz-root .ebar{display:flex;align-items:center;gap:5px;min-width:86px}\n.viz-root .etrack{flex:1;height:4px;background:var(--viz-grid);border-radius:100px;overflow:hidden}\n.viz-root .efill{height:100%;border-radius:100px}\n.viz-root .epct{font-size:10px;color:var(--viz-ink2);font-variant-numeric:tabular-nums;min-width:30px;white-space:nowrap}\n.viz-root .tfoot td{font-weight:700;color:var(--viz-ink);background:var(--viz-s2);border-top:2px solid var(--viz-axis)}\n\/* \u2500\u2500 pagination \u2500\u2500 *\/\n.viz-root .tpag{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:11px 17px;border-top:1px solid var(--viz-ring)}\n.viz-root .tpag-info{font-size:11px;color:var(--viz-muted)}\n.viz-root .tpag-ctl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}\n.viz-root .tpag-lbl{font-size:11px;color:var(--viz-muted);display:flex;align-items:center;gap:6px}\n.viz-root .tpag-sel{border:1px solid var(--viz-ring);background:var(--viz-s2);color:var(--viz-ink2);border-radius:6px;padding:3px 8px;font-size:11px;cursor:pointer}\n.viz-root .tpag-btn{border:1px solid var(--viz-ring);background:var(--viz-s2);color:var(--viz-ink2);border-radius:6px;padding:4px 11px;font-size:11px;font-weight:600;cursor:pointer;transition:background .12s}\n.viz-root .tpag-btn:hover:not(:disabled){background:var(--viz-grid)}\n.viz-root .tpag-btn:disabled{opacity:.35;cursor:default}\n.viz-root .tpag-page{font-size:11px;color:var(--viz-ink2);white-space:nowrap;min-width:88px;text-align:center}\n\/* \u2500\u2500 A\u00e7\u00f5es \u2014 bot\u00e3o Visualizar \u2500\u2500 *\/\n.viz-root .acoes-cell{display:inline-flex;align-items:center;justify-content:center;gap:4px}\n.viz-root .dt-icon{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--viz-ring);border-radius:6px;color:var(--viz-ink2);cursor:pointer;padding:5px;transition:all .12s;line-height:0}\n.viz-root .dt-icon:hover{background:var(--viz-s2);border-color:var(--viz-c1);color:var(--viz-c1)}\n\n\/* \u2500\u2500 Modal de Detalhes da Emenda \u2500\u2500 *\/\n.viz-root .dt-modal-backdrop{position:fixed;inset:0;background:rgba(11,11,11,.4);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}\n.viz-root .dt-modal{background:var(--viz-s1);border:1px solid var(--viz-ring);border-radius:14px;padding:16px;min-width:0;max-width:620px;width:100%;max-height:85vh;overflow:auto;box-shadow:0 16px 48px rgba(0,0,0,.28);display:flex;flex-direction:column;gap:16px}\n.viz-root .dt-modal-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}\n.viz-root .dt-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}\n.viz-root .dt-modal-title{font-size:15px;font-weight:800;color:var(--viz-ink);letter-spacing:-.01em}\n.viz-root .dt-modal-sub{font-size:12px;color:var(--viz-muted);margin-top:2px}\n.viz-root .dt-modal-close{background:none;border:none;cursor:pointer;color:var(--viz-muted);font-size:16px;padding:2px 4px;line-height:1}\n.viz-root .dt-modal-close:hover{color:var(--viz-ink)}\n.viz-root .btn-portal-sm{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--viz-c3);background:transparent;color:var(--viz-c3);border-radius:7px;padding:3px 9px;font-size:10.5px;font-weight:600;cursor:pointer;text-decoration:none;transition:background .12s;white-space:nowrap}\n.viz-root .btn-portal-sm:hover{background:var(--viz-c3);color:#fff}\n.viz-root .dt-section{display:flex;flex-direction:column;gap:4px}\n.viz-root .dt-row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n.viz-root .dt-row2.dt-row3{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}\n@media(max-width:520px){.viz-root .dt-row2{grid-template-columns:1fr}}\n.viz-root .dt-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--viz-muted)}\n.viz-root .dt-text{font-size:12.5px;color:var(--viz-ink2);line-height:1.5;text-align:justify;text-justify:inter-word}\n.viz-root .dt-text-plain{font-size:12.5px;color:var(--viz-ink2);line-height:1.5}\n.viz-root .dt-plano-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid var(--viz-grid)}\n.viz-root .dt-plano-row:last-child{border-bottom:none}\n.viz-root .dt-plano-num{font-weight:700;color:var(--viz-c1);font-variant-numeric:tabular-nums;font-size:11.5px;white-space:nowrap}\n.viz-root .dt-plano-link{text-decoration:none;display:inline-block}\n.viz-root .dt-plano-link:hover{text-decoration:underline}\n.viz-root .dt-plano-obj{font-size:10.5px;color:var(--viz-muted);margin-top:3px;max-width:320px;line-height:1.4;text-align:justify;text-justify:inter-word}\n.viz-root .dt-plano-val{font-weight:700;color:var(--viz-ink);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}\n.viz-root .dt-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px}\n.viz-root .dt-ne-toggle{background:none;border:1px solid var(--viz-ring);border-radius:6px;color:var(--viz-ink2);font-size:10.5px;font-weight:600;cursor:pointer;padding:3px 9px;transition:all .12s}\n.viz-root .dt-ne-toggle:hover{background:var(--viz-s2);border-color:var(--viz-c1);color:var(--viz-c1)}\n.viz-root .dt-ne-wrap{border:1px solid var(--viz-ring);border-radius:8px;overflow:hidden;max-height:260px;overflow-y:auto}\n.viz-root .dt-ne-table{width:100%;border-collapse:collapse;font-size:11px}\n.viz-root .dt-ne-table thead{background:var(--viz-s2);position:sticky;top:0}\n.viz-root .dt-ne-table th{text-align:left;padding:6px 10px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--viz-muted);white-space:nowrap}\n.viz-root .dt-ne-table th.r,.viz-root .dt-ne-table td.r{text-align:right;font-variant-numeric:tabular-nums}\n.viz-root .dt-ne-table td{padding:6px 10px;border-bottom:1px solid var(--viz-grid);color:var(--viz-ink2);vertical-align:middle}\n.viz-root .dt-ne-table tr:last-child td{border-bottom:none}\n.viz-root .dt-ne-num{font-weight:600;color:var(--viz-c1);font-size:10.5px;white-space:nowrap}\n.viz-root .dt-ne-ben{font-size:10.5px}\n.viz-root .dt-ne-plano{display:block;font-size:9px;color:var(--viz-muted);margin-top:1px}\n\n\/* section heading *\/\n.viz-root .sh{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--viz-muted);margin-bottom:-4px}\n.viz-root .nodata{display:flex;align-items:center;justify-content:center;height:100%;color:var(--viz-muted);font-size:13px;position:absolute;inset:0}\n<\/style>\n\n<!-- \u2500\u2500 Header \u2500\u2500 -->\n<div class=\"hdr\">\n  <div class=\"hdr-inner\">\n    <div class=\"hdr-title\">\n      <div class=\"hdr-h1\">Emenda Estadual Individual e de Bancada<\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<!-- \u2500\u2500 Filters \u2500\u2500 -->\n<div class=\"fbar\">\n  <div class=\"fbar-inner\">\n    <div class=\"fgroup-wrap\">\n      <span class=\"flabel\">Ano<\/span>\n      <select class=\"fselect\" id=\"viz-yf-select\"><\/select>\n    <\/div>\n    <div class=\"fgroup-wrap\">\n      <span class=\"flabel\">Deputado Estadual<\/span>\n      <select class=\"fselect\" id=\"viz-pf-select\"><\/select>\n    <\/div>\n    <div class=\"fgroup-wrap\">\n      <span class=\"flabel\">Fun\u00e7\u00e3o<\/span>\n      <select class=\"fselect\" id=\"viz-ff-select\"><\/select>\n    <\/div>\n  <\/div>\n  <div class=\"fbar-inner fbar-inner2\">\n    <div class=\"fgroup-wrap\">\n      <span class=\"flabel\">Tipo<\/span>\n      <select class=\"fselect\" id=\"viz-tf-select\"><\/select>\n    <\/div>\n    <div class=\"fgroup-wrap fgroup-wrap-obj\">\n      <span class=\"flabel\">Objeto<\/span>\n      <select class=\"fselect fselect-obj\" id=\"viz-of-select\"><\/select>\n    <\/div>\n    <div class=\"chip chip-clear\" id=\"viz-clear-chip\">\u2715 Limpar filtros<\/div>\n  <\/div>\n<\/div>\n\n<!-- \u2500\u2500 Main \u2500\u2500 -->\n<div class=\"main\">\n\n  <!-- KPIs -->\n  <div class=\"kpi-row\">\n    <div class=\"kpi\"><div class=\"kpi-lbl\">Emendas<\/div><div class=\"kpi-val\" id=\"viz-k-n\">\u2014<\/div><div class=\"kpi-sub\" id=\"viz-k-anos\">\u2014<\/div><\/div>\n    <div class=\"kpi\"><div class=\"kpi-lbl\">Valor da Emenda<\/div><div class=\"kpi-val\" id=\"viz-k-auth\">\u2014<\/div><div class=\"kpi-sub\">Dota\u00e7\u00e3o total<\/div><\/div>\n    <div class=\"kpi\"><div class=\"kpi-lbl\">Total Empenhado<\/div><div class=\"kpi-val\" id=\"viz-k-emp\">\u2014<\/div><\/div>\n    <div class=\"kpi\"><div class=\"kpi-lbl\">Total Pago<\/div><div class=\"kpi-val\" id=\"viz-k-pago\">\u2014<\/div><\/div>\n  <\/div>\n\n  <!-- Table -->\n  <p class=\"sh\">Detalhamento por Emenda<\/p>\n  <div class=\"tcard\">\n    <div class=\"thdr\">\n      <span class=\"viz-card-title\">Todas as Emendas<\/span>\n      <div class=\"exp-group\">\n        <button class=\"btn-exp csv\" id=\"viz-btn-csv\" title=\"Exportar CSV\">\u2b07 CSV<\/button>\n      <\/div>\n    <\/div>\n    <div class=\"twrap\">\n      <table id=\"viz-main-tbl\">\n        <thead><tr>\n          <th class=\"sortable\" data-key=\"ano\">Ano<span class=\"sort-ind\"><\/span><\/th>\n          <th class=\"sortable\" data-key=\"emenda\">N\u00ba Emenda<span class=\"sort-ind\"><\/span><\/th>\n          <th class=\"sortable\" data-key=\"parlamentar\">Deputado Estadual<span class=\"sort-ind\"><\/span><\/th>\n          <th class=\"r sortable\" data-key=\"autorizado\">Valor da Emenda<span class=\"sort-ind\"><\/span><\/th>\n          <th class=\"r sortable\" data-key=\"empenhado\">Empenhado<span class=\"sort-ind\"><\/span><\/th>\n          <th class=\"r sortable\" data-key=\"liquidado\">Liquidado<span class=\"sort-ind\"><\/span><\/th>\n          <th class=\"r sortable\" data-key=\"pago\">Pago<span class=\"sort-ind\"><\/span><\/th>\n          <th style=\"text-align:center\">A\u00e7\u00f5es<\/th>\n        <\/tr><\/thead>\n        <tbody id=\"viz-tb\"><\/tbody>\n        <tfoot id=\"viz-tf\"><\/tfoot>\n      <\/table>\n    <\/div>\n    <div class=\"tpag\">\n      <span id=\"viz-tpag-info\" class=\"tpag-info\">\u2014<\/span>\n      <div class=\"tpag-ctl\">\n        <label class=\"tpag-lbl\">Por p\u00e1gina\n          <select id=\"viz-tpag-size\" class=\"tpag-sel\">\n            <option value=\"10\">10<\/option>\n            <option value=\"15\">15<\/option>\n            <option value=\"30\">30<\/option>\n            <option value=\"all\">Todos<\/option>\n          <\/select>\n        <\/label>\n        <button class=\"tpag-btn\" id=\"viz-tpag-prev\">\u2039 Anterior<\/button>\n        <span id=\"viz-tpag-page\" class=\"tpag-page\">P\u00e1gina 1 de 1<\/span>\n        <button class=\"tpag-btn\" id=\"viz-tpag-next\">Pr\u00f3xima \u203a<\/button>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- Distribui\u00e7\u00e3o por Secretaria -->\n  <div class=\"viz-row\" style=\"grid-template-columns:1fr\">\n\n    <div class=\"viz-card\">\n      <div class=\"card-hdr\">\n        <div><div class=\"viz-card-title\">Distribui\u00e7\u00e3o por Secretaria \/ Unidade<\/div><div class=\"card-sub\">Total empenhado<\/div><\/div>\n      <\/div>\n      <div class=\"clegend\" id=\"viz-sec-leg\" style=\"flex-wrap:wrap\"><\/div>\n      <div class=\"cwrap\" style=\"height:320px;position:relative\">\n        <div id=\"viz-c-sec\" class=\"viz-chart\"><\/div>\n        <div class=\"nodata\" id=\"viz-nd-sec\" style=\"display:none\">Sem dados de empenho<\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n\n<\/div>\n\n<!-- \u2500\u2500 Detalhes da Emenda \u2014 modal \u2500\u2500 -->\n<div class=\"dt-modal-backdrop\" id=\"viz-dt-modal-backdrop\">\n  <div class=\"dt-modal\" id=\"viz-dt-modal\">\n    <div class=\"dt-modal-hdr\">\n      <div>\n        <div class=\"dt-title-row\">\n          <span class=\"dt-modal-title\" id=\"viz-dt-title\"><\/span>\n        <\/div>\n        <div class=\"dt-modal-sub\" id=\"viz-dt-sub\"><\/div>\n      <\/div>\n      <button class=\"dt-modal-close\" id=\"viz-dt-modal-close\" title=\"Fechar\">\u2715<\/button>\n    <\/div>\n\n    <div class=\"dt-section\">\n      <div class=\"dt-label\">Objeto<\/div>\n      <div class=\"dt-text\" id=\"viz-dt-objeto\"><\/div>\n    <\/div>\n\n    <div class=\"dt-row2 dt-row3\">\n      <div class=\"dt-section\">\n        <div class=\"dt-label\">Tipo de Emenda<\/div>\n        <div class=\"dt-text-plain\" id=\"viz-dt-tipo\"><\/div>\n      <\/div>\n      <div class=\"dt-section\">\n        <div class=\"dt-label\">Forma de Repasse<\/div>\n        <div class=\"dt-text-plain\" id=\"viz-dt-repasse\"><\/div>\n      <\/div>\n      <div class=\"dt-section\">\n        <div class=\"dt-label\">Secretaria \/ Unidade<\/div>\n        <div class=\"dt-text-plain\" id=\"viz-dt-sec\"><\/div>\n      <\/div>\n      <div class=\"dt-section\">\n        <div class=\"dt-label\">Fun\u00e7\u00e3o de Governo<\/div>\n        <div class=\"dt-text-plain\" id=\"viz-dt-funcao\"><\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"dt-section\" id=\"viz-dt-planos-wrap\">\n      <div class=\"dt-label\">Instrumento (Conv\u00eanio) Vinculado<\/div>\n      <div id=\"viz-dt-planos\"><\/div>\n    <\/div>\n\n    <div class=\"dt-section\">\n      <div class=\"dt-label-row\">\n        <div class=\"dt-label\">Notas de Empenho<\/div>\n        <button class=\"dt-ne-toggle\" id=\"viz-dt-ne-toggle\">\u25b6 Ver empenhos<\/button>\n      <\/div>\n      <div class=\"dt-ne-wrap\" id=\"viz-dt-ne-wrap\" style=\"display:none\">\n        <table class=\"dt-ne-table\">\n          <thead><tr>\n            <th>N\u00ba Empenho<\/th><th>Benefici\u00e1rio<\/th>\n            <th class=\"r\">Empenhado<\/th><th class=\"r\">Liquidado<\/th><th class=\"r\">Pago<\/th>\n          <\/tr><\/thead>\n          <tbody id=\"viz-dt-ne-body\"><\/tbody>\n        <\/table>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n\"use strict\";\n\n\/* \u2500\u2500 DATA \u2500\u2500 *\/\nvar VIZ_DATA = [\n  {\n    \"ano\": 2025,\n    \"emenda\": \"073\/2025\",\n    \"parlamentar\": \"Dan C\u00e2mara\",\n    \"tipo\": \"Individual\",\n    \"objeto\": \"Melhoria Estrututal do Parque do Mindu\",\n    \"sec\": \"SEMMAS\",\n    \"funcao\": \"18 - Gest\u00e3o Ambiental\",\n    \"autorizado\": 299999.96,\n    \"empenhado\": 299999.96,\n    \"liquidado\": 0,\n    \"pago\": 0,\n    \"planos\": [\n      {\n        \"plano\": \"002\/2025\",\n        \"valor\": 299999.96,\n        \"empenhado\": 299999.96,\n        \"liquidado\": 0,\n        \"pago\": 0,\n        \"objeto\": \"Melhoria Estrututal do Parque do Mindu\"\n      }\n    ],\n    \"nes\": [\n      {\n        \"ne\": \"2026NE00244\",\n        \"ben\": \"ENS SERVICOS DE CONSTRU\u00c7AO LTDA\",\n        \"emp\": 299999.96,\n        \"liq\": 0,\n        \"pago\": 0,\n        \"plano\": \"002\/2025\",\n        \"sec\": \"SEMMAS\"\n      }\n    ]\n  },\n  {\n    \"ano\": 2024,\n    \"emenda\": \"088\/2024\",\n    \"parlamentar\": \"Daniel Almeida\",\n    \"tipo\": \"Individual\",\n    \"objeto\": \"Aquisi\u00e7\u00e3o de Materiais Paradid\u00e1ticos\",\n    \"sec\": \"SEMED\",\n    \"funcao\": \"12 - Educa\u00e7\u00e3o\",\n    \"autorizado\": 2000000,\n    \"empenhado\": 1999984,\n    \"liquidado\": 1999984,\n    \"pago\": 1999984,\n    \"planos\": [\n      {\n        \"plano\": \"003\/2024\",\n        \"valor\": 2000000,\n        \"empenhado\": 1999984,\n        \"liquidado\": 1999984,\n        \"pago\": 1999984,\n        \"objeto\": \"Aquisi\u00e7\u00e3o de Materiais Paradid\u00e1ticos\"\n      }\n    ],\n    \"nes\": [\n      {\n        \"ne\": \"2025NE03861\",\n        \"ben\": \"BRINQUE BRASIL EDITORIAL LTDA\",\n        \"emp\": 1999984,\n        \"liq\": 1999984,\n        \"pago\": 1999984,\n        \"plano\": \"003\/2024\",\n        \"sec\": \"SEMED\"\n      }\n    ]\n  },\n  {\n    \"ano\": 2023,\n    \"emenda\": \"008\/2023\",\n    \"parlamentar\": \"Nejmi Aziz\",\n    \"tipo\": \"Individual\",\n    \"objeto\": \"Aditivo a Ata do Asfalta Manaus I -  Recupera\u00e7\u00e3o de sistema vi\u00e1rio na sede do munic\u00edpio de Manaus. 2\",\n    \"sec\": \"SEMINF\",\n    \"funcao\": \"15 - Urbanismo\",\n    \"autorizado\": 1599197.5,\n    \"empenhado\": 0,\n    \"liquidado\": 0,\n    \"pago\": 0,\n    \"planos\": [\n      {\n        \"plano\": \"5 AD 002\/2021\",\n        \"valor\": 1599197.5,\n        \"empenhado\": 0,\n        \"liquidado\": 0,\n        \"pago\": 0,\n        \"objeto\": \"Aditivo a Ata do Asfalta Manaus I -  Recupera\u00e7\u00e3o de sistema vi\u00e1rio na sede do munic\u00edpio de Manaus. 2\"\n      }\n    ],\n    \"nes\": [\n    ]\n  },\n  {\n    \"ano\": 2023,\n    \"emenda\": \"059\/2023\",\n    \"parlamentar\": \"Dr. Gomes\",\n    \"tipo\": \"Bancada\",\n    \"objeto\": \"Aditivo a Ata do Asfalta Manaus I -  Recupera\u00e7\u00e3o de sistema vi\u00e1rio na sede do munic\u00edpio de Manaus. 3\",\n    \"sec\": \"SEMINF\",\n    \"funcao\": \"16 - Habita\u00e7\u00e3o\",\n    \"autorizado\": 4000802.5,\n    \"empenhado\": 0,\n    \"liquidado\": 0,\n    \"pago\": 0,\n    \"planos\": [\n      {\n        \"plano\": \"5 AD 002\/2021\",\n        \"valor\": 4000802.5,\n        \"empenhado\": 0,\n        \"liquidado\": 0,\n        \"pago\": 0,\n        \"objeto\": \"Aditivo a Ata do Asfalta Manaus I -  Recupera\u00e7\u00e3o de sistema vi\u00e1rio na sede do munic\u00edpio de Manaus. 3\"\n      }\n    ],\n    \"nes\": [\n    ]\n  },\n  {\n    \"ano\": 2023,\n    \"emenda\": \"086\/2023\",\n    \"parlamentar\": \"Delegado Pablo\",\n    \"tipo\": \"Individual\",\n    \"objeto\": \"Aquisi\u00e7\u00e3o de equipamentos permanentes para aux\u00edlio de desastres e drones, visando o reaparelhamento da Guarda Municipal de Manaus.\",\n    \"sec\": \"SEMSEG\",\n    \"funcao\": \"06 - Seguran\u00e7a P\u00fablica\",\n    \"autorizado\": 149679.32,\n    \"empenhado\": 132079.01,\n    \"liquidado\": 128792.76000000001,\n    \"pago\": 121870.24,\n    \"planos\": [\n      {\n        \"plano\": \"001\/2023\",\n        \"valor\": 149679.32,\n        \"empenhado\": 132079.01,\n        \"liquidado\": 128792.76000000001,\n        \"pago\": 121870.24,\n        \"objeto\": \"Aquisi\u00e7\u00e3o de equipamentos permanentes para aux\u00edlio de desastres e drones, visando o reaparelhamento da Guarda Municipal de Manaus.\"\n      }\n    ],\n    \"nes\": [\n      {\n        \"ne\": \"2026NE00163\",\n        \"ben\": \"PIVNET TECNOLOGIA LTDA\",\n        \"emp\": 65492,\n        \"liq\": 65492,\n        \"pago\": 65492,\n        \"plano\": \"001\/2023\",\n        \"sec\": \"SEMSEG\"\n      },\n      {\n        \"ne\": \"2025NE00276\",\n        \"ben\": \"BT COMERCIO INTELIGENTE LTDA\",\n        \"emp\": 3828.6,\n        \"liq\": 3828.6,\n        \"pago\": 3828.6,\n        \"plano\": \"001\/2023\",\n        \"sec\": \"SEMSEG\"\n      },\n      {\n        \"ne\": \"2025NE00598\",\n        \"ben\": \"SMART INFO COMERCIO DE EQUIPAMENTOS E SUPRIMENTOS DE INFORMATICA LTDA\",\n        \"emp\": 3286.25,\n        \"liq\": 0,\n        \"pago\": 0,\n        \"plano\": \"001\/2023\",\n        \"sec\": \"SEMSEG\"\n      },\n      {\n        \"ne\": \"2025NE00633\",\n        \"ben\": \"PPTECH COMERCIO E SERVI\u00c7OS LTDA\",\n        \"emp\": 32698.59,\n        \"liq\": 32698.59,\n        \"pago\": 32698.59,\n        \"plano\": \"001\/2023\",\n        \"sec\": \"SEMSEG\"\n      },\n      {\n        \"ne\": \"2024NE00277\",\n        \"ben\": \"F B PEREIRA LTDA\",\n        \"emp\": 9596.97,\n        \"liq\": 9596.97,\n        \"pago\": 9596.97,\n        \"plano\": \"001\/2023\",\n        \"sec\": \"SEMSEG\"\n      },\n      {\n        \"ne\": \"2024NE00485\",\n        \"ben\": \"MICROTECNICA INFORMATICA LTDA\",\n        \"emp\": 7006.6,\n        \"liq\": 7006.6,\n        \"pago\": 84.08,\n        \"plano\": \"001\/2023\",\n        \"sec\": \"SEMSEG\"\n      },\n      {\n        \"ne\": \"2024NE00493\",\n        \"ben\": \"ECOPOLIE DA AMAZONIA LTDA\",\n        \"emp\": 10170,\n        \"liq\": 10170,\n        \"pago\": 10170,\n        \"plano\": \"001\/2023\",\n        \"sec\": \"SEMSEG\"\n      }\n    ]\n  },\n  {\n    \"ano\": 2021,\n    \"emenda\": \"027\/2021\",\n    \"parlamentar\": \"Alessandra Camp\u00ealo\",\n    \"tipo\": \"Individual\",\n    \"objeto\": \"Constru\u00e7\u00e3o de Passarela no Conjunto Promorar Dom Bosco.\",\n    \"sec\": \"SEMINF\",\n    \"funcao\": \"15 - Urbanismo\",\n    \"autorizado\": 150000,\n    \"empenhado\": 134219.37,\n    \"liquidado\": 134219.37,\n    \"pago\": 134219.37,\n    \"planos\": [\n      {\n        \"plano\": \"019\/2021\",\n        \"valor\": 150000,\n        \"empenhado\": 134219.37,\n        \"liquidado\": 134219.37,\n        \"pago\": 134219.37,\n        \"objeto\": \"Constru\u00e7\u00e3o de Passarela no Conjunto Promorar Dom Bosco.\"\n      }\n    ],\n    \"nes\": [\n      {\n        \"ne\": \"2023NE01603\",\n        \"ben\": \"USINORTE EMPREENDIMENTOS LTDA\",\n        \"emp\": 40495.52,\n        \"liq\": 40495.52,\n        \"pago\": 40495.52,\n        \"plano\": \"019\/2021\",\n        \"sec\": \"SEMINF\"\n      },\n      {\n        \"ne\": \"2022NE00501\",\n        \"ben\": \"USINORTE EMPREENDIMENTOS LTDA\",\n        \"emp\": 93723.85,\n        \"liq\": 93723.85,\n        \"pago\": 93723.85,\n        \"plano\": \"019\/2021\",\n        \"sec\": \"SEMINF\"\n      }\n    ]\n  },\n  {\n    \"ano\": 2021,\n    \"emenda\": \"028\/2021\",\n    \"parlamentar\": \"Alessandra Camp\u00ealo\",\n    \"tipo\": \"Individual\",\n    \"objeto\": \"Reforma da pra\u00e7a com playground e academia ao ar livre na Rua Paraibano, s\/n\u00ba - Cidade de Deus.\",\n    \"sec\": \"SEMINF\",\n    \"funcao\": \"15 - Urbanismo\",\n    \"autorizado\": 150000,\n    \"empenhado\": 102763.84,\n    \"liquidado\": 102763.84,\n    \"pago\": 102763.84,\n    \"planos\": [\n      {\n        \"plano\": \"018\/2021\",\n        \"valor\": 150000,\n        \"empenhado\": 102763.84,\n        \"liquidado\": 102763.84,\n        \"pago\": 102763.84,\n        \"objeto\": \"Reforma da pra\u00e7a com playground e academia ao ar livre na Rua Paraibano, s\/n\u00ba - Cidade de Deus.\"\n      }\n    ],\n    \"nes\": [\n      {\n        \"ne\": \"2022NE00506\",\n        \"ben\": \"I M ENGENHARIA LTDA\",\n        \"emp\": 102763.84,\n        \"liq\": 102763.84,\n        \"pago\": 102763.84,\n        \"plano\": \"018\/2021\",\n        \"sec\": \"SEMINF\"\n      }\n    ]\n  }\n];\n\nvar ALL_YEARS = [2021,2023,2024,2025,2026];\nvar ALL_PARLS = ['Alessandra Camp\u00ealo','Dan C\u00e2mara','Daniel Almeida','Delegado Pablo','Dr. Gomes','Nejmi Aziz'];\nvar ALL_FUNCOES = ['06 - Seguran\u00e7a P\u00fablica','12 - Educa\u00e7\u00e3o','15 - Urbanismo','16 - Habita\u00e7\u00e3o','18 - Gest\u00e3o Ambiental'];\n\nfunction getTipo(e) { return e.tipo || 'Individual'; }\n\nfunction uniqueVals(arr) {\n  var seen = {}, out = [];\n  for (var i=0;i<arr.length;i++){\n    var v = arr[i];\n    if (!seen.hasOwnProperty(v)) { seen[v]=true; out.push(v); }\n  }\n  return out;\n}\n\nvar ALL_TIPOS = uniqueVals(VIZ_DATA.map(getTipo));\nvar ALL_OBJETOS = uniqueVals(VIZ_DATA.map(function(e){ return e.objeto; })).sort(function(a,b){ return a.localeCompare(b,'pt-BR'); });\n\nvar PC_L = {'Alessandra Camp\u00ealo':'#2a78d6','Dan C\u00e2mara':'#1baf7a','Daniel Almeida':'#eda100','Delegado Pablo':'#e87ba4','Dr. Gomes':'#4a3aa7','Nejmi Aziz':'#1b8f9e'};\nvar SC_L = ['#2a78d6','#eb6834','#1baf7a','#eda100','#e87ba4','#4a3aa7','#1b8f9e'];\n\n\/* \u2500\u2500 State \u2500\u2500 *\/\nvar fYear = 'all', fParl = 'all', fFunc = 'all', fTipo = 'all', fObjeto = 'all';\nvar sortKey = 'ano', sortDir = -1; \/\/ 1 = asc, -1 = desc \u2014 padr\u00e3o: ano mais recente primeiro\nvar pageSize = 10, curPage = 1; \/\/ pageSize: 10|15|30|'all'\n\n\/* \u2500\u2500 Utils \u2500\u2500 *\/\n\/* O WordPress reescreve todo caractere de \"e comercial\" isolado (fora de\n   entidades HTML reconhecidas) ao salvar o conte\u00fado \u2014 isso inclui o operador\n   logico duplo do JS, que vira token invalido e quebra a sintaxe do <script>\n   inteiro. Por isso evitamos esse caractere literal no codigo: usamos AND(...)\n   e a constante AMP no lugar dele. *\/\nvar AMP = String.fromCharCode(38);\nfunction AND() { for (var i=0;i<arguments.length;i++){ if(!arguments[i]) return false; } return true; }\nfunction g(id) { return document.getElementById(id); }\nfunction S(a,k) { var t=0; for(var i=0;i<a.length;i++){ t+=a[i][k]; } return t; }\nfunction fBRL(v) { return 'R$ '+v.toLocaleString('pt-BR',{minimumFractionDigits:0,maximumFractionDigits:0}); }\nfunction fM(v) {\n  if(!v) return 'R$ 0';\n  if(v>=1e6) return 'R$ '+(v\/1e6).toLocaleString('pt-BR',{minimumFractionDigits:2,maximumFractionDigits:2})+' mi';\n  if(v>=1e3) return 'R$ '+(v\/1e3).toLocaleString('pt-BR',{minimumFractionDigits:0,maximumFractionDigits:0})+' mil';\n  return fBRL(v);\n}\nfunction fL(v) {   \/* compact label *\/\n  if(!v||v<1) return '';\n  if(v>=1e6) return (v\/1e6).toLocaleString('pt-BR',{minimumFractionDigits:1,maximumFractionDigits:1})+'mi';\n  if(v>=1e3) return Math.round(v\/1e3)+'k';\n  return Math.round(v).toString();\n}\nfunction fP(v) { return v.toFixed(1)+'%'; }\nfunction muted() { return '#898781'; }\nfunction gridC() { return '#e1e0d9'; }\nfunction escAttr(s) { return String(s).replace(new RegExp(AMP,'g'),'&amp;').replace(\/\"\/g,'&quot;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;'); }\nfunction escHtml(s) { return String(s).replace(new RegExp(AMP,'g'),'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;'); }\n\/* trunca no MEIO: in\u00edcio...fim, preservando o come\u00e7o e o fim do texto *\/\nfunction truncMid(s, max) {\n  max = max || 46;\n  s = String(s);\n  if (s.length <= max) return s;\n  var keep = max - 1; \/\/ reserva 1 char pra retic\u00eancia\n  var head = Math.ceil(keep*0.6), tail = keep - head;\n  return s.slice(0, head) + '\u2026' + s.slice(s.length - tail);\n}\n\nfunction matchYear(e) { return fYear==='all' || e.ano===+fYear; }\nfunction matchParl(e) { return fParl==='all' || e.parlamentar===fParl; }\nfunction matchFunc(e) {\n  if (fFunc==='all') return true;\n  var parts = e.funcao.split(' \/ ');\n  for (var i=0;i<parts.length;i++){ if (parts[i].trim()===fFunc) return true; }\n  return false;\n}\nfunction matchTipo(e) { return fTipo==='all' || getTipo(e)===fTipo; }\nfunction matchObjeto(e) { return fObjeto==='all' || e.objeto===fObjeto; }\nfunction matchAll(e) { return AND(matchYear(e), matchParl(e), matchFunc(e), matchTipo(e), matchObjeto(e)); }\n\nfunction filtered() { return VIZ_DATA.filter(matchAll); }\n\n\/* \u2500\u2500 SORT (Tabela \"Todas as Emendas\") \u2500\u2500 *\/\nvar SORT_KEYS = {\n  ano:        function(e){ return e.ano; },\n  emenda:     function(e){ return e.emenda; },\n  parlamentar:function(e){ return e.parlamentar; },\n  autorizado: function(e){ return e.autorizado; },\n  empenhado:  function(e){ return e.empenhado; },\n  liquidado:  function(e){ return e.liquidado||0; },\n  pago:       function(e){ return e.pago; },\n  exec:       function(e){ return e.pago\/Math.max(e.autorizado,1); }\n};\nfunction sortRows(d){\n  if(!sortKey || !SORT_KEYS[sortKey]) return d;\n  var kf = SORT_KEYS[sortKey];\n  var out = d.slice();\n  out.sort(function(a,b){\n    var va=kf(a), vb=kf(b);\n    if(typeof va==='string') return va.localeCompare(vb,'pt-BR')*sortDir;\n    return (va-vb)*sortDir;\n  });\n  return out;\n}\nfunction setSort(key){\n  if(sortKey===key){ sortDir*=-1; } else { sortKey=key; sortDir=1; }\n  curPage=1;\n  renderAll();\n}\nfunction updateSortIndicators(){\n  var ths = document.querySelectorAll('#viz-main-tbl thead th.sortable');\n  for (var i=0;i<ths.length;i++){\n    var th = ths[i];\n    var ind = th.querySelector('.sort-ind');\n    if(th.getAttribute('data-key')===sortKey){\n      ind.textContent = sortDir===1 ? '\u25b2' : '\u25bc';\n      th.className += ' sorted';\n    } else {\n      ind.textContent = '';\n      th.className = th.className.replace(\/\\s*\\bsorted\\b\/g, '');\n    }\n  }\n}\n\n\/* \u2500\u2500 BIDIRECTIONAL FILTER \u2500\u2500 *\/\nfunction avYears() {\n  var out = {};\n  VIZ_DATA.filter(function(e){ return AND(matchParl(e), matchFunc(e), matchTipo(e), matchObjeto(e)); })\n    .forEach(function(e){ out[e.ano]=true; });\n  return out;\n}\nfunction avParls() {\n  var out = {};\n  VIZ_DATA.filter(function(e){ return AND(matchYear(e), matchFunc(e), matchTipo(e), matchObjeto(e)); })\n    .forEach(function(e){ out[e.parlamentar]=true; });\n  return out;\n}\nfunction avFuncs() {\n  var out = {};\n  VIZ_DATA.filter(function(e){ return AND(matchYear(e), matchParl(e), matchTipo(e), matchObjeto(e)); })\n    .forEach(function(e){\n      e.funcao.split(' \/ ').forEach(function(f){ out[f.trim()]=true; });\n    });\n  return out;\n}\nfunction avTipos() {\n  var out = {};\n  VIZ_DATA.filter(function(e){ return AND(matchYear(e), matchParl(e), matchFunc(e), matchObjeto(e)); })\n    .forEach(function(e){ out[getTipo(e)]=true; });\n  return out;\n}\nfunction avObjetos() {\n  var out = {};\n  VIZ_DATA.filter(function(e){ return AND(matchYear(e), matchParl(e), matchFunc(e), matchTipo(e)); })\n    .forEach(function(e){ out[e.objeto]=true; });\n  return out;\n}\n\n\/* Ano \/ Parlamentar \/ Fun\u00e7\u00e3o \/ Tipo \/ Objeto \u2014 select dropdowns *\/\nfunction buildSelect(selectId, items, active, avail, allLabel, formatFn) {\n  var sel = g(selectId);\n  var opts = ['<option value=\"all\">'+allLabel+'<\/option>'];\n  items.forEach(function(item){\n    if (!avail[item]) return;\n    var k = String(item);\n    var label = formatFn ? formatFn(item) : k;\n    opts.push('<option value=\"'+escAttr(k)+'\" title=\"'+escAttr(k)+'\">'+escAttr(label)+'<\/option>');\n  });\n  sel.innerHTML = opts.join('');\n  sel.value = active;\n}\n\nfunction renderFilters() {\n  buildSelect('viz-yf-select', ALL_YEARS, fYear, avYears(), 'Todos os anos');\n  buildSelect('viz-pf-select', ALL_PARLS, fParl, avParls(), 'Todos os deputados');\n  buildSelect('viz-ff-select', ALL_FUNCOES, fFunc, avFuncs(), 'Todas as fun\u00e7\u00f5es');\n  buildSelect('viz-tf-select', ALL_TIPOS, fTipo, avTipos(), 'Todos os tipos');\n  buildSelect('viz-of-select', ALL_OBJETOS, fObjeto, avObjetos(), 'Todos os objetos', function(o){ return truncMid(o,46); });\n  var cc = g('viz-clear-chip');\n  var hasFilter = fYear!=='all' || fParl!=='all' || fFunc!=='all' || fTipo!=='all' || fObjeto!=='all';\n  if (hasFilter) { cc.className = 'chip chip-clear has-filter'; }\n  else { cc.className = 'chip chip-clear'; }\n}\n\nfunction setYearFilter(v) { fYear=v; curPage=1; renderAll(); }\nfunction setParlFilter(v) { fParl=v; curPage=1; renderAll(); }\nfunction setFuncFilter(v) { fFunc=v; curPage=1; renderAll(); }\nfunction setTipoFilter(v) { fTipo=v; curPage=1; renderAll(); }\nfunction setObjetoFilter(v) { fObjeto=v; curPage=1; renderAll(); }\nfunction clearFilters() { fYear='all'; fParl='all'; fFunc='all'; fTipo='all'; fObjeto='all'; curPage=1; renderAll(); }\n\n\/* \u2500\u2500 KPIs \u2500\u2500 *\/\nfunction renderKPIs(d) {\n  var auth = S(d,'autorizado'), emp = S(d,'empenhado'), pago = S(d,'pago');\n  var years = uniqueVals(d.map(function(e){ return e.ano; })).sort(function(a,b){ return a-b; });\n\n  g('viz-k-n').textContent    = d.length;\n  g('viz-k-anos').textContent = years.length===1 ? 'Ano '+years[0] : years.length+' anos';\n  g('viz-k-auth').textContent = fM(auth);\n  g('viz-k-emp').textContent  = fM(emp);\n  g('viz-k-pago').textContent = fM(pago);\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\u2500\u2500\u2500\u2500\n   MINI-CHART ENGINE \u2014 SVG puro, sem lib externa\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\u2500\u2500\u2500\u2500 *\/\nfunction svgEl(tag, attrs) {\n  var s = '<'+tag;\n  for (var k in attrs) { if (attrs.hasOwnProperty(k)) { s += ' '+k+'=\"'+attrs[k]+'\"'; } }\n  return s;\n}\n\n\/* Gr\u00e1fico de barras horizontais *\/\nfunction drawHBarChart(container, items, opts) {\n  \/\/ items: [{label,value,color}]\n  opts = opts || {};\n  var valFmt = opts.valueFormatter || function(v){ return fL(v); };\n  var tipFmt = opts.tooltipFormatter || function(it){ return it.label+': '+fBRL(it.value); };\n  var W = 720, H = Math.max(120, items.length*36 + 20);\n  var padL = opts.padLeft || 92, padR = opts.padRight || 78, padT = 6, padB = 20;\n  var plotW = W - padL - padR, plotH = H - padT - padB;\n\n  var maxVal = 0;\n  items.forEach(function(it){ if (it.value>maxVal) maxVal=it.value; });\n  if (maxVal<=0) maxVal = 1;\n  var niceMax = maxVal*1.12;\n\n  \/* O SVG usa um viewBox de design fixo (W x H) mas preenche 100% de um\n     cont\u00eainer cuja altura em CSS \u00e9 fixa (320px), independente de H. Isso faz\n     a escala horizontal e vertical do preserveAspectRatio:'none' ficarem\n     diferentes uma da outra \u2014 o gr\u00e1fico \u00e9 esticado desigualmente e as barras\n     saem distorcidas (cantos ovalados, barras \"gordas\"). Corrigimos ajustando\n     a altura real do cont\u00eainer para casar com a propor\u00e7\u00e3o W:H do design,\n     medida a partir da largura real renderizada \u2014 assim a escala X e a escala\n     Y ficam iguais e nada fica esticado. *\/\n  var wrap = container.parentNode;\n  if (wrap) {\n    var realW = container.clientWidth || wrap.clientWidth || W;\n    wrap.style.height = Math.round(realW * H \/ W) + 'px';\n  }\n\n  var svg = svgEl('svg', {viewBox:'0 0 '+W+' '+H, preserveAspectRatio:'none', width:'100%', height:'100%'}) + '>';\n\n  var ticks = 4;\n  for (var t=0;t<=ticks;t++){\n    var val = niceMax*t\/ticks;\n    var x = padL + (val\/niceMax)*plotW;\n    svg += svgEl('line', {x1:x.toFixed(1),y1:padT,x2:x.toFixed(1),y2:H-padB,stroke:gridC(),'stroke-width':1,'stroke-dasharray':'3,3'})+'\/>';\n    svg += svgEl('text', {x:x.toFixed(1),y:H-6,'text-anchor':'middle','font-size':10,fill:muted()})+'>'+valFmt(val)+'<\/text>';\n  }\n\n  var rowH = plotH\/items.length;\n  var barH = Math.min(22, rowH*0.62);\n\n  items.forEach(function(it, i){\n    var cy = padT + rowH*i + rowH\/2;\n    var y = cy - barH\/2;\n    var w = (it.value\/niceMax)*plotW;\n    svg += svgEl('text', {x:padL-8, y:(cy+3.5).toFixed(1), 'text-anchor':'end','font-size':11,fill:muted()})+'>'+escHtml(it.label)+'<\/text>';\n    svg += svgEl('rect', {x:padL, y:y.toFixed(1), width:Math.max(0,w).toFixed(1), height:barH.toFixed(1), rx:2, fill:it.color+'bb', stroke:it.color, 'stroke-width':2})+'>';\n    svg += '<title>'+escHtml(tipFmt(it))+'<\/title><\/rect>';\n    var lx = padL + w + 6;\n    svg += svgEl('text', {x:lx.toFixed(1), y:(cy+3.5).toFixed(1), 'font-size':10,'font-weight':700,fill:it.color})+'>'+(opts.barLabel?opts.barLabel(it):valFmt(it.value))+'<\/text>';\n  });\n\n  svg += '<\/svg>';\n  container.innerHTML = svg;\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\u2500\u2500\u2500\u2500\u2500\n   CHART \u2014 Secretaria (barras horizontais)\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\u2500\u2500\u2500\u2500\u2500 *\/\nfunction renderSec(d) {\n  var bySec = {};\n  d.forEach(function(e){\n    e.nes.forEach(function(ne){\n      if(AND(ne.emp>0, ne.sec)) bySec[ne.sec]=(bySec[ne.sec]||0)+ne.emp;\n    });\n  });\n  var entries = [];\n  for (var k in bySec) { if (bySec.hasOwnProperty(k)) entries.push([k,bySec[k]]); }\n  entries.sort(function(a,b){ return b[1]-a[1]; });\n  entries = entries.slice(0,7);\n\n  var nodata = g('viz-nd-sec'), chartEl = g('viz-c-sec');\n  if(!entries.length){\n    if(nodata) nodata.style.display='flex';\n    if(chartEl) chartEl.style.display='none';\n    return;\n  }\n  if(nodata) nodata.style.display='none';\n  if(chartEl) chartEl.style.display='';\n\n  var total = 0;\n  entries.forEach(function(e){ total+=e[1]; });\n  var colors = SC_L.slice(0, entries.length);\n\n  var leg = g('viz-sec-leg');\n  if(leg){\n    leg.innerHTML='';\n    entries.forEach(function(entry, i){\n      var el=document.createElement('div');\n      el.className='ci';\n      el.innerHTML='<div class=\"cdot\" style=\"background:'+colors[i]+'\"><\/div>'+escHtml(entry[0]);\n      leg.appendChild(el);\n    });\n  }\n\n  var items = entries.map(function(entry, i){\n    return { label: entry[0], value: entry[1], color: colors[i] };\n  });\n\n  drawHBarChart(chartEl, items, {\n    valueFormatter: function(v){ return fL(v); },\n    barLabel: function(it){ return fL(it.value)+' ('+fP(it.value\/total*100)+')'; },\n    tooltipFormatter: function(it){ return 'Empenhado: '+fBRL(it.value)+' ('+fP(it.value\/total*100)+')'; },\n    padRight: 96\n  });\n}\n\n\/* \u2500\u2500 TABLE \u2500\u2500 *\/\nfunction renderTable(d) {\n  var body=g('viz-tb'), foot=g('viz-tf');\n  body.innerHTML=''; foot.innerHTML='';\n  var tA=0,tE=0,tL=0,tP=0;\n  d.forEach(function(e){ tA+=e.autorizado; tE+=e.empenhado; tL+=e.liquidado||0; tP+=e.pago; });\n\n  var total = d.length;\n  var size  = pageSize==='all' ? Math.max(total,1) : pageSize;\n  var totalPages = Math.max(1, Math.ceil(total\/size));\n  if(curPage>totalPages) curPage=totalPages;\n  if(curPage<1) curPage=1;\n  var startIdx = total===0 ? 0 : (curPage-1)*size;\n  var endIdx   = pageSize==='all' ? total : Math.min(startIdx+size, total);\n  var pageData = pageSize==='all' ? d : d.slice(startIdx,endIdx);\n\n  pageData.forEach(function(e){\n    var pc  = PC_L[e.parlamentar]||'#898781';\n    var tr  = document.createElement('tr');\n    tr.innerHTML =\n      '<td><span class=\"ytag\">'+e.ano+'<\/span><\/td>'+\n      '<td style=\"font-size:10px;color:var(--viz-muted);font-variant-numeric:tabular-nums;white-space:nowrap\">'+e.emenda+'<\/td>'+\n      '<td><span class=\"ptag\" style=\"background:'+pc+'22;color:'+pc+'\">'+escHtml(e.parlamentar)+'<\/span><\/td>'+\n      '<td class=\"r\">'+fBRL(e.autorizado)+'<\/td>'+\n      '<td class=\"r\">'+fBRL(e.empenhado)+'<\/td>'+\n      '<td class=\"r\">'+fBRL(e.liquidado||0)+'<\/td>'+\n      '<td class=\"r\">'+fBRL(e.pago)+'<\/td>'+\n      '<td style=\"text-align:center\"><div class=\"acoes-cell\">'+mkDetailCell(e)+'<\/div><\/td>';\n    body.appendChild(tr);\n  });\n\n  foot.innerHTML='<tr class=\"tfoot\">'+\n    '<td colspan=\"3\">Total Geral &nbsp;('+d.length+' emendas)<\/td>'+\n    '<td class=\"r\">'+fBRL(tA)+'<\/td><td class=\"r\">'+fBRL(tE)+'<\/td>'+\n    '<td class=\"r\">'+fBRL(tL)+'<\/td>'+\n    '<td class=\"r\">'+fBRL(tP)+'<\/td>'+\n    '<td><\/td>'+\n  '<\/tr>';\n\n  renderPagination(total, totalPages, startIdx, endIdx);\n  updateSortIndicators();\n}\n\n\/* \u2500\u2500 PAGINATION \u2500\u2500 *\/\nfunction renderPagination(total, totalPages, startIdx, endIdx){\n  var info = g('viz-tpag-info');\n  if(info) info.textContent = total===0\n    ? 'Nenhum registro'\n    : 'Mostrando '+(startIdx+1)+'\u2013'+(pageSize==='all'?total:endIdx)+' de '+total+' emendas';\n\n  var pageEl = g('viz-tpag-page');\n  if(pageEl) pageEl.textContent = 'P\u00e1gina '+curPage+' de '+totalPages;\n\n  var prevBtn = g('viz-tpag-prev'), nextBtn = g('viz-tpag-next');\n  if(prevBtn) prevBtn.disabled = curPage<=1;\n  if(nextBtn) nextBtn.disabled = curPage>=totalPages || pageSize==='all';\n\n  var sel = g('viz-tpag-size');\n  if(sel) sel.value = String(pageSize);\n}\n\nfunction refreshTable(){\n  renderTable(sortRows(filtered()));\n}\n\nfunction goToPage(delta){\n  curPage += delta;\n  refreshTable();\n}\n\nfunction changePageSize(v){\n  pageSize = v==='all' ? 'all' : parseInt(v,10);\n  curPage = 1;\n  refreshTable();\n}\n\n\/* \u2500\u2500 A\u00c7\u00d5ES \u2014 bot\u00e3o Visualizar (modal de detalhes) \u2500\u2500 *\/\nvar EYE_ICON = '<svg viewBox=\"0 0 24 24\" width=\"13\" height=\"13\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7Z\"><\/path><circle cx=\"12\" cy=\"12\" r=\"3\"><\/circle><\/svg>';\n\/* Forma de repasse: \u00fanica modalidade presente na base de Emendas Estaduais (coluna \"Forma de Repasse.\") *\/\nvar FORMA_REPASSE = 'Conv\u00eanio';\n\n\/* Identifica a emenda pela chave (ano+emenda) em vez de serializar o objeto\n   inteiro no atributo \u2014 evita JSON.parse\/stringify no HTML. *\/\nfunction findEmenda(ano, emenda) {\n  for (var i=0;i<VIZ_DATA.length;i++){\n    var e = VIZ_DATA[i];\n    if (AND(String(e.ano)===String(ano), String(e.emenda)===String(emenda))) return e;\n  }\n  return null;\n}\n\nfunction mkDetailCell(e) {\n  return '<button class=\"dt-icon\" data-ano=\"'+escAttr(e.ano)+'\" data-emenda=\"'+escAttr(e.emenda)+'\" title=\"Visualizar\" aria-label=\"Visualizar\">'+EYE_ICON+'<\/button>';\n}\n\nfunction openDetailModal(btn) {\n  var e = findEmenda(btn.getAttribute('data-ano'), btn.getAttribute('data-emenda'));\n  if (!e) return;\n\n  g('viz-dt-title').textContent = 'Emenda '+e.emenda+' \u00b7 '+e.ano;\n  g('viz-dt-sub').textContent = e.parlamentar;\n\n  g('viz-dt-objeto').textContent = e.objeto || '\u2014';\n  g('viz-dt-tipo').textContent = getTipo(e);\n  g('viz-dt-repasse').textContent = FORMA_REPASSE;\n  g('viz-dt-sec').textContent = e.sec || '\u2014';\n  g('viz-dt-funcao').textContent = e.funcao || '\u2014';\n\n  var planosWrap = g('viz-dt-planos-wrap');\n  var planos = e.planos || [];\n  if(planos.length){\n    planosWrap.style.display = '';\n    g('viz-dt-planos').innerHTML = planos.map(function(pl){\n      var head = pl.link\n        ? '<a class=\"dt-plano-num dt-plano-link\" href=\"'+escAttr(pl.link)+'\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"Abrir Plano de A\u00e7\u00e3o '+escAttr(pl.plano)+' no Transferegov (fonte oficial)\">'+escHtml(pl.plano)+' \u2197<\/a>'\n        : '<div class=\"dt-plano-num\">'+escHtml(pl.plano)+'<\/div>';\n      var obj = pl.objeto ? '<div class=\"dt-plano-obj\" title=\"'+escAttr(pl.objeto)+'\">'+escHtml(pl.objeto)+'<\/div>' : '';\n      return '<div class=\"dt-plano-row\"><div>'+head+obj+'<\/div><div class=\"dt-plano-val\">'+fBRL(pl.valor)+'<\/div><\/div>';\n    }).join('');\n  } else {\n    planosWrap.style.display = 'none';\n  }\n\n  var nes = e.nes || [];\n  var planoSet = {}; var nPlanos = 0;\n  nes.forEach(function(n){ if(!planoSet[n.plano]){ planoSet[n.plano]=true; nPlanos++; } });\n  var multiPlano = nPlanos > 1;\n  function val(v){ return v>0?fBRL(v):'<span style=\"color:var(--viz-muted)\">\u2014<\/span>'; }\n  g('viz-dt-ne-body').innerHTML = nes.map(function(n){\n    return '<tr><td><span class=\"dt-ne-num\">'+escHtml(n.ne)+'<\/span><\/td>'+\n      '<td class=\"dt-ne-ben\">'+escHtml(n.ben)+(multiPlano?'<span class=\"dt-ne-plano\">'+escHtml(n.plano)+'<\/span>':'')+'<\/td>'+\n      '<td class=\"r\">'+fBRL(n.emp)+'<\/td>'+\n      '<td class=\"r\">'+val(n.liq)+'<\/td>'+\n      '<td class=\"r\">'+val(n.pago)+'<\/td><\/tr>';\n  }).join('');\n  var neToggle = g('viz-dt-ne-toggle');\n  neToggle.textContent = '\u25b6 Ver empenhos ('+nes.length+')';\n  g('viz-dt-ne-wrap').style.display = 'none';\n\n  g('viz-dt-modal-backdrop').style.display = 'flex';\n}\n\nfunction toggleDetailNEs() {\n  var wrap = g('viz-dt-ne-wrap');\n  var btn = g('viz-dt-ne-toggle');\n  var isOpen = wrap.style.display !== 'none';\n  wrap.style.display = isOpen ? 'none' : '';\n  btn.textContent = btn.textContent.replace(isOpen ? '\u25bc' : '\u25b6', isOpen ? '\u25b6' : '\u25bc');\n}\n\nfunction closeDetailModal(ev) {\n  \/* AND() avalia todos os argumentos antes de checar \u2014 diferente do operador\n     logico duplo nativo, que faz curto-circuito. Aqui isso importa: 'ev' pode\n     vir undefined (chamada pelo bot\u00e3o de fechar), ent\u00e3o s\u00f3 acessamos ev.target\n     depois de confirmar que 'ev' existe, para n\u00e3o estourar erro. *\/\n  if (ev) {\n    if (AND(ev.target !== ev.currentTarget, ev.type==='click')) return;\n  }\n  var bd = g('viz-dt-modal-backdrop');\n  if(bd) bd.style.display = 'none';\n}\n\ndocument.addEventListener('keydown', function(ev){ if(ev.key === 'Escape') closeDetailModal(); });\n\n\/* \u2500\u2500 EXPORT (CSV \u2014 sem depend\u00eancia externa) \u2500\u2500 *\/\nvar EXP_HEADERS = ['Ano','N\u00ba Emenda','Tipo de Emenda','Instrumento (Conv\u00eanio)','Notas de Empenho','Deputado Estadual','Objeto','Secretaria','Fun\u00e7\u00e3o de Governo','Valor da Emenda','Empenhado','Liquidado','Pago','Execu\u00e7\u00e3o (%)'];\nfunction expRows(d){\n  return d.map(function(e){\n    return [\n      e.ano, e.emenda, getTipo(e),\n      (e.planos||[]).map(function(p){ return p.plano; }).join('; '),\n      (e.nes||[]).map(function(n){ return n.ne; }).join('; '),\n      e.parlamentar, e.objeto, e.sec, e.funcao,\n      e.autorizado, e.empenhado, e.liquidado||0, e.pago,\n      parseFloat((e.pago\/Math.max(e.autorizado,1)*100).toFixed(2))\n    ];\n  });\n}\n\nfunction exportCSV(){\n  var rows = [EXP_HEADERS].concat(expRows(sortRows(filtered())));\n  var csv  = rows.map(function(r){\n    return r.map(function(v){ return '\"'+String(v).replace(\/\"\/g,'\"\"')+'\"'; }).join(',');\n  }).join('\\r\\n');\n  var blob = new Blob(['\ufeff'+csv],{type:'text\/csv;charset=utf-8'});\n  var a=document.createElement('a'); a.href=URL.createObjectURL(blob);\n  a.download='emendas_estaduais.csv'; a.click();\n}\n\n\/* \u2500\u2500 RENDER ALL \u2500\u2500 *\/\nfunction renderAll(){\n  var d = filtered();\n  renderKPIs(d);\n  renderFilters();\n  renderSec(d);\n  renderTable(sortRows(d));\n}\n\n\/* \u2500\u2500 EVENTS \u2500\u2500\n   Ligados via addEventListener em vez de atributos onclick\/onchange inline no HTML,\n   por compatibilidade com sanitizadores de conte\u00fado de CMS. Elementos gerados\n   dinamicamente (bot\u00e3o \"Visualizar\" de cada linha) usam delega\u00e7\u00e3o de evento no\n   cont\u00eainer pai, que n\u00e3o \u00e9 recriado a cada renderiza\u00e7\u00e3o. *\/\nfunction initEvents() {\n  function on(id, evt, fn) { var el = g(id); if(el) el.addEventListener(evt, fn); }\n\n  on('viz-yf-select', 'change', function(){ setYearFilter(this.value); });\n  on('viz-pf-select', 'change', function(){ setParlFilter(this.value); });\n  on('viz-ff-select', 'change', function(){ setFuncFilter(this.value); });\n  on('viz-tf-select', 'change', function(){ setTipoFilter(this.value); });\n  on('viz-of-select', 'change', function(){ setObjetoFilter(this.value); });\n  on('viz-clear-chip', 'click', clearFilters);\n\n  on('viz-btn-csv', 'click', exportCSV);\n\n  var thead = document.querySelector('#viz-main-tbl thead');\n  if(thead) thead.addEventListener('click', function(ev){\n    var th = ev.target.closest ? ev.target.closest('th.sortable') : null;\n    if(th) setSort(th.getAttribute('data-key'));\n  });\n\n  on('viz-tpag-size', 'change', function(){ changePageSize(this.value); });\n  on('viz-tpag-prev', 'click', function(){ goToPage(-1); });\n  on('viz-tpag-next', 'click', function(){ goToPage(1); });\n\n  on('viz-dt-modal-backdrop', 'click', closeDetailModal);\n  on('viz-dt-modal', 'click', function(ev){ ev.stopPropagation(); });\n  on('viz-dt-modal-close', 'click', function(){ closeDetailModal(); });\n  on('viz-dt-ne-toggle', 'click', toggleDetailNEs);\n\n  on('viz-tb', 'click', function(ev){\n    var btn = ev.target.closest ? ev.target.closest('.dt-icon') : null;\n    if(btn) openDetailModal(btn);\n  });\n}\n\ninitEvents();\nrenderAll();\n\n})();\n\n<\/script>\n<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":8,"featured_media":0,"parent":2870,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Estaduais - SEMEF<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Estaduais - SEMEF\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/\" \/>\n<meta property=\"og:site_name\" content=\"SEMEF\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-31T20:16:19+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuto\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/\",\"url\":\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/\",\"name\":\"Estaduais - SEMEF\",\"isPartOf\":{\"@id\":\"https:\/\/www.manaus.am.gov.br\/semef\/#website\"},\"datePublished\":\"2026-08-21T02:18:33+00:00\",\"dateModified\":\"2026-08-31T20:16:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Emendas Parlamentares\",\"item\":\"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Estaduais\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.manaus.am.gov.br\/semef\/#website\",\"url\":\"https:\/\/www.manaus.am.gov.br\/semef\/\",\"name\":\"SEMEF\",\"description\":\"Secretaria Municipal de Finan\u00e7as e Tecnologia da Informa\u00e7\u00e3o\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.manaus.am.gov.br\/semef\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Estaduais - SEMEF","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/","og_locale":"pt_BR","og_type":"article","og_title":"Estaduais - SEMEF","og_url":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/","og_site_name":"SEMEF","article_modified_time":"2026-08-31T20:16:19+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minuto"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/","url":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/","name":"Estaduais - SEMEF","isPartOf":{"@id":"https:\/\/www.manaus.am.gov.br\/semef\/#website"},"datePublished":"2026-08-21T02:18:33+00:00","dateModified":"2026-08-31T20:16:19+00:00","breadcrumb":{"@id":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/estaduais\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Emendas Parlamentares","item":"https:\/\/www.manaus.am.gov.br\/semef\/emendas-parlamentares\/"},{"@type":"ListItem","position":2,"name":"Estaduais"}]},{"@type":"WebSite","@id":"https:\/\/www.manaus.am.gov.br\/semef\/#website","url":"https:\/\/www.manaus.am.gov.br\/semef\/","name":"SEMEF","description":"Secretaria Municipal de Finan\u00e7as e Tecnologia da Informa\u00e7\u00e3o","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.manaus.am.gov.br\/semef\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"}]}},"_links":{"self":[{"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/pages\/5603"}],"collection":[{"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/comments?post=5603"}],"version-history":[{"count":4,"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/pages\/5603\/revisions"}],"predecessor-version":[{"id":5682,"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/pages\/5603\/revisions\/5682"}],"up":[{"embeddable":true,"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/pages\/2870"}],"wp:attachment":[{"href":"https:\/\/www.manaus.am.gov.br\/semef\/wp-json\/wp\/v2\/media?parent=5603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}