:root {
  --mit-primary: #1f3a68;
  --mit-primary-dark: #142447;
  --mit-accent: #f3b730;
  --mit-soft: #f3f5fa;
}

body { background:#f7f8fb; color:#222; }

.bg-primary-mit { background-color: var(--mit-primary) !important; }
.text-primary-mit { color: var(--mit-primary) !important; }
.btn-primary-mit { background-color: var(--mit-primary); border-color: var(--mit-primary); color:#fff; }
.btn-primary-mit:hover { background-color: var(--mit-primary-dark); border-color: var(--mit-primary-dark); color:#fff; }
.btn-outline-primary-mit { color: var(--mit-primary); border-color: var(--mit-primary); }
.btn-outline-primary-mit:hover { background: var(--mit-primary); color:#fff; }

.card-mit { border:1px solid #e3e7ef; border-radius:10px; background:#fff; }
.card-mit > .card-header { background: var(--mit-soft); border-bottom:1px solid #e3e7ef; font-weight:600; color: var(--mit-primary); border-radius:10px 10px 0 0; }

.badge-tipo { background: var(--mit-soft); color: var(--mit-primary); font-weight:600; border:1px solid #d6dde9; }

table.table-mit thead th { background: var(--mit-primary); color:#fff; font-weight:500; border:none; }
table.table-mit tbody tr:hover { background: var(--mit-soft); }

.empresa-tile { transition: transform .12s ease, box-shadow .12s ease; cursor:pointer; }
.empresa-tile:hover { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(31,58,104,.12); }

.form-section-title { color: var(--mit-primary); font-weight:600; border-bottom:2px solid var(--mit-accent); padding-bottom:4px; margin-bottom:16px; }

.dropzone-mit { border:2px dashed var(--mit-primary); border-radius:10px; padding:24px; text-align:center; background:#fafbfd; color: var(--mit-primary); }

.empty-state { text-align:center; padding:40px 20px; color:#6b7280; }
.empty-state i { font-size:48px; opacity:.4; }

.competencia-pill { background: var(--mit-soft); border:1px solid #d6dde9; color: var(--mit-primary); padding:2px 10px; border-radius:99px; font-size:.85rem; font-weight:600; }

.dropdown-menu-empresas { min-width: 360px; padding-top: .5rem; }
.dropdown-empresas-lista { max-height: 380px; overflow-y: auto; }
.dropdown-menu-empresas .empresa-item { font-size: .9rem; }
.dropdown-menu-empresas .empresa-item:hover { background: var(--mit-soft); color: var(--mit-primary); }

.dash-card { background:#fff; border:1px solid #e3e7ef; border-radius:12px; padding:18px; height:100%; }
.dash-card .label { font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; color:#6b7280; }
.dash-card .value { font-size:2rem; font-weight:700; color: var(--mit-primary); line-height:1.1; }
.dash-card .sub { font-size:.85rem; color:#6b7280; margin-top:4px; }
.dash-card .icon { float:right; font-size:1.5rem; color:#d6dde9; }

.quick-action { display:flex; align-items:center; gap:12px; padding:14px 16px; background:#fff; border:1px solid #e3e7ef; border-radius:10px; text-decoration:none; color:#222; transition: all .12s ease; }
.quick-action:hover { border-color: var(--mit-primary); background: var(--mit-soft); transform: translateY(-1px); }
.quick-action .qa-icon { width:42px; height:42px; border-radius:8px; display:flex; align-items:center; justify-content:center; background: var(--mit-soft); color: var(--mit-primary); font-size:1.3rem; }
.quick-action .qa-title { font-weight:600; color: var(--mit-primary); }
.quick-action .qa-desc { font-size:.82rem; color:#6b7280; }

/* ===== Diagrama hierárquico de Vinculação Mitdoc's ===== */
.diagrama-mitdocs {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: linear-gradient(180deg, #fbfcfe 0%, #ffffff 100%);
}

.diagrama-nivel-topo { display: flex; justify-content: center; }

.diagrama-conector-vertical {
  width: 2px;
  height: 36px;
  background: var(--mit-primary);
  opacity: 0.4;
}

.diagrama-base {
  display: flex;
  justify-content: center;
  align-items: stretch;
  position: relative;
  gap: 0;
  width: 100%;
  flex-wrap: wrap;
  row-gap: 32px;
}

.diagrama-node-wrap {
  position: relative;
  padding: 22px 12px 0;
  flex: 0 1 240px;
  display: flex;
  justify-content: center;
}

/* linha horizontal entre filhas (full no wrap, depois cortamos primeiro/último) */
.diagrama-node-wrap::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--mit-primary);
  opacity: 0.4;
}
/* primeiro: começa do meio */
.diagrama-node-wrap:first-child::before { left: 50%; }
/* último: vai até o meio */
.diagrama-node-wrap:last-child::before  { right: 50%; }
/* se for o único filho, esconde a linha horizontal (first AND last) */
.diagrama-node-wrap:first-child:last-child::before { display: none; }

/* linha vertical descendo da horizontal até o nó */
.diagrama-node-wrap::after {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  width: 2px;
  height: 22px;
  background: var(--mit-primary);
  opacity: 0.4;
}

/* ----- Nó (caixa de cada empresa) ----- */
.diagrama-node {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1.5px solid #d6dde9;
  border-radius: 10px;
  padding: 12px 16px;
  min-width: 210px;
  max-width: 240px;
  transition: all .15s ease;
  text-align: center;
}
.diagrama-node:hover { border-color: var(--mit-primary); transform: translateY(-2px); box-shadow: 0 4px 14px rgba(31, 58, 104, .12); color: inherit; }

.diagrama-node .diagrama-tag {
  font-size: .68rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #6b7280;
  margin-bottom: 6px;
  font-weight: 600;
}
.diagrama-node .diagrama-nome {
  font-weight: 600;
  font-size: .95rem;
  color: var(--mit-primary);
  line-height: 1.25;
  margin-bottom: 4px;
}
.diagrama-node .diagrama-doc {
  font-size: .82rem;
  color: #6b7280;
  font-family: ui-monospace, "Cascadia Mono", Menlo, monospace;
}
.diagrama-node .diagrama-link-hint {
  font-size: .72rem;
  color: var(--mit-primary);
  margin-top: 6px;
  font-weight: 500;
}

/* Publicador (topo) — destaque azul */
.diagrama-node-publicador {
  background: var(--mit-primary);
  border-color: var(--mit-primary);
  color: #fff;
  min-width: 280px;
  max-width: 360px;
}
.diagrama-node-publicador .diagrama-tag { color: rgba(255,255,255,.7); }
.diagrama-node-publicador .diagrama-nome { color: #fff; }
.diagrama-node-publicador .diagrama-doc { color: rgba(255,255,255,.8); }
.diagrama-node-publicador .diagrama-link-hint { color: rgba(255,255,255,.85); }
.diagrama-node-publicador:hover { border-color: #fff; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(31,58,104,.35); color: #fff; }

/* Ghost (publicador não cadastrado) — cinza pontilhado */
.diagrama-node-publicador.diagrama-node-ghost {
  background: #f3f5fa;
  color: #6b7280;
  border: 2px dashed #b8c2d8;
}
.diagrama-node-publicador.diagrama-node-ghost .diagrama-tag,
.diagrama-node-publicador.diagrama-node-ghost .diagrama-nome { color: var(--mit-primary); }
.diagrama-node-publicador.diagrama-node-ghost .diagrama-doc { color: #6b7280; }

/* Empresa cliente atual — destaque âmbar */
.diagrama-node-atual {
  border-color: var(--mit-accent);
  background: #fffbef;
  box-shadow: 0 0 0 3px rgba(243, 183, 48, .15);
}
.diagrama-node-atual .diagrama-tag {
  color: #c08800;
}
.diagrama-node-atual.diagrama-node-publicador {
  background: linear-gradient(135deg, var(--mit-primary), #2b4d83);
  border-color: var(--mit-accent);
  box-shadow: 0 0 0 3px rgba(243, 183, 48, .25);
  color: #fff;
}

/* Linhas conectoras com cor mais forte quando há nó atual no destino */
.diagrama-base .diagrama-node-atual ~ * {} /* placeholder pra futuras regras */

/* Scroll horizontal se houver muitas empresas */
@media (min-width: 768px) {
  .diagrama-base {
    overflow-x: auto;
    flex-wrap: nowrap;
  }
  .diagrama-base::-webkit-scrollbar { height: 8px; }
  .diagrama-base::-webkit-scrollbar-thumb { background: #d6dde9; border-radius: 4px; }
}
