.a11y-form-submission-recovery {
  --a11y-form-submission-recovery-gap: 1rem;
  --a11y-form-submission-recovery-status-padding: 0.875rem;
  --a11y-form-submission-recovery-border-color: currentColor;
  --a11y-form-submission-recovery-background: transparent;
  --a11y-form-submission-recovery-success-color: #176b37;
  --a11y-form-submission-recovery-warning-color: #7a4d00;
  --a11y-form-submission-recovery-error-color: #a11a1a;
  --a11y-form-submission-recovery-focus-color: #005fcc;
  --a11y-form-submission-recovery-radius: 0.375rem;
  --_gap: var(--a11y-form-submission-recovery-gap, 1rem);
  --_status-padding:
    var(--a11y-form-submission-recovery-status-padding, 0.875rem);
  --_border-color:
    var(--a11y-form-submission-recovery-border-color, currentColor);
  --_background:
    var(--a11y-form-submission-recovery-background, transparent);
  --_focus-color:
    var(--a11y-form-submission-recovery-focus-color, #005fcc);

  display: grid;
  gap: var(--_gap);
}

.a11y-form-submission-recovery__feedback {
  display: grid;
  gap: calc(var(--_gap) / 2);
}

.a11y-form-submission-recovery__status:not(:empty) {
  padding: var(--_status-padding);
  border: 0.125rem solid var(--_border-color);
  border-radius: var(--a11y-form-submission-recovery-radius, 0.375rem);
  background: var(--_background);
}

.a11y-form-submission-recovery__retry,
.a11y-form-submission-recovery__restore button {
  min-block-size: 2.75rem;
  padding: 0.625rem 1rem;
  border: 0.125rem solid currentColor;
  border-radius: var(--a11y-form-submission-recovery-radius, 0.375rem);
  font: inherit;
  font-weight: 700;
  color: inherit;
  background: Canvas;
  cursor: pointer;
}

.a11y-form-submission-recovery__retry:focus-visible,
.a11y-form-submission-recovery__restore button:focus-visible {
  outline: 0.1875rem solid var(--_focus-color);
  outline-offset: 0.1875rem;
}

.a11y-form-submission-recovery__retry:disabled,
.a11y-form-submission-recovery__restore button:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

.a11y-form-submission-recovery__restore {
  display: grid;
  gap: calc(var(--_gap) / 2);
  padding: var(--_status-padding);
  border: 0.125rem dashed var(--_border-color);
  border-radius: var(--a11y-form-submission-recovery-radius, 0.375rem);
}

.a11y-form-submission-recovery__restore[hidden] {
  display: none;
}

.a11y-form-submission-recovery__support {
  display: grid;
  gap: calc(var(--_gap) / 2);
  padding: var(--_status-padding);
  border: 0.125rem solid var(--_border-color);
  border-radius: var(--a11y-form-submission-recovery-radius, 0.375rem);
}

.a11y-form-submission-recovery__support[hidden],
.a11y-form-submission-recovery__support-item[hidden] {
  display: none;
}

.a11y-form-submission-recovery__support-heading {
  margin: 0;
  font-size: 1.125rem;
}

.a11y-form-submission-recovery__support-list {
  display: grid;
  gap: calc(var(--_gap) / 2);
  margin: 0;
}

.a11y-form-submission-recovery__support-item {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr);
  gap: calc(var(--_gap) / 2);
}

.a11y-form-submission-recovery__support-term {
  font-weight: 700;
}

.a11y-form-submission-recovery__support-value {
  margin: 0;
  overflow-wrap: anywhere;
}

.a11y-form-submission-recovery--compact {
  --a11y-form-submission-recovery-gap: 0.625rem;
  --a11y-form-submission-recovery-status-padding: 0.625rem;
}

.is-initialized {
  isolation: isolate;
}

.is-submitting .a11y-form-submission-recovery__status,
.is-retrying .a11y-form-submission-recovery__status {
  border-style: dashed;
  font-weight: 700;
}

.is-succeeded .a11y-form-submission-recovery__status {
  border-color:
    var(--a11y-form-submission-recovery-success-color, #176b37);
}

.has-validation-failed .a11y-form-submission-recovery__status,
.is-offline .a11y-form-submission-recovery__status {
  border-color:
    var(--a11y-form-submission-recovery-warning-color, #7a4d00);
  border-style: double;
}

.has-network-failed .a11y-form-submission-recovery__status,
.has-server-failed .a11y-form-submission-recovery__status {
  border-color:
    var(--a11y-form-submission-recovery-error-color, #a11a1a);
  border-style: double;
}

@media (forced-colors: active) {
  .a11y-form-submission-recovery__status:not(:empty),
  .a11y-form-submission-recovery__retry,
  .a11y-form-submission-recovery__restore,
  .a11y-form-submission-recovery__support,
  .a11y-form-submission-recovery__restore button {
    border-color: CanvasText;
  }

  .a11y-form-submission-recovery__retry:focus-visible,
  .a11y-form-submission-recovery__restore button:focus-visible {
    outline-color: Highlight;
  }
}

@media (max-width: 30rem) {
  .a11y-form-submission-recovery__support-item {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .a11y-form-submission-recovery *,
  .a11y-form-submission-recovery *::before,
  .a11y-form-submission-recovery *::after {
    animation-duration: 0.001ms;
    animation-iteration-count: 1;
    scroll-behavior: auto;
    transition-duration: 0.001ms;
  }
}
