---
description: Arabic-first RTL. Logical properties. Bilingual fields.
globs: ["resources/views/**", "resources/css/**", "resources/js/**"]
---

# RTL Arabic-First

## Default Direction

```html
<html dir="rtl" lang="ar">
```

Arabic is the DEFAULT. English/LTR is the exception.

## Tailwind — ALWAYS Logical Properties

| NEVER | ALWAYS | Why |
|-------|--------|-----|
| `ml-*` | `ms-*` | margin-start |
| `mr-*` | `me-*` | margin-end |
| `pl-*` | `ps-*` | padding-start |
| `pr-*` | `pe-*` | padding-end |
| `text-left` | `text-start` | |
| `text-right` | `text-end` | |
| `left-*` | `start-*` | |
| `right-*` | `end-*` | |
| `border-l-*` | `border-s-*` | |
| `border-r-*` | `border-e-*` | |
| `rounded-l-*` | `rounded-s-*` | |
| `rounded-r-*` | `rounded-e-*` | |
| `float-left` | `float-start` | |
| `float-right` | `float-end` | |

Exception: number inputs get `dir="ltr"` (numbers are always LTR).

## Bilingual Fields

Every user-facing entity has both `name` and `name_ar`:
- `name_ar` is REQUIRED (primary language)
- `name` is optional (English reference)
- Display: `app()->getLocale() === 'ar' ? $model->name_ar : $model->name`

## Strings

ALL user-facing strings wrapped in `__()`:
```php
session()->flash('success', __('تم الحفظ بنجاح'));
```

## Font

Primary: Cairo (Arabic) / Inter (Latin fallback)
```css
font-family: 'Cairo', 'Noto Sans Arabic', system-ui, sans-serif;
```
