/* منظومة شاهين الصحراء — بناء 202610111043 */

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

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

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

/* ── الذهب: هوية ثابتة في الوضعين ── */
:root{
  --gold-100:#FBF0CC; --gold-200:#F2D98A; --gold-300:#E4B548; --gold-400:#D4A843;
  --gold-500:#C9922A; --gold-600:#8B6914; --gold-700:#5A3E10; --gold-800:#2A1F0A; --gold-900:#1F1408;
  --gold-grd:linear-gradient(135deg,#A87818 0%,#C9922A 35%,#E4B548 55%,#F2D98A 70%,#E4B548 85%,#A87818 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:#F2D98A;            /* العناوين  · 11.2:1 */
  --tx-gold-2:#E4B548;          /* التسميات  · 8.4:1  */

  /* ألوان الأدوار والحالات — النسخة المرفوعة الإضاءة للخلفية الداكنة */
  --r-master:#E9BE55; --r-ops:#7FA9F5; --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:#2A2410; --fm-num:#F2D98A;
  --fm-card:#0B1524; --fm-card-line:#3A5178; --fm-ring-on:#FFFFFF; --fm-num-on:#1F1408;
}

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

  --bg:#F5EFE1;
  --bg-grad:radial-gradient(60% 45% at 50% 12%, #FFFCF4 0%, #F7F1E3 45%, #EDE3CC 100%);
  --surface:#FFFFFF;
  --surface-2:#FBF6EA;
  --surface-3:#FFFDF8;
  --line:#E0D4B6;
  --line-2:#C9922A;

  --tx:#1E1508;                 /* الأساسي  · 17.4:1 على الأبيض */
  --tx-2:#54492F;               /* الثانوي  · 8.4:1  */
  --tx-3:#6F6244;               /* الخافت   · 5.6:1  */
  --tx-gold:#6B4708;            /* العناوين · 9.1:1  */
  --tx-gold-2:#7E550C;          /* التسميات · 7.3:1  */

  --r-master:#7E550C; --r-ops:#1E40AF; --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:#F2E9D6; --chip-tx:#4A3F26;
  --shadow-1:0 1px 3px rgba(42,31,10,.08);
  --shadow-2:0 14px 32px rgba(42,31,10,.14);
  --logo-invert:0;

  --fm-sea:#E8EEF1; --fm-grid:#DCE4E9; --fm-land:#FBF5E6; --fm-coast:#C9B27A;
  --fm-city:#8A7B5A; --fm-city-tx:#6F6244; --fm-dot:#FFF3D1; --fm-num:#6B4708;
  --fm-card:#FFFFFF; --fm-card-line:#D9C9A0; --fm-ring-on:#6B4708; --fm-num-on:#FFFFFF;
}

/* من لم يختر شيئاً: نتبع إعداد نظامه */
@media (prefers-color-scheme: light){
  :root:not([data-theme]){
    color-scheme:light;
    --bg:#F5EFE1;
    --bg-grad:radial-gradient(60% 45% at 50% 12%, #FFFCF4 0%, #F7F1E3 45%, #EDE3CC 100%);
    --surface:#FFFFFF; --surface-2:#FBF6EA; --surface-3:#FFFDF8;
    --line:#E0D4B6; --line-2:#C9922A;
    --tx:#1E1508; --tx-2:#54492F; --tx-3:#6F6244; --tx-gold:#6B4708; --tx-gold-2:#7E550C;
    --r-master:#7E550C; --r-ops:#1E40AF; --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:#F2E9D6; --chip-tx:#4A3F26;
    --shadow-1:0 1px 3px rgba(42,31,10,.08);
    --shadow-2:0 14px 32px rgba(42,31,10,.14);
    --logo-invert:0;
    --fm-sea:#E8EEF1; --fm-grid:#DCE4E9; --fm-land:#FBF5E6; --fm-coast:#C9B27A;
    --fm-city:#8A7B5A; --fm-city-tx:#6F6244; --fm-dot:#FFF3D1; --fm-num:#6B4708;
    --fm-card:#FFFFFF; --fm-card-line:#D9C9A0; --fm-ring-on:#6B4708; --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:var(--chip-bg);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(212,168,67,.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:var(--gold-900);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,var(--gold-500) 0,var(--gold-400) 30%,rgba(228,181,72,.65) 52%,rgba(228,181,72,.22) 78%,rgba(228,181,72,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-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-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} }

/* ═══ 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(228,181,72,0), rgba(228,181,72,.75), rgba(228,181,72,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(--warn-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:var(--gold-800);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:17px;opacity:.85;filter:invert(var(--logo-invert))}

/* مفتاحُ الليل والنهار على شاشة الدخول — يرث طراز `.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:var(--gold-800);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(228,181,72,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:var(--gold-900);border-color:transparent;font-weight:800;
  box-shadow:0 6px 16px -6px rgba(180,140,30,.5),inset 0 1px 0 rgba(255,255,255,.4);
}
.sh-btn.primary:hover{box-shadow:0 8px 20px -6px rgba(180,140,30,.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(212,168,67,.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(212,168,67,.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(228,181,72,.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:var(--gold-900);background:var(--gold-grd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 2px 10px rgba(201,146,42,.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:var(--gold-900);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:var(--gold-900);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:var(--gold-900);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:var(--gold-900);background:var(--gold-grd);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 2px 8px rgba(201,146,42,.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; }

/* ═══ 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:var(--gold-900)}
.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(228,181,72,.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:var(--gold-900)}
.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:var(--gold-900)}
.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,var(--gold-500) 0,var(--gold-400) 30%,rgba(228,181,72,.65) 60%,rgba(228,181,72,.25) 100%);color:var(--gold-900)}
.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(228,181,72,.24),rgba(228,181,72,.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,#A87818,#C9922A 40%,#E4B548 60%,#A87818);color:#1F1408;border-color:#8B6914}

.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:#F2D98A}.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:#F2D98A;color:#5A3E10}
.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:#1F1408;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:#F2D98A;font-size:12.5px}
.sh-oa-tip .go{display:block;margin-top:4px;color:#E4B548;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(228,181,72,.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:#1E1508;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:#F2D98A;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 #1E1508;border-radius:var(--r-md);background:#FFFFFF;overflow:hidden;
          display:flex;align-items:center;justify-content:center;font-size:12px;color:#6F6244}
.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:#54492F;text-align:center;line-height:1.6}
.sh-fd-sticker .f{border-top:1px dashed #E0D4B6;padding:8px 16px;display:flex;justify-content:space-between;font-size:11.5px;color:#4A3F26;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, #E4B548), var(--gold, #C9922A));
  color:var(--gold-ink, #2A1F0A); font-size:28px; font-weight:800; line-height:1;
  box-shadow:0 8px 22px rgba(201,146,42,.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(201,146,42,.5), 0 0 0 6px rgba(228,181,72,.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, #E4B548), var(--gold, #C9922A));
  color:var(--gold-ink, #2A1F0A);
}

.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:var(--gold-900);
}
.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,var(--gold-500),var(--gold-400) 40%,rgba(228,181,72,.5));color:var(--gold-900)}
.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:#FFFDF8}
.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(228,181,72,.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(212,168,67,.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:#FFFDF8}
.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(228,181,72,.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:#FFFDF8;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 }
