/* ========================
   SISTEMA S.G.R. - MANAIN
   CSS (TELA + IMPRESSÃO A4)
   Atualização: rodapé correto na impressão + checklist legível + assinaturas por login
======================== */

/* 1) RESET */
*{
  box-sizing:border-box;
  margin:0;
  padding:0;
  font-family: 'Segoe UI', system-ui, -apple-system, Arial, sans-serif;
}

:root{
  /* Paleta inspirada em inclusão/autismo (viva, porém confortável) */
  --aut-red:#ff4d6d;
  --aut-orange:#ff7a59;
  --aut-yellow:#ffd54a;
  --aut-green:#31d6a6;
  --aut-teal:#21c7d9;
  --aut-blue:#2f8cff;
  --aut-purple:#8a5cff;

  --rainbow:linear-gradient(90deg,
    var(--aut-red),
    var(--aut-orange),
    var(--aut-yellow),
    var(--aut-green),
    var(--aut-teal),
    var(--aut-blue),
    var(--aut-purple)
  );
  --rainbow-soft:linear-gradient(135deg,
    rgba(255,77,109,.18),
    rgba(255,122,89,.16),
    rgba(255,213,74,.14),
    rgba(49,214,166,.14),
    rgba(33,199,217,.14),
    rgba(47,140,255,.14),
    rgba(138,92,255,.16)
  );

  /* Mantém nomes antigos usados no layout */
  --primary-1:var(--aut-blue);
  --primary-2:#2456ff;
  --danger-1:var(--aut-red);
  --danger-2:#d81b60;
  --success-1:var(--aut-green);
  --success-2:#14a35a;

  --shadow-btn:0 12px 26px rgba(0,0,0,.14);
  --ring:0 0 0 4px rgba(47,140,255,.22);

  --bg-app:#eef3ff;
  --paper:#ffffff;
  --ink:#101828;
  --muted:#475467;

  /* Sidebar (escura com detalhe arco-íris) */
  --sidebar:#0f1b2d;
  --sidebar-2:#0b1424;
  --sidebar-3:#13233c;

  --azul:var(--aut-blue);
  --verde:var(--aut-green);
  --perigo:var(--aut-red);

  --borda:#000;
  --cinza-1:#f4f6fb;
  --cinza-2:#e5e7ee;

  --card:#ffffff;
  --card-2:rgba(255,255,255,.84);
  --stroke:rgba(16,24,40,.12);
}


