  /* ===========================================================
     بطاقات اللوحة (نماذج البيانات الفعلية داخل الوحدات)
     =========================================================== */
  .panel-card{
    background:var(--ds-surface);
    border:1px solid var(--ds-border);
    border-radius:var(--card-radius);
    box-shadow:var(--card-shadow);
    padding:var(--card-padding) calc(var(--card-padding) + 2px);
    margin-bottom:var(--sp-5);
    transition:box-shadow .2s ease, transform .2s ease;
  }
  .panel-card:hover{
    box-shadow:var(--card-shadow-hover);
  }
  .panel-card-head{
    display:flex;
    align-items:flex-start;
    gap:var(--sp-4);
    margin-bottom:var(--sp-5);
    padding-bottom:var(--sp-4);
    border-bottom:1px solid var(--ds-border);
  }
  .panel-card-head-icon{
    width:40px; height:40px;
    border-radius:10px;
    background:var(--ds-primary);
    color:var(--gold-light);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .panel-card-head-icon svg{ width:20px; height:20px; }
  .panel-card-head h3{
    font-family:'Amiri',serif;
    font-size:1.1rem;
    color:var(--navy);
    margin:0 0 3px;
  }
  .panel-card-head p{
    font-size:.8rem;
    color:var(--ink-soft);
    margin:0;
  }
  .panel-card-head > div:not(.panel-card-head-icon){ flex:1; }

  /* V98 — بطلب صريح: "زري استيراد وتصدير تكون اعلى الصفحة يسار" — رأس
     بطاقة "قائمة المعلمين" فقط (لا يؤثر على .panel-card-head في بقية
     الموقع) يوزّع "إضافة معلم" و"استيراد/تصدير" بأقصى مسافة بينهما.
     .teacher-list-top-actions يرث flex:1 من القاعدة أعلاه فيتمدد ليملأ
     المساحة المتبقية، وjustify-content:flex-end بداخله يدفع الزرَّين إلى
     نهاية هذا الاتساع — وهو اليسار فعليًا في صفحة RTL. */
  .teacher-list-head{ justify-content:space-between; flex-wrap:wrap; }
  .teacher-list-top-actions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }

  .save-indicator{
    font-size:.76rem;
    color:var(--ds-success);
    font-weight:700;
    opacity:0;
    transition:opacity .25s ease;
    white-space:nowrap;
    align-self:center;
  }
  .save-indicator.show{ opacity:1; }

  .form-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:16px 20px;
  }
  @media (max-width:760px){ .form-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:520px){ .form-grid{ grid-template-columns:1fr; } }

  /* شبكة نموذج إضافة معلم فقط — معزولة تمامًا عن form-grid العام،
     تُستخدَم فقط لتخصيص عرض أعمدة هذا النموذج تحديدًا (لا تؤثر على أي
     نموذج آخر في النظام). الترتيب الفعلي للحقول في HTML لم يتغيّر
     إطلاقًا؛ هذا تحكّم بصري في العرض فقط عبر grid-column */
  .teacher-add-grid{
    grid-template-columns:repeat(12, 1fr);
  }
  .teacher-add-grid .form-field:nth-child(1){ grid-column:span 5; }   /* اسم المعلم/ـة */
  .teacher-add-grid .form-field:nth-child(2){ grid-column:span 2; }   /* رقم الملف — أضيق */
  .teacher-add-grid .form-field:nth-child(3){ grid-column:span 5; }   /* المدرسة */
  .teacher-add-grid .form-field:nth-child(4){ grid-column:span 2; }   /* الحلقة — أضيق */
  .teacher-add-grid .form-field:nth-child(5){ grid-column:span 7; }   /* الفترة — أوسع، بجوار الحلقة */
  .teacher-add-grid .form-field:nth-child(6){ grid-column:span 3; }   /* رقم الهاتف — أضيق */
  .teacher-add-grid .form-field:nth-child(7){ grid-column:span 4; }   /* سنة التعيين */
  @media (max-width:900px){
    .teacher-add-grid{ grid-template-columns:repeat(6, 1fr); }
    .teacher-add-grid .form-field:nth-child(1){ grid-column:span 3; }
    .teacher-add-grid .form-field:nth-child(2){ grid-column:span 3; }
    .teacher-add-grid .form-field:nth-child(3){ grid-column:span 3; }
    .teacher-add-grid .form-field:nth-child(4){ grid-column:span 3; }
    .teacher-add-grid .form-field:nth-child(5){ grid-column:span 3; }
    .teacher-add-grid .form-field:nth-child(6){ grid-column:span 3; }
    .teacher-add-grid .form-field:nth-child(7){ grid-column:span 3; }
  }
  @media (max-width:600px){
    .teacher-add-grid{ grid-template-columns:1fr; }
    .teacher-add-grid .form-field{ grid-column:span 1 !important; }
  }

  .form-field label{
    display:block;
    font-size:.78rem;
    color:var(--ink-soft);
    margin-bottom:6px;
    font-weight:500;
  }
  .form-field input, .form-field select{
    width:100%;
    border:1px solid var(--line);
    border-radius:8px;
    padding:9px 12px;
    font-family:'Tajawal',sans-serif;
    font-size:.88rem;
    color:var(--ink);
    background:var(--paper);
    transition:border-color .15s;
  }
  .form-field input:focus, .form-field select:focus{
    outline:none;
    border-color:var(--burgundy);
    background:#fff;
  }

  /* V31.65 — اختيار المعلم في الزيارة: المدرسة أولاً + بحث فوري داخل نفس حقل الاسم */
  .visit-teacher-combobox{ position:relative; }
  .visit-school-combobox{ position:relative; }
  .visit-school-input-wrap{ position:relative; }
  .visit-school-input-wrap input{ padding-left:42px; }
  .visit-school-toggle{
    position:absolute; left:7px; top:50%; transform:translateY(-50%); width:30px; height:30px;
    border:0; border-right:1px solid var(--line); background:transparent; color:var(--ink-soft);
    display:flex; align-items:center; justify-content:center; cursor:pointer; padding:0;
  }
  .visit-school-toggle:hover,.visit-school-toggle:focus{ color:var(--burgundy); outline:none; }
  .visit-school-toggle svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .16s ease; }
  .visit-school-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }
  .visit-school-results{
    display:none; position:absolute; z-index:1200; top:100%; right:0; left:0; margin-top:4px; max-height:250px; overflow-y:auto;
    background:#fff; border:1px solid var(--line); border-radius:9px; box-shadow:0 10px 28px rgba(28,43,58,.14);
  }
  .visit-school-results.show{ display:block; }
  .visit-school-result{ width:100%; border:0; border-bottom:1px solid #edf0f4; background:#fff; padding:10px 12px; text-align:right; font-family:'Tajawal',sans-serif; cursor:pointer; color:var(--ink); font-weight:700; font-size:.86rem; }
  .visit-school-result:last-child{ border-bottom:0; }
  .visit-school-result:hover,.visit-school-result:focus{ background:#f7f3f4; outline:none; }
  .visit-school-empty{ padding:12px; color:var(--ink-soft); font-size:.8rem; text-align:center; }

  .visit-teacher-input-wrap{ position:relative; }
  .visit-teacher-input-wrap input{ padding-left:42px; }
  .visit-teacher-toggle{
    position:absolute;
    left:7px;
    top:50%;
    transform:translateY(-50%);
    width:30px;
    height:30px;
    border:0;
    border-right:1px solid var(--line);
    background:transparent;
    color:var(--ink-soft);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    padding:0;
  }
  .visit-teacher-toggle:hover,.visit-teacher-toggle:focus{ color:var(--burgundy); outline:none; }
  .visit-teacher-toggle svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; transition:transform .16s ease; }
  .visit-teacher-toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }
  .visit-teacher-results{
    display:none;
    position:absolute;
    z-index:1200;
    top:100%;
    right:0;
    left:0;
    margin-top:4px;
    max-height:250px;
    overflow-y:auto;
    background:#fff;
    border:1px solid var(--line);
    border-radius:9px;
    box-shadow:0 10px 28px rgba(28,43,58,.14);
  }
  .visit-teacher-results.show{ display:block; }
  .visit-teacher-result{
    width:100%;
    border:0;
    border-bottom:1px solid #edf0f4;
    background:#fff;
    padding:10px 12px;
    text-align:right;
    font-family:'Tajawal',sans-serif;
    cursor:pointer;
    color:var(--ink);
  }
  .visit-teacher-result:last-child{ border-bottom:0; }
  .visit-teacher-result:hover,.visit-teacher-result:focus{ background:#f7f3f4; outline:none; }
  .visit-teacher-result-name{ display:block; font-weight:700; font-size:.86rem; }
  .visit-teacher-result-school{ display:block; margin-top:2px; color:var(--ink-soft); font-size:.72rem; }
  .visit-teacher-empty{ padding:12px; color:var(--ink-soft); font-size:.8rem; text-align:center; }

  /* حقل تاريخ الزيارة الموحَّد: زر واحد يُظهر التاريخ المختار، تنبثق منه
     نافذة تقويم واحدة متكاملة (عام + شهر + يوم معًا) عند النقر — بلا أي
     فصل بين عناصر التاريخ في حقول منفصلة دائمة الظهور */
  .v-date-trigger{
    width:100%;
    display:flex; align-items:center; justify-content:space-between;
    border:1px solid var(--line);
    border-radius:8px;
    padding:9px 12px;
    background:var(--paper);
    font-family:'Tajawal',sans-serif;
    font-size:.88rem;
    color:var(--ink);
    cursor:pointer;
    transition:border-color .15s;
  }
  .v-date-trigger:hover, .v-date-trigger.v-dp-open{
    border-color:var(--burgundy);
    background:#fff;
  }
  .v-date-trigger svg{ color:var(--ink-soft); flex-shrink:0; }

  .v-datepicker-popup{
    display:none;
    position:absolute;
    z-index:40;
    margin-top:6px;
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    padding:12px 14px;
    background:var(--paper);
    box-shadow:0 8px 24px rgba(18,29,40,.16);
    width:300px;
    max-width:calc(100vw - 40px);
  }
  .v-datepicker-popup.v-dp-show{ display:block; }
  .v-dp-popup-header{
    display:flex; gap:8px; margin-bottom:10px;
  }
  .v-dp-popup-header select{
    flex:1;
    border:1px solid var(--line);
    border-radius:8px;
    padding:6px 10px;
    font-family:'Tajawal',sans-serif;
    font-size:.82rem;
    color:var(--ink);
    background:#fff;
  }
  .v-dp-weekdays{
    display:grid; grid-template-columns:repeat(7, 1fr); gap:4px;
    margin-bottom:8px;
  }
  .v-dp-weekdays span{
    text-align:center; font-size:.72rem; font-weight:700;
    color:var(--ink-soft);
  }
  .v-dp-days{
    display:grid; grid-template-columns:repeat(7, 1fr); gap:4px;
  }
  .v-dp-day{
    aspect-ratio:1; display:flex; align-items:center; justify-content:center;
    border-radius:8px; border:1px solid transparent;
    background:#fff; font-family:'Tajawal',sans-serif; font-size:.85rem;
    color:var(--ink); cursor:pointer;
    transition:background .15s, border-color .15s, color .15s;
  }
  .v-dp-day:hover:not(.v-dp-disabled):not(.v-dp-empty){
    border-color:var(--burgundy);
    background:var(--gold-light);
  }
  .v-dp-day.v-dp-selected{
    background:var(--burgundy); color:#fff; font-weight:800;
    border-color:var(--burgundy);
  }
  .v-dp-day.v-dp-disabled{
    background:transparent; color:var(--ink-soft);
    opacity:.4; cursor:not-allowed;
  }
  .v-dp-day.v-dp-selected.v-dp-disabled{
    opacity:1; background:transparent; color:var(--burgundy);
    border-color:var(--burgundy); font-weight:800;
  }
  .v-dp-day.v-dp-empty{ visibility:hidden; cursor:default; }

  .btn-save{
    display:flex; align-items:center; gap:8px;
    background:var(--paper-card);
    color:var(--navy-deep);
    border:1.5px solid var(--gold);
    border-radius:9px;
    padding:11px 22px;
    font-family:'Tajawal',sans-serif;
    font-weight:700;
    font-size:.86rem;
    cursor:pointer;
    margin-top:20px;
    transition:background .15s, transform .15s;
  }
  .btn-save:hover{ background:var(--gold-light); transform:translateY(-1px); }
  .btn-save svg{ width:16px; height:16px; }

  .btn-cancel{
    background:none;
    border:1px solid var(--line);
    color:var(--ink-soft);
    border-radius:9px;
    padding:11px 20px;
    font-family:'Tajawal',sans-serif;
    font-weight:600;
    font-size:.86rem;
    cursor:pointer;
    margin-top:20px;
    transition:background .15s;
  }
  .btn-cancel:hover{ background:var(--paper); }

  .btn-add-row{
    display:flex; align-items:center; gap:7px;
    background:var(--paper-card);
    color:var(--navy-deep);
    border:1.5px solid var(--gold);
    border-radius:8px;
    padding:9px 16px;
    font-family:'Tajawal',sans-serif;
    font-weight:700;
    font-size:.82rem;
    cursor:pointer;
    transition:background .15s, transform .15s;
    white-space:nowrap;
    align-self:center;
  }
  .btn-add-row:hover{ background:var(--gold-light); transform:translateY(-1px); }
  .btn-add-row svg{ width:14px; height:14px; }
  /* زر تصدير Excel — هوية جديدة: سطح فاتح بحد ذهبي بدل التعبئة الذهبية الكاملة */
  .btn-export-excel{
    display:flex; align-items:center; gap:7px;
    background:var(--paper-card);
    color:var(--navy);
    border:1.5px solid var(--gold);
    border-radius:var(--radius-btn);
    min-height:var(--btn-h);
    padding:9px 16px;
    font-family:'Tajawal',sans-serif;
    font-weight:700;
    font-size:.82rem;
    cursor:pointer;
    transition:var(--transition-soft);
    white-space:nowrap;
    align-self:center;
  }
  .btn-export-excel:hover{ background:var(--gold-light); box-shadow:0 4px 10px rgba(20,30,40,.10); transform:translateY(-1px); }
  .btn-export-excel:active{ transform:translateY(0); }

  .course-form{
    display:none;
    background:var(--paper);
    border:1px dashed var(--gold);
    border-radius:var(--radius-md);
    padding:20px;
    margin-bottom:20px;
  }
  .course-form.show{ display:block; animation:fadeIn .25s ease; }
  .course-form-actions{ display:flex; gap:10px; }
  .course-form-actions .btn-save, .course-form-actions .btn-cancel{ margin-top:16px; }

  /* ===== الجدول ===== */
  .data-table{
    width:100%;
    border-collapse:collapse;
    font-size:.85rem;
  }
  .data-table thead th{
    text-align:right;
    background:#EEF1F6;
    color:var(--navy);
    font-weight:700;
    font-size:.78rem;
    letter-spacing:.02em;
    padding:11px 12px;
    border-bottom:2px solid var(--gold);
    white-space:nowrap;
    position:sticky; top:0; z-index:4;
  }
  .table-wrap{ border:1px solid var(--line); border-radius:var(--radius-md); overflow:auto; }
  /* إصلاح مخصَّص لجدول نتائج "البحث والفرز" في بيانات المعلمين:
     overflow:auto على .table-wrap كان يُنشئ سياق احتواء غير مقصود
     يمنع sticky من الالتصاق بمنفذ العرض الفعلي (الحاوية نفسها لا
     تُمرَّر داخليًا أبدًا، فلا يجد العنصر الثابت ما يلتصق به) —
     مؤكَّد تجريبيًا بقياس دقيق لموضع الرأس عبر خطوات تمرير متتابعة */
  [data-teachers-panel="filter"] .table-wrap{ overflow:visible; }
  [data-teachers-panel="filter"] .data-table thead th{ position:sticky; top:var(--tf-sticky-top, 181px); z-index:4; }
  .table-wrap .data-table{ border-radius:0; }
  .data-table tbody td{
    padding:11px 12px;
    border-bottom:1px solid var(--line);
    color:var(--ink);
    vertical-align:middle;
  }
  /* خلفية تبادلية موحّدة لكل جداول النظام: أزرق فاتح / رمادي فاتح */
  .data-table tbody tr:nth-child(odd){  background:#EFF5FC; }
  .data-table tbody tr:nth-child(even){ background:#F3F4F6; }
  .data-table tbody tr:nth-child(odd):hover{  background:#E4EEFA; }
  .data-table tbody tr:nth-child(even):hover{ background:#E7E9EC; }
  .data-table tbody tr:hover{ background:var(--paper); }
  .role-badge{
    font-size:.72rem;
    font-weight:700;
    padding:3px 11px;
    border-radius:12px;
    white-space:nowrap;
  }
  .role-badge.trainee{ background:var(--gold-light); color:var(--burgundy-dark); }
  .role-badge.presenter{ background:#E0EAF4; color:var(--navy); }
  .btn-delete-row{
    background:none;
    border:none;
    color:var(--ds-danger);
    cursor:pointer;
    padding:5px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:6px;
    transition:background .15s;
  }
  .btn-delete-row:hover{ background:var(--ds-danger-bg); }
  .btn-delete-row svg{ width:16px; height:16px; }

  .table-empty{
    display:none;
    text-align:center;
    padding:30px 16px;
    color:var(--ink-faint);
    font-size:.85rem;
  }
  .table-empty.show{ display:block; }

  /* ===== سجل الشهادات ===== */
  .cert-upload-field{ grid-column:span 1; }
  .cert-upload-field input[type="file"]{
    border:1px dashed var(--line);
    background:var(--paper);
    padding:8px 10px;
    font-size:.8rem;
    cursor:pointer;
  }
  .cert-preview-wrap{
    margin-top:10px;
    display:none;
  }
  .cert-preview-wrap.show{ display:block; }
  .cert-preview-wrap img{
    max-width:140px;
    max-height:100px;
    border-radius:8px;
    border:1px solid var(--line);
    object-fit:cover;
  }

  .cert-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
    gap:16px;
  }
  .cert-card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    overflow:hidden;
    transition:border-color .15s, transform .15s;
    position:relative;
  }
  .cert-card:hover{ border-color:var(--gold); transform:translateY(-2px); }
  .cert-card-image{
    width:100%;
    height:130px;
    background:#EFEAE0;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
  }
  .cert-card-image img{
    width:100%; height:100%;
    object-fit:cover;
    cursor:pointer;
  }
  .cert-card-image .no-image-icon{
    width:34px; height:34px;
    color:var(--ink-faint);
  }
  .cert-card-body{
    padding:12px 14px;
  }
  .cert-card-name{
    font-size:.85rem;
    font-weight:700;
    color:var(--ink);
    margin:0 0 4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .cert-card-date{
    font-size:.74rem;
    color:var(--ink-faint);
    margin:0;
  }
  .cert-card .btn-delete-row{
    position:absolute;
    top:8px; left:8px;
    background:rgba(255,255,255,.92);
    box-shadow:0 1px 4px rgba(0,0,0,.15);
  }

  /* ===== نافذة تكبير صورة الشهادة ===== */
  /* ===== نافذة تقرير الزيارة (منبثقة — لا تظهر ضمن الصفحة) ===== */
  .modal-overlay{
    display:none;
    position:fixed; inset:0; z-index:9500;
    background:rgba(16,24,40,.55);
    align-items:flex-start; justify-content:center;
    padding:28px 16px; overflow-y:auto;
  }
  .modal-overlay.show{ display:flex; }
  .modal-box{
    background:#fff; width:100%; border-radius:14px;
    box-shadow:0 24px 70px rgba(0,0,0,.32);
    padding:22px 26px; margin:auto 0;
  }
  .modal-head{
    display:flex; align-items:center; justify-content:space-between;
    gap:10px; border-bottom:1px solid var(--line);
    padding-bottom:10px; margin-bottom:14px;
  }
  .modal-head h3{ font-size:1.05rem; color:var(--navy-deep); }
  .modal-close{
    background:transparent; border:none; font-size:1.7rem; line-height:1;
    color:var(--ink-soft); cursor:pointer; padding:0 4px;
  }
  .modal-close:hover{ color:var(--navy-deep); }
  .visit-report-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }

  /* V56 (سابقًا) — تصميم أوّلي بأيقونة دائرية وسط النافذة بلا شريط رأس ملوَّن. طُلب
     صراحةً في V57 استبداله بالهوية البصرية الحقيقية للموقع (شريط رأس كحلي + أيقونة
     إغلاق X تفاعلية). قاعدة `.site-msg-icon` وتوابعها اللونية أُبقيت دون حذف عملًا
     بسياسة عدم حذف الكود القديم، لكن العنصر لم يعد يُولَّد في index.html فلا أثر لها. */
  .site-msg-icon{
    width:46px; height:46px; margin:0 auto 12px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem; background:var(--gold-light); color:var(--navy-deep);
  }
  .site-msg-box.site-msg-success .site-msg-icon{ background:#e2f3e8; color:#1E6B47; }
  .site-msg-box.site-msg-warning .site-msg-icon{ background:#fdf0da; color:#9a6a12; }
  .site-msg-box.site-msg-danger  .site-msg-icon{ background:#fbe4e2; color:#b3261e; }

  /* V57 — نافذة رسائل موحدة بهوية الموقع الحقيقية (بديل alert()/confirm())، مُدارة
     عبر siteAlert()/siteConfirm() في js/shared/utils.js: شريط رأس كحلي مصمَت
     (عنوان + أيقونة إغلاق X تفاعلية تقع على اليسار تلقائيًا لأن الصفحة RTL)، نص
     واضح مختصر، ثم خيارا العمل (زر أساسي ذهبي الحد + زر إلغاء) أسفل النافذة.
     V59 — تعديل دقيق بطلب المستخدم: شريط أصغر وبلون كحلي أفتح (--navy-soft بدل
     --navy)، نص أصغر، وإصلاح محاذاة الزرّين (لم يكونا على نفس المستوى لأن
     .site-msg-actions لم تكن display:flex أصلًا — .modal-actions غير المُقيَّدة
     بصنف .mfu-modal ليس لها أي قاعدة display في المشروع، فبقيت الأزرار بعرضها
     الافتراضي بلا محاذاة موحّدة). */
  #siteMsgOverlay{ align-items:center; }
  .site-msg-box{ max-width:380px; text-align:center; padding:0; overflow:hidden; }
  .site-msg-head{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    background:var(--navy-soft); color:#fff;
    padding:10px 14px 10px 10px; border-radius:14px 14px 0 0;
  }
  .site-msg-head h3{ margin:0; font-size:.92rem; font-weight:700; color:#fff; }
  .site-msg-close{
    flex-shrink:0; width:26px; height:26px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.12); border:none; color:#fff;
    font-size:1.05rem; line-height:1; cursor:pointer;
    transition:background .18s ease, transform .18s ease;
  }
  .site-msg-close:hover{ background:rgba(255,255,255,.28); transform:rotate(90deg) scale(1.06); }
  .site-msg-close:active{ transform:rotate(90deg) scale(.94); }
  .site-msg-body{ padding:18px 22px 2px; }
  .site-msg-text{
    color:var(--ink); font-size:.85rem; font-weight:600; line-height:1.6;
    max-width:30ch; margin:0 auto;
  }
  .site-msg-actions{
    display:flex; align-items:center; justify-content:center; gap:10px;
    padding:16px 20px 20px; margin-top:0;
  }
  .site-msg-actions .btn-save, .site-msg-actions .btn-cancel{
    flex:1; display:flex; align-items:center; justify-content:center;
    min-width:0; margin-top:0; padding:10px 16px; font-size:.82rem;
  }
  @media(max-width:480px){ .site-msg-box{ max-width:92vw; } }

  /* V96 — بطلب صريح: نافذة صغيرة تُفتح من زر "© جميع الحقوق محفوظة للمصمم"
     في الشريط الجانبي، بنفس هيكل .site-msg-box (رأس كحلي + إغلاق X) لكن
     بمحتوى مخصَّص: اسم المصمم وصفته ورقم تواصله، علامة ©، رقم الإصدار
     (SITE_VERSION في index.html)، وإشعار "نسخة تجريبية محلية". */
  .site-credits-box{ max-width:340px; }
  .site-credits-body{ padding-top:22px; text-align:center; }
  .site-credits-mark{
    width:44px; height:44px; margin:0 auto 10px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem; font-weight:700; background:var(--gold-light); color:var(--navy-deep);
  }
  .site-credits-name{ font-size:1rem; font-weight:800; color:var(--navy-deep); margin-bottom:2px; }
  .site-credits-role{ font-size:.8rem; color:var(--ink-soft); margin-bottom:6px; }
  .site-credits-phone{ font-size:.85rem; font-weight:700; color:var(--navy-deep); direction:ltr; unicode-bidi:embed; }
  .site-credits-divider{ height:1px; background:var(--line); margin:14px 0; }
  .site-credits-version{ font-size:.78rem; color:var(--ink-soft); margin-bottom:8px; }
  .site-credits-version b{ color:var(--navy-deep); }
  .site-credits-trial{
    display:inline-block; font-size:.7rem; font-weight:700; color:#a85c18;
    background:rgba(234,127,34,.11); border-radius:8px; padding:6px 12px;
  }

  /* نافذة تصنيف أهداف خطة الإجادة عند الاستيراد */
  .exc-classify-hint{ font-size:.85rem; color:var(--ink-soft); margin-bottom:16px; }
  .exc-classify-list{ display:flex; flex-direction:column; gap:10px; max-height:55vh; overflow-y:auto; padding-inline-end:4px; }
  .exc-classify-card{
    background:var(--paper); border:1px solid var(--line); border-radius:12px;
    padding:14px 16px; display:flex; align-items:center; justify-content:space-between;
    gap:14px; flex-wrap:wrap;
  }
  .exc-classify-title{ flex:1; min-width:200px; font-weight:700; color:var(--navy-deep); font-size:.9rem; }
  .exc-classify-select{
    min-width:190px; border:1.5px solid var(--line); border-radius:9px;
    padding:8px 10px; font-family:inherit; font-size:.85rem; color:var(--ink);
    background:#FFFFFF; cursor:pointer;
  }
  .exc-classify-select:focus{ outline:none; border-color:var(--navy-deep); }

  /* حقول مجموع الحصص للصفوف ١٠–١٢ */
  .tc-grade-periods input{
    width:100%; border:1px solid var(--line); border-radius:7px;
    padding:6px 8px; font-family:'Tajawal',sans-serif; font-size:.82rem; text-align:center;
  }
  .tc-grade-periods input::placeholder{ font-size:.68rem; color:#9aa0aa; }
  .tc-periods-tag{
    display:inline-block; background:var(--gold-light); color:var(--navy-deep);
    border-radius:10px; padding:0 6px; font-size:.62rem; font-weight:700; margin-right:3px;
  }
  /* بطاقة إحصاء المعلمين */
  .btn-not-exec{ background:var(--ds-danger); }
  .btn-not-exec:hover{ background:#8e3232; }
  .not-exec-box{ display:none; margin-top:14px; padding:14px 16px; background:#fdeaea; border:1px solid #f2c9c6; border-radius:12px; }
  .not-exec-box.show{ display:block; }
  .not-exec-box label{ display:block; font-weight:700; color:#b3261e; font-size:.85rem; margin-bottom:8px; }
  .not-exec-box .req{ color:#D32F2F; }
  .not-exec-row{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
  .not-exec-row input{ flex:1; min-width:220px; border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-family:'Tajawal',sans-serif; font-size:.86rem; }
  .not-exec-row input.invalid{ border-color:#D32F2F; box-shadow:0 0 0 2px rgba(211,47,47,.12); }
  .not-exec-row .btn-save{ margin-top:0; }
  .not-exec-note{ font-size:.76rem; color:var(--ink-soft); margin-top:8px; line-height:1.7; }

  .vh-serial{ text-align:center; font-weight:700; color:var(--navy-deep); width:46px; }
  .mfu-teachers{ margin-top:22px; padding-top:18px; border-top:1px dashed var(--line); }
  .mfu-filters{ display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-bottom:12px; padding:10px 12px; background:var(--paper); border:1px solid var(--line); border-radius:10px; }
  .mfu-f{ display:flex; flex-direction:column; gap:4px; min-width:150px; }
  .mfu-f label{ font-size:.74rem; font-weight:700; color:var(--ink-soft); }
  .mfu-f select{ border:1px solid var(--line); border-radius:7px; padding:6px 9px; font-family:'Tajawal',sans-serif; font-size:.82rem; background:#fff; }
  .mfu-count{ font-size:.78rem; color:var(--ink-soft); margin-right:auto; align-self:center; }

  .mfu-wrap{ display:none; margin-bottom:22px; }
  .mfu-wrap.show{ display:block; }
  /* شريط اختيار السنة والشهر */
  .dash-f{ display:flex; flex-direction:column; gap:4px; min-width:170px; }
  .dash-f label{ font-size:.75rem; font-weight:700; color:var(--ink-soft); }
  .dash-f select{ border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-family:'Tajawal',sans-serif; font-size:.88rem; background:#fff; font-weight:600; color:var(--navy-deep); }

  /* بطاقات الإحصائيات — متساوية الحجم والارتفاع */
  .mfu-stats{ display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin-bottom:14px; }
  @media(max-width:820px){ .mfu-stats{ grid-template-columns:repeat(2, 1fr); } }
  .mfu-stats .mfu-stat{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
    min-height:104px; padding:12px 10px; text-align:center;
    background:#fff; border:1px solid var(--line); border-radius:12px;
  }
  .mfu-stat i{ font-style:normal; font-size:1.05rem; line-height:1; }
  .mfu-stat b{ font-size:1.6rem; color:var(--navy-deep); line-height:1.25; }
  .mfu-stat span{ font-size:.78rem; color:var(--ink-soft); }

  /* شريط التقدّم */
  .mfu-progress{ margin-bottom:18px; background:rgba(255,255,255,.55); border:1px solid var(--ds-border); border-radius:var(--radius-md); padding:12px 14px; }
  .mfu-progress-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:7px; font-size:.8rem; color:var(--ink-soft); font-weight:700; }
  .mfu-progress-head b{ color:var(--navy-deep); font-size:.92rem; }
  .mfu-progress-track{ height:15px; background:#e8ebf0; border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:inset 0 1px 2px rgba(18,29,40,.08); }
  .mfu-progress-fill{ position:relative; height:100%; background:linear-gradient(90deg, var(--navy) 0%, var(--ds-success) 100%); border-radius:20px; transition:width .5s ease; overflow:hidden; }
  .mfu-stat{ flex:1 1 130px; min-width:120px; background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; text-align:center; }
  .mfu-stat b{ display:block; font-size:1.35rem; color:var(--navy-deep); line-height:1.3; }
  .mfu-stat span{ font-size:.76rem; color:var(--ink-soft); }
  .mfu-stat.mfu-planned{ background:var(--navy-deep); border-color:var(--navy-deep); }
  .mfu-stat.mfu-planned b{ color:#fff; } .mfu-stat.mfu-planned span{ color:#cfd6e4; }
  .mfu-stat.mfu-done{ background:#e4f3ea; border-color:#bfe0cd; } .mfu-stat.mfu-done b{ color:#1e6b43; }
  .mfu-stat.mfu-miss{ background:#fdeaea; border-color:#f2c9c6; } .mfu-stat.mfu-miss b{ color:#b3261e; }
  .mfu-stat.mfu-pct{ background:#fdf6e3; border-color:#ecdcae; } .mfu-stat.mfu-pct b{ color:#8a5a12; }
  .mfu-table{ font-size:.84rem; table-layout:fixed; }
  .mfu-table td, .mfu-table th{ overflow-wrap:break-word; }
  .mfu-table tbody td{ padding:13px 12px; vertical-align:middle; line-height:1.6; }
  .mfu-table td:nth-child(4){ text-align:center; }   /* الحالة */
  .mfu-table td:last-child{ text-align:center; }     /* الإجراء */
  .mfu-status{ display:inline-block; padding:3px 10px; border-radius:20px; font-size:.76rem; font-weight:700; white-space:nowrap; }
  .mfu-status.done{ background:#e4f3ea; color:#1e6b43; }
  .mfu-status.miss{ background:#fdeaea; color:#b3261e; }
  /* رؤوس ثابتة أثناء التمرير */
  .mfu-table thead th{ position:sticky; top:0; z-index:5; background:var(--navy-deep); color:#fff; }
  .mfu-wrap .table-wrap{ max-height:60vh; overflow:auto; }
  /* حالات الزيارة */
  .mfu-st{ display:inline-block; padding:3px 10px; border-radius:20px; font-size:.76rem; font-weight:700; white-space:nowrap; }
  .mfu-st.done{ background:#e4f3ea; color:#1e6b43; }
  .mfu-st.blocked{ background:#fdeaea; color:#b3261e; }
  .mfu-st.pending{ background:#fdf3e0; color:#8a5a12; }
  /* أزرار الإجراء */
  .mfu-act{ display:flex; gap:6px; flex-wrap:wrap; justify-content:center; align-items:center; }
  .mfu-btn{ border:none; border-radius:6px; padding:5px 9px; font-size:.72rem; font-weight:700; cursor:pointer; font-family:'Tajawal',sans-serif; white-space:nowrap; }
  .mfu-btn.go{ background:var(--ds-success); color:#fff; }      .mfu-btn.go:hover{ background:#19583b; }
  .mfu-btn.no{ background:var(--ds-danger); color:#fff; }      .mfu-btn.no:hover{ background:#8e3232; }
  .mfu-btn.view{ background:var(--navy-deep); color:#fff; }  .mfu-btn.view:hover{ background:var(--navy); }
  .mfu-btn.edit{ background:var(--gold); color:var(--navy-deep); } .mfu-btn.edit:hover{ background:#cb9d4f; }
  /* مؤشر بصري لعمود الإجراء عند عدم توفّر إجراء (لا يظهر فارغًا أبدًا) */
  .mfu-act-unavail{ display:inline-block; padding:4px 10px; border-radius:20px; font-size:.72rem; font-weight:700;
                     background:#f1f2f4; color:#7a828d; white-space:nowrap; cursor:help; }
  /* بطاقة تنبيه المتأخرة */
  .mfu-alert{ display:none; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:14px; padding:12px 16px;
              background:#fdf3e0; border:1px solid #efd9a8; border-radius:12px; }
  .mfu-alert.show{ display:flex; }
  .mfu-alert-txt{ font-weight:700; color:#8a5a12; font-size:.88rem; }
  .mfu-alert-btn{ background:var(--navy-deep); color:#fff; border:none; border-radius:7px; padding:6px 12px;
                  font-size:.78rem; font-weight:700; cursor:pointer; font-family:'Tajawal',sans-serif; }
  .mfu-alert-btn:hover{ background:var(--navy); }
  .mfu-late-bar{ display:none; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
                 margin-bottom:12px; padding:9px 14px; background:#eef2f9; border:1px solid #c8d8ec; border-radius:10px; font-size:.84rem; }
  .mfu-late-bar.show{ display:flex; }
  /* نافذة سبب التعذر */
  .mfu-modal{ max-width:440px; }
  .mfu-modal-info{ font-size:.84rem; color:var(--ink-soft); margin-bottom:12px; line-height:1.7; }
  .mfu-modal-label{ display:block; font-weight:700; font-size:.8rem; color:var(--navy-deep); margin-bottom:6px; }
  #mfuReasonSelect, #mfuReasonOther{ width:100%; border:1px solid var(--line); border-radius:8px; padding:8px 10px;
                                     font-family:'Tajawal',sans-serif; font-size:.86rem; background:#fff; }
  #mfuReasonSelect.invalid, #mfuReasonOther.invalid{ border-color:#D32F2F; box-shadow:0 0 0 2px rgba(211,47,47,.12); }
  .modal-box.mfu-modal .modal-actions{ display:flex; gap:8px; justify-content:flex-start; margin-top:16px; }

  /* تحسينات لوحة المتابعة: مسافات وهوامش واضحة */
  .mfu-wrap{ margin-top:4px; }
  .dash-filter-bar{ margin-bottom:18px; }
  .mfu-alert{ margin-bottom:16px; }
  .mfu-late-bar{ margin-bottom:16px; }
  .mfu-progress{ margin-top:2px; margin-bottom:20px; }
  .mfu-filters{ margin-bottom:14px; }

  /* بطاقات الإحصائيات: تجاوب أوسع مع أحجام الشاشات (نفس الحجم/الارتفاع محفوظان أصلاً) */
  @media(max-width:480px){ .mfu-stats{ grid-template-columns:1fr; } }

  /* تلوين خفيف للصفوف حسب الحالة فقط — بلا تأثير على وضوح النص */
  /* تلوين الحالة أُزيل من جدول لوحة المتابعة — يتبع الآن التبادل الموحّد لكل الجداول */

  /* تثبيت عمود التاريخ (يمين — بداية الجدول في RTL) وعمود الإجراء (يسار — نهاية الجدول) */
  .mfu-table thead th:first-child,
  .mfu-table tbody td:first-child{
    position:sticky; right:0; z-index:3;
    background:inherit;
    box-shadow:-1px 0 0 var(--line);
  }
  .mfu-table thead th:first-child{ z-index:6; background:var(--navy-deep); color:#fff; }
  .mfu-table thead th:last-child,
  .mfu-table tbody td:last-child{
    position:sticky; left:0; z-index:3;
    background:inherit;
    box-shadow:1px 0 0 var(--line);
  }
  .mfu-table thead th:last-child{ z-index:6; background:var(--navy-deep); color:#fff; }

  .mfu-reason-text{ color:#b3261e; font-weight:600; }
  .mfu-reason-wrap{ display:flex; gap:6px; align-items:center; }
  .mfu-reason-inp{ flex:1; min-width:130px; border:1px solid var(--line); border-radius:6px; padding:5px 8px; font-family:'Tajawal',sans-serif; font-size:.78rem; }
  .mfu-reason-inp.mfu-required{ border-color:#D32F2F; box-shadow:0 0 0 2px rgba(211,47,47,.12); }
  .mfu-reason-save{ background:var(--navy-deep); color:#fff; border:none; border-radius:6px; padding:5px 9px; font-size:.72rem; font-weight:700; cursor:pointer; white-space:nowrap; }
  .mfu-reason-save:hover{ background:var(--navy); }
  .mfu-reason-save.saved{ background:var(--ds-success); }

  .dash-filter-bar{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:16px; padding:10px 12px; background:var(--paper); border:1px solid var(--line); border-radius:10px; }
  .dash-check{ display:inline-flex; align-items:center; gap:6px; font-size:.85rem; font-weight:700; color:var(--navy-deep); cursor:pointer; }
  .dash-check input{ width:16px; height:16px; cursor:pointer; }
  #dashMonthSelect{ border:1px solid var(--line); border-radius:7px; padding:6px 10px; font-family:'Tajawal',sans-serif; font-size:.84rem; background:#fff; min-width:160px; }
  #dashMonthSelect:disabled{ background:#f1f2f4; color:#9aa0aa; }
  .dash-filter-note{ font-size:.76rem; color:var(--ink-soft); }
  .dash-status{ display:inline-block; padding:3px 10px; border-radius:20px; font-size:.76rem; font-weight:700; white-space:nowrap; }
  .dash-status.ok{ background:#e4f3ea; color:#1e6b43; }
  .dash-status.no{ background:#fdeaea; color:#b3261e; }
  .dash-reason-wrap{ display:flex; gap:6px; align-items:center; }
  .dash-reason-inp{ flex:1; min-width:120px; border:1px solid var(--line); border-radius:6px; padding:5px 8px; font-family:'Tajawal',sans-serif; font-size:.78rem; }
  .dash-reason-save{ background:var(--navy-deep); color:#fff; border:none; border-radius:6px; padding:5px 9px; font-size:.72rem; font-weight:700; cursor:pointer; white-space:nowrap; }
  .dash-reason-save:hover{ background:var(--navy); }
  .dash-reason-save.saved{ background:var(--ds-success); }

  #teacherStatsBtn.stats-dirty{ background:var(--ds-danger); }
  #teacherStatsBtn.stats-dirty:hover{ background:#8e3232; }
  #teacherStatsBtn.stats-fresh{ background:var(--ds-success); }
  #teacherStatsBtn.stats-fresh:hover{ background:#19583b; }
  .tstats-sub{ font-size:.78rem; font-weight:700; color:var(--ink-soft); margin:12px 0 8px; }
  .tsave-all-bar{ margin-top:20px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
  .tsave-all-msg{ font-size:.82rem; font-weight:700; }
  .tsave-all-msg.ok{ color:#1e6b43; }
  .tsave-all-msg.err{ color:#b3261e; }
  .tstats-bar{ margin-top:20px; display:flex; }
  .tbottom-actions-bar{
    margin-top:24px; margin-bottom:90px; padding-top:16px; border-top:1px solid var(--line);
    display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  }
  .tbottom-actions-bar .btn-save{ padding:7px 14px; font-size:.8rem; margin-top:0; }
  .tbottom-actions-bar #teacherStatsBtn{ margin-right:0; }
  .tc-invalid{ border-color:#D32F2F !important; box-shadow:0 0 0 2px rgba(211,47,47,.12); border-radius:8px; }
  .tstats-card{
    margin-top:22px; background:var(--paper); border:1px solid var(--line);
    border-radius:12px; padding:16px 18px;
  }
  .tstats-head{ font-weight:800; color:var(--navy-deep); margin-bottom:12px; font-size:.95rem; }

  /* ===== الصف الأول: دوائر بخط رفيع (Outlined) ===== */
  .tstats-circles{ display:flex; flex-wrap:wrap; gap:18px; }
  .tstat-circle{
    flex:1 1 0; display:flex; flex-direction:column; align-items:center; gap:6px;
    min-width:86px; padding:10px 6px; border-radius:12px;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .tstat-circle:hover{
    transform:scale(1.06);
    box-shadow:0 0 22px -2px var(--tsc-color, var(--navy-deep)), 0 6px 18px rgba(22,35,63,.12);
  }
  .tstat-circle-total:hover{ box-shadow:0 0 22px -2px var(--navy-deep), 0 6px 18px rgba(22,35,63,.12); }
  .tsc-badge{
    width:56px; height:56px; border-radius:50%;
    border:2px solid var(--tsc-color, var(--navy-deep));
    color:var(--tsc-color, var(--navy-deep));
    display:flex; align-items:center; justify-content:center;
    background:#fff;
  }
  .tsc-badge svg{ width:26px; height:26px; }
  .tstat-circle span{ font-size:.78rem; color:var(--ink-soft); font-weight:600; text-align:center; }
  .tstat-circle b{ font-size:1.15rem; color:var(--navy-deep); font-weight:800; }
  /* دائرة "إجمالي المعلمين" — ممتلئة كحلية ومميَّزة */
  .tsc-badge-total{
    width:64px; height:64px; border-radius:50%;
    background:var(--navy-deep);
    display:flex; align-items:center; justify-content:center;
  }
  .tsc-badge-total b{ color:#fff; font-size:1.3rem; font-weight:800; }
  .tstat-circle-total span{ font-size:.8rem; font-weight:700; color:var(--navy-deep); }

  /* ===== الصفان الثاني والثالث: مستطيلات بأيقونة كبيرة ===== */
  .tstats-rects{ display:flex; flex-wrap:wrap; gap:12px; }
  .tstat-rect{
    flex:1 1 180px; min-width:170px; background:#fff; border:1px solid var(--line);
    border-radius:10px; padding:12px 14px; display:flex; flex-direction:row-reverse; align-items:center; justify-content:center; gap:12px;
    box-shadow:0 0 16px -6px rgba(22,35,63,.15);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .tstat-rect:hover{
    transform:scale(1.03);
    box-shadow:0 10px 22px rgba(22,35,63,.14);
  }
  .tsr-icon{
    width:42px; height:42px; border-radius:50%; flex-shrink:0;
    background:var(--tsc-bg, #EEF1F6);
    color:var(--tsc-color, var(--navy-deep));
    display:flex; align-items:center; justify-content:center;
  }
  .tsr-icon svg{ width:22px; height:22px; }
  .tsr-text{ display:flex; flex-direction:column; align-items:center; gap:2px; text-align:center; }
  .tsr-text b{ font-size:1.2rem; color:var(--navy-deep); font-weight:800; line-height:1.2; }
  .tsr-text span{ font-size:.78rem; color:var(--ink-soft); font-weight:600; }

  @media(max-width:640px){
    .tstats-circles{ gap:12px; }
    .tstat-circle{ min-width:74px; }
    .tsc-badge{ width:48px; height:48px; }
    .tsc-badge-total{ width:56px; height:56px; }
  }
  /* أزرار التنقّل العائمة في صفحة المعلمين */
  .teacher-scroll-nav{ position:fixed; left:20px; bottom:26px; z-index:900; display:flex; flex-direction:column; gap:8px; }
  .tsn-btn{
    width:42px; height:42px; border-radius:50%; background:var(--navy-deep); color:#fff;
    border:2px solid var(--gold); display:flex; align-items:center; justify-content:center;
    cursor:pointer; box-shadow:0 4px 14px rgba(0,0,0,.22); transition:background .15s, transform .12s;
  }
  .tsn-btn:hover{ background:var(--navy); transform:translateY(-2px); }
  .tsn-btn svg{ width:19px; height:19px; }
  @media print{ .teacher-scroll-nav{ display:none !important; } }
  @media(max-width:600px){ .teacher-scroll-nav{ left:12px; bottom:16px; } }

  .image-lightbox{
    position:fixed; inset:0;
    background:rgba(18,29,40,.85);
    display:none;
    align-items:center; justify-content:center;
    z-index:300;
    padding:30px;
  }
  .image-lightbox.show{ display:flex; }
  .image-lightbox img{
    max-width:90vw; max-height:85vh;
    border-radius:8px;
    box-shadow:0 12px 40px rgba(0,0,0,.4);
  }
  .image-lightbox-close{
    position:absolute;
    top:20px; left:20px;
    background:rgba(255,255,255,.15);
    border:none;
    color:#fff;
    width:38px; height:38px;
    border-radius:50%;
    font-size:1.3rem;
    cursor:pointer;
    display:flex; align-items:center; justify-content:center;
  }

  /* ===========================================================
     الوحدة 2 — بيانات المعلمين
     =========================================================== */
  .filter-bar{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:16px;
    flex-wrap:wrap;
  }
  .filter-search{
    flex:1 1 220px;
    position:relative;
    display:flex;
    align-items:center;
  }
  .filter-search svg{
    position:absolute;
    right:12px;
    width:16px; height:16px;
    color:var(--ink-faint);
    pointer-events:none;
  }
  .filter-search input{
    width:100%;
    border:1px solid var(--line);
    border-radius:8px;
    padding:9px 38px 9px 12px;
    font-family:'Tajawal',sans-serif;
    font-size:.86rem;
    background:var(--paper);
  }
  .filter-search input:focus{ outline:none; border-color:var(--burgundy); background:#fff; }
  #schoolFilterSelect{
    border:1px solid var(--line);
    border-radius:8px;
    padding:9px 12px;
    font-family:'Tajawal',sans-serif;
    font-size:.84rem;
    background:var(--paper);
    color:var(--ink);
    min-width:180px;
    cursor:pointer;
  }
  #schoolFilterSelect:focus{ outline:none; border-color:var(--burgundy); }
  .filter-count{
    font-size:.78rem;
    color:var(--ink-faint);
    white-space:nowrap;
  }

  .grades-pill{
    font-size:.74rem;
    background:var(--paper);
    border:1px solid var(--line);
    color:var(--ink-soft);
    padding:2px 9px;
    border-radius:10px;
    white-space:nowrap;
  }

  .load-input{
    width:64px;
    text-align:center;
    border:1px solid var(--line);
    border-radius:6px;
    padding:5px 4px;
    font-family:'Tajawal',sans-serif;
    font-size:.84rem;
    background:#fff;
  }
  .load-input:focus{ outline:none; border-color:var(--burgundy); }
  .load-diff{
    font-weight:700;
    font-size:.84rem;
  }
  .load-diff.balanced{ color:var(--ds-success); }
  .load-diff.over{ color:#C26B2E; }
  .load-diff.under{ color:var(--ds-danger); }

  .export-card{
    background:linear-gradient(135deg, var(--navy) 0%, var(--navy-soft) 100%);
    color:#fff;
  }
  .export-card .panel-card-head-icon{ background:var(--gold); color:var(--navy-deep); }
  .export-card h3{ color:#fff; }
  .export-card p{ color:rgba(255,255,255,.75) !important; }
  .export-card .btn-save{ margin-top:0; }

  /* ===== شبكة عدد الفصول (الشُعب) لكل صف (داخل نموذج إضافة معلم) ===== */
  .grades-load-section{
    margin-top:18px;
    padding-top:18px;
    border-top:1px dashed var(--line);
  }
  .grades-load-title{
    display:block;
    font-size:.82rem;
    font-weight:700;
    color:var(--ink);
    margin-bottom:10px;
  }
  .grades-load-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:12px;
  }
  @media (max-width:680px){ .grades-load-grid{ grid-template-columns:repeat(2,1fr); } }
  .grade-load-field label{
    display:block;
    font-size:.74rem;
    color:var(--ink-soft);
    margin-bottom:5px;
  }
  .grade-load-field select{
    width:100%;
    border:1px solid var(--line);
    border-radius:7px;
    padding:7px 8px;
    font-family:'Tajawal',sans-serif;
    font-size:.84rem;
    color:var(--ink);
    background:#fff;
    cursor:pointer;
  }
  .grade-load-field select:focus{ outline:none; border-color:var(--burgundy); }
  .grade-load-field input[type="number"]{
    width:100%;
    border:1px solid var(--line);
    border-radius:7px;
    padding:7px 8px;
    font-family:'Tajawal',sans-serif;
    font-size:.84rem;
    color:var(--ink);
    background:#fff;
  }
  .grade-load-field input[type="number"]:focus{ outline:none; border-color:var(--burgundy); }

  .nisab-display{
    margin-top:14px;
    background:var(--gold-light);
    border:1px solid var(--gold);
    border-radius:8px;
    padding:9px 14px;
    font-size:.84rem;
    font-weight:700;
    color:var(--burgundy-dark);
    text-align:center;
  }

  .grades-summary{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
  }
  .grades-summary .grades-pill{ font-size:.72rem; }

  .nisab-cell{
    font-weight:800;
    color:var(--navy);
    font-size:.92rem;
  }

  /* ===========================================================
     بطاقات المعلمين القابلة للتعديل المباشر
     =========================================================== */
  .teacher-cards-list{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .teacher-card{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:var(--radius-md);
    padding:16px 18px;
    transition:border-color .15s;
  }
  .teacher-card.is-dirty{ border-color:var(--gold); }

  .teacher-card-row1{
    display:grid;
    grid-template-columns:1.3fr 1.3fr 0.7fr 0.8fr 0.65fr 0.75fr 0.75fr 0.8fr auto;
    gap:10px;
    align-items:end;
    margin-bottom:14px;
  }
  @media (max-width:1100px){
    .teacher-card-row1{ grid-template-columns:repeat(3, 1fr); }
  }
  @media (max-width:900px){
    .teacher-card-row1{ grid-template-columns:repeat(2, 1fr); }
  }
  .tc-field label{
    display:block;
    font-size:.7rem;
    color:var(--ink-soft);
    margin-bottom:4px;
  }
  .tc-field input, .tc-field select{
    width:100%;
    border:1px solid var(--line);
    border-radius:7px;
    padding:7px 9px;
    font-family:'Tajawal',sans-serif;
    font-size:.85rem;
    color:var(--ink);
    background:#fff;
  }
  .tc-field input:focus, .tc-field select:focus{ outline:none; border-color:var(--burgundy); }
  .tc-field.tc-name input{ font-weight:700; }

  .tc-delete-btn{
    background:none;
    border:1px solid var(--line);
    color:var(--ds-danger);
    border-radius:7px;
    padding:7px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    transition:background .15s;
    height:36px;
    width:36px;
  }
  .tc-delete-btn:hover{ background:var(--ds-danger-bg); }
  .tc-delete-btn svg{ width:16px; height:16px; }

  .teacher-card-row2{
    padding-top:12px;
    border-top:1px dashed var(--line);
  }
  .tc-grades-label{
    display:block;
    font-size:.74rem;
    font-weight:700;
    color:var(--ink);
    margin-bottom:9px;
  }
  .tc-grades-grid{
    display:grid;
    grid-template-columns:repeat(8, 1fr);
    gap:8px;
    margin-bottom:12px;
  }
  @media (max-width:900px){ .tc-grades-grid{ grid-template-columns:repeat(4, 1fr); } }
  @media (max-width:520px){ .tc-grades-grid{ grid-template-columns:repeat(2, 1fr); } }
  .tc-grade-field label{
    display:block;
    font-size:.68rem;
    color:var(--ink-faint);
    margin-bottom:3px;
    text-align:center;
  }
  .tc-grade-field select{
    width:100%;
    border:1px solid var(--line);
    border-radius:6px;
    padding:5px 4px;
    font-family:'Tajawal',sans-serif;
    font-size:.8rem;
    color:var(--ink);
    background:#fff;
    text-align:center;
    cursor:pointer;
  }
  .tc-grade-field select:focus{ outline:none; border-color:var(--gold); }

  .teacher-card-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:10px;
  }
  .tc-nisab-badge{
    background:var(--gold-light);
    border:1px solid var(--gold);
    border-radius:8px;
    padding:6px 14px;
    font-size:.84rem;
    font-weight:800;
    color:var(--burgundy-dark);
  }
  .tc-exp-note{
    font-size:.76rem;
    color:var(--ink-faint);
  }
  .tc-save-btn{
    display:flex; align-items:center; gap:6px;
    background:var(--paper-card);
    color:var(--navy-deep);
    border:1.5px solid var(--gold);
    border-radius:7px;
    padding:7px 16px;
    font-family:'Tajawal',sans-serif;
    font-weight:700;
    font-size:.8rem;
    cursor:pointer;
    transition:background .15s;
  }
  .tc-save-btn:hover{ background:var(--gold-light); }
  .tc-save-btn:disabled{ background:#9aa7b4; border-color:#9aa7b4; color:#fff; cursor:not-allowed; opacity:.75; }
  .tc-save-btn:disabled:hover{ background:#9aa7b4; }
  .tc-save-btn svg{ width:14px; height:14px; }
  .tc-save-btn.saved{ background:var(--ds-success); }
  .tc-save-indicator{
    font-size:.76rem;
    color:var(--ds-success);
    font-weight:700;
    opacity:0;
    transition:opacity .25s;
  }
  .tc-save-indicator.show{ opacity:1; }

  /* ===========================================================
     الوحدة 3 — الخطط
     =========================================================== */
  .plan-tabs{
    display:flex;
    gap:8px;
    margin-bottom:20px;
    flex-wrap:wrap;
    border-bottom:1px solid var(--line);
    padding-bottom:0;
  }
  .plan-tab{
    display:flex; align-items:center; gap:7px;
    background:none;
    border:none;
    border-bottom:3px solid transparent;
    padding:10px 16px;
    font-family:'Tajawal',sans-serif;
    font-size:.86rem;
    font-weight:600;
    color:var(--ink-soft);
    cursor:pointer;
    border-radius:8px 8px 0 0;
    transition:color .2s ease, border-color .2s ease, background-color .2s ease;
    white-space:nowrap;
  }
  .plan-tab:hover{ color:var(--navy-deep); background:var(--paper); }
  .plan-tab.active{
    background:linear-gradient(180deg, var(--gold-light), var(--paper-card));
    box-shadow:0 -1px 0 var(--line) inset, 0 2px 6px rgba(184,137,62,.18);
  }
  .plan-tab svg{ width:16px; height:16px; flex-shrink:0; }
  .plan-tab:hover{ color:var(--navy); }
  .plan-tab:focus-visible{ outline:2px solid var(--gold); outline-offset:-2px; }
  .plan-tab.active{ color:var(--burgundy); border-bottom-color:var(--burgundy); border-bottom-width:4px; font-weight:800; }
.plan-tabs .plan-tab-excellence.active{ color:var(--c1); border-bottom-color:var(--c1); }
  /* الجدول الخام لخطة الإجادة يبقى يعمل بكامل منطقه، لكنه مخفي بصريًا خلف البطاقات */

  /* ===== إطار عمل موحّد لبطاقات الخطط (يُطبَّق على الخطط الثلاث كلها) ===== */
  .plan-summary{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; justify-content:flex-start; }
  #achTrack3Cards{ display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-start; align-items:stretch; direction:rtl; }
  #achTrack3Cards .plan-summary-card{ flex:1 1 250px; }
  .plan-summary-card{
    flex:1 1 110px; min-width:100px; min-height:88px; background:var(--paper-card); border:1px solid var(--ds-border);
    border-radius:var(--card-radius); box-shadow:var(--card-shadow); padding:14px 12px; text-align:center;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
    transition:box-shadow .2s ease, transform .2s ease;
  }
  .plan-summary-card:hover{ box-shadow:var(--card-shadow-hover); transform:translateY(-2px); }
  .plan-summary-card b{ display:block; font-size:1.35rem; font-weight:800; color:var(--navy); line-height:1.25; }
  .plan-summary-card span{ font-size:.74rem; color:var(--ink-soft); font-weight:500; }

  /* بطاقات ملخّص حالات النتائج المُحوَّلة إلى دوائر — خطة الإجادة فقط */
  .exc-status-ring-card{
    flex:1 1 110px; min-width:100px; min-height:100px;
    background:#FFFFFF; border:1px solid var(--line);
    border-radius:var(--card-radius); box-shadow:var(--card-shadow);
    padding:12px; text-align:center;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .exc-status-ring-card:hover{ transform:scale(1.05) translateY(-3px); box-shadow:var(--card-shadow-hover); }
  .exc-status-total-card b{ font-size:1.5rem; font-weight:800; color:var(--navy); }
  .exc-status-total-card span{ font-size:.72rem; color:var(--ink-soft); font-weight:600; }
  .exc-status-ring-wrap{ position:relative; width:52px; height:52px; }
  .exc-status-ring{ width:100%; height:100%; transform:rotate(-90deg); }
  .exc-status-ring-bg{ fill:none; stroke:var(--paper); stroke-width:5; }
  .exc-status-ring-fill{
    fill:none; stroke-width:5; stroke-linecap:round;
    stroke-dashoffset:var(--exc-ring-target);
  }
  .exc-status-ring-dot-group{ transform-origin:18px 18px; transform:rotate(var(--exc-ring-angle)); }
  .exc-status-ring-card:hover .exc-status-ring-fill{ animation:excSummaryRingDrawOnce .8s ease-out; }
  .exc-status-ring-card:hover .exc-status-ring-dot-group{ animation:excSummaryDotSweep .8s ease-out; }
  .exc-status-ring-dot{ fill:currentColor; stroke:#FFFFFF; stroke-width:1.2; }
  .exc-status-ring-count{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:.82rem; font-weight:800; color:var(--navy);
  }
  .exc-status-ring-label{ font-size:.72rem; color:var(--ink-soft); font-weight:600; }

  /* ===========================================================
     بطاقات مؤشرات لوحة المتابعة (KPI) — تصميم مستقل بالكامل عن
     plan-summary-card المشترك، بمستوى Power BI / Microsoft 365،
     مقصور حصرًا على #dashKpiCards دون أي تأثير على أي مكان آخر
     =========================================================== */
  #dashKpiCards{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:20px;
    margin:24px 6px;
  }
  .dash-kpi-card{
    position:relative;
    background:#FFFFFF;
    border-radius:18px;
    box-shadow:0 1px 2px rgba(16,24,40,.05), 0 4px 10px rgba(16,24,40,.05), 0 10px 22px rgba(16,24,40,.04);
    padding:11px 18px 14px;
    height:116px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:3px;
    cursor:pointer;
    overflow:hidden;
    transition:box-shadow .25s ease, transform .25s ease;
    opacity:1;
    animation:dashKpiCardIn .45s ease-out backwards;
  }
  .dash-kpi-card::before{
    content:"";
    position:absolute; top:-30px; left:-30px;
    width:90px; height:90px; border-radius:50%;
    background:currentColor;
    opacity:.05;
    pointer-events:none;
  }
  .dash-kpi-card.ach-clickable:hover{
    box-shadow:0 4px 8px rgba(16,24,40,.08), 0 14px 26px rgba(16,24,40,.12), 0 26px 44px rgba(16,24,40,.08);
    transform:translateY(-6px) scale(1.025);
  }
  .dash-kpi-card:nth-of-type(1){ animation-delay:.02s; }
  .dash-kpi-card:nth-of-type(2){ animation-delay:.08s; }
  .dash-kpi-card:nth-of-type(3){ animation-delay:.14s; }
  .dash-kpi-card:nth-of-type(4){ animation-delay:.20s; }
  .dash-kpi-card:nth-of-type(5){ animation-delay:.26s; }
  .dash-kpi-card:nth-of-type(6){ animation-delay:.32s; }
  @keyframes dashKpiCardIn{
    from{ opacity:0; transform:translateY(12px); }
    to{ opacity:1; transform:translateY(0); }
  }
  @media (prefers-reduced-motion: reduce){
    .dash-kpi-card{ animation:none; opacity:1; }
  }

  .dash-kpi-top{ display:flex; align-items:center; gap:9px; position:relative; z-index:1; }
  .dash-kpi-icon-circle{
    width:34px; height:34px;
    border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .dash-kpi-icon-circle svg{ width:18px; height:18px; }
  .dash-kpi-title{
    font-size:.86rem;
    font-weight:800;
    color:var(--ink-soft);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .dash-kpi-dots{
    width:20px; height:7px;
    color:var(--ink-faint);
    opacity:.55;
    margin-inline-start:auto;
    flex-shrink:0;
  }
  .dash-kpi-number{
    font-size:1.7rem;
    font-weight:800;
    color:var(--navy);
    line-height:1.1;
    position:relative; z-index:1;
  }
  .dash-kpi-desc{
    font-size:.74rem;
    color:var(--ink-faint);
    font-weight:700;
    position:relative; z-index:1;
  }
  /* موجة لونية أنيقة أسفل البطاقة — قمة وقاع فقط، بتدرّج لوني ذي منطقتين
     مختلفتين (فاتحة عند القمة، أعمق عند القاع)، تمنحها شخصية بصرية
     مستقلة. تتحرك فقط أثناء مرور الماوس على البطاقة، حركة متوسطة
     السرعة وناعمة، وتتوقف فورًا عند مغادرة الماوس */
  .dash-kpi-wave{
    position:absolute;
    bottom:0; right:0; left:0;
    width:100%; height:22px;
    opacity:.9;
    pointer-events:none;
    overflow:hidden;
  }
  .dash-kpi-wave-path{
    animation:dashKpiWaveMove 3s ease-in-out infinite;
    animation-play-state:paused;
  }
  .dash-kpi-card.ach-clickable:hover .dash-kpi-wave-path{
    animation-play-state:running;
  }
  @keyframes dashKpiWaveMove{
    from{ transform:translateX(0); }
    to{ transform:translateX(-300px); }
  }
  @media (prefers-reduced-motion: reduce){
    .dash-kpi-wave-path{ animation:none; }
  }

  /* الألوان الستة — لكل بطاقة هويتها الخاصة (الدائرة + الموجة + التوهج الركني) */
  .dash-kpi-blue{ color:#2563EB; }
  .dash-kpi-blue .dash-kpi-icon-circle{ background:#DBEAFE; }
  .dash-kpi-green{ color:#16A34A; }
  .dash-kpi-green .dash-kpi-icon-circle{ background:#DCFCE7; }
  .dash-kpi-purple{ color:#7C3AED; }
  .dash-kpi-purple .dash-kpi-icon-circle{ background:#EDE9FE; }
  .dash-kpi-red{ color:#DC2626; }
  .dash-kpi-red .dash-kpi-icon-circle{ background:#FEE2E2; }
  .dash-kpi-orange{ color:#EA580C; }
  .dash-kpi-orange .dash-kpi-icon-circle{ background:#FFEDD5; }
  .dash-kpi-gold{ color:var(--gold); }
  .dash-kpi-gold .dash-kpi-icon-circle{ background:var(--gold-light); }

  /* استجابة: Desktop 3×2، Tablet 2×3، Mobile 1×6 */
  @media (max-width:1100px){
    #dashKpiCards{ grid-template-columns:repeat(2, 1fr); }
  }
  @media (max-width:640px){
    #dashKpiCards{ grid-template-columns:1fr; margin:20px 4px; }
  }

  .dash-kpi-footer{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    margin:2px 6px 22px;
    font-size:.74rem;
    color:var(--ink-faint);
  }
  .dash-kpi-footer svg{ width:14px; height:14px; flex-shrink:0; }

  /* ===========================================================
     قسم متابعة التنفيذ — بطاقة واحدة كبيرة تحتوي 5 دوائر تقدّم
     بسيطة (نسبة + اسم فقط)، مستقلة تمامًا عن ms-progress-* المشترك
     =========================================================== */
  .dash-perf-card{
    background:#FFFFFF;
    border-radius:22px;
    box-shadow:0 1px 2px rgba(16,24,40,.04), 0 6px 16px rgba(16,24,40,.04), 0 14px 28px rgba(16,24,40,.03);
    padding:18px 22px; /* V64 — تصغير قليل بطلب المستخدم (كان 22px 26px) */
    margin:6px 6px 20px; /* V64 — كان 6px 6px 24px */
  }
  .dash-perf-header{ margin-bottom:12px; } /* V64 — كان 16px */
  .dash-perf-title{
    font-family:'Amiri',serif;
    font-size:1.15rem; /* V64 — كان 1.35rem */
    font-weight:700;
    color:var(--navy);
    margin:0;
  }

  .dash-ring-row{
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:clamp(18px, 4vw, 44px); /* V64 — كان clamp(24px, 5vw, 56px) */
    flex-wrap:wrap;
  }
  /* V80 — بطلب صريح: تمييز بصري بين مجموعتَي الدوائر (خطة الشهر الحالي/
     خطة إجادة) بعنوان فرعي صغير لكل مجموعة وفاصل رأسي بينهما، بدل صف
     دوائر واحد متجانس لا يوضّح انتماء كل دائرة */
  .dash-ring-group{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
  }
  .dash-ring-group-label{
    font-size:.78rem;
    font-weight:700;
    color:var(--ink-soft);
    white-space:nowrap;
  }
  .dash-ring-group-items{
    display:flex;
    align-items:flex-start;
    justify-content:center;
    gap:clamp(18px, 4vw, 44px);
    flex-wrap:wrap;
  }
  .dash-ring-group-divider{
    align-self:stretch;
    width:1px;
    background:var(--line);
    flex-shrink:0;
    margin-top:26px; /* يبدأ الفاصل بعد ارتفاع عنوان المجموعة تقريبًا */
  }
  @media(max-width:760px){
    .dash-ring-row{ flex-direction:column; align-items:stretch; gap:18px; }
    .dash-ring-group-divider{ width:auto; height:1px; align-self:auto; margin-top:0; }
  }
  .dash-ring-item{
    display:flex;
    flex-direction:column;
    align-items:center;
    cursor:pointer;
    transition:transform .25s ease, background .25s ease;
    flex:1 1 0;
    min-width:110px;
    padding:10px 8px;
    border-radius:18px;
    background:transparent;
  }
  .dash-ring-item:hover{
    transform:translateY(-6px);
    background:#FFFFFF;
    box-shadow:0 6px 18px rgba(16,24,40,.10);
  }
  /* V66 — تراجع بطلب المستخدم عن الخلفيات الضبابية الملونة (V65) وعودة
     لخلفية بيضاء بسيطة عند المرور (القاعدة أعلاه). القواعد الخمس التالية
     أُبقيت بلا حذف تماشيًا مع سياسة المشروع، وأصبحت الآن بنفس اللون
     الأبيض أيضًا فلا فرق بصري فعلي — مُبقاة فقط كسجل توثيقي للألوان
     السابقة، لا لأي غرض وظيفي حاليًا. */
  .dash-ring-item.dash-ring-blue:hover{ background:#FFFFFF; }
  .dash-ring-item.dash-ring-green:hover{ background:#FFFFFF; }
  .dash-ring-item.dash-ring-purple:hover{ background:#FFFFFF; }
  .dash-ring-item.dash-ring-orange:hover{ background:#FFFFFF; }
  .dash-ring-item.dash-ring-gold:hover{ background:#FFFFFF; }

  .dash-ring-wrap{
    position:relative;
    width:84px; height:84px; /* V64 — تصغير قليل (كان 100px) */
    margin-bottom:10px;
  }
  /* دائرة "إنجاز الزيارات" أكبر قليلًا (~12%) بصفتها أهم مؤشر في الصفحة —
     تكبير بصري بحت للحاوية، لا يمسّ أي حساب أو منطق حركة */
  .dash-ring-featured .dash-ring-wrap{
    width:96px; height:96px; /* V64 — تصغير قليل (كان 114px) */
  }
  .dash-ring-svg{
    width:100%; height:100%;
    transform:rotate(-90deg);
    overflow:visible;
  }
  .dash-ring-bg{
    fill:none;
    stroke:var(--paper);
    stroke-width:8;
  }
  .dash-ring-fill{
    fill:none;
    stroke:currentColor;
    stroke-width:8;
    stroke-linecap:round;
  }
  .dash-ring-dot-group{
    transform-origin:50px 50px;
    transform:rotate(var(--ring-angle));
  }
  .dash-ring-dot{
    fill:currentColor;
    stroke:#FFFFFF;
    stroke-width:2;
  }
  /* إعادة الرسم من الصفر عند كل مرور — Keyframes وليست انتقالًا عاديًا،
     لتتكرر في كل مرة يُمرَّر فيها الماوس، لا لمرة واحدة فقط. تتوقف عند
     النسبة الفعلية فور انتهاء الحركة (لا حركة مستمرة) */
  .dash-ring-item:hover .dash-ring-fill{
    animation:dashRingDraw .9s ease-out;
  }
  .dash-ring-item:hover .dash-ring-dot-group{
    animation:dashRingDotSweep .9s ease-out;
  }
  @keyframes dashRingDraw{
    from{ stroke-dashoffset:var(--ring-circ); }
    to{ stroke-dashoffset:var(--ring-offset); }
  }
  @keyframes dashRingDotSweep{
    from{ transform:rotate(0deg); }
    to{ transform:rotate(var(--ring-angle)); }
  }
  @media (prefers-reduced-motion: reduce){
    .dash-ring-item:hover .dash-ring-fill,
    .dash-ring-item:hover .dash-ring-dot-group{ animation:none; }
  }

  /* V82 — قلب حركة "دائرة المقارنة" العامة (dashRingCompareSVG): بدل رسم من
     الصفر كـdash-ring-fill العادية، الحلقة تبدأ عند قيمة "قبل" وتنتقل بـ
     transition سلسة إلى قيمة "بعد" عند مرور المؤشر/التركيز على الحاوية
     الأب (أي عنصر — بلا ارتباط بسياق استخدام معيّن، تفعَّل عبر :hover العام
     أدناه بالإضافة إلى تفعيل مخصّص من مستدعيها، كما في بطاقة قياس الأثر) */
  .dash-ring-compare-fill{
    stroke-dashoffset:var(--ring-offset-before);
    transition:stroke-dashoffset .48s cubic-bezier(.2,.85,.2,1);
  }
  .dash-ring-compare-dot-group{
    transform:rotate(var(--ring-angle-before));
    transition:transform .48s cubic-bezier(.2,.85,.2,1);
  }
  @media (prefers-reduced-motion: reduce){
    .dash-ring-compare-fill, .dash-ring-compare-dot-group{ transition:none; }
  }

  .dash-ring-pct{
    position:absolute;
    top:50%; left:50%;
    transform:translate(-50%, -50%);
    font-size:1.1rem; /* V64 — كان 1.35rem */
    font-weight:800;
    color:var(--navy);
  }
  .dash-ring-name{
    font-size:.74rem; /* V64 — كان .8rem */
    font-weight:500;
    color:var(--navy);
    text-align:center;
  }

  /* الألوان الخمسة — لكل مؤشر هويته الخاصة (الحلقة + النقطة) */
  .dash-ring-blue{ color:#2563EB; }
  .dash-ring-green{ color:#16A34A; }
  .dash-ring-purple{ color:#7C3AED; }
  .dash-ring-orange{ color:#EA580C; }
  .dash-ring-gold{ color:var(--gold); }

  @media (max-width:900px){
    .dash-ring-row{ flex-wrap:wrap; justify-content:center; }
    .dash-ring-item{ flex:0 0 30%; }
  }
  @media (max-width:640px){
    .dash-perf-card{ padding:20px 18px; margin:6px 4px 20px; }
    .dash-perf-title{ font-size:1.15rem; }
    .dash-ring-item{ flex:0 0 42%; }
    .dash-ring-wrap{ width:82px; height:82px; }
    .dash-ring-featured .dash-ring-wrap{ width:92px; height:92px; }
  }

  .dash-perf-footer{
    margin-top:20px;
    padding-top:14px;
    border-top:1px solid var(--line);
    text-align:center;
    font-size:.7rem;
    color:var(--ink-faint);
  }

  /* ===========================================================
     إعادة تصميم خطة الإجادة — مستقل تمامًا عن plan-goal-card
     المشترك (المُستخدَم في التحصيل والإنماء المهني)
     Executive Dashboard + بطاقات أهداف بأسلوب Roadmap
     =========================================================== */
  .exc-summary-card{
    background:#FFFFFF; border:1px solid var(--line); border-radius:var(--radius-lg);
    box-shadow:var(--shadow);
    padding:20px 20px; margin-bottom:16px;
    display:flex; flex-direction:column; align-items:center; text-align:center;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .exc-summary-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-deep); }
  .exc-summary-title{ font-size:1.2rem; font-weight:800; color:var(--navy); margin-bottom:18px; }
  .exc-summary-ring-wrap{
    position:relative; width:86px; height:86px;
    filter:drop-shadow(0 0 9px var(--exc-color));
  }
  .exc-summary-ring{ width:100%; height:100%; transform:rotate(-90deg); }
  .exc-summary-ring-bg{ fill:none; stroke:var(--paper); stroke-width:10; }
  .exc-summary-ring-fill{
    fill:none; stroke-width:10; stroke-linecap:round;
    stroke-dashoffset:var(--exc-ring-target);
  }
  .exc-summary-ring-wrap:hover .exc-summary-ring-fill{ animation:excSummaryRingDrawOnce 1s ease-out; }
  @keyframes excSummaryRingDrawOnce{
    from{ stroke-dashoffset:var(--exc-ring-circ); }
    to{ stroke-dashoffset:var(--exc-ring-target); }
  }
  .exc-summary-ring-pct{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:1.25rem; font-weight:800; color:var(--navy);
  }
  .exc-summary-ring-dot-group{
    transform-origin:50px 50px; transform:rotate(var(--exc-ring-angle));
  }
  .exc-summary-ring-dot{ fill:currentColor; stroke:#FFFFFF; stroke-width:2; }
  .exc-summary-ring-wrap:hover .exc-summary-ring-dot-group{ animation:excSummaryDotSweep 1s ease-out; }
  @keyframes excSummaryDotSweep{
    from{ transform:rotate(0deg); }
    to{ transform:rotate(var(--exc-ring-angle)); }
  }
  .exc-summary-divider{ width:100%; max-width:340px; height:1px; background:var(--line); margin:12px 0; }
  .exc-summary-level-value{ font-size:1.45rem; font-weight:800; }
  .exc-summary-level-label{ font-size:.76rem; color:var(--ink-faint); font-weight:600; margin-top:3px; }
  .exc-summary-minicards{ display:flex; gap:10px; width:100%; }
  .exc-mini-card{
    flex:1 1 0; min-width:0;
    display:flex; flex-direction:column; align-items:center; gap:5px;
    padding:12px 8px; border-radius:12px;
    background:var(--paper); border:1px solid var(--line);
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }
  .exc-mini-card:hover{
    transform:translateY(-4px);
    box-shadow:0 8px 18px -4px var(--exc-color);
    border-color:var(--exc-color);
  }
  .exc-mini-icon{
    font-size:1.15rem; width:34px; height:34px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:#FFFFFF; color:var(--exc-color); border:1.5px solid var(--exc-color);
  }
  .exc-mini-value{ font-size:1.2rem; font-weight:800; color:var(--navy); line-height:1.2; }
  .exc-mini-label{ font-size:.7rem; color:var(--ink-faint); font-weight:600; text-align:center; }

  /* بطاقات الأهداف — Roadmap رأسي */
  .exc-goals-stack{ display:flex; flex-direction:column; gap:16px; }
  .exc-goal-block{ display:flex; flex-direction:column; }
  .exc-goal-card{
    background:#FFFFFF; border:1px solid var(--line); border-radius:var(--radius-lg);
    box-shadow:var(--shadow); overflow:hidden; cursor:default;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .exc-goal-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-deep); }
  .exc-goal-topbar{ height:5px; background:var(--exc-color); }
  .exc-goal-content{ padding:18px 20px; }
  .exc-goal-header-row{ display:flex; align-items:center; gap:12px; margin-bottom:14px; }
  .exc-goal-circle-num{
    width:34px; height:34px; border-radius:50%; flex-shrink:0;
    background:var(--exc-color); color:#fff; font-weight:800; font-size:.92rem;
    display:flex; align-items:center; justify-content:center;
  }
  .exc-goal-name{ flex:1; font-size:.96rem; font-weight:800; color:var(--navy); }
  .exc-goal-weight-badge{
    font-size:.76rem; font-weight:800; color:#fff;
    background:var(--exc-color); opacity:.85;
    padding:4px 12px; border-radius:999px; flex-shrink:0;
  }
  .exc-goal-progress-track{
    height:8px; background:var(--paper); border-radius:999px; overflow:hidden;
    margin-bottom:8px;
  }
  .exc-goal-progress-fill{
    height:100%; border-radius:999px; background:var(--exc-color);
    transition:width .5s ease;
  }
  .exc-goal-progress-row{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
  .exc-goal-progress-pct{ font-size:.86rem; font-weight:800; color:var(--navy); }
  .exc-goal-results-count{ font-size:.78rem; color:var(--ink-soft); font-weight:600; }
  .exc-goal-linked-badge{ font-size:.72rem; color:var(--navy); font-weight:700; background:var(--gold-light); padding:4px 8px; border-radius:8px; display:inline-block; }
  .exc-goal-view-btn{
    width:100%; background:var(--paper); border:1px solid var(--line); border-radius:9px;
    padding:9px; font-size:.82rem; font-weight:700; color:var(--navy); cursor:pointer;
    transition:background .15s ease;
  }
  .exc-goal-view-btn:hover{ background:var(--gold-light); }

  /* Accordion النتائج — يفتح مباشرة أسفل بطاقة الهدف نفسها */
  .exc-results-accordion{
    margin-top:10px; padding:16px 4px 4px;
    animation:excAccordionOpen .3s ease;
  }
  @keyframes excAccordionOpen{
    from{ opacity:0; transform:translateY(-8px); max-height:0; }
    to{ opacity:1; transform:translateY(0); max-height:2000px; }
  }

  .exc-result-card{
    background:#FFFFFF; border:1px solid var(--line); border-radius:var(--radius-lg);
    border-inline-start:4px solid var(--exc-color);
    box-shadow:var(--shadow); padding:14px 18px; margin-bottom:12px;
    transition:box-shadow .2s ease;
  }
  .exc-result-card:hover{ box-shadow:var(--shadow-deep); }
  .exc-result-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; }
  .exc-result-headline{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .exc-result-text{ font-size:.9rem; font-weight:700; color:var(--ink); }
  .exc-result-weight{ font-size:.72rem; color:var(--gold); font-weight:700; }
  .exc-result-pct{ font-size:1rem; font-weight:800; flex-shrink:0; }

  .exc-result-slider{ display:flex; align-items:center; gap:8px; margin-top:12px; }
  .exc-slider-label{ font-size:.68rem; color:var(--ink-faint); font-weight:700; flex-shrink:0; }
  .exc-slider-track{ position:relative; flex:1; height:6px; background:var(--paper); border-radius:999px; }
  .exc-slider-fill{ position:absolute; top:0; right:0; height:100%; border-radius:999px; transition:width .4s ease; }
  .exc-slider-dot{
    position:absolute; top:50%; width:14px; height:14px; border-radius:50%;
    transform:translate(50%,-50%); border:2px solid #fff; box-shadow:0 0 0 1px rgba(0,0,0,.08);
    transition:right .4s ease;
  }
  .exc-slider-track-spacer{ flex:1; }

  .exc-result-details{ margin-top:14px; padding-top:12px; border-top:1px dashed var(--line); }
  .exc-detail-row{ font-size:.82rem; color:var(--ink-soft); margin-bottom:8px; line-height:1.6; }
  .exc-detail-row b{ color:var(--navy); }
  .exc-detail-muted{ color:var(--ink-faint); font-style:italic; }
  .exc-save-btn{ margin-top:4px; }

  /* ===========================================================
     الهدف الأول فقط — شريط متابعة وبطاقات تقييم مهني موثَّق
     =========================================================== */
  .exc-g1-tracking{
    display:flex; flex-wrap:wrap; gap:14px;
    background:var(--paper); border-radius:12px; padding:16px;
    margin-bottom:18px;
  }
  .exc-g1-stat{ flex:1 1 110px; display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; }
  .exc-g1-stat-value{ font-size:1.15rem; font-weight:800; color:var(--navy); }
  .exc-g1-stat-label{ font-size:.7rem; color:var(--ink-faint); font-weight:600; }

  .exc-g1-stat-ring-final{ display:flex; flex-direction:column; align-items:center; gap:4px; }
  .exc-g1-final-ring-wrap{
    position:relative; width:56px; height:56px;
    filter:drop-shadow(0 0 10px var(--exc-color));
  }
  .exc-g1-final-ring{ width:100%; height:100%; transform:rotate(-90deg); }
  .exc-g1-final-ring-bg{ fill:none; stroke:var(--line); stroke-width:5; }
  .exc-g1-final-ring-fill{
    fill:none; stroke-width:5; stroke-linecap:round;
    stroke-dashoffset:var(--exc-ring-target);
  }
  .exc-g1-final-ring-dot-group{ transform-origin:18px 18px; transform:rotate(var(--exc-ring-angle)); }
  .exc-g1-final-ring-wrap:hover .exc-g1-final-ring-fill{ animation:excSummaryRingDrawOnce .8s ease-out; }
  .exc-g1-final-ring-wrap:hover .exc-g1-final-ring-dot-group{ animation:excSummaryDotSweep .8s ease-out; }
  .exc-g1-final-ring-dot{ fill:currentColor; stroke:#FFFFFF; stroke-width:1.2; }
  .exc-g1-final-ring-pct{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:.72rem; font-weight:800; color:var(--navy);
  }

  .exc-g1-status-select{
    width:auto; min-width:130px; border:1px solid var(--line); border-radius:9px;
    padding:8px 10px; font-family:inherit; font-size:.82rem; color:var(--ink);
    margin-bottom:16px; background:#FFFFFF; cursor:pointer;
  }
  .exc-g1-status-badge{
    font-size:.72rem; font-weight:700; padding:3px 10px; border-radius:999px;
  }
  .exc-g1-status-completed{ color:#16A34A; background:#DCFCE7; }
  .exc-g1-status-postponed{ color:#DC2626; background:#FEE2E2; }

  .exc-g1-result-card{
    background:#FFFFFF; border:1px solid var(--line); border-radius:var(--radius-lg);
    box-shadow:var(--shadow), 0 0 20px -8px var(--exc-color); padding:16px 18px; margin-bottom:14px;
  }
  .exc-g1-result-head{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:6px; }
  .exc-g1-result-name{ font-size:.92rem; font-weight:800; color:var(--navy); flex:1; }
  .exc-g1-result-weight{ font-size:.76rem; font-weight:700; color:var(--gold); }
  .exc-g1-approved-badge{ font-size:.72rem; font-weight:700; color:#16A34A; background:#DCFCE7; padding:3px 10px; border-radius:999px; }
  .exc-g1-pending-badge{ font-size:.72rem; font-weight:700; color:var(--ink-faint); background:var(--paper); padding:3px 10px; border-radius:999px; }
  .exc-g1-rejected-badge{ font-size:.72rem; font-weight:700; color:#DC2626; background:#FEE2E2; padding:3px 10px; border-radius:999px; }
  .exc-g1-progress-badge{ font-size:.72rem; font-weight:700; color:#B45309; background:#FEF3C7; padding:3px 10px; border-radius:999px; }
  .exc-g1-postponed-badge{ font-size:.72rem; font-weight:700; color:#B91C1C; background:rgba(254,226,226,.78); padding:3px 10px; border-radius:999px; }
  .exc-linked-earned-summary{ display:flex; flex-wrap:wrap; gap:10px 22px; align-items:center; }
  .exc-linked-earned-summary b{ color:var(--exc-color, #7C3AED); }
  .exc-g1-result-type{ font-size:.76rem; color:var(--ink-soft); margin-bottom:14px; }

  .exc-g1-eval-label, .exc-g1-evidence-label{ font-size:.82rem; font-weight:700; color:var(--navy); margin-bottom:8px; }
  .exc-g1-level-options{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
  .exc-g1-level-option{
    display:flex; align-items:center; gap:6px; cursor:pointer;
    padding:7px 14px; border:1.5px solid var(--line); border-radius:9px;
    font-size:.82rem; font-weight:700; color:var(--ink-soft);
    transition:border-color .15s ease, color .15s ease;
  }
  .exc-g1-level-option input{ cursor:pointer; }
  .exc-g1-level-option:has(input:checked){ border-color:var(--navy); color:var(--navy); background:var(--paper); }
  .exc-g1-evidence-input{
    width:100%; border:1px solid var(--line); border-radius:9px;
    padding:10px 12px; font-family:inherit; font-size:.84rem; color:var(--ink);
    resize:vertical; margin-bottom:14px;
  }
  .exc-g1-approve-btn{ margin-top:2px; }
  .exc-g1-approved-summary{
    background:var(--paper); border-radius:9px; padding:10px 12px;
    font-size:.82rem; color:var(--ink-soft); margin-bottom:12px;
  }
  .exc-g1-approved-summary b{ color:var(--navy); }
  .exc-g1-edit-btn{ background:#FFFFFF; color:var(--navy); border:1.5px solid var(--line); }
  .exc-g1-edit-btn:hover{ background:var(--paper); }

  /* ===========================================================
     PROTOTYPE — تصميم عمودين لخطة الإجادة (UX Experiment)
     =========================================================== */
  .exc-proto-split{ display:flex; gap:20px; align-items:flex-start; }

  /* ===========================================================
     تصميم الأكورديون لخطة الإجادة — هيكل عام فقط، بلا أي تغيير
     في منطق النتائج أو الحسابات
     =========================================================== */
  .exc-acc-stack{ display:flex; flex-direction:column; gap:10px; }
  .exc-acc-goal-block{
    border:1.5px solid var(--line); border-radius:14px; overflow:hidden;
    background:#FFFFFF;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .exc-acc-goal-block.exc-acc-open{ border-color:var(--exc-color); box-shadow:var(--shadow); }
  .exc-acc-header{
    display:flex; align-items:center; gap:12px; padding:14px 18px;
    cursor:pointer; user-select:none;
  }
  .exc-acc-num{
    width:30px; height:30px; border-radius:50%; flex-shrink:0;
    background:var(--exc-color); color:#fff; font-weight:800; font-size:.85rem;
    display:flex; align-items:center; justify-content:center;
  }
  .exc-acc-title{ flex:1; min-width:0; font-weight:700; color:var(--navy); font-size:.95rem; }
  .exc-acc-toggle-btn{
    width:32px; height:32px; border-radius:50%; flex-shrink:0;
    border:1.5px solid var(--exc-color); background:#FFFFFF; color:var(--exc-color);
    font-size:1.2rem; font-weight:800; cursor:pointer; line-height:1; padding:0;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease, color .2s ease, transform .2s ease;
  }
  .exc-acc-toggle-btn:hover{ background:var(--exc-color); color:#fff; transform:scale(1.1); }

  .exc-acc-body{
    display:grid; grid-template-rows:1fr;
    animation:excAccExpand .32s ease;
  }
  @keyframes excAccExpand{
    from{ grid-template-rows:0fr; opacity:0; }
    to{ grid-template-rows:1fr; opacity:1; }
  }
  .exc-acc-body-inner{ overflow:hidden; padding:0 18px 18px; animation:excAccFadeIn .35s ease; }
  @keyframes excAccFadeIn{
    from{ opacity:0; transform:translateY(-4px); }
    to{ opacity:1; transform:translateY(0); }
  }

  .exc-acc-mini-dash{
    display:flex; align-items:center; gap:20px;
    background:var(--paper); border-radius:12px; padding:12px 16px; margin-bottom:14px;
  }
  .exc-acc-mini-stat{ display:flex; flex-direction:column; gap:2px; }
  .exc-acc-mini-value{ font-size:1.1rem; font-weight:800; color:var(--exc-color); }
  .exc-acc-mini-label{ font-size:.72rem; color:var(--ink-soft); font-weight:600; }
  .exc-acc-mini-ring-item{ display:flex; align-items:center; gap:8px; }
  .exc-acc-mini-ring-wrap{ position:relative; width:44px; height:44px; flex-shrink:0; }
  .exc-acc-mini-ring{ width:100%; height:100%; transform:rotate(-90deg); }
  .exc-acc-mini-ring-bg{ fill:none; stroke:var(--line); stroke-width:5; }
  .exc-acc-mini-ring-fill{ fill:none; stroke-width:5; stroke-linecap:round; }
  .exc-acc-mini-ring-pct{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:.68rem; font-weight:800; color:var(--navy);
  }

  .exc-acc-results-list{ display:flex; flex-direction:column; gap:10px; }
  .exc-acc-close-btn{
    width:100%; margin-top:14px; padding:10px; border-radius:10px;
    border:1.5px solid var(--line); background:#FFFFFF; color:var(--ink-soft);
    font-weight:700; font-size:.85rem; cursor:pointer;
    transition:background .2s ease, border-color .2s ease, color .2s ease;
  }
  .exc-acc-close-btn:hover{ background:var(--paper); border-color:var(--exc-color, var(--line)); color:var(--navy); }

  .exc-proto-left{
    flex:0 0 300px; display:flex; flex-direction:column; gap:9px;
    transition:flex-basis .3s ease;
  }
  /* الانطواء: يبقى رقم الهدف فقط ظاهرًا، ويتمدَّد العمود بالكامل عند
     مرور الماوس عليه (CSS خالص، بلا إعادة رسم) */
  .exc-proto-left-collapsed{ flex-basis:64px; }
  .exc-proto-left-collapsed .exc-proto-goal-mid,
  .exc-proto-left-collapsed .exc-proto-goal-ring-wrap,
  .exc-proto-left-collapsed .exc-proto-goal-check-wrap{
    opacity:0; width:0; overflow:hidden; transition:opacity .2s ease, width .2s ease;
  }
  .exc-proto-left-collapsed .exc-proto-goal-card{ justify-content:center; padding:12px 8px; }
  .exc-proto-left-collapsed:hover{ flex-basis:300px; }
  .exc-proto-left-collapsed:hover .exc-proto-goal-card{ justify-content:flex-start; padding:12px 16px; }
  .exc-proto-left-collapsed:hover .exc-proto-goal-mid,
  .exc-proto-left-collapsed:hover .exc-proto-goal-ring-wrap,
  .exc-proto-left-collapsed:hover .exc-proto-goal-check-wrap{
    opacity:1; width:auto; overflow:visible;
  }
  .exc-proto-goal-card{
    position:relative;
    display:flex; align-items:center; gap:12px;
    background:#FFFFFF; border:1.5px solid var(--line); border-radius:14px;
    box-shadow:var(--shadow), 0 0 26px -6px var(--exc-color);
    padding:10px 16px; height:66px;
    cursor:pointer; overflow:hidden;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
  }
  .exc-proto-goal-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-deep), 0 0 32px -4px var(--exc-color); }
  .exc-proto-goal-active{ border-color:var(--exc-color); background:var(--paper); }
  .exc-proto-goal-glowline{
    position:absolute; top:0; right:0; bottom:0; width:4px;
    background:var(--exc-color); opacity:0; transition:opacity .2s ease;
  }
  .exc-proto-goal-card:hover .exc-proto-goal-glowline,
  .exc-proto-goal-active .exc-proto-goal-glowline{ opacity:1; }
  .exc-proto-goal-num{
    width:26px; height:26px; border-radius:50%; flex-shrink:0;
    background:var(--exc-color); color:#fff; font-weight:800; font-size:.78rem;
    display:flex; align-items:center; justify-content:center;
  }
  .exc-proto-goal-mid{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
  .exc-proto-goal-name{
    font-size:.82rem; font-weight:700; color:var(--navy);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  .exc-proto-goal-weight{ font-size:.7rem; font-weight:700; color:var(--gold); align-self:flex-start; }
  .exc-proto-goal-ring-wrap{ position:relative; width:44px; height:44px; flex-shrink:0; }
  .exc-proto-goal-ring{ width:100%; height:100%; transform:rotate(-90deg); }
  .exc-proto-ring-bg{ fill:none; stroke:var(--paper); stroke-width:6; }
  .exc-proto-ring-fill{ fill:none; stroke:var(--exc-color); stroke-width:6; stroke-linecap:round; }
  .exc-proto-goal-card:hover .exc-proto-ring-fill{ animation:excProtoRingDraw .8s ease-out; }
  @keyframes excProtoRingDraw{
    from{ stroke-dashoffset:var(--exc-ring-circ); }
    to{ stroke-dashoffset:var(--exc-ring-target); }
  }
  .exc-proto-goal-pct{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:.66rem; font-weight:800; color:var(--navy);
  }
  .exc-proto-goal-check-wrap{
    width:44px; height:44px; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
  }
  .exc-proto-goal-check-big{
    width:34px; height:34px; border-radius:50%;
    background:var(--exc-color); color:#fff;
    display:flex; align-items:center; justify-content:center;
    font-size:1.1rem; font-weight:800;
    animation:excCheckPop .3s ease;
  }
  @keyframes excCheckPop{
    from{ transform:scale(.5); opacity:0; }
    to{ transform:scale(1); opacity:1; }
  }

  .exc-proto-right{
    flex:1; min-width:0;
    background:#FFFFFF; border:1px solid var(--line); border-radius:14px;
    box-shadow:var(--shadow); padding:22px 24px; min-height:400px;
  }
  .exc-proto-empty-state{
    display:flex; align-items:center; justify-content:center; height:340px;
    color:var(--ink-faint); font-size:.92rem; font-weight:600; text-align:center;
  }
  .exc-proto-right-header{ margin-bottom:18px; padding-bottom:16px; border-bottom:1px solid var(--line); }
  .exc-proto-right-titlerow{ display:flex; align-items:center; gap:10px; margin-bottom:10px; }
  .exc-proto-right-num{
    width:28px; height:28px; border-radius:50%; flex-shrink:0;
    background:var(--exc-color); color:#fff; font-weight:800; font-size:.8rem;
    display:flex; align-items:center; justify-content:center;
  }
  .exc-proto-right-name{ font-size:1.05rem; font-weight:800; color:var(--navy); margin:0; }
  .exc-proto-right-stats{ display:flex; gap:20px; flex-wrap:wrap; align-items:center; }
  .exc-proto-right-stat{ font-size:.82rem; color:var(--ink-soft); }
  .exc-proto-right-stat b{ color:var(--navy); }
  .exc-proto-right-stat-ring{ display:flex; align-items:center; gap:8px; }
  .exc-proto-mini-ring-wrap{ width:32px; height:32px; flex-shrink:0; }
  .exc-proto-mini-ring{ width:100%; height:100%; transform:rotate(-90deg); }
  .exc-proto-mini-ring-bg{ fill:none; stroke:var(--paper); stroke-width:5; }
  .exc-proto-mini-ring-fill{
    fill:none; stroke-width:5; stroke-linecap:round;
    stroke-dashoffset:var(--exc-ring-target);
    animation:excSummaryRingDrawOnce .8s ease-out forwards;
  }

  .exc-proto-results-list{ display:flex; flex-direction:column; gap:10px; }
  .exc-proto-result-card{
    background:var(--paper); border:1px solid var(--line); border-radius:11px;
    padding:10px 14px; transition:box-shadow .15s ease;
    box-shadow:0 0 18px -8px var(--exc-color);
  }
  .exc-proto-result-card:hover{ box-shadow:var(--shadow), 0 0 22px -6px var(--exc-color); }
  .exc-proto-result-top{ display:flex; align-items:center; gap:10px; cursor:pointer; }
  .exc-proto-result-mini-ring{
    width:12px; height:12px; border-radius:50%; flex-shrink:0;
    background:var(--exc-color);
  }
  .exc-proto-result-info{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
  .exc-proto-result-name{ font-size:.82rem; font-weight:700; color:var(--ink); }
  .exc-proto-result-meta{ font-size:.68rem; color:var(--ink-faint); }
  .exc-proto-auto-badge{ font-size:.68rem; font-weight:700; color:#16A34A; background:#DCFCE7; padding:3px 9px; border-radius:999px; flex-shrink:0; }
  .exc-proto-pct-badge{ font-size:.86rem; font-weight:800; flex-shrink:0; }
  .exc-proto-result-details{ margin-top:10px; padding-top:10px; border-top:1px dashed var(--line); }

  @media (max-width:1100px){
    .exc-proto-split{ flex-direction:column; }
    .exc-proto-left{ flex:1 1 auto; flex-direction:row; flex-wrap:wrap; }
    .exc-proto-goal-card{ flex:1 1 260px; }
  }

  @media (max-width:640px){
    .exc-summary-minicards{ flex-wrap:wrap; }
    .exc-mini-card{ flex:1 1 40%; }
  }

  .plan-cards{ display:flex; flex-direction:column; gap:16px; margin-top:6px; }
  .plan-goal-card{
    background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius-lg);
    box-shadow:var(--shadow); padding:18px 20px; transition:box-shadow .2s ease;
  }
  .plan-goal-card:hover{ box-shadow:0 2px 6px rgba(20,30,40,.08), 0 10px 26px rgba(20,30,40,.08); }
  .plan-goal-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
  .plan-goal-num{ background:var(--c1-bg); color:var(--c1); font-weight:800; font-size:.78rem; padding:4px 12px; border-radius:20px; }
  .plan-goal-weight{ background:var(--gold-light); color:var(--navy-deep); font-weight:700; font-size:.76rem; padding:4px 12px; border-radius:20px; }
  .plan-goal-status{ font-weight:700; font-size:.76rem; padding:4px 12px; border-radius:20px; }
  .plan-goal-progress-wrap{ display:flex; align-items:center; gap:8px; font-size:.76rem; color:var(--ink-soft); }
  .plan-goal-progress-track{ width:90px; height:7px; background:var(--paper); border-radius:6px; overflow:hidden; }
  .plan-goal-progress-fill{ height:100%; background:var(--c1); border-radius:6px; }
  .plan-goal-edit,.plan-goal-del{ background:var(--paper); border:1.5px solid var(--line); cursor:pointer; padding:5px 8px; border-radius:8px; }
  .plan-goal-edit{ color:var(--navy); } .plan-goal-edit:hover:not(:disabled){ background:var(--gold-light); border-color:var(--gold); box-shadow:0 2px 6px rgba(184,137,62,.22); }
  .plan-goal-del{ color:var(--ds-danger); margin-right:auto; border-color:#EAC7C7; } .plan-goal-del:hover:not(:disabled){ background:var(--ds-danger-bg); border-color:var(--ds-danger); box-shadow:0 2px 6px rgba(163,58,58,.2); }
  .plan-goal-title{ margin:0 0 4px; font-size:1.02rem; font-weight:800; color:var(--navy-deep); line-height:1.6; }
  .plan-goal-type{ margin:0 0 10px; font-size:.8rem; color:var(--ink-soft); font-style:italic; }
  .plan-goal-meta{ display:flex; gap:14px; flex-wrap:wrap; font-size:.78rem; color:var(--ink-soft); margin-bottom:12px; }

  .plan-results{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-md); padding:12px 14px; }
  .plan-results-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
  .plan-results-label{ font-size:.76rem; font-weight:700; color:var(--ink-soft); }
  .plan-add-result{ background:var(--c1-bg); color:var(--c1); border:none; border-radius:7px; padding:4px 10px; font-size:.74rem; font-weight:700; cursor:pointer; }
  .plan-add-result:hover{ background:#d9ecdf; }
  .plan-result-row{ background:#fff; border:1px solid var(--line); border-radius:8px; padding:9px 12px; margin-bottom:8px; }
  .plan-result-row:last-child{ margin-bottom:0; }
  .plan-result-top{ display:flex; align-items:flex-start; gap:8px; flex-wrap:wrap; }
  .plan-result-text{ flex:1 1 200px; font-size:.85rem; color:var(--ink); font-weight:600; }
  .plan-result-w{ color:var(--gold); font-weight:700; font-size:.78rem; }
  .plan-result-actions{ display:flex; gap:4px; }
  .plan-result-actions button{ background:none; border:none; cursor:pointer; font-size:.85rem; padding:3px 5px; border-radius:5px; }
  .plan-result-actions button:hover{ background:var(--paper); }
  .plan-result-meta{ display:flex; gap:12px; flex-wrap:wrap; font-size:.76rem; color:var(--ink-soft); margin-top:6px; }
  .plan-result-status{ display:inline-block; padding:2px 9px; border-radius:16px; font-size:.72rem; font-weight:700; }
  .plan-result-alert{ margin-top:6px; font-size:.74rem; font-weight:700; padding:3px 9px; border-radius:6px; display:inline-block; }
  .plan-result-alert.yellow{ background:#FBF4DD; color:#8a6d10; }
  .plan-result-alert.red{ background:var(--ds-danger-bg); color:var(--ds-danger); }
  .plan-result-notes{ font-size:.78rem; color:var(--ink-soft); margin-top:4px; }
  .plan-goal-empty-results{ font-size:.8rem; color:var(--ink-faint); }

  .plan-goal-link{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--blue-success-bg); border:1px solid var(--blue-success-line); border-radius:var(--radius-md); padding:10px 14px; margin-top:12px; }
  .plan-goal-badge{ color:var(--blue-success); font-weight:700; font-size:.82rem; }
  .plan-goal-link-btn{ margin-right:auto; }

  .plan-empty-import{ text-align:center; padding:48px 24px; background:var(--paper-card); border:1px dashed var(--line); border-radius:var(--radius-lg); }
  .plan-empty-icon{ font-size:2.2rem; margin-bottom:10px; }
  .plan-empty-import h4{ margin:0 0 8px; color:var(--navy-deep); font-size:1rem; }
  .plan-empty-import p{ margin:0 0 16px; color:var(--ink-soft); font-size:.85rem; max-width:420px; margin-left:auto; margin-right:auto; }

  .plan-raw-table{ display:none; }

  /* نافذة (Modal) موحّدة لإضافة/تعديل هدف أو نتيجة */
  .plan-modal-overlay{ display:none; position:fixed; inset:0; background:rgba(20,30,40,.45); z-index:200; align-items:center; justify-content:center; padding:20px; }
  .plan-modal-overlay.show{ display:flex; }
  .plan-modal-box{ background:#fff; border-radius:var(--radius-lg); box-shadow:var(--shadow-deep); max-width:560px; width:100%; max-height:88vh; overflow:auto; padding:22px 24px; }
  .plan-modal-box h3{ margin:0 0 16px; color:var(--navy-deep); font-size:1.05rem; }
  .plan-modal-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .plan-modal-grid .full{ grid-column:1 / -1; }
  .plan-modal-field label{ display:block; font-size:.78rem; font-weight:700; color:var(--ink-soft); margin-bottom:5px; }
  .plan-modal-field input, .plan-modal-field select, .plan-modal-field textarea{
    width:100%; border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-family:'Tajawal',sans-serif; font-size:.85rem; box-sizing:border-box;
  }
  .plan-modal-field textarea{ resize:vertical; min-height:56px; }
  .plan-modal-postpone{ display:none; grid-column:1/-1; background:#FDF0E4; border:1px solid #F6D9BC; border-radius:8px; padding:12px; margin-top:4px; }
  .plan-modal-postpone.show{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .plan-modal-actions{ display:flex; gap:8px; margin-top:18px; }
  .plan-history-list{ list-style:none; margin:0; padding:0; max-height:300px; overflow:auto; }
  .plan-history-list li{ border-bottom:1px solid var(--line); padding:8px 0; font-size:.82rem; }
  .plan-history-list li b{ color:var(--navy-deep); }
  .plan-history-list li span{ color:var(--ink-faint); font-size:.74rem; display:block; margin-top:2px; }

  /* تبويبات فرعية داخل خطة التحصيل الدراسي */
  .plan-subtabs{ display:flex; gap:8px; margin-bottom:16px; border-bottom:1px solid var(--line); }
  .plan-subtab{
    background:none; border:none; border-bottom:2px solid transparent; padding:9px 10px; margin-bottom:-1px;
    border-radius:6px 6px 0 0;
    font-family:'Tajawal',sans-serif; font-size:.88rem; font-weight:700; color:var(--ink-soft); cursor:pointer;
    transition:color .2s ease, border-color .2s ease, background-color .2s ease;
  }
  .plan-subtab:hover{ color:var(--navy-deep); background:var(--paper); }
  .plan-subtab:focus-visible{ outline:2px solid var(--gold); outline-offset:-2px; }
  .plan-subtab.active{
    color:var(--burgundy); border-bottom-color:var(--burgundy); border-bottom-width:4px;
    background:linear-gradient(180deg, var(--gold-light), var(--paper));
    font-weight:800;
  }
  .plan-subpanel{ display:none; }
  .plan-subpanel.active{ display:block; }

  /* بطاقات المدارس القابلة للطي (تحليل التحصيل) */
  .ach-school-card{ background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow); margin-bottom:12px; overflow:hidden; }
  .ach-school-head{
    width:100%; display:flex; align-items:center; justify-content:space-between; background:none; border:none;
    padding:14px 18px; font-family:'Tajawal',sans-serif; font-size:.92rem; font-weight:700; color:var(--navy-deep); cursor:pointer;
  }
  .ach-school-toggle{ transition:transform .18s ease; color:var(--ink-soft); }
  .ach-school-head.open .ach-school-toggle{ transform:rotate(180deg); }
  .ach-school-body{ display:none; padding:0 18px 16px; border-top:1px solid var(--line); }
  .ach-school-body.open{ display:block; }

  .ach-grade-table td{ padding:4px 6px; }
  .ach-grade-table input{ width:100%; box-sizing:border-box; border:1px solid transparent; border-radius:6px; padding:5px 6px; font-family:'Tajawal',sans-serif; font-size:.82rem; background:transparent; }
  .ach-grade-table input:hover{ border-color:var(--line); }
  .ach-grade-table input:focus{ outline:none; border-color:var(--gold); background:#fff; }

  .ach-info-card{
    display:flex; gap:14px; flex-wrap:wrap; background:var(--paper-card); border:1px solid var(--line);
    border-radius:var(--radius-lg); box-shadow:var(--shadow); padding:16px 18px; margin-bottom:18px;
  }
  .ach-info-item{ display:flex; align-items:center; gap:10px; flex:1 1 150px; min-width:140px; }
  .ach-info-emoji{ font-size:1.4rem; }
  .ach-info-item div{ display:flex; flex-direction:column; overflow:hidden; }
  .ach-info-item b{ font-size:.92rem; color:var(--navy-deep); font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:170px; }
  .ach-info-item span{ font-size:.74rem; color:var(--ink-soft); }
  .ach-info-empty{ text-align:center; padding:16px; color:var(--ink-soft); font-size:.85rem; }

  /* شريط مرشّحات تحليل التحصيل */
  .ach-filter-bar{
    display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:14px;
    background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-lg);
    padding:14px 16px; margin-bottom:16px;
  }
  .ach-filter-fields{ display:flex; flex-wrap:wrap; gap:12px; flex:1 1 auto; }
  .ach-filter-fields .plan-modal-field{ min-width:150px; }
  .ach-filter-fields input[type="text"]{ border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-family:'Tajawal',sans-serif; font-size:.85rem; }
  .ach-filter-actions{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
  .ach-danger{ background:var(--ds-danger-bg) !important; color:var(--ds-danger) !important; border-color:#F2C9C6 !important; }
  .ach-danger:hover{ background:#F6D9D6 !important; }

  /* منطقة الرسوم البيانية — تصميم مبدئي */
  .ach-charts-placeholder{
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
    background:var(--paper-card); border:1px dashed var(--line); border-radius:var(--radius-lg);
    padding:40px 20px; margin-bottom:20px; color:var(--ink-soft);
  }
  .ach-charts-icon{ font-size:2rem; opacity:.6; }
  .ach-charts-text{ font-size:.85rem; }
  .ach-charts-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(280px,1fr)); gap:16px; margin-bottom:20px; }
  .ach-chart-box{ background:var(--paper-card); border:1px solid var(--ds-border); border-radius:var(--card-radius); box-shadow:var(--card-shadow); padding:16px 18px; transition:box-shadow .2s ease, transform .2s ease; }
  .ach-chart-box:hover{ box-shadow:var(--card-shadow-hover); transform:translateY(-2px); }
  .ach-chart-box h4{ margin:0 0 12px; padding-bottom:10px; border-bottom:1px solid var(--ds-border); font-size:.9rem; font-weight:700; color:var(--navy); }
  /* V64 — زر ملخّص الإنجازات المنقول من بطاقة "روابط سريعة" الملغاة إلى
     داخل بطاقتي التحصيل الدراسي/الإنماء المهني في ملخّص الوحدات */
  .dash-module-card-btn{ width:100%; justify-content:center; font-size:.76rem; padding:7px 10px; }
  .ach-compare-type{ display:flex; gap:16px; flex-wrap:wrap; align-items:center; margin-bottom:16px; padding:10px 14px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-md); }
  .ach-radio{ display:flex; align-items:center; gap:6px; font-size:.85rem; color:var(--ink); cursor:pointer; white-space:nowrap; }
  .ach-radio input{ accent-color:var(--navy); cursor:pointer; }
  .plan-status-postponed-glow{
    cursor:pointer; border:2px solid var(--ds-danger); animation:planPostponedGlow 1.6s ease-in-out infinite;
  }
  @keyframes planPostponedGlow{
    0%,100%{ box-shadow:0 0 3px 0 rgba(163,58,58,.4); }
    50%{ box-shadow:0 0 9px 3px rgba(163,58,58,.7); }
  }
  .plan-status-selected{
    background:var(--ds-danger) !important; color:#fff !important; animation:none !important; box-shadow:none !important;
  }

  /* بطاقات مؤشرات خطة الإجادة — أكثر إحكاماً (لا تؤثر على خطتَي الإنماء والتحصيل) */


  .ach-custom-periods{ display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; width:100%; margin-top:10px; padding-top:10px; border-top:1px dashed var(--line); }
  .ach-achievement-row{ background:var(--paper); border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-bottom:8px; }

  /* ===========================================================
     بطاقات التنبيهات الذكية — كل تنبيه بطاقة مستقلة، بلا جداول
     وبلا قوائم تقليدية
     =========================================================== */
  .dash-alerts-list{ display:flex; flex-direction:column; gap:10px; }
  .dash-alert-card{
    background:#FFFFFF;
    border:1px solid var(--line);
    border-inline-end:4px solid var(--alert-color);
    border-radius:10px;
    padding:8px 12px;
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .dash-alert-card:hover{
    transform:translateY(-2px);
    box-shadow:0 6px 16px rgba(16,24,40,.08);
  }
  .dash-alert-topline{ text-align:right; margin-bottom:2px; }
  .dash-alert-priority-label{ font-size:.72rem; font-weight:800; color:var(--alert-color); }
  .dash-alert-main{
    display:flex;
    align-items:center;
    gap:9px;
  }
  .dash-alert-card-expandable .dash-alert-main{ cursor:pointer; }
  .dash-alert-side{
    display:flex; flex-direction:column; align-items:flex-start; gap:5px;
    flex-shrink:0;
  }
  .dash-alert-btn{
    background:#FFFFFF;
    color:var(--alert-color);
    border:1.5px solid var(--alert-color);
    border-radius:7px;
    padding:4px 11px;
    font-size:.68rem;
    font-weight:700;
    cursor:pointer;
    white-space:nowrap;
    transition:background .15s ease;
  }
  .dash-alert-btn:hover{ background:var(--alert-bg); }
  .dash-alert-body{ flex:1; min-width:0; text-align:right; }
  .dash-alert-title{ font-size:.82rem; font-weight:800; color:var(--ink); margin-bottom:2px; }
  .dash-alert-desc{ font-size:.68rem; color:var(--ink-soft); line-height:1.4; }
  .dash-alert-icon{
    width:32px; height:32px;
    border-radius:50%;
    background:var(--alert-bg);
    color:var(--alert-color);
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .dash-alert-icon svg{ width:16px; height:16px; }
  .dash-alert-card-empty{ display:flex; align-items:center; gap:9px; }

  .dash-alerts-filter-head{ display:flex; }
  .dash-alerts-filter-reset{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:9px;
    padding:7px 14px;
    font-size:.78rem;
    font-weight:700;
    color:var(--navy);
    cursor:pointer;
    transition:background .15s ease;
  }
  .dash-alerts-filter-reset:hover{ background:var(--gold-light); }

  /* البطاقات القابلة للتوسّع (Accordion) — للتنبيهات المتشابهة المُجمَّعة */
  .dash-alert-chevron{
    font-size:1.1rem; color:var(--alert-color); line-height:1;
    transition:transform .2s ease;
  }
  .dash-alert-expanded .dash-alert-chevron{ transform:rotate(180deg); }
  .dash-alert-group-items{
    margin-top:10px;
    padding-top:10px;
    border-top:1px dashed var(--line);
    display:flex; flex-direction:column; gap:8px;
  }
  .dash-alert-mini-item{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    background:var(--paper);
    border-radius:9px;
    padding:8px 12px;
  }
  .dash-alert-mini-info{ text-align:right; min-width:0; }
  .dash-alert-mini-school{ font-size:.8rem; font-weight:700; color:var(--ink); }
  .dash-alert-mini-meta{ font-size:.68rem; color:var(--ink-faint); margin-top:2px; }
  .dash-alert-mini-btn{
    background:var(--alert-color);
    color:#fff;
    border:none;
    border-radius:8px;
    padding:5px 12px;
    font-size:.7rem;
    font-weight:700;
    cursor:pointer;
    white-space:nowrap;
    flex-shrink:0;
    transition:opacity .15s ease;
  }
  .dash-alert-mini-btn:hover{ opacity:.85; }

  /* V64 — سهم توسّع التنبيهات: يكشف التنبيهين التاليين ضمن الأعلى أولوية
     (نفس مجموعة top3 سابقًا) بدل عرضهم دائمًا */
  .dash-alerts-more{ display:flex; flex-direction:column; gap:10px; margin-top:10px; }
  .dash-alerts-expand-toggle{
    display:flex; align-items:center; justify-content:center;
    width:100%;
    background:transparent;
    border:none;
    padding:4px;
    margin-top:2px;
    cursor:pointer;
    color:var(--ink-faint);
    transition:color .15s ease;
  }
  .dash-alerts-expand-toggle svg{ width:18px; height:18px; transition:transform .2s ease; }
  .dash-alerts-expand-toggle:hover{ color:var(--navy); }
  .dash-alerts-expand-toggle-open svg{ transform:rotate(180deg); }

  /* V64 — زر "+" لإظهار/إخفاء جدول آخر الأنشطة؛ يدور 45° ليصبح "×" عند الفتح */
  .dash-recent-activity-toggle{
    display:flex; align-items:center; justify-content:center;
    width:32px; height:32px; flex-shrink:0;
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:50%;
    color:var(--navy);
    cursor:pointer;
    transition:background .15s ease;
  }
  .dash-recent-activity-toggle svg{ width:16px; height:16px; transition:transform .2s ease; }
  .dash-recent-activity-toggle:hover{ background:var(--gold-light); }
  .dash-recent-activity-toggle-open svg{ transform:rotate(45deg); }

  /* V68 — عرض التنبيهات كجداول مُجمَّعة حسب الفئة بدل بطاقات (بطلب
     المستخدم: "لا نريدها على شكل بطاقات تستنزف مساحات"). كل فئة (المتأخرة/
     عاجل/قادم/جودة/متابعة/إنجاز) رأس صغير + جدول.
     V72 — بطلب صريح: الفئة مغلقة بالكامل افتراضيًا الآن (لا صف ظاهر
     مسبقًا)، زر "+" مُكبَّر (كان 24px/14px، أصبح 32px/18px) ليكون واضحًا،
     وزر "−" جديد (.dash-alert-level-collapse) أسفل القائمة عند فتحها. */
  .dash-alert-level-block{ margin-bottom:14px; }
  .dash-alert-level-block:last-of-type{ margin-bottom:0; }
  /* V76 — ساحة عرض الفئة المختارة، فارغة افتراضيًا (بلا أي هامش ظاهر)،
     تكتسب هامشًا سفليًا فقط بعد امتلائها بمحتوى فئة عند الضغط على زرّها */
  .dash-alerts-arena:not(:empty){ margin-bottom:14px; }
  .dash-alert-level-head{
    display:flex; align-items:center; gap:8px;
    margin-bottom:6px;
  }
  /* V75 — بطلب صريح: "صغّر أزرار التنبيهات لتكون على نفس مستوى شريط
     مستجدات" (مستجدات = .74rem). خُفِّضت أيقونة/تسمية رأس الفئة من 22px/
     .82rem إلى 18px/.74rem */
  .dash-alert-level-icon{
    width:18px; height:18px; border-radius:50%; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:var(--alert-bg); color:var(--alert-color);
  }
  .dash-alert-level-icon svg{ width:11px; height:11px; }
  .dash-alert-level-label{ font-size:.74rem; font-weight:800; color:var(--alert-color); }
  .dash-alert-level-count{
    font-size:.7rem; font-weight:700; color:#fff; background:var(--alert-color);
    border-radius:20px; padding:1px 8px; min-width:18px; text-align:center;
  }
  /* الزر الأول في الترميز = يظهر يمينًا في RTL، "بجانب" رأس الفئة.
     V72 — تكبير الحجم (24px→32px، 14px→18px، سُمك خط أعلى) بطلب صريح
     "مع تكبير رمز + ليكون واضحًا" */
  .dash-alert-level-expand{
    display:flex; align-items:center; justify-content:center;
    width:32px; height:32px; border-radius:50%; flex-shrink:0;
    background:var(--paper); border:1.5px solid var(--alert-color); color:var(--alert-color);
    cursor:pointer; transition:background .15s ease, transform .15s ease;
  }
  .dash-alert-level-expand svg{ width:18px; height:18px; transition:transform .2s ease; }
  .dash-alert-level-expand:hover{ background:var(--alert-bg); transform:scale(1.06); }
  .dash-alert-level-expand-open svg{ transform:rotate(45deg); }
  /* V135.12 — زر إغلاق (✕) حقيقي في رأس كل فئة، يُفرغ ساحة العرض بالكامل.
     يظهر في أقصى يسار الرأس (margin-inline-start:auto يدفعه بعد التسمية
     والعداد) بدل زر "+" السابق الذي لم يعد يُبنى (كل العناصر — حتى 5 —
     تُعرض مباشرة الآن بلا حاجة للتوسّع). */
  .dash-alert-level-close{
    display:flex; align-items:center; justify-content:center;
    width:26px; height:26px; border-radius:50%; flex-shrink:0;
    background:var(--paper); border:1.5px solid var(--alert-color); color:var(--alert-color);
    cursor:pointer; transition:background .15s ease, transform .15s ease;
    margin-inline-start:auto;
  }
  .dash-alert-level-close svg{ width:13px; height:13px; }
  .dash-alert-level-close:hover{ background:var(--alert-bg); transform:scale(1.06); }
  /* V72 — حاوية عناصر الفئة، مغلقة افتراضيًا عبر السمة hidden */
  .dash-alert-level-body{ margin-top:2px; }
  /* V72 — زر "−" الإغلاق أسفل القائمة المفتوحة، بطلب صريح من المستخدم */
  .dash-alert-level-collapse{
    display:flex; align-items:center; justify-content:center; gap:6px;
    width:100%; margin-top:6px; padding:6px 10px;
    background:var(--paper); border:1px dashed var(--line); border-radius:10px;
    color:var(--ink-soft); font-size:.72rem; font-weight:700; cursor:pointer;
    transition:background .15s ease, color .15s ease, border-color .15s ease;
  }
  .dash-alert-level-collapse svg{ width:14px; height:14px; }
  .dash-alert-level-collapse:hover{ background:var(--alert-bg); color:var(--alert-color); border-color:var(--alert-color); }

  .dash-alert-table{ margin-bottom:0; }
  .dash-alert-table tbody tr.dash-alert-row{ border-right:3px solid var(--alert-color); }
  .dash-alert-row-icon-cell{ width:30px; text-align:center; color:var(--alert-color); }
  .dash-alert-row-icon-cell svg{ width:16px; height:16px; }
  .dash-alert-row-content{ text-align:right; }
  .dash-alert-row-title{ font-size:.82rem; font-weight:800; color:var(--ink); margin-bottom:2px; display:flex; align-items:center; gap:6px; }
  .dash-alert-row-desc{ font-size:.7rem; color:var(--ink-soft); line-height:1.4; }
  .dash-alert-row-action{ width:1%; white-space:nowrap; text-align:left; }
  .dash-alert-row-btn{
    background:var(--alert-color); color:#fff; border:none; border-radius:8px;
    padding:5px 12px; font-size:.72rem; font-weight:700; cursor:pointer;
    white-space:nowrap; transition:opacity .15s ease;
  }
  .dash-alert-row-btn:hover{ opacity:.85; }
  .dash-alert-row-toggle{ cursor:pointer; }
  /* دوران السهم عند التوسّع: يعتمد على قاعدة .dash-alert-expanded
     .dash-alert-chevron الموجودة أصلًا (محدِّد سليل عام، يعمل بلا تعديل
     مهما كانت أصناف العنصر الأب الأخرى) */
  .dash-alert-row-group td{ padding-top:0; padding-bottom:10px; }

  .dash-alerts-viewall{
    display:flex; align-items:center; justify-content:center; gap:8px;
    width:100%;
    background:#FFFFFF;
    border:1px solid var(--line);
    border-radius:11px;
    padding:10px;
    font-size:.82rem;
    font-weight:700;
    color:var(--navy);
    cursor:pointer;
    transition:background .15s ease;
  }
  .dash-alerts-viewall svg{ width:15px; height:15px; }
  .dash-alerts-viewall:hover{ background:var(--paper); }

  /* صفوف ملخّص عدد التنبيهات — قابلة للنقر (تعرض فئتها داخل الساحة، V76).
     V75 — صُغِّرت المقاسات كلها لتقارب حجم شارات/نصوص مستجدات.
     V77 — كبّرت النصوص/الأيقونة قليلًا (عدّاد .9rem→1rem، تسمية .72rem→
     .78rem، أيقونة 20px→22px) بلا تعديل الحشو حينها.
     V81 — بطلب صريح "صغّر حجم أزرار التنبيهات (الأزرار وليس النص)":
     تقليص الصندوق نفسه فقط (حشو 8/10→6/8، الأساس المرن 110px→92px، فجوة
     6px→5px) — أحجام النص/الأيقونة من V77 بقيت كما هي بلا أي تغيير */
  .dash-alerts-summary{
    display:flex; gap:8px; flex-wrap:wrap;
    margin-top:12px;
  }
  .dash-alerts-summary-box{
    flex:1 1 92px;
    background:var(--alert-bg);
    border-radius:10px;
    padding:6px 8px;
    display:flex; align-items:center; justify-content:space-between;
    gap:5px;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease;
  }
  .dash-alerts-summary-box:hover{
    transform:translateY(-2px);
    box-shadow:0 4px 12px rgba(16,24,40,.08);
  }
  .dash-alerts-summary-count{ font-size:1rem; font-weight:800; color:var(--alert-color); }
  .dash-alerts-summary-icon{
    width:22px; height:22px; border-radius:50%;
    background:#FFFFFF; color:var(--alert-color);
    display:flex; align-items:center; justify-content:center;
    order:3;
  }
  .dash-alerts-summary-icon svg{ width:12px; height:12px; }
  .dash-alerts-summary-label{ font-size:.78rem; font-weight:700; color:var(--ink-soft); order:2; }

  .dash-alerts-footer-note{
    display:flex; align-items:center; justify-content:space-between;
    margin-top:12px;
    padding:10px 14px;
    background:var(--paper);
    border-radius:11px;
    font-size:.76rem;
    color:var(--ink-soft);
  }
  .dash-alerts-footer-check{
    width:24px; height:24px; border-radius:50%;
    background:#DCFCE7; color:#16A34A;
    display:flex; align-items:center; justify-content:center;
  }
  .dash-alerts-footer-check svg{ width:13px; height:13px; }

  @media (max-width:720px){
    .dash-alerts-summary{ flex-direction:column; }
  }

  /* صفحة "جميع التنبيهات" — صفحة كاملة مستقلة بدل اللوحة الجانبية */
  .dash-all-alerts-page{
    position:fixed; inset:0;
    background:var(--paper);
    z-index:200;
    display:flex; flex-direction:column;
    opacity:0; pointer-events:none;
    transition:opacity .2s ease;
  }
  .dash-all-alerts-page.show{ opacity:1; pointer-events:auto; }
  .dash-all-alerts-head{
    display:flex; align-items:center; gap:16px;
    padding:18px 26px;
    background:#FFFFFF;
    border-bottom:1px solid var(--line);
    flex-shrink:0;
  }
  .dash-all-alerts-head h3{ font-size:1.15rem; font-weight:700; color:var(--navy); margin:0; }
  .dash-all-alerts-back{
    display:flex; align-items:center; gap:6px;
    background:var(--paper); border:1px solid var(--line); border-radius:9px;
    padding:8px 14px; cursor:pointer; font-size:.84rem; font-weight:700; color:var(--ink-soft);
  }
  .dash-all-alerts-back:hover{ background:var(--gold-light); }
  .dash-all-alerts-back svg{ width:16px; height:16px; }
  .dash-all-alerts-body{
    flex:1; overflow-y:auto;
    padding:22px 26px;
    max-width:900px;
    width:100%;
    margin:0 auto;
    display:flex; flex-direction:column; gap:10px;
  }

  .achv-view-actions{ display:flex; gap:6px; }
  .achv-inline-list{ display:flex; flex-direction:column; gap:6px; }
  .achv-inline-row{
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    background:var(--paper); border:1px solid var(--line); border-radius:8px;
    padding:5px 8px; font-size:.78rem;
  }
  .achv-inline-text{ flex:1; min-width:0; word-break:break-word; }
  .achv-inline-actions{ display:flex; gap:3px; flex-shrink:0; }
  .achv-inline-btn{
    background:var(--gold-light); border:none; border-radius:6px; cursor:pointer;
    font-size:.82rem; width:24px; height:24px; display:flex; align-items:center; justify-content:center;
    padding:0; line-height:1;
  }
  .achv-inline-btn:hover{ background:var(--gold); }
  .achv-inline-delete:hover{ background:#e8b8b8; }
  .achv-inline-textarea{ width:100%; min-height:44px; font-size:.78rem; padding:4px; border:1px solid var(--line); border-radius:6px; resize:vertical; }
  .achv-view-btn{
    background:var(--gold-light); color:var(--navy-deep); border:none; border-radius:8px;
    padding:5px 10px; font-size:.76rem; font-weight:700; cursor:pointer;
  }
  .achv-view-btn:hover{ background:var(--gold); }
  .achv-view-delete{ background:#f3d9d9; }
  .achv-view-delete:hover{ background:#e8b8b8; }
  .ach-achievement-row textarea{ width:100%; min-height:44px; border:1px solid var(--line); border-radius:6px; padding:6px 8px; font-family:'Tajawal',sans-serif; font-size:.82rem; box-sizing:border-box; resize:vertical; }
  .ach-achv-media{ display:flex; align-items:center; gap:8px; margin-top:6px; flex-wrap:wrap; }
  .ach-achv-file{ font-size:.78rem; }
  .ach-achv-filename{ font-size:.76rem; color:var(--ink-soft); }
  .ach-achv-remove{ background:none; border:none; color:var(--ds-danger); cursor:pointer; font-size:.9rem; margin-right:auto; }
  .ach-achv-evtype{
    margin-top:6px; border:1px solid var(--line); border-radius:6px; padding:5px 8px;
    font-family:'Tajawal',sans-serif; font-size:.8rem; background:#fff; color:var(--ink);
  }
  .ach-achv-link{ margin-top:6px; }
  .ach-achv-linkurl{
    width:100%; border:1px solid var(--line); border-radius:6px; padding:6px 8px;
    font-family:'Tajawal',sans-serif; font-size:.82rem; box-sizing:border-box; direction:ltr; text-align:right;
  }
  /* تثبيت رؤوس أعمدة جدول "تقرير الزيارات الشهري" أثناء التمرير — نفس نمط
     V39 المعتمَد لجدول "تحليل الأداء الفني" (#vpaWrap): نافذة تمرير محصورة
     الارتفاع + position:sticky على thead th (موروثة أصلًا من قاعدة
     .data-table thead th العامة، ولا تعمل بصريًا إلا داخل حاوية تُمرَّر
     فعليًا هي نفسها، لذلك الإضافة هنا مقصورة على .table-wrap داخل
     #msReportBody فقط ولا تمسّ أي جدول آخر). */
  #msReportBody .table-wrap{ max-height:65vh; overflow:auto; }
  .ms-report-row-flex{
    display:flex; align-items:center; justify-content:space-between; gap:8px; cursor:pointer;
  }
  .ms-report-row-icon{
    font-size:.95rem; opacity:.1; transition:opacity .15s ease; flex-shrink:0; line-height:1;
    width:20px; text-align:center;
  }
  .ms-report-row-flex:hover .ms-report-row-icon{ opacity:1; }
  .ms-report-actual-popover{
    margin-top:8px;
    background:var(--paper-card); border:1.3px solid var(--gold); border-radius:var(--radius-md);
    box-shadow:var(--card-shadow); padding:10px; min-width:200px;
  }
  .ms-report-inline-actions{
    display:flex; gap:6px; align-items:center; justify-content:flex-end; margin-top:8px;
  }
  .ms-quick-save-btn{
    background:none; color:var(--gold); border:none; border-radius:6px;
    font-size:1.05rem; line-height:1; padding:4px 6px; cursor:pointer;
    display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
    opacity:.85; transition:opacity .15s ease, transform .1s ease;
  }
  .ms-quick-save-btn:hover{ opacity:1; }
  .ms-quick-save-btn:active{ transform:scale(.9); }
  /* أزرار خاصة بحقول «الخطة المنفَّذة فعلياً» و«الأساليب الإشرافية المنفَّذة» في تبويب الخطة الشهرية فقط — لا تُشارَك مع أي مكوّن آخر */
  .ms-report-save-btn{
    background:var(--ds-success-bg); color:var(--ds-success); border:1px solid var(--ds-success);
    border-radius:var(--radius-btn); font-family:'Tajawal',sans-serif;
    font-size:.78rem; font-weight:700; line-height:1; padding:6px 12px; cursor:pointer;
    display:inline-flex; align-items:center; justify-content:center;
    transition:opacity .15s ease, transform .1s ease;
  }
  .ms-report-save-btn:hover{ opacity:.85; }
  .ms-report-save-btn:active{ transform:scale(.96); }
  .ms-report-cancel-btn{
    background:var(--ds-danger-bg); color:var(--ds-danger); border:1px solid var(--ds-danger);
    border-radius:var(--radius-btn); font-family:'Tajawal',sans-serif;
    font-size:.78rem; font-weight:700; line-height:1; padding:6px 12px; cursor:pointer;
    display:inline-flex; align-items:center; justify-content:center;
    transition:opacity .15s ease, transform .1s ease;
  }
  .ms-report-cancel-btn:hover{ opacity:.85; }
  .ms-report-cancel-btn:active{ transform:scale(.96); }
  .ach-achv-indicator{ background:var(--gold-light); color:var(--navy-deep); border:1.3px solid var(--gold); border-radius:12px; padding:2px 8px; font-size:.72rem; font-weight:700; cursor:pointer; margin-left:4px; }
  .dash-today-card{
    background:linear-gradient(135deg, var(--navy-deep), var(--navy));
    color:#fff; border-radius:var(--radius-lg); padding:20px 24px; cursor:pointer;
    box-shadow:var(--shadow); transition:transform .18s ease, box-shadow .18s ease;
    display:flex; flex-direction:column; gap:9px; margin-bottom:4px;
  }
  .dash-today-card b{ font-size:1.02rem; color:var(--gold-light); padding-bottom:8px; border-bottom:1px solid rgba(255,255,255,.14); }
  .dash-today-card span{ font-size:.88rem; color:#fff; opacity:.95; }
  .dash-today-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-deep); }
  .dash-today-card:active{ transform:translateY(0) scale(.99); }

  /* ===========================================================
     قسم "جدول العمل" — بطاقة واحدة موحَّدة بثلاثة صفوف: خطة اليوم
     (بزر أضف زيارة مشروط)، خطة الغد (اسم المدرسة فقط)، وعرض خطة
     الشهر الحالي كقائمة مباشرة داخل البطاقة (باستثناء الجمعة والسبت)
     =========================================================== */
  .dash-work-schedule{ flex:1 1 auto; min-width:0; }
  .dash-ws-header{ margin-bottom:12px; } /* V64: كان 18px، V66: 14px */
  .dash-ws-title{
    font-family:'Amiri',serif;
    font-size:.92rem; /* V66 — تصغير إضافي بطلب المستخدم (كان 1.1rem منذ V64، وقبلها 1.35rem) */
    font-weight:700;
    color:var(--navy);
    margin:0;
  }

  /* V63 — تكبير حجم البطاقتين بطلب المستخدم: حشو ومسافات أوسع (كانت 16px 18px/18px) */
  /* V65 — تقليل الحشو السفلي وتوسيط الأعمدة رأسيًا (بدل flex-start) لتقليص
     الفراغ الأبيض الظاهر أسفل عمود "عرض خطة الشهر" الأقصر من العمودين
     الآخرين، والبطاقة الآن تمتد على صف كامل بعد حذف صندوق جدول الأعمال.
     V78 — بطلب صريح: "اجعل خطة، مهام على استقامة واحدة اليوم واليوم الذي
     يليه" — رجع align-items إلى flex-start (بدل center) كي تبدأ شارات
     الأعمدة الأربعة كلها من نفس الخط الأفقي العلوي بصرف النظر عن اختلاف
     ارتفاع محتواها السفلي */
  .dash-ws-united-card{
    background:#FFFFFF;
    border-radius:22px;
    box-shadow:0 1px 2px rgba(16,24,40,.04), 0 6px 16px rgba(16,24,40,.04), 0 14px 28px rgba(16,24,40,.03);
    padding:22px 28px 16px;
    display:flex;
    align-items:flex-start;
    gap:26px;
  }
  .dash-ws-row-item{
    flex:1 1 0;
    min-width:0;
    padding:0;
    position:relative;
    transition:transform .25s ease;
  }
  /* V78 — بطلب صريح: "أزل تأثير شريط أثناء مرور الماوس" — أُلغي تأثير
     الارتفاع (translateY) عند مرور المؤشر فوق أعمدة مستجدات؛ القاعدة
     أُبقيت مُعلَّقة (بلا حذف) توثيقًا لسياسة المشروع */
  /* .dash-ws-row-item:hover{ transform:translateY(-6px); } */
  .dash-ws-divider{ align-self:stretch; width:1px; background:var(--line); flex-shrink:0; }
  .dash-ws-row-top{ display:flex; align-items:center; gap:9px; margin-bottom:7px; }
  .dash-ws-row-icon{
    width:42px; height:42px;
    border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
  }
  .dash-ws-row-icon svg{ width:21px; height:21px; }
  .dash-ws-icon-today{ background:#DBEAFE; color:#2563EB; }
  .dash-ws-icon-next{ background:#DCFCE7; color:#16A34A; }
  .dash-ws-icon-month{ background:#FFEDD5; color:#EA580C; }
  /* V68 — تصغير كل نصوص صف "مستجدات" لتطابق حجم نصوص دوائر "الخطط النشطة"
     (.dash-ring-name = .74rem) بطلب المستخدم (كانت 1rem/.92rem/1.02rem) */
  .dash-ws-row-title{ font-size:.74rem; font-weight:700; color:var(--navy); cursor:pointer; }
  /* شارة اسم اليوم والتاريخ — خلفية كحلية، نص ذهبي */
  /* V71 — بطلب المستخدم: الشارات الأربع كلها أصبحت سطرًا واحدًا فقط الآن
     (لم يعد أي عمود يستخدم dash-ws-day-badge-split)، فبنفس الصنف ونفس الحشو
     تتساوى مقاساتها تلقائيًا بلا حاجة لـmin-height قسري كما في V70 */
  .dash-ws-day-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    background:var(--navy);
    color:var(--gold);
    font-size:.74rem;
    font-weight:700;
    padding:7px 16px;
    border-radius:9px;
    cursor:pointer;
    white-space:nowrap;
  }
  /* V68 — شارة بسطرين (اليوم/التاريخ) — لم تعد تُستخدَم من أي عمود بعد V71
     (كل الأعمدة الأربعة أصبحت سطرًا كحليًا واحدًا)، أُبقيت بلا حذف حسب سياسة
     المشروع */
  .dash-ws-day-badge-split{
    flex-direction:column;
    gap:2px;
    padding:6px 14px;
    text-align:center;
    white-space:normal;
  }
  .dash-ws-day-badge-line{ display:block; white-space:nowrap; }
  /* V70 — بطلب المستخدم: اسم المدرسة سطر واحد إلزاميًا مع اقتطاع "..." عند
     الطول الزائد (كان يمكن أن يلتف لسطرين فيُخِلّ بمحاذاة الأعمدة الأربعة).
     V71 — نفس الصنف يُستخدَم الآن أيضًا لتسمية "عرض" أسفل شارة "خطة أغسطس"
     (بلا خلفية كحلية)، فتتوحَّد محاذاة/تباعد الأسطر السفلية في الأعمدة الأربعة جميعها */
  /* V75 كانت "السطر الثاني محاذاة يسار". V78 — بطلب صريح: "اجعل نتائج
     الحقول في المنتصف" — تراجعت المحاذاة من يسار إلى توسيط (text-align:center) */
  .dash-ws-row-plan{
    font-size:.74rem; font-weight:600; color:var(--navy); margin-bottom:10px; cursor:pointer;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%;
    text-align:center;
  }
  .dash-ws-add-btn{
    background:var(--navy);
    color:#fff;
    border:none;
    border-radius:10px;
    padding:8px 16px;
    font-size:.74rem; /* V68 — تصغير بنفس مستوى بقية نصوص الصف (كان .88rem) */
    font-weight:700;
    cursor:pointer;
    white-space:nowrap;
    transition:background .15s ease;
  }
  .dash-ws-add-btn:hover{ background:var(--navy-deep); }
  /* V69 — محتوى بطاقة "جدول المهام": نص فارغ أو أيقونة عرض */
  /* V78 — justify-content:center اتساقًا مع text-align:center الجديدة على
     .dash-ws-row-plan (الصنف الأب هنا)، بدل flex-end (يسار) في V75 */
  .dash-ws-tasks-status{ display:flex; align-items:center; justify-content:center; }
  .dash-ws-tasks-empty{ font-size:.74rem; font-weight:600; color:var(--ink-faint); }
  .dash-ws-tasks-view{
    display:inline-flex; align-items:center; gap:6px; color:var(--navy);
    font-size:.74rem; font-weight:700; cursor:pointer;
  }
  .dash-ws-tasks-view svg{ width:16px; height:16px; }
  .dash-ws-tasks-view:hover{ color:var(--navy-deep); }

  .dash-ws-month-toggle{ cursor:pointer; margin-bottom:0; }
  .dash-ws-month-popover{
    position:absolute;
    top:100%; right:0;
    z-index:20;
    width:300px;
    max-width:80vw;
    background:#FFFFFF;
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 24px rgba(16,24,40,.14);
    margin-top:8px;
    overflow:hidden;
  }
  .dash-ws-month-popover-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 14px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    font-size:.82rem; font-weight:700; color:var(--navy);
  }
  .dash-ws-month-close{
    background:none; border:none; cursor:pointer;
    font-size:.85rem; color:var(--ink-soft); line-height:1; padding:2px 4px;
  }
  .dash-ws-month-close:hover{ color:var(--burgundy); }
  .dash-ws-month-list{
    max-height:280px;
    overflow-y:auto;
  }
  .dash-ws-month-row{
    display:flex; justify-content:space-between; gap:10px;
    padding:8px 12px;
    font-size:.74rem;
    border-bottom:1px solid var(--line);
  }
  .dash-ws-month-row:last-child{ border-bottom:none; }

  @media (max-width:900px){
    .dash-ws-united-card{ flex-direction:column; }
    .dash-ws-divider{ width:auto; height:1px; align-self:auto; }
    .dash-ws-month-popover{ left:0; right:auto; width:100%; max-width:100%; }
  }
  .dash-ws-month-day{ color:var(--ink-soft); flex-shrink:0; }
  .dash-ws-month-plan{ color:var(--navy); text-align:left; }

  /* V63 — ستارة جانبية (curtain) لعرض خطة الشهر بالكامل من بطاقة "عرض خطة [الشهر]".
     نفس أسلوب انزلاق الشريط الجانبي للجوال (layout.css، transform:translateX)
     المُستخدَم أصلًا في هذا المشروع، مطبَّق هنا كمكوّن مستقل قابل لإعادة الاستخدام،
     بهوية الشريط الكحلي نفسها المعتمَدة في نافذة الرسائل الموحّدة (site-msg-head). */
  .dash-curtain-overlay{
    position:fixed; inset:0; z-index:9600;
    background:rgba(16,24,40,.5);
    opacity:0; pointer-events:none;
    transition:opacity .25s ease;
  }
  .dash-curtain-overlay.show{ opacity:1; pointer-events:auto; }
  .dash-curtain-panel{
    position:absolute; top:0; bottom:0; left:0;
    width:440px; max-width:92vw;
    background:#fff;
    box-shadow:0 0 40px rgba(16,24,40,.28);
    display:flex; flex-direction:column;
    transform:translateX(-100%);
    transition:transform .3s cubic-bezier(.34,1.06,.64,1);
  }
  .dash-curtain-overlay.show .dash-curtain-panel{ transform:translateX(0); }
  .dash-curtain-head{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    background:var(--navy-soft); color:#fff;
    padding:16px 20px; flex-shrink:0;
  }
  .dash-curtain-head h3{ margin:0; font-size:1.02rem; font-weight:700; color:#fff; }
  .dash-curtain-close-icon{
    flex-shrink:0; width:30px; height:30px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.12); border:none; color:#fff;
    font-size:1.25rem; line-height:1; cursor:pointer;
    transition:background .18s ease, transform .18s ease;
  }
  .dash-curtain-close-icon:hover{ background:rgba(255,255,255,.28); transform:rotate(90deg) scale(1.06); }
  .dash-curtain-body{ flex:1; overflow-y:auto; padding:8px 0; }
  .dash-curtain-row{
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    padding:12px 20px; border-bottom:1px solid var(--line); font-size:.86rem;
  }
  .dash-curtain-row-today{ background:var(--gold-light); }
  .dash-curtain-row-day{ color:var(--ink-soft); flex-shrink:0; font-weight:600; display:inline-flex; align-items:center; gap:8px; }
  .dash-curtain-row-plan{ color:var(--navy); font-weight:600; text-align:left; }
  .dash-curtain-empty{ padding:24px 20px; text-align:center; color:var(--ink-soft); font-size:.86rem; }
  /* V81 — بطلب صريح: صفوف "جدول المهام" تظهر كخيار قابل للتحديد؛ الصف نفسه
     <label> قابل للنقر بالكامل ومربع الاختيار يعلّم المهمة كمنتهية فور تحديده */
  .dash-curtain-row-task{ cursor:pointer; transition:background .15s ease; }
  .dash-curtain-row-task:hover{ background:var(--bg-soft, #F8FAFC); }
  .dash-curtain-task-checkbox{
    width:17px; height:17px; flex-shrink:0; cursor:pointer; accent-color:var(--navy);
  }
  /* V82 — بطلب صريح: "بعد تعيينها احتفظ بها في القائمة ولكن ضعها بدون
     تنشيط بعنوان تم" — صف المهمة المنتهية يبقى ظاهرًا في نفس القائمة،
     لكن غير نشط بصريًا (شفافية أقل، بلا مؤشر يد، بلا تأثير مرور) مع
     مربع اختيار مُحدَّد ومُعطَّل وشارة "تم" صريحة */
  .dash-curtain-row-done{ cursor:default; opacity:.55; }
  .dash-curtain-row-done:hover{ background:transparent; }
  .dash-curtain-row-done .dash-curtain-task-checkbox{ cursor:default; accent-color:#8A94A6; }
  .dash-curtain-row-done .dash-curtain-row-plan{ text-decoration:line-through; }
  .dash-curtain-row-done-badge{
    display:inline-block; margin-inline-start:6px; padding:1px 8px;
    border-radius:999px; background:#EEF2F6; color:#5C6470;
    font-size:.62rem; font-weight:800; text-decoration:none; vertical-align:middle;
  }
  .dash-curtain-actions{
    flex-shrink:0; padding:14px 20px; border-top:1px solid var(--line);
    display:flex; justify-content:center;
  }
  .dash-curtain-actions .btn-cancel{ min-width:140px; justify-content:center; margin-top:0; }
  body.dash-curtain-lock{ overflow:hidden; }
  @media(max-width:480px){ .dash-curtain-panel{ width:100%; max-width:100%; } }

  /* V65 — مذكرات المهام القريبة داخل بطاقة "مستجدات" (بديلة عن صندوق جدول
     الأعمال المحذوف)؛ تظهر فقط عند وجود مهام قريبة/متأخرة (dashWsRenderTasks) */
  .dash-ws-tasks{ margin-top:14px; }
  .dash-ws-tasks:empty{ margin-top:0; }
  .dash-ws-tasks-title{ font-size:.8rem; font-weight:700; color:var(--ink-soft); margin:0 0 8px; }
  .dash-quick-list{ display:flex; flex-direction:column; gap:8px; }
  .dash-quick-list-item{
    background:var(--paper); border:1.3px solid var(--line); border-right:4px solid var(--gold);
    border-radius:8px; padding:10px 14px; font-size:.88rem; font-weight:700; color:var(--navy-deep);
    transition:background .15s ease, border-color .15s ease, transform .15s ease;
  }
  .dash-quick-list-item:hover{ background:var(--gold-light); border-right-color:var(--burgundy); transform:translateX(-3px); }
  .ach-achv-indicator:disabled{ opacity:.4; cursor:not-allowed; }
  .generic-picker-list{ max-height:260px; overflow-y:auto; border:1px solid var(--line); border-radius:8px; }
  .generic-picker-row{
    display:flex; align-items:center; justify-content:space-between; gap:8px;
    padding:7px 10px; border-bottom:1px solid var(--line); font-size:.82rem;
  }
  .generic-picker-row:last-child{ border-bottom:none; }
  .generic-picker-row:hover{ background:var(--paper); }
  .generic-picker-row-label{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .generic-picker-add-btn{
    flex-shrink:0; width:26px; height:26px; border-radius:50%; border:none;
    background:var(--c1); color:#fff; font-size:1rem; font-weight:700; cursor:pointer; line-height:1;
  }
  .generic-picker-add-btn:hover{ background:#1a5c3c; }
  .ach-achv-indicator:hover{ background:var(--gold); }

  @media print{
    body.printing-goal-report, body.printing-single-action, body.printing-all-actions, body.printing-dev-actions{
      height:auto !important; min-height:0 !important;
    }
    body.printing-goal-report .main-area, body.printing-single-action .main-area, body.printing-all-actions .main-area, body.printing-dev-actions .main-area,
    body.printing-goal-report .content, body.printing-single-action .content, body.printing-all-actions .content, body.printing-dev-actions .content,
    body.printing-goal-report section.module-page, body.printing-single-action section.module-page, body.printing-all-actions section.module-page, body.printing-dev-actions section.module-page,
    body.printing-goal-report .plan-panel, body.printing-single-action .plan-panel, body.printing-all-actions .plan-panel, body.printing-dev-actions .plan-panel,
    body.printing-goal-report .plan-subpanel, body.printing-single-action .plan-subpanel, body.printing-all-actions .plan-subpanel, body.printing-dev-actions .plan-subpanel{
      height:0 !important; max-height:0 !important; overflow:hidden !important; margin:0 !important; padding:0 !important; border:none !important;
    }
    body.printing-goal-report .sidebar, body.printing-single-action .sidebar, body.printing-all-actions .sidebar, body.printing-dev-actions .sidebar{ display:none !important; }

    body.printing-ach .sidebar, body.printing-ach .sidebar-overlay, body.printing-ach .mobile-toggle,
    body.printing-ach .topbar, body.printing-ach .ach-filter-actions, body.printing-ach .plan-tabs,
    body.printing-ach .plan-subtabs, body.printing-ach .ach-detail-btn, body.printing-ach .btn-add-row,
    body.printing-ach .ach-filter-fields{ display:none !important; }
    body.printing-ach .main-area{ margin:0 !important; padding:0 !important; width:100% !important; }
    body.printing-ach .plan-subpanel{ display:block !important; }
    body.printing-ach .ach-scroll-table{ max-height:none !important; overflow:visible !important; }
    body.printing-ach .ach-charts-grid{ grid-template-columns:1fr 1fr; }
    body.printing-ach::before{
      content:"تقرير تحليل نتائج التحصيل الدراسي — " attr(data-print-date);
      display:block; font-size:1.1rem; font-weight:800; color:var(--navy-deep); margin-bottom:14px;
    }
    @page{ size:A4; margin:14mm; }

    body.printing-single-action *{ visibility:hidden !important; }
    body.printing-single-action #achActionPreviewModal,
    body.printing-single-action #achActionPreviewModal *{ visibility:visible !important; }
    body.printing-single-action #achActionPreviewModal{
      position:absolute !important; top:0 !important; left:0 !important; right:0 !important; background:#fff !important; padding:0 !important;
    }
    body.printing-single-action #achActionPreviewBox{
      box-shadow:none !important; max-width:100% !important; max-height:none !important; overflow:visible !important;
    }
    body.printing-single-action::before{
      content:"معاينة إجراء — " attr(data-print-date);
      visibility:visible !important; position:absolute !important; top:0 !important; right:0 !important; left:0 !important;
      display:block !important; font-size:1.1rem; font-weight:800; color:var(--navy-deep); margin-bottom:14px;
    }

    body.printing-goal-report *{ visibility:hidden !important; }
    body.printing-goal-report #goalReportModal,
    body.printing-goal-report #goalReportModal *{ visibility:visible !important; }
    body.printing-goal-report #goalReportModal{
      position:absolute !important; top:0 !important; left:0 !important; right:0 !important; background:#fff !important; padding:0 !important;
    }
    body.printing-goal-report #goalReportBox{
      box-shadow:none !important; max-width:100% !important; max-height:none !important; overflow:visible !important;
    }
    body.printing-goal-report .table-wrap{ max-height:none !important; overflow:visible !important; }
    body.printing-goal-report .plan-modal-actions{ display:none !important; }
    body.printing-goal-report::before{
      content:"تقرير هدف — " attr(data-print-date);
      visibility:visible !important; position:absolute !important; top:0 !important; right:0 !important; left:0 !important;
      display:block !important; font-size:1.1rem; font-weight:800; color:var(--navy-deep); margin-bottom:14px;
    }

    body.printing-all-actions *{ visibility:hidden !important; }
    body.printing-all-actions #achAllActionsTable,
    body.printing-all-actions #achAllActionsTable *{ visibility:visible !important; }
    body.printing-all-actions #achAllActionsTable{
      position:absolute !important; top:0 !important; left:0 !important; right:0 !important; width:100% !important;
    }
    body.printing-all-actions .table-wrap{ max-height:none !important; overflow:visible !important; }
    body.printing-all-actions::before{
      content:"إجراءات خطة التحصيل الدراسي — " attr(data-print-date);
      visibility:visible !important; position:absolute !important; top:0 !important; right:0 !important; left:0 !important;
      display:block !important; font-size:1.1rem; font-weight:800; color:var(--navy-deep); margin-bottom:14px;
    }
    body.printing-all-actions #achAllActionsTable{ margin-top:40px !important; }

    body.printing-dev-actions *{ visibility:hidden !important; }
    body.printing-dev-actions #devAllActionsTable,
    body.printing-dev-actions #devAllActionsTable *{ visibility:visible !important; }
    body.printing-dev-actions #devAllActionsTable{
      position:absolute !important; top:0 !important; left:0 !important; right:0 !important; width:100% !important; margin-top:40px !important;
    }
    body.printing-dev-actions .table-wrap{ max-height:none !important; overflow:visible !important; }
    body.printing-dev-actions::before{
      content:"إجراءات خطة الإنماء المهني — " attr(data-print-date);
      visibility:visible !important; position:absolute !important; top:0 !important; right:0 !important; left:0 !important;
      display:block !important; font-size:1.1rem; font-weight:800; color:var(--navy-deep); margin-bottom:14px;
    }
  }

  #achAnalysisTableWrap{ margin-bottom:22px; }
  .ach-target-section{ margin-bottom:22px; }
  .ach-target-title{ margin:0 0 10px; font-size:.95rem; color:var(--navy-deep); }

  /* ===== صف مضغوط لبطاقات برامج الخطط + تذكير جدول الأعمال — على استقامة واحدة ===== */
  .dash-work-row{
    display:flex;
    align-items:flex-start;
    gap:20px;
    margin:6px 6px 28px;
  }
  .dash-quick-grid{
    display:flex; align-items:stretch;
    flex:0 0 320px;
    transition:transform .3s ease;
  }
  .dash-quick-grid .dash-quick-card{ flex:1 1 auto; max-width:none; }
  .dash-quick-grid-shifted{ transform:translateX(-320px); }
  @media(max-width:900px){
    .dash-quick-grid-shifted{ transform:none; }
    .dash-work-row{ flex-direction:column; }
    .dash-quick-grid{ flex:1 1 auto; width:100%; }
  }
  /* حدود متدرِّجة الألوان لبطاقة روابط سريعة — عنصر زائف خلفي بلون متدرِّج
     يظهر كحلقة حدّية حول البطاقة مع الحفاظ على استدارة الزوايا */
  .dash-quick-grid .dash-quick-card{
    position:relative;
    z-index:1;
    border:none;
  }
  .dash-quick-grid .dash-quick-card::before{
    content:'';
    position:absolute;
    inset:-3px;
    border-radius:calc(var(--card-radius) + 3px);
    background:linear-gradient(135deg, #2563EB, #16A34A, #7C3AED, #EA580C, var(--gold));
    z-index:-1;
  }
  .dash-quick-card{ margin-bottom:0; padding:14px 16px; display:flex; flex-direction:column; }
  .dash-quick-card .panel-card-head{
    margin-bottom:12px; padding-bottom:10px; gap:10px;
  }
  .dash-quick-card .panel-card-head-icon{ width:32px; height:32px; }
  .dash-quick-card .panel-card-head-icon svg{ width:16px; height:16px; }
  .dash-quick-card .panel-card-head h3{ font-size:.88rem; }
  .dash-quick-card-btns{ display:flex; flex-direction:column; gap:8px; }
  .dash-quick-card-btns .btn-plan-tool{ width:100%; justify-content:center; font-size:.78rem; padding:8px 10px; }
  .dash-quick-card #dashAgendaReminderBody .agenda-item{ padding:8px 10px; margin-bottom:6px; }
  .dash-quick-card #dashAgendaReminderBody .agenda-item-time{ font-size:.68rem; padding:3px 8px; }
  .dash-quick-card #dashAgendaReminderBody .agenda-item-main b{ font-size:.8rem; }

  /* ===== جدول أعمال المشرف ===== */
  .agenda-form{
    background:var(--paper); border:1px solid var(--ds-border); border-radius:var(--radius-md);
    padding:var(--sp-4); margin-bottom:var(--sp-4);
  }
  .agenda-form textarea{ width:100%; resize:vertical; }
  .agenda-form-actions{ display:flex; gap:8px; justify-content:flex-end; margin-top:var(--sp-3); }
  .agenda-empty{ color:var(--ink-faint); font-size:.85rem; padding:14px 4px; text-align:center; }
  .agenda-item{
    display:flex; align-items:center; gap:12px;
    background:var(--paper-card); border:1px solid var(--ds-border); border-right:4px solid var(--gold);
    border-radius:var(--radius-md); padding:11px 14px; margin-bottom:8px;
    transition:box-shadow .2s ease, transform .2s ease;
  }
  .agenda-item:hover{ box-shadow:var(--card-shadow-hover); transform:translateY(-1px); }
  /* V65 — مهمة "عاجلة" لم يحن موعدها بعد: حد برتقالي مميَّز؛ إن حان موعدها
     فعليًا فقاعدة agenda-item-due التالية (أعلى تحديدًا لا، بل مُعرَّفة
     بعدها في الترتيب) تطغى عليها كما هو متوقَّع بصريًا */
  .agenda-item.agenda-item-urgent{ border-right-color:#EA580C; }
  .agenda-item.agenda-item-due{ border-right-color:var(--ds-danger); background:var(--ds-danger-bg); }
  .agenda-item-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:2px; }
  .agenda-item-main b{ font-size:.88rem; color:var(--navy); }
  .agenda-item-note{ font-size:.76rem; color:var(--ink-soft); }
  .agenda-item-time{
    flex:0 0 auto; font-size:.76rem; font-weight:700; color:var(--navy-deep);
    background:var(--gold-light); border-radius:20px; padding:4px 12px; white-space:nowrap;
  }
  .agenda-delete-btn{
    flex:0 0 auto; background:none; border:none; color:var(--ds-danger); cursor:pointer;
    font-size:.95rem; padding:4px 6px; border-radius:6px; transition:background .15s ease;
  }
  .agenda-delete-btn:hover{ background:var(--ds-danger-bg); }
  /* V69 — .agenda-item* أعلاه لم تعد تُستخدَم من renderAgenda() بعد إعادة
     تصميم القائمة على هيئة صفوف بنمط عرض الخطة (.agenda-task-row أدناه)،
     تُركت كما هي حسب سياسة عدم حذف الكود القديم */

  /* V69 — شريط ترتيب قائمة المهام (حسب التاريخ / حسب الأهمية) */
  .agenda-sort-bar{
    display:flex; align-items:center; gap:8px; margin-bottom:var(--sp-3); flex-wrap:wrap;
  }
  .agenda-sort-label{ font-size:.78rem; color:var(--ink-soft); font-weight:600; }
  .agenda-sort-btn{
    background:var(--paper); border:1px solid var(--ds-border); color:var(--ink-soft);
    font-size:.76rem; font-weight:700; padding:5px 14px; border-radius:20px; cursor:pointer;
    transition:background .15s ease, color .15s ease, border-color .15s ease;
  }
  .agenda-sort-btn:hover{ background:var(--gold-light); color:var(--navy-deep); }
  .agenda-sort-btn.active{ background:var(--navy); border-color:var(--navy); color:#fff; }

  /* V69 — صفوف قائمة المهام بنمط عرض الخطة (مطابق لـ .dash-curtain-row) */
  .agenda-task-row{
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    padding:12px 16px; border-bottom:1px solid var(--line); font-size:.86rem;
    transition:background .15s ease;
  }
  .agenda-task-row:last-child{ border-bottom:none; }
  .agenda-task-row:hover{ background:var(--paper); }
  .agenda-task-row.agenda-task-row-urgent{ background:rgba(234,88,12,.06); }
  .agenda-task-row.agenda-task-row-due{ background:var(--ds-danger-bg); }
  .agenda-task-row-main{ flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:2px; }
  .agenda-task-row-title{ font-weight:700; color:var(--navy); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .agenda-task-row-note{ font-size:.76rem; color:var(--ink-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .agenda-task-row-date{
    flex:0 0 auto; font-size:.76rem; font-weight:600; color:var(--ink-soft); white-space:nowrap;
  }
  .agenda-task-row-actions{ flex:0 0 auto; display:flex; align-items:center; gap:4px; }
  .agenda-task-complete-btn, .agenda-task-delete-btn{
    background:none; border:none; cursor:pointer; font-size:.86rem; font-weight:700;
    width:26px; height:26px; border-radius:6px; display:flex; align-items:center; justify-content:center;
    transition:background .15s ease;
  }
  .agenda-task-complete-btn{ color:#16A34A; }
  .agenda-task-complete-btn:hover{ background:rgba(22,163,74,.12); }
  .agenda-task-delete-btn{ color:var(--ds-danger); }
  .agenda-task-delete-btn:hover{ background:var(--ds-danger-bg); }

  /* تنبيه تلقائي عند حلول موعد التذكير */
  .agenda-toast{
    position:fixed; top:18px; left:50%; transform:translateX(-50%);
    z-index:500; display:flex; align-items:flex-start; gap:12px;
    background:var(--navy); color:#fff; border:1.5px solid var(--gold);
    border-radius:var(--radius-lg); box-shadow:var(--shadow-deep);
    padding:14px 18px; max-width:420px; animation:agendaToastIn .25s ease;
  }
  @keyframes agendaToastIn{ from{ opacity:0; transform:translateX(-50%) translateY(-12px); } to{ opacity:1; transform:translateX(-50%) translateY(0); } }
  .agenda-toast-icon{ font-size:1.3rem; flex-shrink:0; }
  .agenda-toast-body{ flex:1 1 auto; display:flex; flex-direction:column; gap:3px; }
  .agenda-toast-body b{ font-size:.9rem; }
  .agenda-toast-body span{ font-size:.8rem; color:var(--gold-light); }
  .agenda-toast-close{
    flex-shrink:0; background:none; border:none; color:#fff; opacity:.75; cursor:pointer;
    font-size:1rem; padding:2px 4px;
  }
  .agenda-toast-close:hover{ opacity:1; }
  @media(max-width:600px){ .agenda-toast{ left:12px; right:12px; transform:none; max-width:none; } }
  .ach-clickable{ cursor:pointer; transition:box-shadow .2s ease, transform .2s ease; }
  .ach-clickable:hover{ box-shadow:var(--card-shadow-hover); transform:translateY(-2px); }
  .ach-row-highlight{ background:var(--gold-light) !important; transition:background .3s ease; }
  .ach-na{ font-size:.78rem !important; color:var(--ink-faint) !important; font-weight:600 !important; }
  /* ===== منطقة عرض الجداول: ارتفاع ثابت + تمرير داخلي + رؤوس ثابتة أثناء التمرير ===== */
  [data-plan-subpanel="achievement-analysis"] .ach-scroll-table{ max-height:360px; overflow:auto; }

  /* رأس جدول المدارس المستهدفة بلون الهوية + محاذاة ولمسات احترافية */
  .ach-target-table thead th{ background:var(--navy-deep) !important; color:#fff !important; }
  .ach-col-center{ text-align:center; }
  .ach-val-good{ color:var(--c1); font-weight:700; }
  .ach-val-bad{ color:var(--ds-danger); font-weight:700; }
  .ach-detail-btn{ padding:5px 12px; font-size:.78rem; border-radius:7px; transition:background-color .18s ease, transform .15s ease; }
  .ach-detail-btn:hover{ transform:translateY(-1px); }
  [data-plan-subpanel="achievement-analysis"] .data-table tbody tr:hover{ background:#FDF3E0 !important; }

  /* بطاقات مؤشرات تحليل التحصيل — أكثر إحكاماً واحترافية (لا تؤثر على بطاقات الخطط الأخرى) */
  [data-plan-subpanel="achievement-analysis"] .plan-summary, [data-plan-subpanel="achievement-compare"] .plan-summary{ gap:8px; margin-bottom:12px; }
  [data-plan-subpanel="achievement-analysis"] .plan-summary-card, [data-plan-subpanel="achievement-compare"] .plan-summary-card{
    min-width:95px; padding:7px 9px 6px; border-top:3px solid var(--navy);
    display:flex; flex-direction:column; justify-content:center; min-height:0;
  }
  [data-plan-subpanel="achievement-analysis"] .plan-summary-card b, [data-plan-subpanel="achievement-compare"] .plan-summary-card b{
    font-size:1.15rem; line-height:1.1; margin-bottom:2px; font-weight:800;
  }
  [data-plan-subpanel="achievement-analysis"] .plan-summary-card span, [data-plan-subpanel="achievement-compare"] .plan-summary-card span{
    font-size:.62rem; line-height:1.3;
  }
  [data-plan-subpanel="achievement-analysis"] .data-table, [data-plan-subpanel="achievement-compare"] .data-table{ font-size:.78rem; }
  [data-plan-subpanel="achievement-analysis"] .data-table thead th, [data-plan-subpanel="achievement-compare"] .data-table thead th{ padding:7px 9px; font-size:.72rem; }
  [data-plan-subpanel="achievement-analysis"] .data-table tbody td, [data-plan-subpanel="achievement-compare"] .data-table tbody td{ padding:6px 9px; }
  [data-plan-subpanel="achievement-analysis"] .ach-filter-fields .plan-modal-field, [data-plan-subpanel="achievement-compare"] .ach-filter-fields .plan-modal-field{ min-width:120px; }
  [data-plan-subpanel="achievement-analysis"] .ach-filter-fields select, [data-plan-subpanel="achievement-compare"] .ach-filter-fields select,
  [data-plan-subpanel="achievement-analysis"] .ach-filter-fields input, [data-plan-subpanel="achievement-compare"] .ach-filter-fields input{ font-size:.8rem; padding:6px 8px; }
  [data-plan-subpanel="achievement-analysis"] .ach-target-title, [data-plan-subpanel="achievement-compare"] .ach-target-title{ font-size:.82rem; }
  [data-plan-subpanel="achievement-analysis"] .ach-smart-indicators{ margin-top:0; margin-bottom:16px; }
  [data-plan-subpanel="achievement-analysis"] .ach-smart-indicators .plan-summary-card{ border-top-color:var(--gold); }
  .plan-summary-card.ach-accent-good{ background:#f1f2f4; }
  [data-plan-subpanel="achievement-analysis"] .ach-accent-good{ border-top-color:var(--c1) !important; }
  [data-plan-subpanel="achievement-analysis"] .ach-accent-bad{ border-top-color:var(--ds-danger) !important; }
  [data-plan-subpanel="achievement-analysis"] .ach-accent-warn{ border-top-color:#C2641E !important; }

  @media(max-width:640px){
    [data-plan-subpanel="achievement-analysis"] .plan-summary-card{ flex:1 1 45%; min-width:0; }
    [data-plan-subpanel="achievement-analysis"] .ach-filter-fields{ flex-direction:column; align-items:stretch; }
  }
  .ach-sortable{ cursor:pointer; user-select:none; }
  .ach-sortable:hover{ color:var(--gold); }

  .ach-smart-indicators{ margin-top:-6px; }
  .ach-smart-indicators .plan-summary-card{ background:var(--paper); }

  .ach-link-box{ background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-md); padding:12px 14px; margin-top:4px; }
  .ach-link-data{ font-size:.8rem; color:var(--ink-soft); background:#fff; border:1px solid var(--line); border-radius:8px; padding:8px 10px; margin-bottom:8px; }
  .ach-link-after{ font-size:.76rem; color:var(--ink-faint); font-style:italic; }
  .ach-impact-box{ background:var(--blue-success-bg); border:1px solid var(--blue-success-line); border-radius:var(--radius-md); padding:14px 16px; }
  .ach-impact-box h4{ margin:0 0 10px; color:var(--navy-deep); font-size:.92rem; }
  .ach-track-table td{ font-size:.82rem; }
  .ach-track-row{ cursor:pointer; }
  .ach-track-row:hover{ background:var(--paper) !important; }


  .plan-panel{ display:none; animation:fadeIn .25s ease; }
  .plan-panel.active{ display:block; }

  .plan-form{
    display:none;
    background:var(--paper);
    border:1px dashed var(--gold);
    border-radius:var(--radius-md);
    padding:20px;
    margin-bottom:20px;
  }
  .plan-form.show{ display:block; animation:fadeIn .25s ease; }

  .plan-textarea{
    width:100%;
    min-height:160px;
    border:1px solid var(--line);
    border-radius:8px;
    padding:12px 14px;
    font-family:'Tajawal',sans-serif;
    font-size:.88rem;
    line-height:1.8;
    resize:vertical;
    background:var(--paper);
  }
  .plan-textarea:focus{ outline:none; border-color:var(--burgundy); background:#fff; }

  .month-selector{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(85px, 1fr));
    gap:8px;
  }
  .month-btn{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:8px;
    padding:10px 6px;
    font-family:'Tajawal',sans-serif;
    font-size:.82rem;
    font-weight:600;
    color:var(--ink-soft);
    cursor:pointer;
    text-align:center;
    transition:background .15s, color .15s, border-color .15s;
    position:relative;
  }
  .month-btn:hover{ border-color:var(--gold); }
  .month-btn.active{ background:var(--navy); color:#fff; border-color:var(--navy); }
  .month-btn.has-content::after{
    content:"";
    position:absolute;
    top:5px; left:5px;
    width:6px; height:6px;
    border-radius:50%;
    background:var(--gold);
  }
  .month-btn.active.has-content::after{ background:var(--gold-light); }

  .plan-cell-text{ white-space:pre-wrap; max-width:220px; }

  .plan-search-bar{
    margin-bottom:14px;
  }
  .plan-search-bar .filter-search{ max-width:360px; }


  .policy-note{
    background:var(--gold-light);
    border:1px solid var(--gold);
    border-radius:8px;
    padding:10px 14px;
    font-size:.78rem;
    color:var(--ink);
    line-height:1.8;
    margin-bottom:16px;
  }
  .policy-note b{ color:var(--burgundy-dark); }

  .term-selector{
    display:flex;
    gap:8px;
    margin-bottom:18px;
    flex-wrap:wrap;
  }
  .term-btn{
    background:var(--paper);
    border:1px solid var(--line);
    border-radius:20px;
    padding:7px 18px;
    font-family:'Tajawal',sans-serif;
    font-size:.82rem;
    font-weight:600;
    color:var(--ink-soft);
    cursor:pointer;
    transition:background .15s, color .15s;
  }
  .term-btn:hover{ border-color:var(--gold); }
  .term-btn.active{ background:var(--navy); color:#fff; border-color:var(--navy); }

  .visit-stats-toolbar{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:16px;
    flex-wrap:wrap;
  }

  .visit-history-row{ cursor:pointer; }
  .visit-history-row:hover{ background:var(--gold-light) !important; }

  /* ===== نافذة تقرير الزيارة ===== */
  .visit-report-box{ max-width:680px; }
  .visit-report-actions{
    display:flex;
    gap:10px;
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid var(--line);
    justify-content:center;
  }
  .visit-report-actions .btn-save,
  .visit-report-actions .btn-cancel{ margin-top:0; min-width:140px; justify-content:center; }

  .vr-header{ text-align:center; margin-bottom:16px; padding-bottom:14px; border-bottom:2px solid var(--burgundy); }
  .vr-header h2{ font-family:'Amiri',serif; color:var(--burgundy-dark); margin:0 0 4px; font-size:1.2rem; }
  .vr-header p{ font-size:.8rem; color:var(--ink-soft); margin:0; }

  .vr-meta-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:8px 20px;
    margin-bottom:18px;
    font-size:.86rem;
  }
  .vr-meta-grid div{ display:flex; gap:6px; }
  .vr-meta-grid b{ color:var(--ink-soft); font-weight:600; flex-shrink:0; }

  .vr-section{ margin-bottom:16px; }
  .vr-section h4{ font-size:.92rem; color:var(--burgundy-dark); margin:0 0 8px; font-family:'Amiri',serif; }
  .vr-items-list{ display:flex; flex-direction:column; gap:6px; }
  .vr-item-row{
    display:flex; justify-content:space-between; gap:10px;
    font-size:.83rem; padding:6px 10px; background:var(--paper); border-radius:6px;
  }
  .vr-item-row .vr-level-badge{
    font-weight:800; font-size:.74rem; padding:2px 10px; border-radius:10px; color:#fff; flex-shrink:0;
  }

  .vr-text-block{
    font-size:.85rem; line-height:1.8; white-space:pre-wrap;
    background:var(--paper); border-radius:7px; padding:10px 12px;
  }

  .vr-average-box{
    text-align:center; background:var(--paper-card); color:var(--navy); border:1px solid var(--ds-border); border-top:3px solid var(--gold); border-radius:var(--card-radius); box-shadow:var(--card-shadow); padding:16px; margin-bottom:16px;
  }
  .vr-average-box .vr-avg-score{ font-size:1.7rem; font-weight:900; font-family:'Amiri',serif; }
  .vr-average-box .vr-avg-badge{
    display:inline-block; margin-top:6px; padding:4px 16px; border-radius:20px; font-weight:800; font-size:.85rem;
  }

  /* تنسيق التوقيعات داخل التقرير */
  .vr-signatures{ margin-top:22px; }
  .vr-sign-grid{ display:flex; gap:18px; flex-wrap:wrap; }
  .vr-sign-box{ flex:1; min-width:150px; text-align:center; }
  .vr-sign-line{ border-bottom:1.5px solid var(--navy-deep); height:34px; margin-bottom:6px; }
  .vr-sign-box p{ font-size:.8rem; color:var(--ink-soft); font-weight:700; }

  /* ===== طباعة تقرير الزيارة: يتدفّق على عدة صفحات ويشمل كل الأقسام ===== */
  @media print{
    body.printing-report .sidebar,
    body.printing-report .sidebar-overlay,
    body.printing-report .mobile-toggle,
    body.printing-report .main-area,
    body.printing-report .image-lightbox{ display:none !important; }

    /* V111 — إصلاح: القاعدة السابقة كانت تستهدف كل عناصر .modal-overlay في
       الصفحة (6 نوافذ منبثقة مختلفة)، فتُظهرها كلها أثناء الطباعة وتُحوّلها
       لعنصر عادي ضمن تدفّق الصفحة، فتُطبع محتوياتها (كنافذة تصنيف أهداف
       خطة الإجادة مثلًا) بعد سجل الزيارة مباشرة وتظهر كتداخل من صفحة أخرى.
       التصحيح: إخفاء أي .modal-overlay عدا نافذة تقرير الزيارة نفسها صراحةً. */
    body.printing-report .modal-overlay:not(#visitReportModal){
      display:none !important;
    }
    body.printing-report #visitReportModal{
      display:block !important; position:static !important; inset:auto !important;
      background:#fff !important; padding:0 !important; overflow:visible !important;
    }
    body.printing-report #visitReportPrintArea{
      position:static !important; max-width:100% !important; max-height:none !important;
      height:auto !important; overflow:visible !important;
      box-shadow:none !important; border-radius:0 !important; padding:0 !important; margin:0 !important;
    }
    body.printing-report .no-print{ display:none !important; }

    /* منع اقتطاع الأقسام بين الصفحات */
    body.printing-report .vr-section,
    body.printing-report .vr-item-row,
    body.printing-report .vr-text-block,
    body.printing-report .vr-sign-box{ page-break-inside:avoid; break-inside:avoid; }
    body.printing-report .vr-items-list{ break-inside:auto; }
    body.printing-report{ background:#fff !important; }
    @page{ margin:14mm; }
  }


  /* ===========================================================
     الوحدة 4 — استمارة الزيارة الإشرافية (مدمجة)
     =========================================================== */
  .teacher-policy-banner{
    display:none;
    margin-top:16px;
    background:var(--gold-light);
    border:1px solid var(--gold);
    border-radius:8px;
    padding:10px 14px;
    font-size:.82rem;
    color:var(--ink);
  }
  .teacher-policy-banner.show{ display:block; }
  .teacher-policy-banner b{ color:var(--burgundy-dark); }

  .legend{ margin:20px 0 16px; display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-start; }
  .legend-chip{
    display:flex;align-items:center;gap:6px; background:var(--paper-card); border:1px solid var(--line);
    border-radius:20px; padding:5px 12px; font-size:.75rem; color:var(--ink-soft);
  }
  .legend-dot{ width:9px;height:9px;border-radius:50%; display:inline-block; }

  :root{
    --c1:#1E6B47; --c1-bg:#E7F3EC;
    --c2:#5A9B6E; --c2-bg:#EEF6EF;
    --c3:#C9A227; --c3-bg:#FBF4DD;
    --c4:#C26B2E; --c4-bg:#FBEBDD;
    --c5:#A33A3A; --c5-bg:#FAEAEA;
    --orange-dev:#C2641E; --orange-dev-bg:#FDF0E4; --orange-dev-line:#F6D9BC;
    --blue-success:#1D5FA3; --blue-success-bg:#EAF3FC; --blue-success-line:#C9E1F7;
    --action-bg:#FBF8F2; --action-line:#E3D6B8;
  }

  /* ============================================================
     UI Refresh — توحيد الهوية البصرية (تصميم فقط، بلا أي منطق)
     ============================================================ */
  :root{
    --radius-btn:9px;
    --btn-h:42px;
    --transition-soft: background-color .18s ease, border-color .18s ease,
                        box-shadow .18s ease, transform .12s ease, color .18s ease;
    --focus-ring: 0 0 0 3px rgba(184,137,62,.28);
  }

  /* توحيد ارتفاع/نصف قطر/انتقال كل عائلة الأزرار دون تغيير ألوانها الدلالية */
  .btn-save, .btn-add-row, .btn-plan-tool, .btn-cancel, .tc-save-btn,
  .mfu-btn, .mfu-alert-btn, .mfu-reason-save, .dash-reason-save,
  #teacherStatsBtn, #saveAllTeachersBtn, #mspSaveBtn{
    border-radius:var(--radius-btn) !important;
    min-height:var(--btn-h);
    transition:var(--transition-soft) !important;
  }
  .mfu-btn, .mfu-reason-save, .dash-reason-save{ min-height:32px; }  /* أزرار مصغّرة داخل الجداول */
  .btn-save:hover, .btn-add-row:hover, .btn-plan-tool:hover, .tc-save-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 10px rgba(20,30,40,.10);
  }
  .btn-save:active, .btn-add-row:active, .btn-plan-tool:active, .tc-save-btn:active{ transform:translateY(0); }
  .btn-save:disabled, .tc-save-btn:disabled{ transform:none; box-shadow:none; }

  /* ===== امتداد طبقة التوحيد: بقية الأزرار التفاعلية في النظام (جداول، نوافذ منبثقة، أيقونات) ===== */
  .btn-cancel, .btn-delete-row, .ach-achv-indicator, .ach-achv-remove,
  .plan-goal-edit, .plan-goal-del, .generic-picker-add-btn, .dev-target-eye-btn,
  .dev-target-card-remove, .achv-inline-btn, .achv-view-btn, .btn-calc,
  .visit-rating-btn, .dash-check, .dev-quick-achv-edit, .dev-quick-achv-remove,
  .dev-quick-achv-preview{
    transition:var(--transition-soft) !important;
  }
  .btn-cancel:hover:not(:disabled), .btn-delete-row:hover:not(:disabled),
  .ach-achv-indicator:hover:not(:disabled), .ach-achv-remove:hover:not(:disabled),
  .plan-goal-edit:hover:not(:disabled), .plan-goal-del:hover:not(:disabled),
  .generic-picker-add-btn:hover:not(:disabled), .dev-target-eye-btn:hover:not(:disabled),
  .achv-inline-btn:hover:not(:disabled), .achv-view-btn:hover:not(:disabled),
  .btn-calc:hover:not(:disabled), .dev-quick-achv-edit:hover:not(:disabled),
  .dev-quick-achv-remove:hover:not(:disabled), .dev-quick-achv-preview:hover:not(:disabled){
    transform:translateY(-1px);
    box-shadow:0 3px 9px rgba(20,30,40,.10);
    filter:brightness(.98);
  }
  .btn-cancel:active:not(:disabled), .btn-delete-row:active:not(:disabled),
  .ach-achv-indicator:active:not(:disabled), .ach-achv-remove:active:not(:disabled),
  .plan-goal-edit:active:not(:disabled), .plan-goal-del:active:not(:disabled),
  .generic-picker-add-btn:active:not(:disabled), .dev-target-eye-btn:active:not(:disabled),
  .achv-inline-btn:active:not(:disabled), .achv-view-btn:active:not(:disabled),
  .btn-calc:active:not(:disabled), .dev-quick-achv-edit:active:not(:disabled),
  .dev-quick-achv-remove:active:not(:disabled), .dev-quick-achv-preview:active:not(:disabled){
    transform:translateY(0) scale(.97);
    box-shadow:none;
    filter:brightness(.95);
  }
  /* حالة التعطيل الموحَّدة: باهتة، بلا ظل أو حركة، مؤشر ممنوع */
  button:disabled, .ach-achv-indicator:disabled, .plan-goal-edit:disabled,
  .plan-goal-del:disabled, .dev-target-eye-btn:disabled, .achv-inline-btn:disabled,
  .achv-view-btn:disabled, .generic-picker-add-btn:disabled{
    opacity:.42 !important;
    cursor:not-allowed !important;
    box-shadow:none !important;
    transform:none !important;
    filter:grayscale(.35);
  }

  /* توحيد حقول الإدخال/القوائم/التواريخ */
  input[type="text"], input[type="date"], input[type="number"], input[type="tel"],
  input[type="email"], input[type="search"], select, textarea{
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--ink);
    transition:var(--transition-soft);
  }
  input[type="text"]:focus, input[type="date"]:focus, input[type="number"]:focus,
  input[type="tel"]:focus, input[type="email"]:focus, input[type="search"]:focus,
  select:focus, textarea:focus{
    outline:none;
    border-color:var(--gold);
    box-shadow:var(--focus-ring);
  }
  /* إتاحة وصول: تركيز واضح وهادئ عبر لوحة المفاتيح لكل عنصر تفاعلي */
  button:focus-visible, a:focus-visible, [tabindex]:focus-visible{
    outline:2px solid var(--gold);
    outline-offset:2px;
  }

  /* بطاقات أكثر نعومة (ظل أخفّ + انتقال ناعم عند التمرير حيث يوجد) */
  .panel-card, .teacher-card, .msp-card{
    transition:box-shadow .2s ease, transform .2s ease;
  }

  .visit-indicator{
    background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius-md);
    box-shadow:var(--shadow); padding:14px 18px; margin-bottom:12px;
    display:flex; align-items:center; gap:18px; flex-wrap:wrap; transition:border-color .15s;
  }
  .visit-indicator.is-answered{ border-color:var(--gold); }
  .visit-indicator-info{ flex:1 1 280px; min-width:200px; }
  .visit-indicator-text{ font-size:.9rem; font-weight:700; color:var(--ink); margin:0; }

  .visit-rating-row{ display:flex; gap:6px; flex:0 0 auto; }
  @media (max-width:760px){
    .visit-indicator{ flex-direction:column; align-items:stretch; }
    .visit-rating-row{ width:100%; justify-content:space-between; }
  }
  .visit-rating-btn{
    --c:#999; --c-bg:#f5f5f5;
    border:1.3px solid var(--line); background:var(--paper-card); border-radius:7px;
    padding:6px 5px; min-width:50px; text-align:center; cursor:pointer;
    font-family:'Tajawal',sans-serif; font-size:.66rem; font-weight:600; color:var(--ink-soft);
    transition:transform .12s, border-color .15s, background .15s, box-shadow .15s;
    line-height:1.2; user-select:none;
  }
  .visit-rating-btn .vrb-num{ display:block; font-weight:900; font-size:1rem; color:var(--c); }
  .visit-rating-btn:hover{ border-color:var(--c); background:var(--c-bg); transform:translateY(-2px); }
  .visit-rating-btn.active{ background:var(--c); border-color:var(--c); color:#fff; box-shadow:0 3px 10px rgba(0,0,0,.18); }
  .visit-rating-btn.active .vrb-num{ color:#fff; }
  .visit-rating-btn[data-level="1"]{--c:var(--c1); --c-bg:var(--c1-bg);}
  .visit-rating-btn[data-level="2"]{--c:var(--c2); --c-bg:var(--c2-bg);}
  .visit-rating-btn[data-level="3"]{--c:var(--c3); --c-bg:var(--c3-bg);}
  .visit-rating-btn[data-level="4"]{--c:var(--c4); --c-bg:var(--c4-bg);}
  .visit-rating-btn[data-level="5"]{--c:var(--c5); --c-bg:var(--c5-bg);}

  .reflect-grid{ display:flex; flex-direction:column; gap:14px; }
  .reflect-box{ background:var(--paper-card); border-radius:var(--radius-md); padding:16px 18px; box-shadow:var(--shadow); }
  .reflect-box.success{ background:var(--blue-success-bg); border:1px solid var(--blue-success-line); border-right:4px solid var(--blue-success); }
  .reflect-box.warn{ background:var(--orange-dev-bg); border:1px solid var(--orange-dev-line); border-right:4px solid var(--orange-dev); }
  .reflect-box.action{ background:var(--action-bg); border:1px solid var(--action-line); border-right:4px solid var(--gold); }
  .reflect-box-head{ display:flex; align-items:center; gap:7px; font-weight:700; font-size:.9rem; margin-bottom:10px; }
  .reflect-box.success .reflect-box-head{ color:var(--blue-success); }
  .reflect-box.warn .reflect-box-head{ color:var(--orange-dev); }
  .reflect-box.action .reflect-box-head{ color:var(--burgundy-dark); }

  .auto-fill{ display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
  .auto-empty{ font-size:.78rem; color:var(--ink-faint); font-style:italic; }
  .auto-line{ background:rgba(255,255,255,.7); border:1px solid rgba(0,0,0,.06); border-radius:7px; padding:8px 11px; display:flex; gap:8px; align-items:flex-start; font-size:.84rem; line-height:1.7; flex-wrap:wrap; }
  .auto-line-num{ flex-shrink:0; font-weight:800; font-size:.72rem; color:#fff; background:var(--blue-success); padding:2px 9px; border-radius:12px; }
  .reflect-box.warn .auto-line-num{ background:var(--orange-dev); }
  .reflect-box.action .auto-line-num{ background:var(--gold); color:var(--navy-deep); }
  .auto-line-text{ flex:1; color:var(--ink); min-width:120px; }
  .auto-line-actions{ display:flex; gap:8px; flex-shrink:0; margin-right:auto; }
  .auto-link{ background:none; border:none; padding:0; font-family:'Tajawal',sans-serif; font-size:.72rem; font-weight:700; color:var(--burgundy); cursor:pointer; text-decoration:underline dotted; }
  .auto-link.danger{ color:var(--c5); }
  .auto-link.save{ color:var(--blue-success); }
  .auto-link.cancel{ color:var(--ink-faint); }
  .auto-line.is-editing, .auto-line.is-rephrasing{ flex-direction:column; align-items:stretch; }
  .auto-line-edit, .rephrase-examples{ width:100%; min-height:50px; border:1px solid var(--gold); border-radius:6px; padding:7px 9px; font-family:'Tajawal',sans-serif; font-size:.82rem; line-height:1.6; resize:vertical; background:#fff; margin-top:4px; }
  .rephrase-original{ margin:4px 0 8px; font-size:.8rem; color:var(--ink-soft); line-height:1.6; padding:7px 9px; background:#fff; border:1px dashed var(--line); border-radius:6px; }
  .rephrase-label{ display:block; font-size:.74rem; color:var(--ink-soft); margin-bottom:5px; }

  .manual-label{ display:block; font-size:.74rem; color:var(--ink-soft); margin:0 0 5px; }
  .reflect-box textarea{ width:100%; min-height:70px; border:1px solid var(--line); border-radius:7px; padding:9px 11px; font-family:'Tajawal',sans-serif; font-size:.85rem; resize:vertical; background:#fff; }
  .reflect-box textarea:focus{ outline:none; border-color:var(--gold); }

  .average-card{ background:linear-gradient(160deg, var(--navy), var(--navy-deep)); border-radius:var(--radius-lg); padding:20px 22px; color:#fff; }
  .average-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; }
  .average-main{ flex:1 1 auto; text-align:center; min-width:220px; }
  .average-main h3{ font-family:'Amiri',serif; margin:0 0 12px; font-size:1.05rem; }
  .btn-calc{ background:var(--paper-card); color:var(--navy-deep); border:1.5px solid var(--gold); border-radius:8px; padding:9px 22px; font-family:'Tajawal',sans-serif; font-weight:900; font-size:.84rem; cursor:pointer; }
  .btn-calc:hover{ background:var(--gold-light); }
  .average-result{ margin-top:14px; display:none; }
  .average-result.show{ display:block; }
  .average-score{ font-size:1.9rem; font-weight:900; font-family:'Amiri',serif; }
  .average-rating-badge{ display:inline-block; padding:5px 18px; border-radius:22px; font-weight:900; font-size:.92rem; margin:6px 0 8px; }
  .average-rating-badge.r-excellent{background:var(--ds-success); color:#fff;}
  .average-rating-badge.r-vgood{background:#5A9B6E; color:#fff;}
  .average-rating-badge.r-good{background:#C9A227; color:#3a2c05;}
  .average-rating-badge.r-weak{background:var(--ds-danger); color:#fff;}
  .average-note{ font-size:.78rem; color:var(--gold-light); max-width:400px; margin:0 auto; }

  .pending-alert{ flex:0 1 240px; min-width:200px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); border-radius:10px; padding:11px 14px; font-size:.78rem; line-height:1.6; display:flex; align-items:flex-start; gap:8px; }
  .pending-alert.all-done{ border-color:rgba(120,200,150,.4); background:rgba(120,200,150,.12); }
  .pending-alert svg{ width:18px; height:18px; flex-shrink:0; margin-top:1px; color:var(--gold-light); }
  .pending-alert.all-done svg{ color:#9be3b3; }
  .pending-alert b{ display:block; margin-bottom:2px; font-size:.8rem; }

  .signatures-card{ display:flex; gap:16px; margin-top:18px; flex-wrap:wrap; }
  .signature-box{ flex:1 1 200px; background:var(--paper-card); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow); padding:22px 16px 12px; text-align:center; }
  .signature-line{ height:1px; background:var(--ink-faint); margin-bottom:9px; }
  .signature-label{ margin:0; font-size:.8rem; color:var(--ink-soft); }

  .visit-actions-bar{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin-top:24px;
    flex-wrap:wrap;
  }
  .visit-actions-bar .btn-save,
  .visit-actions-bar .btn-cancel{ margin-top:0; min-width:160px; justify-content:center; }

  /* بند غير مكتمل = تظليل برتقالي مع نبضة */
  .visit-indicator.is-missing{
    border:2px solid #D32F2F !important;
    background:rgba(211,47,47,.08) !important;
    animation: missingPulse 1s ease-in-out 2;
  }
  @keyframes missingPulse{
    0%,100%{ box-shadow:0 0 0 0 rgba(211,47,47,.3); }
    50%{ box-shadow:0 0 0 6px rgba(211,47,47,0); }
  }

  @media print{
    .sidebar, .topbar, .mobile-toggle, .module-hero, .plan-tabs,
    .visit-actions-bar, .btn-calc, .filter-bar{ display:none !important; }
    .main-area{ margin-right:0; }
    body{ background:#fff; }
    .plan-panel{ display:none !important; }
    .plan-panel[data-visit-panel="newvisit"].print-active{ display:block !important; }
  }




  /* ============================================================
     مخططات لوحة المتابعة
     ============================================================ */
  .dash-school-chart-wrap{
    width:100%;
    overflow-x:auto;
    padding-bottom:8px;
  }
  .dash-school-chart-wrap canvas{ display:block; }

  .dash-charts-row{
    display:grid;
    grid-template-columns:240px 1fr;
    gap:20px;
    margin-top:20px;
    align-items:start;
  }
  @media(max-width:700px){ .dash-charts-row{ grid-template-columns:1fr; } }

  .dash-donut-wrap{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  .dash-donut-label{
    position:absolute;
    text-align:center;
    font-family:'Amiri',serif;
    font-size:1.4rem;
    font-weight:900;
    color:var(--navy);
    pointer-events:none;
  }
  .dash-donut-label small{
    display:block;
    font-family:'Tajawal',sans-serif;
    font-size:.68rem;
    font-weight:400;
    color:var(--ink-soft);
  }
  .dash-chart-half{ min-width:0; }

  /* ===========================================================
     لوحة تبويب "الخطة الإجرائية" لخطة الإنماء المهني — إعادة تصميم
     كاملة مطابقة للمرجع البصري (ذهبي/كحلي/أبيض)، عرض فقط
     =========================================================== */

  /* الشريط العلوي: زر هدف جديد + إحصائيات التوثيق + كتلتا التوثيق/الإجمالي */
  .dev-top-bar{
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    margin-bottom:12px;
  }
  .dev-new-goal-btn{
    display:flex; align-items:center; gap:6px; justify-content:center;
    background:linear-gradient(180deg, var(--gold) 0%, #C79A3A 100%);
    color:#fff; border:none; border-radius:9px; padding:0 16px; height:36px;
    font-family:inherit; font-weight:700; font-size:.82rem; cursor:pointer;
    box-shadow:0 2px 7px -3px rgba(199,154,58,.55);
    transition:transform .15s ease, box-shadow .15s ease;
    order:3; flex-shrink:0;
  }
  .dev-new-goal-btn:hover{ transform:translateY(-1px); box-shadow:0 4px 10px -3px rgba(199,154,58,.6); }
  .dev-new-goal-icon{ font-size:.92rem; }

  .dev-doc-summary{
    flex:1 1 300px; background:#FFFFFF; border:1px solid var(--line); border-radius:11px;
    padding:8px 14px; box-shadow:0 2px 6px -4px rgba(20,30,50,.08);
    order:2;
  }
  .dev-doc-summary-head{ font-weight:700; color:var(--navy-deep); font-size:.76rem; margin-bottom:5px; }
  .dev-doc-summary-row{ display:flex; flex-wrap:wrap; gap:12px; }
  .dev-doc-stat{ color:var(--ink-soft); font-weight:600; font-size:.75rem; display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
  .dev-doc-stat b{ color:var(--navy-deep); font-weight:800; }

  .dev-stat-block{
    background:#FFFFFF; border:1px solid var(--line); border-radius:11px;
    padding:7px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; min-width:92px; box-shadow:0 2px 6px -4px rgba(20,30,50,.08);
    order:1;
  }
  .dev-stat-block-label{ font-size:.7rem; color:var(--ink-soft); font-weight:700; white-space:nowrap; }
  .dev-stat-block-value{ font-size:1.05rem; color:var(--navy-deep); font-weight:800; }

  .dev-section-title{
    font-size:1rem; font-weight:800; color:var(--navy-deep);
    margin:4px 0 12px; text-align:right;
  }

  /* صفوف/بطاقات الأهداف */
  .dev-acc-stack{ display:flex; flex-direction:column; gap:10px; }
  .dev-acc-goal-block{
    border:1px solid var(--line); border-radius:14px; overflow:hidden;
    background:#FFFFFF;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .dev-acc-goal-block.dev-acc-open{
    border:1.5px solid var(--gold);
    box-shadow:0 0 18px -2px rgba(184,137,62,.45), 0 4px 16px -6px rgba(199,154,58,.35);
  }
  .dev-acc-header{
    display:flex; align-items:center; gap:12px; padding:13px 16px;
    cursor:pointer; user-select:none;
  }
  .dev-acc-num{
    width:30px; height:30px; border-radius:50%; flex-shrink:0;
    background:linear-gradient(180deg, var(--gold) 0%, #C79A3A 100%); color:#fff;
    font-weight:800; font-size:.85rem;
    display:flex; align-items:center; justify-content:center;
  }
  .dev-acc-titlewrap{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
  .dev-acc-title{ font-weight:800; color:var(--navy-deep); font-size:.94rem; }
  .dev-acc-meta{ font-size:.76rem; color:var(--ink-soft); font-weight:600; }
  .dev-acc-mini-status{ font-size:.78rem; color:var(--ink-soft); font-weight:600; margin-bottom:10px; }
  .dev-acc-count-label{ font-size:.8rem; color:var(--ink-soft); font-weight:700; white-space:nowrap; }
  .dev-acc-actions-label{
    display:inline-flex; align-items:center; gap:5px; font-size:.8rem;
    color:var(--ink-soft); font-weight:700; white-space:nowrap; cursor:pointer;
  }
  .dev-acc-actions-label svg{ width:15px; height:15px; }
  .dev-acc-toggle-btn{
    width:30px; height:30px; border-radius:50%; flex-shrink:0;
    border:1.5px solid var(--line); background:#FFFFFF; color:var(--navy-deep);
    cursor:pointer; padding:0;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
  }
  .dev-acc-toggle-btn svg{ width:15px; height:15px; }
  .dev-acc-toggle-btn:hover{ background:var(--paper); border-color:var(--gold); transform:scale(1.06); }
  .dev-acc-open .dev-acc-toggle-btn{ border-color:var(--gold); color:var(--gold); }

  .dev-acc-body{ display:grid; grid-template-rows:1fr; animation:devAccExpand .3s ease; }
  @keyframes devAccExpand{
    from{ grid-template-rows:0fr; opacity:0; }
    to{ grid-template-rows:1fr; opacity:1; }
  }
  .dev-acc-body-inner{ overflow:hidden; padding:0 16px 16px; animation:devAccFadeIn .32s ease; }
  @keyframes devAccFadeIn{
    from{ opacity:0; transform:translateY(-4px); }
    to{ opacity:1; transform:translateY(0); }
  }

  /* جدول موحَّد للأهداف الفرعية — كل هدف وحقوله ورقمه في صف واحد؛
     تظهر كل الأهداف الفرعية معًا فور فتح الهدف الرئيسي */
  .dev-mini-table-flat{ table-layout:fixed; }
  .dev-mini-th-title, .dev-mini-cell-title{ width:auto; }
  .dev-mini-th-num{ width:34px; text-align:center !important; }
  .dev-mini-table-flat thead th:nth-child(3), .dev-mini-table-flat thead th:nth-child(4){ width:92px; }
  .dev-mini-table-flat thead th:nth-child(5){ width:98px; }
  .dev-mini-table-flat thead th:nth-child(6){ width:80px; }
  .dev-mini-table-flat thead th:nth-child(7){ width:150px; }
  .dev-mini-cell-title{ font-weight:700; color:var(--navy-deep); word-break:break-word; }
  .dev-mini-table{ width:100%; border-collapse:collapse; font-size:.78rem; background:#FFFFFF; }
  .dev-mini-table thead th{
    text-align:right; padding:7px 10px; color:var(--ink-soft); font-weight:700;
    font-size:.72rem; background:#FBF5E7; border-bottom:1.5px solid var(--line);
  }
  .dev-mini-table tbody td{ padding:8px 10px; border-bottom:1px solid var(--line); color:var(--ink); }
  .dev-mini-table thead th:nth-child(3), .dev-mini-table thead th:nth-child(4),
  .dev-mini-table tbody td:nth-child(3), .dev-mini-table tbody td:nth-child(4){ text-align:center; }
  /* تأثير تفاعلي على مستوى الهدف الفرعي (الصف) نفسه — بروز خفيف مع
     ظل ذهبي مطابق لهوية الإنماء المهني */
  .dev-mini-row{ transition:transform .15s ease, box-shadow .15s ease; position:relative; }
  .dev-mini-row:hover{
    transform:scale(1.012);
    box-shadow:0 6px 16px -6px rgba(184,137,62,.45);
    position:relative; z-index:2;
  }
  .dev-mini-row:hover td{ background:#FFFBF2; }

  .dev-acc-status{
    font-size:.7rem; font-weight:700; padding:3px 8px; border-radius:999px;
    white-space:nowrap; display:inline-flex; align-items:center; gap:3px; flex-shrink:0;
  }
  .dev-acc-achv-ok{ color:#1E7A4C; font-weight:700; white-space:nowrap; }
  .dev-acc-achv-none{ color:var(--ink-faint); white-space:nowrap; }
  .dev-acc-icon-btn{
    width:22px; height:22px; border-radius:6px; border:1px solid var(--line);
    background:#FFFFFF; color:var(--ink-soft); cursor:pointer; font-size:.76rem;
    display:flex; align-items:center; justify-content:center; padding:0;
    transition:background .15s ease, border-color .15s ease;
  }
  .dev-acc-icon-btn:hover{ background:var(--paper); border-color:var(--gold); color:var(--navy-deep); }

  @media (max-width:720px){
    .dev-top-bar{ flex-direction:column; }
    .dev-mini-body{ padding-inline-start:20px; }
  }

  /* ===========================================================
     لوحة تبويب "الخطة الإجرائية" لخطة التحصيل الدراسي — نسخة موازية
     تمامًا للإنماء المهني، بهوية بصرية خضراء فاتحة مستقلة (لا تُشارَك
     الأصناف اللونية الذهبية إطلاقًا)
     =========================================================== */
  .ach-section-title{
    font-size:1rem; font-weight:800; color:var(--navy-deep);
    margin:4px 0 12px; text-align:right;
  }
  .ach-top-bar{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
  .ach-new-goal-btn{
    display:flex; align-items:center; gap:6px; justify-content:center;
    background:linear-gradient(180deg, #5FAE7E 0%, #3F8B60 100%);
    color:#fff; border:none; border-radius:9px; padding:0 16px; height:36px;
    font-family:inherit; font-weight:700; font-size:.82rem; cursor:pointer;
    box-shadow:0 2px 7px -3px rgba(63,139,96,.55);
    transition:transform .15s ease, box-shadow .15s ease;
    order:3; flex-shrink:0;
  }
  .ach-new-goal-btn:hover{ transform:translateY(-1px); box-shadow:0 4px 10px -3px rgba(63,139,96,.6); }
  .ach-doc-summary{
    flex:1 1 300px; background:#FFFFFF; border:1px solid var(--line); border-radius:11px;
    padding:8px 14px; box-shadow:0 2px 6px -4px rgba(20,30,50,.08);
    order:2;
  }
  .ach-stat-block{
    background:#FFFFFF; border:1px solid var(--line); border-radius:11px;
    padding:7px 14px; display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; min-width:92px; box-shadow:0 2px 6px -4px rgba(20,30,50,.08);
    order:1;
  }

  .ach-acc-stack{ display:flex; flex-direction:column; gap:10px; }
  .ach-acc-goal-block{
    border:1px solid var(--line); border-radius:14px; overflow:hidden;
    background:#FFFFFF;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .ach-acc-goal-block.ach-acc-open{
    border:1.5px solid #4E9B6F;
    box-shadow:0 0 18px -2px rgba(78,155,111,.45), 0 4px 16px -6px rgba(78,155,111,.35);
  }
  .ach-acc-header{
    display:flex; align-items:center; gap:12px; padding:13px 16px;
    cursor:pointer; user-select:none;
  }
  .ach-acc-titlewrap{ flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
  .ach-acc-title{ font-weight:800; color:var(--navy-deep); font-size:.94rem; }
  .ach-acc-meta{ font-size:.76rem; color:var(--ink-soft); font-weight:600; }
  .ach-acc-mini-status{ font-size:.78rem; color:var(--ink-soft); font-weight:600; margin-bottom:10px; }
  .ach-acc-count-label{ font-size:.8rem; color:var(--ink-soft); font-weight:700; white-space:nowrap; }
  .ach-acc-actions-label{
    display:inline-flex; align-items:center; gap:5px; font-size:.8rem;
    color:var(--ink-soft); font-weight:700; white-space:nowrap; cursor:pointer;
  }
  .ach-acc-actions-label svg{ width:15px; height:15px; }
  .ach-acc-toggle-btn{
    width:30px; height:30px; border-radius:50%; flex-shrink:0;
    border:1.5px solid var(--line); background:#FFFFFF; color:var(--navy-deep);
    cursor:pointer; padding:0;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s ease, border-color .2s ease, transform .2s ease;
  }
  .ach-acc-toggle-btn svg{ width:15px; height:15px; }
  .ach-acc-toggle-btn:hover{ background:var(--paper); border-color:#4E9B6F; transform:scale(1.06); }
  .ach-acc-open .ach-acc-toggle-btn{ border-color:#4E9B6F; color:#4E9B6F; }

  .ach-acc-body{ display:grid; grid-template-rows:1fr; animation:devAccExpand .3s ease; }
  .ach-acc-body-inner{ overflow:hidden; padding:0 16px 16px; animation:devAccFadeIn .32s ease; }

  .ach-mini-table-flat{ table-layout:fixed; }
  .ach-mini-th-title, .ach-mini-cell-title{ width:auto; }
  .ach-mini-th-num{ width:34px; text-align:center !important; }
  .ach-mini-table-flat thead th:nth-child(3), .ach-mini-table-flat thead th:nth-child(4){ width:92px; }
  .ach-mini-table-flat thead th:nth-child(5){ width:98px; }
  .ach-mini-table-flat thead th:nth-child(6){ width:96px; }
  .ach-mini-table-flat thead th:nth-child(7){ width:70px; }
  .ach-mini-cell-title{ font-weight:700; color:var(--navy-deep); word-break:break-word; }
  .ach-mini-table{ width:100%; border-collapse:collapse; font-size:.78rem; background:#FFFFFF; }
  .ach-mini-table thead th{
    text-align:right; padding:7px 10px; color:var(--ink-soft); font-weight:700;
    font-size:.72rem; background:#EDF7F1; border-bottom:1.5px solid var(--line);
  }
  .ach-mini-table tbody td{ padding:8px 10px; border-bottom:1px solid var(--line); color:var(--ink); }
  .ach-mini-table thead th:nth-child(3), .ach-mini-table thead th:nth-child(4),
  .ach-mini-table tbody td:nth-child(3), .ach-mini-table tbody td:nth-child(4){ text-align:center; }
  /* تأثير تفاعلي على مستوى الهدف الفرعي (الصف) نفسه — بروز خفيف مع
     ظل أخضر مطابق لهوية التحصيل الدراسي */
  .ach-mini-row{ transition:transform .15s ease, box-shadow .15s ease; position:relative; }
  .ach-mini-row:hover{
    transform:scale(1.012);
    box-shadow:0 6px 16px -6px rgba(78,155,111,.45);
    position:relative; z-index:2;
  }
  .ach-mini-row:hover td{ background:#F3FBF6; }

  .ach-acc-actions-cell{ display:flex; align-items:center; gap:6px; }
  .ach-acc-icon-btn{
    width:22px; height:22px; border-radius:6px; border:1px solid var(--line);
    background:#FFFFFF; color:var(--ink-soft); cursor:pointer; font-size:.76rem;
    display:flex; align-items:center; justify-content:center; padding:0;
    transition:background .15s ease, border-color .15s ease;
  }
  .ach-acc-icon-btn:hover{ background:var(--paper); border-color:#4E9B6F; color:var(--navy-deep); }

  @media (max-width:720px){
    .ach-top-bar{ flex-direction:column; }
  }

  /* ===========================================================
     تبويب "تنفيذ البرامج" للإنماء المهني — Chips مستهدفين مضغوطة
     + إعادة استخدام تنسيق الأكورديون الموجود أصلًا لـ"الخطة الإجرائية"
     =========================================================== */
  .dev-target-chips{ display:flex; flex-wrap:wrap; gap:8px; }
  .dev-target-chip{
    display:inline-flex; align-items:center; gap:6px;
    background:var(--paper); border:1px solid var(--line); border-radius:999px;
    padding:5px 6px 5px 12px; font-size:.8rem; cursor:pointer;
    position:relative; isolation:isolate;
    transition:border-color .15s ease, background .15s ease, transform .22s ease, box-shadow .22s ease;
  }
  .dev-target-chip:hover{ border-color:var(--gold); background:#FFFBF2; }
  /* V91 — بطلب صريح: "الاسماء مازالت بلا تأثير... اجعل الاسماء في الانماء
     مهني بطاقات تفاعلية تبرز نحو الخارج مع ظل برتقالي ضبابي" — هذه هي
     القائمة الرئيسية الظاهرة دائمًا لأسماء المعلمين المستهدفين في تبويب
     الإنماء المهني (وليس زر جدول قياس الأثر الفرعي الذي عُدِّل سابقًا)،
     فهي الأرجح ما يقصده المستخدم. بروز نحو الخارج + ظل برتقالي ضبابي
     بنفس منهجية V45/V90، بلون var(--dev-orange) الموحَّد لهوية القسم. */
  [data-plan-panel="development"] .dev-target-chip:hover{
    transform:translateY(-4px);
    box-shadow:0 12px 22px -4px color-mix(in srgb, var(--dev-orange) 45%, transparent), 0 2px 6px rgba(22,35,63,.08);
  }
  @media(prefers-reduced-motion:reduce){
    [data-plan-panel="development"] .dev-target-chip:hover{ transform:none; }
  }
  .dev-target-chip-name{ color:var(--navy-deep); font-weight:700; }
  .dev-target-chip-remove{
    width:20px; height:20px; border-radius:50%; border:none; flex-shrink:0;
    background:var(--line); color:var(--ink-soft); cursor:pointer; font-size:.7rem;
    display:flex; align-items:center; justify-content:center; padding:0; line-height:1;
    transition:background .15s ease, color .15s ease;
  }
  .dev-target-chip-remove:hover{ background:#DC2626; color:#fff; }

  /* نوع الدليل داخل نافذة "إضافة إجراء" السريعة */
  .dev-quick-achv-evtype{
    margin-top:6px; border:1px solid var(--line); border-radius:6px; padding:5px 8px;
    font-family:'Tajawal',sans-serif; font-size:.8rem; background:#fff; color:var(--ink);
  }
  .dev-quick-achv-linkurl{
    width:100%; border:1px solid var(--line); border-radius:6px; padding:6px 8px;
    font-family:'Tajawal',sans-serif; font-size:.82rem; box-sizing:border-box; direction:ltr; text-align:right;
  }

  /* عمود "الإجراءات" (أيقونة إضافة إنجاز) داخل أكورديون تنفيذ البرامج */
  .dev-exec-table{ table-layout:fixed; }
  .dev-exec-table thead th:nth-child(2), .dev-exec-table thead th:nth-child(3){ width:96px; }
  .dev-exec-table thead th:nth-child(4){ width:92px; }
  .dev-exec-table thead th:nth-child(5){ width:180px; }
  .dev-exec-table thead th:nth-child(6){ width:145px; }
  .dev-acc-actions-cell{ text-align:center; vertical-align:middle; }
  .dev-acc-actions-wrap{ display:flex; align-items:center; gap:6px; justify-content:center; flex-wrap:wrap; }
  .dev-acc-type-label{ font-size:.72rem; color:var(--navy-deep); font-weight:700; white-space:nowrap; }
  .dev-exec-table td:nth-child(2), .dev-exec-table td:nth-child(3){ white-space:nowrap; text-align:center; font-size:.76rem; }
  .dev-exec-table td:nth-child(4){ text-align:center; }
  #devAllActionsTable .dev-acc-actions-cell{ text-align:center; }
  #devAllActionsTable .ach-achv-indicator{
    width:26px; height:26px; border-radius:7px; border:1px solid var(--line);
    background:#FFFBF2; color:var(--navy-deep); cursor:pointer; font-size:.82rem; font-weight:800;
    display:inline-flex; align-items:center; justify-content:center; padding:0;
    transition:background .15s ease, border-color .15s ease;
  }
  #devAllActionsTable .ach-achv-indicator:hover:not(:disabled){ background:var(--gold); color:#fff; }
  #devAllActionsTable .ach-achv-indicator:disabled{ opacity:.4; cursor:not-allowed; }


/* ===== 2026-08-12: وضوح حالة «مؤجلة» في الخطة الإجرائية وتنفيذ البرامج ===== */
.plan-row-postponed > td{
  background:rgba(254,226,226,.62) !important;
  border-bottom-color:rgba(220,38,38,.18) !important;
}
.plan-row-postponed:hover{ transform:none !important; box-shadow:none !important; }
.plan-row-postponed:hover > td{
  background:rgba(254,202,202,.62) !important;
}
/* نحافظ على خلايا الجدول كـ table-cell حتى يمتد التظليل كسطر واحد متصل */
.plan-row-postponed > td:first-child{ border-inline-start:1px solid rgba(220,38,38,.10); }
.plan-row-postponed > td:last-child{ border-inline-end:1px solid rgba(220,38,38,.10); }
.plan-status-postponed-red{
  color:#B91C1C !important;
  background:rgba(254,202,202,.72) !important;
  border:1px solid rgba(220,38,38,.18);
  box-shadow:0 0 14px rgba(220,38,38,.12);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
}
#devAllActionsTable .dev-acc-delete-btn:hover{
  color:#B91C1C;
  border-color:rgba(220,38,38,.35);
  background:#FEF2F2;
}
#devAllActionsTable .ach-achv-add-text{
  width:auto;
  min-width:92px;
  padding:0 9px;
  gap:4px;
  white-space:nowrap;
  font-size:.72rem;
}


/* 2026-08-12: text-only achievements in execution tables */
.achv-text-only-list{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.achv-text-only{
  display:block;
  color:var(--ink);
  font-size:.82rem;
  line-height:1.45;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}


/* ============================================================
   2026-08-12 — هوية بصرية مستقلة للخطتين
   الإنماء المهني = برتقالي | التحصيل الدراسي = أخضر
   تصميم فقط؛ لا تغيير في المنطق أو البيانات.
   ============================================================ */
:root{
  --dev-orange:#C2641E;
  --dev-orange-dark:#9E4D12;
  --dev-orange-soft:#FDF0E4;
  --dev-orange-line:#F1CDA9;
  --ach-green:#2F7D4E;
  --ach-green-dark:#23613C;
  --ach-green-soft:#EAF5EE;
  --ach-green-line:#BFDCC9;
}

/* التبويبان الرئيسيان */
.plan-tabs .plan-tab[data-plan-tab="development"].active{
  color:var(--dev-orange) !important;
  border-bottom-color:var(--dev-orange) !important;
  background:var(--dev-orange-soft) !important;
}
.plan-tabs .plan-tab[data-plan-tab="achievement"].active{
  color:var(--ach-green) !important;
  border-bottom-color:var(--ach-green) !important;
  background:var(--ach-green-soft) !important;
}

/* الإنماء المهني — برتقالي */
[data-plan-panel="development"] .plan-subtab.active{
  color:var(--dev-orange-dark) !important;
  border-bottom-color:var(--dev-orange) !important;
  background:var(--dev-orange-soft) !important;
}
[data-plan-panel="development"] .btn-plan-tool,
[data-plan-panel="development"] .btn-export-excel{
  border-color:var(--dev-orange) !important;
}
[data-plan-panel="development"] .btn-plan-tool:hover,
[data-plan-panel="development"] .btn-export-excel:hover{
  background:var(--dev-orange-soft) !important;
}
[data-plan-panel="development"] .dev-acc-goal-block.dev-acc-open,
[data-plan-panel="development"] .dev-action-goal-block.dev-action-open{
  border-color:var(--dev-orange) !important;
  box-shadow:0 0 18px -3px rgba(194,100,30,.30), 0 4px 14px -7px rgba(194,100,30,.25) !important;
}
[data-plan-panel="development"] .dev-acc-num,
[data-plan-panel="development"] .dev-action-goal-num{
  background:linear-gradient(180deg,#D47B35 0%,var(--dev-orange) 100%) !important;
}
[data-plan-panel="development"] .dev-acc-open .dev-acc-toggle-btn,
[data-plan-panel="development"] .dev-action-open .dev-action-toggle-btn{
  border-color:var(--dev-orange) !important;
  color:var(--dev-orange) !important;
}
[data-plan-panel="development"] .dev-mini-table thead th,
[data-plan-panel="development"] .dev-exec-table thead th{
  background:#FFF4E9 !important;
}
[data-plan-panel="development"] .dev-target-chip{
  border-color:var(--dev-orange-line) !important;
  background:#FFF8F1 !important;
}
[data-plan-panel="development"] input:focus,
[data-plan-panel="development"] select:focus,
[data-plan-panel="development"] textarea:focus{
  border-color:var(--dev-orange) !important;
  box-shadow:0 0 0 3px rgba(194,100,30,.14) !important;
}

/* التحصيل الدراسي — أخضر */
[data-plan-panel="achievement"] .plan-subtab.active{
  color:var(--ach-green-dark) !important;
  border-bottom-color:var(--ach-green) !important;
  background:var(--ach-green-soft) !important;
}
[data-plan-panel="achievement"] .btn-plan-tool,
[data-plan-panel="achievement"] .btn-export-excel{
  border-color:var(--ach-green) !important;
}
[data-plan-panel="achievement"] .btn-plan-tool:hover,
[data-plan-panel="achievement"] .btn-export-excel:hover{
  background:var(--ach-green-soft) !important;
}
[data-plan-panel="achievement"] .dev-acc-goal-block.dev-acc-open,
[data-plan-panel="achievement"] .dev-action-goal-block.dev-action-open{
  border-color:var(--ach-green) !important;
  box-shadow:0 0 18px -3px rgba(47,125,78,.28), 0 4px 14px -7px rgba(47,125,78,.24) !important;
}
[data-plan-panel="achievement"] .dev-acc-num,
[data-plan-panel="achievement"] .dev-action-goal-num{
  background:linear-gradient(180deg,#4B9869 0%,var(--ach-green) 100%) !important;
}
[data-plan-panel="achievement"] .dev-acc-open .dev-acc-toggle-btn,
[data-plan-panel="achievement"] .dev-action-open .dev-action-toggle-btn{
  border-color:var(--ach-green) !important;
  color:var(--ach-green) !important;
}
[data-plan-panel="achievement"] .dev-mini-table thead th,
[data-plan-panel="achievement"] .dev-exec-table thead th{
  background:#EEF8F1 !important;
}
[data-plan-panel="achievement"] .dev-target-chip,
[data-plan-panel="achievement"] .ach-target-card{
  border-color:var(--ach-green-line) !important;
  background:#F3FAF5 !important;
}
[data-plan-panel="achievement"] input:focus,
[data-plan-panel="achievement"] select:focus,
[data-plan-panel="achievement"] textarea:focus{
  border-color:var(--ach-green) !important;
  box-shadow:0 0 0 3px rgba(47,125,78,.14) !important;
}

/* لا تتغلب الهوية اللونية على الدلالات الحرجة مثل مؤجلة/متأخرة. */

/* هوية نافذة إضافة/تعديل الإجراء المشتركة حسب الخطة المفتوحة */
#devQuickAchvModal.plan-theme-development .plan-modal-box{ border-top:4px solid var(--dev-orange); }
#devQuickAchvModal.plan-theme-development .plan-modal-box h3{ color:var(--dev-orange-dark); }
#devQuickAchvModal.plan-theme-development .btn-save{ background:var(--dev-orange) !important; border-color:var(--dev-orange) !important; }
#devQuickAchvModal.plan-theme-development input:focus,
#devQuickAchvModal.plan-theme-development select:focus,
#devQuickAchvModal.plan-theme-development textarea:focus{ border-color:var(--dev-orange) !important; box-shadow:0 0 0 3px rgba(194,100,30,.14) !important; }

#devQuickAchvModal.plan-theme-achievement .plan-modal-box{ border-top:4px solid var(--ach-green); }
#devQuickAchvModal.plan-theme-achievement .plan-modal-box h3{ color:var(--ach-green-dark); }
#devQuickAchvModal.plan-theme-achievement .btn-save{ background:var(--ach-green) !important; border-color:var(--ach-green) !important; }
#devQuickAchvModal.plan-theme-achievement input:focus,
#devQuickAchvModal.plan-theme-achievement select:focus,
#devQuickAchvModal.plan-theme-achievement textarea:focus{ border-color:var(--ach-green) !important; box-shadow:0 0 0 3px rgba(47,125,78,.14) !important; }

/* ===== V15: لوحة قياس أثر الإنماء المهني ===== */
.dev-impact-page{padding:16px;}
.dev-impact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px;}
.dev-impact-subtitle{margin:4px 0 0;color:var(--ink-soft);font-size:.84rem;line-height:1.7;}
.dev-impact-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0;}
.dev-impact-kpi{background:#fff;border:1px solid rgba(234,127,34,.20);border-radius:14px;padding:12px 14px;min-height:82px;}
.dev-impact-kpi b{display:block;color:#b85c12;font-size:1.35rem;margin-bottom:3px;}
.dev-impact-kpi span{display:block;color:var(--ink-soft);font-size:.8rem;}
.dev-impact-section{background:#fff;border:1px solid rgba(234,127,34,.17);border-radius:16px;padding:14px;margin-top:12px;}
.dev-impact-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px;color:var(--navy-deep);font-size:.93rem;font-weight:800;}
.dev-impact-overall{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);gap:16px;align-items:center;}
.dev-impact-bars{display:grid;gap:12px;}
.dev-impact-bar-row{display:grid;grid-template-columns:90px 1fr 64px;align-items:center;gap:9px;font-size:.8rem;}
.dev-impact-track{height:10px;background:#f0f2f4;border-radius:999px;overflow:hidden;}
.dev-impact-fill{height:100%;border-radius:999px;background:#ea7f22;}
.dev-impact-fill.after{background:#2f9d62;}
.dev-impact-overall-result{border-right:3px solid #ea7f22;padding:6px 14px;}
.dev-impact-overall-result strong{font-size:1.3rem;display:block;color:var(--navy-deep);margin-bottom:4px;}
.dev-impact-overall-result span{font-size:.82rem;color:var(--ink-soft);}
.dev-impact-table .data-table th,.dev-impact-table .data-table td{font-size:.78rem;vertical-align:middle;}
.dev-impact-teacher-btn{border:0;background:none;color:#b85c12;font-weight:800;cursor:pointer;padding:0;text-align:right;}
.dev-impact-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:.74rem;font-weight:800;white-space:nowrap;}
.dev-impact-good{background:rgba(47,157,98,.12);color:#217849;}
.dev-impact-limited{background:rgba(40,116,166,.11);color:#26688f;}
.dev-impact-flat{background:rgba(90,98,105,.10);color:#596169;}
.dev-impact-bad{background:rgba(190,51,51,.10);color:#a72d2d;}
.dev-impact-wait{background:rgba(234,127,34,.11);color:#a85c18;}
.dev-impact-mini{color:var(--ink-soft);font-size:.72rem;display:block;margin-top:2px;}
.dev-impact-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;}
.dev-impact-detail-stat{border:1px solid var(--line-soft);border-radius:12px;padding:9px;background:#fff;}
.dev-impact-detail-stat b{display:block;font-size:1rem;color:var(--navy-deep);}.dev-impact-detail-stat span{font-size:.73rem;color:var(--ink-soft);}
.dev-impact-item-list{display:grid;gap:7px;}
.dev-impact-item{display:grid;grid-template-columns:minmax(180px,1.6fr) 58px 58px 58px;gap:8px;align-items:center;border-bottom:1px solid var(--line-soft);padding:7px 0;font-size:.75rem;}
.dev-impact-note{margin-top:10px;padding:9px 11px;border-radius:10px;background:rgba(234,127,34,.07);color:var(--ink-soft);font-size:.74rem;line-height:1.6;}
@media(max-width:900px){.dev-impact-kpis{grid-template-columns:repeat(2,1fr)}.dev-impact-overall{grid-template-columns:1fr}.dev-impact-detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.dev-impact-kpis{grid-template-columns:1fr}.dev-impact-item{grid-template-columns:1fr 48px 48px 48px}.dev-impact-bar-row{grid-template-columns:72px 1fr 52px}}

.dev-impact-settings-btn{white-space:nowrap;align-self:flex-start;}
@media(max-width:640px){.dev-impact-head{flex-direction:column}.dev-impact-settings-btn{width:100%}}

/* ===== V21 — توحيد تخطيط قياس الأثر + منع الانزياح + دوائر تفاعلية حقيقية ===== */
/* كلا تبويبي قياس الأثر يجب أن يبقيا داخل عرض البطاقة، وأي جدول عريض يمرَّر محلياً فقط. */
[data-plan-subpanel="development-impact"],
[data-plan-subpanel="achievement-impact"]{
  width:100%; max-width:100%; min-width:0; box-sizing:border-box; overflow-x:hidden;
}
[data-plan-subpanel="development-impact"] > .panel-card,
[data-plan-subpanel="achievement-impact"] > .panel-card{
  width:100%; max-width:100%; min-width:0; box-sizing:border-box; margin:0 0 var(--sp-5); overflow:hidden;
}
[data-plan-subpanel="development-impact"] #devImpactTable,
[data-plan-subpanel="achievement-impact"] #impResults{
  display:block; width:100%; max-width:100%; min-width:0; box-sizing:border-box; margin:0; padding:0;
}

/* ---------- الإنماء المهني ---------- */
.dev-impact-page{width:100%;max-width:100%;min-width:0;box-sizing:border-box;padding:0;}
.dev-impact-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px;min-width:0;}
.dev-impact-subtitle{margin:4px 0 0;color:var(--ink-soft);font-size:.82rem;line-height:1.65;}
.dev-impact-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;width:100%;margin:12px 0;}
.dev-impact-kpi{min-width:0;background:#fff;border:1px solid rgba(234,127,34,.20);border-radius:13px;padding:10px 12px;min-height:72px;box-sizing:border-box;}
.dev-impact-kpi b{display:block;color:#b85c12;font-size:1.18rem;margin-bottom:3px;}.dev-impact-kpi span{display:block;color:var(--ink-soft);font-size:.76rem;}
.dev-impact-section{width:100%;max-width:100%;min-width:0;box-sizing:border-box;background:#fff;border:1px solid rgba(234,127,34,.17);border-radius:15px;padding:12px;margin:11px 0;overflow:hidden;}
.dev-impact-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 9px;color:var(--navy-deep);font-size:.9rem;font-weight:800;min-width:0;}
.dev-impact-overall{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.7fr);gap:14px;align-items:center;min-width:0;}
.dev-impact-bars{display:grid;gap:10px;min-width:0;}.dev-impact-bar-row{display:grid;grid-template-columns:82px minmax(0,1fr) 58px;align-items:center;gap:8px;font-size:.76rem;min-width:0;}
.dev-impact-track{height:9px;background:#f0f2f4;border-radius:999px;overflow:hidden;}.dev-impact-fill{height:100%;border-radius:999px;background:#ea7f22;}.dev-impact-fill.after{background:#2f9d62;}
.dev-impact-overall-result{border-right:3px solid #ea7f22;padding:6px 12px;min-width:0;}.dev-impact-overall-result strong{font-size:1.15rem;display:block;color:var(--navy-deep);margin-bottom:4px;}.dev-impact-overall-result span{font-size:.78rem;color:var(--ink-soft);}
.dev-impact-table{min-width:0;overflow:hidden;}.dev-impact-table .table-wrap{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible;box-sizing:border-box;overscroll-behavior-inline:contain;}
.dev-impact-table .data-table{width:100%;min-width:760px;max-width:none;margin:0;table-layout:auto;}.dev-impact-table .data-table th,.dev-impact-table .data-table td{font-size:.75rem;vertical-align:middle;padding:8px 9px;white-space:nowrap;}
.dev-impact-teacher-btn{border:0;background:none;color:#b85c12;font-weight:800;cursor:pointer;padding:0;text-align:right;white-space:normal;}.dev-impact-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap;}
.dev-impact-good{background:rgba(47,157,98,.12);color:#217849}.dev-impact-limited{background:rgba(40,116,166,.11);color:#26688f}.dev-impact-flat{background:rgba(90,98,105,.10);color:#596169}.dev-impact-bad{background:rgba(190,51,51,.10);color:#a72d2d}.dev-impact-wait{background:rgba(234,127,34,.11);color:#a85c18}.dev-impact-mini{color:var(--ink-soft);font-size:.7rem;display:block;margin-top:2px;}
.dev-impact-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;min-width:0}.dev-impact-detail-stat{min-width:0;border:1px solid var(--line-soft);border-radius:12px;padding:9px;background:#fff}.dev-impact-detail-stat b{display:block;font-size:1rem;color:var(--navy-deep)}.dev-impact-detail-stat span{font-size:.73rem;color:var(--ink-soft)}
.dev-impact-item-list{display:grid;gap:7px;min-width:0}.dev-impact-item{display:grid;grid-template-columns:minmax(0,1.6fr) 58px 58px 58px;gap:8px;align-items:center;border-bottom:1px solid var(--line-soft);padding:7px 0;font-size:.74rem;min-width:0}.dev-impact-note{margin-top:10px;padding:9px 11px;border-radius:10px;background:rgba(234,127,34,.07);color:var(--ink-soft);font-size:.73rem;line-height:1.6}.dev-impact-settings-btn{white-space:nowrap;align-self:flex-start}

/* V90 — بطلب صريح: "اجعل الاسماء في الانماء مهني بطاقات تفاعلية تبرز نحو
   الخارج مع ظل برتقالي ضبابي" — قاعدة إضافية لاحقة تتفوق (بترتيب المصدر)
   على تعريفَي .dev-impact-teacher-btn القديمَين أعلاه دون حذفهما، بنفس
   منهجية الهالة الضبابية المستخدمة أصلاً لبطاقات "الخطة الشهرية" (V45)،
   بلون برتقالي مطابق لهوية قسم الإنماء المهني نفسه. */
.dev-impact-teacher-btn{
  display:inline-flex; align-items:center; position:relative; isolation:isolate;
  background:#fff; border:1px solid rgba(234,127,34,.22); border-radius:10px; padding:6px 12px;
  box-shadow:0 1px 3px rgba(22,35,63,.06);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.dev-impact-teacher-btn:before{
  content:""; position:absolute; width:90px; height:90px; border-radius:50%; top:-20px; right:-20px;
  background:#ea7f22; opacity:0; filter:blur(18px); z-index:-1;
  transition:opacity .22s ease; pointer-events:none;
}
.dev-impact-teacher-btn:hover,
.dev-impact-teacher-btn:focus-visible{
  transform:translateY(-4px);
  border-color:rgba(234,127,34,.5);
  box-shadow:0 12px 22px -4px rgba(234,127,34,.35), 0 2px 6px rgba(22,35,63,.08);
}
.dev-impact-teacher-btn:hover:before,
.dev-impact-teacher-btn:focus-visible:before{ opacity:.35; }
@media(prefers-reduced-motion:reduce){
  .dev-impact-teacher-btn{ transition:none; }
  .dev-impact-teacher-btn:hover, .dev-impact-teacher-btn:focus-visible{ transform:none; }
}

/* ---------- التحصيل الدراسي ---------- */
.ach-impact-page{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;margin:0;padding:0;overflow:hidden;}
.ach-impact-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;width:100%;margin:12px 0;}
.ach-impact-kpi{min-width:0;background:#fff;border:1px solid rgba(47,157,98,.19);border-radius:13px;padding:10px 12px;min-height:70px;display:flex;flex-direction:column;justify-content:center;box-sizing:border-box}.ach-impact-kpi b{display:block;color:#217849;font-size:1.18rem;line-height:1.1;margin-bottom:4px}.ach-impact-kpi span{display:block;color:var(--ink-soft);font-size:.76rem;line-height:1.4}
.ach-impact-section{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;background:#fff;border:1px solid rgba(47,157,98,.17);border-radius:15px;padding:12px 13px;margin:11px 0;overflow:hidden}.ach-impact-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;margin-bottom:10px;min-width:0}.ach-impact-section-head h4{margin:0;color:var(--navy-deep);font-size:.9rem;font-weight:800}.ach-impact-section-head p{margin:3px 0 0;color:var(--ink-soft);font-size:.73rem;line-height:1.55}
.ach-impact-gauges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;width:min(100%,430px);max-width:430px;margin:0 auto;align-items:stretch}.ach-impact-gauge-card{min-width:0;border:1px solid rgba(47,157,98,.16);border-radius:13px;background:rgba(47,157,98,.025);padding:8px 9px 7px;text-align:center;overflow:visible}.ach-impact-gauge-title{font-size:.72rem;font-weight:800;color:var(--navy-deep);margin-bottom:3px}
.ach-impact-gauge{position:relative;width:64px;height:64px;margin:2px auto 4px;border-radius:50%;display:grid;place-items:center;cursor:crosshair;touch-action:none;outline-offset:4px}.ach-impact-gauge-ring{position:absolute;inset:0;border-radius:50%;background:conic-gradient(#2f9d62 0 var(--after-fill),#edf2ef var(--after-fill) 100%)}.ach-impact-gauge-ring::after{content:"";position:absolute;inset:6px;background:#fff;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(47,157,98,.08)}.ach-impact-gauge-center{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}.ach-impact-gauge-center b{font-size:.84rem;color:#217849;line-height:1}.ach-impact-gauge-center span{font-size:.48rem;color:var(--ink-soft)}
.ach-impact-gauge-dot{position:absolute;z-index:4;left:50%;top:50%;width:7px;height:7px;margin-left:-3.5px;margin-top:-3.5px;border-radius:50%;background:#fff;border:2px solid #217849;box-shadow:0 1px 6px rgba(21,82,52,.30);transform:rotate(var(--dot-before)) translateY(-27px);transform-origin:center center;transition:transform .42s cubic-bezier(.2,.85,.2,1),box-shadow .18s ease;will-change:transform;pointer-events:none}.ach-impact-gauge.is-tracking .ach-impact-gauge-dot{transition:none;box-shadow:0 1px 9px rgba(21,82,52,.45)}
.ach-impact-gauge-meta{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;font-size:.64rem;color:var(--ink-soft)}.ach-impact-gauge-meta b{color:var(--navy-deep)}.ach-impact-change{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;font-weight:800}.ach-impact-change.is-good{background:rgba(47,157,98,.11);color:#217849}.ach-impact-change.is-bad{background:rgba(190,51,51,.09);color:#a72d2d}.ach-impact-change.is-neutral{background:rgba(90,98,105,.09);color:#596169}.ach-impact-gauge-card small{display:block;margin-top:4px;color:var(--ink-soft);font-size:.54rem;line-height:1.35}.ach-impact-gauge-empty{display:flex;min-height:118px;flex-direction:column;align-items:center;justify-content:center;gap:6px}.ach-impact-gauge-empty b{color:var(--navy-deep)}.ach-impact-gauge-empty span{font-size:.72rem;color:var(--ink-soft)}

/* V82 — بطلب صريح: دوائر "متوسط التدني/الإتقان" أصبحت dashRingCompareSVG
   العامة (بنفس هوية دوائر لوحة المتابعة) بدل .ach-impact-gauge القديمة
   (conic-gradient + نقطة تتبع المؤشر بحرية عبر JS). القواعد الثلاث أعلاه
   (.ach-impact-gauge/-ring/-dot) أُبقيت بلا حذف حسب سياسة المشروع، لكنها
   خاملة الآن فعليًا — لا عنصر في الصفحة يحمل هذه الأصناف بعد الآن.
   V83 جرَّبت تلوين الحلقة بمتغيّرَي --ring-color-before/-after + انتقال
   CSS للّون نفسه. V84 — بطلب صريح: "الحركة ليست هي نفسها الموجودة في
   دوائر لوحة المتابعة، واللون يفترض يكون ثابتًا لا يتغيّر، وتأثيرات مرور
   الماوس غير منطبقة" — رجعت الدائرة بالكامل لاستخدام worksDashRingSVG()
   المشتركة نفسها (بدل dashRingCompareSVG المخصَّصة من V82/V83) داخل نفس
   بنية .dash-ring-item القياسية المستخدمة حرفيًا في كل دوائر لوحة المتابعة
   وأعمال المشرف — فتُطبَّق تلقائيًا قواعد الحركة الأصلية الحقيقية
   (‎.dash-ring-item:hover .dash-ring-fill{animation:dashRingDraw}‎ +
   ‎.dash-ring-item:hover .dash-ring-dot-group{animation:dashRingDotSweep}‎،
   المعرَّفتان أعلى هذا الملف عند تعريف .dash-ring-item الأصلية) بلا أي CSS
   مخصَّص جديد هنا إطلاقًا، مع اللون الثابت (بلا انتقال) بمجرّد `style`
   مباشر على الحاوية من achImpactGauge نفسها (يورَّث عبر currentColor).
   dashRingCompareSVG وقواعد .dash-ring-compare-fill/-dot-group (V82/V83)
   أُبقيتا بلا حذف حسب سياسة المشروع — خاملتان الآن، صالحتان لاستخدام عام
   مستقبلي مختلف يحتاج فعليًا مقارنة قبل/بعد متحرّكة داخل حلقة واحدة. */
.ach-impact-gauge-ring-wrap{ margin:2px auto 4px; width:64px; height:64px; }
#achImpactDetailBody .ach-impact-gauge-ring-wrap{ width:72px; height:72px; }
.ach-impact-gauge-card .dash-ring-pct{ font-size:.84rem; color:#217849; }
.ach-impact-gauge-ring-sub{ display:block; font-size:.48rem; font-weight:600; color:var(--ink-soft); margin-top:1px; }
/* تحييد خصائص الصف الأفقي في .dash-ring-item الأصلية (min-width/flex/padding
   مصمَّمة لصف دوائر متجاورة) داخل بطاقة قياس الأثر المدمجة، مع الإبقاء على
   كل تأثيرات :hover (الارتفاع/الخلفية/الظل) كما هي تمامًا بلا أي تعديل */
.ach-impact-gauge-card .dash-ring-item{ min-width:0; flex:none; padding:4px; margin:0 auto; }
@media(max-width:560px){
  .ach-impact-gauge-ring-wrap{ width:58px; height:58px; }
}
.ach-impact-data-section{min-width:0;overflow:hidden}.ach-impact-table-wrap{display:block;width:100%;max-width:100%;min-width:0;margin:0;overflow-x:auto;overflow-y:visible;box-sizing:border-box;border:1px solid var(--line-soft);border-radius:12px;background:#fff;overscroll-behavior-inline:contain}.ach-impact-main-table{width:100%;min-width:760px;max-width:none;margin:0;table-layout:auto}.ach-impact-main-table th,.ach-impact-main-table td{font-size:.71rem;padding:8px 7px;vertical-align:middle;white-space:nowrap;text-align:center;box-sizing:border-box}.ach-impact-main-table th:first-child,.ach-impact-main-table td:first-child{text-align:right;min-width:180px;white-space:normal}.ach-impact-main-table th:last-child,.ach-impact-main-table td:last-child{width:84px}.ach-impact-school-name{font-weight:700;color:var(--navy-deep)}.ach-impact-main-table .btn-plan-tool{padding:5px 7px;white-space:nowrap;font-size:.68rem}

@media(max-width:900px){
  .dev-impact-kpis,.ach-impact-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dev-impact-overall{grid-template-columns:1fr}.dev-impact-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ach-impact-gauges{width:min(100%,360px)}
}
@media(max-width:560px){
  .dev-impact-kpis{grid-template-columns:1fr}.ach-impact-kpis{grid-template-columns:1fr 1fr;gap:7px}
  .dev-impact-item{grid-template-columns:minmax(0,1fr) 46px 46px 46px}.dev-impact-bar-row{grid-template-columns:70px minmax(0,1fr) 48px}
  .ach-impact-gauges{grid-template-columns:1fr 1fr;width:100%;gap:7px}.ach-impact-gauge{width:58px;height:58px}.ach-impact-gauge-dot{transform:rotate(var(--dot-before)) translateY(-24px)}
}


/* V26 — نافذة تحليل أثر التحصيل: أدوات واضحة + مؤشرات دائرية تفاعلية */
.ach-impact-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.ach-impact-detail-tools{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.ach-impact-detail-tools .btn-secondary{padding:7px 12px;font-size:.78rem;}
.ach-impact-close-btn{width:34px;height:34px;border:1px solid #d8dde5;border-radius:9px;background:#fff;color:#7a2730;font-size:1rem;font-weight:800;cursor:pointer;display:grid;place-items:center;transition:.18s ease;}
.ach-impact-close-btn:hover{background:#fff1f2;border-color:#d59aa1;transform:scale(1.04);}
#achImpactDetailBody .ach-impact-detail-gauge{margin:10px 0 14px;}
#achImpactDetailBody .ach-impact-detail-gauge .ach-impact-gauge-card{max-width:280px;margin-inline:auto;background:#fff;border-color:rgba(47,157,98,.24);box-shadow:0 5px 16px rgba(20,64,43,.06);}
#achImpactDetailBody .ach-impact-gauge{width:72px;height:72px;cursor:pointer;}
#achImpactDetailBody .ach-impact-gauge-dot{width:9px;height:9px;margin-left:-4.5px;margin-top:-4.5px;background:#f4b942;border:2px solid #fff;box-shadow:0 0 0 2px #217849,0 2px 8px rgba(33,120,73,.38);}
#achImpactDetailBody .ach-impact-gauge.is-tracking .ach-impact-gauge-dot{background:#ff8a3d;box-shadow:0 0 0 2px #217849,0 2px 11px rgba(255,138,61,.48);}
@media print{
  body.printing-ach-impact-detail > *{display:none !important;}
  body.printing-ach-impact-detail #achImpactDetailModal{display:block !important;position:static !important;background:#fff !important;padding:0 !important;overflow:visible !important;}
  body.printing-ach-impact-detail #achImpactDetailModal .plan-modal-box{display:block !important;position:static !important;max-width:none !important;width:100% !important;max-height:none !important;overflow:visible !important;box-shadow:none !important;border:0 !important;}
  body.printing-ach-impact-detail .ach-impact-detail-tools{display:none !important;}
}

/* ===== V28: أعمال المشرف — ملف أداء وملف إنجاز وتقييم ===== */
[data-module-page="works"]{max-width:100%;}
.works-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin-bottom:14px;background:linear-gradient(135deg,#fff,#f8f7f2);border:1px solid #e7e3d8;border-radius:18px;box-shadow:0 8px 24px rgba(15,32,58,.05)}
.works-hero h2{margin:0 0 5px;color:var(--navy,#10213c);font-size:1.3rem}.works-hero p{margin:0;color:var(--ink-soft);font-size:.88rem}
.works-filters{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;padding:14px 16px;margin-bottom:14px;background:#fff;border:1px solid #e6e9ef;border-radius:16px}
.works-filters label{font-size:.78rem;color:var(--ink-soft);font-weight:700}.works-filters select{width:100%;margin-top:6px;padding:9px 10px;border:1px solid #d9dee8;border-radius:10px;background:#fff;color:var(--ink)}
.works-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.works-kpi{background:#fff;border:1px solid #e4e8ee;border-radius:16px;padding:15px;text-align:center;box-shadow:0 5px 16px rgba(15,32,58,.04)}
.works-kpi span{display:block;color:var(--ink-soft);font-size:.78rem;margin-bottom:6px}.works-kpi b{font-size:1.45rem;color:#132742}.works-kpi small{display:block;margin-top:4px;color:#8b93a3;font-size:.7rem}
.works-tabs{margin-bottom:14px}.works-main-card{margin-bottom:14px}.works-agenda-details{border:1px solid #e2e6ed;border-radius:14px;background:#fafbfd;padding:0 14px 12px}.works-agenda-details>summary{cursor:pointer;padding:13px 4px;font-weight:800;color:#253753}
.works-timeline{display:flex;flex-direction:column;gap:10px}.works-item{display:grid;grid-template-columns:110px 130px minmax(200px,1fr) 130px 90px;gap:10px;align-items:center;padding:12px 14px;border:1px solid #e6e9ef;border-radius:12px;background:#fff}.works-item:hover{background:#fbfcfe;border-color:#cfd7e4}.works-item-date{font-size:.76rem;color:#737d8d}.works-item-type{font-weight:800;font-size:.78rem}.works-item-title b{display:block;color:#1b2b44;font-size:.88rem}.works-item-title small{display:block;color:#7d8797;margin-top:3px}.works-status{display:inline-flex;justify-content:center;padding:5px 9px;border-radius:999px;font-size:.73rem;font-weight:800}.works-status.completed{background:#e6f6ee;color:#17814f}.works-status.in_progress{background:#fff5d9;color:#9a6a00}.works-status.postponed{background:#fff0e3;color:#b75a0a}.works-status.late{background:#fde9e9;color:#bd2d35}.works-status.not_started{background:#eef1f5;color:#6c7480}
.works-ach-grid,.works-impact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.works-ach-card,.works-impact-card{border:1px solid #e3e7ee;border-radius:14px;padding:14px;background:#fff}.works-ach-card h4,.works-impact-card h4{margin:0 0 8px;color:#172942}.works-ach-card p,.works-impact-card p{margin:4px 0;color:#6d7787;font-size:.8rem}.works-evidence{margin-top:9px;font-size:.76rem;color:#526174;background:#f6f8fb;padding:7px 9px;border-radius:9px}
.works-eval-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,.8fr);gap:14px}.works-eval-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(220px,1.3fr) 180px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf0f4}.works-eval-row:last-child{border-bottom:0}.works-eval-evidence{font-size:.78rem;color:#697486}.works-rating{display:flex;gap:5px;direction:ltr;justify-content:flex-start}.works-rating button{border:1px solid #d9dee8;background:#fff;border-radius:8px;min-width:30px;height:30px;cursor:pointer;font-weight:800;color:#657080}.works-rating button.active{background:#c9952d;color:#fff;border-color:#c9952d}.works-eval-notes .form-field{margin-bottom:12px}.works-eval-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.works-saved-msg{font-size:.76rem;color:#17814f}
@media(max-width:1050px){.works-kpis{grid-template-columns:repeat(3,1fr)}.works-item{grid-template-columns:100px 120px 1fr 110px}.works-item>:last-child{display:none}.works-eval-grid{grid-template-columns:1fr}.works-ach-grid,.works-impact-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.works-filters{grid-template-columns:1fr}.works-kpis{grid-template-columns:repeat(2,1fr)}.works-item{grid-template-columns:1fr}.works-ach-grid,.works-impact-grid{grid-template-columns:1fr}.works-eval-row{grid-template-columns:1fr}.works-hero{align-items:flex-start;flex-direction:column}}

/* ===== V29: تقييم الزيارات المستحقة — أعمال المشرف ===== */
.works-visit-eval{margin-bottom:16px;padding:18px;background:#fff;border:1px solid #dfe5ec;border-radius:18px;box-shadow:0 6px 20px rgba(15,32,58,.04)}
.works-visit-eval-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.works-visit-eval-head h3{margin:6px 0 4px;color:#172942}.works-visit-eval-head p{margin:0;color:#6d7787;font-size:.82rem}.works-eval-badges{display:flex;gap:7px;flex-wrap:wrap}.works-eval-badges span{padding:5px 9px;border-radius:999px;background:#eef5ff;color:#274f7d;font-size:.72rem;font-weight:800}
.works-visit-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:14px}.works-visit-kpis>div{padding:13px 10px;text-align:center;border:1px solid #e5e9ef;border-radius:14px;background:#fafbfd}.works-visit-kpis span{display:block;color:#6c7685;font-size:.72rem;margin-bottom:5px}.works-visit-kpis b{font-size:1.35rem;color:#142844}
.works-visit-overview{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:16px;align-items:stretch;margin-bottom:14px}.works-visit-chart,.works-school-bars{border:1px solid #e5e9ef;border-radius:15px;background:#fbfcfe;padding:14px}.works-visit-chart{display:flex;align-items:center;justify-content:center;gap:16px;min-height:175px}.works-visit-donut{--visit-pct:0;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#1d8b5c calc(var(--visit-pct)*1%),#e8edf2 0);position:relative;flex:0 0 auto}.works-visit-donut:after{content:"";position:absolute;inset:13px;border-radius:50%;background:#fff}.works-visit-donut>div{position:relative;z-index:1;text-align:center}.works-visit-donut b{display:block;font-size:1.2rem;color:#18314f}.works-visit-donut span{display:block;font-size:.66rem;color:#7b8492}.works-visit-chart-note{color:#5e6979;font-size:.78rem;line-height:1.8}.works-school-bars h4{margin:0 0 11px;color:#203651}.works-school-bar{margin:10px 0}.works-school-bar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.75rem}.works-school-bar-head b{color:#263a54}.works-school-bar-head span{font-weight:800;color:#1d7b55}.works-school-bar-track{height:8px;background:#e9edf2;border-radius:99px;overflow:hidden;margin:5px 0}.works-school-bar-track i{display:block;height:100%;background:#2d9b6c;border-radius:99px}.works-school-bar small{color:#818997;font-size:.68rem}
.works-visit-summary-text{padding:11px 13px;margin-bottom:14px;border-radius:12px;background:#f2f7fb;border:1px solid #dce8f1;color:#41556d;font-size:.8rem;line-height:1.8}.works-visit-lists{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.works-visit-list{border:1px solid #e4e8ee;border-radius:13px;padding:12px;background:#fff}.works-visit-list h4{margin:0 0 9px;font-size:.82rem}.works-visit-list>div{display:flex;flex-wrap:wrap;gap:7px}.works-visit-list div{font-size:.75rem}.works-visit-list div small{display:inline;margin-right:4px;color:#7e8794}.ok-list{border-color:#d6eadf;background:#fbfefc}.missing-list{border-color:#f0d8d8;background:#fffdfd}.works-visit-list div{line-height:1.9}
.works-visit-table-wrap{width:100%;overflow:auto;border:1px solid #e5e9ef;border-radius:13px;margin-bottom:12px}.works-visit-table{width:100%;border-collapse:collapse;min-width:850px;background:#fff}.works-visit-table th,.works-visit-table td{padding:10px 9px;border-bottom:1px solid #edf0f4;text-align:right;font-size:.74rem;white-space:nowrap}.works-visit-table th{background:#f6f8fb;color:#425169;font-weight:800}.works-visit-table tbody tr:last-child td{border-bottom:0}.works-visit-table small{color:#89919e}.works-visit-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.68rem;font-weight:800}.works-visit-status.ok{background:#e5f5ec;color:#17764c}.works-visit-status.missing{background:#fdeaea;color:#b5323a}.works-visit-status.blocked{background:#fff0df;color:#a85b08}.works-visit-status.annual{background:#eaf0fb;color:#3f5f91}.works-visit-blocked{border:1px solid #eadfd1;border-radius:13px;background:#fffdfa;margin-top:10px;padding:0 12px 10px}.works-visit-blocked>summary{cursor:pointer;padding:12px 0;font-weight:800;color:#76512f}.works-visit-policy-note{padding:9px 11px;border-radius:10px;background:#f7f8fb;color:#727d8c;font-size:.72rem;line-height:1.7}
@media(max-width:1050px){.works-visit-kpis{grid-template-columns:repeat(3,1fr)}.works-visit-overview{grid-template-columns:1fr}.works-visit-lists{grid-template-columns:1fr}}
@media(max-width:720px){.works-visit-eval-head{flex-direction:column}.works-visit-kpis{grid-template-columns:repeat(2,1fr)}.works-visit-chart{flex-direction:column}.works-visit-donut{width:104px;height:104px}}
@media print{#worksVisitMissingToggle{display:none!important}.works-visit-eval{box-shadow:none;break-inside:avoid}.works-visit-table-wrap{overflow:visible}.works-visit-table{min-width:0;font-size:9pt}}

/* V48 — قسم "الزيارات الإشرافية" في أعمال المشرف: البطاقات الخمس تصبح
   تفاعلية مع هالة ضبابية بلون الهوية البصرية للقسم (var(--works-accent)،
   أزرق فاتح #247da1 عبر works-section-visits) عند مرور الماوس — بنفس
   أسلوب V45 المطبَّق سابقًا على بطاقات "الخطة الشهرية" حرفيًا */
.works-visit-kpis>div{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .25s ease,box-shadow .25s ease;
}
.works-visit-kpis>div:before{
  content:"";
  position:absolute;
  width:140px;height:140px;
  border-radius:50%;
  top:-30px;right:-30px;
  background:var(--works-accent,#247da1);
  opacity:.1;
  filter:blur(24px);
  z-index:-1;
  transition:opacity .25s ease;
  pointer-events:none;
}
.works-visit-kpis>div:hover{
  transform:translateY(-6px) scale(1.015);
  box-shadow:0 14px 28px color-mix(in srgb,var(--works-accent,#247da1) 22%,transparent);
}
.works-visit-kpis>div:hover:before{
  opacity:.22;
}
@media(prefers-reduced-motion:reduce){
  .works-visit-kpis>div{transition:none}
}

/* V48 — دائرة "نسبة الاستيفاء" الرئيسية ودوائر "التغطية حسب المدرسة" أصبحتا
   تعملان بنفس آلية دوائر بطاقات لوحة المتابعة (dash-ring-item) تمامًا عبر
   worksDashRingSVG() في dashboard.js، بدل conic-gradient الثابتة القديمة
   بلا نقطة تفاعلية سابقًا (works-visit-donut) أو بنقطة "راقصة" بمكانها
   الثابت (works-school-circle/‎-point). القواعد القديمة لكليهما (وكذلك
   ‎@keyframes worksSchoolPointDance) بقيت بلا حذف تطبيقًا لسياسة عدم حذف
   الكود القديم، لكنها لم تعد مستخدَمة لعدم وجود أي عنصر بهذه الأصناف في
   الصفحة بعد الآن. الحجمان الأصليان ثُبِّتا حرفيًا دون أي تغيير: */
.works-visit-donut-ring .dash-ring-wrap{width:118px;height:118px}
@media(max-width:720px){.works-visit-donut-ring .dash-ring-wrap{width:104px;height:104px}}
.works-school-circle-ring{min-width:0;flex:0 0 auto}
.works-school-circle-ring .dash-ring-wrap{width:88px;height:88px;margin-bottom:0}

.works-visit-person{display:inline-flex;flex-direction:column;gap:1px;padding:6px 9px;border:1px solid #e1e6ec;border-radius:10px;background:#fff}.works-visit-person b{font-size:.73rem;color:#263a54}.works-visit-person small{font-size:.66rem!important;color:#7e8794!important;margin:0!important}

/* V30 — selectors for first-supervisor evaluation */
.works-eval-selector{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;padding:14px;margin:0 0 14px;background:#f8fafc;border:1px solid #e1e6ed;border-radius:14px}
.works-eval-selector label{display:block;color:#435269;font-size:.78rem;font-weight:800}
.works-eval-selector label span{display:block;margin-bottom:6px}
.works-eval-selector select{width:100%;min-height:42px;padding:8px 11px;border:1px solid #d5dce6;border-radius:10px;background:#fff;color:#1e3049;font:inherit;outline:none}
.works-eval-selector select:focus{border-color:#8398b5;box-shadow:0 0 0 3px rgba(63,95,145,.10)}
.works-visit-selected-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-top:2px;margin-bottom:14px}
.works-visit-selected-head[hidden]{display:none!important}
.works-visit-selected-head h3{margin:6px 0 4px;color:#172942}
.works-visit-selected-head p{margin:0;color:#6d7787;font-size:.82rem}
@media(max-width:720px){.works-eval-selector{grid-template-columns:1fr}.works-visit-selected-head{flex-direction:column}}

/* ===== V31: أعمال المشرف — شاشة تقييم مركزة بهوية لكل قسم ===== */
.works-evaluation-workspace{--works-accent:#2f6f8f;--works-accent-soft:#eef7fb;--works-accent-deep:#1f5069;position:relative}
.works-evaluation-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px;padding:16px 18px;border-radius:16px;background:linear-gradient(135deg,#fff,var(--works-accent-soft));border:1px solid color-mix(in srgb,var(--works-accent) 25%,#fff);box-shadow:0 6px 18px rgba(15,32,58,.04)}
.works-evaluation-title h2{margin:0 0 4px;color:var(--works-accent-deep);font-size:1.25rem}.works-evaluation-title p{margin:0;color:#687589;font-size:.84rem}
.works-eval-selector-3{grid-template-columns:repeat(3,minmax(190px,1fr));border-color:color-mix(in srgb,var(--works-accent) 26%,#e1e6ed);background:linear-gradient(180deg,#fff,var(--works-accent-soft))}
.works-eval-selector-3 select:focus{border-color:var(--works-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--works-accent) 14%,transparent)}
.works-evaluation-workspace .works-visit-eval{border-top:4px solid var(--works-accent);box-shadow:0 8px 26px color-mix(in srgb,var(--works-accent) 8%,transparent)}
.works-evaluation-workspace .works-eval-badges span{background:var(--works-accent-soft);color:var(--works-accent-deep)}
.works-evaluation-workspace .works-visit-donut{background:conic-gradient(var(--works-accent) calc(var(--visit-pct)*1%),#e8edf2 0)}
.works-evaluation-workspace .works-school-bar-track i{background:var(--works-accent)}
.works-evaluation-workspace .works-visit-selected-head h3{color:var(--works-accent-deep)}
.works-section-visits{--works-accent:#247da1;--works-accent-soft:#edf8fc;--works-accent-deep:#15536d}
.works-section-development{--works-accent:#dc7b20;--works-accent-soft:#fff5e9;--works-accent-deep:#9a4f0f}
.works-section-achievement{--works-accent:#2d8a57;--works-accent-soft:#edf8f1;--works-accent-deep:#1d633d}
.works-section-excellence{--works-accent:#b48a1b;--works-accent-soft:#fff9e7;--works-accent-deep:#80600d}
.works-section-monthly{--works-accent:#7256a8;--works-accent-soft:#f5f1fb;--works-accent-deep:#51387f}
.works-section-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:180px;padding:24px;text-align:center;border:1px dashed color-mix(in srgb,var(--works-accent) 35%,#dce2e9);border-radius:15px;background:var(--works-accent-soft);color:#687589}.works-section-placeholder b{font-size:1.05rem;color:var(--works-accent-deep)}
@media(max-width:800px){.works-eval-selector-3{grid-template-columns:1fr}.works-evaluation-title{align-items:flex-start;flex-direction:column}}

/* V31.1 — قسم مستقل للمتعذر زيارتهم داخل أعمال المشرف فقط */
.works-visit-blocked-section{margin-top:18px;border:1px solid rgba(185,48,48,.20);border-radius:14px;background:rgba(255,248,248,.78);overflow:hidden}
.works-visit-blocked-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid rgba(185,48,48,.14)}
.works-visit-blocked-head h4{margin:0;color:#9f2d2d;font-size:16px}
.works-visit-blocked-head small{display:block;margin-top:4px;color:#7b8493;font-size:12px}
.works-visit-blocked-count{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 10px;border-radius:999px;background:rgba(185,48,48,.10);color:#a62f2f;font-weight:800}

/* V31.5 — interactive circular school coverage (presentation only) */
.works-school-circles{overflow:visible}
.works-school-circle-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:18px 14px;align-items:start;padding:8px 2px 4px}
.works-school-circle-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:5px 4px 10px;border-radius:14px;outline:none;transition:transform .24s ease,background-color .24s ease}
.works-school-circle-item:hover,.works-school-circle-item:focus-visible{transform:translateY(-3px);background:color-mix(in srgb,var(--works-accent,#2677d9) 6%,transparent)}
.works-school-circle{--circle-size:88px;width:var(--circle-size);height:var(--circle-size);border-radius:50%;position:relative;display:grid;place-items:center;background:conic-gradient(from -90deg,var(--works-accent,#2677d9) calc(var(--school-pct)*1%),#e8edf4 0);box-shadow:inset 0 0 0 1px rgba(24,49,79,.04);transition:transform .28s ease,box-shadow .28s ease}
.works-school-circle:after{content:"";position:absolute;inset:8px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px rgba(32,54,81,.06)}
.works-school-circle-core{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:3px;text-align:center;color:#18314f}
.works-school-circle-core b{font-size:.92rem;line-height:1}
.works-school-complete-mark{font-size:.72rem;color:#168454;font-weight:900}
.works-school-circle-point{position:absolute;z-index:3;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--works-accent,#2677d9);border:2px solid #fff;box-shadow:0 1px 4px rgba(16,43,78,.28);transform:rotate(var(--school-angle)) translateY(-44px);transform-origin:center;transition:width .22s ease,height .22s ease,margin .22s ease,box-shadow .22s ease}
.works-school-circle-item:hover .works-school-circle,.works-school-circle-item:focus-visible .works-school-circle{transform:scale(1.045);box-shadow:0 7px 18px rgba(31,84,150,.12)}
.works-school-circle-item:hover .works-school-circle-point,.works-school-circle-item:focus-visible .works-school-circle-point{width:13px;height:13px;margin:-6.5px 0 0 -6.5px;box-shadow:0 3px 9px rgba(22,91,175,.34);animation:worksSchoolPointDance .9s ease-in-out infinite alternate}
@keyframes worksSchoolPointDance{
  0%{transform:rotate(calc(var(--school-angle) - 5deg)) translateY(-45px) scale(1)}
  50%{transform:rotate(var(--school-angle)) translateY(-51px) scale(1.12)}
  100%{transform:rotate(calc(var(--school-angle) + 5deg)) translateY(-45px) scale(1)}
}
.works-school-circle-name{max-width:100%;font-size:.73rem;line-height:1.35;text-align:center;color:#263a54;white-space:normal;overflow-wrap:anywhere}
.works-school-circle-caption{max-width:100%;font-size:.64rem;line-height:1.45;text-align:center;color:#818997}
.works-school-circle-tip{position:absolute;z-index:10;bottom:calc(100% - 2px);left:50%;transform:translate(-50%,6px);min-width:154px;display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;padding:9px 10px;border:1px solid #dce5ef;border-radius:11px;background:#fff;box-shadow:0 8px 22px rgba(28,54,89,.14);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,transform .2s ease;color:#354b66;font-size:.66rem;text-align:right}
.works-school-circle-tip b{grid-column:1/-1;color:#203651;font-size:.69rem;margin-bottom:2px}
.works-school-circle-item:hover .works-school-circle-tip,.works-school-circle-item:focus-visible .works-school-circle-tip{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media (max-width:700px){.works-school-circle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.works-school-circle-tip{display:none}}
@media (prefers-reduced-motion:reduce){.works-school-circle-item:hover .works-school-circle-point,.works-school-circle-item:focus-visible .works-school-circle-point{animation:none;transform:rotate(var(--school-angle)) translateY(-49px)}}

/* V31.6 — school coverage tooltip + blocked reason emphasis */
.works-school-circle-tip{grid-template-columns:1fr;min-width:190px;max-width:260px;gap:5px}
.works-school-circle-tip .works-school-tip-teacher{display:block;padding:4px 7px;border-radius:7px;background:#f6f8fb;color:#304963;font-weight:700;line-height:1.35}
.works-school-circle-tip .works-school-tip-all-ok{display:block;padding:5px 7px;border-radius:7px;background:#eef9f1;color:#277443;font-weight:800;text-align:center}
.works-blocked-reason{display:inline-block;padding:5px 9px;border-radius:8px;background:#fff0df;color:#c62828;font-weight:800;line-height:1.45}


/* V31.7 — clearer school coverage tooltip */
.works-school-circle-tip .works-school-tip-teacher{display:flex;align-items:center;justify-content:space-between;gap:12px}
.works-school-tip-missing{color:#c62828;font-weight:800;font-size:inherit;line-height:inherit;white-space:nowrap;letter-spacing:normal}
.works-school-complete-mark.complete-only{font-size:1.25rem;color:#168454}
.works-school-circle-item.complete .works-school-circle-caption{display:none}

/* V31.11 — أعمال المشرف: تقييم الخطة الشهرية */
.works-month-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;padding:10px;border-radius:14px;background:var(--works-accent-soft)}
.works-month-tab{border:1px solid color-mix(in srgb,var(--works-accent) 24%,#dce2ea);background:#fff;color:var(--works-accent-deep);border-radius:999px;padding:8px 15px;font:inherit;font-weight:700;cursor:pointer;transition:.2s ease}
.works-month-tab:hover{transform:translateY(-2px);border-color:var(--works-accent)}.works-month-tab.active{background:var(--works-accent);color:#fff;border-color:var(--works-accent);box-shadow:0 5px 14px color-mix(in srgb,var(--works-accent) 25%,transparent)}
.works-monthly-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.works-monthly-kpis>div{padding:15px;border:1px solid #e5e2ec;border-radius:14px;background:#fff;text-align:center}.works-monthly-kpis span,.works-monthly-kpis small{display:block;color:#70798a}.works-monthly-kpis b{display:block;margin:6px 0;color:var(--works-accent-deep);font-size:1.45rem}
.works-monthly-rings{display:flex;justify-content:center;gap:42px;flex-wrap:wrap;margin:18px 0 22px}.works-monthly-donut{--size:132px;position:relative;width:var(--size);height:var(--size);border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--works-accent) calc(var(--monthly-pct)*1%),#e8e5ef 0);transition:transform .25s ease}.works-monthly-donut:after{content:"";position:absolute;inset:11px;background:#fff;border-radius:50%}.works-monthly-donut>div{z-index:2;text-align:center}.works-monthly-donut b{display:block;font-size:1.35rem;color:var(--works-accent-deep)}.works-monthly-donut span{font-size:.72rem;color:#73798a}.works-monthly-donut i{position:absolute;z-index:3;left:50%;top:50%;width:11px;height:11px;margin:-5.5px;border-radius:50%;background:var(--works-accent);border:2px solid #fff;transform:rotate(calc(var(--monthly-pct)*3.6deg - 90deg)) translateY(-66px);transition:.2s}.works-monthly-donut:hover{transform:scale(1.04)}.works-monthly-donut:hover i{animation:worksMonthlyPoint .9s ease-in-out infinite alternate}@keyframes worksMonthlyPoint{from{transform:rotate(calc(var(--monthly-pct)*3.6deg - 94deg)) translateY(-67px)}to{transform:rotate(calc(var(--monthly-pct)*3.6deg - 86deg)) translateY(-74px) scale(1.2)}}
.works-month-card{margin-top:15px;padding:16px;border:1px solid #e6e2ee;border-radius:15px;background:#fff}.works-month-card h4{margin:0 0 13px;color:var(--works-accent-deep)}.works-office-summary{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:12px;color:#5e6879}.works-office-summary b{color:var(--works-accent-deep)}.works-office-days{display:flex;gap:9px;flex-wrap:wrap}.works-office-day{min-width:62px;padding:8px 10px;border-radius:999px;text-align:center;background:#f2f0f5;color:#7d8490;font-weight:700}.works-office-day.done{background:var(--works-accent-soft);color:var(--works-accent-deep);border:1px solid color-mix(in srgb,var(--works-accent) 22%,#fff)}
.works-month-distribution{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}.works-dist-circle{position:relative;width:92px;height:92px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--works-accent-soft);border:2px solid color-mix(in srgb,var(--works-accent) 35%,#fff);transition:transform .24s ease,box-shadow .24s ease;outline:none}.works-dist-circle b{font-size:1.25rem;color:var(--works-accent-deep)}.works-dist-circle span{font-size:.68rem;color:#667184;text-align:center}.works-dist-circle:hover,.works-dist-circle:focus{transform:translateY(-9px) scale(1.045);box-shadow:0 10px 22px color-mix(in srgb,var(--works-accent) 18%,transparent)}
.works-month-status{display:inline-block;padding:4px 8px;border-radius:999px;font-weight:700;font-size:.72rem}.works-month-status.ok{background:#eaf7ef;color:#247548}.works-month-status.bad{background:#fff0ef;color:#b23a32}.works-month-status.neutral{background:#f2f0f5;color:#6d647a}.works-month-deviations>div{display:flex;gap:10px;flex-wrap:wrap}.works-month-deviations span{padding:7px 10px;border-radius:9px;font-weight:700;font-size:.75rem}.works-month-deviations .bad{background:#fff0ef;color:#b23a32}.works-month-deviations .warn{background:#fff6e7;color:#a76413}.works-month-deviations .ok{background:#edf8f1;color:#28744a}.works-month-report{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fff,var(--works-accent-soft))}.works-month-report p{margin:0;line-height:1.9;color:#536075;font-size:.84rem}.works-month-report button{flex:0 0 auto}.works-month-print-btn{border:1px solid rgba(124,58,237,.34);background:linear-gradient(135deg,#6d28d9,#8b5cf6);color:#fff;border-radius:14px;padding:11px 17px;font-weight:800;cursor:pointer;box-shadow:0 6px 18px rgba(109,40,217,.22),0 0 0 0 rgba(139,92,246,.25);transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.works-month-print-btn:hover,.works-month-print-btn:focus{transform:translateY(-5px) scale(1.035);box-shadow:0 12px 26px rgba(109,40,217,.30),0 0 22px rgba(139,92,246,.52);filter:saturate(1.08) brightness(1.04)}.works-month-print-btn:active{transform:translateY(-2px) scale(1.01)}
@media(max-width:800px){.works-monthly-kpis{grid-template-columns:repeat(2,1fr)}.works-month-report{align-items:stretch;flex-direction:column}}@media(max-width:520px){.works-monthly-kpis{grid-template-columns:1fr}.works-monthly-rings{gap:22px}}

/* V45 — بطاقات "الخطة الشهرية" في أعمال المشرف تصبح تفاعلية مع هالة ضبابية بنفسجية
   عند مرور الماوس (لم تكن تحمل أي تأثير مرور سابقًا)؛ ودائرتا "نسبة الإنجاز" و"الالتزام
   بالخطة": النقطة كانت ثابتة دائمًا عند زاويتها الحقيقية وتهتز فقط عند المرور — أصبحت
   الآن تبدأ من الصفر ولا تتحرك إلى مستواها الفعلي إلا عند مرور الماوس، مع بروز أوضح
   نحو الخارج، ومسار الحلقة (الجزء غير المعبَّأ) أصبح أبيض بدل الرمادي البنفسجي الفاتح */
.works-monthly-kpis>div,
.works-month-card{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  transition:transform .25s ease,box-shadow .25s ease;
}
.works-monthly-kpis>div:before,
.works-month-card:before{
  content:"";
  position:absolute;
  width:140px;height:140px;
  border-radius:50%;
  top:-30px;right:-30px;
  background:var(--works-accent);
  opacity:.1;
  filter:blur(24px);
  z-index:-1;
  transition:opacity .25s ease;
  pointer-events:none;
}
.works-monthly-kpis>div:hover,
.works-month-card:hover{
  transform:translateY(-6px) scale(1.015);
  box-shadow:0 14px 28px color-mix(in srgb,var(--works-accent) 22%,transparent);
}
.works-monthly-kpis>div:hover:before,
.works-month-card:hover:before{
  opacity:.22;
}
@media(prefers-reduced-motion:reduce){
  .works-monthly-kpis>div,.works-month-card{transition:none}
}

.works-monthly-donut{
  background:conic-gradient(var(--works-accent) calc(var(--monthly-pct)*1%),#fff 0);
  border:1px solid #ece7f4;
  transition:transform .25s ease,box-shadow .25s ease;
}
.works-monthly-donut i{
  transform:rotate(-90deg) translateY(-66px);
  transition:transform .6s ease-out;
}
.works-monthly-donut:hover{
  transform:translateY(-6px) scale(1.06);
  box-shadow:0 16px 30px color-mix(in srgb,var(--works-accent) 26%,transparent);
}
.works-monthly-donut:hover i{
  animation:none;
  transform:rotate(calc(var(--monthly-pct)*3.6deg - 90deg)) translateY(-66px);
}
@media(prefers-reduced-motion:reduce){
  .works-monthly-donut,.works-monthly-donut i{transition:none}
}

/* V46 — الدوائر أعلاه (.works-monthly-donut/i) لم تعد تُستخدَم في التوليد
   الفعلي لعنصري "نسبة الإنجاز"/"الالتزام بالخطة" ولا لعنصر "نسبة الاستيفاء
   الفصلية": worksMonthlyDonut() في dashboard.js أصبحت تُولّد حلقة SVG بنفس
   بنية وأصناف dash-ring-item/dash-ring-wrap/dash-ring-fill/dash-ring-dot-group
   المستخدمة أصلًا لدوائر بطاقات لوحة المتابعة (١٤٠٨–١٥١٧ أعلاه في هذا
   الملف) — بلا أي CSS جديد للحلقة نفسها؛ القواعد أعلاه تبقى بلا حذف
   (تطبيقًا لسياسة عدم حذف الكود القديم) لكنها غير مستخدَمة حاليًا في هذا
   القسم تحديدًا.
   كما أُضيف زر تنقّل حقيقي "📊 إجمالي الزيارات" مكان عنوان h4 النصي السابق
   لبطاقة الإحصائية الختامية — يعمل بنفس طريقة بطاقات dash-kpi-card ذات
   data-dash-nav (نقر ← الانتقال لتبويب سجل الزيارات الإشرافية).

   V47 — هذا الزر المستقل (.works-term-visit-btn) دُمِج داخل زر "◉ ملخص عام"
   القائم أصلًا (.works-month-summary-btn أدناه): بطاقة "📊 إجمالي الزيارات"
   أصبحت قسمًا عرضيًا بلا زر خاص بها ضمن نافذة "ملخص عام" المنبثقة (انظر
   worksTermVisitSummarySectionHTML وworksShowMonthlyGeneralSummary في
   dashboard.js). القواعد أدناه باقية بلا حذف (تطبيقًا لسياسة عدم حذف الكود
   القديم) لكنها غير مستخدَمة حاليًا لعدم وجود أي عنصر بهذا الصنف في الصفحة */
.works-term-visit-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:none;
  background:var(--works-accent-soft);
  color:var(--works-accent-deep);
  font:inherit;
  font-weight:800;
  font-size:1rem;
  padding:10px 18px;
  border-radius:999px;
  cursor:pointer;
  margin:0 0 13px;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,color .22s ease;
}
.works-term-visit-btn:hover{
  background:var(--works-accent);
  color:#fff;
  transform:translateY(-3px) scale(1.02);
  box-shadow:0 10px 22px color-mix(in srgb,var(--works-accent) 30%,transparent);
}
@media(prefers-reduced-motion:reduce){
  .works-term-visit-btn{transition:none}
}

/* V31.14 — الملخص العام للخطة الشهرية */
.works-month-tabs{align-items:center;justify-content:space-between}.works-month-tab-list{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.works-month-summary-btn{margin-inline-start:auto;border:1px solid rgba(76,29,149,.55);background:linear-gradient(135deg,#4c1d95,#5b21b6);color:#fff;border-radius:999px;padding:9px 17px;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 6px 16px rgba(76,29,149,.20);transition:transform .22s ease,box-shadow .22s ease,filter .22s ease}.works-month-summary-btn:hover,.works-month-summary-btn:focus{transform:translateY(-4px) scale(1.035);box-shadow:0 11px 24px rgba(76,29,149,.32),0 0 18px rgba(109,40,217,.28);filter:brightness(1.06)}
.works-month-summary-overlay{position:fixed;inset:0;z-index:12000;background:rgba(31,20,48,.54);display:none;align-items:center;justify-content:center;padding:24px;backdrop-filter:blur(4px)}.works-month-summary-overlay.show{display:flex}.works-month-summary-modal{width:min(980px,96vw);max-height:90vh;overflow:auto;background:#fff;border:1px solid #ddd3ef;border-radius:22px;box-shadow:0 24px 70px rgba(44,24,72,.28);padding:22px;direction:rtl}.works-month-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:15px;border-bottom:1px solid #eee8f5}.works-month-summary-head h3{margin:0;color:#4c1d95;font-size:1.18rem}.works-month-summary-head p{margin:6px 0 0;color:#71778a;font-size:.82rem}.works-month-summary-close{width:38px;height:38px;border:1px solid #dfd6ed;border-radius:50%;background:#faf8fd;color:#5b21b6;font-size:1.5rem;cursor:pointer;transition:.2s}.works-month-summary-close:hover{transform:rotate(8deg) scale(1.07);background:#f2ecfb}.works-month-summary-loading{padding:38px;text-align:center;color:#6c6280}
.works-month-summary-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}.works-month-summary-kpis>div{background:linear-gradient(145deg,#fff,#faf7ff);border:1px solid #e7def3;border-radius:15px;padding:15px;text-align:center}.works-month-summary-kpis span{display:block;color:#777e8d;font-size:.76rem}.works-month-summary-kpis b{display:block;margin-top:7px;color:#4c1d95;font-size:1.42rem}
.works-month-summary-chart{border:1px solid #e8e0f2;border-radius:17px;padding:17px;background:#fff}.works-month-summary-legend{display:flex;gap:18px;justify-content:flex-end;margin-bottom:14px;color:#656d7c;font-size:.76rem}.works-month-summary-legend span{display:flex;align-items:center;gap:6px}.works-month-summary-legend i{width:12px;height:12px;border-radius:50%}.works-month-summary-legend .completion{background:#6d28d9}.works-month-summary-legend .commitment{background:#a78bfa}.works-month-compare-row{display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:center;padding:10px 0;border-bottom:1px dashed #eee8f4}.works-month-compare-row:last-child{border-bottom:0}.works-month-compare-name b{display:block;color:#4c1d95}.works-month-compare-name small{color:#8a8794}.works-month-compare-bars{display:grid;gap:7px}.works-month-compare-line{display:grid;grid-template-columns:62px 1fr 44px;gap:8px;align-items:center;font-size:.72rem;color:#697182}.works-month-compare-line>div{height:10px;border-radius:999px;background:#eeeaf4;overflow:hidden}.works-month-compare-line i{display:block;height:100%;border-radius:999px;transition:width .45s ease}.works-month-compare-line i.completion{background:linear-gradient(90deg,#5b21b6,#7c3aed)}.works-month-compare-line i.commitment{background:linear-gradient(90deg,#8b5cf6,#c4b5fd)}.works-month-compare-line>b{color:#4c1d95;text-align:left}
.works-month-summary-table-wrap{margin-top:16px;overflow:auto;border:1px solid #e7e1ee;border-radius:15px}.works-month-summary-table{width:100%;border-collapse:collapse;font-size:.79rem}.works-month-summary-table th,.works-month-summary-table td{padding:11px 12px;border-bottom:1px solid #eeeaf2;text-align:right}.works-month-summary-table th{background:#f7f3fc;color:#5b21b6}.works-month-summary-status{display:inline-block;padding:5px 9px;border-radius:999px;font-weight:800;font-size:.7rem}.works-month-summary-status.good{background:#eaf7ef;color:#247548}.works-month-summary-status.mid{background:#fff6e7;color:#a76413}.works-month-summary-status.low{background:#fff0ef;color:#b23a32}
@media(max-width:760px){.works-month-summary-kpis{grid-template-columns:repeat(2,1fr)}.works-month-tabs{align-items:stretch}.works-month-summary-btn{width:100%;margin-inline-start:0}.works-month-compare-row{grid-template-columns:70px 1fr}}@media(max-width:460px){.works-month-summary-kpis{grid-template-columns:1fr}.works-month-summary-overlay{padding:10px}.works-month-summary-modal{padding:14px}.works-month-compare-line{grid-template-columns:52px 1fr 38px}}

/* V31.15 — هوية ملخص الخطة الشهرية الدائرية */
.works-section-curriculum{--works-accent:#456a91;--works-accent-soft:#f0f5fa;--works-accent-deep:#294b6d}
.works-month-summary-highlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0 12px}
.works-month-summary-highlight{position:relative;overflow:hidden;border:1px solid #d9ccef;border-radius:18px;background:linear-gradient(145deg,#5b21b6,#4c1d95);color:#fff;padding:17px 18px;box-shadow:0 10px 24px rgba(76,29,149,.16)}
.works-month-summary-highlight:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;background:rgba(255,255,255,.08);inset-inline-start:-28px;top:-30px}
.works-month-summary-highlight span{display:block;font-size:.78rem;opacity:.9}.works-month-summary-highlight b{display:block;font-size:1.25rem;margin:7px 0 3px}.works-month-summary-highlight strong{font-size:.85rem;color:#ede9fe}
.works-month-summary-averages{display:flex;justify-content:center;gap:28px;flex-wrap:wrap;margin:14px 0 20px;color:#655a76;font-size:.8rem}.works-month-summary-averages span{background:#f7f3fc;border:1px solid #e5daf2;border-radius:999px;padding:8px 14px}.works-month-summary-averages b{color:#4c1d95}
.works-month-summary-orbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:22px;align-items:start;padding:8px 2px 4px}
.works-month-summary-orb-wrap{display:flex;flex-direction:column;align-items:center;gap:9px;min-width:0}
.works-month-summary-orb{--orb-size:158px;position:relative;width:var(--orb-size);height:var(--orb-size);border-radius:50%;display:grid;place-items:center;background:conic-gradient(#5b21b6 calc(var(--sum-completion)*1%),#eee9f5 0);box-shadow:0 10px 28px rgba(76,29,149,.12);transition:transform .25s ease,box-shadow .25s ease}
.works-month-summary-orb:before{content:"";position:absolute;inset:11px;border-radius:50%;background:conic-gradient(#a78bfa calc(var(--sum-commitment)*1%),#f0ecf6 0)}
.works-month-summary-orb:after{content:"";position:absolute;inset:23px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #eee7f5}
.works-month-summary-orb-inner{position:relative;z-index:2;text-align:center;width:108px}.works-month-summary-orb-inner>b{display:block;color:#4c1d95;font-size:1.02rem;margin-bottom:7px}.works-month-summary-orb-inner span{display:flex;justify-content:space-between;gap:5px;font-size:.65rem;color:#727888;margin:3px 0}.works-month-summary-orb-inner strong{color:#4c1d95;font-size:.72rem}
.works-month-summary-orb:hover,.works-month-summary-orb:focus{transform:translateY(-7px) scale(1.035);box-shadow:0 18px 34px rgba(76,29,149,.2)}
.works-month-summary-orb.is-most{box-shadow:0 0 0 3px rgba(91,33,182,.12),0 12px 30px rgba(76,29,149,.2)}.works-month-summary-orb.is-least:after{box-shadow:inset 0 0 0 2px rgba(167,139,250,.42)}
.works-month-summary-orb-badges{min-height:25px;display:flex;justify-content:center;gap:5px;flex-wrap:wrap}.works-month-summary-orb-badges em{font-style:normal;font-size:.64rem;font-weight:800;color:#5b21b6;background:#f1eafd;border:1px solid #dfd1f3;border-radius:999px;padding:4px 8px}
@media(max-width:620px){.works-month-summary-highlight-grid{grid-template-columns:1fr}.works-month-summary-orbs{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.works-month-summary-orb{--orb-size:142px}.works-month-summary-orb-inner{width:98px}}
@media(max-width:390px){.works-month-summary-orbs{grid-template-columns:1fr}}
/* V31.30 — مسارا التحصيل والإنماء في أعمال المشرف */
.works-plan-evaluation{--pe:#2d8a57;--pe-soft:#edf8f1;--pe-deep:#1d633d;display:grid;gap:16px;direction:rtl}.works-plan-evaluation.development-eval{--pe:#e48a2e;--pe-soft:#fff5e8;--pe-deep:#9b5315}.works-plan-hero{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-radius:22px;background:linear-gradient(135deg,var(--pe-soft),#fff);border:1px solid color-mix(in srgb,var(--pe) 30%,transparent);box-shadow:0 10px 30px color-mix(in srgb,var(--pe) 10%,transparent)}.works-plan-hero small{color:var(--pe);font-weight:800}.works-plan-hero h3{margin:3px 0 0;color:var(--pe-deep)}.works-plan-hero>strong{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:#fff;border:7px solid color-mix(in srgb,var(--pe) 60%,#fff);font-size:20px;color:var(--pe-deep)}.works-plan-kpis,.works-impact-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.works-plan-kpis>div,.works-impact-kpis>div{padding:13px;border-radius:16px;background:var(--pe-soft);text-align:center;border:1px solid color-mix(in srgb,var(--pe) 20%,transparent);transition:.2s}.works-plan-kpis>div:hover,.works-impact-kpis>div:hover{transform:translateY(-5px);box-shadow:0 10px 24px color-mix(in srgb,var(--pe) 15%,transparent)}.works-plan-kpis b,.works-impact-kpis b{display:block;font-size:20px;color:var(--pe-deep)}.works-plan-kpis span,.works-impact-kpis span{font-size:12px;color:#64716b}.works-plan-cycle{display:flex;justify-content:center;gap:0;padding:8px}.works-plan-cycle>div{display:flex;align-items:center;gap:6px;color:#9aa39e}.works-plan-cycle>div:not(:last-child):after{content:'←';margin:0 12px;color:#c8cfcb}.works-plan-cycle i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#edf0ee;font-style:normal;font-weight:900}.works-plan-cycle .done{color:var(--pe-deep);font-weight:800}.works-plan-cycle .done i{background:var(--pe);color:#fff}.works-plan-eval-card{background:#fff;border:1px solid color-mix(in srgb,var(--pe) 18%,#ddd);border-radius:20px;padding:16px;box-shadow:0 7px 24px rgba(20,40,30,.05)}.works-plan-card-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding:9px 12px;border-radius:13px;background:var(--pe-soft);transition:.2s}.works-plan-card-title:hover{transform:translateY(-3px);box-shadow:0 8px 20px color-mix(in srgb,var(--pe) 18%,transparent)}.works-plan-card-title b{color:var(--pe-deep)}.works-plan-card-title span{font-size:12px;color:#6b756f}.works-plan-evidence{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.works-plan-evidence>div{text-align:center;padding:12px;border-radius:14px;background:var(--pe-soft)}.works-plan-evidence b{display:block;font-size:20px;color:var(--pe-deep)}.works-plan-evidence span{font-size:12px}.works-plan-state{font-weight:800}.works-plan-state.completed{color:#167247}.works-plan-state.postponed{color:#a13b3b}.works-exc-table td small{display:block;color:#8a958f;margin-bottom:4px}.works-before-after{display:flex;justify-content:center;align-items:center;gap:22px;margin:14px 0}.works-before-after>div{min-width:150px;text-align:center;padding:12px 18px;border-radius:18px;background:var(--pe-soft)}.works-before-after span{display:block;font-size:12px}.works-before-after b{font-size:24px;color:var(--pe-deep)}.works-before-after i{font-size:26px;color:var(--pe);font-style:normal}.works-plan-eval-summary{padding:16px 20px;border-radius:18px;background:linear-gradient(135deg,var(--pe-deep),var(--pe));color:#fff}.works-plan-eval-summary b{font-size:16px}.works-plan-eval-summary p{margin:6px 0 0;line-height:1.9}.works-section-development .works-exc-table thead{background:#fff4e5}.works-section-achievement .works-exc-table thead{background:#edf8f1}@media(max-width:900px){.works-plan-kpis,.works-impact-kpis{grid-template-columns:repeat(2,1fr)}.works-plan-evidence{grid-template-columns:repeat(2,1fr)}.works-plan-cycle{overflow:auto;justify-content:flex-start}}
/* V31.33 — سجل الإنجازات والمرفقات في أعمال المشرف */
.works-achievements-register .works-exc-table th{white-space:nowrap}.works-achievements-register .works-exc-table td{vertical-align:middle}.works-file-kind{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:var(--pe-soft);color:var(--pe-deep);font-size:12px;font-weight:900;border:1px solid color-mix(in srgb,var(--pe) 22%,transparent)}.works-file-actions{display:flex;align-items:center;justify-content:center;gap:7px}.works-file-btn{border:1px solid color-mix(in srgb,var(--pe) 35%,transparent);border-radius:10px;padding:6px 11px;font:inherit;font-size:12px;font-weight:900;cursor:pointer;transition:.18s;box-shadow:0 3px 9px color-mix(in srgb,var(--pe) 10%,transparent)}.works-file-btn.view{background:var(--pe-soft);color:var(--pe-deep)}.works-file-btn.download{background:var(--pe);color:#fff}.works-file-btn:hover{transform:translateY(-3px);box-shadow:0 8px 18px color-mix(in srgb,var(--pe) 24%,transparent)}.works-no-file{color:#a5ada8}.works-achievements-register .works-plan-card-title{border-inline-start:4px solid var(--pe)}
/* V31.34 — تجميع الأدلة حسب الهدف وأيقونات ملفات بلا خلفية */
.works-achievements-register .works-goal-group{min-width:220px;vertical-align:top;background:color-mix(in srgb,var(--pe-soft) 58%,#fff);border-inline-start:3px solid color-mix(in srgb,var(--pe) 55%,transparent)}
.works-achievements-register .works-goal-group b{display:block;color:var(--pe-deep);line-height:1.7}
.works-achievements-register .works-goal-group small{margin-top:5px;color:#7b8780;font-weight:800}
.works-evidence-line{display:flex;align-items:flex-start;gap:10px;min-width:260px}
.works-evidence-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;font-size:19px;line-height:1;background:transparent!important;border:0!important;box-shadow:none!important;padding:0;margin-top:1px}
.works-evidence-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.works-evidence-main>b{font-size:13px;color:#34423a;line-height:1.6}
.works-evidence-file-name{color:#7a8780!important;margin:0!important;overflow-wrap:anywhere}
.works-evidence-url{display:block;max-width:390px;color:var(--pe-deep);font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:ltr;text-align:left}
.works-evidence-url:hover{color:var(--pe)}
.works-achievements-register tbody tr:hover td:not(.works-goal-group){background:color-mix(in srgb,var(--pe-soft) 45%,#fff)}

/* V31.35 — سجل الأدلة: صف مستقل أبيض لكل هدف، بلا أزرار وبأيقونات ملفات أصلية مبسطة */
.works-achievements-register .works-evidence-clean-table{border-collapse:separate;border-spacing:0 8px;background:transparent}
.works-achievements-register .works-evidence-clean-table thead th{background:color-mix(in srgb,var(--pe-soft) 65%,#fff);border-top:1px solid color-mix(in srgb,var(--pe) 18%,#dfe5e1);border-bottom:1px solid color-mix(in srgb,var(--pe) 18%,#dfe5e1)}
.works-achievements-register .works-evidence-clean-table tbody tr.works-evidence-goal-row td{background:#fff;border-top:1px solid #dfe4e1;border-bottom:1px solid #dfe4e1;padding:13px 14px;vertical-align:top}
.works-achievements-register .works-evidence-clean-table tbody tr.works-evidence-goal-row td:first-child{border-inline-start:1px solid #dfe4e1;border-start-start-radius:10px;border-end-start-radius:10px}
.works-achievements-register .works-evidence-clean-table tbody tr.works-evidence-goal-row td:last-child{border-inline-end:1px solid #dfe4e1;border-start-end-radius:10px;border-end-end-radius:10px}
.works-achievements-register .works-evidence-clean-table tbody tr.works-evidence-goal-row:hover td{background:#fff;box-shadow:none}
.works-evidence-goal-cell{width:42%;min-width:250px}.works-evidence-goal-cell b{display:block;line-height:1.8;color:var(--ink);font-weight:900}
.works-evidence-date-cell{width:22%;min-width:145px}.works-evidence-proof-cell{width:36%;min-width:220px}
.works-evidence-stack,.works-evidence-date-stack{display:flex;flex-direction:column;align-items:stretch;gap:6px}
.works-evidence-stack-item,.works-evidence-date-item{min-height:28px;display:flex;align-items:center}
.works-evidence-file-link{display:flex;align-items:center;justify-content:flex-start;gap:7px;color:var(--ink);text-decoration:none;font-size:12px;font-weight:800;max-width:100%;padding:0;background:transparent;border:0;direction:ltr;width:max-content}

/* ===========================================================
   V111 — تبويبا "تطبيق مهارات الإنماء المهني" (7%) و"الفعاليات
   النوعية للتحصيل الدراسي" (5%): أداتا تشغيل/متابعة لنتيجتين
   موجودتين أصلًا في خطة الإجادة. تصميم مستقل يعيد استخدام أصناف
   الموقع القائمة (panel-card, plan-modal-*, data-table, dash-ring)
   بأقل قدر من الأصناف الجديدة، حفاظًا على الهوية البصرية العامة.
   =========================================================== */
.exc-res-tab{ position:relative; }
.exc-res-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.exc-res-head h3{ margin:0 0 4px; color:var(--navy-deep); font-size:1.05rem; }
.exc-res-sub{ margin:0; color:var(--ink-soft); font-size:.82rem; line-height:1.7; max-width:640px; }
.exc-res-sub b{ color:var(--navy-deep); }

.exc-res-kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin-bottom:16px; }
.exc-res-kpi{ background:#fff; border:1px solid var(--line); border-radius:10px; padding:10px 12px; display:flex; flex-direction:column; gap:4px; transition:box-shadow .15s, transform .1s; }
.exc-res-kpi:hover{ box-shadow:0 4px 14px rgba(0,0,0,.07); transform:translateY(-1px); }
.exc-res-kpi span{ font-size:.72rem; color:var(--ink-soft); }
.exc-res-kpi b{ font-size:1.15rem; color:var(--navy-deep); }

.exc-res-main{ display:grid; grid-template-columns:220px 1fr; gap:18px; align-items:start; }
@media (max-width:760px){ .exc-res-main{ grid-template-columns:1fr; } }
.exc-res-ring-card{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:16px; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.exc-res-ring-card b{ color:var(--navy-deep); font-size:.9rem; }
.exc-res-ring-card small{ color:var(--ink-soft); font-size:.72rem; }
.exc-res-weight-note{ background:var(--gold-light,#fdf3d8); color:var(--navy-deep); border-radius:20px; padding:2px 10px; font-weight:700; margin-top:2px; }

.exc-res-table-wrap{ min-width:0; }
.exc-res-table th, .exc-res-table td{ font-size:.82rem; }
.exc-res-status-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-inline-end:5px; vertical-align:middle; }
.exc-res-row-actions{ display:flex; gap:4px; white-space:nowrap; }
.exc-res-row-actions button{ background:none; border:none; cursor:pointer; font-size:.9rem; padding:2px 4px; border-radius:6px; transition:background .15s; }
.exc-res-row-actions button:hover{ background:var(--gold-light,#fdf3d8); }
.exc-res-ev-count-btn{ background:none; border:1px solid var(--line); border-radius:20px; padding:2px 9px; font-size:.75rem; cursor:pointer; }
.exc-res-ev-count-btn:hover{ background:var(--gold-light,#fdf3d8); }
.exc-res-muted{ color:var(--ink-soft); }

.exc-res-target-row{ display:flex; align-items:center; gap:8px; margin-bottom:14px; flex-wrap:wrap; }
.exc-res-target-row label{ font-size:.83rem; color:var(--ink-soft); }
.exc-res-target-row input{ border:1.5px solid var(--line); border-radius:8px; padding:6px 8px; font-family:inherit; }
.exc-res-saved-msg{ color:#16A34A; font-size:.8rem; font-weight:700; }

.exc-res-modal-box{ max-width:560px; max-height:88vh; overflow-y:auto; }
.exc-res-link-fields{ border-top:1px dashed var(--line); margin-top:10px; padding-top:10px; }
.exc-res-ev-adder{ border-top:1px solid var(--line); margin-top:12px; padding-top:12px; }
.exc-res-ev-adder > label{ display:block; font-size:.83rem; font-weight:700; color:var(--navy-deep); margin-bottom:6px; }
.exc-res-ev-adder-row{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-bottom:10px; }
.exc-res-ev-adder-row select, .exc-res-ev-adder-row input{ border:1.5px solid var(--line); border-radius:8px; padding:6px 8px; font-family:inherit; font-size:.83rem; }
.exc-res-ev-adder-row input[type="url"], .exc-res-ev-adder-row input[type="text"]{ flex:1; min-width:140px; }
.exc-res-ev-list{ display:flex; flex-wrap:wrap; gap:6px; }
.exc-res-ev-chip{ display:inline-flex; align-items:center; gap:5px; background:var(--paper-card,#fff); border:1px solid var(--line); border-radius:20px; padding:4px 8px; font-size:.75rem; }
.exc-res-ev-chip button{ background:none; border:none; cursor:pointer; color:#DC2626; font-weight:800; font-size:.9rem; line-height:1; padding:0 2px; }
.exc-res-empty-note{ color:var(--ink-soft); font-size:.82rem; margin:4px 0; }
.exc-res-filter-chip{ display:inline-flex; align-items:center; gap:8px; background:var(--gold-light,#fdf3d8); color:var(--navy-deep); border-radius:20px; padding:5px 12px; font-size:.78rem; font-weight:700; margin-bottom:10px; }
.exc-res-filter-chip button{ background:none; border:none; color:var(--navy-deep); cursor:pointer; font-weight:700; font-size:.75rem; }

/* ===========================================================
   V112 — إعادة تصميم بصري لتبويبي "تطبيق مهارات الإنماء المهني"
   و"الفعاليات النوعية للتحصيل الدراسي" لمطابقة الصورة المرجعية التي
   أرسلها المستخدم: رأس بأيقونة، 4 بطاقات مؤشرات (بينها بطاقة دائرة)،
   صف من [دائرة توزيع + قائمة تفاصيل/أعمدة]، جدول معاينة مبسّط قابل
   للتوسعة، وزر إضافة بعرض كامل أسفل القسم. لا تُغيَّر أي أرقام أو
   أوزان هنا إطلاقًا — تصميم عرض فقط فوق نفس البيانات المحسوبة.
   =========================================================== */
.exc-res-panel-v2{ padding:18px 20px; }
.exc-res-head-v2{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.exc-res-head-title{ display:flex; align-items:center; gap:10px; }
.exc-res-head-title h3{ margin:0; color:var(--navy-deep); font-size:1.02rem; line-height:1.5; }
.exc-res-head-icon{ display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:11px; font-size:1.15rem; flex:none; }
.exc-res-head-icon-pd{ background:linear-gradient(135deg,#0891B2,#0E7490); }
.exc-res-head-icon-ach{ background:linear-gradient(135deg,#EA580C,#C2410C); }

.exc-res-kpis4{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
@media (max-width:900px){ .exc-res-kpis4{ grid-template-columns:repeat(2,1fr); } }
.exc-res-kpi4-card{ border-radius:12px; padding:14px 12px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; text-align:center; min-height:88px; transition:transform .15s, box-shadow .15s; }
.exc-res-kpi4-card:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.08); }
.exc-res-kpi4-label{ font-size:.74rem; font-weight:700; opacity:.85; }
.exc-res-kpi4-val{ font-size:1.5rem; font-weight:800; line-height:1; }
.exc-res-kpi4-blue{ background:#EFF6FF; color:#1D4ED8; }
.exc-res-kpi4-blue .exc-res-kpi4-val{ color:#1D4ED8; }
.exc-res-kpi4-navy{ background:#EEF2FF; color:#3730A3; }
.exc-res-kpi4-navy .exc-res-kpi4-val{ color:#3730A3; }
.exc-res-kpi4-green{ background:#F0FDF4; color:#15803D; }
.exc-res-kpi4-green .exc-res-kpi4-val{ color:#15803D; }
.exc-res-kpi4-orange{ background:#FFF7ED; color:#C2410C; }
.exc-res-kpi4-orange .exc-res-kpi4-val{ color:#C2410C; }
.exc-res-kpi4-ring{ background:#F8FAFC; border:1px solid var(--line); }
.exc-res-kpi4-ring .dash-ring-wrap{ width:52px; height:52px; margin:0 auto; }
.exc-res-kpi4-ring .dash-ring-pct{ font-size:.68rem; font-weight:800; }

.exc-res-charts-row{ display:grid; grid-template-columns:1.1fr 1fr; gap:16px; margin-bottom:20px; }
@media (max-width:820px){ .exc-res-charts-row{ grid-template-columns:1fr; } }
.exc-res-chart-box, .exc-res-details-box{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; }
.exc-res-chart-box h4, .exc-res-details-box h4{ margin:0 0 12px; font-size:.86rem; color:var(--navy-deep); }

.exc-res-donut-wrap{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; justify-content:center; }
.exc-res-donut-circle{ width:130px; height:130px; border-radius:50%; position:relative; flex:none; }
.exc-res-donut-hole{ position:absolute; inset:20px; background:#fff; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; box-shadow:inset 0 0 0 1px var(--line); }
.exc-res-donut-hole b{ font-size:1.15rem; color:var(--navy-deep); line-height:1.1; }
.exc-res-donut-hole small{ font-size:.65rem; color:var(--ink-soft); }
.exc-res-donut-legend{ display:flex; flex-direction:column; gap:7px; flex:1; min-width:140px; }
.exc-res-donut-legend-row{ display:flex; align-items:center; gap:6px; font-size:.78rem; }
.exc-res-donut-dot{ width:9px; height:9px; border-radius:50%; flex:none; }
.exc-res-donut-legend-label{ flex:1; color:var(--ink); }
.exc-res-donut-legend-row b{ color:var(--navy-deep); }
.exc-res-donut-legend-row small{ color:var(--ink-soft); }

.exc-res-bar-list{ display:flex; flex-direction:column; gap:12px; }
.exc-res-bar-row-top{ display:flex; justify-content:space-between; font-size:.8rem; margin-bottom:5px; }
.exc-res-bar-row-top span{ color:var(--ink-soft); }
.exc-res-bar-row-top b{ color:var(--navy-deep); }
.exc-res-bar-track{ background:#F1F5F9; border-radius:20px; height:8px; overflow:hidden; }
.exc-res-bar-fill{ height:100%; border-radius:20px; transition:width .3s; }

.exc-res-table-section{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; }
.exc-res-table-section-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; }
.exc-res-table-section-head h4{ margin:0; font-size:.86rem; color:var(--navy-deep); }
.exc-res-showall-link{ background:none; border:none; color:var(--gold-deep,#b8860b); font-weight:700; font-size:.78rem; cursor:pointer; padding:2px 4px; }
.exc-res-showall-link:hover{ text-decoration:underline; }
.exc-res-clickable-row{ cursor:pointer; transition:background .12s; }
.exc-res-clickable-row:hover{ background:var(--gold-light,#fdf3d8); }
.exc-res-status-pill{ display:inline-block; border-radius:20px; padding:3px 10px; font-size:.72rem; font-weight:700; white-space:nowrap; }
.exc-res-ev-count-badge{ display:inline-block; background:var(--paper-bg,#f8f7f3); border:1px solid var(--line); border-radius:20px; padding:2px 9px; font-size:.72rem; }
.exc-res-bottom-add-btn{ display:block; width:100%; margin-top:14px; background:var(--navy-deep); color:#fff; border:none; border-radius:12px; padding:12px; font-size:.9rem; font-weight:700; cursor:pointer; font-family:inherit; transition:filter .15s, transform .1s; }
.exc-res-bottom-add-btn:hover{ filter:brightness(1.1); transform:translateY(-1px); }

/* بطاقة النتيجة الخاصة داخل عرض إجادة نفسه (excSpecialResultCardHTML) */
.exc-special-result-card{ position:relative; }
.exc-special-result-card .exc-g1-result-name{ display:block; flex:none; margin:4px 0 2px; font-size:.82rem; font-weight:600; color:var(--ink-soft); }
.exc-special-stat-row{ display:flex; flex-wrap:wrap; gap:14px; margin:8px 0; }
.exc-special-stat{ display:flex; flex-direction:column; align-items:center; gap:2px; font-size:.72rem; color:var(--ink-soft); min-width:64px; }
.exc-special-stat b{ font-size:1rem; color:var(--navy-deep); }
.exc-special-jump-btn{ margin-top:4px; }

/* V113 — هوية بصرية هادئة ومتمايزة لبطاقتَي النتيجتين المرتبطتين
   بتبويبَي المتابعة: أزرق/فيروزي هادئ لتطبيق المهارات، ذهبي/برتقالي
   هادئ للفعاليات النوعية — بلا مبالغة في الألوان (شريط جانبي رفيع +
   شارة عنوان ملوّنة فقط، لا تلوين كامل للبطاقة) */
.exc-special-card-pd{ border-inline-start:3px solid #0891B2; }
.exc-special-card-ach{ border-inline-start:3px solid #C2410C; }
.exc-special-badge{ display:inline-flex; align-items:center; gap:5px; font-size:.76rem; font-weight:700; padding:3px 10px; border-radius:999px; }
.exc-special-badge-pd{ color:#0E7490; background:#ECFEFF; }
.exc-special-badge-ach{ color:#C2410C; background:#FFF7ED; }
.exc-special-jump-pd{ border-color:#0891B2 !important; color:#0E7490 !important; }
.exc-special-jump-pd:hover{ background:#ECFEFF !important; }
.exc-special-jump-ach{ border-color:#C2410C !important; color:#C2410C !important; }
.exc-special-jump-ach:hover{ background:#FFF7ED !important; }

/* زرّا "العودة إلى الإنماء المهني"/"العودة إلى التحصيل الدراسي" أعلى
   لوحتَي المتابعة — بنفس الهوية اللونية الهادئة لكل منهما */
.exc-res-back-btn{ display:inline-flex; align-items:center; gap:6px; background:none; border:1.5px solid var(--line); border-radius:9px; padding:7px 14px; font-family:inherit; font-size:.83rem; font-weight:700; cursor:pointer; margin-bottom:14px; transition:background .15s, border-color .15s; }
.exc-res-back-btn-pd{ color:#0E7490; border-color:#0891B2; }
.exc-res-back-btn-pd:hover{ background:#ECFEFF; }
.exc-res-back-btn-ach{ color:#C2410C; border-color:#C2410C; }
.exc-res-back-btn-ach:hover{ background:#FFF7ED; }

/* V114 — قسما أدلة النتيجتين داخل "الأساليب الإشرافية المنفذة" في
   أعمال المشرف (بطلب صريح) — نفس الهوية الهادئة (شريط جانبي + شارة
   عنوان ملوَّنة فقط) المعتمدة أصلًا لبطاقتيهما في إجادة */
.exc-methods-evidence-card{ border-inline-start:3px solid; margin-top:14px; }
.exc-methods-evidence-pd{ border-inline-start-color:#0891B2; }
.exc-methods-evidence-ach{ border-inline-start-color:#C2410C; }
.exc-methods-evidence-card .works-methods-title span{ font-size:.74rem; font-weight:700; padding:2px 9px; border-radius:999px; }
.exc-methods-evidence-pd .works-methods-title span{ color:#0E7490; background:#ECFEFF; }
.exc-methods-evidence-ach .works-methods-title span{ color:#C2410C; background:#FFF7ED; }
.exc-methods-evidence-kpis{ display:flex; flex-wrap:wrap; gap:16px; margin:8px 0 12px; }
.exc-methods-evidence-kpis span{ display:flex; flex-direction:column; align-items:center; gap:2px; font-size:.72rem; color:var(--ink-soft); min-width:70px; }
.exc-methods-evidence-kpis b{ font-size:1.05rem; color:var(--navy-deep); }
.exc-methods-evidence-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.exc-res-ev-chip-readonly{ background:var(--paper-bg,#f8f7f3); }

/* ثالثًا/رابعًا/خامسًا/سادسًا — بطاقات لوحة التحكم/أعمال المشرف/إنجازات المشرف */
.exc-dash-card{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; }
.exc-dash-card h4{ margin:0 0 8px; font-size:.9rem; color:var(--navy-deep); }
.exc-dash-card-row{ display:flex; justify-content:space-between; gap:8px; }
.exc-dash-mini{ flex:1; background:var(--paper-bg,#f8f7f3); border-radius:9px; padding:9px 10px; }
.exc-dash-mini b{ display:block; font-size:.78rem; color:var(--navy-deep); margin-bottom:6px; }
.exc-dash-mini .exc-dash-mini-pct{ font-size:1.3rem; font-weight:800; color:var(--navy-deep); }
.exc-dash-mini small{ display:block; color:var(--ink-soft); font-size:.7rem; margin-top:2px; }

.works-exc-alert{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:14px; margin-top:14px; }
.works-exc-alert h4{ margin:0 0 8px; font-size:.9rem; color:var(--navy-deep); }
.works-exc-alert-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.works-exc-chip{ background:none; border:1.5px solid var(--line); border-radius:20px; padding:6px 12px; font-size:.78rem; cursor:pointer; font-family:inherit; transition:background .15s, border-color .15s; }
.works-exc-chip:hover{ background:var(--gold-light,#fdf3d8); border-color:var(--gold); }
.works-exc-chip b{ margin-inline-start:4px; }

.exc-achv-gallery{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.exc-achv-card{ border-radius:14px; padding:16px; cursor:pointer; color:#fff; position:relative; overflow:hidden; transition:transform .15s, box-shadow .15s; }
.exc-achv-card:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(0,0,0,.16); }
.exc-achv-card-pd{ background:linear-gradient(135deg,#0891B2,#0E7490); }
.exc-achv-card-ach{ background:linear-gradient(135deg,#EA580C,#C2410C); }
.exc-achv-card-icon{ font-size:1.6rem; margin-bottom:8px; display:block; }
.exc-achv-card h5{ margin:0 0 8px; font-size:.95rem; }
.exc-achv-card-stats{ display:flex; flex-wrap:wrap; gap:10px; }
.exc-achv-card-stats span{ background:rgba(255,255,255,.18); border-radius:8px; padding:4px 9px; font-size:.75rem; }
.exc-achv-card-stats b{ display:block; font-size:1rem; }
.works-evidence-file-link:hover span{text-decoration:underline;color:var(--pe-deep)}
.works-evidence-file-link span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:235px;direction:rtl;text-align:right}
.works-evidence-app-svg{width:22px;height:22px;display:block;flex:0 0 22px;background:transparent;filter:none}
.works-evidence-direct-link{display:block;color:#1a73e8;text-decoration:underline;font-size:12px;font-weight:800;overflow-wrap:anywhere;max-width:100%;background:transparent;border:0;padding:0;text-align:right;direction:rtl}
.works-no-evidence-text{display:inline-block;color:#8b9490;font-weight:800;font-size:12px}.works-no-evidence-date{color:#a3aaa6}
.works-evidence-date-item .works-exc-datetime{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important}
.works-evidence-date-item .works-exc-date,.works-evidence-date-item .works-exc-time{display:block!important;width:100%}

/* V31.40 — ضبط عرض أعمال المشرف: بطاقات أصغر + توسيط التاريخ والدليل */
.works-plan-evidence{gap:8px}
.works-plan-evidence>div{padding:8px 9px;border-radius:12px;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.works-plan-evidence b{font-size:17px;line-height:1.15}
.works-plan-evidence span{font-size:11px;margin-top:3px}
.works-impact-kpis{gap:8px}
.works-impact-kpis>div{padding:9px 8px;border-radius:13px;min-height:60px}
.works-impact-kpis b{font-size:17px}
.works-impact-kpis span{font-size:11px}
.works-evidence-clean-table th:nth-child(2),.works-evidence-clean-table th:nth-child(3),
.works-evidence-clean-table .works-evidence-date-cell,.works-evidence-clean-table .works-evidence-proof-cell{text-align:center;vertical-align:middle}
.works-evidence-date-stack,.works-evidence-stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}
.works-evidence-stack-item,.works-evidence-date-item{width:100%;display:flex;align-items:center;justify-content:center}
.works-evidence-file-link{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.works-achievement-impact-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.works-achievement-impact-metrics>div{text-align:center;padding:9px 8px;border-radius:13px;background:var(--pe-soft);border:1px solid color-mix(in srgb,var(--pe) 18%,transparent);transition:.2s}
.works-achievement-impact-metrics>div:hover{transform:translateY(-3px);box-shadow:0 7px 18px color-mix(in srgb,var(--pe) 13%,transparent)}
.works-achievement-impact-metrics span{display:block;font-size:11px;color:#64716b;margin-bottom:2px}
.works-achievement-impact-metrics b{font-size:18px;color:var(--pe-deep)}
@media(max-width:900px){.works-achievement-impact-metrics{grid-template-columns:repeat(2,1fr)}}

/* ===== V31.46 — Curriculum UI actually loaded (components.css) ===== */
.curriculum-plan-panel{--cur:#245b96;--cur2:#3d7fba;--cur3:#79a9d2;--cur-ink:#173957;--cur-soft:#f4f8fc;--cur-line:#d9e5f0}
.curriculum-plan-panel>.plan-subtabs{display:flex!important;width:max-content!important;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;gap:10px!important;margin-bottom:18px!important}
.curriculum-plan-panel>.plan-subtabs .plan-subtab{border:1px solid #dbe5ee!important;background:#fff!important;border-radius:14px!important;padding:11px 22px!important;color:#536a80!important;font-weight:800!important;box-shadow:0 5px 16px rgba(26,67,105,.05)!important;transition:.22s ease!important}
.curriculum-plan-panel>.plan-subtabs .plan-subtab:hover{transform:translateY(-3px)!important;border-color:#a9c5df!important;box-shadow:0 10px 24px rgba(36,91,150,.12)!important}
.curriculum-plan-panel>.plan-subtabs .plan-subtab.active{color:#fff!important;border-color:transparent!important;background:linear-gradient(135deg,var(--cur),var(--cur2))!important;box-shadow:0 9px 24px rgba(36,91,150,.22)!important}
.curriculum-clean{padding:0!important;overflow:hidden!important;border:1px solid #dfe8f1!important;border-radius:22px!important;box-shadow:0 14px 36px rgba(28,63,98,.08)!important;background:#fff!important;position:relative!important}
.curriculum-clean:before{content:""!important;display:block!important;position:absolute!important;inset:0 0 auto 0!important;height:4px!important;background:linear-gradient(90deg,var(--cur),var(--cur2),#9fc3e2)!important}
.curriculum-toolbar{display:flex!important;justify-content:flex-start!important;align-items:center!important;padding:20px 22px!important;background:linear-gradient(135deg,#fbfdff,#f2f7fc)!important;border-bottom:1px solid #e6edf4!important}
.curriculum-add{min-width:145px!important;border:0!important;border-radius:13px!important;padding:11px 20px!important;background:linear-gradient(135deg,var(--cur),var(--cur2))!important;color:#fff!important;font-weight:900!important;box-shadow:0 8px 20px rgba(36,91,150,.22)!important;transition:.2s ease!important}
.curriculum-add:hover{transform:translateY(-4px) scale(1.015)!important;box-shadow:0 14px 30px rgba(36,91,150,.30)!important;filter:saturate(1.08)}
.curriculum-form{display:block!important;width:auto!important;max-width:none!important;margin:20px 22px!important;padding:0!important;border:1px solid #d5e3ef!important;border-radius:20px!important;background:#fff!important;box-shadow:0 16px 38px rgba(25,62,97,.11)!important;overflow:hidden!important}
.curriculum-form[hidden]{display:none!important}
.cur-form-head{display:flex!important;align-items:center!important;gap:13px!important;padding:18px 21px!important;background:linear-gradient(135deg,#eaf3fb,#fbfdff)!important;border-bottom:1px solid #dce7f1!important;color:var(--cur-ink)!important}
.cur-form-head>div:last-child{display:flex!important;flex-direction:column!important;gap:3px!important}.cur-form-head b{font-size:1rem!important}.cur-form-head small{font-size:.74rem!important;color:#6b7e91!important}
.cur-form-badge{width:40px!important;height:40px!important;flex:0 0 40px!important;border-radius:12px!important;display:grid!important;place-items:center!important;background:linear-gradient(135deg,var(--cur),var(--cur2))!important;color:#fff!important;font-weight:900!important;box-shadow:0 7px 16px rgba(36,91,150,.22)!important}
.cur-form-body{padding:22px!important}.cur-grid-polished{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:16px!important;padding:0!important;align-items:start!important}.cur-span-4{grid-column:span 4!important}.cur-span-6{grid-column:span 6!important}.cur-span-8{grid-column:span 8!important}.cur-span-12{grid-column:span 12!important}
.cur-field{display:flex!important;flex-direction:column!important;gap:7px!important;font-size:.78rem!important;font-weight:800!important;color:#43586c!important}.cur-field>span{padding-inline:3px!important}.cur-field em{font-style:normal!important;color:#b34747!important}
.cur-input-shell{width:100%!important;min-height:46px!important;display:flex!important;align-items:center!important;border:1px solid #cedbe7!important;border-radius:12px!important;background:#fff!important;box-shadow:0 2px 7px rgba(27,64,99,.035)!important;transition:.18s ease!important;overflow:hidden!important}.cur-input-shell:hover{border-color:#a9bfd4!important}.cur-input-shell:focus-within{border-color:#6e9bc5!important;box-shadow:0 0 0 4px rgba(61,127,186,.10),0 7px 16px rgba(34,78,119,.06)!important;transform:translateY(-1px)!important}
.cur-input-shell input,.cur-input-shell select{box-sizing:border-box!important;width:100%!important;min-width:0!important;min-height:44px!important;margin:0!important;padding:10px 13px!important;border:0!important;outline:0!important;background:transparent!important;color:#233d54!important;font:inherit!important}.cur-input-shell select[multiple]{min-height:96px!important;padding:8px!important}.cur-prefix{padding-right:12px!important;opacity:.72!important}
.cur-evidence-zone{margin-top:20px!important;padding:17px!important;border:1px dashed #abc4da!important;border-radius:17px!important;background:linear-gradient(135deg,#f7fbff,#eef5fb)!important}.cur-zone-title{display:flex!important;align-items:center!important;gap:11px!important;margin-bottom:14px!important;color:var(--cur-ink)!important}.cur-zone-title>div{display:flex!important;flex-direction:column!important;gap:2px!important}.cur-zone-title small{color:#74879a!important;font-size:.7rem!important}.cur-zone-icon{width:34px!important;height:34px!important;border-radius:10px!important;display:grid!important;place-items:center!important;background:#dcebf7!important;color:var(--cur)!important;font-weight:900!important}
.cur-evidence-grid{display:grid!important;grid-template-columns:1fr 1fr 1.15fr!important;gap:13px!important;align-items:stretch!important}.cur-upload{min-height:76px!important;display:grid!important;grid-template-columns:38px 1fr!important;grid-template-rows:auto auto!important;column-gap:10px!important;align-content:center!important;padding:11px 14px!important;border:1px dashed #8eb0ce!important;border-radius:13px!important;background:#fff!important;color:#315777!important;cursor:pointer!important;transition:.2s ease!important}.cur-upload:hover{transform:translateY(-3px)!important;border-color:var(--cur2)!important;box-shadow:0 9px 20px rgba(36,91,150,.11)!important}.cur-upload input{display:none!important}.cur-upload-icon{grid-row:1/3!important;width:38px!important;height:38px!important;border-radius:10px!important;display:grid!important;place-items:center!important;background:#e4f0fa!important;color:var(--cur)!important;font-size:1.1rem!important;font-weight:900!important}.cur-upload b{font-size:.78rem!important}.cur-upload small{font-size:.64rem!important;color:#8292a2!important}
.cur-actions{display:flex!important;justify-content:flex-start!important;gap:11px!important;margin-top:20px!important;padding-top:17px!important;border-top:1px solid #e8eef4!important}.cur-save,.cur-cancel{border-radius:12px!important;padding:11px 19px!important;font-weight:900!important;cursor:pointer!important;transition:.2s ease!important}.cur-save{border:0!important;background:linear-gradient(135deg,var(--cur),var(--cur2))!important;color:#fff!important;box-shadow:0 7px 18px rgba(36,91,150,.22)!important}.cur-save:hover{transform:translateY(-3px)!important;box-shadow:0 12px 25px rgba(36,91,150,.30)!important}.cur-cancel{background:#f1f4f7!important;color:#5c6c7c!important;border:1px solid #d9e2ea!important}.cur-cancel:hover{background:#e8eef4!important;transform:translateY(-2px)!important}.cur-save span,.cur-cancel span{margin-left:7px!important}
.cur-empty{margin:8px 22px 22px!important;min-height:160px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;border:1px dashed #d4e1ed!important;border-radius:16px!important;background:linear-gradient(180deg,#fff,#f8fbfe)!important;color:#60768b!important}.cur-empty-mark{width:38px!important;height:38px!important;border-radius:50%!important;display:grid!important;place-items:center!important;background:#eaf3fb!important;color:var(--cur)!important;font-weight:900!important}.cur-empty b{color:#34526d!important}.cur-empty span{font-size:.75rem!important}
.cur-clean-table{margin:0 22px 22px!important;border:1px solid #e0e9f2!important;border-radius:15px!important;overflow:auto!important}.cur-table{margin:0!important}.cur-table thead th{background:linear-gradient(180deg,#edf5fd,#f7faff)!important;color:var(--cur-ink)!important}.cur-table tbody tr:hover td{background:#f4f9ff!important}.cur-dt small{display:block!important;margin-top:3px!important;color:#7b8b9a!important}.cur-del{border:1px solid transparent!important;background:transparent!important;color:#a33!important;border-radius:9px!important;padding:5px 9px!important}.cur-del:hover{border-color:#efcaca!important;background:#fff5f5!important}

/* V87 — بطلب صريح: "المعلمون المشاركون... اجعلهم على شكل قائمة مرقمة" —
   عرض كل معلم كسطر مرقّم داخل خلية الجدول بدل نص واحد مفصول بفواصل */
.cur-teachers-numbered{
  margin:0!important; padding-inline-start:18px!important; padding-inline-end:0!important;
  text-align:start!important; list-style-position:outside!important;
}
/* V88 — بطلب صريح: "اجعل الأسماء على صف واحد حتى لو قلصت حقول رقمية
   واجعل الاسماء بولد" — كل اسم بلا التفاف (nowrap) وبخط عريض، بدل الوزن
   العادي والالتفاف الافتراضي عند ضيق العمود */
.cur-teachers-numbered li{
  font-size:.78rem!important; color:var(--cur-ink,#34526d)!important; line-height:1.7!important;
  font-weight:700!important; white-space:nowrap!important;
}
/* عمود المعلمين نفسه لا يُقلَّص — يتّسع بحسب أطول اسم بلا التفاف */
.cur-teachers-col{ white-space:nowrap!important; }
/* أعمدة التواريخ الثلاثة ("الحقول الرقمية"): حشو أضيق لإفساح المساحة
   اللازمة لعمود الأسماء كي يبقى كل اسم بسطر واحد */
/* V93 — بطلب صريح: "التواريخ اجعلها بنفس حجم اسماء المعلمين" — كان خط
   التواريخ مصغَّرًا عمدًا (V88) لإفساح مساحة لعمود الأسماء؛ أصبح الآن
   بنفس حجم أسماء المعلمين (.cur-teachers-numbered li: .78rem) بدل .68rem. */
.cur-table th.cur-date-col, .cur-table td.cur-date-col{
  font-size:.78rem!important; padding-inline:7px!important; white-space:nowrap!important;
}
.cur-table td.cur-date-col.cur-dt small{ font-size:.6rem!important; }
/* V89 — بطلب صريح: "الموضوع... واجعل نص الموضوع باللون الاحمر" — نفس
   الأحمر الموحَّد المستخدَم في كل الموقع (var(--ds-danger)) بدل لون النص
   الافتراضي (var(--navy-deep) الموروث من <b>) */
.cur-topic-red, .cur-topic-red b{ color:var(--ds-danger)!important; }

/* V92 — بطلب صريح: "الدليل... عند الضغط عليه اجعله قابلا للتحميل واذا كان
   رابط اعرضه" — عمود "الدليل" أصبح دائمًا رابطًا قابلًا للنقر (سواء كان
   رابط خارجي يُفتح في تبويب جديد، أو ملف مرفق يُنزَّل مباشرة عبر
   href="dataURL" download="اسم الملف")، فيلزمه تنسيق مرئي يوضّح أنه
   قابل للنقر بدل نص عادي. */
.cur-link, .cur-file{
  color:var(--cur,#245b96)!important; font-weight:700!important; text-decoration:none!important;
  display:inline-flex!important; align-items:center!important; gap:4px!important; cursor:pointer!important;
  transition:color .15s ease!important;
}
.cur-link:hover, .cur-file:hover{ text-decoration:underline!important; color:var(--cur-ink,#173957)!important; }
.cur-none{ color:var(--ink-soft)!important; }

/* V87 — بطلب صريح: "زر تعديل في الإجراءات حوله قلم وجنبه تعديل" — نفس
   هوية زر "تعديل السبب" (mfu-edit-icon) المستخدَمة أصلًا في جدول تعذر
   الزيارات: أيقونة قلم بجانب النص، تهتز عند مرور المؤشر (mfuEditIconWiggle
   المعرَّفة في index.html — أُعيد تعريف نفس الحركة هنا محليًا كي لا يعتمد
   ملف مشترك على نطاق خاص بوحدة أخرى) */
/* V93 — بطلب صريح: "تعديل وحذف في المناهج خليهم فوق بعض" — كانا بجانب
   بعضهما أفقيًا (row)؛ أصبحا الآن عموديًا فوق بعضهما (column) */
/* V94 — بطلب صريح: "تعديل وحذف على استقامة واحدة" — كان align-items:center
   يوسّط كل زر بعرضه الخاص، فتظهر الحافتان غير متطابقتين (زر "تعديل" أعرض
   بسبب أيقونة القلم من زر "حذف")؛ أصبح الحاوي الآن align-items:stretch
   بعرض max-content يتمركز في الخلية، فيتمدَّد الزران لنفس العرض
   (أوسعهما) وتتطابق حوافهما — استقامة عمودية واحدة فعلية. */
.cur-row-actions{ display:flex!important; flex-direction:column!important; align-items:stretch!important; gap:4px!important; justify-content:center!important; width:max-content!important; margin-inline:auto!important; }
.cur-row-actions .cur-edit, .cur-row-actions .cur-del{ width:100%!important; box-sizing:border-box!important; justify-content:center!important; text-align:center!important; }
.cur-edit{
  display:inline-flex!important; align-items:center!important; gap:5px!important;
  border:1px solid transparent!important; background:transparent!important;
  color:var(--cur,#245b96)!important; border-radius:9px!important; padding:5px 9px!important;
  font-weight:700!important; cursor:pointer!important; transition:.2s ease!important;
}
.cur-edit:hover{ border-color:#cfe0f2!important; background:#eef5fc!important; }
.cur-edit-icon{ display:inline-block!important; transition:transform .2s ease!important; }
.cur-edit:hover .cur-edit-icon{ animation:curEditIconWiggle .5s ease!important; }
@keyframes curEditIconWiggle{
  0%,100%{ transform:rotate(0deg) scale(1); }
  25%{ transform:rotate(-18deg) scale(1.15); }
  75%{ transform:rotate(18deg) scale(1.15); }
}
@media(prefers-reduced-motion:reduce){
  .cur-edit:hover .cur-edit-icon{ animation:none!important; }
}
@media(max-width:900px){.cur-span-4,.cur-span-6,.cur-span-8{grid-column:span 12!important}.cur-evidence-grid{grid-template-columns:1fr!important}.cur-form-body{padding:16px!important}.curriculum-form{margin:14px!important}}


/* ===== V31.49 — إصلاح زر إضافة معلم وإخفاء نص التاريخ الافتراضي فعلياً ===== */
.cur-date-input:not(.has-value){
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
  caret-color:transparent!important;
}
.cur-date-input:not(.has-value)::-webkit-datetime-edit,
.cur-date-input:not(.has-value)::-webkit-datetime-edit-fields-wrapper,
.cur-date-input:not(.has-value)::-webkit-datetime-edit-text,
.cur-date-input:not(.has-value)::-webkit-datetime-edit-day-field,
.cur-date-input:not(.has-value)::-webkit-datetime-edit-month-field,
.cur-date-input:not(.has-value)::-webkit-datetime-edit-year-field{
  color:transparent!important;
  -webkit-text-fill-color:transparent!important;
}
.cur-date-input.has-value{
  color:#233d54!important;
  -webkit-text-fill-color:#233d54!important;
  caret-color:auto!important;
}
.cur-date-input.has-value::-webkit-datetime-edit,
.cur-date-input.has-value::-webkit-datetime-edit-fields-wrapper,
.cur-date-input.has-value::-webkit-datetime-edit-text,
.cur-date-input.has-value::-webkit-datetime-edit-day-field,
.cur-date-input.has-value::-webkit-datetime-edit-month-field,
.cur-date-input.has-value::-webkit-datetime-edit-year-field{
  color:#233d54!important;
  -webkit-text-fill-color:#233d54!important;
}
.cur-date-input::-webkit-calendar-picker-indicator{opacity:1!important;cursor:pointer!important;}
.cur-add-teacher-btn{pointer-events:auto!important;position:relative!important;z-index:3!important;}
.cur-teacher-modal{position:fixed!important;inset:0!important;display:none!important;align-items:center!important;justify-content:center!important;background:rgba(18,39,61,.42)!important;backdrop-filter:blur(7px)!important;z-index:99999!important;padding:24px!important;}
.cur-teacher-modal.show{display:flex!important;}
.cur-teacher-dialog{width:min(720px,94vw)!important;max-height:78vh!important;display:flex!important;flex-direction:column!important;background:#fff!important;border:1px solid #d5e4f0!important;border-radius:22px!important;box-shadow:0 28px 70px rgba(13,43,72,.28)!important;overflow:hidden!important;}
.cur-teacher-dialog-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;padding:18px 20px!important;background:linear-gradient(135deg,#e9f3fb,#fff)!important;border-bottom:1px solid #dbe7f1!important;}
.cur-teacher-dialog-head>div{display:flex!important;flex-direction:column!important;gap:3px!important;}.cur-teacher-dialog-head small{color:#6d8193!important;font-size:.74rem!important;}
.cur-teacher-close{border:0!important;border-radius:11px!important;padding:9px 15px!important;background:#eef3f7!important;color:#4b6175!important;font-weight:900!important;cursor:pointer!important;}
.cur-teacher-search{display:flex!important;align-items:center!important;gap:9px!important;margin:14px 18px!important;padding:0 13px!important;border:1px solid #d2dfeb!important;border-radius:12px!important;background:#fff!important;}
.cur-teacher-search input{width:100%!important;border:0!important;outline:0!important;padding:11px 4px!important;background:transparent!important;}
.cur-teacher-list{overflow:auto!important;padding:0 18px 18px!important;display:flex!important;flex-direction:column!important;gap:8px!important;}
.cur-teacher-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:11px 13px!important;border:1px solid #e0e8ef!important;border-radius:12px!important;background:#fbfdff!important;}
.cur-teacher-row>div{display:flex!important;flex-direction:column!important;gap:2px!important;}.cur-teacher-row small{color:#7c8b98!important;font-size:.7rem!important;}
.cur-teacher-plus{width:34px!important;height:34px!important;border:0!important;border-radius:10px!important;background:linear-gradient(135deg,var(--cur),var(--cur2))!important;color:#fff!important;font-weight:900!important;cursor:pointer!important;box-shadow:0 6px 14px rgba(36,91,150,.18)!important;}
.cur-teacher-plus.selected{background:#e4eef7!important;color:#2f6fa8!important;box-shadow:none!important;}

/* ===== V31.50 — هوية اختيار المعلمين والأسماء المختارة ===== */
.cur-add-teacher-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:9px!important;min-height:42px!important;padding:9px 16px!important;border:1px solid #8fb5d7!important;border-radius:12px!important;background:linear-gradient(135deg,#f7fbff,#e7f2fb)!important;color:#245b96!important;font-weight:900!important;font-size:.78rem!important;cursor:pointer!important;box-shadow:0 5px 14px rgba(36,91,150,.10)!important;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important}
.cur-add-teacher-btn span{display:grid!important;place-items:center!important;width:25px!important;height:25px!important;border-radius:8px!important;background:linear-gradient(135deg,var(--cur),var(--cur2))!important;color:#fff!important;font-size:1rem!important;box-shadow:0 4px 10px rgba(36,91,150,.20)!important}
.cur-add-teacher-btn:hover{transform:translateY(-3px)!important;border-color:#6396c3!important;box-shadow:0 11px 24px rgba(36,91,150,.17)!important;background:#fff!important}
.cur-add-teacher-btn:active{transform:translateY(-1px) scale(.985)!important}
.cur-selected-teachers{display:flex!important;flex-direction:column!important;gap:8px!important;width:100%!important;margin-top:9px!important}
.cur-teacher-chip{width:100%!important;box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;padding:9px 11px 9px 14px!important;border:1px solid #d8e6f2!important;border-radius:12px!important;background:linear-gradient(135deg,#fff,#f5faff)!important;color:#284d6d!important;box-shadow:0 3px 10px rgba(36,91,150,.05)!important;transition:.2s ease!important}
.cur-teacher-chip:hover{transform:translateY(-2px)!important;border-color:#a8c7e1!important;box-shadow:0 9px 20px rgba(36,91,150,.11)!important}
.cur-teacher-chip b{font-size:.78rem!important;font-weight:850!important}
.cur-teacher-chip button{width:30px!important;height:30px!important;flex:0 0 30px!important;display:grid!important;place-items:center!important;border:1px solid #c8dced!important;border-radius:9px!important;background:#edf5fc!important;color:#356f9f!important;font-size:1.05rem!important;font-weight:900!important;cursor:pointer!important;transition:.18s ease!important}
.cur-teacher-chip button:hover{transform:translateY(-2px) rotate(5deg)!important;background:linear-gradient(135deg,#2e6fa8,#4388c1)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 7px 15px rgba(36,91,150,.22)!important}
.cur-teacher-empty{display:block!important;padding:9px 12px!important;border:1px dashed #d6e3ee!important;border-radius:11px!important;background:#fafcff!important;color:#7c8e9f!important;font-size:.72rem!important;text-align:center!important}
.cur-teacher-dialog{width:min(760px,94vw)!important}
.cur-teacher-dialog-head{padding:20px 22px!important;background:linear-gradient(135deg,#e7f2fb,#f9fcff)!important}
.cur-teacher-dialog-head b{color:#1d496e!important;font-size:1rem!important}
.cur-teacher-close{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:82px!important;border:1px solid #b9d0e3!important;background:linear-gradient(135deg,#fff,#edf5fb)!important;color:#2c638f!important;box-shadow:0 4px 12px rgba(36,91,150,.08)!important;transition:.2s ease!important}
.cur-teacher-close:hover{transform:translateY(-3px)!important;background:linear-gradient(135deg,var(--cur),var(--cur2))!important;color:#fff!important;border-color:transparent!important;box-shadow:0 10px 20px rgba(36,91,150,.22)!important}
.cur-teacher-search{margin:16px 20px!important;border-radius:14px!important;box-shadow:0 3px 10px rgba(36,91,150,.04)!important;transition:.18s ease!important}
.cur-teacher-search:focus-within{border-color:#76a4ca!important;box-shadow:0 0 0 4px rgba(61,127,186,.09)!important}
.cur-teacher-list{padding:2px 20px 20px!important;gap:9px!important}
.cur-teacher-row{min-height:56px!important;padding:10px 13px 10px 16px!important;border-color:#dce8f2!important;border-radius:14px!important;background:linear-gradient(135deg,#fff,#f7fbff)!important;box-shadow:0 3px 10px rgba(36,91,150,.045)!important;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important}
.cur-teacher-row:hover{transform:translateY(-3px)!important;border-color:#a9c8e1!important;box-shadow:0 10px 22px rgba(36,91,150,.12)!important;background:#fff!important}
.cur-teacher-row b{color:#254c6d!important;font-size:.8rem!important}.cur-teacher-row small{margin-top:2px!important;color:#7a8d9e!important}
.cur-teacher-plus{width:36px!important;height:36px!important;flex:0 0 36px!important;border-radius:11px!important;transition:.18s ease!important}
.cur-teacher-plus:not(:disabled):hover{transform:translateY(-3px) scale(1.06)!important;box-shadow:0 10px 20px rgba(36,91,150,.28)!important}
.cur-teacher-plus.selected{background:#e8f2fa!important;color:#2e70a8!important;border:1px solid #bfd6e9!important}
/* V31.54 — أدلة المناهج في أعمال المشرف */
.works-cur-evidence-file,.works-cur-evidence-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;font-weight:700;line-height:1.6;transition:transform .18s ease,filter .18s ease,opacity .18s ease}
.works-cur-evidence-file{color:#245b91}
.works-cur-evidence-link{color:#1769aa;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.works-cur-evidence-file:hover,.works-cur-evidence-link:hover{transform:translateY(-2px);filter:drop-shadow(0 7px 10px rgba(47,110,166,.20))}
.works-cur-evidence-file.is-disabled{opacity:.65;cursor:default}
.curriculum-eval .cur-dt{white-space:nowrap;text-align:center}
.curriculum-eval .cur-dt b,.curriculum-eval .cur-dt small{display:block}
.curriculum-eval .cur-dt small{margin-top:3px;opacity:.72;font-size:.82em}
/* V31.55 — أعمال المشرف: الأساليب الإشرافية المنفذة */
.works-section-methods{--wm:#6956c8;--wm2:#8d72e8;--wm-soft:#f4f1ff;--wm-line:#ddd6ff}
.works-methods-dashboard{display:flex;flex-direction:column;gap:18px;padding:4px 0 20px}
.works-methods-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px;border:1px solid var(--wm-line);border-radius:20px;background:linear-gradient(135deg,#fff 0%,var(--wm-soft) 100%);box-shadow:0 10px 28px rgba(87,69,174,.09)}
.works-methods-hero small{display:block;color:#756f92;font-weight:700;margin-bottom:5px}.works-methods-hero h3{margin:0;color:#342b68;font-size:1.18rem}
#worksMethodsPrintBtn{border:1px solid #8e78df;border-radius:14px;padding:11px 18px;background:linear-gradient(135deg,var(--wm),var(--wm2));color:#fff;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(105,86,200,.24);transition:.2s ease}
#worksMethodsPrintBtn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 13px 28px rgba(105,86,200,.34)}
.works-methods-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.works-methods-kpis>div{padding:14px 16px;border:1px solid #e4dfff;border-radius:16px;background:#fff;text-align:center;box-shadow:0 5px 16px rgba(62,48,124,.055);transition:.2s ease}.works-methods-kpis>div:hover{transform:translateY(-3px);box-shadow:0 11px 24px rgba(62,48,124,.11)}.works-methods-kpis span{display:block;color:#7b7690;font-size:.76rem;font-weight:700}.works-methods-kpis b{display:block;margin-top:5px;color:#3d3277;font-size:1.35rem}.works-methods-kpis b.is-date{font-size:.86rem}
.works-methods-card{padding:18px 20px;border:1px solid #e6e1fb;border-radius:20px;background:#fff;box-shadow:0 7px 22px rgba(55,43,110,.055)}.works-methods-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.works-methods-title b{color:#3b3268}.works-methods-title span{font-size:.72rem;color:#8a849e}
.works-method-circles{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;padding:8px}.works-method-circle{position:relative;width:112px;height:112px;border:0;background:transparent;cursor:pointer;transition:transform .24s ease;filter:drop-shadow(0 7px 12px rgba(91,72,176,.10))}.works-method-circle span{position:absolute;inset:8px;z-index:2;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;border:7px solid #e5defe;color:#40357d;transition:.24s ease}.works-method-circle b{font-size:1.2rem}.works-method-circle small{font-size:.67rem;font-weight:800;max-width:78px;line-height:1.3;margin-top:3px}.works-method-circle i{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--wm);top:12px;right:23px;box-shadow:0 0 0 5px rgba(105,86,200,.12);transition:.24s ease}.works-method-circle:hover,.works-method-circle.active{transform:translateY(-7px) scale(1.045)}.works-method-circle:hover span,.works-method-circle.active span{border-color:#aa98ef;box-shadow:0 10px 25px rgba(92,72,178,.14)}.works-method-circle:hover i,.works-method-circle.active i{transform:translate(5px,-5px);box-shadow:0 0 0 7px rgba(105,86,200,.14)}
.works-method-months{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.works-method-month{padding:12px;border:1px solid #ebe7fa;border-radius:14px;background:#faf9ff;text-align:center}.works-method-month b{display:block;color:#70698c;font-size:.78rem}.works-method-month span{display:block;color:#9b96aa;font-weight:900;margin-top:4px}.works-method-month.has-data{background:linear-gradient(135deg,#f8f5ff,#eee9ff);border-color:#d3c8fa}.works-method-month.has-data span{color:var(--wm);font-size:1.1rem}
.works-method-table-wrap{overflow:auto;border:1px solid #ece8f7;border-radius:15px}.works-method-table{width:100%;border-collapse:collapse;background:#fff}.works-method-table th{padding:12px 10px;background:#f4f1ff;color:#4b4272;font-size:.76rem}.works-method-table td{padding:12px 10px;border-top:1px solid #f0edf7;color:#514d61;font-size:.78rem;text-align:center}.works-method-table tbody tr{transition:.18s ease}.works-method-table tbody tr:hover{background:#fbfaff;transform:translateY(-1px)}.works-method-pill{display:inline-flex;padding:6px 10px;border-radius:999px;background:#f0ebff;color:#5b49ad;font-weight:800;border:1px solid #ded4ff}
.works-methods-summary{padding:17px 20px;border-radius:18px;border:1px solid #dcd4fb;background:linear-gradient(135deg,#f8f6ff,#fff);color:#50486f}.works-methods-summary b{color:#3b316f}.works-methods-summary p{margin:7px 0 0;line-height:1.9;font-size:.82rem}
@media(max-width:900px){.works-methods-kpis{grid-template-columns:repeat(2,1fr)}.works-method-months{grid-template-columns:repeat(3,1fr)}}
@media print{#worksMethodsPrintBtn{display:none!important}.works-methods-dashboard{padding:0}.works-method-circle{filter:none}}


/* V31.56 — التقرير الشهري: معلومة ثابتة + مرفقات الأساليب الإشرافية */
.ms-method-info-banner{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:10px 14px;border:1px solid rgba(116,91,213,.22);border-radius:12px;background:linear-gradient(135deg,rgba(116,91,213,.08),rgba(255,255,255,.96));color:#493d79;font-size:.78rem;box-shadow:0 6px 18px rgba(69,54,126,.06)}
.ms-method-info-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#6755bd;color:#fff;font-weight:900;font-family:Georgia,serif;box-shadow:0 0 0 5px rgba(103,85,189,.08)}
.ms-report-method-attachment{margin-top:9px;padding:10px;border:1px dashed rgba(77,105,165,.34);border-radius:11px;background:#f8fbff}
.ms-method-attach-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;color:#203a64;font-size:.73rem;font-weight:800}.ms-method-attach-head small{font-weight:600;color:#75839b}
.ms-method-file-picker{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;border-radius:9px;background:linear-gradient(135deg,#345f9d,#5d74c7);color:#fff;font-size:.74rem;font-weight:800;cursor:pointer;box-shadow:0 7px 16px rgba(56,80,150,.18);transition:.18s ease}.ms-method-file-picker:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(56,80,150,.26)}.ms-method-file-picker input{display:none}
.ms-method-file-current{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;border-radius:8px;background:#eef4ff;color:#324b76;font-size:.72rem}.ms-method-file-current[hidden]{display:none}.ms-method-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ms-method-file-clear{width:24px;height:24px;border:0;border-radius:7px;background:#fff0f0;color:#b93c3c;font-size:1rem;cursor:pointer;transition:.18s}.ms-method-file-clear:hover{transform:scale(1.08);background:#ffdede}
.ms-method-file-error{margin-top:7px;color:#b3261e;font-size:.69rem;font-weight:800}.ms-method-file-error[hidden]{display:none}
.works-method-file-link{display:inline-flex;align-items:center;gap:6px;max-width:190px;color:#4d45a4;text-decoration:none;font-weight:800;font-size:.72rem}.works-method-file-link span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.works-method-file-link:hover{text-decoration:underline}.works-method-no-file{color:#9aa2b1}

/* V31.58 — الهوية الحمراء للأساليب الإشرافية */
.works-section-methods{--wm:#a61f2b;--wm2:#d44852;--wm-soft:#fff3f4;--wm-line:#f0c8cc}
.works-section-methods .works-methods-hero{box-shadow:0 10px 28px rgba(166,31,43,.10)}
.works-section-methods .works-methods-hero small{color:#95656a}.works-section-methods .works-methods-hero h3{color:#781822}
.works-section-methods #worksMethodsPrintBtn{border-color:#c93b46;box-shadow:0 8px 20px rgba(166,31,43,.23)}
.works-section-methods #worksMethodsPrintBtn:hover{box-shadow:0 13px 28px rgba(166,31,43,.34)}
.works-section-methods .works-methods-kpis>div{border-color:#f2d7da;box-shadow:0 5px 16px rgba(126,24,34,.055)}
.works-section-methods .works-methods-kpis>div:hover{box-shadow:0 11px 24px rgba(126,24,34,.12)}
.works-section-methods .works-methods-kpis span{color:#936c70}.works-section-methods .works-methods-kpis b{color:#861d27}
.works-section-methods .works-methods-card{border-color:#f1d8da;box-shadow:0 7px 22px rgba(116,25,34,.06)}
.works-section-methods .works-methods-title b{color:#7d2028}.works-section-methods .works-methods-title span{color:#9d7b7e}
.works-section-methods .works-method-circle{filter:drop-shadow(0 7px 12px rgba(166,31,43,.11))}
.works-section-methods .works-method-circle span{border-color:#f4d9dc;color:#81202a}
.works-section-methods .works-method-circle i{box-shadow:0 0 0 5px rgba(166,31,43,.12)}
.works-section-methods .works-method-circle:hover span,.works-section-methods .works-method-circle.active span{border-color:#df7a83;box-shadow:0 10px 25px rgba(166,31,43,.16)}
.works-section-methods .works-method-circle:hover i,.works-section-methods .works-method-circle.active i{box-shadow:0 0 0 7px rgba(166,31,43,.15)}
.works-section-methods .works-method-month{border-color:#f2e0e2;background:#fffafa}.works-section-methods .works-method-month b{color:#8e6a6e}.works-section-methods .works-method-month span{color:#aa8b8e}
.works-section-methods .works-method-month.has-data{background:linear-gradient(135deg,#fff6f7,#fde9eb);border-color:#e9b8bd}
.works-section-methods .works-method-table-wrap{border-color:#f0dcde}.works-section-methods .works-method-table th{background:#fff0f2;color:#79232b}.works-section-methods .works-method-table td{border-top-color:#f5e7e8}.works-section-methods .works-method-table tbody tr:hover{background:#fff8f8}
.works-section-methods .works-method-pill{background:#fdebed;color:#9d2631;border-color:#efc5c9}
.works-section-methods .works-methods-summary{border-color:#ebc7ca;background:linear-gradient(135deg,#fff2f3,#fff);color:#76565a}.works-section-methods .works-methods-summary b{color:#801f29}

/* ===========================================================
   V115 — أزرار «إضافة»/«متعذرة» داخل قائمة الزيارات المتأخرة
   (لوحة المتابعة → بطاقة الزيارات المتأخرة → dashOverdueModal)
   =========================================================== */
.dash-overdue-table th, .dash-overdue-table td{ text-align:center; vertical-align:middle; }
.dash-overdue-actions{ display:flex; gap:6px; justify-content:center; flex-wrap:wrap; }
.dash-overdue-btn{
  border:none; border-radius:8px; padding:5px 10px; font-size:.74rem; font-weight:700;
  cursor:pointer; font-family:inherit; white-space:nowrap;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.dash-overdue-btn:hover{ transform:translateY(-2px); }
.dash-overdue-add{ background:#E8F4EC; color:#1F7A43; }
.dash-overdue-add:hover{ background:#D8EEDF; box-shadow:0 4px 10px rgba(31,122,67,.18); }
.dash-overdue-block{ background:#FCEAEA; color:#B3382C; }
.dash-overdue-block:hover{ background:#F8DADA; box-shadow:0 4px 10px rgba(179,56,44,.18); }

/* ===========================================================
   V135.14 — لوحة عمل يومية موحّدة (الرئيسية الجديدة لحساب المشرف).
   هوية بصرية موروثة بالكامل من بطاقات .panel-card/.dash-kpi-card
   القائمة (نفس الألوان --navy/--gold/--paper/--line، نفس الحواف
   والتباعد) — لا هوية جديدة، فقط تخطيط جديد. */
.dash-wb-cards{
  display:grid; grid-template-columns:repeat(5,1fr); gap:12px;
  margin-bottom:18px;
}
.dash-wb-card{
  background:#fff; border:1px solid var(--line); border-radius:14px;
  padding:14px 14px 12px; cursor:pointer; display:flex; flex-direction:column; gap:8px;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.dash-wb-card:hover{ transform:translateY(-3px); box-shadow:0 10px 22px rgba(22,35,63,.10); border-color:var(--gold); }
.dash-wb-card-icon{
  width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  color:#fff; flex:0 0 auto;
}
.dash-wb-card-icon svg{ width:18px; height:18px; }
.dash-wb-blue .dash-wb-card-icon{ background:#2563EB; }
.dash-wb-orange .dash-wb-card-icon{ background:#EA580C; }
.dash-wb-purple .dash-wb-card-icon{ background:#7C3AED; }
.dash-wb-green .dash-wb-card-icon{ background:#16A34A; }
.dash-wb-red .dash-wb-card-icon{ background:#DC2626; }
.dash-wb-card-num{ font-size:1.7rem; font-weight:900; color:var(--navy); line-height:1; }
.dash-wb-card-title{ font-size:.82rem; font-weight:800; color:var(--navy); }
.dash-wb-card-desc{ font-size:.72rem; color:var(--ink-soft); line-height:1.4; }
@media(max-width:1100px){ .dash-wb-cards{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:700px){ .dash-wb-cards{ grid-template-columns:repeat(2,1fr); } }

/* V135.21 — تنظيف الصفحة الرئيسية للمشرف الأول فقط: أصبحت بطاقاتها 4
   بدل 5 (حُذفت "التغطية الإشرافية" لأنها مكررة مع "ما يحتاج إجراء")،
   فتُوزَّع بالتساوي على 4 أعمدة بدل الـ5 الافتراضية في .dash-wb-cards
   العامة (المستخدَمة أيضًا في لوحة index.html القديمة المخفية — لم
   تُمَس قاعدتها الأصلية، هذا تخصيص إضافي بمعرِّف العنصر فقط). */
#hpHomeCards{ grid-template-columns:repeat(4,1fr); }
@media(max-width:700px){ #hpHomeCards{ grid-template-columns:repeat(2,1fr); } }
/* بطاقة بقيمة 0: تعتيم خفيف فقط (هدوء بصري) بلا تغيير لونها أو حذفها،
   حتى لا يتحرك تخطيط الصف عند تغيّر الأعداد. */
.dash-wb-card-quiet{ opacity:.55; }
.dash-wb-card-quiet:hover{ opacity:.85; }

.dash-wb-grid{ display:grid; grid-template-columns:2fr 1fr; gap:16px; align-items:start; margin-bottom:20px; }
@media(max-width:900px){ .dash-wb-grid{ grid-template-columns:1fr; } }
.dash-wb-main{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.dash-wb-side{ display:flex; flex-direction:column; gap:16px; min-width:0; }
.dash-wb-viewall{
  background:none; border:0; color:var(--gold); font-weight:800; font-size:.78rem; cursor:pointer; padding:4px 2px;
}
.dash-wb-viewall:hover{ text-decoration:underline; }

.dash-wb-task-row{
  display:flex; align-items:flex-start; gap:10px; padding:11px 6px; border-bottom:1px solid var(--line);
}
.dash-wb-task-row:last-child{ border-bottom:0; }
.dash-wb-task-icon{
  width:30px; height:30px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  color:#fff; flex:0 0 auto; font-size:.85rem;
}
.dash-wb-task-tier-late .dash-wb-task-icon{ background:#DC2626; }
.dash-wb-task-tier-action .dash-wb-task-icon{ background:#EA580C; }
.dash-wb-task-tier-today .dash-wb-task-icon{ background:#2563EB; }
.dash-wb-task-tier-upcoming .dash-wb-task-icon{ background:#16A34A; }
.dash-wb-task-body{ flex:1; min-width:0; }
.dash-wb-task-title{ font-weight:800; font-size:.85rem; color:var(--navy); }
.dash-wb-task-meta{ font-size:.73rem; color:var(--ink-soft); margin-top:2px; }
.dash-wb-task-btn{
  flex:0 0 auto; border:0; border-radius:8px; padding:6px 12px; font-size:.72rem; font-weight:800; color:#fff; cursor:pointer;
  white-space:nowrap;
}
.dash-wb-task-tier-late .dash-wb-task-btn{ background:#DC2626; }
.dash-wb-task-tier-action .dash-wb-task-btn{ background:#EA580C; }
.dash-wb-task-tier-today .dash-wb-task-btn{ background:#2563EB; }
.dash-wb-task-tier-upcoming .dash-wb-task-btn{ background:#16A34A; }
.dash-wb-task-btn:hover{ opacity:.88; }
.dash-wb-empty{ padding:18px 6px; color:var(--ink-soft); font-size:.82rem; text-align:center; }

.dash-wb-notif-row{ display:flex; align-items:flex-start; gap:9px; padding:9px 6px; border-bottom:1px solid var(--line); font-size:.78rem; }
.dash-wb-notif-row:last-child{ border-bottom:0; }
.dash-wb-notif-dot{ width:8px; height:8px; border-radius:50%; margin-top:5px; flex:0 0 auto; background:var(--gold); }
.dash-wb-notif-body{ flex:1; min-width:0; cursor:pointer; }
.dash-wb-notif-title{ font-weight:700; color:var(--navy); }
.dash-wb-notif-time{ color:var(--ink-soft); font-size:.7rem; margin-top:2px; }

.dash-wb-cal-head{ display:flex; align-items:center; justify-content:space-between; padding:2px 2px 8px; }
.dash-wb-cal-head h3{ font-size:.86rem; color:var(--navy); margin:0; }
.dash-wb-cal-head button{
  width:26px; height:26px; border-radius:50%; border:1px solid var(--line); background:#fff; color:var(--navy);
  cursor:pointer; font-size:.95rem; line-height:1;
}
.dash-wb-cal-head button:hover{ border-color:var(--gold); color:var(--gold); }
.dash-wb-cal-weekdays, .dash-wb-cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.dash-wb-cal-weekdays{ margin-bottom:4px; }
.dash-wb-cal-weekdays span{ text-align:center; font-size:.66rem; color:var(--ink-soft); font-weight:800; }
.dash-wb-cal-day{
  position:relative; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  border-radius:8px; font-size:.72rem; color:var(--ink); cursor:pointer; gap:2px;
}
.dash-wb-cal-day:hover{ background:var(--paper); }
.dash-wb-cal-day.dash-wb-cal-empty{ cursor:default; }
.dash-wb-cal-day.dash-wb-cal-today{ background:var(--navy); color:#fff; font-weight:800; }
.dash-wb-cal-dots{ display:flex; gap:2px; position:absolute; bottom:3px; }
.dash-wb-cal-dots span{ width:4px; height:4px; border-radius:50%; }
.dash-wb-cal-day-body{ margin-top:8px; border-top:1px solid var(--line); padding-top:8px; font-size:.76rem; color:var(--ink-soft); }
.dash-wb-cal-day-body .dash-wb-task-row{ padding:7px 2px; }

.dash-wb-quick-grid{ display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.dash-wb-quick-btn{
  display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 6px; border-radius:12px;
  border:1px solid var(--line); background:#fff; cursor:pointer; color:var(--navy); font-size:.74rem; font-weight:700;
  transition:border-color .18s ease, transform .18s ease;
}
.dash-wb-quick-btn:hover{ border-color:var(--gold); transform:translateY(-2px); }
.dash-wb-quick-btn svg{ width:19px; height:19px; color:var(--gold); }

/* ===========================================================
   V118 — تثبيت رؤوس أعمدة جدول الزيارات المتأخرة أثناء التمرير
   داخل نافذته. الحاوية التي تُمرَّر فعليًا هي .plan-modal-box
   (overflow:auto)؛ .table-wrap الافتراضي به overflow:auto أيضًا
   فيُنشئ سياق التصاق منفصلاً يمنع thead من الالتصاق بمنفذ العرض
   الحقيقي — نفس الإصلاح المعتمَد أصلاً لجدول "بيانات المعلمين"
   (انظر [data-teachers-panel="filter"] .table-wrap أعلاه). position:
   sticky نفسه موروث تلقائيًا من قاعدة .data-table thead th العامة،
   فلا حاجة لتكراره هنا. */
#dashOverdueBody .table-wrap{ overflow:visible; }
