/* =========================================================================
   OrgChart — مكوّن الهيكل التنظيمي  v2.0
   شركة قوة الدعم للخدمات المساندة
   ملف مستقل بلا أي مكتبات خارجية — يدعم RTL والوضع الداكن والطباعة.
   كل الأسماء مسبوقة بـ oc- حتى لا تتعارض مع تنسيقات موقعك.
   ========================================================================= */

.oc{
  /* ——— غيّر هذه المتغيّرات لتتناسب مع هوية موقعك ——— */
  --oc-brand:#23597D;
  --oc-brand-deep:#16405C;
  --oc-brand-soft:#E8F0F6;
  --oc-brand-line:#BFD6E6;
  --oc-gold:#B5822F;
  --oc-danger:#A6332B;
  --oc-ink:#0E1D28;
  --oc-ink-2:#3C5164;
  --oc-ink-3:#6C8091;
  --oc-ink-4:#9AABB8;
  --oc-surface:#FFFFFF;
  --oc-surface-2:#FAFBFC;
  --oc-line:#DEE5EA;
  --oc-line-soft:#EDF1F4;
  --oc-radius:10px;

  --oc-node-w:212px;
  --oc-node-h:74px;

  --oc-sans:"IBM Plex Sans Arabic","Segoe UI",system-ui,sans-serif;
  --oc-display:"Tajawal","IBM Plex Sans Arabic",system-ui,sans-serif;
  --oc-mono:"IBM Plex Mono",ui-monospace,monospace;

  direction:rtl;
  font-family:var(--oc-sans);
  color:var(--oc-ink);
  font-size:14px;
  line-height:1.7;
}

/* وضع داكن — تلقائي حسب النظام، أو يدويًا بـ class="oc oc-dark" / "oc oc-light" */
@media (prefers-color-scheme: dark){
  .oc:not(.oc-light){
    --oc-brand:#5FA3D0; --oc-brand-deep:#8FC3E6; --oc-brand-soft:#152B3A; --oc-brand-line:#2B4E68;
    --oc-gold:#D9A85A; --oc-danger:#E8827A;
    --oc-ink:#E6EDF3; --oc-ink-2:#B4C4D0; --oc-ink-3:#8A9DAC; --oc-ink-4:#63788A;
    --oc-surface:#111E28; --oc-surface-2:#16242F; --oc-line:#243743; --oc-line-soft:#1B2C37;
  }
}
.oc.oc-dark{
  --oc-brand:#5FA3D0; --oc-brand-deep:#8FC3E6; --oc-brand-soft:#152B3A; --oc-brand-line:#2B4E68;
  --oc-gold:#D9A85A; --oc-danger:#E8827A;
  --oc-ink:#E6EDF3; --oc-ink-2:#B4C4D0; --oc-ink-3:#8A9DAC; --oc-ink-4:#63788A;
  --oc-surface:#111E28; --oc-surface-2:#16242F; --oc-line:#243743; --oc-line-soft:#1B2C37;
}

.oc *{box-sizing:border-box}

/* ——— شريط الأدوات ——— */
.oc-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}
.oc-btn{
  display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--oc-line);background:var(--oc-surface);
  border-radius:8px;padding:6.5px 12px;
  font:600 12.5px/1 var(--oc-sans);color:var(--oc-ink-2);
  cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}
