﻿/* === Montserrat local === */
@font-face{
  font-family:"Montserrat";
  src:url("./fonts/montserrat/Montserrat-Regular_0.9c4609511838.ttf") format("truetype");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Montserrat";
  src:url("./fonts/montserrat/Montserrat-Bold_0.88932dadc42e.ttf") format("truetype");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Montserrat";
  src:url("./fonts/montserrat/montserrat-black_0.054ffd1ba6a6.ttf") format("truetype");
  font-weight:900; font-style:normal; font-display:swap;
}

/* ============================
   VARIÁVEIS GLOBAIS DO TEMA
   ============================ */
/* 
   --bg-main: fundo principal preto
   --primary: laranja para detalhes
   --primary-dark: laranja escuro para hover
   --bg-card: cinza escuro para cards e containers
   --color-text: branco quase puro
   --color-text-muted: cinza claro para textos secundários
   --border-dark: bordas discretas
   --shadow-card: sombra de card moderna
*/
:root {
    --bg-main: #141415;
    --bg-card: #1a1a1e;
    --color-text: #f5f6fa;
    --color-text-muted: #b5b6b8;
    --primary: #ff9000;
    --primary-dark: #ff7100;
    --border-dark: #232325;
    --shadow-card: 0 4px 32px 0 rgba(0,0,0,0.19);
    --bs-font-sans-serif: "Montserrat", system-ui, -apple-system, "Segoe UI",
                          Roboto, "Helvetica Neue", Arial, "Noto Sans",
                          "Liberation Sans", sans-serif;
}

/* ============================
   DESTAQUE PARA O "AI" DO PLANEJAI
   ============================ */
.planejai-ai {
    color: var(--primary) !important;
    font-weight: 900;
    letter-spacing: 0.5px;
}

/* ============================
   Layout base e altura mínima
   ============================ */
html, body {
    font-family: var(--bs-font-sans-serif);
    background: var(--bg-main) !important;
    color: var(--color-text) !important;
    height: 100%;
    margin: 0;
    padding: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
}
body { min-height: 100vh; }
.container { flex: 1 0 auto; }
main, footer, nav{
    transition: opacity .18s ease, transform .18s ease, filter .18s ease;
}
body.page-transition-out main,
body.page-transition-out footer,
body.page-transition-out nav{
    opacity: .94;
    transform: translateY(4px);
    filter: blur(.2px);
}

/* ============================
   Footer
   ============================ */
footer {
    flex-shrink: 0;
    background: var(--bg-card) !important;
    color: var(--color-text-muted) !important;
    padding: 1rem 0;
    font-size: 1rem;
    border-top: 2.5px solid var(--primary) !important;
    text-align: center;
    box-shadow: 0 -2px 16px 0 rgba(0,0,0,0.12);
}
.footer-laranja { color: var(--primary) !important; font-weight: 600; }

/* ============================
   Animação de fade-in (scroll)
   ============================ */
.animate-fade { opacity: 0; transform: translateY(40px); transition: all 0.8s cubic-bezier(.4,0,.2,1); }
.animate-fade.show-fade { opacity: 1; transform: none; }

/* ============================
   Navbar institucional PlanejAI
   ============================ */
.navbar-saasje {
    background: var(--bg-card) !important;
    border-bottom: 2px solid var(--primary);
    box-shadow: var(--shadow-card);
}
.navbar-brand {
    color: var(--color-text) !important;
    font-weight: 700;
    letter-spacing: -1px;
    font-size: 1.92rem;
}
.navbar-nav .nav-item { white-space: nowrap; margin: 0 .5rem; }
.navbar-collapse{ min-width:0; }
.navbar-nav.ms-auto{
  flex-wrap:wrap;
  justify-content:flex-end;
  row-gap:.15rem;
}
.admin-nav-shell{
  width:min(100%, 1760px);
  margin:0 auto;
  padding:0 1rem;
}
.admin-main-shell{
  width:min(100%, 1760px);
  margin:3rem auto;
  padding:0 1rem;
  box-sizing:border-box;
}
.navbar-nav .nav-link {
    font-weight: 500; color: var(--color-text-muted) !important;
    transition: color .17s; font-size: 1.18rem; margin: 0 .7rem;
}
.navbar-nav .nav-link.active,
.navbar-nav .nav-link:focus,
.navbar-nav .nav-link:hover {
    color: var(--primary) !important;
    text-shadow: 0 2px 16px rgba(255,144,0,0.14);
}
@media (max-width: 991.98px) {
  .navbar-brand { font-size: 1.23rem; }
  .navbar-nav .nav-link { font-size: 1.05rem; margin: 0 .2rem; }
}

/* ============================
   Estilização Contato (index.html)
   ============================ */
