diff --git a/respro/report/static/report.css b/respro/report/static/report.css
index 93d823e..a501e1e 100644
--- a/respro/report/static/report.css
+++ b/respro/report/static/report.css
@@ -74,12 +74,15 @@ body {
line-height: 1.55;
background-color: var(--paper);
min-height: 100vh;
+ min-height: 100dvh;
+ overflow-x: hidden;
}
.report-container {
display: flex;
flex-direction: column;
min-height: 100vh;
+ min-height: 100dvh;
background: var(--surface-strong);
}
@@ -802,6 +805,20 @@ body {
}
}
+@media (max-width: 400px) {
+ .report-main {
+ padding: 0.75rem;
+ }
+
+ .header-top {
+ padding: 0.6rem 0.75rem;
+ }
+
+ .summary-tile {
+ padding: 0.85rem;
+ }
+}
+
/* ─── All Mutations table ─────────────────────────────────────────────────── */
.mutation-toolbar {
diff --git a/respro/report/templates/report.html.j2 b/respro/report/templates/report.html.j2
index 7bdbd23..5767c00 100644
--- a/respro/report/templates/report.html.j2
+++ b/respro/report/templates/report.html.j2
@@ -2,7 +2,7 @@
-
+
{{ context.title }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Resistance
- Profiler
-
\ No newline at end of file
+
+
+
diff --git a/web/frontend/src/components/AppFooter.jsx b/web/frontend/src/components/AppFooter.jsx
index 8d767b6..4643e48 100644
--- a/web/frontend/src/components/AppFooter.jsx
+++ b/web/frontend/src/components/AppFooter.jsx
@@ -24,13 +24,13 @@ export function AppFooter({ legalLink, contactEmail, cliVersion, webVersion }) {
{(cliVersion || webVersion) && (
{cliVersion && (
- ResistanceProfiler Core v{cliVersion}
+ respro CLI v{cliVersion}
)}
{cliVersion && webVersion && (
·
)}
{webVersion && (
- ResistanceProfiler WebApp v{webVersion}
+ respro WebApp v{webVersion}
)}
)}
diff --git a/web/frontend/src/components/AppFooter.test.jsx b/web/frontend/src/components/AppFooter.test.jsx
index 5b910dc..9eb8fec 100644
--- a/web/frontend/src/components/AppFooter.test.jsx
+++ b/web/frontend/src/components/AppFooter.test.jsx
@@ -12,8 +12,8 @@ describe('AppFooter', () => {
render();
expect(screen.queryByText('Legal notice')).not.toBeInTheDocument();
expect(screen.queryByRole('link', { name: /contact/i })).not.toBeInTheDocument();
- expect(screen.queryByText(/ResistanceProfiler Core/)).not.toBeInTheDocument();
- expect(screen.queryByText(/ResistanceProfiler WebApp/)).not.toBeInTheDocument();
+ expect(screen.queryByText(/respro CLI/)).not.toBeInTheDocument();
+ expect(screen.queryByText(/respro WebApp/)).not.toBeInTheDocument();
});
it('renders a mailto contact link only when contactEmail is set', () => {
diff --git a/web/frontend/src/components/DashboardView.jsx b/web/frontend/src/components/DashboardView.jsx
index c98c16e..77c9150 100644
--- a/web/frontend/src/components/DashboardView.jsx
+++ b/web/frontend/src/components/DashboardView.jsx
@@ -98,6 +98,7 @@ export function DashboardView({
setBatchMode,
batchVcfFiles,
batchFastaFiles,
+ batchJsonFiles,
batchReferenceFasta,
batchSamples,
batchSubmitting,
@@ -113,6 +114,7 @@ export function DashboardView({
setBatchVcfCutoffs,
addBatchVcfFiles,
addBatchFastaFiles,
+ addBatchJsonFiles,
addBatchBamFiles,
attachBatchBam,
removeBatchFile,
@@ -176,21 +178,6 @@ export function DashboardView({
return (
- {/* Hamburger toggle for the off-canvas sidebar. Hidden on desktop via
- CSS (.mobile-menu-btn is display:none above --mobile-breakpoint). */}
-
- {/* Left rail only switches visible mode; all data lives in shared hook state. */}