/* =====================================================================
   Eddie · estilos do app
   Cores em variáveis: tema claro (padrão) e escuro vinho.
   ===================================================================== */
:root {
  --vinho: #780303;
  --vinho-hover: #5A0202;
  --vinho-texto: #780303;
  --vinho-fundo: #F1E3E2;
  --ouro: #80591A;
  --ouro-fundo: #F4EAD6;
  --fundo: #EEE8E6;
  --painel: #F9F6F5;
  --texto: #2B2020;
  --texto-2: #685656;
  --linha: #DDD1CF;
  --sucesso: #2A7348;
  --erro: #A82117;
  --sombra: 0 12px 32px -16px rgba(90, 2, 2, .3);
  --serif: 'Source Serif 4', Georgia, serif;
  --sans: 'Public Sans', system-ui, sans-serif;
  --cab: 60px;
  --menu: 236px;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --vinho: #B32424; --vinho-hover: #C93A3A; --vinho-texto: #EE9C9C; --vinho-fundo: #4A2828;
    --ouro: #DDB66A; --ouro-fundo: #45351D;
    --fundo: #2B1E1E; --painel: #362727; --texto: #E8DCDC; --texto-2: #BBA6A6; --linha: #503838;
    --sucesso: #72C394; --erro: #FF9288; --sombra: 0 12px 32px -16px rgba(0,0,0,.6);
  }
}
:root[data-theme="dark"] {
  --vinho: #B32424; --vinho-hover: #C93A3A; --vinho-texto: #EE9C9C; --vinho-fundo: #4A2828;
  --ouro: #DDB66A; --ouro-fundo: #45351D;
  --fundo: #2B1E1E; --painel: #362727; --texto: #E8DCDC; --texto-2: #BBA6A6; --linha: #503838;
  --sucesso: #72C394; --erro: #FF9288; --sombra: 0 12px 32px -16px rgba(0,0,0,.6);
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--fundo); color: var(--texto); font: 400 16px/1.55 var(--sans); -webkit-font-smoothing: antialiased; transition: background-color .3s ease, color .3s ease; }
@media (prefers-reduced-motion: reduce) { body { transition: none; } }
h1, h2, h3 { font-family: var(--serif); font-weight: 600; line-height: 1.2; margin: 0; }
p { margin: 0; }
a { color: var(--vinho-texto); }
.ic { flex-shrink: 0; }
.texto-2 { color: var(--texto-2); }
.pequeno { font-size: 14px; }
:focus-visible { outline: 3px solid var(--ouro); outline-offset: 2px; border-radius: 6px; }
[hidden] { display: none !important; }