.contact-card{ background:var(--bg-card); border:1px solid var(--border-dark); border-left:4px solid var(--primary); border-radius:18px; box-shadow:var(--shadow-card);}
.contact-card .card-body{ padding:2rem 2.25rem; }
.contact-card h5{ color:var(--primary); font-weight:800; letter-spacing:-.2px; margin-bottom:.5rem; }
.contact-card p{ color:var(--color-text-muted); font-size:1.03rem; line-height:1.7; margin-bottom:.75rem; }
.contact-bullets{ margin:.5rem 0 0; padding-left:0; list-style:none; color:var(--color-text-muted); font-size:1.02rem; line-height:1.65; }
.contact-bullets li{ position:relative; padding-left:1.05rem; margin-bottom:.35rem; }
.contact-bullets li::before{ content:""; position:absolute; left:0; top:.62rem; width:.45rem; height:.45rem; border-radius:50%; background:var(--primary); box-shadow:0 0 0 2px rgba(255,144,0,.12); }
@media (min-width: 992px){ .contact-split{ border-left:1px solid var(--border-dark); padding-left:2rem; } }
.contact-actions .btn{ display:inline-flex; align-items:center; justify-content:center; gap:.45rem; height:46px; border-radius:12px; padding:0 1rem; font-weight:700; letter-spacing:.1px; transition: transform .12s ease, box-shadow .18s ease, background .18s ease, color .18s ease, border-color .18s ease; }
.contact-actions .btn:focus-visible{ outline:2px solid var(--primary); outline-offset:2px; }
.contact-whatsapp{ background:#25D366; color:#fff; border:1px solid rgba(37,211,102,.35); box-shadow:0 2px 16px rgba(37,211,102,.22); }
.contact-whatsapp:hover{ transform: translateY(-2px); box-shadow:0 6px 22px rgba(37,211,102,.28); }
.contact-mail{ background:transparent; color:var(--primary); border:2px solid var(--primary); }
.contact-mail:hover{ background:var(--primary); color:#111; border-color:var(--primary-dark); transform: translateY(-2px); }
@media (max-width: 991.98px){
  .contact-card .card-body{ padding:1.5rem; }
  .contact-split{ border-left:0; border-top:1px solid var(--border-dark); padding-left:0; padding-top:1rem; margin-top:.5rem; }
  .contact-actions .btn{ width:100%; }
}

/* ============================
   Cards institucionais e afins
   ============================ */
.card-body.card-text-big { font-size: 1.15rem; }
.step-text-big { font-size: 1.12rem; }

.card, .step-card {
    border-radius: 1.1rem; background: var(--bg-card) !important; color: var(--color-text) !important;
    box-shadow: var(--shadow-card); border: 1.5px solid var(--border-dark);
    transition: transform .22s cubic-bezier(.39,.58,.57,1), box-shadow .22s, border-color .18s;
}
.card:hover, .card:focus-within, .step-card:hover, .step-card:focus-within {
    border-color: var(--primary); transform: scale(1.055) translateY(-4px);
    box-shadow: 0 8px 36px 0 rgba(0,0,0,0.22); z-index: 2;
}
.card-title, h5 { color: var(--primary) !important; }

.step-card { position:relative; background:var(--bg-card)!important; border-radius:16px; box-shadow:var(--shadow-card); border:1px solid var(--border-dark); min-width:235px; max-width:320px; }
.step-card:hover, .step-card:focus-within { border-color:var(--primary); }
.step-number { display:inline-block; font-size:2.3rem; font-weight:800; color:#fff; background:var(--primary); border-radius:50%; width:54px; height:54px; line-height:54px; text-align:center; box-shadow:0 2px 10px 0 rgba(255,144,0,0.11); margin-bottom:8px; margin-right:10px; transition:background .22s, color .22s; }
.step-card:hover .step-number { background:var(--primary-dark); color:#fff !important; }
.step-card:focus-within .step-number { color:#fff !important; background:var(--primary-dark); }
@media (max-width: 900px){ .step-card{ max-width:100%; min-width:unset; } .step-number{ margin-bottom:10px; margin-right:0; } }

/* ============================
   Espaçamentos
   ============================ */
.mt-cards-diferenciais{ margin-top: 5.4rem !important; }
.hr-custom{ margin:5.2rem 0 !important; border-top:2px solid var(--primary); }
.mt-section-como-funciona{ margin-top:5.8rem !important; }
@media (max-width: 900px){
  .mt-cards-diferenciais{ margin-top:1.5rem !important; }
  .hr-custom, .mt-section-como-funciona{ margin-top:2.5rem !important; }
}

/* ============================
   Formulário institucional
   ============================ */
.card-cadastro-interesse{
  border-radius:22px; background:var(--bg-card)!important; box-shadow:0 8px 40px 0 rgba(0,0,0,0.17);
  padding:2.8rem 2.5rem 2rem; margin:3.8rem auto; max-width:860px; width:98vw;
}
.card-cadastro-interesse h2{ color:var(--primary)!important; font-size:2rem; font-weight:700; margin-bottom:.7rem; letter-spacing:-1px; }
.card-cadastro-interesse p{ color:var(--color-text-muted)!important; font-size:1.07rem; margin-bottom:1.6rem; }
.card-cadastro-interesse p b{ color:var(--primary)!important; }
.card-cadastro-interesse form label{ font-weight:500; color:var(--primary)!important; margin-bottom:2px; margin-left:1px; }
.card-cadastro-interesse input, .card-cadastro-interesse textarea{
  border-radius:11px; border:1.5px solid var(--primary); width:100%; display:block; background:#1d1e22; color:var(--color-text);
  padding:.7rem 1rem; font-size:1.08rem; margin-bottom:1.15rem; transition:border-color .19s, box-shadow .19s, background .17s; box-shadow:none;
}
.card-cadastro-interesse input:focus, .card-cadastro-interesse textarea:focus{
  border-color:var(--primary-dark); box-shadow:0 2px 10px 0 rgba(255,144,0,0.11);
  background:#222326; color:#fff; outline:none;
}
.card-cadastro-interesse textarea{ min-height:60px; resize:vertical; }
.card-cadastro-interesse .btn{
  background:linear-gradient(90deg, var(--primary) 60%, var(--primary-dark) 100%);
  color:#fff; font-size:1.12rem; font-weight:600; border-radius:10px; padding:.75rem 2.4rem; margin-top:10px;
  transition: background .2s, box-shadow .2s; box-shadow:0 2px 18px 0 rgba(255,144,0,0.11); border:none;
}
.card-cadastro-interesse .btn:hover, .card-cadastro-interesse .btn:focus{
  background:linear-gradient(90deg, var(--primary-dark) 40%, #ffb347 100%); color:#fff; box-shadow:0 4px 24px 0 rgba(255,144,0,0.18);
}
@media (max-width: 600px){
  .card-cadastro-interesse{ padding:1.4rem .4rem; margin:1.5rem auto; max-width:99vw; }
}

/* ============================
   Mensagem de Sucesso
   ============================ */
.alert-success-custom{ background:var(--bg-card); color:var(--color-text); border:2px solid var(--primary); border-left-width:6px; padding:1.8rem 2rem; border-radius:.8rem; box-shadow:var(--shadow-card); max-width:700px; margin:3rem auto; text-align:center; }
.alert-success-custom h2{ color:var(--primary); font-size:1.8rem; margin-bottom:.6rem; }
.alert-success-custom p{ color:var(--color-text-muted); font-size:1.05rem; margin-bottom:1.4rem; }
.alert-success-custom .btn-success-custom{ background:linear-gradient(90deg, var(--primary) 70%, var(--primary-dark) 100%); color:#fff; padding:.6rem 1.8rem; border:none; border-radius:.6rem; font-weight:600; text-decoration:none; transition: box-shadow .2s, transform .2s; }
.alert-success-custom .btn-success-custom:hover{ box-shadow:0 4px 20px rgba(255,144,0,0.2); transform: translateY(-2px); }

/* ============================
   Diagnóstico - Cultura
   ============================ */
.diagnostico-bloco{
  background:var(--bg-card)!important; border:1.8px solid var(--primary); border-radius:15px; padding:2rem 2.1rem 1.8rem; margin:.4rem 0 1.35rem; box-shadow:0 2px 20px 0 rgba(0,0,0,0.11);
  font-size:1.21rem; min-height:330px; color:#f7f7fb !important;
}
.diagnostico-bloco, .diagnostico-bloco p, .diagnostico-bloco ul, .diagnostico-bloco li { color:#f7f7fb !important; }
.diagnostico-bloco ul{ list-style:none; padding-left:0; margin-bottom:0; }
.toggle-list-item{ display:flex; align-items:center; gap:1.1rem; margin-bottom:1.13rem; }
/* Switch */
.switch{ position:relative; display:inline-block; width:52px; height:29px; margin-right:12px; vertical-align:middle; }
.switch input[type="checkbox"]{ opacity:0; width:0; height:0; }
.slider{ position:absolute; cursor:pointer; top:0; left:0; right:0; bottom:0; background:#cfd8dc; border-radius:18px; transition:.3s; box-shadow:0 1px 6px 0 rgba(255,144,0,0.06); }
.slider:before{ position:absolute; content:""; height:22px; width:22px; left:4px; bottom:3.5px; background:#fff; border-radius:50%; transition:.3s; box-shadow:0 2px 12px rgba(255,144,0,0.09); }
.switch input:checked + .slider{ background:linear-gradient(90deg, var(--primary) 45%, var(--primary-dark) 100%); }
.switch input:checked + .slider:before{ transform: translateX(22px); background:#fff; }
.slider:active:before{ width:27px; }
.toggle-label{ font-weight:600; color:var(--primary)!important; font-size:1.19rem; letter-spacing:-0.2px; margin-bottom:0; user-select:text; }
.diagnostico-bloco-title{ font-weight:700; color:var(--primary)!important; font-size:1.33rem; margin-bottom:.75rem; letter-spacing:-.5px; }
.diagnostico-desc{ font-size:1.58rem; }
@media (max-width: 900px){
  .diagnostico-bloco{ padding:1.1rem .5rem .9rem; font-size:1.07rem; min-height:210px; }
  .toggle-label{ font-size:1.07rem; } .diagnostico-bloco-title{ font-size:1.07rem; } .diagnostico-desc{ font-size:.99rem; }
}

/* ============================
   Links
   ============================ */
a, a:visited { color: var(--primary); text-decoration: none; transition: color .19s; }
a:hover, a:focus { color: var(--primary-dark); text-decoration: underline; }

/* ============================
   Responsividade geral
   ============================ */
@media (max-width: 991.98px){
  .navbar-brand{ font-size:1.23rem; }
  .navbar-nav .nav-link{ font-size:1.05rem; margin:0 .2rem; }
}
@media (max-width: 900px){
  .step-card{ max-width:100%; min-width:unset; }
  .step-number{ margin-bottom:10px; margin-right:0; }
  .mt-cards-diferenciais{ margin-top:1.5rem !important; }
  .hr-custom, .mt-section-como-funciona{ margin-top:2.5rem !important; }
  .diagnostico-bloco{ padding:1.1rem .5rem .9rem; font-size:1.07rem; min-height:210px; }
  .toggle-label{ font-size:1.07rem; } .diagnostico-bloco-title{ font-size:1.07rem; } .diagnostico-desc{ font-size:.99rem; }
}
@media (max-width: 600px){
  .card-cadastro-interesse{ padding:1.4rem .4rem; margin:1.5rem auto; max-width:99vw; }
}

/* ============================
   Seleção de texto
   ============================ */
::selection{ background: rgba(255,144,0,.3); color:#fff; }
::-moz-selection{ background: rgba(255,144,0,.3); color:#fff; }

/* ============================
   Placeholders
   ============================ */
input::placeholder, textarea::placeholder { color:#fafafa !important; opacity:1 !important; font-weight:400; letter-spacing:.03rem; }
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder{ color:#fafafa !important; opacity:1 !important; }
input::-moz-placeholder, textarea::-moz-placeholder{ color:#fafafa !important; opacity:1 !important; }
input:-ms-input-placeholder, textarea:-ms-input-placeholder{ color:#fafafa !important; opacity:1 !important; }
input::-ms-input-placeholder, textarea::-ms-input-placeholder{ color:#fafafa !important; opacity:1 !important; }

/* ============================
   PAINEL ADMIN – tabela
   ============================ */
.painel-admin-container{ margin-top:4.5rem; margin-bottom:2.5rem; background:var(--bg-card); border-radius:22px; box-shadow:var(--shadow-card); padding:2.7rem 2rem 2.1rem; border:1.5px solid var(--border-dark); max-width:100%; }
.painel-admin-title{ color:var(--primary); font-size:2.1rem; font-weight:800; letter-spacing:-1px; margin-bottom:2.3rem !important; }
.painel-search-wrapper{ max-width:520px; margin:0 auto 1.4rem; position:relative; }
.painel-search-icon{ position:absolute; left:18px; top:50%; transform:translateY(-50%); pointer-events:none; opacity:.82; }
.painel-filtro-input-custom{ background:#232325!important; color:#f5f6fa!important; border:2px solid #232325; border-radius:14px; padding-left:2.5rem; width:100%; font-size:1.18rem; height:2.8rem; box-shadow:0 2px 20px 0 rgba(0,0,0,0.10); transition:border .18s, box-shadow .19s; outline:none; }
.painel-filtro-input-custom:focus{ border-color:#ff9000; box-shadow:0 4px 22px 0 rgba(255,144,0,0.07); }
.painel-filtro-input-custom::placeholder{ color:#b5b6b8 !important; opacity:1; font-weight:400; font-size:1.1rem; }
#nenhum-municipio-msg{ display:none; color:#ff9000; text-align:center; font-weight:600; font-size:1.17rem; margin:1.6rem 0; }
.painel-admin-table-wrapper{ border-radius:16px; overflow-x:auto; background:transparent; }
.painel-admin-table{ background:var(--bg-main); color:var(--color-text); border-radius:12px; overflow:hidden; margin-bottom:0; box-shadow:none; border-collapse:separate; border-spacing:0; }
.painel-admin-table th, .painel-admin-table td{
  background:var(--bg-card); color:var(--color-text); border:none; border-bottom:1.7px solid var(--border-dark);
  vertical-align:middle; padding:.95rem 1.3rem; font-size:1.1rem;
}
.painel-admin-table th{ background:var(--bg-main); color:var(--primary); font-size:1.09rem; font-weight:700; letter-spacing:.2px; border-bottom:2.5px solid var(--primary); text-align:left; }
.painel-admin-table tr:last-child td{ border-bottom:none; }
.painel-admin-col-nome{ color:var(--primary); font-weight:800; font-size:1.08rem; }
.painel-badge{ background:linear-gradient(90deg, var(--primary) 55%, var(--primary-dark) 100%); color:#222; font-size:.98rem; font-weight:700; border-radius:8px; padding:.39rem 1.07rem; margin-bottom:.32rem; box-shadow:0 2px 8px 0 rgba(255,144,0,0.08); border:none; display:inline-block; cursor:pointer; }
.painel-admin-cargo{ color:var(--color-text-muted); font-size:.99rem; margin-left:.13rem; display:block; }
.hr-gestor{ border-top:1px solid var(--border-dark); margin:6px 0 4px; }
.painel-admin-sem-gestor{ color:#ff6868; font-weight:600; font-size:1.01rem; background:rgba(255,105,105,.14); padding:2.5px 9px; border-radius:7px; display:inline-block; }

@media (max-width:700px){
  .painel-admin-container{ padding:1.1rem .2rem; margin-top:2.1rem; }
  .painel-admin-title{ font-size:1.19rem; }
  .painel-admin-table th, .painel-admin-table td{ font-size:.96rem; padding:.75rem .3rem; }
  .painel-search-wrapper{ max-width:100%; }
  .painel-filtro-input-custom{ font-size:1rem; padding-left:2.1rem; }
}

/* ===== wide ===== */
.painel-admin-container.painel-admin-wide{
  width:min(100%, 1680px) !important;
  max-width:1680px !important;
  margin:4.5rem auto 2.5rem;
  padding:3rem clamp(1rem, 2vw, 2rem) 2rem;
  background:var(--bg-card); border-radius:28px; box-shadow:var(--shadow-card); border:1.5px solid var(--border-dark);
  overflow:visible !important; position:relative;
  box-sizing:border-box;
}
@media (min-width:2000px){ .painel-admin-container.painel-admin-wide{ max-width:1840px !important; } }
@media (max-width:1200px){ .painel-admin-container.painel-admin-wide{ width:100% !important; padding-left:1rem; padding-right:1rem; } }
@media (max-width:900px){ .painel-admin-container.painel-admin-wide{ border-radius:1rem; padding:.8rem .1rem; } }
@media (max-width:700px){
  .painel-admin-table-wrapper{ overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
  .painel-admin-table{ min-width:990px; font-size:.95rem; }
  .painel-admin-container.painel-admin-wide{ padding:.12rem .03rem; width:100% !important; max-width:100% !important; }
}
.painel-admin-table-wrapper{ border-radius:16px; background:transparent; overflow:visible !important; position:relative; }
.painel-admin-table{ width:100%; background:var(--bg-main); color:var(--color-text); border-radius:16px; border-collapse:separate; border-spacing:0; font-size:1.11rem; position:relative; }
.painel-admin-table th{
  background:var(--bg-main)!important; color:var(--primary); font-size:1.13rem; font-weight:800; border-bottom:2.5px solid var(--primary);
  text-transform:uppercase; letter-spacing:.05em; padding:1.05rem 1.25rem; white-space:nowrap; text-align:left; border-top:none;
}
.painel-admin-table td{
  background:var(--bg-card); color:var(--color-text); border-bottom:1.5px solid var(--border-dark); vertical-align:middle;
  padding:.95rem 1.25rem; white-space:nowrap; font-size:1.09rem; border-top:none; position:relative; overflow:visible;
}
.painel-admin-table th:nth-child(6), .painel-admin-table td:nth-child(6),
.painel-admin-table th:nth-child(8), .painel-admin-table td:nth-child(8),
.painel-admin-table th:nth-child(5), .painel-admin-table td:nth-child(5){
  white-space:normal; word-break:break-word; overflow:visible; max-width:310px; min-width:100px;
}
.painel-admin-table td:nth-child(6) a{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:inline-block; max-width:210px; vertical-align:middle; }
.painel-admin-table th:nth-child(10), .painel-admin-table td:nth-child(10){ min-width:200px; max-width:240px; }
.painel-admin-table tbody tr:nth-child(odd){ background:#18181b; }
.painel-admin-table tbody tr:nth-child(even){ background:var(--bg-card); }
.painel-admin-table tbody tr:hover{ background:#242427 !important; transition: background .18s; z-index:10; position:relative; }
.painel-admin-table tr:last-child td{ border-bottom:none; }
.painel-admin-col-nome{ color:var(--primary); font-weight:900; font-size:1.13rem; letter-spacing:.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.painel-admin-table td .d-flex{ gap:18px !important; flex-wrap:nowrap !important; }
.painel-btn, .painel-badge{ position:relative; z-index:10; transition: transform .18s cubic-bezier(.39,.58,.57,1), box-shadow .18s; margin:0 !important; }
.painel-btn, .painel-btn.btn, .painel-btn.btn-sm{
  background:linear-gradient(90deg, var(--primary) 60%, var(--primary-dark) 100%) !important; color:#fff !important; font-weight:700; font-size:1rem;
  border-radius:8px; padding:.36rem 1.09rem; border:none; min-width:92px; text-align:center; box-shadow:0 1px 8px 0 rgba(255,144,0,0.08); display:inline-block; outline:none;
}
.painel-btn:hover, .painel-btn:focus{ background:linear-gradient(90deg, var(--primary-dark) 60%, #ffb347 100%) !important; color:#fff !important; box-shadow:0 4px 14px 0 rgba(255,144,0,0.13); }
.painel-btn.btn-outline-danger{ background:none !important; color:var(--primary) !important; border:2px solid var(--primary); min-width:92px; }
.painel-btn.btn-outline-danger:hover, .painel-btn.btn-outline-danger:focus{ background:var(--primary-dark) !important; color:#fff !important; border-color:var(--primary-dark); }
.painel-badge{ background:linear-gradient(90deg, var(--primary) 55%, var(--primary-dark) 100%); color:#222; font-size:.96rem; font-weight:700; border-radius:7px; padding:.38rem .85rem; border:none; display:inline-block; box-shadow:0 1px 6px 0 rgba(255,144,0,0.07); letter-spacing:.01rem; vertical-align:middle; }
.painel-badge.aprovado{ background:linear-gradient(90deg, #18cc7a 55%, #24ae7b 100%); color:#fff; }
.painel-btn:hover, .painel-btn:focus, .painel-badge:hover, .painel-badge:focus{ transform: scale(1.08); z-index:99 !important; box-shadow:0 2px 20px 0 rgba(255,144,0,0.15); }
.admin-gestores-page .painel-admin-title{ margin-bottom:.35rem !important; }
.admin-gestores-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  padding:1.55rem 1.7rem;
  border:1px solid rgba(255,144,0,.16);
  border-radius:18px;
  background:
    radial-gradient(circle at top right, rgba(255,144,0,.14), transparent 33%),
    linear-gradient(135deg, rgba(255,255,255,.02), rgba(255,255,255,0)),
    #17171b;
  box-shadow:0 18px 40px rgba(0,0,0,.18);
  transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease, border-color .28s ease, background-position .45s ease;
  background-size:140% 140%, auto, auto;
}
.admin-gestores-hero:hover{
  transform:translateY(-3px);
  border-color:rgba(255,144,0,.28);
  box-shadow:0 22px 48px rgba(0,0,0,.24), 0 0 0 1px rgba(255,144,0,.08);
  background-position:100% 0, 0 0, 0 0;
}
.admin-gestores-eyebrow{
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:.18em;
  font-size:.78rem;
  font-weight:800;
}
.admin-gestores-subtitle{
  max-width:62ch;
  color:var(--color-text-muted);
  font-size:1rem;
  line-height:1.6;
}
.admin-gestores-metrics{
  display:grid;
  grid-template-columns:repeat(2, minmax(120px, 1fr));
  gap:.8rem;
  min-width:min(360px, 100%);
}
.admin-gestores-metric{
  padding:.95rem 1rem;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.03);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease;
}
.admin-gestores-metric--success{
  border-color:rgba(24,204,122,.24);
  background:rgba(24,204,122,.08);
}
.admin-gestores-metric:hover{
  transform:translateY(-2px);
  border-color:rgba(255,144,0,.24);
  background:rgba(255,255,255,.05);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
}
.admin-gestores-metric--success:hover{
  border-color:rgba(24,204,122,.36);
  background:rgba(24,204,122,.12);
}
.metric-label{
  display:block;
  color:var(--color-text-muted);
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:.35rem;
}
.metric-value{
  display:block;
  color:#fff;
  font-size:1.45rem;
  font-weight:900;
  transition:transform .22s ease, letter-spacing .22s ease;
}
.admin-gestores-metric:hover .metric-value{
  transform:translateY(-1px);
  letter-spacing:.015em;
}
.admin-gestor-identity,
.admin-gestor-municipio{
  display:flex;
  flex-direction:column;
  gap:.15rem;
}
.admin-gestor-name{
  color:#fff;
  font-weight:800;
  font-size:1.03rem;
  transition:color .22s ease, transform .22s ease, letter-spacing .22s ease;
}
.admin-gestor-email{
  max-width:260px;
  word-break:break-word;
}
.admin-gestor-meta{
  color:var(--color-text-muted);
  font-size:.77rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  transition:color .22s ease, transform .22s ease;
}
.admin-onboarding-status{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.45rem;
}
.admin-onboarding-badge{
  min-width:140px;
  text-align:center;
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.admin-onboarding-badge--link_enviado{
  color:#fff;
  background:linear-gradient(90deg, #4f7cff 0%, #79a7ff 100%);
  box-shadow:0 0 0 rgba(79,124,255,0);
}
.admin-onboarding-badge--senha_definida{
  color:#fff;
  background:linear-gradient(90deg, #5c7c2f 0%, #8cbf42 100%);
  box-shadow:0 0 0 rgba(140,191,66,0);
}
.admin-onboarding-badge--acesso_liberado{
  color:#17171b;
  background:linear-gradient(90deg, #ffd166 0%, #ffb347 100%);
  box-shadow:0 0 0 rgba(255,177,71,0);
}
.admin-onboarding-badge--primeiro_login_concluido{
  box-shadow:0 0 0 rgba(24,204,122,0);
}
.admin-onboarding-badge:hover{
  transform:translateY(-1px);
  filter:saturate(1.08);
}
.admin-onboarding-badge--link_enviado:hover{
  box-shadow:0 10px 24px rgba(79,124,255,.24);
}
.admin-onboarding-badge--senha_definida:hover{
  box-shadow:0 10px 24px rgba(140,191,66,.22);
}
.admin-onboarding-badge--acesso_liberado:hover{
  box-shadow:0 10px 24px rgba(255,177,71,.24);
}
.admin-onboarding-badge--primeiro_login_concluido:hover{
  box-shadow:0 10px 24px rgba(24,204,122,.22);
}
.admin-onboarding-meta{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  color:var(--color-text-muted);
  font-size:.82rem;
  line-height:1.35;
  transition:color .22s ease, transform .22s ease;
}
.admin-gestor-list{
  display:grid;
  gap:1rem;
}
.admin-gestor-card{
  display:grid;
  gap:1rem;
  padding:1.25rem 1.35rem;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)), #19191d;
  box-shadow:0 12px 28px rgba(0,0,0,.14);
  position:relative;
  overflow:hidden;
  transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease, border-color .28s ease, background .28s ease;
}
.admin-gestor-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(110deg, transparent 35%, rgba(255,255,255,.05) 50%, transparent 65%);
  transform:translateX(-120%);
  transition:transform .6s ease;
  pointer-events:none;
}
.admin-gestor-card:hover{
  transform:translateY(-4px);
  border-color:rgba(255,144,0,.22);
  box-shadow:0 18px 38px rgba(0,0,0,.22), 0 0 0 1px rgba(255,144,0,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0)), #1c1c21;
}
.admin-gestor-card:hover::after{
  transform:translateX(120%);
}
.admin-gestor-card:hover .admin-gestor-name{
  transform:translateX(2px);
  letter-spacing:.015em;
}
.admin-gestor-card:hover .admin-gestor-meta,
.admin-gestor-card:hover .admin-gestor-field__label{
  color:#d8dade;
}
.admin-gestor-card:hover .admin-gestor-field__value{
  color:#fbfbfc;
  transform:translateX(2px);
}
.admin-gestor-card:hover .admin-onboarding-meta{
  color:#f0f2f5;
  transform:translateX(2px);
}
.admin-gestor-card:hover .admin-onboarding-status--card{
  border-color:rgba(255,144,0,.16);
  background:rgba(255,255,255,.04);
}
.admin-gestor-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.admin-gestor-inline-badges{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.6rem;
  flex-wrap:wrap;
}
.admin-gestor-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:.9rem;
}
.admin-gestor-field{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  min-width:0;
}
.admin-gestor-field__label{
  color:var(--color-text-muted);
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-gestor-field__value{
  color:#f3f3f5;
  font-size:1rem;
  line-height:1.45;
  word-break:break-word;
  transition:color .22s ease, transform .22s ease;
}
.admin-onboarding-status--card{
  gap:.5rem;
  padding:.95rem 1rem;
  border-radius:14px;
  background:rgba(255,255,255,.025);
  border:1px solid rgba(255,255,255,.05);
}
.admin-gestor-active-badge{
  color:#17171b;
  background:linear-gradient(90deg, #ffc14d 0%, #ff9a1f 100%);
}
.admin-gestor-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.65rem;
  flex-wrap:wrap;
}
.admin-gestor-action{
  min-width:150px;
  justify-content:center;
  border-radius:12px !important;
  text-align:center;
  font-weight:800 !important;
  padding:.7rem .9rem !important;
}
.admin-gestor-action--primary{
  background:linear-gradient(90deg, #ff9a1f 0%, #ff7b0d 100%) !important;
  color:#fff !important;
  border:none !important;
}
.admin-gestor-action--secondary{
  background:rgba(255,255,255,.04) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.12) !important;
}
.admin-gestor-action--danger{
  background:transparent !important;
  color:#ffb347 !important;
  border:1px solid rgba(255,144,0,.65) !important;
}
.admin-gestor-action--danger:hover,
.admin-gestor-action--danger:focus{
  background:rgba(255,144,0,.12) !important;
  color:#fff !important;
}
.admin-shell{
  display:grid;
  gap:1.25rem;
}
.admin-shell-hero{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.25rem;
  padding:1.45rem 1.55rem;
  border:1px solid rgba(255,144,0,.14);
  border-radius:18px;
  background:
    radial-gradient(circle at top right, rgba(255,144,0,.14), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.025), rgba(255,255,255,0)),
    #17171b;
  box-shadow:0 16px 36px rgba(0,0,0,.16);
  transition:transform .28s cubic-bezier(.22,.61,.36,1), box-shadow .28s ease, border-color .28s ease;
}
.admin-shell-hero:hover{
  transform:translateY(-3px);
  border-color:rgba(255,144,0,.24);
  box-shadow:0 22px 44px rgba(0,0,0,.2);
}
.admin-shell-eyebrow{
  color:var(--primary);
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.77rem;
  font-weight:800;
}
.admin-shell-subtitle{
  max-width:68ch;
  color:var(--color-text-muted);
  line-height:1.65;
  margin:0;
}
.admin-shell-surface{
  padding:1.1rem;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.05);
  background:rgba(255,255,255,.02);
  transition:border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.admin-shell-surface:focus-within{
  border-color:rgba(255,144,0,.18);
  box-shadow:0 14px 30px rgba(0,0,0,.12);
}
.admin-record-list{
  display:grid;
  gap:1rem;
}
.admin-record-card{
  display:grid;
  gap:1rem;
  padding:1.2rem 1.3rem;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)), #19191d;
  box-shadow:0 12px 28px rgba(0,0,0,.14);
  position:relative;
  overflow:hidden;
  transition:transform .26s cubic-bezier(.22,.61,.36,1), box-shadow .26s ease, border-color .26s ease, background .26s ease;
}
.admin-record-card::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at top right, rgba(255,144,0,.08), transparent 35%);
  opacity:0;
  transition:opacity .26s ease;
  pointer-events:none;
}
.admin-record-card:hover{
  transform:translateY(-3px);
  border-color:rgba(255,144,0,.2);
  box-shadow:0 18px 36px rgba(0,0,0,.2);
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,0)), #1c1c21;
}
.admin-record-card:hover::after{
  opacity:1;
}
.admin-record-card:hover .admin-record-title{
  transform:translateX(2px);
  letter-spacing:.012em;
}
.admin-record-card:hover .admin-record-subtitle,
.admin-record-card:hover .admin-record-label{
  color:#d8dade;
}
.admin-record-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}
.admin-record-title{
  color:#fff;
  font-size:1.08rem;
  font-weight:900;
  line-height:1.2;
  transition:color .22s ease, transform .22s ease, letter-spacing .22s ease;
}
.admin-record-subtitle{
  color:var(--color-text-muted);
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  transition:color .22s ease, transform .22s ease;
}
.admin-record-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:.9rem;
}
.admin-record-field{
  display:flex;
  flex-direction:column;
  gap:.2rem;
  min-width:0;
}
.admin-record-label{
  color:var(--color-text-muted);
  font-size:.75rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.admin-record-value{
  color:#f2f2f5;
  line-height:1.45;
  word-break:break-word;
  transition:color .22s ease, transform .22s ease;
}
.admin-record-card:hover .admin-record-value{
  color:#fbfbfc;
  transform:translateX(2px);
}
.admin-record-stack{
  display:flex;
  flex-direction:column;
  gap:.45rem;
}
.admin-record-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  align-items:center;
  justify-content:flex-end;
}
.admin-action{
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-width:148px;
  padding:.72rem .9rem !important;
  border-radius:12px !important;
  font-weight:800 !important;
  text-align:center;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
}
.admin-action--primary{
  background:linear-gradient(90deg, #ff9a1f 0%, #ff7b0d 100%) !important;
  color:#fff !important;
  border:none !important;
}
.admin-action--secondary{
  background:rgba(255,255,255,.04) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.12) !important;
}
.admin-action--ghost{
  background:transparent !important;
  color:var(--primary) !important;
  border:1px solid rgba(255,144,0,.55) !important;
}
.admin-action--ghost:hover,
.admin-action--ghost:focus{
  background:rgba(255,144,0,.12) !important;
  color:#fff !important;
}
.admin-action:hover,
.admin-action:focus{
  transform:translateY(-2px);
  box-shadow:0 12px 24px rgba(0,0,0,.18);
}
.admin-action:active{
  transform:translateY(0);
  box-shadow:0 4px 10px rgba(0,0,0,.15);
}
.admin-form-shell{
  max-width:860px;
  margin:0 auto;
}
.admin-form-card{
  padding:1.5rem 1.6rem;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.06);
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)), #19191d;
  transition:border-color .24s ease, box-shadow .24s ease, transform .24s ease;
}
.admin-form-card:hover{
  border-color:rgba(255,144,0,.18);
  box-shadow:0 16px 32px rgba(0,0,0,.16);
}
.admin-form-section{
  margin-top:1.2rem;
  padding-top:1rem;
  border-top:1px solid rgba(255,144,0,.18);
}
.admin-form-section:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:none;
}
.admin-form-section-title{
  color:var(--primary);
  font-weight:800;
  margin-bottom:1rem;
}
.painel-search-wrapper{
  transition:transform .22s ease;
}
.painel-search-wrapper:focus-within{
  transform:translateY(-1px);
}
.painel-search-wrapper::after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:18px;
  background:radial-gradient(circle, rgba(255,144,0,.12), transparent 65%);
  opacity:0;
  transition:opacity .22s ease;
  pointer-events:none;
}
.painel-search-wrapper:focus-within .painel-filtro-input-custom{
  border-color:rgba(255,144,0,.34);
  box-shadow:0 0 0 4px rgba(255,144,0,.08), 0 16px 32px rgba(0,0,0,.16);
  background:#232327;
}
.painel-search-wrapper:focus-within::after{
  opacity:1;
}
.painel-search-wrapper:focus-within .painel-search-icon{
  filter:drop-shadow(0 0 6px rgba(255,144,0,.25));
  transform:translateY(-50%) scale(1.06);
}
@media (max-width: 1200px){
  .admin-gestores-hero{
    flex-direction:column;
  }
  .admin-gestores-metrics{
    width:100%;
    grid-template-columns:repeat(4, minmax(120px, 1fr));
  }
  .admin-gestor-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
  .admin-record-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 900px){
  .admin-gestores-metrics{
    grid-template-columns:repeat(2, minmax(120px, 1fr));
  }
  .admin-gestor-card__top{
    flex-direction:column;
  }
  .admin-gestor-inline-badges{
    justify-content:flex-start;
  }
  .admin-gestor-grid{
    grid-template-columns:1fr;
  }
  .admin-shell-hero{
    padding:1.1rem;
  }
  .admin-record-grid{
    grid-template-columns:1fr;
  }
  .admin-gestor-actions{
    justify-content:stretch;
  }
  .admin-gestor-action{
    width:100%;
    min-width:unset;
  }
  .admin-record-actions{
    justify-content:stretch;
  }
  .admin-action{
    width:100%;
    min-width:unset;
  }
}

@media (max-width:900px){
  .painel-admin-container.painel-admin-wide{ padding:.6rem .1rem; border-radius:.7rem; }
  .painel-admin-table th, .painel-admin-table td{ font-size:.98rem; padding:.36rem .35rem; }
}
@media (max-width:700px){
  .painel-admin-table-wrapper{ overflow-x:auto !important; -webkit-overflow-scrolling:touch; }
  .painel-admin-table{ min-width:980px; font-size:.94rem; }
  .painel-admin-container.painel-admin-wide{ padding:.08rem .05rem; width:100vw !important; max-width:100vw !important; }
}

/* Toggle variação */
.painel-admin-container .switch{ width:50px; height:26px; }
.painel-admin-container .slider{ background-color:#bbb; transition:.4s; border-radius:34px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.15); }
.painel-admin-container .slider:before{ height:20px; width:20px; left:3px; bottom:3px; transition:.4s; }
.painel-admin-container .switch input:checked + .slider{ background-color:#ff9900; }
.painel-admin-container .switch input:checked + .slider:before{ transform: translateX(24px); }

/* Badge pendente pulsante */
.painel-badge.pendente{
  background:linear-gradient(90deg, #ffae00 45%, #ff7300 100%);
  color:#fff; font-size:.94rem; font-weight:700; border-radius:8px; padding:.4rem 1.1rem; border:none; display:inline-block;
  box-shadow:0 0 0 rgba(255,144,0,.4); animation: pulseBadge 1.8s infinite;
}
@keyframes pulseBadge{
  0%{ box-shadow:0 0 0 0 rgba(255,144,0,.5); }
  70%{ box-shadow:0 0 0 12px rgba(255,144,0,0); }
  100%{ box-shadow:0 0 0 0 rgba(255,144,0,0); }
}

/* ============================
   Documentos – Gestor
   ============================ */
.docs-wrapper{
  background:var(--bg-card);
  border:1.5px solid var(--border-dark);
  border-radius:22px;
  box-shadow:var(--shadow-card);
  max-width:960px; width:98vw;
  margin:2.4rem auto; padding:2.1rem 1.8rem;
}
.docs-wrapper h1, .docs-wrapper h2{
  color:var(--primary)!important;
  font-weight:800; letter-spacing:-.5px; margin-bottom:.6rem;
}
.docs-subtitle{
  color:var(--color-text-muted)!important;
  font-size:1.02rem; margin-bottom:1.2rem;
}

/* bloco quando não há documentos cadastrados */
.docs-empty{
  background:#17171a;
  border:1.5px dashed var(--border-dark);
  border-radius:14px;
  padding:1rem 1.2rem;
  color:var(--color-text-muted);
}

/* lista de documentos */
.doc-item{
  display:flex; align-items:center; justify-content:space-between;
  background:#1b1b1f; border:1px solid var(--border-dark);
  border-radius:12px; padding:.85rem 1rem; margin-bottom:.8rem;
}
.doc-name{
  color:#fff; font-weight:600; letter-spacing:.1px; margin:0; padding-right:.75rem;
}
.doc-actions{ display:flex; align-items:center; gap:.6rem; }

/* status */
.doc-status{
  font-weight:700; padding:.28rem .7rem; border-radius:.6rem; font-size:.92rem;
  display:inline-block; line-height:1; white-space:nowrap;
}
.doc-status.pendente{ background:linear-gradient(90deg,#ffae00 45%,#ff7300 100%); color:#111; }
.doc-status.recebido{ background:linear-gradient(90deg,#27ae60 40%,#18cc7a 100%); color:#fff; }

/* upload */
.docs-upload input[type="file"]{ display:none; }
.docs-upload .upload-btn{
  background:linear-gradient(90deg, var(--primary) 60%, var(--primary-dark) 100%);
  color:#fff; font-weight:700; border:none; border-radius:.6rem;
  padding:.45rem .9rem; cursor:pointer; transition:transform .15s, box-shadow .18s, background .18s;
  box-shadow:0 2px 12px rgba(255,144,0,.13);
}
.docs-upload .upload-btn:hover{ transform:translateY(-1px); box-shadow:0 6px 18px rgba(255,144,0,.18); }
.docs-upload .upload-btn:focus{ outline:2px solid var(--primary); outline-offset:2px; }

/* responsivo */
@media (max-width:700px){
  .docs-wrapper{ padding:1.1rem .8rem; }
  .doc-item{ flex-direction:column; align-items:flex-start; gap:.7rem; }
  .doc-actions{ width:100%; justify-content:space-between; }
}
