:root{
  --verde-900:#1B2620;
  --verde-800:#233229;
  --verde-700:#2B3A2E;
  --verde-600:#3A4E3D;
  --papel:#EFEAD9;
  --papel-alt:#E5DEC7;
  --tinta:#20241D;
  --tinta-suave:#4B5347;
  --latao:#A9863C;
  --latao-claro:#C8A461;
  --linha:#C9BE9C;
  --vinho:#7A2E2E;
  --vinho-claro:#B4574F;
  --azul-info:#35506B;
  --verde-elogio:#3F6E44;
  --ambar-media:#8A6A22;
  --radius:2px;
  --serif:'Source Serif 4', Georgia, serif;
  --sans:'IBM Plex Sans', system-ui, sans-serif;
  --mono:'IBM Plex Mono', 'Courier New', monospace;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--verde-900);
  background-image:
    radial-gradient(circle at 20% 10%, rgba(200,164,97,0.06), transparent 40%),
    radial-gradient(circle at 85% 90%, rgba(200,164,97,0.05), transparent 45%);
  color:var(--tinta);
  font-family:var(--sans);
  min-height:100vh;
}
a{color:inherit;}
a.card{text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--latao-claro);color:var(--verde-900);}

/* ---------- Barra de topo institucional ---------- */
.topbar{
  background:var(--verde-900);
  color:var(--papel);
  border-bottom:1px solid rgba(200,164,97,0.35);
  padding:14px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.topbar .brasao{
  display:flex;align-items:center;gap:10px;
  color:var(--latao-claro);
}
.topbar .brasao .estrela{font-size:14px;}
.topbar .rota{opacity:0.75;}
.topbar .rota b{color:var(--latao-claro);font-weight:600;}

/* ---------- Views ---------- */
.view{display:none;}
.view.ativa{display:block;}

/* ================= PORTAL ================= */
#portal-view{
  max-width:1100px;
  margin:0 auto;
  padding:64px 28px 90px;
}
.portal-hero{
  text-align:left;
  margin-bottom:56px;
  border-bottom:1px solid rgba(200,164,97,0.3);
  padding-bottom:36px;
}
.portal-hero .eyebrow{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--latao-claro);
  margin-bottom:14px;
}
.portal-hero h1{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(32px,4.4vw,50px);
  line-height:1.08;
  color:var(--papel);
  margin:0 0 14px;
}
.portal-hero p{
  font-size:15.5px;
  line-height:1.65;
  color:rgba(239,234,217,0.75);
  max-width:620px;
  margin:0;
}

.cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
}
@media (max-width:860px){ .cards{grid-template-columns:1fr;} }

.card{
  background:var(--papel);
  border:1px solid var(--linha);
  border-radius:var(--radius);
  padding:26px 24px 24px;
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:230px;
  transition:transform .18s ease, box-shadow .18s ease;
}
.card.ativa-card{cursor:pointer;}
.card.ativa-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(0,0,0,0.35);
}
.card .num{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.12em;
  color:var(--tinta-suave);
  margin-bottom:14px;
}
.card h2{
  font-family:var(--serif);
  font-size:23px;
  font-weight:600;
  margin:0 0 8px;
  color:var(--verde-900);
}
.card p{
  font-size:13.5px;
  line-height:1.55;
  color:var(--tinta-suave);
  margin:0 0 18px;
  flex-grow:1;
}
.card .status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  width:fit-content;
  padding:6px 10px;
  border-radius:20px;
}
.status.pronta{background:rgba(63,110,68,0.14);color:var(--verde-elogio);}
.status.dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;}
.status.dev{background:rgba(122,46,46,0.1);color:var(--vinho);}
.card.desativado{opacity:0.72;}
.card.desativado h2{color:var(--tinta-suave);}
.card-cta{
  margin-top:16px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--verde-700);
  border-top:1px solid var(--linha);
  padding-top:14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.card.desativado .card-cta{color:var(--tinta-suave);}

.portal-nota{
  margin-top:46px;
  padding:16px 20px;
  border-left:3px solid var(--latao);
  background:rgba(200,164,97,0.06);
  color:rgba(239,234,217,0.8);
  font-size:13px;
  line-height:1.6;
  border-radius:var(--radius);
}
.portal-nota b{color:var(--latao-claro);}