/* Botões */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 600 15px/1 var(--sans); padding: 13px 20px; border-radius: 10px; border: 1.5px solid transparent; cursor: pointer; text-decoration: none; }
.btn-primario { background: var(--vinho); color: #fff; }
.btn-primario:hover { background: var(--vinho-hover); }
.btn-secundario { background: transparent; color: var(--texto); border-color: var(--linha); }
.btn-secundario:hover { border-color: var(--vinho-texto); color: var(--vinho-texto); }
.btn[disabled] { opacity: .6; cursor: progress; }
.btn-icone { width: 40px; height: 40px; border-radius: 10px; border: 1px solid var(--linha); background: transparent; color: var(--texto); display: grid; place-items: center; cursor: pointer; }
.btn-icone:hover { border-color: var(--vinho-texto); color: var(--vinho-texto); }
.link { background: none; border: 0; padding: 0; color: var(--vinho-texto); font: 500 15px var(--sans); text-decoration: underline; cursor: pointer; }
.marca-selo { width: 34px; height: 34px; border-radius: 50%; background: #780303 url(../img/icones/marca-branca-128.png) center / 68% no-repeat; display: inline-block; flex-shrink: 0; }

/* Carregando */
.carregando-app { width: 40px; height: 40px; border-radius: 50%; border: 3px solid var(--linha); border-top-color: var(--vinho); animation: girar .8s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .carregando-app { animation-duration: 2.4s; } }

/* ---------------- Telas fora do app (login, aguardando) ---------------- */
.tela-centro { min-height: 100dvh; display: grid; place-items: center; padding: 24px 16px; position: relative; }
.tema-canto { position: absolute; top: 16px; right: 16px; }
.cartao-login { width: min(420px, 100%); background: var(--painel); border: 1px solid var(--linha); border-radius: 18px; padding: 32px 28px; box-shadow: var(--sombra); display: flex; flex-direction: column; gap: 16px; }
.cartao-login h1 { font-size: 28px; }
.marca-login { display: flex; align-items: center; gap: 10px; font: 700 18px/1 var(--serif); margin-bottom: 4px; }
.form-login { display: flex; flex-direction: column; gap: 8px; }
.form-login label { font-size: 14px; font-weight: 600; margin-top: 6px; }
.form-login label small { font-weight: 400; color: var(--texto-2); }
.form-login input { font: 400 16px var(--sans); padding: 12px 14px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); }
.form-login input:focus { outline: none; border-color: var(--vinho-texto); }
.form-login .btn { margin-top: 12px; padding: 15px; }
.form-erro { color: var(--erro); font-size: 14px; }
.botoes-login { display: flex; flex-direction: column; gap: 10px; }
.rodape-login { font-size: 14px; border-top: 1px solid var(--linha); padding-top: 16px; }
.status-espera { display: flex; gap: 8px; align-items: center; padding: 12px 14px; border-radius: 10px; background: var(--ouro-fundo); color: var(--ouro); font-size: 14px; font-weight: 500; }

/* ---------------- Estrutura do app ---------------- */
.cab { position: fixed; inset: 0 0 auto 0; height: var(--cab); z-index: 30; background: var(--painel); border-bottom: 1px solid var(--linha); display: flex; align-items: center; gap: 12px; padding: 0 16px; }
.marca { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--texto); min-width: 0; }
.marca-nome { font: 700 17px/1.2 var(--serif); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cab-dir { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.contagem { font-size: 14px; color: var(--texto-2); padding: 8px 12px; border-radius: 999px; background: var(--vinho-fundo); white-space: nowrap; }
.contagem strong { color: var(--vinho-texto); font-size: 15px; }
.usuario { position: relative; }
.avatar { width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--vinho); color: #fff; font: 700 14px var(--sans); cursor: pointer; }
.menu-usuario { position: absolute; right: 0; top: 48px; width: 240px; background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; box-shadow: var(--sombra); padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.menu-usuario .texto-2 { font-size: 14px; }
.item-sair { margin-top: 10px; display: flex; gap: 8px; align-items: center; background: none; border: 0; border-top: 1px solid var(--linha); padding: 12px 0 2px; color: var(--texto); font: 500 15px var(--sans); cursor: pointer; text-align: left; }
.item-sair:hover { color: var(--vinho-texto); }

.menu { position: fixed; top: var(--cab); bottom: 0; left: 0; width: var(--menu); background: var(--painel); border-right: 1px solid var(--linha); padding: 12px 10px; overflow-y: auto; z-index: 20; }
.item-menu { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px; color: var(--texto); text-decoration: none; font-weight: 500; font-size: 15px; }
.item-menu span:first-of-type { flex: 1; }
.item-menu:hover { background: var(--fundo); }
.item-menu.ativo { background: var(--vinho-fundo); color: var(--vinho-texto); font-weight: 600; }
.selo { display: inline-flex; align-items: center; font-size: 11px; font-weight: 600; border-radius: 6px; }
.selo-demo { color: var(--texto-2); }
.selo-teste { padding: 2px 6px; background: var(--ouro-fundo); color: var(--ouro); }
.menu-topo { display: flex; justify-content: space-between; align-items: center; padding: 4px 4px 14px 12px; }
.fundo-menu { position: fixed; inset: 0; background: rgba(30, 6, 6, .5); z-index: 25; }

.conteudo { margin-left: var(--menu); padding: calc(var(--cab) + 28px) 32px 48px; max-width: calc(1080px + var(--menu)); outline: none; }
.so-celular { display: none !important; }

@media (max-width: 900px) {
  .so-celular { display: grid !important; }
  .menu-topo.so-celular { display: flex !important; }
  .menu { top: 0; width: min(300px, 85vw); z-index: 40; transform: translateX(-105%); transition: transform .2s ease; box-shadow: var(--sombra); }
  .menu.aberto { transform: none; }
  .fundo-menu { z-index: 35; }
  .conteudo { margin-left: 0; padding: calc(var(--cab) + 20px) 16px 40px; }
  .contagem { display: none; }
  .marca-nome { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) { .menu { transition: none; } }

/* ---------------- Faixas de demonstração e teste ---------------- */
.faixa { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 12px; margin-bottom: 24px; font-size: 15px; }
.faixa .ic { margin-top: 2px; }
.faixa-demo { background: var(--vinho-fundo); color: var(--texto); border: 1px solid color-mix(in srgb, var(--vinho-texto) 30%, transparent); }
.faixa-demo .ic { color: var(--vinho-texto); }
.faixa-teste { background: var(--ouro-fundo); color: var(--texto); }
.faixa-teste .ic { color: var(--ouro); }
.modo-demo #tela input, .modo-demo #tela select, .modo-demo #tela textarea { pointer-events: none; opacity: .75; }

/* ---------------- Conteúdo das abas ---------------- */
.tela-cab { margin-bottom: 24px; }
.tela-cab h1 { font-size: clamp(26px, 3vw, 32px); }
.tela-cab p { margin-top: 4px; }
.secao-tela { margin-top: 32px; }
.secao-tela h2 { font-size: 21px; margin-bottom: 14px; }
.vazio { background: var(--painel); border: 1px dashed var(--linha); border-radius: 14px; padding: 32px 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.vazio .ic { color: var(--vinho-texto); margin-bottom: 4px; }
.vazio .btn { margin-top: 12px; }

/* Dashboard */
.dash-topo { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; }
.bloco-eleicao, .bloco-meu-plano { background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; padding: 22px 24px; }
.bloco-eleicao { display: flex; align-items: center; gap: 20px; border-left: 5px solid var(--vinho); }
.numero-grande { font: 700 clamp(48px, 7vw, 68px)/1 var(--serif); color: var(--vinho-texto); font-variant-numeric: tabular-nums; }
.bloco-eleicao strong { font-size: 17px; }
.bloco-meu-plano { display: flex; flex-direction: column; gap: 4px; }
.bloco-meu-plano strong { font: 600 22px/1.2 var(--serif); }
.bloco-meu-plano p { font-size: 14px; margin: 0; }
@media (max-width: 700px) { .dash-topo { grid-template-columns: 1fr; } }

/* Avisos */
#avisos { position: fixed; right: 16px; bottom: 16px; z-index: 50; display: flex; flex-direction: column; gap: 8px; max-width: min(380px, calc(100vw - 32px)); }
.aviso { padding: 13px 16px; border-radius: 10px; background: var(--texto); color: var(--painel); font-size: 15px; box-shadow: var(--sombra); transition: opacity .3s, transform .3s; }
.aviso-ok { background: var(--sucesso); color: #fff; }
.aviso-erro { background: var(--erro); color: #fff; }
.aviso.saindo { opacity: 0; transform: translateY(8px); }

/* ---------------- Formulários (padrão de todas as abas) ---------------- */
.painel { background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; padding: 22px 22px 24px; }
.painel h2 { font-size: 20px; margin-bottom: 16px; }
.form { display: flex; flex-direction: column; gap: 14px; }
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo label { font-size: 14px; font-weight: 600; }
.campo label small { font-weight: 400; color: var(--texto-2); }
.campo input, .campo textarea, .campo select { font: 400 16px/1.4 var(--sans); padding: 11px 13px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); width: 100%; }
.campo textarea { resize: vertical; min-height: 96px; }
.campo input:focus, .campo textarea:focus, .campo select:focus { outline: none; border-color: var(--vinho-texto); }
.campos-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dica { font-size: 13px; color: var(--texto-2); }
.dica.ok { color: var(--sucesso); }
.botoes-form { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 4px; }
.botoes-form.coluna { flex-direction: column; align-items: stretch; }
.btn-perigo { background: transparent; color: var(--erro); border-color: color-mix(in srgb, var(--erro) 40%, transparent); margin-left: auto; }
.btn-perigo:hover { background: color-mix(in srgb, var(--erro) 10%, transparent); }
@media (max-width: 480px) { .campos-2 { grid-template-columns: 1fr; } .btn-perigo { margin-left: 0; } }

.dialogo { border: 0; border-radius: 16px; padding: 24px; width: min(460px, calc(100% - 32px)); background: var(--painel); color: var(--texto); box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); }
.dialogo::backdrop { background: rgba(30, 6, 6, .55); }
.dialogo h2 { font-size: 22px; margin-bottom: 10px; }
.dialogo p { margin-bottom: 18px; }

/* ---------------- Atendimentos ---------------- */
.cab-com-acao { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.btn-ed { background: var(--painel); color: var(--vinho-texto); border-color: var(--vinho-texto); }
.btn-ed:hover { background: var(--vinho-fundo); }
.grade-atend { display: grid; grid-template-columns: minmax(320px, 420px) 1fr; gap: 24px; align-items: start; }
@media (max-width: 1000px) { .grade-atend { grid-template-columns: 1fr; } }
.lista-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.lista-cab h2 { font-size: 20px; }
.busca { display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto-2); flex: 1; max-width: 340px; min-width: 200px; }
.busca:focus-within { border-color: var(--vinho-texto); }
.busca input { border: 0; background: transparent; color: var(--texto); font: 400 15px var(--sans); padding: 10px 0; width: 100%; outline: none; }
.lista-atend { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.item-atend { background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.item-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.item-topo strong { font-size: 16px; }
.item-resumo { margin-top: 4px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.item-acoes { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 6px; }
.item-acoes .acoes { display: flex; gap: 6px; }
.item-acoes .btn-icone { width: 36px; height: 36px; }
.selo-ed { padding: 2px 6px; background: var(--vinho-fundo); color: var(--vinho-texto); margin-left: 4px; }
.vazio-lista { background: var(--painel); border: 1px dashed var(--linha); border-radius: 12px; padding: 20px; color: var(--texto-2); }
.btn-texto { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; padding: 6px 10px; border-radius: 8px; border: 1px dashed var(--linha); background: transparent; color: var(--vinho-texto); font: 600 14px var(--sans); cursor: pointer; }
.btn-texto:hover { border-style: solid; border-color: var(--vinho-texto); background: var(--vinho-fundo); }
.selo-demanda { align-self: flex-start; margin-top: 6px; gap: 6px; padding: 4px 8px; background: var(--ouro-fundo); color: var(--ouro); text-decoration: none; font-size: 13px; }

/* ---------------- Demandas ---------------- */
.filtros { display: flex; flex-wrap: wrap; gap: 10px; }
.filtros select { font: 400 15px var(--sans); padding: 10px 12px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); min-width: 170px; }
.filtros .busca { max-width: none; }
.lista-dem { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.item-dem { background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; padding: 14px 16px; display: flex; gap: 12px; align-items: flex-start; transition: border-color .15s, background .15s; }
.item-dem.marcada { border-color: var(--vinho-texto); background: var(--vinho-fundo); }
.item-dem .marcar { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--vinho); flex-shrink: 0; cursor: pointer; }
.item-dem-corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.selo-tema { padding: 3px 8px; background: var(--fundo); border: 1px solid var(--linha); color: var(--texto); font-size: 12px; }
.parada { color: var(--erro); font-weight: 600; }
.motivo { color: var(--texto-2); font-style: italic; margin-top: 4px; }
.grupo-ind { background: var(--fundo); border: 1px solid var(--linha); border-radius: 14px; padding: 16px; margin-top: 12px; }
.grupo-ind-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.encerradas summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 8px; }
.encerradas summary::-webkit-details-marker { display: none; }
.encerradas summary::after { content: "+"; font: 400 22px/1 var(--sans); color: var(--vinho-texto); }
.encerradas[open] summary::after { content: "−"; }
.encerradas summary h2 { margin: 0; }
.encerradas .lista-dem { margin-top: 14px; }
.btn-pequeno { padding: 8px 12px; font-size: 14px; }
.barra-selecao { position: fixed; left: calc(var(--menu) + 24px); right: 24px; bottom: 16px; z-index: 15; background: var(--painel); border: 1px solid var(--vinho-texto); border-radius: 14px; box-shadow: var(--sombra); padding: 12px 14px 12px 18px; display: flex; align-items: center; gap: 10px; }
.barra-selecao span { flex: 1; font-weight: 600; }
@media (max-width: 900px) { .barra-selecao { left: 12px; right: 12px; flex-wrap: wrap; } .barra-selecao span { flex-basis: 100%; } }
.dialogo-largo { width: min(640px, calc(100% - 32px)); max-height: calc(100dvh - 32px); }
.opcoes { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.opcoes legend { margin-bottom: 8px; padding: 0; }
.opcoes label { display: flex; gap: 10px; align-items: center; font-size: 15px; cursor: pointer; }
.opcoes input { accent-color: var(--vinho); width: 18px; height: 18px; }
@media (max-width: 480px) { .lista-dem { grid-template-columns: 1fr; } }
.item-dem .item-acoes { flex-wrap: wrap; }
.item-dem .item-acoes { justify-content: flex-end; margin-top: 2px; }
.item-dem .item-acoes .acoes { margin-left: auto; }
.item-quem { margin: 0; }
/* Há quantos dias a demanda foi criada: cores pelos prazos de Configurações */
.selo-dias { padding: 3px 8px; font-size: 12px; white-space: nowrap; border: 1px solid transparent; }
.dias-verde { background: color-mix(in srgb, var(--rel-verde) 16%, transparent); color: var(--rel-verde); }
.dias-amarelo { background: color-mix(in srgb, var(--rel-amarelo) 24%, transparent); color: color-mix(in srgb, var(--rel-amarelo) 55%, var(--texto)); }
.dias-vermelho { background: color-mix(in srgb, var(--rel-vermelho) 15%, transparent); color: var(--rel-vermelho); }
.dias-neutro { background: var(--fundo); border-color: var(--linha); color: var(--texto-2); }
.item-dem .item-topo { align-items: center; }
/* Filtro por data */
.filtros .busca-data { flex: 1 1 170px; max-width: 220px; min-width: 160px; cursor: pointer; position: relative; }
.busca-data input { cursor: pointer; min-width: 0; color-scheme: light dark; }
.busca-data input::-webkit-calendar-picker-indicator { display: none; } /* o ícone da esquerda já indica; o toque no campo abre o calendário */
.limpar-data { border: 0; background: transparent; color: var(--texto-2); padding: 4px; display: grid; place-items: center; cursor: pointer; border-radius: 6px; }
.limpar-data:hover { color: var(--texto); background: var(--fundo); }
.limpar-data[hidden] { display: none; }
@media (max-width: 600px) { .filtros .busca-data { max-width: none; } }
.item-dem .texto-2 { white-space: normal; }
.filtros select { flex: 1 1 170px; }
.filtros .busca { flex: 2 1 240px; }

/* ---------------- Indicações ---------------- */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.prefixo { font-size: 14px; color: var(--texto-2); background: var(--fundo); border-left: 3px solid var(--vinho-texto); padding: 8px 12px; border-radius: 0 8px 8px 0; font-family: var(--serif); }
.faixa-sessao { background: var(--painel); border: 1px solid var(--linha); color: var(--texto); }
.faixa-sessao .ic { color: var(--vinho-texto); }
.abas-filtro { display: flex; gap: 4px; margin-bottom: 12px; border-bottom: 1px solid var(--linha); }
.abas-filtro button { background: none; border: 0; border-bottom: 3px solid transparent; padding: 10px 14px; font: 600 15px var(--sans); color: var(--texto-2); cursor: pointer; margin-bottom: -1px; }
.abas-filtro button.ativa { color: var(--vinho-texto); border-bottom-color: var(--vinho); }
.contador { font: 600 13px var(--sans); color: var(--texto-2); background: var(--painel); border: 1px solid var(--linha); border-radius: 999px; padding: 2px 9px; vertical-align: middle; margin-left: 6px; }
.lista-ind { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.item-ind { background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.item-ind-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.numero-ind { font: 700 17px var(--serif); }
.numero-ind.sem { color: var(--texto-2); font-weight: 600; }
.ementa-ind { font-family: var(--serif); font-size: 16px; line-height: 1.45; }
.pessoas-ind:empty { display: none; }
.selo-sit { font-size: 13px; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--vinho-fundo); color: var(--vinho-texto); }
.sit-neutro { background: var(--fundo); color: var(--texto-2); border: 1px solid var(--linha); }
.sit-ok { background: color-mix(in srgb, var(--sucesso) 15%, transparent); color: var(--sucesso); }
.sit-ruim { background: color-mix(in srgb, var(--erro) 12%, transparent); color: var(--erro); }
.sit-atencao { background: var(--ouro-fundo); color: var(--ouro); }
.acoes-ind { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--linha); }
.sel-sit { font: 500 14px var(--sans); padding: 8px 10px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); max-width: 100%; }
.acoes-ind .link { margin-left: auto; }
.lista-avisar { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.lista-avisar li { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid var(--linha); border-radius: 10px; }
.lista-avisar .acoes { display: flex; gap: 8px; flex-wrap: wrap; }

/* ---------------- Assinatura e envio ---------------- */
.selos-ind { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.sit-assinada { display: inline-flex; align-items: center; gap: 5px; background: color-mix(in srgb, var(--sucesso) 15%, transparent); color: var(--sucesso); }
.links-ind { margin-left: auto; display: flex; gap: 14px; flex-wrap: wrap; }
.links-ind:empty { display: none; }
.acoes-ind .link { margin-left: 0; }
.nota-seguranca { font-size: 14px; background: var(--ouro-fundo); color: var(--texto); border-radius: 10px; padding: 12px 14px; }
.nota-seguranca strong { display: block; margin-bottom: 4px; }
.dialogo .ementa-ind { margin-bottom: 14px; font-size: 15px; }
.dialogo .link { align-self: flex-start; margin-top: 4px; }

/* ---------------- Página de verificação ---------------- */
.verificar { width: min(720px, 100% - 32px); margin: 0 auto; padding: 40px 0 64px; }
.verificar-cab h1 { font-size: clamp(26px, 4vw, 34px); margin: 18px 0 6px; }
.verificar-form { display: flex; gap: 10px; margin: 24px 0; flex-wrap: wrap; }
.verificar-form input { flex: 1 1 240px; font: 600 20px/1 ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; letter-spacing: .08em; padding: 14px 16px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); text-transform: uppercase; }
.verificar-form input:focus { outline: none; border-color: var(--vinho-texto); }
.ver-status { display: flex; gap: 14px; align-items: flex-start; padding: 18px 20px; border-radius: 14px; margin-bottom: 20px; }
.ver-status strong { font-size: 18px; display: block; margin-bottom: 4px; }
.ver-ok { background: color-mix(in srgb, var(--sucesso) 13%, var(--painel)); border: 1px solid color-mix(in srgb, var(--sucesso) 40%, transparent); }
.ver-ok .ic, .ver-ok strong { color: var(--sucesso); }
.ver-ruim { background: color-mix(in srgb, var(--erro) 10%, var(--painel)); border: 1px solid color-mix(in srgb, var(--erro) 40%, transparent); }
.ver-ruim .ic, .ver-ruim strong { color: var(--erro); }
.ver-atencao { background: var(--ouro-fundo); border: 1px solid color-mix(in srgb, var(--ouro) 40%, transparent); }
.ver-atencao .ic, .ver-atencao strong { color: var(--ouro); }
.ver-dados { display: grid; grid-template-columns: 170px 1fr; gap: 10px 16px; background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; padding: 18px 20px; margin: 0 0 20px; }
.ver-dados dt { color: var(--texto-2); font-size: 14px; }
.ver-dados dd { margin: 0; }
.ver-dados .hash { font: 12px/1.5 ui-monospace, Menlo, Consolas, monospace; word-break: break-all; color: var(--texto-2); }
@media (max-width: 560px) { .ver-dados { grid-template-columns: 1fr; gap: 2px; } .ver-dados dd { margin-bottom: 10px; } }

/* ---------------- Relacionamento ---------------- */
:root { --rel-verde: #2E7D4F; --rel-amarelo: #D9A400; --rel-vermelho: #C0362C; --pisca: #FFE38A; }
:root[data-theme="dark"] { --rel-verde: #6CC28F; --rel-amarelo: #F2C53D; --rel-vermelho: #FF7A70; --pisca: #6B5410; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --rel-verde: #6CC28F; --rel-amarelo: #F2C53D; --rel-vermelho: #FF7A70; --pisca: #6B5410; } }

.resumo-rel { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 8px; }
.chip-rel { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 14px; border-radius: 12px; border: 1.5px solid var(--linha); background: var(--painel); color: var(--texto); cursor: pointer; text-align: left; font: inherit; border-left-width: 6px; }
.chip-rel strong { font: 700 24px/1.1 var(--serif); }
.chip-rel span { font-size: 14px; color: var(--texto-2); }
.chip-rel.ativo { box-shadow: 0 0 0 2px var(--vinho-texto); }
.chip-todos { border-left-color: var(--linha); }
.chip-aniver { border-left-color: var(--rel-amarelo); background: color-mix(in srgb, var(--pisca) 35%, var(--painel)); }
.chip-verde { border-left-color: var(--rel-verde); }
.chip-amarelo { border-left-color: var(--rel-amarelo); }
.chip-vermelho { border-left-color: var(--rel-vermelho); }
.legenda-rel { margin-bottom: 16px; }
@media (max-width: 760px) { .resumo-rel { grid-template-columns: repeat(2, 1fr); } .chip-todos { grid-column: 1 / -1; } }

.grade-rel { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.cartao-rel { background: var(--painel); border: 1px solid var(--linha); border-left: 7px solid var(--linha); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.cartao-rel.cor-verde { border-left-color: var(--rel-verde); }
.cartao-rel.cor-amarelo { border-left-color: var(--rel-amarelo); }
.cartao-rel.cor-vermelho { border-left-color: var(--rel-vermelho); }
.cor-verde .rel-contato { color: var(--rel-verde); }
.cor-amarelo .rel-contato { color: color-mix(in srgb, var(--rel-amarelo) 70%, var(--texto)); }
.cor-vermelho .rel-contato { color: var(--rel-vermelho); }
.rel-contato { font-weight: 600; }
.rel-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.rel-nome { font-size: 16px; }
.selo-aniver { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; font-size: 12px; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: var(--rel-amarelo); color: #2A1D00; }
.rel-nasc { color: var(--texto-2); }
.aniver .rel-nasc { color: var(--texto); font-weight: 600; }
.rel-acoes { display: flex; align-items: center; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
.rel-acoes .btn-icone { width: 36px; height: 36px; }
.rel-acoes .btn { flex: 1; min-width: 0; white-space: nowrap; padding: 8px 10px; }
.mais-rel { margin-top: 16px; display: flex; justify-content: center; }

@keyframes pisca-aniver { 0%, 100% { background: var(--painel); } 50% { background: var(--pisca); } }
.cartao-rel.piscando { animation: pisca-aniver 2s ease-in-out 10; }
@media (prefers-reduced-motion: reduce) { .cartao-rel.piscando { animation: none; background: color-mix(in srgb, var(--pisca) 50%, var(--painel)); } }

.hist-titulo { font-size: 18px; margin: 24px 0 10px; }
.historico { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 300px; overflow-y: auto; }
.historico li { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--linha); border-radius: 10px; }
.hist-tipo { font-size: 12px; font-weight: 700; color: var(--vinho-texto); }

/* ---------------- Configurações ---------------- */
.sumario-cfg { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
.sumario-cfg a { padding: 7px 12px; border-radius: 999px; border: 1px solid var(--linha); background: var(--painel); color: var(--texto); text-decoration: none; font-size: 14px; font-weight: 500; }
.sumario-cfg a:hover { border-color: var(--vinho-texto); color: var(--vinho-texto); }
.cfg { display: flex; flex-direction: column; gap: 18px; max-width: 820px; }
.bloco-cfg { scroll-margin-top: calc(var(--cab) + 16px); }
.bloco-cfg h2 { margin-bottom: 4px; }
.desc-cfg { margin-bottom: 16px; }
.bloco-cfg h3 { font-size: 17px; margin-bottom: 4px; }
.lista-dados { display: grid; grid-template-columns: 140px 1fr; gap: 8px 16px; margin: 8px 0 12px; }
.lista-dados dt { color: var(--texto-2); font-size: 14px; }
.lista-dados dd { margin: 0; }
.lista-equipe { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-direction: column; }
.lista-equipe li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--linha); flex-wrap: wrap; }
.lista-equipe li:first-child { border-top: 1px solid var(--linha); }
.acoes-eq { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.selo-eq { font-size: 12px; font-weight: 600; padding: 3px 9px; border-radius: 999px; }
.eq-on { background: color-mix(in srgb, var(--sucesso) 15%, transparent); color: var(--sucesso); }
.eq-conv { background: var(--ouro-fundo); color: var(--ouro); }
.eq-off { background: var(--fundo); color: var(--texto-2); border: 1px solid var(--linha); }
.campos-3 { display: grid; grid-template-columns: 1fr 1.3fr .8fr; gap: 12px; }
@media (max-width: 700px) { .campos-3 { grid-template-columns: 1fr; } .lista-dados { grid-template-columns: 1fr; gap: 2px; } .lista-dados dd { margin-bottom: 8px; } }
.aviso-limite { background: var(--ouro-fundo); padding: 12px 14px; border-radius: 10px; font-size: 15px; }
.brasao-cfg { display: flex; gap: 16px; align-items: center; }
.brasao-prev { width: 96px; height: 96px; border: 1px dashed var(--linha); border-radius: 12px; display: grid; place-items: center; background: #fff; flex-shrink: 0; overflow: hidden; }
.brasao-prev img { max-width: 88px; max-height: 88px; object-fit: contain; }
.brasao-cfg .btn { cursor: pointer; }
.prazos-rel { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 460px; }
.ponto-cor { display: inline-block; width: 12px; height: 12px; border-radius: 50%; vertical-align: -1px; margin-right: 4px; }
.cor-am { background: var(--rel-amarelo); }
.cor-ve { background: var(--rel-vermelho); }
.com-sufixo { display: flex; align-items: center; gap: 8px; }
.com-sufixo input { max-width: 90px; text-align: center; }
.chips-bairros { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips-bairros li { display: inline-flex; align-items: center; gap: 4px; padding: 6px 6px 6px 12px; border-radius: 999px; background: var(--fundo); border: 1px solid var(--linha); font-size: 14px; }
.chips-bairros li.vazio-chip { padding: 6px 0; border: 0; background: none; }
.chips-bairros button { width: 24px; height: 24px; border-radius: 50%; border: 0; background: transparent; color: var(--texto-2); cursor: pointer; display: grid; place-items: center; }
.chips-bairros button:hover { background: var(--vinho-fundo); color: var(--vinho-texto); }
.form-inline { display: flex; gap: 8px; max-width: 460px; }
.form-inline input { flex: 1; min-width: 0; font: 400 16px var(--sans); padding: 10px 12px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); }
.form-inline input:focus { outline: none; border-color: var(--vinho-texto); }

/* ---------------- Lideranças ---------------- */
.resumo-rede { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
.num-rede { background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.num-rede strong { font: 700 24px/1.1 var(--serif); }
.num-rede span { font-size: 14px; color: var(--texto-2); }
@media (max-width: 640px) { .resumo-rede { grid-template-columns: repeat(2, 1fr); } }
.legenda-rede { margin: 10px 0 0; line-height: 1.8; }
.leg-linha { display: inline-block; width: 28px; height: 0; vertical-align: middle; margin: 0 4px 0 10px; border-top: 2.5px solid var(--vinho-texto); }
.leg-linha:first-child { margin-left: 0; }
.leg-linha.tracejada { border-top: 2px dashed var(--texto-2); }

.grade-rede { list-style: none; margin: 16px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 14px; }
.cartao-rede { background: var(--painel); border: 1px solid var(--linha); border-left: 7px solid var(--linha); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cartao-rede.cor-verde { border-left-color: var(--rel-verde); }
.cartao-rede.cor-amarelo { border-left-color: var(--rel-amarelo); }
.cartao-rede.cor-vermelho { border-left-color: var(--rel-vermelho); }
.rede-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.selo-status { white-space: nowrap; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 999px; }
.st-verde.selo-status { background: color-mix(in srgb, var(--rel-verde) 16%, transparent); color: var(--rel-verde); }
.st-amarelo.selo-status { background: color-mix(in srgb, var(--rel-amarelo) 22%, transparent); color: color-mix(in srgb, var(--rel-amarelo) 60%, var(--texto)); }
.st-vermelho.selo-status { background: color-mix(in srgb, var(--rel-vermelho) 15%, transparent); color: var(--rel-vermelho); }
.rede-sub { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--linha); }
.rede-botoes { display: flex; gap: 6px; flex-wrap: wrap; }
.rede-sub .btn-texto { margin-top: 0; }

.mapa-rede { display: flex; justify-content: safe center; margin-top: 6px; overflow-x: auto; }
.mapa-rede svg { width: 100%; height: auto; overflow: visible; flex-shrink: 0; }
.mapa-rede line { stroke-linecap: round; }
.lig-cheia { stroke: var(--vinho-texto); stroke-width: 2.5; }
.lig-tracejada { stroke: var(--texto-2); stroke-width: 1.8; stroke-dasharray: 6 6; opacity: .8; }
.no-lider circle { fill: var(--painel); stroke-width: 6; }
.no-lider.st-verde circle { stroke: var(--rel-verde); }
.no-lider.st-amarelo circle { stroke: var(--rel-amarelo); }
.no-lider.st-vermelho circle { stroke: var(--rel-vermelho); }
.no-ini { text-anchor: middle; font: 700 14px var(--sans); fill: var(--texto); pointer-events: none; }
.no-ini.lider { font: 700 20px var(--serif); }
.no-pessoa { cursor: pointer; outline: none; }
.no-pessoa circle { fill: var(--painel); stroke: var(--texto-2); stroke-width: 1.8; stroke-dasharray: 4 3; transition: fill .15s; }
.no-pessoa.conf circle { fill: var(--vinho-fundo); stroke: var(--vinho-texto); stroke-width: 2.2; stroke-dasharray: none; }
.no-pessoa:hover circle, .no-pessoa:focus-visible circle { fill: var(--vinho-fundo); stroke: var(--vinho-texto); stroke-width: 3; }
.no-nome { font: 500 13px var(--sans); fill: var(--texto); pointer-events: none; }
.no-vazio { text-anchor: middle; font: 400 14px var(--sans); fill: var(--texto-2); }

.lista-rede { list-style: none; margin: 8px 0 0 18px; padding: 0; border-left: 2.5px solid transparent; }
.lista-rede li { position: relative; padding-left: 22px; }
.lista-rede li::before { content: ''; position: absolute; left: -2px; top: 0; bottom: 0; border-left: 2px dashed var(--texto-2); }
.lista-rede li::after { content: ''; position: absolute; left: 0; top: 50%; width: 18px; border-top: 2px dashed var(--texto-2); }
.lista-rede li.conf::after { border-top: 2.5px solid var(--vinho-texto); }
.lista-rede li:last-child::before { bottom: 50%; }
.item-rede { width: 100%; display: flex; flex-direction: column; align-items: flex-start; gap: 1px; text-align: left; background: none; border: 0; border-radius: 8px; padding: 8px 10px; color: var(--texto); font: inherit; cursor: pointer; }
.item-rede:hover { background: var(--vinho-fundo); }
.conf .nome-rede { font-weight: 600; }
.rede-vazia { margin-top: 6px; }

.lista-ligar { list-style: none; margin: 14px 0; padding: 0; display: flex; flex-direction: column; max-height: 50vh; overflow-y: auto; }
.lista-ligar li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--linha); }
.lista-ligar li > span:first-child { display: flex; flex-direction: column; min-width: 0; }
.lista-ligar .selo { font-size: 12px; padding: 3px 8px; background: var(--fundo); color: var(--texto-2); white-space: nowrap; }
.rede-situacao { display: flex; align-items: center; gap: 4px; }
.rede-situacao .leg-linha { margin-left: 0; flex-shrink: 0; }
.pessoa-contatos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pessoa-contatos .btn { justify-content: center; }
.link-perigo { color: var(--erro); }

/* Aviso de liderança no bairro (Atendimento) */
.aviso-lider { background: var(--vinho-fundo); border-radius: 10px; padding: 12px 14px; }
.aviso-lider .opcoes { gap: 6px; margin-top: 6px; }
.aviso-lider legend { font-size: 14px; font-weight: 600; color: var(--texto); }

/* ---------------- Eventos ---------------- */
.abas-ev { display: inline-flex; gap: 4px; padding: 4px; border-radius: 12px; background: var(--painel); border: 1px solid var(--linha); margin-bottom: 16px; }
.abas-ev button { border: 0; background: transparent; color: var(--texto-2); font: 600 15px var(--sans); padding: 8px 16px; border-radius: 9px; cursor: pointer; }
.abas-ev button.ativo { background: var(--vinho-fundo); color: var(--vinho-texto); }
.lista-ev { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cartao-ev { display: flex; gap: 16px; background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; padding: 16px; min-width: 0; }
.cartao-ev.cancelado { opacity: .7; }
.cartao-ev.cancelado h3 { text-decoration: line-through; }
.ev-data { flex-shrink: 0; width: 64px; height: 76px; border-radius: 12px; background: var(--vinho-fundo); color: var(--vinho-texto); display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1.05; }
.ev-data strong { font: 700 28px var(--serif); }
.ev-data span { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ev-data small { font-size: 12px; color: var(--texto-2); }
.ev-corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ev-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.ev-topo h3 { font-size: 18px; margin: 0; }
.selo-quando, .selo-cancel, .selo-lider { font-size: 12px; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.selo-quando { background: var(--fundo); color: var(--texto-2); border: 1px solid var(--linha); }
.selo-quando.perto { background: var(--ouro-fundo); color: var(--ouro); border-color: transparent; }
.selo-cancel { background: color-mix(in srgb, var(--erro) 12%, transparent); color: var(--erro); }
.selo-lider { background: var(--vinho-fundo); color: var(--vinho-texto); padding: 2px 7px; font-size: 11px; }
.ev-publico { display: flex; align-items: center; gap: 6px; color: var(--texto-2); }
.ev-nums { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; color: var(--texto-2); }
.ev-nums strong { color: var(--texto); font-size: 16px; }
.ev-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.ev-acoes .btn-icone { margin-left: auto; }
@media (max-width: 520px) { .cartao-ev { flex-direction: column; gap: 10px; } .ev-data { flex-direction: row; width: auto; height: auto; padding: 6px 12px; gap: 6px; align-self: flex-start; } .ev-data strong { font-size: 20px; } }

.bairros-ev { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-bairro { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; border: 1.5px solid var(--linha); font-size: 14px; cursor: pointer; }
.chip-bairro:has(input:checked) { border-color: var(--vinho-texto); background: var(--vinho-fundo); color: var(--vinho-texto); font-weight: 600; }
.chip-bairro input { accent-color: var(--vinho); }

.msg-ev { margin: 4px 0 14px; border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; }
.msg-ev summary { cursor: pointer; font-weight: 600; color: var(--vinho-texto); }
.msg-ev textarea { width: 100%; margin-top: 10px; font: 400 15px/1.45 var(--sans); padding: 10px 12px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); resize: vertical; }
.filtros-conv { margin-bottom: 8px; }
.progresso-ev { margin: 8px 0; font-size: 15px; }
.lista-conv { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; max-height: 52vh; overflow-y: auto; }
.lista-conv li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 2px; border-bottom: 1px solid var(--linha); }
.lista-conv li.enviado .conv-nome strong::after { content: ' ✓'; color: var(--sucesso); }
.conv-nome { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.conv-acoes { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.conv-acoes .btn-icone { width: 36px; height: 36px; }
.conv-acoes select { font: 400 14px var(--sans); padding: 7px 8px; border: 1.5px solid var(--linha); border-radius: 8px; background: var(--painel); color: var(--texto); }
.pres-item { display: flex; align-items: center; gap: 12px; cursor: pointer; flex: 1; min-width: 0; }
.pres-item input { width: 22px; height: 22px; accent-color: var(--vinho); flex-shrink: 0; }
#pAchados:empty { display: none; }
#dPres .busca { margin-top: 4px; }
@media (max-width: 520px) { .lista-conv li { flex-wrap: wrap; } .conv-acoes { width: 100%; } .conv-acoes select { flex: 1; } }

/* Lista de presença (portaria): tela cheia no celular, rolagem só na lista */
.portaria { border: 0; padding: 0; background: var(--painel); color: var(--texto); width: min(720px, 100%); max-width: 100%; height: min(92dvh, 900px); max-height: 100dvh; border-radius: 16px; box-shadow: 0 30px 80px -20px rgba(0,0,0,.5); }
.portaria[open] { display: flex; flex-direction: column; }
.portaria::backdrop { background: rgba(30, 6, 6, .55); }
@media (max-width: 700px) { .portaria { width: 100%; height: 100dvh; border-radius: 0; margin: 0; } }
.port-cab { padding: 16px 18px 10px; border-bottom: 1px solid var(--linha); display: flex; flex-direction: column; gap: 10px; }
.port-linha { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.port-linha h2 { font-size: 20px; margin: 0; }
.port-placar { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; margin: 0; font-size: 15px; color: var(--texto-2); }
.port-placar strong { font: 700 22px var(--serif); color: var(--texto); }
.port-placar .port-total strong { color: var(--vinho-texto); }
.port-placar small { flex-basis: 100%; font-size: 13px; }
.port-cab .busca { max-width: none; }
.port-cab .busca input { font-size: 17px; }
.port-filtros { display: flex; gap: 6px; overflow-x: auto; }
.port-filtros button { flex-shrink: 0; border: 1.5px solid var(--linha); background: var(--painel); color: var(--texto-2); font: 600 14px var(--sans); padding: 7px 11px; border-radius: 999px; cursor: pointer; }
.port-filtros button.ativo { border-color: var(--vinho-texto); background: var(--vinho-fundo); color: var(--vinho-texto); }
.port-corpo { flex: 1; overflow-y: auto; padding: 8px 18px 16px; overscroll-behavior: contain; }
.port-corpo > .dica { margin: 4px 0 6px; }
.port-lista { list-style: none; margin: 0; padding: 0; }
.port-letra { position: sticky; top: -8px; z-index: 1; background: var(--painel); font: 700 13px var(--sans); color: var(--vinho-texto); padding: 10px 4px 4px; border-bottom: 1px solid var(--linha); }
.port-item { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--linha); }
.port-toque { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px; padding: 12px 4px; min-height: 60px; background: none; border: 0; color: var(--texto); font: inherit; text-align: left; cursor: pointer; }
.port-toque:active { background: var(--vinho-fundo); }
.port-toque strong { font-size: 17px; }
.port-check { flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; border: 2px solid var(--linha); display: grid; place-items: center; color: transparent; transition: background .15s, border-color .15s; }
.port-item.presente .port-check { background: var(--sucesso); border-color: var(--sucesso); color: #fff; }
.port-item.presente { background: color-mix(in srgb, var(--sucesso) 7%, transparent); }
[data-fora] .port-check { color: var(--vinho-texto); border-style: dashed; }
.port-acomp { flex-shrink: 0; display: flex; align-items: center; gap: 4px; padding-right: 4px; }
.port-acomp button { width: 40px; height: 40px; border-radius: 10px; border: 1.5px solid var(--linha); background: var(--painel); color: var(--texto); font: 600 22px/1 var(--sans); cursor: pointer; }
.port-acomp button:active { background: var(--vinho-fundo); }
.port-acomp span { display: flex; flex-direction: column; align-items: center; min-width: 40px; line-height: 1.1; }
.port-acomp strong { font-size: 17px; }
.port-acomp small { font-size: 11px; color: var(--texto-2); }
.port-vazio { padding: 16px 4px; }
.port-fora { margin-top: 14px; padding-top: 6px; border-top: 2px dashed var(--linha); }
.port-sub { font-weight: 600; margin: 8px 0 2px; }
.port-novo { margin-top: 12px; border: 1px solid var(--linha); border-radius: 12px; padding: 12px 14px; }
.port-novo summary { cursor: pointer; font-weight: 600; color: var(--vinho-texto); }
.port-novo form { margin-top: 12px; }
.port-rodape { padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); border-top: 1px solid var(--linha); }
.port-rodape .btn { width: 100%; justify-content: center; }
.port-rodape .btn[hidden] { display: none; }

/* Resultado do evento */
.res-nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 4px 0 14px; }
.res-nums div { border: 1px solid var(--linha); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; }
.res-nums strong { font: 700 26px/1.1 var(--serif); }
.res-nums span { font-size: 13px; color: var(--texto-2); }
.res-nums .res-total { background: var(--vinho-fundo); border-color: transparent; }
.res-nums .res-total strong { color: var(--vinho-texto); }
@media (max-width: 560px) { .res-nums { grid-template-columns: repeat(2, 1fr); } }
.res-taxas { display: flex; flex-direction: column; gap: 10px; margin-bottom: 14px; }
.res-taxas p { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; align-items: baseline; margin: 0; font-size: 15px; }
.res-taxas b { font: 700 20px var(--serif); color: var(--vinho-texto); }
.res-taxas .res-barra { grid-column: 1 / -1; }
.res-barra { display: block; height: 8px; border-radius: 99px; background: var(--fundo); overflow: hidden; margin-top: 4px; }
.res-barra span { display: block; height: 100%; border-radius: 99px; background: var(--vinho-texto); }
.res-destaques { margin: 0 0 6px; padding: 12px 14px 12px 32px; background: var(--ouro-fundo); border-radius: 12px; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.res-tit { font-size: 17px; margin: 18px 0 8px; }
.res-tabela { display: flex; flex-direction: column; }
.res-lin { display: grid; grid-template-columns: 1.6fr .8fr .8fr .8fr 1fr; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--linha); font-size: 15px; }
.res-lin > span:not(:first-child) { text-align: right; }
.res-th { font-size: 12px; font-weight: 700; color: var(--texto-2); text-transform: uppercase; letter-spacing: .03em; }
@media (max-width: 560px) {
  .res-th { display: none; }
  .res-lin { grid-template-columns: repeat(4, 1fr); }
  .res-lin > span:first-child { grid-column: 1 / -1; }
  .res-lin > span:not(:first-child) { text-align: left; font-size: 14px; display: flex; flex-direction: column; }
  .res-lin > span:not(:first-child)::before { content: attr(data-r); font-size: 11px; color: var(--texto-2); }
}
.res-redes { list-style: none; margin: 0; padding: 0; }
.res-redes li { display: flex; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.res-faltas { max-height: none; }

/* ---------------- Agenda ---------------- */
.nav-mes { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.nav-mes strong { font: 700 18px var(--serif); min-width: 170px; text-align: center; }
.nav-mes .btn-icone { font-size: 22px; line-height: 1; }
.aviso-plano { display: flex; gap: 8px; align-items: center; background: var(--ouro-fundo); color: var(--texto); padding: 10px 14px; border-radius: 10px; font-size: 14px; margin: 0 0 14px; }
.ag-bloco { margin-bottom: 14px; }
.ag-dia { font: 600 15px var(--sans); margin: 0 0 6px; color: var(--texto-2); }
.ag-dia.hoje { color: var(--vinho-texto); }
.ag-lista { list-style: none; margin: 0; padding: 0; background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; overflow: hidden; }
.ag-item { display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--linha); }
.ag-item:last-child { border-bottom: 0; }
.ag-check { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; border: 2px solid var(--linha); background: none; color: transparent; display: grid; place-items: center; cursor: pointer; margin-top: 2px; }
.ag-check.on, .ag-comp.feito .ag-check { background: var(--sucesso); border-color: var(--sucesso); color: #fff; }
span.ag-check { cursor: default; }
.ag-marca { flex-shrink: 0; width: 28px; height: 28px; display: grid; place-items: center; font-weight: 700; color: var(--ouro); margin-top: 2px; }
.ag-txt { flex: 1; min-width: 0; display: grid; grid-template-columns: 76px 1fr; gap: 0 10px; text-align: left; background: none; border: 0; padding: 0; color: var(--texto); font: inherit; cursor: pointer; }
.ag-txt > span:nth-child(n+3) { grid-column: 2; }
.ag-hora { font-size: 13px; font-weight: 600; color: var(--texto-2); padding-top: 2px; }
.ag-tit { font-weight: 500; }
.ag-comp.feito .ag-tit { text-decoration: line-through; color: var(--texto-2); }
.ag-plano .ag-hora { color: var(--vinho-texto); }
.ag-plano.tipo-prazo { background: var(--ouro-fundo); }
.ag-plano.tipo-prazo .ag-hora { color: var(--ouro); }
.ag-plano.tipo-marco .ag-tit { font-weight: 700; }
.ag-plano.sit-feita .ag-tit { text-decoration: line-through; color: var(--texto-2); }
.ag-plano.sit-antes { opacity: .55; }
.ag-sit { color: var(--texto-2); }
.sit-atrasada .ag-sit { color: var(--erro); font-weight: 600; }
.ag-atraso .ag-dia { color: var(--erro); }
.ag-vazio { margin: 0; padding: 4px 2px; }
@media (max-width: 520px) { .ag-txt { grid-template-columns: 1fr; } .ag-txt > span:nth-child(n+3) { grid-column: 1; } }

/* ---------------- Execução do plano ---------------- */
.exec-topo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 14px; }
@media (max-width: 860px) { .exec-topo { grid-template-columns: repeat(2, 1fr); } }
.exec-card { background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; }
.exec-card strong { font: 700 30px/1.1 var(--serif); }
.exec-rot { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-2); }
.exec-rend { border-left: 6px solid var(--linha); }
.exec-rend.bom { border-left-color: var(--rel-verde); } .exec-rend.bom strong { color: var(--rel-verde); }
.exec-rend.medio { border-left-color: var(--rel-amarelo); }
.exec-rend.baixo { border-left-color: var(--rel-vermelho); } .exec-rend.baixo strong { color: var(--rel-vermelho); }
.exec-card.tem-atraso strong { color: var(--erro); }
.aviso-adapt { display: flex; gap: 8px; align-items: center; background: var(--ouro-fundo); padding: 10px 14px; border-radius: 10px; font-size: 14px; margin: 0 0 14px; }
.exec-fase { margin-bottom: 18px; }
.ef-cab { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.ef-cab strong { font: 700 20px var(--serif); }
.barra-fase { height: 10px; border-radius: 99px; background: var(--fundo); overflow: hidden; margin: 6px 0 4px; border: 1px solid var(--linha); }
.barra-fase span { display: block; height: 100%; background: var(--vinho-texto); border-radius: 99px; }
.bloco-plano { margin: 0 0 22px; }
.bloco-plano h2 { font-size: 19px; margin: 0 0 8px; }
.sub-plano { font-size: 14px; color: var(--texto-2); margin: 14px 0 6px; }
.lista-plano { list-style: none; margin: 0; padding: 0; background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; overflow: hidden; }
.lista-plano li { border-bottom: 1px solid var(--linha); }
.lista-plano li:last-child { border-bottom: 0; }
.item-plano { width: 100%; display: grid; grid-template-columns: 150px 1fr auto; gap: 4px 12px; align-items: center; padding: 11px 14px; background: none; border: 0; color: var(--texto); font: inherit; text-align: left; cursor: pointer; }
.item-plano:hover { background: var(--vinho-fundo); }
.ip-data { font-size: 13px; color: var(--texto-2); }
.ip-tit { font-weight: 500; }
.ip-sit { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 999px; background: var(--fundo); color: var(--texto-2); white-space: nowrap; }
.sit-feita .ip-sit { background: color-mix(in srgb, var(--sucesso) 15%, transparent); color: var(--sucesso); }
.sit-feita .ip-tit { color: var(--texto-2); }
.sit-atrasada .ip-sit { background: color-mix(in srgb, var(--erro) 12%, transparent); color: var(--erro); }
.sit-hoje .ip-sit { background: var(--vinho-fundo); color: var(--vinho-texto); }
.sit-recuperar .ip-sit, .sit-adaptacao .ip-sit { background: var(--ouro-fundo); color: var(--ouro); }
.sit-antes { opacity: .5; }
.sit-info .ip-tit { color: var(--ouro); font-weight: 600; }
.selo-ess { font-size: 11px; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: var(--ouro-fundo); color: var(--ouro); vertical-align: 1px; }
@media (max-width: 560px) { .item-plano { grid-template-columns: 1fr auto; } .ip-data { grid-column: 1 / -1; } }
.lista-fases { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.lista-fases li { background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; padding: 12px 14px; }
.lista-fases li.futura { opacity: .7; }
.lista-fases li.passada { opacity: .5; }
.lf-cab { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.plano-todo summary { display: flex; align-items: baseline; gap: 10px; cursor: pointer; list-style: none; }
.plano-todo summary::-webkit-details-marker { display: none; }
.plano-todo summary h2::before { content: '▸ '; color: var(--vinho-texto); }
.plano-todo[open] summary h2::before { content: '▾ '; }
.regras-plano { margin-top: 10px; line-height: 1.6; }
.selo-plano { display: inline-block; font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px; background: var(--vinho-fundo); color: var(--vinho-texto); margin: 0 0 8px !important; }
.selo-plano.tipo-prazo { background: var(--ouro-fundo); color: var(--ouro); }
.desc-tarefa { background: var(--fundo); border-radius: 10px; padding: 12px 14px; margin: 0 0 14px; line-height: 1.55; }
.exec-info { display: flex; align-items: center; gap: 6px; color: var(--sucesso); font-weight: 600; }

/* ---------------- Linha Direta ---------------- */
.contador-ld { min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--vinho); color: #fff; font-size: 12px; font-weight: 700; display: inline-grid; place-items: center; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ld { display: grid; grid-template-columns: minmax(280px, 380px) 1fr; gap: 14px; align-items: start; }
.ld-lista-col { min-width: 0; }
.ld-filtros { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 8px; }
.ld-filtros button { flex-shrink: 0; border: 1.5px solid var(--linha); background: var(--painel); color: var(--texto-2); font: 600 13px var(--sans); padding: 6px 11px; border-radius: 999px; cursor: pointer; }
.ld-filtros button[data-n]:not([data-n=""])::after { content: ' ' attr(data-n); opacity: .7; }
.ld-filtros button.ativo { border-color: var(--vinho-texto); background: var(--vinho-fundo); color: var(--vinho-texto); }
.ld-lista { list-style: none; margin: 0; padding: 0; background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; overflow: hidden; max-height: calc(100dvh - 240px); overflow-y: auto; }
.ld-lista li { border-bottom: 1px solid var(--linha); }
.ld-lista li:last-child { border-bottom: 0; }
.ld-lista .vazio-lista { border: 0; border-radius: 0; }
.ld-nada { padding: 16px; }
.ld-item { width: 100%; display: flex; flex-direction: column; gap: 3px; padding: 12px 14px; background: none; border: 0; border-left: 4px solid transparent; color: var(--texto); font: inherit; text-align: left; cursor: pointer; }
.ld-item:hover { background: var(--fundo); }
.ld-item.ativa { background: var(--vinho-fundo); border-left-color: var(--vinho-texto); }
.ld-item.nao-lida { border-left-color: var(--vinho); }
.ld-item.nao-lida strong::after { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--vinho); margin-left: 6px; vertical-align: 2px; }
.ld-item-topo { display: flex; justify-content: space-between; gap: 8px; }
.ld-assunto { font-weight: 600; font-size: 14px; }
.nao-lida .ld-assunto { color: var(--vinho-texto); }
.ld-previa { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ld-selos { display: flex; gap: 6px; margin-top: 2px; }
.sit-ld { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; align-self: flex-start; }
.sit-nova { background: var(--vinho); color: #fff; }
.sit-andamento { background: var(--ouro-fundo); color: var(--ouro); }
.sit-respondida { background: color-mix(in srgb, var(--sucesso) 15%, transparent); color: var(--sucesso); }
.sit-encerrada { background: var(--fundo); color: var(--texto-2); border: 1px solid var(--linha); }
.sit-at { background: var(--fundo); color: var(--texto-2); border: 1px solid var(--linha); }
.ld-conversa { background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; min-height: 420px; display: flex; flex-direction: column; min-width: 0; }
.ld-vazio, .ld-carreg { margin: auto; padding: 40px; text-align: center; }
.ld-cab { display: flex; align-items: flex-start; gap: 10px; padding: 16px 18px 8px; }
.ld-cab-txt { flex: 1; min-width: 0; }
.ld-cab h2 { font-size: 19px; margin: 0 0 2px; }
.ld-cab p { overflow-wrap: anywhere; }
.ld-acoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 0 18px 12px; border-bottom: 1px solid var(--linha); }
.ld-acoes .btn-icone { width: 36px; height: 36px; }
.ld-msgs { list-style: none; margin: 0; padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; overflow-y: auto; max-height: calc(100dvh - 380px); min-height: 160px; }
.ld-msg { display: flex; flex-direction: column; gap: 3px; max-width: 82%; }
.ld-msg.de-municipe { align-self: flex-start; }
.ld-msg.de-gabinete { align-self: flex-end; align-items: flex-end; }
.ld-balao { padding: 10px 14px; border-radius: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.de-municipe .ld-balao { background: var(--fundo); border: 1px solid var(--linha); border-bottom-left-radius: 4px; }
.de-gabinete .ld-balao { background: var(--vinho); color: #fff; border-bottom-right-radius: 4px; }
.ld-resposta { display: flex; gap: 10px; align-items: flex-end; padding: 12px 18px 16px; border-top: 1px solid var(--linha); margin-top: auto; }
.ld-resposta textarea { flex: 1; min-width: 0; font: 400 15px/1.45 var(--sans); padding: 10px 12px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); resize: vertical; }
.ld-resposta textarea:focus { outline: none; border-color: var(--vinho-texto); }
.ld-encerrada { margin: auto 18px 16px; padding: 12px 14px; background: var(--fundo); border-radius: 10px; font-size: 14px; }
@media (max-width: 860px) {
  .ld { grid-template-columns: 1fr; }
  .ld .ld-conversa { display: none; }
  .ld.com-conversa .ld-conversa { display: flex; }
  .ld.com-conversa .ld-lista-col { display: none; }
  .ld-lista { max-height: none; }
  .ld-msgs { max-height: none; }
  .ld-msg { max-width: 92%; }
}

/* ---------------- Eficiência ---------------- */
:root { --st-ok: var(--rel-verde); --st-and: var(--rel-amarelo); --st-esp: #8C6E6E; --st-sem: #B9AAAA; --st-neg: var(--rel-vermelho); }
:root[data-theme="dark"] { --st-esp: #B39494; --st-sem: #6B5656; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --st-esp: #B39494; --st-sem: #6B5656; } }
.filtros-ef { margin-bottom: 6px; align-items: center; }
.nota-ef { min-height: 1em; margin: 0 0 10px; }
#corpo.carregando-ef { opacity: .5; transition: opacity .2s; }
.ef-bloco { margin-bottom: 16px; }
.ef-bloco h2 { font-size: 19px; margin: 0 0 6px; }
.funil { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.funil li { display: grid; grid-template-columns: 120px 1fr 60px 170px; gap: 12px; align-items: center; }
.fu-nome { font-weight: 600; font-size: 15px; }
.fu-barra { height: 22px; background: var(--fundo); border-radius: 0 6px 6px 0; overflow: hidden; }
.fu-barra span { display: block; height: 100%; background: var(--vinho-texto); border-radius: 0 4px 4px 0; }
.fu-num { font: 700 20px var(--serif); text-align: right; }
@media (max-width: 640px) { .funil li { grid-template-columns: 1fr auto; gap: 2px 10px; } .fu-barra { grid-column: 1 / -1; grid-row: 2; height: 14px; } .fu-conv { grid-column: 1 / -1; } }
.ef-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
@media (max-width: 900px) { .ef-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .ef-tiles { grid-template-columns: 1fr; } }
.ef-tile { background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; padding: 14px 16px; display: flex; flex-direction: column; gap: 2px; }
.ef-tile strong { font: 700 30px/1.15 var(--serif); }
.ef-alertas { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.ef-alerta { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--ouro-fundo); color: var(--texto); text-decoration: none; }
.ef-alerta .ic { color: var(--ouro); flex-shrink: 0; }
.ef-alerta:hover { outline: 1.5px solid var(--ouro); }
.pilha { display: flex; gap: 2px; height: 26px; margin: 12px 0 10px; }
.pilha span { min-width: 4px; }
.pilha span:first-child { border-radius: 6px 0 0 6px; } .pilha span:last-child { border-radius: 0 6px 6px 0; }
.pilha span:only-child { border-radius: 6px; }
.st-ok { background: var(--st-ok); } .st-and { background: var(--st-and); } .st-esp { background: var(--st-esp); } .st-sem { background: var(--st-sem); } .st-neg { background: var(--st-neg); }
.legenda-pilha { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 14px; }
.legenda-pilha li { display: flex; align-items: center; gap: 6px; }
.mk { width: 12px; height: 12px; border-radius: 3px; display: inline-block; }
.tab-ef { display: flex; flex-direction: column; margin-top: 8px; }
.te-lin { display: grid; grid-template-columns: 2fr .8fr 1.4fr .9fr 1fr; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--linha); font-size: 15px; }
.tab-equipe .te-lin { grid-template-columns: 2fr 1fr 1fr 1fr; }
.te-lin > span:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.te-cab { font-size: 12px; font-weight: 700; color: var(--texto-2); text-transform: uppercase; letter-spacing: .03em; padding-top: 0; }
.te-nome { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.te-taxa { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.mini-barra { flex: 1; max-width: 90px; height: 8px; border-radius: 99px; background: var(--fundo); overflow: hidden; }
.mini-barra span { display: block; height: 100%; background: var(--st-ok); border-radius: 99px; }
.selo-ef { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
.selo-ef.bom { background: color-mix(in srgb, var(--rel-verde) 15%, transparent); color: var(--rel-verde); }
.selo-ef.ruim { background: color-mix(in srgb, var(--rel-vermelho) 13%, transparent); color: var(--rel-vermelho); }
@media (max-width: 640px) {
  .te-cab { display: none; }
  .te-lin, .tab-equipe .te-lin { grid-template-columns: repeat(4, 1fr); }
  .tab-equipe .te-lin { grid-template-columns: repeat(3, 1fr); }
  .te-lin > span:first-child { grid-column: 1 / -1; }
  .te-lin > span:not(:first-child) { text-align: left; display: flex; flex-direction: column; font-size: 14px; }
  .te-lin > span:not(:first-child)::before { content: attr(data-r); font-size: 11px; color: var(--texto-2); }
  .te-taxa { align-items: flex-start !important; justify-content: flex-start; }
  .te-taxa .mini-barra { display: none; }
}
.ef-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ef-duas > .ef-bloco { margin-bottom: 16px; }
@media (max-width: 900px) { .ef-duas { grid-template-columns: 1fr; gap: 0; } }
.barras-h { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.bh { width: 100%; display: grid; grid-template-columns: 150px 1fr 70px; gap: 10px; align-items: center; padding: 6px 4px; background: none; border: 0; border-radius: 8px; color: var(--texto); font: inherit; text-align: left; cursor: pointer; }
.bh:hover { background: var(--fundo); }
.bh-nome { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bh-trilha { height: 14px; }
.bh-total { display: block; height: 100%; background: color-mix(in srgb, var(--vinho-texto) 28%, var(--painel)); border-radius: 0 4px 4px 0; overflow: hidden; }
.bh-parte { display: block; height: 100%; background: var(--vinho-texto); }
.bh-num { text-align: right; font-size: 14px; font-variant-numeric: tabular-nums; }
@media (max-width: 420px) { .bh { grid-template-columns: 1fr 64px; } .bh-trilha { grid-column: 1 / -1; grid-row: 2; } }
.ef-meses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 8px; }
@media (max-width: 900px) { .ef-meses { grid-template-columns: 1fr; } }
.colunas { margin: 0; }
.colunas figcaption { margin-bottom: 8px; }
.col-area { height: 110px; display: flex; align-items: flex-end; gap: 3px; border-bottom: 1px solid var(--linha); }
.col { flex: 1; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; position: relative; outline: none; }
.col-b { width: 100%; max-width: 26px; background: var(--vinho-texto); border-radius: 4px 4px 0 0; }
.col-v { position: absolute; top: -2px; font-size: 11px; font-weight: 700; color: var(--texto); opacity: 0; transition: opacity .15s; background: var(--painel); padding: 0 3px; border-radius: 4px; }
.col:hover .col-v, .col:focus .col-v { opacity: 1; }
.col:hover .col-b, .col:focus .col-b { background: var(--vinho); }
.col-eixo { display: flex; gap: 3px; }
.col-eixo span { flex: 1; text-align: center; font-size: 11px; color: var(--texto-2); }
.ef-ld { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 10px; }
.ef-ld div { display: flex; flex-direction: column; }
.ef-ld strong { font: 700 26px var(--serif); }
.ef-ld span { font-size: 13px; color: var(--texto-2); }

/* ---------------- Dashboard: o que fazer hoje ---------------- */
.dash-exec a { font-weight: 600; color: var(--vinho-texto); text-decoration: none; }
.hoje { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.hoje-item { display: grid; grid-template-columns: 44px 1fr auto; gap: 14px; align-items: start; background: var(--painel); border: 1px solid var(--linha); border-left: 5px solid var(--linha); border-radius: 14px; padding: 14px 16px; }
.hoje-item.nv-urgente { border-left-color: var(--vinho); }
.hoje-item.nv-hoje { border-left-color: var(--ouro); }
.hoje-ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--fundo); color: var(--texto-2); }
.nv-urgente .hoje-ic { background: var(--vinho-fundo); color: var(--vinho-texto); }
.nv-hoje .hoje-ic { background: var(--ouro-fundo); color: var(--ouro); }
.hoje-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.hoje-txt strong { font-size: 16px; }
.hoje-txt p { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.hoje-nivel { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); }
.nv-urgente .hoje-nivel { color: var(--vinho-texto); }
.nv-hoje .hoje-nivel { color: var(--ouro); }
.hoje-btn { white-space: nowrap; align-self: center; }
.hoje-aniv { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.hoje-aniv li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 6px 0; border-top: 1px solid var(--linha); }
@media (max-width: 560px) {
  .hoje-item { grid-template-columns: 40px 1fr; }
  .hoje-ic { width: 40px; height: 40px; }
  .hoje-btn { grid-column: 2; justify-self: start; }
}

.faixa-cortesia { background: var(--ouro-fundo); border-color: color-mix(in srgb, var(--ouro) 35%, transparent); }
.faixa-cortesia a { color: var(--vinho-texto); font-weight: 700; }

/* Configurações → extras */
.extras-cfg { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--linha); display: flex; flex-direction: column; gap: 12px; }
.extras-tit { font-size: 17px; margin: 0; }
.extras-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.extra-cfg { border: 1px solid var(--linha); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; background: var(--painel); }
.extra-cfg h3 { font-size: 16px; margin: 0; }
.extra-cfg p { margin: 0; }
.extra-cfg .btn { align-self: flex-start; margin-top: auto; }
.extra-cfg.indisponivel { background: var(--fundo); }
.extra-preco { font: 700 18px var(--serif); }
.extra-motivo { color: var(--texto-2); margin-top: auto !important; padding-top: 4px; }
.extras-aviso { background: var(--vinho-fundo); border-radius: 12px; padding: 14px 16px; display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.extras-aviso p { margin: 0; flex: 1 1 280px; }
.extras-pend { background: var(--ouro-fundo); border-radius: 12px; padding: 12px 16px; }
.extras-pend h3 { font-size: 15px; margin: 0 0 6px; }
.extras-pend ul { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.extras-pend li { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.extras-pend small { display: block; }

/* página de ciência (exclusao.html) */
.ciencia-caixa { background: var(--painel); border: 1px solid var(--linha); border-radius: 14px; padding: 20px 22px; display: flex; flex-direction: column; gap: 14px; }
.ciencia-caixa p { margin: 0; }
.ciencia-caixa h2 { font-size: 20px; margin: 0; }
.ciencia-ok { border-color: color-mix(in srgb, var(--sucesso) 45%, transparent); }
.ciencia-aceite { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: start; padding: 14px; border-radius: 10px; background: var(--vinho-fundo); cursor: pointer; line-height: 1.5; }
.ciencia-aceite input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--vinho); }

/* tela de gabinete suspenso */
.suspenso-passos { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; text-align: left; font-size: 15px; }
.suspenso-passos li { display: grid; grid-template-columns: 22px 1fr; gap: 8px; }
.suspenso-passos li::before { content: '•'; color: var(--vinho-texto); font-weight: 700; text-align: center; }
.enviar-confirma { margin-top: 16px; padding: 14px 16px; border-radius: 12px; background: var(--ouro-fundo); }
.enviar-confirma p { margin: 0 0 10px; }

/* Indicações: temas que abrem e fecham */
.ordem-ind { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 8px; flex-wrap: wrap; }
.grupo-enviar { background: var(--vinho-fundo); border-radius: 16px; padding: 16px 18px 18px; }
.grupo-enviar h2 { margin-bottom: 4px; }
.grupo-enviar > p { margin-bottom: 12px; }
.grupo-ind { margin-top: 20px; }
.grupo-ind h2 { margin-bottom: 10px; }
.tema-toggle { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; width: 100%; background: none; border: 0; border-bottom: 1px solid var(--linha); padding: 6px 2px 10px; color: var(--texto); font: inherit; text-align: left; cursor: pointer; }
.tema-toggle:hover { color: var(--vinho-texto); }
.tema-toggle .contador { margin-left: 0; }
.tema-toggle .seta { width: 0; height: 0; border-left: 7px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; transition: transform .2s; }
.tema-toggle[aria-expanded="true"] .seta { transform: rotate(90deg); }
.resumo-tema { font: 400 14px var(--sans); color: var(--texto-2); margin-left: auto; }
@media (max-width: 640px) { .resumo-tema { margin-left: 22px; width: 100%; } }
@media (prefers-reduced-motion: reduce) { .tema-toggle .seta { transition: none; } }
.aba-nova { display: inline-flex; align-items: center; gap: 6px; color: var(--vinho-texto) !important; }
.nova-ind { margin-top: 16px; }
.nova-ind h2 { font-size: 21px; margin-bottom: 4px; }
.nova-ind > p { margin-bottom: 16px; }
.abas-filtro { overflow-x: auto; scrollbar-width: none; }
.abas-filtro::-webkit-scrollbar { display: none; }
.abas-filtro button { white-space: nowrap; flex-shrink: 0; }
@media (max-width: 520px) { .abas-filtro button { padding: 10px 10px; font-size: 14px; } .aba-nova { margin-left: auto; } }

/* Cabeçalho: minutos de voz e instalar o app */
.voz-saldo { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--linha); background: transparent; color: var(--texto); font: 400 14px var(--sans); cursor: pointer; white-space: nowrap; }
.voz-saldo strong { font-size: 15px; color: var(--vinho-texto); }
.voz-saldo .ic { color: var(--vinho-texto); }
.voz-saldo:hover { border-color: var(--vinho-texto); }
.voz-saldo.pouco { background: var(--ouro-fundo); border-color: transparent; }
.voz-saldo.pouco strong, .voz-saldo.pouco .ic { color: var(--ouro); }
@media (max-width: 520px) { .voz-un { display: none; } .voz-saldo { padding: 0 10px; } }
.voz-total { font-size: 16px; margin-bottom: 14px !important; }
.voz-total strong { font: 700 30px var(--serif); color: var(--vinho-texto); }
.voz-bloco { border: 1px solid var(--linha); border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; display: flex; flex-direction: column; gap: 6px; }
.voz-bloco p { margin: 0 !important; }
.voz-linha { display: flex; justify-content: space-between; gap: 10px; }
.voz-barra { height: 8px; border-radius: 99px; background: var(--fundo); overflow: hidden; }
.voz-barra span { display: block; height: 100%; background: var(--vinho); border-radius: 99px; }
.tema-canto { display: flex; gap: 8px; }
.passos-instalar { margin: 0 0 18px; padding-left: 20px; display: flex; flex-direction: column; gap: 8px; }

/* Ed: fichas para conferir */
.ed-pendentes { background: var(--vinho-fundo); border-radius: 14px; padding: 12px 16px; margin-bottom: 16px; }
.ed-pendentes > strong { display: flex; align-items: center; gap: 8px; color: var(--vinho-texto); }
.ed-pendentes ul { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ed-pendentes li { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.ed-ficha { background: var(--ouro-fundo); border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; font-size: 15px; }
.ed-ficha p { margin: 0; }
.ed-ficha p .ic { vertical-align: -3px; margin-right: 4px; color: var(--vinho-texto); }
.ed-ficha details { margin-top: 8px; }
.ed-ficha summary { cursor: pointer; font-weight: 600; font-size: 14px; }

/* Foto do vereador (Configurações) */
.rotulo-campo { display: block; font-weight: 600; font-size: 15px; margin-bottom: 6px; }
.foto-ver { display: flex; gap: 14px; align-items: center; }
.foto-ver-prev { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; background: var(--vinho-fundo); display: grid; place-items: center; flex-shrink: 0; border: 1px solid var(--linha); }
.foto-ver-prev img { width: 100%; height: 100%; object-fit: cover; }
.foto-ver-prev span { font: 700 26px var(--serif); color: var(--vinho-texto); }
.foto-ver-acoes { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.foto-ver-acoes p { margin: 0; }

/* Redes sociais */
.post-livre { margin-top: 18px; }
.post-livre h2, .tit-sug { font-size: 19px; margin-bottom: 10px; }
.tit-sug { margin-top: 24px; }
.post-livre textarea { width: 100%; }
.lista-sug { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 8px; }
.lista-sug > li.texto-2 { grid-column: 1 / -1; }
.sug button { height: 100%; }
.sug button { width: 100%; text-align: left; background: var(--painel); border: 1px solid var(--linha); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 4px; color: var(--texto); font: inherit; cursor: pointer; }
.sug button:hover { border-color: var(--vinho-texto); }
.sug.ativa button { border-color: var(--vinho); box-shadow: 0 0 0 2px var(--vinho-fundo); }
.sug.feito button { opacity: .7; }
.sug strong { font-size: 15px; line-height: 1.35; }
.selo-sug { align-self: flex-start; font: 700 11.5px var(--sans); letter-spacing: .04em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; background: var(--fundo); color: var(--texto-2); }
.sug-data { background: var(--ouro-fundo); color: var(--ouro); }
.sug-ind_protocolada, .sug-ind_aprovada_plenario { background: var(--vinho-fundo); color: var(--vinho-texto); }
.sug-ind_concluida { background: color-mix(in srgb, var(--sucesso) 15%, transparent); color: var(--sucesso); }
.datas-gab { margin-top: 18px; }
.datas-gab summary { cursor: pointer; font-weight: 600; }
.datas-gab p { margin: 8px 0; }
.lista-datas { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 15px; }
.lista-datas li { display: flex; justify-content: space-between; gap: 10px; }
.form-data { display: flex; gap: 8px; flex-wrap: wrap; }
.form-data input { font: 400 15px var(--sans); padding: 8px 10px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); }
.form-data #dDia { width: 80px; }
.form-data #dTit { flex: 1 1 160px; }
.editor-post { scroll-margin-top: calc(var(--cab) + 12px); margin-top: 8px; }
.ed-grade { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 24px; align-items: start; }
@media (max-width: 760px) { .ed-grade { grid-template-columns: 1fr; } }
.ed-textos .campo input { width: 100%; }
.foto-post { width: 100%; max-width: 360px; display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.rotulo-foto { margin: 0; font-size: 14px; font-weight: 600; }
.foto-post-botoes { display: flex; flex-wrap: wrap; gap: 6px; }
.foto-post-botoes .btn { cursor: pointer; }
.foto-post-botoes .btn.ativo { border-color: var(--vinho-texto); color: var(--vinho-texto); background: var(--vinho-fundo); opacity: 1; }
.campo-faixa { display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.campo-faixa input { width: 100%; accent-color: var(--vinho); }
.vazio-editor { padding: 6px 4px; color: var(--texto-2); display: flex; align-items: center; gap: 14px; }
.vazio-editor p { margin: 0 0 2px; }
.ed-topo { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 12px; }
.ed-topo h2 { font-size: 17px; margin-top: 6px; line-height: 1.35; }
.ed-tom { display: flex; gap: 8px; align-items: center; }
.ed-tom select { font: 400 14px var(--sans); padding: 7px 10px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); }
.arte-caixa { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-bottom: 14px; }
.arte { width: 100%; max-width: 360px; height: auto; border-radius: 10px; box-shadow: var(--sombra); background: #6E0303; }
.abas-mini { display: inline-flex; gap: 4px; background: var(--fundo); padding: 4px; border-radius: 10px; margin-bottom: 8px; }
.abas-mini button { border: 0; background: none; padding: 6px 12px; border-radius: 8px; font: 600 14px var(--sans); color: var(--texto-2); cursor: pointer; }
.abas-mini button.ativa { background: var(--painel); color: var(--vinho-texto); box-shadow: 0 1px 3px rgba(0,0,0,.1); }
#edTexto { width: 100%; font: 400 15px/1.5 var(--sans); padding: 10px 12px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); }
.aviso-post { margin-top: 10px; }

/* Olho da senha */
.senha-caixa { position: relative; display: block; }
.senha-caixa input { width: 100%; padding-right: 48px !important; }
.senha-olho { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; background: none; color: var(--texto-2); border-radius: 8px; display: grid; place-items: center; cursor: pointer; }
.senha-olho:hover { color: var(--texto); }
.senha-olho:focus-visible { outline: 2px solid var(--vinho-texto); outline-offset: -2px; }

/* Código do Ed (para mandar à mão) */
.ed-codigo-caixa { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; background: var(--fundo); border-radius: 12px; padding: 12px 14px; margin: 10px 0; }
.ed-codigo { font: 700 26px/1.2 ui-monospace, Menlo, Consolas, monospace; letter-spacing: .12em; color: var(--vinho-texto); user-select: all; }

/* Linha Direta → Minha página */
.ld-abas { margin-top: 4px; }
.vp-pag { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 16px; align-items: start; }
.vp-pag .painel h2 { font-size: 18px; margin-bottom: 6px; }
.vp-pag .painel > p { margin: 0 0 12px; }
.vp-pag .campo input, .vp-pag .campo textarea { width: 100%; }
.vp-endereco { display: flex; align-items: center; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); overflow: hidden; margin-bottom: 10px; }
.vp-endereco:focus-within { border-color: var(--vinho-texto); }
.vp-prefixo { padding: 10px 0 10px 12px; color: var(--texto-2); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 60%; }
.vp-endereco input { flex: 1; min-width: 0; border: 0; background: none; padding: 10px 12px 10px 2px; font: 600 15px var(--sans); color: var(--texto); }
.vp-endereco input:focus { outline: none; }
.vp-chave { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-weight: 600; font-size: 15px; cursor: pointer; }
.vp-chave input { width: 18px; height: 18px; accent-color: var(--vinho); }
.vp-foto { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.vp-foto p { margin: 0; }
.vp-foto-miniatura { width: 64px; height: 64px; border-radius: 50%; overflow: hidden; background: var(--fundo); display: grid; place-items: center; color: var(--texto-2); flex-shrink: 0; border: 2px solid var(--linha); }
.vp-foto-miniatura img { width: 100%; height: 100%; object-fit: cover; }
.vp-redes { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 0 12px; }
.vp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.vp-chip { display: inline-flex; align-items: center; gap: 4px; background: var(--vinho-fundo); color: var(--vinho-texto); border-radius: 999px; padding: 4px 6px 4px 12px; font-size: 14px; font-weight: 600; }
.vp-chip:not(:has(button)) { padding-right: 12px; }
.vp-chip button { border: 0; background: none; color: inherit; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; cursor: pointer; }
.vp-chip button:hover { background: color-mix(in srgb, var(--vinho) 15%, transparent); }
.vp-temas { border: 0; padding: 0; margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.vp-temas legend { font-size: 14px; font-weight: 600; margin-bottom: 6px; padding: 0; }
.vp-tema input { position: absolute; opacity: 0; pointer-events: none; }
.vp-tema span { display: inline-block; padding: 6px 12px; border: 1.5px solid var(--linha); border-radius: 999px; font-size: 14px; cursor: pointer; color: var(--texto-2); }
.vp-tema input:checked + span { border-color: var(--vinho-texto); background: var(--vinho-fundo); color: var(--vinho-texto); font-weight: 600; }
.vp-tema input:focus-visible + span { outline: 2px solid var(--vinho-texto); outline-offset: 2px; }
.vp-tema input:disabled + span { cursor: default; }
.vp-numeros { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.vp-numeros div { background: var(--fundo); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 2px; }
.vp-numeros strong { font: 700 24px var(--serif); color: var(--vinho-texto); }
.vp-numeros span { font-size: 13px; color: var(--texto-2); line-height: 1.3; }
.vp-salvar { position: sticky; bottom: 0; display: flex; justify-content: flex-end; align-items: center; gap: 12px; padding: 14px 0; margin-top: 8px; background: linear-gradient(transparent, var(--fundo) 30%); flex-wrap: wrap; }
.vp-salvar .form-erro { margin: 0; flex: 1 1 200px; }
.vp-camara { grid-column: 1 / -1; }
.vp-camara-busca { display: flex; gap: 8px; flex-wrap: wrap; }
.vp-camara-busca input { flex: 1 1 260px; min-width: 0; }
.vp-camara-sit { margin: 0 0 10px; color: var(--sucesso); display: flex; gap: 6px; align-items: center; }
.vp-camara-sit:empty { display: none; }
.vp-avisos { margin: 0 0 12px; padding: 10px 14px 10px 28px; background: var(--ouro-fundo); border-radius: 10px; color: var(--texto); }
.vp-camara-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 12px; }
.vp-comissoes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.vp-comissoes li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 12px; background: var(--fundo); border-radius: 10px; }
.vp-numeros small { font-size: 11px; }

/* Linha Direta → Rede e comunicados */
.rede-grade { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
@media (max-width: 980px) { .rede-grade { grid-template-columns: 1fr; } }
.rede-publicar h2 { font-size: 18px; margin-bottom: 6px; }
.rede-publicar .campo input, .rede-publicar .campo textarea { width: 100%; }
.rede-publico { border: 0; padding: 0; margin: 4px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rede-publico legend { font-size: 14px; font-weight: 600; margin-bottom: 6px; padding: 0; }
.rede-publico .vp-temas { width: 100%; margin-top: 4px; }
.rede-alcance { display: flex; align-items: center; gap: 6px; margin: 12px 0 0; font-size: 15px; }
.rede-canal { display: flex; gap: 8px; align-items: flex-start; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--linha); color: var(--texto-2); }
.rede-canal .ic { flex-shrink: 0; margin-top: 2px; color: var(--sucesso); }
.rede-numeros { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.rede-numeros .painel { margin: 0; }
.rede-numeros h3 { font-size: 15px; margin-bottom: 8px; }
.rede-destaque { grid-column: 1 / -1; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.rede-destaque p { margin: 0; }
.rede-rot { font-size: 14px; font-weight: 600; color: var(--texto-2); }
.rede-grande { font: 700 44px/1.1 var(--serif); color: var(--vinho-texto); }
.rede-mais { color: var(--sucesso); font-weight: 700; }
.rede-menos { color: var(--erro); font-weight: 700; }
.rede-graf { width: 220px; max-width: 100%; height: 64px; }
.rg-area { fill: var(--vinho-fundo); stroke: none; }
.rg-linha { fill: none; stroke: var(--vinho-texto); stroke-width: 2.5; stroke-linejoin: round; stroke-linecap: round; }
.rg-ponto { fill: var(--vinho-texto); }
.rg-txt { font: 400 10px var(--sans); fill: var(--texto-2); }
.rede-linha { margin: 0 0 8px; font-size: 14px; line-height: 1.45; }
.rede-linha strong { font-size: 17px; color: var(--vinho-texto); }
.rede-barras { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 7px; font-size: 13px; }
.rede-barras li { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(36px, 1fr) auto; gap: 8px; align-items: center; }
.rb-nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rb-barra { height: 8px; background: var(--fundo); border-radius: 99px; overflow: hidden; }
.rb-barra span { display: block; height: 100%; background: var(--vinho-texto); border-radius: 99px; min-width: 2px; }
.rb-num { font-weight: 700; text-align: right; white-space: nowrap; }
.rb-num small { font-weight: 400; color: var(--texto-2); }
@media (max-width: 560px) { .rede-numeros { grid-template-columns: 1fr; } }
.rede-tit { font-size: 19px; margin: 26px 0 10px; }
.rede-kpis { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(200px, 46%), 1fr)); gap: 10px; }
@media (max-width: 560px) { .rede-kpi strong { font-size: 24px; } .rede-kpi span { font-size: 13px; } }
.rede-kpi { margin: 0; display: flex; flex-direction: column; gap: 2px; }
.rede-kpi strong { font: 700 28px/1.15 var(--serif); color: var(--vinho-texto); }
.rede-kpi span { font-size: 14px; font-weight: 600; line-height: 1.3; }
.rede-kpi small { font-size: 12.5px; color: var(--texto-2); line-height: 1.35; margin-top: 2px; }
.rede-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.rede-item { margin: 0; }
.rede-item h3 { font-size: 16px; margin: 6px 0; line-height: 1.35; }
.rede-item p { margin: 0 0 6px; }
.rede-item-topo { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ev-vp { display: flex; align-items: center; gap: 6px; color: var(--sucesso); }

/* ---------------- Cancelar a assinatura (Configurações → Plano) ---------------- */
.cancel-cfg { margin-top: 18px; }
.cancel-det { border-top: 1px solid var(--linha); padding-top: 14px; }
.cancel-det summary { cursor: pointer; color: var(--texto-2); font-size: 14px; }
.cancel-det[open] summary { margin-bottom: 10px; }
.cancel-det p { margin: 0 0 10px; }
.cancel-det .btn-perigo { margin-left: 0; }
.cancel-aviso { background: var(--ouro-fundo); border-radius: 12px; padding: 14px 16px; }
.cancel-aviso h3 { margin: 0 0 6px; font-size: 16px; }
.cancel-aviso p { margin: 0 0 8px; }
#dCancel .btn-perigo { margin-left: 0; }
#dCancel .opcoes label span { line-height: 1.35; }

/* ---------------- Avisos do admin (Dashboard) ---------------- */
.avisos-adm { display: flex; flex-direction: column; gap: 12px; margin-bottom: 18px; }
.avisos-adm:empty { display: none; }
.aviso-adm { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 14px; background: var(--vinho-fundo);
  border: 1px solid color-mix(in srgb, var(--vinho-texto) 30%, transparent); transition: opacity .25s, transform .25s; }
.aviso-adm.saindo { opacity: 0; transform: translateY(-6px); }
.aviso-adm-ic { color: var(--vinho-texto); flex-shrink: 0; margin-top: 2px; }
.aviso-adm-corpo { flex: 1; min-width: 0; }
.aviso-adm h2 { font-size: 17px; margin: 0 0 6px; }
.aviso-adm p { margin: 0 0 12px; white-space: pre-line; overflow-wrap: anywhere; }
.aviso-adm a { color: var(--vinho-texto); font-weight: 600; }
.aviso-adm-pe { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; }

/* ---------------- Atendimentos: pessoas por bairro ---------------- */
.bx { margin-bottom: 18px; }
.bx-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.bx-cab h2 { margin: 0 0 2px; }
.bx-ctrl { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bx-ctrl .abas-mini { margin: 0; }
.bx-ctrl select { font: 400 14px var(--sans); padding: 7px 10px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); }
.bx.recolhido .bx-ctrl .abas-mini, .bx.recolhido .bx-ctrl select { display: none; }
.bx-barras { list-style: none; margin: 14px 0 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.bx-linha { display: grid; grid-template-columns: minmax(90px, 160px) 1fr 76px; align-items: center; gap: 10px; padding: 2px 0; border-radius: 6px; }
.bx-linha:hover { background: var(--fundo); }
.bx-nome { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bx-trilho { position: relative; height: 18px; }
.bx-barra { position: absolute; left: 0; top: 2px; bottom: 2px; background: var(--vinho-texto); border-radius: 0 4px 4px 0; transition: width .35s ease; }
.bx-linha.abaixo .bx-barra { background: color-mix(in srgb, var(--vinho-texto) 42%, transparent); }
.bx-linha.sem .bx-barra { background: var(--linha); }
.bx-linha.sem .bx-nome { color: var(--texto-2); font-style: italic; }
.bx-media { position: absolute; top: -3px; bottom: -3px; width: 0; border-left: 2px dashed var(--texto-2); opacity: .55; }
.bx-valor { font-size: 14px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bx-valor .texto-2 { font-size: 12px; }
.bx-pe { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.bx-leg-media { display: inline-block; width: 0; height: 12px; border-left: 2px dashed var(--texto-2); opacity: .55; vertical-align: -2px; margin: 0 4px 0 2px; }
@media (max-width: 600px) {
  .bx-linha { grid-template-columns: minmax(80px, 34%) 1fr 64px; gap: 8px; }
  .bx-ctrl { width: 100%; }
  .bx-ctrl select { flex: 1; }
}

.bx-legenda { display: inline-flex; flex-wrap: wrap; gap: 4px 14px; align-items: center; }
.bx-leg-cor { display: inline-block; width: 14px; height: 10px; border-radius: 2px; background: var(--vinho-texto); vertical-align: -1px; margin-right: 4px; }
.bx-leg-cor.abaixo { background: color-mix(in srgb, var(--vinho-texto) 42%, transparent); }

.vp-mandatos { background: var(--fundo); border: 1px solid var(--linha); border-radius: 10px; padding: 10px 12px; margin: 4px 0 8px; display: flex; gap: 6px; align-items: flex-start; }
.vp-mandatos svg { flex-shrink: 0; margin-top: 2px; color: var(--vinho-texto); }

/* Suporte 24h (menu lateral e menu da conta) */
.item-suporte { margin-top: 10px; border-top: 1px solid var(--linha); padding-top: 12px; color: #1F8F4E;
  position: sticky; bottom: -12px; background: var(--painel); border-radius: 0; margin-bottom: -12px; padding-bottom: 14px; z-index: 1; }
.item-suporte:hover { background: var(--painel); text-decoration: underline; }
.menu-usuario a.item-sair { text-decoration: none; color: inherit; }

/* ---------------- Demandas: mapa de calor ---------------- */
.mapa-dem { margin-bottom: 16px; }
.mapa-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.mapa-cab h2 { margin: 0 0 2px; }
.mapa-ctrl { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.mapa-ctrl select { font: 400 14px var(--sans); padding: 7px 10px; border: 1.5px solid var(--linha); border-radius: 10px; background: var(--painel); color: var(--texto); }
.mapa-dem.recolhido .mapa-ctrl select, .mapa-dem.recolhido #mapaAjustar { display: none; }
#mapaAjustar[aria-pressed="true"] { font-weight: 700; }
.mapa { height: 340px; margin-top: 12px; border-radius: 12px; border: 1px solid var(--linha); overflow: hidden; z-index: 0; background: var(--fundo); }
.mapa.colocando { cursor: crosshair; }
.mapa-pe { display: flex; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; margin-top: 8px; }
.mapa-escala { display: inline-block; width: 70px; height: 8px; border-radius: 99px; vertical-align: 0; background: linear-gradient(90deg, #F2C230, #F08A24, #D9480F, #9B1C1C); margin-right: 4px; }
.mapa-rotulo { background: none; border: 0; }
.mapa-rotulo span { display: grid; place-items: center; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 999px; background: #fff; color: #5a1010; border: 2px solid #9B1C1C; font: 700 13px var(--sans); box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: translate(-50%, -50%); cursor: pointer; }
.mapa-rotulo small { position: absolute; left: 50%; top: 16px; transform: translateX(-50%); white-space: nowrap; font: 600 11px var(--sans); color: #2a1a1a; text-shadow: 0 0 3px #fff, 0 0 3px #fff, 0 0 3px #fff; pointer-events: none; }
:root[data-theme="dark"] .mapa-rotulo small { color: #f5eaea; text-shadow: 0 0 3px #000, 0 0 3px #000, 0 0 3px #000; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mapa-rotulo small { color: #f5eaea; text-shadow: 0 0 3px #000, 0 0 3px #000, 0 0 3px #000; } }
.mapa .leaflet-tile-pane { filter: grayscale(.75) contrast(.95) brightness(1.03); }
:root[data-theme="dark"] .mapa .leaflet-tile-pane { filter: grayscale(1) invert(1) brightness(.85) contrast(.9); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mapa .leaflet-tile-pane { filter: grayscale(1) invert(1) brightness(.85) contrast(.9); } }
@media (max-width: 600px) { .mapa { height: 280px; } .mapa-ctrl { width: 100%; } .mapa-ctrl select { flex: 1; } }

/* Sair no topo (ao lado da conta) */
.btn-sair-topo { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 12px; border-radius: 10px; border: 1px solid var(--linha); background: transparent; color: var(--texto); font: 500 14px var(--sans); cursor: pointer; white-space: nowrap; }
.btn-sair-topo:hover { border-color: var(--vinho-texto); color: var(--vinho-texto); }
.btn-sair-topo:focus-visible { outline: 2px solid var(--vinho-texto); outline-offset: 2px; }
@media (max-width: 900px) { .btn-sair-topo span { display: none; } .btn-sair-topo { width: 40px; padding: 0; justify-content: center; } }
@media (max-width: 420px) { .cab { gap: 8px; padding: 0 10px; } .cab-dir { gap: 6px; } .marca-nome { display: none; } }
