PageSourceSearch

https://oliveiradosbrejinhos.ba.gov.br/gestao

html oliveiradosbrejinhos.ba.gov.br collected 2026-10-02 22:55:37 UTC 38,013 bytes, 1,010 lines download raw bytes

1<!doctype html>
2<html lang="pt-br">
3
4<head>
5  <meta charset="utf-8">
6  <meta name="viewport" content="width=device-width, initial-scale=1">
7  <title>Prefeitura Municipal de Oliveira Dos Brejinhos - Ba</title>
8
9  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css"
10    integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA=="
11    crossorigin="anonymous" referrerpolicy="no-referrer" />
12
13
14
15  
15<script src="https://kit.fontawesome.com/7c366fa5c4.js" crossorigin="anonymous"></script>
15
16  <link rel="icon" type="image/x-icon" href="src/View/Layout/favicon/favicon.ico">
17  <link rel="shortcut icon" href="src/View/Layout/favicon/favicon.ico" type="image/x-icon">
18  <link rel="apple-touch-icon" href="src/View/Layout/favicon/favicon.ico">
19  <link href="node_modules/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
20  <link href="public/css/app.css" rel="stylesheet">
21  <link href="public/js/app.js">
22  <link href="public/js/jquery.js">
23  <link rel="stylesheet" href="node_modules/bootstrap-icons/font/bootstrap-icons.css">
24  
24<script src="node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
24
25  <link href="https://cdn.jsdelivr.net/npm/[email protected]/index.global.min.css" rel="stylesheet">
26  
26<script src="https://cdn.jsdelivr.net/npm/[email protected]/index.global.min.js"></script>
26
27  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css"
28    integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
29  
29<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
29
30  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.css">
31
32
33  
33<script src="https://code.jquery.com/ui/1.13.0/jquery-ui.js"></script>
33
34  
34<script src="https://deuxhuithuit.github.io/quicksearch/r/src/jquery.quicksearch.js"></script>
34
35
36
37  
37<script>
38    ! function (d, s, id) {
39      var js, fjs = d.getElementsByTagName(s)[0];
40      if (!d.getElementById(id)) {
41        js = d.createElement(s);
42        js.id = id;
43        js.src = 'https://weatherwidget.io/js/widget.min.js';
44        fjs.parentNode.insertBefore(js, fjs);
45      }
46    }(document, 'script', 'weatherwidget-io-js');
47  </script>
47
48</head>
49
50
51
52<body><nav class="navbar fixed-top mb_menu container-fluid"
53  style="background-color: #0A28D2;">
54
55  <div class="container-fluid d-flex justify-content-between align-items-center">
56
57    <!-- Portal Transparência -->
58    <div class="d-flex align-items-center ms-5">
59      <a href="https://transparencia.caldeiraogrande.ba.gov.br"
60        class="btn tr-button">
61        PORTAL DA TRANSPARÊNCIA
62      </a>
63    </div>
64
65    <!-- Logo -->
66    <div class="d-flex justify-content-center flex-grow-1 ms-5">
67      <a class="navbar-brand m-0">
68        <img src="public/images/logo/logo.png" width="300">
69      </a>
70    </div>
71
72    <!-- Redes Sociais -->
73    <div class="d-flex align-items-center gap-1 ms-5">
74
75      <button id="searchBtn" class="btn btn-outline-danger glass-box">
76        <i class="fa-solid fa-magnifying-glass"></i>
77      </button>
78
79      <input id="searchInput"
80        type="text"
81        class="form-control glass-box"
82        placeholder="Buscar"
83        style="width:130px;">
84
85      <a href="https://www.instagram.com/pref.oliveiradosbrejinhos/" class="btn btn-outline-danger glass-box">
86        <i class="fa-brands fa-instagram"></i>
87      </a>
88
89      <a href="https://www.facebook.com/prefeituradeoliveiradosbrejinhos" class="btn btn-outline-danger glass-box">
90        <i class="fa-brands fa-facebook"></i>
91      </a>
92
93      <a href="https://www.youtube.com/@OliveiraDosBrejinhos" class="btn btn-outline-danger glass-box">
94        <i class="fa-brands fa-youtube"></i>
95      </a>
96
97      <a href="https://wa.me/message/JX4V6KJNSAOUE1"
98        target="_blank"
99        class="btn btn-outline-danger glass-box">
100        <i class="bi bi-whatsapp"></i>
101      </a>
102
103    </div>
104
105  </div>
106
107</nav>
108<nav class="navbar navbar-expand-lg fixed-top container-fluid mb_mn_config h6" style="background-color:#0a28d2; top: 130px;"><button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button> <div class="row collapse navbar-collapse"  id="navbarSupportedContent"><ul class="navbar-nav text-center d-flex justify-content-center grid gap-3"><li class="nav-item grid gap-3"><a class="nav-link fw-bold menu_h white-space-nowrap" href="/">INÍCIO</a></li><li class="nav-item dropdown text-center"><a class="nav-link fw-bold dropdown-toggle menu_h" href="#" id="navbarDropdown8" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">INSTITUCIONAL</a><div class="dropdown-menu dropdown-content  col" aria-labelledby="navbarDropdown8" style="background-color:#0a28d2"><a class="dropdown-item fw-bold  menu_h text-center" href="/municipio"> A CIDADE</a><a class="dropdown-item fw-bold  menu_h text-center" href="/gestao"> GESTÃO</a><a class="dropdown-item fw-bold  menu_h text-center" href="/organograma"> ORGANOGRAMA</a></div></li><li class="nav-item dropdown text-center"><a class="nav-link fw-bold dropdown-toggle menu_h" href="#" id="navbarDropdown10" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">TRANSPARÊNCIA</a><div class="dropdown-menu dropdown-content  col" aria-labelledby="navbarDropdown10" style="background-color:#0a28d2"><a class="dropdown-item fw-bold  menu_h text-center" href="/diario"> DIARIO OFICIAL</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://transparencia.oliveiradosbrejinhos.ba.gov.br"> PORTAL DA TRANSPARÊNCIA</a><a class="dropdown-item fw-bold  menu_h text-center" href="/esic"> E-SIC</a><a class="dropdown-item fw-bold  menu_h text-center" href="/ouvidoria"> OUVIDORIA</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://transparencia.oliveiradosbrejinhos.ba.gov.br"> DOCUMENTAÇÃO NA INTEGRA</a></div></li><li class="nav-item dropdown text-center"><a class="nav-link fw-bold dropdown-toggle menu_h" href="#" id="navbarDropdown11" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">CIDADÃO</a><div class="dropdown-menu dropdown-content  col" aria-labelledby="navbarDropdown11" style="background-color:#0a28d2"><a class="dropdown-item fw-bold  menu_h text-center" href="https://alistamento.eb.mil.br/"> SERVIÇO MILITAR</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://delegaciavirtual.sinesp.gov.br/portal/"> DELEGACIA VIRTUAL</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://www.sac.ba.gov.br/"> SAC</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://www.ba.gov.br/trabalho/280/vagas-do-dia-sinebahia"> SINE BAHIA</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://www.gov.br/pt-br"> GOV BR</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://www.ba.gov.br/">
108 SERVIÇOS DO GOVERNO</a><a class="dropdown-item fw-bold  menu_h text-center" href="/curriculoonline"> CURRICULO ONLINE PMOB</a></div></li><li class="nav-item dropdown text-center"><a class="nav-link fw-bold dropdown-toggle menu_h" href="#" id="navbarDropdown12" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">EMPREENDEDOR</a><div class="dropdown-menu dropdown-content  col" aria-labelledby="navbarDropdown12" style="background-color:#0a28d2"><a class="dropdown-item fw-bold  menu_h text-center" href="https://imcompras.org"> PORTAL DE COMPRAS</a><a class="dropdown-item fw-bold  menu_h text-center" href="https://oliveiradosbrejinhos.saatri.com.br/DocumentoFiscal"> NOTA FISCAL DE SERVIÇOS</a></div></li><li class="nav-item dropdown text-center"><a class="nav-link fw-bold dropdown-toggle menu_h" href="#" id="navbarDropdown13" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">SERVIDOR</a><div class="dropdown-menu dropdown-content  col" aria-labelledby="navbarDropdown13" style="background-color:#0a28d2"><a class="dropdown-item fw-bold  menu_h text-center" href="https://m.fatorsistemas.com.br/login.php"> PORTAL DO SERVIDOR</a></div></li><li class="nav-item grid gap-3"><a class="nav-link fw-bold menu_h white-space-nowrap" href="/noticias">NOTÍCIAS</a></li><li class="nav-item dropdown text-center"><a class="nav-link fw-bold dropdown-toggle menu_h" href="#" id="navbarDropdown15" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">CONTATO</a><div class="dropdown-menu dropdown-content  col" aria-labelledby="navbarDropdown15" style="background-color:#0a28d2"><a class="dropdown-item fw-bold  menu_h text-center" href="/faleconosco"> FALE CONOSCO</a><a class="dropdown-item fw-bold  menu_h text-center" href="/ouvidoria"> OUVIDORIA</a></div></li></ul></div></nav><div class="modal fade" id="modalBusca" tabindex="-1" aria-labelledby="modalBuscaLabel" aria-hidden="true">
109  <div class="modal-dialog modal-dialog-centered">
110    <div class="modal-content bg-dark text-light">
111      <div class="modal-header border-0">
112        <h5 class="modal-title" id="modalBuscaLabel">Pesquisar no Portal</h5>
113        <button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal" aria-label="Fechar"></button>
114      </div>
115      <div class="modal-body">
116        <form id="formBusca" method="GET" action="buscar.php">
117          <div class="input-group">
118            <input type="text" name="q" class="form-control form-control-lg" placeholder="Digite sua busca..." required>
119            <button id="btnSearch" class="btn btn-primary btn-lg" type="submit"><i class="bi bi-search"></i></button>
120
121
122          </div>
123        </form>
124        <div id="resultadosBusca" class="mt-4"></div>
125      </div>
126    </div>
127  </div>
128</div>
129<script>
130  // Função para aumentar o tamanho da fonte de todos os elementos filhos de body
131  function increaseFontSize() {
132    const currentFontSize = parseFloat(window.getComputedStyle(document.body).fontSize);
133    document.body.style.fontSize = (currentFontSize * 1.1) + 'px';
134
135    // Aumentar o tamanho de fonte para todos os elementos filhos de body
136    const allElements = document.querySelectorAll('body *');
137    allElements.forEach(element => {
138      const elementFontSize = parseFloat(window.getComputedStyle(element).fontSize);
139      element.style.fontSize = (elementFontSize * 1.1) + 'px';
140    });
141  }
142
143  // Função para diminuir o tamanho da fonte de todos os elementos filhos de body
144  function decreaseFontSize() {
145    const currentFontSize = parseFloat(window.getComputedStyle(document.body).fontSize);
146    document.body.style.fontSize = (currentFontSize / 1.1) + 'px';
147
148    // Diminuir o tamanho de fonte para todos os elementos filhos de body
149    const allElements = document.querySelectorAll('body *');
150    allElements.forEach(element => {
151      const elementFontSize = parseFloat(window.getComputedStyle(element).fontSize);
152      element.style.fontSize = (elementFontSize / 1.1) + 'px';
153    });
154  }
155  // Função para alternar o modo de contraste
156  function toggleContrastMode() {
157    document.body.classList.toggle('high-contrast');
158  }
159
160  const originalFontSizes = [];
161
162  window.addEventListener('load', function() {
163    const allElements = document.querySelectorAll('body *');
164    allElements.forEach(element => {
165      const elementFontSize = parseFloat(window.getComputedStyle(element).fontSize);
166      originalFontSizes.push(elementFontSize);
167    });
168  });
169
170  // Restaurar configurações para o padrão
171  function resetSettings() {
172    // Redefinir o tamanho de fonte para o body
173    document.body.style.fontSize = '';
174
175    // Restaurar tamanhos de fonte originais dos elementos filhos de body
176    const allElements = document.querySelectorAll('body *');
177    allElements.forEach((element, index) => {
178      element.style.fontSize = originalFontSizes[index] + 'px';
179    });
180
181    // Remover a classe high-contrast
182    document.body.classList.remove('high-contrast');
183  }
184
185  // Event listeners para os links de acessibilidade
186  document.getElementById('increase-font').addEventListener('click', increaseFontSize);
187  document.getElementById('decrease-font').addEventListener('click', decreaseFontSize);
188  document.getElementById('toggle-contrast').addEventListener('click', toggleContrastMode);
189  document.getElementById('reset-settings').addEventListener('click', resetSettings);
190</script>
190
191<style>
192    .foto {
193
194        width: 170px;
195        height: 170px;
196        border-radius: 50%;
197        object-fit: cover;
198
199        border: 5px solid #f1f1f1;
200
201        box-shadow: 0 10px 25px rgba(0, 0, 0, .18);
202
203    }
204
205    .card {
206
207        border-radius: 18px;
208
209        transition: .3s;
210
211    }
212
213    .card:hover {
214
215        transform: translateY(-8px);
216
217    }
218
219    .cargo {
220
221        display: inline-block;
222
223        background: #0A28D2;
224
225        color: #fff;
226
227        padding: 6px 16px;
228
229        border-radius: 20px;
230
231        font-size: 14px;
232
233        margin-top: 8px;
234
235    }
236
237    .modal-body h5 {
238
239        color: #0A28D2;
240
241        margin-top: 20px;
242
243    }
244</style>
245
246<div id="pag_config">
247
248    <div class="m-5">
249        <nav aria-label="breadcrumb">
250            <ol class="breadcrumb">
251                <li class="breadcrumb-item"><a href="/" class="text-decoration-none text-primary fw-bold"><i class="bi bi-house-fill"></i> Início</a></li>
252                <li class="breadcrumb-item active">Gestão</li>
253            </ol>
254        </nav>
255        <hr class="hr-breadcrumb">
256    </div>
257    <div class="container py-5">
258
259        <div class="text-center mb-5">
260            <h2 class="text-uppercase fw-bold" style="color: #0a28d2;">Gestão</h2>
261            <p class="text-muted">
262                Conheça os representantes do Poder Executivo Municipal.
263            </p>
264        </div>
265
266        <div class="row">
267
268            <!-- PREFEITO -->
269
270            <div class="col-lg-6 mb-4">
271
272                <div class="card shadow border-0 h-100">
273
274                    <div class="card-body text-center">
275
276                        <img
277                            src="public/images/user.png"
278                            class="foto">
279
280                        <h3 class="mt-3">
281
282                            
283                                <div class="alert alert-warning">
284                                    Nenhum prefeito cadastrado.
285                                </div>
286
287                                                    </h3>
288
289                        <span class="cargo">
290
291                            Prefeito
292
293                        </span>
294
295                        <hr>
296
297                        <p>
298
299                            Biografia não informada.
300                        </p>
301
302                        <button
303                            class="btn btn-outline-primary"
304                            data-bs-toggle="modal"
305                            data-bs-target="#modalPrefeito">
306
307                            Ver Perfil
308
309                        </button>
310
311                    </div>
312
313                </div>
314
315            </div>
316
317
318            <!-- VICE -->
319
320            <div class="col-lg-6 mb-4">
321
322                <div class="card shadow border-0 h-100">
323
324                    <div class="card-body text-center">
325
326                        <img
327                            src="public/images/user.png"
328                            class="foto">
329
330                        <h3 class="mt-3">
331
332                            
333                                <div class="alert alert-warning">
334                                    Nenhum Vice-Prefeito cadastrado.
335                                </div>
336
337                            
338                        </h3>
339
340                        <span class="cargo">
341
342                            Vice-Prefeito
343
344                        </span>
345
346                        <hr>
347
348                        <p>
349
350                            Biografia não informada.
351                        </p>
352
353                        <button
354                            class="btn btn-outline-success"
355                            data-bs-toggle="modal"
356                            data-bs-target="#modalVice">
357
358                            Ver Perfil
359
360                        </button>
361
362                    </div>
363
364                </div>
365
366            </div>
367
368        </div>
369
370    </div>
371
372</div>
373
374
375<div class="modal fade" id="modalPrefeito">
376
377    <div class="modal-dialog modal-xl">
378
379        <div class="modal-content">
380
381            <div class="modal-header">
382
383                <h4>
384
385                    
386                </h4>
387
388                <button class="btn-close" data-bs-dismiss="modal"></button>
389
390            </div>
391
392            <div class="modal-body">
393
394                <div class="row">
395
396                    <div class="col-md-4 text-center">
397
398                        <img src="public/images/user.png" class="img-fluid rounded">
399
400                    </div>
401
402                    <div class="col-md-8">
403
404                        <h5>Biografia:</h5>
405
406                        <p></p>
407
408                        <hr>
409
410                        <h5>Competências:</h5>
411
412                        
413                        <hr>
414
415                        <h5>Horário de Atendimento:</h5>
416
417                        
418                        <hr>
419
420                        <h5>Contatos:</h5>
421
422                        
423                        <hr>
424
425                        <h5>Endereço:</h5>
426
427                        
428                    </div>
429
430                </div>
431
432            </div>
433
434        </div>
435
436    </div>
437
438</div>
439
440<div class="modal fade" id="modalVice">
441
442    <div class="modal-dialog modal-xl">
443
444        <div class="modal-content">
445
446            <div class="modal-header">
447
448                <h4>
449
450                    
451                </h4>
452
453                <button class="btn-close" data-bs-dismiss="modal"></button>
454
455            </div>
456
457            <div class="modal-body">
458
459                <div class="row">
460
461                    <div class="col-md-4 text-center">
462
463                        <img src="public/images/user.png" class="img-fluid rounded">
464
465                    </div>
466
467                    <div class="col-md-8">
468
469                        <h5>Biografia:</h5>
470
471                        <p></p>
472
473                        <hr>
474
475                        <h5>Competências:</h5>
476
477                        
478                        <hr>
479
480                        <h5>Horário de Atendimento:</h5>
481
482                        
483                        <hr>
484
485                        <h5>Contatos:</h5>
486
487                        
488                        <hr>
489
490                        <h5>Endereço:</h5>
491
492                        
493                    </div>
494
495                </div>
496
497            </div>
498
499        </div>
500
501    </div>
502
503</div><!-- Feedback Popup (cole no footer, antes de </body>) -->
504<style>
505/* popup base */
506#siteFeedbackModal {
507  position: fixed;
508  inset: 0;
509  display: none;
510  z-index: 1080;
511  align-items: center;
512  justify-content: center;
513  background: rgba(15,15,15,0.45);
514  backdrop-filter: blur(4px);
515  animation: fadeIn .18s ease;
516}
517@keyframes fadeIn { from {opacity:0} to {opacity:1} }
518
519#siteFeedbackCard {
520  width: 100%;
521  max-width: 680px;
522  border-radius: 14px;
523  background: #fff;
524  box-shadow: 0 10px 30px rgba(0,0,0,0.18);
525  transform: translateY(10px);
526  animation: popIn .25s cubic-bezier(.2,.9,.2,1);
527}
528@keyframes popIn { from {opacity:0; transform:translateY(20px) scale(.98)} to {opacity:1; transform:translateY(0) scale(1)} }
529
530.sf-header {
531  padding: 18px 22px;
532  border-bottom: 1px solid #f1f1f1;
533  display:flex; align-items:center; gap:12px;
534}
535.sf-body { padding: 20px 22px; }
536.sf-footer { padding: 14px 22px; border-top:1px solid #f6f6f6; display:flex; justify-content:space-between; align-items:center; gap:12px; }
537
538/* stars */
539.sf-stars { display:flex; gap:6px; align-items:center; }
540.sf-star {
541  font-size: 32px;
542  cursor: pointer;
543  transition: transform .12s ease, color .12s ease;
544  color: #dcdcdc;
545  user-select:none;
546}
547.sf-star:hover { transform: translateY(-3px) scale(1.08); }
548
549/* rating text */
550.sf-rating-text { font-size:14px; color:#666; margin-left:8px; }
551
552/* textarea */
553.sf-text {
554  width:100%;
555  min-height:90px;
556  resize:vertical;
557  padding:10px 12px;
558  border-radius:8px;
559  border:1px solid #e6e6e6;
560  font-size:14px;
561}
562
563/* compact checkbox */
564.sf-bottom-left { display:flex; align-items:center; gap:8px; font-size:13px; color:#666; }
565
566/* primary btn */
567.sf-send {
568  background: linear-gradient(90deg,#16a34a,#10b981); /* green gradient */
569  color:#fff;
570  border:0;
571  padding:9px 18px;
572  border-radius:10px;
573  box-shadow: 0 6px 18px rgba(16,185,129,0.18);
574}
575
576/* success */
577.sf-success {
578  display:none;
579  padding:18px;
580  text-align:center;
581  color:#064e3b;
582}
583
584/* small responsive tweak */
585@media (max-width:576px){
586  #siteFeedbackCard { margin: 20px; }
587  .sf-star { font-size:28px; }
588}
589</style>
590
591<!-- Modal markup -->
592<!---<div id="siteFeedbackModal" aria-hidden="true" role="dialog" aria-labelledby="sfTitle" aria-modal="true">
593  <div id="siteFeedbackCard" role="document">
594    <div class="sf-header">
595      <div style="width:46px;height:46px;background:linear-gradient(135deg,#06b6d4,#7c3aed);border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700">BD</div>
596      <div>
597        <h5 id="sfTitle" style="margin:0">O que está achando do site?</h5>
598        <small style="color:#666">Sua opinião ajuda a melhorar — leva só 10 segundos</small>
599      </div>
600      <button type="button" class="btn-close ms-auto me-2" aria-label="Fechar" id="sfCloseBtn"></button>
601    </div>
602
603    <div class="sf-body">
604      <div style="display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px">
605        <div class="sf-stars" id="sfStars" role="radiogroup" aria-label="Avaliação em estrelas">
606        </div>
607        <div class="sf-rating-text" id="sfRatingText">Selecione uma nota</div>
608      </div>
609
610      <textarea id="sfText" class="sf-text" placeholder="Deixe um comentário (opcional) — o que você gostou? o que podemos melhorar?"></textarea>
611    </div>
612
613    <div class="sf-footer">
614      <div class="sf-bottom-left">
615        <input type="checkbox" id="sfDontShow" />
616        <label for="sfDontShow">Não mostrar novamente</label>
617      </div>
618      <div style="display:flex;gap:10px;align-items:center">
619        <button class="btn btn-outline-secondary" id="sfSkipBtn">Agora não</button>
620        <button class="sf-send" id="sfSubmitBtn">Enviar feedback</button>
621      </div>
622    </div>
623
624    <div class="sf-success" id="sfSuccess">
625      <p style="margin:0;font-weight:700">Obrigado pelo feedback!</p>
626      <p style="margin:6px 0 0;color:#065f46">Sua opinião foi enviada com sucesso.</p>
627    </div>
628  </div>
629</div>
630
631<script>
632(function(){
633  // --- Config ---
634  const delayMs = 6000; // tempo até abrir (ms)
635  const endpoint = 'src/Services/feedback.php'; // ajuste se necessário
636  const storageKey = 'brejolandia_feedback_dontshow';
637
638  // --- DOM refs ---
639  const modal = document.getElementById('siteFeedbackModal');
640  const starsWrap = document.getElementById('sfStars');
641  const ratingText = document.getElementById('sfRatingText');
642  const textEl = document.getElementById('sfText');
643  const dontShowEl = document.getElementById('sfDontShow');
644  const closeBtn = document.getElementById('sfCloseBtn');
645  const skipBtn = document.getElementById('sfSkipBtn');
646  const submitBtn = document.getElementById('sfSubmitBtn');
647  const successBox = document.getElementById('sfSuccess');
648
649  let currentRating = 0;
650
651  // star labels (you can change)
652  const ratingLabels = {
653    1: 'Péssimo',
654    2: 'Ruim',
655    3: 'Regular',
656    4: 'Bom',
657    5: 'Ótimo'
658  };
659
660  // create star elements
661  for (let i=1;i<=5;i++){
662    const span = document.createElement('span');
663    span.className = 'sf-star';
664    span.setAttribute('data-value', i);
665    span.setAttribute('role','radio');
666    span.setAttribute('aria-checked','false');
667    span.setAttribute('tabindex', '0');
668    span.innerHTML = '★'; // star glyph
669    // events
670    span.addEventListener('mouseenter', ()=> highlight(i));
671    span.addEventListener('mouseleave', ()=> highlight(currentRating));
672    span.addEventListener('click', ()=> setRating(i));
673    span.addEventListener('keydown', (ev)=> {
674      if (ev.key === 'Enter' || ev.key === ' ') { ev.preventDefault(); setRating(i); }
675      if (ev.key === 'ArrowRight' && i < 5) { document.querySelector('[data-value="'+(i+1)+'"]').focus(); }
676      if (ev.key === 'ArrowLeft' && i > 1) { document.querySelector('[data-value="'+(i-1)+'"]').focus(); }
677    });
678    starsWrap.appendChild(span);
679  }
680
681  function highlight(n){
682    const stars = starsWrap.querySelectorAll('.sf-star');
683    stars.forEach(s => {
684      const v = parseInt(s.getAttribute('data-value'),10);
685      s.style.color = (v <= n) ? '#f59e0b' : '#dcdcdc';
686    });
687    ratingText.textContent = n ? ratingLabels[n] : 'Selecione uma nota';
688  }
689
690  function setRating(n){
691    currentRating = n;
692    highlight(n);
693    // set aria-checked
694    starsWrap.querySelectorAll('.sf-star').forEach(s => {
695      s.setAttribute('aria-checked', parseInt(s.getAttribute('data-value'),10) === n ? 'true' : 'false');
696    });
697  }
698
699  // open modal
700  function openModal(){
701    // don't open if user opted out
702    if (localStorage.getItem(storageKey) === '1') return;
703    modal.style.display = 'flex';
704    modal.setAttribute('aria-hidden','false');
705    // focus first star
706    const firstStar = modal.querySelector('.sf-star');
707    if (firstStar) firstStar.focus();
708  }
709
710  // close
711  function closeModal(){
712    modal.style.display = 'none';
713    modal.setAttribute('aria-hidden','true');
714  }
715
716  // submit
717  async function submitFeedback(){
718    if (!currentRating) {
719      // small feedback if not rated
720      ratingText.textContent = 'Por favor, escolha uma nota antes de enviar.';
721      ratingText.style.color = '#b91c1c';
722      setTimeout(()=> ratingText.style.color = '', 2200);
723      return;
724    }
725
726    submitBtn.disabled = true;
727    submitBtn.textContent = 'Enviando...';
728
729    const payload = {
730      pagina: window.location.pathname,
731      nota: currentRating,
732      comentario: textEl.value.trim()
733    };
734
735    try {
736      const res = await fetch(endpoint, {
737        method: 'POST',
738        headers: {'Content-Type':'application/json'},
739        body: JSON.stringify(payload)
740      });
741
742      if (!res.ok) throw new Error('Erro na rede');
743
744      const data = await res.json();
745      if (data && data.success) {
746        // show success and optionally store "dont show" if checked
747        successBox.style.display = 'block';
748        modal.querySelector('.sf-body, .sf-footer, .sf-header').style.display = 'none';
749        if (dontShowEl.checked) localStorage.setItem(storageKey,'1');
750        setTimeout(closeModal, 2000);
751      } else {
752        throw new Error(data.message || 'Erro desconhecido');
753      }
754    } catch (err) {
755      alert('Erro ao enviar feedback: ' + (err.message||err));
756      submitBtn.disabled = false;
757      submitBtn.textContent = 'Enviar feedback';
758    }
759  }
760
761  // events
762  closeBtn.addEventListener('click', closeModal);
763  skipBtn.addEventListener('click', closeModal);
764  submitBtn.addEventListener('click', submitFeedback);
765
766  // close on background click
767  modal.addEventListener('click', (e)=>{
768    if (e.target === modal) closeModal();
769  });
770
771  // open after delay
772  window.addEventListener('load', ()=>{
773    setTimeout(openModal, delayMs);
774  });
775
776})();
777</script>
777-->
778
779<footer class="bg-sb text-white pt-5 pb-4">
780    <div class="container">
781      <div class="row">
782
783        <!-- COLUNA ESQUERDA: LOGO + REDES + SERVIÇOS + GOVERNO -->
784        <div class="col-md-6">
785          <div class="row">
786
787            <!-- LOGO + REDES SOCIAIS -->
788            <div class="col-md-6 mb-4" style="margin-left: -30px;">
789              <img src="public/images/logo/logofo.png" alt="Logo Prefeitura" width="130px">
790              <h5 class="mb-4 mt-4 mt-3">Redes sociais</h5>
791              <a href="#" class="text-warning mr-3"><i class="fab fa-facebook fa-lg"></i></a>
792              <a href="#" class="text-warning mr-3"><i class="fab fa-instagram fa-lg"></i></a>
793              <a href="#" class="text-warning"><i class="fab fa-youtube fa-lg"></i></a>
794            </div>
795
796            <!-- SERVIÇOS AO CIDADÃO + GOVERNO -->
797            <div class="col-md-6 mb-4">
798              <h6 class="text-warning font-weight-bold">Serviços<br>ao Cidadão</h6>
799              <ul class="list-unstyled mt-3">
800                <li><a href="#" class="text-white">Emissão de Certidão Negativa</a></li>
801                <li><a href="#" class="text-white">Emissão de Nota Fiscal</a></li>
802                <li><a href="#" class="text-white">Emissão de Guias IPTU</a></li>
803              </ul>
804
805              <h6 class="text-warning font-weight-bold mt-4">Estrutura<br>de Governo</h6>
806              <ul class="list-unstyled mt-3">
807                <li><a href="#" class="text-white">Gabinete do Prefeito</a></li>
808                <li><a href="#" class="text-white">Gabinete do Vice-prefeito</a></li>
809                <li><a href="#" class="text-white">Estrutura Organizacional</a></li>
810              </ul>
811            </div>
812
813          </div>
814        </div>
815
816        <!-- COLUNA DIREITA: TRANSPARÊNCIA + OUVIDORIA + CONTATO + LOCALIZAÇÃO -->
817        <div class="col-md-6">
818          <div class="row">
819
820            <!-- TRANSPARÊNCIA + OUVIDORIA -->
821            <div class="col-md-6 mb-4">
822              <h6 class="text-warning font-weight-bold">Portal da<br>Transparência</h6>
823              <ul class="list-unstyled mt-3">
824                <li><a href="#" class="text-white">Licitações</a></li>
825                <li><a href="https://sobradinho.ba.gov.br/integra_view/contrato.php" class="text-white">Contratos</a></li>
826                <li><a href="#" class="text-white">Relatório de Gestão Fiscal</a></li><p>
827                <li><a href="#" class="text-white">Despesas</a></li>
828              </ul>
829
830              <h6 class="text-warning font-weight-bold mt-4">Ouvidoria e<br>Atendimento</h6>
831              <ul class="list-unstyled mt-3">
832                <li><a href="/ouvidoria" class="text-white">Ouvidoria</a></li>
833                <li><a href="/esic" class="text-white">SIC - Informação</a></li>
834                <li><a href="/faleconosco" class="text-white">Fale Conosco</a></li>
835              </ul>
836            </div>
837
838            <!-- CONTATO + LOCALIZAÇÃO (em blocos) -->
839            <div class="col-md-6 mb-4">
840              <!-- Contato -->
841              <div class="d-flex mb-3" style="min-width: 310px; background-color: #0a28d2; color: #0f2a73;  border-radius: 20px 20px 20px 20px; font-family: 'Montserrat', sans-serif; font-weight: 600;">
842                <div class="bg-warning d-flex align-items-center justify-content-center px-2 text-center font-weight-bold"
843                  style="writing-mode: vertical-rl; text-orientation: mixed; font-size: 14px; border-radius: 0px 20px 20px 0px; transform: rotate(180deg) !important;">FALE CONOSCO</div>
844                <div class="p-3">
845                  &nbsp;
846                  <p class="mb-1 text-white ">(77) 9 9849-2915</p>
847                  <p class="mb-1 text-white" style="font-size:0.9rem; word-break: break-word;">
848                        [email protected]                    </p>
849                  &nbsp;
850                </div>
851              </div>
852
853              <!-- Localização -->
854              <div class="d-flex" style="min-width: 310px; background-color: #0a28d2; color: #0f2a73; border-radius: 20px 20px 20px 20px;">
855                <div class="bg-warning d-flex align-items-center justify-content-center px-2 text-center font-weight-bold"
856                  style="writing-mode: vertical-rl; text-orientation: mixed; font-size: 14px; border-radius: 0px 20px 20px 0px; transform: rotate(180deg) !important;">LOCALIZAÇÃO</div>
857                <div class="p-3">
858                  <p class="mb-1 text-white text-justify">Praça João Nery de Sant´ana, nº 197, centro, Oliveira dos Brejinhos - Bahia</p>
859                  <span class="mb-0 text-white text-justify" style="font-size: 0.9rem;">De Segunda a Sextadas 07h às 13h</span>
860                </div>
861              </div>
862            </div>
863
864          </div>
865        </div>
866
867      </div>
868
869      <!-- COPYRIGHT -->
870      <div class="text-center mt-4 pt-2 border-top border-white">
871        <small>2025 © Prefeitura Municipal de Oliveira Dos Brejinhos - Ba. Todos os direitos reservados.</small>
872      </div>
873    </div>
874  </footer>
875     </div>
876
877
878
879<footer class="font-small pt-4  text-center text-white" style="background-color: #0a28d2;">
880  <p><a href="#" class="text-white">Politica de Privacidade</a> <a href="#" class="text-white">&nbsp;Mapa do Site</a> <a href="#" class="text-white">&nbsp;Acessibilidade</a> <a href="#" class="text-white">&nbsp;Glossario</a> <a href="./faleconosco" class="text-white">Contato</a> </p><br>
881</footer>
882</footer>
883
884<div class="modal fade" id="transparenciaModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
885  <div class="modal-dialog modal-fullscreen">
886    <div class="modal-content">
887      <div class="modal-header">
888        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
889      </div>
890      <div class="modal-body">
891        <!-- Loader -->
892        <div id="iframeLoader" class="text-center py-5">
893          <div class="spinner-border text-primary" role="status"></div>
894        </div>
895        <iframe id="modalFrame" width="100%" height="600px" style="border:0; display:none;" onload="hideLoader()"></iframe>
896      </div>
897      <div class="modal-footer">
898        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Fechar</button>
899      </div>
900    </div>
901  </div>
902</div>
903
904
905<!-- EDITAL-YEAR -->
906<div class="row">
907  <!-- Modal -->
908  <div class="modal fade" id="editalModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
909    <div class="modal-dialog modal-xl" role="document">
910      <div class="modal-content">
911        <div class="modal-header">
912          <button type="button" class="close pr-3" data-dismiss="modal" aria-label="Close" @click="clear()">
913            <span aria-hidden="true">&times;</span>
914          </button>
915        </div>
916        <div class="modal-body">
917
918          Nenhum resultado encontrado.
919        </div>
920        <div class="modal-footer">
921          <button type="button" class="btn bg-padrao text-light" data-dismiss="modal" @click="getEditalAll()">TODAS</button>
922          <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">FECHAR</button>
923        </div>
924      </div>
925    </div>
926  </div>
927</div><!-- row -->
928<!-- EDITAL-YEAR -->
929<style>
930.bg-sb{
931    background-color: #0f2a73;
932}
933
934ul{
935text-align: left !important;
936}
937li{
938text-align: left !important;
939}
940</style>
941
942
943
944 
944<script>
945  let currentUrl = "";
946
947  function hideLoader() {
948    const loader = document.getElementById("iframeLoader");
949    const iframe = document.getElementById("modalFrame");
950    loader.style.display = "none";
951    iframe.style.display = "block";
952  }
953
954  function openModal(url) {
955    const modal = document.getElementById("transparenciaModal");
956    const iframe = document.getElementById("modalFrame");
957    const loader = document.getElementById("iframeLoader");
958
959    // Mostra loader e esconde iframe
960    loader.style.display = "block";
961    iframe.style.display = "none";
962
963    // Seta a URL apenas se for diferente da anterior
964    if (url !== currentUrl) {
965      iframe.src = url;
966      currentUrl = url;
967    }
968
969    // Cria e abre o modal com Bootstrap
970    const modalBS = bootstrap.Modal.getOrCreateInstance(modal);
971    modalBS.show();
972  }
973</script>
973
974
975<script>
976  // Encontre todos os elementos de menu dropdown
977  var dropdowns = document.querySelectorAll(".dropdown");
978
979  // Adicione ouvintes de eventos para cada elemento de menu dropdown
980  dropdowns.forEach(function(dropdown) {
981    // Abra o dropdown quando o mouse entra
982    dropdown.addEventListener("mouseenter", function() {
983      var dropdownContent = this.querySelector(".dropdown-content");
984      if (dropdownContent) {
985        dropdownContent.style.display = "block";
986      }
987    });
988
989    // Feche o dropdown quando o mouse sai
990    dropdown.addEventListener("mouseleave", function() {
991      var dropdownContent = this.querySelector(".dropdown-content");
992      if (dropdownContent) {
993        dropdownContent.style.display = "none";
994      }
995    });
996  });
997</script>
997
998
999
1000<div vw class="enabled">
1001  <div vw-access-button class="active"></div>
1002  <div vw-plugin-wrapper>
1003    <div class="vw-plugin-top-wrapper"></div>
1004  </div>
1005</div>
1006<script src="https://vlibras.gov.br/app/vlibras-plugin.js"></script>
vendor: 2 bytes, line 1006
1006
1007<script>
1008  new window.VLibras.Widget('https://vlibras.gov.br/app');
1009</script>
1009
1010</div>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.