/* =====================================================================
   نظام التصميم — منصة التدريب السيبراني
   الإشارة الكهرمانية (--signal) محجوزة لما يتطلب إجراءً من المستخدم فقط.
   ===================================================================== */
:root{
  --ink:#12303B; --ink-2:#1E4452; --teal:#0B7A84; --teal-2:#08646C; --teal-tint:#E4F2F3;
  --surface:#F3F6F7; --paper:#FFFFFF; --line:#D6E0E3; --muted:#5B6F77;
  --signal:#D99A1E; --signal-tint:#FBF1DC; --danger:#B23A3A; --ok:#2B7A57;
  --r-panel:10px; --r-ctl:8px; --r-pill:999px;
  --fs-xs:.8125rem; --fs-sm:.9375rem; --fs-md:1rem; --fs-lg:1.1875rem; --fs-xl:1.4375rem; --fs-2xl:1.75rem;
  --font:"Plex Arabic","Segoe UI",Tahoma,Arial,sans-serif;
  --bs-primary:#0B7A84; --bs-primary-rgb:11,122,132; --bs-link-color:#0B7A84; --bs-link-color-rgb:11,122,132;
  --bs-link-hover-color:#08646C; --bs-body-font-family:var(--font); --bs-body-color:#1B2B31; --bs-border-color:var(--line);
  --bs-body-bg:var(--surface);
}
html{ -webkit-text-size-adjust:100%; }
body{ font-family:var(--font)!important; background:var(--surface)!important; color:#1B2B31; line-height:1.65;
      font-size:var(--fs-md); min-height:100vh; }
h1,.h1{font-size:var(--fs-2xl)} h2,.h2{font-size:var(--fs-xl)} h3,.h3{font-size:var(--fs-lg)} h4,.h4,h5,.h5{font-size:var(--fs-md)}
h1,h2,h3,h4,h5,.h1,.h2,.h3{ color:var(--ink); font-weight:600; letter-spacing:0; line-height:1.35 }
h1,h2,h3,h4,h5,h6,.btn,.nav-link,.badge,.form-label,th{ font-family:var(--font)!important }
[lang=ar] h1,[lang=ar] h2,[lang=ar] h3{ letter-spacing:0!important }
a{ color:var(--teal) } a:hover{ color:var(--teal-2) }
img,video,canvas,iframe,svg{ max-width:100%; }
img,video{ height:auto; }
::selection{ background:var(--teal-tint) }

