/* ═══ رسومُ النماذج السعريّة — أصنافُ `fx-*` التي يُخرجها `App\Support\PatternFigure` (أُضيفت 2026-09-25) ═══
   ⚖ **الألوانُ هنا وحدَها**: المولِّدُ يكتب الهندسةَ (الإحداثيّات · حجمُ الخطّ · ثخانةُ الخطوط التي تُحسب بها
     الاصطدامات) والورقةُ تكتب اللون. فلا لونَ في الكود، ولا رقمَ هندسيّاً هنا يخالف ما حسبه المولِّد.
   ⚖ **والرموزُ تنقلب مع السمة الداكنة** بلا سطرٍ إضافيّ: كلُّ لونٍ `var(--fnv-*)`.
   ⚖ **بلا شبكةٍ ولا تعبئة** (طلبُ المالك): الخلفيّةُ صافية، والمستوياتُ خطوطٌ لا مساحات.
   ⚖ **الأخضرُ والأحمرُ للشموع وحدَها** (استثناءٌ مُقرٌّ للشموع · 2026-08-04)، والهدفُ أزرقُ والإبطالُ برتقاليّ (بنيةٌ لا حركةُ سعر). */

.fx { display: block; width: 100%; height: auto; overflow: visible; }
.fx text { font-family: var(--fnv-font-body); letter-spacing: 0; }

/* ⚖ **العربيّةُ تُعزل فقرةً مستقلّة**: الجذرُ `direction="ltr"` للإحداثيّات، و`plaintext` يجعل اتّجاهَ كلّ وسمٍ من
     نصّه — فتُقرأ «70 جلسة» من اليمين كما تُكتب، ولا تنقلب مرساةُ الوسط. */
.fx .fx-ar { unicode-bidi: plaintext; }

/* ── مسارُ السعر ── */
.fx-px { fill: none; stroke: var(--fnv-ink); stroke-linejoin: round; stroke-linecap: round; }
.fx-cu { fill: var(--fnv-surface); stroke: var(--fnv-up); stroke-width: 1; }
.fx-cu-w { fill: none; stroke: var(--fnv-up); stroke-width: 1; }
.fx-cd { fill: var(--fnv-down); stroke: var(--fnv-down); stroke-width: 1; }
.fx-cd-w { fill: none; stroke: var(--fnv-down); stroke-width: 1; }

/* ── خطوطُ النموذج والمستويات ── */
.fx-pl { fill: none; stroke: var(--fnv-ink-3); stroke-width: 1.2; stroke-dasharray: 5 3; }
.fx-tg { fill: none; stroke: var(--fnv-gamma-pos); stroke-width: 1.4; stroke-dasharray: 3 2; }
.fx-sp { fill: none; stroke: var(--fnv-gamma-neg); stroke-width: 1.4; stroke-dasharray: 3 2; }
.fx-rf { fill: none; stroke: var(--fnv-ink-3); stroke-width: 1.2; stroke-dasharray: 1 3; }
.fx-scn { fill: none; stroke: var(--fnv-gamma-pos); stroke-width: 1.3; stroke-dasharray: 2 3; }
.fx-scn-h { fill: none; stroke: var(--fnv-gamma-pos); stroke-width: 1.3; stroke-linejoin: round; }

/* ── الإشارة: حلقةٌ عند أوّل إغلاقٍ يتجاوز المستوى ── */
.fx-sig { fill: var(--fnv-surface); stroke: var(--fnv-ink); stroke-width: 2; }

/* ── الحجم: مسارٌ واحدٌ محايد ── */
.fx-vol { fill: none; stroke: var(--fnv-n-300); }

/* ── الوسوم: هالةٌ بلون السطح تفصل الحرفَ عمّا قد يجاوره ── */
.fx-lb { fill: var(--fnv-ink); font-weight: 600; paint-order: stroke; stroke: var(--fnv-surface); stroke-width: 3px; stroke-linejoin: round; }
.fx-ld { fill: none; stroke: var(--fnv-ink-3); stroke-width: .8; }
.fx-mk { fill: var(--fnv-ink); }
.fx-mk-n { fill: var(--fnv-surface); font-weight: 600; }

/* ── عمودُ المحور والزمن ──
   ⛔ **لا «tag» ولا «badge» في اسم صنف**: `finviro-base.css` تطابقهما جزئيّاً (`[class*="tag"]`) وتفرض حجمَ خطٍّ بـ`!important`
      فيكبر وسمُ السعر 14٪ عمّا حُسب له (قِيس: 117.6$ أعرضُ بـ3.8 وحدة) — فالوسمُ `fx-lv` (مستوى). */
.fx-axl { fill: none; stroke: var(--fnv-border); stroke-width: 1; }
.fx-tk { fill: none; stroke: var(--fnv-n-300); stroke-width: 1; }
.fx-mute { fill: var(--fnv-ink-3); font-weight: 500; }
.fx-lv { font-weight: 600; }
.fx-lv-t { fill: var(--fnv-gamma-pos); }
.fx-lv-s { fill: var(--fnv-gamma-neg-text); }
.fx-lv-r { fill: var(--fnv-ink-3); }
.fx-lv-t-m { fill: none; stroke: var(--fnv-gamma-pos); stroke-width: 2; }
.fx-lv-s-m { fill: none; stroke: var(--fnv-gamma-neg); stroke-width: 2; }
.fx-lv-r-m { fill: none; stroke: var(--fnv-ink-3); stroke-width: 2; }

/* ══ الحاوية: مقاسان في `<figure>` واحدة، والظاهرُ يتبع عرضَ الحاوية لا عرضَ الشاشة ══
   ⛔ **الواسعُ دون 640 بكسلاً يُصغّر الحرفَ دون 13** (قِيس في النموذج الأوّل: 5.7 بكسلاً على 375). فالبطاقةُ
      تُعرض حتّى 640 مسقوفةً بـ460 (فلا يتضخّم حرفُها على لوحٍ متوسّط)، والواسعُ من 640.
   ⚖ **استعلامُ حاويةٍ لا وسائط**: عرضُ الشاشة لا يعرف هوامشَ الحاوية ولا عمودَها. */
.fx-fig { margin: 0; container-type: inline-size; }
.fx-fig .fx-v--card { max-width: 460px; margin-inline: auto; }
.fx-fig .fx-v--wide { display: none; }
@container (min-width: 640px) {
    .fx-fig .fx-v--wide { display: block; }
    .fx-fig .fx-legend.fx-v--wide { display: flex; }
    .fx-fig .fx-v--card { display: none; }
}

/* ── شرحُ الأرقام البديلة وتعليقُ الرسم ── */
.fx-legend { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 14px;
    font-size: .8125rem; line-height: 1.7; color: var(--fnv-ink-3); }
.fx-legend li { display: inline-flex; align-items: center; gap: 6px; }
.fx-legend__n { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px;
    font-family: var(--fnv-font-mono); font-size: .8125rem; font-weight: 600; color: var(--fnv-surface); background: var(--fnv-ink); }
