:root{
  /* Paleta DARPE — azul escuro (marca). As variaveis mantem o nome --verde*
     por compatibilidade, mas agora sao azul-marinho. */
  --verde:#16356b; --verde-esc:#0f244a; --verde-claro:#e7edf6;
  --cinza:#647084; --cinza-claro:#f2f5fa; --borda:#d8e0ec;
  --vermelho:#c0392b; --amarelo:#b8860b; --azul:#2563a8;
  --branco:#fff; --texto:#1c2533; --radius:12px;
  --sombra:0 1px 3px rgba(15,36,74,.10),0 1px 2px rgba(15,36,74,.08);
}
*{box-sizing:border-box}
body{margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--cinza-claro);color:var(--texto);line-height:1.45}
a{color:var(--verde);text-decoration:none}
a:hover{text-decoration:underline}

/* Topbar */
.topbar{background:var(--verde);color:#fff;position:sticky;top:0;z-index:30;
  box-shadow:var(--sombra)}
.topbar-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;
  gap:16px;padding:10px 16px}
.brand{color:#fff;display:inline-flex;flex-direction:column;line-height:1;gap:2px}
.brand:hover{text-decoration:none;opacity:.95}
.brand-main{font-weight:800;font-size:1.3rem;letter-spacing:.06em}
/* "CAMPO MOURAO" pequeno, esticado para acompanhar a largura do DARPE */
.brand-sub{font-size:.5rem;font-weight:600;letter-spacing:.34em;opacity:.9;
  margin-left:.04em;white-space:nowrap}
.nav{display:flex;gap:4px;flex-wrap:nowrap;margin-left:auto;align-items:center;min-width:0}
.nav-links{display:flex;gap:4px;flex-wrap:nowrap;overflow:hidden;flex:1 1 auto;min-width:0}
.mais-wrap{position:relative;flex:0 0 auto}
.mais-btn{background:rgba(255,255,255,.14);color:#fff;border:none;border-radius:8px;
  font-size:1.1rem;line-height:1;padding:6px 12px;cursor:pointer}
.mais-menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:10px;
  box-shadow:0 8px 24px rgba(15,36,74,.25);display:flex;flex-direction:column;
  min-width:190px;padding:6px;z-index:60}
.mais-wrap:not(.aberto) .mais-menu{display:none}
.nav a{color:#eaf5ef;padding:7px 12px;border-radius:8px;font-size:.92rem}
.nav a:hover{background:rgba(255,255,255,.14);text-decoration:none}
.nav a.ativo{background:rgba(255,255,255,.22);color:#fff;font-weight:600}
/* menu overflow (⋯): fundo branco -> texto escuro (depois do .nav a p/ vencer) */
.mais-menu a{color:var(--verde-esc);padding:9px 12px;border-radius:8px;font-size:.92rem}
.mais-menu a:hover{background:var(--verde-claro);color:var(--verde-esc);text-decoration:none}
.mais-menu a.ativo{background:var(--verde-claro);color:var(--verde-esc);font-weight:600}
/* dropdown de Cadastros/Sistema na barra (some no print) */
.nav-cad{flex:0 0 auto}
.nav-cad>summary{white-space:nowrap}
.nav-cad .menu-pop{min-width:230px}
.menu-pop .menu-sec{display:block;padding:8px 12px 2px;font-size:.7rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.04em;color:#90a0bb}
.user-chip{display:flex;align-items:center;gap:8px;color:#eaf5ef;font-size:.85rem}
.user-chip img{width:28px;height:28px;border-radius:50%}
/* Sair: icone SVG (sempre renderiza) + texto opcional */
.nav-sair{display:inline-flex;align-items:center;gap:6px;color:#eaf5ef;
  padding:7px 10px;border-radius:8px}
.nav-sair:hover{background:rgba(255,255,255,.14);text-decoration:none}
.nav-sair-txt{display:none}
/* Hamburguer (so aparece no mobile) */
.nav-burger{display:none;margin-left:auto;background:rgba(255,255,255,.16);
  color:#fff;border:none;border-radius:9px;padding:6px 9px;cursor:pointer;
  align-items:center;justify-content:center}

/* Container */
.container{max-width:1100px;margin:0 auto;padding:20px 16px 60px}
h1{font-size:1.5rem;margin:0 0 4px}
h2{font-size:1.15rem;margin:24px 0 10px;color:var(--verde-esc)}
.sub{color:var(--cinza);margin:0 0 18px}

/* Cards / grid */
.grid{display:grid;gap:14px}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.grid-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.card{background:#fff;border:1px solid var(--borda);border-radius:var(--radius);
  padding:16px;box-shadow:var(--sombra)}
.card h3{margin:0 0 8px;font-size:1rem;color:var(--verde-esc)}

/* Stat cards */
.stat{display:flex;flex-direction:column;gap:2px}
.stat .num{font-size:1.9rem;font-weight:700;color:var(--verde)}
.stat .lbl{color:var(--cinza);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}
.stat.alerta .num{color:var(--vermelho)}
/* Painel: cards crescem com a tela no desktop (numero escala com a largura) */
.painel-stats .stat .num{font-size:clamp(1.9rem,2.4vw,3rem);line-height:1.05}
@media(min-width:1000px){
  .painel-stats{gap:18px}
  .painel-stats .card.stat{padding:26px 24px}
  .painel-stats .stat .num{font-size:clamp(2.4rem,3.2vw,3.8rem)}
  .painel-stats .stat .lbl{font-size:.92rem}
  .painel-stats .card.stat .stat-mais{font-size:.82rem;margin-top:10px}
}

/* Tabelas */
table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--sombra)}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--borda);font-size:.9rem;vertical-align:top}
th{background:var(--verde-claro);color:var(--verde-esc);font-weight:600;white-space:nowrap}
tr:last-child td{border-bottom:none}
tr:hover td{background:#fafbfa}

/* Botoes */
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--verde);color:#fff;
  border:none;border-radius:8px;padding:9px 16px;font-size:.9rem;cursor:pointer;
  font-weight:600;transition:.15s}
