[hidden]{display:none!important}
:root{
  --azul:#1F3A5F; --azul-esc:#152a45; --azul-2:#2E5A8A; --azul-claro:#e8eef6;
  --fundo:#f3f5f8; --cartao:#fff; --borda:#dde3ea; --texto:#1d2733; --suave:#6b7785;
  --verde:#1e7d4f; --verde-cl:#e3f3ea; --verm:#b42318; --verm-cl:#fdecea; --amar-cl:#fff6dd;
  --raio:8px; --sombra:0 1px 2px rgba(16,32,56,.06),0 1px 6px rgba(16,32,56,.05);
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;font-size:14px;color:var(--texto);background:var(--fundo);line-height:1.4}
a{color:var(--azul-2)}
h2{font-size:20px;margin:0;color:var(--azul);font-weight:600}
h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--suave);margin:0 0 12px;font-weight:600}

/* barra superior */
.topo{display:flex;align-items:center;gap:20px;background:var(--azul-esc);color:#fff;padding:0 20px;height:56px;position:sticky;top:0;z-index:10;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.marca{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:700;letter-spacing:.08em}
.marca img{width:32px;height:32px}
.marca small{display:block;font-weight:400;letter-spacing:0;font-size:11px;opacity:.7}
.menu{display:flex;gap:2px;flex:1;overflow-x:auto}
.menu a{color:#c9d6e6;text-decoration:none;padding:18px 12px 15px;border-bottom:3px solid transparent;white-space:nowrap}
.menu a:hover{color:#fff}
.menu a.ativo{color:#fff;border-bottom-color:#9CC3E8}
.usuario{display:flex;align-items:center;gap:10px}
.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid rgba(255,255,255,.35);background:#2E5A8A}
.quem{display:flex;flex-direction:column;line-height:1.2}
.quem strong{font-weight:600;font-size:13px}
.quem a{color:#9CC3E8;font-size:11px;text-decoration:none}
.sair{color:#fff;border:1px solid rgba(255,255,255,.35);padding:5px 12px;border-radius:6px;text-decoration:none;font-size:13px}
.sair:hover{background:rgba(255,255,255,.1)}

.conteudo{max-width:1280px;margin:0 auto;padding:22px 20px 40px}
.cabecalho{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.painel{background:var(--cartao);border:1px solid var(--borda);border-radius:var(--raio);padding:18px;box-shadow:var(--sombra);margin-bottom:16px}
.estreito{max-width:560px;margin-left:auto;margin-right:auto}
.centro{text-align:center}
.grade-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grade-2>.painel{margin-bottom:0}
.grade-entrada{display:grid;grid-template-columns:1.05fr 1fr;gap:16px;align-items:start}

/* formulários */
label{display:block;font-size:12px;font-weight:600;color:var(--suave);margin-bottom:12px}
input,select,textarea{display:block;width:100%;margin-top:4px;padding:9px 10px;border:1px solid #c9d2dd;border-radius:6px;font:inherit;color:var(--texto);background:#fff}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--azul-2);box-shadow:0 0 0 3px rgba(46,90,138,.15)}
input[readonly]{background:#f6f8fa}
.maiusc{text-transform:uppercase}
.linha{display:flex;gap:12px}
.linha>label{flex:1}
.w25{flex:0 0 calc(25% - 9px)!important}.w30{flex:0 0 30%!important}.w40{flex:0 0 40%!important}.w50{flex:1}.w60{flex:0 0 calc(60% - 12px)!important}.w70{flex:1!important}
.check{display:flex;align-items:center;gap:8px;font-weight:500;color:var(--texto);font-size:14px;margin-bottom:8px}
.check input{width:auto;margin:0}
.check.forte{font-weight:600;margin-top:6px}
fieldset{border:1px solid var(--borda);border-radius:6px;padding:12px 14px 6px;margin:0 0 14px}
legend{font-size:12px;font-weight:600;color:var(--azul);padding:0 6px}
.acoes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.filtros{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.filtros label{margin:0}
.filtros .cresce{flex:1;min-width:220px}

/* botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:6px;border:1px solid #c3cdd9;background:#fff;color:var(--azul);font:inherit;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap}
.btn:hover{background:var(--azul-claro)}
.btn-primario{background:var(--azul);border-color:var(--azul);color:#fff}
.btn-primario:hover{background:var(--azul-2)}
.btn-saida{background:#fff;border-color:var(--verde);color:var(--verde)}
.btn-saida:hover{background:var(--verde-cl)}
.btn-perigo{color:var(--verm);border-color:#e3b4ae}
.btn-perigo:hover{background:var(--verm-cl)}
.btn-mini{padding:5px 10px;font-size:12px}
.btn-largo{width:100%;padding:11px}
form.inline{display:inline}

/* avisos */
.avisos{margin-bottom:14px}
.aviso{padding:10px 14px;border-radius:6px;margin-bottom:8px;border:1px solid}
.aviso-ok{background:var(--verde-cl);border-color:#b7dfc8;color:#145c39}
.aviso-erro{background:var(--verm-cl);border-color:#f2c0ba;color:var(--verm)}
.aviso-aviso{background:var(--amar-cl);border-color:#f0dc9c;color:#7a5a00}
.nota{background:var(--amar-cl);padding:10px 12px;border-radius:6px}

/* kpis */
.kpis{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.kpi{flex:1;min-width:150px;background:#fff;border:1px solid var(--borda);border-radius:var(--raio);padding:14px 16px;color:var(--suave);font-size:13px;box-shadow:var(--sombra)}
.kpi span{display:block;font-size:28px;font-weight:700;color:var(--azul);line-height:1.1}
.kpi.destaque{background:var(--azul);border-color:var(--azul);color:#c9d6e6}
.kpi.destaque span{color:#fff}

/* tabelas */
.tabela{width:100%;border-collapse:collapse}
.tabela th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--suave);font-weight:600;padding:8px 10px;border-bottom:2px solid var(--borda);white-space:nowrap}
.tabela td{padding:9px 10px;border-bottom:1px solid #edf0f4;vertical-align:middle}
.tabela.compacta td{padding:6px 8px}
.tabela tbody tr:hover{background:#f7f9fc}
.clicavel{cursor:pointer}
tr.cancelada td{color:#98a2ae;text-decoration:line-through}
tr.cancelada td .selo{text-decoration:none}
.sub{font-size:12px;color:var(--suave);font-weight:400}
.dir{text-align:right}.nowrap{white-space:nowrap}
.col-foto{width:46px}
.mini{width:36px;height:36px;border-radius:50%;object-fit:cover;display:inline-flex;align-items:center;justify-content:center;background:var(--azul-claro);color:var(--azul);font-weight:700}
.vazio{color:var(--suave);text-align:center;padding:26px 0;margin:0}
.contagem{margin:0 0 8px;color:var(--suave)}
.filtro-rapido{margin:0 0 12px;max-width:380px}
.tempo{font-variant-numeric:tabular-nums;font-weight:600}
.paginacao{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:14px}

.selo{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;background:#eef1f5;color:#4b5866;margin:1px 0}
.selo-verde{background:var(--verde-cl);color:var(--verde)}
.selo-vermelho{background:var(--verm-cl);color:var(--verm)}
.selo-azul{background:var(--azul-claro);color:var(--azul)}
.selo-cinza{background:#eceef1;color:#7b8590}
h2 .selo{vertical-align:middle;margin-left:6px}

/* entrada / foto */
.busca-visitante{position:relative;margin-bottom:14px}
.busca-visitante input{margin:0;padding-left:34px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%236b7785' stroke-width='2'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 4 4'/%3E%3C/svg%3E") no-repeat 11px center}
.resultados{position:absolute;left:0;right:0;top:100%;background:#fff;border:1px solid var(--borda);border-radius:6px;box-shadow:0 8px 20px rgba(16,32,56,.12);z-index:5;max-height:320px;overflow:auto}
.resultados:empty{display:none}
.resultados button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;border-bottom:1px solid #f0f2f5;background:#fff;padding:8px 10px;font:inherit;cursor:pointer}
.resultados button:hover,.resultados button.foco{background:var(--azul-claro)}
.resultados .bloq{color:var(--verm)}
.selecionado{display:flex;align-items:center;justify-content:space-between;background:var(--azul-claro);border-radius:6px;padding:8px 12px;margin-bottom:12px;color:var(--azul);font-weight:600}
.col-foto-cad{flex:0 0 140px}
.campos{flex:1}
.moldura-foto{width:140px;height:170px;border-radius:8px;background:#eef2f7;border:1px dashed #b9c4d1;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--suave);font-size:12px;margin-top:18px}
.moldura-foto video,.moldura-foto img{width:100%;height:100%;object-fit:cover}
.botoes-foto{display:flex;gap:6px;margin-top:8px}
.foto-grande{width:120px;height:150px;object-fit:cover;border-radius:8px}
.ficha{display:flex;gap:16px}
dl{display:grid;grid-template-columns:130px 1fr;gap:6px 12px;margin:0 0 14px}
dt{color:var(--suave);font-size:12px;font-weight:600;padding-top:2px}
dd{margin:0}
details.cancelar{margin-top:16px;border-top:1px solid var(--borda);padding-top:12px}
details.cancelar summary{cursor:pointer;color:var(--verm);font-size:13px;margin-bottom:10px}

/* relatórios */
.barras{display:flex;flex-direction:column;gap:6px}
.barra{display:grid;grid-template-columns:150px 1fr 40px;gap:10px;align-items:center;font-size:13px}
.barra .rot{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.barra .trilho{height:14px;background:#eef1f5;border-radius:3px;overflow:hidden}
.barra .trilho span{display:block;height:100%;background:var(--azul-2);border-radius:3px}
.barra .val{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}

/* login */
.tela-login{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--azul-esc),var(--azul) 55%,#2b4f7a);padding:20px}
.tela-login .avisos{width:100%;max-width:360px}
.cartao-login{background:#fff;width:100%;max-width:360px;border-radius:12px;padding:30px 28px 18px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.login-marca{text-align:center;margin-bottom:22px}
.login-marca img{width:56px;height:56px}
.login-marca h1{margin:10px 0 0;font-size:22px;letter-spacing:.12em;color:var(--azul)}
.login-marca p{margin:2px 0 0;color:var(--suave)}
.rodape-login{text-align:center;color:#9aa5b1;font-size:11px;margin:16px 0 0}

@media (max-width:900px){
  .grade-2,.grade-entrada{grid-template-columns:1fr}
  .quem{display:none}
  .marca span{display:none}
  .topo{gap:10px;padding:0 10px}
  .linha{flex-wrap:wrap}
  .w25{flex:0 0 calc(50% - 6px)!important}
  .tabela{font-size:13px}
}
@media print{.topo,.filtros,.btn,.acoes{display:none!important}.painel{box-shadow:none;border:0}}
/* abas por local */
.abas-local{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.abas-local a{padding:7px 14px;border-radius:20px;background:#fff;border:1px solid var(--borda);color:var(--azul);text-decoration:none;font-weight:600;font-size:13px}
.abas-local a b{display:inline-block;min-width:20px;text-align:center;margin-left:4px;padding:0 6px;border-radius:10px;background:var(--azul-claro);font-size:12px}
.abas-local a.ativo{background:var(--azul);border-color:var(--azul);color:#fff}
.abas-local a.ativo b{background:rgba(255,255,255,.2)}
form.mover select{margin:0;padding:5px 6px;font-size:13px;width:auto;min-width:110px}

label.btn.arquivo{margin:0;color:var(--azul);font-size:12px}
.moldura-foto b{color:var(--verm)}
/* exportação */
.exportar{display:inline-flex;gap:6px}
.btn-xlsx{color:#1e7d4f;border-color:#b7dfc8}.btn-xlsx:hover{background:var(--verde-cl)}
.btn-pdf{color:var(--verm);border-color:#f2c0ba}.btn-pdf:hover{background:var(--verm-cl)}
/* avatar */
.avatar-atual{display:flex;gap:14px;align-items:center;margin-bottom:10px}
.avatar-atual img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid var(--azul-claro);background:#2E5A8A}
.avatar-atual p{margin:6px 0 0}
.galeria{display:flex;flex-wrap:wrap;gap:8px;max-height:220px;overflow:auto;padding:4px 2px 10px}
.item-avatar{margin:0;cursor:pointer;position:relative}
.item-avatar input{position:absolute;opacity:0;pointer-events:none}
.item-avatar img,.item-avatar .auto{width:48px;height:48px;border-radius:50%;object-fit:cover;display:flex;align-items:center;justify-content:center;border:3px solid transparent;background:var(--azul-claro);color:var(--azul);font-size:11px;font-weight:700}
.item-avatar input:checked + img,.item-avatar input:checked + .auto{border-color:var(--azul-2);box-shadow:0 0 0 2px #fff inset}
.item-avatar:hover img,.item-avatar:hover .auto{border-color:#9CC3E8}