body{
  position:relative;

  background:
    radial-gradient(1200px 700px at 15% 10%, rgba(47,140,255,.18), transparent 55%),
    radial-gradient(900px 520px at 85% 20%, rgba(138,92,255,.16), transparent 55%),
    radial-gradient(900px 520px at 70% 85%, rgba(49,214,166,.16), transparent 55%),
    linear-gradient(180deg, var(--bg-app), #ffffff 65%);
  padding:20px 0;
  display:flex;
  flex-direction:column;
  align-items:center;
  color:var(--ink);
  min-height:100vh;
}

/* Fundo com “cordões”/símbolos de neurodiversidade (tela) */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  opacity:.16;
  background-image:
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2080%2080'%3E%3Cg%20fill='none'%20stroke='#F5D54A'%20stroke-width='6'%20stroke-linecap='round'%3E%3Cpath%20d='M40%206v10'/%3E%3Cpath%20d='M40%2064v10'/%3E%3Cpath%20d='M6%2040h10'/%3E%3Cpath%20d='M64%2040h10'/%3E%3Cpath%20d='M14%2014l7%207'/%3E%3Cpath%20d='M59%2059l7%207'/%3E%3Cpath%20d='M66%2014l-7%207'/%3E%3Cpath%20d='M21%2059l-7%207'/%3E%3C/g%3E%3Ccircle%20cx='40'%20cy='40'%20r='14'%20fill='#7A4B2A'%20opacity='0.85'/%3E%3Ccircle%20cx='40'%20cy='40'%20r='22'%20fill='none'%20stroke='#4CD56E'%20stroke-width='4'%20opacity='0.55'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20120%2060'%3E%3Cpath%20d='M20%2030c0-10%208-18%2018-18%2016%200%2022%2018%2022%2018s6%2018%2022%2018c10%200%2018-8%2018-18s-8-18-18-18c-16%200-22%2018-22%2018S54%2048%2038%2048c-10%200-18-8-18-18z'%20fill='none'%20stroke='#A15CFF'%20stroke-width='6'%20stroke-linecap='round'%20stroke-linejoin='round'%20opacity='0.9'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3E%3Cpath%20d='M36%2018h16a10%2010%200%200%201%2010%2010v6a8%208%200%201%200%200%2016v6a10%2010%200%200%201-10%2010H46a8%208%200%201%200-16%200H24a10%2010%200%200%201-10-10V56a8%208%200%201%200%200-16V28a10%2010%200%200%201%2010-10h6a8%208%200%201%200%2016%200z'fill='none'%20stroke='#2FB8FF'%20stroke-width='5'%20stroke-linejoin='round'%20opacity='0.8'/%3E%3C/svg%3E"),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2080%20120'%3E%3Cpath%20d='M40%2018c-10%200-18%208-18%2018%200%2022%2036%2034%2036%2064%200%2012-8%2022-18%2022S22%20112%2022%20100'fill='none'%20stroke='#FF6AA2'%20stroke-width='7'%20stroke-linecap='round'%20stroke-linejoin='round'%20opacity='0.85'/%3E%3Cpath%20d='M40%2018c10%200%2018%208%2018%2018%200%2022-36%2034-36%2064%200%2012%208%2022%2018%2022s18-10%2018-22'fill='none'%20stroke='#FF6AA2'%20stroke-width='7'%20stroke-linecap='round'%20stroke-linejoin='round'%20opacity='0.85'/%3E%3C/svg%3E");
  background-repeat:repeat;
  background-size:
    240px 240px,
    260px 130px,
    220px 220px,
    180px 270px;
  background-position:
    10px 18px,
    120px 80px,
    40px 160px,
    200px 30px;
  filter:saturate(1.15) contrast(1.05);
}



/* Seleção e foco (acessibilidade) */
::selection{ background:rgba(255,213,74,.55); color:#000; }
:focus-visible{ outline:none; box-shadow:var(--ring); border-radius:10px; }

/* “Cartões” com borda colorida suave */
.card-rainbow{
  background:var(--card);
  border:1px solid var(--stroke);
  border-radius:16px;
  box-shadow:0 18px 40px rgba(16,24,40,.10);
  position:relative;
  overflow:hidden;
}
.card-rainbow::before{
  content:"";
  position:absolute;
  left:0; top:0; right:0;
  height:6px;
  background:var(--rainbow);
}

/* Inputs (visual de sistema escolar inclusivo) */
input, select, textarea{
  border:1px solid var(--stroke);
  border-radius:14px;
  padding:10px 12px;
  font-size:14px;
  background:rgba(241, 219, 219, 0.92);
  color:var(--ink);
}
input:focus, select:focus, textarea:focus{
  outline:none;
  box-shadow:var(--ring);
  border-color:rgba(47,140,255,.45);
}
label{ color:var(--muted); font-weight:800; letter-spacing:.2px; }


/* Scrollbar */
::-webkit-scrollbar{ width:8px; }
::-webkit-scrollbar-track{ background:#f1f1f1; border-left:1px solid #ddd; }
::-webkit-scrollbar-thumb{ background:#888; }

/* Util */
.visually-hidden{ display:none !important; }
.print-only{ display:none; }
.controles-linha{ display:flex; align-items:center; justify-content:flex-end; gap:10px; }

/* 2) SIDEBAR */
.sidebar{
  height:100%;
  width:300px;
  position:fixed;
  z-index:2000;
  top:0;
  left:-300px;
  background:linear-gradient(180deg, var(--sidebar), var(--sidebar-3));
  overflow-x:hidden;
  transition:.3s;
  display:flex;
  flex-direction:column;
  box-shadow:10px 0 28px rgba(0,0,0,.35);
  color:#fff;
}
.sidebar::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:5px;
  background:var(--rainbow);
  opacity:.95;
}

.sidebar.aberto{ left:0; }

.sidebar-header{
  position:relative;

  padding:15px;
  background:var(--sidebar-2);
  display:flex;
  justify-content:flex-end;
  gap:10px;
  align-items:center;
  border-bottom:1px solid #34495e;
}
.sidebar-header::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--rainbow);opacity:.85;}


