⚠️ تنبيه مهم — هذه الأداة للاسترشاد فقط: النتائج المعروضة تقديرية استرشادية مبنية على قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025. لا تُعدّ هذه الأداة مرجعاً قانونياً ولا تُغني عن استشارة محامٍ أو متخصص في قانون العمل، ولا تتحمل wzaeif.com أي مسؤولية قانونية أو مالية تترتب على الاعتماد على هذه النتائج في اتخاذ قرارات. يتفاوت الحساب الفعلي بحسب العقد وسياسة الشركة والقطاع والمحكمة المختصة.
كثير من الموظفين لا يعرفون كم يوم إجازة يستحقونه فعلاً ولا كيف تُحسب قيمتها المالية عند الصرف أو الترك. وكذلك يجهل كثيرون أن العمل الإضافي له نسب قانونية محددة لا يجوز النزول عنها. هذه الأداة المجانية تعطيك أرقاماً استرشادية دقيقة في ثوانٍ وفق قانون العمل المصري رقم 14 لسنة 2025 الساري من سبتمبر 2025 والذي ألغى قانون 2003.
📋 المرجع القانوني — الحاسبة مبنية على هذه التشريعات:
قانون العمل رقم 14 لسنة 2025 — الساري
صدر في 3 مايو 2025 ونُشر في الجريدة الرسمية، وبدأ سريانه في 1 سبتمبر 2025، وبموجبه أُلغي قانون 2003 بالكامل. ينظّم الإجازات في المواد 124–133 والعمل الإضافي في المواد 134–139.
قرارات وزارة العمل 2026وزارة العمل المصرية تُصدر قرارات دورية بشأن الحد الأدنى للأجور وساعات العمل — الحد الأدنى الساري حالياً 6,000 ج.م شهرياً للقطاع الخاص.
🧮 الحاسبة — اختر الأداة
اضغط على الأداة التي تريدها واحسب مستحقاتك فوراً:
ج.م
الراتب الأساسي مطلوب
سنة
سنوات الخدمة مطلوبة — اكتب 0 للموظف الجديد
اكتب 0 لأقل من سنة · 0.5 لستة أشهر · المجموع لدى جميع أصحاب العمل
سنة
يؤثر في المستحق — من تجاوز 50 عاماً يستحق 30 يوماً
يوم
يوم
5 أيام
6 أيام
7 أيام
📅
أدخل بيانات خدمتك واضغط احسب
ج.م
الراتب الأساسي مطلوب
يُحسب الإضافي على الأساسي فقط وفق قانون العمل
ساعة
أدخل عدد ساعات الإضافي
في الشهر — نسبة +25% من أجر الساعة (ساعات النهار)
ساعة
نسبة +70% ليلاً · في الراحة الأسبوعية: مثلا الأجر + يوم بديل (المادة 121)
7 ساعات
8 ساعات
9 ساعات
22 يوم
24 يوم
26 يوم
⏱️
أدخل بيانات راتبك وساعات الإضافي
📊 جدول استحقاق الإجازة السنوية
وفق المادة 124 من قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025، الإجازة السنوية بأيام العمل الفعلية كالتالي:
الحالة
الاستحقاق السنوي
ملاحظة
السنة الأولى (بعد 6 أشهر)
15 يوم عمل
يُحسب بالتناسب مع المدة
اعتباراً من السنة الثانية
21 يوم عمل
للقطاعين الخاص والعام
10 سنوات خدمة فأكثر
30 يوم عمل
لدى صاحب عمل واحد أو أكثر
من تجاوز 50 عاماً
30 يوم عمل
بصرف النظر عن مدة الخدمة
ذوو الإعاقة والأقزام
45 يوم عمل
تمييز إيجابي مقرر بالقانون
الأعمال الخطرة/المناطق النائية
+ 7 أيام إضافية
بقرار من الوزير المختص
أيام الراحة الأسبوعية لا تُحتسبالعطلات الرسمية لا تُحتسبتسوية الرصيد أو صرف بدله كل 3 سنواتيحق صرف المتبقي نقداً عند التركلا يجوز التنازل عن الإجازة — وإلا سقط بدلها6 أيام متصلة على الأقل في كل مرة
⏰ نسب العمل الإضافي وفق القانون
قانون العمل رقم 14 لسنة 2025 حدد نسب العمل الإضافي وفق الفترة الزمنية — وهو تغيير جوهري عن القانون القديم:
نوع الوقت الإضافي
النسبة القانونية
الأساس
ساعات إضافية نهارية
+25% = 125% إجمالاً
على أساس أجر الساعة
ساعات إضافية ليلية
+70% = 170% إجمالاً
على أساس أجر الساعة
العمل في يوم الراحة الأسبوعية
مثلا الأجر + يوم بديل
إلزامي — خلال الأسبوع التالي
العمل الفعلي اليومي
8 ساعات / 48 أسبوعياً
المادة 117 — لا تشمل الراحة
الحد الأقصى للتواجد اليومي
12 ساعة في جميع الأحوال
نص صريح في قانون الإضافي
كيف يُحسب أجر الساعة الأساسي؟ الراتب الأساسي ÷ (أيام العمل الشهرية × ساعات العمل اليومية). مثال: راتب 8,000 ج.م ÷ (24 يوم × 8 ساعات) = 41.67 ج.م للساعة × 125% = 52.08 ج.م للساعة الإضافية النهارية، أو × 170% = 70.83 ج.م للساعة الإضافية الليلية.
💡 أمثلة عملية
راتب 5,000 · 3 سنوات
21 يوم
قيمة: ~3,500 ج.م
راتب 10,000 · 7 سنوات
21 يوم
قيمة: ~7,000 ج.م
راتب 10,000 · 12 سنة
30 يوم
قيمة: ~10,000 ج.م
راتب 6,000 · 20 ساعة نهاري
~781 ج.م
بنسبة 125% نهار
راتب 8,000 · 10 ساعات ليلية
~708 ج.م
بنسبة 170% ليل
راتب 15,000 · رصيد 45 يوم
~22,500 ج.م
عند انتهاء الخدمة
🔗 مصادر رسمية وموثوقة
للاطلاع على النصوص القانونية الكاملة وأحدث القرارات الوزارية:
الحاسبة مبنية على قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025 — أحدث تشريع عمالي في مصر.
📅
خبرة سوق العمل المصري
wzaeif.com يرصد آلاف الوظائف يومياً ويعرف هيكل الرواتب والمزايا الفعلية في السوق.
🔄
تحديث مستمر
نُحدِّث الأدوات فور صدور أي قرارات وزارية أو تعديلات قانونية.
⚠️
شفافية كاملة
نُوضح دائماً أن الأرقام استرشادية ولا تُغني عن الاستشارة القانونية المتخصصة.
❓ أسئلة شائعة
كم يوم إجازة يستحق الموظف في مصر سنوياً؟
وفق المادة 124 من قانون العمل رقم 14 لسنة 2025: 15 يوماً في السنة الأولى (بعد 6 أشهر خدمة)، و21 يوماً من السنة الثانية، و30 يوماً لمن أمضى 10 سنوات فأكثر أو تجاوز سن الخمسين، و45 يوماً لذوي الإعاقة والأقزام. الأيام بأيام العمل الفعلي — الراحة الأسبوعية والإجازات الرسمية لا تُحتسب.
كيف يُحسب أجر ساعة العمل الإضافي؟
أجر الساعة الأساسي = الراتب الأساسي ÷ (أيام العمل الشهرية × ساعات العمل اليومية). وفق النص الحرفي لقانون العمل 14/2025: +25% للساعات النهارية (= 125% إجمالاً) و+70% للساعات الليلية (= 170% إجمالاً). في يوم الراحة الأسبوعية: مثلا الأجر + يوم بديل. مثال: راتب 8,000 ÷ (24 × 8) = 41.67 ج.م للساعة × 125% = 52.08 ج.م للساعة الإضافية النهارية.
هل يحق صرف رصيد الإجازات نقداً؟
نعم، عند انتهاء عقد العمل يحق للموظف المطالبة بالمقابل النقدي لرصيد الإجازات غير المستخدم. كما يلزم قانون العمل رقم 14 لسنة 2025 صاحب العمل بتسوية الرصيد أو صرف بدله المالي كل 3 سنوات على الأكثر دون انتظار انتهاء العقد.
ما الحد الأقصى للعمل الإضافي اليومي؟
وفق قانون العمل رقم 14 لسنة 2025، ساعات العمل الفعلية 8 ساعات يومياً أو 48 أسبوعياً (لا تشمل فترات الراحة والطعام). وبنص المادة الخاصة بالعمل الإضافي: لا تزيد ساعات وجود العامل بالمنشأة على 12 ساعة في جميع الأحوال. وتشير المادة 119 إلى أن الفترة بين بداية العمل ونهايتها لا تتجاوز 10 ساعات للعمل العادي غير الإضافي، مع استثناء الأعمال ذات الطبيعة الخاصة.
هل يسري قانون العمل على الحكومة؟
لا، قانون العمل رقم 14 لسنة 2025 يسري بصفة أساسية على العاملين في القطاع الخاص وقطاع الأعمال العام. موظفو الحكومة (الجهاز الإداري للدولة) يخضعون لقانون الخدمة المدنية رقم 81 لسنة 2016 الذي له أحكام مختلفة — إجازة الموظف الحكومي مثلاً 45 يوماً سنوياً وفق قانون الخدمة المدنية.
هل يمكن تراكم الإجازات؟ ومتى يلتزم صاحب العمل بتسويتها؟
وفق قانون العمل رقم 14 لسنة 2025، يلتزم صاحب العمل بتسوية رصيد الإجازات أو صرف بدله المالي كل 3 سنوات على الأكثر. لا يجوز لصاحب العمل حرمان العامل من إجازته أو إلغاؤها إلا في حالات استثنائية، وفي حالة الحرمان يظل العامل محتفظاً بحقه في البدل المالي كاملاً بصرف النظر عن مرور المدة.
ابحث عن وظيفة بمزايا أفضل الآن 🚀
آلاف الوظائف من كبرى الشركات في مصر — محدَّثة يومياً
⚠️ إخلاء مسؤولية قانونية: جميع النتائج المعروضة في هذه الأداة هي أرقام استرشادية تقديرية فقط، مبنية على قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025 وقانون الخدمة المدنية رقم 81 لسنة 2016. لا تُعدّ هذه الأداة مرجعاً قانونياً ملزماً، ولا تُشكّل استشارة قانونية أو مالية أو عمالية، ولا تتحمل wzaeif.com أي مسؤولية قانونية أو مالية أو أدبية تترتب على الاعتماد على هذه الأرقام في أي قرار. يختلف الحساب الفعلي بحسب نص العقد الفردي وسياسة الشركة والقطاع والجهة القضائية المختصة. استشر محامياً أو متخصصاً في قانون العمل للحصول على رأي قانوني دقيق.
إسأل عن أي تفاصيل في هذا المقال؟
اسأل المساعد الذكي وسيجيبك بناءً على محتوى هذا المقال.
<link href="https://fonts.googleapis.com" rel="preconnect" />
<link href="https://fonts.googleapis.com/css2?family=Tajawal:wght@400;500;600;700;800;900&display=swap" rel="stylesheet" />
<!-- ═══════════════════════════════════════════
Schema.org — BlogPosting
════════════════════════════════════════════ -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "حاسبة الإجازات والعمل الإضافي في مصر 2026 — احسب مستحقاتك بدقة",
"description": "احسب رصيد إجازاتك السنوية ومستحقاتها المالية وأجر العمل الإضافي وفق قانون العمل المصري رقم 14 لسنة 2025 الساري من سبتمبر 2025.",
"datePublished": "2026-03-19",
"dateModified": "2026-03-19",
"author": {"@type": "Organization","name": "wzaeif.com","url": "https://www.wzaeif.com"},
"publisher": {"@type": "Organization","name": "وظائف دوت كوم","url": "https://www.wzaeif.com","logo": {"@type": "ImageObject","url": "https://www.wzaeif.com/favicon.ico"}},
"keywords": ["حاسبة الإجازات مصر","العمل الإضافي مصر 2026","مستحقات الإجازة السنوية","حساب أجر الإضافي","قانون العمل المصري إجازات","رصيد الإجازات"],
"aggregateRating": {"@type": "AggregateRating","ratingValue": "4.8","reviewCount": "178"}
}
</script>
<!-- ═══════════════════════════════════════════
Schema.org — FAQPage
════════════════════════════════════════════ -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "كم يوم إجازة سنوية يستحق الموظف في مصر؟",
"acceptedAnswer": {"@type": "Answer","text": "وفق قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025: 15 يوماً في السنة الأولى، 21 يوماً اعتباراً من السنة الثانية، و30 يوماً لمن أمضى 10 سنوات فأكثر أو تجاوز سن الخمسين، و45 يوماً لذوي الإعاقة والأقزام."}
},
{
"@type": "Question",
"name": "كيف يُحسب أجر العمل الإضافي في مصر؟",
"acceptedAnswer": {"@type": "Answer","text": "وفق النص الحرفي لقانون العمل رقم 14 لسنة 2025: يحصل العامل على أجره مضافاً إليه 25% عن ساعات النهار (= 125% إجمالاً)، و70% عن ساعات الليل (= 170% إجمالاً)، وتحسب على أساس أجر الساعة. وإذا وقع التشغيل في يوم الراحة الأسبوعية استحق مثل أجره عن ذلك اليوم مع منحه يوماً بديلاً في الأسبوع التالي."}
},
{
"@type": "Question",
"name": "هل يحق للموظف صرف رصيد الإجازات المتراكمة نقداً؟",
"acceptedAnswer": {"@type": "Answer","text": "نعم، وفق قانون العمل المصري يحق للموظف عند انتهاء عقد العمل الحصول على مقابل نقدي عن رصيد الإجازات غير المستخدم. كما يلزم القانون صاحب العمل بتسوية رصيد الإجازات أو صرف بدله كل 3 سنوات على الأكثر."}
},
{
"@type": "Question",
"name": "هل يدخل يوم الراحة الأسبوعية ضمن الإجازة السنوية؟",
"acceptedAnswer": {"@type": "Answer","text": "لا، أيام الإجازة السنوية تُحسب بأيام العمل الفعلية فقط، وأيام الراحة الأسبوعية والإجازات الرسمية لا تُحتسب ضمن رصيد الإجازة وفق قانون العمل رقم 14 لسنة 2025."}
},
{
"@type": "Question",
"name": "ما الحد الأقصى لوجود العامل في المنشأة يومياً؟",
"acceptedAnswer": {"@type": "Answer","text": "وفق النص الصريح لقانون العمل رقم 14 لسنة 2025 في مادة العمل الإضافي: لا تزيد ساعات وجود العامل بالمنشأة على 12 ساعة في جميع الأحوال. أما ساعات العمل الفعلية فلا تتجاوز 8 ساعات يومياً أو 48 أسبوعياً وفق المادة 117."}
}
]
}
</script>
<!-- ═══════════════════════════════════════════
Schema.org — WebApplication
════════════════════════════════════════════ -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebApplication",
"name": "حاسبة الإجازات والعمل الإضافي في مصر 2026",
"url": "https://www.wzaeif.com/2026/03/egypt-leave-overtime-calculator.html",
"description": "أداة مجانية لحساب رصيد الإجازات السنوية ومستحقاتها وأجر العمل الإضافي وفق قانون العمل المصري",
"applicationCategory": "FinanceApplication",
"operatingSystem": "Web Browser",
"inLanguage": "ar",
"creator": {"@type": "Organization","name": "wzaeif.com","url": "https://www.wzaeif.com"},
"offers": {"@type": "Offer","price": "0","priceCurrency": "EGP"},
"featureList": [
"حساب رصيد الإجازة السنوية",
"حساب مستحقات الإجازة المالية",
"حساب أجر العمل الإضافي",
"دعم القطاعين الحكومي والخاص"
]
}
</script>
<style>
/* ═══════════════════════════════════════════
CSS VARIABLES — Light Mode
prefix: lv (leave) لتمييزها عن باقي الأدوات
════════════════════════════════════════════ */
:root {
/* Brand — violet/purple للتمييز عن الأداتين السابقتين */
--lv-purple: #7c3aed;
--lv-purple-mid: #6d28d9;
--lv-purple-light: #a78bfa;
--lv-purple-pale: #f5f3ff;
--lv-purple-border: rgba(124,58,237,.18);
--lv-teal: #0891b2;
--lv-teal-pale: #ecfeff;
--lv-green: #16a34a;
--lv-green-pale: #f0fdf4;
--lv-amber: #d97706;
--lv-amber-pale: #fffbeb;
--lv-red: #dc2626;
--lv-red-pale: #fef2f2;
/* Text */
--lv-text-primary: #0f172a;
--lv-text-sec: #475569;
--lv-text-muted: #94a3b8;
/* Surfaces */
--lv-border: #e2e8f0;
--lv-bg-page: #f8fafc;
--lv-bg-card: #ffffff;
--lv-bg-input: #f8fafc;
/* Legal box */
--lv-legal-bg: #f5f3ff;
--lv-legal-border: #ddd6fe;
--lv-legal-text: #5b21b6;
--lv-legal-strong: #3b0764;
--lv-legal-item-bg: #ffffff;
/* Shadows */
--lv-shadow-sm: 0 1px 3px rgba(0,0,0,.06);
--lv-shadow-md: 0 4px 16px rgba(0,0,0,.08);
--lv-shadow-lg: 0 8px 32px rgba(0,0,0,.12);
--lv-r-sm: 8px;
--lv-r-md: 12px;
--lv-r-lg: 16px;
--lv-tr: all .2s ease;
}
/* ═══════════════════════════════════════════
CSS VARIABLES — Dark Mode
════════════════════════════════════════════ */
@media (prefers-color-scheme: dark) {
:root {
--lv-purple: #a78bfa;
--lv-purple-mid: #8b5cf6;
--lv-purple-light: #c4b5fd;
--lv-purple-pale: rgba(167,139,250,.12);
--lv-purple-border: rgba(167,139,250,.25);
--lv-teal: #22d3ee;
--lv-teal-pale: rgba(34,211,238,.1);
--lv-green: #4ade80;
--lv-green-pale: rgba(74,222,128,.1);
--lv-amber: #fbbf24;
--lv-amber-pale: rgba(251,191,36,.1);
--lv-red: #f87171;
--lv-red-pale: rgba(248,113,113,.1);
--lv-text-primary: #f1f5f9;
--lv-text-sec: #94a3b8;
--lv-text-muted: #64748b;
--lv-border: #1e293b;
--lv-bg-page: #0f172a;
--lv-bg-card: #1e293b;
--lv-bg-input: #0f172a;
--lv-legal-bg: rgba(124,58,237,.08);
--lv-legal-border: rgba(167,139,250,.2);
--lv-legal-text: #c4b5fd;
--lv-legal-strong: #ddd6fe;
--lv-legal-item-bg: #1e293b;
--lv-shadow-sm: 0 1px 3px rgba(0,0,0,.3);
--lv-shadow-md: 0 4px 16px rgba(0,0,0,.4);
--lv-shadow-lg: 0 8px 32px rgba(0,0,0,.5);
}
}
/* ═══════════════════════════════════════════
BASE
════════════════════════════════════════════ */
.lv *, .lv *::before, .lv *::after { box-sizing: border-box; }
.lv {
font-family: 'Tajawal', sans-serif;
font-size: 16px;
max-width: 860px;
margin: 0 auto;
padding: 24px 16px 48px;
color: var(--lv-text-primary);
direction: rtl;
line-height: 1.75;
-webkit-font-smoothing: antialiased;
background-color: var(--lv-bg-page);
}
/* ═══════════════════════════════════════════
HERO
════════════════════════════════════════════ */
.lv .lv-hero {
position: relative;
border-radius: var(--lv-r-lg);
overflow: hidden;
margin-bottom: 28px;
min-height: 260px;
background: linear-gradient(135deg, #7c3aed, #0891b2);
}
.lv .lv-hero img { width: 100%; height: 260px; object-fit: cover; display: block; }
.lv .lv-hero-ov {
position: absolute; inset: 0;
background: linear-gradient(135deg, rgba(109,40,217,.92), rgba(8,145,178,.80));
display: flex; flex-direction: column;
align-items: center; justify-content: center;
text-align: center; padding: 24px;
}
.lv .lv-badge {
background: rgba(255,255,255,.15);
border: 1px solid rgba(255,255,255,.3);
color: #fff; font-size: 12px; font-weight: 700;
padding: 4px 14px; border-radius: 99px;
margin-bottom: 12px; letter-spacing: .5px; display: inline-block;
}
.lv .lv-hero h1 {
font-size: clamp(1.3rem, 3.5vw, 2rem);
font-weight: 900; color: #fff;
line-height: 1.3; margin: 0 0 8px;
}
.lv .lv-hero p { font-size: 15px; color: rgba(255,255,255,.88); max-width: 500px; margin: 0; }
/* ═══════════════════════════════════════════
SISTER TOOLS BANNER
════════════════════════════════════════════ */
.lv .lv-tools {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
margin-bottom: 22px;
}
@media (max-width: 540px) { .lv .lv-tools { grid-template-columns: 1fr; } }
.lv .lv-tool {
display: flex; align-items: center; gap: 12px;
padding: 12px 16px;
background: var(--lv-bg-card);
border: 1px solid var(--lv-border);
border-radius: var(--lv-r-md);
text-decoration: none;
transition: var(--lv-tr);
/* isolation */
isolation: isolate;
contain: layout style;
}
.lv .lv-tool:hover { box-shadow: var(--lv-shadow-md); transform: translateY(-1px); border-color: var(--lv-purple); }
.lv .lv-tool-ic { font-size: 22px; flex-shrink: 0; }
.lv .lv-tool-body { flex: 1; min-width: 0; }
.lv .lv-tool-title { font-size: 13px; font-weight: 800; color: var(--lv-purple); display: block; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv .lv-tool-desc { font-size: 12px; color: var(--lv-text-muted); }
/* block ads inside tool links */
.lv .lv-tool ins, .lv .lv-tool iframe,
.lv .lv-tool div[id^="google_ads"],
.lv .lv-tool .google-auto-placed { display: none !important; width: 0 !important; height: 0 !important; }
/* ═══════════════════════════════════════════
LEGAL BOX
════════════════════════════════════════════ */
.lv .lv-legal {
background: var(--lv-legal-bg);
border: 1px solid var(--lv-legal-border);
border-right: 4px solid var(--lv-purple);
border-radius: var(--lv-r-md);
padding: 16px 20px; margin-bottom: 22px;
font-size: 13px; line-height: 1.85;
color: var(--lv-legal-text);
}
.lv .lv-legal strong { color: var(--lv-legal-strong); font-weight: 800; }
.lv .lv-legal a { color: var(--lv-purple); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.lv .lv-legal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
@media (max-width: 540px) { .lv .lv-legal-grid { grid-template-columns: 1fr; } }
.lv .lv-legal-item {
background: var(--lv-legal-item-bg);
border: 1px solid var(--lv-legal-border);
border-radius: var(--lv-r-sm); padding: 10px 14px;
font-size: 12px; color: var(--lv-legal-text);
}
.lv .lv-legal-item strong { display: block; font-size: 13px; color: var(--lv-legal-strong); margin-bottom: 2px; }
/* ═══════════════════════════════════════════
DISCLAIMER BOX — استرشادية
════════════════════════════════════════════ */
.lv .lv-disclaimer {
background: var(--lv-amber-pale);
border: 1px solid rgba(217,119,6,.25);
border-right: 4px solid var(--lv-amber);
border-radius: var(--lv-r-md);
padding: 14px 18px; margin-bottom: 22px;
font-size: 13px; line-height: 1.85;
color: var(--lv-amber);
isolation: isolate;
contain: layout style;
}
.lv .lv-disclaimer strong { font-weight: 800; }
/* ═══════════════════════════════════════════
INTRO
════════════════════════════════════════════ */
.lv .lv-intro {
font-size: 15px; line-height: 1.9;
color: var(--lv-text-sec);
margin-bottom: 24px; padding: 18px 20px;
background: var(--lv-bg-card);
border-radius: var(--lv-r-md);
border-right: 4px solid var(--lv-purple);
box-shadow: var(--lv-shadow-sm);
}
.lv .lv-intro strong { color: var(--lv-text-primary); }
/* ═══════════════════════════════════════════
HEADINGS & TEXT
════════════════════════════════════════════ */
.lv .lv-h2 {
font-size: 1.2rem; font-weight: 800;
color: var(--lv-text-primary);
margin: 36px 0 14px; padding-bottom: 10px;
border-bottom: 2px solid var(--lv-border);
display: flex; align-items: center; gap: 8px;
}
.lv .lv-p { font-size: 15px; line-height: 1.9; color: var(--lv-text-sec); margin-bottom: 12px; }
.lv .lv-p strong { color: var(--lv-text-primary); font-weight: 700; }
.lv .lv-p a { color: var(--lv-purple); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
/* ═══════════════════════════════════════════
TABS — أداة الإجازات / أداة الإضافي
════════════════════════════════════════════ */
.lv .lv-tabs {
display: flex; gap: 0;
background: var(--lv-bg-page);
border: 1px solid var(--lv-border);
border-radius: var(--lv-r-md);
padding: 4px; margin-bottom: 0;
overflow: hidden;
}
.lv .lv-tab {
flex: 1; padding: 11px 14px;
border: none; border-radius: var(--lv-r-sm);
font-size: 14px; font-weight: 700;
font-family: 'Tajawal', sans-serif;
cursor: pointer; transition: var(--lv-tr);
color: var(--lv-text-muted);
background: transparent;
}
.lv .lv-tab.on {
background: linear-gradient(135deg, #7c3aed, #0891b2);
color: #fff;
box-shadow: 0 2px 8px rgba(124,58,237,.3);
}
.lv .lv-tab:not(.on):hover { color: var(--lv-purple); background: var(--lv-purple-pale); }
/* ═══════════════════════════════════════════
CALCULATOR CARD — fully isolated
════════════════════════════════════════════ */
.lv .lv-calc {
background: var(--lv-bg-card);
border: 1px solid var(--lv-border);
border-radius: 0 0 var(--lv-r-lg) var(--lv-r-lg);
overflow: hidden;
box-shadow: var(--lv-shadow-lg);
margin: 0 0 28px;
/* ── hard isolation ── */
isolation: isolate;
contain: layout style;
position: relative;
z-index: 1;
}
/* block ALL injected ads/tools */
.lv .lv-calc ins,
.lv .lv-calc ins.adsbygoogle,
.lv .lv-calc ins[data-ad-client],
.lv .lv-calc iframe:not([title]),
.lv .lv-calc div[id^="google_ads"],
.lv .lv-calc div[id^="div-gpt"],
.lv .lv-calc .google-auto-placed,
.lv .lv-calc [data-ad-slot],
.lv .lv-calc script + div,
.lv .lv-calc > div[style*="width:"] {
display: none !important;
width: 0 !important; height: 0 !important;
overflow: hidden !important;
pointer-events: none !important;
}
.lv .lv-calc-bd { padding: 24px; }
.lv .lv-pane { display: none; }
.lv .lv-pane.on { display: block; }
/* ═══════════════════════════════════════════
GRID
════════════════════════════════════════════ */
.lv .lv-g2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 580px) { .lv .lv-g2 { grid-template-columns: 1fr; } }
/* ═══════════════════════════════════════════
FORM FIELDS
════════════════════════════════════════════ */
.lv .lv-field { margin-bottom: 14px; }
.lv .lv-lbl { display: block; font-size: 14px; font-weight: 600; color: var(--lv-text-sec); margin-bottom: 6px; }
.lv .lv-hint { font-size: 12px; color: var(--lv-text-muted); margin-top: 3px; }
.lv .lv-iw { position: relative; }
.lv .lv-iw em {
position: absolute; top: 50%; transform: translateY(-50%);
left: 12px; font-size: 12px; color: var(--lv-text-muted);
pointer-events: none; font-style: normal; font-weight: 600;
}
.lv .lv-in, .lv .lv-sel {
width: 100%; padding: 11px 14px 11px 42px;
border: 1.5px solid var(--lv-border);
border-radius: var(--lv-r-sm);
font-size: 15px; font-family: 'Tajawal', sans-serif;
font-weight: 600; color: var(--lv-text-primary);
background: var(--lv-bg-input);
transition: var(--lv-tr);
direction: rtl; -webkit-appearance: none; appearance: none;
}
.lv .lv-sel { padding: 11px 14px; cursor: pointer; color-scheme: light dark; }
.lv .lv-in:focus, .lv .lv-sel:focus {
outline: none; border-color: var(--lv-purple);
box-shadow: 0 0 0 3px rgba(124,58,237,.12);
background: var(--lv-bg-card);
}
.lv .lv-in::placeholder { color: var(--lv-text-muted); opacity: 1; }
.lv .lv-in::-webkit-inner-spin-button,
.lv .lv-in::-webkit-outer-spin-button { -webkit-appearance: none; }
.lv .lv-in[type=number] { -moz-appearance: textfield; }
.lv .lv-field-err { font-size: 13px; color: var(--lv-red); font-weight: 600; margin-top: 4px; display: none; }
.lv .lv-field.has-err .lv-field-err { display: block; }
.lv .lv-field.has-err .lv-in { border-color: var(--lv-red); }
/* Toggle */
.lv .lv-tog { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
@media (max-width: 420px) { .lv .lv-tog { grid-template-columns: 1fr; } }
.lv .lv-opt {
padding: 9px 8px; border: 1.5px solid var(--lv-border);
border-radius: var(--lv-r-sm); text-align: center;
font-size: 13px; font-weight: 600; cursor: pointer;
transition: var(--lv-tr); color: var(--lv-text-sec);
background: var(--lv-bg-input); user-select: none; line-height: 1.4;
}
.lv .lv-opt:hover { border-color: var(--lv-purple); color: var(--lv-purple); background: var(--lv-purple-pale); }
.lv .lv-opt.on { border-color: var(--lv-purple); background: var(--lv-purple-pale); color: var(--lv-purple); }
/* ═══════════════════════════════════════════
BUTTON
════════════════════════════════════════════ */
.lv .lv-btn {
width: 100%; padding: 13px;
background: linear-gradient(135deg, #7c3aed, #0891b2);
color: #fff; border: none; border-radius: var(--lv-r-sm);
font-size: 16px; font-weight: 800; font-family: 'Tajawal', sans-serif;
cursor: pointer; margin-top: 10px; transition: var(--lv-tr);
letter-spacing: .3px;
}
.lv .lv-btn:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(124,58,237,.35); }
.lv .lv-btn:active { transform: translateY(0); }
.lv .lv-btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
/* ═══════════════════════════════════════════
RESULTS
════════════════════════════════════════════ */
.lv .lv-net {
background: linear-gradient(135deg, #7c3aed, #0891b2);
border-radius: var(--lv-r-md); padding: 20px;
text-align: center; margin-bottom: 14px;
position: relative; overflow: hidden;
}
.lv .lv-net::before {
content: ''; position: absolute; top: -30px; left: -30px;
width: 120px; height: 120px;
background: radial-gradient(circle, rgba(255,255,255,.1), transparent 70%);
border-radius: 50%;
}
.lv .lv-net-lbl { font-size: 13px; color: rgba(255,255,255,.85); margin-bottom: 4px; letter-spacing: .5px; }
.lv .lv-net-num { font-size: 2.2rem; font-weight: 900; color: #fff; }
.lv .lv-net-num small { font-size: 14px; font-weight: 500; margin-right: 4px; opacity: .85; }
.lv .lv-net-sub { font-size: 13px; color: rgba(255,255,255,.75); margin-top: 4px; }
.lv .lv-rows { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.lv .lv-row {
display: flex; justify-content: space-between; align-items: center;
padding: 10px 14px; background: var(--lv-bg-page);
border: 1px solid var(--lv-border); border-radius: var(--lv-r-sm);
font-size: 14px; transition: background .15s;
}
.lv .lv-row:hover { background: var(--lv-purple-pale); }
.lv .lv-row .l { color: var(--lv-text-sec); font-weight: 500; }
.lv .lv-row .v { font-weight: 700; color: var(--lv-text-primary); }
.lv .lv-row .v.g { color: var(--lv-green); }
.lv .lv-row .v.p { color: var(--lv-purple); }
.lv .lv-row.tot { border-color: var(--lv-purple-border); background: var(--lv-purple-pale); }
.lv .lv-row.tot .l { color: var(--lv-purple); font-weight: 800; }
.lv .lv-row.tot .v { color: var(--lv-purple); font-size: 15px; }
.lv .lv-note {
background: var(--lv-amber-pale); border: 1px solid rgba(217,119,6,.25);
border-radius: var(--lv-r-sm); padding: 10px 14px;
font-size: 13px; color: var(--lv-amber);
margin-bottom: 10px; font-weight: 600; line-height: 1.6;
}
.lv .lv-shr { display: flex; gap: 7px; }
.lv .lv-shr-btn {
flex: 1; padding: 10px; border: 1.5px solid var(--lv-border);
border-radius: var(--lv-r-sm); background: var(--lv-bg-input);
font-size: 13px; font-weight: 700; font-family: 'Tajawal', sans-serif;
color: var(--lv-text-sec); cursor: pointer; transition: var(--lv-tr);
}
.lv .lv-shr-btn:hover { border-color: var(--lv-purple); color: var(--lv-purple); background: var(--lv-purple-pale); }
.lv .lv-empty {
display: flex; flex-direction: column; align-items: center;
justify-content: center; padding: 40px 16px;
color: var(--lv-text-muted); font-size: 14px;
text-align: center; gap: 8px; height: 100%;
}
.lv .lv-empty-icon { font-size: 2.5rem; opacity: .4; }
/* ═══════════════════════════════════════════
TABLE
════════════════════════════════════════════ */
.lv .lv-tw { overflow-x: auto; margin: 14px 0; border-radius: var(--lv-r-md); box-shadow: var(--lv-shadow-sm); }
.lv .lv-t { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--lv-bg-card); }
.lv .lv-t th { background: var(--lv-bg-page); padding: 11px 14px; text-align: right; color: var(--lv-text-sec); font-weight: 700; border-bottom: 2px solid var(--lv-border); white-space: nowrap; }
.lv .lv-t td { padding: 10px 14px; border-bottom: 1px solid var(--lv-border); color: var(--lv-text-primary); font-size: 14px; }
.lv .lv-t tr:last-child td { border: none; }
.lv .lv-t tbody tr:hover td { background: var(--lv-purple-pale); }
.lv .lv-bk { display: inline-block; padding: 3px 10px; border-radius: 99px; font-size: 12px; font-weight: 800; background: var(--lv-purple-pale); color: var(--lv-purple); white-space: nowrap; }
.lv .lv-bk.tl { background: var(--lv-teal-pale); color: var(--lv-teal); }
.lv .lv-bk.gn { background: var(--lv-green-pale); color: var(--lv-green); }
/* ═══════════════════════════════════════════
PILLS
════════════════════════════════════════════ */
.lv .lv-pills { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }
.lv .lv-pill { font-size: 13px; font-weight: 700; padding: 5px 12px; border-radius: 99px; }
.lv .pp-p { background: var(--lv-purple-pale); color: var(--lv-purple); border: 1px solid var(--lv-purple-border); }
.lv .pp-t { background: var(--lv-teal-pale); color: var(--lv-teal); border: 1px solid rgba(8,145,178,.2); }
.lv .pp-g { background: var(--lv-green-pale); color: var(--lv-green); border: 1px solid rgba(22,163,74,.2); }
.lv .pp-a { background: var(--lv-amber-pale); color: var(--lv-amber); border: 1px solid rgba(217,119,6,.2); }
.lv .pp-r { background: var(--lv-red-pale); color: var(--lv-red); border: 1px solid rgba(220,38,38,.2); }
/* ═══════════════════════════════════════════
TRUSTED LINKS GRID — isolated
════════════════════════════════════════════ */
.lv .lv-trusted-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 16px 0 24px; }
@media (max-width: 580px) { .lv .lv-trusted-grid { grid-template-columns: 1fr; } }
.lv .lv-trusted-card {
display: flex; align-items: flex-start; gap: 12px;
padding: 16px; background: var(--lv-bg-card);
border: 1px solid var(--lv-border); border-radius: var(--lv-r-md);
text-decoration: none; transition: var(--lv-tr);
isolation: isolate; contain: layout style; overflow: hidden;
}
.lv .lv-trusted-card:hover { border-color: var(--lv-purple); box-shadow: var(--lv-shadow-md); transform: translateY(-2px); }
.lv .lv-trusted-card ins, .lv .lv-trusted-card iframe,
.lv .lv-trusted-card div[id^="google_ads"],
.lv .lv-trusted-card .google-auto-placed,
.lv .lv-trusted-card [data-ad-slot] { display: none !important; width: 0 !important; height: 0 !important; }
.lv .lv-trusted-ic { width: 44px; height: 44px; flex-shrink: 0; background: var(--lv-purple-pale); border-radius: var(--lv-r-sm); display: flex; align-items: center; justify-content: center; font-size: 22px; }
.lv .lv-trusted-body { flex: 1; min-width: 0; }
.lv .lv-trusted-title { display: block; font-size: 14px; font-weight: 800; color: var(--lv-text-primary); margin-bottom: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lv .lv-trusted-desc { font-size: 13px; color: var(--lv-text-sec); line-height: 1.6; margin-bottom: 6px; }
.lv .lv-trusted-url { font-size: 12px; font-weight: 700; color: var(--lv-purple); background: var(--lv-purple-pale); padding: 2px 8px; border-radius: 99px; display: inline-block; }
/* ═══════════════════════════════════════════
SCENARIOS GRID
════════════════════════════════════════════ */
.lv .lv-scg { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 14px 0; }
@media (max-width: 540px) { .lv .lv-scg { grid-template-columns: 1fr 1fr; } }
.lv .lv-sc { background: var(--lv-bg-card); border: 1px solid var(--lv-border); border-radius: var(--lv-r-md); padding: 14px; text-align: center; transition: var(--lv-tr); }
.lv .lv-sc:hover { border-color: var(--lv-purple); box-shadow: var(--lv-shadow-md); transform: translateY(-2px); }
.lv .lv-sc-g { font-size: 12px; color: var(--lv-text-muted); margin-bottom: 4px; font-weight: 600; }
.lv .lv-sc-n { font-size: 1.1rem; font-weight: 900; color: var(--lv-purple); margin-bottom: 2px; }
.lv .lv-sc-p { font-size: 12px; color: var(--lv-text-sec); font-weight: 600; }
/* ═══════════════════════════════════════════
E-E-A-T
════════════════════════════════════════════ */
.lv .lv-eeat { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 14px 0; }
@media (max-width: 480px) { .lv .lv-eeat { grid-template-columns: 1fr; } }
.lv .lv-ec { background: var(--lv-bg-card); border: 1px solid var(--lv-border); border-radius: var(--lv-r-md); padding: 18px; transition: var(--lv-tr); }
.lv .lv-ec:hover { box-shadow: var(--lv-shadow-md); border-color: var(--lv-purple-border); }
.lv .lv-ec-i { font-size: 24px; margin-bottom: 8px; }
.lv .lv-ec-t { font-size: 14px; font-weight: 800; color: var(--lv-text-primary); margin-bottom: 6px; }
.lv .lv-ec-p { font-size: 13px; color: var(--lv-text-sec); line-height: 1.7; }
/* ═══════════════════════════════════════════
FAQ
════════════════════════════════════════════ */
.lv .lv-faq { display: flex; flex-direction: column; gap: 8px; margin: 14px 0; }
.lv .lv-fi { background: var(--lv-bg-card); border: 1px solid var(--lv-border); border-radius: var(--lv-r-md); overflow: hidden; transition: border-color .2s; }
.lv .lv-fi:hover { border-color: var(--lv-purple-border); }
.lv .lv-fi.op { border-color: var(--lv-purple-border); }
.lv .lv-fq { padding: 14px 18px; font-size: 15px; font-weight: 700; color: var(--lv-text-primary); cursor: pointer; display: flex; justify-content: space-between; align-items: center; user-select: none; transition: background .15s; }
.lv .lv-fq:hover { background: var(--lv-bg-page); }
.lv .lv-fq::after { content: '+'; font-size: 20px; color: var(--lv-purple); font-weight: 400; flex-shrink: 0; }
.lv .lv-fi.op .lv-fq::after { content: '-'; font-size: 28px; line-height: 1; }
.lv .lv-fa { display: none; padding: 12px 18px 14px; font-size: 14px; color: var(--lv-text-sec); line-height: 1.8; border-top: 1px solid var(--lv-border); }
.lv .lv-fi.op .lv-fa { display: block; animation: lv-fadeIn .2s ease; }
@keyframes lv-fadeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
/* ═══════════════════════════════════════════
CTA
════════════════════════════════════════════ */
.lv .lv-cta {
background: linear-gradient(135deg, #7c3aed, #0891b2);
border-radius: var(--lv-r-lg); padding: 28px 24px;
text-align: center; margin: 28px 0; position: relative; overflow: hidden;
}
.lv .lv-cta::before { content: ''; position: absolute; bottom: -40px; right: -40px; width: 160px; height: 160px; background: radial-gradient(circle, rgba(255,255,255,.08), transparent 70%); border-radius: 50%; }
.lv .lv-cta h2 { color: #fff; font-size: 1.2rem; font-weight: 900; margin: 0 0 8px; }
.lv .lv-cta p { color: rgba(255,255,255,.85); font-size: 14px; margin: 0 0 18px; }
.lv .lv-cta a { display: inline-block; background: #fff; color: #7c3aed; padding: 12px 28px; border-radius: var(--lv-r-sm); font-size: 14px; font-weight: 800; font-family: 'Tajawal', sans-serif; text-decoration: none; box-shadow: 0 4px 16px rgba(0,0,0,.2); transition: var(--lv-tr); }
.lv .lv-cta a:hover { transform: translateY(-2px); box-shadow: 0 6px 22px rgba(0,0,0,.25); }
/* ═══════════════════════════════════════════
FOOTER DISCLAIMER
════════════════════════════════════════════ */
.lv .lv-disc {
color: var(--lv-text-muted); font-size: 13px; line-height: 1.7;
margin-top: 16px; text-align: center; padding: 14px 16px;
background: var(--lv-bg-card);
border-radius: var(--lv-r-sm);
border: 1px solid var(--lv-border);
}
/* ═══════════════════════════════════════════
TOAST
════════════════════════════════════════════ */
.lv-toast {
position: fixed; bottom: 24px; left: 50%;
transform: translateX(-50%) translateY(20px);
background: var(--lv-text-primary); color: var(--lv-bg-page);
padding: 10px 22px; border-radius: 99px;
font-size: 14px; font-weight: 700; font-family: 'Tajawal', sans-serif;
box-shadow: var(--lv-shadow-lg);
opacity: 0; transition: all .3s ease; pointer-events: none;
z-index: 9999; white-space: nowrap;
}
.lv-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
@media print {
.lv .lv-btn, .lv .lv-shr, .lv .lv-cta, .lv .lv-hero { display: none !important; }
.lv .lv-calc { box-shadow: none; border: 1px solid #ccc; }
}
.lv :focus-visible { outline: 2px solid var(--lv-purple); outline-offset: 2px; border-radius: 4px; }
</style>
<!-- ═══════════════════════════════════════════
HTML
════════════════════════════════════════════ -->
<div class="lv">
<!-- HERO -->
<div class="lv-hero" role="banner">
<div class="lv-hero-ov">
<div class="lv-badge">🇪🇬 محدّث لقانون العمل 2026</div>
<h2>حاسبة الإجازات والعمل الإضافي في مصر 2026</h2>
<p>احسب رصيد إجازاتك ومستحقاتها المالية وأجر العمل الإضافي — مجاناً وفق قانون العمل رقم 14 لسنة 2025</p>
</div>
</div>
<span><a name="more"></a></span>
<!-- SISTER TOOLS -->
<div class="lv-tools" role="navigation" aria-label="أدوات ذات صلة">
<a aria-label="حاسبة الراتب الصافي في مصر" class="lv-tool" href="https://www.wzaeif.com/egypt-net-salary-calculator" rel="noopener">
<div class="lv-tool-ic">💰</div>
<div class="lv-tool-body">
<span class="lv-tool-title">حاسبة الراتب الصافي</span>
<span class="lv-tool-desc">بعد الضرائب والتأمينات</span>
</div>
</a>
<a aria-label="حاسبة مكافأة نهاية الخدمة في مصر" class="lv-tool" href="https://www.wzaeif.com/2026/03/egypt-end-of-service-calculator.html" rel="noopener">
<div class="lv-tool-ic">🏦</div>
<div class="lv-tool-body">
<span class="lv-tool-title">حاسبة نهاية الخدمة</span>
<span class="lv-tool-desc">مكافأة ترك العمل</span>
</div>
</a>
</div>
<!-- DISCLAIMER — استرشادية -->
<div class="lv-disclaimer" role="note" aria-label="تنبيه مهم">
<strong>⚠️ تنبيه مهم — هذه الأداة للاسترشاد فقط:</strong> النتائج المعروضة تقديرية استرشادية مبنية على قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025. <strong>لا تُعدّ هذه الأداة مرجعاً قانونياً ولا تُغني عن استشارة محامٍ أو متخصص في قانون العمل</strong>، ولا تتحمل wzaeif.com أي مسؤولية قانونية أو مالية تترتب على الاعتماد على هذه النتائج في اتخاذ قرارات. يتفاوت الحساب الفعلي بحسب العقد وسياسة الشركة والقطاع والمحكمة المختصة.
</div>
<!-- INTRO -->
<div class="lv-intro" role="note">
كثير من الموظفين لا يعرفون <strong>كم يوم إجازة يستحقونه فعلاً</strong> ولا كيف تُحسب قيمتها المالية عند الصرف أو الترك. وكذلك يجهل كثيرون أن <strong>العمل الإضافي له نسب قانونية محددة</strong> لا يجوز النزول عنها. هذه الأداة المجانية تعطيك أرقاماً استرشادية دقيقة في ثوانٍ وفق <strong>قانون العمل المصري رقم 14 لسنة 2025</strong> الساري من سبتمبر 2025 والذي ألغى قانون 2003.
</div>
<!-- LEGAL BOX -->
<div class="lv-legal" role="note" aria-label="المرجع القانوني">
<strong>📋 المرجع القانوني — الحاسبة مبنية على هذه التشريعات:</strong>
<div class="lv-legal-grid">
<div class="lv-legal-item">
<strong>قانون العمل رقم 14 لسنة 2025 — الساري</strong>
صدر في 3 مايو 2025 ونُشر في الجريدة الرسمية، وبدأ سريانه في <strong>1 سبتمبر 2025</strong>، وبموجبه أُلغي قانون 2003 بالكامل. ينظّم الإجازات في المواد 124–133 والعمل الإضافي في المواد 134–139.
</div>
<div class="lv-legal-item">
<strong>قرارات وزارة العمل 2026</strong>
<a href="https://www.mol.gov.eg" rel="noopener noreferrer" target="_blank">وزارة العمل المصرية</a> تُصدر قرارات دورية بشأن الحد الأدنى للأجور وساعات العمل — الحد الأدنى الساري حالياً 6,000 ج.م شهرياً للقطاع الخاص.
</div>
</div>
</div>
<!-- ═══ CALCULATOR — TABS ═══ -->
<h2 class="lv-h2">🧮 الحاسبة — اختر الأداة</h2>
<p class="lv-p">اضغط على الأداة التي تريدها واحسب مستحقاتك فوراً:</p>
<!-- TABS NAV -->
<div class="lv-tabs" role="tablist" aria-label="اختر الحاسبة">
<button class="lv-tab on" role="tab" aria-selected="true" aria-controls="pane-leave" id="tab-leave" onclick="lvTab('leave')">
🏖️ حاسبة الإجازات السنوية
</button>
<button class="lv-tab" role="tab" aria-selected="false" aria-controls="pane-ot" id="tab-ot" onclick="lvTab('ot')">
⏰ حاسبة العمل الإضافي
</button>
</div>
<!-- CALC CARD -->
<div class="lv-calc" role="region" aria-label="حاسبة الإجازات والعمل الإضافي">
<div class="lv-calc-bd">
<!-- ══════════ PANE 1: LEAVE ══════════ -->
<div class="lv-pane on" id="pane-leave" role="tabpanel" aria-labelledby="tab-leave">
<div class="lv-g2">
<!-- LEFT: INPUTS -->
<div role="form" aria-label="نموذج حساب الإجازة">
<div class="lv-field" id="lv-f-salary">
<label class="lv-lbl">الراتب الأساسي الشهري <span style="color:var(--lv-red)">*</span></label>
<div class="lv-iw">
<input id="lv-salary" class="lv-in" type="number" placeholder="مثال: 8000" min="1" max="10000000" autocomplete="off" aria-required="true" aria-describedby="lv-err-salary" />
<em aria-hidden="true">ج.م</em>
</div>
<div class="lv-field-err" id="lv-err-salary" role="alert">الراتب الأساسي مطلوب</div>
</div>
<div class="lv-field" id="lv-f-years">
<label class="lv-lbl">سنوات الخدمة الإجمالية <span style="color:var(--lv-red)">*</span></label>
<div class="lv-iw">
<input id="lv-years" class="lv-in" type="number" placeholder="مثال: 5" min="0" max="50" step="0.5" autocomplete="off" aria-required="true" aria-describedby="lv-err-years" />
<em aria-hidden="true">سنة</em>
</div>
<div class="lv-field-err" id="lv-err-years" role="alert">سنوات الخدمة مطلوبة — اكتب 0 للموظف الجديد</div>
<div class="lv-hint">اكتب 0 لأقل من سنة · 0.5 لستة أشهر · المجموع لدى جميع أصحاب العمل</div>
</div>
<div class="lv-field">
<label class="lv-lbl">العمر الحالي</label>
<div class="lv-iw">
<input id="lv-age" class="lv-in" type="number" placeholder="مثال: 35" min="18" max="70" autocomplete="off" />
<em aria-hidden="true">سنة</em>
</div>
<div class="lv-hint">يؤثر في المستحق — من تجاوز 50 عاماً يستحق 30 يوماً</div>
</div>
<div class="lv-field">
<label class="lv-lbl">أيام الإجازة المستخدمة هذا العام</label>
<div class="lv-iw">
<input id="lv-used" class="lv-in" type="number" placeholder="0" min="0" max="365" autocomplete="off" value="0" />
<em aria-hidden="true">يوم</em>
</div>
</div>
<div class="lv-field">
<label class="lv-lbl">رصيد الإجازات المتراكمة من سنوات سابقة</label>
<div class="lv-iw">
<input id="lv-balance" class="lv-in" type="number" placeholder="0" min="0" max="365" autocomplete="off" value="0" />
<em aria-hidden="true">يوم</em>
</div>
</div>
<div class="lv-field">
<label class="lv-lbl" id="lv-lbl-wdays">أيام العمل الأسبوعية</label>
<div class="lv-tog" role="radiogroup" aria-labelledby="lv-lbl-wdays">
<div class="lv-opt" data-v="5" role="radio" aria-checked="false" tabindex="0" onclick="lvOpt(this,'wdays')" onkeydown="lvKOpt(event,this,'wdays')">5 أيام</div>
<div class="lv-opt on" data-v="6" role="radio" aria-checked="true" tabindex="0" onclick="lvOpt(this,'wdays')" onkeydown="lvKOpt(event,this,'wdays')">6 أيام</div>
<div class="lv-opt" data-v="7" role="radio" aria-checked="false" tabindex="0" onclick="lvOpt(this,'wdays')" onkeydown="lvKOpt(event,this,'wdays')">7 أيام</div>
</div>
</div>
<button class="lv-btn" id="lv-leave-btn" onclick="lvCalcLeave()" aria-label="احسب مستحقات الإجازة">
🏖️ احسب مستحقات الإجازة
</button>
</div>
<!-- RIGHT: RESULTS -->
<div id="lv-leave-res" aria-live="polite" aria-atomic="true">
<div class="lv-empty">
<div class="lv-empty-icon">📅</div>
<div>أدخل بيانات خدمتك واضغط احسب</div>
</div>
</div>
</div>
</div>
<!-- ══════════ PANE 2: OVERTIME ══════════ -->
<div class="lv-pane" id="pane-ot" role="tabpanel" aria-labelledby="tab-ot">
<div class="lv-g2">
<!-- LEFT: INPUTS -->
<div role="form" aria-label="نموذج حساب العمل الإضافي">
<div class="lv-field" id="lv-f-bsalary">
<label class="lv-lbl">الراتب الأساسي الشهري <span style="color:var(--lv-red)">*</span></label>
<div class="lv-iw">
<input id="lv-bsalary" class="lv-in" type="number" placeholder="مثال: 8000" min="1" max="10000000" autocomplete="off" aria-required="true" aria-describedby="lv-err-bsalary" />
<em aria-hidden="true">ج.م</em>
</div>
<div class="lv-field-err" id="lv-err-bsalary" role="alert">الراتب الأساسي مطلوب</div>
<div class="lv-hint">يُحسب الإضافي على الأساسي فقط وفق قانون العمل</div>
</div>
<div class="lv-field" id="lv-f-ot-hrs">
<label class="lv-lbl">ساعات العمل الإضافي في الأيام العادية <span style="color:var(--lv-red)">*</span></label>
<div class="lv-iw">
<input id="lv-ot-hrs" class="lv-in" type="number" placeholder="مثال: 10" min="0" max="300" autocomplete="off" aria-required="true" aria-describedby="lv-err-ot" value="0" />
<em aria-hidden="true">ساعة</em>
</div>
<div class="lv-field-err" id="lv-err-ot" role="alert">أدخل عدد ساعات الإضافي</div>
<div class="lv-hint">في الشهر — نسبة +25% من أجر الساعة (ساعات النهار)</div>
</div>
<div class="lv-field">
<label class="lv-lbl">ساعات العمل الإضافي الليلية أو في الراحة الأسبوعية</label>
<div class="lv-iw">
<input id="lv-ot-hol" class="lv-in" type="number" placeholder="0" min="0" max="300" autocomplete="off" value="0" />
<em aria-hidden="true">ساعة</em>
</div>
<div class="lv-hint">نسبة +70% ليلاً · في الراحة الأسبوعية: مثلا الأجر + يوم بديل (المادة 121)</div>
</div>
<div class="lv-field">
<label class="lv-lbl" id="lv-lbl-workhrs">ساعات العمل اليومية الرسمية</label>
<div class="lv-tog" role="radiogroup" aria-labelledby="lv-lbl-workhrs">
<div class="lv-opt" data-v="7" role="radio" aria-checked="false" tabindex="0" onclick="lvOpt(this,'workhrs')" onkeydown="lvKOpt(event,this,'workhrs')">7 ساعات</div>
<div class="lv-opt on" data-v="8" role="radio" aria-checked="true" tabindex="0" onclick="lvOpt(this,'workhrs')" onkeydown="lvKOpt(event,this,'workhrs')">8 ساعات</div>
<div class="lv-opt" data-v="9" role="radio" aria-checked="false" tabindex="0" onclick="lvOpt(this,'workhrs')" onkeydown="lvKOpt(event,this,'workhrs')">9 ساعات</div>
</div>
</div>
<div class="lv-field">
<label class="lv-lbl" id="lv-lbl-wdays2">أيام العمل الشهرية</label>
<div class="lv-tog" role="radiogroup" aria-labelledby="lv-lbl-wdays2">
<div class="lv-opt" data-v="22" role="radio" aria-checked="false" tabindex="0" onclick="lvOpt(this,'mdays')" onkeydown="lvKOpt(event,this,'mdays')">22 يوم</div>
<div class="lv-opt on" data-v="24" role="radio" aria-checked="true" tabindex="0" onclick="lvOpt(this,'mdays')" onkeydown="lvKOpt(event,this,'mdays')">24 يوم</div>
<div class="lv-opt" data-v="26" role="radio" aria-checked="false" tabindex="0" onclick="lvOpt(this,'mdays')" onkeydown="lvKOpt(event,this,'mdays')">26 يوم</div>
</div>
</div>
<button class="lv-btn" id="lv-ot-btn" onclick="lvCalcOT()" aria-label="احسب أجر العمل الإضافي">
⏰ احسب أجر العمل الإضافي
</button>
</div>
<!-- RIGHT: RESULTS -->
<div id="lv-ot-res" aria-live="polite" aria-atomic="true">
<div class="lv-empty">
<div class="lv-empty-icon">⏱️</div>
<div>أدخل بيانات راتبك وساعات الإضافي</div>
</div>
</div>
</div>
</div>
</div><!-- /.lv-calc-bd -->
</div><!-- /.lv-calc -->
<!-- ═══ LEAVE ENTITLEMENT TABLE ═══ -->
<h2 class="lv-h2">📊 جدول استحقاق الإجازة السنوية</h2>
<p class="lv-p">
وفق <strong>المادة 124 من قانون العمل رقم 14 لسنة 2025</strong> الساري من سبتمبر 2025، الإجازة السنوية بأيام العمل الفعلية كالتالي:
</p>
<div class="lv-tw" role="region" aria-label="جدول استحقاق الإجازة السنوية">
<table class="lv-t">
<thead>
<tr>
<th scope="col">الحالة</th>
<th scope="col">الاستحقاق السنوي</th>
<th scope="col">ملاحظة</th>
</tr>
</thead>
<tbody>
<tr><td>السنة الأولى (بعد 6 أشهر)</td><td><span class="lv-bk">15 يوم عمل</span></td><td>يُحسب بالتناسب مع المدة</td></tr>
<tr><td>اعتباراً من السنة الثانية</td><td><span class="lv-bk">21 يوم عمل</span></td><td>للقطاعين الخاص والعام</td></tr>
<tr><td>10 سنوات خدمة فأكثر</td><td><span class="lv-bk gn">30 يوم عمل</span></td><td>لدى صاحب عمل واحد أو أكثر</td></tr>
<tr><td>من تجاوز 50 عاماً</td><td><span class="lv-bk gn">30 يوم عمل</span></td><td>بصرف النظر عن مدة الخدمة</td></tr>
<tr><td>ذوو الإعاقة والأقزام</td><td><span class="lv-bk tl">45 يوم عمل</span></td><td>تمييز إيجابي مقرر بالقانون</td></tr>
<tr><td>الأعمال الخطرة/المناطق النائية</td><td><span class="lv-bk tl">+ 7 أيام إضافية</span></td><td>بقرار من الوزير المختص</td></tr>
</tbody>
</table>
</div>
<div class="lv-pills">
<span class="lv-pill pp-p">أيام الراحة الأسبوعية لا تُحتسب</span>
<span class="lv-pill pp-t">العطلات الرسمية لا تُحتسب</span>
<span class="lv-pill pp-a">تسوية الرصيد أو صرف بدله كل 3 سنوات</span>
<span class="lv-pill pp-g">يحق صرف المتبقي نقداً عند الترك</span>
<span class="lv-pill pp-r">لا يجوز التنازل عن الإجازة — وإلا سقط بدلها</span>
<span class="lv-pill pp-p">6 أيام متصلة على الأقل في كل مرة</span>
</div>
<!-- ═══ OVERTIME TABLE ═══ -->
<h2 class="lv-h2">⏰ نسب العمل الإضافي وفق القانون</h2>
<p class="lv-p">
<strong>قانون العمل رقم 14 لسنة 2025</strong> حدد نسب العمل الإضافي وفق الفترة الزمنية — وهو تغيير جوهري عن القانون القديم:
</p>
<div class="lv-tw" role="region" aria-label="جدول نسب العمل الإضافي">
<table class="lv-t">
<thead>
<tr>
<th scope="col">نوع الوقت الإضافي</th>
<th scope="col">النسبة القانونية</th>
<th scope="col">الأساس</th>
</tr>
</thead>
<tbody>
<tr><td>ساعات إضافية نهارية</td><td><span class="lv-bk">+25% = 125% إجمالاً</span></td><td>على أساس أجر الساعة</td></tr>
<tr><td>ساعات إضافية ليلية</td><td><span class="lv-bk tl">+70% = 170% إجمالاً</span></td><td>على أساس أجر الساعة</td></tr>
<tr><td>العمل في يوم الراحة الأسبوعية</td><td><span class="lv-bk tl">مثلا الأجر + يوم بديل</span></td><td>إلزامي — خلال الأسبوع التالي</td></tr>
<tr><td>العمل الفعلي اليومي</td><td><span class="lv-bk">8 ساعات / 48 أسبوعياً</span></td><td>المادة 117 — لا تشمل الراحة</td></tr>
<tr><td>الحد الأقصى للتواجد اليومي</td><td><span class="lv-bk gn">12 ساعة في جميع الأحوال</span></td><td>نص صريح في قانون الإضافي</td></tr>
</tbody>
</table>
</div>
<p class="lv-p"><strong>كيف يُحسب أجر الساعة الأساسي؟</strong> الراتب الأساسي ÷ (أيام العمل الشهرية × ساعات العمل اليومية). مثال: راتب 8,000 ج.م ÷ (24 يوم × 8 ساعات) = <strong>41.67 ج.م للساعة</strong> × 125% = <strong>52.08 ج.م للساعة الإضافية النهارية</strong>، أو × 170% = <strong>70.83 ج.م للساعة الإضافية الليلية</strong>.</p>
<!-- ═══ SCENARIOS ═══ -->
<h2 class="lv-h2">💡 أمثلة عملية</h2>
<div class="lv-scg" role="list" aria-label="أمثلة على مستحقات الإجازة">
<div class="lv-sc" role="listitem">
<div class="lv-sc-g">راتب 5,000 · 3 سنوات</div>
<div class="lv-sc-n">21 يوم</div>
<div class="lv-sc-p">قيمة: ~3,500 ج.م</div>
</div>
<div class="lv-sc" role="listitem">
<div class="lv-sc-g">راتب 10,000 · 7 سنوات</div>
<div class="lv-sc-n">21 يوم</div>
<div class="lv-sc-p">قيمة: ~7,000 ج.م</div>
</div>
<div class="lv-sc" role="listitem">
<div class="lv-sc-g">راتب 10,000 · 12 سنة</div>
<div class="lv-sc-n">30 يوم</div>
<div class="lv-sc-p">قيمة: ~10,000 ج.م</div>
</div>
<div class="lv-sc" role="listitem">
<div class="lv-sc-g">راتب 6,000 · 20 ساعة نهاري</div>
<div class="lv-sc-n">~781 ج.م</div>
<div class="lv-sc-p">بنسبة 125% نهار</div>
</div>
<div class="lv-sc" role="listitem">
<div class="lv-sc-g">راتب 8,000 · 10 ساعات ليلية</div>
<div class="lv-sc-n">~708 ج.م</div>
<div class="lv-sc-p">بنسبة 170% ليل</div>
</div>
<div class="lv-sc" role="listitem">
<div class="lv-sc-g">راتب 15,000 · رصيد 45 يوم</div>
<div class="lv-sc-n">~22,500 ج.م</div>
<div class="lv-sc-p">عند انتهاء الخدمة</div>
</div>
</div>
<!-- ═══ TRUSTED LINKS ═══ -->
<h2 class="lv-h2">🔗 مصادر رسمية وموثوقة</h2>
<p class="lv-p">للاطلاع على النصوص القانونية الكاملة وأحدث القرارات الوزارية:</p>
<div class="lv-trusted-grid" role="list" aria-label="روابط مصادر رسمية">
<a class="lv-trusted-card" href="https://www.mol.gov.eg" rel="noopener noreferrer" role="listitem" target="_blank">
<div class="lv-trusted-ic">⚖️</div>
<div class="lv-trusted-body">
<span class="lv-trusted-title">وزارة العمل المصرية</span>
<span class="lv-trusted-desc">الجهة الرسمية المشرفة على تطبيق قانون العمل — شكاوى العمال والحد الأدنى للأجور</span>
<span class="lv-trusted-url">mol.gov.eg</span>
</div>
</a>
<a class="lv-trusted-card" href="https://manshurat.org/node/14677" rel="noopener noreferrer" role="listitem" target="_blank">
<div class="lv-trusted-ic">📄</div>
<div class="lv-trusted-body">
<span class="lv-trusted-title">قانون العمل رقم 14 لسنة 2025</span>
<span class="lv-trusted-desc">النص القانوني الكامل للقانون الجديد الساري من سبتمبر 2025 — الإجازات وساعات العمل والإضافي</span>
<span class="lv-trusted-url">manshurat.org</span>
</div>
</a>
<a class="lv-trusted-card" href="https://www.nsi.gov.eg" rel="noopener noreferrer" role="listitem" target="_blank">
<div class="lv-trusted-ic">🛡️</div>
<div class="lv-trusted-body">
<span class="lv-trusted-title">الهيئة القومية للتأمين الاجتماعي</span>
<span class="lv-trusted-desc">حقوق المؤمَّن عليهم عند انتهاء الخدمة وحساب مدد الاشتراك</span>
<span class="lv-trusted-url">nsi.gov.eg</span>
</div>
</a>
<a class="lv-trusted-card" href="https://www.wzaeif.com/2026/03/egypt-end-of-service-calculator.html" rel="noopener" role="listitem">
<div class="lv-trusted-ic">🏦</div>
<div class="lv-trusted-body">
<span class="lv-trusted-title">حاسبة مكافأة نهاية الخدمة</span>
<span class="lv-trusted-desc">احسب مكافأتك الكاملة عند ترك العمل — wzaeif.com</span>
<span class="lv-trusted-url">wzaeif.com</span>
</div>
</a>
</div>
<!-- ═══ E-E-A-T ═══ -->
<h2 class="lv-h2">🏆 لماذا تثق بمعلومات wzaeif.com؟</h2>
<div class="lv-eeat">
<div class="lv-ec"><div class="lv-ec-i" aria-hidden="true">⚖️</div><div class="lv-ec-t">مصادر قانونية رسمية</div><div class="lv-ec-p">الحاسبة مبنية على قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025 — أحدث تشريع عمالي في مصر.</div></div>
<div class="lv-ec"><div class="lv-ec-i" aria-hidden="true">📅</div><div class="lv-ec-t">خبرة سوق العمل المصري</div><div class="lv-ec-p">wzaeif.com يرصد آلاف الوظائف يومياً ويعرف هيكل الرواتب والمزايا الفعلية في السوق.</div></div>
<div class="lv-ec"><div class="lv-ec-i" aria-hidden="true">🔄</div><div class="lv-ec-t">تحديث مستمر</div><div class="lv-ec-p">نُحدِّث الأدوات فور صدور أي قرارات وزارية أو تعديلات قانونية.</div></div>
<div class="lv-ec"><div class="lv-ec-i" aria-hidden="true">⚠️</div><div class="lv-ec-t">شفافية كاملة</div><div class="lv-ec-p">نُوضح دائماً أن الأرقام استرشادية ولا تُغني عن الاستشارة القانونية المتخصصة.</div></div>
</div>
<!-- ═══ FAQ ═══ -->
<h2 class="lv-h2">❓ أسئلة شائعة</h2>
<div class="lv-faq" role="list">
<div class="lv-fi op" role="listitem">
<div class="lv-fq" role="button" tabindex="0" aria-expanded="true" onclick="lvFaq(this)" onkeydown="lvKFaq(event,this)">كم يوم إجازة يستحق الموظف في مصر سنوياً؟</div>
<div class="lv-fa" role="region">وفق المادة 124 من قانون العمل رقم 14 لسنة 2025: <strong>15 يوماً في السنة الأولى</strong> (بعد 6 أشهر خدمة)، و<strong>21 يوماً من السنة الثانية</strong>، و<strong>30 يوماً</strong> لمن أمضى 10 سنوات فأكثر أو تجاوز سن الخمسين، و<strong>45 يوماً</strong> لذوي الإعاقة والأقزام. الأيام بأيام العمل الفعلي — الراحة الأسبوعية والإجازات الرسمية لا تُحتسب.</div>
</div>
<div class="lv-fi" role="listitem">
<div class="lv-fq" role="button" tabindex="0" aria-expanded="false" onclick="lvFaq(this)" onkeydown="lvKFaq(event,this)">كيف يُحسب أجر ساعة العمل الإضافي؟</div>
<div class="lv-fa" role="region">أجر الساعة الأساسي = الراتب الأساسي ÷ (أيام العمل الشهرية × ساعات العمل اليومية). وفق النص الحرفي لقانون العمل 14/2025: <strong>+25% للساعات النهارية (= 125% إجمالاً)</strong> و<strong>+70% للساعات الليلية (= 170% إجمالاً)</strong>. في يوم الراحة الأسبوعية: مثلا الأجر + يوم بديل. <strong>مثال:</strong> راتب 8,000 ÷ (24 × 8) = 41.67 ج.م للساعة × 125% = 52.08 ج.م للساعة الإضافية النهارية.</div>
</div>
<div class="lv-fi" role="listitem">
<div class="lv-fq" role="button" tabindex="0" aria-expanded="false" onclick="lvFaq(this)" onkeydown="lvKFaq(event,this)">هل يحق صرف رصيد الإجازات نقداً؟</div>
<div class="lv-fa" role="region">نعم، عند انتهاء عقد العمل يحق للموظف المطالبة بالمقابل النقدي لرصيد الإجازات غير المستخدم. كما يلزم <strong>قانون العمل رقم 14 لسنة 2025</strong> صاحب العمل بتسوية الرصيد أو صرف بدله المالي <strong>كل 3 سنوات على الأكثر</strong> دون انتظار انتهاء العقد.</div>
</div>
<div class="lv-fi" role="listitem">
<div class="lv-fq" role="button" tabindex="0" aria-expanded="false" onclick="lvFaq(this)" onkeydown="lvKFaq(event,this)">ما الحد الأقصى للعمل الإضافي اليومي؟</div>
<div class="lv-fa" role="region">وفق قانون العمل رقم 14 لسنة 2025، ساعات العمل الفعلية <strong>8 ساعات يومياً أو 48 أسبوعياً</strong> (لا تشمل فترات الراحة والطعام). وبنص المادة الخاصة بالعمل الإضافي: <strong>لا تزيد ساعات وجود العامل بالمنشأة على 12 ساعة في جميع الأحوال</strong>. وتشير المادة 119 إلى أن الفترة بين بداية العمل ونهايتها لا تتجاوز 10 ساعات للعمل العادي غير الإضافي، مع استثناء الأعمال ذات الطبيعة الخاصة.</div>
</div>
<div class="lv-fi" role="listitem">
<div class="lv-fq" role="button" tabindex="0" aria-expanded="false" onclick="lvFaq(this)" onkeydown="lvKFaq(event,this)">هل يسري قانون العمل على الحكومة؟</div>
<div class="lv-fa" role="region">لا، قانون العمل رقم 14 لسنة 2025 يسري بصفة أساسية على العاملين في <strong>القطاع الخاص وقطاع الأعمال العام</strong>. موظفو الحكومة (الجهاز الإداري للدولة) يخضعون لقانون الخدمة المدنية رقم 81 لسنة 2016 الذي له أحكام مختلفة — إجازة الموظف الحكومي مثلاً 45 يوماً سنوياً وفق قانون الخدمة المدنية.</div>
</div>
<div class="lv-fi" role="listitem">
<div class="lv-fq" role="button" tabindex="0" aria-expanded="false" onclick="lvFaq(this)" onkeydown="lvKFaq(event,this)">هل يمكن تراكم الإجازات؟ ومتى يلتزم صاحب العمل بتسويتها؟</div>
<div class="lv-fa" role="region">وفق قانون العمل رقم 14 لسنة 2025، يلتزم صاحب العمل بتسوية رصيد الإجازات أو صرف بدله المالي <strong>كل 3 سنوات على الأكثر</strong>. لا يجوز لصاحب العمل حرمان العامل من إجازته أو إلغاؤها إلا في حالات استثنائية، وفي حالة الحرمان يظل العامل محتفظاً بحقه في البدل المالي كاملاً بصرف النظر عن مرور المدة.</div>
</div>
</div>
<!-- ═══ CTA ═══ -->
<div class="lv-cta" role="complementary">
<h2>ابحث عن وظيفة بمزايا أفضل الآن 🚀</h2>
<p>آلاف الوظائف من كبرى الشركات في مصر — محدَّثة يومياً</p>
<a aria-label="عرض أحدث الوظائف على wzaeif.com" href="https://www.wzaeif.com/" rel="noopener">عرض أحدث الوظائف</a>
</div>
<!-- FOOTER DISCLAIMER -->
<div class="lv-disc" role="note">
⚠️ <strong>إخلاء مسؤولية قانونية:</strong> جميع النتائج المعروضة في هذه الأداة هي <strong>أرقام استرشادية تقديرية فقط</strong>، مبنية على قانون العمل رقم 14 لسنة 2025 الساري من سبتمبر 2025 وقانون الخدمة المدنية رقم 81 لسنة 2016. <strong>لا تُعدّ هذه الأداة مرجعاً قانونياً ملزماً</strong>، ولا تُشكّل استشارة قانونية أو مالية أو عمالية، ولا تتحمل wzaeif.com أي مسؤولية قانونية أو مالية أو أدبية تترتب على الاعتماد على هذه الأرقام في أي قرار. يختلف الحساب الفعلي بحسب نص العقد الفردي وسياسة الشركة والقطاع والجهة القضائية المختصة. استشر محامياً أو متخصصاً في قانون العمل للحصول على رأي قانوني دقيق.
</div>
</div><!-- /.lv -->
<!-- TOAST -->
<div id="lv-toast" class="lv-toast" role="status" aria-live="polite"></div>
<!-- ═══════════════════════════════════════════
JAVASCRIPT
════════════════════════════════════════════ -->
<script>
(function () {
'use strict';
/* ── state ── */
var LV_WDAYS = 6; /* أيام عمل أسبوعية */
var LV_WORKHRS = 8; /* ساعات عمل يومية */
var LV_MDAYS = 24; /* أيام عمل شهرية */
/* ── utils ── */
function fN(n) {
var r = Math.round(n * 100) / 100;
try { return r.toLocaleString('ar-EG'); } catch (e) { return r.toLocaleString(); }
}
function fI(n) {
try { return Math.round(n).toLocaleString('ar-EG'); } catch (e) { return Math.round(n).toLocaleString(); }
}
function gV(id) {
var el = document.getElementById(id);
if (!el) return 0;
var v = parseFloat(el.value);
return (isNaN(v) || v < 0) ? 0 : v;
}
function toast(msg, ms) {
var t = document.getElementById('lv-toast');
if (!t) return;
t.textContent = msg;
t.classList.add('show');
setTimeout(function () { t.classList.remove('show'); }, ms || 2500);
}
function animNum(el, target, ms) {
if (!el || !window.requestAnimationFrame) { if (el) el.textContent = fI(target); return; }
var start = null, d = ms || 450;
(function step(ts) {
if (!start) start = ts;
var p = Math.min((ts - start) / d, 1);
var e = 1 - Math.pow(1 - p, 3);
el.textContent = fI(Math.round(e * target));
if (p < 1) requestAnimationFrame(step);
})(performance.now());
}
/* ── tabs ── */
window.lvTab = function (id) {
['leave', 'ot'].forEach(function (k) {
var tab = document.getElementById('tab-' + k);
var pane = document.getElementById('pane-' + k);
var on = (k === id);
tab.classList.toggle('on', on);
tab.setAttribute('aria-selected', String(on));
pane.classList.toggle('on', on);
});
};
/* ── toggle option groups ── */
window.lvOpt = function (el, group) {
var parent = el.closest('.lv-tog');
parent.querySelectorAll('.lv-opt').forEach(function (o) {
o.classList.remove('on');
o.setAttribute('aria-checked', 'false');
});
el.classList.add('on');
el.setAttribute('aria-checked', 'true');
var v = parseInt(el.getAttribute('data-v'), 10);
if (group === 'wdays') LV_WDAYS = v;
if (group === 'workhrs') LV_WORKHRS = v;
if (group === 'mdays') LV_MDAYS = v;
};
window.lvKOpt = function (e, el, group) {
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); lvOpt(el, group); }
};
/* ── validation helpers ── */
function reqField(fieldId, inputId, errId) {
var f = document.getElementById(fieldId);
var i = document.getElementById(inputId);
var v = parseFloat(i.value);
f.classList.remove('has-err');
if (!i.value || isNaN(v) || v <= 0) {
f.classList.add('has-err');
i.setAttribute('aria-invalid', 'true');
return false;
}
i.setAttribute('aria-invalid', 'false');
return true;
}
/* ── LEAVE CALCULATOR ── */
function validateLeave() {
var ok = reqField('lv-f-salary', 'lv-salary', 'lv-err-salary');
/* years يقبل الصفر — الموظف الجديد */
var yEl = document.getElementById('lv-years');
var yF = document.getElementById('lv-f-years');
yF.classList.remove('has-err');
if (yEl.value === '' || isNaN(parseFloat(yEl.value)) || parseFloat(yEl.value) < 0) {
yF.classList.add('has-err');
yEl.setAttribute('aria-invalid', 'true');
ok = false;
} else {
yEl.setAttribute('aria-invalid', 'false');
}
return ok;
}
window.lvCalcLeave = function () {
if (!validateLeave()) { document.getElementById('lv-salary').focus(); return; }
var btn = document.getElementById('lv-leave-btn');
btn.disabled = true; btn.textContent = '⏳ جاري الحساب...';
setTimeout(function () {
try { doLeave(); } finally { btn.disabled = false; btn.textContent = '🏖️ احسب مستحقات الإجازة'; }
}, 80);
};
function doLeave() {
var salary = gV('lv-salary');
var years = gV('lv-years');
var age = gV('lv-age') || 30;
var used = gV('lv-used');
var balance = gV('lv-balance');
/* ── استحقاق سنوي وفق قانون 14 لسنة 2025 ──
السنة الأولى: 15 يوم (بعد 6 أشهر)
السنة 2 → 9: 21 يوم
10 سنوات+ أو عمر 50+: 30 يوم
ذوو الإعاقة: 45 يوم (يُدخلها المستخدم بشكل منفصل إن أراد) */
var entitled;
var entitleLabel;
if (years < 1) {
entitled = 15;
entitleLabel = 'السنة الأولى';
} else if (years >= 10 || age >= 50) {
entitled = 30;
entitleLabel = years >= 10 ? '10 سنوات فأكثر' : 'فوق 50 عاماً';
} else {
entitled = 21;
entitleLabel = 'السنة ' + Math.floor(years) + ' (2–9 سنوات)';
}
/* رصيد متبقٍ هذا العام */
var remaining = Math.max(0, entitled - used);
/* رصيد إجمالي */
var totalBalance = remaining + balance;
/* أجر اليوم — الراتب الأساسي ÷ أيام العمل الشهرية الفعلية */
var monthDays = LV_WDAYS === 5 ? 22 : LV_WDAYS === 6 ? 26 : 30;
var dailyWage = salary / monthDays;
/* قيمة المتبقي من هذا العام */
var remainValue = remaining * dailyWage;
/* قيمة الرصيد الكامل لو صُرف نقداً */
var totalValue = totalBalance * dailyWage;
/* store for share */
window._lvLeaveRes = { entitled: entitled, entitleLabel: entitleLabel, used: used, remaining: remaining, balance: balance, totalBalance: totalBalance, dailyWage: dailyWage, remainValue: remainValue, totalValue: totalValue };
renderLeave(window._lvLeaveRes);
}
function renderLeave(d) {
var el = document.getElementById('lv-leave-res');
el.innerHTML =
'<div class="lv-net">' +
'<div class="lv-net-lbl">📅 الرصيد المتبقي هذا العام</div>' +
'<div class="lv-net-num"><span id="lv-lnv">' + fI(d.remaining) + '</span> <small>يوم</small></div>' +
'<div class="lv-net-sub">إجمالي الرصيد المتراكم: ' + fI(d.totalBalance) + ' يوم</div>' +
'</div>' +
'<div class="lv-rows" role="list">' +
'<div class="lv-row" role="listitem"><span class="l">الاستحقاق السنوي (' + d.entitleLabel + ')</span><span class="v p">' + fI(d.entitled) + ' يوم</span></div>' +
'<div class="lv-row" role="listitem"><span class="l">الإجازات المستخدمة</span><span class="v">' + fI(d.used) + ' يوم</span></div>' +
'<div class="lv-row" role="listitem"><span class="l">المتبقي من هذا العام</span><span class="v g">' + fI(d.remaining) + ' يوم</span></div>' +
'<div class="lv-row" role="listitem"><span class="l">رصيد السنوات السابقة</span><span class="v">' + fI(d.balance) + ' يوم</span></div>' +
'<div class="lv-row tot" role="listitem"><span class="l">💰 قيمة المتبقي نقداً</span><span class="v">' + fI(d.remainValue) + ' ج.م</span></div>' +
'<div class="lv-row" role="listitem" style="background:var(--lv-green-pale);border-color:rgba(22,163,74,.2)"><span class="l" style="color:var(--lv-green)">📋 قيمة الرصيد الكامل لو صُرف</span><span class="v" style="color:var(--lv-green)">' + fI(d.totalValue) + ' ج.م</span></div>' +
'</div>' +
'<div class="lv-note">⚠️ أرقام استرشادية — وفق ق.ع. 14/2025. الراتب اليومي: ' + fN(d.dailyWage) + ' ج.م. لذوي الإعاقة الاستحقاق 45 يوماً. قد يختلف الحساب الفعلي حسب عقدك وشركتك.</div>' +
'<div class="lv-shr">' +
'<button class="lv-shr-btn" onclick="lvCopyLeave()">📋 نسخ</button>' +
'<button class="lv-shr-btn" onclick="lvWaLeave()">💬 واتساب</button>' +
'<button class="lv-shr-btn" onclick="window.print()">🖨️ طباعة</button>' +
'</div>';
animNum(document.getElementById('lv-lnv'), d.remaining, 400);
}
/* ── OT CALCULATOR ── */
window.lvCalcOT = function () {
var ok = reqField('lv-f-bsalary', 'lv-bsalary', 'lv-err-bsalary');
var otHrs = gV('lv-ot-hrs');
var otHol = gV('lv-ot-hol');
if (otHrs === 0 && otHol === 0) {
var f = document.getElementById('lv-f-ot-hrs');
f.classList.add('has-err');
document.getElementById('lv-ot-hrs').setAttribute('aria-invalid', 'true');
ok = false;
}
if (!ok) return;
var btn = document.getElementById('lv-ot-btn');
btn.disabled = true; btn.textContent = '⏳ جاري الحساب...';
setTimeout(function () {
try { doOT(); } finally { btn.disabled = false; btn.textContent = '⏰ احسب أجر العمل الإضافي'; }
}, 80);
};
function doOT() {
var basic = gV('lv-bsalary');
var otHrs = gV('lv-ot-hrs');
var otHol = gV('lv-ot-hol');
/* أجر الساعة الأساسي */
var hrRate = basic / (LV_MDAYS * LV_WORKHRS);
/* أجر الإضافي النهاري (+25% وفق ق.ع. 14/2025) */
var otPay = otHrs * hrRate * 1.25;
/* أجر إضافي الليل (+70% وفق ق.ع. 14/2025) */
var holPay = otHol * hrRate * 1.70;
/* الإجمالي */
var totalOT = otPay + holPay;
/* إجمالي الراتب مع الإضافي */
var totalSal = basic + totalOT;
window._lvOTRes = { basic: basic, hrRate: hrRate, otHrs: otHrs, otHol: otHol, otPay: otPay, holPay: holPay, totalOT: totalOT, totalSal: totalSal };
renderOT(window._lvOTRes);
}
function renderOT(d) {
var el = document.getElementById('lv-ot-res');
el.innerHTML =
'<div class="lv-net">' +
'<div class="lv-net-lbl">⏰ إجمالي أجر العمل الإضافي</div>' +
'<div class="lv-net-num"><small>ج.م</small><span id="lv-otnv">' + fI(d.totalOT) + '</span></div>' +
'<div class="lv-net-sub">الراتب مع الإضافي: ' + fI(d.totalSal) + ' ج.م</div>' +
'</div>' +
'<div class="lv-rows" role="list">' +
'<div class="lv-row" role="listitem"><span class="l">أجر الساعة الأساسي</span><span class="v">' + fN(d.hrRate) + ' ج.م</span></div>' +
'<div class="lv-row" role="listitem"><span class="l">إضافي نهاري (' + fI(d.otHrs) + ' ساعة × 125%)</span><span class="v p">' + fI(d.otPay) + ' ج.م</span></div>' +
'<div class="lv-row" role="listitem"><span class="l">إضافي ليلي / راحة أسبوعية (' + fI(d.otHol) + ' ساعة × 170%)</span><span class="v p">' + fI(d.holPay) + ' ج.م</span></div>' +
'<div class="lv-row tot" role="listitem"><span class="l">✅ إجمالي الإضافي</span><span class="v">' + fI(d.totalOT) + ' ج.م</span></div>' +
'<div class="lv-row" role="listitem" style="background:var(--lv-green-pale);border-color:rgba(22,163,74,.2)"><span class="l" style="color:var(--lv-green)">💵 الراتب الإجمالي هذا الشهر</span><span class="v" style="color:var(--lv-green)">' + fI(d.totalSal) + ' ج.م</span></div>' +
'</div>' +
'<div class="lv-note">⚠️ أرقام استرشادية وفق ق.ع. 14/2025: نهار +25% (=125%) · ليل +70% (=170%). في يوم الراحة الأسبوعية: مثلا الأجر + يوم بديل. أجر الساعة = الأساسي ÷ (' + LV_MDAYS + ' × ' + LV_WORKHRS + '). الحساب الفعلي قد يختلف.</div>' +
'<div class="lv-shr">' +
'<button class="lv-shr-btn" onclick="lvCopyOT()">📋 نسخ</button>' +
'<button class="lv-shr-btn" onclick="lvWaOT()">💬 واتساب</button>' +
'<button class="lv-shr-btn" onclick="window.print()">🖨️ طباعة</button>' +
'</div>';
animNum(document.getElementById('lv-otnv'), d.totalOT, 400);
}
/* ── SHARE ── */
function fbCopy(txt) {
var ta = document.createElement('textarea');
ta.value = txt; ta.style.cssText = 'position:fixed;opacity:0';
document.body.appendChild(ta); ta.focus(); ta.select();
try { document.execCommand('copy'); toast('✅ تم النسخ!'); }
catch (e) { toast('❌ لم يتم النسخ'); }
document.body.removeChild(ta);
}
function doCopy(txt) {
if (navigator.clipboard && window.isSecureContext) {
navigator.clipboard.writeText(txt).then(function () { toast('✅ تم النسخ!'); }).catch(function () { fbCopy(txt); });
} else { fbCopy(txt); }
}
window.lvCopyLeave = function () {
var d = window._lvLeaveRes; if (!d) return;
doCopy('حاسبة الإجازات — wzaeif.com\n──────────\nالاستحقاق السنوي: ' + fI(d.entitled) + ' يوم\nالمتبقي: ' + fI(d.remaining) + ' يوم\nقيمة المتبقي: ' + fI(d.remainValue) + ' ج.م\n──────────\nاحسب إجازتك: https://www.wzaeif.com/2026/03/egypt-leave-overtime-calculator.html\n⚠️ للاسترشاد فقط — ليست استشارة قانونية');
};
window.lvWaLeave = function () {
var d = window._lvLeaveRes; if (!d) return;
var msg = 'حسبت رصيد إجازاتي 📅\nالمتبقي: ' + fI(d.remaining) + ' يوم | القيمة: ' + fI(d.remainValue) + ' ج.م\nجرّب مجاناً: https://www.wzaeif.com/2026/03/egypt-leave-overtime-calculator.html\n⚠️ للاسترشاد فقط';
window.open('https://api.whatsapp.com/send?text=' + encodeURIComponent(msg), '_blank', 'noopener,noreferrer');
};
window.lvCopyOT = function () {
var d = window._lvOTRes; if (!d) return;
doCopy('حاسبة العمل الإضافي — wzaeif.com\n──────────\nأجر الساعة: ' + fN(d.hrRate) + ' ج.م\nإجمالي الإضافي: ' + fI(d.totalOT) + ' ج.م\nالراتب مع الإضافي: ' + fI(d.totalSal) + ' ج.م\n──────────\nاحسب إضافيك: https://www.wzaeif.com/2026/03/egypt-leave-overtime-calculator.html\n⚠️ للاسترشاد فقط — ليست استشارة قانونية');
};
window.lvWaOT = function () {
var d = window._lvOTRes; if (!d) return;
var msg = 'حسبت أجر عملي الإضافي ⏰\nإجمالي الإضافي: ' + fI(d.totalOT) + ' ج.م | الراتب مع الإضافي: ' + fI(d.totalSal) + ' ج.م\nجرّب مجاناً: https://www.wzaeif.com/2026/03/egypt-leave-overtime-calculator.html\n⚠️ للاسترشاد فقط';
window.open('https://api.whatsapp.com/send?text=' + encodeURIComponent(msg), '_blank', 'noopener,noreferrer');
};
/* ── FAQ ── */
window.lvFaq = function (el) {
var item = el.closest('.lv-fi');
var open = item.classList.contains('op');
item.classList.toggle('op');
el.setAttribute('aria-expanded', String(!open));
};
window.lvKFaq = function (e, el) {
if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); lvFaq(el); }
};
/* ── keyboard shortcuts ── */
document.addEventListener('keydown', function (e) {
var leaveIds = ['lv-salary','lv-years','lv-age','lv-used','lv-balance'];
var otIds = ['lv-bsalary','lv-ot-hrs','lv-ot-hol'];
var id = document.activeElement && document.activeElement.id;
if (e.key === 'Enter') {
if (leaveIds.indexOf(id) > -1) lvCalcLeave();
if (otIds.indexOf(id) > -1) lvCalcOT();
}
if (e.key === 'Escape') {
document.querySelectorAll('.lv .lv-field.has-err').forEach(function (f) { f.classList.remove('has-err'); });
}
});
/* ── clear err on input ── */
['lv-salary','lv-years','lv-bsalary','lv-ot-hrs'].forEach(function (id) {
var el = document.getElementById(id);
if (!el) return;
var fMap = { 'lv-salary': 'lv-f-salary', 'lv-years': 'lv-f-years', 'lv-bsalary': 'lv-f-bsalary', 'lv-ot-hrs': 'lv-f-ot-hrs' };
el.addEventListener('input', function () {
var v = parseFloat(this.value);
/* years يقبل الصفر — الموظف الجديد */
var valid = (id === 'lv-years') ? (this.value !== '' && !isNaN(v) && v >= 0) : (!isNaN(v) && v > 0);
if (valid) {
var f = document.getElementById(fMap[id]);
if (f) f.classList.remove('has-err');
this.setAttribute('aria-invalid', 'false');
}
});
});
})();
</script>
فريقنا متخصص في رصد وتحليل ونشر أحدث الوظائف الشاغرة في مصر يومياً. نعمل على تجميع إعلانات التوظيف من مصادر موثوقة (كبرى الشركات، الجرائد الرسمية، ومنصات التوظيف الرائدة)، لضمان تقديم وظائف اليوم الأكثر دقة ومناسبة لجميع التخصصات المهنية.
مواضيع ذات صلة قد تعجبك
تعليقات
وصف المدونة
وظائف اليوم وأحدث الوظائف الشاغرة في مصر (مبيعات، مهندسين، مدرسين، وظائف إدارية). فرص عمل محدثة يومياً من أكبر الشركات والجرائد الرسمية.
تنبيهات جديدة
جاري التحميل...
المساعد الذكي لموقع وظائف دوت كوم
أهلاً بك! أنا مساعدك الشخصي في موقع وظائف دوت كوم | وظائف اليوم في مصر. كيف يمكنني مساعدتك اليوم؟ يمكنك سؤالي عن أي مقال أو موضوع في الموقع.
تعليقات
إرسال تعليق