/* Aula 16 — Integração do Datawarehouse com a Interface Analítica.
   Carregado depois de deck-base.css: sobrescreve a paleta para violeta
   e acrescenta os componentes próprios do encontro. */

:root {
  --red:#7052b8;
  --red-dark:#4c3583;
  --red-light:#c4b5fd;
}

body {
  background:
    radial-gradient(circle at 8% 10%,rgba(112,82,184,.06),transparent 28%),
    radial-gradient(circle at 92% 88%,rgba(46,38,64,.065),transparent 30%),
    var(--paper);
}

.cover { background:linear-gradient(132deg,#1c1033 0%,#4c3583 43%,#7052b8 73%,#c4b5fd 100%); }
.cover-title span { color:#ddd6fe; }
.stack-layer { background:rgba(30,18,56,.34); box-shadow:0 10px 28px rgba(22,12,42,.2); }
.stack-layer em { color:#ddd6fe; }
.stack-layer.top { color:var(--red-dark); }
.stack-layer.top small { color:#5b3fa0; }
.hero-panel small { color:#ddd6fe; }
.check-item > span:first-child { background:#ede9fe; color:var(--red-dark); }
.continuity-step.focus { background:#f5f3ff; }
.callout { border-color:#ddd6fe; background:#faf8ff; color:#4c3583; }

/* Divergência de definição entre equipes */
.diverge { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }
.diverge-card {
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:11px;
  background:#fff;
  border-top:4px solid var(--muted);
}
.diverge-card.a { border-top-color:var(--blue); }
.diverge-card.b { border-top-color:var(--amber); }
.diverge-card.c { border-top-color:#dc2626; }
.diverge-card .who {
  display:block;
  margin-bottom:5px;
  color:var(--muted);
  font:800 .62rem/1 'JetBrains Mono','Courier New',monospace;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.diverge-card .valor { display:block; margin-bottom:6px; color:var(--deep); font-size:1.35rem; font-weight:800; letter-spacing:-.03em; }
.diverge-card p { margin:0; color:#414b5f; font-size:.75rem; line-height:1.42; }

/* Opções de serviço do dado */
.serve-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; }
.serve {
  display:flex;
  flex-direction:column;
  padding:14px 15px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  border-top:4px solid var(--red);
}
.serve.agregada { border-top-color:var(--green); }
.serve.api { border-top-color:var(--blue); }
.serve.export { border-top-color:var(--amber); }
.serve h3 { margin:0 0 5px; color:var(--deep); font-size:.92rem; }
.serve .lat { margin:0 0 7px; color:var(--muted); font:700 .66rem/1.3 'JetBrains Mono','Courier New',monospace; }
.serve p { margin:0; color:#414b5f; font-size:.74rem; line-height:1.42; }
.serve .fit { margin-top:auto; padding-top:8px; border-top:1px dashed var(--line); color:var(--muted); font-size:.68rem; line-height:1.38; }

/* Matriz de acesso por linha */
.rls-table { width:100%; border-collapse:collapse; font-size:.76rem; }
.rls-table th { padding:9px; border:1px solid var(--line); background:var(--deep); color:#fff; text-align:left; font-weight:800; }
.rls-table td { padding:9px; border:1px solid var(--line); background:#fff; color:#414b5f; }
.rls-table td.allow { background:#f0fdf4; color:#166534; font-weight:700; }
.rls-table td.deny { background:#fef2f2; color:#991b1b; font-weight:700; }
