
:root{--navy:#052b55;--blue:#0a3f7c;--blue2:#0b5ca5;--green:#0e9b67;--green2:#0a7d57;--bg:#f4f8fb;--text:#0b2341;--muted:#5d6d7e;--border:#dbe6f0;--shadow:0 16px 34px rgba(8,47,95,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}a{text-decoration:none;color:inherit}.home-wide{width:calc(100% - 70px);max-width:1660px;margin:0 auto}.home-top-strip{background:#06284e;color:#fff;font-weight:400;font-size:14px}.home-top-strip .home-wide{height:40px;display:flex;align-items:center;justify-content:space-between;gap:20px}.home-top-left{display:flex;gap:28px;align-items:center;white-space:nowrap}.home-top-search{width:min(360px,32vw);height:30px;border:1px solid rgba(255,255,255,.28);border-radius:999px;display:flex;align-items:center;overflow:hidden}.home-top-search input{flex:1;border:0;outline:0;background:transparent;color:#fff;padding:0 14px}.home-top-search input::placeholder{color:rgba(255,255,255,.75)}.home-top-search button{border:0;background:transparent;color:#fff;padding:0 12px}.home-main-header{background:#fff;padding:24px 0 22px}.header-flex{display:grid;grid-template-columns:minmax(320px,1fr) auto minmax(200px,.8fr);align-items:center;gap:28px}.home-logo{display:flex;align-items:center;gap:14px}.home-crest{width:76px;height:76px;border-radius:18px;background:linear-gradient(135deg,#0a3f7c,#0e9b67);color:#fff;display:grid;place-items:center;font-size:26px;font-weight:400;box-shadow:0 12px 30px rgba(8,47,95,.14)}.home-logo strong{font-size:12px;letter-spacing:.08em;color:#0b4d88}.home-logo h1{font-size:24px;line-height:1;margin:2px 0;color:#0b3a78}.home-logo p{margin:0;color:#5d6d7e;font-size:14px}.home-main-nav{display:flex;align-items:center;gap:30px;justify-content:center;font-weight:400;color:#0b2341}.home-main-nav>a,.home-nav-item>a{padding:12px 0;border-bottom:3px solid transparent}.home-main-nav a.active,.home-main-nav>a:hover,.home-nav-item:hover>a{color:#0a8f60;border-bottom-color:#0e9b67}.home-nav-item{position:relative}.home-submenu{position:absolute;top:100%;left:0;min-width:250px;background:#fff;border:1px solid var(--border);border-top:4px solid var(--green);border-radius:0 0 16px 16px;box-shadow:var(--shadow);padding:8px;display:none;z-index:50}.home-nav-item:hover .home-submenu{display:block}.home-submenu a{display:block;padding:11px 12px;border-radius:10px;color:#0b3a78}.home-submenu a:hover{background:#eef6fd}.citizen-btn{justify-self:end;background:#0d965f;color:#fff;border-radius:10px;padding:14px 22px;font-weight:400;box-shadow:0 10px 22px rgba(14,155,103,.22)}.hero-banner{position:relative;height:250px;border-radius:13px;overflow:hidden;background:linear-gradient(90deg,rgba(5,35,70,.96) 0%,rgba(5,35,70,.87) 34%,rgba(5,35,70,.25) 58%,rgba(5,35,70,.72) 100%),linear-gradient(120deg,#062b55,#207b8b 48%,#7cae63 100%);box-shadow:0 18px 38px rgba(8,47,95,.13)}.hero-banner:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 50%,rgba(255,255,255,.28),transparent 6%),linear-gradient(165deg,transparent 35%,rgba(12,155,103,.25) 35%,rgba(12,155,103,.25) 58%,transparent 58%);opacity:.75}.hero-banner:after{content:"";position:absolute;right:0;top:0;width:62%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.10)),repeating-linear-gradient(145deg,rgba(255,255,255,.11) 0 2px,transparent 2px 18px);clip-path:polygon(8% 0,100% 0,100% 100%,0 100%);opacity:.58}.hero-overlay-content{position:relative;z-index:2;padding:36px 78px;color:#fff;width:min(600px,55%)}.hero-overlay-content h2{font-size:36px;line-height:1;margin:0}.hero-overlay-content h3{font-size:20px;margin:4px 0 12px}.hero-overlay-content p{font-size:16px;line-height:1.55;margin:0 0 18px}.hero-cta{display:inline-flex;background:var(--green);color:#fff;border-radius:9px;padding:12px 18px;font-weight:400}.hero-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-size:32px;cursor:pointer}.hero-arrow.left{left:16px}.hero-arrow.right{right:16px}.hero-dots{position:absolute;z-index:3;left:0;right:0;bottom:18px;display:flex;gap:12px;justify-content:center}.hero-dots span{width:18px;height:7px;border-radius:10px;background:rgba(255,255,255,.45)}.hero-dots .active{background:#fff}.featured-area{display:grid;grid-template-columns:minmax(0,1.17fr) minmax(420px,.83fr);gap:30px;margin-top:16px}.news-panel,.agenda-panel-new,.services-featured{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow)}.news-panel,.agenda-panel-new{padding:20px}.clean-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.title-with-icon{display:flex;align-items:flex-start;gap:10px}.title-icon{width:32px;height:32px;border:2px solid #0b4d88;color:#0b4d88;border-radius:6px;display:grid;place-items:center;font-size:18px}.clean-head h2{font-size:22px;line-height:1;margin:0;color:#0b3a78}.clean-head p{margin:5px 0 0;color:#5d6d7e;font-size:13px}.clean-head a{color:#0b3a78;font-weight:400;font-size:14px;white-space:nowrap}.news-composition{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,.85fr);gap:16px}.featured-news-slider{position:relative;min-height:247px;border:1px solid var(--border);border-radius:15px;overflow:hidden;background:#fff}.home-news-slide{position:absolute;inset:0;display:grid;grid-template-columns:210px 1fr;opacity:0;transform:translateX(22px);transition:.55s ease;pointer-events:none}.home-news-slide.active{opacity:1;transform:translateX(0);pointer-events:auto}.feature-image{position:relative;padding:16px;color:#fff}.feature-image span{position:relative;z-index:2;background:#07376f;border-radius:5px;font-size:12px;font-weight:400;padding:7px 10px;display:inline-block}.gradient-obras{background:linear-gradient(135deg,#caa46f,#0b2542)}.gradient-saude{background:linear-gradient(135deg,#bde9f6,#16a06e)}.gradient-transparencia{background:linear-gradient(135deg,#d8e8ff,#0b3a78)}.feature-copy{padding:38px 28px;display:flex;flex-direction:column;justify-content:center}.pill{display:inline-flex;width:max-content;background:#eef5ff;color:#0b3a78;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:400;margin-bottom:14px}.feature-copy h3{font-size:24px;line-height:1.16;margin:0 0 16px;color:#082f5f}.feature-copy p{font-size:16px;line-height:1.55;color:#5d6d7e;margin:0 0 22px}.meta-line{display:flex;gap:16px;color:#5d6d7e;font-size:13px}.inside-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:40px;height:40px;border:1px solid var(--border);border-radius:50%;background:#fff;color:#0b3a78;font-size:29px;cursor:pointer;box-shadow:0 10px 24px rgba(8,47,95,.16)}.inside-arrow.left{left:18px}.inside-arrow.right{right:18px}.home-news-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;gap:10px;justify-content:center;z-index:5}.home-news-dots button{width:10px;border:0;background:#c8d6e3;cursor:pointer}.home-news-dots button.active{background:#0b5ca5}.side-news-list{display:grid;grid-template-rows:repeat(3,1fr);gap:10px}.side-news{display:grid;grid-template-columns:86px 1fr;gap:12px;align-items:center;border:1px solid var(--border);border-radius:12px;padding:8px;background:#fff;transition:.2s}.side-news.active,.side-news:hover{background:#f4f9fd;transform:translateY(-1px)}.side-thumb{height:68px;border-radius:10px}.side-news strong{font-size:15px;line-height:1.18;color:#0b3a78}.side-news small{display:block;margin-top:7px;color:#5d6d7e;font-size:12px}.agenda-list-new{border:1px solid var(--border);border-radius:15px;overflow:hidden;background:#fff}.agenda-row{display:grid;grid-template-columns:74px 1fr;gap:16px;align-items:center;padding:12px 14px;border-bottom:1px solid #e7eef5}.date-box{height:60px;border:1px solid #bdd0ed;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#0b3a78}.date-box strong{font-size:25px;line-height:1}.date-box em{font-style:normal;font-weight:400;font-size:13px}.date-box.green{color:#0b8b62;border-color:#bfe2d4;background:#f7fffb}.event-info strong{font-size:17px;color:#0b3a78}.event-info small{display:block;margin-top:8px;color:#5d6d7e}.agenda-main-button{display:flex;align-items:center;justify-content:center;margin:11px 14px 12px;background:#0e9b67;color:#fff;padding:13px}.services-featured{padding:22px;margin-top:26px;margin-bottom:34px}.services-title{justify-content:flex-start;margin-bottom:16px}.service-card-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:14px}.service-card{min-height:124px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(8,47,95,.06);padding:15px 12px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px}.service-card span{width:46px;height:46px;border-radius:50%;background:#eef5ff;color:#0b3a78;display:grid;place-items:center;font-size:24px}.service-card.green span{background:#eaf8f1;color:#0b8b62}.service-card strong{font-size:16px;color:#0b3a78}.service-card p{font-size:13px;line-height:1.35;color:#5d6d7e;margin:0}.footer-clean{margin-top:0}.footer{background:#06284e;color:#fff;padding:30px 0}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:24px}.footer h4{margin:0 0 10px}.footer p{color:rgba(255,255,255,.82);line-height:1.55;margin:5px 0}@media(max-width:1250px){.home-wide{width:calc(100% - 32px)}.header-flex{grid-template-columns:1fr}.home-main-nav{justify-content:flex-start;overflow:auto}.citizen-btn{justify-self:start}.featured-area{grid-template-columns:1fr}.service-card-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:860px){.home-top-strip .home-wide{height:auto;padding:9px 0;flex-direction:column;align-items:flex-start}.home-top-left{gap:12px;flex-wrap:wrap}.home-top-search{width:100%}.hero-banner{height:auto}.hero-overlay-content{width:100%;padding:45px 55px}.news-composition{grid-template-columns:1fr}.home-news-slide{grid-template-columns:1fr}.feature-image{min-height:170px}.featured-news-slider{min-height:520px}.service-card-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr}}@media(max-width:540px){.home-wide{width:calc(100% - 20px)}.hero-overlay-content h2{font-size:29px}.featured-area{gap:16px}.news-panel,.agenda-panel-new,.services-featured{padding:14px}.clean-head{flex-direction:column}.agenda-row{grid-template-columns:60px 1fr}.service-card-grid{grid-template-columns:1fr}}

/* Ajuste cauteloso: mantém o visual da home e apenas acomoda mais menus públicos */
.home-main-nav{flex:1;justify-content:center;gap:2px;min-width:0}
.home-main-nav>a,.home-nav-item>a{padding-left:9px;padding-right:9px;font-size:14px}
.header-flex{gap:14px}
.home-submenu{min-width:235px}
@media(max-width:1420px){.home-main-nav>a,.home-nav-item>a{font-size:13px;padding-left:7px;padding-right:7px}.home-logo h1{font-size:22px}.home-logo strong{font-size:11px}.home-logo p{font-size:12px}}

/* ===== Correção cautelosa do topo: menus alinhados e sem quebra ===== */
.home-main-header{padding:18px 0 18px!important;overflow:visible!important}
.header-flex{
  display:grid!important;
  grid-template-columns:minmax(250px,330px) minmax(0,1fr) 0!important;
  align-items:center!important;
  gap:18px!important;
}
.home-logo{gap:12px!important;min-width:0!important}
.home-crest{width:64px!important;height:64px!important;border-radius:15px!important;font-size:24px!important;flex:0 0 64px!important}
.home-logo strong{font-size:10px!important;letter-spacing:.07em!important;white-space:nowrap!important}
.home-logo h1{font-size:22px!important;line-height:1.02!important;margin:1px 0!important}
.home-logo p{font-size:13px!important;line-height:1.2!important;max-width:250px!important}
.citizen-btn{display:none!important}
.home-main-nav{
  width:100%!important;
  min-width:0!important;
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  gap:0!important;
  overflow:visible!important;
  white-space:nowrap!important;
}
.home-main-nav>a,.home-nav-item>a{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  padding:14px 11px!important;
  font-size:14px!important;
  line-height:1!important;
  white-space:nowrap!important;
  border-bottom:3px solid transparent!important;
}
.home-nav-item{position:relative!important;display:flex!important;align-items:center!important;flex:0 0 auto!important;white-space:nowrap!important}
.home-submenu{
  top:100%!important;
  left:0!important;
  min-width:260px!important;
  z-index:9999!important;
}
.home-submenu a{white-space:nowrap!important;line-height:1.2!important}
@media(max-width:1500px){
  .header-flex{grid-template-columns:minmax(230px,300px) minmax(0,1fr) 0!important;gap:12px!important}
  .home-main-nav>a,.home-nav-item>a{font-size:14px!important;padding-left:8px!important;padding-right:8px!important;gap:4px!important}
  .home-logo h1{font-size:20px!important}.home-logo p{font-size:12px!important}.home-crest{width:58px!important;height:58px!important;flex-basis:58px!important}
}
@media(max-width:1180px){
  .header-flex{grid-template-columns:1fr!important;gap:14px!important}
  .home-main-nav{justify-content:flex-start!important;overflow:auto!important;padding-bottom:4px!important}
}

/* ===== PÁGINAS PÚBLICAS DOS SUBMENUS ===== */
body.public-page{background:#f4f8fb;color:#0b2341}
.public-page .container{width:min(1480px,calc(100% - 48px));margin:0 auto}
.public-page .topbar{background:#06284e;color:#fff;font-size:14px;font-weight:400}
.public-page .topbar .container{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;padding:0}
.public-page .topbar-list,.public-page .topbar-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.public-page .topbar-item{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.public-page .topbar-dot{display:inline-grid;place-items:center;font-size:12px;color:#fff;opacity:.95}

.public-page .header{background:#fff;padding:22px 0 20px;border-bottom:1px solid #edf3f8}
.public-page .header .container{display:grid;grid-template-columns:minmax(320px,1fr) minmax(360px,520px) minmax(320px,1fr);align-items:center;gap:26px}
.public-page .brand{display:flex;align-items:center;gap:14px;min-width:0}
.public-page .brasao{width:80px;height:80px;border-radius:20px;background:linear-gradient(135deg,#0a3f7c,#0e9b67);color:#fff;display:grid;place-items:center;font-size:26px;font-weight:400;box-shadow:0 12px 28px rgba(8,47,95,.16);flex:0 0 80px}
.public-page .brand h1{margin:0 0 6px;font-size:22px;line-height:1.05;color:#0b3a78}
.public-page .brand p{margin:0;color:#5d6d7e;font-size:15px}
.public-page .header-search{display:flex;align-items:center;height:50px;border:1px solid #cddaea;border-radius:999px;overflow:hidden;background:#fff;box-shadow:0 6px 18px rgba(8,47,95,.06)}
.public-page .header-search input{flex:1;height:100%;border:0;outline:0;padding:0 18px;font-size:15px;color:#0b2341;background:transparent}
.public-page .header-search input::placeholder{color:#6f8095}
.public-page .header-search button{width:62px;border:0;background:#0b4d88;color:#fff;cursor:pointer}
.public-page .header-tools{display:flex;justify-content:flex-end;align-items:center;gap:24px}
.public-page .socials{display:flex;align-items:center;gap:12px}
.public-page .social-btn{width:46px;height:46px;border-radius:50%;border:2px solid #0b4d88;color:#0b4d88;display:grid;place-items:center;font-weight:400;font-size:22px;background:#fff}
.public-page .transparency-badge{display:flex;align-items:center;gap:14px;padding-left:18px;border-left:1px solid #d9e3ee}
.public-page .transparency-icon{width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,#0aaf9f,#0b4d88);color:#fff;display:grid;place-items:center;font-size:26px;box-shadow:0 10px 22px rgba(8,47,95,.16)}
.public-page .transparency-badge strong{display:block;font-size:13px;line-height:1.05;color:#6b7888}
.public-page .transparency-badge span{display:block;font-size:22px;line-height:1;letter-spacing:-.02em;font-weight:400;color:#5a6d82}

.public-page .nav{background:#113f7f;box-shadow:0 14px 30px rgba(8,47,95,.10);position:relative;z-index:40}
.public-page .nav .container{display:flex;align-items:stretch;gap:0;overflow-x:auto;overflow-y:visible}
.public-page .nav-item{position:relative;flex:0 0 auto}
.public-page .nav-link{height:58px;padding:0 18px;display:inline-flex;align-items:center;gap:9px;color:#fff;font-weight:400;font-size:15px;border-bottom:3px solid transparent;white-space:nowrap;background:transparent}
.public-page .nav-link:hover,.public-page .nav-link.active,.public-page .nav-item:hover>.nav-link{background:rgba(255,255,255,.08);border-bottom-color:#31c58b}
.public-page .nav-icon,.public-page .nav-caret{font-size:13px;opacity:.95}
.public-page .submenu{position:absolute;left:0;top:100%;min-width:270px;padding:12px;background:#fff;border:1px solid #dbe6f0;border-top:4px solid #31c58b;border-radius:0 0 18px 18px;box-shadow:0 18px 35px rgba(8,47,95,.16);display:none;z-index:80}
.public-page .nav-item:hover>.submenu{display:block}
.public-page .submenu a{display:flex;align-items:center;gap:10px;padding:12px 12px;border-radius:10px;color:#0b3a78;font-weight:400;font-size:14px;line-height:1.2}
.public-page .submenu a:hover{background:#eff6fd}
.public-page .submenu-icon{width:24px;height:24px;border-radius:8px;background:#eef5ff;color:#0b4d88;display:grid;place-items:center;flex:0 0 24px;font-size:12px}

.public-page .page-hero{padding:34px 0;background:linear-gradient(100deg,#0b4d88,#27a786);color:#fff;position:relative;overflow:hidden}
.public-page .page-hero:after{content:"";position:absolute;right:-80px;top:-40px;width:320px;height:320px;border-radius:50%;background:rgba(255,255,255,.07)}
.public-page .page-hero .container{position:relative;z-index:1}
.public-page .breadcrumb{font-size:14px;color:rgba(255,255,255,.88);margin-bottom:10px}
.public-page .page-hero h2{margin:0 0 8px;font-size:44px;line-height:1.03;letter-spacing:-.02em}
.public-page .page-hero p{margin:0;max-width:820px;font-size:20px;line-height:1.45;color:rgba(255,255,255,.94)}

.public-page .public-content{padding:30px 0 42px}
.public-page .public-card{background:#fff;border:1px solid #dbe6f0;border-radius:18px;box-shadow:0 16px 34px rgba(8,47,95,.08);padding:24px}
.public-page .public-card + .public-card{margin-top:22px}
.public-page .public-card h3{margin:0 0 10px;font-size:28px;line-height:1.08;color:#0b3a78}
.public-page .public-card p{margin:0;color:#5d6d7e;font-size:17px;line-height:1.7}
.public-page .public-warning{border-left:6px solid #0e9b67}
.public-page .public-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}
.public-page .public-feature{background:#fff;border:1px solid #dbe6f0;border-radius:16px;box-shadow:0 12px 28px rgba(8,47,95,.06);padding:20px}
.public-page .public-feature strong{display:block;margin-bottom:10px;font-size:18px;color:#0b3a78}
.public-page .public-feature p{margin:0;color:#5d6d7e;font-size:15px;line-height:1.6}
.public-page .public-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}
.public-page .public-list a{display:flex;align-items:center;gap:10px;padding:15px 16px;border-radius:12px;background:#f5f9fd;border:1px solid #dbe6f0;color:#0b3a78;font-weight:400}
.public-page .public-list a:hover{background:#edf6ff}

.public-page .footer{margin-top:18px;padding:34px 0;background:#06284e;color:#fff}
.public-page .footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:28px}
.public-page .footer h4{margin:0 0 12px;font-size:22px}
.public-page .footer p,.public-page .footer li,.public-page .footer a{color:rgba(255,255,255,.86);line-height:1.7;font-size:15px}
.public-page .footer ul{margin:0;padding-left:18px}
.public-page .footer-bottom{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;color:rgba(255,255,255,.8);font-size:14px}

@media(max-width:1200px){
  .public-page .header .container{grid-template-columns:1fr;gap:18px}
  .public-page .header-tools{justify-content:flex-start}
  .public-page .nav .container{justify-content:flex-start}
  .public-page .page-hero h2{font-size:36px}
  .public-page .page-hero p{font-size:18px}
  .public-page .public-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:860px){
  .public-page .container{width:min(100%,calc(100% - 24px))}
  .public-page .topbar .container{padding:10px 0;align-items:flex-start;flex-direction:column}
  .public-page .topbar-list,.public-page .topbar-actions{gap:10px}
  .public-page .brand{align-items:flex-start}
  .public-page .brasao{width:64px;height:64px;flex-basis:64px;font-size:22px}
  .public-page .brand h1{font-size:18px}
  .public-page .brand p{font-size:14px}
  .public-page .header-search{height:46px}
  .public-page .transparency-badge span{font-size:18px}
  .public-page .page-hero{padding:26px 0}
  .public-page .page-hero h2{font-size:30px}
  .public-page .page-hero p{font-size:16px}
  .public-page .public-grid,.public-page .public-list,.public-page .footer-grid{grid-template-columns:1fr}
  .public-page .public-card{padding:20px}
}

/* ===== Ajuste final: menu superior mais à esquerda e padronizado ===== */
.home-main-header .header-flex{
  grid-template-columns:minmax(250px,330px) minmax(0,1fr)!important;
  gap:18px!important;
}
.home-main-nav{
  justify-content:flex-start!important;
  padding-left:8px!important;
}
.home-main-nav>a,
.home-nav-item>a{
  padding-left:10px!important;
  padding-right:10px!important;
}
.home-nav-item:last-child .home-submenu,
.home-nav-item:nth-last-child(2) .home-submenu{
  left:auto!important;
  right:0!important;
}
.public-page .home-main-header .header-flex{
  grid-template-columns:minmax(250px,330px) minmax(0,1fr)!important;
  gap:18px!important;
}
.public-page .home-main-nav{
  justify-content:flex-start!important;
  padding-left:8px!important;
}
.public-page .home-nav-item:last-child .home-submenu,
.public-page .home-nav-item:nth-last-child(2) .home-submenu{
  left:auto!important;
  right:0!important;
}
@media(max-width:1500px){
  .home-main-header .header-flex,
  .public-page .home-main-header .header-flex{
    grid-template-columns:minmax(230px,305px) minmax(0,1fr)!important;
    gap:12px!important;
  }
  .home-main-nav>a,
  .home-nav-item>a{
    font-size:14px!important;
    padding-left:7px!important;
    padding-right:7px!important;
  }
}

/* ===== Botão de login administrativo no rodapé superior ===== */
.home-top-right{
  display:flex;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
}
.admin-login-top{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:30px;
  padding:6px 14px;
  border-radius:999px;
  background:linear-gradient(135deg,#0e9b67,#0a7d57);
  color:#fff!important;
  font-weight:400;
  font-size:13px;
  box-shadow:0 8px 18px rgba(14,155,103,.22);
  border:1px solid rgba(255,255,255,.24);
  white-space:nowrap;
}
.admin-login-top:hover{
  transform:translateY(-1px);
  filter:brightness(1.04);
}
.home-top-search{
  width:min(330px,28vw)!important;
}
@media(max-width:900px){
  .home-top-strip .home-wide{
    align-items:flex-start!important;
    flex-direction:column!important;
    height:auto!important;
    padding:8px 0!important;
  }
  .home-top-right{
    width:100%;
    flex-wrap:wrap;
  }
  .home-top-search{
    width:min(100%,420px)!important;
  }
}

/* ===== Login administrativo e painel administrativo ===== */
body.admin-login-page{
  min-height:100vh;
  background:
    radial-gradient(circle at 20% 15%,rgba(14,155,103,.22),transparent 28%),
    radial-gradient(circle at 85% 20%,rgba(10,63,124,.28),transparent 30%),
    linear-gradient(135deg,#06284e,#0b4d88 48%,#0e9b67);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}
.admin-login-shell{
  width:min(980px,100%);
  display:grid;
  grid-template-columns:1.05fr .95fr;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(255,255,255,.5);
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 28px 70px rgba(2,22,44,.35);
}
.admin-login-brand{
  padding:48px;
  background:linear-gradient(145deg,rgba(5,43,85,.96),rgba(10,125,87,.88));
  color:#fff;
  position:relative;
}
.admin-login-brand:after{
  content:"";
  position:absolute;
  right:-90px;
  bottom:-90px;
  width:250px;
  height:250px;
  border-radius:50%;
  background:rgba(255,255,255,.08);
}
.admin-login-logo{
  width:86px;
  height:86px;
  border-radius:22px;
  background:rgba(255,255,255,.16);
  display:grid;
  place-items:center;
  font-size:30px;
  font-weight:400;
  margin-bottom:26px;
  border:1px solid rgba(255,255,255,.28);
}
.admin-login-brand h1{
  margin:0 0 12px;
  font-size:34px;
  line-height:1.05;
}
.admin-login-brand p{
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:17px;
  line-height:1.6;
}
.admin-login-features{
  margin-top:32px;
  display:grid;
  gap:12px;
}
.admin-login-features span{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:400;
  color:rgba(255,255,255,.92);
}
.admin-login-card{
  padding:48px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.admin-login-card h2{
  margin:0 0 8px;
  font-size:30px;
  color:#0b3a78;
}
.admin-login-card p{
  margin:0 0 24px;
  color:#5d6d7e;
}
.admin-form-group{
  display:grid;
  gap:8px;
  margin-bottom:16px;
}
.admin-form-group label{
  font-weight:400;
  color:#0b3a78;
}
.admin-form-group input{
  height:50px;
  border:1px solid #d4e1ee;
  border-radius:14px;
  padding:0 16px;
  outline:0;
  font-size:15px;
  background:#f8fbfe;
}
.admin-form-group input:focus{
  border-color:#0e9b67;
  box-shadow:0 0 0 4px rgba(14,155,103,.12);
}
.admin-login-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:8px;
}
.admin-primary-btn,
.admin-secondary-btn{
  min-height:48px;
  border:0;
  border-radius:14px;
  padding:0 18px;
  font-weight:400;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.admin-primary-btn{
  background:linear-gradient(135deg,#0e9b67,#0a7d57);
  color:#fff;
  flex:1;
  box-shadow:0 12px 24px rgba(14,155,103,.22);
}
.admin-secondary-btn{
  background:#eef5ff;
  color:#0b3a78;
}
.admin-login-help{
  margin-top:20px;
  padding:14px;
  border-radius:14px;
  background:#f4f9fd;
  color:#5d6d7e;
  font-size:14px;
}
.admin-app-body{
  min-height:100vh;
  background:#f4f8fb;
}
.admin-topbar{
  background:#06284e;
  color:#fff;
  min-height:42px;
  display:flex;
  align-items:center;
}
.admin-shell-wide{
  width:min(1500px,calc(100% - 48px));
  margin:0 auto;
}
.admin-topbar .admin-shell-wide{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  font-weight:400;
  font-size:14px;
}
.admin-header{
  background:#fff;
  border-bottom:1px solid #dbe6f0;
  box-shadow:0 10px 26px rgba(8,47,95,.06);
}
.admin-header-row{
  min-height:92px;
  display:grid;
  grid-template-columns:minmax(260px,360px) 1fr auto;
  align-items:center;
  gap:18px;
}
.admin-brand{
  display:flex;
  align-items:center;
  gap:14px;
}
.admin-brand-logo{
  width:64px;
  height:64px;
  border-radius:18px;
  background:linear-gradient(135deg,#0a3f7c,#0e9b67);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:24px;
  font-weight:400;
}
.admin-brand h1{
  margin:0;
  color:#0b3a78;
  font-size:22px;
  line-height:1.05;
}
.admin-brand p{
  margin:4px 0 0;
  color:#5d6d7e;
  font-size:13px;
}
.admin-main-nav{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:0;
  overflow:visible;
  white-space:nowrap;
}
.admin-nav-item{
  position:relative;
}
.admin-nav-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:18px 12px;
  color:#0b2341;
  font-weight:400;
  border-bottom:3px solid transparent;
}
.admin-nav-link:hover,
.admin-nav-link.active,
.admin-nav-item:hover>.admin-nav-link{
  color:#0e9b67;
  border-bottom-color:#0e9b67;
}
.admin-submenu{
  position:absolute;
  top:100%;
  left:0;
  min-width:270px;
  background:#fff;
  border:1px solid #dbe6f0;
  border-top:4px solid #0e9b67;
  border-radius:0 0 16px 16px;
  box-shadow:0 18px 36px rgba(8,47,95,.18);
  padding:8px;
  z-index:2000;
  display:none;
}
.admin-nav-item:hover>.admin-submenu{
  display:block;
}
.admin-submenu a{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px;
  border-radius:10px;
  color:#0b3a78;
  font-weight:400;
}
.admin-submenu a:hover{
  background:#eef6fd;
}
.admin-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.admin-action-btn{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:999px;
  padding:0 14px;
  background:#eef5ff;
  color:#0b3a78;
  font-weight:400;
}
.admin-action-btn.green{
  background:#0e9b67;
  color:#fff;
}
.admin-dashboard-main{
  padding:28px 0 42px;
}
.admin-hero{
  background:linear-gradient(110deg,#06284e,#0b4d88 48%,#0e9b67);
  color:#fff;
  border-radius:24px;
  padding:34px;
  box-shadow:0 20px 40px rgba(8,47,95,.16);
  margin-bottom:24px;
}
.admin-hero h2{
  margin:0 0 8px;
  font-size:34px;
}
.admin-hero p{
  margin:0;
  color:rgba(255,255,255,.86);
  font-size:17px;
}
.admin-cards-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  margin-bottom:24px;
}
.admin-card{
  background:#fff;
  border:1px solid #dbe6f0;
  border-radius:18px;
  padding:20px;
  box-shadow:0 12px 28px rgba(8,47,95,.07);
}
.admin-card small{
  color:#5d6d7e;
  font-weight:400;
}
.admin-card strong{
  display:block;
  margin-top:10px;
  font-size:30px;
  color:#0b3a78;
}
.admin-section{
  background:#fff;
  border:1px solid #dbe6f0;
  border-radius:22px;
  padding:22px;
  box-shadow:0 12px 28px rgba(8,47,95,.07);
}
.admin-section h3{
  margin:0 0 16px;
  color:#0b3a78;
  font-size:24px;
}
.admin-module-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}
.admin-module-card{
  border:1px solid #dbe6f0;
  border-radius:16px;
  padding:16px;
  background:#f8fbfe;
  color:#0b3a78;
  font-weight:400;
}
.admin-module-card span{
  display:block;
  color:#5d6d7e;
  font-size:13px;
  font-weight:400;
  margin-top:6px;
}
@media(max-width:1250px){
  .admin-header-row{grid-template-columns:1fr;gap:12px;padding:14px 0}
  .admin-main-nav{overflow:auto}
  .admin-cards-grid,.admin-module-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .admin-login-shell{grid-template-columns:1fr}
  .admin-login-brand,.admin-login-card{padding:28px}
  .admin-shell-wide{width:min(100%,calc(100% - 24px))}
  .admin-cards-grid,.admin-module-grid{grid-template-columns:1fr}
}

/* ===== Painel administrativo: card Menu + popup centralizado ===== */
.admin-header-row.menu-popup-layout{
  grid-template-columns:minmax(260px,420px) 1fr auto!important;
}
.admin-main-nav{
  display:none!important;
}
.admin-menu-card-button{
  justify-self:start;
  width:min(260px,100%);
  border:1px solid #dbe6f0;
  background:#fff;
  box-shadow:0 12px 28px rgba(8,47,95,.09);
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 16px;
  cursor:pointer;
  color:#0b3a78;
  text-align:left;
}
.admin-menu-card-button:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 34px rgba(8,47,95,.14);
}
.admin-menu-card-icon{
  width:42px;
  height:42px;
  border-radius:14px;
  background:linear-gradient(135deg,#0a3f7c,#0e9b67);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:22px;
  flex:0 0 42px;
}
.admin-menu-card-button strong{
  display:block;
  line-height:1;
}
.admin-menu-card-button span:not(.admin-menu-card-icon){
  display:block;
  margin-top:4px;
  color:#5d6d7e;
}
.admin-menu-overlay{
  position:fixed;
  inset:0;
  background:rgba(3,18,35,.62);
  backdrop-filter:blur(5px);
  z-index:9999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.admin-menu-overlay.open{
  display:flex;
}
.admin-menu-modal{
  width:min(1180px,100%);
  max-height:min(86vh,820px);
  background:#fff;
  border-radius:26px;
  border:1px solid rgba(255,255,255,.65);
  box-shadow:0 35px 90px rgba(0,0,0,.36);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.admin-menu-modal-header{
  background:linear-gradient(110deg,#06284e,#0b4d88 55%,#0e9b67);
  color:#fff;
  padding:24px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.admin-menu-modal-header h2{
  margin:0;
  font-size:28px;
  line-height:1.05;
}
.admin-menu-modal-header p{
  margin:6px 0 0;
  color:rgba(255,255,255,.86);
}
.admin-menu-close{
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:28px;
  cursor:pointer;
}
.admin-menu-modal-body{
  padding:24px;
  overflow:auto;
  background:#f4f8fb;
}
.admin-menu-popup-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.admin-menu-group{
  background:#fff;
  border:1px solid #dbe6f0;
  border-radius:20px;
  box-shadow:0 12px 26px rgba(8,47,95,.07);
  padding:18px;
}
.admin-menu-group h3{
  margin:0 0 14px;
  color:#0b3a78;
  font-size:20px;
  display:flex;
  align-items:center;
  gap:9px;
}
.admin-menu-group-links{
  display:grid;
  gap:9px;
}
.admin-menu-group-links a{
  min-height:44px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  background:#f8fbfe;
  border:1px solid #e2ebf4;
  color:#0b3a78;
  font-weight:400;
}
.admin-menu-group-links a:hover{
  background:#eef6fd;
  transform:translateX(2px);
}
.admin-menu-group-links a::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:#0e9b67;
  box-shadow:0 0 0 4px rgba(14,155,103,.10);
  flex:0 0 10px;
}
@media(max-width:1100px){
  .admin-header-row.menu-popup-layout{
    grid-template-columns:1fr!important;
  }
  .admin-actions{
    justify-content:flex-start;
  }
  .admin-menu-popup-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:720px){
  .admin-menu-popup-grid{
    grid-template-columns:1fr;
  }
  .admin-menu-modal-header{
    padding:20px;
  }
  .admin-menu-modal-header h2{
    font-size:24px;
  }
  .admin-menu-modal-body{
    padding:16px;
  }
}

/* ===== Correção definitiva do popup administrativo estilo Câmara ===== */
.admin-menu-card-button{
  border:1px solid #dbe6f0!important;
  background:#fff!important;
  box-shadow:0 16px 34px rgba(8,47,95,.12)!important;
  cursor:pointer!important;
  transition:.2s ease!important;
}
.admin-menu-card-button:hover{
  transform:translateY(-2px)!important;
  box-shadow:0 22px 44px rgba(8,47,95,.18)!important;
}
.admin-menu-overlay{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  background:rgba(2,18,38,.72)!important;
  backdrop-filter:blur(5px)!important;
  z-index:999999!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
}
.admin-menu-overlay.is-open{
  display:flex!important;
}
.admin-menu-modal{
  width:min(1180px,calc(100vw - 48px))!important;
  max-height:86vh!important;
  background:#fff!important;
  border-radius:28px!important;
  overflow:hidden!important;
  box-shadow:0 40px 100px rgba(0,0,0,.45)!important;
  display:flex!important;
  flex-direction:column!important;
}
.admin-menu-modal-header{
  background:linear-gradient(110deg,#052b55,#0b4d88 55%,#0e9b67)!important;
  color:#fff!important;
  padding:24px 28px!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:20px!important;
}
.admin-menu-modal-header h2{
  margin:0!important;
  font-size:30px!important;
  color:#fff!important;
}
.admin-menu-modal-header p{
  margin:6px 0 0!important;
  color:rgba(255,255,255,.86)!important;
}
.admin-menu-close{
  width:46px!important;
  height:46px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.35)!important;
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  font-size:30px!important;
  cursor:pointer!important;
}
.admin-menu-modal-body{
  padding:24px!important;
  overflow:auto!important;
  background:#f4f8fb!important;
}
.admin-menu-popup-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
}
.admin-menu-group{
  background:#fff!important;
  border:1px solid #dbe6f0!important;
  border-radius:20px!important;
  padding:18px!important;
  box-shadow:0 12px 28px rgba(8,47,95,.08)!important;
}
.admin-menu-group h3{
  margin:0 0 14px!important;
  color:#0b3a78!important;
  font-size:20px!important;
}
.admin-menu-group-links{
  display:grid!important;
  gap:9px!important;
}
.admin-menu-group-links a{
  min-height:44px!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:10px 12px!important;
  border-radius:12px!important;
  background:#f8fbfe!important;
  border:1px solid #e2ebf4!important;
  color:#0b3a78!important;
  font-weight:400!important;
}
.admin-menu-group-links a:hover{
  background:#eef6fd!important;
  transform:translateX(2px)!important;
}
@media(max-width:1050px){
  .admin-menu-popup-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:720px){
  .admin-menu-popup-grid{grid-template-columns:1fr!important}
}

/* ===== Gerenciamento administrativo por popup funcional ===== */
.admin-menu-group-links button{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:10px 12px!important;
  background:#f8fbfe!important;
  border:1px solid #e2ebf4!important;
  color:#0b3a78!important;
  font-family:inherit!important;
  text-align:left!important;
  cursor:pointer!important;
}
.admin-menu-group-links button:hover{
  background:#eef6fd!important;
  transform:translateX(2px)!important;
}
.admin-menu-group-links button::before{
  content:"";
  width:10px;
  background:#0e9b67;
  box-shadow:0 0 0 4px rgba(14,155,103,.10);
  flex:0 0 10px;
}
.admin-manage-overlay{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  background:rgba(2,18,38,.72)!important;
  backdrop-filter:blur(5px)!important;
  z-index:1000001!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
}
.admin-manage-overlay.is-open{display:flex!important}
.admin-manage-modal{
  width:min(1260px,calc(100vw - 48px))!important;
  max-height:88vh!important;
  background:#fff!important;
  border-radius:28px!important;
  overflow:hidden!important;
  box-shadow:0 40px 100px rgba(0,0,0,.45)!important;
  display:flex!important;
  flex-direction:column!important;
}
.admin-manage-header{
  background:linear-gradient(110deg,#052b55,#0b4d88 55%,#0e9b67)!important;
  color:#fff!important;
  padding:22px 26px!important;
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:20px!important;
}
.admin-manage-header h2{margin:0!important;font-size:28px!important;color:#fff!important}
.admin-manage-header p{margin:5px 0 0!important;color:rgba(255,255,255,.86)!important}
.admin-manage-close{
  width:44px!important;
  height:44px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.35)!important;
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  font-size:28px!important;
  cursor:pointer!important;
}
.admin-manage-body{
  padding:22px!important;
  overflow:auto!important;
  background:#f4f8fb!important;
  display:grid!important;
  grid-template-columns:minmax(300px,.78fr) minmax(0,1.22fr)!important;
  gap:20px!important;
}
.admin-record-panel,.admin-form-panel{
  background:#fff!important;
  border:1px solid #dbe6f0!important;
  border-radius:20px!important;
  box-shadow:0 12px 28px rgba(8,47,95,.08)!important;
  overflow:hidden!important;
}
.admin-record-panel h3,.admin-form-panel h3{
  margin:0!important;
  padding:18px 20px!important;
  border-bottom:1px solid #e3edf6!important;
  color:#0b3a78!important;
  font-size:20px!important;
}
.admin-record-toolbar{padding:14px!important;border-bottom:1px solid #e3edf6!important}
.admin-record-toolbar input{
  width:100%!important;
  height:42px!important;
  border:1px solid #d4e1ee!important;
  border-radius:12px!important;
  padding:0 14px!important;
  outline:0!important;
}
.admin-record-list{max-height:475px!important;overflow:auto!important;padding:12px!important;display:grid!important;gap:10px!important}
.admin-record-item{
  width:100%!important;
  border:1px solid #dbe6f0!important;
  border-radius:14px!important;
  background:#f8fbfe!important;
  padding:13px!important;
  text-align:left!important;
  cursor:pointer!important;
  color:#0b3a78!important;
  font-weight:400!important;
  font-family:inherit!important;
}
.admin-record-item small{display:block!important;margin-top:5px!important;color:#5d6d7e!important;font-weight:400!important}
.admin-record-item.active,.admin-record-item:hover{background:#eef6fd!important;border-color:#0e9b67!important}
.admin-form-content{padding:18px 20px!important}
.admin-form-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
.admin-field{display:grid!important;gap:7px!important}
.admin-field.full{grid-column:1 / -1!important}
.admin-field span{color:#0b3a78!important;font-weight:400!important}
.admin-field input,.admin-field select,.admin-field textarea{
  width:100%!important;
  border:1px solid #d4e1ee!important;
  border-radius:12px!important;
  padding:12px 14px!important;
  outline:0!important;
  background:#f8fbfe!important;
  font-family:inherit!important;
  font-size:14px!important;
}
.admin-field textarea{min-height:115px!important;resize:vertical!important}
.admin-form-actions{margin-top:18px!important;padding-top:16px!important;border-top:1px solid #e3edf6!important;display:flex!important;gap:12px!important;flex-wrap:wrap!important}
.admin-crud-btn{border:0!important;cursor:pointer!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;height:40px!important;min-height:40px!important;max-height:none!important;border-radius:10px!important;padding:0 16px!important;font-size:14px!important;font-weight:400!important;line-height:1.2!important;box-sizing:border-box!important;}
.admin-crud-btn.save{background:#0e9b67!important;color:#fff!important}
.admin-crud-btn.edit{background:#0b4d88!important;color:#fff!important}
.admin-crud-btn.delete{background:#c0392b!important;color:#fff!important}
.admin-crud-btn.new{background:#eef5ff!important;color:#0b3a78!important}
.admin-status-message{margin-top:14px!important;padding:12px 14px!important;border-radius:12px!important;background:#eefaf4!important;color:#0a7d57!important;font-weight:400!important;display:none!important}
.admin-status-message.show{display:block!important}
@media(max-width:980px){.admin-manage-body{grid-template-columns:1fr!important}}
@media(max-width:680px){.admin-form-grid{grid-template-columns:1fr!important}}

/* ===== Ajuste dos formulários administrativos por módulo ===== */
.admin-form-grid{
  align-items:start;
}
.admin-field small{
  color:#6a7d90;
  font-size:12px;
  margin-top:-2px;
}
.admin-field input[type="file"]{
  padding:10px;
  background:#fff;
}
.admin-field .help-text{
  color:#6a7d90;
  font-size:12px;
  font-weight:400;
}
.admin-manage-modal{
  width:min(1340px,calc(100vw - 42px))!important;
}
.admin-record-panel h3::after{
  content:"";
  display:block;
  width:44px;
  height:4px;
  background:#0e9b67;
  border-radius:99px;
  margin-top:10px;
}

/* ===== Scroll interno nos popups administrativos ===== */
.admin-menu-overlay,
.admin-manage-overlay{
  overflow:hidden!important;
}

.admin-menu-modal,
.admin-manage-modal{
  max-height:calc(100vh - 48px)!important;
  height:auto!important;
  overflow:hidden!important;
}

.admin-menu-modal-body{
  flex:1 1 auto!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  max-height:calc(100vh - 170px)!important;
  padding-right:22px!important;
}

.admin-manage-body{
  flex:1 1 auto!important;
  overflow:hidden!important;
  max-height:calc(100vh - 170px)!important;
}

.admin-record-panel,
.admin-form-panel{
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
}

.admin-record-list{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}

.admin-form-content{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  max-height:calc(100vh - 315px)!important;
  padding-bottom:28px!important;
}

.admin-form-actions{
  position:sticky!important;
  bottom:0!important;
  background:#fff!important;
  z-index:5!important;
  padding:16px 0 0!important;
  margin-top:18px!important;
}

.admin-manage-header,
.admin-menu-modal-header{
  flex:0 0 auto!important;
}

.admin-manage-modal{
  width:min(1380px,calc(100vw - 42px))!important;
}

.admin-manage-body::-webkit-scrollbar,
.admin-form-content::-webkit-scrollbar,
.admin-record-list::-webkit-scrollbar,
.admin-menu-modal-body::-webkit-scrollbar{
  width:10px;
}

.admin-manage-body::-webkit-scrollbar-thumb,
.admin-form-content::-webkit-scrollbar-thumb,
.admin-record-list::-webkit-scrollbar-thumb,
.admin-menu-modal-body::-webkit-scrollbar-thumb{
  background:#9fb4c8;
  border-radius:999px;
  border:2px solid #eef3f8;
}

.admin-manage-body::-webkit-scrollbar-track,
.admin-form-content::-webkit-scrollbar-track,
.admin-record-list::-webkit-scrollbar-track,
.admin-menu-modal-body::-webkit-scrollbar-track{
  background:#eef3f8;
  border-radius:999px;
}

@media(max-width:980px){
  .admin-manage-body{
    overflow-y:auto!important;
    grid-template-columns:1fr!important;
  }

  .admin-record-list{
    max-height:260px!important;
  }

  .admin-form-content{
    max-height:none!important;
  }
}

/* ===== Configurações: campos de rodapé superior e inferior ===== */
.admin-manage-modal{
  width:min(1440px,calc(100vw - 36px))!important;
}
.admin-field input[type="file"]{
  min-height:48px;
}
.admin-field.full textarea{
  min-height:130px;
}

/* ===== Campos de anexo/imagem/documento no painel administrativo ===== */
.admin-field input[type="file"]{
  background:#fff!important;
  border:2px dashed #b8c9da!important;
  padding:14px!important;
  min-height:56px!important;
  cursor:pointer!important;
}
.admin-field input[type="file"]::file-selector-button{
  border:0;
  background:#0b4d88;
  color:#fff;
  padding:10px 14px;
  margin-right:12px;
  cursor:pointer;
}
.admin-field input[type="file"]::-webkit-file-upload-button{
  border:0;
  background:#0b4d88;
  color:#fff;
  padding:10px 14px;
  margin-right:12px;
  cursor:pointer;
}
.admin-field .help-text{
  color:#6a7d90!important;
  font-size:12px!important;
  font-weight:400!important;
}

/* ===== Notícias: imagem e documentos/anexos como upload ===== */
.admin-field input[type="file"]{
  background:#fff!important;
  border:2px dashed #b8c9da!important;
  padding:14px!important;
  min-height:56px!important;
  cursor:pointer!important;
}
.admin-field input[type="file"]::file-selector-button{
  border:0;
  background:#0b4d88;
  color:#fff;
  padding:10px 14px;
  margin-right:12px;
  cursor:pointer;
}
.admin-field input[type="file"]::-webkit-file-upload-button{
  border:0;
  background:#0b4d88;
  color:#fff;
  padding:10px 14px;
  margin-right:12px;
  cursor:pointer;
}
.admin-field .help-text{
  color:#6a7d90!important;
  font-size:12px!important;
  font-weight:400!important;
}

/* ===== Upload real para imagens e documentos ===== */
.admin-field input[type="file"]{
  display:block!important;
  width:100%!important;
  min-height:62px!important;
  border:2px dashed #9fb4c8!important;
  border-radius:14px!important;
  padding:14px!important;
  background:#ffffff!important;
  cursor:pointer!important;
  color:#0b3a78!important;
}
.admin-field input[type="file"]::file-selector-button{
  border:0!important;
  background:#0b4d88!important;
  color:#fff!important;
  padding:11px 16px!important;
  margin-right:14px!important;
  cursor:pointer!important;
}
.admin-field input[type="file"]::-webkit-file-upload-button{
  border:0!important;
  background:#0b4d88!important;
  color:#fff!important;
  padding:11px 16px!important;
  margin-right:14px!important;
  cursor:pointer!important;
}
.admin-field .help-text{
  display:block!important;
  color:#6a7d90!important;
  font-size:12px!important;
  font-weight:400!important;
  margin-bottom:6px!important;
}

/* ===== Revisão total dos campos administrativos ===== */
.admin-field input[type="file"]{
  display:block!important;
  width:100%!important;
  min-height:62px!important;
  border:2px dashed #9fb4c8!important;
  border-radius:14px!important;
  padding:14px!important;
  background:#fff!important;
  cursor:pointer!important;
  color:#0b3a78!important;
}
.admin-field input[type="file"]::file-selector-button{
  border:0!important;
  background:#0b4d88!important;
  color:#fff!important;
  padding:11px 16px!important;
  margin-right:14px!important;
  cursor:pointer!important;
}
.admin-field .help-text{
  display:block!important;
  color:#6a7d90!important;
  font-size:12px!important;
  font-weight:400!important;
  margin-bottom:6px!important;
}

/* ===== Campos administrativos por módulo - revisão completa ===== */
.admin-field input[type="file"]{
  display:block!important;
  width:100%!important;
  min-height:62px!important;
  border:2px dashed #9fb4c8!important;
  border-radius:14px!important;
  padding:14px!important;
  background:#fff!important;
  cursor:pointer!important;
  color:#0b3a78!important;
}
.admin-field input[type="file"]::file-selector-button{
  border:0!important;
  background:#0b4d88!important;
  color:#fff!important;
  padding:11px 16px!important;
  margin-right:14px!important;
  cursor:pointer!important;
}
.admin-field input[type="file"]::-webkit-file-upload-button{
  border:0!important;
  background:#0b4d88!important;
  color:#fff!important;
  padding:11px 16px!important;
  margin-right:14px!important;
  cursor:pointer!important;
}
.admin-field .help-text{
  display:block!important;
  color:#6a7d90!important;
  font-size:12px!important;
  font-weight:400!important;
  margin-bottom:6px!important;
}
.admin-field textarea{
  min-height:130px!important;
}

/* ===== Correção final: popups administrativos funcionando ===== */
.admin-menu-overlay,
.admin-manage-overlay{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  background:rgba(2,18,38,.70)!important;
  backdrop-filter:blur(5px)!important;
  z-index:999999!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  overflow:hidden!important;
}
.admin-menu-overlay.is-open,
.admin-manage-overlay.is-open{
  display:flex!important;
}
.admin-menu-modal,
.admin-manage-modal{
  max-height:calc(100vh - 48px)!important;
  overflow:hidden!important;
}
.admin-menu-modal-body,
.admin-manage-body,
.admin-form-content,
.admin-record-list{
  overflow-y:auto!important;
}
.admin-manage-body{
  max-height:calc(100vh - 170px)!important;
}
.admin-form-content{
  max-height:calc(100vh - 315px)!important;
}
.admin-field input[type="file"]{
  display:block!important;
  width:100%!important;
  min-height:62px!important;
  border:2px dashed #9fb4c8!important;
  border-radius:14px!important;
  padding:14px!important;
  background:#fff!important;
  cursor:pointer!important;
  color:#0b3a78!important;
}
.admin-field input[type="file"]::file-selector-button{
  border:0!important;
  background:#0b4d88!important;
  color:#fff!important;
  padding:11px 16px!important;
  margin-right:14px!important;
  cursor:pointer!important;
}
.admin-field .help-text{
  display:block!important;
  color:#6a7d90!important;
  font-size:12px!important;
  font-weight:400!important;
  margin-bottom:6px!important;
}

/* ===== Upload múltiplo com lista e remoção individual ===== */
.admin-upload-box{
  display:grid;
  gap:10px;
}
.admin-upload-list{
  display:grid;
  gap:8px;
  margin-top:4px;
}
.admin-upload-empty{
  border:1px dashed #c8d6e3;
  background:#f8fbfe;
  color:#6a7d90;
  border-radius:12px;
  padding:11px 12px;
  font-size:13px;
  font-weight:400;
}
.admin-upload-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid #dbe6f0;
  background:#fff;
  border-radius:13px;
  padding:10px 11px;
  box-shadow:0 6px 16px rgba(8,47,95,.05);
}
.admin-upload-info{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.admin-upload-icon{
  width:34px;
  height:34px;
  border-radius:10px;
  background:#eef6fd;
  display:grid;
  place-items:center;
  flex:0 0 34px;
}
.admin-upload-info strong{
  display:block;
  max-width:720px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#0b3a78;
  font-size:14px;
}
.admin-upload-info small{
  display:block;
  margin-top:2px;
  color:#6a7d90;
  font-size:12px;
  font-weight:400;
}
.admin-upload-remove{
  width:32px;
  height:32px;
  border:0;
  border-radius:50%;
  background:#ffe8e6;
  color:#c0392b;
  font-size:22px;
  line-height:1;
  font-weight:400;
  cursor:pointer;
  flex:0 0 32px;
}
.admin-upload-remove:hover{
  background:#c0392b;
  color:#fff;
}




/* ===== Auditoria e Logs: layout melhorado dentro do popup ===== */
.audit-only-panel{
  width:100%;
  display:grid;
  gap:18px;
  padding:22px;
  overflow:hidden;
}
.audit-warning{
  width:100%;
  border:1px solid #f1c27d;
  background:#fff5df;
  color:#6b4100;
  border-radius:14px;
  padding:14px 16px;
  font-size:15px;
  line-height:1.35;
}
.audit-warning strong{
  display:block;
  margin-bottom:3px;
}
.audit-filter-card{
  border:1px solid #dbe6f0;
  background:#f8fbfe;
  border-radius:18px;
  padding:16px;
}
.audit-filter-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}
.audit-filter-header h3{
  margin:0;
  color:#083b73;
  font-size:20px;
}
.audit-filter-header p{
  margin:3px 0 0;
  color:#5e7185;
  font-size:13px;
  font-weight:400;
}
.audit-clear-btn{
  border:0;
  border-radius:12px;
  background:#0b4d88;
  color:#fff;
  padding:12px 16px;
  font-weight:400;
  cursor:pointer;
  white-space:nowrap;
}
.audit-filter-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(130px,1fr));
  gap:12px;
}
.audit-filter-grid label{
  display:grid;
  gap:6px;
  margin:0;
}
.audit-filter-grid label span{
  color:#102f52;
  font-size:13px;
  font-weight:400;
}
.audit-filter-grid input,
.audit-filter-grid select{
  width:100%;
  height:46px;
  border:1px solid #cfdde9;
  border-radius:12px;
  background:#fff;
  padding:0 12px;
  color:#102f52;
  font-weight:400;
  outline:none;
}
.audit-filter-grid .audit-search-field{
  grid-column:span 3;
}
.audit-result-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.audit-result-header h3{
  margin:0;
  color:#083b73;
  font-size:20px;
}
.audit-table-wrap{
  border:1px solid #dbe6f0;
  border-radius:16px;
  overflow:auto;
  background:#fff;
  max-height:calc(100vh - 465px);
  min-height:260px;
}
.audit-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  min-width:1120px;
}
.audit-table thead th{
  position:sticky;
  top:0;
  z-index:2;
  background:#0b4d88;
  color:#fff;
  text-align:left;
  padding:13px 12px;
  font-size:13px;
  white-space:nowrap;
}
.audit-table tbody td{
  border-bottom:1px solid #edf2f7;
  padding:12px;
  vertical-align:top;
  color:#102f52;
  font-size:14px;
}
.audit-table tbody tr:hover{
  background:#f7fbff;
}
.audit-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  background:#eaf3fb;
  color:#0b4d88;
  font-weight:400;
  padding:6px 10px;
  font-size:12px;
  white-space:nowrap;
}
.audit-empty{
  text-align:center!important;
  color:#6a7d90!important;
  font-weight:400!important;
  padding:32px!important;
}
.admin-manage-modal:has(.audit-only-panel){
  width:min(1500px,calc(100vw - 36px))!important;
}
.admin-manage-body:has(.audit-only-panel){
  display:block!important;
  overflow:auto!important;
  max-height:calc(100vh - 150px)!important;
}
@media(max-width:1100px){
  .audit-filter-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .audit-filter-grid .audit-search-field{
    grid-column:span 2;
  }
}
@media(max-width:720px){
  .audit-filter-header{
    flex-direction:column;
  }
  .audit-filter-grid{
    grid-template-columns:1fr;
  }
  .audit-filter-grid .audit-search-field{
    grid-column:auto;
  }
  .audit-only-panel{
    padding:14px;
  }
}


/* ===== Garantia de exibição do popup Configurações ===== */
.admin-manage-overlay.is-open{
  display:flex!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.admin-manage-modal{
  pointer-events:auto!important;
}


/* ===== Revisão profissional final do frontend ===== */
.admin-status-message.warn{background:#fff5df!important;color:#6b4100!important;border:1px solid #f1c27d!important}
.admin-record-empty{padding:18px;border:1px dashed #c8d6e3;border-radius:12px;color:#6a7d90;font-weight:400;text-align:center}
.admin-upload-icon img{width:100%;height:100%;object-fit:cover;border-radius:10px}
.portal-module-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  border:1px solid #dbe6f0;background:linear-gradient(135deg,#ffffff,#f4f9fd);
  border-radius:20px;padding:24px;margin-bottom:18px;box-shadow:0 14px 35px rgba(8,47,95,.06)
}
.portal-module-head span{display:inline-flex;background:#eaf3fb;color:#0b4d88;border-radius:999px;padding:7px 11px;font-weight:400;font-size:12px}
.portal-module-head h2{margin:10px 0 5px;color:#083b73;font-size:30px}
.portal-module-head p{margin:0;color:#5e7185;font-weight:400}
.portal-module-head strong{background:#0b4d88;color:#fff;border-radius:14px;padding:12px 15px;white-space:nowrap}
.portal-filter-card{border:1px solid #dbe6f0;background:#fff;border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 10px 25px rgba(8,47,95,.05)}
.portal-filter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.portal-filter-header h3{margin:0;color:#083b73;font-size:21px}
.portal-filter-header p{margin:4px 0 0;color:#6a7d90;font-weight:400}
.portal-filter-header button{border:0;background:#0b4d88;color:#fff;padding:11px 15px;cursor:pointer}
.portal-filter-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.portal-record-count{display:inline-flex;align-items:center;background:#0b4d88;color:#fff;border-radius:14px;padding:12px 15px;white-space:nowrap;font-weight:400}

.portal-filter-grid{display:grid;grid-template-columns:2fr repeat(3,1fr);gap:12px}
.portal-filter-grid label{display:grid;gap:6px}
.portal-filter-grid span{color:#102f52;font-weight:400;font-size:13px}
.portal-filter-grid input,.portal-filter-grid select{height:46px;border:1px solid #cfdde9;border-radius:12px;background:#fff;padding:0 12px;color:#102f52;font-weight:400}
.portal-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}
.portal-public-card,.portal-document-item,.portal-table-card{border:1px solid #dbe6f0;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 12px 28px rgba(8,47,95,.06)}
.portal-cover-placeholder{height:170px;background:linear-gradient(135deg,#0b4d88,#0aa36f);display:grid;place-items:center;color:#fff}
.portal-cover-placeholder span{font-size:38px;font-weight:400;letter-spacing:1px}
.portal-cover-img{height:170px;background-size:cover;background-position:center}
.portal-public-body{padding:18px}
.portal-public-body h3,.portal-document-item h3{color:#083b73;margin:10px 0 8px;font-size:20px}
.portal-public-body p,.portal-document-item p{color:#5e7185;font-weight:400;line-height:1.45}
.portal-status{display:inline-flex;align-items:center;background:#eaf3fb;color:#0b4d88;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:400}
.portal-meta{color:#6a7d90;font-weight:400;font-size:13px;margin:10px 0}
.portal-file-list{display:grid;gap:7px;margin-top:12px}
.portal-file-list a{display:flex;align-items:center;gap:9px;border:1px solid #dbe6f0;background:#f8fbfe;border-radius:12px;padding:9px 10px;text-decoration:none;color:#102f52}
.portal-file-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.portal-file-list em{margin-left:auto;color:#6a7d90;font-style:normal;font-size:11px;font-weight:400}
.portal-no-files{display:block;color:#6a7d90;font-weight:400;margin-top:12px;font-size:13px}
.portal-document-list{display:grid;gap:14px;margin-bottom:22px}
.portal-document-item{display:grid;grid-template-columns:1fr 330px;gap:18px;padding:18px}
.portal-table-card{overflow:auto;margin-bottom:22px}
.portal-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1080px}
.portal-table th{background:#0b4d88;color:#fff;text-align:left;padding:13px;font-size:13px}
.portal-table td{border-bottom:1px solid #edf2f7;padding:13px;vertical-align:top;color:#102f52}
.portal-table small{display:block;color:#6a7d90;font-weight:400;margin-top:4px}
.portal-empty{border:1px dashed #c8d6e3;background:#fff;border-radius:18px;padding:30px;text-align:center;color:#6a7d90;font-weight:400;margin-bottom:22px}
@media(max-width:1100px){
  .portal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-filter-grid{grid-template-columns:1fr 1fr}
  .portal-document-item{grid-template-columns:1fr}
}
@media(max-width:720px){
  .portal-card-grid,.portal-filter-grid{grid-template-columns:1fr}
  .portal-module-head,.portal-filter-header{flex-direction:column}
}


/* ===== Botão Sair no topo administrativo ===== */
.admin-logout-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  padding:8px 15px!important;
  margin-left:14px!important;
  border-radius:999px!important;
  background:#c0392b!important;
  color:#fff!important;
  text-decoration:none!important;
  font-weight:400!important;
  font-size:14px!important;
  line-height:1!important;
  box-shadow:0 8px 18px rgba(192,57,43,.22)!important;
}
.admin-logout-btn:hover{
  background:#a93226!important;
  color:#fff!important;
}
@media(max-width:720px){
  .admin-logout-btn{
    min-height:32px!important;
    padding:7px 12px!important;
    font-size:13px!important;
    margin-left:8px!important;
  }
}


/* ===== Integração backend PHP + MySQL ===== */
.admin-status-message.warn{background:#fff5df!important;color:#6b4100!important;border:1px solid #f1c27d!important}
.admin-record-empty{padding:18px;border:1px dashed #c8d6e3;border-radius:12px;color:#6a7d90;font-weight:400;text-align:center}
.portal-module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;border:1px solid #dbe6f0;background:linear-gradient(135deg,#fff,#f4f9fd);border-radius:20px;padding:24px;margin-bottom:18px;box-shadow:0 14px 35px rgba(8,47,95,.06)}
.portal-module-head span{display:inline-flex;background:#eaf3fb;color:#0b4d88;border-radius:999px;padding:7px 11px;font-weight:400;font-size:12px}.portal-module-head h2{margin:10px 0 5px;color:#083b73;font-size:30px}.portal-module-head p{margin:0;color:#5e7185;font-weight:400}.portal-module-head strong{background:#0b4d88;color:#fff;border-radius:14px;padding:12px 15px;white-space:nowrap}.portal-filter-card{border:1px solid #dbe6f0;background:#fff;border-radius:18px;padding:18px;margin-bottom:18px;box-shadow:0 10px 25px rgba(8,47,95,.05)}.portal-filter-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.portal-filter-header h3{margin:0;color:#083b73;font-size:21px}.portal-filter-header p{margin:4px 0 0;color:#6a7d90;font-weight:400}.portal-filter-header button{border:0;background:#0b4d88;color:#fff;padding:11px 15px;cursor:pointer}.portal-filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.portal-filter-grid label{display:grid;gap:6px}.portal-filter-grid span{color:#102f52;font-weight:400;font-size:13px}.portal-filter-grid input,.portal-filter-grid select{height:46px;border:1px solid #cfdde9;border-radius:12px;background:#fff;padding:0 12px;color:#102f52;font-weight:400}.portal-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:22px}.portal-public-card,.portal-document-item,.portal-table-card{border:1px solid #dbe6f0;background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 12px 28px rgba(8,47,95,.06)}.portal-cover-placeholder{height:170px;background:linear-gradient(135deg,#0b4d88,#0aa36f);display:grid;place-items:center;color:#fff}.portal-cover-placeholder span{font-size:38px;font-weight:400;letter-spacing:1px}.portal-public-body{padding:18px}.portal-public-body h3{color:#083b73;margin:10px 0 8px;font-size:20px}.portal-public-body p{color:#5e7185;font-weight:400;line-height:1.45}.portal-status{display:inline-flex;align-items:center;background:#eaf3fb;color:#0b4d88;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:400}.portal-meta{color:#6a7d90;font-weight:400;font-size:13px;margin:10px 0}.portal-file-list{display:grid;gap:7px;margin-top:12px}.portal-file-list a{display:flex;align-items:center;gap:9px;border:1px solid #dbe6f0;background:#f8fbfe;border-radius:12px;padding:9px 10px;text-decoration:none;color:#102f52}.portal-file-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}.portal-file-list em{margin-left:auto;color:#6a7d90;font-style:normal;font-size:11px;font-weight:400}.portal-no-files{display:block;color:#6a7d90;font-weight:400;margin-top:12px;font-size:13px}.portal-table-card{overflow:auto;margin-bottom:22px}.portal-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1080px}.portal-table th{background:#0b4d88;color:#fff;text-align:left;padding:13px;font-size:13px}.portal-table td{border-bottom:1px solid #edf2f7;padding:13px;vertical-align:top;color:#102f52}.portal-table small{display:block;color:#6a7d90;font-weight:400;margin-top:4px}.portal-empty{border:1px dashed #c8d6e3;background:#fff;border-radius:18px;padding:30px;text-align:center;color:#6a7d90;font-weight:400;margin-bottom:22px}@media(max-width:1100px){.portal-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-filter-grid{grid-template-columns:1fr 1fr}}@media(max-width:720px){.portal-card-grid,.portal-filter-grid{grid-template-columns:1fr}.portal-module-head,.portal-filter-header{flex-direction:column}.portal-filter-header-actions{width:100%;justify-content:flex-start}}

/* ===== Login: primeiro acesso e redefinição de senha ===== */
.admin-login-extra-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:14px;
}
.admin-text-action{
  border:1px solid #cfdde9;
  background:#fff;
  color:#0b3a78;
  border-radius:12px;
  padding:11px 14px;
  font-weight:400;
  cursor:pointer;
  box-shadow:0 8px 18px rgba(8,47,95,.05);
}
.admin-text-action:hover{
  background:#eef6fd;
}
.login-modal-overlay{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(2,18,38,.72);
  backdrop-filter:blur(6px);
}
.login-modal-overlay.is-open{display:flex;}
.login-modal{
  width:min(920px,calc(100vw - 32px));
  max-height:calc(100vh - 48px);
  overflow:hidden;
  background:#fff;
  border-radius:24px;
  box-shadow:0 26px 80px rgba(0,0,0,.28);
  border:1px solid rgba(255,255,255,.45);
}
.login-modal.small{width:min(620px,calc(100vw - 32px));}
.login-modal-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:24px 26px;
  color:#fff;
  background:linear-gradient(135deg,#063766,#0a996d);
}
.login-modal-header h2{margin:0;font-size:28px;line-height:1.1;}
.login-modal-header p{margin:7px 0 0;color:rgba(255,255,255,.88);font-weight:400;}
.login-modal-close{
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-size:28px;
  font-weight:400;
  cursor:pointer;
}
.login-modal-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:15px;
  padding:24px 26px 26px;
  overflow:auto;
  max-height:calc(100vh - 190px);
}
.login-modal-form.one-column{grid-template-columns:1fr;}
.login-modal-form label{display:grid;gap:7px;}
.login-modal-form label.full{grid-column:1/-1;}
.login-modal-form span{color:#0b3a78;font-size:14px;font-weight:400;}
.login-modal-form input{
  width:100%;
  min-height:48px;
  border:1px solid #cfdde9;
  border-radius:13px;
  background:#f8fbfe;
  padding:0 14px;
  color:#102f52;
  font-weight:400;
  outline:none;
}
.login-modal-form input:focus{
  border-color:#0b4d88;
  box-shadow:0 0 0 4px rgba(11,77,136,.12);
  background:#fff;
}
.login-modal-alert{
  grid-column:1/-1;
  border:1px solid #f1c27d;
  background:#fff5df;
  color:#6b4100;
  border-radius:14px;
  padding:12px 14px;
  font-size:13px;
  font-weight:400;
}
.login-modal-actions{
  grid-column:1/-1;
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
  border-top:1px solid #edf2f7;
  padding-top:16px;
}
.login-modal-message{
  grid-column:1/-1;
  display:none;
  border-radius:14px;
  padding:12px 14px;
  font-weight:400;
  line-height:1.35;
  word-break:break-word;
}
.login-modal-message.success{
  display:block;
  border:1px solid #9ed8bd;
  background:#eaf8f0;
  color:#0d6b3d;
}
.login-modal-message.error{
  display:block;
  border:1px solid #f0aaa3;
  background:#fff0ee;
  color:#a93226;
}
@media(max-width:760px){
  .login-modal-form{grid-template-columns:1fr;}
  .admin-login-extra-actions{flex-direction:column;}
  .admin-text-action{width:100%;}
}


/* ===== Usuários: liberação, bloqueio, redefinição e exclusão ===== */
.users-admin-panel{width:100%;display:grid;gap:16px;padding:22px;overflow:hidden}
.users-admin-alert{border:1px solid #f1c27d;background:#fff5df;color:#6b4100;border-radius:14px;padding:14px 16px;font-weight:400}.users-admin-alert strong{display:block;margin-bottom:3px}
.users-filter-bar{display:grid;grid-template-columns:2fr 220px auto;gap:12px;align-items:end;border:1px solid #dbe6f0;background:#f8fbfe;border-radius:16px;padding:14px}.users-filter-bar label{display:grid;gap:6px}.users-filter-bar span{font-weight:400;color:#102f52}.users-filter-bar input,.users-filter-bar select{height:46px;border:1px solid #cfdde9;border-radius:12px;background:#fff;padding:0 12px;font-weight:400;color:#102f52}.users-filter-bar button{;border:0;background:#0b4d88;color:#fff;padding:0 18px;cursor:pointer}
.users-message{display:none;border-radius:12px;padding:12px 14px;font-weight:400}.users-message.show{display:block}.users-message.success{background:#e9f8ef;color:#08733e;border:1px solid #bde7ca}.users-message.error{background:#ffeceb;color:#b7342b;border:1px solid #f3b9b4}
.users-table-wrap{border:1px solid #dbe6f0;border-radius:16px;overflow:auto;background:#fff;max-height:calc(100vh - 370px);min-height:280px}.users-table{width:100%;min-width:1180px;border-collapse:separate;border-spacing:0}.users-table th{position:sticky;top:0;z-index:2;background:#0b4d88;color:#fff;text-align:left;padding:13px;font-size:13px}.users-table td{border-bottom:1px solid #edf2f7;padding:12px;color:#102f52;vertical-align:top}.users-table td strong{display:block;color:#083b73}.users-table td small{display:block;color:#6a7d90;font-weight:400;margin-top:3px}.users-empty{text-align:center!important;color:#6a7d90!important;font-weight:400!important;padding:30px!important}.user-status-badge{display:inline-flex;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:400;background:#edf3f8;color:#38536b}.user-status-badge.ativo{background:#e9f8ef;color:#08733e}.user-status-badge.bloqueado{background:#fff5df;color:#8a5700}.user-status-badge.inativo,.user-status-badge.suspenso{background:#ffeceb;color:#b7342b}.users-actions{display:flex;gap:7px;flex-wrap:wrap}.users-actions button{border:0;padding:9px 11px;cursor:pointer;color:#fff}.users-actions .toggle{background:#0b4d88}.users-actions .reset{background:#0aa36f}.users-actions .delete{background:#c0392b}
.admin-manage-body:has(.users-admin-panel){display:block!important;overflow:auto!important;max-height:calc(100vh - 150px)!important}.admin-manage-modal:has(.users-admin-panel){width:min(1500px,calc(100vw - 36px))!important}
@media(max-width:800px){.users-filter-bar{grid-template-columns:1fr}.users-table-wrap{max-height:calc(100vh - 430px)}}


/* ===== Validação CPF/CNPJ no primeiro acesso ===== */
.cpf-cnpj-validation-msg{
  display:block;
  margin-top:7px;
  font-size:12px;
  font-weight:400;
  color:#6a7d90;
}
.cpf-cnpj-validation-msg.ok{ color:#0a8f57; }
.cpf-cnpj-validation-msg.erro{ color:#b0342c; }
.cpf-cnpj-validation-msg.warn{ color:#8a5a00; }
[data-empresa-wrapper="1"]{ transition:.18s ease; }


/* ===== CORREÇÃO FINAL - CSS DOS POPUPS DOS MÓDULOS ADMINISTRATIVOS ===== */
.admin-manage-overlay{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  padding:24px!important;
  background:rgba(2,18,38,.72)!important;
  backdrop-filter:blur(6px)!important;
  z-index:999999!important;
  overflow:hidden!important;
}
.admin-manage-overlay.is-open,
.admin-manage-overlay.open{
  display:flex!important;
}
.admin-manage-modal{
  width:min(1440px,calc(100vw - 48px))!important;
  max-height:calc(100vh - 48px)!important;
  background:#fff!important;
  border-radius:28px!important;
  overflow:hidden!important;
  box-shadow:0 40px 100px rgba(0,0,0,.45)!important;
  display:flex!important;
  flex-direction:column!important;
}
.admin-manage-header{
  flex:0 0 auto!important;
  min-height:98px!important;
  padding:22px 28px!important;
  background:linear-gradient(110deg,#052b55,#0b4d88 55%,#0e9b67)!important;
  color:#fff!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
}
.admin-manage-header h2{
  margin:0!important;
  color:#fff!important;
  font-size:28px!important;
  line-height:1.1!important;
  letter-spacing:.01em!important;
}
.admin-manage-header p{
  margin:6px 0 0!important;
  color:rgba(255,255,255,.9)!important;
  font-size:16px!important;
  line-height:1.35!important;
}
.admin-manage-close{
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.35)!important;
  background:rgba(255,255,255,.16)!important;
  color:#fff!important;
  font-size:30px!important;
  line-height:1!important;
  display:grid!important;
  place-items:center!important;
  cursor:pointer!important;
}
.admin-manage-body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:auto!important;
  padding:22px!important;
  background:#f4f8fb!important;
  display:grid!important;
  grid-template-columns:minmax(340px,.72fr) minmax(620px,1.28fr)!important;
  gap:20px!important;
  align-items:stretch!important;
}
.admin-record-panel,
.admin-form-panel{
  min-width:0!important;
  min-height:0!important;
  background:#fff!important;
  border:1px solid #dbe6f0!important;
  border-radius:20px!important;
  box-shadow:0 12px 28px rgba(8,47,95,.08)!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.admin-record-panel h3,
.admin-form-panel h3{
  flex:0 0 auto!important;
  margin:0!important;
  padding:18px 20px!important;
  border-bottom:1px solid #e3edf6!important;
  color:#0b3a78!important;
  font-size:22px!important;
  line-height:1.2!important;
  font-weight:400!important;
}
.admin-record-panel h3::after{
  content:""!important;
  display:block!important;
  width:44px!important;
  height:4px!important;
  background:#0e9b67!important;
  border-radius:99px!important;
  margin-top:10px!important;
}
.admin-record-toolbar{
  flex:0 0 auto!important;
  padding:14px!important;
  border-bottom:1px solid #e3edf6!important;
}
.admin-record-toolbar input{
  width:100%!important;
  height:42px!important;
  border:1px solid #d4e1ee!important;
  border-radius:12px!important;
  padding:0 14px!important;
  outline:0!important;
  background:#fff!important;
  color:#0b2341!important;
  font:700 14px Arial,Helvetica,sans-serif!important;
}
.admin-record-list{
  flex:1 1 auto!important;
  min-height:220px!important;
  max-height:none!important;
  overflow:auto!important;
  padding:12px!important;
  display:grid!important;
  gap:10px!important;
  align-content:start!important;
}
.admin-empty-records,
.admin-record-empty{
  width:100%!important;
  padding:18px!important;
  border:1px dashed #c8d6e3!important;
  border-radius:14px!important;
  background:#f8fbfe!important;
  color:#5d6d7e!important;
  font-weight:400!important;
  line-height:1.35!important;
}
.admin-form-content{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  padding:20px!important;
}
.admin-form-grid{
  width:100%!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:16px!important;
  align-items:start!important;
}
.admin-form-grid > label,
.admin-field{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  margin:0!important;
  color:#0b3a78!important;
  font-weight:400!important;
  font-family:Arial,Helvetica,sans-serif!important;
}
.admin-form-grid > label:has(textarea),
.admin-form-grid > label:has(input[type="file"]),
.admin-field.full{
  grid-column:1 / -1!important;
}
.admin-form-grid > label > span,
.admin-field > span{
  display:block!important;
  color:#0b3a78!important;
  font-size:14px!important;
  line-height:1.2!important;
  font-weight:400!important;
  margin:0!important;
}
.admin-form-grid input,
.admin-form-grid select,
.admin-form-grid textarea,
.admin-field input,
.admin-field select,
.admin-field textarea{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:35px!important;
  border:1px solid #d4e1ee!important;
  border-radius:13px!important;
  padding:12px 14px!important;
  background:#f8fbfe!important;
  color:#0b2341!important;
  outline:0!important;
  box-shadow:none!important;
  font:400 14px Arial,Helvetica,sans-serif!important;
}
.admin-form-grid textarea,
.admin-field textarea{
  min-height:120px!important;
  resize:vertical!important;
  line-height:1.45!important;
}
.admin-form-grid input[type="file"],
.admin-field input[type="file"]{
  min-height:62px!important;
  border:2px dashed #9fb4c8!important;
  background:#fff!important;
  padding:14px!important;
  cursor:pointer!important;
}
.admin-form-grid input[type="file"]::file-selector-button,
.admin-field input[type="file"]::file-selector-button,
.admin-form-grid input[type="file"]::-webkit-file-upload-button,
.admin-field input[type="file"]::-webkit-file-upload-button{
  border:0!important;
  background:#0b4d88!important;
  color:#fff!important;
  padding:10px 14px!important;
  margin-right:12px!important;
  cursor:pointer!important;
}
.admin-form-actions{
  position:sticky!important;
  bottom:0!important;
  z-index:10!important;
  margin-top:20px!important;
  padding:16px 0 0!important;
  border-top:1px solid #e3edf6!important;
  background:#fff!important;
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  flex-wrap:wrap!important;
}
.admin-crud-btn{min-width:104px!important;
  
  border:0!important;
  
  
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  
  cursor:pointer!important;
  white-space:nowrap!important;height:40px!important;min-height:40px!important;max-height:none!important;border-radius:10px!important;padding:0 16px!important;font-size:14px!important;font-weight:400!important;line-height:1.2!important;box-sizing:border-box!important;}
.admin-crud-btn.save{background:#0e9b67!important;color:#fff!important}
.admin-crud-btn.edit{background:#0b4d88!important;color:#fff!important}
.admin-crud-btn.delete{background:#c0392b!important;color:#fff!important}
.admin-crud-btn.new{background:#eef5ff!important;color:#0b3a78!important}
.admin-status-message{
  display:none!important;
  margin-top:14px!important;
  padding:12px 14px!important;
  border-radius:12px!important;
  background:#eefaf4!important;
  border:1px solid #bfe9d3!important;
  color:#0a7d57!important;
  font-weight:400!important;
}
.admin-status-message.show,
.admin-status-message.is-visible{
  display:block!important;
}
@media(max-width:1100px){
  .admin-manage-body{grid-template-columns:1fr!important;overflow:auto!important}
  .admin-record-list{max-height:260px!important}
}
@media(max-width:700px){
  .admin-manage-overlay{padding:12px!important}
  .admin-manage-modal{width:calc(100vw - 24px)!important;max-height:calc(100vh - 24px)!important;border-radius:20px!important}
  .admin-manage-header{padding:18px!important;min-height:auto!important}
  .admin-manage-header h2{font-size:23px!important}
  .admin-manage-body{padding:14px!important;gap:14px!important}
  .admin-form-grid{grid-template-columns:1fr!important}
  .admin-form-actions{position:static!important}
  .admin-crud-btn{width:100%!important;height:40px!important;min-height:40px!important;max-height:none!important;border-radius:10px!important;padding:0 16px!important;font-size:14px!important;font-weight:400!important;line-height:1.2!important;box-sizing:border-box!important;}
}


/* ===== Backup completo do sistema ===== */
.backup-full-panel{
  display:grid;
  grid-template-columns:minmax(280px, 420px) 1fr;
  gap:22px;
  width:100%;
}
.backup-card,
.backup-history-card{
  background:#fff;
  border:1px solid rgba(13,55,98,.14);
  border-radius:18px;
  box-shadow:0 12px 30px rgba(15,45,80,.08);
  padding:22px;
}
.backup-card h3,
.backup-history-card h3{
  margin:0 0 8px;
  color:#0b3266;
  font-size:22px;
  letter-spacing:.4px;
}
.backup-card p,
.backup-history-card p{
  margin:0 0 16px;
  color:#526173;
  line-height:1.45;
}
.backup-scope-list{
  display:grid;
  gap:10px;
  margin:18px 0 22px;
}
.backup-scope-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid rgba(13,55,98,.12);
  border-radius:14px;
  background:#f7fbff;
  color:#15375f;
  font-weight:400;
}
.backup-scope-item span:first-child{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#e8f3ff;
}
.backup-generate-btn{
  width:100%;
  min-height:54px;
  border:0;
  border-radius:14px;
  background:linear-gradient(135deg,#0b3b73,#11975b);
  color:#fff;
  font-weight:400;
  font-size:16px;
  cursor:pointer;
  box-shadow:0 12px 24px rgba(15,95,90,.2);
}
.backup-generate-btn:disabled{
  cursor:not-allowed;
  opacity:.75;
}
.backup-progress-box{
  margin-top:20px;
  display:none;
}
.backup-progress-box.is-running,
.backup-progress-box.is-done,
.backup-progress-box.is-error{
  display:block;
}
.backup-progress-track{
  height:16px;
  border-radius:999px;
  background:#e9eef5;
  overflow:hidden;
  position:relative;
}
.backup-progress-bar{
  width:0%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#0b3b73,#10a86b,#0b3b73);
  background-size:220% 100%;
  animation:backupMove 1.15s linear infinite;
  transition:width .35s ease;
}
.backup-progress-box.is-done .backup-progress-bar{
  animation:none;
  width:100%;
}
.backup-progress-text{
  margin-top:10px;
  color:#0b3266;
  font-weight:400;
}
.backup-steps{
  list-style:none;
  padding:0;
  margin:16px 0 0;
  display:grid;
  gap:8px;
}
.backup-steps li{
  display:flex;
  align-items:center;
  gap:8px;
  color:#657486;
  font-size:14px;
}
.backup-steps li::before{
  content:"";
  width:10px;
  height:10px;
  border-radius:50%;
  background:#ccd7e4;
  flex:none;
}
.backup-steps li.active{
  color:#0b3266;
  font-weight:400;
}
.backup-steps li.active::before{
  background:#0ea06a;
  box-shadow:0 0 0 5px rgba(14,160,106,.14);
}
@keyframes backupMove{
  from{background-position:0% 50%;}
  to{background-position:220% 50%;}
}
.backup-history-list{
  display:grid;
  gap:10px;
  max-height:420px;
  overflow:auto;
  padding-right:4px;
}
.backup-history-item{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:center;
  border:1px solid rgba(13,55,98,.12);
  border-radius:14px;
  padding:13px 14px;
  background:#f9fbfe;
}
.backup-history-item strong{
  color:#0b3266;
  display:block;
  word-break:break-all;
}
.backup-history-item small{
  color:#657486;
  display:block;
  margin-top:4px;
}
.backup-history-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.backup-history-actions button,
.backup-history-actions a{
  border:0;
  padding:10px 12px;
  background:#0b3b73;
  color:#fff;
  text-decoration:none;
  cursor:pointer;
}
.backup-empty{
  border:1px dashed #c9d6e5;
  border-radius:14px;
  padding:18px;
  color:#657486;
  text-align:center;
  background:#f9fbfe;
}
@media (max-width: 980px){
  .backup-full-panel{grid-template-columns:1fr;}
}


/* ===== Portal público: cards com capa + popup de detalhes ===== */
.portal-public-card{display:flex;flex-direction:column;height:100%;}
.portal-public-card-clickable{cursor:pointer;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;}
.portal-public-card-clickable:hover,
.portal-public-card-clickable:focus-within{transform:translateY(-2px);box-shadow:0 16px 32px rgba(8,47,95,.10);border-color:#cbd9e7;}
.portal-cover-media,
.portal-cover-placeholder{height:220px;position:relative;overflow:hidden;}
.portal-cover-media img{width:100%;height:100%;display:block;object-fit:cover;background:#eef4fa;}
.portal-cover-placeholder{background:linear-gradient(135deg,#0b4d88,#0aa36f);display:grid;place-items:center;color:#fff;}
.portal-public-body{padding:18px;display:flex;flex-direction:column;flex:1;gap:10px;}
.portal-public-body h3{margin:0;color:#083b73;font-size:22px;line-height:1.2;}
.portal-public-body p{color:#5e7185;font-weight:400;line-height:1.5;margin:0;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;}
.portal-meta{margin:0;color:#6a7d90;font-weight:400;font-size:13px;}
.portal-card-actions{margin-top:auto;padding-top:4px;}
.portal-open-details{border:0;border-radius:12px;background:#0b4d88;color:#fff;padding:11px 14px;font-weight:400;cursor:pointer;}
.portal-open-details:hover{background:#083b73;}
.portal-modal-lock{overflow:hidden;}
.portal-modal-overlay{position:fixed;inset:0;background:rgba(7,24,45,.62);backdrop-filter:blur(5px);display:none;align-items:center;justify-content:center;padding:24px;z-index:9999;}
.portal-modal-overlay.is-open{display:flex;}
.portal-modal-window{position:relative;width:min(920px,100%);max-height:min(88vh,900px);background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 24px 80px rgba(7,24,45,.35);border:1px solid rgba(13,55,98,.14);}
.portal-modal-content{padding:26px 28px 30px;overflow:auto;max-height:min(88vh,900px);}
.portal-modal-close{position:absolute;top:16px;right:16px;width:42px;height:42px;border:0;border-radius:50%;background:#eff5fb;color:#0b3a78;font-size:28px;line-height:1;cursor:pointer;font-weight:400;z-index:2;}
.portal-modal-head{padding-right:48px;margin-bottom:18px;}
.portal-modal-head-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}
.portal-date-badge{display:inline-flex;align-items:center;gap:8px;background:#f2f7fc;border:1px solid #d7e3ef;color:#36506b;border-radius:999px;padding:8px 12px;font-weight:400;font-size:13px;}
.portal-modal-head h3{margin:12px 0 0;color:#083b73;font-size:30px;line-height:1.15;}
.portal-detail-meta{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px;}
.portal-detail-meta span{display:inline-flex;align-items:center;gap:8px;background:#f2f7fc;border:1px solid #d7e3ef;color:#36506b;border-radius:999px;padding:8px 12px;font-weight:400;font-size:13px;}
.portal-detail-section{border-top:1px solid #e8eef5;padding-top:18px;margin-top:18px;}
.portal-detail-section h4{margin:0 0 10px;color:#0b3a78;font-size:18px;}
.portal-detail-text{color:#5e7185;line-height:1.7;font-weight:400;}
.portal-detail-text p{margin:0;}
.portal-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.portal-detail-item{background:#f8fbfe;border:1px solid #dbe6f0;border-radius:16px;padding:14px;display:grid;gap:6px;}
.portal-detail-item strong{color:#0b3a78;font-size:13px;}
.portal-detail-item span{color:#5e7185;font-weight:400;}
.portal-detail-files{display:grid;gap:8px;}
.portal-detail-files a{display:flex;align-items:center;gap:10px;border:1px solid #dbe6f0;background:#f8fbfe;border-radius:12px;padding:10px 12px;text-decoration:none;color:#102f52;}
.portal-detail-files strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;}
.portal-detail-files em{margin-left:auto;color:#6a7d90;font-style:normal;font-size:11px;font-weight:400;white-space:nowrap;}
@media(max-width:900px){
  .portal-modal-content{padding:20px 18px 24px;}
  .portal-modal-head h3{font-size:24px;}
}
@media(max-width:720px){
  .portal-cover-media,
  .portal-cover-placeholder{height:190px;}
  .portal-detail-grid{grid-template-columns:1fr;}
  .portal-modal-overlay{padding:12px;}
  .portal-modal-window{max-height:calc(100vh - 24px);border-radius:20px;}
  .portal-modal-content{max-height:calc(100vh - 24px);}
}


/* Diário Oficial: edição composta por documentos de vários setores */
.diario-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:24px;align-items:start}.diario-list-card,.diario-filter-card{background:#fff;border:1px solid #dbe3ea;border-radius:14px;box-shadow:0 10px 30px rgba(31,54,74,.08)}.diario-heading{display:flex;justify-content:space-between;gap:20px;padding:28px;border-bottom:1px solid #e7edf2}.diario-heading h3{font-size:26px;margin:5px 0 8px;color:#17364d}.diario-heading p{margin:0;color:#607485}.diario-kicker{font-size:12px;letter-spacing:.12em;color:#137b72}.diario-count{white-space:nowrap;background:#e8f5f3;color:#106a64;border-radius:999px;padding:8px 13px;height:max-content;font-size:13px}.diario-list{min-height:320px}.diario-loading,.diario-empty{padding:50px 28px;text-align:center;color:#6b7e8e}.diario-edition{display:grid;grid-template-columns:1fr auto;gap:20px;padding:20px 26px;border-bottom:1px solid #edf1f4;cursor:pointer;transition:.2s}.diario-edition:hover{background:#f5faf9}.diario-edition:last-child{border-bottom:0}.diario-edition h4{margin:0 0 5px;color:#17364d;font-size:18px}.diario-edition p{margin:0;color:#718391;font-size:13px}.diario-edition-badge{align-self:center;background:#137b72;color:#fff;border-radius:10px;padding:9px 12px;font-size:12px}.diario-filter-card{padding:22px;position:sticky;top:18px}.diario-filter-card h3{margin:0 0 18px;color:#17364d;font-size:22px}.diario-filter-card label{display:grid;gap:7px;margin-bottom:14px;color:#344f62;font-size:13px}.diario-filter-card input,.diario-filter-card select{width:100%;border:1px solid #ccd8e0;border-radius:9px;padding:11px 12px;background:#fff;color:#203c50}.diario-primary,.diario-clear{width:100%;border:0;border-radius:9px;padding:12px;cursor:pointer}.diario-primary{background:#137b72;color:#fff}.diario-clear{background:transparent;color:#137b72;margin-top:6px}.diario-viewer{position:fixed;inset:0;background:#e8ebef;z-index:100000;display:none}.diario-viewer.is-open{display:block}.diario-viewer-shell{height:100%;display:grid;grid-template-rows:auto 1fr}.diario-viewer-top{height:70px;background:#fff;border-bottom:1px solid #d5dde3;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:0 22px}.diario-viewer-top button{border:0;background:transparent;color:#29495f;cursor:pointer}.diario-viewer-top div{display:grid}.diario-viewer-top small{color:#708391;margin-top:3px}.diario-paper-wrap{overflow:auto;padding:28px}.diario-paper{width:min(920px,calc(100vw - 40px));margin:auto;background:#fff;min-height:1100px;padding:54px 70px;box-shadow:0 4px 18px rgba(0,0,0,.25);color:#111}.diario-paper-header{text-align:center;border-bottom:6px solid #137b72;padding-bottom:20px;margin-bottom:22px}.diario-paper-header h1{font-size:27px;margin:0}.diario-paper-header h2{font-size:21px;margin:5px 0}.diario-edition-bar{display:flex;justify-content:space-between;gap:15px;background:#dce7e5;padding:9px 12px;font-size:12px;margin-bottom:22px}.diario-document{padding:25px 0;border-bottom:2px solid #dce7e5}.diario-document:last-child{border-bottom:0}.diario-document-sector{text-align:center;background:#eaf3f2;padding:12px;margin-bottom:18px;font-size:17px;text-transform:uppercase}.diario-document h3{text-align:center;text-decoration:underline;margin:0 0 14px;font-size:18px}.diario-document .ementa{max-width:72%;margin:0 0 18px auto;line-height:1.45;text-align:justify}.diario-document .conteudo{white-space:pre-wrap;line-height:1.55;text-align:justify}.diario-document-files{margin-top:16px;display:flex;flex-wrap:wrap;gap:9px}.diario-document-files a{background:#137b72;color:#fff;padding:8px 11px;border-radius:7px;text-decoration:none;font-size:12px}@media(max-width:900px){.diario-layout{grid-template-columns:1fr}.diario-filter-card{position:static}.diario-paper{padding:35px 24px}.diario-document .ementa{max-width:100%}.diario-paper-wrap{padding:12px}}
.users-actions .edit{background:#6c4fd3}.users-actions button:disabled{background:#9aa8b5!important;color:#eef2f5!important;cursor:not-allowed;opacity:.75}.system-user-label{display:inline-flex;margin-top:7px;padding:4px 8px;border-radius:999px;background:#eef2f6;color:#53677a;font-size:11px;font-weight:400}.system-user-row{background:#fafcff}
.user-edit-overlay{position:fixed!important;inset:0!important;z-index:2147483000!important;display:grid;place-items:center;padding:20px;background:rgba(3,24,45,.72);backdrop-filter:blur(5px);isolation:isolate;pointer-events:auto}.user-edit-modal{width:min(760px,calc(100vw - 32px));max-height:calc(100vh - 40px);overflow:auto;border-radius:22px;background:#f6f9fc;box-shadow:0 28px 80px rgba(0,0,0,.35)}.user-edit-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:22px 24px;color:#fff;background:linear-gradient(120deg,#0b4d88,#0aa36f)}.user-edit-header h3{margin:0;font-size:24px}.user-edit-header p{margin:5px 0 0;opacity:.9}.user-edit-close{width:42px;height:42px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;cursor:pointer}.user-edit-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:24px}.user-edit-form label{display:grid;gap:7px;color:#153b61;font-weight:400}.user-edit-form input,.user-edit-form select{width:100%;min-height:46px;border:1px solid #cbd9e7;border-radius:12px;background:#fff;padding:10px 12px;color:#102f52;font:inherit;outline:none}.user-edit-form input:focus,.user-edit-form select:focus{border-color:#0b70b8;box-shadow:0 0 0 3px rgba(11,112,184,.12)}.user-edit-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.user-edit-actions button{border:0;padding:11px 16px;cursor:pointer}.user-edit-actions .cancel{background:#dfe7ef;color:#183a5c}.user-edit-actions .save{background:#0b4d88;color:#fff}@media(max-width:700px){.user-edit-form{grid-template-columns:1fr}.user-edit-actions{grid-column:1}}

/* Usuários: edição e bloqueio dentro do popup do registro */
.users-table .user-record-row{cursor:pointer;transition:background .16s ease,box-shadow .16s ease}
.users-table .user-record-row:hover{background:#f2f8fd}
.users-table .user-record-row:focus{outline:2px solid #0b70b8;outline-offset:-2px;background:#eef7ff}
.users-table .user-record-row.system-user-row:hover{background:#f4f7fa}
.user-edit-actions .toggle{background:#0b4d88;color:#fff}
.user-edit-actions .save:disabled{background:#9aa8b5;color:#eef2f5;cursor:not-allowed;opacity:.75}
.user-edit-form input:disabled,.user-edit-form select:disabled{background:#edf2f6;color:#657789;cursor:not-allowed}
.user-edit-system-note{grid-column:1/-1;border:1px solid #d7e0e8;border-radius:12px;background:#eef2f6;color:#53677a;padding:10px 12px;font-size:13px;font-weight:400}

/* Rodapé público: somente dados reais carregados da API */
.footer[data-footer-loading="true"]{min-height:110px}
.public-footer-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start}
.public-footer-column{min-width:0}
.public-footer-column h4{overflow-wrap:anywhere}
.public-footer-column p{overflow-wrap:anywhere}
.public-footer-image{display:block;max-width:100%;height:auto;object-fit:contain}
.public-footer-image-top{max-height:92px;margin:0 0 14px}
.public-footer-image-bottom{width:100%;max-height:180px;margin:24px auto 0;border-radius:14px;object-fit:cover}
.public-footer-social{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.public-footer-social a{display:inline-flex;padding:7px 10px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:rgba(255,255,255,.07)}
.public-footer-bottom-wrap{margin-top:18px}
.public-footer-bottom-wrap .footer-bottom{margin-top:14px}

/* Identidade institucional responsiva configurável por plataforma */




.public-footer-image-bottom-stage{width:100%;height:220px;overflow:hidden;border-radius:14px;position:relative;margin:24px auto 0;background:rgba(255,255,255,.03)}
.public-footer-image-bottom-stage .public-footer-image-bottom{width:100%;height:100%;max-height:none;margin:0;object-fit:contain;transform-origin:center;transform:translate(var(--public-footer-x,0px),var(--public-footer-y,0px)) scale(var(--public-footer-scale,1));transition:transform .2s ease}

@media(max-width:900px){.public-footer-image-bottom-stage{height:180px}}
@media(max-width:600px){.public-footer-image-bottom-stage{height:150px}}

/* ===== Páginas públicas: menu hambúrguer móvel e contenção responsiva ===== */
html,body{max-width:100%;overflow-x:hidden}
body.public-mobile-menu-open{overflow:hidden;touch-action:none}
.public-mobile-menu-toggle,.public-mobile-menu-overlay,.public-mobile-menu-close{display:none}

/* Todo conteúdo público deve respeitar a largura real da viewport. */
main,main>*,section,article,.home-wide,.public-page-shell,.portal-public-grid,.portal-results,
.news-panel,.agenda-panel-new,.services-featured,.footer,.footer-grid,.public-footer-grid,
.home-main-header,.home-main-header .header-flex{min-width:0;max-width:100%}
main img,main video,main iframe,footer img,header img{max-width:100%;height:auto}
main table{max-width:100%}
.portal-public-body,.portal-detail-item,.event-info,.feature-copy,.public-footer-column{min-width:0;overflow-wrap:anywhere;word-break:break-word}

@media(max-width:900px){
  .home-wide{width:calc(100% - 24px)!important;max-width:none!important}
  .home-main-header{padding:10px 0!important;position:relative;z-index:1200}
  
  
  
  
  
  .citizen-btn{display:none!important}

  .public-mobile-menu-toggle{
    grid-column:2;grid-row:1;
    display:grid;grid-template-columns:repeat(3,6px);grid-template-rows:repeat(3,3px) auto;
    align-items:center;justify-content:center;gap:3px 4px;
    width:54px;height:54px;padding:9px 7px 6px;
    border:1px solid rgba(11,77,136,.16);border-radius:14px;
    background:linear-gradient(135deg,#0b4d88,#0aa36f);color:#fff;
    box-shadow:0 10px 24px rgba(8,47,95,.18);cursor:pointer;z-index:1302
  }
  .public-mobile-menu-toggle span{grid-column:1/-1;display:block;width:25px;height:3px;border-radius:99px;background:#fff;justify-self:center;transition:.2s ease}
  .public-mobile-menu-toggle strong{grid-column:1/-1;font-size:9px;line-height:1;letter-spacing:.05em;text-transform:uppercase}
  body.public-mobile-menu-open .public-mobile-menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  body.public-mobile-menu-open .public-mobile-menu-toggle span:nth-child(2){opacity:0}
  body.public-mobile-menu-open .public-mobile-menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

  .public-mobile-menu-overlay{
    display:block;position:fixed;inset:0;border:0;padding:0;
    background:rgba(3,22,43,.58);backdrop-filter:blur(3px);
    opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease;
    z-index:1298
  }
  body.public-mobile-menu-open .public-mobile-menu-overlay{opacity:1;visibility:visible;pointer-events:auto}

  
  body.public-mobile-menu-open .home-main-nav{transform:translateX(0)}
  .public-mobile-menu-close{
    display:grid;place-items:center;position:absolute;right:14px;top:14px;
    width:44px;height:44px;border:1px solid #d9e5ef;border-radius:50%;
    background:#eff6fb;color:#0b4d88;font-size:30px;line-height:1;cursor:pointer
  }
  .home-nav-item{display:block!important;width:100%;border-bottom:1px solid #e6eef5}
  .home-main-nav>a,.home-nav-item>a{
    display:flex!important;align-items:center;justify-content:space-between;
    width:100%!important;padding:15px 10px!important;border:0!important;
    color:#0b315d!important;font-size:16px!important;line-height:1.25!important
  }
  .home-nav-item>a[aria-haspopup="true"]::after{content:"+";font-size:23px;font-weight:400;color:#0b8f63;transition:transform .2s ease}
  .home-nav-item.mobile-submenu-open>a[aria-haspopup="true"]::after{content:"−"}
  .home-main-nav a.active{color:#0a8f60!important;background:#eef9f5;border-radius:10px!important}
  .home-submenu{
    position:static!important;display:none!important;min-width:0!important;width:100%!important;
    padding:0 0 10px 10px!important;border:0!important;border-radius:0!important;
    box-shadow:none!important;background:transparent!important
  }
  .home-nav-item:hover .home-submenu{display:none!important}
  .home-nav-item.mobile-submenu-open .home-submenu{display:block!important}
  .home-submenu a{padding:11px 12px!important;margin:2px 0;border-left:3px solid #dbe9e4;border-radius:0 10px 10px 0!important;font-size:14px!important}
  .home-submenu a:hover,.home-submenu a:focus{background:#eef6fd!important;border-left-color:#0e9b67}

  /* Grade pública: nenhuma seção ultrapassa a tela em Android ou iOS. */
  .featured-area,.news-composition,.service-card-grid,.footer-grid,.public-footer-grid,
  .portal-public-grid,.portal-results,.portal-detail-grid,.diario-layout{
    grid-template-columns:minmax(0,1fr)!important
  }
  .service-card-grid{gap:12px!important}
  .home-news-slide{grid-template-columns:minmax(0,1fr)!important}
  .hero-overlay-content{width:100%!important;max-width:100%!important;padding:42px 48px!important}
  .hero-overlay-content h2{font-size:clamp(27px,8vw,36px)!important;overflow-wrap:anywhere}
  .clean-head,.section-head{max-width:100%;flex-wrap:wrap}
  .news-panel,.agenda-panel-new,.services-featured,.portal-public-card,.diario-list-card,.diario-filter-card{width:100%;min-width:0}
  .portal-modal-window{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important}
  .portal-modal-content{overflow-x:hidden!important}
  .diario-paper-wrap{max-width:100vw;overflow:auto!important}
  .diario-paper{width:max-content!important;min-width:100%!important;max-width:none!important}
  main table{display:block!important;width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  input,select,textarea,button{max-width:100%}
  pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
}

@media(max-width:560px){
  .home-wide{width:calc(100% - 16px)!important}
  
  
  .hero-overlay-content{padding:36px 42px!important}
  .news-panel,.agenda-panel-new,.services-featured{padding:12px!important}
  .agenda-row{grid-template-columns:54px minmax(0,1fr)!important;gap:10px!important;padding:10px!important}
  .feature-copy{padding:24px 18px!important}
  .footer{padding:24px 0!important}
}

/* Rodapé público: imagem inferior sem card, livre e alinhada ao canto esquerdo */
.public-footer-bottom-wrap{margin-top:18px;overflow:visible}
.public-footer-image-bottom-free{display:flex;align-items:flex-start;justify-content:flex-start;width:100%;height:var(--public-footer-height,220px);min-height:0;margin:18px 0 0;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:hidden}
.public-footer-image-bottom-free .public-footer-image-bottom{display:block;width:auto;max-width:min(100%,620px);height:100%;max-height:none;margin:0;object-fit:contain;object-position:left center;border:0;border-radius:0;background:transparent;box-shadow:none;transform-origin:left top;transform:translate(var(--public-footer-x,0px),var(--public-footer-y,0px)) scale(var(--public-footer-scale,1));transition:transform .2s ease}
@media(max-width:900px){.public-footer-image-bottom-free .public-footer-image-bottom{max-width:100%}}
@media(max-width:600px){.public-footer-image-bottom-free{margin-top:14px}}

/* Altura configurável das áreas superior e inferior do portal público. */
/* A altura configurada pertence ao contêiner do rodapé/cabeçalho, nunca à imagem. */


/* Mantém a área da imagem independente do controle de altura do rodapé superior. */

footer.footer{
  min-height:var(--public-lower-footer-height,330px)!important;
  height:auto!important;
  box-sizing:border-box;
}
footer.footer .public-footer-grid{min-height:0!important}
/* A imagem inferior conserva sua própria altura; o controle altera somente o rodapé. */
.public-footer-image-bottom-free{height:220px!important}

@media(max-width:900px){
  
  
  
  footer.footer{min-height:var(--public-lower-footer-height,260px)!important}
  .public-footer-image-bottom-free{height:180px!important}
}
@media(max-width:600px){
  
  .public-footer-image-bottom-free{height:150px!important}
}

/* Correção definitiva: o controle "Altura do rodapé" define a altura REAL do contêiner.
   O conteúdo e as imagens não participam do cálculo da altura e são recortados quando necessário. */


footer.footer{
  height:var(--public-lower-footer-height,330px)!important;
  min-height:0!important;
  max-height:var(--public-lower-footer-height,330px)!important;
  overflow:hidden!important;
  position:relative;
}
footer.footer .public-footer-grid,
footer.footer .public-footer-bottom-wrap{
  max-height:100%;
}
/* A imagem mantém zoom e posicionamento próprios, sem forçar a altura do rodapé. */
footer.footer .public-footer-bottom-wrap{position:relative}
footer.footer .public-footer-image-bottom-free{
  height:220px!important;
  min-height:0!important;
}
@media(max-width:900px){
  
  footer.footer{
    height:var(--public-lower-footer-height,260px)!important;
    max-height:var(--public-lower-footer-height,260px)!important;
  }
}


/* Correção de crescimento dos rodapés: o valor salvo controla a dimensão real nos dois sentidos. */


footer.footer{
  height:var(--public-lower-footer-height,330px)!important;
  min-height:var(--public-lower-footer-height,330px)!important;
  max-height:none!important;
  flex:0 0 var(--public-lower-footer-height,330px)!important;
  overflow:hidden!important;
}
@media(max-width:900px){
  
  footer.footer{
    height:var(--public-lower-footer-height,260px)!important;
    min-height:var(--public-lower-footer-height,260px)!important;
    max-height:none!important;
    flex-basis:var(--public-lower-footer-height,260px)!important;
  }
}

/* Imagem inferior do rodapé sempre acima das demais camadas.
   O rodapé mantém a altura configurada, mas não recorta a imagem quando ela é movida. */
footer.footer{
  overflow:visible!important;
  z-index:20!important;
  isolation:isolate;
}
footer.footer .public-footer-grid{
  position:relative;
  z-index:2;
}
footer.footer .public-footer-bottom-wrap{
  position:absolute!important;
  left:0!important;
  right:0!important;
  bottom:0!important;
  width:100%!important;
  height:0!important;
  margin:0!important;
  overflow:visible!important;
  z-index:999!important;
  pointer-events:none;
}
footer.footer .public-footer-image-bottom-free{
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  width:100%!important;
  margin:0!important;
  overflow:visible!important;
  z-index:1000!important;
  pointer-events:none;
}
footer.footer .public-footer-image-bottom-free .public-footer-image-bottom{
  position:relative!important;
  z-index:1001!important;
  pointer-events:auto;
  will-change:transform;
}

/* ===== Barra superior pública: grupo único, acessibilidade e pesquisa ===== */
.home-top-strip{padding:7px 0;background:#052b55!important}
.home-top-strip .home-wide{
  min-height:42px!important;height:auto!important;
  border:1px solid rgba(255,255,255,.42);
  border-radius:12px;
  padding:5px 7px!important;
  background:rgba(255,255,255,.035);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}
.home-top-left,.home-top-right{gap:6px!important}
.home-top-left>span,.home-top-left>a,.home-top-left>button,
.admin-login-top{;
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:6px 11px;
  border:1px solid rgba(255,255,255,.22);
  background:transparent;
  color:#fff;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.home-top-left>span:hover,.home-top-left>a:hover,.home-top-left>button:hover,
.admin-login-top:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.58)}
.home-top-left>span:focus-visible,.home-top-left>a:focus-visible,.home-top-left>button:focus-visible,
.admin-login-top:focus-visible,.home-top-search input:focus-visible,.home-top-search button:focus-visible{
  outline:3px solid #ffd54a;outline-offset:2px
}
.home-top-search{
  width:min(390px,34vw)!important;height:32px!important;
  border:1px solid rgba(255,255,255,.46)!important;
  border-radius:8px!important;
  background:rgba(255,255,255,.08)!important;
}
.home-top-search:focus-within{border-color:#fff!important;box-shadow:0 0 0 3px rgba(255,255,255,.16)}
.home-top-search input{min-width:120px;font-size:14px!important}
.home-top-search button{;min-width:42px;border-left:1px solid rgba(255,255,255,.25)!important;cursor:pointer}

.public-accessibility-panel{
  position:fixed;top:64px;left:24px;z-index:10050;
  width:min(340px,calc(100vw - 32px));
  padding:14px;border:1px solid #b9cbe0;border-radius:14px;
  background:#fff;color:#0b2341;box-shadow:0 20px 50px rgba(0,0,0,.28);
  display:none
}
.public-accessibility-panel.is-open{display:block}
.public-accessibility-panel h2{font-size:18px;margin:0 0 10px;color:#0b3a78}
.public-accessibility-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.public-accessibility-actions button{;border:1px solid #b9cbe0;background:#f6f9fc;
  color:#0b3a78;cursor:pointer
}
.public-accessibility-actions button:hover{background:#eaf3fb}
.public-accessibility-close{width:100%;margin-top:9px;min-height:40px;border:0;border-radius:9px;background:#0b4d88;color:#fff;font-weight:400;cursor:pointer}

html.public-font-large{font-size:112.5%}
html.public-font-xlarge{font-size:125%}
body.public-high-contrast{--bg:#000;--text:#fff;--muted:#fff;--border:#fff;filter:none!important;background:#000!important;color:#fff!important}
body.public-high-contrast *{text-shadow:none!important;box-shadow:none!important}
body.public-high-contrast .home-main-header,
body.public-high-contrast .news-panel,
body.public-high-contrast .agenda-panel-new,
body.public-high-contrast .services-featured,
body.public-high-contrast .public-card,
body.public-high-contrast .service-card,
body.public-high-contrast .home-submenu{background:#000!important;color:#fff!important;border-color:#fff!important}
body.public-high-contrast a,body.public-high-contrast h1,body.public-high-contrast h2,body.public-high-contrast h3,
body.public-high-contrast strong,body.public-high-contrast p,body.public-high-contrast span{color:#fff!important}
body.public-high-contrast .home-top-strip,body.public-high-contrast .footer{background:#000!important;border-color:#fff!important}
body.public-high-contrast input{background:#000!important;color:#fff!important;border-color:#fff!important}
body.public-high-contrast .hero-banner{border:2px solid #fff}

@media(max-width:860px){
  .home-top-strip .home-wide{width:calc(100% - 20px)!important;padding:7px!important;gap:8px!important}
  .home-top-left,.home-top-right{width:100%;display:flex!important;flex-wrap:wrap!important}
  .home-top-left>*{flex:1 1 auto}
  .home-top-search{width:100%!important;flex:1 1 100%}
  .admin-login-top{flex:1 1 100%}
}


/* ===== Menu principal: borda única envolvendo todo o conjunto ===== */
.home-main-nav{
  width:max-content;
  max-width:100%;
  padding:7px 10px!important;
  border:1px solid #c8d8e8;
  border-radius:12px;
  background:#fff;
  box-shadow:0 5px 16px rgba(8,47,95,.08);
  gap:8px!important;
}
.home-main-nav>a,.home-nav-item>a{
  display:inline-flex;
  align-items:center;
  min-height:36px;
  padding:8px 10px!important;
  border-bottom:0!important;
  border-radius:8px;
}
.home-main-nav a.active,.home-main-nav>a:hover,.home-nav-item:hover>a{
  background:#eef8f4;
  color:#087b55!important;
}
.home-main-nav:focus-within{
  border-color:#0b5ca5;
  box-shadow:0 0 0 3px rgba(11,92,165,.14);
}

/* Controles corretos de tamanho da letra: somente A− e A+. */
.public-accessibility-actions.public-font-controls{
  grid-template-columns:1fr auto 1fr;
  align-items:center;
}
.public-font-controls button{;
  min-width:74px;
}
.public-font-level{
  min-width:62px;
  padding:10px 8px;
  border:1px solid #c8d8e8;
  border-radius:9px;
  background:#fff;
  color:#0b3a78;
  font-weight:400;
  text-align:center;
}

@media(max-width:900px){
  .home-main-nav{
    width:calc(100% - 24px)!important;
    max-width:none!important;
    padding:12px!important;
    border-radius:14px!important;
  }
  .home-main-nav>a,.home-nav-item>a{width:100%;justify-content:space-between}
}

/* ===== Correção funcional: contraste, acessibilidade e mapa do site ===== */
html.public-high-contrast,
html.public-high-contrast body,
body.public-high-contrast{background:#000!important;color:#fff!important}
html.public-high-contrast body *:not(img):not(video):not(svg){border-color:#fff!important}
.home-top-left > .is-active{background:#fff!important;color:#000!important}
.public-sitemap-panel{
  position:fixed;inset:72px 24px auto auto;z-index:10060;
  width:min(620px,calc(100vw - 32px));max-height:calc(100vh - 96px);overflow:auto;
  display:none;padding:16px;border:1px solid #b9cbe0;border-radius:14px;
  background:#fff;color:#0b2341;box-shadow:0 20px 50px rgba(0,0,0,.3)
}
.public-sitemap-panel.is-open{display:block}
.public-sitemap-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.public-sitemap-head h2{margin:0;color:#0b3a78;font-size:20px}
.public-sitemap-close{width:38px;height:38px;border:0;border-radius:50%;background:#0b4d88;color:#fff;font-size:24px;cursor:pointer}
.public-sitemap-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.public-sitemap-links a{padding:10px 12px;border:1px solid #d2dfec;border-radius:9px;color:#0b3a78;font-weight:400;background:#f8fbfe}
.public-sitemap-links a:hover,.public-sitemap-links a:focus-visible{background:#eaf4fc;outline:2px solid #0b5ca5;outline-offset:1px}
body.public-high-contrast .public-accessibility-panel,
body.public-high-contrast .public-sitemap-panel,
html.public-high-contrast .public-accessibility-panel,
html.public-high-contrast .public-sitemap-panel{background:#000!important;color:#fff!important;border-color:#fff!important}
body.public-high-contrast .public-accessibility-panel *,body.public-high-contrast .public-sitemap-panel *,
html.public-high-contrast .public-accessibility-panel *,html.public-high-contrast .public-sitemap-panel *{color:#fff!important;background:#000!important;border-color:#fff!important}
@media(max-width:700px){.public-sitemap-panel{inset:132px 10px auto 10px;width:auto}.public-sitemap-links{grid-template-columns:1fr}.public-accessibility-panel{top:132px;left:10px}}

.diario-pdf-wrap{min-height:0;background:#dfe3e8;overflow:hidden}.diario-pdf-wrap iframe{display:block;width:100%;height:100%;min-height:calc(100vh - 70px);border:0;background:#dfe3e8}@media(max-width:700px){.diario-viewer-top{height:auto;min-height:64px;padding:10px 12px}.diario-pdf-wrap iframe{min-height:calc(100vh - 64px)}}

/* ===== Ajuste global de popups administrativos: topo compacto e janela alta ===== */
.admin-manage-overlay,
.admin-menu-overlay,
.login-modal-overlay,
.portal-modal-overlay{
  padding:12px!important;
  align-items:center!important;
}

.admin-manage-modal,
.admin-menu-modal{
  width:min(1440px,calc(100vw - 24px))!important;
  height:calc(100vh - 24px)!important;
  max-height:calc(100vh - 24px)!important;
  border-radius:24px!important;
}

.admin-manage-header,
.admin-menu-modal-header{
  min-height:50px!important;
  padding:11px 28px!important;
  gap:14px!important;
}

.admin-manage-header h2,
.admin-menu-modal-header h2{
  font-size:24px!important;
  line-height:1.05!important;
}

.admin-manage-header p,
.admin-menu-modal-header p{
  margin:4px 0 0!important;
  font-size:14px!important;
  line-height:1.25!important;
  font-weight:400!important;
}

.admin-manage-close,
.admin-menu-modal-close{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  font-size:28px!important;
}

.admin-manage-body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:20px 22px!important;
  overflow:auto!important;
}

.admin-menu-modal-body{
  flex:1 1 auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:20px 22px!important;
  overflow:auto!important;
}

.admin-record-panel h3,
.admin-form-panel h3{
  padding:16px 20px!important;
  font-size:21px!important;
}

.admin-form-content{
  max-height:none!important;
}

.login-modal,
.portal-modal-window{
  width:min(920px,calc(100vw - 24px))!important;
  max-height:calc(100vh - 24px)!important;
}

@media(max-width:700px){
  .admin-manage-overlay,
  .admin-menu-overlay,
  .login-modal-overlay,
  .portal-modal-overlay{padding:8px!important}
  .admin-manage-modal,
  .admin-menu-modal{
    width:calc(100vw - 16px)!important;
    height:calc(100vh - 16px)!important;
    max-height:calc(100vh - 16px)!important;
    border-radius:18px!important;
  }
  .admin-manage-header,
  .admin-menu-modal-header{padding:10px 14px!important;min-height:48px!important}
  .admin-manage-header h2,
  .admin-menu-modal-header h2{font-size:21px!important}
  .admin-manage-header p,
  .admin-menu-modal-header p{font-size:12px!important}
  .admin-manage-body,
  .admin-menu-modal-body{padding:14px!important}
}

/* ===== Ações superiores e salvamento manual nos formulários administrativos ===== */
.admin-form-topbar{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:14px!important;
  padding:14px 20px!important;
  border-bottom:1px solid #e3edf6!important;
  background:#fff!important;
}
.admin-form-topbar h3,
.admin-form-panel .admin-form-topbar h3{
  padding:0!important;
  border-bottom:0!important;
  margin:0!important;
  flex:1 1 auto!important;
  min-width:180px!important;
}
.admin-form-topbar .admin-form-actions,
.admin-form-panel .admin-form-topbar .admin-form-actions{
  position:static!important;
  margin:0!important;
  padding:0!important;
  border-top:0!important;
  background:transparent!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:10px!important;
  flex:0 0 auto!important;
  flex-wrap:wrap!important;
}
.admin-status-message.pending{
  display:block!important;
  background:#fff7e6!important;
  border-color:#f1c36d!important;
  color:#8a5a00!important;
}
@media(max-width:760px){
  .admin-form-topbar{align-items:stretch!important;flex-direction:column!important}
  .admin-form-topbar .admin-form-actions{justify-content:flex-start!important}
  .admin-form-topbar .admin-crud-btn{width:auto!important;flex:1 1 140px!important;height:40px!important;min-height:40px!important;max-height:none!important;border-radius:10px!important;padding:0 16px!important;font-size:14px!important;font-weight:400!important;line-height:1.2!important;box-sizing:border-box!important;}
}

/* Aplicação final: nenhuma regra anterior pode substituir os valores do banco. */






/* ===== REGRA FINAL: brasão configurado e submenus livres ===== */
.home-crest.has-configured-crest{padding:4px!important;background:transparent!important;box-shadow:none!important;overflow:hidden!important}
.home-crest.has-configured-crest img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}
@media(min-width:901px){
  .public-menu-section{z-index:80000!important;overflow:visible!important}
  .public-menu-section .public-menu-inner,
  .public-menu-section .home-main-nav{overflow:visible!important}
  .public-menu-section .home-main-nav{flex-wrap:wrap!important;row-gap:2px!important}
  .public-menu-section .home-nav-item{z-index:80010!important}
  .public-menu-section .home-nav-item:hover,
  .public-menu-section .home-nav-item:focus-within{z-index:80030!important}
  .public-menu-section .home-submenu{z-index:80050!important}
  .public-menu-section + main,
  .public-menu-section + .public-page-main,
  .public-page main{position:relative!important;z-index:1!important}
}

/* ===== Brasão configurado no lugar da sigla ===== */
.home-crest.has-configured-crest{
  padding:4px!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.home-crest.has-configured-crest img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}

/* ===== Submenus acima do conteúdo público, sem recorte pelo scroll horizontal ===== */
@media(min-width:901px){
  .public-menu-section{
    z-index:80000!important;
    overflow:visible!important;
  }
  .public-menu-section .public-menu-inner,
  .public-menu-section .home-main-nav{
    overflow:visible!important;
  }
  .public-menu-section .home-main-nav{
    flex-wrap:wrap!important;
    row-gap:2px!important;
  }
  .public-menu-section .home-nav-item{
    z-index:80010!important;
  }
  .public-menu-section .home-nav-item:hover,
  .public-menu-section .home-nav-item:focus-within{
    z-index:80030!important;
  }
  .public-menu-section .home-submenu{
    z-index:80050!important;
  }
  .public-menu-section + main,
  .public-menu-section + .public-page-main,
  .public-page main{
    position:relative!important;
    z-index:1!important;
  }
}

/* ===== Altura definitiva do rodapé superior vinda do banco =====
   O valor salvo controla a seção inteira. A imagem apenas ocupa essa área,
   respeitando zoom e posições X/Y, sem criar uma altura própria. */






/* ===== Correção cautelosa: submenus públicos sempre acima das seções abaixo =====
   Mantém a imagem institucional recortada dentro do próprio bloco da logo,
   mas libera o cabeçalho/nav para que o submenu não fique escondido atrás do banner. */


.home-main-nav{
  position:relative!important;
  z-index:50010!important;
  overflow:visible!important;
}
.home-nav-item{
  position:relative!important;
  z-index:50020!important;
}
.home-nav-item:hover,
.home-nav-item:focus-within{
  z-index:50040!important;
}
.home-submenu{
  z-index:50050!important;
}
.hero-banner,
.featured-area,
.news-panel,
.agenda-panel-new,
.services-featured{
  position:relative;
  z-index:1;
}


/* ===== Correção cautelosa: painéis superiores sempre na frente do cabeçalho, menu e banner ===== */
.home-top-strip{
  position:relative!important;
  z-index:90000!important;
  overflow:visible!important;
}
.home-top-strip .home-wide,
.home-top-left,
.home-top-right{
  position:relative!important;
  z-index:90010!important;
  overflow:visible!important;
}
.public-accessibility-panel,
.public-sitemap-panel{
  z-index:95000!important;
}
.public-accessibility-panel{
  top:52px!important;
}
.public-sitemap-panel{
  inset:52px 24px auto auto!important;
}
@media(max-width:700px){
  .public-accessibility-panel{top:118px!important;left:10px!important}
  .public-sitemap-panel{inset:118px 10px auto 10px!important;width:auto!important}
}

/* Quando a capa/banner real possuir imagem, ela preenche a área verde da home. */
.hero-banner.has-real-image{
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.hero-banner.has-real-image:before,
.hero-banner.has-real-image:after{
  pointer-events:none!important;
}
.hero-banner.no-real-hero .hero-arrow,
.hero-banner.no-real-hero .hero-dots{
  display:none!important;
}

/* Página pública Sobre o município alimentada pelo painel administrativo */
.portal-about-page{background:#fff;border:1px solid #d8e6f3;border-radius:18px;box-shadow:0 12px 34px rgba(15,65,110,.08);overflow:hidden}
.portal-about-cover{height:auto;max-height:280px;min-height:0;background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:18px;border-bottom:1px solid #e3edf7}
.portal-about-cover img{width:100%;height:auto;max-height:244px;object-fit:contain;display:block}
.portal-about-content{padding:28px;color:#18395b}
.portal-about-badge{display:inline-flex;align-items:center;background:#eaf4ff;color:#0e4d86;border-radius:999px;padding:8px 14px;font-weight:400;font-size:13px;margin-bottom:12px}
.portal-about-content h2{color:#003b78;font-size:32px;margin:0 0 12px}
.portal-about-intro{font-size:18px;line-height:1.65;color:#4d647c;margin:0 0 22px}
.portal-about-content section{border-top:1px solid #e3edf7;padding-top:18px;margin-top:18px}
.portal-about-content h3{color:#003b78;font-size:20px;margin:0 0 10px}
.portal-about-content p{line-height:1.7;margin:0;color:#465d74;font-weight:400}
.portal-about-gallery{display:none!important}
.portal-about-gallery img{display:none!important}
.portal-about-map-action{margin-top:18px;display:flex;justify-content:flex-start}
.portal-about-map-action a{display:inline-flex;align-items:center;justify-content:center;background:#0f5b9b;color:#fff;text-decoration:none;border-radius:12px;padding:12px 18px;font-weight:400;box-shadow:0 8px 20px rgba(15,91,155,.18)}
.portal-about-map-action a:hover{filter:brightness(.95)}
@media(max-width:760px){.portal-about-cover{max-height:220px;padding:12px}.portal-about-cover img{max-height:196px}.portal-about-content{padding:20px}.portal-about-content h2{font-size:26px}}


/* ===== Correção dos controles de rodapé e posicionamento das imagens ===== */


.public-footer-image-bottom-free,
footer.footer .public-footer-image-bottom-free{
  height:var(--public-footer-height,220px)!important;
  max-height:var(--public-footer-height,220px)!important;
  overflow:visible!important;
}
.public-footer-image-bottom-free .public-footer-image-bottom,
footer.footer .public-footer-image-bottom-free .public-footer-image-bottom{
  transform:translate(var(--public-footer-x,0px),var(--public-footer-y,0px)) scale(var(--public-footer-scale,1))!important;
}
@media(max-width:900px){
  
  .public-footer-image-bottom-free,
  footer.footer .public-footer-image-bottom-free{
    height:var(--public-footer-height,180px)!important;
    max-height:var(--public-footer-height,180px)!important;
  }
}
@media(max-width:600px){
  
  .public-footer-image-bottom-free,
  footer.footer .public-footer-image-bottom-free{
    height:var(--public-footer-height,150px)!important;
    max-height:var(--public-footer-height,150px)!important;
  }
}


/* ===== Proteção para o texto nunca invadir a área da imagem no rodapé inferior ===== */
footer.footer.public-footer-has-image .public-footer-grid{
  width:calc(100% - var(--public-footer-image-safe-width,0px))!important;
  margin-left:var(--public-footer-image-safe-width,0px)!important;
}
footer.footer.public-footer-has-image .public-footer-bottom-wrap .footer-bottom{
  margin-left:var(--public-footer-image-safe-width,0px)!important;
}
@media(max-width:900px){
  footer.footer.public-footer-has-image .public-footer-grid{
    width:100%!important;
    margin-left:0!important;
  }
  footer.footer.public-footer-has-image .public-footer-bottom-wrap .footer-bottom{
    margin-left:0!important;
  }
}

/* ===== Popup público: informações à esquerda e galeria animada à direita ===== */
.portal-modal-window{width:min(1180px,96vw)!important}
.portal-modal-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,44%);gap:24px;align-items:start}
.portal-modal-layout.no-gallery{grid-template-columns:1fr}
.portal-modal-info{min-width:0}
.portal-modal-gallery{position:sticky;top:0;min-width:0}
.portal-modal-gallery-card{border:1px solid #d7e3ef;border-radius:20px;background:#f5f9fd;overflow:hidden;box-shadow:0 14px 38px rgba(8,47,95,.12)}
.portal-modal-gallery-stage{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#eaf3fb,#dceaf6);overflow:hidden}
.portal-modal-gallery-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transform:translateX(24px) scale(.985);transition:opacity .55s ease,transform .55s ease,visibility .55s;display:flex;flex-direction:column;background:#eef5fb}
.portal-modal-gallery-slide.is-active{opacity:1;visibility:visible;transform:translateX(0) scale(1);z-index:1}
.portal-modal-gallery-slide img{width:100%;height:100%;min-height:0;object-fit:cover;display:block;flex:1}
.portal-modal-gallery-slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:38px 16px 14px;background:linear-gradient(transparent,rgba(3,20,38,.86));color:#fff;display:grid;gap:3px}
.portal-modal-gallery-slide figcaption strong{font-size:14px;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.portal-modal-gallery-slide figcaption span{font-size:11px;opacity:.84}
.portal-modal-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#0b3a78;font-size:30px;line-height:1;cursor:pointer;box-shadow:0 5px 18px rgba(0,0,0,.18)}
.portal-modal-gallery-nav.prev{left:12px}.portal-modal-gallery-nav.next{right:12px}
.portal-modal-gallery-dots{display:flex;justify-content:center;gap:7px;padding:12px;background:#fff}
.portal-modal-gallery-dot{width:9px;height:9px;border:0;border-radius:999px;background:#c5d5e5;padding:0;cursor:pointer;transition:width .25s ease,background .25s ease}
.portal-modal-gallery-dot.is-active{width:25px;background:#0b5a99}
@media(max-width:900px){
  .portal-modal-layout{grid-template-columns:1fr;gap:18px}
  .portal-modal-gallery{position:static;order:-1}
  .portal-modal-gallery-stage{aspect-ratio:16/10}
}
@media(max-width:560px){
  .portal-modal-gallery-stage{aspect-ratio:4/3}
  .portal-modal-gallery-nav{width:36px;height:36px;font-size:26px}
}

.portal-modal-gallery-slide figcaption{display:none!important}


/* Áudios públicos: reprodução dentro do popup de detalhes */
.portal-audio-section{margin-top:14px}
.portal-audio-list{display:grid;gap:12px}
.portal-audio-player{display:grid;gap:9px;padding:12px;border:1px solid #dbe6f0;border-radius:14px;background:#f8fbfe}
.portal-audio-player strong{color:#083b73;font-size:13px;overflow-wrap:anywhere}
.portal-audio-player audio{display:block;width:100%;max-width:100%;height:42px}

/* Galeria de prefeitos: exibe a foto de capa inteira, sem recorte. */
.portal-prefeito-card .portal-cover-media{height:280px;background:#f4f7fa;display:flex;align-items:center;justify-content:center;overflow:hidden;}
.portal-prefeito-card .portal-cover-media img{width:100%;height:100%;object-fit:contain!important;object-position:center center;background:#f4f7fa;}
@media(max-width:720px){.portal-prefeito-card .portal-cover-media{height:260px;}}


/* Galeria de prefeitos: popup com card de imagem mais alto e foto inteira. */
.portal-modal-window.portal-modal-galeria-prefeitos .portal-modal-gallery-card{
  min-height:460px;
}
.portal-modal-window.portal-modal-galeria-prefeitos .portal-modal-gallery-stage{
  aspect-ratio:auto;
  min-height:420px;
  height:420px;
}
.portal-modal-window.portal-modal-galeria-prefeitos .portal-modal-gallery-slide{
  background:#eef5fb;
}
.portal-modal-window.portal-modal-galeria-prefeitos .portal-modal-gallery-slide img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center center;
  background:#eef5fb;
}
@media(max-width:900px){
  .portal-modal-window.portal-modal-galeria-prefeitos .portal-modal-gallery-stage{
    min-height:360px;
    height:360px;
  }
}
@media(max-width:720px){
  .portal-modal-window.portal-modal-galeria-prefeitos .portal-modal-gallery-stage{
    min-height:300px;
    height:300px;
  }
}


/* Popups públicos: padrão único para cards de imagens, com maior altura e sem cortes. */
.portal-modal-gallery-card{
  min-height:460px;
}
.portal-modal-gallery-stage{
  aspect-ratio:auto !important;
  height:420px;
  min-height:420px;
}
.portal-modal-gallery-slide{
  background:#eef5fb;
}
.portal-modal-gallery-slide img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center center;
  background:#eef5fb;
}
@media(max-width:900px){
  .portal-modal-gallery-card{
    min-height:400px;
  }
  .portal-modal-gallery-stage{
    height:360px;
    min-height:360px;
  }
}
@media(max-width:560px){
  .portal-modal-gallery-card{
    min-height:340px;
  }
  .portal-modal-gallery-stage{
    height:300px;
    min-height:300px;
  }
}


/* Capas públicas inteligentes: largura e proporção acompanham a imagem sem espaços laterais. */
.portal-card-grid.portal-card-grid-smart{
  display:flex !important;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:flex-start;
  gap:18px;
}
.portal-card-grid.portal-card-grid-smart .portal-public-card{
  flex:0 0 var(--smart-card-width, 300px);
  width:var(--smart-card-width, 300px);
  max-width:100%;
  height:auto;
}
.portal-card-grid.portal-card-grid-smart .portal-smart-cover-card .portal-cover-media{
  width:100%;
  height:auto !important;
  aspect-ratio:var(--cover-ratio, 4/3);
  background:transparent;
  overflow:hidden;
}
.portal-card-grid.portal-card-grid-smart .portal-smart-cover-card .portal-cover-media img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center;
  background:transparent !important;
  display:block;
}
@media(max-width:720px){
  .portal-card-grid.portal-card-grid-smart .portal-public-card{
    flex:1 1 100%;
    width:100%;
    max-width:100%;
  }
}

/* ===== Padronização global dos cards públicos =====
   Mantém todos os cards da mesma linha alinhados no topo e na base,
   independentemente do tamanho do título, descrição ou imagem. */
.portal-card-grid,
.portal-card-grid.portal-card-grid-smart,
.portal-licitacoes-list{
  align-items:stretch !important;
}

.portal-card-grid.portal-card-grid-smart .portal-public-card,
.portal-card-grid .portal-public-card,
.portal-licitacoes-list .portal-licitacao-item{
  align-self:stretch;
  height:auto;
}

.portal-card-grid .portal-public-card,
.portal-card-grid.portal-card-grid-smart .portal-public-card{
  display:flex;
  flex-direction:column;
}

.portal-card-grid .portal-public-body,
.portal-card-grid.portal-card-grid-smart .portal-public-body{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:0;
}

.portal-card-grid .portal-card-actions,
.portal-card-grid.portal-card-grid-smart .portal-card-actions,
.portal-licitacoes-list .portal-open-details{
  margin-top:auto;
}


/* ===== Diário Oficial: registros em lista + abertura em nova janela ===== */
.diario-table{width:100%;overflow:hidden;background:#fff}
.diario-table-head,.diario-edition{display:grid!important;grid-template-columns:minmax(170px,1.25fr) 125px 150px minmax(145px,.9fr) 180px!important;align-items:center!important;gap:14px!important}
.diario-table-head{padding:12px 26px;background:#f0f5f8;border-bottom:1px solid #dce6ec;color:#405c70;font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:.04em}
.diario-list{min-height:250px!important}
.diario-edition{padding:15px 26px!important;border:0!important;border-bottom:1px solid #e6edf2!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;cursor:pointer!important;transition:background .18s ease,box-shadow .18s ease!important}
.diario-edition:last-child{border-bottom:0!important}
.diario-edition:hover,.diario-edition:focus{background:#f4faf9!important;outline:none!important;box-shadow:inset 4px 0 0 #137b72!important}
.diario-cell{min-width:0;color:#365063;font-size:13px;line-height:1.35}
.diario-cell strong{display:block;color:#17364d;font-size:14px}
.diario-cell small{display:block;color:#718391;margin-top:3px;font-size:11px}
.diario-edition-name strong{font-size:16px}
.diario-type{display:inline-flex;align-items:center;min-height:28px;padding:5px 9px;border-radius:999px;background:#eaf5f3;color:#106a64;font-weight:400;font-size:11px}
.diario-col-action{text-align:right}
.diario-open{border:0;border-radius:9px;background:#0b5b91;color:#fff;padding:10px 13px;font-size:12px;font-weight:400;cursor:pointer;white-space:nowrap}
.diario-open:hover{background:#084b78}
@media(max-width:850px){
 .diario-table-head{display:none!important}
 .diario-edition{grid-template-columns:1fr auto!important;gap:10px 14px!important;padding:16px!important}
 .diario-edition-name{grid-column:1/-1;padding-bottom:8px;border-bottom:1px dashed #dfe7ed}
 .diario-cell:not(.diario-edition-name):not(.diario-col-action)::before{content:attr(data-label);display:block;color:#7b8d9a;font-size:10px;font-weight:400;text-transform:uppercase;margin-bottom:2px}
 .diario-col-action{grid-column:1/-1;text-align:left}
 .diario-open{width:100%}
}

/* Vídeos: reprodutor no lado direito do popup público */
.portal-modal-video{position:sticky;top:0;min-width:0}
.portal-modal-video-card{overflow:hidden;border:1px solid #d7e3ef;border-radius:20px;background:#fff;box-shadow:0 14px 38px rgba(8,47,95,.12)}
.portal-modal-video-stage{position:relative;aspect-ratio:16/9;background:#050b12;display:flex;align-items:center;justify-content:center;overflow:hidden}
.portal-video-player{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.portal-modal-video-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 14px;background:#fff}
.portal-modal-video-actions strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#0b3a78;font-size:13px}
.portal-video-fullscreen{flex:0 0 auto;border:0;border-radius:10px;background:#0b5a99;color:#fff;padding:10px 13px;font-weight:400;cursor:pointer}
.portal-video-fullscreen:hover{background:#083f70}
.portal-modal-window.portal-modal-videos .portal-modal-layout{grid-template-columns:minmax(0,1fr) minmax(390px,48%)}
@media(max-width:900px){
  .portal-modal-window.portal-modal-videos .portal-modal-layout{grid-template-columns:1fr}
  .portal-modal-video{position:static;order:-1}
}
@media(max-width:560px){
  .portal-modal-video-actions{align-items:stretch;flex-direction:column}
  .portal-video-fullscreen{width:100%}
}

/* Estrutura Pública Municipal: localização vinculada à galeria */
.portal-location-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:12px;border:0;background:#0b4d88;color:#fff!important;padding:12px 16px;text-decoration:none;box-shadow:0 8px 18px rgba(11,77,136,.18);transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.portal-location-button:hover,.portal-location-button:focus{background:#083d6d;transform:translateY(-1px);box-shadow:0 10px 24px rgba(11,77,136,.24);outline:none}
@media(max-width:900px){.portal-location-button{margin-top:10px}}


/* ===== Menu administrativo em botões principais expansíveis ===== */
.admin-menu-popup-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:start!important;
}
.admin-menu-group{
  border:1px solid #d8e4ef!important;
  border-radius:14px!important;
  background:#fff!important;
  padding:0!important;
  overflow:hidden!important;
  box-shadow:0 6px 18px rgba(13,55,98,.07)!important;
}
.admin-menu-group h3{
  margin:0!important;
  min-height:70px!important;
  padding:16px 48px 16px 18px!important;
  display:flex!important;
  align-items:center!important;
  position:relative!important;
  background:#f7fbff!important;
  color:#0a3e74!important;
  font-size:14px!important;
  line-height:1.25!important;
  font-weight:400!important;
  cursor:pointer!important;
  user-select:none!important;
  border:0!important;
  transition:background .18s ease,color .18s ease!important;
}
.admin-menu-group h3::after{
  content:"+";
  position:absolute;
  right:16px;
  top:50%;
  transform:translateY(-50%);
  width:27px;
  height:27px;
  border-radius:9px;
  display:grid;
  place-items:center;
  background:#e8f2fb;
  color:#0a4f8b;
  font-size:20px;
  line-height:1;
}
.admin-menu-group.is-open h3{
  background:linear-gradient(105deg,#0b4d88 0%,#0d6689 55%,#0a9a72 100%)!important;
  color:#fff!important;
}
.admin-menu-group.is-open h3::after{
  content:"−";
  background:rgba(255,255,255,.16);
  color:#fff;
}
.admin-menu-group-links{
  display:none!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  padding:12px!important;
  border-top:1px solid #e2ebf3!important;
  max-height:310px!important;
  overflow:auto!important;
}
.admin-menu-group.is-open .admin-menu-group-links{display:grid!important}
.admin-menu-group-links button{;
  padding:10px 12px 10px 30px!important;
  border:1px solid #dce7f0!important;
  background:#f9fbfd!important;
  color:#0c3d70!important;
  text-align:left!important;
  position:relative!important;
  box-shadow:none!important;
}
.admin-menu-group-links button::before{
  content:""!important;
  position:absolute!important;
  left:12px!important;
  top:50%!important;
  width:7px!important;
  background:#0aa274!important;
  transform:translateY(-50%)!important;
}
.admin-menu-group-links button:hover{
  background:#eef7ff!important;
  border-color:#a8c7df!important;
  transform:translateY(-1px)!important;
}
@media(max-width:980px){.admin-menu-popup-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){
  .admin-menu-popup-grid{grid-template-columns:1fr!important}
  .admin-menu-group h3{min-height:60px!important}
  .admin-menu-group-links{max-height:none!important}
}

/* ===== Lei de Estrutura, Organograma e Competências ===== */
.estrutura-app{display:grid;gap:18px}.estrutura-intro{padding:22px;border:1px solid #dbe6ef;border-radius:16px;background:linear-gradient(135deg,#f7fbff,#eef8f5)}.estrutura-intro>span{font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.08em;color:#0a7b61}.estrutura-intro h2{margin:7px 0;color:#073d72}.estrutura-intro p{margin:0;color:#52677a}.estrutura-intro small{display:block;margin-top:9px;color:#6a7d8e}.estrutura-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:7px;border:1px solid #dbe6ef;border-radius:14px;background:#fff}.estrutura-tabs button{border:0;padding:11px 17px;background:#edf4f9;color:#16466e;cursor:pointer}.estrutura-tabs button.active{background:linear-gradient(100deg,#075187,#0a9a72);color:#fff}.estrutura-panel{display:none}.estrutura-panel.active{display:block}.estrutura-law{padding:20px;border:1px solid #dbe6ef;border-radius:15px;background:#fff}.estrutura-law>span{font-size:11px;font-weight:400;color:#0a8f68}.estrutura-law h3{margin:6px 0;color:#073d72}.estrutura-law-meta{font-size:12px;color:#607487}.estrutura-actions a{display:inline-flex;margin-top:10px;padding:10px 14px;border-radius:9px;background:#0b4d88;color:#fff;text-decoration:none;font-weight:400}.org-toolbar{display:flex;align-items:center;gap:8px;padding:10px;background:#fff;border:1px solid #dbe6ef;border-radius:12px 12px 0 0}.org-toolbar button{border:0;padding:8px 12px;background:#0b4d88;color:#fff;cursor:pointer}.org-toolbar span{font-size:12px;font-weight:400;color:#52677a}.org-viewport{overflow:auto;min-height:480px;padding:30px;background:#f6f9fc;border:1px solid #dbe6ef;border-top:0;border-radius:0 0 14px 14px}.org-canvas{transform-origin:top center;transition:transform .2s;min-width:900px}.org-chart{display:flex;justify-content:center;align-items:flex-start;gap:22px}.org-card{position:relative;width:250px;border:1px solid #d6e1eb;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(11,55,88,.08);overflow:visible}.org-card>header{display:flex;align-items:center;gap:10px;padding:12px;background:var(--org-color);color:#fff;border-radius:11px 11px 0 0}.org-card header strong{display:block;font-size:14px}.org-card header small{display:block;font-size:10px;opacity:.9}.org-icon{font-size:20px}.org-responsavel{padding:8px 12px;font-size:11px;font-weight:400;color:#173a59;border-bottom:1px solid #edf2f6}.org-card>ul{margin:0;padding:10px 18px 12px 28px;font-size:10px;color:#40576b}.org-card>ul li{margin:4px 0}.org-children{display:flex;justify-content:center;align-items:flex-start;gap:18px;position:relative;margin-top:30px;margin-left:50%;transform:translateX(-50%);width:max-content}.org-children:before{content:"";position:absolute;top:-18px;left:50%;height:18px;border-left:2px solid #9db3c5}.org-children>.org-card:before{content:"";position:absolute;top:-12px;left:50%;height:12px;border-left:2px solid #9db3c5}.competencias-search input{width:100%;height:44px;border:1px solid #cbd8e4;border-radius:10px;padding:0 13px}.competencias-list{display:grid;gap:9px;margin-top:12px}.competencias-list details{border:1px solid #dbe6ef;border-radius:12px;background:#fff;overflow:hidden}.competencias-list summary{padding:14px 16px;cursor:pointer;color:#123f67}.competencia-body{padding:0 16px 16px;color:#52677a}.competencia-body li{margin:7px 0}.competencia-body li small{display:block;color:#7b8d9d}.competencia-contact{margin-top:12px;padding-top:10px;border-top:1px solid #edf2f6;font-size:12px}.estrutura-empty{padding:30px;text-align:center;border:1px dashed #b9c9d7;border-radius:12px;background:#fff;color:#64748b}@media(max-width:760px){.org-canvas{min-width:700px}.estrutura-tabs button{flex:1}.org-toolbar{flex-wrap:wrap}.org-viewport{padding:18px}.org-card{width:210px}}

/* Pessoal e folha de pagamento */
.folha-public-shell{display:grid;gap:18px}.folha-public-filters{display:grid;grid-template-columns:2fr repeat(4,1fr) auto;gap:12px;padding:18px;background:#fff;border:1px solid #dbe6f0;border-radius:16px}.folha-public-filters label{display:grid;gap:6px;font-weight:400;color:#143e6b;font-size:12px}.folha-public-filters input,.folha-public-filters select{min-width:0;padding:11px;border:1px solid #c7d7e6;border-radius:10px;background:#fff}.folha-public-filters button{align-self:end;padding:11px 16px;border:0;background:#0f4f88;color:#fff;cursor:pointer}.folha-public-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.folha-public-summary article{padding:16px;border:1px solid #dbe6f0;border-radius:14px;background:#fff}.folha-public-summary strong,.folha-public-summary span{display:block}.folha-public-summary strong{font-size:20px;color:#0b7d59}.folha-public-summary span{margin-top:4px;color:#64748b;font-size:12px}.folha-public-results{display:grid;gap:12px}.folha-public-card{padding:18px;border:1px solid #dbe6f0;border-radius:16px;background:#fff}.folha-public-card header{display:flex;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid #e5edf4}.folha-public-card h3{margin:0;color:#103f78}.folha-public-card p{margin:5px 0 0;color:#64748b}.folha-public-card header>span{height:max-content;padding:7px 10px;border-radius:999px;background:#eaf7f2;color:#08714f;font-weight:400;font-size:12px}.folha-public-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:13px}.folha-public-grid div{padding:11px;border-radius:10px;background:#f7fafc}.folha-public-grid small,.folha-public-grid strong{display:block}.folha-public-grid small{color:#64748b}.folha-public-grid strong{margin-top:4px;color:#173f69}@media(max-width:1050px){.folha-public-filters{grid-template-columns:repeat(2,1fr)}.folha-public-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.folha-public-filters,.folha-public-summary,.folha-public-grid{grid-template-columns:1fr}.folha-public-card header{display:grid}}

/* Rodapés públicos: conteúdo exclusivamente vindo de Configurações. */
footer.footer{overflow:hidden!important;padding:22px 0!important}
footer.footer .public-footer-grid{
  width:calc(100% - 70px)!important;
  max-width:1660px!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important;
  gap:22px!important;
  position:relative!important;
  z-index:2!important;
}
footer.footer .public-footer-bottom-wrap{
  width:calc(100% - 70px)!important;
  max-width:1660px!important;
  margin:12px auto 0!important;
}
footer.footer.public-footer-has-image .public-footer-grid,
footer.footer.public-footer-has-image .public-footer-bottom-wrap .footer-bottom{
  width:calc(100% - 70px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
footer.footer .public-footer-image-bottom-free{
  width:100%!important;
  height:var(--public-footer-height,220px)!important;
  max-height:var(--public-footer-height,220px)!important;
  margin:10px 0 0!important;
  overflow:hidden!important;
}
footer.footer .public-footer-image-bottom-free .public-footer-image-bottom{
  width:auto!important;
  max-width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:left top!important;
}
@media(max-width:900px){
  footer.footer .public-footer-grid,
  footer.footer .public-footer-bottom-wrap,
  footer.footer.public-footer-has-image .public-footer-grid,
  footer.footer.public-footer-has-image .public-footer-bottom-wrap .footer-bottom{
    width:calc(100% - 28px)!important;
  }
}

/* ===== Cabeçalho público em duas sessões e rodapés configuráveis ===== */
.home-main-header{height:auto!important;max-height:none!important;min-height:0!important;padding:0!important;background:#fff!important;overflow:visible!important}





footer.footer{
  position:relative!important;
  display:block!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding:26px 0!important;
}
footer.footer .public-footer-grid{
  position:relative!important;
  inset:auto!important;
  display:grid!important;
  visibility:visible!important;
  opacity:1!important;
  transform:none!important;
  min-height:0!important;
  margin:0 auto!important;
  padding:0!important;
  color:#fff!important;
  z-index:2!important;
}
footer.footer .public-footer-bottom-wrap{
  position:relative!important;
  inset:auto!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  transform:none!important;
  margin:18px auto 0!important;
  overflow:visible!important;
  z-index:1!important;
}
footer.footer .public-footer-column,
footer.footer .public-footer-column h4,
footer.footer .public-footer-column p,
footer.footer .footer-bottom{visibility:visible!important;opacity:1!important;color:#fff!important}



/* ===== CORREÇÃO: cabeçalho público em sessões HTML realmente independentes ===== */


.home-main-header.public-institutional-section .home-logo{
  grid-area:identity!important;
  margin:0!important;
}

.public-menu-section{
  display:block!important;
  width:100%!important;
  margin:10px 0 16px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  position:relative!important;
  z-index:40!important;
}
.public-menu-section .public-menu-inner{
  display:block!important;
  margin:0 auto!important;
}
.public-menu-section .home-main-nav{
  width:100%!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  gap:2px!important;
  margin:0 auto!important;
  padding:7px 8px!important;
  border:1px solid #dbe6f0!important;
  border-radius:11px!important;
  background:#fff!important;
  box-shadow:0 7px 20px rgba(8,47,95,.08)!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
}
.public-menu-section .home-main-nav>a,
.public-menu-section .home-nav-item>a{
  font-size:16px!important;
  padding-top:12px!important;
  padding-bottom:12px!important;
  padding-left:10px!important;
  padding-right:10px!important;
}
/* impede que regras antigas coloquem o menu novamente dentro da grade institucional */
.home-main-header.public-institutional-section .home-main-nav{display:none!important}
.public-menu-section + main,
.public-menu-section + .public-page-main{clear:both!important}
@media(max-width:900px){
  
  .public-menu-section{margin:8px 0 12px!important;padding:0!important}
  .public-menu-section .home-main-nav{
    /* o JS transforma este elemento em menu lateral no celular */
    justify-content:flex-start!important;
    overflow-y:auto!important;
  }
}

/* ===== VALORES DO BANCO: regra final do rodapé superior ===== */






/* Brasão configurado e submenus acima do conteúdo: prioridade final. */
.home-crest.has-configured-crest{padding:4px!important;background:transparent!important;box-shadow:none!important;overflow:hidden!important}
.home-crest.has-configured-crest img{display:block!important;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important}
@media(min-width:901px){
  .public-menu-section{z-index:80000!important;overflow:visible!important}
  .public-menu-section .public-menu-inner,
  .public-menu-section .home-main-nav{overflow:visible!important}
  .public-menu-section .home-main-nav{flex-wrap:wrap!important;row-gap:2px!important}
  .public-menu-section .home-nav-item{z-index:80010!important}
  .public-menu-section .home-nav-item:hover,
  .public-menu-section .home-nav-item:focus-within{z-index:80030!important}
  .public-menu-section .home-submenu{z-index:80050!important}
  .public-menu-section + main,
  .public-menu-section + .public-page-main,
  .public-page main{position:relative!important;z-index:1!important}
}



/* ===== RODAPÉ INFERIOR CANÔNICO — banco, imagem à esquerda e texto à direita =====
   Esta é a única camada final responsável por altura, colunas e transformação da imagem. */
footer.footer{
  position:relative!important;
  box-sizing:border-box!important;
  width:100%!important;
  height:var(--public-lower-footer-height,330px)!important;
  min-height:var(--public-lower-footer-height,330px)!important;
  max-height:var(--public-lower-footer-height,330px)!important;
  padding:24px 35px!important;
  overflow:hidden!important;
}
footer.footer.public-footer-has-image{
  display:grid!important;
  grid-template-columns:var(--public-footer-image-safe-width,300px) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  column-gap:32px!important;
  align-items:stretch!important;
}
footer.footer:not(.public-footer-has-image){display:block!important}
footer.footer .public-footer-grid{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
  align-content:start!important;
  align-items:start!important;
  gap:20px!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  position:relative!important;
  inset:auto!important;
  transform:none!important;
  overflow:hidden!important;
  z-index:3!important;
}
footer.footer.public-footer-has-image .public-footer-grid{
  grid-column:2!important;
  grid-row:1!important;
}
footer.footer .public-footer-rights{
  grid-column:1/-1!important;
  margin:4px 0 0!important;
  min-width:0!important;
}
footer.footer .public-footer-bottom-wrap{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  z-index:1!important;
}
footer.footer.public-footer-has-image .public-footer-bottom-wrap{
  grid-column:1!important;
  grid-row:1!important;
}
footer.footer .public-footer-image-bottom-free{
  position:relative!important;
  inset:auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  pointer-events:none!important;
}
footer.footer .public-footer-image-bottom-free .public-footer-image-bottom{
  position:relative!important;
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:100%!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:left center!important;
  transform-origin:left center!important;
  transform:translate(var(--public-footer-x,0px),var(--public-footer-y,0px)) scale(var(--public-footer-scale,1))!important;
  will-change:transform!important;
  pointer-events:auto!important;
}
@media(max-width:900px){
  footer.footer{
    padding:18px 10px!important;
  }
  footer.footer.public-footer-has-image{
    grid-template-columns:var(--public-footer-image-safe-width,125px) minmax(0,1fr)!important;
    column-gap:14px!important;
  }
  footer.footer .public-footer-grid{
    grid-template-columns:1fr!important;
    gap:10px!important;
  }
}



/* Ajustes independentes do brasão configurados no painel */
.home-crest.has-configured-crest img{
  transform:translate(var(--public-crest-x,0px),var(--public-crest-y,0px)) scale(var(--public-crest-scale,1))!important;
  transform-origin:center center!important;
  transition:transform .18s ease!important;
  max-width:none!important;
  max-height:none!important;
}


/* Brasão configurado: área livre, sem moldura e sem recorte durante zoom/deslocamento. */
.home-crest.has-configured-crest{
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  padding:0!important;
  overflow:visible!important;
  position:relative!important;
  z-index:3!important;
}
.home-crest.has-configured-crest img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  clip-path:none!important;
  overflow:visible!important;
}


/* ===== Brasão: texto acompanha zoom e deslocamento horizontal =====
   A largura visual segura é calculada pelo JavaScript com os valores do banco.
   O contêiner participa do layout com essa largura, enquanto a imagem mantém
   seu tamanho-base e continua livre para zoom/movimento sem recorte. */
.home-main-header .home-logo{
  align-items:center!important;
}
.home-main-header .home-crest.has-configured-crest{
  width:var(--public-crest-safe-width,var(--public-crest-base-width,64px))!important;
  min-width:var(--public-crest-safe-width,var(--public-crest-base-width,64px))!important;
  flex:0 0 var(--public-crest-safe-width,var(--public-crest-base-width,64px))!important;
  height:var(--public-crest-base-width,64px)!important;
}
.home-main-header .home-crest.has-configured-crest img{
  position:absolute!important;
  left:0!important;
  top:50%!important;
  width:var(--public-crest-base-width,64px)!important;
  height:var(--public-crest-base-width,64px)!important;
  transform:translate(var(--public-crest-x,0px),calc(-50% + var(--public-crest-y,0px))) scale(var(--public-crest-scale,1))!important;
  transform-origin:center center!important;
}
.home-main-header .home-logo>div:last-child{
  position:relative!important;
  z-index:4!important;
  min-width:0!important;
}

/* Obras públicas: centraliza verticalmente o card de imagens no popup. */
.portal-modal-window.portal-modal-obras .portal-modal-layout.has-gallery{
  align-items:center;
}
.portal-modal-window.portal-modal-obras .portal-modal-gallery{
  position:relative;
  top:18px;
  align-self:center;
}
@media(max-width:900px){
  .portal-modal-window.portal-modal-obras .portal-modal-gallery{
    position:static;
    top:auto;
    align-self:stretch;
  }
}

/* ===== PADRAO UNICO DO FRONTEND: CAMPOS E BOTOES =====
   Esta regra substitui as padronizacoes antigas em todas as janelas e pop-ups. */
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]):not([type="button"]):not([type="submit"]):not([type="reset"]), select) {
  height:35px!important;
  min-height:35px!important;
  max-height:35px!important;
  font-size:14px!important;
  box-sizing:border-box!important;
}
:where(textarea) {
  min-height:70px!important;
  font-size:14px!important;
  box-sizing:border-box!important;
}
:where(label, label > span, .admin-field > span, .payment-money-field > span) {
  font-size:14px!important;
}
:where(input::placeholder, textarea::placeholder) {
  font-size:14px!important;
}
:where(button, input[type="button"], input[type="submit"], input[type="reset"], a.btn, a[class$="-btn"], a[class*="-btn "], a[class^="btn-"], a[class*=" btn-"], .admin-crud-btn, .admin-form-actions button, .admin-menu-modal button, .admin-submenu-modal button, .admin-popup button, .modal button, [class*="modal"] button, [class*="popup"] button) {
  height:40px!important;
  min-height:40px!important;
  max-height:none!important;
  font-size:14px!important;
  font-weight:400!important;
  border-radius:10px!important;
  padding-left:16px!important;
  padding-right:16px!important;
  line-height:1.2!important;
  box-sizing:border-box!important;
}
:where(.admin-form-topbar .admin-form-actions, .admin-form-panel .admin-form-topbar .admin-form-actions) {
  align-items:center!important;
}

/* Reforco de especificidade para as acoes administrativas do topo e dos pop-ups. */
#adminManagePopup .admin-crud-btn,
#adminManagePopup .admin-form-actions button,
#adminMenuPopup button,
.admin-submenu-overlay button,
.admin-menu-modal button,
.admin-popup button,
.modal button,
[class*="modal"] button,
[class*="popup"] button {
  height:40px!important;
  min-height:40px!important;
  max-height:none!important;
  font-size:14px!important;
  font-weight:400!important;
  border-radius:10px!important;
  padding-left:16px!important;
  padding-right:16px!important;
  line-height:1.2!important;
  box-sizing:border-box!important;
}


/* REGRA GLOBAL FINAL: frontend sem negrito */
html body,
html body h1, html body h2, html body h3, html body h4, html body h5, html body h6,
html body label, html body legend,
html body button, html body input, html body select, html body textarea, html body option,
html body p, html body span, html body small, html body a,
html body strong, html body b,
html body th, html body td, html body li,
html body [role="button"], html body [role="tab"], html body [class*="title"],
html body [class*="label"], html body [class*="heading"], html body [class*="caption"] {
  font-weight: 400 !important;
}
/* Mantem somente o peso estrutural exigido por fontes de icones. */
html body .fa, html body .fas, html body .fa-solid,
html body [class^="fa-"], html body [class*=" fa-"] {
  font-weight: 900 !important;
}
html body .far, html body .fa-regular {
  font-weight: 400 !important;
}


/* ===== CORRECAO ESTRUTURAL DAS PAGINAS PUBLICAS =====
   Elementos clicaveis semanticos, como cards e itens de lista, nao devem
   herdar as dimensoes fixas dos botoes comuns. */
.public-page [role="button"]:not(button):not(input),
.public-page .portal-public-card-clickable,
.public-page .portal-public-card,
.public-page .portal-licitacao-item {
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding-left:0;
  padding-right:0;
  border-radius:18px;
  line-height:normal;
  overflow:hidden;
  box-sizing:border-box;
}
.public-page .portal-card-grid,
.public-page .portal-card-grid.portal-card-grid-smart,
.public-page .portal-licitacoes-list,
.public-page #portalResults {
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.public-page .portal-public-card .portal-public-body,
.public-page .portal-licitacao-item > * {
  visibility:visible;
}
.public-page .portal-public-card .portal-public-body {
  min-height:180px;
}
.public-page .portal-work-card .portal-public-body {
  min-height:220px;
}
.public-page .portal-public-card .portal-card-actions button,
.public-page .portal-licitacao-item .portal-open-details {
  height:40px!important;
  min-height:40px!important;
  max-height:none!important;
  padding-left:16px!important;
  padding-right:16px!important;
  border-radius:10px!important;
  font-size:14px!important;
}
@media(max-width:720px){
  .public-page .portal-public-card .portal-public-body,
  .public-page .portal-work-card .portal-public-body {
    min-height:0;
  }
}

/* ===== Acesso destacado ao Portal do Cidadao no cabecalho publico ===== */
.public-page .home-main-header .header-flex{
  position:relative;
}
.citizen-portal-header-link{
  justify-self:end;
  align-self:center;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  min-width:286px;
  min-height:82px;
  padding:13px 20px;
  border:1px solid #d6e3ef;
  border-radius:16px;
  background:#fff;
  color:#07559a!important;
  text-decoration:none!important;
  box-shadow:0 8px 22px rgba(8,52,92,.12);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
  white-space:nowrap;
}
.citizen-portal-header-link:hover{
  transform:translateY(-2px);
  border-color:#a9c9e3;
  box-shadow:0 12px 28px rgba(8,52,92,.17);
}
.citizen-portal-header-link:focus-visible{
  outline:3px solid rgba(14,155,103,.28);
  outline-offset:3px;
}
.citizen-portal-header-icon{
  width:56px;
  height:56px;
  flex:0 0 56px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:linear-gradient(145deg,#eef7ff,#eafaf5);
}
.citizen-portal-header-icon svg{
  width:43px;
  height:43px;
  fill:none;
  stroke:#0870c1;
  stroke-width:2.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.citizen-portal-header-icon svg path:last-child{
  stroke:#0e9b78;
}
.citizen-portal-header-text{
  font-size:19px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.01em;
}
.citizen-portal-header-arrow{
  margin-left:3px;
  font-size:28px;
  line-height:1;
  color:#07559a;
  transition:transform .18s ease;
}
.citizen-portal-header-link:hover .citizen-portal-header-arrow{
  transform:translateX(3px);
}
@media(max-width:1050px){
  .citizen-portal-header-link{
    min-width:230px;
    min-height:72px;
    padding:10px 15px;
    gap:10px;
  }
  .citizen-portal-header-icon{
    width:48px;
    height:48px;
    flex-basis:48px;
  }
  .citizen-portal-header-icon svg{width:37px;height:37px}
  .citizen-portal-header-text{font-size:17px}
}
@media(max-width:760px){
  .public-page .home-main-header .header-flex{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
  }
  .citizen-portal-header-link{
    align-self:stretch;
    width:100%;
    min-width:0;
    min-height:62px;
    margin-top:12px;
  }
}
.public-high-contrast .citizen-portal-header-link{
  background:#000!important;
  color:#ff0!important;
  border-color:#ff0!important;
  box-shadow:none!important;
}
.public-high-contrast .citizen-portal-header-icon{
  background:#000!important;
  border:1px solid #ff0;
}
.public-high-contrast .citizen-portal-header-icon svg,
.public-high-contrast .citizen-portal-header-arrow{
  stroke:#ff0!important;
  color:#ff0!important;
}


/* Rodapé público: informações à esquerda e redes sociais configuradas à direita. */
footer.footer .public-footer-grid{
  display:grid!important;
  grid-template-columns:minmax(180px,1.2fr) minmax(220px,1fr) minmax(220px,1fr)!important;
  gap:20px 34px!important;
  align-items:start!important;
}
footer.footer .public-footer-meta-row{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:24px;
  margin-top:2px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.18);
}
footer.footer .public-footer-meta-social{
  min-width:0;
  display:flex;
  justify-content:flex-end;
}
footer.footer .public-footer-system-info{
  min-width:190px;
  text-align:left;
}
footer.footer .public-footer-system-info h4{margin:0 0 5px}
footer.footer .public-footer-system-info p{margin:2px 0}
footer.footer .public-footer-social{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin:0;
}
footer.footer .public-footer-social a{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.28);
  border-radius:8px;
  background:rgba(255,255,255,.08);
  color:#fff;
  text-decoration:none;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
footer.footer .public-footer-social a:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.15);
  border-color:rgba(255,255,255,.48);
}
footer.footer .public-footer-social img,
footer.footer .public-footer-social-fallback{
  width:22px;
  height:22px;
  flex:0 0 22px;
  object-fit:contain;
  display:grid;
  place-items:center;
  border-radius:5px;
}
footer.footer .public-footer-social-fallback{
  background:#fff;
  color:#0b3a78;
  font-size:12px;
  font-weight:900;
}
footer.footer .public-footer-rights{grid-column:1/-1;margin-top:0}
@media(max-width:860px){
  footer.footer .public-footer-grid{grid-template-columns:1fr!important}
  footer.footer .public-footer-meta-row{grid-template-columns:1fr;align-items:start}
  footer.footer .public-footer-system-info{text-align:left;min-width:0}
  footer.footer .public-footer-meta-social{justify-content:flex-start}
  footer.footer .public-footer-social{justify-content:flex-start}
}


/* Home: remove definitivamente qualquer bloco textual institucional ao lado do brasão. */
body.home-exata .home-main-header .home-logo > :not(.home-crest){
  display:none!important;
}
body.home-exata .home-main-header .home-logo{
  gap:0!important;
}


/* ===== Zoom visual reforçado do brasão e da imagem superior =====
   Mantém o valor configurado no banco, mas evita que margens transparentes
   internas das imagens tornem o ajuste quase imperceptível. */


.home-main-header .home-crest.has-configured-crest{
  overflow:visible!important;
}
.home-main-header .home-crest.has-configured-crest img{
  max-width:none!important;
  max-height:none!important;
  will-change:transform!important;
}


/* Rodape inferior: versao e redes no mesmo nivel das demais colunas.
   Evita o corte causado pela antiga segunda linha dentro de uma altura fixa. */
footer.footer .public-footer-grid{
  grid-template-columns:repeat(4,minmax(150px,1fr))!important;
  gap:16px 26px!important;
  overflow:visible!important;
}
footer.footer .public-footer-meta-column{
  min-width:0!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-end!important;
  text-align:right!important;
  gap:10px!important;
}
footer.footer .public-footer-meta-column .public-footer-system-info{
  min-width:0!important;
  width:100%!important;
  text-align:right!important;
}
footer.footer .public-footer-meta-column .public-footer-system-info h4,
footer.footer .public-footer-meta-column .public-footer-system-info p{margin:0 0 4px!important}
footer.footer .public-footer-meta-column .public-footer-meta-social{
  width:100%!important;
  display:flex!important;
  justify-content:flex-end!important;
}
footer.footer .public-footer-social{
  justify-content:flex-end!important;
  gap:7px!important;
}
footer.footer .public-footer-social a{
  min-height:34px!important;
  padding:5px 8px!important;
  font-size:12px!important;
}
footer.footer .public-footer-social img,
footer.footer .public-footer-social-fallback{
  width:20px!important;
  height:20px!important;
  flex-basis:20px!important;
}
@media(max-width:1200px){
  footer.footer .public-footer-grid{grid-template-columns:repeat(2,minmax(180px,1fr))!important}
}
@media(max-width:700px){
  footer.footer .public-footer-grid{grid-template-columns:1fr!important}
  footer.footer .public-footer-meta-column{align-items:flex-start!important;text-align:left!important}
  footer.footer .public-footer-meta-column .public-footer-system-info{text-align:left!important}
  footer.footer .public-footer-meta-column .public-footer-meta-social,
  footer.footer .public-footer-social{justify-content:flex-start!important}
}


/* Ajuste final do rodape: versao e redes lado a lado, copyright no final. */
footer.footer .public-footer-meta-column{
  display:grid!important;
  grid-template-columns:minmax(130px,auto) minmax(0,1fr)!important;
  align-items:start!important;
  justify-content:end!important;
  column-gap:18px!important;
  row-gap:8px!important;
  text-align:left!important;
}
footer.footer .public-footer-meta-column .public-footer-system-info{
  width:auto!important;
  min-width:130px!important;
  text-align:left!important;
}
footer.footer .public-footer-meta-column .public-footer-meta-social{
  width:auto!important;
  min-width:0!important;
  justify-content:flex-end!important;
  align-self:start!important;
}
footer.footer .public-footer-social{
  flex-wrap:wrap!important;
  justify-content:flex-end!important;
  align-content:flex-start!important;
  margin:0!important;
}
footer.footer .public-footer-social-icon{
  width:20px;
  height:20px;
  flex:0 0 20px;
  display:grid;
  place-items:center;
}
footer.footer .public-footer-social-icon img{
  width:20px!important;
  height:20px!important;
  display:block;
  object-fit:contain;
  border-radius:4px;
}
footer.footer .public-footer-rights{
  grid-column:1/-1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-wrap:wrap!important;
  gap:8px 14px!important;
  margin-top:10px!important;
  padding-top:12px!important;
  border-top:1px solid rgba(255,255,255,.18)!important;
  text-align:center!important;
  color:rgba(255,255,255,.88)!important;
  font-size:13px!important;
}
footer.footer .public-footer-developer{
  font-weight:700!important;
  color:#fff!important;
}
@media(max-width:1200px){
  footer.footer .public-footer-meta-column{
    grid-template-columns:minmax(120px,auto) minmax(0,1fr)!important;
  }
}
@media(max-width:700px){
  footer.footer .public-footer-meta-column{
    grid-template-columns:1fr!important;
  }
  footer.footer .public-footer-meta-column .public-footer-meta-social,
  footer.footer .public-footer-social{
    justify-content:flex-start!important;
  }
  footer.footer .public-footer-rights{
    justify-content:flex-start!important;
    text-align:left!important;
  }
}

/* Redes sociais do rodape: uma unica linha horizontal ao lado das informacoes. */
@media (min-width:1201px){
  footer.footer .public-footer-meta-column{
    grid-column:span 2!important;
    grid-template-columns:minmax(130px,auto) minmax(0,1fr)!important;
    column-gap:24px!important;
    align-items:start!important;
  }
  footer.footer .public-footer-meta-column .public-footer-meta-social{
    width:100%!important;
    min-width:0!important;
    display:flex!important;
    justify-content:flex-start!important;
    overflow:visible!important;
  }
  footer.footer .public-footer-social{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:10px!important;
    width:max-content!important;
    max-width:none!important;
    white-space:nowrap!important;
  }
  footer.footer .public-footer-social a{
    flex:0 0 auto!important;
    margin:0!important;
  }
}

/* Ajuste solicitado: 3 redes na primeira linha e as demais na segunda. */
@media (min-width:1201px){
  footer.footer .public-footer-social{
    display:grid!important;
    grid-template-columns:repeat(3,max-content)!important;
    grid-auto-flow:row!important;
    align-items:center!important;
    justify-content:start!important;
    column-gap:10px!important;
    row-gap:4px!important;
    width:max-content!important;
    white-space:nowrap!important;
  }
  footer.footer .public-footer-social a{
    width:max-content!important;
    margin:0!important;
  }
}

/* ===== AJUSTE FINAL RESPONSIVO DOS RODAPES =====
   Mantem todo o conteudo dentro das alturas configuradas e redistribui
   verticalmente os blocos quando a altura for aumentada ou reduzida. */
footer.footer,
.home-main-header.public-institutional-section{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:100vw!important;
  margin-left:0!important;
  margin-right:0!important;
  overflow:hidden!important;
}

footer.footer{
  --footer-safe-gap:clamp(8px,1.2vh,16px);
  --footer-rights-height:clamp(24px,4vh,34px);
  padding-top:clamp(12px,3.2vh,28px)!important;
  padding-right:clamp(16px,2.2vw,38px)!important;
  padding-bottom:clamp(8px,1.8vh,18px)!important;
  padding-left:clamp(16px,2.2vw,38px)!important;
}

footer.footer.public-footer-has-image{
  grid-template-columns:minmax(170px,var(--public-footer-image-safe-width,300px)) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  column-gap:clamp(18px,2vw,36px)!important;
}

footer.footer .public-footer-grid{
  box-sizing:border-box!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr)) minmax(300px,1.35fr)!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  column-gap:clamp(18px,3vw,48px)!important;
  row-gap:var(--footer-safe-gap)!important;
  align-items:end!important;
  align-content:stretch!important;
  overflow:hidden!important;
}

footer.footer .public-footer-column{
  box-sizing:border-box!important;
  min-width:0!important;
  max-width:100%!important;
  align-self:end!important;
  margin:0!important;
  padding:0 0 clamp(4px,1vh,12px)!important;
  overflow-wrap:anywhere!important;
}

footer.footer .public-footer-meta-column{
  min-width:0!important;
  max-width:100%!important;
  height:100%!important;
  align-self:stretch!important;
  display:grid!important;
  grid-template-columns:minmax(120px,auto) minmax(0,1fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-items:end!important;
  align-content:end!important;
  column-gap:clamp(14px,1.5vw,24px)!important;
  padding-bottom:clamp(4px,1vh,12px)!important;
  overflow:hidden!important;
}

footer.footer .public-footer-system-info{
  align-self:end!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}

footer.footer .public-footer-meta-social{
  align-self:end!important;
  justify-self:end!important;
  min-width:0!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

footer.footer .public-footer-social{
  align-self:end!important;
  justify-self:end!important;
  margin:0!important;
  padding:0!important;
  max-width:100%!important;
  column-gap:10px!important;
  row-gap:5px!important;
}

footer.footer .public-footer-social a{
  box-sizing:border-box!important;
  max-width:100%!important;
}

footer.footer .public-footer-rights{
  grid-column:1/-1!important;
  grid-row:2!important;
  align-self:end!important;
  justify-self:stretch!important;
  box-sizing:border-box!important;
  min-height:var(--footer-rights-height)!important;
  max-width:100%!important;
  margin:0!important;
  padding:clamp(7px,1vh,11px) 0 0!important;
  border-top:1px solid rgba(255,255,255,.24)!important;
  overflow:hidden!important;
  white-space:normal!important;
}

footer.footer .public-footer-bottom-wrap,
footer.footer .public-footer-image-bottom-free{
  box-sizing:border-box!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
}

footer.footer .public-footer-image-bottom-free .public-footer-image-bottom{
  max-width:100%!important;
  max-height:100%!important;
}

/* Rodape superior: nenhum elemento pode ultrapassar as bordas. */




@media(max-width:1200px){
  footer.footer .public-footer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-template-rows:auto auto auto!important;
    align-content:end!important;
  }
  footer.footer .public-footer-meta-column{
    grid-column:1/-1!important;
    height:auto!important;
  }
  footer.footer .public-footer-rights{
    grid-row:auto!important;
  }
}

@media(max-width:760px){
  footer.footer{
    height:auto!important;
    min-height:var(--public-lower-footer-height,330px)!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  footer.footer.public-footer-has-image{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    row-gap:14px!important;
  }
  footer.footer.public-footer-has-image .public-footer-bottom-wrap,
  footer.footer.public-footer-has-image .public-footer-grid{
    grid-column:1!important;
    grid-row:auto!important;
  }
  footer.footer .public-footer-grid{
    height:auto!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto!important;
    align-content:start!important;
    overflow:hidden!important;
  }
  footer.footer .public-footer-meta-column{
    grid-column:1!important;
    grid-template-columns:1fr!important;
    row-gap:10px!important;
  }
  footer.footer .public-footer-meta-social,
  footer.footer .public-footer-social{
    justify-self:start!important;
    justify-content:flex-start!important;
  }
  footer.footer .public-footer-rights{
    grid-column:1!important;
    justify-content:flex-start!important;
    text-align:left!important;
  }
  footer.footer .public-footer-image-bottom-free{
    height:clamp(110px,28vw,180px)!important;
  }
}

/* ================================================================
   RODAPE INFERIOR - DIVISOES FIXAS E CONTEUDO CONTIDO
   Atendimento | Localizacao | Informacoes | Redes sociais
   ================================================================ */
@media (min-width:1201px){
  footer.footer{
    --footer-content-top:clamp(12px,1.8vh,22px);
    --footer-content-bottom:clamp(8px,1.2vh,14px);
    --footer-column-gap:clamp(18px,2.2vw,38px);
  }

  footer.footer .public-footer-grid{
    display:grid!important;
    grid-template-columns:minmax(220px,1.05fr) minmax(210px,.95fr) minmax(420px,1.75fr)!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    column-gap:var(--footer-column-gap)!important;
    row-gap:0!important;
    align-items:stretch!important;
    align-content:stretch!important;
    padding-top:var(--footer-content-top)!important;
    padding-bottom:0!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-column{
    min-width:0!important;
    height:100%!important;
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    align-items:flex-start!important;
    margin:0!important;
    padding:0 0 var(--footer-content-bottom)!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-column h4{
    margin:0 0 8px!important;
  }

  footer.footer .public-footer-column p{
    max-width:100%!important;
    margin:0 0 7px!important;
    overflow-wrap:anywhere!important;
  }

  /* A terceira celula do grid e dividida em Informacoes + Redes. */
  footer.footer .public-footer-meta-column{
    display:grid!important;
    grid-template-columns:minmax(135px,.72fr) minmax(300px,1.55fr)!important;
    grid-template-rows:1fr!important;
    column-gap:clamp(20px,2vw,34px)!important;
    align-items:start!important;
    align-content:start!important;
    justify-items:stretch!important;
    height:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0 0 var(--footer-content-bottom)!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-system-info{
    grid-column:1!important;
    align-self:start!important;
    justify-self:start!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-meta-social{
    grid-column:2!important;
    align-self:start!important;
    justify-self:start!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-social{
    display:grid!important;
    grid-template-columns:repeat(3,max-content)!important;
    grid-auto-rows:max-content!important;
    justify-content:start!important;
    align-content:start!important;
    align-items:start!important;
    column-gap:10px!important;
    row-gap:6px!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-social a{
    min-width:0!important;
    max-width:100%!important;
    white-space:nowrap!important;
  }

  footer.footer .public-footer-rights{
    grid-column:1/-1!important;
    grid-row:2!important;
    align-self:end!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:7px 0 0!important;
    overflow:hidden!important;
  }
}

/* Mantem todos os elementos dentro das bordas em qualquer largura. */
footer.footer,
footer.footer .public-footer-grid,
footer.footer .public-footer-column,
footer.footer .public-footer-meta-column,
footer.footer .public-footer-system-info,
footer.footer .public-footer-meta-social,
footer.footer .public-footer-social,
footer.footer .public-footer-rights{
  box-sizing:border-box!important;
  max-width:100%!important;
}

/* ================================================================
   CORRECAO DEFINITIVA DO RODAPE INFERIOR
   Linha principal: Atendimento | Localizacao | Informacoes | Redes
   Linha inferior: Copyright
   ================================================================ */
@media (min-width: 900px){
  footer.footer{
    overflow:hidden!important;
  }

  footer.footer .public-footer-grid{
    display:grid!important;
    grid-template-columns:minmax(230px,1fr) minmax(230px,1fr) minmax(520px,1.75fr)!important;
    grid-template-rows:minmax(0,1fr) auto!important;
    column-gap:clamp(28px,3vw,58px)!important;
    row-gap:8px!important;
    align-items:start!important;
    align-content:stretch!important;
    height:100%!important;
    padding:clamp(18px,2.5vh,30px) 0 0!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-grid > .public-footer-column{
    grid-row:1!important;
    align-self:start!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    grid-column:1!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2){
    grid-column:2!important;
  }

  footer.footer .public-footer-meta-column{
    grid-column:3!important;
    grid-row:1!important;
    display:grid!important;
    grid-template-columns:minmax(135px,.55fr) minmax(350px,1.45fr)!important;
    grid-template-rows:auto!important;
    column-gap:clamp(24px,2.2vw,44px)!important;
    align-items:start!important;
    align-content:start!important;
    justify-items:start!important;
    width:100%!important;
    height:auto!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-system-info{
    grid-column:1!important;
    grid-row:1!important;
    align-self:start!important;
    justify-self:start!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
  }

  footer.footer .public-footer-meta-social{
    grid-column:2!important;
    grid-row:1!important;
    align-self:start!important;
    justify-self:start!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-social{
    display:grid!important;
    grid-template-columns:repeat(3,max-content)!important;
    grid-auto-flow:row!important;
    grid-auto-rows:max-content!important;
    justify-content:start!important;
    align-content:start!important;
    align-items:start!important;
    column-gap:10px!important;
    row-gap:6px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-rights{
    grid-column:1/-1!important;
    grid-row:2!important;
    align-self:end!important;
    justify-self:stretch!important;
    width:100%!important;
    min-height:28px!important;
    margin:0!important;
    padding:7px 0 0!important;
    border-top:1px solid rgba(255,255,255,.24)!important;
    text-align:center!important;
    overflow:hidden!important;
  }
}

@media (min-width:900px) and (max-width:1180px){
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(190px,.95fr) minmax(190px,.95fr) minmax(420px,1.6fr)!important;
    column-gap:22px!important;
  }
  footer.footer .public-footer-meta-column{
    grid-template-columns:minmax(120px,.55fr) minmax(280px,1.45fr)!important;
    column-gap:18px!important;
  }
  footer.footer .public-footer-social{
    column-gap:7px!important;
  }
}

/* ================================================================
   AJUSTE FINAL SOLICITADO
   - Localizacao: titulo + no maximo duas linhas, deslocada a direita
   - Informacoes/versao: uma linha abaixo das redes sociais
   ================================================================ */
@media (min-width: 900px){
  /* Abre um pouco mais de espaco para Localizacao e a desloca para a direita. */
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(260px,1.05fr) minmax(300px,1.08fr) minmax(520px,1.72fr)!important;
    column-gap:clamp(36px,4vw,72px)!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2){
    padding-left:clamp(18px,2vw,38px)!important;
    min-width:0!important;
  }

  /* Mantem o titulo em uma linha e agrupa os dados em somente duas linhas. */
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) h4{
    display:block!important;
    margin:0 0 8px!important;
    white-space:nowrap!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p{
    margin:0!important;
    line-height:1.45!important;
    white-space:nowrap!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(1){
    display:block!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(2),
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(3){
    display:inline!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(2)::after{
    content:"  •  ";
    white-space:pre!important;
  }

  /* Redes na primeira faixa; Informacoes/versao logo abaixo, em linha unica. */
  footer.footer .public-footer-meta-column{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    row-gap:clamp(8px,1vh,12px)!important;
    align-content:start!important;
    width:100%!important;
  }

  footer.footer .public-footer-meta-social{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
  }

  footer.footer .public-footer-system-info{
    grid-column:1!important;
    grid-row:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:8px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-system-info h4,
  footer.footer .public-footer-system-info p{
    display:inline!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
    line-height:1.35!important;
    white-space:nowrap!important;
  }

  footer.footer .public-footer-system-info h4::after{
    content:":";
  }
}

@media (min-width:900px) and (max-width:1180px){
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(220px,1fr) minmax(260px,1.05fr) minmax(430px,1.55fr)!important;
    column-gap:24px!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2){
    padding-left:12px!important;
  }
}

/* ================================================================
   AJUSTE PONTUAL - LOCALIZACAO EM DUAS LINHAS, JUNTO A DIVISORIA
   ================================================================ */
@media (min-width: 900px){
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2){
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    min-height:0!important;
    padding-bottom:clamp(6px,.8vh,10px)!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) h4{
    margin:0 0 6px!important;
    flex:0 0 auto!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p{
    flex:0 0 auto!important;
    margin:0!important;
    line-height:1.35!important;
    white-space:nowrap!important;
  }

  /* Linha 1: endereco. */
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(1){
    display:block!important;
  }

  /* Linha 2: CEP e cidade/UF na mesma linha. */
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(2),
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(3){
    display:inline!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(2) p:nth-of-type(2)::after{
    content:"  •  "!important;
    white-space:pre!important;
  }
}

/* CORRECAO REAL: estrutura propria para Localizacao em exatamente duas linhas. */
@media (min-width:900px){
  footer.footer .public-footer-grid > .public-footer-location{
    grid-column:2!important;
    grid-row:1!important;
    align-self:stretch!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    min-width:0!important;
    margin:0!important;
    padding:0 clamp(0px,1vw,16px) clamp(5px,.7vh,9px) clamp(20px,2.5vw,46px)!important;
    overflow:hidden!important;
  }
  footer.footer .public-footer-location h4{
    flex:0 0 auto!important;
    margin:0 0 5px!important;
    padding:0!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  footer.footer .public-footer-location .public-footer-location-line{
    display:block!important;
    flex:0 0 auto!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    line-height:1.35!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  footer.footer .public-footer-location .public-footer-location-region{
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
  }
  footer.footer .public-footer-location-separator{
    flex:0 0 auto!important;
  }
}

/* AJUSTE PONTUAL: redes sociais e versao mais a direita no desktop. */
@media (min-width: 900px){
  footer.footer .public-footer-meta-column{
    justify-self:end!important;
    width:min(100%,520px)!important;
    padding-left:clamp(36px,4vw,84px)!important;
    box-sizing:border-box!important;
  }

  footer.footer .public-footer-meta-social,
  footer.footer .public-footer-system-info{
    justify-self:end!important;
    width:max-content!important;
    max-width:100%!important;
  }

  footer.footer .public-footer-social{
    justify-content:end!important;
  }
}

/* ================================================================
   REFINO DE POSICIONAMENTO - LOCALIZACAO E REDES/VERSAO
   - Localizacao um pouco mais a direita
   - Redes e versao recuadas levemente para a esquerda
   ================================================================ */
@media (min-width: 900px){
  footer.footer .public-footer-location{
    padding-left:clamp(52px,4.2vw,82px)!important;
  }

  footer.footer .public-footer-meta-column{
    padding-left:clamp(12px,1.6vw,28px)!important;
    transform:translateX(clamp(-42px,-2.6vw,-24px))!important;
  }

  footer.footer .public-footer-meta-social,
  footer.footer .public-footer-system-info{
    justify-self:end!important;
  }
}

@media (min-width:900px) and (max-width:1180px){
  footer.footer .public-footer-location{
    padding-left:28px!important;
  }

  footer.footer .public-footer-meta-column{
    transform:translateX(-14px)!important;
    padding-left:8px!important;
  }
}

/* ================================================================
   AJUSTE FINAL - DESLOCAR O BLOCO LOCALIZACAO PARA A DIREITA
   Move o bloco inteiro, sem alterar Atendimento, redes ou copyright.
   ================================================================ */
@media (min-width: 1181px){
  footer.footer .public-footer-location{
    transform:translateX(clamp(48px,3.8vw,68px))!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}

@media (min-width: 900px) and (max-width: 1180px){
  footer.footer .public-footer-location{
    transform:translateX(28px)!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}

/* ================================================================
   AJUSTE FINAL - HORARIO EM UMA LINHA E LOCALIZACAO ALINHADA EMBAIXO
   ================================================================ */
@media (min-width: 900px){
  /* Garante largura util suficiente e impede a quebra do horario. */
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(310px,1.12fr) minmax(250px,.95fr) minmax(500px,1.7fr)!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) p{
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  /* Desce a Localizacao e alinha a ultima linha com a linha do Horario. */
  footer.footer .public-footer-location{
    align-self:stretch!important;
    justify-content:flex-end!important;
    transform:translate( clamp(48px,3.8vw,68px), 10px )!important;
    padding-top:0!important;
    padding-bottom:clamp(5px,.6vh,8px)!important;
  }
}

@media (min-width: 900px) and (max-width: 1180px){
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(285px,1.1fr) minmax(235px,.95fr) minmax(430px,1.55fr)!important;
  }

  footer.footer .public-footer-location{
    transform:translate(28px,8px)!important;
  }
}

/* ================================================================
   REGRA ESTRUTURAL FINAL - NENHUM CONTEUDO ACIMA DO COPYRIGHT
   A linha divisoria reserva uma faixa inferior exclusiva e imutavel.
   Funciona com qualquer altura configurada para o rodape inferior.
   ================================================================ */
@media (min-width:900px){
  footer.footer{
    --footer-rights-height:clamp(28px,4.2vh,36px);
    overflow:hidden!important;
    contain:paint!important;
  }

  footer.footer .public-footer-grid{
    position:relative!important;
    display:grid!important;
    grid-template-rows:minmax(0,1fr) var(--footer-rights-height)!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    padding-top:clamp(8px,1.5vh,18px)!important;
    padding-bottom:0!important;
    row-gap:0!important;
    overflow:hidden!important;
  }

  /* Todos os blocos informativos pertencem exclusivamente a faixa superior. */
  footer.footer .public-footer-grid > .public-footer-column,
  footer.footer .public-footer-location,
  footer.footer .public-footer-meta-column{
    grid-row:1!important;
    min-height:0!important;
    max-height:100%!important;
    padding-bottom:clamp(5px,.8vh,10px)!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  /* Remove qualquer deslocamento vertical acumulado por regras anteriores. */
  footer.footer .public-footer-location{
    transform:translateX(clamp(48px,3.8vw,68px))!important;
  }

  footer.footer .public-footer-column h4,
  footer.footer .public-footer-column p,
  footer.footer .public-footer-location h4,
  footer.footer .public-footer-location-line,
  footer.footer .public-footer-system-info h4,
  footer.footer .public-footer-system-info p{
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  /* A divisoria e o copyright ocupam uma faixa propria no fundo. */
  footer.footer .public-footer-rights{
    grid-column:1/-1!important;
    grid-row:2!important;
    position:relative!important;
    align-self:stretch!important;
    justify-self:stretch!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:var(--footer-rights-height)!important;
    min-height:var(--footer-rights-height)!important;
    max-height:var(--footer-rights-height)!important;
    margin:0!important;
    padding:0 clamp(8px,1vw,16px)!important;
    border-top:1px solid rgba(255,255,255,.24)!important;
    overflow:hidden!important;
    white-space:nowrap!important;
    box-sizing:border-box!important;
    z-index:5!important;
  }
}

@media (min-width:900px) and (max-width:1180px){
  footer.footer .public-footer-location{
    transform:translateX(28px)!important;
  }
}

/* ================================================================
   AJUSTE FINAL - ATENDIMENTO SEMPRE ACIMA DA DIVISORIA
   Sobe e compacta apenas o primeiro bloco informativo no desktop.
   ================================================================ */
@media (min-width:900px){
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    align-self:start!important;
    justify-self:stretch!important;
    justify-content:flex-start!important;
    align-content:start!important;
    padding-top:0!important;
    padding-bottom:4px!important;
    margin-top:0!important;
    transform:translateY(clamp(-10px,-1vh,-5px))!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) h4{
    margin:0 0 5px!important;
    padding:0!important;
    line-height:1.15!important;
    white-space:nowrap!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) p{
    margin:0 0 5px!important;
    padding:0!important;
    line-height:1.25!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) p:last-child{
    margin-bottom:0!important;
  }
}

@media (min-width:900px) and (max-height:760px){
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    transform:translateY(-8px)!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) h4{
    margin-bottom:4px!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) p{
    margin-bottom:3px!important;
    line-height:1.18!important;
  }
}

/* ================================================================
   AJUSTE FINAL - TEXTOS COMPLETOS E 3 BLOCOS RECENTRALIZADOS
   Remove reticencias e redistribui a largura util sem cruzar a
   divisoria reservada ao copyright.
   ================================================================ */
@media (min-width:900px){
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(345px,1.2fr) minmax(300px,1fr) minmax(475px,1.45fr)!important;
    column-gap:clamp(18px,2vw,34px)!important;
    padding-left:clamp(8px,1vw,18px)!important;
    padding-right:clamp(8px,1vw,18px)!important;
  }

  /* Atendimento: largura suficiente e nenhuma truncagem. */
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    transform:none!important;
    justify-self:center!important;
    width:100%!important;
    max-width:390px!important;
    padding:0!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) h4,
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) p{
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
    max-width:none!important;
  }

  /* Localizacao: recentralizada e com as duas linhas inteiras. */
  footer.footer .public-footer-location{
    transform:none!important;
    justify-self:center!important;
    width:100%!important;
    max-width:330px!important;
    padding-left:0!important;
    padding-right:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-location h4,
  footer.footer .public-footer-location-line,
  footer.footer .public-footer-location-address,
  footer.footer .public-footer-location-region{
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
    max-width:none!important;
  }

  /* Redes e versao: usa toda a terceira coluna sem deslocamento lateral. */
  footer.footer .public-footer-meta-column{
    transform:none!important;
    justify-self:center!important;
    width:100%!important;
    max-width:500px!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  footer.footer .public-footer-meta-social,
  footer.footer .public-footer-system-info{
    max-width:100%!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-system-info,
  footer.footer .public-footer-system-info h4,
  footer.footer .public-footer-system-info p{
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  /* Compactacao vertical segura para manter tudo acima da divisoria. */
  footer.footer .public-footer-column h4,
  footer.footer .public-footer-location h4,
  footer.footer .public-footer-system-info h4{
    margin-bottom:5px!important;
    line-height:1.15!important;
  }

  footer.footer .public-footer-column p,
  footer.footer .public-footer-location-line,
  footer.footer .public-footer-system-info p{
    margin-bottom:4px!important;
    line-height:1.22!important;
  }
}

@media (min-width:900px) and (max-width:1250px){
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(310px,1.15fr) minmax(270px,.95fr) minmax(430px,1.35fr)!important;
    column-gap:16px!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    max-width:350px!important;
  }

  footer.footer .public-footer-location{
    max-width:295px!important;
  }
}

/* ================================================================
   AJUSTE DE ESPACAMENTO - LOCALIZACAO E REDES
   Aproxima os dois blocos sem alterar Atendimento, brasao ou direitos.
   ================================================================ */
@media (min-width:900px){
  footer.footer .public-footer-location{
    justify-self:end!important;
    transform:translateX(clamp(24px,2.2vw,42px))!important;
  }

  footer.footer .public-footer-meta-column{
    justify-self:start!important;
    transform:translateX(clamp(-42px,-2.2vw,-24px))!important;
  }
}

@media (min-width:900px) and (max-width:1250px){
  footer.footer .public-footer-location{
    transform:translateX(18px)!important;
  }

  footer.footer .public-footer-meta-column{
    transform:translateX(-18px)!important;
  }
}

/* ================================================================
   AJUSTE FINAL - HORARIO COMPLETO E LOCALIZACAO MAIS A DIREITA
   Mantem o bloco de redes/versao exatamente na posicao atual.
   ================================================================ */
@media (min-width:900px){
  /* Libera largura real para o texto completo do horario. */
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    max-width:460px!important;
    width:460px!important;
    min-width:460px!important;
    overflow:visible!important;
    position:relative!important;
    z-index:2!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) h4,
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) p{
    max-width:none!important;
    width:max-content!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  /* Move somente Localizacao; redes e versao nao sao tocadas. */
  footer.footer .public-footer-location{
    transform:translateX(clamp(68px,5vw,86px))!important;
    justify-self:center!important;
    position:relative!important;
    z-index:1!important;
  }
}

@media (min-width:900px) and (max-width:1250px){
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    width:410px!important;
    min-width:410px!important;
    max-width:410px!important;
  }

  footer.footer .public-footer-location{
    transform:translateX(42px)!important;
  }
}

/* ================================================================
   AJUSTE FINAL REAL - REMOVER CORTE LATERAL DO BLOCO ATENDIMENTO
   - elimina o recuo/corte na lateral esquerda
   - mantém o bloco de redes praticamente na mesma região
   - desloca a localização levemente à direita sem invadir as bordas
   ================================================================ */
@media (min-width:900px){
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(300px,1.18fr) minmax(255px,.96fr) minmax(350px,1fr)!important;
    column-gap:clamp(18px,2vw,28px)!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1){
    width:auto!important;
    min-width:0!important;
    max-width:100%!important;
    justify-self:start!important;
    align-self:start!important;
    transform:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) h4,
  footer.footer .public-footer-grid > .public-footer-column:not(.public-footer-meta-column):nth-of-type(1) p{
    width:auto!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }

  footer.footer .public-footer-location{
    justify-self:start!important;
    max-width:100%!important;
    transform:translateX(clamp(34px,3vw,52px))!important;
    margin:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-location h4,
  footer.footer .public-footer-location .public-footer-location-line,
  footer.footer .public-footer-location .public-footer-location-region{
    overflow:visible!important;
    text-overflow:clip!important;
  }

  footer.footer .public-footer-meta-column{
    justify-self:end!important;
    width:auto!important;
    max-width:100%!important;
    margin:0!important;
  }
}

@media (min-width:900px) and (max-width:1250px){
  footer.footer .public-footer-grid{
    grid-template-columns:minmax(270px,1.12fr) minmax(225px,.92fr) minmax(330px,1fr)!important;
    column-gap:16px!important;
  }

  footer.footer .public-footer-location{
    transform:translateX(18px)!important;
  }
}

/* Ajuste pontual: descer Informacoes/Versao ate a linha do CEP. */
@media (min-width:900px){
  footer.footer .public-footer-system-info{
    transform:translateY(clamp(8px,1vh,12px))!important;
  }
}

/* Ajuste pontual final: alinhar Informacoes/Versao com a linha do CEP. */
@media (min-width:900px){
  footer.footer .public-footer-system-info{
    transform:translateY(clamp(18px,2vh,24px))!important;
  }
}

/* ================================================================
   CORRECAO REAL - INFORMACOES SEM CORTE HORIZONTAL
   Posiciona a versao dentro da faixa superior, sem usar translateY.
   ================================================================ */
@media (min-width:900px){
  footer.footer .public-footer-meta-column{
    position:relative!important;
    display:block!important;
    height:100%!important;
    min-height:0!important;
    padding-bottom:6px!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-meta-social{
    position:relative!important;
    top:0!important;
    left:auto!important;
    right:auto!important;
    width:max-content!important;
    max-width:100%!important;
    margin-left:auto!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-system-info{
    position:absolute!important;
    left:auto!important;
    right:0!important;
    bottom:clamp(7px,.9vh,11px)!important;
    top:auto!important;
    transform:none!important;
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    width:max-content!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
    line-height:1.2!important;
    z-index:4!important;
  }

  footer.footer .public-footer-system-info h4,
  footer.footer .public-footer-system-info p{
    margin:0!important;
    padding:0!important;
    line-height:1.2!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
}

/* ================================================================
   CORRECAO DEFINITIVA - REDES NO TOPO, INFORMACOES NO FUNDO DA FAIXA
   Mantem a versao imediatamente acima da divisoria do copyright.
   ================================================================ */
@media (min-width:900px){
  footer.footer .public-footer-meta-column{
    position:relative!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    align-self:stretch!important;
    align-content:stretch!important;
    height:auto!important;
    min-height:0!important;
    max-height:100%!important;
    padding:0 0 6px 0!important;
    overflow:hidden!important;
  }

  footer.footer .public-footer-meta-social{
    position:static!important;
    grid-column:1!important;
    grid-row:1!important;
    align-self:start!important;
    justify-self:end!important;
    width:max-content!important;
    max-width:100%!important;
    margin:0!important;
    overflow:visible!important;
  }

  footer.footer .public-footer-system-info{
    position:static!important;
    grid-column:1!important;
    grid-row:2!important;
    align-self:end!important;
    justify-self:end!important;
    transform:none!important;
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    width:max-content!important;
    max-width:100%!important;
    margin:0 0 2px 0!important;
    padding:0!important;
    overflow:visible!important;
    white-space:nowrap!important;
    line-height:1.2!important;
    z-index:auto!important;
  }
}

/* Ajuste pontual: descer Informacoes/Versao ate junto da divisoria. */
@media (min-width:900px){
  footer.footer .public-footer-meta-column{
    position:relative!important;
    overflow:visible!important;
    padding-bottom:0!important;
  }

  footer.footer .public-footer-system-info{
    position:absolute!important;
    right:0!important;
    bottom:0!important;
    top:auto!important;
    margin:0!important;
    transform:none!important;
    white-space:nowrap!important;
    overflow:visible!important;
  }
}

/* ================================================================
   CORRECAO FINAL DO BLOCO DIREITO
   Redes permanecem no topo; Informacoes/Versao ocupa o fundo real
   da mesma coluna, imediatamente acima da divisoria do copyright.
   ================================================================ */
@media (min-width:900px){
  footer.footer .public-footer-meta-column{
    position:static!important;
    display:flex!important;
    flex-direction:column!important;
    align-self:stretch!important;
    justify-self:end!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    height:100%!important;
    min-height:0!important;
    max-height:100%!important;
    padding:0 0 5px!important;
    margin:0!important;
    overflow:hidden!important;
    transform:none!important;
  }

  footer.footer .public-footer-meta-social{
    position:static!important;
    flex:0 0 auto!important;
    align-self:flex-end!important;
    width:max-content!important;
    max-width:100%!important;
    margin:0!important;
    transform:none!important;
  }

  footer.footer .public-footer-system-info{
    position:static!important;
    flex:0 0 auto!important;
    align-self:flex-end!important;
    margin:auto 0 0!important;
    padding:0!important;
    transform:none!important;
    display:flex!important;
    align-items:center!important;
    gap:8px!important;
    width:max-content!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:visible!important;
    line-height:1.2!important;
  }

  footer.footer .public-footer-system-info h4,
  footer.footer .public-footer-system-info p{
    margin:0!important;
    padding:0!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
    line-height:1.2!important;
  }
}

/* ================================================================
   CORRECAO REAL - IMAGENS DO RODAPE SUPERIOR SEM RECORTE
   Neutraliza regras antigas que voltavam a aplicar overflow:hidden.
   Mantem tamanho, zoom e posicao vindos das Configuracoes.
   ================================================================ */








.home-main-header.public-institutional-section .home-crest.has-configured-crest{
  position:relative!important;
  overflow:visible!important;
  z-index:125!important;
}

/* O menu fica abaixo da imagem, mas continua acima do conteudo da pagina. */
.public-menu-section{
  position:relative!important;
  z-index:90!important;
}






/* RESTAURACAO FINAL: preserva o layout/posicao anterior e corrige somente o recorte. */




/* ================================================================
   POSICAO FINAL DO LOGO/BRASAO DO TOPO
   Ancora o bloco institucional no lado esquerdo sem interferir nos
   controles de zoom e deslocamento aplicados diretamente na imagem.
   ================================================================ */
@media (min-width:901px){
  .home-main-header.public-institutional-section .header-flex{
    position:relative!important;
    min-height:var(--public-header-height,110px)!important;
    padding-left:0!important;
    overflow:visible!important;
  }

  .home-main-header.public-institutional-section .home-logo{
    position:absolute!important;
    left:0!important;
    top:50%!important;
    right:auto!important;
    bottom:auto!important;
    grid-area:auto!important;
    grid-column:auto!important;
    grid-row:auto!important;
    justify-self:start!important;
    align-self:center!important;
    margin:0!important;
    transform:translateY(-50%)!important;
    z-index:150!important;
    overflow:visible!important;
  }

  .home-main-header.public-institutional-section .home-crest.has-configured-crest{
    position:relative!important;
    overflow:visible!important;
  }

  .home-main-header.public-institutional-section .home-crest.has-configured-crest img{
    max-width:none!important;
    max-height:none!important;
  }
}

@media (max-width:900px){
  .home-main-header.public-institutional-section .home-logo{
    position:relative!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    justify-self:start!important;
  }
}

/* ===== CORRECAO DO HOVER DOS PRIMEIROS ITENS DO MENU PUBLICO =====
   O bloco institucional do logo e apenas visual. Como ele e posicionado de
   forma absoluta, sua caixa podia avancar sobre a barra e interceptar o mouse
   em Inicio e Municipio. Os controles do cabecalho permanecem interativos. */
@media (min-width:901px){
  .home-main-header.public-institutional-section .home-logo{
    pointer-events:none!important;
  }
  .public-menu-section,
  .public-menu-section .public-menu-inner,
  .public-menu-section .home-main-nav,
  .public-menu-section .home-nav-item,
  .public-menu-section .home-nav-item>a,
  .public-menu-section .home-submenu{
    pointer-events:auto!important;
  }
  .public-menu-section .home-nav-item:hover>.home-submenu,
  .public-menu-section .home-nav-item:focus-within>.home-submenu{
    display:block!important;
  }
}

/* ================================================================
   CORRECAO DEFINITIVA DO HOVER NOS PRIMEIROS MENUS
   Garante que Inicio, Municipio e Obras da Cidade fiquem acima da
   caixa visual do brasao/logo e recebam o ponteiro normalmente.
   ================================================================ */
@media (min-width:901px){
  .public-menu-section{
    position:relative!important;
    z-index:1000!important;
    isolation:isolate!important;
    overflow:visible!important;
  }

  .public-menu-section .public-menu-inner,
  .public-menu-section .home-main-nav{
    position:relative!important;
    z-index:1001!important;
    overflow:visible!important;
  }

  .public-menu-section .home-nav-item{
    position:relative!important;
    z-index:1002!important;
  }

  .public-menu-section .home-nav-item:hover,
  .public-menu-section .home-nav-item:focus-within{
    z-index:1010!important;
  }

  .public-menu-section .home-submenu{
    z-index:1020!important;
  }

  .home-main-header.public-institutional-section,
  .home-main-header.public-institutional-section .header-flex,
  .home-main-header.public-institutional-section .home-logo,
  .home-main-header.public-institutional-section .home-crest,
  .home-main-header.public-institutional-section .home-crest img{
    z-index:auto!important;
  }

  .home-main-header.public-institutional-section .home-crest,
  .home-main-header.public-institutional-section .home-crest img{
    pointer-events:none!important;
  }

  .public-menu-section .home-nav-item:hover > a,
  .public-menu-section .home-nav-item:focus-within > a{
    color:#0a8f60!important;
    border-bottom-color:#0e9b67!important;
  }

  .public-menu-section .home-nav-item:hover > .home-submenu,
  .public-menu-section .home-nav-item:focus-within > .home-submenu{
    display:block!important;
    visibility:visible!important;
    opacity:1!important;
    pointer-events:auto!important;
  }
}

/* ===== MENU PUBLICO DE PUBLICACOES AMPLIADO ===== */
@media (min-width:901px){
  .public-menu-section .publications-submenu,
  .home-main-nav .publications-submenu{
    width:min(620px,calc(100vw - 48px))!important;
    min-width:620px!important;
    max-height:min(560px,calc(100vh - 170px))!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:3px 8px!important;
    padding:10px!important;
    scrollbar-gutter:stable!important;
  }
  .public-menu-section .home-nav-item:hover>.publications-submenu,
  .public-menu-section .home-nav-item:focus-within>.publications-submenu,
  .home-nav-item:hover>.publications-submenu,
  .home-nav-item:focus-within>.publications-submenu{
    display:grid!important;
  }
  .publications-submenu a{
    min-width:0!important;
    white-space:normal!important;
    line-height:1.25!important;
    padding:10px 12px!important;
  }
}
@media (max-width:900px){
  .publications-submenu{
    max-height:70vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .publications-submenu a{white-space:normal!important}
}

/* Reuniões dos conselhos: capa informativa sem exibir IDs numéricos */
.portal-council-meeting-card .portal-meeting-summary{
  min-height:170px;
  height:170px;
  padding:20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  text-align:center;
}
.portal-council-meeting-card .portal-meeting-summary span{font-size:38px;line-height:1;}
.portal-council-meeting-card .portal-public-body p{min-height:42px;}

/* Paleta dinâmica do portal e painel administrativo. */
:root{--theme-header-top:#06284e;--theme-header-text:#ffffff;--theme-footer-top:#0b3a78;--theme-footer-bottom:#06284e;--theme-title:#0b3a78;--theme-subtitle:#5d6d7e;--theme-text:#0b2341;--theme-button-primary:#0e9b67;--theme-button-secondary:#f8fafc;--theme-accent:#0b5ca5;--theme-font:Arial,Helvetica,sans-serif}
html,body{font-family:var(--theme-font)!important;color:var(--theme-text)}
.home-top-strip,.admin-topbar,.top-bar,.header-top,.portal-topbar,.admin-sidebar-header{background-color:var(--theme-header-top)!important;color:var(--theme-header-text)!important}
.home-top-strip *,.admin-topbar *,.top-bar *,.header-top *,.portal-topbar *{color:var(--theme-header-text)!important}
.home-main-header,.main-header,.site-header,.portal-header{color:var(--theme-header-text)}
h1,h2,h3,h4,h5,h6,.home-logo h1,.clean-head h2,.page-hero h2,.public-content h1,.public-content h2,.public-content h3,.section-title,.card-title,.admin-form-topbar h3{color:var(--theme-title)!important}
.subtitle,.section-subtitle,.home-logo p,.clean-head p,.page-hero p,.public-content .subtitle,.admin-form-topbar p{color:var(--theme-subtitle)!important}
p,li,td,th,label,input,select,textarea,.public-content,.card-body{color:var(--theme-text)}
a,.link,.breadcrumb a{color:var(--theme-accent)}
a:hover,.clean-head a,.breadcrumb,.highlight,.accent{color:var(--theme-accent)!important}
.citizen-btn,.hero-cta,.btn-primary,.button-primary,.admin-crud-btn.save,button[type=submit]{background-color:var(--theme-button-primary)!important;border-color:var(--theme-button-primary)!important;color:#fff!important}
.btn-secondary,.button-secondary,.admin-crud-btn.new{background-color:var(--theme-button-secondary)!important;border-color:var(--theme-accent)!important;color:var(--theme-title)!important}
.footer,.footer-clean,.site-footer,.footer-top,.public-footer{background-color:var(--theme-footer-top)!important;color:var(--theme-header-text)!important}
.footer *,.footer-clean *,.site-footer *,.footer-top *,.public-footer *{color:var(--theme-header-text)}
.footer-bottom,.footer-lower,.footer-copyright,.site-footer-bottom{background-color:var(--theme-footer-bottom)!important;color:var(--theme-header-text)!important}
.admin-crud-btn.reset-theme{background:#d97706!important;border-color:#b45309!important;color:#fff!important}
.admin-crud-btn.reset-theme:disabled{opacity:.65;cursor:wait}



/* ===== Correção cautelosa de contraste das paletas =====
   Mantém a identidade visual do sistema, mas garante leitura forte
   no hero público e destaque dos controles/ícones do cabeçalho. */
.public-page .page-hero .breadcrumb,
.public-page .page-hero .breadcrumb a,
.public-page .page-hero h1,
.public-page .page-hero h2,
.public-page .page-hero h3,
.public-page .page-hero h4,
.public-page .page-hero h5,
.public-page .page-hero h6,
.public-page .page-hero p,
.public-page .page-hero li,
.public-page .page-hero .highlight,
.public-page .page-hero .accent{
  color:#fff!important;
}
.public-page .page-hero h1,
.public-page .page-hero h2,
.public-page .page-hero h3,
.public-page .page-hero h4,
.public-page .page-hero h5,
.public-page .page-hero h6{
  text-shadow:0 2px 14px rgba(0,0,0,.18)!important;
}
.public-page .page-hero p,
.public-page .page-hero li,
.public-page .page-hero .breadcrumb,
.public-page .page-hero .breadcrumb a{
  text-shadow:0 1px 10px rgba(0,0,0,.14)!important;
  opacity:.97;
}

.home-main-nav,
.home-main-nav>a,
.home-nav-item>a,
.home-submenu a{
  color:var(--theme-title)!important;
}
.home-main-nav a.active,
.home-main-nav>a:hover,
.home-nav-item:hover>a,
.home-nav-item:focus-within>a{
  color:var(--theme-button-primary)!important;
  border-bottom-color:var(--theme-button-primary)!important;
}

.a11y-toolbar.a11y-toolbar-header,
.public-header-search-trigger,
.public-header-whatsapp,
.public-header-admin-link,
.public-header-citizen-link,
.citizen-portal-header-link{
  border-color:#c7d7e5!important;
  box-shadow:0 10px 24px rgba(8,52,92,.12)!important;
}
.a11y-toolbar.a11y-toolbar-header button{
  color:var(--theme-title)!important;
  border-color:#c7d7e5!important;
  background:#f8fbff!important;
  font-weight:700!important;
}
.public-header-search-trigger,
.public-header-admin-link,
.public-header-citizen-link,
.citizen-portal-header-link{
  color:var(--theme-title)!important;
}
.public-header-search-trigger span,
.public-header-admin-link span,
.public-header-citizen-link span,
.citizen-portal-header-text{
  color:var(--theme-title)!important;
  font-weight:700!important;
}
.public-header-admin-link b,
.public-header-citizen-link b,
.citizen-portal-header-arrow{
  color:var(--theme-accent)!important;
}
.public-header-search-trigger svg,
.public-header-admin-link svg,
.public-header-citizen-link svg,
.citizen-portal-header-icon svg{
  stroke:var(--theme-title)!important;
  color:var(--theme-title)!important;
}
.public-header-whatsapp{
  color:#0b8b62!important;
  font-weight:700!important;
}
.public-header-whatsapp svg{
  stroke:#0b8b62!important;
  color:#0b8b62!important;
}

/* ===== Popup público padrão — Diário Oficial ===== */
.portal-standard-dialog-overlay[hidden]{display:none!important}
.portal-standard-dialog-overlay{position:fixed;inset:0;z-index:2147483400;display:grid;place-items:center;padding:20px;background:rgba(3,22,43,.58);backdrop-filter:blur(3px);opacity:0;transition:opacity .18s ease}
.portal-standard-dialog-overlay.is-open{opacity:1}
.portal-standard-dialog{width:min(520px,calc(100vw - 32px));overflow:hidden;border:1px solid #d5e2ec;border-radius:18px;background:#fff;box-shadow:0 28px 80px rgba(3,27,51,.30);transform:translateY(12px) scale(.985);transition:transform .18s ease}
.portal-standard-dialog-overlay.is-open .portal-standard-dialog{transform:translateY(0) scale(1)}
.portal-standard-dialog-header{display:grid;grid-template-columns:48px minmax(0,1fr) 40px;align-items:center;gap:14px;padding:20px 22px;border-bottom:1px solid #e3ebf1;background:linear-gradient(110deg,var(--theme-header-top),var(--theme-button-primary));color:#fff}
.portal-standard-dialog-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.48);border-radius:14px;background:rgba(255,255,255,.14);color:#fff!important;font-size:26px;font-weight:800;line-height:1}
.portal-standard-dialog-kicker{display:block;margin-bottom:3px;color:rgba(255,255,255,.82)!important;font-size:11px;font-weight:700;letter-spacing:.11em}
.portal-standard-dialog-header h2{margin:0;color:#fff!important;font-size:22px;line-height:1.15;text-shadow:none!important}
.portal-standard-dialog-close{width:38px;height:38px;border:1px solid rgba(255,255,255,.38);border-radius:11px;background:rgba(255,255,255,.12)!important;color:#fff!important;font-size:25px;line-height:1;cursor:pointer}
.portal-standard-dialog-close:hover{background:rgba(255,255,255,.22)!important}
.portal-standard-dialog-body{padding:24px 24px 10px}
.portal-standard-dialog-body p{margin:0;color:var(--theme-text)!important;font-size:16px;line-height:1.6}
.portal-standard-dialog-actions{display:flex;justify-content:flex-end;padding:18px 24px 22px}
.portal-standard-dialog-confirm{min-width:120px;min-height:44px;padding:0 22px;border:1px solid var(--theme-button-primary)!important;border-radius:10px;background:var(--theme-button-primary)!important;color:#fff!important;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 8px 20px rgba(6,70,55,.18)}
.portal-standard-dialog-confirm:hover{filter:brightness(.94)}
.portal-standard-dialog-confirm:focus-visible,.portal-standard-dialog-close:focus-visible{outline:3px solid rgba(255,255,255,.48);outline-offset:2px}
@media(max-width:560px){.portal-standard-dialog-overlay{padding:12px}.portal-standard-dialog-header{grid-template-columns:42px minmax(0,1fr) 36px;padding:17px}.portal-standard-dialog-icon{width:42px;height:42px}.portal-standard-dialog-body{padding:20px 18px 8px}.portal-standard-dialog-actions{padding:16px 18px 18px}.portal-standard-dialog-confirm{width:100%}}

/* ===== Filtros públicos profissionais por módulo ===== */
.portal-filter-professional{
  padding:22px!important;
  border:1px solid #d4e2ef!important;
  border-radius:20px!important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdff 100%)!important;
  box-shadow:0 14px 34px rgba(8,47,95,.08)!important;
}
.portal-filter-professional .portal-filter-header{
  margin-bottom:18px;
  padding-bottom:16px;
  border-bottom:1px solid #e4edf5;
}
.portal-filter-heading{min-width:0}
.portal-filter-kicker{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:0 10px;
  margin-bottom:7px;
  border-radius:999px;
  background:#eaf4ff;
  color:var(--theme-accent,#0b5ca5)!important;
  font-size:11px!important;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.portal-filter-professional .portal-filter-header h3{
  margin:0;
  font-size:24px;
  line-height:1.15;
  color:var(--theme-title,#083b73)!important;
}
.portal-filter-professional .portal-filter-header p{
  max-width:800px;
  margin:6px 0 0;
  color:#61758a!important;
  font-size:14px;
  line-height:1.45;
}
.portal-filter-header-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.portal-filter-professional .portal-record-count{
  min-height:42px;
  padding:0 15px;
  border-radius:12px;
  background:var(--theme-accent,#0b5ca5)!important;
  color:#fff!important;
  box-shadow:0 7px 16px rgba(11,92,165,.16);
}
.portal-filter-professional .portal-filter-clear{
  min-height:42px;
  padding:0 15px!important;
  border:1px solid #cbd9e6!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#294865!important;
  box-shadow:none!important;
}
.portal-filter-professional .portal-filter-clear:hover{
  border-color:#9eb8cf!important;
  background:#f5f9fd!important;
}
.portal-filter-search-row{
  display:grid;
  grid-template-columns:minmax(0,2fr) minmax(210px,.65fr);
  gap:14px;
  margin-bottom:14px;
}
.portal-filter-professional .portal-filter-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.portal-filter-field{
  display:grid;
  gap:7px;
  min-width:0;
}
.portal-filter-field>span{
  color:#244664!important;
  font-size:12px!important;
  letter-spacing:.01em;
}
.portal-filter-control{
  position:relative;
  display:flex;
  align-items:center;
}
.portal-filter-control>i{
  position:absolute;
  left:13px;
  z-index:1;
  width:18px;
  color:var(--theme-accent,#0b5ca5);
  font-style:normal;
  font-size:14px;
  text-align:center;
  pointer-events:none;
}
.portal-filter-control input,
.portal-filter-control select{
  width:100%;
  height:48px!important;
  min-width:0;
  padding:0 38px 0 41px!important;
  border:1px solid #cbdbe8!important;
  border-radius:13px!important;
  background:#fff!important;
  color:#173a5d!important;
  font-size:14px;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.portal-filter-control select{
  appearance:auto;
  padding-right:13px!important;
}
.portal-filter-control input::placeholder{color:#8798a9}
.portal-filter-control input:focus,
.portal-filter-control select:focus{
  border-color:var(--theme-accent,#0b5ca5)!important;
  box-shadow:0 0 0 4px rgba(11,92,165,.11)!important;
  background:#fff!important;
}
.portal-filter-advanced{
  margin-top:14px;
  padding-top:14px;
  border-top:1px dashed #d8e4ee;
}
.portal-filter-advanced[hidden]{display:none!important}
.portal-filter-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:40px;
  margin-top:14px;
  padding:0 14px;
  border:1px solid #c9d9e7;
  border-radius:12px;
  background:#f5f9fd;
  color:var(--theme-title,#0b3a78);
  cursor:pointer;
}
.portal-filter-toggle:hover{background:#eaf3fb}
.portal-filter-toggle b{font-size:18px;font-weight:400}
.portal-filter-active{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #e5edf4;
}
.portal-filter-active[hidden]{display:none!important}
.portal-filter-active>span{
  padding-top:7px;
  color:#5d7287!important;
  font-size:12px!important;
  white-space:nowrap;
}
.portal-filter-active>div{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.portal-filter-active button{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:31px;
  padding:0 10px;
  border:1px solid #bfd4e7;
  border-radius:999px;
  background:#eef6fd;
  color:#18476f;
  cursor:pointer;
  font-size:12px;
}
.portal-filter-active button span{color:#5f7488!important;font-size:12px!important}
.portal-filter-active button b{font-size:16px;font-weight:400;color:#9b2c2c}
@media(max-width:1050px){
  .portal-filter-professional .portal-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .portal-filter-professional{padding:16px!important}
  .portal-filter-search-row,
  .portal-filter-professional .portal-filter-grid{grid-template-columns:1fr}
  .portal-filter-professional .portal-filter-header{align-items:stretch}
  .portal-filter-header-actions{justify-content:flex-start}
  .portal-filter-professional .portal-record-count,
  .portal-filter-professional .portal-filter-clear{flex:1;justify-content:center}
  .portal-filter-active{flex-direction:column}
  .portal-filter-active>span{padding-top:0}
}


/* ===== Correção final: ícones sem sobreposição nos filtros públicos ===== */
.portal-filter-professional .portal-filter-control{
  position:relative!important;
  display:grid!important;
  grid-template-columns:44px minmax(0,1fr)!important;
  align-items:center!important;
  min-height:48px;
  overflow:hidden;
  border:1px solid #cbdbe8!important;
  border-radius:13px!important;
  background:#fff!important;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.portal-filter-professional .portal-filter-control:focus-within{
  border-color:var(--theme-accent,#0b5ca5)!important;
  box-shadow:0 0 0 4px rgba(11,92,165,.11)!important;
}
.portal-filter-professional .portal-filter-control>.portal-filter-icon{
  position:static!important;
  inset:auto!important;
  z-index:auto!important;
  width:44px!important;
  height:100%!important;
  min-height:46px!important;
  display:grid!important;
  place-items:center!important;
  color:var(--theme-accent,#0b5ca5)!important;
  border-right:1px solid #e3ebf3;
  background:#f7fbff;
  pointer-events:none;
}
.portal-filter-professional .portal-filter-icon svg{
  width:19px!important;
  height:19px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.9!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
.portal-filter-professional .portal-filter-control input,
.portal-filter-professional .portal-filter-control select{
  grid-column:2!important;
  width:100%!important;
  height:46px!important;
  min-width:0!important;
  margin:0!important;
  padding:0 38px 0 14px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#173a5d!important;
  line-height:normal!important;
}
.portal-filter-professional .portal-filter-control select{
  appearance:auto!important;
  padding-right:12px!important;
}
.portal-filter-professional .portal-filter-control input:focus,
.portal-filter-professional .portal-filter-control select:focus{
  outline:0!important;
  border:0!important;
  box-shadow:none!important;
}
.portal-filter-professional .portal-filter-control input[type="date"]{
  padding-right:12px!important;
}

/* ===== Paginação profissional dos cards públicos ===== */
.public-page .portal-card-grid,
.public-page .portal-card-grid.portal-card-grid-smart{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.public-page .portal-card-grid.portal-card-grid-smart .portal-public-card,
.public-page .portal-card-grid .portal-public-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:none!important;
}
.public-page .portal-card-grid.portal-card-grid-smart .portal-smart-cover-card .portal-cover-media{
  aspect-ratio:16/10!important;
  height:auto!important;
}
.public-page .portal-card-grid.portal-card-grid-smart .portal-smart-cover-card .portal-cover-media img{
  object-fit:cover!important;
}
.public-page .portal-licitacoes-list,
.public-page .esic-public-response-list{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:stretch!important;
}
.portal-pagination{
  margin:24px 0 8px;
  padding:16px 18px;
  border:1px solid #d6e3ef;
  border-radius:16px;
  background:#fff;
  box-shadow:0 10px 28px rgba(8,47,95,.06);
  display:grid;
  gap:14px;
}
.portal-pagination-top,
.portal-pagination-bottom,
.portal-page-numbers{
  display:flex;
  align-items:center;
}
.portal-pagination-top{
  justify-content:center;
  gap:12px;
  color:#375470;
}
.portal-pagination-top strong{
  color:var(--theme-title,#0b3a78);
}
.portal-pagination-bottom{
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
}
.portal-pagination-summary{
  color:#60768b;
  font-size:13px;
}
.portal-page-numbers{
  justify-content:flex-end;
  gap:7px;
  flex-wrap:wrap;
}
.portal-page-number,
.portal-page-arrow{
  min-width:40px!important;
  width:auto!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 12px!important;
  border:1px solid #c9daea!important;
  border-radius:10px!important;
  background:#f8fbff!important;
  color:var(--theme-title,#0b3a78)!important;
  cursor:pointer;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font:inherit;
}
.portal-page-number:hover,
.portal-page-arrow:hover:not(:disabled){
  border-color:var(--theme-accent,#0b5ca5)!important;
  background:#eef6ff!important;
}
.portal-page-number.is-active{
  background:var(--theme-accent,#0b5ca5)!important;
  border-color:var(--theme-accent,#0b5ca5)!important;
  color:#fff!important;
  box-shadow:0 8px 18px rgba(11,92,165,.22);
}
.portal-page-arrow:disabled{
  opacity:.42;
  cursor:not-allowed;
}
@media(max-width:1280px){
  .public-page .portal-card-grid,
  .public-page .portal-card-grid.portal-card-grid-smart,
  .public-page .portal-licitacoes-list,
  .public-page .esic-public-response-list{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media(max-width:920px){
  .public-page .portal-card-grid,
  .public-page .portal-card-grid.portal-card-grid-smart,
  .public-page .portal-licitacoes-list,
  .public-page .esic-public-response-list{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:620px){
  .public-page .portal-card-grid,
  .public-page .portal-card-grid.portal-card-grid-smart,
  .public-page .portal-licitacoes-list,
  .public-page .esic-public-response-list{
    grid-template-columns:1fr!important;
  }
  .portal-pagination-bottom{
    align-items:flex-start;
    flex-direction:column;
  }
  .portal-page-numbers{
    justify-content:flex-start;
  }
}
