.ip-intro {
  max-width: var(--reading-max);
  margin-inline: auto;
  margin-bottom: 32px;
}
.ip-intro h1 { margin-top: 24px; }
.ip-intro > p { font-size: var(--text-lede); }
.ip-result {
  max-width: var(--reading-max);
  margin-inline: auto;
}
.ip-result-body { padding: 32px; }
.ip-result-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.ip-result-heading h2 { margin: 0; }
.ip-status { color: var(--muted); }
.ip-status.is-error { color: var(--error); }
.ip-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 24px 0 0;
}
.ip-fields > * { min-width: 0; }
.ip-field {
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: var(--r-md);
  background: var(--panel-2);
}
.ip-field-main {
  grid-column: 1 / -1;
  background: var(--accent-wash);
  border-color: var(--accent-line);
}
.ip-field dt {
  color: var(--muted);
  font-size: var(--text-sm);
  margin-bottom: 8px;
}
.ip-field dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-weight: var(--weight-bold);
}
.ip-field-main dd {
  color: var(--accent-dark);
  font-size: var(--text-h3);
}
.ip-copy-status {
  min-height: 1.6em;
  margin: 16px 0 8px;
  color: var(--accent-dark);
  font-size: var(--text-sm);
}
.ip-result-note { margin: 0; font-size: var(--text-sm); }
.ip-checklist { padding-left: 24px; }
.ip-checklist li { padding-left: 4px; margin-bottom: 20px; }
.ip-checklist strong { color: var(--accent-dark); }
@media (max-width: 640px) {
  .ip-result-body { padding: 22px; }
  .ip-fields { grid-template-columns: minmax(0, 1fr); }
  .ip-field { padding: 16px; }
  .ip-result .cta-row { align-items: stretch; }
  .ip-result .cta-row .btn { flex: 1 1 auto; }
}