/* ================= FAFD TOOL ================= */
#fafd-view{
  background:var(--papel);
  min-height:100vh;
}
.fafd-shell{
  max-width:1180px;
  margin:0 auto;
  padding:0 28px 80px;
}
.fafd-head{
  padding:26px 0 20px;
  border-bottom:1px solid var(--linha);
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
}
.voltar-portal{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--verde-700);
  background:none;
  border:none;
  padding:0;
  margin-bottom:10px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  text-decoration:none;
  cursor:pointer;
}
.voltar-portal:hover{color:var(--vinho);}
.fafd-head h1{
  font-family:var(--serif);
  font-size:30px;
  font-weight:600;
  margin:0;
  color:var(--verde-900);
}
.fafd-head .sub{font-size:13px;color:var(--tinta-suave);margin-top:4px;}
.fafd-meta{
  display:flex;
  gap:10px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.meta-field label{
  display:block;
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--tinta-suave);
  margin-bottom:4px;
}
.meta-field input, .meta-field select{
  font-family:var(--mono);
  font-size:13px;
  padding:7px 9px;
  border:1px solid var(--linha);
  background:#fff;
  border-radius:var(--radius);
  width:110px;
}

/* ---- tabs / stepper ---- */
.steps{
  display:flex;
  gap:2px;
  margin:26px 0 0;
  border-bottom:1px solid var(--linha);
}
.step-btn{
  background:none;
  border:none;
  padding:12px 18px 14px;
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  color:var(--tinta-suave);
  border-bottom:2px solid transparent;
  margin-bottom:-1px;
  white-space:nowrap;
}
.step-btn .n{
  display:inline-block;
  width:16px;height:16px;
  border-radius:50%;
  border:1px solid var(--tinta-suave);
  font-size:9px;
  line-height:14px;
  text-align:center;
  margin-right:7px;
}
.step-btn.ativo{color:var(--verde-900);border-bottom-color:var(--latao);}
.step-btn.ativo .n{background:var(--verde-900);border-color:var(--verde-900);color:var(--papel);}
.step-btn:hover{color:var(--verde-900);}

.step-pane{display:none;padding:32px 0 10px;}
.step-pane.ativo{display:block;}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
@media (max-width:760px){.grid2,.grid3{grid-template-columns:1fr;}}

.painel{
  background:#fff;
  border:1px solid var(--linha);
  border-radius:var(--radius);
  padding:22px 22px 24px;
}
.painel h3{
  font-family:var(--serif);
  font-size:16.5px;
  font-weight:600;
  margin:0 0 4px;
  color:var(--verde-900);
}
.painel .desc{font-size:12.5px;color:var(--tinta-suave);margin:0 0 16px;line-height:1.5;}

.campo{margin-bottom:16px;}
.campo label{
  display:block;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--tinta-suave);
  margin-bottom:6px;
}
.campo input[type=text], .campo input[type=number], .campo input[type=date],
.campo select, .campo textarea{
  width:100%;
  font-family:var(--sans);
  font-size:14px;
  padding:9px 11px;
  border:1px solid var(--linha);
  border-radius:var(--radius);
  background:#fdfcf7;
  color:var(--tinta);
}
.campo input:focus, .campo select:focus, .campo textarea:focus{
  outline:none;
  border-color:var(--latao);
  background:#fff;
}
.campo textarea{resize:vertical;min-height:90px;line-height:1.5;}
.campo .hint{font-size:11px;color:var(--tinta-suave);margin-top:5px;}
.row-inline{display:flex;gap:10px;}
.row-inline > .campo{flex:1;}

