/* أبناء باكير — بناء 202610291341 */

/* ═══ 00-tokens.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   رموز الهوية والسمات

   قاعدتان مُلزِمتان بعد درس الواجهة الباهتة:
   ① لا لون نصّ يُكتب مباشرةً في أي ملف — كله من هذه الرموز.
   ② كل سطح **لون صلب** لا شفافية. الشفافية فوق خلفية متدرّجة تُنتج
      تبايناً غير معلوم، وهي التي جعلت النصوص تبهت.

   كل زوج (نصّ / سطح) هنا مقيس بنسبة تباين لا تقلّ عن 4.5 : 1
   للنصّ العادي و3 : 1 للعناوين الكبيرة — ويُفحص آلياً في بوابة العبور.
   ═══════════════════════════════════════════════════════════════════ */

/* ── لونُ الهوية: الأزرقُ الملكيّ — ثابتٌ في الوضعين ──
   الأسماءُ (--gold-*، --tx-gold) أُبقيت كما هي عمداً: تتداولها عشراتُ القواعد
   والشيفرات، وتغييرُ الاسم لا يغيّر شيئاً يُرى. فـ«gold» هنا تعني «لون الهوية»
   وقيمُها سُلَّمُ أزرقٍ ملكيّ (‎#2452BE‎ أساسُه). ولتحويل هويةٍ أخرى: build/rebrand-blue.py */
:root{
  --gold-100:#E9F0FD; --gold-200:#A9C4F5; --gold-300:#7FA6EC; --gold-400:#2F63D3;
  --gold-500:#2452BE; --gold-600:#1C4299; --gold-700:#173579; --gold-800:#0F2453; --gold-900:#0A1838;
  --gold-grd:linear-gradient(135deg,#1C4299 0%,#2452BE 40%,#2F63D3 70%,#2452BE 100%);

  --font:'Plex Arabic',system-ui,-apple-system,'Segoe UI',sans-serif;
  --display:'Messiri','Plex Arabic',serif;
  /* ═══ سُلّمُ الحواف — خمسُ درجاتٍ لا تسعَ عشرة ═══
     الحوافُّ كانت تُكتب بالأرقام حيث تُكتب: ٨ و٩ و١٠ و١١ و١٢ و١٣
     و١٤ و١٦ و١٨ و٢٠ و٢٦ في ملفٍّ واحد. فبدت النافذةُ الواحدة
     مؤلَّفةً من قطعٍ من أثاثٍ مختلف.

     والقاعدةُ التي تجعلها تبدو قطعةً واحدة قاعدةٌ هندسية:
     **حافّةُ الداخل = حافّةُ الخارج ناقصَ الحشو**. فالنافذةُ
     ٢٢ بحشو ٢٠ تحوي لوحاً ١٦، واللوحُ بحشو ١٢ يحوي حقلاً ١٢،
     والحقلُ يحوي شارةً ٨. فتتّحد المراكزُ ولا تتزاحم الأقواس.

       xs  ٨   شارةٌ · أيقونةٌ صغيرة · خليّة
       sm ١٠   عنصرٌ داخل لوح
       md ١٢   الحقلُ والزرّ
       lg ١٦   اللوحُ والبطاقة
       xl ٢٢   النافذةُ والسطحُ العائم
     ولا رقمَ يُكتب خارج هذه الدرجات — إلّا الشعرة والدائرة. */
  --r-xs:8px; --r-sm:10px; --r-md:12px; --r-lg:16px; --r-xl:22px;
  --r-pill:999px;

  /* حاشيةُ النافذة الموحّدة — منها تُقاس الترويسةُ والجسمُ والذيل،
     فلا يُنسَّق عنصرٌ على حاشيةٍ ويُنسَّق جارُه على أخرى. */
  --modal-pad:20px;

  --sp-1:6px; --sp-2:10px; --sp-3:14px; --sp-4:20px; --sp-5:28px; --sp-6:40px;
  --ease:cubic-bezier(.2,.7,.3,1);
}

/* ══════════════════════════════════════════════════════════
   الوضع الليلي — الافتراضي (نفس تدرّج شاشة الافتتاح)
   ══════════════════════════════════════════════════════════ */
:root, :root[data-theme="night"]{
  color-scheme:dark;

  /* الخلفيات — ألوان صلبة */
  --bg:#0B1524;                 /* أرضية الصفحة */
  --bg-grad:radial-gradient(60% 45% at 50% 18%, #16294A 0%, #0E1B2E 45%, #070E1A 100%);
  --surface:#16253E;            /* البطاقات والجداول */
  --surface-2:#1D3050;          /* التمرير فوق العنصر */
  --surface-3:#101E33;          /* الترويسة والقائمة */
  --line:#2A3D5C;               /* الحدود */
  --line-2:#3A5178;             /* الحدود عند التركيز */

  /* النصوص — كلها مقيسة على --surface */
  --tx:#F1F6FD;                 /* الأساسي   · 14.9:1 */
  --tx-2:#C2D0E4;               /* الثانوي   · 9.6:1  */
  --tx-3:#93A5BF;               /* الخافت    · 5.7:1  */
  --tx-gold:#A9C4F5;            /* العناوين  · 11.2:1 */
  --tx-gold-2:#7FA6EC;          /* التسميات  · 8.4:1  */

  /* ألوان الأدوار والحالات — النسخة المرفوعة الإضاءة للخلفية الداكنة */
  --r-master:#A9C4F5; --r-ops:#5FCFDE; --r-fin:#5FC98E; --r-wh:#EAA45F; --r-other:#9FB0C8;
  --ok:#5FC98E; --warn:#EAA45F; --err:#F08A8A; --info:#7FA9F5;
  --ok-bg:#12301F; --warn-bg:#33220E; --err-bg:#3A1414; --info-bg:#132444;
  /* خلفية إنذار مصمتة يُكتب عليها بالأبيض — لا تُستعمل ألوان النصّ خلفيةً */
  --err-solid:#C62828; --on-solid:#FFFFFF;

  --chip-bg:#243651; --chip-tx:#D3DFEF;
  --shadow-1:0 2px 6px rgba(0,0,0,.35);
  --shadow-2:0 16px 38px rgba(0,0,0,.45);
  --logo-invert:1;

  /* خريطةُ الميدان المرسومة — بحرٌ وأرضٌ ومدنٌ وبطاقات */
  --fm-sea:#0E1B2E; --fm-grid:#14243C; --fm-land:#132440; --fm-coast:#3A5178;
  --fm-city:#5B7396; --fm-city-tx:#8FA3C0; --fm-dot:#10224A; --fm-num:#A9C4F5;
  --fm-card:#0B1524; --fm-card-line:#3A5178; --fm-ring-on:#FFFFFF; --fm-num-on:#0A1838;
}

/* ══════════════════════════════════════════════════════════
   الوضع النهاري — رماديٌّ مزرقٌّ فاتح بهوية الشركة، بتباين عالٍ
   ══════════════════════════════════════════════════════════ */
:root[data-theme="day"]{
  color-scheme:light;

  --bg:#EEF2F9;
  --bg-grad:radial-gradient(60% 45% at 50% 12%, #FFFFFF 0%, #F2F5FB 45%, #E1E8F4 100%);
  --surface:#FFFFFF;
  --surface-2:#F4F7FC;
  --surface-3:#FAFBFE;
  --line:#D5DEEC;
  --line-2:#2452BE;

  --tx:#0F1A2E;                 /* الأساسي  · 17.4:1 على الأبيض */
  --tx-2:#3A4A66;               /* الثانوي  · 8.4:1  */
  --tx-3:#56657F;               /* الخافت   · 5.6:1  */
  --tx-gold:#15306F;            /* العناوين · 9.1:1  */
  --tx-gold-2:#1D47A6;          /* التسميات · 7.3:1  */

  --r-master:#15306F; --r-ops:#0E7490; --r-fin:#136531; --r-wh:#92400E; --r-other:#414C5C;
  --ok:#136531; --warn:#92400E; --err:#B42222; --info:#1E40AF;
  --ok-bg:#E4F6EA; --warn-bg:#FCEFE2; --err-bg:#FDE9E9; --info-bg:#E6EEFB;
  --err-solid:#B42222; --on-solid:#FFFFFF;

  --chip-bg:#E7EDF8; --chip-tx:#23324F;
  --shadow-1:0 1px 3px rgba(14,33,80,.08);
  --shadow-2:0 14px 32px rgba(14,33,80,.14);
  --logo-invert:0;

  --fm-sea:#E8EEF1; --fm-grid:#DCE4E9; --fm-land:#F3F6FB; --fm-coast:#9FB3D6;
  --fm-city:#5A6A85; --fm-city-tx:#56657F; --fm-dot:#E3ECFC; --fm-num:#15306F;
  --fm-card:#FFFFFF; --fm-card-line:#C8D7F7; --fm-ring-on:#15306F; --fm-num-on:#FFFFFF;
}

/* من لم يختر شيئاً: نتبع إعداد نظامه */
@media (prefers-color-scheme: light){
  :root:not([data-theme]){
    color-scheme:light;
    --bg:#EEF2F9;
    --bg-grad:radial-gradient(60% 45% at 50% 12%, #FFFFFF 0%, #F2F5FB 45%, #E1E8F4 100%);
    --surface:#FFFFFF; --surface-2:#F4F7FC; --surface-3:#FAFBFE;
    --line:#D5DEEC; --line-2:#2452BE;
    --tx:#0F1A2E; --tx-2:#3A4A66; --tx-3:#56657F; --tx-gold:#15306F; --tx-gold-2:#1D47A6;
    --r-master:#15306F; --r-ops:#0E7490; --r-fin:#136531; --r-wh:#92400E; --r-other:#414C5C;
    --ok:#136531; --warn:#92400E; --err:#B42222; --info:#1E40AF;
    --ok-bg:#E4F6EA; --warn-bg:#FCEFE2; --err-bg:#FDE9E9; --info-bg:#E6EEFB;
    --err-solid:#B42222; --on-solid:#FFFFFF;
    --chip-bg:#E7EDF8; --chip-tx:#23324F;
    --shadow-1:0 1px 3px rgba(14,33,80,.08);
    --shadow-2:0 14px 32px rgba(14,33,80,.14);
    --logo-invert:0;
    --fm-sea:#E8EEF1; --fm-grid:#DCE4E9; --fm-land:#F3F6FB; --fm-coast:#9FB3D6;
    --fm-city:#5A6A85; --fm-city-tx:#56657F; --fm-dot:#E3ECFC; --fm-num:#15306F;
    --fm-card:#FFFFFF; --fm-card-line:#C8D7F7; --fm-ring-on:#15306F; --fm-num-on:#FFFFFF;
  }
}

/* ═══ 10-base.css ═══ */
/* ═══ الخطوط المحلّية — صفر طلبات لمزوّد خارجي ═══ */
@font-face{font-family:'Plex Arabic';src:url('assets/fonts/plex-ar-400.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Plex Arabic';src:url('assets/fonts/plex-ar-500.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Plex Arabic';src:url('assets/fonts/plex-ar-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Plex Arabic';src:url('assets/fonts/plex-ar-700.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Plex Arabic';src:url('assets/fonts/plex-lat-400.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-024F}
@font-face{font-family:'Plex Arabic';src:url('assets/fonts/plex-lat-600.woff2') format('woff2');font-weight:600;font-display:swap;unicode-range:U+0000-024F}
@font-face{font-family:'Plex Arabic';src:url('assets/fonts/plex-lat-700.woff2') format('woff2');font-weight:700;font-display:swap;unicode-range:U+0000-024F}
@font-face{font-family:'Messiri';src:url('assets/fonts/messiri-600.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'Messiri';src:url('assets/fonts/messiri-700.woff2') format('woff2');font-weight:700;font-display:swap}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

/* الخلفية على عنصر الجذر مباشرةً — تُرسَم دائماً ولا تعتمد على
   طبقات مثبّتة أو أنماط تثبيت قد لا يرسمها المتصفّح في بعض الحالات.
   هذا هو سبب بهتان الواجهة الذي عولج. */
html{
  height:100%;
  background:var(--bg);
  background-image:var(--bg-grad);
  background-repeat:no-repeat;
  background-size:100% 100vh;
  background-attachment:scroll;
}
body{
  min-height:100%;
  font-family:var(--font);color:var(--tx);background:transparent;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}

button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
input,select,textarea{font:inherit;color:var(--tx)}
a{color:inherit}
table{border-collapse:collapse;width:100%}
::placeholder{color:var(--tx-3);opacity:1}

/* الصفحة تُحقن هنا — وهي فارغة تماماً قبل تسجيل الدخول */
.sh-page{display:block;min-height:100vh}
body.sh-locked .sh-page{display:none}
.sh-page-body{display:block;padding:var(--sp-5)}
.sh-page-error{
  padding:var(--sp-4);border-radius:var(--r-md);
  background:var(--err-bg);border:1px solid var(--err);color:var(--err);font-size:14px;font-weight:600;
}

/* تركيز واضح في كل مكان — إتاحة لا تفاوض عليها */
:focus-visible{outline:2px solid var(--line-2);outline-offset:2px;border-radius:4px}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* ═══ 20-shell.css ═══ */
/* ═══ الهيكل: الترويسة والقائمة الجانبية ═══ */
body.sh-in .sh-page{margin-inline-start:248px;padding-block-start:64px}
.sh-shell{display:contents}
body.sh-locked .sh-head,body.sh-locked .sh-nav{display:none}

/* ═══ الترويسة ═══
   ثلاثُ مناطقَ لا سلسلةُ أزرار: الهُويّة، فالبحث، فالأدواتُ وبطاقةُ
   المستخدم. وحدةُ القياس واحدةٌ في كلّ عنصرٍ (36 نقطة) فتستقيم
   الخطوطُ الأفقية، ووزنُ اللون يتدرّج: الأدواتُ أخفتُ من البطاقة،
   والبطاقةُ أخفتُ من فعلٍ يُنفَّذ. */
.sh-head{
  position:fixed;inset-block-start:0;inset-inline:0;z-index:40;height:64px;
  display:flex;align-items:center;gap:14px;padding:0 18px;
  background:var(--surface-3);border-block-end:1px solid var(--line);
  box-shadow:var(--shadow-1);
}
.sh-head-gap{flex:1 1 auto;min-inline-size:0}
.sh-burger{
  display:none;width:34px;height:34px;flex:0 0 34px;border-radius:var(--r-xs);place-items:center;
  color:var(--tx-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);
  transition:color .16s,box-shadow .16s;
}
.sh-burger svg{width:17px;height:17px}
.sh-burger:hover{color:var(--tx);box-shadow:inset 0 0 0 1px var(--line-2)}

/* الهُويّة: شعارٌ في إطارٍ خفيف، ثمّ اسمُ القسم بفاصلٍ رقيقٍ بينهما */
.sh-brand{display:flex;align-items:center;gap:11px;flex:0 0 auto;min-inline-size:0}
.sh-logo{
  width:36px;height:36px;object-fit:contain;flex:0 0 36px;padding:2px;
  border-radius:var(--r-sm);background:#FFFFFF;box-shadow:inset 0 0 0 1px var(--line);
}
.sh-title{
  font-family:var(--display);font-weight:700;font-size:17px;color:var(--tx-gold);
  white-space:nowrap;padding-inline-start:11px;position:relative;
}
.sh-title::before{
  content:'';position:absolute;inset-inline-start:0;inset-block:7px;
  width:1px;background:var(--line);
}

/* بحث الهيدر */
.sh-search{position:relative;flex:0 1 320px;max-inline-size:320px;min-inline-size:0}
.sh-search-ic{position:absolute;inset-inline-start:11px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--tx-3);pointer-events:none}
.sh-search-ic svg{width:100%;height:100%}
.sh-search-in{
  width:100%;height:36px;padding:0 12px 0 34px;border-radius:var(--r-pill);font-size:12.5px;font-family:var(--font);
  background:var(--surface-2);border:1px solid transparent;color:var(--tx);
  transition:border-color .16s,box-shadow .16s,background .16s;
}
.sh-search-in:hover{background:var(--surface)}
.sh-search-in::placeholder{color:var(--tx-3)}
.sh-search-in:focus{outline:none;background:var(--surface);border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(47,99,211,.18)}
.sh-search-in::-webkit-search-cancel-button{display:none}
.sh-search-panel{
  position:absolute;inset-inline:0;top:calc(100% + 8px);z-index:60;max-block-size:70vh;overflow-y:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-2);
  padding:6px;display:none;
}
.sh-search.open .sh-search-panel{display:block}
.sh-search-item{
  display:flex;align-items:center;gap:10px;width:100%;text-align:start;padding:8px 10px;border-radius:var(--r-md);
}
.sh-search-item:hover{background:var(--surface-2)}
.sh-search-ico{flex:0 0 22px;width:22px;height:22px;color:var(--tx-gold-2)}
.sh-search-ico svg{width:100%;height:100%}
.sh-search-tx{display:flex;flex-direction:column;line-height:1.3;overflow:hidden}
.sh-search-tx b{font-size:13px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-search-tx small{font-size:11px;color:var(--tx-3)}
.sh-search-empty{padding:14px 10px;text-align:center;font-size:12.5px;color:var(--tx-3)}

/* ═══ حاضنةُ الأدوات ═══
   كانت أربعةَ صناديقَ متجاورةٍ متساويةِ الوزن، فتُقرأ كأربعةِ قرارات.
   صارت مجموعةً واحدةً بخلفيةٍ خافتةٍ وفواصلَ شعرية: تُقرأ «أدوات»
   بنظرةٍ واحدة، ولا يزاحم وزنُها بطاقةَ المستخدم إلى جوارها. */
.sh-tools{
  display:flex;align-items:center;gap:2px;flex:0 0 auto;padding:3px;
  border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);
}
/* بلا فواصلَ بينها: الحاضنةُ وحدَها تكفي للجمع، والخطوطُ الشعرية
   في مقاسٍ كهذا ضجيجٌ يُتعب العين ولا يُفيدها. */

/* مؤشّرُ المزامنة — نقطةٌ ملوّنةٌ صغيرة لا شارةٌ نصّية دائمة:
   أخضر = تعمل وكل شيءٍ وصل، أصفر = جاري الاتصال أو بانتظار دورةٍ
   قادمة، أحمر = لا يوجد اتصالٌ فعليّ الآن. التفاصيل كاملةً في
   التلميح (title) عند التحويم — لا تُفرَض على المستخدم دائماً. */
.sh-pill{
  width:34px;height:34px;border-radius:var(--r-xs);display:grid;place-items:center;flex:0 0 34px;
  background:transparent;border:0;transition:background .16s;
}
.sh-pill:hover{background:var(--surface)}
.sh-pill-dot{
  width:9px;height:9px;border-radius:50%;background:var(--tx-3);flex:0 0 9px;
  transition:box-shadow .18s,background .18s;
}
.sh-pill[data-color="green"] .sh-pill-dot{background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}
.sh-pill[data-color="yellow"] .sh-pill-dot{background:var(--warn);box-shadow:0 0 0 3px var(--warn-bg)}
.sh-pill[data-color="red"] .sh-pill-dot{background:var(--err);box-shadow:0 0 0 3px var(--err-bg)}
.sh-pill[data-state="syncing"] .sh-pill-dot{animation:shBeat 1s ease-in-out infinite}
@keyframes shBeat{0%,100%{opacity:.35}50%{opacity:1}}

/* ═══ الطرازُ الموحّد لكلّ زرٍّ أيقونيّ ═══
   قياسٌ واحد (34 نقطة)، وانحناءٌ واحد (9)، وأيقونةٌ خطّيةٌ واحدة
   (16 نقطة)، ولونٌ خافتٌ يشتدّ عند التحويم. فلا يبدو زرٌّ غريباً
   عن جاره سواءٌ كان في الحاضنة أو خارجها. */
.sh-theme{
  width:34px;height:34px;border-radius:var(--r-xs);display:grid;place-items:center;
  background:transparent;border:0;color:var(--tx-3);
  transition:background .16s,color .16s;
}
.sh-theme:hover{background:var(--surface);color:var(--tx)}
.sh-theme .ic{width:16px;height:16px;display:inline-flex}
.sh-theme .ic svg{width:100%;height:100%}

/* ═══ مفتاحُ الليل والنهار ═══
   الشمسُ في طرفٍ والقمرُ في طرف، وقرصٌ ينزلق بينهما في حركةٍ
   واحدةٍ مرنة. الوضعُ القائم يُقرأ قبل اللمس: القرصُ فوق رمزه. */
.sh-sw{
  position:relative;width:58px;height:30px;flex:0 0 58px;border:0;padding:0;
  border-radius:var(--r-pill);cursor:pointer;overflow:hidden;
  background:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .18s var(--ease);
}
.sh-sw:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
.sh-sw:focus-visible{outline:0;box-shadow:inset 0 0 0 1px var(--line-2),0 0 0 3px var(--info-bg)}
.sh-sw-ic{
  position:absolute;inset-block:0;width:28px;display:grid;place-items:center;z-index:2;
  pointer-events:none;transition:color .22s var(--ease);
}
.sh-sw-ic svg{width:14px;height:14px}
.sh-sw-ic.day{inset-inline-start:2px}
.sh-sw-ic.night{inset-inline-end:2px}
/* القرصُ الذهبيّ ينزلق — والانتقالُ مرنٌ لا خطّيّ فيُحسّ بالسلاسة */
.sh-sw-knob{
  position:absolute;inset-block-start:3px;width:24px;height:24px;border-radius:50%;z-index:1;
  background:var(--gold-grd);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 1px 3px rgba(0,0,0,.25);
  transition:inset-inline-start .32s cubic-bezier(.5,1.6,.5,1);
}
/* القرصُ يستقرّ فوق الوضع القائم، والرمزُ تحته يصير داكناً على
   الذهب فيُقرأ بوضوح، والرمزُ الآخر يبقى خافتاً يدلّ على الوجهة.
   فالمفتاحُ يقول أمرين معاً: أين أنت الآن، وإلى أين تذهب إن ضغطت. */
.sh-sw[data-mode="day"] .sh-sw-knob{inset-inline-start:3px}
.sh-sw[data-mode="day"] .sh-sw-ic.day{color:var(--gold-900)}
.sh-sw[data-mode="day"] .sh-sw-ic.night{color:var(--tx-3)}

.sh-sw[data-mode="night"] .sh-sw-knob{inset-inline-start:31px}
.sh-sw[data-mode="night"] .sh-sw-ic.night{color:var(--gold-900)}
.sh-sw[data-mode="night"] .sh-sw-ic.day{color:var(--tx-3)}
@media (prefers-reduced-motion:reduce){ .sh-sw-knob{transition:none} }

/* ═══ منطقةُ المستخدم ═══
   البطاقةُ وفعلاها في مجموعةٍ واحدةٍ ملتصقة: مَن أنت، ثمّ ما تفعله
   بحسابك. وبينها وبين الأدوات فاصلٌ رقيقٌ يفصل المجموعتين. */
.sh-user-zone{
  display:flex;align-items:center;gap:8px;flex:0 0 auto;
  padding-inline-start:14px;position:relative;
}
.sh-user-zone::before{
  content:'';position:absolute;inset-inline-start:0;inset-block:12px;
  width:1px;background:var(--line);
}

/* بطاقةُ المستخدم — وحدةٌ قائمةٌ بذاتها لا حرفانِ عائمان */
.sh-user{
  display:flex;align-items:center;gap:10px;
  padding:4px 12px 4px 5px;border-radius:var(--r-pill);
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .18s;
}
.sh-user:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
.sh-av{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:0 0 34px;
  font-size:12px;font-weight:800;letter-spacing:.3px;
  color:#FFFFFF;background:var(--gold-grd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 0 0 0 2px var(--surface), 0 0 0 3px var(--gold-500);
}
.sh-who-txt{display:flex;flex-direction:column;line-height:1.3;min-inline-size:0}
.sh-who-txt b{
  font-size:12.5px;font-weight:700;color:var(--tx);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:150px;
}
.sh-who-txt small{
  font-size:10.5px;font-weight:600;color:var(--tx-gold-2);letter-spacing:.2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* الخروج — الفعلُ الوحيدُ الذي لا رجعةَ فيه، فيُميَّز بلمسةٍ دافئةٍ
   عند التحويم وحدَها: بارزٌ حين يُقصَد، هادئٌ حين لا يُقصَد. */
.sh-out{
  display:inline-flex;align-items:center;gap:7px;height:34px;
  padding:0 13px;border-radius:var(--r-xs);font-size:12.5px;font-weight:600;color:var(--tx-2);
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);
  transition:color .16s,box-shadow .16s,background .16s;
}
.sh-out:hover{color:var(--err);background:var(--err-bg);box-shadow:inset 0 0 0 1px var(--err)}
.sh-out .ic{width:16px;height:16px;flex:0 0 16px;display:inline-flex}
.sh-out .ic svg{width:100%;height:100%}

/* ── القائمة ── */
.sh-nav{
  position:fixed;inset-block:60px 0;inset-inline-start:0;z-index:35;width:264px;
  padding:var(--sp-4) var(--sp-3) var(--sp-5);overflow-y:auto;overflow-x:hidden;
  background:var(--surface-3);border-inline-end:1px solid var(--line);
}
.sh-nav-group{
  margin-block-end:10px;border-radius:var(--r-lg);overflow:hidden;
  background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--shadow-1);
}
.sh-nav-group.collapsed{background:transparent;border-color:transparent;box-shadow:none}
.sh-nav-label{
  display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;
  text-align:start;
  font-size:12.5px;font-weight:800;color:var(--tx-gold-2);letter-spacing:.3px;
  transition:background .14s,color .14s;
}
.sh-nav-label:hover{background:var(--surface-2);color:var(--tx-gold)}
.sh-nav-ico{
  display:inline-flex;flex:0 0 28px;width:28px;height:28px;color:var(--tx-gold-2);
  align-items:center;justify-content:center;border-radius:var(--r-md);
  background:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--line);
}
.sh-nav-ico svg{width:15px;height:15px}
.sh-nav-label-txt{flex:1;text-transform:uppercase;font-size:11.5px}
.sh-nav-count{
  font-size:10.5px;font-weight:800;color:var(--tx-2);background:var(--chip-bg);
  border-radius:var(--r-pill);min-width:20px;height:20px;display:inline-flex;
  align-items:center;justify-content:center;padding:0 6px;
}
.sh-nav-chev{
  display:inline-flex;flex:0 0 14px;width:14px;height:14px;color:var(--tx-3);
  transition:transform .18s var(--ease);
}
.sh-nav-chev svg{width:100%;height:100%}
.sh-nav-group.collapsed .sh-nav-chev{transform:rotate(-90deg)}

.sh-nav-list{
  margin-block-start:2px;padding:0 8px 8px;overflow:hidden;
  max-block-size:800px;opacity:1;
  transition:max-block-size .2s var(--ease),opacity .16s;
}
.sh-nav-group.collapsed .sh-nav-list{
  max-block-size:0;opacity:0;padding:0 8px;transition:max-block-size .18s var(--ease),opacity .1s;
}

.sh-nav-btn{
  display:flex;align-items:center;width:100%;text-align:start;
  padding:9px 12px 9px 26px;margin-block-end:2px;
  border-radius:var(--r-md);font-size:13.5px;font-weight:600;color:var(--tx-2);
  border-inline-start:3px solid transparent;position:relative;
  transition:background .14s,color .14s,border-color .14s,box-shadow .14s,transform .1s;
}
.sh-nav-btn::before{
  content:'';position:absolute;inset-inline-start:12px;top:50%;
  width:5px;height:5px;border-radius:50%;background:var(--line-2);
  transform:translateY(-50%);opacity:.7;
}
.sh-nav-btn:hover{background:var(--surface-2);color:var(--tx)}
.sh-nav-btn:hover::before{background:var(--tx-gold-2)}
.sh-nav-btn:active{transform:scale(.98)}
/* أثر فرشاة: صلبٌ عند بداية النص (يمين الصفحة بالاتّجاه العربي) ويتلاشى نحو اليسار */
.sh-nav-btn.on{
  background:linear-gradient(to left,#C9D9F8 0,#DCE7FB 30%,rgba(220,231,251,.65) 52%,rgba(220,231,251,.22) 78%,rgba(220,231,251,0) 100%);
  color:var(--gold-900);border-inline-start-color:transparent;font-weight:800;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4);
}
.sh-nav-btn.on::before{display:none}
.sh-nav-btn.on:hover{filter:brightness(1.05)}
@media (max-width:920px){
  .sh-burger{display:grid}
  body.sh-in .sh-page{margin-inline-start:0}
  /* الدرج المطويّ كان يبقى **داخل** المستند وإن خرج عن الشاشة،
     فيمدّ عرضَ الصفحة 248 نقطة ويصير كلُّ قسمٍ يُمرَّر جانبياً على
     الهاتف. والقارئُ الصوتيّ كان يقرؤه أيضاً وهو غيرُ ظاهر.
     فيُقصّ أفقياً بـ clip — لا hidden، فذاك يُنشئ حاوية تمريرٍ
     تكسر الترويسة الثابتة — ويُخفى عن القراءة حتى يُفتح. */
  html,body{overflow-x:clip;max-inline-size:100%}
  /* الظهورُ فوريّ والاختفاءُ بعد انتهاء الانزلاق: لو أُدرجت
     `visibility` في الانتقال نفسه لبقي الدرجُ مخفيّاً بينما ينزلق
     داخلاً، ولاختفى فجأةً قبل أن يخرج. فتُؤخَّر عند الإغلاق وحده. */
  .sh-nav{
    transform:translateX(100%);visibility:hidden;
    transition:transform .22s var(--ease),visibility 0s .22s;
  }
  body.sh-nav-open .sh-nav{
    transform:none;visibility:visible;box-shadow:var(--shadow-2);
    transition:transform .22s var(--ease),visibility 0s 0s;
  }
  /* لوحٌ متوسّط: يبقى الاسمُ ويسقط المنصب، والبحثُ يضيق */
  .sh-search{flex-basis:200px;max-inline-size:200px}
  .sh-who-txt small{display:none}
  .sh-who-txt b{max-inline-size:110px}
  .sh-title{display:none}
}

/* لوحٌ أضيق: تسقط بطاقةُ الاسم كلُّها ويبقى القرصُ وحدَه — وهو
   يكفي للتعريف، ويُبقي الأدواتِ والخروجَ في متناول الإصبع. */
@media (max-width:780px){
  /* بحثُ الترويسة وحده — لا خانةُ البحث في شريط أدوات الصفحة (صنفُها نفسُه): كانت تختفي من كلّ قسم على الهاتف */
  .sh-head .sh-search{display:none}
  .sh-who-txt{display:none}
  .sh-user{padding:4px;gap:0}
  .sh-out .tx{display:none}
  .sh-out{padding:0 10px}
}

/* ═══ الهاتف ═══
   شاشةٌ عرضُها أربعمئة نقطة لا تتّسع لما تتّسع له شاشةُ مكتب.
   والحلُّ ليس تصغير كلّ شيء — بل إسقاط الحشو الزائد وإبقاء الرقم
   والاسم في مقاسٍ يُقرأ. */
@media (max-width:560px){
  /* الترويسة كانت تحمل ثمانية عناصر في 390 نقطة، فتلتفّ: شارةُ
     المزامنة تُدفَع فوق حدّ الشاشة وزرُّ الخروج يخرج عن يسارها،
     فلا يُقرأ ولا يُضغَط. فتُمنع الالتفافة أوّلاً، ثمّ يُقلَّص ما
     يُقلَّص: نصُّ المزامنة يُطوى إلى نقطتها الملوّنة — وهي تكفي —
     وزرُّ الخروج يصير رمزاً. */
  .sh-head{height:56px;padding:0 10px;gap:8px;flex-wrap:nowrap}
  .sh-head .sh-search{display:none}
  .sh-logo{width:32px;height:32px;flex-basis:32px}
  .sh-user-zone{padding-inline-start:8px;gap:6px}
  .sh-tools{padding:2px;gap:0}
  /* الإصبعُ ليست مؤشّراً: ما دون اثنتين وثلاثين نقطةً لا يُضغَط
     بثقة، فيُصغَّر النصّ ولا يُصغَّر مساحةُ الضغط. */
  .sh-pill,.sh-theme,.sh-bell{width:32px;height:32px;flex-basis:32px}
  .sh-out{padding:0 9px}
  .sh-page{padding:var(--sp-3) var(--sp-3) var(--sp-6)}
  .sh-nav{width:min(288px,86vw)}
  /* البطاقات عمودٌ واحد: بطاقتان في 390 نقطة تصيران رقمين لا يُقرآن */
  .sh-cards,.sh-tiles{grid-template-columns:1fr}
  .sh-steps{grid-template-columns:1fr}
  .sh-h1{font-size:22px}
}

/* ═══ جرس التنبيهات ═══ */
.sh-bell{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:var(--r-xs);flex:0 0 34px;
  background:transparent;border:0;color:var(--tx-3);
  transition:color .16s,background .16s;
}
.sh-bell:hover{background:var(--surface);color:var(--tx)}
.sh-bell-ic{width:16px;height:16px;display:inline-flex;line-height:1}
.sh-bell-ic svg{width:100%;height:100%}
.sh-bell[data-state="on"]{color:var(--warn)}
/* الحرجُ يُعرَف بلون أيقونته وبشارته الحمراء ونبضِها — لا بمربّعٍ
   ملوّنٍ يجعل زرّاً واحداً يبدو دخيلاً على المجموعة. */
.sh-bell[data-state="crit"]{color:var(--err)}
.sh-bell[data-state="crit"]:hover{background:var(--err-bg)}
.sh-bell[data-state="crit"] .sh-bell-ic{animation:sh-ring 1.8s var(--ease) infinite}
.sh-bell-n{
  position:absolute;inset-block-start:1px;inset-inline-start:1px;min-width:15px;height:15px;
  display:none;align-items:center;justify-content:center;padding:0 4px;border-radius:var(--r-pill);
  font-size:9px;font-weight:800;background:var(--err-solid);color:var(--on-solid);
  box-shadow:0 0 0 2px var(--surface-2);
}
.sh-bell-n:not(:empty){display:inline-flex}
@keyframes sh-ring{0%,88%,100%{transform:rotate(0)}91%{transform:rotate(-13deg)}95%{transform:rotate(13deg)}}
@media (prefers-reduced-motion:reduce){ .sh-bell[data-state="crit"] .sh-bell-ic{animation:none} }

/* ═══ العنصرُ النشط في الوضع الليلي ═══
   الأزرقُ الفاتح المتلاشي يصير على الأرض الكحليّة رمادياً موحلاً؛ فليلاً
   يكون أزرقَ ملكياً يتلاشى ونصُّه أبيض — تباينُ الأبيض على #2452BE ‏6.6:1. */
:root:not([data-theme="day"]) .sh-nav-btn.on{
  background:linear-gradient(to left,#2452BE 0,#2452BE 30%,rgba(36,82,190,.6) 60%,rgba(36,82,190,0) 100%);
  color:#FFFFFF; box-shadow:inset -3px 0 0 #7FA6EC;
}
@media (prefers-color-scheme: light){
  :root:not([data-theme]) .sh-nav-btn.on{
    background:linear-gradient(to left,#C9D9F8 0,#DCE7FB 30%,rgba(220,231,251,.65) 52%,rgba(220,231,251,.22) 78%,rgba(220,231,251,0) 100%);
    color:var(--gold-900); box-shadow:inset -3px 0 0 var(--gold-500);
  }
}

/* ═══ 30-login.css ═══ */
/* ═══ شاشة الدخول — الليل الذهبي (وله مقابله النهاري) ═══ */
.sh-lg{
  position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
  padding:40px 24px;overflow:auto;background:var(--bg);background-image:var(--bg-grad);
  background-repeat:no-repeat;background-size:100% 100%;
}
.sh-lg-wrap{width:100%;max-width:880px;text-align:center}

.sh-lg-logo{
  width:104px;height:104px;margin:0 auto 20px;border-radius:50%;position:relative;
  display:grid;place-items:center;
}
.sh-lg-logo::before{
  content:"";position:absolute;inset:-9px;border-radius:50%;
  background:conic-gradient(from 200deg, rgba(47,99,211,0), rgba(47,99,211,.75), rgba(47,99,211,0) 55%);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));
          mask:radial-gradient(farthest-side,transparent calc(100% - 1.5px),#000 calc(100% - 1.5px));
}
.sh-lg-logo img{width:88px;height:88px;object-fit:contain;filter:drop-shadow(0 6px 22px rgba(0,0,0,.4))}

.sh-lg-h1{font-family:var(--display);font-weight:700;font-size:32px;line-height:1.32;color:var(--tx-gold)}
.sh-lg-sub{margin-block-start:9px;font-size:13.5px;color:var(--tx-2)}
.sh-lg-hint{
  display:inline-flex;align-items:center;gap:8px;margin-block-start:20px;padding:9px 18px;
  border-radius:var(--r-pill);font-size:12.5px;font-weight:600;color:var(--tx-gold-2);
  background:var(--surface);border:1px solid var(--line);
}

.sh-lg-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-block-start:34px}
.sh-lg-card{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;
  padding:26px 16px 20px;border-radius:calc(var(--r-lg) + 4px);text-align:center;overflow:hidden;
  background:linear-gradient(165deg, var(--surface) 0%, var(--surface-2) 145%);
  border:1px solid var(--line);
  box-shadow:var(--shadow-1);
  animation:shLgCardIn .42s var(--ease) backwards;
  transition:transform .22s var(--ease), border-color .22s var(--ease), box-shadow .22s var(--ease);
}
.sh-lg-grid .sh-lg-card:nth-child(1){animation-delay:.02s}
.sh-lg-grid .sh-lg-card:nth-child(2){animation-delay:.06s}
.sh-lg-grid .sh-lg-card:nth-child(3){animation-delay:.10s}
.sh-lg-grid .sh-lg-card:nth-child(4){animation-delay:.14s}
.sh-lg-grid .sh-lg-card:nth-child(n+5){animation-delay:.16s}
@keyframes shLgCardIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
/* شريطٌ علويٌّ رفيع بلون الدور — يظهر خافتاً دوماً ويشتدّ عند التحويم،
   فيربط البطاقةَ بهويتها دون أن يُغرقها لونٌ صريح */
.sh-lg-card::before{
  content:"";position:absolute;inset-block-start:0;inset-inline:14px;height:3px;border-radius:0 0 3px 3px;
  background:var(--acc);opacity:.35;transition:opacity .22s var(--ease);
}
.sh-lg-card:hover,.sh-lg-card:focus-visible{
  transform:translateY(-5px);
  border-color:var(--acc);
  box-shadow:var(--shadow-2), 0 0 0 4px var(--acc-bg);
}
.sh-lg-card:hover::before,.sh-lg-card:focus-visible::before{opacity:1}
.sh-lg-av{
  width:60px;height:60px;border-radius:50%;display:grid;place-items:center;position:relative;
  font-size:17px;font-weight:800;letter-spacing:.02em;color:#fff;background:var(--acc);
  background-image:linear-gradient(160deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 45%, rgba(0,0,0,.12) 100%);
  box-shadow:0 0 0 4px var(--acc-bg), var(--shadow-1), inset 0 1px 0 rgba(255,255,255,.24), inset 0 -1px 2px rgba(0,0,0,.14);
  text-shadow:0 1px 1px rgba(0,0,0,.18);
  transition:box-shadow .22s var(--ease), transform .22s var(--ease);
}
.sh-lg-card:hover .sh-lg-av,.sh-lg-card:focus-visible .sh-lg-av{transform:scale(1.05)}
.sh-lg-av-tx{display:inline-flex;align-items:baseline;gap:.14em;line-height:1}
.sh-lg-av-tx span+span{letter-spacing:0}
/* المؤشّر: حضورٌ حقيقيّ — أخضر لمن فتح حسابه الآن على هذا الجهاز،
   ورماديٌّ لغيره. لا لون الدور بعد اليوم. */
.sh-lg-av::after{
  content:"";position:absolute;inset-block-end:-2px;inset-inline-start:-2px;
  width:15px;height:15px;border-radius:50%;background:var(--tx-3);border:2.5px solid var(--surface);
  box-shadow:0 0 0 1px var(--tx-3);
  transition:background .22s var(--ease),box-shadow .22s var(--ease);
}
.sh-lg-av.on::after{background:var(--ok);box-shadow:0 0 0 1px var(--ok), 0 0 8px 1px var(--ok)}
.sh-lg-nm{font-size:15px;font-weight:700;color:var(--tx);line-height:1.35}
.sh-lg-rl{
  font-size:11px;font-weight:800;padding:4px 12px;border-radius:var(--r-pill);letter-spacing:.01em;
  color:var(--acc);background:var(--acc-bg);border:1px solid transparent;
}

.sh-lg-card.master{--acc:var(--r-master);--acc-bg:var(--info-bg)}
.sh-lg-card.ops   {--acc:var(--r-ops);--acc-bg:var(--info-bg)}
.sh-lg-card.fin   {--acc:var(--r-fin);--acc-bg:var(--ok-bg)}
.sh-lg-card.wh    {--acc:var(--r-wh);--acc-bg:var(--warn-bg)}
.sh-lg-card.other {--acc:var(--r-other);--acc-bg:var(--chip-bg)}

.sh-lg-card.manual{
  justify-content:center;gap:10px;border-style:dashed;border-color:var(--line);
  background:transparent;box-shadow:none;
}
.sh-lg-card.manual::before{display:none}
.sh-lg-ic{
  width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:18px;
  background:var(--surface);border:1px solid var(--line);color:var(--tx-2);
  transition:border-color .22s var(--ease),color .22s var(--ease);
}
.sh-lg-card.manual .sh-lg-nm{font-size:13.5px;font-weight:700;color:var(--tx-2)}
.sh-lg-card.manual .sh-lg-rl{background:transparent;color:var(--tx-3);font-weight:600}
.sh-lg-card.manual:hover,.sh-lg-card.manual:focus-visible{
  background:var(--surface);border-style:solid;border-color:var(--line-2);
  box-shadow:var(--shadow-1);transform:translateY(-5px);
}
.sh-lg-card.manual:hover .sh-lg-ic,.sh-lg-card.manual:focus-visible .sh-lg-ic{
  border-color:var(--tx-gold-2);color:var(--tx-gold-2);
}

/* ── الخطوة الثانية: كلمة المرور ── */
.sh-lg-pw{display:none;max-width:380px;margin:26px auto 0;text-align:center}
body.sh-lg-step2 .sh-lg-grid{display:none}
body.sh-lg-step2 .sh-lg-pw{display:block}
body.sh-lg-step2 .sh-lg-hint{display:none}
.sh-lg-pw-who{font-size:15.5px;font-weight:700;color:var(--tx-gold);margin-block-end:14px}
.sh-lg-pw input{
  width:100%;height:50px;border-radius:var(--r-md);padding:0 16px;text-align:center;
  background:var(--surface);border:1.5px solid var(--line);color:var(--tx);
  font-size:15px;font-weight:600;letter-spacing:2px;
}
.sh-lg-pw input:focus{outline:0;border-color:var(--line-2);box-shadow:0 0 0 4px var(--info-bg)}
.sh-lg-err{min-height:19px;margin-block-start:9px;font-size:12.5px;font-weight:600;color:var(--err)}
.sh-lg-acts{display:flex;gap:9px;margin-block-start:6px}
.sh-lg-go{
  flex:1;height:48px;border-radius:var(--r-md);font-size:15px;font-weight:700;
  color:#FFFFFF;background:var(--gold-grd);box-shadow:var(--shadow-1);
}
.sh-lg-go:hover{transform:translateY(-1px);box-shadow:var(--shadow-2)}
.sh-lg-back{
  height:48px;padding:0 18px;border-radius:var(--r-md);font-size:13.5px;font-weight:600;
  color:var(--tx-2);background:var(--surface);border:1px solid var(--line);
}

.sh-lg-foot{
  margin-block-start:34px;display:flex;align-items:center;justify-content:center;gap:9px;
  font-size:12px;color:var(--tx-3);
}
.sh-lg-foot img{height:20px;width:20px;object-fit:contain;padding:1px;background:#FFFFFF;border-radius:var(--r-pill)}

/* مفتاحُ الليل والنهار على شاشة الدخول — يرث طراز `.sh-sw` نفسه
   من ملفّ الهيكل، ولا يبقى له هنا إلّا موضعُه على الشاشة. */
.sh-lg-theme{position:fixed;inset-block-start:18px;inset-inline-end:18px}

/* ربط الجهاز بالمزامنة — بجانب مبدّل السمة، بوزنٍ أخفّ لأنه إعدادٌ
   نادر الاستعمال (مرّةً واحدة لكل جهاز) لا فعلاً يومياً */
.sh-lg-sync{
  position:fixed;inset-block-start:22px;inset-inline-end:88px;
  width:34px;height:34px;border-radius:var(--r-xs);display:grid;place-items:center;border:0;
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--tx-3);
}
.sh-lg-sync svg{width:16px;height:16px}
.sh-lg-sync:hover{box-shadow:inset 0 0 0 1px var(--line-2);color:var(--tx)}

@media (max-width:820px){
  .sh-lg-grid{grid-template-columns:repeat(2,1fr)}
  .sh-lg-h1{font-size:24px}
}

/* ═══ الترقية: بحثٌ وتنقّلٌ وعينٌ ومقياسُ قوّة ═══
   كلُّ لونٍ هنا من متغيّرات الهوية — فالوضعان الليليّ والنهاريّ
   يتبعانها بلا لونٍ ثانٍ يُكتب في هذا الملفّ. */

/* ── البحث ── */
.sh-lg-find{max-width:340px;margin:22px auto 0}
.sh-lg-find input{
  width:100%;padding:11px 16px;border-radius:var(--r-md);font-family:inherit;font-size:13.5px;
  text-align:center;color:var(--tx);background:var(--surface);border:1px solid var(--line);
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease);
}
.sh-lg-find input::placeholder{color:var(--tx-3)}
.sh-lg-find input:focus{outline:0;border-color:var(--line-2);box-shadow:0 0 0 4px var(--info-bg)}
.sh-lg-card.gone{display:none}
.sh-lg-none{
  display:none;margin-block-start:18px;font-size:13px;font-weight:600;color:var(--tx-3);
}
.sh-lg-none.on{display:block}
body.sh-lg-step2 .sh-lg-find,body.sh-lg-step2 .sh-lg-none{display:none}

/* ── آخر مَن دخل من هذا الجهاز ── */
.sh-lg-card{position:relative}
.sh-lg-card.last{border-color:var(--acc);box-shadow:var(--shadow-1), 0 0 0 3px var(--acc-bg)}
.sh-lg-card.last::before{opacity:1}
.sh-lg-card:focus-visible{outline:0}
.sh-lg-last{
  position:absolute;inset-block-start:10px;inset-inline-end:10px;
  display:inline-flex;align-items:center;gap:3px;
  font-size:9.5px;font-weight:800;padding:3px 9px 3px 8px;border-radius:var(--r-pill);
  color:#FFFFFF;background:var(--gold-grd);box-shadow:var(--shadow-1);
}
.sh-lg-last::before{content:"★";font-size:8px}

/* ── الاسم اليدويّ: لا يظهر إلّا في مساره ── */
.sh-lg-name{display:none}
body.sh-lg-manual .sh-lg-name{display:block;margin-block-end:10px}

/* ── العين ── */
.sh-lg-wrapin{position:relative;display:block}
.sh-lg-wrapin input{padding-inline-end:44px}
.sh-lg-eye{
  position:absolute;inset-inline-end:6px;inset-block-start:50%;transform:translateY(-50%);
  width:32px;height:32px;border:0;border-radius:var(--r-xs);cursor:pointer;
  background:none;color:var(--tx-3);font-family:inherit;line-height:1;
  display:grid;place-items:center;transition:color .16s var(--ease),background .16s var(--ease);
}
.sh-lg-eye svg{width:16px;height:16px}
.sh-lg-eye:hover{background:var(--chip-bg);color:var(--tx-2)}
.sh-lg-eye.on{color:var(--tx-gold)}
.sh-lg-eye:focus-visible{outline:0;box-shadow:0 0 0 3px var(--info-bg)}

/* ── مفتاح الحروف الكبيرة: أشهرُ سببٍ لكلمةٍ صحيحةٍ تُرفض ── */
.sh-lg-caps{
  display:none;margin-block-start:9px;font-size:11.5px;font-weight:700;
  color:var(--warn);background:var(--warn-bg);border-radius:var(--r-xs);padding:6px 12px;
}
.sh-lg-caps.on{display:block}

/* ═══ ③ لوحة الكلمة الجديدة ═══ */
.sh-lg-ch{display:none;max-width:380px;margin:26px auto 0;text-align:center}
body.sh-lg-step3 .sh-lg-ch{display:block}
body.sh-lg-step3 .sh-lg-grid,
body.sh-lg-step3 .sh-lg-hint,
body.sh-lg-step3 .sh-lg-find,
body.sh-lg-step3 .sh-lg-none,
body.sh-lg-step3 .sh-lg-pw{display:none}

.sh-lg-ch-why{
  margin-block-end:16px;font-size:12.5px;font-weight:600;line-height:1.6;
  color:var(--warn);background:var(--warn-bg);border-radius:var(--r-sm);padding:10px 14px;
}
.sh-lg-ch input{
  width:100%;padding:13px 17px;border-radius:var(--r-md);font-family:inherit;font-size:14.5px;
  text-align:center;color:var(--tx);background:var(--surface);border:1px solid var(--line);
  margin-block-end:10px;
}
.sh-lg-ch input::placeholder{color:var(--tx-3)}
.sh-lg-ch input:focus{outline:0;border-color:var(--line-2);box-shadow:0 0 0 4px var(--info-bg)}

/* المقياس: أربع شرائح تُضاء بالصنف لا بنمطٍ يُكتب من الشيفرة */
.sh-lg-meter{display:flex;gap:5px;margin:2px 0 8px}
.sh-lg-meter i{
  flex:1;height:5px;border-radius:var(--r-pill);background:var(--line);
  transition:background .22s var(--ease);
}
.sh-lg-meter.s1 i:nth-child(-n+1){background:var(--err)}
.sh-lg-meter.s2 i:nth-child(-n+2){background:var(--warn)}
.sh-lg-meter.s3 i:nth-child(-n+3){background:var(--tx-gold)}
.sh-lg-meter.s4 i{background:var(--ok)}
.sh-lg-tip{
  min-height:18px;margin-block-end:12px;font-size:11.5px;font-weight:600;color:var(--tx-3);
}

/* ═══ 40-ui.css ═══ */
/* ═══ عناصر الواجهة المشتركة ═══ */

/* التنبيهات */
.sh-toasts{
  position:fixed;inset-block-end:20px;inset-inline-start:20px;z-index:80;
  display:flex;flex-direction:column;gap:9px;pointer-events:none;max-width:min(400px,calc(100vw - 40px));
}
.sh-toast{
  pointer-events:auto;padding:12px 16px;border-radius:var(--r-md);font-size:13px;font-weight:600;
  background:var(--surface);border:1px solid var(--line);color:var(--tx);
  box-shadow:var(--shadow-2);animation:shToastIn .22s var(--ease);
}
.sh-toast.ok{border-color:var(--ok);background:var(--ok-bg);color:var(--ok)}
.sh-toast.error{border-color:var(--err);background:var(--err-bg);color:var(--err)}
.sh-toast.warn{border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}
.sh-toast.out{opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s}
@keyframes shToastIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ═══════════════════════════════════════════════════════════════
   النوافذ — ثلاثُ مناطقَ على حاشيةٍ واحدة

   كانت الترويسةُ محشوّةً ٢٠ والذيلُ ٢٠ والجسمُ **صفراً**: صنفُ
   `.el` — الذي يُضاف لكلّ نافذةٍ مبنيّةٍ بعُقَد — كان يُصفّر الحشو
   بوزنٍ (0,2,0) يغلب `.sh-form{padding:20px}` بوزنها (0,1,0). فكان
   كلُّ نموذجٍ في المنظومة — أربعون شاشة — يلصق حقولَه بحافّة
   البطاقة وتُقَصّ أطرافُها عند الزاوية المستديرة، بينما عنوانُه
   وأزرارُه منسحبةٌ إلى الداخل. هذا هو التنافرُ الذي يُرى.

   والقاعدةُ عُكست: **الجسمُ محشوٌّ دائماً** بحاشية النافذة نفسِها،
   ومن حمل حشوَه بنفسه يُعلنه صراحةً. فلا يعتمد اتّساقُ أربعين
   شاشةٍ على ترتيب صنفين في ورقة أنماط.
   ═══════════════════════════════════════════════════════════════ */
.sh-modal{
  position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px;
  background:rgba(4,8,16,.6);animation:shFade .16s ease;
}
@keyframes shFade{from{opacity:0}to{opacity:1}}
/* البطاقة عمودٌ مرن لا كتلةٌ صمّاء: الترويسة والأزرار ثابتتان،
   والجسم وحده يمرّر. وبلا هذا تفيض النافذة الطويلة — كالقسيمة
   بسجلّ رحلاتها — خارج الشاشة فيتعذّر بلوغ أعلاها.
   `max-block-size:100%` تقيسها على مساحة الشبكة أي الشاشة ناقص
   حاشيتها، فلا حاجة لوحدات إطلالة. */
.sh-modal-card{
  width:100%;max-width:440px;max-block-size:100%;
  display:flex;flex-direction:column;min-block-size:0;position:relative;
  border-radius:var(--r-xl);overflow:hidden;
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2);
  animation:shPop .2s var(--ease);
}
/* الشريطُ الذهبيّ يتبع قوسَ البطاقة لا يقطعه */
.sh-modal-card::before{
  content:'';position:absolute;inset-block-start:0;inset-inline:0;height:3px;z-index:3;
  border-start-start-radius:var(--r-xl);border-start-end-radius:var(--r-xl);
  background:linear-gradient(to left,var(--gold-500) 0%,var(--gold-400) 35%,rgba(47,99,211,0) 100%);
}
@keyframes shPop{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}
/* نافذةُ الخطر: الحدُّ والشريطُ العلويّ لونٌ واحد، فلا تتنازع
   البطاقةُ إشارتين — ذهباً في أعلاها وحمرةً في إطارها. */
.sh-modal-card.danger{border-color:var(--err)}
.sh-modal-card.danger::before{
  background:linear-gradient(to left,var(--err) 0%,var(--err) 35%,rgba(0,0,0,0) 100%);
}

/* الترويسةُ والذيلُ سطحان صلبان: الجسمُ يمرّ تحتهما فلا يظهر منه
   شيءٌ في حاشيتهما، ولكلٍّ خطُّه الفاصل — فتُقرأ النافذة ثلاثَ
   مناطقَ لا كتلةً واحدةً تسبح فيها الأزرار. */
.sh-modal-head{
  flex:0 0 auto;position:relative;z-index:2;
  padding:16px var(--modal-pad);
  background:var(--surface);border-block-end:1px solid var(--line);
  font-family:var(--display);font-weight:700;font-size:16.5px;color:var(--tx-gold);
}
.sh-modal-body{
  flex:1 1 auto;min-block-size:0;overflow-y:auto;overscroll-behavior:contain;
  padding:var(--modal-pad);font-size:14px;line-height:1.85;color:var(--tx);
}
/* الجسمُ المبنيُّ بعُقَد يرث ارتفاعَ سطره من محتواه لا من نصٍّ
   مقروء — أمّا الحشوُ فيبقى حشوَ النافذة، ومن خالفه أعلن. */
.sh-modal-body.el{line-height:inherit}
.sh-modal-acts{
  flex:0 0 auto;position:relative;z-index:2;display:flex;gap:9px;
  padding:14px var(--modal-pad);
  background:var(--surface);border-block-start:1px solid var(--line);
}
.sh-btn{
  flex:1;height:44px;border-radius:var(--r-md);font-size:14px;font-weight:700;
  background:var(--surface-2);border:1px solid var(--line);color:var(--tx-2);
  transition:border-color .15s,color .15s,background .15s,transform .12s,box-shadow .15s;
}
.sh-btn:hover{border-color:var(--line-2);color:var(--tx)}
.sh-btn:active{transform:scale(.98)}
.sh-btn.primary{
  background:var(--gold-grd);color:#FFFFFF;border-color:transparent;font-weight:800;
  box-shadow:0 6px 16px -6px rgba(28,66,153,.5),inset 0 1px 0 rgba(255,255,255,.4);
}
.sh-btn.primary:hover{box-shadow:0 8px 20px -6px rgba(28,66,153,.6),inset 0 1px 0 rgba(255,255,255,.45)}
.sh-btn.danger{background:var(--err-solid);color:var(--on-solid);border-color:transparent}
.sh-btn.ghost{flex:0 0 auto;padding-inline:20px}
body.sh-modal-open{overflow:hidden}
.sh-btn.ghost.danger{background:transparent;color:var(--err);border-color:var(--err)}
.sh-btn.ghost.danger:hover{background:var(--err-bg)}

/* ═══ 50-page.css ═══ */
/* ═══ عناصر الصفحات المشتركة ═══ */
.sh-h1row{display:flex;align-items:center;gap:var(--sp-3);margin-block-end:var(--sp-2);flex-wrap:wrap}
.sh-h1{font-family:var(--display);font-weight:700;font-size:24px;color:var(--tx-gold)}
.sh-stamp{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-lead{font-size:14px;color:var(--tx-2);margin-block-end:var(--sp-4)}
.sh-add{flex:0 0 auto;margin-inline-start:auto;padding-inline:18px;height:40px}

/* البطاقات — نمطٌ واحدٌ موحَّد لكل بطاقات المنظومة: وجهٌ زجاجيٌّ
   متدرّج (سطوحٌ صلبةٌ معلومة، لا شفافية عائمة فوق مجهول) وهالة
   فرشاةٍ بلون القسم تلوح من خلف الزجاج، وحافّةٌ ذهبية رفيعة. */
.sh-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(206px,1fr));gap:16px}
.sh-card{
  display:flex;flex-direction:column;gap:6px;padding:19px 20px;border-radius:var(--r-lg);text-align:start;
  background:linear-gradient(155deg,var(--surface) 0%,var(--surface-2) 145%);
  border:1px solid var(--line);position:relative;overflow:hidden;
  box-shadow:0 10px 22px -10px rgba(20,15,5,.22),inset 0 1px 0 rgba(255,255,255,.45);
  transition:transform .18s var(--ease),box-shadow .2s var(--ease),border-color .16s;
}
/* هالة الفرشاة: تلوح خلف الوجه الزجاجي من الزاوية العلوية — سطحٌ
   صلبٌ فوق سطحٍ صلبٍ معلوم (وجه البطاقة نفسه)، فالتباين محسوبٌ لا مخمَّن */
.sh-card::after{
  content:'';position:absolute;inset-inline-end:-38%;inset-block-start:-58%;
  width:190px;height:190px;border-radius:50%;
  background:radial-gradient(circle,var(--acc,var(--gold-400)) 0%,transparent 68%);
  opacity:.22;pointer-events:none;transition:opacity .22s var(--ease),transform .22s var(--ease);
}
/* حافّة ذهبية رفيعة تتلاشى — نفس منطق أثر الفرشاة في القائمة الجانبية */
.sh-card::before{
  content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(120deg,var(--acc,var(--gold-400)) 0%,transparent 46%);
  opacity:.55;
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
}
.sh-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px -10px rgba(20,15,5,.3),inset 0 1px 0 rgba(255,255,255,.5);border-color:var(--line-2)}
.sh-card:hover::after{opacity:.32;transform:scale(1.08)}
.sh-card.ops{--acc:var(--r-ops)} .sh-card.fin{--acc:var(--r-fin)}
.sh-card.hr{--acc:var(--r-master)} .sh-card.wh{--acc:var(--r-wh)}
.sh-card-ico{
  display:inline-flex;width:34px;height:34px;margin-block-end:5px;color:var(--acc,var(--tx-gold-2));
  align-items:center;justify-content:center;border-radius:var(--r-md);
  background:var(--surface-2);box-shadow:inset 0 0 0 1px rgba(0,0,0,.05),inset 0 1px 0 rgba(255,255,255,.5);
}
.sh-card-ico svg{width:17px;height:17px}
.sh-card-ico:empty{display:none}
.sh-card-g{font-size:11.5px;font-weight:800;color:var(--acc,var(--tx-gold-2));letter-spacing:.3px}
.sh-card-v{font-size:32px;font-weight:800;color:var(--tx);line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.sh-card-t{font-size:15px;font-weight:800;color:var(--tx)}
.sh-card-s{font-size:12px;font-weight:600;color:var(--tx-3)}

.sh-note{
  margin-block-start:var(--sp-5);padding:15px 18px;border-radius:var(--r-md);font-size:13px;line-height:1.9;
  background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--gold-400);color:var(--tx-2);
}
.sh-note b{color:var(--tx-gold-2)}

/* شريط الأدوات */
.sh-bar{display:flex;align-items:center;gap:var(--sp-2);margin-block:var(--sp-3)}
.sh-search{
  flex:1;max-width:420px;height:40px;border-radius:var(--r-md);padding:0 14px;
  background:var(--surface);border:1px solid var(--line);color:var(--tx);font-size:13.5px;
}
.sh-search:focus{outline:0;border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(47,99,211,.22)}
.sh-count{font-size:13px;font-weight:600;color:var(--tx-2);font-variant-numeric:tabular-nums}

/* الجداول */
.sh-tblwrap{overflow-x:auto;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-1)}
.sh-tbl{font-size:13px;min-width:680px}
.sh-tbl thead th{
  position:sticky;inset-block-start:0;padding:12px 14px;text-align:start;font-size:12px;font-weight:800;
  color:var(--tx-gold-2);background:var(--surface-3);border-block-end:2px solid var(--gold-400);white-space:nowrap;
  width:var(--w,auto);letter-spacing:.2px;
}
.sh-tbl tbody td{padding:10px 14px;border-block-end:1px solid var(--line);color:var(--tx);white-space:nowrap}
.sh-tbl tbody tr:hover td{background:var(--surface-2)}
.sh-tbl tbody tr.clickable:hover td:first-child{box-shadow:inset 3px 0 0 var(--gold-400)}
.sh-tbl .ltr{direction:ltr;text-align:end;font-variant-numeric:tabular-nums}
.sh-chip{padding:3px 10px;border-radius:var(--r-pill);font-size:11.5px;font-weight:700;background:var(--chip-bg);color:var(--chip-tx)}
.sh-more{text-align:center;color:var(--tx-2);font-size:12.5px;font-weight:600;padding:12px}

/* النماذج */
/* ═══ شبكةُ الحقول لا تفيض عن نافذتها ═══
   العمودُ `1fr` أدناه `auto` لا صفر: أي أنّ أضيقَ ما يقبله هو
   **أعرضُ محتوىً** فيه — حقلٌ بنصٍّ مقترَحٍ طويل، أو منطقةُ نصّ.
   فكانت أعمدةُ كلّ نموذجٍ في المنظومة تتّسع لمحتواها لا لنافذتها،
   فتفيض الحقولُ عن البطاقة ثمانين نقطةً وتُقَصّ عند حافّتها
   المستديرة — وهو ما يُرى «حوافَّ غير مستوية».
   `minmax(0,1fr)` يُطلق العمودَ من قيد محتواه، ويُكمِله
   `min-inline-size:0` على الحقل وعرضُ ١٠٠٪ على عنصر الإدخال. */
.sh-form{display:grid;gap:13px;padding:var(--modal-pad)}
.sh-fld{display:flex;flex-direction:column;gap:5px;min-inline-size:0}
.sh-fld > span{font-size:12.5px;font-weight:700;color:var(--tx-2)}
.sh-in{
  inline-size:100%;min-inline-size:0;
  height:42px;border-radius:var(--r-md);padding:0 13px;font-size:13.5px;
  background:var(--surface-2);border:1px solid var(--line);color:var(--tx);
}
.sh-in:focus{outline:0;border-color:var(--gold-400);box-shadow:0 0 0 3px rgba(47,99,211,.22)}
.sh-in.ltr{direction:ltr;text-align:end}

/* ── لائحة البحث الملوّنة — حقل السائق/اللوحة في أمر العمل ──
   حالةُ كلّ خيارٍ ظاهرةٌ قبل الاختيار لا بعده: نقطةٌ ووسمٌ بلونٍ
   واحد، أخضر للمتاح وأحمر للمشغول — فلا يُكتشف التعارض إلا بعد
   محاولة حفظٍ مرفوضة. */
.sh-fld{position:relative}
.sh-pick-panel{
  position:absolute; inset-inline:0; top:100%; margin-top:4px; z-index:20;
  max-height:230px; overflow-y:auto; background:var(--surface-2);
  border:1px solid var(--line); border-radius:var(--r-md);
  box-shadow:0 10px 24px rgba(0,0,0,.28);
}
.sh-pick-row{
  display:flex; align-items:center; gap:8px; padding:8px 11px; cursor:pointer;
  font-size:13px; border-bottom:1px solid var(--line);
}
.sh-pick-row:last-child{border-bottom:none}
.sh-pick-row:hover,.sh-pick-row.hi{background:var(--surface-3)}
.sh-pick-row.hi,.sh-hint-row.hi{box-shadow:inset 3px 0 0 var(--gold-500)}
.sh-pick-row.busy{cursor:not-allowed}
.sh-pick-row.busy:hover{background:var(--err-bg)}
.sh-pick-dot{width:9px; height:9px; border-radius:50%; flex:none}
.sh-pick-dot.green{background:var(--ok)}
.sh-pick-dot.red{background:var(--err)}
.sh-pick-t{flex:1; color:var(--tx); display:flex; align-items:baseline; gap:8px; min-inline-size:0}
.sh-pick-t b{font-weight:700; font-size:13px; white-space:nowrap}
.sh-pick-t small{font-size:11px; color:var(--tx-3); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.sh-pick-chip{padding:2px 9px; border-radius:var(--r-pill); font-size:11px; font-weight:700}
.sh-pick-chip.ok{background:var(--ok-bg); color:var(--ok)}
.sh-pick-chip.off{background:var(--err-bg); color:var(--err)}

/* ── لائحةُ التلميح: ذاكرةُ الخانة ──
   أخفُّ من لائحة الاختيار الملوّنة لأنّها لا تحمل حالةً ولا تمنع
   شيئاً: عنوانٌ صغيرٌ يقول من أين جاءت، وصفوفٌ بقيمها وعددِ
   ورودها. تُبنى على أنماط `.sh-pick-panel` فلا سطحَ ثانٍ يُصان. */
.sh-hint-hd{
  padding:7px 11px;font-size:10.5px;font-weight:800;letter-spacing:.2px;
  color:var(--tx-gold-2);background:var(--surface-3);
  border-block-end:1px solid var(--line);position:sticky;inset-block-start:0;
}
.sh-hint-row{
  display:flex;align-items:center;gap:9px;padding:8px 11px;cursor:pointer;
  border-block-end:1px solid var(--line);
}
.sh-hint-row:last-child{border-block-end:none}
.sh-hint-row:hover,.sh-hint-row.hi{background:var(--surface-3)}
.sh-hint-row .v{
  flex:1;min-inline-size:0;font-size:12.5px;font-weight:600;color:var(--tx);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.sh-hint-row .n{
  flex:0 0 auto;min-inline-size:20px;text-align:center;
  padding:1px 7px;border-radius:var(--r-pill);
  font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums;
  color:var(--chip-tx);background:var(--chip-bg);
}

/* قسم قيد الترحيل */
.sh-pending{
  max-width:520px;margin:60px auto;text-align:center;padding:36px 28px;border-radius:var(--r-xl);
  background:var(--surface);border:1px dashed var(--line);box-shadow:var(--shadow-1);
}
.sh-pending-ic{font-size:34px;margin-block-end:12px}
.sh-pending h2{font-family:var(--display);font-weight:700;font-size:20px;color:var(--tx-gold);margin-block-end:9px}
.sh-pending p{font-size:14px;line-height:1.9;color:var(--tx-2)}

/* ═══ إضافات الموجة 1: الجداول والنماذج ═══ */
.sh-bar-end{display:flex;gap:8px;margin-inline-start:auto}
.sh-btn.sm{height:36px;flex:0 0 auto;padding-inline:16px;font-size:13px}
.sh-filter{height:40px;max-width:220px;flex:0 0 auto}

.sh-tbl thead th.sortable{cursor:pointer;user-select:none}
.sh-tbl thead th.sortable:hover{color:var(--tx-gold)}
.sh-tbl thead th[data-sort]::after{content:" ▲";font-size:9px}
.sh-tbl thead th[data-sort="desc"]::after{content:" ▼"}
.sh-tbl tbody tr.clickable{cursor:pointer}
.sh-tbl-more{height:1px}

.sh-chip.on{background:var(--info-bg);color:var(--info)}
.sh-chip.ok{background:var(--ok-bg);color:var(--ok)}
.sh-chip.off{background:var(--chip-bg);color:var(--tx-3)}
.sh-chip.soon{background:var(--warn-bg);color:var(--warn)}
.sh-chip.expired{background:var(--err-bg);color:var(--err)}
.sh-chip.none{background:var(--chip-bg);color:var(--tx-3)}

.sh-empty{
  padding:52px 24px;text-align:center;border-radius:var(--r-md);
  background:var(--surface);border:1px dashed var(--line);
}
.sh-empty-ic{font-size:30px;margin-block-end:10px;color:var(--tx-3)}
.sh-empty p{font-size:14px;font-weight:600;color:var(--tx-2)}

.sh-form{grid-template-columns:repeat(2,minmax(0,1fr));max-height:min(64vh,560px);overflow-y:auto}
.sh-fld.wide{grid-column:1 / -1}
.sh-req{color:var(--err)}
.sh-area{height:auto;padding:10px 13px;line-height:1.7;resize:vertical}
.sh-form-err{grid-column:1 / -1;font-size:12.5px;font-weight:600;color:var(--err)}
.sh-in.bad{border-color:var(--err)}
.sh-in.bad:focus{border-color:var(--err);box-shadow:0 0 0 3px var(--err-bg)}
.sh-modal-card{max-width:560px}
/* نافذة المستندات — القسيمة وما شابهها تحتاج عرضاً للسجلّات */
.sh-modal-card.wide{max-width:860px}
@media (max-width:620px){ .sh-form{grid-template-columns:minmax(0,1fr)} }

/* ═══ إضافات الموجة 2 ═══ */
.sh-h3{font-family:var(--display);font-weight:700;font-size:17px;color:var(--tx-gold);margin:var(--sp-5) 0 var(--sp-2)}
.sh-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:11px;margin-block:var(--sp-3)}
.sh-step{
  display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:var(--r-md);text-align:start;
  background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--acc);
  transition:transform .15s var(--ease),box-shadow .15s,border-color .15s;
}
.sh-step:hover{transform:translateY(-2px);box-shadow:var(--shadow-1);border-color:var(--line-2)}
.sh-step.on{background:var(--surface-2);border-color:var(--acc);box-shadow:var(--shadow-1)}
.sh-step.wait{--acc:var(--warn)} .sh-step.go{--acc:var(--info)}
.sh-step.info{--acc:var(--r-master)} .sh-step.ok{--acc:var(--ok)}
.sh-step-n{font-size:24px;font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums;line-height:1.15}
.sh-step-t{font-size:13px;font-weight:700;color:var(--tx-2)}
.sh-step-l{font-size:11.5px;font-weight:700;color:var(--err)}
.sh-chip.wait{background:var(--warn-bg);color:var(--warn)}
.sh-chip.go{background:var(--info-bg);color:var(--info)}
.sh-chip.info{background:var(--chip-bg);color:var(--chip-tx)}
.sh-link{font-weight:700;color:var(--tx-gold-2)}

/* ═══ إضافات الموجة 3 — المالية ═══ */
.sh-card.on{background:var(--surface-2);border-color:var(--acc);box-shadow:var(--shadow-1)}
.sh-card-v.money{font-size:19px;line-height:1.35;word-break:keep-all}
/* ── المجموع بالعملتين ──
   الدينار سطراً أوّل بحجمه، والدولار تحته أصغر منه: العينُ تقرأ
   الدفتر الأساسي أوّلاً ولا يغيب عنها الآخر. وسطرُ الصفر يبقى
   ظاهراً — غيابُه يُقرأ «لا أعرف» لا «صفر». */
.sh-dual{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.2}
.sh-dual b{font:inherit;color:inherit}
.sh-dual i{font-style:normal;font-size:.66em;font-weight:700;opacity:.66;letter-spacing:0}

/* شريط الرصيد — العهدة والموازنات */
.sh-meter{height:9px;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden;margin-block:7px}
.sh-meter-f{height:100%;width:var(--pct,0%);border-radius:var(--r-pill);background:var(--ok);transition:width .3s var(--ease)}
.sh-meter.warn .sh-meter-f{background:var(--warn)}
.sh-meter.danger .sh-meter-f{background:var(--err)}

/* بطاقة عهدة / فاتورة معلّقة */
.sh-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:13px;margin-block:var(--sp-3)}
.sh-tile{
  display:flex;flex-direction:column;gap:6px;padding:15px 17px;border-radius:var(--r-md);text-align:start;
  background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--acc,var(--gold-400));
  transition:transform .15s var(--ease),box-shadow .15s,border-color .15s;
}
.sh-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-1);border-color:var(--line-2)}
.sh-tile.ok{--acc:var(--ok)} .sh-tile.warn{--acc:var(--warn)} .sh-tile.danger{--acc:var(--err)}
.sh-tile-h{display:flex;justify-content:space-between;align-items:center;gap:9px}
.sh-tile-t{font-size:14.5px;font-weight:700;color:var(--tx)}
.sh-tile-v{font-size:22px;font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums}
.sh-tile-s{font-size:12px;font-weight:500;color:var(--tx-3)}
.sh-tile-r{display:flex;justify-content:space-between;font-size:12.5px;font-weight:600;color:var(--tx-2)}

