```python
def fill_template(template: str, values: dict) -> str:
    if not isinstance(template, str):
        raise ValueError("fill_template expects a string template")

    result = ""
    placeholder_index = 0
    placeholder_name = ""

    for char in template:
        if char == "{":
            placeholder_index += 1
            placeholder_name = ""
        elif char == "}":
            if placeholder_index > 0:
                placeholder_index -= 1
                placeholder_name = template[placeholder_index * 2:placeholder_index * 2 + 3]
                if placeholder_name in values:
                    result += str(values[placeholder_name])
                else:
                    raise ValueError(f"Unknown placeholder '{placeholder_name}'")
            else:
                raise ValueError("Unmatched closing brace")
        else:
            result += char

    return result
```