/* ==================================================================
   NESS FOOD — Correctifs pour l'écriture arabe (droite à gauche)
   ------------------------------------------------------------------
   Cette feuille est chargée EN DERNIER, et uniquement lorsque la
   langue active s'écrit de droite à gauche. Deux conséquences :

   1. les LTR n'en paient pas le poids ;
   2. à spécificité égale, ces règles l'emportent sur app.css,
      catalog.css, dashboard.css et admin.css — aucun « !important »
      n'est donc nécessaire.

   Le reste de la mise en page n'a pas besoin d'être repris : les
   feuilles du projet emploient déjà des propriétés logiques
   (margin-inline, inset-inline-start, text-align: start), que le
   navigateur retourne seul. Ce qui suit traite ce que le sens
   d'écriture ne suffit pas à corriger : la police et le rythme.
   ================================================================== */

/* ------------------------------------------------------------------
   1. Police
   ------------------------------------------------------------------
   Sans police déclarée, « system-ui » ne couvre pas l'arabe : chaque
   système substitue une fonte de repli — Tahoma sur Windows, Noto
   Naskh sur Android — aux métriques et à la hauteur d'œil
   différentes. D'où des lignes de base qui ne s'alignent plus d'un
   bloc à l'autre : le décalage constaté sur les tableaux de bord.
   ------------------------------------------------------------------ */

body {
    font-family: var(--nf-font-ar);
}

/* Les champs de formulaire n'héritent pas de la police du document. */
input,
select,
textarea,
button,
.form-control,
.form-select,
.btn {
    font-family: var(--nf-font-ar);
}

/* ------------------------------------------------------------------
   2. Espacement des lettres
   ------------------------------------------------------------------
   L'arabe est une écriture liée : les lettres d'un même mot se
   soudent par des ligatures obligatoires. Un « letter-spacing »
   écarte ces liaisons et disloque le mot — l'effet est bien plus
   grave qu'un simple défaut d'esthétique, la lecture en souffre.

   Les quatre feuilles du projet en posent une trentaine, sur des
   titres, des intitulés en capitales et des références de commande.
   Elles sont toutes neutralisées d'un bloc : aucune n'a de sens en
   arabe, et une liste nominative se désynchroniserait au premier
   composant ajouté.

   « !important » est ici nécessaire, et non une facilité : le
   sélecteur universel a une spécificité nulle, si bien que le moindre
   sélecteur de classe l'emporte sur lui quel que soit l'ordre des
   feuilles. Mesuré : sans lui, les titres de l'espace client
   conservaient un espacement de −0,368 px.

   C'est par ailleurs la seule déclaration qui doive vraiment primer :
   un espacement de lettres sur une écriture liée n'est jamais un
   choix, c'est un défaut.
   ------------------------------------------------------------------ */

*,
*::before,
*::after {
    letter-spacing: normal !important;
}

/* ------------------------------------------------------------------
   3. Interlignage
   ------------------------------------------------------------------
   L'arabe empile signes diacritiques au-dessus et jambages au-
   dessous de la ligne. Les interlignages serrés retenus pour le
   latin — jusqu'à 1.12 sur le bandeau d'accueil — font mordre les
   caractères d'une ligne sur l'autre.
   ------------------------------------------------------------------ */

body {
    line-height: 1.7;
}

.nf-hero-title,
.nf-venue-title,
.nf-dish-title,
.nf-catalog-title,
.nf-dash-title,
h1, h2, h3, h4, h5, h6 {
    line-height: 1.45;
}

/* ------------------------------------------------------------------
   4. Césure et débordement
   ------------------------------------------------------------------
   Les mots arabes sont en moyenne plus longs une fois composés, et
   « white-space: nowrap » posé sur des libellés latins courts finit
   par déborder de son conteneur.
   ------------------------------------------------------------------ */

.nf-highlight,
.nf-chart-label,
.nf-card-distance,
.nf-card-prep {
    white-space: normal;
}

/* ------------------------------------------------------------------
   5. Chiffres et montants
   ------------------------------------------------------------------
   Les prix restent en chiffres latins, choix déjà acté côté PHP dans
   le commentaire de la fonction money(). On force la direction de
   ces fragments pour que « 1 400 DA » ne soit pas recomposé en
   « DA 400 1 » par l'algorithme bidirectionnel.
   ------------------------------------------------------------------ */

.nf-price,
.nf-card-price,
.nf-card-price-old,
.nf-menu-price,
.nf-summary-price,
.nf-cart-price,
.nf-ticket-total,
.nf-kitchen-count,
.nf-review-average,
.nf-timer-display {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: end;
}

/* Une référence de commande (NF-2026-000123) est une donnée technique :
   elle se lit de gauche à droite dans toutes les langues. */
.nf-ticket-ref,
.nf-tracking-reference,
.nf-promo-code,
.nf-setting-key code,
.nf-log-line {
    direction: ltr;
    unicode-bidi: isolate;
    text-align: start;
}

/* ------------------------------------------------------------------
   Compteurs « x / y »
   ------------------------------------------------------------------
   Un rapport écrit « 15 / 150 » n'est fait que de chiffres et d'une
   barre oblique — tous des caractères neutres ou faiblement orientés.
   Placés dans un paragraphe de droite à gauche, l'algorithme
   bidirectionnel les recompose en « 150 / 15 » : le quota consommé et
   la limite échangent leur place.

   Le défaut a été constaté à l'écran sur le panneau des quotas du
   tableau de bord, où « 15 / 150 plats » s'affichait « 150 / 15 » —
   soit un établissement présenté comme dix fois au-delà de sa
   formule. L'isolement force ces fragments à se lire dans leur ordre
   d'écriture, sans changer leur alignement dans la ligne.
   ------------------------------------------------------------------ */

.nf-quota-label strong,
.nf-quota-label span,
.nf-dash-badge,
.nf-count-badge,
.nf-card-distance,
.nf-review-bar-label,
.nf-review-bar-count {
    direction: ltr;
    unicode-bidi: isolate;
}

/* ------------------------------------------------------------------
   6. Ce qui n'a délibérément pas été touché
   ------------------------------------------------------------------
   · Les pictogrammes du tableau de bord (◱ ◷ ▤ ▦) sont des formes
     géométriques symétriques : les retourner n'aurait aucun effet.
   · La barre de progression des quotas (.nf-quota-bar) se remplit
     déjà depuis la droite — son remplissage est un bloc, donc soumis
     au sens d'écriture du document. Un retournement la casserait.
   · Le panneau latéral du tableau de bord passe déjà à droite : la
     règle est posée dans dashboard.css:593.
   ------------------------------------------------------------------ */
