MEP Services Group · Internal

Style Guide

A single, lightweight reference for the tokens, type, and components used across the MEP app, generated reports, and the walkthrough deck. The goal is consistent visual cues — not a full design system.

Source MEP_STYLE_GUIDE.md App CSS static/readiness.css Deck CSS walkthrough/html/shared-slide.css
01

Color tokens

Three brand colors plus a calm neutral set. Navy carries primary weight; orange is sparse accent only.

Brand

Primary
MEP Navy#15244C · --navyHeadings, primary actions, body emphasis.
Secondary
MEP Blue#2F5089 · --blueBrand-cue labels and subdued accents. Not for primary buttons.
Accent
MEP Orange#F36D21 · --orangeTop-rule, callout borders, flow arrows. Use sparingly.

Neutrals

Ink
Body Ink#3B3B3B · --inkDefault text.
Muted
Muted#64707D · --mutedCaptions, eyebrows, meta.
Line
Hairline#D9DEE8 · --lineBorders, dividers.
Soft
Soft Neutral#F4F4F4 · --softTable headers, secondary button surface.
Paper
Paper#FFFDF7 · --paperSlide and panel surface (deck).
Wash
Wash#F4F0E8 · --washDeck background with grid overlay.

Status

OK
Green#2F7D57 · --greenReady, source cited, approved.
Review
Amber#AA6B16 · --amberWarnings, needs confirmation.
Bad
Red#B8463B · --redBlockers, errors, missing.
Info
Blue Wash#EAF1FB · --blue-washInfo pill surface, code chip.
02

Typography

A single family — Montserrat — with system-sans fallback. Headings sit on navy; body on ink.

Stack

font-family: Montserrat, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

Deck scale

Eyebrow13 / 800 / .12em uc

MEP Bid Memory — Module 00

H1 Displayclamp(52, 7vw, 104)
800 / 0.94

Tender Triage

H2 Sectionclamp(34, 4vw, 62)
800 / 1.0

What lives in the tender folder

Leadclamp(22, 2.3vw, 34)
1.18

The system reads the buckets MEP already uses and turns each one into a business signal.

H3 Panel18 / 800

At-a-glance readiness

Body15 / 1.45 / --ink

Reads the client package, BOM, quote files, vendor folders, and missing-download markers. Pulls out bid facts, blockers, weak evidence, and what still needs estimator confirmation.

Note / Meta13 / --muted

Source cue: the January–March archive shows this repeated tender-folder shape across MEP projects.

App scale

App H124 / 1.18 / --navy

Tender Readiness — Brokerlink Oakville

App H217 / --navy

Triage queue

App Body14 / 1.45

Save review → approve → proposal basis. The estimator stays in control.

03

Spacing & surface

Recurring values from the codebase. Stick to these when adding new UI.

Spacing scale

4px
inline gap
8px
stack-1
14px
stack-2
22px
stack-3 · panel pad
32px
stack-4 · block pad
44–78px
slide pad clamp

Radius

4 px

Buttons, inputs (app).

6 px

Cards, table wraps.

8 px

Panels, tiles, slide frames.

Elevation

Panel shadow

0 2px 0 rgba(26,54,103,0.08)

Slide shadow

0 18px 60px rgba(21,36,76,0.12)

04

Components

Recurring elements; class names match what's already in the codebase.

Status pills

ready source cited by trade check source warning blocker

Buttons

Marker, rule, callout

6 familiar buckets
What Module 00 does

Turns a tender folder into a reviewable readiness picture: facts, evidence, blockers, warnings, review status, and proposal-basis inputs.

Fact strip

Tenders scanned42
Ready for review11
Blockers3
Vendors indexed187

Panel with check rows

At-a-glance readiness

OK Client package found ready
OK BOM workbook found scope basis
! Addenda basis needs confirmation warning
05

Patterns

Page conventions that keep the app and deck reading like the same product.

App header

A 3px orange top-border and 1px hairline bottom-border. The "MEP Services Group" cue sits as a tiny uppercase blue label above the page title.

MEP Services Group

Tender Readiness — Brokerlink Oakville

/tenders/2026/brokerlink-oakville · scanned 2 hours ago

Slide frame

Paper card on the wash grid background. A 2px navy border, plus an inner 1px dashed inset border at 18px. Frame label sits bottom-right in uppercase.

MEP Bid Memory — Module 00

Folder to approved proposal basis

Module 00 / 05

Layout primitives

Two-column with side panel

main 1fr · side minmax(320px, 0.82fr)

Three-tile grid

Equal columns. Tile 2 rotates +0.35°, tile 3 rotates −0.25°.

Four-step flow

Equal columns. Orange chevron pill between steps.

Queue

Card per row. Priority rows get a 4px orange left-border.

06

Conventions

Rules that keep visual cues tied to MEP without turning this into a full design system.

Do

  • Use navy for headings and primary action buttons.
  • Use orange sparingly — top-rules, callout borders, flow arrows, priority left-borders.
  • Keep panels calm: paper surface, 1.5px hairline, 8px radius, 2px-tinted shadow.
  • Use status pills (good / review / info / red) consistently for ready, warning, info, blocker.
  • For the deck, keep the dashed inner frame and bottom-right frame label.
  • Prefer "MEP Services Group" as text; the public site is the source of truth.

Don't

  • Don't recreate, trace, or embed the MEP logo.
  • Don't introduce a competing primary color or a gradient.
  • Don't use the secondary blue as a button background — it competes with navy.
  • Don't inline a copy of the deck CSS in a new slide — link shared-slide.css.
  • Don't add ornamental cards or one-off radius / shadow values.
  • Don't put scan counts, raw paths, or evidence IDs on a first-screen view.
  • Don't write large inline CSS blocks in Python output templates.
  • Don't add new component abstractions without repeated UI need.