/* ── Paleta Engedelta ──────────────────────────────────────────────────────── */
:root {
  --eng-navy:   #0d2347;   /* azul escuro — fundo navbar */
  --eng-blue:   #1a4f9c;   /* azul médio — botões, links ativos */
  --eng-light:  #3a7bd5;   /* azul claro — hover, destaques */
  --eng-bg:     #f0f4f9;   /* fundo geral */
}

/* ── Base ──────────────────────────────────────────────────────────────────── */
body {
  background-color: var(--eng-bg);
  font-size: 0.92rem;
  margin: 0;
}

/* ── Login Screen ──────────────────────────────────────────────────────────── */
.login-overlay {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--eng-navy) 0%, var(--eng-blue) 100%);
}

.login-card {
  background: #fff;
  border-radius: 1rem;
  padding: 2.5rem 2rem;
  width: 100%;
  max-width: 400px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}

/* ── Sidebar ───────────────────────────────────────────────────────────────── */
#sidebar {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: 220px;
  background-color: var(--eng-navy);
  display: flex;
  flex-direction: column;
  z-index: 100;
  overflow-y: auto;
}

.sidebar-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1.1rem 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  color: #fff;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
}

.sidebar-brand img { flex-shrink: 0; }

.sidebar-nav {
  flex: 1;
  padding: 0.75rem 0;
}

.sidebar-link {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.7rem 1.1rem;
  color: rgba(255,255,255,0.72);
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 500;
  border-left: 3px solid transparent;
  transition: background .15s, color .15s;
  cursor: pointer;
}

.sidebar-link:hover {
  background: rgba(255,255,255,0.07);
  color: #fff;
}

.sidebar-link.active {
  background: rgba(255,255,255,0.12);
  color: #fff;
  border-left-color: var(--eng-light);
}

.sidebar-link i { font-size: 1rem; flex-shrink: 0; }

.sidebar-footer {
  padding: 0.85rem 1rem;
  border-top: 1px solid rgba(255,255,255,0.1);
}

.sidebar-user {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: rgba(255,255,255,0.85);
  margin-bottom: 0.4rem;
}

.sidebar-user-info { line-height: 1.3; }

.sidebar-badge {
  font-size: 0.68rem;
  background: var(--eng-light);
  color: #fff;
  border-radius: 0.3rem;
  padding: 0.05em 0.45em;
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

/* ── Main Content ──────────────────────────────────────────────────────────── */
#appLayout {
  display: flex;
  min-height: 100vh;
}

#mainContent {
  margin-left: 220px;
  flex: 1;
  min-width: 0; /* permite o item flex encolher (evita estouro horizontal por gráficos/tabelas largas) */
  padding: 1.5rem 1.75rem;
  min-height: 100vh;
}

.page-title {
  color: var(--eng-navy);
  font-weight: 700;
  margin-bottom: 1.25rem;
  font-size: 1.15rem;
}

/* ── Botões primários ──────────────────────────────────────────────────────── */
.btn-primary {
  background-color: var(--eng-blue);
  border-color: var(--eng-blue);
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: var(--eng-light);
  border-color: var(--eng-light);
}

.btn-outline-primary {
  color: var(--eng-blue);
  border-color: var(--eng-blue);
}

.btn-outline-primary:hover {
  background-color: var(--eng-blue);
  border-color: var(--eng-blue);
}

/* ── Card header ───────────────────────────────────────────────────────────── */
.card-header.bg-primary {
  background-color: var(--eng-navy) !important;
}

/* ── Modal header ──────────────────────────────────────────────────────────── */
.modal-header.bg-primary {
  background-color: var(--eng-navy) !important;
}

/* ── Tabela ────────────────────────────────────────────────────────────────── */
.card {
  border-radius: 0.5rem;
}

.table thead th {
  background-color: #dde5f0;
  color: var(--eng-navy);
  font-weight: 600;
  white-space: nowrap;
}

.table-dados thead th {
  white-space: normal;
  word-break: break-word;
}

.table td {
  vertical-align: middle;
  white-space: normal;
  word-break: break-word;
}

/* ── Status badges ─────────────────────────────────────────────────────────── */
.badge-status {
  font-size: 0.78rem;
  padding: 0.3em 0.6em;
  border-radius: 0.4rem;
}

