@use 'sass:color';

.replace-file-input {
  display: inline-block;
  position: relative;
  overflow: hidden;
  padding-bottom: 2px;

  [type='file'] {
    padding: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    inset-inline-end: 0;
    direction: ltr;
    width: auto;
    display: block;
    font-size: 5em;

    &:hover {
      cursor: pointer;
    }
  }

  &:hover {
    cursor: pointer;

    button {
      background-color: theme('colors.surface-button-hover');
    }
  }
}

.upload-list {
  > li {
    padding: 1em;
  }

  .left {
    text-align: center;
    word-break: break-all;
  }

  .preview {
    width: 150px;
    min-height: 150px;
    display: block;
    position: relative;
    text-align: center;
    max-width: 100%;
    margin: auto;
  }

  .progress,
  .thumb,
  .thumb .icon,
  canvas,
  img {
    position: absolute;
    max-width: 100%;
  }

  .progress {
    box-shadow: 0 0 5px 2px theme('colors.white-50');
    z-index: 4;
    top: 60%;
    inset-inline-start: 20%;
    inset-inline-end: 20%;
    width: 60%;
  }

  .thumb {
    top: 0;
    inset-inline-end: 0;
    bottom: 0;
    inset-inline-start: 0;
    z-index: 1;
    width: 100%;
  }

  .thumb .icon,
  canvas,
  img {
    inset-inline-start: 0;
    inset-inline-end: 0;
    top: 0;
    bottom: 0;
    margin: auto;
  }

  .thumb .icon {
    z-index: 2;
    top: 0;
    width: 1em;
    font-size: 10em;
    line-height: 1.4em;
    color: theme('colors.icon-secondary');
  }

  canvas,
  img {
    z-index: 3;
  }

  .hasthumb {
    .icon {
      display: none;
    }
  }

  .status-msg {
    display: none;
  }

  .upload-complete {
    .progress {
      opacity: 0;
    }
  }

  .upload-success {
    .status-msg.success {
      display: block;
    }
  }

  .upload-duplicate {
    display: flex;
    align-items: center;

    .status-msg.warning {
      display: block;
    }
  }

  .upload-failure {
    border-color: theme('colors.critical.200');

    .preview {
      display: none;
    }

    .status-msg.failure {
      display: block;
    }
  }

  .upload-server-error {
    border-color: theme('colors.critical.200');

    .preview {
      display: none;
    }

    .status-msg.server-error {
      display: block;
    }
  }
}

.confirm-duplicate-upload {
  display: flex;
  flex-direction: column;
  align-items: center;

  figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin: 1rem auto;

    img {
      position: relative;
    }
  }

  form {
    display: inline;
  }
}
