diff --git a/app/static/css/theme_modern.css b/app/static/css/theme_modern.css index 051334b..8c75052 100644 --- a/app/static/css/theme_modern.css +++ b/app/static/css/theme_modern.css @@ -30,8 +30,9 @@ body.jqc-modern { --jqc-faint: #93A1AB; --jqc-border: #E3E8EC; --jqc-border-2: #CFD9E0; - --jqc-surface: #F5F8FA; + --jqc-surface: #F5F8FA; /* subtle fill — hovers, muted rows (theme.css) */ --jqc-surface-2: #EEF3F6; + --jqc-card-bg: #FFFFFF; /* raised surfaces — cards, KPI tiles, sidebar */ --jqc-accent: #155F82; --jqc-accent-700: #0F4A66; --jqc-accent-50: #DCEBF5; @@ -164,7 +165,7 @@ body.jqc-modern { bottom: 0; left: 0; width: var(--jqc-sidebar-w); - background: #fff; + background: var(--jqc-card-bg); border-right: 1px solid var(--jqc-border); overflow-y: auto; z-index: 1030; @@ -274,8 +275,11 @@ body.jqc-modern { letter-spacing: -.02em; color: var(--jqc-ink); margin: 0; - text-align: center; } +/* Opt-in centring — the default is left-aligned. `.center` on the head block + centres the title and its sub-line together. */ +.jqc-modern .jqc-page-head.center, +.jqc-modern .jqc-page-title.center { text-align: center; } .jqc-modern .jqc-page-sub { color: var(--jqc-muted); font-size: .95rem; @@ -289,18 +293,18 @@ body.jqc-modern { box-shadow: var(--jqc-shadow); } .jqc-modern .card-header { - background: #fff; + background: var(--jqc-card-bg); border-bottom: 1px solid var(--jqc-border); color: var(--jqc-ink); font-weight: 700; padding: .9rem 1.15rem; } .jqc-modern .card-header.bg-light, -.jqc-modern .card-header.bg-white { background: #fff !important; } +.jqc-modern .card-header.bg-white { background: var(--jqc-card-bg) !important; } .jqc-modern .card-body { padding: 1.15rem; } .jqc-modern .jqc-card { - background: #fff; + background: var(--jqc-card-bg); border: 1px solid var(--jqc-border); border-radius: 16px; box-shadow: var(--jqc-shadow); @@ -333,7 +337,7 @@ body.jqc-modern { /* KPI tiles */ .jqc-modern .jqc-kpi { - background: #fff; + background: var(--jqc-card-bg); border: 1px solid var(--jqc-border); border-radius: 16px; box-shadow: var(--jqc-shadow); @@ -379,7 +383,7 @@ a.jqc-kpi:hover { box-shadow: var(--jqc-shadow-md); transform: translateY(-1px); display: flex; flex-direction: column; height: 100%; - background: #fff; + background: var(--jqc-card-bg); border: 1px solid var(--jqc-border); border-radius: 16px; box-shadow: var(--jqc-shadow); @@ -399,17 +403,27 @@ a.jqc-kpi:hover { box-shadow: var(--jqc-shadow-md); transform: translateY(-1px); /* ── 7. Tables — dark teal header, as in the deck ────────────────────────── */ .jqc-modern .table { --bs-table-border-color: var(--jqc-border); margin-bottom: 0; } + +/* Recoloured via Bootstrap's own table CSS variables rather than !important, so + a page that deliberately wants a different header (table-dark, a tinted + report header) can still override it with a normal rule. */ .jqc-modern .table > thead > tr > th, .jqc-modern .table thead.table-light > tr > th, .jqc-modern .table > thead th { - background: var(--jqc-brand) !important; - color: #fff !important; - border-color: var(--jqc-brand-700) !important; + --bs-table-bg: var(--jqc-brand); + --bs-table-color: #fff; + background-color: var(--jqc-brand); + color: #fff; + border-color: var(--jqc-brand-700); font-weight: 600; font-size: .88rem; vertical-align: middle; - white-space: nowrap; } + +/* nowrap only where the column set is known-narrow (dashboard panels); wide + tables such as the issues list and audit trail must be free to wrap rather + than force a horizontal scroll on iPad portrait. */ +.jqc-modern .jqc-card .table > thead th { white-space: nowrap; } .jqc-modern .table > tbody > tr > td { vertical-align: middle; font-size: .92rem; } .jqc-modern .table-hover > tbody > tr:hover > * { background-color: var(--jqc-brand-025); } .jqc-modern .jqc-table-wrap { @@ -447,7 +461,7 @@ a.jqc-kpi:hover { box-shadow: var(--jqc-shadow-md); transform: translateY(-1px); /* Filter bar — the rounded pill row from the deck */ .jqc-modern .jqc-filter-bar { - background: #fff; + background: var(--jqc-card-bg); border: 1px solid var(--jqc-border); border-radius: 16px; box-shadow: var(--jqc-shadow); diff --git a/app/templates/layouts/modern.html b/app/templates/layouts/modern.html index 6f26c98..01aba72 100644 --- a/app/templates/layouts/modern.html +++ b/app/templates/layouts/modern.html @@ -93,10 +93,13 @@ By L.T. Services, Inc + {# Scoped to inspection ID only — the placeholder says so explicitly so + nobody types a facility name and assumes the search is broken. #}
diff --git a/app/templates/modern/dashboard.html b/app/templates/modern/dashboard.html index 3458c1d..a0541c3 100644 --- a/app/templates/modern/dashboard.html +++ b/app/templates/modern/dashboard.html @@ -14,7 +14,7 @@ {# ── Header ───────────────────────────────────────────────────────────── #}
-
Welcome, {{ current_user.display_name }}
+
Welcome, {{ current_user.display_name }}
{{ current_user.role.replace('_',' ')|title }}
{{ now_display }}
@@ -242,8 +242,15 @@ {% for insp in recent_inspections %} - - {{ insp.inspection_date.strftime('%b %d, %Y') }} + {# The row stays click-anywhere for the mouse, but the date is a real + link so the row is keyboard-reachable and openable in a new tab. + The guard stops the row handler from double-firing on that link. #} + + + {{ insp.inspection_date.strftime('%b %d, %Y') }} + {{ insp.facility.name }} {{ insp.area.name if insp.area else '—' }} {% if current_user.role != 'inspector' %}{{ insp.inspector.display_name }}{% endif %} @@ -383,10 +390,16 @@ Your Facilities {{ customer_facilities|length }}
-
+ {% if customer_facilities|length > 6 %} +
+ +
+ {% endif %} +
{% for f in customer_facilities %} -
-
+
+
{{ f.name }}
{{ f.address or '—' }}
@@ -402,7 +415,49 @@
{% endfor %}
+ {% if customer_facilities|length > 9 %} +
+ +
+ {% endif %}
+ +{# Same VISIBLE = 9 / search > 6 thresholds as the classic dashboard (rule 65). #} + {% endif %} {% endblock %} diff --git a/app/templates/modern/facilities/list.html b/app/templates/modern/facilities/list.html index 3aeab54..2e72214 100644 --- a/app/templates/modern/facilities/list.html +++ b/app/templates/modern/facilities/list.html @@ -10,7 +10,7 @@ #} {% block content %} -
+
Facilities
Manage facility records, statistics and QR access
diff --git a/app/templates/ui/about.html b/app/templates/ui/about.html index 6597618..a28b166 100644 --- a/app/templates/ui/about.html +++ b/app/templates/ui/about.html @@ -4,7 +4,7 @@ {# About Us — new page (design A/B test). Linked from the modern sidebar. #} {% block content %} -
+
About Us
Janitorial Quality Control by L.T. Services, Inc.
diff --git a/app/templates/ui/support_center.html b/app/templates/ui/support_center.html index a95d1e0..448605d 100644 --- a/app/templates/ui/support_center.html +++ b/app/templates/ui/support_center.html @@ -8,7 +8,7 @@ #} {% block content %} -
+
Support
JQC Features — find answers and how-to guides