@layer components {
  /* Validation summary — error list displayed at top of detail forms. */
  .app-details-errors {
    padding-block-start: 1rem;
  }

  .app-details-validation-summary {
    --app-validation-summary-border-color: var(--app-notice-error-border-color);
    --app-validation-summary-background-color: var(--app-notice-error-background-color);
    --app-validation-summary-title-color: var(--app-notice-error-color);
    --app-validation-summary-link-color: var(--app-contrast);
    margin: 0;
    border: 1px solid var(--app-validation-summary-border-color);
    border-left-width: 4px;
    border-radius: var(--app-border-radius);
    background: var(--app-validation-summary-background-color);
    padding: calc(var(--app-spacing) * 0.75) calc(var(--app-spacing) * 1);
    color: var(--app-color);
    display: grid;
    gap: calc(var(--app-spacing) * 0.55);
  }

  .app-details-validation-summary:focus-visible {
    outline: 2px solid var(--app-validation-summary-border-color);
    outline-offset: 2px;
  }

  .app-details-validation-summary-title {
    margin: 0;
    font-weight: var(--font-semibold);
    color: var(--app-validation-summary-title-color);
  }

  .app-details-validation-summary-list {
    margin: 0;
    padding-left: 1.1rem;
    display: grid;
    gap: calc(var(--app-spacing) * 0.35);
  }

  .app-details-validation-summary-list li {
    margin: 0;
    list-style: disc;
  }

  .app-details-validation-summary-link {
    color: var(--app-validation-summary-link-color);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
    transition: color 120ms ease;
  }

  .app-details-validation-summary-link:hover,
  .app-details-validation-summary-link:focus-visible {
    color: var(--app-validation-summary-title-color);
  }
}
