@layer vuetify-components {
  /* region BLOCK */
  .v-text-field input {
    color: inherit;
    flex: 1;
    transition: 0.15s opacity cubic-bezier(0.4, 0, 0.2, 1);
    min-width: 0;
  }
  .v-text-field input:focus, .v-text-field input:active {
    outline: none;
  }
  .v-text-field input:invalid {
    box-shadow: none;
  }
  .v-text-field .v-field {
    cursor: text;
  }
  .v-text-field--prefixed.v-text-field .v-field:not(.v-field--reverse) .v-field__input {
    --v-field-padding-start: 6px;
  }
  .v-text-field--suffixed.v-text-field .v-field:not(.v-field--reverse) .v-field__input {
    --v-field-padding-end: 0;
  }
  .v-text-field--prefixed.v-text-field .v-field.v-field--reverse .v-field__input {
    --v-field-padding-end: 6px;
  }
  .v-text-field--suffixed.v-text-field .v-field.v-field--reverse .v-field__input {
    --v-field-padding-start: 0;
  }
  .v-text-field .v-field:not(.v-field--no-label, .v-field--active) input::placeholder {
    opacity: 0;
  }
  .v-text-field .v-field--single-line input {
    transition: none;
  }
  /* endregion */
  /* region ELEMENTS */
  .v-text-field__prefix, .v-text-field__suffix {
    align-items: center;
    color: color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-medium-emphasis-opacity) * 100%), transparent);
    cursor: default;
    display: flex;
    opacity: 0;
    transition: inherit;
    white-space: nowrap;
    min-height: max(var(--v-input-control-height, 56px), 1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));
    padding-top: calc(var(--v-field-padding-top, 4px) + var(--v-input-padding-top, 0));
    padding-bottom: var(--v-field-padding-bottom, 6px);
  }
  .v-field--active .v-text-field__prefix, .v-field--active .v-text-field__suffix {
    opacity: 1;
  }
  .v-field--disabled .v-text-field__prefix, .v-field--disabled .v-text-field__suffix {
    color: color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-disabled-opacity) * 100%), transparent);
  }
  .v-field:not(.v-field--reverse) .v-text-field__prefix {
    padding-inline-start: var(--v-field-padding-start);
  }
  .v-field.v-field--reverse .v-text-field__prefix {
    padding-inline-end: var(--v-field-padding-end);
  }
  .v-field:not(.v-field--reverse) .v-text-field__suffix {
    padding-inline-end: var(--v-field-padding-end);
  }
  .v-field.v-field--reverse .v-text-field__suffix {
    padding-inline-start: var(--v-field-padding-start);
  }
  /* endregion */
}