:root {
  --km-control-height: 28px;
  --km-control-border: #dee1e6;
  --km-control-border-focus: #0668d0;
  --km-control-border-invalid: #f44336;
  --km-control-background: #fff;
  --km-control-background-disabled: #f0f2f5;
  --km-control-radius: 4px;
  --km-control-padding-inline: 8px;
  --km-control-text: #212429;
  --km-control-placeholder: #a3acb2;
}

.km-control,
form input:not([type]):not(.e-input):not(.e-dropdownbase),
form input:is(
  [type="text"],
  [type="search"],
  [type="password"],
  [type="email"],
  [type="url"],
  [type="number"],
  [type="date"],
  [type="time"],
  [type="datetime-local"],
  [type="tel"]
):not(.e-input):not(.e-dropdownbase):not([data-km-tag-input]),
form select {
  background-color: var(--km-control-background) !important;
  border: 1px solid var(--km-control-border) !important;
  border-radius: var(--km-control-radius) !important;
  box-sizing: border-box !important;
  color: var(--km-control-text);
  height: var(--km-control-height) !important;
  line-height: normal;
  max-height: var(--km-control-height) !important;
  min-height: var(--km-control-height) !important;
  padding-block: 0 !important;
  padding-inline: var(--km-control-padding-inline) !important;
}

/* Reserve space for the icon helpers after the generic input padding rule. */
form input.input-con-icono:not(.e-input):not(.e-dropdownbase):not([data-km-tag-input]) {
  padding-left: 30px !important;
}

form input.input-con-icono-derecha:not(.e-input):not(.e-dropdownbase):not([data-km-tag-input]) {
  padding-right: 30px !important;
}

.km-control--block {
  display: block;
  width: 100%;
}

.input > .km-control {
  width: 100%;
}

.km-control.input-con-icono {
  padding-left: 30px !important;
}

.km-control.input-con-icono-derecha {
  padding-right: 30px !important;
}

.km-control::placeholder,
form input::placeholder,
form textarea::placeholder {
  color: var(--km-control-placeholder);
  opacity: 1;
}

.km-control:focus,
form input:not([type]):not(.e-input):focus,
form input:is(
  [type="text"],
  [type="search"],
  [type="password"],
  [type="email"],
  [type="url"],
  [type="number"],
  [type="date"],
  [type="time"],
  [type="datetime-local"],
  [type="tel"]
):not(.e-input):not(.e-dropdownbase):not([data-km-tag-input]):focus,
form select:focus,
.km-textarea:focus,
form textarea:focus {
  border-color: var(--km-control-border-focus) !important;
  outline: 1px solid var(--km-control-border-focus) !important;
  outline-offset: 0;
}

.km-control:disabled,
.km-control[readonly],
form input:disabled,
form input[readonly],
form select:disabled,
form textarea:disabled,
form textarea[readonly] {
  background-color: var(--km-control-background-disabled) !important;
  cursor: not-allowed;
}

.km-control[aria-invalid="true"],
.km-textarea[aria-invalid="true"] {
  border-color: var(--km-control-border-invalid) !important;
}

.km-textarea,
form textarea {
  background-color: var(--km-control-background);
  border: 1px solid var(--km-control-border);
  border-radius: var(--km-control-radius);
  box-sizing: border-box;
  color: var(--km-control-text);
  min-height: 77px;
  padding: 7px var(--km-control-padding-inline);
}

.km-field {
  min-width: 0;
}

.km-field__label {
  align-items: baseline;
  display: flex !important;
  gap: 3px !important;
  margin-bottom: 3px;
  min-width: 0;
}

.km-field__label > span:first-child {
  min-width: 0;
}

.km-field__required {
  color: var(--km-control-border-invalid);
  flex: 0 0 auto;
  white-space: nowrap;
}

form label.requerido::after {
  display: inline;
  white-space: nowrap;
}

.km-password {
  display: block;
  position: relative;
  width: 100%;
}

.km-control--with-action {
  padding-right: 30px !important;
}

.km-password__toggle {
  align-items: center;
  background: transparent;
  border: 0;
  cursor: pointer;
  display: flex;
  height: var(--km-control-height);
  justify-content: center;
  padding: 0;
  position: absolute;
  right: 4px;
  top: 0;
  width: 24px;
}

.km-password__toggle:focus-visible {
  outline: 2px solid var(--km-control-border-focus);
  outline-offset: -2px;
}

input[type="date"],
input[type="datetime-local"] {
  color-scheme: light;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  background: transparent;
  border: 0;
  cursor: pointer;
  height: 16px;
  margin: 0;
  padding: 2px;
  width: 16px;
}

.e-combobox,
.e-multiselect,
.e-input-group.e-control-wrapper {
  border-color: var(--km-control-border) !important;
  border-radius: var(--km-control-radius) !important;
  box-sizing: border-box !important;
  height: var(--km-control-height) !important;
  max-height: var(--km-control-height) !important;
  min-height: var(--km-control-height) !important;
}

.e-input-group.e-input-focus,
.e-input-group.e-control-wrapper.e-input-focus {
  border-color: var(--km-control-border-focus) !important;
  outline: 1px solid var(--km-control-border-focus);
}

.km-tag-picker {
  min-width: 0;
  position: relative;
}

.km-tag-picker__control {
  align-items: center;
  background: var(--km-control-background);
  border: 1px solid var(--km-control-border);
  border-radius: var(--km-control-radius);
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  min-height: var(--km-control-height);
  padding: 2px 4px;
  width: 100%;
}

.km-tag-picker__control:focus-within {
  border-color: var(--km-control-border-focus);
  outline: 1px solid var(--km-control-border-focus);
}

.km-tag-picker__chips {
  align-items: center;
  display: contents;
}

.km-tag-picker__chip {
  align-items: center;
  background: #e3f2fd;
  border-radius: 3px;
  color: #0556ad;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 3px;
  height: 22px;
  max-width: 100%;
  padding: 0 3px 0 7px;
}

.km-tag-picker__chip > span {
  color: inherit;
  max-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.km-tag-picker__remove {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--km-icon-color);
  cursor: pointer;
  display: inline-flex;
  height: 18px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  width: 18px;
}

.km-tag-picker__input {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  flex: 1 1 150px;
  height: 22px !important;
  min-height: 22px !important;
  min-width: 120px;
  outline: 0 !important;
  padding: 0 4px !important;
}

.km-tag-picker__options {
  background: #fff;
  border: 1px solid var(--km-control-border);
  border-radius: var(--km-control-radius);
  box-shadow: 0 6px 16px rgb(16 24 40 / 14%);
  left: 0;
  max-height: 180px;
  overflow-y: auto;
  padding: 3px;
  position: absolute;
  right: 0;
  top: calc(100% + 3px);
  z-index: 12000;
}

.km-tag-picker__option {
  background: transparent;
  border: 0;
  border-radius: 3px;
  cursor: pointer;
  display: block;
  padding: 6px 8px;
  text-align: left;
  width: 100%;
}

.km-tag-picker__option:is(:hover, :focus, [aria-selected="true"]) {
  background: #eef7fd;
  outline: 0;
}

.km-tag-picker__status {
  color: #6c757e;
  display: block;
  font-size: 11px;
  min-height: 13px;
  padding-top: 2px;
}

.km-tag-picker__status--error {
  color: var(--km-control-border-invalid);
}

@media (max-width: 480px) {
  .km-tag-picker__chip > span {
    max-width: 130px;
  }
}
