.pnt-upload {
  display: inline-block;

  // TDesign Upload custom 触发器外层
  .pnt-upload__trigger {
    display: inline-block;
    cursor: pointer;
  }

  // 错误文案（图片 / 文件模式共用）
  .pnt-upload__error {
    margin: 4px 0 0;
    color: var(--td-error-color, #d54941);
    font-size: 12px;
    line-height: 20px;
  }

  &--disabled {
    .pnt-upload__trigger {
      cursor: not-allowed;
    }
  }

  // ========== 文件模式 ==========
  .pnt-upload-file {
    box-sizing: border-box;
    min-width: 320px;
    padding: 12px 16px;
    border: 1px dashed var(--td-component-border, #dcdcdc);
    border-radius: var(--td-radius-default, 6px);
    background-color: var(--td-bg-color-container, #fff);
    transition: border-color 0.2s;

    &:hover {
      border-color: var(--td-brand-color, #165dff);
    }

    &__row {
      display: flex;
      align-items: center;
      gap: 8px;
      color: var(--td-text-color-primary, #1f2329);
      font-size: 14px;
      line-height: 22px;

      &--empty {
        justify-content: flex-start;
        color: var(--td-text-color-secondary, #6b7280);
      }

      &--progress {
        align-items: center;
      }
    }

    &__icon {
      flex: none;
      font-size: 20px;
      color: var(--td-text-color-secondary, #6b7280);
    }

    &__name {
      flex: 1;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }

    &__delete {
      flex: none;
      font-size: 18px;
      color: var(--td-text-color-secondary, #6b7280);
      cursor: pointer;

      &:hover {
        color: var(--td-error-color, #d54941);
      }
    }

    &__progress {
      flex: 1;
      min-width: 0;
    }

    &__percent {
      flex: none;
      color: var(--td-text-color-secondary, #6b7280);
      font-size: 12px;
    }
  }

  &--disabled {
    .pnt-upload-file {
      background-color: var(--td-bg-color-component-disabled, #f3f3f3);

      &:hover {
        border-color: var(--td-component-border, #dcdcdc);
      }
    }
  }
}
