<sectionclass="hero"id="dashboard"><div><pclass="eyebrow">EVIDENCE-LED PROSPECTING</p><h1>Good morning, Alex <span>✦</span></h1><pclass="hero-sub">Your pipeline has <strongid="heroCount">0 prospects</strong> ready for review.</p></div><buttonclass="button primary"data-scroll="#add">+ Add prospect</button></section>
<asideclass="detail-panel panel"id="detailPanel"><divclass="empty-detail"><spanclass="empty-icon">◒</span><h3>Select a prospect</h3><p>Review evidence, confidence, and eligibility before taking action.</p></div></aside>
<div><pclass="eyebrow">OPERATIONS</p><h2id="jobsTitle">Job monitor</h2><pclass="muted">Track authenticated workspace jobs and their progress. No job data is shown until the API responds.</p></div>
<divclass="jobs-list panel"><divclass="panel-heading"><div><pclass="eyebrow">QUEUE</p><h3>Recent jobs</h3></div><spanid="jobsUpdatedAt"class="small-label">Not loaded</span></div><divid="jobsList"class="jobs-list-body"><divclass="job-empty">Sign in to load jobs from the workspace.</div></div></div>
<asideclass="job-detail panel"id="jobDetailPanel"><divclass="empty-detail"><spanclass="empty-icon">◷</span><h3>Select a job</h3><p>Inspect progress, structured errors, and the event timeline.</p></div></aside>
<divclass="sources-header panel"><div><pclass="eyebrow">GOVERNANCE</p><h2id="sourcesTitle">Sources</h2><pclass="muted">Review source ownership, terms, limits, and health before using discovery.</p></div><buttonclass="button ghost"id="sourcesRefreshBtn"type="button">↻ Refresh</button></div>
<divclass="source-safety"role="note"><strong>Discovery is disabled by default.</strong> No live source is enabled in this workspace. Enable a source only after its terms, owner, rate limit, and health have been reviewed.</div>
<articleclass="panel source-config-panel"><divclass="panel-heading"><div><pclass="eyebrow">CONFIGURATION</p><h3>Add a source</h3></div><spanclass="small-label">Manual or CSV</span></div><formid="sourceForm"><divclass="form-grid"><label>Source name<inputname="name"requiredplaceholder="Public business directory"></label><label>Source type<selectname="source_type"id="sourceType"><optionvalue="manual">Manual / API</option><optionvalue="csv">CSV upload</option></select></label><label>Source URL <spanclass="optional">optional</span><inputname="url"type="url"placeholder="https://…"></label><label>Terms URL <spanclass="optional">required for enablement</span><inputname="terms_url"type="url"placeholder="https://…/terms"></label><label>Owner<inputname="owner"requiredplaceholder="Team or accountable person"></label><label>Rate limit<inputname="rate_limit"requiredplaceholder="e.g. 60 requests/hour"></label></div><labelclass="source-csv-field"id="sourceCsvField"hidden>CSV content<textareaname="csv_content"id="sourceCsvContent"rows="4"placeholder="Paste CSV content; it is sent only when you save this source."></textarea></label><divclass="form-footer"><pid="sourceFormMessage"class="form-message"role="status"></p><buttonclass="button primary"type="submit">Save source</button></div></form></article>
<articleclass="panel discovery-panel"><divclass="panel-heading"><div><pclass="eyebrow">DISCOVERY</p><h3>Query a source</h3></div><spanclass="small-label">No automatic runs</span></div><formid="discoveryForm"><label>Source<selectname="source_id"id="discoverySource"required><optionvalue="">Select a source</option></select></label><label>Query<inputname="query"requiredplaceholder="e.g. renewable energy firms in Cape Town"></label><labelclass="checkbox-label"><inputtype="checkbox"name="dry_run"id="discoveryDryRun"checked> Dry run (preview only)</label><divclass="form-footer"><pid="discoveryMessage"class="form-message"role="status"></p><divclass="discovery-actions"><buttonclass="button ghost"id="discoveryDryRunBtn"type="submit">Validate query</button><buttonclass="button primary"id="discoveryRunBtn"type="button">Run discovery</button></div></div></form></article>
</div>
<divclass="sources-list panel"><divclass="panel-heading"><div><pclass="eyebrow">REGISTRY</p><h3>Configured sources</h3></div><spanid="sourcesUpdatedAt"class="small-label">Not loaded</span></div><divid="sourcesList"class="sources-list-body"><divclass="source-empty">Sign in to load sources from the workspace.</div></div></div>
<divclass="source-records panel"><divclass="panel-heading"><div><pclass="eyebrow">RECENT OUTPUT</p><h3>Recent source records</h3></div></div><divid="sourceRecordsList"class="source-records-body"><divclass="source-empty">No records loaded.</div></div></div>
<sectionclass="lower-grid"id="add"><articleclass="panel add-panel"><divclass="panel-heading"><div><pclass="eyebrow">INTAKE</p><h2>Add a prospect</h2></div><spanclass="small-label">Manual entry</span></div><formid="addForm"><divclass="form-grid"><label>Company name<inputrequiredname="name"placeholder="Acme Inc."></label><label>Website <spanclass="optional">optional</span><inputname="website"type="url"placeholder="https://acme.com"></label><label>Location<inputname="location"placeholder="Cape Town, ZA"></label><label>Notes <spanclass="optional">optional</span><inputname="description"placeholder="Why this is a fit…"></label></div><divclass="form-footer"><pid="formMessage"class="form-message"role="status"></p><buttonclass="button primary"type="submit">Add to review queue</button></div></form></article>
<articleclass="panel csv-panel"><divclass="panel-heading"><div><pclass="eyebrow">BULK INTAKE</p><h2>CSV preview</h2></div><labelclass="button ghost upload-label"for="csvInput">↑ Choose CSV</label><inputid="csvInput"type="file"accept=".csv,text/csv"hidden></div><pclass="muted">Preview rows before adding them to your review queue.</p><divid="csvPreview"class="csv-empty"><span>⊞</span><p>No file selected</p><small>CSV stays in your browser until you confirm.</small></div></article></section>