/**
 * portfolio-presentation.css
 * Estilos do deck executivo de portfólio (relatório 12).
 * Quadro canônico: 1280×720 (16:9). Escala via --pp-scale no wrapper.
 * Anatomia do slide: cabeçalho · corpo (região cortante, data-fit) · rodapé — grade de 3 linhas.
 * Piso tipográfico: labels ≥11px, corpo/bullets/células ≥13px.
 * Atenção ao editar: os blocos @media precisam fechar antes de qualquer regra solta; uma chave
 * a mais/menos aqui já fez regras de "tela pequena" valerem em TODAS as telas (ver teste de CSS).
 */

.pp-wrap {
  --pp-blue-950:#071733;
  --pp-blue-900:#0A1F44;
  --pp-blue-800:#0F2A5A;
  --pp-blue-700:#1E3A8A;
  --pp-blue-600:#2F4EB2;
  --pp-blue-500:#3B82F6;
  --pp-blue-300:#93C5FD;
  --pp-slate-950:#020617;
  --pp-slate-900:#0F172A;
  --pp-slate-800:#1E293B;
  --pp-slate-700:#334155;
  --pp-slate-600:#475569;
  --pp-slate-500:#64748B;
  --pp-slate-300:#CBD5E1;
  --pp-slate-200:#E2E8F0;
  --pp-slate-100:#F1F5F9;
  --pp-bg:#F7FAFD;
  --pp-white:#FFFFFF;
  --pp-green:#16A34A;
  --pp-amber:#F59E0B;
  --pp-red:#DC2626;
  --pp-shadow:0 22px 60px rgba(15, 23, 42, .14);
  --pp-radius:22px;
  color:var(--pp-slate-800);
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.pp-wrap * { box-sizing:border-box; }
.pp-toolbar {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  margin-bottom:16px;
  flex-wrap:wrap;
}
.pp-app {
  display:flex;
  min-height:760px;
  border:1px solid var(--pp-slate-200);
  border-radius:22px;
  overflow:hidden;
  background:rgba(255,255,255,.78);
  box-shadow:0 24px 60px rgba(15,23,42,.12);
  backdrop-filter:blur(14px);
}
.pp-panel-left,
.pp-panel-right {
  width:318px;
  flex-shrink:0;
  padding:18px;
  background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);
  overflow:auto;
}
.pp-panel-left { border-right:1px solid var(--pp-slate-200); }
.pp-panel-right { border-left:1px solid var(--pp-slate-200); }
.pp-stage {
  flex:1;
  overflow:auto;
  padding:28px 26px 34px;
  background:
    radial-gradient(1200px 520px at -10% -10%, #EAF2FF 0%, rgba(234,242,255,0) 56%),
    radial-gradient(980px 480px at 110% -20%, #E4ECFF 0%, rgba(228,236,255,0) 54%),
    linear-gradient(180deg,#EEF4FF 0%,#F7FAFD 100%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:26px;
}
.pp-panel-title {
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--pp-slate-500);
  margin:0 0 12px;
}
.pp-section-card {
  border:1px solid var(--pp-slate-200);
  border-radius:18px;
  padding:14px;
  background:rgba(255,255,255,.78);
  margin-bottom:12px;
}
.pp-form-row { margin-bottom:12px; }
.pp-form-label {
  display:block;
  font-size:12px;
  font-weight:700;
  color:var(--pp-slate-800);
  margin-bottom:6px;
}
.pp-form-control {
  width:100%;
  border:1px solid var(--pp-slate-200);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  color:var(--pp-slate-800);
  font-size:13px;
}
.pp-editable-hint,
.pp-notes-area,
.pp-empty-text {
  font-size:12px;
  color:var(--pp-slate-600);
  line-height:1.45;
}
.pp-editable-hint {
  margin:0 0 14px;
  padding:10px 12px;
  background:#eef6ff;
  border-left:3px solid var(--pp-blue-500);
  border-radius:12px;
}
.pp-notes-area {
  width:100%;
  min-height:108px;
  border:1px solid var(--pp-slate-200);
  border-radius:12px;
  padding:12px;
  resize:vertical;
  background:#fff;
}
.pp-image-upload-card[hidden] { display:none !important; }
.pp-image-upload-copy {
  margin:0 0 10px;
  color:var(--pp-slate-600);
  font-size:12px;
  line-height:1.45;
}
.pp-image-upload-input {
  width:100%;
  padding:9px;
  border:1px dashed var(--pp-slate-300);
  border-radius:12px;
  background:#fff;
  color:var(--pp-slate-700);
  font-size:12px;
}
.pp-image-preview {
  display:block;
  width:100%;
  aspect-ratio:16 / 9;
  margin-top:10px;
  border:1px solid var(--pp-slate-200);
  border-radius:12px;
  background:#020617;
  object-fit:cover;
  object-position:center;
}
.pp-image-preview[hidden],
.pp-image-remove[hidden] { display:none !important; }
.pp-image-feedback {
  min-height:18px;
  margin:8px 0 0;
  color:var(--pp-slate-500);
  font-size:11px;
  line-height:1.4;
}
.pp-image-feedback.error { color:var(--pp-red); }
.pp-image-feedback.success { color:var(--pp-green); }
.pp-image-alignment {
  margin:10px 0 0;
  padding:0;
  border:0;
}
.pp-image-alignment legend {
  margin-bottom:6px;
  color:var(--pp-slate-800);
  font-size:12px;
  font-weight:700;
}
.pp-image-alignment-options {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:6px;
}
.pp-image-alignment-option {
  position:relative;
  cursor:pointer;
}
.pp-image-alignment-option input {
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.pp-image-alignment-option span {
  display:flex;
  min-height:36px;
  align-items:center;
  justify-content:center;
  border:1px solid var(--pp-slate-300);
  border-radius:10px;
  background:#fff;
  color:var(--pp-slate-700);
  font-size:11px;
  font-weight:700;
}
.pp-image-alignment-option input:checked + span {
  border-color:var(--pp-blue-500);
  background:#eff6ff;
  color:var(--pp-blue-700);
  box-shadow:0 0 0 1px rgba(59,130,246,.18);
}
.pp-image-alignment-option input:focus-visible + span {
  outline:3px solid var(--pp-blue-300);
  outline-offset:2px;
}
.pp-image-remove {
  width:100%;
  margin-top:8px;
  padding:8px 10px;
  border:1px solid var(--pp-slate-300);
  border-radius:10px;
  background:#fff;
  color:var(--pp-slate-700);
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.pp-check-group {
  display:flex;
  flex-direction:column;
  gap:7px;
  max-height:210px;
  overflow:auto;
  padding-right:4px;
}
.pp-check-item {
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:9px 10px;
  border:1px solid var(--pp-slate-200);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  font-size:12px;
  color:var(--pp-slate-800);
}
.pp-check-item { flex-wrap:wrap; }
.pp-check-item input { margin-top:2px; accent-color:var(--pp-blue-500); }
.pp-check-item > span:not(.pp-check-meta) { flex:1 1 0; min-width:0; overflow-wrap:anywhere; }
/* Status/programa descem para a linha de baixo em vez de espremer o nome do item. */
.pp-check-meta {
  flex:0 0 100%;
  margin-left:26px;
  color:var(--pp-slate-500);
  font-size:11px;
}
.pp-btn-generate {
  width:100%;
  margin-top:4px;
  padding:12px 14px;
  border:none;
  border-radius:14px;
  background:linear-gradient(135deg,var(--pp-blue-600),var(--pp-blue-500));
  color:#fff;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  box-shadow:0 12px 24px rgba(47,78,178,.24);
}
.pp-btn-generate.loading .pp-icon { display:none; }
.pp-btn-generate .pp-spinner {
  display:none;
  width:16px;
  height:16px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  animation:pp-spin .7s linear infinite;
  margin:0 auto;
}
.pp-btn-generate.loading .pp-spinner { display:block; }
@keyframes pp-spin { to { transform:rotate(360deg); } }

/* ══ Toolbar ══════════════════════════════════════════════════════ */
.pp-count-chip {
  margin-right:auto;
  font-size:12px;
  font-weight:800;
  color:var(--pp-slate-600);
  background:#EEF4FF;
  border:1px solid var(--pp-slate-200);
  border-radius:999px;
  padding:6px 12px;
}
.pp-count-chip[hidden] { display:none; }
.pp-stage { min-width:0; }

/* ══ Quadro do slide (1280×720, escalado por --pp-scale) ══════════ */
.pp-slide-wrapper {
  width:calc(1280px * var(--pp-scale, 1));
  height:calc(720px * var(--pp-scale, 1));
  position:relative;
  cursor:pointer;
  flex-shrink:0;
  margin-top:30px;
}
.pp-slide-wrapper .pp-slide {
  transform:scale(var(--pp-scale, 1));
  transform-origin:top left;
}
.pp-slide-wrapper:hover .pp-slide:not(.pp-slide-full-image) {
  box-shadow:0 28px 64px rgba(15,23,42,.18);
}
.pp-slide-wrapper.active-slide .pp-slide { box-shadow:0 0 0 3px rgba(59,130,246,.34), var(--pp-shadow); }
.pp-slide-wrapper[data-overflow="true"] .pp-slide {
  outline:3px solid var(--pp-amber);
  outline-offset:-3px;
}
.pp-slide-label {
  position:absolute;
  top:-26px;
  left:0;
  right:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--pp-slate-500);
  margin:0;
  z-index:1;
}
.pp-slide-label-text {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pp-slide-actions { display:flex; gap:6px; flex:none; }
.pp-slide-pdf {
  border:1px solid var(--pp-slate-300);
  background:#fff;
  color:var(--pp-slate-700);
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  padding:3px 11px;
  border-radius:999px;
  cursor:pointer;
}
.pp-slide-pdf:hover { border-color:var(--pp-blue-500); color:var(--pp-blue-700); background:#EFF6FF; }
.pp-slide-pdf:focus-visible { outline:3px solid var(--pp-blue-300); outline-offset:2px; }

/* Anatomia: cabeçalho · corpo (região cortante) · rodapé. Nada vaza porque o corpo recorta
   e o rodapé é a 3ª linha da grade (nunca sobreposto). */
.pp-slide {
  position:relative;
  width:1280px;
  height:720px;
  flex-shrink:0;
  display:grid;
  grid-template-rows:auto minmax(0, 1fr) auto;
  row-gap:14px;
  padding:30px 48px 18px;
  background:
    radial-gradient(900px 430px at -8% -12%, #EAF2FF 0%, rgba(234,242,255,0) 60%),
    radial-gradient(820px 400px at 108% -14%, #E4ECFF 0%, rgba(228,236,255,0) 58%),
    linear-gradient(180deg,#F7FAFF 0%,#ECF3FF 100%);
  border:1px solid rgba(148,163,184,.45);
  border-radius:28px;
  box-shadow:var(--pp-shadow);
  overflow:hidden;
}
.pp-slide.dark {
  background:linear-gradient(135deg,#0A1F44 0%,#0F2A5A 100%);
  color:#EAF2FF;
  border-color:rgba(255,255,255,.08);
}
.pp-slide.pp-slide-full-image {
  display:block;
  padding:0;
  background:#020617;
}
.pp-slide-full-image > img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.pp-image-align-left { object-position:left center !important; }
.pp-image-align-center { object-position:center center !important; }
.pp-image-align-right { object-position:right center !important; }

/* Marca-d'água: recortada por um invólucro próprio, então não conta como estouro. */
.pp-wm-clip {
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  border-radius:inherit;
}
.pp-watermark {
  position:absolute;
  right:-70px;
  bottom:-96px;
  font-size:300px;
  font-weight:900;
  color:rgba(47,78,178,.045);
  letter-spacing:-16px;
  line-height:1;
}
.pp-slide.dark .pp-watermark { color:rgba(147,197,253,.07); }

/* Cabeçalho */
.pp-head {
  position:relative;
  z-index:2;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:24px;
  min-width:0;
}
.pp-head-text {
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
}
.pp-slide h1,
.pp-slide h2,
.pp-slide h3 {
  margin:0;
  letter-spacing:-.03em;
  line-height:1.1;
  color:var(--pp-slate-900);
}
.pp-slide h3 { font-size:15px; letter-spacing:-.01em; }
.pp-head h2 { font-size:32px; }
.pp-head h2.pp-title-long { font-size:25px; }
.pp-head .pp-subtitle {
  margin:0;
  max-width:none;
  font-size:15px;
  line-height:1.4;
}
.pp-head .pp-brand-maestro { flex:none; height:36px; width:auto; max-width:180px; object-fit:contain; }
.pp-topbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:18px;
  position:relative;
  z-index:2;
}
.pp-brand-maestro { height:40px; max-width:200px; object-fit:contain; }
.pp-brand-combat { height:30px; max-width:160px; object-fit:contain; }

/* Corpo */
.pp-body {
  position:relative;
  z-index:2;
  min-height:0;
  min-width:0;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  grid-template-rows:minmax(0, 1fr);
  gap:16px;
}
.pp-body > * { min-width:0; min-height:0; }

/* Rodapé (linha própria da grade) */
.pp-footer {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto;
  gap:16px;
  align-items:center;
  padding-top:8px;
  border-top:1px solid rgba(148,163,184,.35);
  color:#64748B;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.pp-footer .pp-brand-combat { height:20px; width:auto; max-width:120px; }
.pp-footer-label {
  text-align:center;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.pp-footer-page { color:var(--pp-blue-600); white-space:nowrap; }
.pp-slide.dark .pp-footer { color:#8FA6D6; border-top-color:rgba(255,255,255,.16); }
.pp-slide.dark .pp-footer-page { color:#93C5FD; }

/* Tema escuro */
.pp-slide.dark h1,
.pp-slide.dark h2,
.pp-slide.dark h3,
.pp-slide.dark .pp-subtitle,
.pp-slide.dark .pp-small,
.pp-slide.dark .pp-muted { color:#EAF2FF; }
.pp-slide.dark .pp-subtitle,
.pp-slide.dark .pp-small,
.pp-slide.dark .pp-muted { color:#B8C5E0; }
.pp-slide.dark .pp-panel {
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.14);
  box-shadow:none;
}
.pp-slide.dark .pp-pill {
  border-color:rgba(255,255,255,.18);
  background:rgba(255,255,255,.07);
  color:#EAF2FF;
}
.pp-slide.dark .pp-accent { color:var(--pp-blue-300); }

/* Pílulas, etiquetas e pontos */
.pp-eyebrow,
.pp-pill {
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--pp-slate-200);
  background:rgba(255,255,255,.84);
  border-radius:999px;
  padding:6px 12px;
  color:var(--pp-slate-600);
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
  white-space:nowrap;
}
.pp-pill.sm { padding:3px 10px; font-size:11px; gap:6px; }
.pp-pill.green { background:rgba(22,163,74,.09); color:#166534; border-color:rgba(22,163,74,.25); }
.pp-pill.amber { background:rgba(245,158,11,.10); color:#92400E; border-color:rgba(245,158,11,.28); }
.pp-pill.red { background:rgba(220,38,38,.09); color:#991B1B; border-color:rgba(220,38,38,.25); }
.pp-pill.blue { background:rgba(59,130,246,.10); color:#1E40AF; border-color:rgba(59,130,246,.25); }
.pp-slide.dark .pp-pill.blue { background:rgba(59,130,246,.18); color:#BFDBFE; border-color:rgba(147,197,253,.3); }
.pp-tag {
  display:inline-block;
  min-width:30px;
  padding:2px 8px;
  border-radius:8px;
  text-align:center;
  font-size:13px;
  font-weight:900;
}
.pp-tag.green { background:rgba(22,163,74,.12); color:#166534; }
.pp-tag.amber { background:rgba(245,158,11,.14); color:#92400E; }
.pp-tag.red { background:rgba(220,38,38,.12); color:#991B1B; }
.pp-dot {
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--pp-blue-500);
  box-shadow:0 0 0 5px rgba(59,130,246,.12);
}
.pp-status-dot { width:9px; height:9px; border-radius:50%; display:inline-block; flex:none; }
.pp-status-dot.green { background:var(--pp-green); }
.pp-status-dot.amber { background:var(--pp-amber); }
.pp-status-dot.red { background:var(--pp-red); }
.pp-status-dot.blue { background:var(--pp-blue-500); }
.pp-accent { color:var(--pp-blue-600); }
.pp-subtitle {
  font-size:19px;
  line-height:1.55;
  color:var(--pp-slate-600);
  max-width:790px;
  margin-top:16px;
}
.pp-small { font-size:11px; color:var(--pp-slate-500); }
.pp-muted { color:var(--pp-slate-600); }
.pp-note { flex:none; margin:8px 0 0; font-size:12px; color:var(--pp-slate-500); }
.pp-more {
  flex:none;
  margin:8px 0 0;
  padding:6px 10px;
  border-radius:10px;
  background:#EEF4FF;
  color:var(--pp-blue-700);
  font-size:12px;
  font-weight:700;
}
.pp-empty-text { margin:0; font-size:13px; color:var(--pp-slate-500); }

/* Composição */
.pp-grid { display:grid; gap:22px; }
.pp-cols-2 { grid-template-columns:1.08fr .92fr; }
.pp-cols-3 { grid-template-columns:repeat(3,1fr); }
.pp-cols-4 { grid-template-columns:repeat(4,1fr); }
.pp-slide .pp-grid { gap:16px; min-width:0; min-height:0; }
.pp-cols-side { grid-template-columns:minmax(0, 1.6fr) minmax(0, 1fr); grid-template-rows:minmax(0, 1fr); }
.pp-cols-summary { grid-template-columns:minmax(0, 1.15fr) minmax(0, 1fr); grid-template-rows:minmax(0, 1fr); }
.pp-cols-heat { grid-template-columns:minmax(0, .8fr) minmax(0, 1fr); grid-template-rows:minmax(0, 1fr); }
.pp-cols-closing { grid-template-columns:minmax(0, 1.4fr) minmax(0, 1fr); grid-template-rows:minmax(0, 1fr); }
.pp-stack { display:flex; flex-direction:column; gap:14px; min-width:0; min-height:0; }
.pp-stack > .pp-panel { flex:1 1 0; }
.pp-stack > .pp-panel-auto { flex:0 0 auto; }
.pp-stack > .pp-grid,
.pp-stack > .pp-narr-panel.pp-narr-band { min-height:0; }
.pp-stack > .pp-grid { flex:1 1 0; }
.pp-stack > .pp-narr-band { flex:0 0 190px; }
.pp-stack > .pp-metrics,
.pp-stack > .pp-kpi-grid,
.pp-stack > .pp-closing-message { flex:none; }

.pp-panel {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
  background:rgba(255,255,255,.92);
  border:1px solid var(--pp-slate-200);
  border-radius:16px;
  box-shadow:0 10px 26px rgba(15,23,42,.07);
  padding:14px 18px;
  position:relative;
  z-index:2;
}
.pp-panel h3 { flex:none; margin:0 0 10px; }
.pp-pbody { flex:1 1 0; min-height:0; overflow:hidden; }
/* Painel de altura automática: o corpo acompanha o conteúdo (com flex-basis 0 ele colapsaria). */
.pp-panel-auto > .pp-pbody { flex:0 0 auto; }

/* Narrativa editável */
.pp-editable-block {
  margin-top:0;
  padding:12px 14px;
  border-radius:14px;
  border:1px dashed rgba(59,130,246,.26);
  background:rgba(248,250,252,.92);
  font-size:15px;
  line-height:1.45;
}
.pp-narr-panel .pp-editable-block { flex:1 1 0; min-height:0; overflow:hidden; }
.pp-editable-block[contenteditable="true"] { cursor:text; }
.pp-editable-block[contenteditable="true"]:focus {
  outline:2px solid rgba(59,130,246,.34);
  background:#fff;
}
.pp-narrative[data-fs="1"] { font-size:14px; }
.pp-narrative[data-fs="2"] { font-size:13px; }
.pp-slide.dark .pp-editable-block {
  background:rgba(255,255,255,.07);
  border-color:rgba(147,197,253,.24);
}
.pp-narr-band .pp-bullets-clean { columns:2; column-gap:28px; }
.pp-narr-band .pp-bullets-clean li { break-inside:avoid; }

.pp-bullets-clean { list-style:none; padding:0; margin:0; }
/* Bloco (não flex): em flex cada trecho de texto e cada <strong> viraria uma coluna. */
.pp-bullets-clean li {
  position:relative;
  padding-left:17px;
  margin:7px 0;
  color:var(--pp-slate-700);
  font-size:inherit;
  line-height:1.4;
}
.pp-bullets-clean li:first-child { margin-top:0; }
.pp-bullets-clean li:last-child { margin-bottom:0; }
.pp-slide.dark .pp-bullets-clean li { color:#DDE6FF; }
.pp-bullets-clean li::before {
  content:"";
  position:absolute;
  left:0;
  top:.55em;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--pp-blue-500);
}
.pp-panel > .pp-pbody > .pp-bullets-clean { font-size:14px; }

/* Indicadores */
.pp-metrics {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
}
.pp-metrics.two { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.pp-metric {
  min-width:0;
  background:#fff;
  border:1px solid var(--pp-slate-200);
  border-radius:14px;
  padding:10px 14px;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}
.pp-metric .label {
  font-size:11px;
  color:var(--pp-slate-600);
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.pp-metric .value {
  margin-top:2px;
  font-size:24px;
  font-weight:900;
  color:var(--pp-slate-900);
  letter-spacing:-.04em;
  white-space:nowrap;
}
.pp-metric .trend { margin-top:2px; font-size:12px; font-weight:800; }
.pp-up { color:var(--pp-green); }
.pp-down { color:var(--pp-red); }
.pp-warn { color:#B45309; }
.pp-kpi-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:12px; }
.pp-kpi-grid.two { grid-template-columns:repeat(2, minmax(0, 1fr)); }
.pp-kpi-card {
  min-width:0;
  background:#fff;
  border:1px solid var(--pp-slate-200);
  border-radius:14px;
  padding:12px 14px;
}
.pp-kpi-title { font-size:12px; font-weight:900; color:#0F172A; }
.pp-kpi-value { margin-top:4px; font-size:22px; font-weight:900; color:#0F172A; letter-spacing:-.03em; white-space:nowrap; }
.pp-kpi-value.green { color:#15803D; }
.pp-kpi-value.amber { color:#B45309; }
.pp-kpi-value.red { color:#B91C1C; }
.pp-kpi-card .pp-small { margin:6px 0 0; }
.pp-gauge { height:7px; background:#E2E8F0; border-radius:99px; overflow:hidden; margin-top:8px; }
.pp-gauge > span { display:block; height:100%; border-radius:99px; }
.pp-gauge .green { background:var(--pp-green); }
.pp-gauge .amber { background:var(--pp-amber); }
.pp-gauge .red { background:var(--pp-red); }

/* Tabelas */
.pp-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:13px; }
.pp-table th {
  text-align:left;
  color:#475569;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
  padding:6px 8px;
  border-bottom:1.5px solid var(--pp-slate-200);
}
.pp-table td {
  padding:8px;
  border-bottom:1px solid var(--pp-slate-200);
  color:#334155;
  font-weight:600;
  line-height:1.3;
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.pp-table tr:last-child td { border-bottom:0; }
.pp-table .num { text-align:right; font-variant-numeric:tabular-nums; }
.pp-table .strong { font-weight:800; color:#0F172A; }
.pp-table .pp-empty-cell { padding:28px 8px; text-align:center; color:var(--pp-slate-500); }

/* Barras */
.pp-bar-list { display:flex; flex-direction:column; gap:10px; }
.pp-bar-track,
.pp-bar-fill { display:block; }
.pp-bar-track { height:12px; border-radius:999px; background:#E2E8F0; overflow:hidden; }
.pp-bar-fill { height:100%; border-radius:999px; background:linear-gradient(90deg,var(--pp-blue-700),var(--pp-blue-500)); }
.pp-bar-fill.green { background:linear-gradient(90deg,#15803d,#22c55e); }
.pp-bar-fill.amber { background:linear-gradient(90deg,#b45309,#f59e0b); }
.pp-bar-fill.red { background:linear-gradient(90deg,#b91c1c,#ef4444); }
.pp-minibar { display:flex; align-items:center; gap:8px; }
.pp-minibar .pp-bar-track { flex:1 1 auto; height:8px; }
.pp-minibar b { flex:none; width:34px; text-align:right; color:#0F172A; font-variant-numeric:tabular-nums; }
.pp-prog-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin-bottom:5px; }
.pp-prog-head strong { font-size:13px; color:#0F172A; }

/* Matriz de risco */
.pp-heat {
  display:grid;
  grid-template-columns:16px 24px minmax(0, 1fr);
  grid-template-rows:168px auto auto;
  column-gap:6px;
  row-gap:4px;
  align-content:start;
}
.pp-heat-ytitle { position:relative; }
.pp-heat-ytitle span {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%) rotate(-90deg);
  white-space:nowrap;
  font-size:11px;
  font-weight:800;
  color:#64748B;
}
.pp-heat-ylabels {
  display:grid;
  grid-template-rows:repeat(5, 1fr);
  row-gap:5px;
  align-items:center;
  justify-items:end;
  font-size:11px;
  font-weight:800;
  color:#64748B;
}
.pp-heat-plot { position:relative; }
.pp-heat-grid {
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  grid-template-rows:repeat(5, 1fr);
  gap:5px;
}
.pp-heat-cell { border-radius:9px; }
.pp-heat-cell.h1 { background:#E8F7EE; }
.pp-heat-cell.h2 { background:#D4F1DF; }
.pp-heat-cell.h3 { background:#FEF3C7; }
.pp-heat-cell.h4 { background:#FED7AA; }
.pp-heat-cell.h5 { background:#FECACA; }
.pp-heat-overlay { position:absolute; inset:0; pointer-events:none; }
.pp-risk-pill {
  position:absolute;
  transform:translate(-50%, -50%);
  padding:2px 8px;
  border-radius:999px;
  background:#0F2A5A;
  color:#fff;
  border:2px solid #fff;
  box-shadow:0 6px 14px rgba(15,23,42,.25);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
.pp-heat-xlabels {
  grid-column:3;
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:5px;
  text-align:center;
  font-size:11px;
  font-weight:800;
  color:#64748B;
}
.pp-heat-xtitle {
  grid-column:3;
  text-align:center;
  font-size:11px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#64748B;
}

/* Capa */
.pp-slide.pp-cover {
  grid-template-rows:auto minmax(0, 1fr) auto;
  row-gap:0;
  padding:34px 56px 44px;
}
.pp-cover-brand {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding-bottom:22px;
  border-bottom:1px solid rgba(255,255,255,.16);
}
.pp-cover-brand .pp-brand-combat { height:56px; width:auto; max-width:260px; }
.pp-cover-brand .pp-brand-maestro { height:50px; width:auto; max-width:240px; }
.pp-cover-main {
  position:relative;
  z-index:2;
  align-self:center;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:20px;
  max-width:880px;
}
.pp-cover h1 {
  max-width:880px;
  font-size:64px;
  line-height:1.04;
  letter-spacing:-.035em;
  color:#fff;
}
.pp-cover h1.pp-title-long { font-size:48px; }
.pp-cover .pp-subtitle { margin:0; max-width:820px; font-size:20px; line-height:1.5; }
.pp-cover-meta {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:16px;
}
.pp-cover-meta-item {
  padding:14px 18px;
  border-radius:16px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.14);
  color:#B8C5E0;
  font-size:12px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.pp-cover-meta-item strong {
  display:block;
  margin-bottom:4px;
  color:#fff;
  font-size:17px;
  letter-spacing:0;
  text-transform:none;
  overflow-wrap:anywhere;
}
.pp-cover-bars {
  position:absolute;
  right:64px;
  bottom:170px;
  display:flex;
  align-items:flex-end;
  gap:16px;
}
.pp-cover-bars span {
  position:relative;
  width:26px;
  border-radius:7px;
  background:rgba(147,197,253,.16);
}
.pp-cover-bars span::before {
  content:"";
  position:absolute;
  left:50%;
  top:-22px;
  bottom:-22px;
  width:3px;
  margin-left:-1px;
  border-radius:2px;
  background:rgba(147,197,253,.14);
}
.pp-cover-bars span:nth-child(1) { height:96px; }
.pp-cover-bars span:nth-child(2) { height:170px; }
.pp-cover-bars span:nth-child(3) { height:84px; }
.pp-cover-bars span:nth-child(4) { height:236px; }
.pp-cover-bars span:nth-child(5) { height:128px; }
.pp-cover-bars span:nth-child(6) { height:182px; }
.pp-closing-message {
  margin:0;
  max-width:none;
  font-size:16px;
  line-height:1.5;
  color:#B8C5E0;
}

/* Progresso */
.pp-progress-overlay {
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.48);
  z-index:10020;
  align-items:center;
  justify-content:center;
}
.pp-progress-overlay.show { display:flex; }
.pp-progress-modal {
  background:#fff;
  border-radius:18px;
  box-shadow:0 24px 60px rgba(0,0,0,.25);
  padding:28px;
  min-width:360px;
  max-width:92vw;
}
.pp-progress-title {
  font-size:18px;
  font-weight:800;
  color:var(--pp-blue-900);
  margin:0 0 14px;
}
.pp-progress-message {
  font-size:14px;
  color:var(--pp-slate-800);
  margin-bottom:12px;
}
.pp-progress-step {
  font-size:13px;
  color:var(--pp-slate-500);
  margin-bottom:16px;
}
.pp-progress-bar-wrap {
  height:8px;
  background:var(--pp-slate-200);
  border-radius:999px;
  overflow:hidden;
  margin-bottom:16px;
}
.pp-progress-bar {
  height:100%;
  background:linear-gradient(90deg,var(--pp-blue-500),var(--pp-amber));
  border-radius:999px;
  transition:width .3s ease;
  width:0%;
}
.pp-progress-list {
  font-size:12px;
  color:var(--pp-slate-500);
  max-height:200px;
  overflow:auto;
  padding-left:0;
  list-style:none;
  margin:0;
}
.pp-progress-list li { padding:4px 0; }
.pp-progress-list li.done { color:var(--pp-green); }
.pp-progress-list li.error { color:var(--pp-red); }
.pp-progress-list li.current { color:var(--pp-blue-500); font-weight:700; }

/* ══ Responsivo (o slide nunca muda de tamanho: só a escala) ══════ */
@media (max-width: 1420px) {
  .pp-panel-left, .pp-panel-right { width:288px; }
}
@media (max-width: 1180px) {
  .pp-app { flex-direction:column; }
  .pp-panel-left, .pp-panel-right { width:100%; border:none; }
  .pp-panel-left { border-bottom:1px solid var(--pp-slate-200); }
  .pp-panel-right { border-top:1px solid var(--pp-slate-200); }
}

/* ══ Impressão: um slide por página 16:9 ══════════════════════════ */
@media print {
  @page { size: 338.67mm 190.5mm; margin: 0; }

  html, body { margin:0 !important; padding:0 !important; background:#fff !important; }
  * { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }

  .pp-toolbar,
  .pp-panel-left,
  .pp-panel-right,
  .pp-slide-label,
  .pp-progress-overlay,
  .pp-present-hud,
  .pp-overflow-banner { display:none !important; }

  .pp-app {
    display:block !important;
    border:none !important;
    box-shadow:none !important;
    background:#fff !important;
    border-radius:0 !important;
  }
  .pp-stage {
    display:block !important;
    padding:0 !important;
    gap:0 !important;
    background:#fff !important;
  }

  .pp-slide-wrapper {
    display:block !important;
    width:1280px !important;
    height:720px !important;
    page-break-after:always !important;
    page-break-inside:avoid !important;
    break-after:page !important;
    break-inside:avoid !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  .pp-slide-wrapper:last-child {
    page-break-after:auto !important;
    break-after:auto !important;
  }
  .pp-slide-wrapper .pp-slide {
    transform:none !important;
  }

  .pp-slide {
    width:1280px !important;
    height:720px !important;
    min-height:0 !important;
    border-radius:0 !important;
    border:0 !important;
    box-shadow:none !important;
    margin:0 !important;
    overflow:hidden !important;
  }
  .pp-slide.pp-slide-full-image { padding:0 !important; }
}

/* ══ Densidade (último recurso; piso: corpo ≥13px, rótulos ≥11px) ══ */
.pp-slide.pp-dense-1 { padding:24px 40px 14px; row-gap:10px; }
.pp-slide.pp-dense-1 .pp-head h2 { font-size:27px; }
.pp-slide.pp-dense-1 .pp-head h2.pp-title-long { font-size:22px; }
.pp-slide.pp-dense-1 .pp-head .pp-subtitle { font-size:14px; }
.pp-slide.pp-dense-1 .pp-panel { padding:10px 14px; }
.pp-slide.pp-dense-1 .pp-grid,
.pp-slide.pp-dense-1 .pp-stack { gap:10px; }
.pp-slide.pp-dense-1 .pp-metric { padding:8px 12px; }
.pp-slide.pp-dense-1 .pp-metric .value { font-size:21px; }
.pp-slide.pp-dense-1 .pp-kpi-card { padding:9px 12px; }
.pp-slide.pp-dense-1 .pp-kpi-value { font-size:19px; }
.pp-slide.pp-dense-1 .pp-table td { padding:6px 8px; }
.pp-slide.pp-dense-1 .pp-editable-block { padding:10px 12px; font-size:14px; }
.pp-slide.pp-dense-1 .pp-bullets-clean li { margin:5px 0; }

.pp-slide.pp-dense-2 { padding:20px 34px 12px; row-gap:8px; }
.pp-slide.pp-dense-2 .pp-head h2 { font-size:24px; }
.pp-slide.pp-dense-2 .pp-head h2.pp-title-long { font-size:20px; }
.pp-slide.pp-dense-2 .pp-head .pp-subtitle { font-size:13px; }
.pp-slide.pp-dense-2 .pp-panel { padding:8px 12px; }
.pp-slide.pp-dense-2 .pp-panel h3 { margin-bottom:6px; }
.pp-slide.pp-dense-2 .pp-grid,
.pp-slide.pp-dense-2 .pp-stack { gap:8px; }
.pp-slide.pp-dense-2 .pp-metric { padding:6px 10px; }
.pp-slide.pp-dense-2 .pp-metric .value { font-size:19px; }
.pp-slide.pp-dense-2 .pp-kpi-card { padding:7px 10px; }
.pp-slide.pp-dense-2 .pp-kpi-value { font-size:17px; }
.pp-slide.pp-dense-2 .pp-table td { padding:4px 8px; }
.pp-slide.pp-dense-2 .pp-editable-block { padding:8px 10px; font-size:13px; }
.pp-slide.pp-dense-2 .pp-bullets-clean li { margin:3px 0; line-height:1.3; }

/* ══ Aviso de conteúdo apertado ═══════════════════════════════════ */
.pp-overflow-banner {
  display:none;
  width:calc(1280px * var(--pp-scale, 1));
  margin:0 auto 8px;
  padding:10px 14px;
  border-radius:12px;
  background:#FEF3C7;
  border:1px solid rgba(245,158,11,.4);
  color:#92400E;
  font-size:12px;
  font-weight:700;
}
.pp-overflow-banner.show { display:block; }

/* ══ Modo apresentação: cada slide ocupa a tela inteira ═══════════ */
.pp-wrap.pp-presenting {
  position:fixed;
  inset:0;
  z-index:10000;
  background:#020617;
}
.pp-wrap.pp-presenting .pp-toolbar,
.pp-wrap.pp-presenting .pp-panel-left,
.pp-wrap.pp-presenting .pp-panel-right,
.pp-wrap.pp-presenting .pp-overflow-banner,
.pp-wrap.pp-presenting .pp-slide-label {
  display:none !important;
}
.pp-wrap.pp-presenting .pp-app {
  position:absolute;
  inset:0;
  min-height:0;
  border:none;
  box-shadow:none;
  border-radius:0;
  background:transparent;
  backdrop-filter:none;
}
.pp-wrap.pp-presenting .pp-stage {
  position:absolute;
  inset:0;
  z-index:1;
  padding:0;
  gap:0;
  background:#EEF4FF;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.pp-wrap.pp-presenting .pp-stage[data-theme="dark"] { background:#0A1F44; }
.pp-wrap.pp-presenting .pp-slide-wrapper {
  position:absolute;
  opacity:0;
  pointer-events:none;
  transition:opacity .38s ease, transform .38s ease;
  transform:translateX(40px);
  margin-top:0;
  width:calc(1280px * var(--pp-scale, 1));
  height:calc(720px * var(--pp-scale, 1));
}
.pp-wrap.pp-presenting .pp-slide-wrapper.is-active {
  opacity:1;
  pointer-events:auto;
  transform:translateX(0);
  position:relative;
}
.pp-wrap.pp-presenting .pp-slide-wrapper.is-leaving-left {
  opacity:0;
  transform:translateX(-40px);
}
.pp-wrap.pp-presenting .pp-slide-wrapper.is-leaving-right {
  opacity:0;
  transform:translateX(40px);
}
.pp-wrap.pp-presenting .pp-slide {
  border-radius:0;
  border:0;
  box-shadow:none;
}
.pp-wrap.pp-presenting .pp-editable-block[contenteditable] {
  cursor:default;
  border-style:solid;
}
@media (prefers-reduced-motion: reduce) {
  .pp-wrap.pp-presenting .pp-slide-wrapper {
    transition:none;
  }
}

.pp-present-hud {
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%);
  z-index:10010;
  display:none;
  align-items:center;
  gap:14px;
  padding:10px 16px;
  border-radius:999px;
  background:rgba(15,23,42,.82);
  color:#E2E8F0;
  box-shadow:0 12px 40px rgba(0,0,0,.35);
  opacity:1;
  transition:opacity .3s ease;
}
.pp-wrap.pp-presenting .pp-present-hud { display:flex; }
.pp-present-hud.is-idle { opacity:0; pointer-events:none; }
.pp-present-hud button {
  border:0;
  background:transparent;
  color:#E2E8F0;
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  padding:6px 10px;
  border-radius:8px;
}
.pp-present-hud button:hover { background:rgba(255,255,255,.1); }
.pp-present-hud button:focus-visible { outline:2px solid #93C5FD; outline-offset:2px; }
.pp-present-hud button:disabled { opacity:.35; cursor:default; }
.pp-present-count {
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  min-width:72px;
  text-align:center;
}
.pp-present-progress {
  width:120px;
  height:4px;
  border-radius:99px;
  background:rgba(255,255,255,.18);
  overflow:hidden;
}
.pp-present-progress > span {
  display:block;
  height:100%;
  background:#3B82F6;
  border-radius:99px;
  transition:width .25s ease;
}
.pp-present-live {
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
}

/* Hospedeiros fora da tela: medição de paginação e clone para PDF */
.pp-measure-host,
.pp-export-host {
  position:fixed;
  left:-10000px;
  top:0;
  width:1280px;
  pointer-events:none;
  z-index:-1;
}
.pp-measure-host {
  height:720px;
  visibility:hidden;
  overflow:hidden;
}
.pp-export-host { opacity:0.01; }
.pp-measure-host .pp-slide-wrapper,
.pp-export-host .pp-slide-wrapper {
  width:1280px;
  height:720px;
  margin:0;
}
.pp-measure-host .pp-slide,
.pp-export-host .pp-slide {
  transform:none;
  border-radius:0;
  box-shadow:none;
}
.pp-measure-host .pp-slide-label,
.pp-export-host .pp-slide-label { display:none; }
