@use './variables' as vars;
@use './mixins' as mix;

.gm-form {
  display: flex;
  flex-direction: column;
  gap: 20px;

  &-block {
    .gm-label {
      margin-top: 0;
    }
  }

  &-actions {
    width: 100%;
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
}

.gm-form-field {
  --mat-typography-caption-line-height: 0;
  --mat-form-field-container-text-size: 14px;
  --mat-form-field-container-text-weight: 500;
  --mat-form-field-container-text-tracking: 0;

  width: calc(100% - 2px);
  margin-left: 1px;
  margin-right: 1px;
  font-weight: 500;
  line-height: 20px;
  display: block !important;

  @include mix.tablet {
    --mat-form-field-container-text-size: 15px;
    line-height: 22px;
  }

  .mat-mdc-form-field-error-wrapper {
    position: static !important;
  }

  .mat-mdc-form-field-bottom-align {
    &::before {
      display: none;
    }
  }

  .mat-mdc-form-field-flex {
    background: var(--field-color) !important;
    border: 1px solid var(--field-border-color) !important;
    box-sizing: border-box !important;
    border-radius: 10px !important;
    align-items: center !important;
    gap: 8px !important;

    height: 46px;
    padding: 12px 20px 12px 20px !important;

    min-height: 46px;
    height: 46px;

    @include mix.tablet {
      height: 50px;
    }

    .mat-mdc-form-field-infix {
      line-height: 22px;
      border: 0 !important;
      padding: 0 !important;
      display: flex;
      align-items: center;
    }

    .mat-mdc-select-trigger {
      padding: 0 !important;
    }
  }

  .mat-mdc-form-field-focus-overlay {
    background-color: transparent;
  }

  &.mat-mdc-form-field-type-mat-date-range-input {
    .mat-mdc-form-field-flex {
      padding-right: 12px !important;
    }
  }

  &.mat-mdc-form-field-type-mat-input, &.mat-mdc-form-field-type-mat-select, &.mat-mdc-form-field-type-mat-date-range-input {
    &.mat-form-field-disabled {
      .mat-mdc-form-field-flex {
        background: var(--field-color--disabled) !important;
      }
    }

    &:not(.mat-form-field-disabled) {
      .mat-mdc-form-field-flex:hover {
        border: 1px solid var(--field-border-color--hover) !important;
      }
    }

    &.mat-focused {
      .mat-mdc-form-field-flex {
        border: 1px solid var(--field-border-color-input--focus) !important;
        box-shadow: 0 0 0 1px var(--field-border-color-input--focus) !important;

        &:hover {
          border: 1px solid var(--field-border-color-input--focus) !important;
        }
      }
    }
  }

  .mat-form-field-outline {
    color: var(--field-border-color);
  }

  &.gm-form-textarea {
    .mat-mdc-form-field-flex {
      height: auto !important;
    }
  }
}


.mdc-text-field {
  padding: 0 !important;
  overflow: visible !important;
  &--filled {
    background-color: transparent !important;
  }
  .mat-mdc-form-field-infix {
    min-height: auto !important;
    padding: 0 !important;
  }

  .mdc-line-ripple {
    &::before, &::after {
      border-bottom-width: 0 !important;
    }
  }
}
