Empty-state labels were dimmed by a 55% opacity on the whole skeleton card; move the fade onto the placeholder bars so the section headings read at full strength
Light mode: force the logo white (Gradio .prose * was overriding inheritance), deepen section-label colours and bump their weight; triage label gets a theme-flipping token (was 2.52:1 on white)
Fix theme-flip via tokens instead of .dark selectors (Gradio prefixes custom rules but not .dark ones, so the overrides lost): ghost labels + results-column body copy now white in dark, near-black in light
Work-order parser now matches the format the model actually emits (was silently falling back to raw pre); restore per-section label colours; stop Quick Starter pills overflowing their row
Recalibrate thin-report detector against the real dataset: unit-interior and one-per-building locations count as located, only per-floor shared areas need a floor, spelled-out ordinals recognised
Merge rule: safety keyword > agreement > classifier. Stops escalating on every disagreement (P4 no longer bumped to P3); disagreements are surfaced, not acted on
Fail-safe triage: on classifier/retrieval disagreement take the more severe, plus an independent safety-keyword floor (smoke/fire/gas). Escalations are shown, never silent.
Design pass: blue-violet tinted neutrals, saturated compact hero, real cards with priority rail, verdict line + computed deadline, split work order/reply, one blue accent, remove duplicate accordion
Fix regression: stop-criteria killed the tenant reply at its own header; align category keys with dataset (fixes Fiverr link + icons); blue primary button; strip stray section headers