/* ============================================================
   Controle de EPI - estilo principal
   ============================================================ */
:root{
  --azul:#0d47a1; --azul-2:#1565c0; --azul-claro:#e3f0ff;
  --verde:#2e7d32; --verde-claro:#e8f5e9;
  --amarelo:#f9a825; --vermelho:#c62828; --vermelho-claro:#fdecea;
  --cinza:#5b6470; --cinza-2:#8a929c; --linha:#e2e6ea;
  --bg:#f4f6f9; --branco:#fff; --texto:#1f2733;
  --sombra:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.06);
  --raio:10px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);color:var(--texto);font-size:15px;line-height:1.45}
a{color:var(--azul-2);text-decoration:none}
a:hover{text-decoration:underline}

/* ---------- topo / nav ---------- */
.topo{background:linear-gradient(120deg,#06183b 0%,#0a2f6e 55%,#0d3f8f 100%);color:#fff;box-shadow:0 2px 10px rgba(6,20,50,.25);position:sticky;top:0;z-index:50}
.topo-in{max-width:1100px;margin:0 auto;display:flex;align-items:center;gap:18px;
  padding:10px 16px;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:17px}
.marca:hover{text-decoration:none}
.marca-ico{background:var(--amarelo);color:#222;border-radius:7px;padding:3px 8px;font-weight:800;
  letter-spacing:.5px;font-size:14px}
.marca-txt{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.marca{display:flex;align-items:center;min-height:48px}
.marca-logo{height:40px;width:auto;max-width:200px;object-fit:contain;display:block}
.nav{display:flex;gap:4px;margin-left:auto}
.nav a{color:#dce8fb;padding:8px 12px;border-radius:7px;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.12);color:#fff;text-decoration:none}
.usuario{display:flex;align-items:center;gap:12px;margin-left:8px}
.usuario-nome{color:#cfe0f7;font-size:13px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sair{color:#fff;border:1px solid rgba(255,255,255,.4);padding:5px 12px;border-radius:7px;font-size:13px}
.sair:hover{background:rgba(255,255,255,.15);text-decoration:none}
.menu-btn{display:none;background:none;border:0;color:#fff;font-size:22px;cursor:pointer;margin-left:auto}

/* ---------- barra do dono (super-admin: visualizar como empresa) ---------- */
.dono-bar{background:#0a1f44;color:#cfe0f7;border-bottom:1px solid #0d3f8f}
.dono-bar-in{max-width:1100px;margin:0 auto;padding:8px 16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px}
.dono-bar-lbl{display:flex;align-items:center;gap:6px;color:#fff}
.dono-bar-vendo{margin-left:auto;color:#fff}
.dono-bar select{padding:6px 10px;border-radius:7px;border:1px solid #2a4a80;background:#fff;font-size:13px}

/* ---------- conteudo ---------- */
.conteudo{max-width:1100px;margin:22px auto;padding:0 16px}
.rodape{text-align:center;color:var(--cinza-2);font-size:13px;padding:24px}

h1{font-size:23px;margin:0 0 4px} h2{font-size:18px;margin:0 0 12px}
.sub{color:var(--cinza);margin:0 0 20px}

/* ---------- cabecalho de pagina ---------- */
.pg-cab{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}

/* ---------- cards ---------- */
.card{background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);
  box-shadow:var(--sombra);padding:20px;margin-bottom:18px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:8px}
.stat{background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);
  box-shadow:var(--sombra);padding:16px 18px}
.stat .num{font-size:30px;font-weight:800;color:var(--azul)}
.stat .lbl{color:var(--cinza);font-size:13px;text-transform:uppercase;letter-spacing:.4px}
.stat.verde .num{color:var(--verde)} .stat.amarelo .num{color:var(--amarelo)}
/* destaque por cor (Gerencial): azul=financeiro, verde=quantidade, laranja=alerta */
.stat.fin{border-left:4px solid var(--azul)} .stat.fin .num{color:var(--azul)}
.stat.verde{border-left:4px solid var(--verde)}
.stat.laranja{border-left:4px solid #e8590c} .stat.laranja .num{color:#e8590c}
.stat .lbl .ico-svg{vertical-align:-2px;margin-right:3px}

/* ---------- KPI de conformidade (destaque grande) ---------- */
.kpi-conf{display:flex;align-items:center;gap:20px;padding:22px 24px;border-left:6px solid var(--azul);
  background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);
  margin-bottom:18px;flex-wrap:wrap}
.kpi-conf.verde{border-left-color:var(--verde)}
.kpi-conf.amarelo{border-left-color:var(--amarelo)}
.kpi-conf.vermelho{border-left-color:var(--vermelho)}
.kpi-conf .pct{font-size:54px;font-weight:800;line-height:1;color:var(--azul);min-width:120px}
.kpi-conf.verde .pct{color:var(--verde)}
.kpi-conf.amarelo .pct{color:#9a6b00}
.kpi-conf.vermelho .pct{color:var(--vermelho)}
.kpi-conf .pct.semdados{font-size:30px;color:var(--cinza-2)}
.kpi-conf .info h2{margin:0 0 4px;font-size:18px}
.kpi-conf .info p{margin:0;color:var(--cinza)}
.kpi-conf .info .det{font-size:13px;color:var(--cinza-2);margin-top:6px}

/* ---------- botoes ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--azul-2);color:#fff;border:0;
  padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;line-height:1}
.btn:hover{background:var(--azul);text-decoration:none}
.btn.sec{background:#fff;color:var(--azul-2);border:1px solid #c5d4ec}
.btn.sec:hover{background:#f1f6ff}
.btn.verde{background:var(--verde)} .btn.verde:hover{background:#1b5e20}
.btn.perigo{background:var(--vermelho)} .btn.perigo:hover{background:#9a1f1f}
.btn.peq{padding:6px 11px;font-size:13px}
.btn.bloco{width:100%;justify-content:center;padding:13px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- formularios ---------- */
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.campo{display:flex;flex-direction:column;gap:5px;margin-bottom:2px}
.campo.full{grid-column:1/-1}
.campo label{font-size:13px;font-weight:600;color:#39424f}
.campo input,.campo select,.campo textarea{padding:10px 12px;border:1px solid #cfd6df;border-radius:8px;
  font-size:15px;font-family:inherit;background:#fff;width:100%}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:0;border-color:var(--azul-2);
  box-shadow:0 0 0 3px var(--azul-claro)}
.campo .dica{font-size:12px;color:var(--cinza-2)}
/* Campo obrigatorio invalido: destaca em vermelho APOS interacao/tentativa de envio */
.campo input:user-invalid,.campo select:user-invalid,.campo textarea:user-invalid,
.campo input.invalido,.campo select.invalido,.campo textarea.invalido{
  border-color:var(--vermelho);box-shadow:0 0 0 3px var(--vermelho-claro)}
.form-acoes{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}

/* ---------- tabelas ---------- */
.tabela-wrap{overflow-x:auto;border:1px solid var(--linha);border-radius:var(--raio);background:#fff}
table.dados{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
table.dados th,table.dados td{padding:11px 13px;text-align:left;border-bottom:1px solid var(--linha)}
table.dados th{background:#f7f9fc;color:#48515d;font-size:12px;text-transform:uppercase;letter-spacing:.4px}
table.dados tr:last-child td{border-bottom:0}
table.dados tr:hover td{background:#fafcff}
table.dados th,table.dados td{vertical-align:middle}   /* mesma altura visual em todas as linhas */
.col-centro{text-align:center}
.acoes-col{text-align:right;white-space:nowrap}
/* acoes da linha: botoes sempre alinhados, mesma altura, sem quebrar */
.acoes-linha{display:flex;gap:6px;justify-content:flex-end;align-items:center;flex-wrap:nowrap}
.acoes-linha form{margin:0;display:inline-flex}
.acoes-linha .btn.peq{white-space:nowrap}

/* ---------- badges ---------- */
.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}
.badge.cinza{background:#eceff3;color:#5b6470}
.badge.verde{background:var(--verde-claro);color:var(--verde)}
.badge.amarelo{background:#fff4d6;color:#9a6b00}
.badge.vermelho{background:var(--vermelho-claro);color:var(--vermelho)}
.badge.inativo{background:#f0f0f0;color:#999}

/* ---------- alertas ---------- */
.alerta{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500;border:1px solid}
.alerta.ok{background:var(--verde-claro);border-color:#bfe3c0;color:#1b5e20}
.alerta.erro{background:var(--vermelho-claro);border-color:#f3c2bd;color:#922}

/* ---------- busca ---------- */
.barra-busca{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.barra-busca input{flex:1;min-width:200px;padding:10px 12px;border:1px solid #cfd6df;border-radius:8px;font-size:14px}
.filtros{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.filtros a{padding:6px 12px;border-radius:20px;background:#fff;border:1px solid var(--linha);font-size:13px;color:var(--cinza)}
.filtros a.ativo{background:var(--azul);color:#fff;border-color:var(--azul)}

/* ---------- icones SVG ---------- */
.ico-svg{vertical-align:-3px;flex:none}
.btn .ico-svg{vertical-align:-4px;margin-right:5px}
.btn.peq .ico-svg{margin-right:3px}
h2 .ico-svg{vertical-align:-4px;margin-right:6px;color:var(--cinza)}

/* ---------- vazio ---------- */
.vazio{text-align:center;padding:42px 20px;color:var(--cinza-2)}
.vazio .ico{font-size:40px;margin-bottom:8px;line-height:1}
.vazio .ico .ico-svg{color:var(--cinza-2)}

/* ---------- login ---------- */
.login-tela{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(135deg,#061a40 0%,#0a2f6e 60%,#0d3f8f 100%);padding:20px}
.login-rodape{text-align:center;color:rgba(255,255,255,.75);font-size:12px;margin:0}
.login-box{background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.25);
  padding:34px 30px;width:100%;max-width:380px}
.login-logo{text-align:center;margin-bottom:22px}
.login-logo .ico{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:84px;max-width:290px;height:auto;min-height:66px;padding:16px 24px;border-radius:18px;background:linear-gradient(135deg,#0a2f6e,#0d3f8f);color:#fff;font-weight:800;font-size:20px}
.login-logo-img{max-width:100%;max-height:56px;width:auto;object-fit:contain;display:block}
.login-logo h1{font-size:20px;margin:14px 0 2px}
.login-logo p{color:var(--cinza);margin:0;font-size:14px}

/* ---------- ficha / termo ---------- */
.linha-info{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:6px}
.linha-info .item{font-size:14px} .linha-info .item b{display:block;color:var(--cinza-2);font-size:12px;text-transform:uppercase}
.motivo-radios{display:flex;gap:14px;flex-wrap:wrap}
.motivo-radios label{display:flex;align-items:center;gap:6px;font-weight:500}

/* ---------- assinatura ---------- */
.assina-tela{max-width:700px;margin:0 auto;padding:16px}
.assina-canvas-wrap{border:2px dashed #9bb4d6;border-radius:12px;background:#fff;touch-action:none}
#assinaturaCanvas{width:100%;height:260px;display:block;border-radius:12px}
.assina-acoes{display:flex;gap:10px;margin-top:14px}

/* ---------- relatorios gerenciais (graficos / rankings) ---------- */
.graf-barras{display:flex;flex-direction:column;gap:8px}
.gb-item{display:flex;align-items:center;gap:10px}
.gb-lbl{width:64px;font-size:13px;color:var(--cinza);flex:none;text-align:right}
.gb-track{flex:1;height:14px;background:#eef2f7;border-radius:8px;overflow:hidden}
.gb-fill{height:100%;background:linear-gradient(90deg,var(--azul-2),var(--azul));border-radius:8px;min-width:2px}
.gb-val{width:110px;flex:none;text-align:right;font-size:13px;font-weight:700;color:var(--azul)}
.rank{list-style:none;margin:0;padding:0;counter-reset:r}
.rank li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--linha)}
.rank li:last-child{border-bottom:0}
.rank li span{flex:1}
.rank li b{color:var(--azul);white-space:nowrap}
.rank li::before{counter-increment:r;content:counter(r);background:var(--azul-claro);color:var(--azul);
  font-weight:800;font-size:12px;width:22px;height:22px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;flex:none}
.filtro-chip{padding:5px 11px;border-radius:20px;background:#fff;border:1px solid var(--linha);
  font-size:13px;color:var(--cinza)}
.filtro-chip:hover{text-decoration:none;background:#f1f6ff}
.filtro-chip.ativo{background:var(--azul);color:#fff;border-color:var(--azul)}

@media(max-width:760px){
  .menu-btn{display:block}
  .nav{display:none;width:100%;flex-direction:column;order:3}
  body.nav-aberto .nav{display:flex}
  .usuario{order:4;width:100%;justify-content:space-between;display:none}
  body.nav-aberto .usuario{display:flex}
  .nav a{padding:11px 12px}
  .form-grid{grid-template-columns:1fr}
  .topo-in{gap:10px}
  .cards{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}

/* ---------- impressao (relatorios) ---------- */
@media print{
  .topo,.rodape,.no-print,.menu-btn,.btn{display:none !important}
  .conteudo{max-width:none;margin:0;padding:0}
  .card,.stat{box-shadow:none;border-color:#ccc;break-inside:avoid}
  body{background:#fff}
}