.status-atrasado  { background-color: #f8d7da; color: #842029; }
.status-adiantado { background-color: #d1e7dd; color: #0f5132; }
.status-prazo     { background-color: #cce4ff; color: #0d2347; }
.status-outro     { background-color: #e2e3e5; color: #41464b; }

/* ── Progress bar ──────────────────────────────────────────────────────────── */
#progressArea .progress {
  height: 1.4rem;
  border-radius: 0.4rem;
}

#progressArea .progress-bar {
  background-color: var(--eng-blue);
}

/* ── Tabela scroll ─────────────────────────────────────────────────────────── */
.table-responsive {
  max-height: 520px;
  overflow-y: auto;
}

/* ── Paginação ─────────────────────────────────────────────────────────────── */
.pagination .page-link {
  cursor: pointer;
  color: var(--eng-blue);
}

.pagination .page-item.active .page-link {
  background-color: var(--eng-blue);
  border-color: var(--eng-blue);
}

/* ── Misc ──────────────────────────────────────────────────────────────────── */
.text-truncate-cell {
  max-width: 260px;
  white-space: normal;
  word-break: break-word;
}

/* ── Tabela de dados importados: colunas iguais com quebra de linha ───────── */
.table-dados {
  table-layout: fixed;
  width: 100%;
}

.table-dados th,
.table-dados td {
  white-space: normal;
  word-break: break-word;
  overflow-wrap: break-word;
  vertical-align: middle;
  font-size: 0.82rem;
}

/* Coluna Nome (5ª) mais larga; as 15 restantes dividem igualmente os ~86% */
.table-dados th:nth-child(5),
.table-dados td:nth-child(5) {
  width: 14%;
}

/* ── Dashboard ─────────────────────────────────────────────────────────────── */

/* Multiselects de filtro */
.dash-select {
  min-height: 110px;
  font-size: 0.85rem;
}

/* Card de cada gráfico */
.chart-card {
  background: #ffffff;
  border-radius: 0.5rem;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  padding: 0.85rem 1rem 1rem;
  height: 100%;
}

.chart-title {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--eng-navy);
  text-align: center;
  margin-bottom: 0.5rem;
  letter-spacing: 0.01em;
}

/* Badge de semáforo no painel de indicadores */
.dash-badge {
  display: inline-block;
  padding: 0.25em 0.7em;
  border-radius: 1rem;
  font-size: 0.72rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.04em;
}

/* Célula larga da tabela resumo */
#dashResumoBody td:first-child {
  max-width: 260px;
}

/* Spinner centralizado */
#dashLoading .spinner-border {
  width: 2.5rem;
  height: 2.5rem;
  border-width: 0.3em;
  color: var(--eng-blue);
}

/* ── Linha em destaque (coluna Dest. preenchida) ───────────────────────────── */
tr.row-destaque td {
  background-color: #CCEFFE !important;
  font-weight: 700;
}

