{# T48.1 -- shared "Start new eval" modal partial. Replaces the original ``window.prompt()`` chain (scan / model / prompts) with a single Tailwind modal that has client-side validation, a model dropdown, prompt multi-select checkboxes, and a today-vs-cap progress bar. Two modes, picked by the caller via ``{% with mode=... %}``: * ``mode="select-scan"`` -- the modal includes a scan-search input driven by ``GET /admin/scans/search?q=...``. Used from the ``/admin/evals`` index page where the operator hasn't picked a scan yet. * ``mode="fixed-scan"`` -- scan id is pre-set via ``fixed_scan_id``; the picker is hidden. This mode powered the per-scan eval matrix's "+ Add column" button, which was retired in P5; no live page renders it today, but the branch is kept for any future fixed-scan caller. Caller threads ``today_usd`` + ``cap_usd`` so the cap bar shows accurate state on first paint without an extra round-trip. Open-trigger contract: any element with ``data-action="open-eval-modal"`` on the page opens this modal. The ``/admin/evals`` index page uses that attribute on its "Start new eval" button. XSS contract: every Jinja value below is autoescaped (the env is configured with ``select_autoescape(["html", "htm"])``). The inline ``