# Lemenzo Messages — Design Lock

This project is locked to the approved premium mockup direction.

## Palette
- Background: `#080B10`
- Surface: `#11161D`
- Raised surface: `#171D25`
- Lemenzo blue: `#3F7CFF`
- Blue outline: `#304E86`
- Primary text: `#F7F9FC`
- Secondary text: `#B5BFCC`
- Muted text: `#7F8A99`
- Divider: `#202832`
- Incoming bubble: `#1A2028`
- Outgoing bubble gradient: `#3971F5` → `#4F86FF`
- Danger: `#FF5A67`

No green success accent is part of the locked visual language.

## Layout rules
- Premium dark grouped surfaces; no heavy blue-outline cards.
- Large Lemenzo Messages header with “Messages” accented blue.
- Rounded search pill and 48dp minimum control hit targets.
- Contact photos when available, initials as fallback.
- Incoming charcoal bubbles, outgoing blue gradient bubbles.
- Date separators (`Today`, `Yesterday`, localized date).
- Composer is keyboard/IME aware, minimum 52dp, expands up to five lines.
- New-message recipient uses a blue contact chip while preserving the real phone number internally.
- Attachment preview includes thumbnail/icon, filename and remove action.
- No fake online/presence status for SMS/MMS.
- Notification message previews are privacy-controlled and default off.
- Composer has no dedicated emoji button; emoji input is provided by the system keyboard.
- Message text defaults to 18sp and is user-adjustable in Settings (16/18/20/22sp).


## Gesture lock
- Swipe-to-delete must use direction locking: vertical scrolling wins unless horizontal movement clearly dominates.
- Conversation-list swipe never auto-deletes: left swipe only reveals the explicit red Delete action; tapping that revealed action performs the delete without a second dialog.
- Destructive single-message/full-conversation actions inside a conversation require the Lemenzo confirmation dialog.
- Swipe visuals use translation + subtle alpha only. No grey action surfaces or grey overlays.

### Performance must not change the visual language
Row recycling, paging and swipe optimization must preserve the locked Lemenzo layout, typography, spacing and black/blue palette. Recycled rows must reset swipe translation/alpha before rebinding so no visual state leaks between conversations or messages.
