/**
 * 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.
 * Piso tipográfico: labels ≥11px, corpo/bullets/células ≥13px.
 */

.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 input { margin-top:2px; accent-color:var(--pp-blue-500); }
.pp-check-meta {
  margin-left:auto;
  color:var(--pp-slate-500);
  font-size:11px;
  white-space:nowrap;
}
.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); } }
.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:28px;
}
.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:-22px;
  left:6px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--pp-slate-500);
  margin:0;
  z-index:1;
}
.pp-slide {
  position:relative;
  width:1280px;
  height:720px;
  flex-shrink:0;
  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;
  padding:40px 52px 36px;
}
.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 {
  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; }
.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-watermark {
  position:absolute;
  right:-90px;
  bottom:-116px;
  font-size:320px;
  font-weight:900;
  color:rgba(47,78,178,.05);
  letter-spacing:-16px;
  line-height:1;
  pointer-events:none;
}
.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;
}
.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-page { color:#93C5FD; }
.pp-slide.dark .pp-brand-maestro,
.pp-slide.dark .pp-brand-combat {
  /* dark-slide logos are pre-inverted data URLs; no CSS filter for html2canvas */
}
.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:8px 13px;
  color:var(--pp-slate-600);
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
}
.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-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-slide h1,
.pp-slide h2,
.pp-slide h3 {
  margin:0;
  letter-spacing:-.03em;
  line-height:1.05;
  color:var(--pp-slate-900);
}
.pp-slide h1 { font-size:64px; max-width:790px; }
.pp-slide h2 { font-size:44px; margin-top:8px; }
.pp-slide h3 { font-size:22px; letter-spacing:-.01em; }
.pp-accent { color:var(--pp-blue-600); }
.pp-slide.dark .pp-accent { color:var(--pp-blue-300); }
.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-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-panel {
  background:rgba(255,255,255,.88);
  border:1px solid var(--pp-slate-200);
  border-radius:var(--pp-radius);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
  padding:24px;
  position:relative;
  z-index:2;
}
.pp-panel.tight { padding:18px; }
.pp-panel h3 { margin-bottom:14px; }
.pp-metrics {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  margin-top:28px;
}
.pp-metrics.two { grid-template-columns:repeat(2,1fr); }
.pp-metric {
  background:#fff;
  border:1px solid var(--pp-slate-200);
  border-radius:18px;
  padding:18px 18px 16px;
  box-shadow:0 10px 26px rgba(15,23,42,.08);
}
.pp-metric .value {
  font-size:30px;
  font-weight:900;
  color:var(--pp-slate-900);
  letter-spacing:-.04em;
}
.pp-metric .label {
  font-size:12px;
  color:var(--pp-slate-600);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.pp-metric .trend {
  font-size:12px;
  margin-top:8px;
  font-weight:800;
}
.pp-up { color:var(--pp-green); }
.pp-down { color:var(--pp-red); }
.pp-warn { color:var(--pp-amber); }
.pp-bullets-clean {
  list-style:none;
  padding:0;
  margin:16px 0 0;
}
.pp-bullets-clean li {
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin:10px 0;
  color:var(--pp-slate-700);
  font-size:16px;
  line-height:1.45;
}
.pp-slide.dark .pp-bullets-clean li { color:#DDE6FF; }
.pp-bullets-clean li::before {
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--pp-blue-500);
  margin-top:8px;
  flex:0 0 auto;
}
.pp-kpi-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
}
.pp-kpi-grid.two { grid-template-columns:repeat(2,1fr); }
.pp-kpi-grid.six { grid-template-columns:repeat(3,1fr); }
.pp-kpi-card {
  background:#fff;
  border:1px solid var(--pp-slate-200);
  border-radius:18px;
  padding:18px;
}
.pp-kpi-title {
  font-weight:900;
  color:#0F172A;
}
.pp-kpi-value {
  font-size:24px;
  font-weight:900;
  margin-top:6px;
  color:#0F172A;
}
.pp-gauge {
  height:8px;
  background:#E2E8F0;
  border-radius:99px;
  overflow:hidden;
  margin-top:12px;
}
.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); }
.pp-program {
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  align-items:start;
  border-bottom:1px solid var(--pp-slate-200);
  padding:14px 0;
}
.pp-program:last-child { border-bottom:0; }
.pp-program-title {
  font-weight:900;
  color:var(--pp-slate-900);
  font-size:17px;
}
.pp-program-meta {
  font-size:13px;
  color:var(--pp-slate-600);
  margin-top:4px;
}
.pp-status-dot {
  width:11px;
  height:11px;
  border-radius:50%;
  display:inline-block;
}
.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-project-card {
  border-left:5px solid var(--pp-blue-500);
  background:#FFFFFF;
  border-radius:16px;
  padding:16px 18px;
  border-top:1px solid var(--pp-slate-200);
  border-right:1px solid var(--pp-slate-200);
  border-bottom:1px solid var(--pp-slate-200);
  margin-bottom:12px;
}
.pp-project-card.green { border-left-color:var(--pp-green); }
.pp-project-card.amber { border-left-color:var(--pp-amber); }
.pp-project-card.red { border-left-color:var(--pp-red); }
.pp-project-name {
  font-weight:900;
  color:#0F172A;
}
.pp-project-data {
  margin-top:8px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  font-size:12px;
  color:#64748B;
}
.pp-project-data b { color:#0F172A; font-size:14px; }
.pp-table {
  width:100%;
  border-collapse:collapse;
  font-size:13px;
}
.pp-table th {
  text-align:left;
  color:#475569;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  padding:9px 8px;
  border-bottom:1px solid var(--pp-slate-200);
}
.pp-table td {
  padding:11px 8px;
  border-bottom:1px solid var(--pp-slate-200);
  color:#334155;
  font-weight:600;
  vertical-align:top;
}
.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:900; color:#0F172A; }
.pp-stackbar {
  height:18px;
  background:#E2E8F0;
  border-radius:99px;
  overflow:hidden;
  display:flex;
  margin-top:10px;
}
.pp-stackbar span { height:100%; }
.pp-stackbar .green { background:var(--pp-green); }
.pp-stackbar .amber { background:var(--pp-amber); }
.pp-stackbar .red { background:var(--pp-red); }
.pp-stackbar .blue { background:var(--pp-blue-500); }
.pp-bar-list { display:flex; flex-direction:column; gap:12px; }
.pp-bar-row { display:grid; grid-template-columns:180px 1fr 70px; gap:12px; align-items:center; }
.pp-bar-label {
  font-size:13px;
  color:var(--pp-slate-700);
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pp-bar-track {
  height:14px;
  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-bar-value {
  text-align:right;
  font-size:12px;
  font-weight:800;
  color:var(--pp-slate-700);
}
.pp-heatmap-shell {
  position:relative;
  padding-left:58px;
  padding-bottom:34px;
  margin-top:6px;
}
.pp-heatmap-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  grid-template-rows:repeat(5,54px);
  gap:6px;
}
.pp-heat-cell {
  border-radius:12px;
  position:relative;
}
.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-heatmap-overlay {
  position:absolute;
  left:58px;
  top:0;
  right:0;
  bottom:34px;
  pointer-events:none;
}
.pp-risk-bubble {
  position:absolute;
  width:30px;
  height:30px;
  margin-left:-15px;
  margin-top:-15px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#0F2A5A;
  color:#fff;
  border:3px solid #fff;
  box-shadow:0 8px 18px rgba(15,23,42,.25);
  font-size:11px;
  font-weight:800;
}
.pp-axis-label {
  position:absolute;
  font-size:11px;
  color:#64748B;
  font-weight:800;
}
.pp-axis-label.x { bottom:8px; }
.pp-axis-label.y {
  left:10px;
  transform:rotate(-90deg);
  transform-origin:left top;
  top:50%;
}
.pp-axis-label.top {
  top:-2px;
  left:58px;
  right:0;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:6px;
}
.pp-axis-label.top span,
.pp-axis-label.bottom span {
  text-align:center;
  display:block;
}
.pp-axis-label.bottom {
  left:58px;
  right:0;
  bottom:8px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:6px;
}
.pp-cashflow {
  display:flex;
  align-items:flex-end;
  height:196px;
  gap:10px;
  margin-top:18px;
  border-bottom:1px solid #CBD5E1;
  border-left:1px solid #CBD5E1;
  padding:0 8px 0 12px;
}
.pp-cf {
  flex:1;
  border-radius:10px 10px 0 0;
  background:linear-gradient(180deg,#3B82F6,#1E3A8A);
  min-height:8px;
  position:relative;
}
.pp-cf.neg { background:linear-gradient(180deg,#F87171,#DC2626); }
.pp-cf-label,
.pp-cf-value {
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
  pointer-events:none;
}
.pp-cf-label { bottom:-24px; color:#64748B; }
.pp-cf-value { top:-22px; color:#334155; font-weight:900; }
.pp-editable-block {
  margin-top:16px;
  padding:16px 18px;
  border-radius:18px;
  border:1px dashed rgba(59,130,246,.26);
  background:rgba(248,250,252,.92);
  min-height:112px;
  line-height:1.5;
}
.pp-editable-block[contenteditable="true"] { cursor:text; }
.pp-editable-block[contenteditable="true"]:focus {
  outline:2px solid rgba(59,130,246,.34);
  background:#fff;
}
.pp-slide.dark .pp-editable-block {
  background:rgba(255,255,255,.07);
  border-color:rgba(147,197,253,.24);
}
.pp-footer {
  position:absolute;
  bottom:14px;
  left:52px;
  right:52px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:16px;
  align-items:center;
  color:#64748B;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.pp-slide.dark .pp-footer { color:#8FA6D6; }
.pp-page-num { color:var(--pp-blue-600); }
.pp-slide.dark .pp-page-num { color:#93C5FD; }
.pp-cover-meta {
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  margin-top:24px;
}
.pp-cover-meta-item { color:#cbd5e1; font-size:12px; }
.pp-cover-meta-item strong {
  display:block;
  color:#fff;
  font-size:15px;
  margin-bottom:4px;
}
.pp-cover-logos { display:none !important; }
.pp-note {
  font-size:12px;
  color:var(--pp-slate-500);
  margin-top:10px;
}
.pp-placeholder {
  width:1280px;
  height:720px;
  border-radius:28px;
  background:linear-gradient(135deg,#0A1F44 0%,#17356d 100%);
  box-shadow:var(--pp-shadow);
  padding:54px 58px;
  color:#EAF2FF;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.pp-placeholder .pp-watermark { color:rgba(147,197,253,.10); }
.pp-placeholder h2 { color:#fff; font-size:54px; max-width:760px; }
.pp-placeholder p {
  max-width:640px;
  font-size:20px;
  line-height:1.55;
  color:#C8D7F4;
  margin-top:18px;
}
.pp-progress-overlay {
  display:none;
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.48);
  z-index:9999;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(5px);
}
.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; }
@media (max-width: 1420px) {
  .pp-panel-left, .pp-panel-right { width:288px; }
}
  .pp-slide, .pp-placeholder { width:min(1280px, calc(100vw - 388px)); }
}
@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); }
}
  .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); }
  .pp-slide, .pp-placeholder { width:calc(100vw - 72px); }
}
@media (max-width: 980px) {
  .pp-panel-left, .pp-panel-right { width:100%; }
}

@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, .pp-placeholder {
    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; }
}


/* ── Density levels (floor: body ≥13px, labels ≥11px) ── */
.pp-slide.pp-dense-1 {
  padding:32px 44px 30px;
}
.pp-slide.pp-dense-1 h1 { font-size:54px; }
.pp-slide.pp-dense-1 h2 { font-size:36px; }
.pp-slide.pp-dense-1 h3 { font-size:18px; margin-bottom:10px; }
.pp-slide.pp-dense-1 .pp-subtitle { font-size:16px; margin-top:10px; }
.pp-slide.pp-dense-1 .pp-panel { padding:16px; }
.pp-slide.pp-dense-1 .pp-panel.tight { padding:12px; }
.pp-slide.pp-dense-1 .pp-grid { gap:14px; }
.pp-slide.pp-dense-1 .pp-metrics { gap:10px; margin-top:16px; }
.pp-slide.pp-dense-1 .pp-metric { padding:12px; }
.pp-slide.pp-dense-1 .pp-metric .value { font-size:24px; }
.pp-slide.pp-dense-1 .pp-bullets-clean li { font-size:14px; margin:6px 0; }
.pp-slide.pp-dense-1 .pp-kpi-card { padding:12px; }
.pp-slide.pp-dense-1 .pp-kpi-value { font-size:20px; }
.pp-slide.pp-dense-1 .pp-editable-block { padding:12px 14px; min-height:80px; margin-top:10px; }
.pp-slide.pp-dense-1 .pp-project-card { padding:12px 14px; margin-bottom:8px; }
.pp-slide.pp-dense-1 .pp-table { font-size:13px; }
.pp-slide.pp-dense-1 .pp-table td { padding:8px 6px; }
.pp-slide.pp-dense-1 .pp-topbar { margin-bottom:10px; }
.pp-slide.pp-dense-1 .pp-footer { bottom:10px; }

.pp-slide.pp-dense-2 {
  padding:24px 36px 26px;
}
.pp-slide.pp-dense-2 h1 { font-size:48px; }
.pp-slide.pp-dense-2 h2 { font-size:30px; }
.pp-slide.pp-dense-2 h3 { font-size:16px; margin-bottom:8px; }
.pp-slide.pp-dense-2 .pp-subtitle { font-size:14px; margin-top:8px; }
.pp-slide.pp-dense-2 .pp-panel { padding:12px; }
.pp-slide.pp-dense-2 .pp-panel.tight { padding:10px; }
.pp-slide.pp-dense-2 .pp-grid { gap:10px; }
.pp-slide.pp-dense-2 .pp-metrics { gap:8px; margin-top:12px; }
.pp-slide.pp-dense-2 .pp-metric { padding:10px; }
.pp-slide.pp-dense-2 .pp-metric .value { font-size:22px; }
.pp-slide.pp-dense-2 .pp-metric .label { font-size:11px; }
.pp-slide.pp-dense-2 .pp-bullets-clean li { font-size:13px; margin:4px 0; line-height:1.35; }
.pp-slide.pp-dense-2 .pp-kpi-card { padding:10px; }
.pp-slide.pp-dense-2 .pp-kpi-title { font-size:12px; }
.pp-slide.pp-dense-2 .pp-kpi-value { font-size:18px; }
.pp-slide.pp-dense-2 .pp-editable-block { padding:10px 12px; min-height:64px; margin-top:8px; }
.pp-slide.pp-dense-2 .pp-project-card { padding:10px 12px; margin-bottom:6px; }
.pp-slide.pp-dense-2 .pp-project-name { font-size:13px; }
.pp-slide.pp-dense-2 .pp-project-data { font-size:11px; gap:4px; }
.pp-slide.pp-dense-2 .pp-project-data b { font-size:12px; }
.pp-slide.pp-dense-2 .pp-table { font-size:13px; }
.pp-slide.pp-dense-2 .pp-table th { font-size:11px; padding:6px; }
.pp-slide.pp-dense-2 .pp-table td { padding:6px; }
.pp-slide.pp-dense-2 .pp-bar-label { font-size:12px; }
.pp-slide.pp-dense-2 .pp-bar-value { font-size:11px; }
.pp-slide.pp-dense-2 .pp-topbar { margin-bottom:8px; }
.pp-slide.pp-dense-2 .pp-footer { bottom:8px; }
.pp-slide.pp-dense-2 .pp-heatmap-grid { grid-template-rows:repeat(5,42px); }
.pp-slide.pp-dense-2 .pp-cashflow { height:140px; }

/* ── Overflow banner ── */
.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; }

/* ── Present mode ── */
.pp-wrap.pp-presenting {
  --pp-scale: 1;
}
.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 {
  border:none;
  box-shadow:none;
  border-radius:0;
  min-height:100vh;
  background:#020617;
}
.pp-wrap.pp-presenting .pp-stage {
  position:fixed;
  inset:0;
  z-index:10000;
  padding:0;
  gap:0;
  background:#020617;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.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;
  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;
  backdrop-filter:blur(10px);
  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: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);
}

/* Export host (off-screen PDF clone) */
.pp-export-host {
  position:fixed;
  left:-10000px;
  top:0;
  width:1280px;
  pointer-events:none;
  opacity:0.01;
  z-index:-1;
}
.pp-export-host .pp-slide-wrapper {
  width:1280px;
  height:720px;
  margin:0;
}
.pp-export-host .pp-slide {
  transform:none;
  border-radius:0;
  box-shadow:none;
}
.pp-export-host .pp-slide-label { display:none; }