/* صفّ بيان/قيمة — السندات والتقارير المالية */
.sh-kv{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-block-end:1px solid var(--line)}
.sh-kv:last-child{border-block-end:0}
.sh-kv-k{font-size:13.5px;font-weight:600;color:var(--tx-2)}
.sh-kv-v{font-size:14px;font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums}
.sh-kv.sum{border-block-start:2px solid var(--line-2);margin-block-start:5px}
.sh-kv.sum .sh-kv-k,.sh-kv.sum .sh-kv-v{font-size:15.5px;color:var(--tx-gold)}
.sh-fine{font-size:12.5px;font-weight:600;color:var(--tx-3);margin-block-start:var(--sp-2)}
.sh-in.sh-cell{height:32px;padding:0 8px;font-size:12.5px;max-width:110px}

/* ═══ العهدة: تدرّج الإنذار ═══
   الشريط يقرأ حالته من صنف واحد، فلا يمكن أن يخالف لونُه نصَّه. */
.sh-meter-f{background:var(--ok)}
.sh-meter.warn .sh-meter-f{background:var(--warn)}
.sh-meter.danger .sh-meter-f{background:var(--err)}
.sh-meter.crit .sh-meter-f{background:var(--err);animation:sh-pulse 1.5s var(--ease) infinite}
.sh-meter.crit{box-shadow:0 0 0 2px var(--err-bg)}

@keyframes sh-pulse{0%,100%{opacity:1}50%{opacity:.45}}
@media (prefers-reduced-motion:reduce){
  .sh-meter.crit .sh-meter-f{animation:none}
}

