:root { --azul:#1a4b8c; --sim:#1e8e3e; --res:#f59e0b; --nao:#dc2626; --na:#8a8a99; }
* { box-sizing: border-box; }
body { margin:0; font-family: system-ui, "Segoe UI", Roboto, sans-serif;
  color:#1b1b1f; background:#f5f6f8; }
.topo { display:flex; justify-content:space-between; align-items:center;
  padding:.7rem 1.2rem; background:var(--azul); color:#fff; }
.topo a { color:#fff; text-decoration:none; }
.marca { font-weight:700; }
.topo .quem { margin-right:1rem; opacity:.9; font-size:.9rem; }
.conteudo { max-width:960px; margin:1.2rem auto; padding:0 1rem; }
h1 { font-size:1.5rem; } h2 { font-size:1.15rem; margin-top:1.5rem; }
.sub { color:#5a5a66; margin-top:-.4rem; }
.grade { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:1rem; }
.card { display:block; background:#fff; border:1px solid #e2e4e9; border-radius:10px;
  padding:1rem; text-decoration:none; color:inherit; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.card:hover { border-color:var(--azul); }
.kpis { display:flex; flex-wrap:wrap; gap:.4rem; margin:.5rem 0; }
.kpi { font-size:.8rem; padding:.15rem .5rem; border-radius:999px; background:#eceef2; }
.kpi-sim { background:#e3f4e8; color:var(--sim); }
.kpi-res { background:#fdf1dc; color:#a86400; }
.kpi-nao { background:#fbe3e3; color:var(--nao); }
.kpi-na { background:#ecedf0; color:var(--na); }
.acoes { font-size:.85rem; color:#444; }
.secao { margin-top:1.2rem; color:var(--azul); border-bottom:1px solid #e2e4e9; }
.item { background:#fff; border:1px solid #e8e9ee; border-radius:8px;
  padding:.7rem .9rem; margin:.5rem 0; }
.pergunta { margin:.1rem 0 .5rem; }
.respostas { display:flex; flex-wrap:wrap; gap:.8rem; font-size:.9rem; }
.item input[type=text] { width:100%; margin:.5rem 0; padding:.35rem; }
.plano { width:100%; border-collapse:collapse; font-size:.85rem; margin:.4rem 0 1rem; }
.plano th, .plano td { border:1px solid #e2e4e9; padding:.35rem .5rem; text-align:left;
  vertical-align:top; }
.status-cumprido { background:#f2fbf5; } .status-em_andamento { background:#fffdf5; }
.status-continua { background:#f5f8ff; }
.flash { padding:.6rem .9rem; border-radius:6px; margin:.5rem 0; }
.flash-success { background:#e3f4e8; } .flash-warning { background:#fdf1dc; }
.flash-danger { background:#fbe3e3; } .flash-info { background:#e7eefb; }
.login { max-width:420px; margin:3rem auto; text-align:center; background:#fff;
  padding:2rem; border-radius:12px; border:1px solid #e2e4e9; }
.btn { display:inline-block; margin:.4rem; padding:.6rem 1.1rem; border-radius:8px;
  background:var(--azul); color:#fff; text-decoration:none; border:none; cursor:pointer; }
.btn-teste { background:#6b7280; }
button { padding:.4rem 1rem; border:none; border-radius:6px; background:var(--azul);
  color:#fff; cursor:pointer; }

/* ---- F2: navegacao / badges / progresso ---- */
.topo nav { display:flex; align-items:center; gap:.9rem; }
.badge { display:inline-block; font-size:.75rem; padding:.1rem .5rem;
  border-radius:999px; background:#eceef2; color:#444; }
.badge-ok { background:#e3f4e8; color:var(--sim); }
.badge-and { background:#e7eefb; color:var(--azul); }
.badge-atraso { background:#fbe3e3; color:var(--nao); font-weight:600; }
.badge-cont { background:#f0e9fb; color:#6d28d9; }
.badge-hist { background:#efe7d8; color:#8a6d1a; }
.ciclos { margin:.2rem 0 .6rem; }
.pill-ciclo { display:inline-block; padding:.15rem .6rem; margin-right:.3rem;
  border:1px solid #d5d8df; border-radius:999px; font-size:.85rem;
  text-decoration:none; color:#444; background:#fff; }
.pill-ciclo.ativo { border-color:var(--azul); color:var(--azul);
  font-weight:600; background:#e7eefb; }
.progresso { height:8px; background:#e2e4e9; border-radius:999px;
  overflow:hidden; margin:.3rem 0 1rem; }
.progresso-fill { height:100%; background:var(--sim); border-radius:999px; }
.acoes-link { margin:.8rem 0; }
.btn-claro { background:#fff; color:var(--azul); border:1px solid var(--azul); }

/* ---- F2: cartao da verificacao (assinaturas/concluir) ---- */
.cartao { background:#fff; border:1px solid #e2e4e9; border-radius:10px;
  padding:.8rem 1rem; margin:.8rem 0; }
.cartao-ok { border-color:#bfe5cb; background:#f4fbf6; }
.cartao summary { cursor:pointer; }
.cartao label { display:block; margin:.5rem 0; font-size:.9rem; }
.cartao input[type=text] { width:100%; max-width:420px; display:block;
  padding:.35rem; margin-top:.2rem; }
form.inline { display:inline; margin-left:.6rem; }

/* ---- F2: checklist em secoes (acordeao) ---- */
.secao-bloco { background:#fff; border:1px solid #e2e4e9; border-radius:10px;
  margin:.7rem 0; padding:0; }
.secao-bloco > summary { display:flex; justify-content:space-between;
  align-items:center; cursor:pointer; padding:.7rem 1rem; font-weight:600;
  color:var(--azul); list-style-position:inside; }
.secao-bloco[open] > summary { border-bottom:1px solid #eceef2; }
.secao-bloco .item { border:none; border-bottom:1px solid #f0f1f4;
  border-radius:0; margin:0; }
.secao-bloco .item:last-child { border-bottom:none; }
.resposta-pill { display:inline-flex; align-items:center; gap:.3rem;
  border:1px solid #d5d8df; border-radius:999px; padding:.2rem .7rem;
  cursor:pointer; font-size:.85rem; background:#fafbfc; }
.resposta-pill input { accent-color:var(--azul); margin:0; }
.resposta-pill:has(input:checked) { border-width:2px; font-weight:600; }
.pill-sim:has(input:checked) { border-color:var(--sim); background:#e3f4e8; }
.pill-ressalvas:has(input:checked) { border-color:var(--res); background:#fdf1dc; }
.pill-nao:has(input:checked) { border-color:var(--nao); background:#fbe3e3; }
.pill-na:has(input:checked) { border-color:var(--na); background:#ecedf0; }
.item-rodape { display:flex; align-items:center; gap:.8rem; }
.meta { font-size:.78rem; color:#71717d; }

/* ---- F2: plano de regularizacao (cartoes de acao) ---- */
.acao { background:#fff; border:1px solid #e2e4e9; border-left:4px solid #cbd0d9;
  border-radius:8px; margin:.5rem 0; }
.acao > summary { display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;
  cursor:pointer; padding:.6rem .9rem; }
.acao.status-cumprido { border-left-color:var(--sim); }
.acao.status-em_andamento { border-left-color:var(--res); }
.acao.status-continua { border-left-color:#6d28d9; }
.acao-ref { font-weight:700; color:var(--azul); min-width:2.4rem; }
.acao-oque { flex:1; }
.acao-tags { display:flex; gap:.3rem; }
.acao-corpo { padding:.2rem .9rem .8rem; border-top:1px solid #f0f1f4; }
.acao-corpo label { display:block; margin:.4rem 0; font-size:.85rem; }
.acao-corpo textarea, .acao-corpo select, .acao-corpo input[type=date] {
  width:100%; padding:.35rem; margin-top:.15rem; font:inherit; }
.linha-campos { display:grid; gap:.6rem;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); align-items:end; }
.linha-campos label.check { display:flex; align-items:center; gap:.4rem; }
.acao-botoes { margin-top:.5rem; display:flex; gap:.5rem; }
.acao-botoes form.inline { margin-left:0; }
.btn-mini { padding:.25rem .7rem; font-size:.8rem; border-radius:6px; }
.btn-cinza { background:#6b7280; }
.btn-verde { background:var(--sim); }

/* ---- F4: painel (barras de adequacao + matriz) ---- */
.pct { font-size:.85rem; padding:.1rem .5rem; border-radius:999px;
  vertical-align:middle; }
.pct-ok { background:#e3f4e8; color:var(--sim); }
.pct-meio { background:#fdf1dc; color:#a86400; }
.pct-ruim { background:#fbe3e3; color:var(--nao); }
.bar-mini { display:flex; height:7px; border-radius:999px; overflow:hidden;
  background:#e2e4e9; margin:.3rem 0 .1rem; }
.seg { height:100%; }
.seg-sim { background:var(--sim); }
.seg-res { background:var(--res); }
.seg-nao { background:var(--nao); }
.tx-nao { color:var(--nao); }
.rolagem { overflow-x:auto; }
.matriz td, .matriz th { text-align:center; }
.matriz td:first-child, .matriz th:first-child { text-align:left; }
.cel-ok { background:#e3f4e8; color:var(--sim); }
.cel-meio { background:#fdf1dc; color:#a86400; }
.cel-ruim { background:#fbe3e3; color:var(--nao); }
.linha-geral td { border-top:2px solid var(--azul); }

/* ---- F3: evidencias + cofre ---- */
.evidencias { margin-top:.5rem; padding-top:.4rem; border-top:1px dashed #e2e4e9;
  display:flex; flex-wrap:wrap; gap:.5rem; align-items:center; font-size:.85rem; }
.evidencia { background:#f4f6fa; border:1px solid #e2e4e9; border-radius:6px;
  padding:.15rem .5rem; display:inline-flex; gap:.3rem; align-items:center; }
.form-evidencia { display:inline-flex; gap:.4rem; align-items:center; }
.form-evidencia input[type=file] { font-size:.8rem; max-width:220px; }
.btn-link { background:none; border:none; color:var(--azul); cursor:pointer;
  padding:0; font-size:.8rem; text-decoration:underline; }
.btn-perigo { color:var(--nao); }
.btn-perigo-solid { background:var(--nao); }
.acoes-doc { white-space:nowrap; }
.cartao input[type=file] { display:block; margin-top:.2rem; }

/* ---- F2: plano consolidado (filtros) ---- */
.filtros { display:flex; gap:.7rem; flex-wrap:wrap; align-items:end;
  background:#fff; border:1px solid #e2e4e9; border-radius:10px;
  padding:.7rem .9rem; margin:.8rem 0; }
.filtros label { font-size:.8rem; color:#5a5a66; display:block; }
.filtros select { display:block; padding:.3rem; margin-top:.15rem; font:inherit; }
tr.atrasada td { color:var(--nao); }
