/* ============================================================
   NUVASTAY — Form Fields
   ============================================================ */

.field {
  display: grid;
  gap: 6px;
}

.field__label {
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--text-secondary);
}

.field__input {
  width: 100%;
  background:   var(--bg-secondary);
  border:       1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding:      12px 16px;
  color:        var(--text-primary);
  transition:
    border-color var(--transition),
    box-shadow   var(--transition);
}

.field__input:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(227, 192, 106, 0.12);
}

.field__input::placeholder { color: var(--text-muted); }

/* Input with trailing action (e.g. show/hide password) */
.field__input-wrap { position: relative; }
.field__input-wrap .field__input { padding-right: 46px; }

.field__input-action {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border:  none;
  cursor:  pointer;
  color:   var(--text-muted);
  display: grid;
  place-items: center;
  padding: 4px;
  transition: color var(--transition);
}
.field__input-action:hover { color: var(--color-primary); }

/* Hint text below a field */
.field__hint {
  font-size: 0.78rem;
  color: var(--text-muted);
  margin-top: 2px;
}

/* Select field */
.field__select-wrap {
  position: relative;
}
.field__select {
  width: 100%;
  background:    var(--bg-secondary);
  border:        1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding:       12px 36px 12px 16px;
  color:         var(--text-primary);
  appearance:    none;
  cursor:        pointer;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.field__select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(227, 192, 106, 0.12);
}
.field__select-arrow {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  pointer-events: none;
  font-size: 18px;
}

/* Textarea field */
.field__textarea {
  width: 100%;
  background:    var(--bg-secondary);
  border:        1px solid var(--border-subtle);
  border-radius: var(--radius-md);
  padding:       12px 16px;
  color:         var(--text-primary);
  min-height:    120px;
  resize:        vertical;
  transition: border-color var(--transition), box-shadow var(--transition);
}
.field__textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(227, 192, 106, 0.12);
}
.field__textarea::placeholder { color: var(--text-muted); }

/* Two-column field group */
.field-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 440px) {
  .field-group { grid-template-columns: 1fr; }
}

/* Phone: country-code select + number input side by side */
.field__phone {
  display: flex;
  gap: 10px;
}
.field__phone .field__select-wrap { flex: 0 0 130px; }
.field__phone .field__input        { flex: 1; min-width: 0; }

/* Checkbox */
.field__checkbox-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 0.85rem;
  color: var(--text-secondary);
}
.field__checkbox {
  width: 16px;
  height: 16px;
  border-radius: 4px;
  accent-color: var(--color-primary);
  cursor: pointer;
  flex-shrink: 0;
}