.sh-tile.crit{--acc:var(--err);border-color:var(--err)}
.sh-tile-warn{
  display:flex;align-items:center;gap:7px;padding:7px 11px;border-radius:var(--r-sm);
  font-size:12.5px;font-weight:700;background:var(--err-bg);color:var(--err);
}
.sh-tile-warn.warn{background:var(--warn-bg);color:var(--warn)}
.sh-chip.crit{background:var(--err-bg);color:var(--err)}
.sh-chip.danger{background:var(--err-bg);color:var(--err)}

/* شريط تحذير أعلى القسم — يراه المحاسب قبل الجدول */
.sh-banner{
  display:flex;align-items:center;gap:11px;margin-block:var(--sp-3);padding:13px 17px;
  border-radius:var(--r-md);font-size:13.5px;font-weight:700;
  background:var(--err-bg);color:var(--err);border:1px solid var(--err);
}
.sh-banner.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}
.sh-banner.err{background:var(--err-bg);color:var(--err);border-color:var(--err)}
.sh-banner-ic{font-size:17px;flex:0 0 auto}
.sh-banner-b{font-weight:600;color:var(--tx-2)}

/* لوحة التنبيهات */
.sh-alerts{display:flex;flex-direction:column;gap:9px;padding:18px;max-height:min(62vh,540px);overflow-y:auto}
.sh-alert{
  display:flex;flex-direction:column;gap:4px;padding:13px 15px;border-radius:var(--r-md);text-align:start;
  background:var(--surface-2);border:1px solid var(--line);border-inline-start:3px solid var(--acc,var(--line-2));
  transition:transform .15s var(--ease),border-color .15s;
}
.sh-alert:hover{transform:translateX(-3px);border-color:var(--line-2)}
.sh-alert.crit{--acc:var(--err)} .sh-alert.danger{--acc:var(--err)}
.sh-alert.warn{--acc:var(--warn)} .sh-alert.info{--acc:var(--info)}
/* للاطّلاع لا للتصرّف — يُرى ولا يُنادي. الخفوت هو الفرق كلّه. */
.sh-alert.watch{opacity:.72}
.sh-alert.watch:hover{opacity:1}
.sh-alert.watch .sh-alert-t{font-weight:600}
.sh-alert-t{font-size:13.5px;font-weight:700;color:var(--tx)}
.sh-alert-b{font-size:12.5px;font-weight:500;color:var(--tx-2);line-height:1.75}
.sh-alert-s{font-size:11.5px;font-weight:600;color:var(--tx-3)}

/* ═══ الموجة 4 — الدوام والرواتب ═══ */
.sh-legend{display:flex;flex-wrap:wrap;gap:13px;margin-block:var(--sp-3);font-size:12.5px;color:var(--tx-2)}
.sh-legend-i{display:inline-flex;align-items:center;gap:6px;font-weight:600}
/* وزن الكود في الدليل — يُقرأ ولا يزاحم اسم الكود */
.sh-legend-w{font-size:11.5px;font-weight:700;color:var(--tx-3);
  padding-inline:6px;border-inline-start:1px solid var(--line-1)}

.sh-gridwrap{overflow-x:auto;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface)}
.sh-grid{min-width:max-content;font-size:12.5px}
.sh-grid-r{
  display:grid;
  grid-template-columns:206px repeat(var(--days,31),minmax(28px,1fr)) 250px;
  border-block-end:1px solid var(--line);
}
.sh-grid-r:last-child{border-block-end:0}
.sh-grid-r:hover .sh-grid-n{background:var(--surface-2)}
.sh-grid-h{position:sticky;inset-block-start:0;z-index:2;background:var(--surface-3)}
.sh-grid-n{
  display:flex;flex-direction:column;gap:2px;justify-content:center;padding:8px 12px;
  position:sticky;inset-inline-start:0;z-index:1;background:var(--surface);
  border-inline-end:1px solid var(--line);
}
.sh-grid-h .sh-grid-n{background:var(--surface-3);font-weight:700;color:var(--tx-gold-2)}
.sh-grid-nm{font-size:13px;font-weight:700;color:var(--tx);white-space:nowrap}
.sh-grid-tt{font-size:11px;font-weight:500;color:var(--tx-3);white-space:nowrap}

.sh-cell{
  display:flex;align-items:center;justify-content:center;min-height:34px;
  font-size:11.5px;font-weight:700;color:var(--tx-3);
  border-inline-end:1px solid var(--line);cursor:pointer;
  transition:background .12s,color .12s;
}
.sh-cell:hover{background:var(--surface-2);color:var(--tx)}
.sh-cell[data-pid]:focus{outline:2px solid var(--gold-500);outline-offset:-2px;z-index:1}
.sh-cell.sel{box-shadow:inset 0 0 0 2px var(--gold-400);background:rgba(47,99,211,.18)}
.sh-legend-keys{flex-basis:100%;font-size:11.5px;color:var(--tx-3)}
.sh-legend-keys kbd{font:inherit;font-weight:700;border:1px solid var(--line);border-bottom-width:2px;border-radius:var(--r-xs);padding:0 5px;background:var(--surface-2);color:var(--tx-2)}
.sh-cell.sh-hd{cursor:default;font-weight:700;color:var(--tx-gold-2);background:var(--surface-3);min-height:30px}
.sh-cell.sh-hd.we{color:var(--tx-3)}
.sh-cell.on{color:var(--tx)}
.sh-cell.on.ok{background:var(--ok-bg);color:var(--ok)}
.sh-cell.on.expired{background:var(--err-bg);color:var(--err)}
.sh-cell.on.soon{background:var(--warn-bg);color:var(--warn)}
.sh-cell.on.go{background:var(--info-bg);color:var(--info)}
.sh-cell.on.info{background:var(--chip-bg);color:var(--chip-tx)}
.sh-cell.on.off{background:var(--surface-3);color:var(--tx-3)}
.sh-cell.lock{cursor:not-allowed;opacity:.9}
.sh-cell.lock::after{content:"·";margin-inline-start:2px;color:var(--tx-gold-2)}

/* الملخّص: كتلة واحدة ملتصقة بالحافّة فلا تغيب مع التمرير الأفقي */
.sh-grid-sum{
  display:grid;grid-template-columns:repeat(5,1fr);
  position:sticky;inset-inline-end:0;z-index:1;background:var(--surface-2);
  border-inline-start:1px solid var(--line-2);
}
.sh-grid-h .sh-grid-sum{background:var(--surface-3);z-index:3}
.sh-grid-s{
  display:flex;align-items:center;justify-content:center;min-height:34px;
  font-size:12px;font-weight:700;color:var(--tx-2);
  border-inline-end:1px solid var(--line);font-variant-numeric:tabular-nums;
}
.sh-grid-s:last-child{border-inline-end:0}
.sh-grid-h .sh-grid-s{color:var(--tx-gold-2);font-size:10.5px;min-height:30px}
.sh-grid-s.bad{color:var(--err)}
.sh-grid-more{padding:11px;text-align:center;font-size:12.5px;font-weight:600;color:var(--tx-3)}

/* لوحة اختيار الرمز */
.sh-pal{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px;padding:20px}
.sh-pal-b{
  display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 10px;border-radius:var(--r-md);
  background:var(--surface-2);border:1px solid var(--line);
  transition:transform .14s var(--ease),border-color .14s;
}
.sh-pal-b:hover{transform:translateY(-2px);border-color:var(--line-2)}
.sh-pal-b.on{border-color:var(--line-2);background:var(--surface-3)}
.sh-pal-c{font-size:17px;font-weight:700}
.sh-pal-t{font-size:12px;font-weight:600;color:var(--tx-2)}
/* وزن اليوم على زرّ الكود — المبلغ يُرى قبل الضغط لا بعد الشهر */
.sh-pal-w{display:block;margin-block-start:5px;padding-block-start:5px;
  border-block-start:1px solid var(--line-1);
  font-size:11px;font-weight:700;color:var(--tx-3)}
.sh-pal-b.ok .sh-pal-c{color:var(--ok)}
.sh-pal-b.expired .sh-pal-c{color:var(--err)}
.sh-pal-b.soon .sh-pal-c{color:var(--warn)}
.sh-pal-b.go .sh-pal-c{color:var(--info)}
.sh-pal-b.info .sh-pal-c{color:var(--chip-tx)}
.sh-pal-b.off .sh-pal-c{color:var(--tx-3)}

/* قسيمة الراتب */
.sh-slip .sh-slip-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding-block-end:13px;border-block-end:2px solid var(--line-2);margin-block-end:var(--sp-2);
}
/* سطر فرعي داخل خليّة جدول — العدد تحت المبلغ */
.sh-cellsub{display:block;font-size:11px;font-weight:600;color:var(--tx-3);margin-block-start:2px}
.sh-cellsub.warn{color:var(--warn)}

/* فرق الجرد — العجز والزيادة يُقرآن باللون قبل الرقم */
.sh-diff{font-weight:700;font-variant-numeric:tabular-nums;color:var(--tx-3)}
.sh-diff.bad{color:var(--err)}
.sh-diff.good{color:var(--ok)}

/* سلّم المعاملات في القسيمة — تفسيرٌ للرقم فوقه لا بندٌ يُجمع،
   فهو منزاحٌ للداخل ومحدود بخطٍّ يفصله عن بنود المستحقّات. */
.sh-ladder{
  margin-block:6px 12px;padding-inline-start:14px;
  border-inline-start:2px solid var(--line-2);
}
.sh-ladder-r{
  display:grid;grid-template-columns:1fr auto auto auto;gap:10px;
  align-items:center;padding-block:5px;font-size:12.5px;
}
.sh-ladder-r + .sh-ladder-r{border-block-start:1px solid var(--line)}
.sh-ladder-t{font-weight:700;color:var(--tx-2)}
.sh-ladder-d{color:var(--tx-3);font-weight:600;min-width:58px;text-align:end}
.sh-ladder-w{
  color:var(--tx-3);font-weight:700;min-width:64px;text-align:center;
  padding-inline:7px;border-inline:1px solid var(--line);
}
.sh-ladder-v{
  font-weight:700;color:var(--tx-1);min-width:88px;text-align:end;
  font-variant-numeric:tabular-nums;direction:ltr;
}
.sh-ladder-r.nil .sh-ladder-t,
.sh-ladder-r.nil .sh-ladder-v{color:var(--tx-3);font-weight:600}

/* ── سجلّ الرحلات الخارجية في القسيمة ──
   بطاقةٌ لكلّ رحلة لا صفٌّ في جدول: سبعة حقول في جدولٍ داخل نافذة
   تُسحق، وهي في بطاقةٍ تُقرأ. */
.sh-trips{display:flex;flex-direction:column;gap:9px;margin-block:8px 4px}
.sh-trip{
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;
  padding:12px 14px;border-radius:var(--r-md);
  background:var(--surface-2);border:1px solid var(--line);
}
.sh-trip.orphan{border-color:var(--err);background:var(--err-bg)}
.sh-trip-b{min-width:0}
.sh-trip-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.sh-trip-r{font-weight:700;font-size:14px;color:var(--tx)}
.sh-trip-m{display:flex;flex-wrap:wrap;gap:6px 16px;margin-block-start:7px}
.sh-trip-f{display:inline-flex;align-items:baseline;gap:5px;font-size:12px}
.sh-trip-fk{color:var(--tx-3);font-weight:600}
.sh-trip-fv{color:var(--tx-2);font-weight:700}
.sh-trip-fv.ltr{direction:ltr;unicode-bidi:isolate}
.sh-trip-v{text-align:end;white-space:nowrap}
.sh-trip-a{
  display:block;font-weight:700;font-size:14.5px;color:var(--tx);
  font-variant-numeric:tabular-nums;direction:ltr;
}
.sh-trip-a.nil{color:var(--tx-3)}
.sh-trip-d{display:block;margin-block-start:3px;font-size:11.5px;
  font-weight:600;color:var(--tx-3)}
.sh-trip-x{
  grid-column:1 / -1;margin-block-start:9px;padding-block-start:8px;
  border-block-start:1px solid var(--line);
  font-size:11.5px;font-weight:600;color:var(--tx-3);
}
/* خلاصة السجلّ — المعتمَد وحده */
.sh-trips-s{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  margin-block:4px 12px;padding:10px 14px;border-radius:var(--r-md);
  background:var(--surface-3);border:1px solid var(--line-2);
}
.sh-trips-k{font-size:12.5px;font-weight:700;color:var(--tx-2)}
.sh-trips-v{
  font-size:15px;font-weight:700;color:var(--tx);
  font-variant-numeric:tabular-nums;direction:ltr;
}

/* ═══════════ لوحة التحكّم وسجلّ التدقيق ═══════════ */

/* عنوان قسمٍ داخل اللوحة — أصغر من عنوان الصفحة وأوضح من الفقرة */
.sh-h2row{
  display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;
  margin-block:var(--sp-5) var(--sp-2);
  padding-block-end:8px;border-block-end:1px solid var(--line);
}
.sh-h2{font-family:var(--display);font-weight:700;font-size:19px;color:var(--tx-gold)}
.sh-h2row .sh-stamp{margin-inline-start:auto}
.sh-h2row .sh-btn{margin-inline-start:auto}

/* لون مجموعة الإدارة في البطاقات */
.sh-card.adm{--acc:var(--r-other)}

/* بطاقةٌ أو شريطٌ يُنقَر — يُعلن نفسه قابلاً للنقر */
.sh-card.clickable,.sh-banner.clickable{cursor:pointer}
.sh-card.clickable:hover{border-color:var(--acc);box-shadow:var(--shadow-1)}
.sh-banner.clickable:hover{filter:brightness(1.06)}

/* شريط اطمئنان — لا إنذارَ ولا شيءَ معلّق */
.sh-banner.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}

/* ── طابور القرارات ──
   أوّل ما يراه المدير: العدد أوّلاً ثمّ ما هو، والسهم يقول إنّه
   مدخلٌ لا خبر. */
.sh-queue{display:flex;flex-direction:column;gap:9px;margin-block:var(--sp-2) var(--sp-3)}
.sh-qi{
  display:flex;align-items:center;gap:15px;width:100%;text-align:start;
  padding:13px 16px;border-radius:var(--r-md);cursor:pointer;
  background:var(--surface-2);border:1px solid var(--line);
  border-inline-start:4px solid var(--warn);
  transition:border-color .15s,background .15s,transform .15s;
}
.sh-qi:hover{background:var(--surface-3);border-color:var(--line-2);transform:translateX(-3px)}
.sh-qi-n{
  flex:0 0 auto;min-width:46px;text-align:center;
  font-size:22px;font-weight:700;color:var(--warn);
  font-variant-numeric:tabular-nums;
}
.sh-qi-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.sh-qi-t{font-size:14px;font-weight:700;color:var(--tx)}
.sh-qi-s{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-qi-go{flex:0 0 auto;font-size:17px;color:var(--tx-3);font-weight:700}
.sh-banner.clickable .sh-qi-go{margin-inline-start:auto}

/* مدخل ملفٍّ مخفيّ — يُنقر برمجياً ولا يُعرَض */
.sh-hidden-file{position:absolute;inset-block-start:-9999px;inset-inline-start:-9999px;opacity:0}

/* ═══ تبويبات أوامر العمل: رحلاتٌ خارجية ↔ إيجارٌ شهري ═══ */
.sh-tabs{display:flex;gap:6px;margin-block-end:var(--sp-3);border-bottom:1px solid var(--line)}
.sh-tab{
  background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;
  padding:9px 4px;margin-inline-end:18px;font-size:13.5px;font-weight:700;color:var(--tx-3);
  font-family:inherit;transition:color .15s,border-color .15s;
}
.sh-tab:hover{color:var(--tx-2)}
.sh-tab.active{color:var(--tx-gold);border-bottom-color:var(--tx-gold)}

/* وسمُ الشركة المؤجِرة والقسم معاً في خليّةٍ واحدة، بلونين متدرّجين
   من لون الشركة نفسها — سهلُ الاطّلاع السريع والمراجعة. */
.sh-co-badge{display:inline-flex;border-radius:var(--r-pill);overflow:hidden;font-size:11.5px;font-weight:700;line-height:1.9}
.sh-co-badge.solo{border-radius:var(--r-pill)}
.sh-co-nm{background:var(--tx-gold);color:var(--surface-3);padding:0 10px}
.sh-co-dp{background:var(--surface-3);color:var(--tx-2);padding:0 10px}
.sh-co-badge.solo .sh-co-nm{padding-inline-end:10px}

/* شريط الفلترة الذكي أعلى جدولَي الرحلات والإيجار الشهري */
.sh-wo-filters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-block-end:var(--sp-3)}
.sh-wo-fpills{display:flex;gap:6px;flex-wrap:wrap}
.sh-wo-fpill{border:1px solid var(--line);background:var(--surface-2);color:var(--tx-2);border-radius:var(--r-pill);padding:5px 14px;font-size:12.5px;font-weight:700;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.sh-wo-fpill:hover{background:var(--surface-3)}
.sh-wo-fpill.on{background:var(--tx-gold);border-color:var(--tx-gold);color:var(--surface-3)}
.sh-wo-fgroup{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sh-wo-fsel{border:1px solid var(--line);background:var(--surface-2);color:var(--tx-2);border-radius:var(--r-sm);padding:6px 10px;font-size:12.5px;font-family:inherit}
.sh-wo-fdates{display:flex;align-items:center;gap:6px}

/* تمييز صفوف الجدول: برتقاليٌّ خفيفٌ لِما بانتظار أمر شراء، أخضرُ
   خفيفٌ لِما تمّت تغطيتُه بالكامل — مع ترتيبٍ يُصعِد المعلَّق أعلى الجدول */
tr.sh-row-pending td{background:var(--warn-bg)}
tr.sh-row-covered td{background:var(--ok-bg)}
tr.sh-row-pending:hover td,tr.sh-row-covered:hover td{filter:brightness(0.98)}

/* أزرار الإجراء داخل صفّ الجدول — سطرٌ واحدٌ دون التفافٍ أبداً */
.sh-rowacts{display:flex;gap:5px;flex-wrap:nowrap;align-items:center}

/* أزرار الإجراء الأيقونيّة — بادجتان ملوّنتان فقط لتبديل السائق (أزرق)
   وتبديل المركبة (برتقالي)، وبقيّة الأزرار أيقوناتٌ بسيطةٌ شفّافة حتى
   تبقى الصفوف مرتّبةً في سطرٍ واحدٍ دون ازدحامٍ مهما كثرت الإجراءات */
.sh-act-btn{flex:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--r-xs);border:none;cursor:pointer;font-size:14px;line-height:1;transition:filter .15s var(--ease),transform .15s var(--ease),background .15s var(--ease)}
.sh-act-btn:hover{filter:brightness(1.12)}
.sh-act-btn:active{transform:scale(.9)}
.sh-act-btn--add{background:var(--ok);color:#fff}
.sh-act-btn--swap-driver{background:var(--info);color:#fff}
.sh-act-btn--swap-vehicle{background:var(--warn);color:#fff}
.sh-act-btn--edit,.sh-act-btn--del,.sh-act-btn--stop{background:transparent;color:var(--tx-2)}
.sh-act-btn--edit:hover{background:var(--surface-2);filter:none}
.sh-act-btn--del{color:var(--err)}
.sh-act-btn--del:hover{background:var(--err-bg);filter:none}
.sh-act-btn--stop{color:var(--warn)}
.sh-act-btn--stop:hover{background:var(--warn-bg);filter:none}
.sh-act-btn:disabled{opacity:.35;cursor:not-allowed;filter:none!important}
.sh-act-btn:disabled:hover{background:transparent!important}

/* نصٌّ خافت — «بدون سائق» ونحوها */
.sh-dim{color:var(--tx-3);font-style:italic}

/* الفترات السابقة — سجلّ سطر الإيجار الشهري */
.sh-hist{display:flex;flex-direction:column;gap:6px;margin-block-start:8px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-3);border:1px solid var(--line)}
.sh-hist[hidden]{display:none}
.sh-hist-row{display:flex;align-items:center;gap:8px;font-size:12.5px}
.sh-hist-icon{flex:none;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}
.sh-hist-date{flex:none;color:var(--tx-3);font-variant-numeric:tabular-nums}
.sh-hist-text{color:var(--tx-2)}
.sh-hist-info .sh-hist-icon{background:var(--info-bg);color:var(--info)}
.sh-hist-go .sh-hist-icon{background:var(--info-bg);color:var(--info)}
.sh-hist-ok .sh-hist-icon{background:var(--ok-bg);color:var(--ok)}
.sh-hist-wait .sh-hist-icon{background:var(--warn-bg);color:var(--warn)}
.sh-hist-expired .sh-hist-icon{background:var(--err-bg);color:var(--err)}
.sh-hist-off .sh-hist-icon{background:var(--chip-bg);color:var(--tx-3)}

/* حالاتٌ مخفيّة داخل نماذج أوامر العمل — الصنف يفرض display فيتجاوز [hidden] */
.sh-fld[hidden]{display:none}

/* اختيارٌ مُجزَّأ — تبديل/إيقاف السائق */
.sh-seg{display:flex;gap:16px;flex-wrap:wrap}
.sh-seg-opt{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--tx-2);cursor:pointer}
.sh-seg-opt input{accent-color:var(--tx-gold)}

/* ═══════════════════════════════════════════════════════════════
   نموذجُ أمر العمل — معالجٌ على هيئة النموذج الورقيّ
   تبويبان في رأسه، وشريطُ خطواتٍ يقول أين أنت وما بقي، وأربعةُ
   مربّعاتٍ كمربّعات الورقة، وتذييلُ تنقّلٍ ثابت.
   ═══════════════════════════════════════════════════════════════ */

/* المعالِجُ يمرّر كوحدةٍ واحدة: شبكاتُ الحقول بداخله لا تأخذ
   تمريراً مستقلاً، وإلّا صار في النافذة شريطا تمريرٍ متداخلان
   ولبقي شريطُ التنقّل أسفلَها خارج المتناول. */
/* المعالِجُ جسمُ النافذة نفسُه، فحاشيتُه حاشيتُها — على الجانبين
   وحدَهما: رأسُه اللاصق يحمل حشوَه العلويّ وذيلُه اللاصق يحمل
   السفليّ. وحشوٌ سفليٌّ زائدٌ هنا يترك تحت الذيل شريطاً يمرّ فيه
   المحتوى فيُرى نصفُ حقلٍ عالقاً بين الذيل والأزرار. */
.sh-modal-body.sh-wo-wizard{padding:0 var(--modal-pad)}
.sh-wo-wizard .sh-form{max-height:none;overflow:visible;padding:0}

/* الرأسُ يثبت أعلى الجسم المُمرَّر، والذيلُ أسفله: الخطواتُ مرئيةٌ
   دائماً وأزرارُ التنقّل في متناول اليد بلا تمرير. */
/* ═══ الشريطان اللاصقان يعبران الحاشية ═══
   شريطٌ لاصقٌ منسحبٌ إلى داخل الحاشية يترك في جانبيه ممرّين
   يظهر منهما ما يمرّ تحته — فيبدو الرأسُ عائماً على محتوىً يسيل
   من حوله. فيُمدّان إلى حافّة البطاقة بحاشيةٍ سالبة، ويُعاد إليهما
   الحشوُ من الداخل: يعبران الحاشية سطحاً صلباً، ويصطفّ خطّاهما
   الفاصلان مع خطَّي الترويسة والذيل تماماً. */
.sh-wo-top{
  position:sticky;inset-block-start:0;z-index:3;
  margin-inline:calc(var(--modal-pad) * -1);
  padding:16px var(--modal-pad) 2px;
  background:var(--surface);
}
.sh-wo-top::after{
  content:'';position:absolute;inset-inline:0;inset-block-end:-10px;height:10px;
  background:linear-gradient(var(--surface),transparent);pointer-events:none;
}
.sh-wo-wizard .sh-wo-nav{
  position:sticky;inset-block-end:0;z-index:3;
  margin-block-start:16px;
  margin-inline:calc(var(--modal-pad) * -1);
  padding:12px var(--modal-pad);
  background:var(--surface);
}

/* ── التبويبان: رحلة خارجية · إيجار شهري ── */
.sh-wo-type{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-block-end:16px;
}
.sh-wo-type-btn{
  padding:13px 16px;border-radius:var(--r-lg);font-size:14px;font-weight:700;font-family:inherit;
  color:var(--tx-2);background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);
  cursor:pointer;transition:color .18s,box-shadow .18s,background .18s,transform .12s;
}
.sh-wo-type-btn:hover{color:var(--tx);box-shadow:inset 0 0 0 1px var(--line-2)}
.sh-wo-type-btn:active{transform:scale(.99)}
.sh-wo-type-btn.on{
  color:#FFFFFF;background:var(--gold-grd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 2px 10px rgba(36,82,190,.28);
}

/* ── شريطُ الخطوات ──
   دائرةٌ مرقّمة تتحوّل إلى صحٍّ ذهبيٍّ حين تكتمل حقولُها، وخيطٌ
   بينها يمتلئ ذهباً كلّما تقدّمت — فالتقدّمُ يُرى لا يُحكى. */
.sh-wo-steps{
  display:flex;align-items:flex-start;gap:0;margin-block-end:14px;padding:14px 10px;
  border-radius:var(--r-lg);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);
  overflow-x:auto;
}
.sh-wo-step{
  display:flex;flex-direction:column;align-items:center;gap:7px;flex:0 0 auto;
  padding:2px 10px;border:0;background:none;font-family:inherit;cursor:pointer;
  min-inline-size:104px;
}
.sh-wo-step-ic{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  font-size:13px;font-weight:800;color:var(--tx-3);
  background:var(--surface);box-shadow:inset 0 0 0 2px var(--line);
  transition:color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);
}
.sh-wo-step-tx{display:flex;flex-direction:column;align-items:center;line-height:1.35;text-align:center}
.sh-wo-step-tx b{font-size:12px;font-weight:700;color:var(--tx-2);white-space:nowrap}
.sh-wo-step-tx small{font-size:10px;color:var(--tx-3);white-space:nowrap}
.sh-wo-step:hover .sh-wo-step-ic{box-shadow:inset 0 0 0 2px var(--line-2)}

/* الخطوةُ القائمة: حلقةٌ ذهبيةٌ وهالةٌ خفيفة */
.sh-wo-step.on .sh-wo-step-ic{
  color:#FFFFFF;background:var(--gold-grd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 0 4px var(--info-bg);
}
.sh-wo-step.on .sh-wo-step-tx b{color:var(--tx-gold)}
/* خطوةٌ اكتملت حقولُها: صحٌّ بدل رقمها */
.sh-wo-step.ok .sh-wo-step-ic{color:var(--ok);box-shadow:inset 0 0 0 2px var(--ok)}
.sh-wo-step.ok .sh-wo-step-ic::after{content:'✓';font-size:15px}
.sh-wo-step.ok .sh-wo-step-ic{font-size:0}
.sh-wo-step.on.ok .sh-wo-step-ic{
  color:#FFFFFF;background:var(--gold-grd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 0 4px var(--info-bg);
}
.sh-wo-step-conn{
  flex:1 1 auto;min-inline-size:18px;height:2px;margin-block-start:19px;
  background:var(--line);border-radius:2px;
}

/* ── عنوانُ المربّع ── */
.sh-wo-boxt{
  display:flex;align-items:center;gap:10px;margin-block-end:12px;padding-block-end:9px;
  border-block-end:1px solid var(--line);
}
.sh-wo-boxt .n{
  width:26px;height:26px;flex:0 0 26px;border-radius:var(--r-xs);display:grid;place-items:center;
  font-size:12px;font-weight:800;color:#FFFFFF;background:var(--gold-grd);
}
.sh-wo-boxt .t{font-size:14px;font-weight:800;color:var(--tx-gold)}
.sh-wo-boxt .s{font-size:11.5px;color:var(--tx-3)}

/* ── فحصُ رقم أمر العمل ── */
/* سطرُ الرسالة يحجز مكانَه حين يتكلّم فقط — وإلّا فُتحت في
   النموذج فجوتان فارغتان بين صفٍّ وصفّ بلا سببٍ يُرى. */
.sh-wo-numsg{grid-column:1/-1;font-size:11.5px;font-weight:600;margin-block-start:5px;min-height:15px}
.sh-wo-numsg:empty{display:none}
.sh-wo-hint:empty{display:none}
.sh-wo-numsg.bad{color:var(--err)}
.sh-wo-numsg.ok{color:var(--ok)}
.sh-in.bad{box-shadow:inset 0 0 0 1px var(--err)!important;border-color:var(--err)!important}
.sh-in.good{border-color:var(--ok)!important}

/* ── تلميحُ المركبة الخفيفة ── */
.sh-wo-lighthint{
  font-size:11.5px;color:var(--tx-3);background:var(--chip-bg);
  border-radius:var(--r-sm);padding:9px 12px;
}

/* ── تذييلُ التنقّل ── */
.sh-wo-nav{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-block-start:18px;padding-block-start:14px;border-block-start:1px solid var(--line);
}
.sh-wo-nav .sh-btn{flex:0 0 auto;min-inline-size:124px;justify-content:center}
.sh-wo-nav .sh-btn:disabled{opacity:.4;cursor:not-allowed}
.sh-wo-navhint{font-size:11.5px;font-weight:700;color:var(--tx-3)}

/* ── الملاحظة المرجعية أسفل النموذج ── */
.sh-wo-formnote{
  margin-block-start:14px;margin-block-end:2px;padding:11px 13px;border-radius:var(--r-sm);
  font-size:11px;line-height:1.7;color:var(--tx-3);
  background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);
}
.sh-wo-formnote b{color:var(--tx-2)}

/* ── رقمُ أمر العمل: الحقلُ وزرُّ إعادة التوليد ── */
.sh-wo-numrow{display:flex;gap:7px;align-items:stretch}
.sh-wo-numrow .sh-in{flex:1 1 auto;min-inline-size:0}
.sh-wo-regen{
  flex:0 0 auto;min-inline-size:42px;justify-content:center;
  font-size:15px;line-height:1;
}

/* ── نوعُ المركبة داخل خانة لوحتها ──
   لوحٌ صغيرٌ في الطرف الفارغ من الحقل يقول ما اختير — «هايلكس»
   بجانب «5-22222» — ولا يُلمَس بالكتابة: قيمةُ الحقل رقمُ اللوحة
   وحدَه. والحقلُ يُفسح له مكاناً حين يظهر فلا يتزاحم النصّان. */
.sh-wo-inwrap{position:relative;display:flex;flex-direction:column}
.sh-wo-inwrap .sh-in{width:100%}
.sh-wo-vtype{
  position:absolute;inset-block-start:50%;inset-inline-end:11px;transform:translateY(-50%);
  display:none;max-inline-size:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:3px 10px;border-radius:var(--r-pill);pointer-events:none;
  font-size:11.5px;font-weight:700;color:var(--chip-tx);background:var(--chip-bg);
}
.sh-wo-vtype.on{display:block}
.sh-in.has-suffix{padding-inline-end:52%}

/* ── كودُ الشركة: يُقرأ ولا يُكتب هنا ──
   لوحٌ صغيرٌ بجانب اسم الشركة يُظهر الكود الذي بُني منه الرقم.
   فارغاً هو إنذار: شركةٌ بلا كودٍ لا يُرقَّم أمرُ عملها. */
.sh-wo-codebox{display:flex;align-items:center;min-block-size:38px}
.sh-wo-code{
  display:inline-flex;align-items:center;justify-content:center;
  min-inline-size:76px;padding:7px 14px;border-radius:var(--r-sm);
  font-size:14px;font-weight:800;letter-spacing:1.4px;
  direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums;
  color:var(--tx-3);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);
  transition:color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease);
}
.sh-wo-code.on{
  color:#FFFFFF;background:var(--gold-grd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 2px 8px rgba(36,82,190,.24);
}

/* ── نمطُ التأجير: بسائقٍ أو بدونه ──
   خياران لا قائمةٌ منسدلة: الفرقُ بينهما يُغيّر شكلَ النموذج
   نفسِه، فيجب أن يُرى الخياران معاً لا أن يُفتَح لهما درج. */
