.ppt-preview-hero,
.ppt-preview-frame,
.ppt-preview-empty {
  border: 1px solid var(--obs-line);
  border-radius: var(--momo-radius-lg, 8px);
  background:
    radial-gradient(circle, rgba(45, 40, 32, 0.08) 1px, transparent 1.2px),
    var(--obs-card);
  background-size: 10px 10px, auto;
  box-shadow: var(--momo-shadow-md, 0 16px 38px rgba(70, 46, 28, 0.08));
}

.ppt-preview-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--momo-space-4, 16px);
  padding: var(--momo-space-5, 24px);
}

.ppt-preview-kicker {
  color: var(--obs-accent);
  font-size: var(--momo-text-caption, 12px);
  font-weight: var(--momo-font-weight-bold, 700);
  letter-spacing: 0;
}

.ppt-preview-title {
  margin: var(--momo-space-2, 8px) 0 var(--momo-space-1, 4px);
  color: var(--obs-ink);
  font-family: var(--momo-font-display, "Inter", "Noto Sans TC", system-ui, sans-serif);
  font-size: var(--momo-text-headline, 22px);
  line-height: var(--momo-line-height-tight, 1.08);
  letter-spacing: 0;
  overflow-wrap: anywhere;
}

.ppt-preview-subtitle,
.ppt-preview-note {
  color: var(--obs-muted);
}

.ppt-preview-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--momo-space-2, 8px);
}

.ppt-preview-frame {
  height: min(76vh, 920px);
  min-height: 560px;
  margin-top: var(--momo-space-4, 16px);
  overflow: hidden;
}

.ppt-preview-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #fff;
}

.ppt-preview-empty {
  margin-top: var(--momo-space-4, 16px);
  padding: var(--momo-space-5, 24px);
}

.ppt-preview-empty h2 {
  margin: var(--momo-space-2, 8px) 0;
  color: var(--obs-ink);
  font-size: var(--momo-text-title, 18px);
  font-weight: var(--momo-font-weight-black, 800);
}

.ppt-preview-diagnostics {
  display: flex;
  flex-wrap: wrap;
  gap: var(--momo-space-2, 8px);
  margin-top: var(--momo-space-3, 12px);
}

.ppt-preview-diagnostics span {
  padding: var(--momo-space-1, 4px) var(--momo-space-2, 8px);
  border: 1px solid var(--obs-line);
  border-radius: 999px;
  color: var(--obs-muted);
  background: rgba(255, 255, 255, 0.58);
  font-size: var(--momo-text-caption, 12px);
}

.status-good {
  color: var(--obs-green);
}

@media (max-width: 760px) {
  .ppt-preview-hero {
    flex-direction: column;
  }

  .ppt-preview-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .ppt-preview-frame {
    height: 70vh;
    min-height: 420px;
  }
}