.oc-btn:hover{border-color:var(--oc-brand);color:var(--oc-brand)}
.oc-btn:focus-visible{outline:2px solid var(--oc-brand);outline-offset:2px}
.oc-btn.oc-pri{background:var(--oc-brand);border-color:var(--oc-brand);color:#fff}
.oc-btn.oc-pri:hover{background:var(--oc-brand-deep);border-color:var(--oc-brand-deep);color:#fff}
.oc-btn.oc-sm{padding:4.5px 9px;font-size:11.5px}
.oc-btn.oc-danger:hover{border-color:var(--oc-danger);color:var(--oc-danger)}
.oc-btn[disabled]{opacity:.5;cursor:default;pointer-events:none}
.oc-zoomgrp{display:inline-flex;gap:4px}
.oc-pill{
  display:inline-block;font-size:11px;font-weight:600;white-space:nowrap;
  padding:3px 9px;border-radius:99px;
  background:var(--oc-brand-soft);color:var(--oc-brand-deep)}
.oc-hint{font-size:11.5px;color:var(--oc-ink-4);margin:8px 0 0;line-height:1.7}
.oc-link{
  background:none;border:none;padding:2px 0;margin-top:3px;text-align:start;
  font:600 11.5px/1.5 var(--oc-sans);color:var(--oc-brand);cursor:pointer;text-decoration:underline}
.oc-link[disabled]{color:var(--oc-ink-4);cursor:default;text-decoration:none}

.oc-search,.oc-sel-dept{
  border:1px solid var(--oc-line);background:var(--oc-surface);color:var(--oc-ink);
  border-radius:8px;padding:6.5px 10px;font:13px/1.4 var(--oc-sans);min-width:0}
.oc-search{width:210px}
.oc-sel-dept{width:160px}
.oc-search:focus,.oc-sel-dept:focus{outline:none;border-color:var(--oc-brand);box-shadow:0 0 0 3px rgba(35,89,125,.16)}

/* ——— مساحة الرسم ——— */
.oc-stage{
  position:relative;height:min(82vh,1000px);overflow:auto;direction:ltr;
  border:1px solid var(--oc-line);border-radius:var(--oc-radius);
  background:var(--oc-surface-2);
  background-image:radial-gradient(circle, rgba(154,171,184,.42) 1px, transparent 1px);
  background-size:22px 22px;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y}
.oc-zoomwrap{position:relative;direction:ltr;margin-inline:auto}
.oc-canvas{position:relative;direction:ltr;transform-origin:0 0}
.oc-stage svg{position:absolute;inset:0;pointer-events:none;overflow:visible}

/* ملء الشاشة */
.oc-stage.oc-full{
  position:fixed;inset:14px;height:auto!important;max-height:none;z-index:9000;
  border-radius:14px;box-shadow:0 30px 90px rgba(0,0,0,.45);background:var(--oc-surface)}
.oc-noscroll{overflow:hidden}
.oc-exit{position:fixed;top:26px;inset-inline-start:30px;z-index:9001;display:none}
.oc-noscroll .oc-exit{display:inline-flex}

/* ——— العقدة ——— */
.oc-node{
  position:absolute;
  width:var(--oc-node-w);min-height:var(--oc-node-h);
  border-radius:11px;padding:9px 13px;
  box-shadow:0 2px 6px rgba(0,0,0,.22);
  border:1px solid rgba(255,255,255,.22);
  user-select:none;-webkit-user-select:none;
  direction:rtl;text-align:right;
  display:flex;flex-direction:column;justify-content:center;
  transition:box-shadow .12s ease, transform .12s ease, opacity .15s ease}
.oc-editable .oc-node{cursor:grab}
.oc-editable .oc-node:active{cursor:grabbing}
.oc-node:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(0,0,0,.28)}
.oc-node.oc-sel{outline:2px solid var(--oc-ink);outline-offset:2px}
.oc-node.oc-dim{opacity:.22}
.oc-node .oc-d{font-size:10px;opacity:.82;line-height:1.3;margin-bottom:1px;
  display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oc-node .oc-t{font-family:var(--oc-display);font-weight:700;font-size:14.5px;line-height:1.35}
.oc-node .oc-n{font-size:12px;opacity:.9;margin-top:2px;line-height:1.4}
.oc-node .oc-c{
  position:absolute;top:-10px;right:-10px;
  background:#fff;color:#0E1D28;border-radius:99px;
  font-family:var(--oc-mono);font-size:11.5px;font-weight:700;padding:2px 9px;
  box-shadow:0 2px 6px rgba(0,0,0,.28)}

/* ——— تلميح المرور بالمؤشر ——— */
.oc-tip{
  position:absolute;bottom:calc(100% + 8px);right:0;
  background:var(--oc-ink);color:#fff;padding:9px 12px;border-radius:9px;
  font-size:11.5px;line-height:1.85;white-space:nowrap;
  box-shadow:0 10px 26px rgba(0,0,0,.3);
  opacity:0;visibility:hidden;transform:translateY(4px);
  transition:opacity .15s ease,transform .15s ease;
  pointer-events:none;z-index:80}
.oc-tip b{display:block;font-size:12.5px;margin-bottom:3px}
.oc-tip span{display:block;opacity:.85}
.oc-node:hover .oc-tip{opacity:1;visibility:visible;transform:translateY(0)}

/* ——— لوحات التعديل ——— */
.oc-edit{margin-top:12px;border:1px solid var(--oc-line);border-radius:var(--oc-radius);
  padding:13px;background:var(--oc-surface-2)}
.oc-edit-h{font-size:12px;font-weight:700;color:var(--oc-ink-2);margin:0 0 9px;
  display:flex;align-items:center;gap:8px}
.oc-edit-h::after{content:"";height:1px;background:var(--oc-line-soft);flex:1}
.oc-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}
.oc-f{display:flex;flex-direction:column;gap:5px}
.oc-f > label{font-size:12px;font-weight:600;color:var(--oc-ink-2)}
.oc-f input[type=text],.oc-f input[type=number],.oc-f select,.oc-edit input[type=text]{
  background:var(--oc-surface);border:1px solid var(--oc-line);border-radius:8px;
  padding:8px 10px;width:100%;font:13.5px/1.5 var(--oc-sans);color:var(--oc-ink)}
.oc-f input:focus,.oc-f select:focus,.oc-edit input:focus{outline:none;border-color:var(--oc-brand);
  box-shadow:0 0 0 3px rgba(35,89,125,.16)}
.oc-swatches{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.oc-sw{width:22px;height:22px;border-radius:6px;border:1px solid rgba(0,0,0,.15);cursor:pointer;padding:0;
  transition:transform .12s ease}
.oc-sw:hover{transform:scale(1.14)}
.oc-sw.on{outline:2px solid var(--oc-ink);outline-offset:2px}
.oc-edit input[type=color]{width:38px;height:26px;padding:0;border-radius:6px;
  border:1px solid var(--oc-line);background:none;cursor:pointer}
.oc-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.oc-grow{flex:1;min-width:180px}

/* جدول الإدارات */
.oc-tw{overflow-x:auto;border:1px solid var(--oc-line);border-radius:8px;background:var(--oc-surface)}
.oc-table{border-collapse:collapse;width:100%;font-size:13px;min-width:420px}
.oc-table th,.oc-table td{padding:7px 9px;text-align:start;border-bottom:1px solid var(--oc-line-soft);vertical-align:middle}
.oc-table thead th{background:var(--oc-surface-2);font-size:11px;font-weight:700;color:var(--oc-ink-2);white-space:nowrap}
.oc-table tbody tr:last-child td{border-bottom:none}
.oc-table td.oc-num{font-family:var(--oc-mono);text-align:center;color:var(--oc-ink-3)}
.oc-table .oc-empty{text-align:center;color:var(--oc-ink-4);font-size:12px;padding:16px}
.oc-dot{display:inline-block;width:14px;height:14px;border-radius:4px;border:1px solid rgba(0,0,0,.15)}
.oc-x{border:1px solid transparent;background:none;color:var(--oc-ink-4);cursor:pointer;
  border-radius:6px;width:26px;height:26px;display:inline-grid;place-items:center;font-size:16px;line-height:1}
.oc-x:hover{color:var(--oc-danger);background:rgba(166,51,43,.1)}

/* ——— الطباعة ——— */
@media print{
  .oc-bar,.oc-edit,.oc-exit,.oc-hint{display:none!important}
  .oc-stage{height:auto!important;overflow:visible;border:none;background:#fff}
  .oc-node{box-shadow:none;opacity:1!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ——— شاشات صغيرة ——— */
@media (max-width:640px){
  .oc-stage{height:460px}
  .oc-search,.oc-sel-dept{width:100%}
}
