.report-visual {
  margin: 1.5rem 0;
  padding: 1rem;
  border: 1px solid #e5e5ea;
  border-radius: 12px;
  background: #fff;
  color: #1d1d1f;
  break-inside: avoid;
}

.report-visual figcaption strong { font-size: 1rem; }
.report-visual figcaption p { margin: 0.5rem 0; font-size: 0.9rem; }
.report-visual svg { display: block; width: 100%; height: auto; overflow: visible; }
.report-visual [data-feature] { transition: opacity 100ms; }
.report-visual [data-feature]:hover,
.report-visual [data-feature]:focus { opacity: 0.7; stroke: #1d1d1f; stroke-width: 2; outline: none; }
.report-visual summary { cursor: pointer; font-size: 0.85rem; padding: 0.5rem 0; }
.report-visual table { display: table; width: 100%; min-width: 0; border-collapse: collapse; font-size: 0.8rem; }
.report-visual th,
.report-visual td { padding: 0.4rem; border-bottom: 1px solid #e5e5ea; text-align: start; overflow-wrap: anywhere; }
.report-visual th { width: 30%; font-weight: 600; }
.report-visual small { display: block; margin-top: 0.7rem; font-size: 0.7rem; color: #6e6e73; }
.report-visual-error { padding: 1rem; border: 1px solid #d2d2d7; border-radius: 12px; }

@media print {
  .report-visual details > :not(summary) { display: block; }
  .report-visual summary { display: none; }
}
