/* bloco extraído 1 */
/* ===== Monitor ProJua — estilo do mapa funcional ===== */
:root{--blue:#073b88;--blue2:#0a55b7;--green:#127a43;--red:#ef3340;--ink:#10213d;--muted:#63718a;--line:#dfe7f2;--bg:#f3f6fb;--card:#fff;--soft:#eef4ff;--river:#2c9ddf;--shadow:0 12px 34px rgba(11,35,78,.10)}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink);background:linear-gradient(180deg,#fff 0,#edf3fb 320px)}
button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}

.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding:10px max(12px,env(safe-area-inset-left)) 10px max(12px,env(safe-area-inset-right));display:flex;gap:10px;align-items:center;justify-content:space-between}
.brand{display:flex;gap:10px;align-items:center;min-width:0}
.mark{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;display:grid;place-items:center;font-weight:950;flex:0 0 auto;box-shadow:0 10px 24px rgba(7,59,136,.2)}
.brand h1{font-size:1.08rem;line-height:1.05;margin:0;color:var(--blue);letter-spacing:-.035em}
.brand p{font-size:.70rem;margin:2px 0 0;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.top-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.btn{min-height:40px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--blue);padding:0 14px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.soft{background:#eef4ff;border-color:#d5e2f5}
.btn.small{min-height:34px;font-size:.84rem;padding:0 11px}

/* alternância sede / interior */
.switch{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}
.switch a{padding:0 14px;min-height:34px;display:inline-flex;align-items:center;font-weight:900;color:var(--blue);font-size:.84rem}
.switch a.active{background:var(--blue);color:#fff}

.layout{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:16px;max-width:1560px;margin:0 auto;padding:16px}
.map-card,.panel{background:#fff;border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);overflow:hidden}
.map-head{padding:14px;display:grid;gap:12px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fff,#f7fbff)}
.intro{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.intro h2{margin:0;color:var(--blue);font-size:1.35rem;letter-spacing:-.03em}
.intro p{margin:4px 0 0;color:var(--muted);font-weight:800;line-height:1.35;font-size:.88rem}
.source-pill{border:1px solid #d5e2f5;background:#eef4ff;color:var(--blue);border-radius:999px;padding:7px 10px;font-weight:950;font-size:.8rem;white-space:nowrap}
.search-row{display:grid;grid-template-columns:1fr auto;gap:8px}
.search{width:100%;min-height:46px;border:1px solid var(--line);border-radius:999px;padding:0 16px;outline:0;font-weight:780;background:#fff}
.search:focus{border-color:var(--blue2);box-shadow:0 0 0 4px rgba(10,85,183,.12)}
.filters{display:flex;gap:8px;flex-wrap:wrap}
select{min-height:38px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 12px;color:var(--ink);font-weight:850}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.stat{border:1px solid var(--line);border-radius:17px;padding:10px;background:#fff;text-align:center}
.stat strong{display:block;color:var(--blue);font-size:1.28rem;line-height:1}
.stat span{display:block;color:var(--muted);font-size:.72rem;font-weight:850;margin-top:4px}
.tabs{display:flex;gap:8px;padding:10px 14px 0;background:#fff;overflow:auto}
.tab{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:36px;padding:0 13px;font-weight:950;color:var(--blue);white-space:nowrap}
.tab.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.map-area{padding:14px;background:linear-gradient(135deg,#f8fbff,#edf4fc);min-height:560px;position:relative}
.view{display:none}.view.active{display:block}
.map-scroll{width:100%;border-radius:22px;border:1px solid #d9e4f2;background:#f8fbff;overflow:hidden}
#map{width:100%;height:70vh;min-height:460px;border-radius:22px;z-index:1}
.leaflet-container{background:#dce8f3;font:inherit}
.dist-tooltip{background:rgba(11,47,107,.92);color:#fff;border:0;border-radius:8px;font-weight:800;font-size:.78rem;padding:3px 8px;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.dist-tooltip:before{display:none}
.dist-badge{background:#0b2f6b;color:#fff;border-radius:999px;font-weight:900;font-size:.72rem;width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:2.5px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.dist-badge.zero{background:#aab4c4}
.map-stage{position:relative;line-height:0}

/* ===== SVG do mapa ===== */
.map-stage{position:relative;line-height:0}
.mapa-svg{width:100%;height:auto;display:block;touch-action:manipulation}
.zona{cursor:pointer;outline:none}
.zona-shape{transition:fill .15s,stroke .15s,filter .15s}
.zona:hover .zona-shape,.zona:focus .zona-shape{stroke:var(--red);stroke-width:3.5;filter:brightness(1.06)}
.zona.selected .zona-shape{stroke:var(--red);stroke-width:4.5;filter:saturate(1.25) brightness(1.04)}
.zona.sem-acao .zona-shape{opacity:.62}
.zona-badge{fill:var(--blue);stroke:#fff;stroke-width:2.5}
.zona-badge.badge-zero{fill:#aab4c4;opacity:.7}
.zona-badge-txt{fill:#fff;font:950 14px Inter,system-ui,sans-serif;pointer-events:none}
.dist-label{fill:#1c2c4a;font:950 22px Inter,system-ui,sans-serif;letter-spacing:.02em}
.bairro-label{fill:#28344e;font:850 15px Inter,system-ui,sans-serif}
.com-dot{fill:#1d2a44;stroke:#fff;stroke-width:2}
.zona.comunidade:hover .com-dot,.zona.comunidade:focus .com-dot{fill:var(--red)}
.com-label{fill:#5a3a12;font:850 17px Inter,system-ui,sans-serif}
.rio-label{fill:#fff;font:950 19px Inter,system-ui,sans-serif;letter-spacing:.12em}
.ext-label{fill:#7c8699;font:950 26px Inter,system-ui,sans-serif;letter-spacing:.06em}
.ext-sub{fill:#9aa3b2;font:850 14px Inter,system-ui,sans-serif;letter-spacing:.1em}
.ext-side{fill:#9aa3b2;font:850 15px Inter,system-ui,sans-serif;letter-spacing:.05em}
.sede-tag{fill:#fff;font:950 13px Inter,system-ui,sans-serif}
.sede-mark{cursor:pointer}
.sede-mark:hover circle:first-child{fill:#0a55b7}
.hide-labels .dist-label,.hide-labels .bairro-label,.hide-labels .com-label{display:none}

.map-tools{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:10px;flex-wrap:wrap}
.hint{font-size:.84rem;color:var(--muted);font-weight:850;line-height:1.35}
.legenda{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.legenda span{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:850;color:var(--muted)}
.lg-dot{width:14px;height:14px;border-radius:5px;border:2px solid #fff;box-shadow:0 0 0 1px #cdd8e8}

.list-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:8px;padding:4px}
.loc-chip{border:1px solid var(--line);border-radius:17px;background:#fff;padding:11px;text-align:left;font-weight:950;color:#10213d;cursor:pointer;min-height:64px;box-shadow:0 4px 12px rgba(11,35,78,.05)}
.loc-chip small{display:block;color:var(--muted);font-weight:850;margin-top:5px}
.loc-chip:hover{border-color:#8db5e8;background:#f8fbff}
.loc-chip.selected{border-color:var(--red);background:#fff4f4}

.panel{padding:14px;position:sticky;top:74px;max-height:calc(100vh - 90px);overflow:auto}
.panel-empty{border:1px dashed #bdcce0;background:#f8fbff;border-radius:20px;padding:18px;color:var(--muted);font-weight:850;line-height:1.35}
.sel-head{display:grid;gap:10px;margin-bottom:12px}
.sel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.sel-title h2{margin:0;color:var(--blue);font-size:1.55rem;line-height:1.05}
.sel-title span{color:var(--muted);font-size:.84rem;font-weight:850}
.big-num{font-size:2.05rem;font-weight:950;color:var(--blue);line-height:1}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mini{border:1px solid var(--line);border-radius:16px;text-align:center;padding:8px;background:#fff}
.mini strong{display:block;color:var(--blue);font-size:1.1rem}
.mini span{color:var(--muted);font-size:.72rem;font-weight:850}
.value-box{border:1px solid var(--line);border-radius:17px;background:#f8fbff;padding:11px;text-align:center;font-weight:950;color:var(--blue);font-size:1.15rem}
.value-box small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}
.unit-summary{border:1px solid #d5e2f5;border-radius:20px;background:linear-gradient(135deg,#f7fbff,#fff);padding:12px;margin:10px 0}
.unit-summary h3{margin:0 0 9px;color:var(--blue);font-size:1rem}
.unit-grid{display:grid;gap:8px}
.unit-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid var(--line);border-radius:15px;background:#fff;padding:9px}
.unit-row strong{font-size:.9rem;line-height:1.15}
.unit-row small{display:block;color:var(--muted);font-weight:850;margin-top:2px}
.unit-row .money{font-weight:950;color:var(--green);text-align:right;white-space:nowrap}
.unit-summary .status-block{border:1px solid rgba(15,23,42,.10);border-radius:18px;padding:12px;background:#fff;margin-top:10px}
.unit-summary .status-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}
.unit-summary .status-head strong{color:#0f3b7a}
.unit-summary .status-head span{font-weight:950;color:#15915b}
.cards{display:grid;gap:10px;margin-top:12px}
.item{border:1px solid var(--line);border-radius:18px;background:#fff;padding:12px;display:grid;gap:8px}
.item h3{font-size:.98rem;margin:0;color:#10213d;line-height:1.22}
.row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.meta{color:var(--muted);font-size:.8rem;font-weight:850}
.chip{display:inline-flex;width:max-content;max-width:100%;align-items:center;padding:5px 9px;border-radius:999px;background:#eef4ff;color:var(--blue);font-size:.73rem;font-weight:950}
.chip.obra{background:#ede5ff;color:#522a98}
.chip.programa{background:#e5f7ec;color:#175138}
.chip.projeto{background:#fff2cd;color:#6d4300}
.chip.manutencao{background:#e2f2ff;color:#075a96}
.status{background:#e3f6e9;color:#175138}
.toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%) translateY(20px);z-index:100;background:#10213d;color:#fff;border-radius:999px;padding:10px 14px;font-weight:850;opacity:0;transition:.18s;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.sheet-handle{display:none}

@media(max-width:980px){
  .top{align-items:flex-start;flex-direction:column;gap:8px}
  .brand h1{font-size:.98rem}
  .layout{display:block;padding:10px}
  .intro{display:block}
  .stats{grid-template-columns:repeat(2,1fr)}
  .map-area{min-height:auto;padding:8px 8px 90px}
  .list-grid{grid-template-columns:1fr 1fr}
  .panel{position:fixed;left:0;right:0;bottom:0;top:auto;z-index:60;max-height:74vh;border-radius:22px 22px 0 0;padding:10px 14px 16px;box-shadow:0 -14px 36px rgba(11,35,78,.22);transform:translateY(calc(100% - 78px));transition:.2s;overflow:auto}
  .panel.open{transform:translateY(0)}
  .sheet-handle{display:block;width:48px;height:5px;background:#c9d6e8;border-radius:999px;margin:0 auto 10px}
  .sel-title h2{font-size:1.25rem}
  .row{grid-template-columns:1fr}
  .unit-row{grid-template-columns:1fr}
  .unit-row .money{text-align:left}
  .source-pill{display:inline-flex;margin-top:8px}
}
@media(max-width:420px){
  .list-grid{grid-template-columns:1fr}
  .search-row{grid-template-columns:1fr}
  .mini-stats{grid-template-columns:1fr 1fr 1fr}
  .stat strong{font-size:1.05rem}
}

/* bloco extraído 2 */
/* Microanimações dos ícones — discretas, acionadas por interação */
@keyframes mpjIconPop{
  0%{transform:scale(1) rotate(0)}
  45%{transform:scale(1.16) rotate(-5deg)}
  75%{transform:scale(.97) rotate(2deg)}
  100%{transform:scale(1) rotate(0)}
}
@keyframes mpjIconFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-2px)}
}
@keyframes mpjIconTurn{
  0%{transform:rotate(0)}
  60%{transform:rotate(14deg)}
  100%{transform:rotate(0)}
}
@keyframes mpjIconPulse{
  0%,100%{transform:scale(1);filter:brightness(1)}
  50%{transform:scale(1.08);filter:brightness(1.08)}
}
@keyframes mpjIconDraw{
  from{stroke-dasharray:32;stroke-dashoffset:32}
  to{stroke-dasharray:32;stroke-dashoffset:0}
}

/* Menu lateral */
#mpjSidebar .nav-icon,
#mpjSidebar .nav-icon svg{
  transform-origin:center;
  will-change:transform;
}
#mpjSidebar .nav-icon svg{display:block;width:20px;height:20px}
#mpjSidebar .nav-btn:hover .nav-icon,
#mpjSidebar .nav-link:hover .nav-icon{
  animation:mpjIconPop .46s cubic-bezier(.2,.8,.2,1);
}
#mpjSidebar .nav-btn.active .nav-icon{
  animation:mpjIconFloat 2.2s ease-in-out infinite;
}
#mpjSidebar .nav-btn.active .nav-icon svg path,
#mpjSidebar .nav-btn.active .nav-icon svg circle,
#mpjSidebar .nav-btn.active .nav-icon svg rect{
  animation:mpjIconDraw .55s ease-out both;
}

/* Botões de ação, busca e controles */
.mpj-action-btn svg,
.mpj-clear-filters svg,
.mpj-mobile-menu svg,
.circle-btn svg,
.iconbtn svg,
.btn svg{
  transform-origin:center;
  will-change:transform;
}
.mpj-action-btn:hover svg,
.mpj-action-btn:focus-visible svg,
.mpj-mobile-menu:hover svg,
.circle-btn:hover svg,
.iconbtn:hover svg,
.btn:hover svg{
  animation:mpjIconPop .42s cubic-bezier(.2,.8,.2,1);
}
.mpj-clear-filters:hover svg,
.mpj-clear-filters:focus-visible svg{
  animation:mpjIconTurn .55s ease;
}

/* Cards-resumo e indicadores */
.mpj-stat-icon,
.mpj-mini-icon,
.mpj-update-icon,
.mpj-pending-icon{
  transform-origin:center;
  will-change:transform;
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;
}
.mpj-stat-card:hover .mpj-stat-icon{
  animation:mpjIconPop .5s cubic-bezier(.2,.85,.2,1);
  box-shadow:0 10px 24px rgba(13,92,232,.18);
}
.mpj-table tbody tr:hover .mpj-mini-icon,
.mpj-update-item:hover .mpj-update-icon,
.mpj-pending-item:hover .mpj-pending-icon{
  animation:mpjIconPop .42s cubic-bezier(.2,.85,.2,1);
}

/* Estado de sincronização */
#mpjTopbar .sync-inline .ok,
#mpjSidebar .sync-card .dot{
  animation:mpjIconPulse 2.4s ease-in-out infinite;
  transform-origin:center;
}

/* Contadores e botões rápidos */
.mpj-quick-btn b{
  transform-origin:center;
  transition:transform .18s ease,background .18s ease,color .18s ease;
}
.mpj-quick-btn:hover b,
.mpj-quick-btn:focus-visible b{
  animation:mpjIconPop .38s cubic-bezier(.2,.8,.2,1);
}
.mpj-quick-btn.active b{
  animation:mpjIconPulse 1.8s ease-in-out infinite;
}

/* Evita movimentos em excesso para quem prefere interface estática */
@media (prefers-reduced-motion:reduce){
  #mpjSidebar .nav-icon,
  #mpjSidebar .nav-icon svg,
  .mpj-action-btn svg,
  .mpj-clear-filters svg,
  .mpj-mobile-menu svg,
  .circle-btn svg,
  .iconbtn svg,
  .btn svg,
  .mpj-stat-icon,
  .mpj-mini-icon,
  .mpj-update-icon,
  .mpj-pending-icon,
  #mpjTopbar .sync-inline .ok,
  #mpjSidebar .sync-card .dot,
  .mpj-quick-btn b{
    animation:none!important;
    transition:none!important;
    transform:none!important;
  }
}

/* bloco extraído 3 */
body.mpj-auth-pending{visibility:hidden}html[data-mpj-authenticated="true"] body{visibility:visible}
