input, select, textarea {
  font-size: 16px;
  padding: 11px 16px 11px 20px;
  border: 2px solid var(--shadow);
  background-color: white;
  border-radius: 6px;
  appearance: none;
  
  &::placeholder {
    color: var(--text-placeholder);
  }

  &.is-invalid {
    border-color: var(--danger);
  }

  &:focus-visible {
    outline: none;
    border: 2px solid var(--secondary);
  }
}

input[type="checkbox"] {
  width: 20px;
  height: 20px;
  border: 2px solid var(--shadow);
  border-radius: 6px;
  appearance: none;

  &:checked {
    background-color: var(--secondary); 

    &:after {
      content: '';
      display: block;
      width: 10px;
      height: 10px;
      background-color: white;
      border-radius: 2px;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
  }
}

input[type="file"] {
  padding: 0;
  border: none;
  border-radius: 0;
}

select {
  background-image: url('data:image/svg+xml;utf8,<svg fill="none" width="12" height="12" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke="lightgray"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="4" d="M19 9l-7 7-7-7"></path></svg>');
  background-repeat: no-repeat;
  background-position: right 10px top 50%;
  padding-right: 30px;
}

.invalid-feedback {
  position: absolute;
  bottom: -13px;
  right: 4px;
  color: var(--danger);
  font-size: 12px;
}

[data-datasource-target="exportButton"] {
  display: flex; 
  justify-content: center;
  flex-direction: column;
}