A few more changes and updates to the instances to make it more user friendly.
New GUMP instances now greet the first admin with a full-screen onboarding wizard — styled with the GUMP tactical-gold palette and fully isolated from the instance theme so it always renders correctly, regardless of what theme the unit eventually picks.
The wizard walks through 9 steps: Welcome → Unit Identity → Branding → Theme → Features → Transfer Mode → Clerk Portal Duties → Template Seeding → Done.
Already-configured instances are never interrupted — they see a dashboard notification callout instead. The wizard can be re-run at any time from Admin → Settings → Identity → Open Wizard.
The member profile edit page has been completely rebuilt. It now uses a two-column layout — form fields on the left with a sticky live preview on the right that updates as you type. New additions include a drag-and-drop avatar zone, an HSV colour picker with preset swatches for the profile accent colour, text-button pattern selection, and an unsaved-changes indicator dot on the browser tab.
Settings navigation has moved from a standalone page header into the admin sidebar, appearing as a collapsible sub-nav under the System group whenever any Settings section is active. The Data group in the sidebar now has direct links to Backups, Export, and Import — no longer buried inside Settings.
A persistent Open Wizard row has been added to the footer of the Identity settings card — the default section shown when opening Settings. It uses the standard card footer pattern and is fully in-theme across all 18 themes.
A date_of_birth field (nullable Date) has been added to the profiles table to support the service number format feature. A unique constraint on service_number is also applied — only when no duplicate non-null values exist, so the migration is always safe on existing instances.
LOA approve and reject buttons on the member profile page referenced the wrong blueprint (loa instead of clerk), throwing a BuildError whenever a member with an active LOA was viewed. The linked document button on the redeem detail page referenced a route that doesn't exist (documents.view_document → documents.detail). Both fixed.
The active tab button on the media upload page used var(--color-on-accent), which is not defined in the GUMP theme system — the correct variable is var(--color-text-on-accent). With no fallback set, the button text was completely invisible on every theme.
--color-on-accent was also present across the forum thread page, forum category tag pills, admin audit log pagination, admin qualifications badge, and the public gump_info billing toggle — all corrected. Additionally: --color-radius corrected to --radius on the legal pages; --color-surface-1 corrected on the ORBAT panel; --color-danger-rgb, --color-success-rgb, and --color-warning-rgb replaced with color-mix() equivalents on the disciplines and ORBAT management pages.
The Service Numbers settings card used the class .settings-card-foot (missing er), causing the footer to render with no border, no padding, and no background. The save button on the same card also used btn--primary btn--sm (double-dash), which resolved to no style at all.
Adding a new requirement row in Settings → Identity produced a remove button with a plain × character, while server-rendered rows used the Tabler ti-x icon. The JavaScript was updated to match.
ti-star-filled does not exist in the installed Tabler icon set — selecting it in the page builder rendered nothing. It has been removed; ti-star was already present in the list.
Migration x3y4z5a6b7c8 adds date_of_birth to the profiles table and applies a unique constraint on service_number. Applied to all 12 instances. All other changes in this release are code-only.