.sh-wo-mode{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.sh-wo-mode-btn{
  display:flex;flex-direction:column;align-items:flex-start;gap:3px;
  padding:11px 14px;border:0;border-radius:var(--r-md);cursor:pointer;
  font-family:inherit;text-align:start;
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .18s var(--ease),background .18s var(--ease),transform .12s;
}
.sh-wo-mode-btn b{font-size:13.5px;font-weight:800;color:var(--tx-2)}
.sh-wo-mode-btn small{font-size:10.5px;font-weight:600;color:var(--tx-3);line-height:1.5}
.sh-wo-mode-btn:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
.sh-wo-mode-btn:active{transform:scale(.99)}
.sh-wo-mode-btn.on{
  background:var(--info-bg);box-shadow:inset 0 0 0 2px var(--tx-gold-2);
}
.sh-wo-mode-btn.on b{color:var(--tx-gold)}
.sh-wo-mode-btn.on small{color:var(--tx-2)}

/* ── لوحُ القفل على مربّعٍ محفوظ ──
   لا يُخفي الحقولَ بل يُعطّلها ويقول لماذا: المراجعةُ تحتاج أن
   تُقرأ، والتعديلُ وحدَه هو الممنوع حتى يُفتَح بقصد. */
.sh-wo-lock{
  /* `.sh-fld` عمودٌ، وهذا اللوحُ سطر: الأيقونةُ ثمّ النصّ ثمّ
     الأزرار — فلا يُترَك ليرث اتّجاهَ الحقول فيتكدّس ثلاثَ طبقات. */
  display:flex;flex-direction:row;align-items:center;gap:11px;text-align:start;
  padding:11px 13px;border-radius:var(--r-md);
  background:var(--warn-bg);box-shadow:inset 0 0 0 1px var(--warn);
}
@media (max-width:640px){
  .sh-wo-lock{flex-wrap:wrap}
  .sh-wo-lock .acts{inline-size:100%}
  .sh-wo-lock .acts .sh-btn{flex:1}
}
.sh-wo-lock .ic{flex:0 0 auto;font-size:16px;line-height:1}
.sh-wo-lock .tx{flex:1;display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-wo-lock .tx b{font-size:12.5px;font-weight:800;color:var(--warn)}
.sh-wo-lock .tx small{font-size:10.5px;font-weight:600;color:var(--tx-2);line-height:1.5}
.sh-wo-lock .acts{flex:0 0 auto;display:flex;gap:7px}
.sh-wo-lock .sh-btn{flex:0 0 auto;white-space:nowrap}
/* لحظةُ السؤال: اللوحُ يشتدّ لونُه فيُقرأ أنّه ينتظر قراراً */
.sh-wo-lock.asking{background:var(--err-bg);box-shadow:inset 0 0 0 1.5px var(--err)}
.sh-wo-lock.asking .tx b{color:var(--err)}
/* المقفلُ يُقرأ ولا يُكتَب — والباهتُ هنا معنىً لا زينة */
.sh-wo-locked .sh-in:disabled,
.sh-wo-locked .sh-wo-mode-btn:disabled,
.sh-wo-locked button:disabled{opacity:.62;cursor:not-allowed}
.sh-wo-locked .sh-wo-mode-btn.on:disabled{opacity:.78}

/* ── عمودُ الملاحظات والتعديلات في السجلّ ──
   عمودٌ واحدٌ يجمع ما كُتب في الورقة وختمَ من عدّلها، ولا يمدّ
   الجدولَ: نصُّه يُقصَر بثلاث نقاطٍ وكاملُه في التلميح. */
.sh-notecol{min-inline-size:190px}
.sh-tbl td.sh-notecell{white-space:normal;max-inline-size:240px}
.sh-notecell-t{
  display:block;font-size:12px;font-weight:600;color:var(--tx-2);line-height:1.5;
  overflow:hidden;text-overflow:ellipsis;display:-webkit-box;
  -webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.sh-notecell-e{color:var(--tx-gold-2);font-weight:700}

/* ── سجلُّ التعديلات في بطاقة الأمر ── */
.sh-edits{display:flex;flex-direction:column;gap:6px;margin-block-start:6px}
.sh-edit-row{
  display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  padding:8px 11px;border-radius:var(--r-sm);
  background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);
}
.sh-edit-row b{font-size:12px;font-weight:800;color:var(--tx)}
.sh-edit-row time{font-size:10.5px;font-weight:700;color:var(--tx-3);font-variant-numeric:tabular-nums}
.sh-edit-row span{font-size:11px;color:var(--tx-2);line-height:1.6}
.sh-edit-row .unlocked{
  padding:1px 8px;border-radius:var(--r-pill);font-size:10px;font-weight:800;
  color:var(--warn);background:var(--warn-bg);
}

/* ── وسمُ التوثيق: اسمُ من أصدر الأمر ──
   يُقرأ ولا يُكتَب. فلا يُعطى شكلَ الحقل القابل للكتابة كي لا
   يُظنّ خانةً فارغةً نُسي ملؤها. */
.sh-stampfld{
  display:flex;align-items:center;gap:10px;min-block-size:42px;
  padding:7px 13px;border-radius:var(--r-md);
  background:var(--ok-bg);box-shadow:inset 0 0 0 1px var(--ok);
}
.sh-stampfld .ic{
  flex:0 0 auto;width:22px;height:22px;border-radius:var(--r-pill);
  display:grid;place-items:center;font-size:12px;font-weight:800;
  color:var(--on-solid);background:var(--ok);
}
.sh-stampfld .nm{display:flex;flex-direction:column;line-height:1.35;min-inline-size:0}
.sh-stampfld .nm b{font-size:13px;font-weight:800;color:var(--tx)}
.sh-stampfld .nm small{font-size:10.5px;font-weight:600;color:var(--tx-2)}

/* ── سطرُ الحساب تحت أجر السائق ── */
.sh-wo-hint{
  font-size:11.5px;font-weight:600;line-height:1.7;color:var(--tx-3);
  background:var(--surface-2);border-radius:var(--r-sm);padding:9px 12px;
  box-shadow:inset 0 0 0 1px var(--line);
}
.sh-wo-hint.ok{color:var(--tx-2);background:var(--ok-bg);box-shadow:inset 0 0 0 1px var(--ok)}

@media (max-width:700px){
  .sh-wo-type{grid-template-columns:1fr}
  .sh-wo-mode{grid-template-columns:1fr}
  .sh-wo-step{min-inline-size:78px;padding:2px 4px}
  .sh-wo-step-tx small{display:none}
  .sh-wo-step-tx b{font-size:10.5px;white-space:normal}
}

/* ═══ نموذج أمر الشراء — التبويبان والقسمة ═══ */
.sh-po-panes{margin-block-start:6px}
.sh-po-pick-info{display:flex;align-items:center;min-block-size:34px}
.sh-po-chipline{display:flex;gap:6px;flex-wrap:wrap}

.sh-po-picktitle{
  display:flex;align-items:baseline;gap:10px;margin-block:8px 10px;
  padding-block-end:8px;border-block-end:1px solid var(--line);
}
.sh-po-picktitle b{font-size:13px;font-weight:800;color:var(--tx-gold)}
.sh-po-picktitle small{font-size:11px;color:var(--tx-3)}

.sh-po-picklist{
  display:flex;flex-direction:column;gap:4px;max-block-size:280px;overflow-y:auto;
  padding:4px;border-radius:var(--r-md);background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);
}
.sh-po-pickrow{
  display:flex;align-items:center;gap:10px;padding:8px 11px;border-radius:var(--r-xs);cursor:pointer;
  transition:background .14s;
}
.sh-po-pickrow:hover{background:var(--surface)}
.sh-po-pickrow.on{background:var(--surface);box-shadow:inset 0 0 0 1px var(--tx-gold-2)}
.sh-po-pickrow.all{border-block-end:1px solid var(--line);border-radius:var(--r-xs) var(--r-xs) 0 0}
.sh-po-pickrow .nm{flex:1;display:flex;flex-direction:column;line-height:1.35;min-inline-size:0}
.sh-po-pickrow .nm b{font-size:12.5px;font-weight:700;color:var(--tx)}
.sh-po-pickrow .nm small{font-size:10.5px;color:var(--tx-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-po-pickrow .shr{
  flex:0 0 auto;font-size:12px;font-weight:800;color:var(--tx-gold);
  direction:ltr;unicode-bidi:isolate;
}

/* لوحةُ القسمة — تُري المستخدم الحساب قبل الحفظ لا بعده */
.sh-po-split{
  margin-block-start:10px;padding:12px 14px;border-radius:var(--r-md);
  background:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--line);
}
.sh-po-splitsum{
  display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;
  font-size:13px;font-weight:700;color:var(--tx-2);margin-block-end:5px;
}
.sh-po-splitsum .op{color:var(--tx-3);font-weight:800}
.sh-po-splitsum b{color:var(--tx-gold);font-size:14px}

/* خليّةُ أمر الشراء في الجداول */
.sh-po-cell{display:inline-flex;align-items:center;gap:7px}
.sh-po-cell small{font-size:10px}
.sh-chip.sm{padding:1px 7px;font-size:10px}

/* سطرُ بيانٍ داخل النموذج */
.sh-fld-note{
  display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:var(--r-sm);
  background:var(--chip-bg);box-shadow:inset 0 0 0 1px var(--line);
}
.sh-fld-note .nt{font-size:10.5px;font-weight:800;color:var(--tx-gold-2)}
.sh-fld-note .nv{font-size:12px;font-weight:600;color:var(--tx-2);line-height:1.7}
.sh-fld-hint{font-size:10.5px;color:var(--tx-3);margin-block-start:4px}

/* ═══ عنوانُ قسمٍ داخل نموذجٍ ثنائيّ اللغة ═══
   خطٌّ فاصلٌ وعنوانٌ يعلو زوجَ الخانتين — العربيةَ واللاتينية —
   فتُقرأ الورقةُ أزواجاً كما تُملأ، لا عمودين منفصلين. */
.sh-fld-head{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  margin-block-start:6px;padding-block-end:6px;
  border-block-end:1px solid var(--line);
}
.sh-fld-head .ht{font-size:12.5px;font-weight:800;color:var(--tx-gold)}
.sh-fld-head .hs{font-size:11px;font-weight:600;color:var(--tx-3);line-height:1.6}
.sh-form > .sh-fld-head:first-child{margin-block-start:0}

/* عدّادُ التبويب — يُقرأ قبل فتحه */
.sh-tab{display:inline-flex;align-items:center;gap:7px}
.sh-tab-n{
  min-inline-size:20px;padding:1px 7px;border-radius:var(--r-pill);
  font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums;
  color:var(--chip-tx);background:var(--chip-bg);
}
.sh-tab.active .sh-tab-n{color:var(--gold-900);background:var(--gold-200)}

/* صفٌّ متاحٌ ومعه تنبيه — أخضرُ لأنّه يُختار، ووصفُه يقول ما عليه */
.sh-pick-row.noted .sh-pick-t small{color:var(--warn)}

/* اسمٌ ووصفُه اللاتينيّ تحته في خليّة جدول */
.sh-cellstack{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-cellstack b{font-size:13px;font-weight:700;color:var(--tx)}

/* ═══════════════════════════════════════════════════════════════
   المكافآت الظرفية — لوحُ الاقتراح في العمليات ولوحُ الاعتماد
   في المالية. لونٌ واحدٌ يجمعهما فيُعرَف البندُ حيثما ظهر.
   ═══════════════════════════════════════════════════════════════ */
.sh-bn-box {
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface-2);
  padding: 12px 14px;
  display: grid;
  gap: 10px;
}
.sh-bn-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.sh-bn-head input { margin-block-start: 3px; }
.sh-bn-head b { display: block; font-size: 14px; }
.sh-bn-head small { display: block; color: var(--tx-3); margin-block-start: 2px; }
.sh-bn-body { padding: 0; }

.sh-bnwrap { display: grid; gap: 10px; margin-block: 10px 16px; }
.sh-bn-hd {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  font-size: 14px;
}
.sh-bn-note {
  font-size: 12.5px;
  color: var(--tx-3);
  padding: 8px 12px;
  border: 1px dashed var(--line);
  border-radius: var(--r-sm);
}
.sh-bn-list { display: grid; gap: 8px; }
.sh-bn-card {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--line);
  border-inline-start: 3px solid var(--line);
  border-radius: var(--r-md);
  background: var(--surface);
  padding: 10px 14px;
}
.sh-bn-card.wait { border-inline-start-color: var(--warn); }
.sh-bn-card.ok { border-inline-start-color: var(--ok); }
.sh-bn-card.expired { border-inline-start-color: var(--err); }
.sh-bn-b { min-inline-size: 0; flex: 1; display: grid; gap: 6px; }
.sh-bn-x { font-size: 12px; color: var(--tx-3); line-height: 1.7; }
.sh-bn-v {
  display: grid;
  gap: 8px;
  justify-items: end;
  align-content: center;
  white-space: nowrap;
}
.sh-bn-acts { display: flex; gap: 6px; }
.sh-bn-read {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-radius: var(--r-sm);
  background: var(--surface-2);
}
.sh-bn-read small { color: var(--tx-3); font-size: 12.5px; }
.sh-bn-gm {
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
}
.sh-bn-chip { margin-inline-start: 8px; }

/* ═══ شريطُ أدوات الصفحة على الهاتف ═══ (٢٠٢٦-١٠-١٥)
   كانت خانةُ البحث تُخفى على الهاتف في كلّ قسم (قاعدةُ بحث الترويسة تشاركها
   صنفَها)، فلمّا ظهرت انضغطت بين المرشّحات والأزرار حتى ثلاثين نقطة. فتأخذ
   الخانةُ سطراً كاملاً ويلتفّ ما بعدها تحتها. */
@media (max-width:560px){
  .sh-bar{flex-wrap:wrap}
  .sh-bar > .sh-search{flex:1 1 100%;max-width:none;min-inline-size:0}
}

/* ═══ 54-plate.css ═══ */
/* ═══ الفحصُ الحيّ تحت الخانة — أخضرُ بعلامة صحّ، وأحمرُ بالرفض ═══ */
.sh-live{font-size:12px;font-weight:700;line-height:1.5;padding:5px 10px;border-radius:var(--r-sm);margin-block-start:2px}
.sh-live.ok{color:var(--ok);background:var(--ok-bg)}
.sh-live.bad{color:var(--err);background:var(--err-bg)}
.sh-live.warn{color:var(--warn);background:var(--warn-bg)}
.sh-live.wait{color:var(--tx-3);background:var(--chip-bg)}

/* ═══ خانةُ اللوحة الذكية ═══ */
.sh-fld-pp{grid-column:1 / -1}
/* `hidden` يغلب العرضَ المرن — وإلّا ظهرت الحاويةُ الفارغة إطاراً بلا محتوى */
.sh-pp [hidden],.sh-live[hidden],.sh-bar[hidden]{display:none!important}
.sh-pp{position:relative;display:flex;flex-direction:column;gap:8px}
.sh-pp-in{font-size:16px;font-weight:700;letter-spacing:.3px}
.sh-pp-hint{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-pp-hint:empty{display:none}
.sh-pick-panel.sh-pp-drop{top:0;margin-top:0;max-height:340px;padding-block-end:4px}

.sh-pp-pills{display:flex;flex-wrap:wrap;gap:6px;padding:9px 10px;border-bottom:1px solid var(--line);
  position:sticky;top:0;background:var(--surface-2);z-index:1}
.sh-pp-pill{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--tx-2);
  font:inherit;font-size:12px;font-weight:700;padding:4px 11px;border-radius:var(--r-pill);cursor:pointer;
  display:inline-flex;gap:6px;align-items:center;min-height:30px}
.sh-pp-pill b{font-weight:800;color:var(--tx-3)}
.sh-pp-pill.on{background:var(--gold-400);border-color:var(--gold-400);color:#FFFFFF}
.sh-pp-pill.on b{color:var(--gold-800)}
.sh-pp-pill.k-renter.on{background:var(--info);border-color:var(--info);color:var(--surface)}
.sh-pp-pill.k-renter.on b{color:var(--surface)}
.sh-pp-pill.k-company.on{background:var(--ok);border-color:var(--ok);color:var(--surface)}
.sh-pp-pill.k-company.on b{color:var(--surface)}

.sh-pp-grp{display:flex;justify-content:space-between;padding:7px 12px;font-size:11.5px;font-weight:800;
  background:var(--surface-3);border-bottom:1px solid var(--line);color:var(--tx-gold-2)}
.sh-pp-grp.k-renter{color:var(--info)}
.sh-pp-grp.k-company{color:var(--ok)}
.sh-pp-grp .n{color:var(--tx-3);font-weight:700}
.sh-pp-none{padding:16px;text-align:center;font-size:12.5px;color:var(--tx-3)}

.sh-pp-row{display:grid;grid-template-columns:minmax(0,130px) minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer;min-height:50px}
.sh-pp-row:last-child{border-bottom:none}
.sh-pp-row:hover,.sh-pp-row.hi{background:var(--surface-3)}
.sh-pp-row.hi{box-shadow:inset -3px 0 0 var(--gold-400)}
.sh-pp-row.busy{cursor:not-allowed;opacity:.62}
.sh-pp-row.busy:hover{background:var(--err-bg)}
.sh-pp-plate{direction:ltr;unicode-bidi:isolate;text-align:end;font-size:14.5px;font-weight:800;color:var(--tx-2);
  font-variant-numeric:tabular-nums;white-space:nowrap}
.sh-pp-plate mark{background:transparent;color:var(--tx-gold);border-bottom:2px solid var(--gold-400)}
.sh-pp-mid{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-pp-mid b{font-size:13px;font-weight:700;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-pp-mid small{font-size:11.5px;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-pp-k{display:inline-block;padding:1px 8px;border-radius:var(--r-pill);font-size:11px;font-weight:800;
  background:var(--chip-bg);color:var(--tx-gold-2)}
.sh-pp-k.k-renter{background:var(--info-bg);color:var(--info)}
.sh-pp-k.k-company{background:var(--ok-bg);color:var(--ok)}

/* البطاقة — تظهر بالاختيار */
.sh-pp-card{border:1px solid var(--gold-400);border-radius:var(--r-lg);background:var(--surface-3);
  padding:12px;display:flex;flex-direction:column;gap:10px;animation:shPpIn .5s var(--ease)}
@keyframes shPpIn{0%{opacity:0;transform:translateY(6px) scale(.985)}60%{opacity:1;box-shadow:0 0 0 5px rgba(47,99,211,.22)}100%{transform:none;box-shadow:none}}
.sh-pp-cardrow{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap}
.sh-pp-bigplate{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 14px;
  border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line)}
.sh-pp-bigplate span{font-size:11px;font-weight:700;color:var(--tx-3)}
.sh-pp-bigplate b{font-size:21px;font-weight:800;color:var(--tx-gold);font-variant-numeric:tabular-nums}
.sh-pp-cardinfo{flex:1 1 240px;display:flex;flex-direction:column;justify-content:center;gap:5px;min-inline-size:0}
.sh-pp-cardt{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.sh-pp-cardt > b{font-size:14.5px;font-weight:800;color:var(--tx)}
.sh-pp-cards{font-size:12.5px;font-weight:600;color:var(--tx-2)}
.sh-pp-new{display:inline-block;padding:2px 9px;border-radius:var(--r-pill);font-size:11px;font-weight:800;
  background:var(--gold-400);color:#FFFFFF}
.sh-pp-change{align-self:center}
.sh-pp-auto{font-size:12px;font-weight:600;color:var(--ok);background:var(--ok-bg);padding:7px 11px;border-radius:var(--r-sm)}

/* لوحةٌ غيرُ مسجّلة */
.sh-pp-miss{border:1px dashed var(--warn);background:var(--warn-bg);border-radius:var(--r-lg);padding:12px 14px;
  display:flex;flex-direction:column;gap:8px;animation:shPpIn .35s var(--ease)}
.sh-pp-misst{font-size:13.5px;font-weight:800;color:var(--warn)}
.sh-pp-misss{font-size:12.5px;font-weight:600;color:var(--tx-2)}
.sh-pp-acts{display:flex;gap:8px;flex-wrap:wrap}
.sh-pp-quick{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--line-2);
  border-radius:var(--r-md);padding:12px}
.sh-pp-qt{font-size:13.5px;font-weight:800;color:var(--tx-gold)}
.sh-pp-qgrid,.sh-pp-qnew{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.sh-pp-qnew[hidden]{display:none}
.sh-pp-qcls{font-size:11.5px;font-weight:600;color:var(--tx-3)}
.sh-pp-qcls:empty{display:none}
.sh-pp-ro{display:flex;align-items:center;color:var(--tx-2)}
.sh-pp-quick .sh-btn[disabled]{opacity:.45;cursor:not-allowed}
@media (max-width:640px){
  .sh-pp-qgrid,.sh-pp-qnew{grid-template-columns:1fr}
  .sh-pp-row{grid-template-columns:minmax(0,1fr) auto;}
  .sh-pp-row .sh-pp-mid{grid-column:1 / -1;grid-row:2}
}

/* ═══ العملاء والمقاولون — سجلّاتُ المقاولين وملفّاتُهم ═══ */
.sh-pt-seg{display:flex;flex-wrap:wrap;gap:6px;padding:6px;margin-block-end:var(--sp-3);
  background:var(--surface-3);border:1px solid var(--line);border-radius:var(--r-lg);inline-size:fit-content;max-inline-size:100%}
.sh-pt-seg[hidden]{display:none}
.sh-pt-segb{appearance:none;border:0;background:transparent;color:var(--tx-3);font:inherit;cursor:pointer;
  padding:9px 16px;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  text-align:start;min-height:48px}
.sh-pt-segb .t{display:flex;gap:8px;align-items:center;font-size:14px;font-weight:800;color:var(--tx-2)}
.sh-pt-segb .n{font-size:11.5px;font-weight:800;padding:1px 8px;border-radius:var(--r-pill);background:var(--chip-bg);color:var(--chip-tx)}
.sh-pt-segb small{font-size:11.5px;font-weight:600}
.sh-pt-segb:hover{background:var(--surface-2)}
.sh-pt-segb.on{background:var(--surface);box-shadow:var(--shadow-1),inset 0 -3px 0 var(--gold-400)}
.sh-pt-segb.on .t{color:var(--tx-gold)}
.sh-pt-segb.k-renter.on{box-shadow:var(--shadow-1),inset 0 -3px 0 var(--info)}
.sh-pt-segb.k-renter.on .t{color:var(--info)}
.sh-pt-segb.k-company.on{box-shadow:var(--shadow-1),inset 0 -3px 0 var(--ok)}
.sh-pt-segb.k-company.on .t{color:var(--ok)}
.sh-pt-segb.k-service.on{box-shadow:var(--shadow-1),inset 0 -3px 0 var(--tx-3)}
.sh-pt-segb.k-service.on .t{color:var(--tx)}

.sh-pt-note{font-size:12.5px;font-weight:600;color:var(--tx-3);margin-block:4px 10px}
.sh-pt-split{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.sh-pt-list{flex:1 1 280px;max-inline-size:360px;min-inline-size:0;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:12px;display:flex;flex-direction:column;gap:10px}
.sh-pt-listbar{display:flex;gap:8px;align-items:center}
.sh-pt-listbar .sh-search{flex:1 1 auto;min-inline-size:0}
.sh-pt-items{display:flex;flex-direction:column;gap:3px;max-height:640px;overflow-y:auto}
.sh-pt-item{appearance:none;inline-size:100%;border:1px solid transparent;background:transparent;color:var(--tx);
  font:inherit;text-align:start;padding:10px 12px;border-radius:var(--r-md);cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:54px}
.sh-pt-item:hover{background:var(--surface-2)}
.sh-pt-item.on{background:var(--surface-2);border-color:var(--line-2)}
.sh-pt-item .a{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-pt-item .a b{font-size:14px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-pt-item .a small{font-size:11.5px;font-weight:600;color:var(--tx-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-pt-item .z{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}
.sh-pt-item .z small.ok{font-size:11px;font-weight:700;color:var(--ok)}
.sh-pt-none{padding:18px;text-align:center;font-size:13px;color:var(--tx-3)}

.sh-pt-file{flex:999 1 620px;min-inline-size:0;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:18px 20px;display:flex;flex-direction:column;gap:14px}
.sh-pt-file.wide{flex-basis:100%}
.sh-pt-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start}
.sh-pt-title{display:flex;flex-direction:column;gap:6px;min-inline-size:0}
.sh-pt-name{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sh-pt-name h3{font-family:var(--display);font-size:22px;font-weight:700;color:var(--tx)}
.sh-pt-meta{display:flex;flex-wrap:wrap;gap:14px;font-size:12.5px;font-weight:600;color:var(--tx-2)}
.sh-pt-meta b{color:var(--tx)}
.sh-pt-acts{display:flex;flex-wrap:wrap;gap:8px}
.sh-pt-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.sh-pt-kpi{background:var(--surface-3);border:1px solid var(--line);border-radius:var(--r-md);padding:11px 14px;
  display:flex;flex-direction:column;gap:3px;min-inline-size:0}
.sh-pt-kpi .t{font-size:12px;font-weight:700;color:var(--tx-3)}
.sh-pt-kpi .v{font-size:22px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums;text-align:start}
.sh-pt-kpi small{font-size:11.5px;font-weight:600;color:var(--tx-3)}
.sh-pt-kpi.ok .v{color:var(--ok)} .sh-pt-kpi.go .v{color:var(--info)} .sh-pt-kpi.gold .v{color:var(--tx-gold);font-size:18px}
.sh-pt-subs{margin-block-end:0}
.sh-pt-body{display:flex;flex-direction:column;gap:12px;min-inline-size:0}
.sh-pt-filters{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;align-items:center}
.sh-pt-filters .f,.sh-pt-filters .z{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sh-pt-filters [hidden]{display:none}
.sh-pt-filters .sh-in{inline-size:auto;min-inline-size:140px;max-inline-size:240px;height:40px;padding-block:0}
.sh-pt-month{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.sh-pt-mhead{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:9px 14px;background:var(--surface-2);
  border-bottom:1px solid var(--line)}
.sh-pt-mhead b{font-size:14px;font-weight:800;color:var(--tx-gold)}
.sh-pt-mhead span{font-size:12.5px;font-weight:600;color:var(--tx-2)}
.sh-pt-month .sh-tblwrap{border:0;border-radius:0;box-shadow:none}
.sh-pt-total{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:18px;padding:11px 14px;font-size:13px;font-weight:600;
  color:var(--tx-2);background:var(--surface-3);border:1px solid var(--line);border-radius:var(--r-md)}
.sh-pt-total b{color:var(--tx-gold)}
.sh-neg{color:var(--err)}
@media (max-width:760px){
  .sh-pt-list{max-inline-size:none}
  .sh-pt-segb{flex:1 1 45%}
}

/* ═══ 55-po.css ═══ */
/* ═══ نافذةُ أمر الشراء ═══ */
.sh-po2{display:flex;flex-direction:column;gap:14px;padding:var(--modal-pad)}
.sh-po2 .sh-form{max-height:none;overflow:visible;padding:0}
.sh-po2 [hidden]{display:none!important}

.sh-po2-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sh-po2-head .sh-chip{font-size:12px}

/* المُعاد من المالية: السببُ أوّلَ ما يُرى */
.sh-po2-ret{display:flex;flex-direction:column;gap:4px;padding:11px 14px;border-radius:var(--r-md);
  background:var(--err-bg);border:1px solid var(--err);border-inline-start-width:4px}
.sh-po2-ret b{font-size:13px;font-weight:800;color:var(--err)}
.sh-po2-ret span{font-size:13px;font-weight:600;color:var(--tx);line-height:1.7}
.sh-po2-ret small{font-size:11.5px;color:var(--tx-3)}

/* الخدمات */
.sh-po2-svcwrap{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);
  border-radius:var(--r-lg);background:var(--surface-2)}
.sh-po2-svch{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sh-po2-svch .lbl{font-size:12.5px;font-weight:800;color:var(--tx-2)}
.sh-po2-svcs{display:flex;flex-direction:column;gap:6px;max-height:228px;overflow-y:auto}
.sh-po2-svc{appearance:none;font:inherit;text-align:start;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:10px;padding:9px 12px;min-height:52px;border:1px solid var(--line);
  border-radius:var(--r-md);background:var(--surface);color:var(--tx)}
.sh-po2-svc:hover{border-color:var(--gold-400)}
.sh-po2-svc.on{border-color:var(--gold-400);background:var(--surface-3);box-shadow:inset -3px 0 0 var(--gold-400)}
.sh-po2-svc .a{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-po2-svc .a b{font-size:13px;font-weight:800}
.sh-po2-svc .a small{font-size:11.5px;color:var(--tx-3);direction:ltr;unicode-bidi:isolate;text-align:start}
.sh-po2-svc .z{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.sh-po2-none{padding:12px;font-size:12.5px;font-weight:600;color:var(--tx-3);text-align:center;line-height:1.8}
.sh-po2-quick{display:flex;flex-direction:column;gap:10px;padding:12px;border:1px dashed var(--gold-400);
  border-radius:var(--r-md);background:var(--surface)}
.sh-po2-quick > b{font-size:12.5px;font-weight:800;color:var(--tx-gold-2)}

/* الأرقام */
.sh-po2-calc{display:flex;align-items:center;font-weight:800;color:var(--tx-gold);background:var(--surface-3)}
.sh-po2-warn{padding:9px 12px;border-radius:var(--r-md);background:var(--warn-bg,var(--chip-bg));
  color:var(--warn,var(--tx-2));font-size:12.5px;font-weight:700;line-height:1.7}
.sh-po2-ack{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:700;color:var(--tx-2);cursor:pointer}

/* مركباتٌ أخرى */
.sh-po2-many{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;background:var(--surface-2)}
.sh-po2-many summary{cursor:pointer;font-size:12.5px;font-weight:800;color:var(--tx-2);padding-block:4px}
.sh-po2-mlist{display:flex;flex-direction:column;gap:4px;padding-block-start:8px}
.sh-po2-mrow{display:flex;gap:10px;align-items:center;padding:6px 8px;border-radius:var(--r-sm);cursor:pointer;font-size:12.5px}
.sh-po2-mrow:hover{background:var(--surface-3)}
.sh-po2-mrow b{font-weight:800;direction:ltr;unicode-bidi:isolate}
.sh-po2-mrow span{color:var(--tx-3)}

/* ما يلزم للترحيل */
.sh-po2-checks{display:flex;flex-wrap:wrap;gap:6px}
.sh-po2-ck{display:inline-flex;gap:5px;align-items:center;padding:3px 10px;border-radius:var(--r-pill);
  font-size:11.5px;font-weight:700;background:var(--chip-bg);color:var(--tx-3)}
.sh-po2-ck i{font-style:normal;font-weight:900}
.sh-po2-ck.ok{background:var(--ok-bg);color:var(--ok)}

/* سجلُّ أمر الشراء */
.sh-po2-log{display:flex;flex-direction:column;gap:4px}
.sh-po2-log:empty{display:none}
.sh-po2-log > b{font-size:12px;font-weight:800;color:var(--tx-gold-2)}
.sh-po2-logrow{display:flex;gap:10px;font-size:12px;color:var(--tx-2);padding:4px 8px;border-inline-start:2px solid var(--line)}
.sh-po2-logrow time{color:var(--tx-3);white-space:nowrap}
.sh-po2-logrow.ret{border-color:var(--err);color:var(--err)}
.sh-po2-acts{display:flex;justify-content:flex-end;gap:8px}
.sh-po2-reasons{display:flex;flex-wrap:wrap;gap:6px}

/* خليّةُ أمر الشراء في الجداول */
.sh-po-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.sh-po-cell small{font-size:11px;color:var(--tx-3);font-weight:600}
.sh-po-cell .sh-btn.sm{height:30px;padding-inline:12px;font-size:12px}
.sh-btn.sm.ret{background:var(--err-bg);color:var(--err);border-color:var(--err)}
.sh-btn.sm.ret:hover{background:var(--err-solid);color:var(--on-solid)}
.sh-po-note{font-size:11.5px;color:var(--err);font-weight:700;max-inline-size:260px;line-height:1.6}

@media (max-width:640px){
  .sh-po2-svc{flex-direction:column;align-items:stretch}
  .sh-po2-svc .z{justify-content:flex-start}
}

/* فلاتر «المُعادة» و«المتأخّرة» في أوامر العمل */
.sh-wo-fpill[hidden]{display:none!important}
.sh-wo-fpill.back{border-color:var(--err);color:var(--err);background:var(--err-bg)}
.sh-wo-fpill.back.on{background:var(--err-solid);border-color:var(--err-solid);color:var(--on-solid)}
.sh-wo-fpill.late{border-color:var(--warn);color:var(--warn);background:var(--warn-bg)}
.sh-wo-fpill.late.on{background:var(--warn);border-color:var(--warn);color:var(--surface)}
.sh-tbl tr.sh-row-back > td{background:var(--err-bg)}
.sh-tbl tr.sh-row-back > td:first-child{box-shadow:inset -4px 0 0 var(--err)}

/* ═══ خانةُ القائمة — أقسامُ الشركة شاراتٍ ═══ */
.sh-tags{display:flex;flex-direction:column;gap:8px}
.sh-tags-list{display:flex;flex-wrap:wrap;gap:6px;min-height:34px;align-items:center;padding:6px 8px;
  border:1px dashed var(--line);border-radius:var(--r-md);background:var(--surface-2)}
.sh-tags-none{font-size:12px;color:var(--tx-3);font-weight:600}
.sh-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 12px;border-radius:var(--r-pill);
  background:var(--surface-3);border:1px solid var(--gold-400);color:var(--tx);font:inherit;font-size:12.5px;font-weight:700}
.sh-tag .x{appearance:none;border:0;background:var(--chip-bg);color:var(--tx-2);width:22px;height:22px;border-radius:50%;
  cursor:pointer;font:inherit;font-size:14px;line-height:1;display:inline-flex;align-items:center;justify-content:center}
.sh-tag .x:hover{background:var(--err-bg);color:var(--err)}
.sh-tag.sug{cursor:pointer;border-style:dashed;border-color:var(--line);background:var(--surface);color:var(--tx-2);padding:4px 12px}
.sh-tag.sug:hover{border-color:var(--gold-400);color:var(--tx)}
.sh-tags-row{display:flex;gap:8px}
.sh-tags-row .sh-in{flex:1 1 auto}
.sh-tags-sug{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.sh-tags-sug small{font-size:11.5px;color:var(--tx-3);font-weight:700}
.sh-tags [hidden]{display:none!important}

/* ═══ خانةُ القسم في أمر العمل — تتبع الشركة ═══ */
.sh-dept{display:flex;flex-direction:column;gap:6px}
.sh-dept-hint{font-size:12px;font-weight:600;color:var(--tx-3);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sh-dept-hint.bad{color:var(--err)}
.sh-dept-hint.ok{color:var(--ok)}
.sh-dept-add{display:flex;gap:8px}
.sh-dept-add .sh-in{flex:1 1 auto}
.sh-dept [hidden]{display:none!important}
.sh-in:disabled{opacity:.6;cursor:not-allowed}

/* ═══ جاهزيةُ العميل في الجدول ═══ */
.sh-cl-tags{display:flex;flex-wrap:wrap;gap:4px}
.sh-cl-svc{appearance:none;font:inherit;cursor:pointer;border:0;background:none;padding:0}
.sh-dept-in{position:relative}

/* ═══ خانةُ التاريخ — يوم/شهر/سنة، وتقويمٌ عربيٌّ يبدأ بالسبت ═══ */
.sh-in.sh-date{direction:ltr;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.3px;
  padding-inline-start:40px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg' viewBox='0 0 24 24' fill='none' stroke='%23a0803a' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M3 10h18M8 3v4M16 3v4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:18px 18px;background-position:left 13px center}
.sh-in.sh-date::placeholder{text-align:right}
.sh-in.sh-date.sh-date-bad{border-color:var(--err)!important;box-shadow:0 0 0 3px var(--err-bg)}
.sh-cal{position:fixed;top:var(--cal-top,0);left:var(--cal-left,0);width:296px;z-index:9500;
  background:var(--surface);border:1px solid var(--gold-400);border-radius:var(--r-lg);
  box-shadow:0 18px 40px -12px rgba(0,0,0,.35);padding:10px;direction:rtl;font-size:13px}
.sh-cal[hidden]{display:none!important}
.sh-cal-head{display:flex;gap:6px;align-items:center;margin-block-end:8px}
.sh-cal-nav{appearance:none;border:1px solid var(--line);background:var(--surface-2);color:var(--tx);
  width:32px;height:32px;border-radius:var(--r-sm);cursor:pointer;font:inherit;font-size:18px;line-height:1;flex:0 0 auto}
.sh-cal-nav:hover{border-color:var(--gold-400)}
.sh-cal-sel{flex:1 1 auto;min-width:0;height:32px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--surface-2);color:var(--tx);font:inherit;font-weight:700;padding-inline:6px}
.sh-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.sh-cal-wd{text-align:center;font-size:11.5px;font-weight:800;color:var(--tx-3);padding-block:4px}
.sh-cal-day{appearance:none;border:1px solid transparent;background:none;color:var(--tx);height:34px;
  border-radius:var(--r-sm);cursor:pointer;font:inherit;font-weight:700;font-variant-numeric:tabular-nums}
.sh-cal-day:hover{background:var(--surface-3);border-color:var(--line)}
.sh-cal-day.today{border-color:var(--gold-400);color:var(--tx-gold)}
.sh-cal-day.on{background:var(--gold-400);border-color:var(--gold-400);color:#FFFFFF}
.sh-cal-day:disabled{opacity:.3;cursor:not-allowed}
.sh-cal-acts{display:flex;gap:6px;margin-block-start:8px}
.sh-cal-foot{appearance:none;flex:1;height:32px;border:1px solid var(--gold-400);background:var(--surface-3);
  color:var(--tx);border-radius:var(--r-sm);cursor:pointer;font:inherit;font-weight:800}
.sh-cal-foot.ghost{border-color:var(--line);background:none;color:var(--tx-2)}
.sh-cal-foot:disabled{opacity:.4;cursor:not-allowed}
.sh-po2-mall{display:flex;justify-content:flex-end;padding:2px 8px 6px}

/* مسودّةُ الشهر التلقائية — شريطٌ هادئ لا تحذيريّ */
.sh-po2-ret.auto{background:var(--info-bg);border-color:var(--info)}
.sh-po2-ret.auto b{color:var(--info)}

/* ═══ 56-tasks.css ═══ */
/* ═══ مهامي اليوم ═══ */
.sh-tk-head{display:flex;flex-direction:column;gap:4px;margin-block-end:16px}
.sh-tk-hl{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline}
.sh-tk-date{font-size:13px;font-weight:600;color:var(--tx-3)}
.sh-tk-hello{margin:0;font-size:15px;font-weight:600;color:var(--tx-2)}

.sh-tk-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-block-end:22px}
.sh-tk-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;
  display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow-1)}
.sh-tk-tile .l{font-size:13px;font-weight:800}
.sh-tk-tile .n{font-size:30px;font-weight:700;line-height:1.25}
.sh-tk-tile .n small{font-size:14px;font-weight:600;color:var(--tx-3)}
.sh-tk-tile .s{font-size:12px;color:var(--tx-3)}
.sh-tk-tile.t-urgent{border-color:color-mix(in srgb,var(--err) 35%,var(--line))}
.sh-tk-tile.t-urgent .l,.sh-tk-tile.t-urgent .n{color:var(--err)}
.sh-tk-tile.t-today{border-color:color-mix(in srgb,var(--warn) 35%,var(--line))}
.sh-tk-tile.t-today .l,.sh-tk-tile.t-today .n{color:var(--warn)}
.sh-tk-tile.t-week{border-color:color-mix(in srgb,var(--info) 35%,var(--line))}
.sh-tk-tile.t-week .l,.sh-tk-tile.t-week .n{color:var(--info)}
.sh-tk-tile.t-done{border-color:color-mix(in srgb,var(--ok) 35%,var(--line))}
.sh-tk-tile.t-done .l,.sh-tk-tile.t-done .n span{color:var(--ok)}
.sh-tk-bar{height:8px;border-radius:var(--r-pill);background:var(--ok-bg);overflow:hidden;margin-top:6px}
.sh-tk-bar i{display:block;height:100%;width:var(--p,0%);background:var(--ok);border-radius:var(--r-pill);transition:width .4s var(--ease)}

.sh-tk-body{display:flex;flex-direction:column;gap:22px}
.sh-tk-group{display:flex;flex-direction:column;gap:12px}
.sh-tk-gh{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sh-tk-gh h3{margin:0;font-size:17px;font-weight:800;color:var(--tx)}
.sh-tk-gh .dot{width:12px;height:12px;border-radius:50%;background:var(--tx-3);flex:0 0 auto}
.sh-tk-gh .cnt{font-size:13px;font-weight:800;padding:2px 10px;border-radius:var(--r-pill);background:var(--chip-bg);color:var(--chip-tx)}
.sh-tk-gh .hint{font-size:12.5px;color:var(--tx-3)}
.g-urgent .dot{background:var(--err)} .g-urgent .cnt{background:var(--err-bg);color:var(--err)}
.g-today .dot{background:var(--warn)} .g-today .cnt{background:var(--warn-bg);color:var(--warn)}
.g-week .dot{background:var(--info)} .g-week .cnt{background:var(--info-bg);color:var(--info)}
.sh-tk-gh .dot.ok{background:var(--ok)} .sh-tk-gh .cnt.ok{background:var(--ok-bg);color:var(--ok)}

.sh-tk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.sh-tk-card{background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--tx-3);border-radius:var(--r-lg);
  padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-1)}
.sh-tk-card.c-urgent{border-top-color:var(--err)}
.sh-tk-card.c-today{border-top-color:var(--warn)}
.sh-tk-card.c-week{border-top-color:var(--info)}
.sh-tk-top{display:flex;gap:12px;align-items:flex-start}
.sh-tk-top .num{flex:0 0 auto;min-width:42px;height:42px;padding:0 8px;box-sizing:border-box;border-radius:var(--r-md);
  display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;background:var(--chip-bg);color:var(--chip-tx)}
.c-urgent .sh-tk-top .num{background:var(--err-bg);color:var(--err)}
.c-today .sh-tk-top .num{background:var(--warn-bg);color:var(--warn)}
.c-week .sh-tk-top .num{background:var(--info-bg);color:var(--info)}
.sh-tk-top .tx{display:flex;flex-direction:column;gap:3px;min-width:0}
.sh-tk-top h4{margin:0;font-size:15.5px;font-weight:800;color:var(--tx);line-height:1.5}
.sh-tk-top .tx span{font-size:12.5px;color:var(--tx-3);line-height:1.6}
.sh-tk-items{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.sh-tk-it{appearance:none;width:100%;display:flex;gap:10px;align-items:center;padding:9px 4px;min-height:44px;border:0;
  border-bottom:1px solid var(--line);background:none;font:inherit;color:inherit;text-align:start;cursor:pointer}
.sh-tk-it:hover{background:var(--surface-3)}
.sh-tk-it .a{font-weight:800;font-size:13px;color:var(--tx);white-space:nowrap;direction:ltr;unicode-bidi:isolate}
.sh-tk-it .b{flex:1 1 auto;min-width:0;font-size:13px;color:var(--tx-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-tk-it .c{flex:0 1 auto;max-width:48%;font-size:12px;font-weight:800;padding:2px 9px;border-radius:var(--r-pill);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;background:var(--chip-bg);color:var(--chip-tx)}
.sh-tk-it .c.w-err{background:var(--err-bg);color:var(--err)}
.sh-tk-it .c.w-warn{background:var(--warn-bg);color:var(--warn)}
.sh-tk-it .c.w-ok{background:var(--ok-bg);color:var(--ok)}
.sh-tk-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.sh-tk-acts .sh-btn{min-height:44px;flex:0 0 auto;padding-inline:18px}

.sh-tk-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:40px 16px;background:var(--surface);
  border:1px dashed color-mix(in srgb,var(--ok) 45%,var(--line));border-radius:var(--r-lg);text-align:center}
.sh-tk-empty .ic{width:52px;height:52px;border-radius:50%;background:var(--ok-bg);color:var(--ok);font-size:26px;font-weight:800;
  display:inline-flex;align-items:center;justify-content:center}
.sh-tk-empty b{font-size:18px;color:var(--ok)}
.sh-tk-empty span{font-size:13px;color:var(--tx-3)}

.sh-tk-done{margin-top:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;
  display:flex;flex-direction:column;gap:10px}
.sh-tk-none{font-size:13px;color:var(--tx-3)}
.sh-tk-dlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.sh-tk-dlist li{display:flex;gap:8px;align-items:baseline;font-size:13px;color:var(--tx-2);flex-wrap:wrap}
.sh-tk-dlist li i{font-style:normal;color:var(--ok);font-weight:800}
.sh-tk-dlist li b{color:var(--tx);font-weight:700}
.sh-tk-dlist li small{color:var(--tx-3)}
.sh-tk-dlist li time{margin-inline-start:auto;color:var(--tx-3);font-size:12px;direction:ltr}

@media (max-width:640px){
  .sh-tk-grid{grid-template-columns:minmax(0,1fr)}
  .sh-tk-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sh-tk-acts .sh-btn{flex:1 1 auto}
}

/* ═══ واجهة المدير العامّ (للقراءة) ═══ */
.sh-gm-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0 10px}
.sh-gm-h h3{margin:0;font-size:17px;font-weight:800;color:var(--tx)}
.sh-gm-hint{font-size:12.5px;color:var(--tx-3);margin-inline-start:auto}
.sh-gm-n{font-size:13px;font-weight:800;padding:2px 10px;border-radius:var(--r-pill);background:var(--warn-bg);color:var(--warn)}
.sh-gm-seg{display:inline-flex;gap:4px;background:var(--chip-bg);border-radius:var(--r-pill);padding:4px;margin-inline-start:auto}
.sh-gm-sb{min-height:36px;padding:0 16px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--tx-2);font:inherit;font-weight:700;cursor:pointer}
.sh-gm-sb[aria-checked="true"]{background:var(--gold,var(--warn));color:#1A1204}
.sh-gm-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:14px}
.sh-gm-k{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow-1)}
.sh-gm-k .l{font-size:13px;font-weight:800;color:var(--tx-2)}
.sh-gm-k .v{font-size:22px;font-weight:700;line-height:1.3;color:var(--tx);overflow-wrap:anywhere}
.sh-gm-k .d{font-size:13px;font-weight:700}
.sh-gm-k .d-good{color:var(--ok)} .sh-gm-k .d-bad{color:var(--err)} .sh-gm-k .d-flat{color:var(--tx-3)}
.sh-gm-k .s{font-size:12px;color:var(--tx-3)}
.sh-gm-k.k-err{border-color:color-mix(in srgb,var(--err) 40%,var(--line))}
.sh-gm-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--shadow-1);margin-bottom:14px;min-width:0}
.sh-gm-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
.sh-gm-none{margin:0;font-size:13.5px;color:var(--tx-3);list-style:none}
.sh-gm-ri{border-top:1px solid var(--line)}
.sh-gm-ri:first-of-type{border-top:0}
.sh-gm-rk{display:flex;align-items:center;gap:12px;inline-size:100%;min-height:56px;padding:8px 0;border:0;background:transparent;color:inherit;font:inherit;text-align:start;cursor:pointer}
.sh-gm-rk .n{flex:none;min-inline-size:36px;block-size:36px;border-radius:var(--r-pill);display:flex;align-items:center;justify-content:center;font-weight:800;background:var(--chip-bg);color:var(--chip-tx)}
.sh-gm-rk.t-urgent .n{background:var(--err-bg);color:var(--err)}
.sh-gm-rk.t-today .n{background:var(--warn-bg);color:var(--warn)}
.sh-gm-rk.t-week .n{background:var(--info-bg);color:var(--info)}
.sh-gm-rk .tx{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}
.sh-gm-rk .tx b{font-size:14.5px}
.sh-gm-rk .tx small{font-size:12.5px;color:var(--tx-3)}
.sh-gm-rk .who{flex:none;font-size:12px;font-weight:700;padding:3px 10px;border-radius:var(--r-pill);background:var(--chip-bg);color:var(--chip-tx)}
.sh-gm-rk .ar{flex:none;color:var(--tx-3);font-size:11px}
.sh-gm-det{margin:0 48px 10px;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--tx-2)}
.sh-gm-det li::before{content:"• ";color:var(--tx-3)}
.sh-gm-cols{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;align-items:end;block-size:170px}
.sh-gm-cols .wk{display:flex;flex-direction:column;align-items:center;gap:4px;block-size:100%;justify-content:flex-end}
.sh-gm-cols .bars{display:flex;gap:3px;align-items:flex-end;flex:1;inline-size:100%;justify-content:center}
.sh-gm-cols i{display:block;inline-size:40%;max-inline-size:18px;block-size:var(--h,0%);min-block-size:2px;border-radius:var(--r-xs) var(--r-xs) 0 0}
.sh-gm-cols i.a,.sh-gm-leg .a::before{background:var(--gold,var(--warn))}
.sh-gm-cols i.b,.sh-gm-leg .b::before{background:var(--info)}
.sh-gm-cols span{font-size:11px;color:var(--tx-3)}
.sh-gm-leg{display:flex;gap:16px;margin-top:8px;font-size:12px;color:var(--tx-3)}
.sh-gm-leg span::before{content:"";display:inline-block;inline-size:10px;block-size:10px;border-radius:3px;margin-inline-end:6px}
.sh-gm-pipe,.sh-gm-aging{display:flex;flex-direction:column;gap:10px}
.sh-gm-pipe .st,.sh-gm-aging .ag{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px}
.sh-gm-pipe .tr,.sh-gm-aging .tr{block-size:10px;border-radius:var(--r-pill);background:var(--chip-bg);overflow:hidden}
.sh-gm-pipe .tr i,.sh-gm-aging .tr i{display:block;block-size:100%;inline-size:var(--w,0%);border-radius:var(--r-pill);background:var(--info)}
.sh-gm-pipe .s2 .tr i{background:var(--warn)} .sh-gm-pipe .s3 .tr i{background:var(--ok)}
.sh-gm-aging .c-ok .tr i{background:var(--ok)} .sh-gm-aging .c-gold .tr i{background:var(--gold,var(--warn))}
.sh-gm-aging .c-warn .tr i{background:var(--warn)} .sh-gm-aging .c-err .tr i{background:var(--err)}
.sh-gm-fleet{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.sh-gm-donut{inline-size:132px;block-size:132px;border-radius:50%;flex:none;position:relative;
  background:conic-gradient(var(--ok) 0 var(--a,0%),var(--tx-3) var(--a,0%) var(--b,0%),var(--err) var(--b,0%) 100%);display:flex;flex-direction:column;align-items:center;justify-content:center}
.sh-gm-donut::before{content:"";position:absolute;inset:16px;border-radius:50%;background:var(--surface)}
.sh-gm-donut b,.sh-gm-donut small{position:relative;line-height:1.25}
.sh-gm-donut b{font-size:20px} .sh-gm-donut small{font-size:12px;color:var(--tx-3)}
.sh-gm-fl{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}
.sh-gm-fl .ok{color:var(--ok)} .sh-gm-fl .err{color:var(--err)} .sh-gm-fl .mut{color:var(--tx-3)}
.sh-gm-top,.sh-gm-feed{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.sh-gm-top li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:13.5px;align-items:center}
.sh-gm-top li:first-child,.sh-gm-feed li:first-child{border-top:0}
.sh-gm-top .age{font-size:12px;color:var(--tx-3)} .sh-gm-top .age.warn{color:var(--warn);font-weight:700} .sh-gm-top .age.err{color:var(--err);font-weight:700}
.sh-gm-feed li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.sh-gm-feed time{color:var(--tx-3)}
@media (max-width:640px){.sh-gm-two{grid-template-columns:minmax(0,1fr)}.sh-gm-pipe .st,.sh-gm-aging .ag{grid-template-columns:96px minmax(0,1fr) auto}.sh-gm-det{margin-inline:12px}}

/* ═══ 57-backup.css ═══ */
/* ═══ النسخ الاحتياطي ═══ */
.sh-bk-sec{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px 18px;
  margin-block:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-1)}
.sh-bk-sec:empty{display:none}
.sh-bk-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sh-bk-h .sh-h3{margin:0}
.sh-bk-sub{font-size:12.5px;color:var(--tx-3)}
.sh-bk-lines{display:flex;flex-direction:column}
.sh-bk-how{margin:0;font-size:13px;line-height:1.8;color:var(--tx-2)}
.sh-bk-acts{display:flex;gap:8px;flex-wrap:wrap}
.sh-bk-acts .sh-btn{min-height:44px}
.sh-bk-rowacts{display:flex;gap:6px;flex-wrap:wrap}
.sh-bk-pickall{display:flex;gap:10px;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer}
.sh-bk-pick{display:flex;flex-direction:column;max-height:300px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-md)}
.sh-bk-pickrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto 64px;gap:10px;align-items:center;padding:8px 10px;
  border-bottom:1px solid var(--line);cursor:pointer;font-size:13px;min-height:40px}
.sh-bk-pickrow:last-child{border-bottom:0}
.sh-bk-pickrow:hover{background:var(--surface-3)}
.sh-bk-pickrow .n{font-weight:700;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-bk-pickrow .v{color:var(--tx-3);font-variant-numeric:tabular-nums}
.sh-bk-review .sh-fld{margin-top:10px}

/* ═══ 57-oparch.css ═══ */
/* ═══ أرشيفُ التشغيل — مجلّداتُ الأشهر وتبويباتُها الثلاثة ═══
   على متغيّرات المنظومة، فيصحّ في الوضعين النهاريّ والليليّ. */
.sh-oa{position:relative;container-type:inline-size;container-name:oa}
.sh-oa-seg{display:inline-flex;gap:4px;padding:4px;margin:var(--sp-3) 0 var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}
.sh-oa-segb{display:inline-flex;align-items:center;gap:8px;padding:9px 20px;border-radius:var(--r-sm);font-size:14px;font-weight:700;color:var(--tx-2);background:transparent;border:0;cursor:pointer}
.sh-oa-segb i{font-style:normal;font-size:11px;font-weight:800;border-radius:var(--r-pill);padding:1px 8px;background:var(--surface-2);color:var(--tx-3)}
.sh-oa-segb.on{background:linear-gradient(to left,#C9D9F8 0,#DCE7FB 30%,rgba(220,231,251,.65) 60%,rgba(220,231,251,.25) 100%);color:var(--gold-900);box-shadow:inset -3px 0 0 var(--gold-500)}
.sh-oa-segb.on i{background:rgba(255,255,255,.55);color:var(--gold-900)}
.sh-oa-segb:hover:not(.on){background:var(--surface-2);color:var(--tx)}

.sh-oa-wrap{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:var(--sp-4);align-items:start}
.sh-oa-wrap>.sh-oa-side{order:2}.sh-oa-wrap>.sh-oa-main{order:1}
html[dir="rtl"] .sh-oa-wrap{grid-template-columns:270px minmax(0,1fr)}
html[dir="rtl"] .sh-oa-wrap>.sh-oa-side{order:1}html[dir="rtl"] .sh-oa-wrap>.sh-oa-main{order:2}
.sh-oa-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px;position:sticky;top:76px}
.sh-oa-yr{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.sh-oa-yr b{font-size:15px;color:var(--tx)}
.sh-oa-yr .sh-oa-sel{width:auto;min-width:86px;height:32px;padding:0 8px}
.sh-oa-fold{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;margin-bottom:4px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;text-align:start;cursor:pointer;color:var(--tx)}
.sh-oa-fold:hover:not(.empty){background:var(--surface-2)}
.sh-oa-fold .ic{position:relative;flex:none;width:34px;height:27px}
.sh-oa-fold .ic::before{content:'';position:absolute;inset:6px 0 0 0;background:var(--chip-bg);border-radius:var(--r-xs)}
.sh-oa-fold .ic::after{content:'';position:absolute;top:2px;inset-inline-start:0;width:14px;height:7px;background:var(--chip-bg);border-radius:var(--r-xs) var(--r-xs) 0 0}
.sh-oa-fold.on{background:linear-gradient(to left,rgba(47,99,211,.24),rgba(47,99,211,.05));border-color:var(--line-2)}
.sh-oa-fold.on .ic::before,.sh-oa-fold.on .ic::after{background:var(--gold-400)}
.sh-oa-fold .t{flex:1;min-width:0}
.sh-oa-fold .t b{display:block;font-size:14px}
.sh-oa-fold .t small{display:block;font-size:11px;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-oa-fold .z{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.sh-oa-fold.empty{opacity:.42;cursor:default;padding:4px 10px}
.sh-oa-fold.empty .ic{transform:scale(.72)}
.sh-oa-pill{font-size:10.5px;font-weight:800;border-radius:var(--r-pill);padding:1px 8px;white-space:nowrap}
.sh-oa-pill.live{background:var(--info-bg);color:var(--info)}
.sh-oa-pill.arch{background:var(--ok-bg);color:var(--ok)}
.sh-oa-pill.calc{background:var(--chip-bg);color:var(--chip-tx)}
.sh-oa-mini{display:flex;gap:6px;font-size:10.5px}
.sh-oa-mini .up{color:var(--ok)}.sh-oa-mini .dn{color:var(--err)}

.sh-oa-main{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;min-width:0}
.sh-oa-mh{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.sh-oa-mh .fi{position:relative;flex:none;width:42px;height:34px}
.sh-oa-mh .fi::before{content:'';position:absolute;inset:8px 0 0 0;background:var(--gold-400);border-radius:var(--r-xs)}
.sh-oa-mh .fi::after{content:'';position:absolute;top:2px;inset-inline-start:0;width:18px;height:9px;background:var(--gold-400);border-radius:var(--r-xs) var(--r-xs) 0 0}
.sh-oa-mh h3{font-family:var(--display);font-size:21px;color:var(--tx)}
.sh-oa-mh .sub{font-size:12px;color:var(--tx-3)}
.sh-oa-acts{margin-inline-start:auto;display:flex;gap:8px;flex-wrap:wrap}
.sh-btn.gold{background:linear-gradient(135deg,#1C4299,#2452BE 45%,#2F63D3 70%,#1C4299);color:#FFFFFF;border-color:#1C4299}

.sh-oa-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}
.sh-oa-kpi{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;background:linear-gradient(155deg,var(--surface) 0%,var(--surface-2) 145%)}
.sh-oa-kpi::after{content:'';position:absolute;inset-inline-end:-30px;top:-40px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,var(--acc,var(--gold-400)) 0%,transparent 68%);opacity:.2;pointer-events:none}
.sh-oa-kpi.ok{--acc:var(--ok)}.sh-oa-kpi.er{--acc:var(--err)}.sh-oa-kpi.in{--acc:var(--info)}.sh-oa-kpi.wa{--acc:var(--warn)}
.sh-oa-kpi span{font-size:11.5px;font-weight:700;color:var(--tx-3)}
.sh-oa-kpi b{display:block;font-size:23px;font-weight:800;color:var(--tx);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-oa-kpi small{font-size:11px;color:var(--tx-3)}

.sh-oa-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;margin-bottom:12px;border:1px dashed var(--line);border-radius:var(--r-md);background:var(--surface-2)}
.sh-oa-filters .sh-in{height:36px;width:auto}
.sh-oa-q{min-width:250px;flex:1 1 250px;max-width:360px}
.sh-oa-sel{min-width:130px}
.sh-oa-chips{display:inline-flex;gap:6px;flex-wrap:wrap}
.sh-oa-fc{border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 12px;font-size:12px;font-weight:700;color:var(--tx-2);background:var(--surface);cursor:pointer}
.sh-oa-fc.on{background:var(--tx-gold);color:var(--surface-3);border-color:var(--tx-gold)}
.sh-oa-range{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--tx-2)}
.sh-oa-day{width:62px !important;text-align:center}
.sh-oa-count{margin-inline-start:auto;font-size:12px;color:var(--tx-3);font-weight:700}

.sh-oa-tbl{overflow-x:auto;border-radius:var(--r-md)}
.sh-oa-t{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.sh-oa-t th{position:sticky;top:0;background:var(--surface-2);color:var(--tx-2);font-size:11.5px;font-weight:800;text-align:start;padding:9px 10px;border-bottom:2px solid var(--line-2);white-space:nowrap}
.sh-oa-t td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap;color:var(--tx)}
.sh-oa-t td small{display:block;font-size:11px;color:var(--tx-3)}
.sh-oa-t td.drv small{white-space:normal}
.sh-oa-t td .pl{font-size:14px}
.sh-oa-t td.tags{white-space:normal}
.sh-oa-t tr.st td{background:linear-gradient(to left,rgba(19,101,49,.08),transparent 45%)}
.sh-oa-t tr.en td{background:linear-gradient(to left,rgba(180,34,34,.08),transparent 45%)}
.sh-oa-t tbody tr:hover td{background:var(--surface-2)}
.sh-oa-tag{display:inline-block;font-size:10.5px;font-weight:800;border-radius:4px;padding:2px 7px;margin:1px 0;margin-inline-end:3px;white-space:nowrap}
.sh-oa-tag.st,.sh-oa-tag.ok{background:var(--ok-bg);color:var(--ok)}
.sh-oa-tag.en{background:var(--err-bg);color:var(--err)}
.sh-oa-tag.co{background:var(--chip-bg);color:var(--chip-tx)}
.sh-oa-tag.sw{background:var(--info-bg);color:var(--info)}
.sh-oa-tag.po{background:var(--warn-bg);color:var(--warn)}
.sh-oa-tag.nd{background:rgba(124,93,190,.14);color:#6B4FB0}
.sh-oa-co{display:inline-flex;border-radius:var(--r-pill);overflow:hidden;font-size:11.5px;font-weight:700;line-height:1.9;max-width:260px}
.sh-oa-co b{background:var(--tx-gold);color:var(--surface-3);padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-oa-co span{background:var(--surface-3);color:var(--tx-2);padding:0 10px;border:1px solid var(--line);border-inline-start:0;white-space:nowrap}
.sh-oa-bar{display:block;height:6px;border-radius:4px;background:var(--chip-bg);overflow:hidden;width:90px;margin-top:4px}
.sh-oa-bar i{display:block;height:100%;background:linear-gradient(to left,var(--gold-500),var(--gold-300))}
.sh-oa-bar i.w0{width:0%}.sh-oa-bar i.w5{width:5%}.sh-oa-bar i.w10{width:10%}.sh-oa-bar i.w15{width:15%}.sh-oa-bar i.w20{width:20%}.sh-oa-bar i.w25{width:25%}.sh-oa-bar i.w30{width:30%}.sh-oa-bar i.w35{width:35%}.sh-oa-bar i.w40{width:40%}.sh-oa-bar i.w45{width:45%}.sh-oa-bar i.w50{width:50%}.sh-oa-bar i.w55{width:55%}.sh-oa-bar i.w60{width:60%}.sh-oa-bar i.w65{width:65%}.sh-oa-bar i.w70{width:70%}.sh-oa-bar i.w75{width:75%}.sh-oa-bar i.w80{width:80%}.sh-oa-bar i.w85{width:85%}.sh-oa-bar i.w90{width:90%}.sh-oa-bar i.w95{width:95%}.sh-oa-bar i.w100{width:100%}
.sh-oa-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:12px;font-size:12px;color:var(--tx-2)}
.sh-oa-legend .hint{margin-inline-start:auto;color:var(--tx-3)}
.sh-oa-legend .sw{display:inline-block;width:22px;height:14px;border-radius:4px;vertical-align:middle;margin-inline-end:6px}
.sh-oa-legend .sw.T{background:#A9C4F5}.sh-oa-legend .sw.M{background:#CFE0FA}.sh-oa-legend .sw.S{background:#F8D7B5}.sh-oa-legend .sw.X{background:var(--chip-bg)}

/* ── شبكة الدوام ── */
.sh-oa-tbl.ts{border:1px solid var(--line)}
.sh-oa-ts{width:100%;min-width:1100px;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:11px}
.sh-oa-ts col.c-nm{width:150px}.sh-oa-ts col.c-s{width:36px}.sh-oa-ts col.c-u{width:112px}.sh-oa-ts col.c-p{width:34px}
.sh-oa-ts th{background:var(--surface-2);color:var(--tx-2);padding:5px 0;text-align:center;font-size:10.5px;font-weight:800;border-bottom:2px solid var(--line-2)}
.sh-oa-ts th small{display:block;font-size:8.5px;font-weight:600;color:var(--tx-3)}
.sh-oa-ts th.we,.sh-oa-ts td.we{background-color:var(--surface-2)}
.sh-oa-ts th.today{background:var(--tx-gold);color:var(--surface-3)}
.sh-oa-ts th.today small{color:var(--gold-200)}
.sh-oa-ts td{padding:0;height:34px;text-align:center;border-bottom:1px solid var(--line)}
.sh-oa-ts td.nm{text-align:start;padding:0 10px;border-inline-end:1px solid var(--line)}
.sh-oa-ts td.nm b{font-size:12.5px;color:var(--tx)}
.sh-oa-ts td.nm small{display:block;font-size:10px;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-oa-ts td.c{cursor:default}
.sh-oa-ts td.c span{display:block;margin:5px 1px;height:22px;line-height:22px;border-radius:4px;font-weight:800;font-size:10px}
.sh-oa-ts td.c-T span{background:#A9C4F5;color:#173579}
.sh-oa-ts td.c-M span{background:#CFE0FA;color:#1E3A7A}
.sh-oa-ts td.c-S span{background:#F8D7B5;color:#7A3E0A}
.sh-oa-ts td.c-X span{color:var(--tx-3);opacity:.6}
.sh-oa-ts td.c-T,.sh-oa-ts td.c-M{cursor:pointer}
.sh-oa-ts td.c-T:hover span,.sh-oa-ts td.c-M:hover span,.sh-oa-ts td.c-S:hover span{filter:brightness(.93)}
.sh-oa-ts td.sm{font-weight:800;font-size:12px;background:var(--surface-2);color:var(--tx)}
.sh-oa-ts td.ut{background:var(--surface-2);padding:0 8px}
.sh-oa-ts .ub{display:flex;align-items:center;gap:6px}
.sh-oa-ts .ub b{font-size:12px;min-width:34px;color:var(--tx)}
.sh-oa-ts .ub .sh-oa-bar{flex:1;margin:0;width:auto}
.sh-oa-ts tbody tr:hover td.nm{box-shadow:inset -3px 0 0 var(--gold-500)}
.sh-oa-pr{border:0;background:transparent;cursor:pointer;font-size:13px;color:var(--tx-3);border-radius:var(--r-xs);padding:4px}
.sh-oa-pr:hover{background:var(--surface-2);color:var(--tx)}
.sh-oa-tip{position:absolute;left:var(--x,0);top:var(--y,0);transform:translateX(-50%);z-index:30;width:250px;pointer-events:none;
  background:#0A1838;color:#F7EBCB;border-radius:var(--r-sm);padding:9px 12px;font-size:11.5px;line-height:1.6;box-shadow:0 10px 24px rgba(0,0,0,.28)}
.sh-oa-tip b{display:block;color:#A9C4F5;font-size:12.5px}
.sh-oa-tip .go{display:block;margin-top:4px;color:#7FA6EC;font-weight:800}

@media (max-width:1180px){
  .sh-oa-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* شاشةٌ لا تتّسع للمجلّدات بجانب الجدول: تصير المجلّداتُ شريطاً أفقياً
   فوقه، ويأخذ الجدولُ العرضَ كلَّه — شبكةُ الدوام تحتاجه. */
@container oa (max-width:1440px){
  .sh-oa-wrap,html[dir="rtl"] .sh-oa-wrap{grid-template-columns:minmax(0,1fr)}
  .sh-oa-wrap>.sh-oa-side,html[dir="rtl"] .sh-oa-wrap>.sh-oa-side{order:1;position:static;display:flex;align-items:center;gap:6px;overflow-x:auto;padding:8px}
  .sh-oa-wrap>.sh-oa-main,html[dir="rtl"] .sh-oa-wrap>.sh-oa-main{order:2}
  .sh-oa-yr{flex:none;flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding-inline-end:8px;border-inline-end:1px solid var(--line)}
  .sh-oa-fold{flex:none;width:auto;min-width:170px;margin:0}
  .sh-oa-fold.empty{display:none}
}
@media (max-width:920px){
  .sh-oa-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sh-oa-seg{display:flex;overflow-x:auto}
  .sh-oa-acts{margin-inline-start:0}
}
.sh-oa-t td.dt{text-align:right;font-variant-numeric:tabular-nums}

/* ═══ 58-field.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   الميدان — لوحةٌ وخريطةٌ وسجلُّ حقول
   الألوانُ كلُّها من رموز الهوية (00-tokens.css) ومنها رموزُ الخريطة
   `--fm-*` في الوضعين — فلا لونَ يُكتب هنا إلّا شفافيةُ ظلّ.
   ═══════════════════════════════════════════════════════════════════ */

/* ── الترويسة ── */
.sh-fd-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-block-end:var(--sp-2)}
.sh-fd-ttl{display:flex;flex-direction:column;gap:0}
.sh-fd-kick{font-size:12px;font-weight:700;color:var(--tx-3)}
.sh-fd-pills{margin-inline-start:auto;display:flex;gap:8px;flex-wrap:wrap}
.sh-fd-pill{padding:6px 12px;border-radius:var(--r-pill);font-size:12.5px;font-weight:700;border:1px solid transparent}
.sh-fd-pill.err{background:var(--err-bg);color:var(--err);border-color:var(--err)}
.sh-fd-pill.warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}
.sh-fd-pill.ok{background:var(--ok-bg);color:var(--ok)}
.sh-fd-tabs{flex-wrap:wrap}
.sh-fd-tdot{width:7px;height:7px;border-radius:50%;background:var(--warn)}
.sh-fd-body{display:flex;flex-direction:column;gap:var(--sp-3)}

/* ── البطاقة العامّة ── */
.sh-fd-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-inline-size:0;
}
.sh-fd-ch{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sh-fd-ct{font-size:16px;font-weight:800;color:var(--tx-gold);margin:0}
.sh-fd-cs{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-fd-none{font-size:13px;font-weight:600;color:var(--tx-3);padding:10px 4px}
.sh-fd-hint{font-size:12px;font-weight:600;color:var(--tx-3);line-height:1.6;margin:0}
.sh-fd-warn{
  background:var(--warn-bg);border:1px solid var(--warn);color:var(--warn);
  border-radius:var(--r-md);padding:10px 12px;font-size:13px;line-height:1.6;font-weight:600
}
.sh-fd-warn b{font-weight:800}

/* ── لوحة الميدان ── */
.sh-fd-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.sh-fd-kpi{
  display:flex;flex-direction:column;gap:4px;text-align:start;font-family:inherit;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;
  color:var(--tx);cursor:default;transition:border-color .15s,transform .15s var(--ease)
}
button.sh-fd-kpi{cursor:pointer}
button.sh-fd-kpi:hover{border-color:var(--line-2);transform:translateY(-2px)}
.sh-fd-kpi .l{font-size:13px;font-weight:700;color:var(--tx-3)}
.sh-fd-kpi .v{font-size:30px;font-weight:800;line-height:1.15;font-variant-numeric:tabular-nums}
.sh-fd-kpi .s{font-size:12px;font-weight:600;color:var(--tx-2)}
.sh-fd-kpi.err{background:var(--err-bg);border-color:var(--err)}
.sh-fd-kpi.err .l{color:var(--err)}
.sh-fd-kpi.warn .s{color:var(--warn)}
.sh-fd-kpi.ok .s{color:var(--ok)}

.sh-fd-dash{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--sp-3);align-items:start}
.sh-fd-dash .span2{grid-column:1 / -1}
.sh-fd-bars{display:flex;flex-direction:column;gap:2px}
.sh-fd-barrow{
  display:grid;grid-template-columns:minmax(150px,220px) 1fr 44px 92px;align-items:center;gap:12px;
  padding:8px 10px;border-radius:var(--r-md);border:0;background:transparent;color:var(--tx);
  font-family:inherit;text-align:start;cursor:pointer
}
.sh-fd-barrow:hover{background:var(--surface-2)}
.sh-fd-barrow .nm{display:flex;flex-direction:column;min-inline-size:0}
.sh-fd-barrow .nm b{font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-fd-barrow .nm small{font-size:11.5px;font-weight:600;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-fd-barrow .bar{height:8px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}
.sh-fd-barrow .bar i{display:block;height:100%;inline-size:var(--pct,0%);background:var(--gold-grd);border-radius:var(--r-pill)}
.sh-fd-barrow .n{font-size:16px;font-weight:800;font-variant-numeric:tabular-nums;text-align:center}
.sh-fd-barrow .st{font-size:12px;font-weight:700;color:var(--err)}
.sh-fd-barrow.none .nm b{color:var(--warn)}
.sh-fd-plates{display:flex;flex-wrap:wrap;gap:6px}
.sh-fd-plate{
  direction:ltr;padding:4px 10px;border-radius:var(--r-pill);font-size:12.5px;font-weight:700;
  background:var(--chip-bg);color:var(--chip-tx);font-variant-numeric:tabular-nums
}
.sh-fd-plate.stop{background:var(--err-bg);color:var(--err)}

/* ── الخريطة: قائمةٌ يمنى وخريطةٌ ── */
.sh-fd-map{display:flex;gap:var(--sp-3);align-items:flex-start;flex-wrap:wrap}
.sh-fd-aside{flex:1 1 320px;max-inline-size:380px;min-inline-size:0;display:flex;flex-direction:column;gap:12px}
.sh-fd-main{flex:999 1 560px;min-inline-size:0;display:flex;flex-direction:column;gap:12px}

.sh-fd-date .row{display:flex;align-items:center;gap:8px}
.sh-fd-date .mid{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.sh-fd-date .mid .k{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-fd-date .mid b{font-size:15.5px;font-weight:800;color:var(--tx)}
.sh-fd-date .row2{display:flex;gap:8px;align-items:center}
.sh-fd-date .row2 .sh-in{flex:1}
.sh-fd-nav{
  inline-size:40px;block-size:40px;flex:none;border-radius:var(--r-sm);border:1px solid var(--line-2);
  background:var(--surface-3);color:var(--tx);font-size:18px;font-weight:700;cursor:pointer;font-family:inherit
}
.sh-fd-nav:hover{border-color:var(--gold-400);color:var(--tx-gold)}

.sh-fd-flist{padding:6px;gap:2px}
.sh-fd-frow{
  display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-md);border:0;
  background:transparent;color:var(--tx);font-family:inherit;text-align:start;cursor:pointer;inline-size:100%
}
.sh-fd-frow:hover{background:var(--surface-2)}
.sh-fd-frow.on{background:var(--chip-bg)}
.sh-fd-frow .cnt{
  flex:none;inline-size:36px;block-size:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:800;background:var(--fm-dot);color:var(--fm-num);border:2px solid var(--gold-300);
  font-variant-numeric:tabular-nums
}
.sh-fd-frow.on .cnt{background:var(--gold-300);color:var(--gold-900)}
.sh-fd-frow.zero .cnt{border-color:var(--line-2);color:var(--tx-3);background:transparent}
.sh-fd-frow.none .cnt{border-color:var(--warn);color:var(--warn);background:var(--warn-bg)}
.sh-fd-frow .nm{display:flex;flex-direction:column;gap:1px;min-inline-size:0}
.sh-fd-frow .nm b{font-size:14px;font-weight:800}
.sh-fd-frow .nm small{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-fd-frow .stop{margin-inline-start:auto;font-size:12px;font-weight:700;color:var(--err);white-space:nowrap}

.sh-fd-feed{display:flex;flex-direction:column;gap:8px}
.sh-fd-mv{display:flex;gap:10px;align-items:flex-start;font-size:12.5px}
.sh-fd-mv .d{flex:none;font-weight:800;color:var(--info);background:var(--info-bg);border-radius:var(--r-xs);padding:2px 6px;font-variant-numeric:tabular-nums}
.sh-fd-mv .b{display:flex;flex-direction:column;gap:1px;min-inline-size:0;color:var(--tx-2);font-weight:600}
.sh-fd-mv .b b{color:var(--tx);font-weight:800;text-align:start}
.sh-fd-mv .b small{color:var(--tx-3);font-size:11.5px}
.sh-fd-mv .ltr{direction:ltr}
.sh-fd-mv .ltr{unicode-bidi:isolate}

.sh-fd-stage{min-inline-size:0}
.sh-fd-chip{
  border-radius:var(--r-pill);padding:6px 12px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;
  background:var(--surface);color:var(--tx-2);border:1px solid var(--line-2);box-shadow:var(--shadow-1)
}
.sh-fd-chip.k-stopped{color:var(--err)}
.sh-fd-chip.on{background:var(--gold-300);color:var(--gold-900);border-color:var(--gold-300)}

.sh-fd-selh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sh-fd-selh .n{font-size:18px;font-weight:800;color:var(--tx-gold)}
.sh-fd-selh .s{font-size:13px;font-weight:600;color:var(--tx-3)}
.sh-fd-selh .h{margin-inline-start:auto;font-size:12px;font-weight:600;color:var(--tx-3)}

/* ── الحقول ── */
.sh-fd-unl{display:flex;flex-direction:column}
.sh-fd-urow{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--line)}
.sh-fd-urow:last-child{border-bottom:0}
.sh-fd-urow .t{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-fd-urow .t b{font-size:14px;font-weight:800;color:var(--tx)}
.sh-fd-urow .t small{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-fd-urow .acts{margin-inline-start:auto;display:flex;gap:6px;flex-wrap:wrap}

/* ── الإعدادات ── */
.sh-fd-set{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-3);align-items:start}
.sh-fd-set > .sh-fd-card:nth-child(2){grid-row:span 2}
.sh-fd-ivs{display:flex;flex-direction:column;gap:6px}
.sh-fd-ivh,.sh-fd-ivr{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 64px minmax(0,1fr) 40px;gap:8px;align-items:center}
.sh-fd-ivh span{font-size:11.5px;font-weight:700;color:var(--tx-3)}
.sh-fd-ivu{font-size:12px;font-weight:700;color:var(--tx-2);text-align:center}
.sh-fd-ivdef{font-size:12.5px;font-weight:700;color:var(--tx-gold-2)}
.sh-fd-ivr.def{padding-block-start:6px;border-top:1px dashed var(--line)}
.sh-fd-ivr .sh-btn{padding-inline:0;min-inline-size:36px}
.sh-fd-check{display:flex;gap:10px;align-items:flex-start;font-size:13px;font-weight:600;color:var(--tx-2);line-height:1.6;cursor:pointer}
.sh-fd-check input{margin-block-start:4px;accent-color:var(--gold-500)}
.sh-fd-save{grid-column:1 / -1;display:flex;justify-content:flex-end}

@media (max-width:1100px){
  .sh-fd-dash,.sh-fd-set{grid-template-columns:minmax(0,1fr)}
  .sh-fd-set > .sh-fd-card:nth-child(2){grid-row:auto}
  .sh-fd-aside{max-inline-size:none}
}
@media (max-width:640px){
  .sh-fd-barrow{grid-template-columns:minmax(0,1fr) 40px;row-gap:4px}
  .sh-fd-barrow .bar{grid-column:1 / -1;grid-row:2}
  .sh-fd-barrow .st{grid-column:1 / -1}
}

/* ═══════════════════ مكوّنُ الخريطة ═══════════════════ */
.sh-fm{position:relative;background:var(--fm-sea);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.sh-fm-stage{position:relative;aspect-ratio:820 / 720;max-block-size:78vh;inline-size:100%}
.sh-fm.pick .sh-fm-stage{max-block-size:56vh}
.sh-fm-svg{display:block;inline-size:100%;block-size:100%}
.sh-fm-svg.off{display:none}
.sh-fm.pick .sh-fm-svg{cursor:crosshair}
.sh-fm-leaf{position:absolute;inset:0;direction:ltr;background:var(--fm-sea)}
.sh-fm-leaf[hidden]{display:none}

.sh-fm-sea{fill:var(--fm-sea)}
.sh-fm-gridl{fill:none;stroke:var(--fm-grid);stroke-width:1}
.sh-fm-land{fill:var(--fm-land);stroke:var(--fm-coast);stroke-width:1.5;stroke-linejoin:round}
.sh-fm-seat{font-size:12px;font-weight:600;fill:var(--fm-city);font-family:var(--font)}
.sh-fm-city{fill:var(--fm-city)}
.sh-fm-cityt{font-size:11px;font-weight:600;fill:var(--fm-city-tx);font-family:var(--font)}
.sh-fm-move{fill:none;stroke:var(--info);stroke-width:2;stroke-dasharray:6 5;opacity:.9}
.sh-fm-arrow{fill:var(--info)}
.sh-fm-leader{stroke:var(--fm-card-line);stroke-width:1}
.sh-fm-leader.on{stroke:var(--gold-300);stroke-width:1.5}
.sh-fm-mark,.sh-fm-card{cursor:pointer;outline:none}
.sh-fm-halo{fill:var(--gold-300);fill-opacity:.14}
.sh-fm-dot{fill:var(--fm-dot);stroke:var(--gold-300);stroke-width:2;transition:fill .15s}
.sh-fm-mark:hover .sh-fm-dot,.sh-fm-mark:focus .sh-fm-dot{stroke-width:3}
.sh-fm-mark.zero .sh-fm-dot{fill:var(--fm-land);stroke:var(--fm-coast)}
.sh-fm-mark.on .sh-fm-dot{fill:var(--gold-300);stroke:var(--fm-ring-on);stroke-width:3}
.sh-fm-n{font-size:15px;font-weight:800;fill:var(--fm-num);font-family:var(--font);pointer-events:none}
.sh-fm-mark.on .sh-fm-n{fill:var(--fm-num-on)}
.sh-fm-stopdot{fill:var(--err);stroke:var(--fm-sea);stroke-width:2}
.sh-fm-cardr{fill:var(--fm-card);fill-opacity:.95;stroke:var(--fm-card-line);stroke-width:1.25}
.sh-fm-card:hover .sh-fm-cardr{stroke:var(--gold-400)}
.sh-fm-card.on .sh-fm-cardr{stroke:var(--gold-300);stroke-width:1.75}
.sh-fm-cardt{font-size:13px;font-weight:700;fill:var(--tx);font-family:var(--font);pointer-events:none}
.sh-fm-cards{font-size:11.5px;font-weight:500;fill:var(--tx-2);font-family:var(--font);pointer-events:none}
.sh-fm-pin{fill:var(--err);stroke:var(--fm-card);stroke-width:3}
.sh-fm-ghost{fill:var(--fm-city);fill-opacity:.7}

.sh-fm-over{position:absolute;inset-block-start:12px;inset-inline-start:12px;display:flex;gap:6px;flex-wrap:wrap;z-index:500;max-inline-size:60%}
.sh-fm-tools{position:absolute;inset-block-start:12px;inset-inline-end:12px;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;z-index:500;max-inline-size:55%}
.sh-fm-modes{display:flex;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-pill);padding:3px;box-shadow:var(--shadow-1)}
.sh-fm-modes[hidden]{display:none}
.sh-fm-mode{
  border:0;background:transparent;color:var(--tx-2);font-family:inherit;font-size:12.5px;font-weight:700;
  padding:5px 12px;border-radius:var(--r-pill);cursor:pointer
}
.sh-fm-mode.on{background:var(--gold-300);color:var(--gold-900)}
.sh-fm-zoom{position:absolute;inset-block-end:12px;inset-inline-end:12px;display:flex;flex-direction:column;gap:4px;z-index:500}
.sh-fm-zb{
  inline-size:34px;block-size:34px;border-radius:var(--r-sm);border:1px solid var(--line-2);background:var(--surface);
  color:var(--tx);font-size:18px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:var(--shadow-1);line-height:1
}
.sh-fm-zb:hover{border-color:var(--gold-400);color:var(--tx-gold)}
.sh-fm-legend{
  position:absolute;inset-block-end:12px;inset-inline-start:12px;z-index:500;display:flex;flex-direction:column;gap:6px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px;
  font-size:12px;font-weight:600;color:var(--tx-2);box-shadow:var(--shadow-1)
}
.sh-fm-legend span{display:flex;align-items:center;gap:8px}
.sh-fm-legend i{flex:none;display:inline-block}
.sh-fm-legend .lg-ring{inline-size:14px;block-size:14px;border-radius:50%;border:2px solid var(--gold-300);background:var(--fm-dot)}
.sh-fm-legend .lg-stop{inline-size:10px;block-size:10px;border-radius:50%;background:var(--err)}
.sh-fm-legend .lg-move{inline-size:16px;block-size:0;border-top:2px dashed var(--info)}
.sh-fm-legend .lg-pin{inline-size:12px;block-size:12px;border-radius:50%;background:var(--err)}
.sh-fm-notice{
  position:absolute;inset-inline:12px;inset-block-start:60px;z-index:600;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn);border-radius:var(--r-md);
  padding:10px 12px;font-size:13px;font-weight:700;line-height:1.6;box-shadow:var(--shadow-2)
}
.sh-fm-notice[hidden],.sh-fm-loading[hidden]{display:none}
.sh-fm-notice span{flex:1 1 240px}
.sh-fm-loading{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:550;
  font-size:14px;font-weight:700;color:var(--tx-2);background:var(--fm-sea)
}
.sh-fm.pick .sh-fm-legend{inset-block-end:auto;inset-block-start:12px}
.sh-fm.pick .sh-fm-over{display:none}
.sh-fld-widget{min-inline-size:0}

/* علاماتُ Leaflet — الدائرةُ بمقاس أيقونتها، والبطاقةُ تحتها */
.sh-fm-dicon{background:transparent;border:0}
.sh-fm-di{position:relative;inline-size:100%;block-size:100%;direction:rtl}
.sh-fm-di .c{
  position:absolute;inset:0;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--fm-dot);border:2px solid var(--gold-300);color:var(--fm-num);font:800 14px var(--font);
  box-shadow:0 0 0 7px rgba(47,99,211,.18)
}
.sh-fm-di.zero .c{background:var(--fm-land);border-color:var(--fm-coast);box-shadow:none}
.sh-fm-di.on .c{background:var(--gold-300);color:var(--gold-900);border:3px solid var(--fm-ring-on)}
.sh-fm-di .c i{position:absolute;inset-block-start:-2px;inset-inline-end:-2px;inline-size:11px;block-size:11px;border-radius:50%;background:var(--err);border:2px solid var(--fm-card)}
.sh-fm-di .t{
  position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;white-space:nowrap;
  background:var(--fm-card);border:1px solid var(--fm-card-line);border-radius:var(--r-sm);padding:4px 10px;
  box-shadow:var(--shadow-1);pointer-events:none
}
.sh-fm-di.on .t{border-color:var(--gold-300)}
.sh-fm-di.pos-t .t{top:auto;bottom:calc(100% + 8px)}
.sh-fm-di.pos-r .t{top:50%;left:calc(100% + 8px);transform:translateY(-50%)}
.sh-fm-di.pos-l .t{top:50%;left:auto;right:calc(100% + 8px);transform:translateY(-50%)}
.sh-fm-di .t b{font:700 12.5px var(--font);color:var(--tx)}
.sh-fm-di .t small{font:500 11px var(--font);color:var(--tx-2)}
.sh-fm-dpin{background:transparent;border:0}
.sh-fm-dpin span{display:block;inline-size:100%;block-size:100%;border-radius:50%;background:var(--err);border:3px solid var(--on-solid);box-shadow:var(--shadow-1)}
.sh-fm-lmove{stroke:var(--info)}
.sh-fm-lghost{stroke:var(--gold-500);fill:var(--gold-300)}

/* ── خانةُ الحقل في نموذج العقد ── */
.sh-fp-note{font-size:12px;font-weight:700;line-height:1.5;padding:5px 10px;border-radius:var(--r-sm);margin-block-start:2px}
.sh-fp-note.warn{color:var(--warn);background:var(--warn-bg)}
.sh-fp-note[hidden],.sh-fp-panel[hidden]{display:none}
.sh-pick-dot.amber{background:var(--warn)}
.sh-fp-add{border-top:1px dashed var(--line)}
.sh-fp-add b{color:var(--tx-gold)}
.sh-fp-plus{
  inline-size:20px;block-size:20px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--gold-300);color:var(--gold-900);font-weight:800
}
.sh-fp-empty{padding:10px 12px;font-size:12.5px;font-weight:600;color:var(--tx-3)}
.sh-fd-card > .sh-btn{align-self:flex-start}
.sh-fd-save .sh-btn{flex:0 0 auto;padding-inline:32px;min-inline-size:200px}
.sh-fd-date .row2 .sh-btn{flex:0 0 auto}
.sh-fm-ghostt{font-size:10.5px;font-weight:600;fill:var(--fm-city-tx);font-family:var(--font);pointer-events:none}

/* ═══════════════════════════════════════════════════════════════════
   المرحلة ب — البلاغات والملصقات
   ═══════════════════════════════════════════════════════════════════ */
.sh-tab-n.sh-fd-tn-err,.sh-tab.active .sh-tab-n.sh-fd-tn-err{background:var(--err-solid);color:var(--on-solid)}
.sh-fd-rbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sh-fd-rbar > .sh-in{flex:1 1 260px;min-inline-size:0}
.sh-fd-segs{display:flex;gap:6px;flex-wrap:wrap}
.sh-fd-segs .sh-fd-chip{box-shadow:none}
.sh-fd-info{
  background:var(--info-bg);border:1px solid var(--info);color:var(--tx);border-radius:var(--r-md);
  padding:10px 12px;font-size:13px;line-height:1.7;font-weight:600
}
.sh-fd-info b{color:var(--info);font-weight:800}
.sh-fd-mut{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-fd-far{color:var(--warn) !important;font-weight:800}
.sh-fd-maplink{color:var(--info);font-weight:700;font-size:13px;text-decoration:none}
.sh-fd-maplink:hover{text-decoration:underline}
.sh-fd-st{padding:3px 10px;border-radius:var(--r-pill);font-size:11.5px;font-weight:800;white-space:nowrap}
.sh-fd-st.t-err{background:var(--err-solid);color:var(--on-solid)}
.sh-fd-st.t-warn{background:var(--warn-bg);color:var(--warn)}
.sh-fd-st.t-info{background:var(--info-bg);color:var(--info)}
.sh-fd-st.t-ok{background:var(--ok-bg);color:var(--ok)}
.sh-fd-st.t-off{background:var(--chip-bg);color:var(--tx-3)}

/* ── تفصيلُ البلاغ ── */
.sh-fd-rv{display:flex;flex-direction:column;gap:12px}
.sh-fd-rvh{display:flex;flex-direction:column;gap:6px;padding-block-end:10px;border-bottom:1px solid var(--line)}
.sh-fd-rvh .id{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sh-fd-rvh .id b{font-size:15px;font-weight:800;color:var(--tx-gold);letter-spacing:.5px}
.sh-fd-rvh .pl{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.sh-fd-rvh .pl b{font-size:26px;font-weight:800;color:var(--tx);unicode-bidi:isolate}
.sh-fd-rvh .pl span{font-size:13px;font-weight:600;color:var(--tx-2)}
.sh-fd-rvh .ds{font-size:13.5px;color:var(--tx-2);display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.sh-fd-rvh .ds b{color:var(--tx)}
.sh-fd-rvh .ds .tx{flex:1 1 260px;min-inline-size:0;font-size:14.5px;font-weight:700;line-height:1.7;white-space:pre-line}
.sh-fd-kind{
  display:inline-flex;align-items:center;padding:3px 12px;border-radius:var(--r-pill);font-size:13px;font-weight:800;
  background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn);white-space:nowrap
}
.sh-fd-fault small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-inline-size:100%}
.sh-fd-who{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sh-fd-who b{font-size:16px;font-weight:800;color:var(--tx)}
.sh-fd-who span{font-size:16px;font-weight:700;color:var(--tx-2);letter-spacing:.5px;font-variant-numeric:tabular-nums}
.sh-fd-pingx{color:var(--tx);font-weight:600;font-size:12px}
.sh-fd-vdet{border:1px dashed var(--line-2);border-radius:var(--r-md);padding:8px 12px;display:flex;flex-direction:column;gap:8px}
.sh-fd-vdet[open]{padding-block-end:12px}
.sh-fd-vdet summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--tx-3);list-style-position:inside}
.sh-fd-vdet summary:hover{color:var(--tx-2)}
.sh-fd-vdet[open] summary{margin-block-end:8px}
.sh-fd-vdet > *:not(summary){margin-block-end:8px}
.sh-fd-rvg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
.sh-fd-rvg .col{display:flex;flex-direction:column;gap:12px;min-inline-size:0}
.sh-fd-rvc{padding:12px 14px}
.sh-fd-rvmap .sh-fm-stage{max-block-size:300px}
.sh-fm.show .sh-fm-legend{inset-block-end:auto;inset-block-start:12px}
.sh-fm.show .sh-fm-over{display:none}
.sh-fd-rvd{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;font-weight:700;color:var(--tx-2)}
.sh-fd-rvd.far{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn);border-radius:var(--r-sm);padding:8px 10px}
.sh-fd-pings{display:flex;flex-direction:column;gap:4px}
.sh-fd-ping{display:grid;grid-template-columns:52px 1fr auto;gap:8px;align-items:baseline;font-size:12.5px;color:var(--tx-2);font-weight:600}
.sh-fd-ping b{color:var(--tx);font-variant-numeric:tabular-nums}
.sh-fd-vrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sh-fd-vrow .sh-in{flex:1 1 180px;min-inline-size:0;font-size:15px;letter-spacing:1px}
.sh-fd-vout{font-size:13px;font-weight:700;line-height:1.6;border-radius:var(--r-sm);padding:0}
.sh-fd-vout.ok,.sh-fd-vout.bad{padding:8px 10px;border:1px solid}
.sh-fd-vout.ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.sh-fd-vout.bad{background:var(--err-bg);color:var(--err);border-color:var(--err)}
.sh-fd-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.sh-fd-stages{display:flex;gap:6px;flex-wrap:wrap}
.sh-fd-stb{
  font-family:inherit;font-size:12.5px;font-weight:700;padding:6px 11px;border-radius:var(--r-pill);cursor:pointer;
  background:var(--surface);color:var(--tx-2);border:1px solid var(--line-2)
}
.sh-fd-stb:hover:not(:disabled){border-color:var(--gold-400);color:var(--tx)}
.sh-fd-stb:disabled{cursor:default}
.sh-fd-stb:disabled:not(.on){opacity:.55}
.sh-fd-stb.arch{border-style:dashed}
.sh-fd-stb.on.t-err{background:var(--err-solid);color:var(--on-solid);border-color:var(--err-solid)}
.sh-fd-stb.on.t-warn{background:var(--warn-bg);color:var(--warn);border-color:var(--warn)}
.sh-fd-stb.on.t-info{background:var(--info-bg);color:var(--info);border-color:var(--info)}
.sh-fd-stb.on.t-ok{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.sh-fd-stb.on.t-off{background:var(--chip-bg);color:var(--tx);border-color:var(--line-2)}
.sh-fd-alts{display:flex;flex-direction:column;gap:2px}
.sh-fd-alt{display:grid;grid-template-columns:96px 1fr auto;gap:10px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--tx-2);font-weight:600}
.sh-fd-alt:last-child{border-bottom:0}
.sh-fd-alt b{color:var(--tx);font-size:13.5px;unicode-bidi:isolate}
.sh-fd-vres{display:flex;flex-direction:column;gap:8px}
.sh-fd-vcard{display:flex;flex-direction:column;gap:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;font-size:13px;color:var(--tx-2);font-weight:600}
.sh-fd-vcard b{font-size:22px;font-weight:800;color:var(--tx);unicode-bidi:isolate;text-align:start}
.sh-fd-vcard small{color:var(--tx-3);font-size:12px}

/* ── الملصقات ── */
.sh-fd-stk{display:flex;gap:var(--sp-3);align-items:flex-start;flex-wrap:wrap}
.sh-fd-stkt{flex:999 1 560px;min-inline-size:0}
.sh-fd-stkp{
  flex:1 1 300px;max-inline-size:360px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 16px;display:flex;flex-direction:column;gap:10px;position:sticky;inset-block-start:12px
}
.sh-fd-cb{inline-size:18px;block-size:18px;accent-color:var(--gold-500);cursor:pointer}
/* المعاينةُ على ألوان الملصق المطبوع في الوضعين — هي صورةُ الورق لا الشاشة */
.sh-fd-sticker{background:#FFFFFF;color:#0F1A2E;border:1px solid #D8C89A;border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-2)}
.sh-fd-sticker .h{background:#0B1524;padding:12px 16px;display:flex;align-items:center;gap:10px}
.sh-fd-sticker .h img{inline-size:38px;block-size:38px;object-fit:contain}
.sh-fd-sticker .h b{display:block;font-family:var(--display);font-size:17px;color:#A9C4F5;line-height:1.2}
.sh-fd-sticker .h small{display:block;font-size:11.5px;color:#C2D0E4}
.sh-fd-sticker .b{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 16px}
.sh-fd-sq{inline-size:196px;block-size:196px;border:2px solid #0F1A2E;border-radius:var(--r-md);background:#FFFFFF;overflow:hidden;
          display:flex;align-items:center;justify-content:center;font-size:12px;color:#56657F}
.sh-fd-sq svg{display:block;inline-size:100%;block-size:100%}
.sh-fd-sticker .pl{direction:ltr;unicode-bidi:isolate;font-size:28px;font-weight:800;letter-spacing:1px}
.sh-fd-sticker .t1{font-size:14px;font-weight:700;text-align:center}
.sh-fd-sticker .t2{font-size:12.5px;color:#3A4A66;text-align:center;line-height:1.6}
.sh-fd-sticker .f{border-top:1px dashed #D5DEEC;padding:8px 16px;display:flex;justify-content:space-between;font-size:11.5px;color:#23324F;font-weight:600}
.sh-fd-url{display:flex;flex-direction:column;gap:2px}
.sh-fd-url small{font-size:11.5px;font-weight:700;color:var(--tx-3)}
.sh-fd-url code{font-size:11.5px;color:var(--tx-2);word-break:break-all;direction:ltr;text-align:left}

@media (max-width: 820px){
  .sh-fd-rvg{grid-template-columns:minmax(0,1fr)}
  .sh-fd-stkp{max-inline-size:none;position:static}
}

.sh-fm-ghost.on{fill:var(--gold-300);fill-opacity:1;stroke:var(--fm-card);stroke-width:3}
.sh-fm-ghostt.big{font-size:24px;font-weight:800;fill:var(--tx);paint-order:stroke;stroke:var(--fm-land);stroke-width:5px}
.sh-fm.show .sh-fm-move{stroke-width:4}

/* ═══════════════════ الميدان (ج) — اللوحة والسجلّ والمواعيد والفنّيون ═══════════════════ */
.sh-fc-bar{display:block;block-size:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden;min-inline-size:80px}
.sh-fc-bar i{display:block;block-size:100%;inline-size:var(--pct,0%);border-radius:var(--r-pill);background:var(--ok)}
.sh-fc-bar.t-warn i{background:var(--warn)}
.sh-fc-bar.t-err i{background:var(--err)}
.sh-fc-bar.t-gold i{background:var(--gold-grd)}
.sh-fc-rem{display:flex;flex-direction:column;gap:4px;min-inline-size:0}
.sh-fc-rem small{font-size:12px;font-weight:700}
.sh-fc-rem small.t-err{color:var(--err)} .sh-fc-rem small.t-warn{color:var(--warn)} .sh-fc-rem small.t-ok{color:var(--tx-2)}

.sh-fc-dash{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:var(--sp-3);align-items:start}
.sh-fc-dash .col{display:flex;flex-direction:column;gap:12px;min-inline-size:0}
.sh-fc-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
@media (max-width:1100px){.sh-fc-dash{grid-template-columns:minmax(0,1fr)}}
.sh-fc-sec{font-size:13px;font-weight:800;margin-block-start:4px}
.sh-fc-sec.err{color:var(--err)} .sh-fc-sec.warn{color:var(--warn)} .sh-fc-sec.info{color:var(--info)}
.sh-fc-need{display:flex;flex-direction:column;gap:10px}
.sh-fc-nd{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;display:flex;flex-direction:column;gap:6px}
.sh-fc-nd.urg{background:var(--err-bg);border-color:var(--err)}
.sh-fc-nd b{font-size:14px;font-weight:800}
.sh-fc-nd span{font-size:12.5px;color:var(--tx-2);font-weight:600}
.sh-fc-list{display:flex;flex-direction:column;gap:0}
.sh-fc-list .row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 2px;border-block-end:1px solid var(--line);font-size:13px;font-weight:600;color:var(--tx);background:none;border-inline:0;border-block-start:0;font-family:inherit;text-align:start}
.sh-fc-list .row:last-child{border-block-end:0}
.sh-fc-list .row.btn{cursor:pointer}
.sh-fc-list .row.btn:hover{background:var(--surface-2)}
.sh-fc-list .row b{font-weight:800}
.sh-fc-list small{font-size:12px;color:var(--tx-3);white-space:nowrap}
.sh-fc-list small.err{color:var(--err)} .sh-fc-list small.warn{color:var(--warn)}
.sh-fc-bars{display:flex;flex-direction:column;gap:8px}
.sh-fc-bars .row{display:grid;grid-template-columns:90px 1fr 30px;align-items:center;gap:10px;font-size:13px;font-weight:700}
.sh-fc-bars .row b{text-align:center;font-variant-numeric:tabular-nums}
.sh-fc-rec{font-size:12px;font-weight:700;color:var(--warn);margin-block-start:2px}
.sh-fc-recf{color:var(--warn);font-weight:700}

.sh-fc-tech{display:flex;flex-direction:column;gap:2px}
.sh-fc-tech b{font-size:15px;font-weight:800}
.sh-fc-tl{display:flex;flex-wrap:wrap;gap:6px}
.sh-fc-tl .st{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 10px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);min-inline-size:78px;opacity:.55}
.sh-fc-tl .st.on{opacity:1;border-color:var(--ok)}
.sh-fc-tl .st .dot{inline-size:8px;block-size:8px;border-radius:var(--r-pill);background:var(--tx-3)}
.sh-fc-tl .st.on .dot{background:var(--ok)}
.sh-fc-tl .st b{font-size:12.5px;font-weight:800}
.sh-fc-tl .st small{font-size:11.5px;color:var(--tx-3);font-variant-numeric:tabular-nums;direction:ltr}
.sh-fc-tl .st em{font-style:normal;font-size:11px;font-weight:700;color:var(--info)}

.sh-fc-filters{flex-wrap:wrap}
.sh-fc-filters select.sh-in{inline-size:auto;min-inline-size:130px}
.sh-fc-dl{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--tx-3)}
.sh-fc-vh{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 16px}
.sh-fc-vh div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.sh-fc-vh b{font-size:20px;font-weight:800}
.sh-fc-vh span{font-size:13px;color:var(--tx-2);font-weight:600}
.sh-fc-plate{background:none;border:0;padding:0;font:inherit;font-weight:800;color:var(--tx-gold);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.sh-fc-lv{display:flex;flex-direction:column;gap:6px;min-inline-size:min(560px,80vw)}
.sh-fc-kv{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:13.5px;padding:4px 0;border-block-end:1px solid var(--line)}
.sh-fc-kv span{color:var(--tx-3);font-weight:700}
.sh-fc-corr{display:flex;flex-direction:column;gap:2px;background:var(--warn-bg);border:1px solid var(--warn);border-radius:var(--r-md);padding:8px 12px;font-size:13px}
.sh-fc-corr small{color:var(--tx-2)}

.sh-fc-techs{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,320px);gap:var(--sp-3);align-items:start}
@media (max-width:1100px){.sh-fc-techs{grid-template-columns:minmax(0,1fr)}}
.sh-fc-techs .col{display:flex;flex-direction:column;gap:12px;min-inline-size:0}
.sh-fc-th{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.sh-fc-duty{margin-inline-start:auto;font-size:13px;color:var(--tx-2);font-weight:600}
.sh-fc-duty b{color:var(--tx);font-weight:800}
.sh-fc-on{color:var(--ok);font-weight:700}
.sh-fc-stk{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sh-fc-add{gap:14px}
.sh-fc-segs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sh-fc-seg{min-block-size:42px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-2);color:var(--tx-2);font:inherit;font-weight:700;cursor:pointer}
.sh-fc-seg.on{border:2px solid var(--tx-gold-2);background:var(--gold-800);color:var(--tx-gold)}
.sh-fc-days{display:flex;flex-wrap:wrap;gap:6px}
.sh-fc-go{min-block-size:46px;font-size:15px}
.sh-fc-pin{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;background:var(--ok-bg);border:1px solid var(--ok);border-radius:var(--r-lg);padding:14px}
.sh-fc-pin span{font-size:13px;font-weight:700;color:var(--ok)}
.sh-fc-pin b{font-size:32px;font-weight:800;letter-spacing:6px;color:var(--tx);font-variant-numeric:tabular-nums}
.sh-fc-pin small{font-size:12px;color:var(--tx-2)}
.sh-fc-types{display:flex;flex-wrap:wrap;gap:6px}
.sh-mt-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-block-end:var(--sp-2)}
:root[data-theme="day"] .sh-fc-seg.on{background:var(--gold-100);color:var(--gold-700)}
.sh-fc-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
#fdTechTbl .sh-fd-acts{flex-wrap:nowrap}
.sh-fd-rvc a.sh-btn{text-decoration:none}

/* ═══ الميدان والصيانة (المدمجة): شاشاتُ القسم · «بانتظار قرارك» · نافذةُ الإسناد ═══ */
.sh-fd-vsegs{margin-block:2px 10px}
.sh-fd-vsegs[hidden]{display:none}
.sh-tab-n.sh-fd-tn-warn{background:var(--warn-bg);color:var(--warn)}
.sh-tab.active .sh-tab-n.sh-fd-tn-warn{background:var(--warn);color:var(--on-solid)}
.sh-fc-inbox{display:flex;flex-direction:column;gap:8px}
.sh-fc-ib{display:flex;align-items:center;gap:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 14px;flex-wrap:wrap}
.sh-fc-ib .tx{display:flex;flex-direction:column;gap:2px;flex:1 1 220px;min-inline-size:0}
.sh-fc-ib .tx b{font-size:14px;font-weight:800}
.sh-fc-ib .tx small{font-size:12.5px;color:var(--tx-2);font-weight:600}
.sh-fc-ibk{flex:none;min-inline-size:92px;text-align:center;border-radius:var(--r-pill);padding:3px 10px;font-size:12px;font-weight:800}
.sh-fc-ib.k-n .sh-fc-ibk{background:var(--err-bg);color:var(--err)}
.sh-fc-ib.k-r .sh-fc-ibk{background:var(--warn-bg);color:var(--warn)}
.sh-fc-ib.k-d .sh-fc-ibk{background:var(--info-bg);color:var(--info)}
.sh-fc-ibe{padding:14px}
.sh-fc-more{align-self:flex-start;margin-block:6px}
.sh-fc-cats{justify-content:space-between}
.sh-fc-oc{font-weight:700;font-size:11.5px}
.sh-fc-oc.o-fixed{color:var(--ok)} .sh-fc-oc.o-workshop,.sh-fc-oc.o-part{color:var(--warn)} .sh-fc-oc.o-none{color:var(--tx-3)}
.sh-fc-rt{font-weight:800;font-size:11.5px;color:var(--info)}
.sh-fc-rt.rt-late,.sh-fc-rt.rt-hold{color:var(--warn)}
.sh-fc-am{display:flex;flex-direction:column;gap:12px;min-inline-size:min(520px,86vw)}
.sh-fc-amh{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.sh-fc-amh b{font-size:18px;font-weight:800}
.sh-fc-amt{display:flex;flex-direction:column;gap:8px}
.sh-fc-am-t{display:flex;align-items:center;gap:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 14px;cursor:pointer;font-family:inherit;color:var(--tx);text-align:start}
.sh-fc-am-t.on{border:2px solid var(--gold-300);background:var(--gold-bg,var(--surface-2))}
.sh-fc-am-t .av{flex:none;inline-size:36px;block-size:36px;border-radius:var(--r-pill);background:var(--gold-300);color:var(--gold-900);display:grid;place-items:center;font-weight:800}
.sh-fc-am-t .tx{display:flex;flex-direction:column;flex:1;min-inline-size:0}
.sh-fc-am-t .tx small{font-size:12px;color:var(--tx-3)}
.sh-fc-am-t .best{font-style:normal;font-size:11.5px;font-weight:800;color:var(--ok)}
.sh-fc-am-msg{white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 12px;font-family:inherit;font-size:13px;margin:0;color:var(--tx-2)}

/* ═══ 59-mnt.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   الميدان (د) — طلباتُ صرف الصيانة في المستودع، و«كلفة الصيانة»،
   وتقاريرُ الصيانة. الألوانُ والحوافّ من رموز الهوية وحدها.
   ═══════════════════════════════════════════════════════════════════ */

/* ── طلباتُ صرف الصيانة ── */
.sh-wr-badge{
  min-inline-size:20px;padding:1px 7px;border-radius:var(--r-pill);margin-inline-start:6px;
  font-size:10.5px;font-weight:800;font-variant-numeric:tabular-nums;
  background:var(--err-solid);color:var(--on-solid)
}
.sh-step .sh-wr-badge{align-self:flex-start;margin-inline-start:0;font-size:12px;padding:1px 9px}
.sh-wr-ban{cursor:pointer}
.sh-wr-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,740px),1fr));gap:var(--sp-3);margin-block-start:var(--sp-2)}
.sh-wr-card{gap:8px}
.sh-wr-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sh-wr-h > b{font-size:17px;font-weight:800}
.sh-wr-s{font-size:13px;font-weight:600;color:var(--tx-2);line-height:1.6}
.sh-wr-rej{color:var(--err);font-weight:700}
.sh-wr-iss{display:flex;flex-wrap:wrap;gap:6px}
.sh-wr-v{font-size:12px;font-weight:600;color:var(--tx-2);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 10px}
.sh-wr-card .sh-fd-acts{display:flex;gap:8px;flex-wrap:wrap}

/* ── التقارير ── */
.sh-mr-bar{justify-content:space-between}
.sh-mr-body{display:flex;flex-direction:column;gap:var(--sp-3)}
.sh-mr-sp{flex:1 1 auto}
.sh-mr-sec{overflow:hidden}
.sh-mr-tw{overflow-x:auto;max-inline-size:100%}
.sh-mr-tw .sh-rep{min-inline-size:560px}
.sh-mr-cur{display:flex;flex-direction:column;gap:2px}
.sh-mr-cur small{font-size:15px;font-weight:700;color:var(--tx-2)}
.sh-mr-vh .mr-veh{display:flex;flex-direction:column;gap:10px}
.sh-mr-vh .mr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr));gap:8px}
.sh-mr-vh .doc-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;display:flex;flex-direction:column;gap:2px;font-size:13.5px}
.sh-mr-vh .doc-card b{font-size:11.5px;color:var(--tx-3);font-weight:700}
.sh-mr-vh .mr-docs{display:flex;flex-wrap:wrap;gap:8px}
.sh-mr-vh .mr-doc{display:flex;gap:8px;align-items:baseline;font-size:13px;border:1px solid var(--line);border-radius:var(--r-pill);padding:4px 12px;background:var(--surface)}
.sh-mr-vh .mr-doc b{color:var(--tx-3);font-size:12px}
.sh-mr-vh .mr-doc.soon{border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}
.sh-mr-vh .mr-doc.bad{border-color:var(--err);background:var(--err-bg);color:var(--err)}

/* ── صورُ الفاتورة ── */
.sh-mc-ph{display:flex;flex-direction:column;gap:var(--sp-3)}
.sh-mc-fig{margin:0;display:flex;flex-direction:column;gap:6px}
.sh-mc-fig img{max-inline-size:100%;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}
.sh-mc-fig figcaption{font-size:12px;font-weight:600;color:var(--tx-3)}

@media (max-width:640px){
  .sh-mr-bar{flex-direction:column;align-items:stretch}
  .sh-wr-list{grid-template-columns:minmax(0,1fr)}
}
#mrKpis,#mrCostKpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* ═══ عدّادات الأسطول ═══ */
.sh-fm{display:flex;flex-direction:column;gap:10px;padding:var(--modal-pad)}
.sh-fm-wrap{max-height:min(58vh,520px);overflow:auto;border:1px solid var(--line);border-radius:var(--r-md)}
.sh-fm-tbl{margin:0}
.sh-fm-tbl thead th{position:sticky;top:0;z-index:1}
.sh-fm-in{height:34px;max-width:150px}
.sh-fm-st{font-size:12px;font-weight:700;white-space:nowrap}
.sh-fm-st.ok{color:var(--ok)}.sh-fm-st.warn{color:var(--warn)}.sh-fm-st.bad{color:var(--err)}.sh-fm-st.mut{color:var(--tx-3)}
.sh-fm-sum{font-size:12.5px;font-weight:700;color:var(--tx-gold-2)}

/* ═══ 61-report.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   جدولُ التقرير على الشاشة — نفسُ أعمدة الملفّ ونفسُ أرقام الورقة

   الأصنافُ جديدةٌ بادئتُها `sh-rep`، والألوانُ كلُّها من متغيّرات
   الهوية — فلا لونَ مكتوبٌ هنا يخالف السمة الليلية.
   ═══════════════════════════════════════════════════════════════════ */

.sh-rep{ width:100%; border-collapse:collapse; font-size:13px }

.sh-rep thead th{
  position:sticky; top:0; z-index:1;
  background:var(--surface-2); color:var(--tx-2);
  font-weight:700; font-size:12px; text-align:start;
  padding:10px 12px; white-space:nowrap;
  border-bottom:2px solid var(--line-2, var(--line));
}
.sh-rep tbody td{
  padding:9px 12px; border-bottom:1px solid var(--line);
  color:var(--tx); vertical-align:middle;
}
.sh-rep tbody tr:hover td{ background:var(--chip-bg) }

/* الأرقامُ في عمودٍ واحد تُقرأ بالنظر لا بالعدّ */
.sh-rep td.money, .sh-rep th.money{
  text-align:start; font-variant-numeric:tabular-nums;
  direction:ltr; unicode-bidi:isolate; font-weight:600;
}
.sh-rep td.ltr, .sh-rep th.ltr{ direction:ltr; unicode-bidi:isolate; text-align:start }

.sh-rep tfoot td{
  background:var(--chip-bg); color:var(--tx);
  font-weight:800; font-size:13px;
  padding:11px 12px; border-top:2px solid var(--line-2, var(--line));
}
.sh-rep tfoot td.money{ font-variant-numeric:tabular-nums; direction:ltr; unicode-bidi:isolate }

/* شريطُ التقرير — في ترويسة الهيكل، يظهر حين يُعلن القسمُ تقريراً.
   موضعٌ واحد للأزرار الثلاثة: لا زرَّ تصديرٍ في كلّ صفحةٍ يختلف
   عن أخيه في اسم عمودٍ أو تنسيقِ مبلغ. */
.sh-rep-bar{
  display:flex; align-items:center; gap:8px;
  padding:5px 10px; border-radius:var(--r-pill);
  background:var(--chip-bg); border:1px solid var(--line);
}
.sh-rep-bar[hidden]{ display:none }
.sh-rep-bar .nm{ font-weight:800; font-size:12px; color:var(--tx);
                 max-width:210px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.sh-rep-bar .ct{ color:var(--tx-3); font-size:10.5px; font-weight:700 }
.sh-rep-bar .sp{ width:2px }
.sh-rep-bar .sh-btn{ padding:3px 10px; font-size:11px }
@media (max-width:900px){ .sh-rep-bar .ct{ display:none } }
@media print{ .sh-rep-bar{ display:none !important } }

/* ═══ 62-add.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   زرُّ الإضافة العائم ولوحته

   نفسُ موضع القديم ونفسُ سلوكه: دائرةٌ ذهبية في الزاوية السفلى،
   خافتةٌ حتّى تُقترَب فتضيء، ولوحةٌ تنفتح فوقها. والألوانُ كلُّها من
   متغيّرات الهوية — فالوضعُ الليليّ يتبعها بلا لونٍ ثانٍ يُكتب هنا.
   ═══════════════════════════════════════════════════════════════════ */

.sh-fab{
  /* الزاويةُ السفلى اليسرى — كما في المنظومة القديمة حرفياً. وليست
     `inset-inline-start`: القائمةُ الجانبية على اليمين في هذا الهيكل،
     فبدايةُ السطر تضع الزرَّ فوقها وفوق شريط الإنذار. */
  position:fixed; left:20px; bottom:20px; z-index:900;
  font-family:inherit;
}
body.sh-locked .sh-fab, body.sh-locked .sh-fab-panel{ display:none }

.sh-fab-btn{
  width:54px; height:54px; border-radius:50%; border:0; cursor:pointer;
  display:grid; place-items:center;
  background:linear-gradient(135deg, var(--gold-2, #2F63D3), var(--gold, #1C4299));
  color:var(--gold-ink, #FFFFFF); font-size:28px; font-weight:800; line-height:1;
  box-shadow:0 8px 22px rgba(36,82,190,.4), inset 0 1px 0 rgba(255,255,255,.45);
  opacity:.34; transform:scale(.9);
  transition:opacity .22s ease, transform .25s cubic-bezier(.22,1.2,.36,1);
}
.sh-fab:hover .sh-fab-btn,
.sh-fab-btn:focus-visible,
.sh-fab.open .sh-fab-btn{
  opacity:1; transform:scale(1); outline:0;
  box-shadow:0 14px 34px rgba(36,82,190,.5), 0 0 0 6px rgba(47,99,211,.16);
}
/* المفتوحةُ تصير علامةَ إغلاق — بالدوران لا برمزٍ ثانٍ */
.sh-fab.open .sh-fab-btn{ transform:scale(1) rotate(135deg) }

.sh-fab-hint{
  position:absolute; bottom:62px; left:0;
  background:var(--tx); color:var(--paper, #fff);
  font-size:11px; font-weight:700; white-space:nowrap;
  padding:6px 12px; border-radius:var(--r-lg);
  opacity:0; transform:translateY(6px); pointer-events:none;
  transition:.22s ease;
}
.sh-fab:hover:not(.open) .sh-fab-hint{ opacity:.92; transform:none }

/* ── اللوحة ── */
.sh-fab-panel{
  position:fixed; left:20px; bottom:84px; z-index:901;
  width:min(310px, calc(100vw - 40px));
  border-radius:var(--r-xl); overflow:hidden;
  background:var(--surface-2); border:1px solid var(--line-2, var(--line));
  box-shadow:0 26px 60px rgba(31,20,8,.28);
  display:none; flex-direction:column;
}
.sh-fab-panel.open{ display:flex }

.sh-fab-hd{
  display:flex; align-items:center; gap:8px;
  padding:12px 14px 10px; border-bottom:1px solid var(--line);
}
.sh-fab-t{ font-size:13px; font-weight:800; color:var(--tx) }
.sh-fab-u{ font-size:10px; font-weight:700; color:var(--tx-3) }
.sh-fab-edit{
  margin-inline-start:auto; border:0; cursor:pointer; font-family:inherit;
  font-size:10.5px; font-weight:800; padding:5px 11px; border-radius:var(--r-lg);
  background:var(--chip-bg); color:var(--tx-2); transition:.18s;
}
.sh-fab-edit:hover{ background:var(--line) }
.sh-fab-edit.on{
  background:linear-gradient(135deg, var(--gold-2, #2F63D3), var(--gold, #1C4299));
  color:var(--gold-ink, #FFFFFF);
}

.sh-fab-list{
  max-height:54vh; overflow-y:auto; padding:8px;
  display:flex; flex-direction:column; gap:3px;
}

.sh-fab-item{
  display:flex; align-items:center; gap:10px; width:100%;
  border:0; cursor:pointer; text-align:start; font-family:inherit;
  padding:8px 10px; border-radius:var(--r-md); background:none;
  transition:background .15s ease;
}
.sh-fab-item:hover{ background:var(--chip-bg) }
.sh-fab-item.editing{ cursor:default }
.sh-fab-item.editing:hover{ background:none }
.sh-fab-item.off{ opacity:.45 }
.sh-fab-item.off .sh-fab-lbl{ text-decoration:line-through }

.sh-fab-ico{
  flex:none; width:32px; height:32px; border-radius:var(--r-sm);
  display:grid; place-items:center; font-size:15px;
  background:var(--chip-bg); color:var(--gold-deep, #8A6314);
  border:1px solid var(--line);
}
.sh-fab-lbl{ flex:1; font-size:12.5px; font-weight:700; color:var(--tx) }
.sh-fab-go{ color:var(--tx-3); font-size:14px }

.sh-fab-tools{ display:inline-flex; gap:3px }
.sh-fab-tool{
  width:26px; height:26px; border-radius:var(--r-xs); cursor:pointer;
  border:1px solid var(--line); background:var(--surface);
  color:var(--tx-2); font-size:11px; font-family:inherit;
  display:inline-flex; align-items:center; justify-content:center;
}
.sh-fab-tool:hover{ background:var(--chip-bg) }
.sh-fab-tool[disabled]{ opacity:.3; cursor:default }
.sh-fab-tool[data-act="hide"]{ color:var(--err) }

.sh-fab-sep{
  margin:6px 4px 2px; font-size:9.5px; font-weight:800; color:var(--tx-3);
  display:flex; align-items:center; gap:8px;
}
.sh-fab-sep::after{ content:""; flex:1; height:1px; background:var(--line) }

.sh-fab-empty{
  padding:22px 12px; text-align:center;
  font-size:11.5px; font-weight:700; color:var(--tx-3);
}
.sh-fab-foot{
  padding:8px 13px; border-top:1px solid var(--line);
  font-size:9.5px; font-weight:700; color:var(--tx-3); text-align:center;
}

@media print{ .sh-fab, .sh-fab-panel{ display:none !important } }
/* ═══ أسطرُ الأصناف (خانة `lines`) ═══ */
.sh-lines{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;background:var(--surface)}
.sh-lines-h,.sh-lines-r{display:grid;grid-template-columns:minmax(0,1fr) 110px 32px;gap:8px;align-items:start}
.sh-lines:has(.sh-lines-h span:nth-child(4)) .sh-lines-h,.sh-lines:has(.sh-lines-h span:nth-child(4)) .sh-lines-r{grid-template-columns:minmax(0,1fr) 100px 120px 32px}
.sh-lines-h{font-size:11.5px;font-weight:700;color:var(--tx-3);padding-inline:2px}
.sh-lines-b{display:flex;flex-direction:column;gap:6px}
.sh-lines-x{border:1px solid var(--line);background:transparent;color:var(--tx-3);border-radius:var(--r-sm);height:40px;cursor:pointer;font:inherit}
.sh-lines-m{font-size:11px;color:var(--tx-3);min-height:1em}
.sh-lines-m.bad{color:var(--err);font-weight:700}
.sh-lines-f{font-size:12px;font-weight:700;color:var(--tx-gold-2);min-height:1em}
@media (max-width:620px){.sh-lines-h{display:none}.sh-lines-r{grid-template-columns:minmax(0,1fr) 90px 32px}}
/* أزرارُ السطر متجاورة — قيدٌ ماليّ وطباعة */
.sh-row-acts{ display:inline-flex; gap:6px; align-items:center }

/* ═══ 63-idle.css ═══ */
/* ═══ قفل الشاشة عند السكون ═══
   طبقةٌ **معتمة** فوق كلّ شيء لا شفّافة: المنظومةُ خلفها باقيةٌ في
   الذاكرة كما تركها صاحبُها، لكنّها لا تُرى. والطمسُ وحدَه كان
   أجملَ منظراً — ورقمٌ مطموسٌ يبقى رقماً يُقرأ من كتفٍ قريب،
   فقُدّم السترُ على المنظر. */
.sh-idle{
  position:fixed;inset:0;z-index:9000;
  display:flex;align-items:center;justify-content:center;padding:24px;
  background:var(--bg);background-image:var(--bg-grad);
  background-repeat:no-repeat;background-size:100% 100%;
}
body.sh-idle-on{overflow:hidden}
/* وحاجزٌ ثانٍ خلف الحاجز: لا نقرةَ تصل ولا نصَّ يُنسَخ ولو أُزيلت
   الطبقةُ من أدوات المطوّر. */
body.sh-idle-on #shShell{pointer-events:none;user-select:none}

.sh-idle-box{
  width:100%;max-width:360px;text-align:center;
  background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--r-xl);padding:30px 26px 24px;box-shadow:var(--shadow-2);
}
.sh-idle-ic{
  width:56px;height:56px;margin:0 auto 14px;border-radius:50%;
  display:grid;place-items:center;
  color:var(--tx-gold);background:var(--chip-bg);border:1px solid var(--line-2);
}
.sh-idle-ic svg{width:24px;height:24px}
.sh-idle-t{font-family:var(--display);font-size:20px;font-weight:700;color:var(--tx-gold)}
.sh-idle-sub{margin-block-start:7px;font-size:12.5px;color:var(--tx-2);line-height:1.6}
.sh-idle-who{
  margin:14px 0 12px;font-size:13px;font-weight:700;color:var(--tx);
  background:var(--chip-bg);border-radius:var(--r-sm);padding:8px 12px;
}
.sh-idle-box input{
  width:100%;padding:13px 17px;border-radius:var(--r-md);font-family:inherit;font-size:14.5px;
  text-align:center;color:var(--tx);background:var(--surface);border:1px solid var(--line);
}
.sh-idle-box input::placeholder{color:var(--tx-3)}
.sh-idle-box input:focus{outline:0;border-color:var(--line-2);box-shadow:0 0 0 4px var(--info-bg)}
.sh-idle-acts{display:flex;gap:9px;margin-block-start:6px}

@media print{ .sh-idle{display:none !important} }

/* زرُّ القفل اليدويّ في الترويسة — بجانب الخروج وبوزنٍ أخفّ منه */
.sh-lock{
  width:34px;height:34px;flex:none;border-radius:var(--r-xs);cursor:pointer;border:0;
  background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);color:var(--tx-3);
  font-family:inherit;line-height:1;display:grid;place-items:center;
  transition:background .16s var(--ease),color .16s var(--ease),box-shadow .16s var(--ease);
}
.sh-lock svg{width:16px;height:16px}
.sh-lock:hover{background:var(--chip-bg);color:var(--tx-gold);box-shadow:inset 0 0 0 1px var(--line-2)}
.sh-lock:focus-visible{outline:0;box-shadow:0 0 0 3px var(--info-bg)}
@media print{ .sh-lock{display:none !important} }

/* مُنتقٍ صغيرٌ في شريط الأدوات — بمقاس أزراره لا بمقاس حقول النماذج */
.sh-in-sm{width:auto;min-width:150px;padding:6px 12px;font-size:12px;border-radius:var(--r-xs)}
.sh-bar-lbl{
  align-self:center;font-size:11.5px;font-weight:700;color:var(--tx-3);
  margin-inline-end:2px;white-space:nowrap;
}

/* ═══ شريط التحديث التلقائي ═══ */
.sh-update-toast{
  position:fixed;inset-block-end:18px;inset-inline-start:50%;transform:translateX(-50%);z-index:80;
  display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--r-pill);
  background:var(--surface-3);border:1px solid var(--line-2);box-shadow:var(--shadow-2);
  font-size:12.5px;font-weight:600;color:var(--tx);
  animation:shUpdateIn .22s var(--ease);
}
.sh-update-toast.gone{display:none}
.sh-update-toast .ic{width:16px;height:16px;flex:0 0 16px;color:var(--tx-gold-2)}
.sh-update-toast .ic svg{width:100%;height:100%}
.sh-update-toast .go{
  padding:6px 12px;border-radius:var(--r-pill);font-size:12px;font-weight:700;
  background:var(--gold-grd);color:#FFFFFF;
}
.sh-update-toast .x{width:22px;height:22px;border-radius:50%;color:var(--tx-3);font-size:12px}
.sh-update-toast .x:hover{background:var(--chip-bg);color:var(--tx)}
@keyframes shUpdateIn{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
@media print{ .sh-update-toast{display:none !important} }

/* ═══ 64-qwo.css ═══ */
/* ═══ أمرُ العمل السريع — نافذةٌ واحدة، سبعُ خانات، ولوحٌ يساعد ═══
   على متغيّرات المنظومة، فيصحّ في الوضعين النهاريّ والليليّ. */
.sh-modal-card.sh-qe-card{max-width:1240px}
.sh-qe{display:flex;flex-direction:column;gap:14px}
.sh-qe-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sh-qe-seg{display:inline-flex;gap:3px;padding:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md)}
.sh-qe-segb{border:0;background:transparent;color:var(--tx-2);font:inherit;font-size:13px;font-weight:700;padding:6px 16px;border-radius:var(--r-sm);cursor:pointer}
.sh-qe-segb.on{background:linear-gradient(to left,#C9D9F8,#DCE7FB 40%,rgba(220,231,251,.5));color:var(--gold-900);box-shadow:inset -3px 0 0 var(--gold-500)}
.sh-qe-modes{display:inline-flex;gap:6px;margin-inline-start:auto}
.sh-qe-mode{border:1px solid var(--line);background:var(--surface);color:var(--tx-2);font:inherit;font-size:12.5px;font-weight:700;padding:5px 14px;border-radius:var(--r-pill);cursor:pointer}
.sh-qe-mode.on{background:var(--gold-700);border-color:var(--gold-700);color:#FAFBFE}
.sh-qe-link{border:0;background:transparent;color:var(--tx-gold-2);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;text-decoration:underline;text-underline-offset:3px}

.sh-qe-body{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.sh-qe-main{min-width:0;display:flex;flex-direction:column;gap:12px}


.sh-qe-rep{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:10px 12px;border:1px dashed var(--gold-400);border-radius:var(--r-lg);background:rgba(47,99,211,.07)}
.sh-qe-rep>b{font-size:12.5px;color:var(--tx-gold-2)}
.sh-qe-rc{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;border:1px solid var(--line);background:var(--surface);color:var(--tx);font:inherit;border-radius:var(--r-md);padding:6px 12px;cursor:pointer;text-align:start;max-width:260px}
.sh-qe-rc b{font-size:12.5px}
.sh-qe-rc small{font-size:11px;color:var(--tx-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.sh-qe-rc:hover{border-color:var(--gold-500);box-shadow:0 0 0 3px rgba(47,99,211,.22)}

.sh-qe-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 14px}
.sh-qe-f{position:relative;min-width:0}
.sh-qe .sh-pp-card{display:none}   /* نوعُ المركبة وصاحبُها في سطرٍ تحت الخانة — لا بطاقةٌ تدفع ما تحتها */
.sh-qe-f.c2{grid-column:span 2}.sh-qe-f.c3{grid-column:span 3}
.sh-qe-lbl{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--tx-2)}
.sh-qe-k{margin-inline-start:auto;font:inherit;font-size:10px;font-weight:700;color:var(--tx-3);border:1px solid var(--line);border-radius:var(--r-xs);padding:0 6px;background:var(--surface-2)}
.sh-qe-tag{font-size:10.5px;font-weight:800;border-radius:var(--r-xs);padding:1px 7px;background:var(--chip-bg);color:var(--chip-tx)}
.sh-qe-tag.auto{background:var(--ok-bg);color:var(--ok)}
.sh-qe-tag.sug{background:var(--info-bg);color:var(--info)}
.sh-qe-hint{font-size:11.5px;color:var(--tx-3);margin-top:4px;min-height:1em}
.sh-qe-hint.ok{color:var(--ok);font-weight:700}
.sh-qe-hint.bad{color:var(--err);font-weight:700}
.sh-qe-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.sh-qe-chip{border:1px solid var(--line);background:var(--surface);color:var(--tx-2);font:inherit;font-size:12px;font-weight:700;padding:4px 12px;border-radius:var(--r-pill);cursor:pointer}
.sh-qe-chip.on{background:var(--gold-700);border-color:var(--gold-700);color:#FAFBFE}
.sh-qe-chip:hover:not(.on){border-color:var(--line-2)}

.sh-qe-more{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.sh-qe-more>summary{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px;background:var(--surface-2);cursor:pointer;list-style:none;font-size:13px;color:var(--tx-2)}
.sh-qe-more>summary::-webkit-details-marker{display:none}
.sh-qe-more>summary small{color:var(--tx-3);font-weight:600;font-size:11.5px}
.sh-qe-sub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;padding:12px 14px;border-top:1px solid var(--line)}
.sh-qe-sub .sh-fld.wide{grid-column:1/-1}

.sh-qe-multi{border:1px solid var(--gold-400);border-radius:var(--r-lg);padding:10px 12px;background:rgba(47,99,211,.05)}
.sh-qe-mh{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}
.sh-qe-mh b{color:var(--tx-gold-2);font-size:13px}.sh-qe-mh small{color:var(--tx-3);font-size:11.5px}
.sh-qe-mrow{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,1fr) 32px;gap:8px;align-items:start;margin-bottom:6px}
.sh-qe-mst{font-size:11.5px;font-weight:700;padding-top:10px}
.sh-qe-mst.ok{color:var(--ok)}.sh-qe-mst.warn{color:var(--warn)}.sh-qe-mst.err{color:var(--err)}.sh-qe-mst.mut{color:var(--tx-3)}
.sh-qe-mdel{border:1px solid var(--line);background:var(--surface);color:var(--tx-3);border-radius:var(--r-sm);height:36px;cursor:pointer;font:inherit}
.sh-qe-mfoot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sh-qe-msum{font-size:12px;font-weight:700;color:var(--tx-gold-2)}

.sh-qe-side{border-inline-start:1px solid var(--line);padding-inline-start:16px;display:flex;flex-direction:column;gap:10px;position:sticky;top:0}
.sh-qe-st{font-size:14px;margin:0}
.sh-qe-st.ok{color:var(--ok)}.sh-qe-st.wait{color:var(--warn)}
.sh-qe-sum{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:10px 12px}
.sh-qe-no{display:flex;align-items:center;justify-content:space-between;background:var(--gold-900);color:#FAFBFE;border-radius:var(--r-sm);padding:8px 12px;margin-bottom:8px}
.sh-qe-no small{font-size:11px;color:var(--gold-200)}
.sh-qe-no b{font-size:19px;letter-spacing:1px}
.sh-qe-ln{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;padding:4px 0;border-bottom:1px dashed var(--line)}
.sh-qe-ln:last-child{border-bottom:0}
.sh-qe-ln span{color:var(--tx-3);flex:none}
.sh-qe-ln b{font-weight:700;text-align:end;min-width:0;overflow-wrap:anywhere}
.sh-qe-ln.empty b{color:var(--tx-3);font-weight:400}
.sh-qe-ai{background:var(--surface);border:1px solid var(--gold-400);border-radius:var(--r-lg);padding:8px 12px}
.sh-qe-ai h4{font-size:13px;color:var(--tx-gold-2);margin:0 0 4px}
.sh-qe-ai p{font-size:12px;line-height:1.65;color:var(--tx-2);margin:0;padding:4px 0;border-bottom:1px dashed var(--line)}
.sh-qe-ai p:last-child{border-bottom:0}
.sh-qe-act{border:0;background:transparent;color:var(--tx-gold-2);font:inherit;font-weight:800;cursor:pointer;padding:0 6px}
.sh-qe-checks{display:flex;flex-direction:column;gap:5px}
.sh-qe-ck{display:flex;gap:8px;align-items:center;font-size:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 10px}
.sh-qe-ck .i{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;flex:none}
.sh-qe-ck.ok .i{background:var(--ok-bg);color:var(--ok)}
.sh-qe-ck.warn .i{background:var(--warn-bg);color:var(--warn)}
.sh-qe-ck.err .i{background:var(--err-bg);color:var(--err)}
.sh-qe-ck.err{border-color:var(--err)}
.sh-qe-keys{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:11px;color:var(--tx-3)}
.sh-qe-keys kbd,.sh-qe-go kbd{font:inherit;font-size:10.5px;font-weight:700;border:1px solid var(--line);border-bottom-width:2px;border-radius:var(--r-xs);padding:0 5px;background:var(--surface-2);color:var(--tx-2)}

/* ── شريطُ الصفحة: الزرُّ السريع، والمسوّدات، وزرُّ التكرار ── */
.sh-qe-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sh-qe-go{display:inline-flex;align-items:center;gap:10px}
.sh-qe-go kbd{background:rgba(255,255,255,.55);color:var(--gold-900);border-color:rgba(0,0,0,.18)}
.sh-qe-drafts{background:var(--warn-bg);border:1px solid var(--warn);border-radius:var(--r-lg);padding:10px 12px;margin-bottom:12px}
.sh-qe-drafts h4{font-size:13.5px;color:var(--warn);margin:0 0 6px}
.sh-qe-dr{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:7px 12px;margin-top:6px;font-size:12.5px}
.sh-qe-dr small{color:var(--tx-3);font-size:11px}
.sh-qe-miss{display:flex;gap:5px;flex-wrap:wrap}
.sh-qe-miss span{background:var(--warn-bg);color:var(--warn);font-size:11px;font-weight:800;border-radius:var(--r-xs);padding:1px 8px}
.sh-qe-miss span.ok{background:var(--ok-bg);color:var(--ok)}
.sh-qe-dgo{margin-inline-start:auto;font:inherit;font-weight:800;color:var(--tx-gold-2);border:1px solid var(--gold-400);border-radius:var(--r-sm);padding:4px 12px;background:transparent;cursor:pointer}
.sh-qe-ddel{font:inherit;border:1px solid var(--line);background:transparent;color:var(--tx-3);border-radius:var(--r-sm);padding:4px 9px;cursor:pointer}
.sh-qe-rep-btn{font-weight:800;color:var(--tx-gold-2)}

@media (max-width:1100px){
  .sh-qe-body{grid-template-columns:minmax(0,1fr)}
  .sh-qe-side{border-inline-start:0;padding-inline-start:0;border-top:1px solid var(--line);padding-top:12px;position:static}
}
@media (max-width:700px){
  .sh-qe-grid{grid-template-columns:minmax(0,1fr)}
  .sh-qe-f.c2,.sh-qe-f.c3{grid-column:auto}
  .sh-qe-sub{grid-template-columns:minmax(0,1fr)}
  .sh-qe-mrow{grid-template-columns:minmax(0,1fr) 32px}
  .sh-qe-modes{margin-inline-start:0}
}

/* ═══ 65-billing.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   الفوترة والتحصيل — فاتورة الشهر ومطابقة الحوالة ورصيد العميل
   ═══════════════════════════════════════════════════════════════════ */
.sh-ifm-top{ display:flex; align-items:center; gap:10px; margin-bottom:6px }
.sh-ifm-top .sh-in{ max-inline-size:180px }
.sh-ifm-list{ display:flex; flex-direction:column; gap:6px; margin-block:10px; max-block-size:46vh; overflow:auto }
.sh-ifm-row{ display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:12px;
  padding:9px 12px; border:1px solid var(--line); border-radius:var(--r-md); background:var(--surface) }
.sh-ifm-row .t b{ display:block; font-size:13.5px }
.sh-ifm-row .t small{ display:block; font-size:11.5px; color:var(--tx-3) }
.sh-ifm-row .v{ font-weight:800; font-size:14px }
.sh-ifm-foot{ display:flex; justify-content:flex-end }
.sh-empty-s{ color:var(--tx-3); font-size:13px; padding:10px 0 }

/* مطابقةُ الحوالة: جدولُ الفواتير المفتوحة وتوزيعُ المبلغ عليها */
.sh-match{ display:flex; flex-direction:column; gap:8px }
.sh-match-t{ inline-size:100%; border-collapse:collapse; font-size:13px }
.sh-match-t th{ text-align:start; font-size:11.5px; color:var(--tx-3); font-weight:700; padding:6px 8px; border-bottom:1px solid var(--line) }
.sh-match-t td{ padding:7px 8px; border-bottom:1px solid var(--line) }
.sh-match-t td.num{ text-align:end; direction:ltr; unicode-bidi:isolate; font-variant-numeric:tabular-nums }
.sh-match-t tr.off td{ opacity:.45 }
.sh-match-t tr.full td.num.take{ color:var(--ok); font-weight:800 }
.sh-match-t tr.part td.num.take{ color:var(--warn); font-weight:800 }
.sh-match-sum{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px }
.sh-match-sum div{ border:1px solid var(--line); border-radius:var(--r-md); padding:8px 10px; background:var(--surface) }
.sh-match-sum small{ display:block; font-size:11px; color:var(--tx-3) }
.sh-match-sum b{ display:block; font-size:14px; direction:ltr; unicode-bidi:isolate; text-align:start }
.sh-match-sum .credit b{ color:var(--info) }
.sh-match-sum .fee b{ color:var(--warn) }
.sh-credit-chip{ display:inline-flex; align-items:center; gap:6px }

/* ═══ 66-wh.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   المستودع — واجهة ٢٠٢٦-١٠-١٥ «أقلُّ نقرٍ لأكثر عمل»
   ملخّصٌ في رقائق · تبويباتٌ في سطرٍ واحد · زرّا توريدٍ وصرفٍ كبيران ·
   بحثٌ بمسح الرمز · مؤشّرُ رصيد · صرفٌ في نافذةٍ واحدة · بطاقةُ صنف.
   الألوانُ والحوافّ من رموز الهوية وحدها (--r-* و--gold-* وأخواتها).
   ═══════════════════════════════════════════════════════════════════ */

/* ── الرأس والملخّص ── */
.sh-wh-hd{gap:var(--sp-3) var(--sp-4)}
.sh-whk{display:flex;flex-wrap:wrap;gap:8px;margin-inline-start:auto}
.sh-whk-c{
  display:inline-flex;align-items:baseline;gap:7px;padding:6px 14px;
  border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);
  font-size:12.5px;font-weight:600;color:var(--tx-3);font-family:inherit;line-height:1.5
}
.sh-whk-c b{font-size:16px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums}
.sh-whk-c b.money{font-size:14.5px}
.sh-whk-c.go{cursor:pointer;transition:border-color .15s,box-shadow .15s}
.sh-whk-c.go:hover{border-color:var(--gold-400);box-shadow:var(--shadow-1)}
.sh-whk-c.warn{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}
.sh-whk-c.warn b{color:var(--warn)}

/* ── التبويبات: سطرٌ واحد بعدّاداتها ── */
.sh-steps.sh-wh-tabs{
  display:flex;gap:4px;padding:4px;margin-block:var(--sp-2) 0;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  overflow-x:auto;scrollbar-width:thin
}
.sh-wh-tabs .sh-step{
  flex:1 0 auto;flex-direction:row;align-items:center;justify-content:center;gap:7px;
  padding:9px 14px;border:0;border-radius:var(--r-md);background:transparent;
  font-size:13.5px;font-weight:700;color:var(--tx-2);white-space:nowrap;text-align:center
}
.sh-wh-tabs .sh-step:hover{transform:none;box-shadow:none;background:var(--surface-2);color:var(--tx)}
.sh-wh-tabs .sh-step.on{background:var(--gold-grd);color:#FFFFFF;box-shadow:0 6px 14px -8px rgba(28,66,153,.6)}
.sh-wh-n{
  font-style:normal;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;
  padding:0 8px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);color:var(--tx-3)
}
.sh-wh-tabs .sh-step.on .sh-wh-n{background:rgba(255,255,255,.2);border-color:transparent;color:#FFFFFF}
.sh-wh-tabs .sh-step.att .sh-wh-n{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}
.sh-wh-tabs .sh-step.on.att .sh-wh-n{background:#FFFFFF;color:var(--warn)}

/* ── شريط العمل ── */
.sh-wh-acts{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-block:var(--sp-3)}
.sh-wh-acts-s,.sh-wh-acts-e{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.sh-wh-acts-s:empty,.sh-wh-acts-e:empty{display:none}
.sh-btn.sh-wh-b{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding-inline:16px;white-space:nowrap}
.sh-btn.sh-wh-b.big{padding-inline:20px;font-size:14.5px}
.sh-btn.sh-wh-b.out{background:var(--surface);color:var(--tx-gold-2);border:1.5px solid var(--gold-500)}
.sh-btn.sh-wh-b.out:hover{background:var(--surface-2)}
.sh-wh-b kbd{
  font:inherit;font-size:10.5px;font-weight:700;opacity:.8;line-height:1.4;
  padding:0 5px;border:1px solid currentColor;border-radius:var(--r-xs)
}
.sh-wh-ro{padding-inline:4px}
.sh-bar.sh-wh-bar{flex:1 1 380px;margin:0;min-inline-size:0;flex-wrap:wrap}
.sh-wh-q{position:relative;flex:1 1 260px;display:flex;align-items:center;min-inline-size:0}
.sh-wh-q .sh-search{
  flex:1;max-width:none;height:44px;padding-inline-end:126px;
  border:1.5px solid var(--line-2);font-size:14px
}
.sh-wh-q .sh-search:focus{border-color:var(--gold-400)}
.sh-wh-scan{
  position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);
  height:32px;padding:0 11px;border-radius:var(--r-sm);
  border:1px solid var(--line);background:var(--surface-2);
  font:inherit;font-size:12.5px;font-weight:800;color:var(--tx-gold-2);white-space:nowrap;cursor:pointer
}
.sh-wh-scan:hover{border-color:var(--gold-400)}

/* ── رقائق الفئات ── */
.sh-wh-chips{display:flex;flex-wrap:wrap;gap:6px;margin-block:0 var(--sp-3)}
.sh-wh-chip{
  display:inline-flex;align-items:center;gap:6px;padding:5px 12px;
  border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);
  font:inherit;font-size:12.5px;font-weight:600;color:var(--tx-2);cursor:pointer
}
.sh-wh-chip i{font-style:normal;font-size:11.5px;color:var(--tx-3);font-variant-numeric:tabular-nums}
.sh-wh-chip:hover{border-color:var(--line-2)}
.sh-wh-chip.on{background:var(--info-bg);border-color:var(--gold-400);color:var(--tx-gold);font-weight:800}
.sh-wh-chip.on i{color:var(--tx-gold)}
.sh-wh-chip.bad i{color:var(--err)}

/* ── الإنذار المختصر ── */
.sh-wh-ban:empty{display:none}
.sh-banner.sh-wh-al{padding:9px 14px;margin-block:0 var(--sp-2);font-size:13px}
.sh-wh-al-go{margin-inline-start:auto;font-weight:800;white-space:nowrap}
.sh-wh-foot{margin-block:var(--sp-3) 0}

/* ── جدول الأصناف ── */
.sh-wh-nm{display:flex;flex-direction:column;gap:1px;line-height:1.4}
.sh-wh-nm b{font-size:14px;font-weight:700}
.sh-wh-nm small{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-wh-stk{display:flex;flex-direction:column;gap:5px;min-inline-size:112px}
.sh-wh-stk b{font-size:14px;font-weight:800;font-variant-numeric:tabular-nums}
.sh-wh-stk b small{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-wh-meter{display:block;block-size:6px;border-radius:var(--r-pill);background:var(--surface-3);overflow:hidden}
.sh-wh-meter i{display:block;block-size:100%;inline-size:var(--p,0%);border-radius:var(--r-pill);background:var(--gold-400)}
.sh-wh-meter.lo i{background:var(--warn)}
.sh-wh-meter.out i{background:var(--err)}
.sh-wh-st{display:inline-block;padding:2px 10px;border-radius:var(--r-pill);font-size:11.5px;font-weight:800;white-space:nowrap}
.sh-wh-st.ok{background:var(--ok-bg);color:var(--ok)}
.sh-wh-st.lo{background:var(--warn-bg);color:var(--warn)}
.sh-wh-st.out{background:var(--err-bg);color:var(--err)}
.sh-tbl td.sh-wh-ra-c{text-align:end}
.sh-wh-ra{display:inline-flex;gap:6px;justify-content:flex-end}
.sh-wh-rb{
  height:30px;padding:0 12px;border-radius:var(--r-sm);border:1px solid var(--line);
  background:var(--surface);font:inherit;font-size:12.5px;font-weight:800;color:var(--tx-2);
  cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s
}
.sh-wh-rb:hover{background:var(--surface-2);border-color:var(--line-2)}
.sh-wh-rb.o{color:var(--tx-gold-2);border-color:var(--gold-400)}
.sh-wh-rb.i{color:var(--ok);border-color:var(--ok)}
.sh-wh-rb.x{color:var(--err);border-color:var(--err)}
.sh-wh-rb.ic{padding:0 9px;font-size:15px;line-height:1}
.sh-wh-mv .sh-tbl thead th,.sh-wh-mv .sh-tbl tbody td{padding-inline:10px}
.sh-wh-rb.x:hover{background:var(--err-bg)}

/* ── المسح بالكاميرا ── */
.sh-wh-cam{display:flex;flex-direction:column;gap:10px;align-items:center}
.sh-wh-cam-f{position:relative;inline-size:100%;aspect-ratio:4 / 3;border-radius:var(--r-lg);overflow:hidden;background:#000}
.sh-wh-cam-v{inline-size:100%;block-size:100%;object-fit:cover;display:block}
.sh-wh-cam-r{position:absolute;inset:22% 12%;border:2px solid rgba(255,255,255,.85);border-radius:var(--r-md);box-shadow:0 0 0 999px rgba(0,0,0,.25)}
.sh-wh-cam-m{margin:0;font-size:13px;font-weight:700;color:var(--tx-2);text-align:center}

/* ═══ الصرف السريع ═══ */
.sh-modal-card.sh-wqi-card{max-width:980px}
.sh-wqi{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:start}
.sh-wqi .ltr{direction:ltr;unicode-bidi:isolate}
.sh-wqi-main{display:flex;flex-direction:column;gap:10px;min-inline-size:0}
.sh-wqi-lbl{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-block-start:4px}
.sh-wqi-lbl b{font-size:13.5px;font-weight:800;color:var(--tx-gold)}
.sh-wqi-lbl small{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-wqi-veh{display:flex;flex-wrap:wrap;gap:8px}
.sh-wqi-vc{
  display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-inline-size:148px;
  padding:8px 12px;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--surface);
  font:inherit;text-align:start;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s
}
.sh-wqi-vc b{font-size:14.5px;font-weight:800;color:var(--tx)}
.sh-wqi-vc b.ltr{text-align:start}
.sh-wqi-vc small{font-size:11.5px;font-weight:600;color:var(--tx-3)}
.sh-wqi-vc:hover{border-color:var(--line-2)}
.sh-wqi-vc.on{border-color:var(--gold-500);background:var(--info-bg);box-shadow:0 0 0 3px rgba(47,99,211,.15)}
.sh-wqi-vc.more{border-style:dashed}
.sh-wqi-vc.more b{color:var(--tx-gold-2)}
.sh-wqi-other{max-inline-size:360px}
.sh-wqi-meta{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:10px}
.sh-wqi-f.wide{grid-column:1 / -1}
.sh-wqi-f .sh-in{height:40px}
.sh-wqi-find .sh-in{height:44px;border:1.5px solid var(--line-2);font-size:14px}
.sh-wqi-find .sh-in:focus{border-color:var(--gold-400)}
.sh-wqi-lines{display:flex;flex-direction:column;gap:8px}
.sh-wqi-none{padding:16px;border:1px dashed var(--line-2);border-radius:var(--r-md);text-align:center;font-size:13px;font-weight:600;color:var(--tx-3)}
.sh-wqi-ln{
  display:flex;align-items:center;gap:10px;padding:8px 12px;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)
}
.sh-wqi-ln .t{flex:1;min-inline-size:0;display:flex;flex-direction:column;line-height:1.45}
.sh-wqi-ln .t b{font-size:14px;font-weight:700;color:var(--tx)}
.sh-wqi-ln .t small{font-size:12px;font-weight:600;color:var(--tx-3)}
.sh-wqi-ln.lo{border-color:var(--warn);background:var(--warn-bg)}
.sh-wqi-ln.lo .t small{color:var(--warn)}
.sh-wqi-ln.bad{border-color:var(--err);background:var(--err-bg)}
.sh-wqi-ln.bad .t small{color:var(--err);font-weight:800}
.sh-wqi-qty{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--surface)}
.sh-wqi-st{inline-size:34px;block-size:34px;border:0;background:var(--surface-2);font:inherit;font-size:16px;font-weight:800;color:var(--tx-gold-2);cursor:pointer}
.sh-wqi-st:hover{background:var(--surface-3)}
.sh-in.sh-wqi-q{inline-size:56px;block-size:34px;height:34px;border:0;border-radius:0;background:var(--surface);text-align:center;padding:0 4px;font-size:15px;font-weight:800;box-shadow:none}
.sh-wqi-v{inline-size:96px;text-align:end;font-size:13.5px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--tx)}
.sh-wqi-x{inline-size:30px;block-size:30px;border:0;border-radius:var(--r-sm);background:transparent;font:inherit;font-size:14px;color:var(--err);cursor:pointer}
.sh-wqi-x:hover{background:var(--err-bg)}
.sh-wqi-err:empty{display:none}
.sh-wqi-err{padding:9px 12px;border-radius:var(--r-md);background:var(--err-bg);border:1px solid var(--err)}
.sh-wqi-sum{
  position:sticky;inset-block-start:0;display:flex;flex-direction:column;gap:9px;padding:14px;
  border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface-2);font-size:13px
}
.sh-wqi-sum .r{display:flex;justify-content:space-between;gap:10px}
.sh-wqi-sum .r span{color:var(--tx-3);font-weight:600}
.sh-wqi-sum .r b{font-weight:800;color:var(--tx);text-align:end;overflow-wrap:anywhere}
.sh-wqi-sum hr{inline-size:100%;border:0;border-block-start:1px solid var(--line);margin:2px 0}
.sh-wqi-sum .k{color:var(--tx-3);font-weight:700}
.sh-wqi-sum .big{font-size:22px;font-weight:800;color:var(--tx-gold);font-variant-numeric:tabular-nums;text-align:start}
.sh-wqi-sum small{font-size:11.5px;font-weight:600;color:var(--tx-3);line-height:1.6}
.sh-wqi-card .sh-modal-acts .sh-btn.primary{flex:2}

/* ═══ بطاقة الصنف ═══ */
.sh-modal-card.sh-ic-card{max-width:1000px}
.sh-ic-sub{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-block-end:12px;font-size:13px;font-weight:600;color:var(--tx-3)}
.sh-ic-ts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.sh-ic-ts.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sh-ic-ts.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sh-ic-t{
  display:flex;flex-direction:column;gap:3px;padding:12px 14px;
  border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface-2);min-inline-size:0
}
.sh-ic-t .k{font-size:12px;font-weight:700;color:var(--tx-3)}
.sh-ic-t .v{font-size:20px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums;line-height:1.3;overflow-wrap:anywhere}
.sh-ic-t small{font-size:11.5px;font-weight:600;color:var(--tx-3)}
.sh-ic-t.lo{border-color:var(--warn)} .sh-ic-t.lo .v{color:var(--warn)}
.sh-ic-t.out{border-color:var(--err)} .sh-ic-t.out .v{color:var(--err)}
.sh-h3.sh-ic-h{font-size:15px;margin-block:var(--sp-4) var(--sp-2)}
.sh-ic-k .sh-tbl{font-size:12.5px}
.sh-ic-k .sh-tbl tbody td{padding:8px 12px}
.sh-ic-d.in{color:var(--ok);font-weight:800}
.sh-ic-d.out{color:var(--tx-gold-2);font-weight:800}
.sh-ic-card .sh-modal-acts{flex-wrap:wrap}
.sh-ic-card .sh-modal-acts .sh-btn{flex:0 1 auto;padding-inline:16px}
.sh-ic-card .sh-modal-acts .sh-btn.sh-ic-out{background:var(--surface);color:var(--tx-gold-2);border:1.5px solid var(--gold-500)}

/* ── الهاتف ── */
@media (max-width:760px){
  .sh-whk{margin-inline-start:0;inline-size:100%}
  .sh-wh-acts-s{inline-size:100%}
  .sh-wh-acts-s .sh-btn.sh-wh-b{flex:1 1 0;padding-inline:10px}
  .sh-wh-b kbd{display:none}
  .sh-bar.sh-wh-bar{flex-basis:100%}
  .sh-wh-q{flex-basis:100%}
  .sh-wqi{grid-template-columns:minmax(0,1fr)}
  .sh-wqi-sum{position:static}
  .sh-wqi-meta{grid-template-columns:minmax(0,1fr)}
  .sh-wqi-vc{min-inline-size:0;flex:1 1 calc(50% - 8px)}
  .sh-wqi-v{inline-size:auto}
  .sh-ic-ts,.sh-ic-ts.n3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sh-wqi-card .sh-modal-acts,.sh-ic-card .sh-modal-acts{flex-wrap:wrap}
  .sh-wqi-card .sh-modal-acts .sh-btn.primary{flex:1 1 100%}
  /* جدولُ الأصناف على الهاتف: الاسمُ والرصيدُ وزرّا الحركة — والباقي في بطاقة الصنف */
  .sh-wh-items .sh-tbl{min-width:0}
  .sh-wh-items .sh-tbl thead th{width:auto;white-space:normal}
  .sh-wh-items .sh-wh-rb{padding:0 9px;font-size:12px}
  .sh-wqi-ln{flex-wrap:wrap;row-gap:8px}
  .sh-wqi-ln .t{flex:1 1 100%}
  .sh-wqi-ln .sh-wqi-v{flex:1}
  .sh-ic-k .sh-tbl{min-width:560px}
  .sh-wh-items .sh-tbl .m-hide{display:none}
  .sh-wh-items .sh-tbl thead th,.sh-wh-items .sh-tbl tbody td{padding-inline:10px;white-space:normal}
  .sh-wh-items .sh-wh-ra{flex-direction:column;gap:5px}
  .sh-wh-stk{min-inline-size:64px}
}

/* ═══ مسارُ اعتماد طلب الشراء ═══ (فصلُ المهام: طلبه · راجعه · اعتمده) */
.sh-pr-path{list-style:none;margin:12px 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sh-pr-st{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-2);min-inline-size:0}
.sh-pr-st > i{flex:0 0 22px;block-size:22px;border-radius:var(--r-pill);display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:800;background:var(--surface-3);color:var(--tx-3)}
.sh-pr-st > span{display:flex;flex-direction:column;gap:1px;min-inline-size:0;line-height:1.45}
.sh-pr-st b{font-size:13px;font-weight:800;color:var(--tx)}
.sh-pr-st .who{font-size:13px;font-weight:700;color:var(--tx-2);overflow-wrap:anywhere}
.sh-pr-st small{font-size:11.5px;font-weight:600;color:var(--tx-3)}
.sh-pr-st.done{border-color:var(--ok)} .sh-pr-st.done > i{background:var(--ok-bg);color:var(--ok)}
.sh-pr-st.now{border-color:var(--gold-400);background:var(--info-bg)} .sh-pr-st.now > i{background:var(--gold-500);color:#FFFFFF}
.sh-pr-st.no{border-color:var(--err)} .sh-pr-st.no > i{background:var(--err-bg);color:var(--err)}
.sh-pr-st.skip{opacity:.75}
.sh-banner.sh-pr-why{padding:9px 14px;font-size:13px}
@media (max-width:760px){ .sh-pr-path{grid-template-columns:minmax(0,1fr)} }

/* ═══ 67-review.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   المراجعة والاعتماد — ٢٠٢٦-١٠-٢١
   شريطُ الدورة · صندوقُ المراجعة · نافذةُ القرار · محرّرُ تصحيح الفاتورة.
   الألوانُ والحوافّ من رموز الهوية وحدها — فتصحّ نهاراً وليلاً.
   ═══════════════════════════════════════════════════════════════════ */

/* ── شريطُ الدورة: المحاسب ← المشرف ← المدير ← معتمدة ── */
.sh-rv-flow{
  display:flex;align-items:stretch;gap:6px;margin-block:var(--sp-2) var(--sp-3);
  overflow-x:auto;scrollbar-width:thin
}
.sh-rv-fs{
  flex:1 1 0;min-inline-size:130px;display:flex;flex-direction:column;gap:2px;
  padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)
}
.sh-rv-fs b{font-size:22px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums;line-height:1.1}
.sh-rv-fs span{font-size:13px;font-weight:700;color:var(--tx-2)}
.sh-rv-fs small{font-size:11.5px;color:var(--tx-3)}
.sh-rv-fs.att{border-color:var(--warn);background:var(--warn-bg)}
.sh-rv-fs.att b,.sh-rv-fs.att span{color:var(--warn)}
.sh-rv-fs.done b{color:var(--ok)}
.sh-rv-fs.off{opacity:.7;border-style:dashed}
.sh-rv-ar{align-self:center;color:var(--tx-3);font-weight:800;flex:0 0 auto}

/* تبويبٌ فيه ما ينتظرك */
#rvTabs .sh-step.att .sh-wh-n{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}

/* ── شريطُ القرار دفعةً ── */
.sh-rv-batch{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-block:0 var(--sp-2);
  padding:8px 12px;border:1px dashed var(--line);border-radius:var(--r-md);background:var(--surface)
}
.sh-rv-batch .sh-stamp{flex:1 1 260px}

/* ── خلايا الجدول ── */
.sh-rv-cell{display:flex;flex-direction:column;gap:2px;align-items:flex-start;min-inline-size:0}
.sh-rv-cell.row{flex-direction:row;flex-wrap:wrap;gap:4px}
.sh-rv-cell b{font-weight:700;color:var(--tx)}
.sh-rv-cell small{font-size:11.5px;color:var(--tx-3)}
.sh-rv-cell small.why{color:var(--warn)}
button.sh-rv-cell{border:0;background:transparent;padding:0;cursor:pointer;font:inherit}
button.sh-rv-cell:hover .sh-chip{box-shadow:var(--shadow-1)}

/* ── شريطُ الفواتير في الدورة (صفحة «إصدار فاتورة») ── */
.sh-rv-pipe{display:flex;flex-wrap:wrap;gap:8px;margin-block:0 var(--sp-2)}
.sh-rv-pp{
  display:inline-flex;align-items:baseline;gap:8px;padding:7px 14px;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);
  font:inherit;font-size:13px;font-weight:600;color:var(--tx-2)
}
.sh-rv-pp b{font-size:16px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums}
.sh-rv-pp:hover{border-color:var(--gold-400);box-shadow:var(--shadow-1)}
.sh-rv-pp.att{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}
.sh-rv-pp.att b{color:var(--warn)}

/* سببُ الفرق في سطر الفاتورة */
.sh-if-why{display:flex;flex-direction:column;gap:2px;min-inline-size:150px}
.sh-if-why .sh-if-var{font-size:11px;color:var(--tx-3)}
.sh-if-why.on .sh-if-var{color:var(--warn);font-weight:700}

/* بطاقةٌ تنبيهيّة في صفّ البطاقات */
.sh-card.warn{--acc:var(--warn)}

/* أزرارٌ متجاورةٌ في خليّة */
.sh-acts{display:inline-flex;gap:6px;flex-wrap:wrap}

/* حالُ المراجعة داخل نافذة إذن الصرف */
.sh-rv-inline{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-block-end:var(--sp-2);
  padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);
  font-size:13px;color:var(--tx-2)
}

/* ═══ نافذةُ المراجعة ═══ */
.sh-rv{display:flex;flex-direction:column;gap:var(--sp-3)}
.sh-rv-head{display:flex;flex-direction:column;gap:6px;padding-block-end:10px;border-block-end:1px solid var(--line)}
.sh-rv-head .t{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sh-rv-head .t b{font-size:16px;font-weight:800;color:var(--tx)}
.sh-rv-head .m{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12.5px;color:var(--tx-3)}
.sh-rv-head .m .rd{color:var(--warn);font-weight:700}
.sh-rv-head .m .amt{margin-inline-start:auto;font-size:18px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums}

/* سببُ الإعادة — أوّلُ ما يقرؤه المحاسب */
.sh-rv-ret{
  padding:10px 14px;border:1px solid var(--warn);border-inline-start-width:4px;
  border-radius:var(--r-md);background:var(--warn-bg);color:var(--tx)
}
.sh-rv-ret > b{display:block;color:var(--warn);font-weight:800;margin-block-end:4px}
.sh-rv-ret p{margin:2px 0;font-size:14px;line-height:1.6}
.sh-rv-ret p.it{font-size:12.5px;color:var(--warn);font-weight:700}
.sh-rv-ret small{display:block;margin-block-start:4px;font-size:12px;color:var(--tx-3)}

.sh-rv-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:var(--sp-3);align-items:start}
.sh-rv-l,.sh-rv-r{display:flex;flex-direction:column;gap:var(--sp-3);min-inline-size:0}

/* بياناتُ المستند */
.sh-rv-kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 12px}
.sh-rv-kv .r{display:flex;flex-direction:column;gap:1px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}
.sh-rv-kv .r span{font-size:11.5px;color:var(--tx-3)}
.sh-rv-kv .r b{font-weight:700;color:var(--tx);overflow-wrap:anywhere}
.sh-rv-go{justify-self:start;align-self:center}
.sh-rv-inv{display:flex;flex-direction:column;gap:var(--sp-2)}

/* بنودُ الفاتورة مقابلَ أمر الشراء */
.sh-rv-tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md)}
.sh-rv-lines{inline-size:100%;border-collapse:collapse;font-size:13px}
.sh-rv-lines th{
  text-align:start;padding:7px 9px;font-size:12px;font-weight:700;color:var(--tx-3);
  background:var(--surface-2);border-block-end:1px solid var(--line);white-space:nowrap
}
.sh-rv-lines td{padding:7px 9px;border-block-end:1px solid var(--line);vertical-align:top;color:var(--tx)}
.sh-rv-lines td small{display:block;font-size:11.5px;color:var(--tx-3)}
.sh-rv-lines td small.why{color:var(--warn);font-weight:700}
.sh-rv-lines .num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}
.sh-rv-lines .num.b{font-weight:800}
.sh-rv-lines .num.m{color:var(--tx-3)}
.sh-rv-lines tr.var td{background:var(--warn-bg)}
.sh-rv-lines tr.bad td{background:var(--err-bg)}
.sh-rv-lines tr.off td{opacity:.45;text-decoration:line-through}
.sh-rv-lines tfoot td{font-weight:800;background:var(--surface-2);border-block-end:0}
.sh-rv-lines .sh-cell{min-inline-size:76px}
.sh-rv-hint{margin:0;font-size:12px;color:var(--tx-3)}

/* الفحصُ الآليّ */
.sh-rv-chk{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.sh-rv-chk-h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;margin-block-end:4px}
.sh-rv-sum{display:inline-flex;flex-wrap:wrap;gap:4px}
.sh-rv-sum i{font-style:normal;font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:var(--r-pill)}
.sh-rv-sum .ok{background:var(--ok-bg);color:var(--ok)}
.sh-rv-sum .warn{background:var(--warn-bg);color:var(--warn)}
.sh-rv-sum .err{background:var(--err-bg);color:var(--err)}
.sh-rv-c{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.5;color:var(--tx-2)}
.sh-rv-c .ic{
  flex:0 0 20px;block-size:20px;display:grid;place-items:center;border-radius:var(--r-pill);
  font-size:11px;font-weight:800
}
.sh-rv-c.ok .ic{background:var(--ok-bg);color:var(--ok)}
.sh-rv-c.warn .ic{background:var(--warn-bg);color:var(--warn)}
.sh-rv-c.err .ic{background:var(--err-bg);color:var(--err)}
.sh-rv-c.err .t{color:var(--err);font-weight:700}

/* سجلُّ المستند */
.sh-rv-hist{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.sh-rv-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sh-rv-tl li{position:relative;padding-inline-start:16px;border-inline-start:2px solid var(--line)}
.sh-rv-tl li::before{
  content:'';position:absolute;inset-inline-start:-6px;inset-block-start:4px;
  inline-size:10px;block-size:10px;border-radius:var(--r-pill);background:var(--tx-3)
}
.sh-rv-tl li.a-approve::before{background:var(--ok)}
.sh-rv-tl li.a-forward::before{background:var(--info)}
.sh-rv-tl li.a-ret::before,.sh-rv-tl li.a-edit::before{background:var(--warn)}
.sh-rv-tl li.a-reject::before,.sh-rv-tl li.a-void::before{background:var(--err)}
.sh-rv-tl b{display:block;font-size:13px;color:var(--tx)}
.sh-rv-tl small{font-size:11.5px;color:var(--tx-3)}
.sh-rv-tl p{margin:2px 0 0;font-size:12.5px;color:var(--tx-2);line-height:1.5}
.sh-rv-tl p.it{color:var(--warn)}
.sh-rv-tl p.sys{color:var(--tx-3);font-style:italic}

.sh-rv-note{margin:0}
.sh-rv-err{margin:0}

/* زرُّ الإعادة للتصحيح: تنبيهيٌّ لا خطر */
.sh-btn.sh-rv-retb{background:transparent;color:var(--warn);border-color:var(--warn)}
.sh-btn.sh-rv-retb:hover{background:var(--warn-bg)}

/* ═══ محرّرُ تصحيح الفاتورة ═══ */
.sh-ie{display:flex;flex-direction:column;gap:var(--sp-3)}
.sh-ie-meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.sh-ie-meta .wide{grid-column:1 / -1}
.sh-ie-why{min-inline-size:170px}
.sh-ie-foot{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 14px;border-radius:var(--r-md);background:var(--surface-2);font-weight:700;color:var(--tx-2)
}
.sh-ie-foot b{font-size:18px;font-weight:800;color:var(--tx);font-variant-numeric:tabular-nums}

/* ── الهاتف ── */
@media (max-width:760px){
  .sh-rv-grid{grid-template-columns:1fr}
  .sh-rv-head .m .amt{margin-inline-start:0;inline-size:100%}
  .sh-rv-fs{min-inline-size:118px;padding:8px 10px}
  .sh-rv-fs b{font-size:19px}
  .sh-rv-ar{display:none}
  .sh-rv-kv{grid-template-columns:1fr 1fr}
}

/* «hidden» يغلب العرضَ المرنَ في عناصر هذا الملفّ */
.sh-rv-batch[hidden],.sh-rv-pipe[hidden],.sh-rv-err[hidden],
.sh-rv [hidden],.sh-ie [hidden],.sh-if-why [hidden]{display:none !important}

/* عمودُ البيان يتّسع لبيانه وفترته */
.sh-rv-lines td:has(> small){min-inline-size:200px}
.sh-rv-lines td small{white-space:normal}

/* ── تدخّلُ المدير العام والتحويلُ التلقائيّ (٢٠٢٦-١٠-٢١ ب) ── */
.sh-rv-info{
  padding:10px 14px;border:1px solid var(--info);border-inline-start-width:4px;
  border-radius:var(--r-md);background:var(--info-bg);color:var(--tx)
}
.sh-rv-info > b{display:block;color:var(--info);font-weight:800;margin-block-end:2px}
.sh-rv-info p{margin:0;font-size:13.5px;line-height:1.6}
/* «اعتماد نهائيّ» للمشرف إلى جانب «تحويل»: أخضرُ الاعتماد لا أزرقُ الخطوة */
.sh-btn.sh-rv-final{background:var(--ok-bg);color:var(--ok);border-color:var(--ok)}
.sh-btn.sh-rv-final:hover{box-shadow:var(--shadow-1)}

/* ── حالُ التواجد في ملفّ المستخدم ── */
.sh-av-box{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2)}
.sh-av-box > b{font-weight:800;color:var(--tx)}
.sh-av-seg{display:flex;gap:6px;flex-wrap:wrap}
.sh-av-seg label{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);cursor:pointer;font-weight:700;color:var(--tx-2)}
.sh-av-seg label:has(input:checked){border-color:var(--gold-400);color:var(--tx);box-shadow:var(--shadow-1)}
.sh-av-seg label.away:has(input:checked){border-color:var(--warn);background:var(--warn-bg);color:var(--warn)}
.sh-av-more{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.sh-av-more[hidden]{display:none}
.sh-who-away{display:inline-block;margin-inline-start:4px;padding:0 6px;border-radius:var(--r-pill);background:var(--warn-bg);color:var(--warn);font-size:10.5px;font-weight:800}

/* ── تبويبُ «قيد المراجعة» في واجهة المدير العام ── */
.sh-gm-tabs{display:flex;gap:4px;padding:4px;margin-block:var(--sp-2) var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow-x:auto}
.sh-gm-tab{flex:1 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 14px;border:0;border-radius:var(--r-md);background:transparent;font:inherit;font-size:13.5px;font-weight:700;color:var(--tx-2);cursor:pointer;white-space:nowrap}
.sh-gm-tab:hover{background:var(--surface-2);color:var(--tx)}
.sh-gm-tab.on{background:var(--gold-grd);color:#FFFFFF}
.sh-gm-tab i{font-style:normal;font-size:11.5px;padding:0 8px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);color:var(--tx-3)}
.sh-gm-tab.on i{background:rgba(255,255,255,.2);border-color:transparent;color:#FFFFFF}
.sh-gm-tab.att i{background:var(--warn-bg);border-color:var(--warn);color:var(--warn)}
.sh-gm-rvst{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-size:13px;color:var(--tx-2)}
.sh-gm-rvst b{color:var(--tx)}
.sh-gm-rvst.away{border-color:var(--warn);background:var(--warn-bg)}
.sh-gm-rvf{display:flex;gap:6px;flex-wrap:wrap}
.sh-gm-rvf button{padding:5px 12px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface);font:inherit;font-size:12.5px;font-weight:700;color:var(--tx-2);cursor:pointer}
.sh-gm-rvf button.on{border-color:var(--gold-400);color:var(--tx);box-shadow:var(--shadow-1)}
.sh-rv-left{font-size:11.5px;font-weight:700;color:var(--tx-3)}
.sh-rv-left.late{color:var(--err)}
.sh-rv-left.soon{color:var(--warn)}
.sh-who-away[hidden]{display:none}
.sh-form-grid > .sh-av-box{grid-column:1 / -1}

/* ── بنودُ الرحلة (٢٠٢٦-١٠-٢٤) ── */
.sh-rv-parts{display:flex;flex-direction:column;gap:2px;margin-block-start:4px}
.sh-rv-parts i{font-style:normal;font-size:11.5px;color:var(--tx-2)}
.sh-rv-parts i b{display:inline-block;min-inline-size:44px;margin-inline-end:4px;padding:0 6px;border-radius:var(--r-pill);background:var(--surface-2);border:1px solid var(--line);font-size:10.5px;text-align:center;color:var(--tx)}
.sh-ip-t select.sh-cell{min-inline-size:84px}
.sh-ip-t input[data-f="t"]{min-inline-size:200px}
.sh-ie-parts{margin-block-start:4px}
.sh-if-parts{white-space:nowrap}

/* ═══ 68-life.css ═══ */
/* ═══════════════════════════════════════════════════════════════════
   خطُّ سير أوامر العمل · كتالوج الأسعار · إنشاءُ الأمر من الكتالوج
   (٢٠٢٦-١٠-٢٩ — على المعاينة التي وافق عليها المالك)

   أربعةُ ألوانٍ للمحطّات من رموز الحالات وحدها — فتتبع السمتين بلا
   قاعدةٍ إضافية: مفتوح ومستمر (--info) · أمر الشراء (--warn) ·
   مفوترة (--gold-*) · مسدّدة (--ok). لا لونَ نصٍّ مكتوبٌ هنا.
   ═══════════════════════════════════════════════════════════════════ */

.sh-lf-page{--lf-run:var(--r-ops);--lf-run-bg:var(--surface-2);--lf-po:var(--warn);--lf-po-bg:var(--warn-bg);
  --lf-bill:var(--info);--lf-bill-bg:var(--info-bg);--lf-paid:var(--ok);--lf-paid-bg:var(--ok-bg);
  display:flex;flex-direction:column;gap:var(--sp-3);min-inline-size:0;max-inline-size:100%}
.sh-lf-page > *{min-inline-size:0;max-inline-size:100%}

/* ── الترويسة ── */
.sh-lf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--sp-3)}
.sh-lf-t1{display:flex;align-items:center;gap:var(--sp-2)}
.sh-lf-t1 .sh-h1{margin:0}
.sh-lf-sub{margin:4px 0 0;font-size:13px;color:var(--tx-3)}
.sh-lf-live{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ok);
  background:var(--ok-bg);border-radius:var(--r-pill);padding:3px 10px}
.sh-lf-live i{inline-size:7px;block-size:7px;border-radius:50%;background:var(--ok);animation:shLfPulse 1.8s infinite}
@keyframes shLfPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.sh-lf-tools{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.sh-lf-tools .sh-in[type="search"]{inline-size:260px;max-inline-size:100%;height:40px}

/* ── الملخّص ── */
.sh-lf-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-2)}
.sh-lf-kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;
  display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow-1);min-inline-size:0}
.sh-lf-kpi-h{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;font-weight:700;color:var(--tx-2)}
.sh-lf-kpi b{font-size:21px;font-weight:700;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-lf-kpi small{font-size:12px;color:var(--tx-3)}
.sh-lf-ic{display:inline-flex;align-items:center;justify-content:center;inline-size:30px;block-size:30px;border-radius:var(--r-xs);flex:0 0 auto}
.sh-lf-ic.run{color:var(--lf-run);background:var(--lf-run-bg)}
.sh-lf-ic.po{color:var(--lf-po);background:var(--lf-po-bg)}
.sh-lf-ic.bill{color:var(--lf-bill);background:var(--lf-bill-bg)}
.sh-lf-ic.paid{color:var(--lf-paid);background:var(--lf-paid-bg)}

/* ── أين المال ── */
.sh-lf-dist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.sh-lf-dist-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.sh-lf-dist-h b{font-size:14px;color:var(--tx)}
.sh-lf-dist-h small{font-size:12px;color:var(--tx-3)}
.sh-lf-bar{display:flex;block-size:12px;border-radius:var(--r-pill);overflow:hidden;background:var(--surface-2);gap:2px}
.sh-lf-bar span{inline-size:var(--w,0%);transition:inline-size .5s var(--ease)}
.sh-lf-bar .run,.sh-lf-leg i.run{background:var(--lf-run)}
.sh-lf-bar .po,.sh-lf-leg i.po{background:var(--lf-po)}
.sh-lf-bar .bill,.sh-lf-leg i.bill{background:var(--lf-bill)}
.sh-lf-leg{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--tx-2)}
.sh-lf-leg > span{display:inline-flex;align-items:center;gap:6px}
.sh-lf-leg i{inline-size:9px;block-size:9px;border-radius:3px}
.sh-lf-leg b{color:var(--tx)}
.sh-lf-leg small{color:var(--tx-3)}

/* ── الأعمدة ── */
.sh-lf-board{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:var(--sp-2);align-items:start;overflow-x:auto;padding-block-end:4px}
.sh-lf-lane{background:var(--surface-3);border:1px solid var(--line);border-radius:var(--r-lg);display:flex;flex-direction:column;min-inline-size:0;
  border-block-start:3px solid var(--lc,var(--line))}
.sh-lf-lane.run{--lc:var(--lf-run)} .sh-lf-lane.po{--lc:var(--lf-po)} .sh-lf-lane.bill{--lc:var(--lf-bill)} .sh-lf-lane.paid{--lc:var(--lf-paid)}
.sh-lf-lh{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 8px}
.sh-lf-lt{display:inline-flex;align-items:center;gap:8px;min-inline-size:0}
.sh-lf-lt b{font-size:14px;color:var(--tx)}
.sh-lf-lt em{font-style:normal;font-size:12px;font-weight:700;color:var(--tx-2);background:var(--chip-bg);border-radius:var(--r-pill);padding:1px 8px}
.sh-lf-lh small{font-size:12px;color:var(--tx-3);white-space:nowrap}
.sh-lf-tabs{display:flex;gap:4px;padding:0 12px 8px;flex-wrap:wrap}
.sh-lf-tab{display:inline-flex;align-items:center;gap:5px;min-block-size:30px;padding:0 10px;border-radius:var(--r-pill);border:1px solid var(--line);
  background:var(--surface);color:var(--tx-2);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.sh-lf-tab small{color:var(--tx-3);font-weight:700}
.sh-lf-tab.on{background:var(--gold-500);border-color:var(--gold-500);color:var(--on-solid)}
.sh-lf-tab.on small{color:var(--on-solid)}
.sh-lf-tab .d{inline-size:7px;block-size:7px;border-radius:50%;background:var(--tx-3)}
.sh-lf-tab .d.ongoing,.sh-lf-tab .d.open{background:var(--lf-run)}
.sh-lf-tab .d.await_po,.sh-lf-tab .d.await_inv{background:var(--lf-po)}
.sh-lf-tab .d.await_inv{background:var(--lf-bill)}
.sh-lf-list{display:flex;flex-direction:column;gap:8px;padding:0 10px 12px;max-block-size:70vh;overflow-y:auto}
.sh-lf-empty{padding:22px 8px;text-align:center;font-size:12.5px;color:var(--tx-3);border:1px dashed var(--line);border-radius:var(--r-md)}
.sh-lf-more{margin:4px 0 0;font-size:12px;color:var(--tx-3);text-align:center}

/* ── البطاقة ── */
.sh-lf-card{display:flex;flex-direction:column;gap:6px;text-align:start;inline-size:100%;padding:12px;border-radius:var(--r-md);
  background:var(--surface);border:1px solid var(--line);color:var(--tx);font:inherit;cursor:pointer;box-shadow:var(--shadow-1);
  transition:border-color .15s,transform .15s,box-shadow .15s}
.sh-lf-card:hover{border-color:var(--line-2);transform:translateY(-1px);box-shadow:var(--shadow-2)}
.sh-lf-card:focus-visible{outline:2px solid var(--gold-400);outline-offset:2px}
.sh-lf-card.on{border-color:var(--gold-500);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold-500) 35%,transparent)}
.sh-lf-card.paid{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.sh-lf-card .r1,.sh-lf-card .r2{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sh-lf-card .r1 > span{display:inline-flex;align-items:center;gap:6px;min-inline-size:0}
.sh-lf-card .pl{white-space:nowrap;font-weight:700;font-size:13px;background:var(--chip-bg);color:var(--chip-tx);border-radius:var(--r-xs);padding:2px 8px}
.sh-lf-card .r1 small{font-size:11.5px;color:var(--tx-3);white-space:nowrap}
.sh-lf-card .r1 b{font-size:13.5px;color:var(--tx);white-space:nowrap}
.sh-lf-card .cl{font-size:14px;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-lf-card .ln{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--tx-2);min-inline-size:0}
.sh-lf-card .ln svg{flex:0 0 auto;color:var(--tx-3)}
.sh-lf-card .ln span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-lf-card .r2 small{font-size:11.5px;color:var(--tx-3);white-space:nowrap}
.sh-lf-card .sg{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;margin-block:2px}
.sh-lf-card .sg i{block-size:4px;border-radius:var(--r-pill);background:var(--surface-2)}
.sh-lf-card .sg i.done.run,.sh-lf-card .sg i.cur.run{background:var(--lf-run)}
.sh-lf-card .sg i.done.po,.sh-lf-card .sg i.cur.po{background:var(--lf-po)}
.sh-lf-card .sg i.done.bill,.sh-lf-card .sg i.cur.bill{background:var(--lf-bill)}
.sh-lf-card .sg i.done.paid{background:var(--lf-paid)}
.sh-lf-card .sg i.cur{animation:shLfCur 1.6s ease-in-out infinite}
@keyframes shLfCur{50%{opacity:.45}}

/* شارةُ الحالة — في البطاقة واللوحة */
.sh-lf-page .pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;border-radius:var(--r-pill);padding:3px 9px;min-inline-size:0}
.sh-lf-page .pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sh-lf-page .pill i{font-style:normal}
.sh-lf-page .pill i:empty{inline-size:6px;block-size:6px;border-radius:50%;background:currentColor}
.sh-lf-page .pill.open,.sh-lf-page .pill.ongoing{color:var(--lf-run);background:var(--lf-run-bg)}
.sh-lf-page .pill.ongoing i:empty{animation:shLfPulse 1.8s infinite}
.sh-lf-page .pill.await_po{color:var(--lf-po);background:var(--lf-po-bg)}
.sh-lf-page .pill.await_inv,.sh-lf-page .pill.billed{color:var(--lf-bill);background:var(--lf-bill-bg)}
.sh-lf-page .pill.paid{color:var(--lf-paid);background:var(--lf-paid-bg)}

/* ── لوحةُ التفاصيل ── */
.sh-lf-shade{position:fixed;inset:0;z-index:80;border:0;padding:0;margin:0;background:rgba(5,12,24,.45);cursor:default}
.sh-lf-dr{position:fixed;inset-block:0;inset-inline-end:0;z-index:81;inline-size:min(460px,100vw);background:var(--surface);
  border-inline-start:1px solid var(--line);box-shadow:var(--shadow-2);overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);
  animation:shLfIn .22s var(--ease)}
.sh-lf-dr.keep{animation:none}
@keyframes shLfIn{from{transform:translateX(-24px);opacity:0}to{transform:none;opacity:1}}
[dir="ltr"] .sh-lf-dr{animation-name:shLfInL}
@keyframes shLfInL{from{transform:translateX(24px);opacity:0}to{transform:none;opacity:1}}
.sh-lf-dh{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--sp-2)}
.sh-lf-dh > div{display:flex;flex-direction:column;gap:6px;align-items:flex-start;min-inline-size:0}
.sh-lf-dh h3{margin:0;font-size:19px;color:var(--tx)}
.sh-lf-dh small{font-size:12.5px;color:var(--tx-3)}
.sh-lf-x{inline-size:36px;block-size:36px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);
  border:1px solid var(--line);background:var(--surface-2);color:var(--tx-2);cursor:pointer}
.sh-lf-x:hover{color:var(--tx);border-color:var(--line-2)}
.sh-lf-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sh-lf-facts > div{background:var(--surface-2);border-radius:var(--r-sm);padding:8px 10px;display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-lf-facts small{font-size:11.5px;color:var(--tx-3)}
.sh-lf-facts b{font-size:13px;color:var(--tx);overflow-wrap:anywhere}
.sh-lf-done{display:flex;align-items:center;gap:10px;background:var(--ok-bg);color:var(--ok);border-radius:var(--r-md);padding:12px 14px}
.sh-lf-done > i{inline-size:34px;block-size:34px;border-radius:50%;background:var(--ok);color:var(--surface);display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.sh-lf-done span{display:flex;flex-direction:column;gap:2px}
.sh-lf-done b{font-size:14px}
.sh-lf-done small{font-size:12px;color:var(--tx-2)}
.sh-lf-sec{display:flex;flex-direction:column;gap:8px}
.sh-lf-st{font-size:13px;color:var(--tx-gold-2)}
.sh-lf-tl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sh-lf-tl li{display:flex;gap:10px;position:relative;padding-block-end:12px}
.sh-lf-tl li:not(:last-child)::after{content:"";position:absolute;inset-inline-start:10px;inset-block:22px 0;inline-size:2px;background:var(--line)}
.sh-lf-tl li.done:not(:last-child)::after{background:var(--ok)}
.sh-lf-tl li > i{inline-size:22px;block-size:22px;border-radius:50%;flex:0 0 auto;border:2px solid var(--line);background:var(--surface);
  display:inline-flex;align-items:center;justify-content:center;color:var(--surface)}
.sh-lf-tl li.done > i{background:var(--ok);border-color:var(--ok)}
.sh-lf-tl li.now > i{border-color:var(--gold-500);box-shadow:0 0 0 4px color-mix(in srgb,var(--gold-500) 22%,transparent)}
.sh-lf-tl li > div{display:flex;flex-direction:column;gap:2px;min-inline-size:0}
.sh-lf-tl b{font-size:13px;color:var(--tx)}
.sh-lf-tl li:not(.done):not(.now) b{color:var(--tx-3)}
.sh-lf-tl small{font-size:12px;color:var(--tx-3);overflow-wrap:anywhere}
.sh-lf-tl li.now small{color:var(--tx-2)}
.sh-lf-act{display:flex;flex-direction:column;gap:var(--sp-2);border-block-start:1px solid var(--line);padding-block-start:var(--sp-3)}
.sh-lf-act > .sh-btn{inline-size:100%}
.sh-lf-next{margin:0;font-size:13px;color:var(--tx-2)}
.sh-lf-hint{margin:0;font-size:12.5px;color:var(--tx-3)}
.sh-lf-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}
.sh-lf-row .sh-btn{flex:1 1 160px}
.sh-lf-form{display:flex;flex-direction:column;gap:10px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:12px}
.sh-lf-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sh-lf-match{font-size:12.5px;font-weight:700;border-radius:var(--r-sm);padding:8px 10px;background:var(--surface);color:var(--tx-2)}
.sh-lf-match.ok{background:var(--ok-bg);color:var(--ok)}
.sh-lf-match.diff{background:var(--warn-bg);color:var(--warn)}
.sh-lf-err{font-size:12.5px;font-weight:700;color:var(--err);background:var(--err-bg);border-radius:var(--r-sm);padding:8px 10px}
.sh-lf-err[hidden]{display:none}
.sh-lf-others{display:flex;flex-direction:column;gap:6px}
.sh-lf-others > small{font-size:12px;color:var(--tx-3)}
.sh-lf-cb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--tx-2);min-block-size:32px;cursor:pointer}
.sh-lf-cb input{inline-size:18px;block-size:18px;accent-color:var(--gold-500)}

@media (max-width:1100px){
  .sh-lf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .sh-lf-board{grid-template-columns:repeat(4,88%);scroll-snap-type:x mandatory}
  .sh-lf-lane{scroll-snap-align:start}
  .sh-lf-head{align-items:stretch}
  .sh-lf-tools{inline-size:100%;display:grid;grid-template-columns:1fr auto}
  .sh-lf-tools .sh-in[type="search"]{inline-size:100%;grid-column:1 / -1}
  .sh-lf-tools .sh-filter{max-width:none;inline-size:100%}
  .sh-lf-tools .sh-btn{white-space:nowrap}
  .sh-lf-kpi{padding:12px}
  .sh-lf-kpi b{font-size:16px;white-space:normal;overflow:visible}
  .sh-lf-kpi-h{align-items:flex-start}
  .sh-lf-ic{inline-size:26px;block-size:26px}
  .sh-lf-dr{padding:var(--sp-3)}
  .sh-lf-grid,.sh-lf-facts{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .sh-lf-live i,.sh-lf-card .sg i.cur,.sh-lf-page .pill.ongoing i:empty{animation:none}
  .sh-lf-dr{animation:none}
}

/* ═══ كتالوج الأسعار ═══ */
.sh-cat-tabs{margin-block-end:var(--sp-2)}

/* ═══ أمرُ العمل من الكتالوج — النافذة ═══ */
.sh-wn{display:flex;flex-direction:column;gap:var(--sp-3)}
.sh-wn-sec{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);transition:opacity .2s}
.sh-wn-sec.off{opacity:.5;pointer-events:none}
.sh-wn-h{margin:0;display:flex;align-items:center;gap:8px;font-size:14px;color:var(--tx)}
.sh-wn-h i{font-style:normal;inline-size:24px;block-size:24px;border-radius:50%;background:var(--gold-500);color:var(--on-solid);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.sh-wn-lab{font-size:12.5px;font-weight:700;color:var(--tx-2)}
.sh-wn-num{font-size:12.5px;font-weight:700;color:var(--ok)}
.sh-wn-num.bad{color:var(--warn)}
.sh-wn-num:empty{display:none}
.sh-wn-hint{margin:0;font-size:12px;color:var(--tx-3)}
.sh-wn-veh{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:6px;max-block-size:260px;overflow-y:auto;padding:2px}
.sh-wn-vg{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-block-start:4px}
.sh-wn-vg b{font-size:12.5px;color:var(--tx-gold-2)}
.sh-wn-vg small{font-size:11.5px;color:var(--tx-3)}
.sh-wn-vc{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:6px;align-items:center;text-align:start;min-block-size:48px;
  padding:6px 10px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--tx);font:inherit;cursor:pointer}
.sh-wn-vc .dot{grid-row:1 / 3;inline-size:8px;block-size:8px;border-radius:50%;background:var(--ok)}
.sh-wn-vc b{font-size:13px}
.sh-wn-vc small{font-size:11px;color:var(--tx-3)}
.sh-wn-vc.busy .dot{background:var(--warn)}
.sh-wn-vc[disabled]{opacity:.5;cursor:not-allowed}
.sh-wn-vc.on,.sh-wn-sc.on{border-color:var(--gold-500);background:var(--gold-100);box-shadow:0 0 0 2px color-mix(in srgb,var(--gold-500) 30%,transparent)}
:root[data-theme="night"] .sh-wn-vc.on,:root[data-theme="night"] .sh-wn-sc.on,:root:not([data-theme]) .sh-wn-vc.on,:root:not([data-theme]) .sh-wn-sc.on{background:var(--surface-2)}
.sh-wn-vc.on b,.sh-wn-sc.on b{color:var(--tx-gold)}
.sh-wn-svc{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}
.sh-wn-sc{display:flex;flex-direction:column;gap:4px;text-align:start;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--surface);color:var(--tx);font:inherit;cursor:pointer}
.sh-wn-sc .top{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--tx-2)}
.sh-wn-sc .pr{font-size:14px;color:var(--tx)}
.sh-wn-sc .rt{font-size:13px;font-weight:700}
.sh-wn-sc small{font-size:11.5px;color:var(--tx-3)}
.sh-wn-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sh-wn-sum{font-size:13px;font-weight:700;color:var(--tx);background:var(--info-bg);border-radius:var(--r-sm);padding:10px 12px}
.sh-wn-err{font-size:12.5px;font-weight:700;color:var(--err);background:var(--err-bg);border-radius:var(--r-sm);padding:8px 10px}
.sh-wn-err[hidden]{display:none}
.sh-wn-alt{align-self:flex-start;border:0;background:transparent;color:var(--tx-gold-2);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;padding:6px 0;text-decoration:underline}
.sh-wn-done{display:flex;flex-direction:column;gap:8px}
.sh-wn-ok{display:flex;flex-direction:column;gap:4px;background:var(--ok-bg);color:var(--ok);border-radius:var(--r-md);padding:12px 14px}
.sh-wn-ok b{font-size:15px}
.sh-wn-ok span{font-size:12.5px;color:var(--tx-2)}
@media (max-width:600px){
  .sh-wn-grid{grid-template-columns:1fr}
  .sh-wn-veh{grid-template-columns:repeat(2,minmax(0,1fr))}
}