.btn:hover{background:var(--verde-esc);text-decoration:none}
.btn.sec{background:#fff;color:var(--verde);border:1px solid var(--verde)}
.btn.sec:hover{background:var(--verde-claro)}
.btn.peq{padding:6px 11px;font-size:.82rem}
.btn.cinza{background:#eceeed;color:#444}.btn.cinza:hover{background:#e0e3e1}
.btn.vermelho{background:var(--vermelho)}.btn.vermelho:hover{background:#9e2e22}
.btn.azul{background:var(--azul)}.btn.azul:hover{background:#21577a}
.btn-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* Forms */
.form-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
[hidden]{display:none!important}   /* hidden vence display:flex/grid dos .field/.card */
.field{display:flex;flex-direction:column;gap:5px}
/* etiquetas de fase no cadastro de colaborador */
.fase-tag{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;padding:3px 10px;border-radius:20px;margin-bottom:8px}
.fase-tag.fase1{background:#e7edf8;color:#2a3f73}
.fase-tag.fase2{background:#e7f6ec;color:#1f7a4d}
.field.full{grid-column:1/-1}
label{font-size:.84rem;font-weight:600;color:var(--verde-esc)}
input,select,textarea{font:inherit;padding:9px 11px;border:1px solid var(--borda);
  border-radius:8px;background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--verde-claro);border-color:var(--verde)}
textarea{resize:vertical;min-height:80px}
.hint{font-size:.78rem;color:var(--cinza)}
.check{flex-direction:row;align-items:center;gap:8px}
.check input{width:auto}

/* Badges */
.badge{display:inline-block;padding:3px 9px;border-radius:999px;font-size:.74rem;font-weight:600}
.b-ok{background:#e3f4ea;color:#1f7a48}
.b-erro{background:#fbe4e1;color:var(--vermelho)}
.b-pend{background:#f3eddb;color:var(--amarelo)}
.b-na{background:#eceeed;color:#777}
.b-info{background:#e3eef5;color:var(--azul)}
.b-batismo{background:#e7e1f5;color:#5a3ca8}
.b-local{background:#e3eef5;color:var(--azul)}
.b-regional{background:#eae2f6;color:#5a3ca8}
.b-presencial{background:#e3f4ea;color:#1f7a48}
.b-online{background:#e6eef7;color:#2b6cb0}
.b-mista{background:#f6ecd6;color:#8a6d1a}

/* Flash */
.flash{padding:12px 16px;border-radius:10px;margin-bottom:12px;font-size:.92rem;border:1px solid}
.flash.success{background:#e6f5ec;border-color:#bfe3cd;color:#1f7a48}
.flash.danger,.flash.error{background:#fbe4e1;border-color:#f3c4bd;color:var(--vermelho)}
.flash.warning{background:#fbf3dd;border-color:#eedcae;color:var(--amarelo)}
.flash.info{background:#e3eef5;border-color:#c4dcea;color:var(--azul)}

/* Util */
.muted{color:var(--cinza)}
.right{text-align:right}.center{text-align:center}
.nowrap{white-space:nowrap}
.mt{margin-top:18px}.mb{margin-bottom:18px}
.pill-filtros{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.pill-filtros a{padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--borda);font-size:.86rem}
.pill-filtros a.ativo{background:var(--verde);color:#fff;border-color:var(--verde)}
.empty{text-align:center;padding:40px 20px;color:var(--cinza)}
.empty .big{font-size:2.4rem;margin-bottom:8px}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.82rem;color:#444}
.pre{white-space:pre-wrap;font-size:.85rem;background:var(--cinza-claro);
  border:1px solid var(--borda);border-radius:8px;padding:10px}

/* PWA: botao instalar + dica iOS */
.btn-instalar{background:#fff;color:var(--verde);border:none;border-radius:8px;
  padding:6px 12px;font-weight:700;font-size:.85rem;cursor:pointer}
.btn-instalar:hover{background:var(--verde-claro)}
.ios-hint{position:fixed;left:12px;right:12px;bottom:12px;background:#fff;
  border:1px solid var(--borda);border-radius:12px;padding:14px 16px;
  box-shadow:0 8px 30px rgba(0,0,0,.25);z-index:50;font-size:.9rem}

@media(max-width:640px){
  .nav a{padding:6px 9px;font-size:.85rem}
  .user-chip span{display:none}
  h1{font-size:1.3rem}
  .container{padding:16px 12px 60px}
  /* tabelas largas rolam na horizontal em vez de estourar a tela */
  table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  .form-grid{grid-template-columns:1fr}
  .btn,.btn.peq{min-height:38px}      /* alvos de toque maiores */
  input,select,textarea{font-size:16px} /* evita zoom automatico no iOS */
}
/* Mobile: navegacao vira PAINEL (hamburguer) — topo limpo, sem itens espremidos */
@media(max-width:640px){
  .nav-burger{display:inline-flex}
  .topbar-inner{position:relative;gap:8px}
  .nav{position:absolute;top:100%;left:0;right:0;margin:0;display:none;
    flex-direction:column;align-items:stretch;gap:2px;background:var(--verde-esc);
    padding:10px;border-radius:0 0 16px 16px;box-shadow:0 14px 34px rgba(0,0,0,.35);
    max-height:82vh;overflow:auto}
  .nav.aberto{display:flex}
  .nav-links{flex-direction:column;overflow:visible;flex:0 0 auto;gap:2px}
  .nav a{padding:12px;font-size:1rem;border-radius:10px}
  .mais-wrap{display:none}                       /* tudo ja aparece no painel */
  .nav-cad{width:100%}
  .nav-cad>summary{padding:12px;border-radius:10px;background:rgba(255,255,255,.10);
    list-style:none}
  .nav-cad .menu-pop{position:static;box-shadow:none;min-width:0;margin:4px 0 0;
    background:rgba(255,255,255,.06);border-radius:10px}
  .nav-cad .menu-pop a{color:#eaf5ef}
  .nav-cad .menu-pop a:hover{background:rgba(255,255,255,.12);color:#fff}
  .menu-pop .menu-sec{color:#aebfdf}
  .user-chip{order:-1;padding:10px 12px;margin-bottom:4px;
    border-bottom:1px solid rgba(255,255,255,.16)}
  .user-chip span{display:inline}                /* mostra o nome dentro do painel */
  .btn-instalar{width:100%;margin-top:4px}
  .nav-sair{justify-content:center;background:rgba(255,255,255,.10);margin-top:4px}
  .nav-sair-txt{display:inline}
}
/* Standalone (app instalado): respeita a area segura do notch */
@media(display-mode:standalone){
  .topbar-inner{padding-top:max(10px,env(safe-area-inset-top))}
}

/* ---- Pilar Colaborador: credencial, chips de selecao, listas ---- */
.b-doc{background:#fbe7d6;color:#a9531a}
.credencial{border:1px solid var(--borda);border-radius:14px;overflow:hidden;
  background:#fff;box-shadow:0 6px 22px rgba(22,53,107,.10);max-width:620px}
.cred-faixa{background:var(--verde);color:#fff;display:flex;
  justify-content:space-between;gap:12px;padding:8px 16px;font-size:.72rem;
  letter-spacing:.04em;font-weight:600}
.cred-corpo{display:flex;gap:16px;padding:16px;align-items:flex-start}
.cred-dados{flex:1;min-width:0}
.cred-nome{font-size:1.25rem;font-weight:700;color:var(--verde-esc);margin-bottom:6px}
.cred-linha{font-size:.9rem;margin:2px 0}
.cred-qr{text-align:center;flex-shrink:0}
.cred-qr img{border:1px solid var(--borda);border-radius:8px;background:#fff}
.cred-qr small{display:block;color:var(--cinza);font-size:.72rem;margin-top:2px}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:6px;margin-top:6px}
.check-chip{display:flex;align-items:center;gap:7px;font-weight:500;
  background:var(--cinza-claro);border:1px solid var(--borda);border-radius:8px;
  padding:7px 10px;font-size:.86rem;cursor:pointer}
.check-chip input{width:auto;margin:0}
.check-chip:has(input:checked){background:var(--verde-claro);border-color:var(--verde)}
.lista-limpa{list-style:none;padding:0;margin:0}
.lista-limpa li{padding:7px 0;border-bottom:1px solid var(--borda);font-size:.92rem}
.lista-limpa li:last-child{border-bottom:none}
.h3-summary{cursor:pointer;color:var(--verde-esc);font-size:1rem}
/* Cartao do grupo (missao): letra grande + missao/entidade ao lado */
.grupo-card{display:flex;align-items:center;gap:18px;background:#fff;
  border:1px solid var(--borda);border-radius:14px;padding:16px 20px;
  box-shadow:0 6px 22px rgba(22,53,107,.10);max-width:680px}
.grupo-letra{flex-shrink:0;width:84px;height:84px;border-radius:14px;
  background:var(--verde);color:#fff;font-size:2.6rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;line-height:1}
.grupo-info{min-width:0}
.grupo-projeto{font-size:1.2rem;font-weight:700;color:var(--verde-esc)}
.grupo-entidade{font-size:1rem;color:#333;margin-top:1px}
.grupo-meta{color:var(--cinza);font-size:.85rem;margin-top:4px}
/* Agenda de missoes (lista elegante, agrupada por mes) */
.agenda-mes{font-size:.95rem;color:var(--cinza);margin:20px 0 8px;font-weight:600}
.agenda-item{display:flex;align-items:center;gap:14px;background:#fff;
  border:1px solid var(--borda);border-radius:12px;padding:10px 14px;
  margin-bottom:8px;color:inherit}
.agenda-item:hover{border-color:var(--verde);text-decoration:none;
  box-shadow:0 3px 12px rgba(22,53,107,.10)}
.ag-data{flex-shrink:0;width:44px;text-align:center;line-height:1.05}
.ag-data .ag-dia{display:block;font-size:1.45rem;font-weight:800;color:var(--verde-esc)}
.ag-data .ag-dow{font-size:.68rem;text-transform:uppercase;color:var(--cinza)}
.ag-data.hoje .ag-dia{color:var(--azul)}
.ag-letra{flex-shrink:0;width:40px;height:40px;border-radius:10px;
  background:var(--verde);color:#fff;font-weight:800;font-size:1.05rem;
  display:flex;align-items:center;justify-content:center}
.ag-corpo{flex:1;min-width:0}
.ag-titulo{font-weight:600;color:var(--verde-esc);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.ag-meta{font-size:.82rem;color:var(--cinza);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.ag-status{display:flex;gap:4px;flex-shrink:0}
.ag-status .dot{font-size:.66rem;font-weight:700;padding:2px 5px;border-radius:6px}
.dot.ok{background:#e3f4ea;color:#1f7a48}
.dot.err{background:#fde7e7;color:#c0392b}
.dot.pend{background:#eef0f4;color:#9aa3b2}
@media(max-width:640px){.ag-status{flex-direction:column;gap:3px}}
/* Painel: filtros, matrizes e cards de categoria */
.filtros-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filtros-bar select{max-width:230px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:720px){.grid-2{grid-template-columns:1fr}}
table.matriz{font-size:.86rem}
table.matriz th{background:var(--verde-claro)}
table.matriz td{text-align:center}
table.matriz td.tot{font-weight:700;background:#eef3fa;color:var(--verde-esc)}
table.matriz tr.linha-total th,table.matriz tr.linha-total td{background:var(--verde-claro);font-weight:700}
.card.cat{display:block;color:inherit}
.card.cat:hover{border-color:var(--verde);text-decoration:none;box-shadow:0 4px 16px rgba(22,53,107,.10)}
.card.cat .cat-num{font-size:1.8rem;font-weight:800;color:var(--verde);margin:2px 0 8px}
.card.cat .cat-num span{font-size:.8rem;font-weight:600;color:var(--cinza)}
.card.cat.alerta .cat-num{color:var(--vermelho)}
.card.cat .ver-mais{display:inline-block;margin-top:8px;font-size:.82rem;font-weight:600;color:var(--azul)}
.card.cat .lista-limpa li{display:flex;align-items:center;gap:8px;font-size:.84rem;padding:4px 0}
/* Paginas publicas (formularios compartilhados, sem login) */
body.publico{background:var(--cinza-claro)}
.pub-topo{background:var(--verde);color:#fff;padding:12px 18px;display:flex;
  flex-direction:column;gap:2px;line-height:1}
.pub-logo{font-weight:800;letter-spacing:.04em;font-size:1.1rem}
.pub-sub{font-size:.8rem;opacity:.85}
.pub-main{max-width:640px;padding-top:18px;padding-bottom:60px}
@media(max-width:640px){
  .cred-corpo{flex-direction:column-reverse;align-items:center;text-align:center}
  .cred-dados{text-align:left;width:100%}
}

/* Cards-hub (catalogo de geracao) com icone */
.card.cat .cat-ico{font-size:2rem;margin-bottom:6px}
.card.cat h3{margin:0 0 4px}

/* KPI cards (lista anual) */
.card.kpi{text-align:center}
.kpi-n{font-size:2rem;font-weight:800;color:var(--verde)}
.kpi-l{color:var(--cinza);font-size:.82rem;text-transform:uppercase;letter-spacing:.03em}
.mes-titulo{margin:22px 0 8px;border-bottom:2px solid var(--verde-claro);padding-bottom:4px}

/* Wizard (cadastro publico passo-a-passo) */
.wizard-dots{display:flex;gap:7px;justify-content:center;margin:6px 0 16px}
.wdot{width:9px;height:9px;border-radius:50%;background:#cfd8e6;transition:.2s}
.wdot.on{background:var(--verde);transform:scale(1.25)}
.wdot.done{background:var(--verde);opacity:.55}
.wizard-nav{display:flex;justify-content:space-between;gap:10px;margin-top:16px}
.wizard-nav .btn{min-width:120px;justify-content:center}
.wstep h3{margin-top:0}
.lbl{display:block;font-weight:600;font-size:.9rem;margin-bottom:6px}
input.erro,select.erro{border-color:var(--vermelho);box-shadow:0 0 0 2px rgba(200,40,40,.15)}

/* Escalas: cards prontos (resultado, read-only) */
.escala-cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}
@media(max-width:520px){.escala-cards{grid-template-columns:1fr}}
.escala-card{border:1px solid var(--borda);border-radius:14px;overflow:hidden;
  background:#fff;box-shadow:0 2px 10px rgba(22,53,107,.06)}
.escala-cab{display:flex;align-items:center;gap:12px;background:var(--verde);
  color:#fff;padding:12px 14px}
.escala-letra{flex:0 0 auto;width:58px;height:58px;border-radius:12px;background:#fff;
  color:var(--verde);font-weight:800;font-size:2rem;display:flex;align-items:center;
  justify-content:center}
.escala-cab-info{flex:1;min-width:0}
.escala-ent{font-weight:700;font-size:1.05rem;line-height:1.2}
.escala-meta{font-size:.8rem;opacity:.9;margin-top:2px}
.escala-acoes{display:flex;align-items:center;gap:6px}
.escala-acoes .foto-btn{position:static;color:#fff;font-size:1.1rem;opacity:.85}
.escala-coord{background:var(--verde-claro);padding:8px 14px;border-bottom:1px solid var(--borda)}
.escala-rotulo{display:block;font-size:.72rem;font-weight:700;letter-spacing:.06em;
  color:var(--verde-esc,#0e2146);text-transform:uppercase;margin-bottom:2px}
.escala-corpo{padding:4px 14px 10px}
.escala-linha{display:grid;grid-template-columns:28px 1fr auto;gap:4px 10px;
  align-items:baseline;padding:7px 0;border-bottom:1px solid #eef1f6}
.escala-linha:last-child{border-bottom:none}
.escala-linha.coord{grid-template-columns:1fr auto;padding:5px 0}
.escala-n{color:var(--verde);font-weight:700;font-size:.85rem}
.escala-nome{font-weight:600}
.escala-comum{grid-column:2;font-size:.78rem;color:var(--cinza)}
.escala-linha.coord .escala-comum{grid-column:1}
.escala-func{font-size:.78rem;color:var(--azul);text-align:right;white-space:nowrap}
.escala-vazia{padding:14px;color:var(--cinza);font-size:.88rem}
.escala-edit-linha{display:flex;justify-content:space-between;align-items:center;
  gap:10px;padding:7px 0;border-bottom:1px solid #eef1f6}
.escala-edit-linha:last-child{border-bottom:none}
.escala-edit-linha form{margin:0}

/* Missoes do colaborador: checkbox + funcao por missao na mesma linha */
.missao-linha{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  border-bottom:1px solid var(--borda);padding:5px 0}
.missao-item{border-bottom:1px solid var(--borda);padding:2px 0 6px}
.missao-item .missao-linha{border-bottom:0}
.escala-inline{margin:4px 0 6px 18px;padding-left:10px;border-left:2px solid var(--claro,#e7edf6)}
.escala-inline[hidden]{display:none}
.missao-linha .check-chip{flex:1 1 auto;min-width:160px}
/* Funcao precisa caber valores longos (ex.: "ATENDENTE AUXILIAR"): largura fixa
   maior e nao deixa a coluna da missao "comer" o espaco. */
.sel-funcao{flex:0 0 240px;width:240px;max-width:100%;font-size:.85rem}
@media(max-width:600px){.sel-funcao{flex-basis:100%;width:100%}}
/* Presenca no relatorio: marcado = presente; desmarcado = ausente (riscado) */
.check-chip.presente{transition:.15s}
.check-chip.ausente{opacity:.5;text-decoration:line-through;
  background:#f4d9d9;border-color:#e0a9a9}

/* Botao "compartilhar como foto" no canto do card de estatistica */
.card.stat{position:relative}
.foto-btn{position:absolute;top:8px;right:8px;border:none;background:transparent;
  cursor:pointer;font-size:1rem;opacity:.5;line-height:1;padding:2px}
.foto-btn:hover{opacity:1}
/* Selo "ao vivo" pulsante */
.ao-vivo{color:#1c8a4a;font-weight:700;font-size:.8rem;white-space:nowrap}
.ao-vivo::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;
  background:#1c8a4a;margin-right:5px;animation:pulso 1.6s infinite}
@keyframes pulso{0%{opacity:1}50%{opacity:.25}100%{opacity:1}}

/* Impressao (lista anual -> PDF pelo navegador) */
.no-print{}
@media print{
  .topbar,.no-print,.btn,.flash{display:none!important}
  .print-cab{display:block!important;margin-bottom:14px;font-size:.9rem}
  body{background:#fff}
  .card{box-shadow:none;border:1px solid #ccc}
  table.matriz{font-size:.8rem}
  a{color:#000;text-decoration:none}
}

/* ---- Grupos: chips na lista e cards no cracha ---- */
.grupo-chips{display:flex;flex-wrap:wrap;gap:4px}
.grupo-chip{display:inline-flex;align-items:center;justify-content:center;
  min-width:26px;height:24px;padding:0 7px;border-radius:6px;
  background:var(--verde-claro);color:var(--verde-esc);font-weight:700;
  font-size:.78rem;line-height:1;border:1px solid #c9d6ea}
.grupo-chip:hover{background:var(--verde);color:#fff;text-decoration:none}

.cred-grupos{border-top:1px dashed #c9d6ea;margin-top:12px;padding-top:10px}
.cred-grupos-rotulo{display:block;font-size:.72rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:#7286a6;margin-bottom:8px}
.grupo-cards{display:flex;flex-wrap:wrap;gap:8px}
.cracha-grupo{display:flex;align-items:center;gap:8px;background:var(--verde);
  color:#fff;border-radius:10px;padding:7px 12px 7px 8px;min-width:0;
  box-shadow:0 1px 3px rgba(15,36,74,.25)}
.cracha-grupo:hover{background:var(--verde-esc);text-decoration:none}
.cracha-grupo-letra{display:inline-flex;align-items:center;justify-content:center;
  min-width:30px;height:30px;border-radius:7px;background:rgba(255,255,255,.18);
  color:#fff;font-weight:800;font-size:.95rem}
.cracha-grupo-ent{font-size:.82rem;font-weight:600;color:#eaf1fb;
  max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* grupo ORFAO: escala de missao que nao esta em "Missoes que atende" */
.cracha-grupo.orfao{background:#8a5a00;box-shadow:0 0 0 2px #ffb020 inset}
.cracha-grupo.orfao:hover{background:#754c00}

/* ---- Filtros do modulo Escala ---- */
.escala-filtros{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;
  background:var(--verde-claro);border:1px solid #d4ddee;border-radius:10px;
  padding:12px 14px;margin:0 0 12px}
.escala-filtros .field{margin:0;flex:1 1 200px;min-width:160px}
.escala-filtros-acoes{display:flex;gap:8px;align-items:center}
.escala-resumo{background:#fff;border:1px solid var(--verde);border-left-width:4px;
  border-radius:8px;padding:10px 14px;margin:0 0 14px;color:var(--verde-esc)}
@media(max-width:600px){.escala-filtros .field{flex:1 1 100%}}

/* ---- Missoes realizadas: card de divulgacao ---- */
.agenda-item.realizada{cursor:default}
.agenda-item .ag-acoes{margin-left:auto;display:flex;align-items:center;gap:6px}

/* ---- Consentimento LGPD (cadastro publico) ---- */
.termo-lgpd{background:#f6f8fc;border:1px solid #d4ddee;border-radius:10px;
  padding:14px 16px;font-size:.92rem;line-height:1.5;color:#33405a}
.check-chip.consent{display:flex;gap:10px;align-items:flex-start;
  background:var(--verde-claro);border:1px solid var(--verde);border-radius:10px;
  padding:12px 14px}
.check-chip.consent input{margin-top:3px}

/* ---- Escala recolhida no detalhe da missao ---- */
.escala-resumo-det summary{list-style:none;cursor:pointer;display:flex;
  align-items:center;gap:12px;padding:8px;border:1px solid var(--borda);
  border-radius:10px;background:var(--verde-claro)}
.escala-resumo-det summary::-webkit-details-marker{display:none}
.escala-resumo-det .esc-letra{flex-shrink:0;width:44px;height:44px;border-radius:10px;
  background:var(--verde);color:#fff;font-weight:800;font-size:1.3rem;
  display:flex;align-items:center;justify-content:center;line-height:1}
.escala-resumo-det .esc-txt{font-size:.9rem}
.escala-resumo-det[open] summary{margin-bottom:6px}

/* ---- Painel: cards clicaveis + graficos de barras ---- */
.card.stat.tem-graf{cursor:pointer;transition:box-shadow .15s,transform .05s}
.card.stat.tem-graf:hover{box-shadow:0 8px 24px rgba(22,53,107,.16)}
.card.stat.ativo{outline:2px solid var(--verde)}
.card.stat .stat-mais{display:block;font-size:.72rem;color:var(--azul);margin-top:6px}
.graf-painel{background:#fff;border:1px solid var(--borda);border-radius:14px;
  padding:18px 20px;margin:0 0 16px;box-shadow:0 6px 22px rgba(22,53,107,.08)}
.graf-painel h3{margin:0 0 12px;color:var(--verde-esc)}
.graf{display:flex;flex-direction:column;gap:10px}
.graf-linha{display:grid;grid-template-columns:140px 1fr 48px;align-items:center;gap:10px}
.graf-lbl{font-size:.86rem;color:var(--verde-esc);font-weight:600;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.graf-bar{background:var(--verde-claro);border-radius:8px;height:22px;overflow:hidden}
.graf-fill{display:block;height:100%;background:linear-gradient(90deg,var(--azul),var(--verde));
  border-radius:8px;min-width:2px;transition:width .4s}
.graf-val{text-align:right;font-weight:700;color:var(--verde-esc)}
@media(max-width:560px){.graf-linha{grid-template-columns:96px 1fr 40px}}

/* ---- Modulo Musica: harmonia (naipes SATB) ---- */
.musica-card .naipes{margin-top:10px}
.naipe-linha{display:grid;grid-template-columns:90px 1fr 32px;align-items:center;gap:8px;margin-top:8px}
.naipe-lbl{font-size:.82rem;font-weight:700;color:var(--verde-esc)}
.naipe-bar{background:var(--verde-claro);border-radius:7px;height:18px;overflow:hidden}
.naipe-fill{display:block;height:100%;background:linear-gradient(90deg,var(--azul),var(--verde));border-radius:7px;min-width:2px;transition:width .4s}
.naipe-linha.vazio .naipe-fill{background:#c0392b}
.naipe-linha.vazio .naipe-lbl{color:#c0392b}
.naipe-n{text-align:right;font-weight:700;color:var(--verde-esc)}
.naipe-nomes{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 6px 98px}
.naipe-chip{font-size:.72rem;background:#eef2f9;border:1px solid #dde5f1;border-radius:6px;padding:1px 6px;color:#33405a}
.musica-alertas{margin-top:10px;display:flex;flex-direction:column;gap:4px}
.alerta-item{background:#fff7e6;border:1px solid #f0d9a0;border-radius:8px;padding:6px 10px;font-size:.84rem;color:#8a6d00}
.musica-desconf{margin-top:10px;border-top:1px solid var(--borda);padding-top:8px}
.desconf-titulo{font-weight:700;color:#c0392b;font-size:.88rem;margin-bottom:6px}
.desconf-item{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;background:#fdecea;border:1px solid #f5c6c0;border-radius:8px;padding:8px 10px;margin-bottom:6px}
.desconf-item.aprovado{background:#eaf6ec;border-color:#bfe3c6}
.musica-ok{color:#2e7d32;font-size:.86rem;margin-top:10px}

/* ---- Cadastrar colaborador: entidades + escalas com vagas ---- */
.ent-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.ent-card{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--borda);
  border-radius:12px;padding:10px 12px;box-shadow:0 2px 8px rgba(22,53,107,.06)}
.ent-vaga{margin-left:auto;flex-shrink:0;font-size:.7rem;font-weight:700;
  padding:2px 8px;border-radius:20px;white-space:nowrap}
.ent-vaga.ok{background:#e6f4ea;color:#1c8a4a}
.ent-vaga.cheio{background:#fbeecb;color:#9a6a00}
.ent-vaga.neutro{background:#eef1f6;color:#7a869c}
.ent-card:hover{border-color:var(--verde);text-decoration:none}
.ent-card.sel{border-color:var(--verde);outline:2px solid var(--verde-claro)}
.ent-letra{flex-shrink:0;width:38px;height:38px;border-radius:9px;background:var(--verde);
  color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.ent-nome{font-size:.86rem;font-weight:600;color:var(--verde-esc)}
.escala-vagas-lista{display:flex;flex-direction:column;gap:8px}
.escala-vaga{display:flex;align-items:center;gap:12px;border:1px solid var(--borda);
  border-radius:10px;padding:8px 12px}
.escala-vaga .esc-letra{flex-shrink:0;width:40px;height:40px;border-radius:9px;
  background:var(--verde);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.escala-vaga .esc-info{display:flex;flex-direction:column;flex:1}
.vaga-badge{font-weight:700;font-size:.82rem;padding:4px 10px;border-radius:20px}
.vaga-badge.ok{background:#eaf6ec;color:#2e7d32}
.vaga-badge.cheio{background:#fdecea;color:#c0392b}
.vaga-badge.neutro{background:var(--verde-claro);color:var(--verde-esc)}

/* ---- Relatorio: derivados + toggles + chips ---- */
.derivado{margin:8px 0 0;font-size:.88rem;color:var(--verde-esc);background:var(--verde-claro);
  border-radius:8px;padding:8px 12px}
.tipo-toggle{display:flex;gap:8px;margin-top:6px}
.tipo-btn{flex:1;max-width:200px;padding:10px;border:1px solid var(--verde);background:#fff;
  color:var(--verde);border-radius:10px;font-weight:700;cursor:pointer}
.tipo-btn.on{background:var(--verde);color:#fff}
.btn-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.chip-btn{padding:8px 12px;border:1px solid var(--borda);background:#fff;border-radius:20px;
  cursor:pointer;font-size:.86rem;color:var(--verde-esc)}
.chip-btn.on{background:var(--verde);color:#fff;border-color:var(--verde)}

/* ---- Cadastrar: extrapolado + label selecionavel ---- */
label.ent-card{cursor:pointer}
.escala-vaga.extrapolou{background:#fdecea;border-color:#f5c6c0}

/* ---- Cadastrar: escalas que abrem na hora (escolher a escala) ---- */
.escala-painel{border:1px solid var(--borda);border-radius:12px;padding:12px 14px;
  margin-top:10px;background:#fafcff}
.escala-painel.carregando{opacity:.6}
.escala-painel-cab{font-weight:700;color:var(--verde-esc);margin-bottom:8px;font-size:.92rem}
.escala-opc{display:flex;align-items:center;gap:12px;border:1px solid var(--borda);
  border-radius:10px;padding:8px 12px;margin-bottom:8px;cursor:pointer;background:#fff}
.escala-opc:hover{border-color:var(--verde)}
.escala-opc.sel{border-color:var(--verde);outline:2px solid var(--verde-claro)}
.escala-opc.extrapolou{background:#fdecea;border-color:#f5c6c0}
.escala-opc input[type=radio],.escala-opc input[type=checkbox]{
  accent-color:var(--verde);width:20px;height:20px;flex-shrink:0;margin:0}
.escala-opc .esc-letra{flex-shrink:0;width:40px;height:40px;border-radius:9px;
  background:var(--verde);color:#fff;font-weight:800;display:flex;
  align-items:center;justify-content:center}
.escala-opc .esc-info{display:flex;flex-direction:column;flex:1;min-width:0}
.escala-opc .esc-atend{font-weight:600;color:var(--verde,#2f9e57);font-size:.85rem}
.escala-opc .vaga-badge{flex-shrink:0}
.vaga-badge.extrapolou{background:#fdecea;color:#c0392b}
.chip-mini{display:inline-block;background:var(--verde-claro);color:var(--verde-esc);
  border-radius:20px;padding:3px 10px;font-size:.8rem;font-weight:600;margin:2px 4px 2px 0}

/* ---- Aprovacao de musica (select so ao clicar) ---- */
.aprovar-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:4px}

/* ---- Setores globais (Regioes e Setores) ---- */
.setores-lista{display:flex;flex-direction:column;gap:8px}
.setor-linha{display:flex;align-items:center;gap:8px}

/* ---- O DARPE por regiao (cartoes iguais + entidades ligadas) ---- */
.regioes-grid{display:grid;gap:14px;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.regiao-card{background:#fff;border:1px solid var(--borda);border-radius:14px;
  box-shadow:0 4px 12px rgba(22,53,107,.08);padding:14px;border-top:4px solid var(--verde)}
.regiao-cab{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.regiao-ico{font-size:1.4rem}
.regiao-nome{font-weight:800;color:var(--verde-esc);font-size:1.02rem}
.regiao-nums{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.regiao-nums span{background:var(--verde-claro);color:var(--verde-esc);
  border-radius:20px;padding:3px 11px;font-weight:700;font-size:.84rem}
.regiao-ents{display:flex;flex-direction:column;gap:6px;
  border-top:1px dashed var(--borda);padding-top:8px}
.ent-mini{display:flex;flex-direction:column;gap:1px}
.ent-mini-nome{font-weight:600;color:var(--verde-esc);font-size:.86rem}
.ent-mini-dados{font-size:.76rem;color:var(--cinza)}
.tag-setor{background:#eef2fb;color:#2a3f73;border-radius:6px;padding:1px 6px;
  font-weight:700;font-size:.72rem;margin-right:3px}

/* ---- Complexo de edificios (Atualizacao Regional) ---- */
.complexo{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;
  padding:14px;margin:10px 0;border-radius:14px;
  background:linear-gradient(180deg,#eef3fb 0%,#e3ebf7 70%,#d3deef 100%)}
.edificio{width:148px;border-radius:10px 10px 4px 4px;overflow:hidden;
  background:#fff;box-shadow:0 6px 14px rgba(22,53,107,.16);
  border:1px solid #cdd8ec;transition:transform .12s}
.edificio:hover{transform:translateY(-3px)}
.edificio-teto{background:var(--verde);color:#fff;font-weight:800;font-size:.72rem;
  text-align:center;padding:5px 4px;letter-spacing:.04em}
.edificio-corpo{padding:10px 10px 12px;text-align:center}
.edificio-icone{font-size:1.9rem;line-height:1}
.edificio-nome{font-weight:700;font-size:.82rem;color:var(--verde-esc);
  margin:4px 0 2px;line-height:1.15}
.edificio-cidade{font-size:.74rem;color:var(--cinza)}
.edificio-nums{display:flex;justify-content:center;gap:10px;margin-top:8px;
  font-size:.82rem;font-weight:700;color:var(--verde-esc)}
.edificio-nums span{background:var(--verde-claro);border-radius:20px;padding:2px 9px}
/* cor do teto por setor */
.edificio.setor-s1 .edificio-teto{background:#b34747}
.edificio.setor-s2 .edificio-teto{background:#1f7a4d}
.edificio.setor-s3 .edificio-teto{background:#3a4a8c}
.edificio.setor-s4 .edificio-teto{background:#9a6a1f}

/* ---- Cadastrar: cartoes de opcao (preencher/enviar) ---- */
.opc-card{border:1px solid var(--borda);border-radius:12px;padding:16px;
  background:#fff;box-shadow:0 2px 8px rgba(22,53,107,.06)}
.opc-card .cat-ico{font-size:1.6rem}
.opc-card h3{margin:6px 0 4px;color:var(--verde-esc)}

/* ---- Cadastro publico: caixa de missao (read-only) ---- */
.missao-box{background:var(--verde-claro);border:1px solid #d4ddee;border-radius:10px;
  padding:12px 14px;margin:8px 0;font-size:.92rem;line-height:1.5}
.missao-box strong{color:var(--verde-esc)}

/* ---- Musica: cantores (vozes) ---- */
.cantores-box{margin-top:10px;border-top:1px dashed #c9d6ea;padding-top:8px}
.cantores-tit{display:block;font-size:.82rem;font-weight:700;color:var(--azul);margin-bottom:6px}

/* ---- Central de verificacao (inconformidades) ---- */
.inc-resumo{display:flex;flex-wrap:wrap;gap:8px}
.inc-pill{padding:6px 14px;border-radius:999px;font-size:.9rem;border:1px solid #d9e2f0}
.inc-pill.ok{background:#e8f7ee;border-color:#bfe6cd;color:#1d7a3d}
.inc-pill.alta{background:#fdecea;border-color:#f5c6c0;color:#c0392b}
.inc-pill.media{background:#fff6e5;border-color:#f3dca8;color:#9a6a00}
.inc-pill.info{background:#eaf1fb;border-color:#c8d8f2;color:#2557a7}
.inc-grupo{border-left:5px solid #c8d8f2}
.inc-grupo.alta{border-left-color:#c0392b}
.inc-grupo.media{border-left-color:#e8a92b}
.inc-grupo.info{border-left-color:#2557a7}
.inc-grupo.vazio{opacity:.65}
.inc-cab{display:flex;gap:12px;align-items:flex-start}
.inc-ico{font-size:1.6rem;line-height:1;flex-shrink:0}
.inc-conta{display:inline-block;min-width:22px;text-align:center;font-size:.85rem;
  padding:1px 8px;border-radius:999px;background:#eef2f8;color:#445;vertical-align:middle}
.inc-conta.alta{background:#fdecea;color:#c0392b}
.inc-conta.media{background:#fff6e5;color:#9a6a00}
.inc-conta.info{background:#eaf1fb;color:#2557a7}
.inc-lista{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.inc-lista li{display:flex;gap:10px;align-items:center;justify-content:space-between;
  flex-wrap:wrap;padding:8px 10px;border:1px solid #eceff4;border-radius:10px;background:#fafbfd}
.inc-item-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.inc-item-txt .muted{font-size:.82rem}
.inc-ok{color:#1d7a3d;margin:10px 0 0;font-size:.9rem}
.inc-nota{margin-top:10px}

/* ---- Atalho 'Envio de convocacoes' (Irmao Antenor) ---- */
.btn.convoc-atalho{background:#fff3da;color:#8a5a00;border:1px solid #f0d28a}
.btn.convoc-atalho:hover{background:#ffe9bf}

/* ---- Cadastrar: funcao por missao + resumo da Fase 1 (modo guiado) ---- */
.escala-func{display:flex;flex-direction:column;gap:4px;margin:8px 0 10px}
.escala-func label{font-size:.82rem;font-weight:600;color:var(--azul)}
.escala-func select{max-width:280px}
.resumo-fase1{display:flex;flex-direction:column;gap:8px;margin-top:8px}
.resumo-linha{display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  padding:10px 12px;border:1px solid #e3e9f2;border-radius:10px;background:#f7f9fc}
.resumo-ent{font-weight:600}
.resumo-grp{font-size:.82rem;background:#eaf1fb;color:#2557a7;padding:2px 8px;border-radius:999px}
.resumo-func{font-size:.82rem;background:#e8f7ee;color:#1d7a3d;padding:2px 8px;border-radius:999px}

/* ---- Missoes realizadas: linha clicavel p/ o relatorio ---- */
.agenda-item.realizada{display:flex;align-items:center;gap:12px}
/* Modo "marcar subsecretários" (geral na pagina de Escalas) */
.sub-dica,.sub-barra{display:none}
body.modo-sub .sub-dica{display:block;background:#fff7e6;border:1px solid #f0d9a8;
  border-radius:10px;padding:10px 12px;margin:0 0 14px;font-size:.9rem;color:#7a5a10}
.sub-check{display:none}
body.modo-sub .sub-check{display:inline-flex;align-items:center;margin-right:8px;
  vertical-align:middle}
body.modo-sub .sub-check input{width:20px;height:20px;cursor:pointer}
body.modo-sub .escala-card{outline:2px dashed #cdd8ea}
body.modo-sub .sub-barra{display:flex;position:sticky;bottom:0;z-index:50;gap:10px;
  align-items:center;flex-wrap:wrap;background:#fff;border:1px solid #e3e9f2;
  border-radius:12px;box-shadow:0 -6px 22px rgba(20,40,80,.16);padding:12px 16px;
  margin-top:14px}
.sub-barra-txt{font-weight:600;color:var(--azul);margin-right:auto}
/* Atendentes: candidatos a promover (entidade irregular) */
.atend-cands{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px}
.atend-cand{display:flex;align-items:center;gap:8px;background:#f4f7fc;
  border:1px solid #e3e9f2;border-radius:8px;padding:8px 10px;cursor:pointer}
.atend-cand input{width:18px;height:18px}
.atend-grupo{border:1px solid #e3e9f2;border-radius:10px;padding:10px 12px;margin:8px 0}
.atend-grupo.irr{border-left:4px solid var(--amarelo)}
.atend-grupo-cab{display:flex;align-items:center;gap:8px;margin-bottom:4px}
/* Tabelas de atendentes: colunas com largura fixa -> todas alinhadas iguais */
.atend-tab{table-layout:fixed;margin:0}
.atend-tab .c-nome{width:38%}
.atend-tab .c-fun{width:22%}
.atend-tab .c-comum{width:28%}
.atend-tab .c-acao{width:12%}
.atend-tab th:last-child,.atend-tab td:last-child{text-align:right}
.atend-tab td,.atend-tab th{word-break:break-word}   /* quebra sem estourar */
.agenda-item.pendente{display:flex;align-items:center;gap:12px;
  border-left:4px solid var(--amarelo)}
.agenda-item.realizada{border-left:4px solid var(--verde)}
.ag-link{display:flex;align-items:center;gap:14px;flex:1;min-width:0;color:inherit}
.ag-link:hover{text-decoration:none;background:rgba(0,0,0,.02);border-radius:10px}
.rel-card-foto{max-width:520px;width:100%;border:1px solid #e3e9f2;border-radius:12px;
  box-shadow:0 4px 16px rgba(20,40,80,.10);display:block;margin:0 auto}

/* ---- Caixa de Saida: status, resumo, roteamento ---- */
.status-auto{display:flex;gap:10px;flex-wrap:wrap}
.status-pill{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:12px;
  border:1px solid #e3e9f2;background:#fafbfd;flex:1;min-width:240px}
.status-pill .status-ico{font-size:1.4rem}
.status-pill.online{background:#e8f7ee;border-color:#bfe6cd}
.status-pill.pausado{background:#fff6e5;border-color:#f3dca8}
.status-pill.problema{background:#fdecea;border-color:#f5c6c0}
.cs-resumo{display:flex;gap:10px;flex-wrap:wrap}
.cs-kpi{display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:96px;padding:10px 14px;border:1px solid #e7ecf3;border-radius:12px;background:#fff}
.cs-kpi .n{font-size:1.5rem;font-weight:700;color:var(--azul)}
.cs-kpi span:last-child{font-size:.78rem;color:#667}
.cs-kpi.alerta{background:#fff6e5;border-color:#f3dca8}
.cs-kpi.alerta .n{color:#9a6a00}
.cs-kpi.erro{background:#fdecea;border-color:#f5c6c0}
.cs-kpi.erro .n{color:#c0392b}
.rota-tag{display:inline-block;font-size:.8rem;background:#eef2f8;color:#445;
  padding:2px 9px;border-radius:999px;margin:2px 2px 0 0}

/* ---- Grupos: diagnostico do que falta ---- */
.check-falta{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.check-falta li{padding:8px 10px;border-radius:8px;background:#fafbfd;border:1px solid #eceff4}
.check-falta li.ok{background:#e8f7ee;border-color:#bfe6cd}
.check-falta li.aviso{background:#fff6e5;border-color:#f3dca8}
.check-falta li.falta{background:#fdecea;border-color:#f5c6c0}

/* ---- Cadastrar: funcao POR GRUPO (escala) — em BOTOES (cards) ---- */
.escala-grupo{display:flex;flex-direction:column;gap:0}
.escala-grupo .func-grupo{margin:2px 0 12px 52px}
.escala-grupo .func-grupo.hidden,.escala-grupo .func-grupo[hidden]{display:none!important}
.func-grupo-lbl{display:block;font-size:.82rem;color:var(--cinza,#667);
  font-weight:600;margin:0 0 6px}
.func-chips{display:flex;flex-wrap:wrap;gap:8px}
.func-chip{appearance:none;background:#fff;border:1.5px solid var(--borda,#d8e0ec);
  color:#2a3550;border-radius:22px;padding:9px 16px;font-size:.9rem;font-weight:600;
  cursor:pointer;transition:.12s;line-height:1.1;min-height:40px}
.func-chip:hover{border-color:var(--verde,#2f9e57)}
.func-chip.sel{background:var(--verde,#2f9e57);border-color:var(--verde,#2f9e57);
  color:#fff;box-shadow:0 1px 4px rgba(0,0,0,.15)}
@media(max-width:720px){
  .escala-grupo .func-grupo{margin-left:0}
  .func-chip{padding:11px 16px;min-height:44px;flex:1 1 auto;text-align:center}
}

/* ---- Relatorio consolidado (Regiao / Regional) ---- */
.rel-doc{background:#fff;border:1px solid #e3e9f2;border-radius:12px;padding:22px 26px}
.rel-doc .rel-sub{color:#667;margin:0 0 14px}
.rel-secao{margin:22px 0 10px;padding-bottom:6px;border-bottom:2px solid #eef2f8;color:var(--azul)}
@media print{
  .nav,.no-print,.btn-instalar,.user-chip,.mais-wrap{display:none!important}
  .rel-doc{border:none;padding:0}
  body{background:#fff}
}

/* ---- Grupos: acoes lado a lado (nao empilhadas) ---- */
.acoes-cel{display:flex;gap:6px;justify-content:flex-end;align-items:flex-start;flex-wrap:wrap}
.acoes-cel > form{display:inline}
.acoes-cel details[open]{flex-basis:100%;order:2}

/* ---- Menu de acoes reutilizavel (kebab ⋯) p/ nao poluir o topo ---- */
.menu-acoes{position:relative;display:inline-block}
.menu-acoes>summary{list-style:none;cursor:pointer}
.menu-acoes>summary::-webkit-details-marker{display:none}
.menu-acoes .menu-pop{position:absolute;right:0;top:calc(100% + 6px);background:#fff;
  border:1px solid #e3e9f2;border-radius:10px;box-shadow:0 8px 24px rgba(20,40,80,.16);
  padding:6px;min-width:240px;z-index:40;display:flex;flex-direction:column;gap:2px}
.menu-acoes .menu-pop a,.menu-acoes .menu-pop button{display:block;width:100%;
  text-align:left;background:none;border:none;padding:10px 12px;border-radius:8px;
  color:var(--azul);font-size:.92rem;cursor:pointer}
.menu-acoes .menu-pop a:hover,.menu-acoes .menu-pop button:hover{
  background:var(--verde-claro);text-decoration:none}

/* ---- Barra de ferramentas (acoes + filtros recolhiveis numa linha) ---- */
.barra-ferramentas{gap:8px;align-items:center;flex-wrap:wrap}
/* dropdown de filtros reaproveita .menu-acoes; o pop e um formulario */
.filtros-menu .filtros-pop{min-width:250px;padding:10px;gap:8px}
.filtros-menu .filtros-pop label{display:flex;flex-direction:column;gap:3px;
  font-size:.78rem;font-weight:600;color:#5a6b85}
.filtros-menu .filtros-pop select{width:100%;font-weight:400}
.filtros-menu .filtros-pop .btn{align-self:flex-start;margin-top:2px}
.badge-filtro{display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--azul);
  color:#fff;font-size:.72rem;font-weight:700;margin-left:2px}
.filtros-ativos{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.84rem}
.chip-filtro{background:#eaf1fb;color:#2557a7;border-radius:20px;padding:2px 10px;
  font-size:.8rem;font-weight:600}
.filtros-pop-datas{display:flex;gap:8px}
.filtros-pop-datas label{flex:1}

/* Chaves de 1 clique do robo (Tiao Joao / Antenor) */
.robo-chaves{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:640px){.robo-chaves{grid-template-columns:1fr}}
.robo-chave{display:flex;justify-content:space-between;align-items:center;gap:10px;
  background:#f4f7fc;border:1px solid #e3e9f2;border-radius:10px;padding:10px 12px}
.robo-chave .sub{font-size:.78rem;margin:0}

/* PILAR mobile: qualquer dropdown (⋯ Acoes / Filtros) vira "folha" inferior —
   nunca corta fora da tela. Fundo escurecido fecha ao tocar. */
@media(max-width:720px){
  .menu-acoes .menu-pop{
    position:fixed;left:10px;right:10px;bottom:10px;top:auto;
    width:auto;min-width:0;max-width:none;max-height:78vh;overflow:auto;
    border-radius:16px;box-shadow:0 -8px 30px rgba(20,40,80,.30);
    z-index:1200;padding:10px}
  .menu-acoes[open]>summary::after{content:"";position:fixed;inset:0;
    background:rgba(15,25,50,.38);z-index:1199}
  .filtros-menu .filtros-pop select,.filtros-menu .filtros-pop input{width:100%}
}

/* ---- Escala: linha do subsecretario no card ---- */
.escala-sub-linha{margin:6px 0 0;padding:6px 10px;background:#eaf1fb;border-radius:8px;
  font-size:.85rem;color:#2557a7}

/* ---- Pautas de Reuniao (pauta Local/Regional + assuntos por capitulo) ---- */
.b-aberta{background:#e3f4ea;color:#1f7a48}
.b-urgente{background:#fbe4e1;color:var(--vermelho)}
.b-adiada{background:#eae2f6;color:#5a3ca8}
.pauta{border:2px solid var(--borda);border-radius:var(--radius);background:#fff;
  box-shadow:var(--sombra);margin-bottom:22px;overflow:hidden}
.pauta.local{border-color:#bcd4ec}
.pauta.regional{border-color:#d4c8ef}
.pauta-topo{display:flex;align-items:center;gap:14px;padding:16px 18px;flex-wrap:wrap}
.pauta.local .pauta-topo{background:#f4f9fd}
.pauta.regional .pauta-topo{background:#f8f5fd}
.pauta-icone{flex-shrink:0;width:48px;height:48px;border-radius:12px;color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.pauta.local .pauta-icone{background:var(--azul)}
.pauta.regional .pauta-icone{background:#5a3ca8}
.pauta-tit{font-weight:700;color:var(--verde-esc);font-size:1.1rem}
.pauta-meta{font-size:.85rem;color:var(--cinza);margin-top:2px}
.pauta-meta strong{color:var(--verde-esc)}
.pauta-acoes{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pauta-acoes>form{margin:0}
.pauta-corpo{padding:14px 18px 18px}
/* Encolher: so a faixa do titulo aparece */
.pauta.encolhida .pauta-corpo,.pauta.encolhida .so-aberta,
.pauta.encolhida .pauta-acoes>form{display:none}
.btn-encolher{border:1px solid var(--borda);background:#fff;border-radius:8px;
  cursor:pointer;font-size:1rem;padding:6px 10px;line-height:1;color:var(--verde-esc)}
.btn-encolher:hover{background:var(--verde-claro)}
.btn-encolher:focus-visible{outline:2px solid var(--azul);outline-offset:2px}
/* Capitulos dentro da pauta */
.cat-bloco{margin-top:16px}
.cat-cab{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--verde-esc);
  font-size:.95rem;margin-bottom:8px}
.cat-cab .cat-cont{font-weight:600;color:var(--cinza);font-size:.8rem}
.cat-marca{width:10px;height:10px;border-radius:3px;flex-shrink:0}
/* Assunto: linha essencial + "Detalhes" abrindo embaixo */
.tabela-rolagem{overflow-x:auto;border:1px solid var(--borda);border-radius:10px}
.tabela-rolagem table{box-shadow:none;border-radius:0}
.lk-detalhes{font-size:.82rem;font-weight:700;color:var(--azul);cursor:pointer;
  background:none;border:none;padding:2px 4px;font-family:inherit;white-space:nowrap}
.lk-detalhes:hover{text-decoration:underline}
.lk-detalhes:focus-visible{outline:2px solid var(--azul);outline-offset:2px}
tr.linha-detalhes td{background:#f7f9fc;padding:10px 14px 14px}
tr.linha-detalhes:hover td{background:#f7f9fc}
.det-grid{display:flex;gap:26px;flex-wrap:wrap;font-size:.85rem}
.det-grid .det label{display:block;font-size:.7rem;text-transform:uppercase;
  letter-spacing:.04em;color:var(--cinza);margin-bottom:2px;font-weight:700}
.det-acoes{margin-left:auto;display:flex;gap:4px;align-items:center}
.det-acoes form{display:inline;margin:0}
.btn-icone{border:none;background:none;cursor:pointer;font-size:1.25em;
  padding:2px 4px;line-height:1;text-decoration:none}
.btn-icone:hover{text-decoration:none;transform:scale(1.12)}
/* Form de assunto embutido na pauta */
.form-assunto{background:#f7f9fc;border:1px dashed var(--borda);border-radius:10px;
  padding:12px 14px;margin-top:16px}
@media(max-width:640px){
  .pauta-acoes{margin-left:0;width:100%}
  tr.linha-detalhes td{white-space:normal}
  .det-acoes{margin-left:0}
}

/* ---- Botao Voltar global (topbar): toda pagina logada, menos o Painel ---- */
.btn-voltar-topo{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;background:rgba(255,255,255,.14);color:#fff;border:none;
  border-radius:10px;line-height:1;cursor:pointer;padding:0}
.btn-voltar-topo:hover{background:rgba(255,255,255,.26)}

/* ==================================================================
   MENU NOVO (modelo aprovado 16/07): lateral no computador,
   gradinha embaixo no celular. Vale so para paginas logadas
   (body.com-menu). O CSS antigo da .topbar ficou sem uso.
   ================================================================== */
:root{ --larg-menu:232px;
  /* Cores dos setores: suaves, mas CONTRASTANDO com o azul da marca
     (pedido da Miria 16/07 — os tons frios nao davam destaque). */
  --setor1:#2f9e6e;   /* verde  — Setor 1 Ressocializacao/Socioeducativos */
  --setor2:#d98a2b;   /* ambar  — Setor 2 Clinicas e Albergues */
  --setor3:#c26d5c;   /* terracota — Setor 3 Forcas de Seguranca */
  --setor4:#8a6fc0 }  /* violeta — Setor 4 Hospitais/Idosos/Educacional */

/* ---- lateral (computador) ---- */
.menu-lateral{display:none}
.ml-brand{display:flex;flex-direction:column;line-height:1;gap:2px;color:#fff}
.ml-brand:hover{text-decoration:none;opacity:.95}
.btn-voltar-desk{display:none}
@media(min-width:900px){
  body.com-menu{padding-left:var(--larg-menu)}
  .menu-lateral{position:fixed;left:0;top:0;bottom:0;width:var(--larg-menu);
    background:var(--verde);color:#fff;display:flex;flex-direction:column;
    z-index:100;overflow-y:auto}
  .menu-lateral .ml-brand{padding:18px 18px 14px}
  .ml-nav{display:flex;flex-direction:column;gap:2px;padding:6px 10px;flex:1}
  .ml-nav a,.ml-nav summary{display:flex;align-items:center;gap:10px;color:#eaf0fa;
    padding:9px 12px;border-radius:10px;font-size:.92rem;font-weight:600;
    cursor:pointer;list-style:none}
  .ml-nav summary::-webkit-details-marker{display:none}
  .ml-nav a:hover,.ml-nav summary:hover{background:rgba(255,255,255,.12);text-decoration:none}
  .ml-nav a.ativo{background:rgba(255,255,255,.18);color:#fff}
  .ml-nav .ico{width:22px;text-align:center;flex:0 0 auto;font-size:1.02rem}
  .ml-cad summary::after{content:"\25be";margin-left:auto;opacity:.7;font-size:.8rem}
  .ml-cad[open] summary::after{content:"\25b4"}
  .ml-cad .sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px 14px;
    border-left:1px solid rgba(255,255,255,.22);padding-left:8px}
  .ml-cad .sub a{padding:6px 10px;font-size:.85rem;font-weight:500}
  .ml-rodape{padding:10px;border-top:1px solid rgba(255,255,255,.16);
    display:flex;flex-direction:column;gap:6px}
  .ml-user{display:flex;align-items:center;gap:9px;padding:6px 8px;font-size:.85rem;
    color:#eaf0fa;min-width:0}
  .ml-user span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ml-user img{width:30px;height:30px;border-radius:50%;flex:0 0 auto}
  .ml-user .bola{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.2);
    display:flex;align-items:center;justify-content:center;font-weight:800;flex:0 0 auto}
  .ml-rodape .btn-instalar{margin:0}
  .ml-sair{display:flex;align-items:center;gap:10px;color:#ffd7d0;padding:8px 12px;
    border-radius:10px;font-size:.9rem;font-weight:600}
  .ml-sair:hover{background:rgba(255,255,255,.12);text-decoration:none}
  .topo-cel,.barra-baixo,.gav-veu,.gaveta{display:none !important}
  /* Voltar no computador: pilula discreta acima do conteudo */
  .btn-voltar-desk{display:inline-flex;align-items:center;gap:7px;background:#fff;
    border:1.5px solid var(--borda);border-radius:999px;padding:6px 14px 6px 10px;
    font-size:.85rem;font-weight:600;color:var(--verde);cursor:pointer;margin:0 0 10px}
  .btn-voltar-desk:hover{border-color:var(--verde)}
}

/* ---- celular: topo enxuto + gradinha embaixo ---- */
@media(max-width:899px){
  body.com-menu{padding-bottom:84px}
  .topo-cel{display:flex;position:sticky;top:0;z-index:90;background:var(--verde);
    color:#fff;align-items:center;gap:10px;padding:10px 14px;box-shadow:var(--sombra)}
  .topo-cel .brand-main{font-size:1.15rem}
  .topo-cel .brand-sub{font-size:.45rem}

  .barra-baixo{position:fixed;left:0;right:0;bottom:0;z-index:110;display:flex;
    background:#fff;border-top:1px solid var(--borda);
    padding:4px 4px calc(4px + env(safe-area-inset-bottom));
    box-shadow:0 -4px 18px rgba(15,36,74,.10)}
  .barra-baixo a,.barra-baixo button{flex:1;display:flex;flex-direction:column;
    align-items:center;gap:3px;background:none;border:none;text-decoration:none;
    color:var(--cinza);font-size:.66rem;font-weight:700;padding:7px 0 5px;
    border-radius:12px;cursor:pointer;font-family:inherit;min-width:0}
  .barra-baixo svg{width:23px;height:23px;display:block}
  .barra-baixo .on{color:var(--verde);background:var(--verde-claro)}

  .gav-veu{display:none}
  .gav-veu.aberto{display:block;position:fixed;inset:0;background:rgba(16,28,54,.55);z-index:115}
  .gaveta{display:none}
  .gaveta.aberta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:120;background:#fff;
    border-radius:18px 18px 0 0;padding:14px 14px calc(18px + env(safe-area-inset-bottom));
    max-height:76vh;overflow:auto;animation:gav-sobe .18s ease}
  @keyframes gav-sobe{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}
  .gaveta h3{margin:2px 0 10px;font-size:1rem;color:var(--verde)}
  .gaveta .grade{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
  .gaveta .grade a{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;
    background:var(--cinza-claro);border-radius:14px;padding:12px 6px;font-size:.74rem;
    font-weight:600;color:var(--texto)}
  .gaveta .grade a:hover{text-decoration:none}
  .gaveta .grade .ico{font-size:1.35rem}
  .gaveta .sec{margin:14px 0 8px;font-size:.72rem;font-weight:800;color:var(--cinza);
    text-transform:uppercase;letter-spacing:.06em}
  .gaveta .sair{display:flex;justify-content:center;gap:8px;margin-top:14px;
    color:var(--vermelho);font-weight:700}
}

/* ==================================================================
   ENTIDADES em lista (modelo aprovado 16/07): tres pontinhos por
   linha + filtro por Setor no painel da lista (tons de azul/cinza).
   ================================================================== */
.lista-ent{background:#fff;border:1.5px solid #e3e9f2;border-radius:16px;
  box-shadow:var(--sombra);margin-top:4px}
.le-topo{display:flex;align-items:center;gap:10px;padding:10px 14px;
  border-bottom:1px solid var(--borda);flex-wrap:wrap}
.le-rotulo{font-weight:700;font-size:.92rem;padding-right:10px;
  border-right:1px solid var(--borda)}
.chips-setor{display:flex;gap:6px;flex-wrap:wrap}
.chips-setor button{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--borda);
  background:#fff;border-radius:999px;padding:4px 11px;font-size:.8rem;font-weight:700;
  color:var(--cinza);cursor:pointer}
.chips-setor button .pt{width:9px;height:9px;border-radius:50%;background:var(--c)}
.chips-setor button.on{border-color:var(--c);color:var(--texto);background:var(--verde-claro)}
.le-ferr{margin-left:auto;display:flex;gap:4px}
.le-ferr button{border:none;background:none;color:var(--cinza);cursor:pointer;
  width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.le-ferr button:hover{background:var(--cinza-claro)}
.le-ferr svg{width:18px;height:18px}
.le-linha{display:flex;align-items:center;gap:12px;padding:11px 14px;
  border-bottom:1px solid #edf1f7;position:relative;--c:var(--cinza)}
.le-linha:last-child{border-bottom:none}
.le-linha:hover{background:#f8fafd}
.le-linha[data-setor="1"]{--c:var(--setor1)}
.le-linha[data-setor="2"]{--c:var(--setor2)}
.le-linha[data-setor="3"]{--c:var(--setor3)}
.le-linha[data-setor="4"]{--c:var(--setor4)}
.pt-setor{width:11px;height:11px;border-radius:50%;flex:0 0 auto;background:var(--c)}
.le-meio{flex:1;min-width:0}
.le-nome{font-weight:700;font-size:.95rem}
.le-nome a{color:var(--verde)}
.le-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.le-tag{display:inline-flex;align-items:center;gap:4px;background:var(--cinza-claro);
  border:1px solid var(--borda);border-radius:7px;padding:2px 8px;font-size:.74rem;
  color:var(--cinza);font-weight:600}
.le-tag b{color:var(--texto);font-weight:700}
.le-tag.grupo{background:var(--verde-claro);color:var(--verde);border-color:#c8d6ea}
.le-badge{flex:0 0 auto;font-size:.72rem;font-weight:800;color:#fff;background:var(--c);
  border-radius:7px;padding:3px 9px;letter-spacing:.03em}
@media(max-width:899px){.le-badge{display:none}}
.tres-pontos{flex:0 0 auto;border:none;background:none;cursor:pointer;color:var(--cinza);
  width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-size:1.25rem;font-weight:800;line-height:1}
.tres-pontos:hover{background:var(--cinza-claro);color:var(--verde)}
.menu-linha{position:absolute;right:14px;top:calc(100% - 8px);z-index:50;background:#fff;
  border:1px solid var(--borda);border-radius:12px;box-shadow:0 10px 30px rgba(15,36,74,.18);
  display:none;flex-direction:column;min-width:180px;padding:5px}
.menu-linha.aberto{display:flex}
.menu-linha a{padding:9px 12px;border-radius:8px;font-size:.88rem;font-weight:600;color:var(--texto)}
.menu-linha a:hover{background:var(--verde-claro);text-decoration:none}
.le-vazio{padding:26px;text-align:center;color:var(--cinza)}
.gaveta .grade button{display:flex;flex-direction:column;align-items:center;gap:6px;
  text-align:center;background:var(--cinza-claro);border:none;border-radius:14px;
  padding:12px 6px;font-size:.74rem;font-weight:600;color:var(--texto);cursor:pointer;
  font-family:inherit}

/* Icones de linha do menu (sem emoji — decisao 16/07) */
.ml-nav .ic,.barra-baixo .ic,.gaveta .ic{fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.ml-nav .ic{width:18px;height:18px}
.ml-cad .sub .ic{width:15px;height:15px}
.barra-baixo .ic{width:23px;height:23px}
.gaveta .grade .ic{width:22px;height:22px;stroke-width:1.7}

/* ==== Apresentacoes: lista (Tela 1) e nova (Tela 2) ==== */
.ap-busca{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.ap-busca input[type=search]{flex:1;width:auto;min-width:200px;padding:9px 13px;border:1px solid var(--borda);border-radius:9px;font-size:.9rem;font-family:inherit;background:#fff}
.ap-busca select{width:auto;padding:9px 12px;border:1px solid var(--borda);border-radius:9px;font-size:.88rem;font-family:inherit;background:#fff;color:var(--texto)}
.ap-item{display:flex;gap:16px;align-items:center}
.ap-thumb{width:150px;flex:0 0 150px;border-radius:8px;border:1px solid var(--borda);overflow:hidden;background:#fff}
.ap-thumb-vazia{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center}
.ap-meta{flex:1;min-width:0}
.ap-titulo{font-weight:700;font-size:1.02rem;margin-right:6px}
.ap-detalhes{margin-top:4px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ap-acoes{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.badge.b-rasc{background:#fff7e0;color:#8a6407;border:1px solid #ecd9a0}
.badge.b-ok{background:#e7f3ec;color:#1e6b45;border:1px solid #bfe0cf}
.ap-menu{position:relative}
.ap-menu summary{list-style:none;cursor:pointer}
.ap-menu summary::-webkit-details-marker{display:none}
.ap-menu-itens{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:10px;box-shadow:0 8px 24px rgba(15,36,74,.25);display:flex;flex-direction:column;min-width:190px;padding:6px;z-index:60}
.ap-menu-itens a,.ap-menu-itens button{display:block;width:100%;text-align:left;background:none;border:none;padding:9px 12px;border-radius:8px;font-size:.9rem;color:var(--verde-esc);cursor:pointer;font-family:inherit}
.ap-menu-itens a:hover,.ap-menu-itens button:hover{background:var(--verde-claro);text-decoration:none}
.ap-menu-itens button.perigo{color:var(--vermelho)}
.ap-modelos{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.ap-modelo-card{background:#fff;border-radius:var(--radius);box-shadow:var(--sombra);padding:10px;cursor:pointer;display:block}
.ap-modelo-card input{position:absolute;opacity:0}
.ap-modelo-card:has(input:checked){outline:3px solid var(--azul)}
.ap-modelo-thumb{display:block;border-radius:8px;overflow:hidden;border:1px solid var(--borda)}
.ap-modelo-branco{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;color:var(--cinza);font-size:.9rem;border-style:dashed;border-width:2px}
.ap-modelo-nome{display:block;margin-top:9px;font-weight:700;font-size:.93rem}
/* ==== Apresentacoes: editor (Tela 3) ==== */
.ed-topo{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.ed-titulo{font-size:1.15rem;margin:0;outline:none;border-radius:6px;padding:2px 6px}
.ed-titulo:hover{background:#fff}
.ed-titulo:focus{background:#fff;box-shadow:0 0 0 2px var(--azul)}
.ed-grade{display:grid;grid-template-columns:150px minmax(0,1fr) 250px;gap:14px;align-items:start}
.ed-trilho{display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow-y:auto;padding:2px}
.tr-item{position:relative;border:2px solid var(--borda);border-radius:8px;background:#fff;cursor:pointer;overflow:hidden}
.tr-item.on{border-color:var(--azul);box-shadow:0 0 0 1px var(--azul)}
.tr-item.arrasto{opacity:.5}
.tr-num{position:absolute;left:4px;top:4px;z-index:5;background:rgba(15,36,74,.75);color:#fff;font-size:.68rem;font-weight:700;border-radius:6px;padding:1px 6px}
.tr-mini{pointer-events:none}
.ed-trilho-acoes{grid-column:1;display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ed-trilho-acoes select{padding:7px 8px;border:1px solid var(--borda);border-radius:8px;font-size:.8rem;font-family:inherit;background:#fff}
.ed-grade .ed-trilho-acoes{grid-row:2}
.ed-palco{box-shadow:0 2px 14px rgba(15,36,74,.22);border-radius:10px}
.ed-painel{padding:14px}
.ed-painel-titulo{font-weight:700;font-size:.9rem;margin-bottom:10px}
.ed-rotulo{font-size:.8rem;font-weight:600;display:block;margin:10px 0 4px}
.ed-painel select,.ed-painel input[type=text],.ed-painel input:not([type]){width:100%;padding:8px 10px;border:1px solid var(--borda);border-radius:8px;font-size:.85rem;font-family:inherit;background:#fff}
.ed-estrutura{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
@media(max-width:1080px){
  .ed-grade{grid-template-columns:1fr}
  .ed-trilho{flex-direction:row;max-height:none;overflow-x:auto}
  .tr-item{flex:0 0 130px}
  .ed-trilho-acoes{flex-direction:row}
}
/* celular: item da lista empilha (miniatura + texto + acoes em linhas) */
@media(max-width:700px){
  .ap-item{flex-wrap:wrap}
  .ap-thumb{flex:0 0 112px;width:112px}
  .ap-meta{flex:1;min-width:55%}
  .ap-acoes{width:100%;justify-content:flex-start}
}
@media(max-width:700px){
  .ap-busca{flex-direction:column}
  .ap-busca input[type=search],.ap-busca select{width:100%}
}
/* revisor de qualidade do editor de Apresentacoes */
.ed-avisos{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.ed-aviso{font-size:.8rem;line-height:1.4;padding:7px 10px;border-radius:8px;border-left:3px solid}
.ed-aviso.aviso{background:#fff7e0;border-color:#b8860b;color:#6d5106}
.ed-aviso.dica{background:#e9f0fa;border-color:#2563a8;color:#1c4a80}
.ed-aviso.ok{background:#e7f3ec;border-color:#1e6b45;color:#1e6b45}

/* Escalas: flecha para fechar/abrir cada card (fica so o cabecalho) */
/* Aviso do topo (flash) fechavel: o × tira da frente; sucesso/info somem
   sozinhos (JS no base.html) — a tela fica limpa p/ quem opera. */
.flash{position:relative;padding-right:36px}
.flash .flash-x{position:absolute;right:8px;top:6px;border:0;background:transparent;
  cursor:pointer;font-size:1.05rem;line-height:1;color:inherit;opacity:.6}
.flash .flash-x:hover{opacity:1}

/* Menu ⋮ do card da escala: o card corta o que vaza (cantos redondos), entao
   com o cartaozinho de acoes ABERTO o corte e suspenso p/ ele aparecer. */
.escala-card.menu-aberto{overflow:visible}
.escala-acoes .menu-acoes>summary{display:inline-block}
.esc-toggle{background:transparent;border:0;color:#fff;cursor:pointer;
  padding:6px 9px;border-radius:8px;line-height:1;font-size:1rem}
.esc-toggle:hover{background:rgba(255,255,255,.18)}
.esc-toggle .seta{display:inline-block;transition:transform .15s ease}
.escala-card.fechado .esc-toggle .seta{transform:rotate(-90deg)}
.escala-card.fechado .escala-sub-linha,
.escala-card.fechado .escala-coord,
.escala-card.fechado .escala-corpo,
.escala-card.fechado .escala-vazia{display:none}
