.portal-proposito {
  min-width: 0;
  margin-block: 24px;
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--surface);
  color: var(--ink);
}
.portal-proposito .portal-kicker { margin-bottom: 12px; }
.portal-proposito-title {
  margin: 0 0 16px;
  font-family: var(--font-display);
  font-size: clamp(25px, 3.5vw, 32px);
  font-weight: 400;
  line-height: 1.2;
}
.portal-proposito-intro { font-size: 13px; line-height: 1.8; }
.portal-proposito-notice {
  margin-bottom: 24px;
  padding: 16px 18px;
  border-left: 3px solid var(--accent);
  border-radius: var(--radius);
  background: var(--sage);
}
.portal-proposito-notice p { margin: 0 0 10px; }
.portal-proposito-notice p:last-child { margin-bottom: 0; }
.portal-proposito-form { min-width: 0; }
.portal-proposito-field { margin-block: 20px; }
.portal-proposito-field label { font-weight: 600; line-height: 1.7; }
.portal-proposito-field select,
.portal-proposito-field textarea {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg);
  color: var(--ink);
  font: inherit;
  line-height: 1.7;
}
.portal-proposito-field textarea { min-height: 160px; resize: vertical; }
.portal-proposito-field textarea::placeholder { color: var(--muted); opacity: 1; }
.portal-proposito-field :is(select, textarea)[aria-invalid=true] { border-color: #f2aaa3; }
.portal-proposito-field p { margin: 2px 0 0; }
.portal-proposito-counter { text-align: right; font-variant-numeric: tabular-nums; }
.portal-proposito-errors {
  margin-bottom: 20px;
  padding: 14px 16px;
  border: 1px solid currentColor;
  border-radius: var(--radius);
  overflow-wrap: anywhere;
}
.portal-proposito-errors p { margin: 0 0 6px; color: inherit; }
.portal-proposito-errors ul { margin: 0; padding-left: 20px; }
.portal-proposito-limits { padding-top: 18px; border-top: 1px solid var(--border); }
.portal-proposito-status { margin-bottom: 0; color: var(--ink); }
.portal-proposito-actions { align-items: stretch; }
.portal-proposito-actions .button { min-height: 48px; white-space: normal; }
.portal-proposito :is(select, textarea, button):focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}
.portal-proposito [hidden] { display: none !important; }
@media (max-width: 600px) {
  .portal-proposito { padding: 18px; }
  .portal-proposito-notice { padding: 14px; }
  .portal-proposito-actions { flex-direction: column; }
  .portal-proposito-actions .button { width: 100%; padding-inline: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-proposito-actions .button { transition: none; }
}
