الواجهات الكاملة · منصّة توظيف
الملفّ والإعدادات
تبويبات ونموذج في عمودين — الحفظ يظهر حين يتغيّر شيء، لا قبله
<div class="iface ifp">
<header class="if-top">
<span class="brand" data-ar="مِهَن" data-en="Mihan">مِهَن</span>
<span class="grow"></span>
<span class="if-avatar">ك</span>
</header>
<div class="if-body">
<div class="if-h">
<h1 data-ar="حسابي" data-en="My account">حسابي</h1>
<p data-ar="آخر تحديث قبل يومين" data-en="Updated two days ago">آخر تحديث قبل يومين</p>
</div>
<div class="ifp-tabs" role="tablist">
<button role="tab" aria-selected="false" data-ar="الملفّ" data-en="Profile">الملفّ</button>
<button role="tab" aria-selected="true" data-ar="التفضيلات" data-en="Preferences">التفضيلات</button>
<button role="tab" aria-selected="false" data-ar="الأمان" data-en="Security">الأمان</button>
</div>
<div class="if-card ifp-hero">
<span class="if-avatar big">ك</span>
<div><b>كرم</b>
<span data-ar="مهندس واجهات · عمّان" data-en="Front-end engineer · Amman">مهندس واجهات · عمّان</span></div>
<span class="grow"></span>
<button class="if-btn ghost" data-ar="غيّر الصورة" data-en="Change photo">غيّر الصورة</button>
</div>
<form class="ifp-form" onsubmit="return false">
<div class="grid2">
<label><span data-ar="المسمّى الوظيفي" data-en="Job title">المسمّى الوظيفي</span>
<input value="مهندس واجهات"></label>
<label><span data-ar="سنوات الخبرة" data-en="Years of experience">سنوات الخبرة</span>
<input class="num" dir="ltr" value="6"></label>
<label><span data-ar="المدينة" data-en="City">المدينة</span>
<select><option>عمّان</option><option>القاهرة</option><option>الدار البيضاء</option><option>بيروت</option></select></label>
<label><span data-ar="نمط العمل" data-en="Work mode">نمط العمل</span>
<select><option data-ar="عن بُعد" data-en="Remote">عن بُعد</option>
<option data-ar="مختلط" data-en="Hybrid">مختلط</option>
<option data-ar="في المقرّ" data-en="On-site">في المقرّ</option></select></label>
</div>
<div class="ifp-toggles">
<label class="tg"><input type="checkbox" checked>
<span><b data-ar="أظهر ملفّي لأصحاب العمل" data-en="Show my profile to employers">أظهر ملفّي لأصحاب العمل</b>
<i data-ar="يبقى اسمك مخفيًّا حتى تقبل التواصل." data-en="Your name stays hidden until you accept contact.">يبقى اسمك مخفيًّا حتى تقبل التواصل.</i></span></label>
<label class="tg"><input type="checkbox">
<span><b data-ar="نبّهني بالوظائف المطابقة" data-en="Notify me about matching roles">نبّهني بالوظائف المطابقة</b>
<i data-ar="رسالة واحدة أسبوعيًّا، لا أكثر." data-en="One email a week, no more.">رسالة واحدة أسبوعيًّا، لا أكثر.</i></span></label>
</div>
<div class="ifp-save">
<button class="if-btn" data-ar="احفظ التغييرات" data-en="Save changes">احفظ التغييرات</button>
<button class="if-btn ghost" data-ar="تراجع" data-en="Discard">تراجع</button>
</div>
</form>
</div>
</div>
.iface{min-height:100%;background:var(--pt-bg-base);color:var(--pt-text-primary);
font-family:inherit;display:flex;flex-direction:column}
.iface *,.iface *::before,.iface *::after{box-sizing:border-box}
.iface h1,.iface h2,.iface h3,.iface h4,.iface p,.iface ul,.iface ol{margin:0}
.iface ul{list-style:none;padding:0}
.iface a{color:inherit;text-decoration:none}
.iface button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
.iface button:focus-visible,.iface a:focus-visible,.iface input:focus-visible,
.iface select:focus-visible{outline:2px solid var(--pt-focus-ring);outline-offset:2px}
/* الرأس المشترك */
.if-top{display:flex;align-items:center;gap:var(--pt-space-4);
padding:var(--pt-space-3) var(--pt-space-5);
border-block-end:1px solid var(--pt-border-subtle);background:var(--pt-bg-raised)}
.if-top .brand{font-weight:700;font-size:var(--pt-font-size-sm)}
.if-top .grow{flex:1}
.if-top nav{display:flex;gap:var(--pt-space-4);font-size:var(--pt-font-size-xs);
color:var(--pt-text-muted)}
.if-top nav a[aria-current]{color:var(--pt-accent);font-weight:600}
.if-avatar{width:26px;height:26px;border-radius:50%;background:var(--pt-bg-inset);
border:1px solid var(--pt-border-default);display:grid;place-items:center;
font-size:10px;color:var(--pt-text-secondary)}
.if-btn{padding:var(--pt-space-2) var(--pt-space-4);border-radius:var(--pt-radius-md);
background:var(--pt-accent);color:var(--pt-on-accent);font-weight:700;
font-size:var(--pt-font-size-xs)}
.if-btn.ghost{background:transparent;color:var(--pt-text-secondary);
border:1px solid var(--pt-border-default);font-weight:500}
.if-body{flex:1;padding:var(--pt-space-5);display:flex;flex-direction:column;
gap:var(--pt-space-5)}
.if-h{display:flex;align-items:baseline;gap:var(--pt-space-3);flex-wrap:wrap}
.if-h h1{font-size:var(--pt-font-size-xl);font-weight:700}
.if-h p{font-size:var(--pt-font-size-xs);color:var(--pt-text-muted)}
.if-card{border:1px solid var(--pt-border-subtle);border-radius:var(--pt-radius-lg);
background:var(--pt-bg-raised);padding:var(--pt-space-4)}
.num{font-variant-numeric:tabular-nums}
/* الرقم بإشارته: عزلٌ باتّجاه لاتيني.
«−» و«+» محارف محايدة في خوارزمية الاتّجاه. وفي سطر عربي تُقذَف إلى
طرف النصّ، فيقرأ الزائر «0.6-» بدل «-0.6» — وهي قراءة معكوسة للمعنى
لا مجرّد فرق شكل. والعزل يجعل المحتوى يُحلّ اتّجاهه وحده. */
.sig{unicode-bidi:isolate;direction:ltr;font-variant-numeric:tabular-nums;
/* العرض بقدر المحتوى: العنصر داخل عمودٍ مرن يمتدّ افتراضيًّا، وباتّجاه
لاتيني يهاجر نصّه إلى الطرف الآخر — فيبقى مكانه بتقييد عرضه. */
inline-size:fit-content}
.ifp-tabs{display:flex;gap:var(--pt-space-1);
border-block-end:1px solid var(--pt-border-subtle)}
.ifp-tabs button{padding:var(--pt-space-3) var(--pt-space-5);font-size:var(--pt-font-size-xs);
color:var(--pt-text-muted);border-block-end:2px solid transparent;margin-block-end:-1px}
.ifp-tabs button[aria-selected=true]{color:var(--pt-accent);font-weight:600;
border-block-end-color:var(--pt-accent)}
.ifp-hero{display:flex;align-items:center;gap:var(--pt-space-4);flex-wrap:wrap}
.ifp-hero .grow{flex:1}
.if-avatar.big{inline-size:48px;block-size:48px;font-size:var(--pt-font-size-base)}
.ifp-hero b{display:block;font-size:var(--pt-font-size-base)}
.ifp-hero span:not(.if-avatar):not(.grow){font-size:var(--pt-font-size-xs);
color:var(--pt-text-muted)}
.ifp-form{display:flex;flex-direction:column;gap:var(--pt-space-5)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--pt-space-4)}
@media(max-width:560px){.grid2{grid-template-columns:1fr}}
.grid2 label{display:flex;flex-direction:column;gap:var(--pt-space-1)}
.grid2 > label > span{font-size:11px;color:var(--pt-text-muted)}
.grid2 input,.grid2 select{padding:var(--pt-space-3);border-radius:var(--pt-radius-md);
border:1px solid var(--pt-border-default);background:var(--pt-bg-raised);
color:var(--pt-text-primary);font:inherit;font-size:var(--pt-font-size-xs);outline:none}
.grid2 input:focus,.grid2 select:focus{border-color:var(--pt-accent)}
.ifp-toggles{display:flex;flex-direction:column;gap:var(--pt-space-3)}
.tg{display:flex;align-items:flex-start;gap:var(--pt-space-3);
padding:var(--pt-space-4);border-radius:var(--pt-radius-lg);
border:1px solid var(--pt-border-subtle);background:var(--pt-bg-raised);cursor:pointer}
.tg input{inline-size:16px;block-size:16px;accent-color:var(--pt-accent);margin-block-start:2px}
.tg b{display:block;font-size:var(--pt-font-size-xs);font-weight:600}
.tg i{display:block;margin-block-start:3px;font-style:normal;font-size:11px;
color:var(--pt-text-muted);line-height:1.8}
.ifp-save{display:flex;gap:var(--pt-space-3);flex-wrap:wrap}
.ifp-save .if-btn{padding:var(--pt-space-3) var(--pt-space-6)}