/* ── Cores por nível de EDT (tabela Atividades em Destaque) ─────────────────── */
tr.edt-nivel-1 td { background-color: #9ec5fe !important; font-weight: 600; }
tr.edt-nivel-2 td { background-color: #c5dbfd !important; }
tr.edt-nivel-3 td { background-color: #e6f0ff !important; }

/* ── Atas de reunião (Reunião de Alinhamento — Eng. e Fábrica) ── */
.ata-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}
@media(max-width:768px){.ata-grid{grid-template-columns:1fr}}
.ata-setor{border-left:3px solid var(--eng-navy,#1a4f9c);padding:2px 0 2px 10px}
.ata-setor-tit{font-size:.78rem;font-weight:700;color:var(--eng-navy,#1a4f9c);text-transform:uppercase;letter-spacing:.02em;margin-bottom:2px}
.ata-setor-txt{font-size:.9rem;color:#333;white-space:normal}

/* ── Atas: lista limpa (master-detail) ── */
.ata-lista .ata-item{cursor:pointer;padding:14px 18px}
.ata-lista .ata-item .text-primary{font-size:.92rem}
.ata-status{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.02em}

/* ── Atas de Obra: grupos visuais ── */
.grupo-card{border:1px solid #e3e8ef;border-radius:10px;overflow:hidden;background:#fff}
.grupo-head{font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.03em;
  padding:9px 16px;color:#fff;border:0}
.grupo-eng    .grupo-head{background:#1a4f9c}
.grupo-eqp    .grupo-head{background:#0891b2}
.grupo-frota  .grupo-head{background:#b45309}
.grupo-anexos .grupo-head{background:#6d28d9}
.grupo-obs    .grupo-head{background:#475569}
.grupo-card .ata-setor{border-left:3px solid #cbd5e1}

/* ── Anexos ── */
.ata-anexos{display:flex;flex-wrap:wrap;gap:12px}
.ata-anexo{position:relative;width:120px;border:1px solid #e3e8ef;border-radius:8px;padding:8px;background:#fafbfc;text-align:center}
.ata-anexo-img{width:100%;height:80px;object-fit:cover;border-radius:5px;cursor:pointer;background:#eef1f6}
.ata-anexo-file{height:80px;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#6d28d9;cursor:pointer}
.ata-anexo-nome{font-size:.72rem;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;color:#1a4f9c}
.ata-anexo-tam{font-size:.66rem;color:#94a3b8}
.btn-anexo-rm{position:absolute;top:-7px;right:-7px;width:22px;height:22px;border-radius:50%;border:0;
  background:#dc2626;color:#fff;font-size:.8rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}

/* ── Apresentação: lightbox de visualização de anexos ── */
#tab-apresentacao .ata-anexo-img,
#tab-apresentacao .ata-anexo-file,
#tab-apresentacao .ata-anexo-nome{cursor:zoom-in}
.apres-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.86);z-index:1080;
  display:flex;align-items:center;justify-content:center;padding:30px;cursor:zoom-out}
.apres-lightbox[hidden]{display:none}
.apres-lightbox img{max-width:95%;max-height:95%;border-radius:6px;box-shadow:0 12px 48px rgba(0,0,0,.55);cursor:default}
.apres-lightbox-video{max-width:95%;max-height:95%;border-radius:6px;box-shadow:0 12px 48px rgba(0,0,0,.55);background:#000;cursor:default}
.apres-lightbox img[hidden],.apres-lightbox-video[hidden]{display:none}
#tab-apresentacao .ata-anexo-video{color:#1a4f9c;background:#eef3fb}
.apres-lightbox-close{position:absolute;top:12px;right:26px;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer}
.apres-lightbox-nav{position:fixed;top:50%;transform:translateY(-50%);color:#fff;font-size:2rem;line-height:1;
  cursor:pointer;user-select:none;background:rgba(0,0,0,.35);padding:14px 16px;border-radius:12px;z-index:2}
.apres-lightbox-nav:hover{background:rgba(0,0,0,.65)}
.apres-lightbox-prev{left:22px}
.apres-lightbox-next{right:22px}
.apres-lightbox-nav[hidden]{display:none}
.apres-lightbox-contador{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;
  background:rgba(0,0,0,.5);padding:4px 14px;border-radius:999px;font-size:.9rem;z-index:2}
.apres-lightbox-contador[hidden]{display:none}

/* ── Apresentação: tela cheia de um quadrante ── */
.apres-quad-expand{float:right;cursor:pointer;color:#93a8c0;line-height:1}
.apres-quad-expand:hover{color:#1a4f9c}
.apres-quadfull{position:fixed;inset:0;background:rgba(13,35,71,.78);z-index:1075;
  display:flex;align-items:center;justify-content:center;padding:24px;cursor:zoom-out}
.apres-quadfull[hidden]{display:none}
.apres-quadfull-card{background:#fff;border-radius:12px;width:min(96vw,1500px);height:min(92vh,900px);
  padding:20px 24px;display:flex;flex-direction:column;cursor:default;box-shadow:0 12px 48px rgba(0,0,0,.45)}
.apres-quadfull-tit{font-weight:600;font-size:1rem;text-transform:uppercase;letter-spacing:.02em;
  color:#0d2347;border-bottom:1px solid #e2e8f0;padding-bottom:10px;margin-bottom:14px}
.apres-quadfull-body{flex:1;min-height:0;overflow:auto;position:relative}
.apres-quadfull-body .ata-anexos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.apres-quadfull-body .ata-anexo-img,.apres-quadfull-body .ata-anexo-file{height:300px}
@media print{.apres-quad-expand{display:none}}

/* ── Apresentação: anexos grandes, 3 por linha preenchendo o quadrante ── */
#tab-apresentacao .ata-anexos{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
#tab-apresentacao .ata-anexo{width:auto;min-width:0;padding:10px}
#tab-apresentacao .ata-anexo-img,
#tab-apresentacao .ata-anexo-file{height:240px}
#tab-apresentacao .ata-anexo-file{font-size:3.4rem}
#tab-apresentacao .ata-anexo-nome,
#tab-apresentacao .ata-anexo-tam{display:none}

/* ── Apresentação: quadrantes com borda ── */
#tab-apresentacao .apres-quad{border:1px solid #d4dbe4;border-radius:10px;padding:14px;background:#fff}
#tab-apresentacao .apres-obs{min-height:0}
#tab-apresentacao .apres-quad-tit{font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em;
  color:#64748b;margin-bottom:10px;border-bottom:1px solid #eef1f6;padding-bottom:6px}
#tab-apresentacao .apres-obs{min-height:210px;white-space:normal}

/* ── Recolher/expandir barra lateral ── */
#sidebar{transition:transform .2s ease}
#mainContent{transition:margin-left .2s ease}
#sidebarToggle{position:fixed;top:14px;left:178px;z-index:101;width:32px;height:32px;border:0;border-radius:7px;
  background:var(--eng-blue);color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(0,0,0,.25);transition:left .2s ease}
#sidebarToggle:hover{filter:brightness(1.12)}
body.sidebar-collapsed #sidebar{transform:translateX(-100%)}
body.sidebar-collapsed #mainContent{margin-left:0}
body.sidebar-collapsed #sidebarToggle{left:8px}