/* ---------- شريط التطبيق ---------- */
.app-bar{ background:var(--ink)!important; box-shadow:none!important; border-bottom:3px solid var(--ink-2); padding-block:.5rem; }
.app-bar .navbar-brand{ color:#fff!important; font-weight:600; font-size:var(--fs-md); gap:.55rem; }
.app-bar .navbar-brand img{ height:30px; width:30px; margin:0!important }
.app-bar .nav-link{ color:rgba(255,255,255,.82)!important; font-size:var(--fs-sm); border-radius:var(--r-ctl);
  padding:.45rem .7rem!important; display:flex; align-items:center; gap:.45rem; white-space:nowrap }
.app-bar .nav-link:hover,.app-bar .nav-link:focus-visible{ color:#fff!important; background:rgba(255,255,255,.08) }
.app-bar .nav-link.active,.app-bar .nav-link[aria-current=page]{ color:#fff!important; background:rgba(255,255,255,.14) }
.app-bar .nav-link.text-primary{ color:#9FE0E4!important }
.app-bar .navbar-toggler{ border-color:rgba(255,255,255,.35); padding:.35rem .55rem }
.app-bar .navbar-toggler-icon{ filter:invert(1) }
.app-bar .badge.bg-danger{ background:var(--signal)!important; color:var(--ink)!important; font-weight:700 }
.app-bar #lang-switcher-btn{ color:#fff; border-color:rgba(255,255,255,.4); border-radius:var(--r-pill); padding:.25rem .8rem }
.app-bar #lang-switcher-btn:hover{ background:#fff; color:var(--ink) }

/* ---------- لوحات ونماذج ---------- */
.card{ border:1px solid var(--line)!important; border-radius:var(--r-panel)!important; box-shadow:none!important; background:var(--paper) }
.card.shadow,.card.shadow-sm,.card.shadow-lg{ box-shadow:0 1px 0 rgba(18,48,59,.04)!important }
.card-header{ background:#F8FAFB!important; border-bottom:1px solid var(--line)!important; font-weight:600 }
.btn{ border-radius:var(--r-ctl); font-weight:500; min-height:38px }
.btn-sm{ min-height:32px }
.btn.rounded-pill{ border-radius:var(--r-pill) }
.btn-primary{ --bs-btn-bg:var(--teal); --bs-btn-border-color:var(--teal); --bs-btn-hover-bg:var(--teal-2); --bs-btn-hover-border-color:var(--teal-2);
  --bs-btn-active-bg:var(--teal-2); --bs-btn-disabled-bg:var(--teal); --bs-btn-disabled-border-color:var(--teal) }
.btn-outline-primary{ --bs-btn-color:var(--teal); --bs-btn-border-color:var(--teal); --bs-btn-hover-bg:var(--teal); --bs-btn-hover-border-color:var(--teal); --bs-btn-active-bg:var(--teal-2) }
.btn-warning{ --bs-btn-bg:var(--signal); --bs-btn-border-color:var(--signal); --bs-btn-color:var(--ink); --bs-btn-hover-bg:#C4881A; --bs-btn-hover-border-color:#C4881A }
.bg-primary{ background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity,1))!important } .text-primary{ color:var(--teal)!important } .border-primary{ border-color:var(--teal)!important }
.badge{ border-radius:var(--r-pill); font-weight:600; padding:.3em .65em }
.badge.bg-warning{ background:var(--signal-tint)!important; color:#7A5400!important; border:1px solid #EFD49C }
.form-control,.form-select{ border-radius:var(--r-ctl); border-color:#C6D3D7; min-height:40px }
.form-control:focus,.form-select:focus{ border-color:var(--teal); box-shadow:0 0 0 .2rem rgba(11,122,132,.18) }
.form-check-input:checked{ background-color:var(--teal); border-color:var(--teal) }
.alert{ border-radius:var(--r-ctl); border-width:1px }
.alert-warning{ background:var(--signal-tint); border-color:#EFD49C; color:#6B4A00 }
.alert-info{ background:var(--teal-tint); border-color:#BFE0E3; color:#0C4B52 }
.list-group-item{ border-color:var(--line) }
.progress{ background:#E3EAEC } .progress-bar{ background:var(--teal) }
.modal-content{ border-radius:var(--r-panel); border:1px solid var(--line) }
.dropdown-menu{ border-radius:var(--r-ctl); border-color:var(--line); box-shadow:0 8px 24px rgba(18,48,59,.12) }

/* ---------- الجداول ---------- */
.table{ --bs-table-bg:var(--paper); --bs-table-border-color:var(--line); border-color:var(--line); vertical-align:middle; margin-bottom:0 }
.table > thead th,.table thead.table-light th,.table thead.table-dark th{ background:#EEF3F4!important; color:var(--ink)!important;
  font-weight:600; font-size:var(--fs-sm); border-bottom:1px solid var(--line)!important; white-space:nowrap }
.table td{ font-size:var(--fs-sm) }
.table-striped > tbody > tr:nth-of-type(odd) > *{ --bs-table-bg-type:#F8FAFB }
.table-scroll{ width:100%; overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:var(--r-panel); background:var(--paper); margin-bottom:1rem }
.table-scroll > .table,.table-scroll > .table.table-bordered{ border-width:0 }

/* ---------- وصول ---------- */
:focus-visible{ outline:3px solid var(--signal)!important; outline-offset:2px }
.skip-link{ position:absolute; inset-inline-start:.5rem; top:-3rem; background:#fff; color:var(--ink); padding:.5rem 1rem; border-radius:var(--r-ctl); z-index:2000 }
.skip-link:focus{ top:.5rem }
@media (prefers-reduced-motion:reduce){ *{ animation:none!important; transition:none!important; scroll-behavior:auto!important } }

/* ---------- نافذة الخمول والتنبيهات ---------- */
#idleModal{ border:1px solid var(--line)!important; border-top:4px solid var(--signal)!important; border-radius:var(--r-panel)!important;
  box-shadow:0 12px 40px rgba(18,48,59,.25)!important; max-width:calc(100vw - 2rem) }
#idleModal .idle-title{ color:var(--ink)!important; font-weight:600 }
#idleModal .idle-counter{ color:var(--teal)!important }
.toast-custom{ background:var(--ink)!important; border-radius:var(--r-ctl)!important }

/* ---------- الموبايل ---------- */
@media (max-width: 1199.98px){
  .app-bar .navbar-collapse{ margin-top:.5rem; border-top:1px solid rgba(255,255,255,.12); padding-top:.35rem; max-height:calc(100vh - 70px); overflow-y:auto }
  .app-bar .nav-link{ padding:.75rem .6rem!important; font-size:var(--fs-md) }
  .app-bar .nav-item{ width:100% }
  .app-bar #lang-switcher-btn{ margin:.5rem 0; width:100%; justify-content:center; display:flex; gap:.4rem; padding:.55rem }
}
@media (max-width: 767.98px){
  body{ font-size:var(--fs-sm) }
  .container,.container-fluid,.container-lg,.container-md,.container-sm{ padding-inline:12px!important }
  .py-5{ padding-top:1.5rem!important; padding-bottom:1.5rem!important }
  .p-5{ padding:1.25rem!important } .px-5{ padding-inline:1rem!important }
  .display-1{ font-size:3rem } .display-4,.display-5,.display-6{ font-size:1.6rem }
  h1,.h1{ font-size:1.45rem } h2,.h2{ font-size:1.25rem }
  .form-control,.form-select,textarea,input{ font-size:16px!important }    /* يمنع تكبير iOS التلقائي */
  .btn{ min-height:44px } .btn-sm{ min-height:36px }
  .table td,.table th{ font-size:.875rem; padding:.5rem .55rem }
  .modal-dialog{ margin:.5rem }
  .d-flex.justify-content-between{ flex-wrap:wrap; gap:.5rem }
  .card-body{ padding:1rem }
  [style*="min-width"]{ min-width:0!important }
  .row > [class*="col-"]{ min-width:0 }
  pre,code{ white-space:pre-wrap; word-break:break-word }
}
@media print{ .app-bar,#idleModal,#toast-container,.skip-link{ display:none!important } body{ background:#fff!important } }
.app-bar .brand-mark{ width:30px; height:30px; background:#fff; border-radius:8px; padding:3px; margin:0!important }
.app-bar .navbar-brand img:not(.brand-mark){ filter:none }
.app-bar .dropdown-menu{ min-width:15rem }
.app-bar .dropdown-item{ padding:.55rem 1rem; display:flex; gap:.6rem; align-items:center }
.app-bar .dropdown-item:active{ background:var(--teal) }
#toast-container{ top:auto!important; bottom:1rem; }
@media (max-width: 767.98px){
  .btn{ height:auto!important; white-space:normal; }
  .add-event-btn,.return-to-calendar-btn{ display:inline-flex; }
}
/* عزل شريط التطبيق عن أنماط الصفحات التي تستهدف .container أو body عموماً */
.app-bar > .container,.app-bar > .container-fluid{ background:transparent!important; box-shadow:none!important; border:0!important; padding-top:0!important; padding-bottom:0!important; margin-top:0!important; margin-bottom:0!important }
.app-bar .navbar-brand,.app-bar .navbar-brand *{ color:#fff!important }

/* الشاشات المتوسطة: الشعار وحده حتى يتسع الشريط لقوائم المدربين ومدراء المجالات */
@media (min-width: 1200px) and (max-width: 1439.98px){
  .app-bar .navbar-brand .brand-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap }
  .app-bar .nav-link{ padding:.45rem .55rem!important }
}

.app-bar .notif-count{ font-size:.68rem; padding:.2em .45em; margin-inline-start:.15rem; vertical-align:top }

/* ===== اتجاه المحتوى المختلط (الإصدار 24) =====
   كل فقرة/خلية تأخذ اتجاهها من محتواها لا من لغة الواجهة: السؤال العربي يبقى صحيح الترقيم في الواجهة
   الإنجليزية، والنص الإنجليزي يبقى سليماً في الواجهة العربية. */
td, th, p, li, dd, dt, label, .card-title, .card-text, .list-group-item, .badge, .form-text, .t-item .title, .lib-item b,
h1, h2, h3, h4, h5, h6, .alert, .dropdown-item, .modal-body, .toast-body, blockquote, figcaption {
  unicode-bidi: plaintext;
}
td, th { text-align: start; }
/* التواريخ والأوقات لا تنقسم على سطرين */
.nowrap-date { white-space: nowrap; }

/* شريط أدوات موحّد للصفحات: أزرار بنفس الارتفاع في صف يلتف بانتظام، والعودة في الطرف المقابل */
.page-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; padding: .6rem .75rem;
  background: var(--paper, #F3F6F7); border: 1px solid var(--line, #D3DEE1); border-radius: 14px; }
.page-toolbar > .btn, .page-toolbar > form .btn, .page-toolbar > form label.btn { white-space: nowrap; display: inline-flex; align-items: center; gap: .35rem; }
.page-toolbar .toolbar-sep { width: 1px; align-self: stretch; background: var(--line, #D3DEE1); margin: 0 .25rem; }
.page-toolbar .toolbar-end { margin-inline-start: auto; }
@media (max-width: 575.98px) { .page-toolbar .toolbar-sep { display: none; } .page-toolbar .toolbar-end { margin-inline-start: 0; } }
.page-toolbar .btn { padding: .32rem .8rem; font-size: .9rem; }
.page-toolbar .badge { font-size: .7rem; }

/* =====================================================================
   توحيد الثيم (v30): لوحة ألوان Bootstrap الدلالية تتبع رموز المنصة،
   فتتطابق الشاشات القديمة والجديدة دون تعديل كل قالب.
   ===================================================================== */
:root{
  --bs-success:#2B7A57; --bs-success-rgb:43,122,87; --bs-success-text-emphasis:#1B4F38; --bs-success-bg-subtle:#E3F1EA; --bs-success-border-subtle:#B5D8C5;
  --bs-danger:#B23A3A;  --bs-danger-rgb:178,58,58;  --bs-danger-text-emphasis:#6F2323; --bs-danger-bg-subtle:#F7E4E4; --bs-danger-border-subtle:#E5B7B7;
  --bs-warning:#D99A1E; --bs-warning-rgb:217,154,30; --bs-warning-text-emphasis:#6B4A00; --bs-warning-bg-subtle:#FBF1DC; --bs-warning-border-subtle:#EFD49C;
  --bs-info:#0B7A84;    --bs-info-rgb:11,122,132;    --bs-info-text-emphasis:#0C4B52; --bs-info-bg-subtle:#E4F2F3; --bs-info-border-subtle:#BFE0E3;
  --bs-secondary:#5B6F77; --bs-secondary-rgb:91,111,119; --bs-secondary-color:#5B6F77; --bs-secondary-bg:#EEF3F4;
  --bs-dark:#12303B; --bs-dark-rgb:18,48,59; --bs-light:#F3F6F7; --bs-light-rgb:243,246,247;
  --bs-primary-text-emphasis:#08646C; --bs-primary-bg-subtle:#E4F2F3; --bs-primary-border-subtle:#BFE0E3;
  --bs-emphasis-color:#12303B; --bs-heading-color:#12303B;
}
/* أزرار */
.btn-success{ --bs-btn-bg:var(--ok); --bs-btn-border-color:var(--ok); --bs-btn-color:#fff; }
.btn-success{ --bs-btn-hover-bg:#236349; --bs-btn-hover-border-color:#236349; --bs-btn-active-bg:#1E5740; --bs-btn-active-border-color:#1E5740; --bs-btn-disabled-bg:var(--ok); --bs-btn-disabled-border-color:var(--ok) }
.btn-danger{ --bs-btn-bg:var(--danger); --bs-btn-border-color:var(--danger); --bs-btn-hover-bg:#962F2F; --bs-btn-hover-border-color:#962F2F; --bs-btn-active-bg:#862929; --bs-btn-active-border-color:#862929; --bs-btn-disabled-bg:var(--danger); --bs-btn-disabled-border-color:var(--danger) }
.btn-info{ --bs-btn-bg:var(--teal-tint); --bs-btn-border-color:#BFE0E3; --bs-btn-color:#0C4B52; --bs-btn-hover-bg:#D3EAEC; --bs-btn-hover-border-color:#A9D3D7; --bs-btn-hover-color:#0C4B52; --bs-btn-active-bg:#C4E3E6; --bs-btn-active-color:#0C4B52 }
.btn-secondary{ --bs-btn-bg:var(--muted); --bs-btn-border-color:var(--muted); --bs-btn-hover-bg:#4A5D64; --bs-btn-hover-border-color:#4A5D64; --bs-btn-active-bg:#3F5057; --bs-btn-disabled-bg:var(--muted); --bs-btn-disabled-border-color:var(--muted) }
.btn-dark{ --bs-btn-bg:var(--ink); --bs-btn-border-color:var(--ink); --bs-btn-hover-bg:var(--ink-2); --bs-btn-hover-border-color:var(--ink-2); --bs-btn-active-bg:var(--ink-2) }
.btn-light{ --bs-btn-bg:#fff; --bs-btn-border-color:var(--line); --bs-btn-color:var(--ink); --bs-btn-hover-bg:var(--surface); --bs-btn-hover-border-color:#C6D3D7; --bs-btn-hover-color:var(--ink) }
.btn-outline-success{ --bs-btn-color:var(--ok); --bs-btn-border-color:var(--ok); --bs-btn-hover-bg:var(--ok); --bs-btn-hover-border-color:var(--ok); --bs-btn-active-bg:#236349; --bs-btn-active-border-color:#236349 }
.btn-outline-danger{ --bs-btn-color:var(--danger); --bs-btn-border-color:var(--danger); --bs-btn-hover-bg:var(--danger); --bs-btn-hover-border-color:var(--danger); --bs-btn-active-bg:#962F2F; --bs-btn-active-border-color:#962F2F }
.btn-outline-secondary{ --bs-btn-color:var(--muted); --bs-btn-border-color:#B8C6CB; --bs-btn-hover-bg:var(--muted); --bs-btn-hover-border-color:var(--muted); --bs-btn-active-bg:#4A5D64; --bs-btn-active-border-color:#4A5D64 }
.btn-outline-info{ --bs-btn-color:var(--teal); --bs-btn-border-color:var(--teal); --bs-btn-hover-bg:var(--teal); --bs-btn-hover-border-color:var(--teal); --bs-btn-hover-color:#fff }
.btn-outline-warning{ --bs-btn-color:#8A5F00; --bs-btn-border-color:var(--signal); --bs-btn-hover-bg:var(--signal); --bs-btn-hover-border-color:var(--signal); --bs-btn-hover-color:var(--ink) }
.btn-outline-dark{ --bs-btn-color:var(--ink); --bs-btn-border-color:var(--ink); --bs-btn-hover-bg:var(--ink); --bs-btn-hover-border-color:var(--ink) }
.btn-link{ --bs-btn-color:var(--teal); --bs-btn-hover-color:var(--teal-2) }
/* شارات وتنبيهات وخلفيات */
.badge.bg-success,.text-bg-success{ background:var(--ok)!important } .badge.bg-danger,.text-bg-danger{ background:var(--danger)!important }
.badge.bg-info,.text-bg-info{ background:var(--teal-tint)!important; color:#0C4B52!important; border:1px solid #BFE0E3 }
.badge.bg-secondary,.text-bg-secondary{ background:#EEF3F4!important; color:var(--muted)!important; border:1px solid var(--line) }
.badge.bg-dark,.text-bg-dark{ background:var(--ink)!important } .badge.bg-light,.text-bg-light{ background:#fff!important; color:var(--ink)!important; border:1px solid var(--line) }
.alert-success{ background:#E3F1EA; border-color:#B5D8C5; color:#1B4F38 } .alert-danger{ background:#F7E4E4; border-color:#E5B7B7; color:#6F2323 }
.alert-secondary,.alert-light{ background:#EEF3F4; border-color:var(--line); color:var(--ink) }
.bg-dark{ background-color:var(--ink)!important } .navbar.bg-dark,.navbar.bg-primary{ background-color:var(--ink)!important }
.bg-light{ background-color:#F8FAFB!important } .bg-secondary{ background-color:var(--muted)!important }
.card-header.bg-primary,.card-header.bg-success,.card-header.bg-info,.card-header.bg-secondary,.card-header.bg-dark,.card-header.bg-danger,.card-header.bg-warning{ background:var(--ink)!important; color:#fff!important }
.card-header.bg-light{ background:#F8FAFB!important; color:var(--ink)!important }
.text-muted,.text-secondary{ color:var(--muted)!important } .text-dark{ color:var(--ink)!important }
.table-light{ --bs-table-bg:#EEF3F4; --bs-table-color:var(--ink); --bs-table-border-color:var(--line) }
.table-dark{ --bs-table-bg:var(--ink); --bs-table-border-color:var(--ink-2) }
.table-hover > tbody > tr:hover > *{ --bs-table-bg-state:#F1F7F8 }
.page-link{ color:var(--teal) } .page-item.active .page-link{ background:var(--teal); border-color:var(--teal) }
.nav-pills .nav-link.active,.nav-pills .show > .nav-link{ background:var(--teal) } .nav-tabs .nav-link.active{ color:var(--ink); border-color:var(--line) var(--line) #fff }
.form-switch .form-check-input:checked{ background-color:var(--teal); border-color:var(--teal) }
.form-range::-webkit-slider-thumb{ background:var(--teal) }
.list-group-item.active{ background:var(--teal); border-color:var(--teal) }
.accordion-button:not(.collapsed){ background:var(--teal-tint); color:var(--ink) }
.dropdown-item.active,.dropdown-item:active{ background:var(--teal) }
.border-success{ border-color:var(--ok)!important } .border-danger{ border-color:var(--danger)!important }

/* الأزرار والشارات والروابط داخل أدوات التقويم لا تُسطَّر، وجداول المنصة بلا ظلال قديمة */
a.btn,.btn a,.nav-link,.dropdown-item,.page-link,.badge,.fc a,.fc-theme-standard a{ text-decoration:none }
a.btn:hover{ text-decoration:none }
.table-responsive,.table-scroll{ box-shadow:none!important }
