dialog {
  border: none;
  border-radius: 4px;
  overflow: hidden;
  max-width: 50ch;
  margin: auto;
  padding: 0;

  /*  display: flex; */
  flex-direction: column;

  &::backdrop {
    background: black;
    opacity: 0.2;
  }

  & fieldset {
    margin: 0 !important;
  }

  & form,
  & div.modal-content {
    display: flex;
    flex-direction: column;
    flex: 1;
    max-height: 80vh;

    & .illustration {
      & svg {
        max-height: 4.625rem;
        width: 100%;
        margin: 2rem 0;

        &.svg--dark {
          display: none;
        }
      }
    }
  }

  & section {
    padding: 1rem;

    &.tight {
      padding: 0;
    }
  }

  & header {
    align-items: center;

    &:has(p) {
      align-items: start;
    }

    & p.hint {
      margin-bottom: 0;
    }

    border-bottom: 1px solid var(--light-gray);
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
    margin-bottom: 0;

    & h2 {
      flex: 1;

      &:has(+ p) {
        margin-bottom: 0;
      }
    }

    & .btn {
      border-color: transparent;
    }
  }

  & main {
    flex: 1;
    height: 0;
    padding: 1rem;
    overflow-y: auto;
  }

  & footer {
    border-top: 1px solid var(--light-gray);
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: flex-end;
    margin: 0;
    padding: 1rem;
  }

  @media (width >= 768px) {
    min-width: 50ch;

    &.wide-60 {
      min-width: 60ch;
      max-width: 60ch;
    }

    &.wide {
      min-width: 80ch;
      max-width: 80ch;
    }
  }
}

dialog[open] {
  display: flex;
}
