@layer sok.popup {
  .popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 10001;
    display: flex;
    flex-flow: column;
    gap: var(--padding, 16px);
    padding: 25px;
    max-width: 420px;
    width: min(90vw, 420px);
    box-sizing: border-box;
    background-color: white;
  }

  .popup.hidden,
  #popup-overlay.hidden {
    display: none !important;
  }

  .popup,
  .popup form {
    display: flex;
    flex-flow: column;
    gap: var(--padding, 16px);
  }

  #popup-overlay {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.55);
    z-index: 10000;
    display: block;
  }

  .popup .close,
  .popup .close-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    transform: rotate(45deg);
    font-weight: 700;
    font-size: 24px;
    color: inherit;
    cursor: pointer;
    opacity: 1;
    user-select: none;
  }

  .popup form .input-group {
    display: flex;
    gap: var(--padding-xs, 8px);
  }

  .popup form .input-group * {
    margin-block: auto;
  }

  .popup form input,
  .popup form select,
  .popup form textarea {
    border-radius: var(--border-radius-sm, 6px);
    padding: 0.25em 0.5em;
    border: 1px solid var(--platinum, #d9d9d9);
    outline: 1px solid transparent;
    outline-color: var(--platinum, #d9d9d9);
    outline-offset: 0;
  }

  .popup form :is(input, select, textarea):is(:focus, :focus-visible, :focus-within) {
    outline-color: var(--platinum, #d9d9d9);
    border-color: var(--platinum, #d9d9d9);
  }

  .popup.idle {
    display: flex;
    flex-flow: column;
    gap: 36px;
    min-height: 300px;
    justify-content: space-between;
  }
}
