```python
def apply_overrides(base: dict, overrides: list) -> dict:
    if not isinstance(overrides, list):
        raise ValueError("Overrides must be a list.")

    merged = dict(base)
    for override in overrides:
        if not isinstance(override, str):
            raise ValueError("Each override must be a string.")
        if '=' not in override:
            raise ValueError("Override must contain an equals sign.")
        name, value = override.split('=', 1)
        if not name:
            raise ValueError("Setting name cannot be empty.")
        if name not in base:
            raise ValueError(f"Base does not contain setting: {name}")
        merged[name] = value

    return merged
```