.psu-upload,
.ps-standard-upload {
  border-top: 1px solid var(--color-border);
  min-width: 0;
}

.psu-saved,
.psu-field,
.ps-file-upload-field {
  min-width: 0;
  padding: 16px;
}

.psu-section-heading,
.psu-field,
.ps-file-upload-field,
.psu-attachment-row,
.ps-attachment-list__item,
.psu-file-actions,
.ps-attachment-list__actions,
.psu-field-copy,
.ps-file-upload-field__copy,
.psu-version-history > summary {
  align-items: center;
  display: flex;
}

.psu-section-heading,
.psu-field,
.ps-file-upload-field,
.psu-attachment-row,
.ps-attachment-list__item {
  gap: 16px;
  justify-content: space-between;
}

.psu-section-heading {
  margin-bottom: 10px;
}

.psu-saved ul,
.ps-attachment-list,
.ps-upload-queue__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.psu-attachment-row,
.ps-attachment-list__item {
  border-top: 1px solid var(--color-border);
  min-height: 62px;
}

.psu-file-icon,
.ps-attachment-list__icon,
.psu-field-icon,
.ps-file-upload-field__icon {
  color: var(--color-primary);
  flex: 0 0 auto;
}

.psu-file-main,
.ps-attachment-list__content {
  display: grid;
  flex: 1 1 auto;
  gap: 4px;
  min-width: 0;
}

.psu-file-main strong,
.ps-attachment-list__content strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.psu-file-main span,
.ps-attachment-list__content span,
.psu-field-copy span,
.ps-file-upload-field__copy span,
.psu-instructions,
.ps-file-upload-field__instructions,
.psu-empty,
.ps-attachment-list__empty,
.psu-readonly,
.ps-file-upload-field__readonly {
  color: var(--color-text-muted);
  font-size: var(--font-size-label);
}

.psu-file-actions,
.ps-attachment-list__actions {
  flex: 0 0 auto;
  gap: 8px;
}

.psu-field,
.ps-file-upload-field {
  background: var(--color-surface-muted);
  border-top: 1px solid var(--color-border);
  outline: 0;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.psu-field.is-busy,
.ps-file-upload-field.is-busy {
  opacity: 0.72;
}

.ps-file-upload-field.is-drag-active {
  background: #eef6ff;
  border-color: #3b82f6;
  box-shadow: inset 0 0 0 2px rgb(59 130 246 / 22%);
}

.ps-file-upload-field.is-error {
  background: #fff8f7;
  border-color: #dc6b63;
}

.ps-file-upload-field.is-compact {
  padding-block: 9px;
}

.psu-field-copy,
.ps-file-upload-field__copy {
  gap: 12px;
  min-width: 0;
}

.psu-field-copy > div,
.ps-file-upload-field__copy > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.psu-version-history {
  border-top: 1px solid var(--color-border);
}

.psu-version-history > summary {
  color: var(--color-primary-hover);
  cursor: pointer;
  font-size: var(--font-size-label);
  font-weight: var(--font-weight-semibold);
  gap: 8px;
  min-height: 44px;
  width: fit-content;
}

.psu-version-history > summary::marker {
  color: var(--color-text-muted);
}

.psu-instructions,
.ps-file-upload-field__instructions,
.psu-readonly,
.ps-file-upload-field__readonly {
  margin: 0;
  padding: 0 16px 14px;
}

.psu-empty,
.ps-attachment-list__empty {
  align-items: center;
  border-top: 1px solid var(--color-border);
  display: flex;
  margin: 0;
  min-height: 52px;
}

.ps-upload-queue {
  border-top: 1px solid var(--color-border);
  min-width: 0;
  padding: 12px 16px 16px;
}

.ps-upload-queue__list {
  display: grid;
  gap: 8px;
}

.ps-upload-queue__item {
  align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: 6px;
  display: grid;
  gap: 10px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  padding: 10px 12px;
}

.ps-upload-queue__item.is-error {
  background: #fff8f7;
  border-color: #efb2ad;
}

.ps-upload-queue__item.is-success {
  background: #f4fbf6;
  border-color: #b8dfc2;
}

.ps-upload-queue__icon {
  color: var(--color-text-muted);
  display: inline-flex;
}

.ps-upload-queue__content {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.ps-upload-queue__heading {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: space-between;
  min-width: 0;
}

.ps-upload-queue__heading strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ps-upload-queue__status,
.ps-upload-queue__meta {
  color: var(--color-text-muted);
  font-size: var(--font-size-label);
  white-space: nowrap;
}

.ps-upload-queue__message {
  color: var(--color-text-muted);
  font-size: var(--font-size-label);
  margin: 0;
}

.ps-upload-queue__progress {
  background: var(--color-border);
  border-radius: 999px;
  height: 4px;
  overflow: hidden;
}

.ps-upload-queue__progress span {
  background: var(--color-primary);
  display: block;
  height: 100%;
  transition: width 160ms ease;
}

.ps-upload-queue__actions {
  align-items: center;
  display: flex;
  gap: 6px;
}

@media (max-width: 720px) {
  .psu-field,
  .ps-file-upload-field,
  .psu-attachment-row,
  .ps-attachment-list__item {
    align-items: stretch;
    flex-direction: column;
  }

  .psu-file-actions,
  .ps-attachment-list__actions {
    width: 100%;
  }

  .psu-file-actions > button,
  .ps-attachment-list__actions > button,
  .psu-field > button,
  .ps-file-upload-field > button {
    flex: 1 1 auto;
    min-height: 44px;
  }

  .ps-upload-queue__item {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .ps-upload-queue__actions {
    grid-column: 1 / -1;
    justify-content: flex-end;
  }
}