.busca-container{ padding:10px; background:var(--sidebar-3); }
.busca-container input{
  width:100%;
  padding:10px;
  border:none;
  border-radius:6px;
  background:#ecf0f1;
  color:#333;
  outline:none;
}

.lista-alunos-salvos{ flex:1; overflow-y:auto; padding:10px; }
.item-aluno{
  background:#3e5871;
  padding:10px;
  margin-bottom:8px;
  border-radius:8px;
  cursor:pointer;
  border-left:6px solid var(--azul);
  position:relative;
  transition:background .15s, transform .15s;
}
.item-aluno:hover{ background:#4b6a88; transform:translateY(-1px); }
.item-aluno h4{ font-size:.95rem; font-weight:700; color:#fff; }
.item-aluno span{ font-size:.75rem; color:#d7d7d7; display:block; margin-top:4px; }

.btn-apagar-item{
  position:absolute;
  right:8px;
  top:8px;
  background:none;
  border:none;
  color:#ff7a6a;
  cursor:pointer;
  font-size:1rem;
  opacity:.9;
}
.btn-apagar-item:hover{ opacity:1; transform:scale(1.08); }

.btn-fechar-sidebar{
  background:none;
  border:none;
  color:#fff;
  font-size:1.2rem;
  cursor:pointer;
}

/* 3) TOP BUTTONS */
.controles-topo{
  width:210mm;
  background:var(--paper);
  padding:10px;
  margin-bottom:15px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  box-shadow:0 2px 5px rgba(0,0,0,.2);
  border-radius:10px;
}
.grupo-botoes-esq,
.grupo-botoes-dir{
  display:flex;
  align-items:center;
  gap:10px;
}

.btn-sistema{
  padding:10px 12px;
  font-size:.85rem;
  font-weight:800;
  text-transform:uppercase;
  color:#fff;
  border:1px solid rgba(0,0,0,.15);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:10px;
  user-select:none;
}

/* Mapeia classes usadas no HTML (evita botões “brancos”/sem cor) */
.btn-primario{ background:linear-gradient(135deg, var(--aut-blue), #1f5dff); }
.btn-primario:hover{ filter:brightness(.98); }

.btn-sucesso{ background:linear-gradient(135deg, var(--aut-green), #11b27d); }
.btn-sucesso:hover{ filter:brightness(.98); }

.btn-neutro{
  background:linear-gradient(135deg, #667085, #344054);
  color:#fff;
}
.btn-neutro:hover{ filter:brightness(1.03); }

.btn-sistema:active{ transform:translateY(1px); }

.btn-azul{ background:linear-gradient(135deg, var(--aut-blue), #1f5dff); }
.btn-azul:hover{ filter:brightness(.98); }

.btn-verde{ background:linear-gradient(135deg, var(--aut-green), #11b27d); }
.btn-verde:hover{ filter:brightness(.98); }

.btn-perigo{ background:linear-gradient(135deg, var(--aut-red), #ff2d55); }
.btn-perigo:hover{ filter:brightness(.98); }

.btn-imprimir{ background:linear-gradient(135deg, #111827, #000000); }
.btn-imprimir:hover{ filter:brightness(1.05); }

.btn-checklist{ background:#666; }

.btn-mini{
  border:1px solid rgba(0,0,0,.12);
  background:linear-gradient(135deg, var(--primary-1), var(--primary-2));
  color:#fff;
  font-size:12px;
  padding:9px 12px;
  border-radius:999px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  box-shadow:var(--shadow-btn);
  transition:transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
.btn-mini:hover{ transform:translateY(-1px); filter:brightness(1.02); }
.btn-mini:active{ transform:translateY(0); filter:brightness(.98); box-shadow:0 6px 14px rgba(0,0,0,.16); }
.btn-mini:focus{ outline:none; box-shadow:var(--shadow-btn), var(--ring); }

.btn-roxo{
  background:linear-gradient(180deg, #7b2ff7, #5b21b6);
  color:#fff;
  border:1px solid rgba(0,0,0,.15);
}
.btn-roxo:hover{ filter:brightness(1.05); }

/* Botão fechar (X) dos modais: não branco */
.btn-fechar{
  width:40px;
  height:40px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  background:linear-gradient(135deg, var(--aut-red), #ff2d55);
  color:#fff;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 22px rgba(0,0,0,.15);
  transition:transform .15s ease, filter .15s ease;
}
.btn-fechar:hover{ filter:brightness(1.05); transform:translateY(-1px); }
.btn-fechar:active{ transform:translateY(0); filter:brightness(.98); }

/* Input file: botão “Escolher arquivo” colorido */
input[type="file"]{
  padding:8px 10px;
  border-radius:14px;
  background:rgba(255,255,255,.92);
}
input[type="file"]::file-selector-button{
  border:0;
  padding:10px 12px;
  border-radius:12px;
  margin-right:10px;
  font-weight:900;
  cursor:pointer;
  color:#fff;
  background:linear-gradient(135deg, var(--aut-purple), #5b21b6);
}
input[type="file"]::-webkit-file-upload-button{
  border:0;
  padding:10px 12px;
  border-radius:12px;
  margin-right:10px;
  font-weight:900;
  cursor:pointer;
  color:#fff;
  background:linear-gradient(135deg, var(--aut-purple), #5b21b6);
}

/* 4) A4 TABLE */
.tabela-impressao{
  width:210mm;
  background:var(--paper);
  border-collapse:collapse;
  margin-bottom:20px;
  box-shadow:0 22px 55px rgba(16,24,40,.22);
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(16,24,40,.12);
  position:relative;
}
.tabela-impressao::before{
  content:"";
  position:absolute;
  left:0; top:0; right:0;
  height:7px;
  background:var(--rainbow);
  opacity:.95;
}

.tabela-impressao td{ padding:0 10mm; }
.tabela-impressao thead{ height:110px; }

/* Header */
.cabecalho-oficial{
  display:flex;
  align-items:center;
  border-bottom:2px solid var(--borda);
  padding:5mm 0 6px 0;
  gap:10px;
}
.logo-container{ width:15%; display:flex; justify-content:center; }
.logo-img{ width:62px; height:auto; }
.texto-cabecalho{ width:85%; text-align:center; }
.nome-mantenedora{ font-size:12pt; font-weight:800; text-transform:uppercase; }
.nome-escola{ font-size:9.5pt; font-weight:800; }
.dados-legais p{ font-size:7pt; margin:0; line-height:1.4; }

/* 5) RODAPÉ (TELA)
   - NÃO fixa na viewport (aparece quando rolar até o fim)
   - Mantém linha antes do texto
*/
.rodape-fixo{
  width:210mm;
  margin:0 auto 20px auto;
  background:var(--paper);
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(16,24,40,.12);
  box-shadow:0 18px 40px rgba(16,24,40,.14);
}

.endereco-oficial{
  width:100%;
  margin:0 auto;
  border-top:2px solid var(--borda); /* linha acima do texto */
  text-align:center;
  padding:6px 0 8px 0;
  font-size:7.5pt;
  font-weight:800;
  line-height:1.25;
}
.endereco-oficial p{ margin:0; }

/* 6) QUADROS */
.quadro-principal{
  border:1px solid var(--borda);
  margin-bottom:10px;
  background:var(--paper);
  page-break-inside:avoid;
  border-radius:10px;
  overflow:hidden;
}
.titulo-sessao{
  background-color:var(--cinza-2);
  font-size:9.5pt;
  font-weight:900;
  text-transform:uppercase;
  text-align:center;
  padding:6px;
  border-bottom:1px solid var(--borda);
}
.cabecalho-interno{
  background-color:var(--cinza-1);
  border-bottom:1px solid var(--borda);
  padding:8px 10px;
}
h4{ font-size:9.5pt; font-weight:900; text-transform:uppercase; margin:0; }
.subtexto{ font-size:8pt; font-style:italic; color:#333; margin:0; }

.titulo-documento h1{
  text-align:center;
  font-size:11pt;
  text-decoration:underline;
  margin:12px 0;
}

.corpo-sessao{ padding:10px; }

/* 7) FORMS */
.grid-identificacao{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:10px;
}
.campo{ display:flex; flex-direction:column; }
.full-width{ grid-column:span 4; }

label{
  font-size:8pt;
  font-weight:900;
  text-transform:uppercase;
  margin-bottom:4px;
}

input, textarea{
  border:1px solid #666;
  font-size:10pt;
  width:100%;
  padding:8px 10px;
  background:var(--paper);
  resize:none;
  border-radius:10px;
  line-height:2; /* solicitado: espaçamento 2,0 nos campos */
}
input{ height:36px; }
.bg-gray{ background:#eee; }

.box-destaque{
  background:#f9f9f9;
  border:1px dashed #000;
  padding:10px;
  margin-top:10px;
  border-radius:10px;
}

/* Área interativa */
.area-interativa{
  border:1px solid var(--borda);
  padding:8px 10px;
  background:var(--paper);
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  border-radius:10px;
}
.status{ font-size:.78rem; font-weight:900; text-transform:uppercase; }
.status.pendente{ color:#b00000; }
.status.salvo{ color:#0a7a2a; }

/* 8) ESPELHO DE IMPRESSÃO (textarea -> DIV) */
.print-mirror{
  display:none;
  font-size:10pt;
  text-align:justify;
  white-space:pre-wrap;
  color:#000;
  border:1px solid #000;
  padding:6px;
  margin-top:4px;
  line-height:1.15; /* leitura melhor na impressão */
  min-height:18px;
  border-radius:10px;
}

/* 9) ASSINATURAS */
.assinaturas-final{
  margin-top:16px;
  page-break-inside:avoid;
}
.data-extenso{
  text-align:right;
  margin-bottom:12px;
  font-weight:900;
  font-size:10pt;
}
.assinaturas-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(180px, 1fr));
  gap:16px;
  align-items:end;
}
@media (max-width:900px){
  .assinaturas-grid{ grid-template-columns:1fr; }
}
.assinatura-box{ text-align:center; }
.img-wrap{
  border-bottom:1px solid #000;
  padding-bottom:4px;
  min-height:70px;
  display:flex;
  justify-content:center;
  align-items:end;
}
.img-assinatura{
  width:100%;
  max-width:180px;
  height:auto;
  display:block;
}
.cargo{
  font-size:9pt;
  font-weight:900;
  text-transform:uppercase;
  margin-top:6px;
}

/* ✅ ASSINATURA APENAS APÓS LOGIN DA ÁREA
   (o JS deve adicionar/remover a classe .locked em cada box)
*/
.assinatura-box.locked .img-assinatura{
  display:none !important;
}
.assinatura-box.locked .img-wrap{
  min-height:22px; /* mantém a linha sem mostrar imagem */
}

/* 10) MODAIS */
.modal-overlay{
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.7);
  z-index:999;
  justify-content:center;
  align-items:center;
  padding:12px;
}
.modal-box{
  background:rgba(255,255,255,.96);
  width:min(1100px, 100%);
  height:min(90vh, 860px);
  padding:14px;
  border:1px solid rgba(16,24,40,.18);
  display:flex;
  flex-direction:column;
  border-radius:18px;
  box-shadow:0 28px 60px rgba(16,24,40,.18);
  position:relative;
  overflow:hidden;
}
.modal-box::before{
  content:"";
  position:absolute;
  left:0; top:0; right:0;
  height:7px;
  background:var(--rainbow);
}

.modal-header{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  border-bottom:1px solid rgba(16,24,40,.12);
  padding:8px 4px 12px 4px;
  margin-top:6px;
}

/* Botão fechar (X) dos modais: colorido (sem branco) */
.btn-fechar{
  width:42px;
  height:42px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  background:linear-gradient(135deg, var(--aut-red), #ff2d55);
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 22px rgba(0,0,0,.15);
  transition:transform .15s ease, filter .15s ease;
}
.btn-fechar:hover{ transform:translateY(-1px); filter:brightness(1.05); }
.btn-fechar:active{ transform:translateY(0); filter:brightness(.98); }

.modal-body{
  display:grid;
  grid-template-columns:1fr 1.3fr;
  gap:12px;
  overflow:hidden;
  margin-top:12px;
  flex:1;
}
@media (max-width:900px){
  .modal-body{ grid-template-columns:1fr; }
}

/* ================= ADMIN MODAL =================
   - Barra de rolagem dentro do modal
   - Miniaturas das assinaturas
*/
.modal-admin{ height:min(92vh, 920px); }
.modal-admin .modal-body{
  display:block;
  overflow-y:auto;
  padding-right:4px;
}

.admin-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
  gap:14px;
}

.admin-card{
  background:rgba(255,255,255,.9);
  border:1px solid rgba(16,24,40,.12);
  border-radius:16px;
  padding:12px;
  box-shadow:0 16px 32px rgba(16,24,40,.10);
  position:relative;
  overflow:hidden;
}
.admin-card::before{
  content:"";
  position:absolute;
  left:0; top:0; right:0;
  height:6px;
  background:var(--rainbow);
  opacity:.9;
}
.admin-card h4{
  margin-bottom:10px;
}

.preview-ass{
  margin-top:10px;
  border:1px dashed rgba(16,24,40,.25);
  background:rgba(255,255,255,.75);
  border-radius:14px;
  padding:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:78px;
}
.preview-ass img{
  display:block;
  max-height:85px;   /* ✅ miniatura */
  max-width:240px;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.12));
}

.cred-header{
  margin-top:12px;
  font-weight:900;
  text-transform:uppercase;
  font-size:12px;
  color:var(--muted);
}
.cred-list{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cred-list > div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px;
  border:1px solid rgba(16,24,40,.10);
  border-radius:14px;
  background:rgba(255,255,255,.78);
}
.cred-list img{
  max-height:38px;   /* ✅ miniatura na lista (se existir) */
  max-width:110px;
  object-fit:contain;
}

/* Garantia extra: botões genéricos nunca ficam brancos */
button{
  color:#fff;
}
button:not(.btn-sistema):not(.btn-mini):not(.btn-apagar-item):not(.btn-fechar-sidebar){
  background:linear-gradient(135deg, #667085, #344054);
  border:1px solid rgba(0,0,0,.12);
  border-radius:12px;
}

/* Checklist coluna */
.coluna-checklist{
  overflow-y:auto;
  padding:10px;
  border-right:1px solid #ccc;
  background:#fafafa;
  border-radius:12px;
}
@media (max-width:900px){
  .coluna-checklist{ border-right:none; border-bottom:1px solid #ccc; }
}

.coluna-textos{
  display:flex;
  flex-direction:column;
  gap:10px;
  overflow:hidden;
}
.coluna-textos textarea{
  flex:1;
  min-height:160px;
}

/* Checklist (legibilidade) */
.grupo-checklist{ margin-bottom:10px; }
.grupo-checklist h5{
  background:#333;
  color:#fff;
  padding:8px;
  position:sticky;
  top:0;
  border-radius:10px;
}

.item-check{
  margin:10px 0;
  border-bottom:1px dotted #ccc;
  padding:8px 0;
  display:flex;
  gap:10px;
  align-items:flex-start;
}
.item-check input{
  margin-top:3px;
  height:auto;
  width:auto;
}

/* 🔧 Evita "ATENÇÃO SUSTENTADADEMONSTRA..." */
.item-check label{
  display:flex;
  flex-direction:column;
  gap:3px;
  line-height:1.25;
  white-space:normal;
  word-break:break-word;
}
.item-check label strong,
.item-check label .label-azul,
.item-check label b{
  display:block;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.2px;
}
.item-check label small{
  display:block;
  font-size:.80rem;
  font-weight:600;
  color:#222;
  line-height:1.25;
}

/* Compatibilidade com versões anteriores do JS */
.check-card{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:12px 12px;
  margin:10px 0;
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.86));
  border:1px solid rgba(16,24,40,.10);
  box-shadow:0 10px 22px rgba(16,24,40,.08);
  position:relative;
}
.check-card::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:6px;
  border-radius:16px 0 0 16px;
  background:var(--rainbow);
  opacity:.95;
}

.check-box{
  display:flex;
  align-items:center;
  gap:6px;
  margin-top:2px;
}
.check-content{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-left:2px;
}

.check-content strong{
  display:block;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.6px;
  font-size:13px;
}

.check-content small{
  display:block;
  font-size:.92rem;
  font-weight:650;
  color:#1f2937;
  line-height:1.45;
}


/* Modal footer */
.modal-footer{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding-top:10px;
  border-top:1px solid #ddd;
}
.btn-salvar{ background:var(--verde); }

/* =========================
   IMPRESSÃO (A4)
   Rodapé fixo na FOLHA (não na tela)
========================= */
@media print{
  body::before{ display:none !important; }


  /* Margem inferior reservada para o rodapé */
  @page{ size:A4; margin:10mm 12mm 28mm 12mm; }

  html, body{
    background:none !important;
    margin:0 !important;
    padding:0 !important;
  }

  .no-print, .sidebar{ display:none !important; }

  .tabela-impressao{
    width:100% !important;
    box-shadow:none !important;
    margin:0 !important;
    border:none !important;
    border-radius:0 !important;
    overflow:visible !important;
    /* garante que o conteúdo não encoste no rodapé */
    margin-bottom:24mm !important;
  }
  thead{ display:table-header-group; }
  tfoot{ display:none !important; } /* não usar tfoot para rodapé */

  /* Conteúdo */
  .conteudo-principal{ padding:8mm 10mm 0 !important; }
  p{ margin:0 0 6px 0 !important; }

  /* Observações Complementares aparece sempre */
  .bloco-observacoes{ display:block !important; }
  .hint-lock{ display:none !important; }

  /* Textos impressos */
  textarea{ display:none !important; }
  .print-mirror{
    display:block !important;
    border:1px solid #000 !important;
    border-radius:10px !important;
    line-height:1.15 !important;
  }

  /* Rodapé fixo no final da página impressa */
  .rodape-fixo{
    display:block !important;
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:100% !important;
    margin:0 !important;
    background:#fff !important;
    z-index:9999 !important;
  }
  .endereco-oficial{
    width:100% !important;
    padding:6px 0 6px 0 !important;
    border-top:2px solid #000 !important; /* linha antes do texto */
    font-size:7.5pt !important;
    font-weight:800 !important;
    line-height:1.25 !important;
  }

  /* Ajustes gerais na impressão */
  .quadro-principal, .bloco-relatorio, .corpo-sessao, .bloco-final, .area-aval, .cabecalho-interno,
  .tabela-impressao tr, .tabela-impressao td{
    break-inside:auto !important;
    page-break-inside:auto !important;
  }

  /* Assinaturas */
  .assinaturas-final{ page-break-inside:avoid; }
  .assinaturas-grid{
    grid-template-columns:repeat(3, 1fr) !important;
    gap:10px !important;
  }
  .cargo{ display:none !important; } /* apenas imagem */
  /* Se ainda estiver locked, não imprime nada além da linha */
  .assinatura-box.locked .img-assinatura{ display:none !important; }

  .print-only{ display:block !important; }
}


/* Evita botões brancos (tela) */
button, .btn, [class*="btn-"]{
  color:#fff;
}
.btn-fechar, .modal-close, .btn-close{
  background:linear-gradient(135deg, #ff4d6d, #b5179e) !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.35) !important;
}
input[type="file"]::file-selector-button{
  background:linear-gradient(135deg, var(--aut-purple), var(--aut-blue)) !important;
  color:#fff !important;
  border:none !important;
}
