/**
 * input.css
 * BIXOR Exchange - Input Component Styles
 *
 * Depends on: variables.css
 */

/* ============================================================
 * INPUT GROUP (wrapper)
 * ============================================================ */

.input-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 100%;
  box-sizing: border-box;
}

/* ============================================================
 * LABEL
 * ============================================================ */

.input-label {
  font-size: var(--font-size-sm);
  color: rgba(255, 255, 255, 0.7);
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-tight);
}

/* ============================================================
 * WRAPPER (for icon positioning)
 * ============================================================ */

.input-wrapper {
  position: relative;
  width: 100%;
}

/* ============================================================
 * INPUT FIELD
 * ============================================================ */

.input-field {
  width: 100%;
  background-color: var(--color-bg-primary);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius-base);
  padding: 12px 16px;
  color: var(--color-text-primary);
  font-size: var(--font-size-sm);
  font-family: var(--font-family-base);
  outline: none;
  transition:
    border-color var(--transition-fast) var(--easing-material),
    box-shadow var(--transition-fast) var(--easing-material);
  box-sizing: border-box;
  -webkit-appearance: none;
  appearance: none;
}

.input-field::placeholder {
  color: var(--color-text-tertiary);
}

.input-field:focus {
  border-color: var(--color-accent);
  box-shadow: 0 0 0 3px rgba(0, 168, 255, 0.15);
}

.input-field:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* ============================================================
 * ERROR STATE
 * ============================================================ */

.input-field.input-error {
  border-color: var(--color-error);
}

.input-field.input-error:focus {
  border-color: var(--color-error);
  box-shadow: 0 0 0 3px rgba(239, 83, 80, 0.15);
}

.input-error-msg {
  font-size: var(--font-size-xs);
  color: var(--color-error);
  margin-top: var(--spacing-1);
  line-height: var(--line-height-normal);
}

/* ============================================================
 * SEARCH VARIANT
 * ============================================================ */

.input-search {
  padding-left: 40px; /* space for search icon */
}

.input-wrapper .input-icon-left {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-tertiary);
  pointer-events: none;
  display: flex;
  align-items: center;
}

.input-wrapper .input-icon-right {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--color-text-tertiary);
  pointer-events: none;
  display: flex;
  align-items: center;
}
