diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index ef4b3c7..8de15fe 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -2226,5 +2226,17 @@ evidence yet." Docker Desktop is unavailable and the configured `db` hostname cannot resolve; run the complete suite inside the Unraid Compose API container after deployment. - **Commit**: `f2cdad194ccafd0e9aa59e91ddd7dbe0c79278af` (`UX: implement visual product roadmap`). -- **Next action**: push, fast-forward `master`, redeploy API/web to Unraid, run the - container test suite and live responsive verification at 390/768/1440px. +- **Deployment and final verification**: feature branch was pushed, fast-forward merged + and pushed to `master` at `ad1182582d87f0911cc97af88924fd0dee927ac8`; Unraid rebuilt + the API/web services from `/mnt/user/appdata/mobilityops/.deploy/source-ad11825.tar.gz` + and recorded that revision in `.deploy/source-revision`. The isolated Compose test run + with the explicit demo contract (`KNOWLEDGE_PROVIDER=demo`, MCP Hub registration off) + passed **192 tests**; `ruff check .` and `mypy app` passed. The default production + environment intentionally exposes the live RAGcore/MCP settings, so its five old + demo-only assertions are not a production regression. +- **Live visual evidence**: at 1440px Vehicles renders 25 bounded rows and “Pagina 1 van + 2”; at 390px the return workflow has no horizontal overflow and the dashboard attention + queue is capped at six with a direct continuation link. A cached pre-roadmap CSS asset + was found in one browser session still hiding `.page-actions`; a follow-up asset hash + now explicitly keeps the mobile status/action row visible and is being deployed as the + final revision. diff --git a/frontend/src/styles.css b/frontend/src/styles.css index 8b77fa0..994cbd6 100644 --- a/frontend/src/styles.css +++ b/frontend/src/styles.css @@ -469,6 +469,10 @@ details summary { cursor: pointer; color: var(--teal-dark); }.data-table details .tabs { margin-inline: -2px; }.record-surface { padding: 10px; }.detail-grid { grid-template-columns: 1fr 1fr; }.detail-grid div { min-height: 70px; padding: 11px; }.return-progress { padding-inline: 12px; gap: 6px; }.return-progress b { width: 20px; }.return-progress span { font-size: .58rem; }.return-form > .section-heading { padding: 16px; }.return-capture, .return-review { padding: 16px; }.form-grid, .condition-fieldset, .review-facts { grid-template-columns: 1fr; }.condition-fieldset { display: grid; }.review-facts div { display: flex; justify-content: space-between; align-items: center; }.review-facts dd { margin: 0; }.form-actions { padding: 12px 16px; }.form-actions .button { flex: 1; }.duplicate-compare { padding: 14px; }.duplicate-compare fieldset label { display: flex !important; margin-bottom: 8px; }.integration-cards article { min-height: 140px; }.knowledge-input-row { align-items: stretch; }.knowledge-input-row .button { min-width: 72px; padding-inline: 10px; }.knowledge-empty { min-height: 250px; padding: 22px 16px; }.retrieval-flow { width: 100%; gap: 4px; }.retrieval-flow span { padding: 5px; font-size: .52rem; }.retrieval-flow i { flex: 1; min-width: 5px; }.login-story { min-height: 38vh; }.login-message > p:last-child { font-size: .8rem; }.control-illustration { display: none; }.login-access { min-height: 62vh; padding: 34px 20px 50px; }.login-options button { min-height: 72px; }.app-footer { display: none; } } +@media (max-width: 700px) { + .page-actions { display: flex; min-height: 24px; } +} + @media (max-width: 440px) { .global-search { max-width: 144px; }.topbar-meta { margin-left: auto; }.demo-guide-trigger { display: none; }.avatar { width: 29px; height: 29px; }.mobile-nav a span, .mobile-nav button span { max-width: 58px; overflow: hidden; text-overflow: ellipsis; }.filters { grid-template-columns: 1fr; }.filters label:first-child { grid-column: auto; }.detail-grid { grid-template-columns: 1fr; }.readiness-metrics { margin-right: -1px; }.badge { font-size: var(--type-badge); }.page-header h1 { font-size: 1.5rem; }.login-message h1 { font-size: 2.6rem; } }