/* upload de planilha */
.dropzone{
  border:1.5px dashed var(--linha);
  border-radius:var(--radius);
  padding:22px;
  text-align:center;
  background:var(--papel);
  transition:border-color .15s, background .15s;
  cursor:pointer;
}
.dropzone.arrastando{border-color:var(--latao);background:#F7F2E4;}
.dropzone .icone{font-size:22px;margin-bottom:8px;}
.dropzone .titulo{font-weight:600;font-size:13.5px;color:var(--verde-900);}
.dropzone .sub{font-size:12px;color:var(--tinta-suave);margin-top:4px;}
.dropzone input[type=file]{display:none;}
.status-arquivo{
  margin-top:12px;
  font-family:var(--mono);
  font-size:12px;
  color:var(--verde-elogio);
  display:none;
}
.status-arquivo.mostrar{display:block;}

/* combobox de aluno */
.combo-wrap{position:relative;}
.combo-lista{
  position:absolute;
  top:calc(100% + 4px);
  left:0;right:0;
  background:#fff;
  border:1px solid var(--linha);
  border-radius:var(--radius);
  max-height:230px;
  overflow-y:auto;
  box-shadow:0 12px 24px rgba(0,0,0,0.14);
  z-index:20;
  display:none;
}
.combo-lista.aberta{display:block;}
.combo-item{
  padding:9px 12px;
  font-size:13px;
  border-bottom:1px solid #F0EDE1;
  display:flex;
  justify-content:space-between;
  gap:10px;
}
.combo-item:hover, .combo-item.destacado{background:var(--papel);}
.combo-item .cnr{font-family:var(--mono);color:var(--tinta-suave);}
.combo-item small{display:block;color:var(--tinta-suave);font-size:11px;}

.aluno-chip{
  display:none;
  align-items:center;
  gap:10px;
  margin-top:10px;
  padding:9px 12px;
  background:var(--verde-700);
  color:var(--papel);
  border-radius:var(--radius);
  font-size:12.5px;
}
.aluno-chip.mostrar{display:flex;}
.aluno-chip .badge{
  font-family:var(--mono);
  background:var(--latao);
  color:var(--verde-900);
  padding:2px 7px;
  border-radius:12px;
  font-size:11px;
  font-weight:600;
}

/* natureza do fato pills */
.pills{display:flex;gap:8px;flex-wrap:wrap;}
.pill{
  border:1px solid var(--linha);
  border-radius:20px;
  padding:7px 14px;
  font-size:12.5px;
  background:#fff;
  color:var(--tinta-suave);
}
.pill input{display:none;}
.pill.sel-pos{border-color:var(--verde-elogio);}
.pill.sel-pos.marcado{background:var(--verde-elogio);color:#fff;}
.pill.sel-neg{border-color:var(--vinho);}
.pill.sel-neg.marcado{background:var(--vinho);color:#fff;}
.pill.sel-info{border-color:var(--azul-info);}
.pill.sel-info.marcado{background:var(--azul-info);color:#fff;}

/* checklists agravantes/atenuantes */
.checklist{max-height:300px;overflow-y:auto;padding-right:4px;}
.chk-item{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:8px 4px;
  border-bottom:1px solid #F0EDE1;
  font-size:13px;
  line-height:1.4;
}
.chk-item input{margin-top:3px;accent-color:var(--verde-700);}
.chk-item .nr{font-family:var(--mono);color:var(--latao);min-width:20px;}

/* select de falta com busca */
.falta-lista{max-height:280px;overflow-y:auto;border:1px solid var(--linha);border-radius:var(--radius);background:#fdfcf7;}
.falta-item{
  padding:9px 12px;
  font-size:13px;
  border-bottom:1px solid #F0EDE1;
  cursor:pointer;
  display:flex;
  gap:10px;
}
.falta-item:hover{background:var(--papel);}
.falta-item.sel{background:var(--verde-700);color:#fff;}
.falta-item .nr{font-family:var(--mono);font-weight:600;min-width:26px;color:var(--latao);}
.falta-item.sel .nr{color:var(--latao-claro);}

/* classificação da falta */
.classe-opcoes{display:flex;gap:8px;flex-wrap:wrap;}
.classe-btn{
  flex:1;min-width:120px;
  border:1.5px solid var(--linha);
  border-radius:var(--radius);
  background:#fff;
  padding:12px 10px;
  text-align:left;
  font-family:var(--sans);
}
.classe-btn .titulo{font-weight:600;font-size:13.5px;}
.classe-btn .medida{font-size:11px;color:var(--tinta-suave);margin-top:3px;}
.classe-btn[data-classe="leve"].ativo{border-color:var(--verde-elogio);background:rgba(63,110,68,0.08);}
.classe-btn[data-classe="media"].ativo{border-color:var(--ambar-media);background:rgba(138,106,34,0.08);}
.classe-btn[data-classe="grave"].ativo{border-color:var(--vinho);background:rgba(122,46,46,0.08);}
.classe-btn[data-classe="eliminatoria"].ativo{border-color:var(--vinho);background:rgba(122,46,46,0.16);}
.classe-btn[data-classe="justificado"].ativo,
.classe-btn[data-classe="elogio"].ativo{border-color:var(--azul-info);background:rgba(53,80,107,0.08);}

.alerta-competencia{
  margin-top:12px;
  font-size:12px;
  padding:10px 12px;
  border-left:3px solid var(--latao);
  background:var(--papel);
  border-radius:var(--radius);
  display:none;
  line-height:1.5;
}
.alerta-competencia.mostrar{display:block;}

/* grau de comportamento */
.grau-box{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.grau-atual, .grau-novo{
  text-align:center;
  padding:14px 20px;
  border:1px solid var(--linha);
  border-radius:var(--radius);
  min-width:120px;
}
.grau-atual .valor, .grau-novo .valor{font-family:var(--mono);font-size:26px;font-weight:600;color:var(--verde-900);}
.grau-novo .valor{color:var(--vinho);}
.grau-atual .rotulo, .grau-novo .rotulo{font-size:11px;color:var(--tinta-suave);text-transform:uppercase;letter-spacing:0.05em;margin-top:4px;}
.grau-seta{font-size:20px;color:var(--tinta-suave);}
.grau-classe{
  font-family:var(--mono);
  font-size:11px;
  padding:4px 10px;
  border-radius:12px;
  background:var(--verde-700);
  color:#fff;
  display:inline-block;
  margin-top:8px;
}

/* botões */
.btn{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:0.05em;
  text-transform:uppercase;
  padding:11px 20px;
  border-radius:var(--radius);
  border:1px solid var(--verde-900);
  background:var(--verde-900);
  color:var(--papel);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.btn:hover{background:var(--verde-700);}
.btn.ghost{background:transparent;color:var(--verde-900);}
.btn.ghost:hover{background:var(--papel-alt);}
.btn.gold{background:var(--latao);border-color:var(--latao);color:var(--verde-900);}
.btn.gold:hover{background:var(--latao-claro);}
.btn:disabled{opacity:0.45;cursor:not-allowed;}

.nav-passos{display:flex;justify-content:space-between;margin-top:30px;padding-top:20px;border-top:1px solid var(--linha);}

/* ---------- pré-visualização (réplica fiel do formulário oficial, 4 páginas) ---------- */
.doc-wrap{display:flex;flex-direction:column;align-items:center;gap:26px;}

.pagina-oficial{
  background:#fff;
  border:1px solid #B9B9B9;
  box-shadow:0 14px 34px rgba(0,0,0,0.22);
  width:100%;
  max-width:800px;
  padding:34px 40px 40px;
  font-family:Arial, Helvetica, sans-serif;
  color:#000;
  font-size:12.5px;
  line-height:1.45;
}
.pagina-oficial .rotulo-pagina{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--tinta-suave);
  margin-bottom:10px;
}
.titulo-principal{
  text-align:center;
  font-weight:700;
  font-size:16px;
  text-transform:uppercase;
  margin:0 0 16px;
}
.cabecalho-corrido{
  text-align:center;
  font-weight:700;
  font-size:12.5px;
  margin:0 0 16px;
}
table.tabela-oficial{width:100%;border-collapse:collapse;margin-bottom:0;}
table.tabela-oficial td{
  border:1px solid #000;
  padding:6px 9px;
  vertical-align:top;
  font-size:12px;
}
table.tabela-oficial td[contenteditable="true"]:focus{background:#FBF6E8;outline:none;}
#pg1-relato, #pg4-decisao{white-space:pre-wrap;}
.cab-shaded{
  background:#D9D9D9 !important;
  font-weight:700;
  text-align:center;
  text-transform:uppercase;
  font-size:12px;
}
.bloco-medio{min-height:110px;}
.bloco-alto{min-height:230px;}
.bloco-muito-alto{min-height:400px;}
.linhas-pontilhadas{display:flex;flex-direction:column;gap:0;}
.linhas-pontilhadas .linha{border-bottom:1px solid #000;height:23px;}
.linhas-pontilhadas .linha:last-child{border-bottom:none;}
.texto-preenchido{white-space:pre-wrap;padding:2px 0;}
.legenda-boilerplate{margin:0 0 10px;text-align:justify;}
.legenda-boilerplate b{font-weight:700;}
.subcaixa-titulo{text-align:center;font-weight:700;margin:14px 0 34px;}
.linha-recibo{margin:22px 0 6px;}
.linha-recibo .preencher{border-bottom:1px solid #000;display:inline-block;min-width:40px;padding:0 4px;}

.export-bar{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px;justify-content:center;}

.anexos-lista{margin-top:10px;}
.anexo-item{
  display:flex;justify-content:space-between;align-items:center;
  font-size:12.5px;
  padding:8px 10px;
  background:var(--papel);
  border-radius:var(--radius);
  margin-bottom:6px;
}
.anexo-item button{background:none;border:none;color:var(--vinho);font-size:14px;}

.footer-nota{
  text-align:center;
  font-family:var(--mono);
  font-size:11px;
  color:var(--tinta-suave);
  margin-top:36px;
  letter-spacing:0.04em;
}

/* impressão: uma folha por página, sem sombra/moldura */
@media print{
  body *{visibility:hidden;}
  .pagina-oficial, .pagina-oficial *{visibility:visible;}
  .doc-wrap{gap:0;}
  .pagina-oficial{
    box-shadow:none;border:none;max-width:none;width:100%;
    page-break-after:always;
    margin:0;
  }
  .pagina-oficial:last-child{page-break-after:auto;}
}
/* ================= LOGIN ================= */
.login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
}
.login-caixa{
  background:var(--papel);
  border:1px solid var(--linha);
  border-radius:var(--radius);
  width:100%;
  max-width:400px;
  padding:38px 34px 30px;
  box-shadow:0 24px 60px rgba(0,0,0,0.35);
}
.login-caixa .eyebrow{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--tinta-suave);
  margin-bottom:10px;
}
.login-caixa h1{
  font-family:var(--serif);
  font-size:24px;
  font-weight:600;
  margin:0 0 26px;
  color:var(--verde-900);
  line-height:1.2;
}
.login-campo{margin-bottom:16px;}
.login-campo label{
  display:block;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--tinta-suave);
  margin-bottom:6px;
}
.login-campo input, .login-campo select{
  width:100%;
  font-family:var(--sans);
  font-size:14.5px;
  padding:11px 12px;
  border:1px solid var(--linha);
  border-radius:var(--radius);
  background:#fdfcf7;
  color:var(--tinta);
}
.login-campo select{
  appearance:none;
  -webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234B5347' stroke-width='1.6' fill='none' fill-rule='evenodd'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  padding-right:34px;
  cursor:pointer;
}
.login-campo input:focus, .login-campo select:focus{outline:none;border-color:var(--latao);background-color:#fff;}
.login-erro{
  background:rgba(122,46,46,0.1);
  border-left:3px solid var(--vinho);
  color:var(--vinho);
  font-size:13px;
  padding:10px 12px;
  border-radius:var(--radius);
  margin-bottom:18px;
  line-height:1.5;
}
.login-aviso{
  background:rgba(53,80,107,0.1);
  border-left:3px solid var(--azul-info);
  color:var(--azul-info);
  font-size:13px;
  padding:10px 12px;
  border-radius:var(--radius);
  margin-bottom:18px;
  line-height:1.5;
}
.login-botao{
  width:100%;
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:13px 20px;
  border-radius:var(--radius);
  border:1px solid var(--verde-900);
  background:var(--verde-900);
  color:var(--papel);
  margin-top:6px;
}
.login-botao:hover{background:var(--verde-700);}
.login-rodape{
  text-align:center;
  margin-top:26px;
  font-family:var(--mono);
  font-size:10.5px;
  color:var(--tinta-suave);
  letter-spacing:0.03em;
}

/* ================= BARRA DE USUÁRIO / TOPO AUTENTICADO ================= */
.topbar .usuario{
  display:flex;
  align-items:center;
  gap:14px;
}
.topbar .usuario .quem{opacity:0.85;}
.topbar .usuario a.sair{
  color:var(--vinho-claro);
  text-decoration:none;
  border:1px solid rgba(180,87,79,0.5);
  padding:4px 10px;
  border-radius:20px;
}
.topbar .usuario a.sair:hover{background:rgba(180,87,79,0.15);}

/* ================= RODAPÉ INSTITUCIONAL ================= */
.rodape-copyright{
  text-align:center;
  font-family:var(--mono);
  font-size:11px;
  color:rgba(239,234,217,0.55);
  padding:26px 20px 34px;
}
#fafd-view .rodape-copyright, #portal-view .rodape-copyright{
  color:var(--tinta-suave);
}
