/* =============================================================================
   العلامة السابعة — قشرة النظام
   يبني على tokens.css ولا يعرّف لوناً واحداً خارجه.
   ============================================================================= */

/* ---------------- الشريط العلوي ---------------- */
.topbar{
  display:flex;align-items:center;gap:var(--sp-5);
  padding:0 var(--sp-5);height:58px;
  background:var(--surface);
  border-block-end:1px solid var(--line);
  position:sticky;inset-block-start:0;z-index:40;
}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);flex:none;}
.brand .logomark{width:30px;height:30px;color:var(--ink);}
:root[data-theme="dark"] .brand .logomark{color:var(--green);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand .logomark{color:var(--green);}}
.brand .wordmark{font-size:15px;}

.ex-switch{flex:1;max-width:340px;}
.ex-switch .field{padding:7px 10px;font-size:var(--fs-sm);}

.topbar-right{margin-inline-start:auto;display:flex;align-items:center;gap:6px;}
.icon-link{
  font-size:var(--fs-sm);font-weight:500;color:var(--muted);
  text-decoration:none;padding:6px 10px;border-radius:var(--r-sm);
}
.icon-link:hover{background:var(--surface-2);color:var(--ink);}

/* الشريط العلوي — أيقونات مضغوطة وشريحة مستخدم واضحة */
.brand .logoimg{height:34px;max-width:150px;object-fit:contain;display:block;}
.ex-switch{display:flex;align-items:center;gap:8px;}
.ex-lbl{font-size:var(--fs-xs);color:var(--faint);flex:none;}
.tb-ico{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;height:34px;padding:0 8px;border:0;background:none;cursor:pointer;
  font-size:15px;color:var(--muted);text-decoration:none;border-radius:var(--r-sm);
  font-family:inherit;
}
.tb-ico:hover{background:var(--surface-2);color:var(--ink);}
.tb-theme{font-size:var(--fs-xs);font-weight:600;}
.tb-ico .dot-count{position:absolute;top:1px;inset-inline-start:1px;}
.tb-sep{width:1px;height:22px;background:var(--line);margin-inline:4px;flex:none;}
.user-chip{
  display:inline-flex;align-items:center;gap:8px;padding:4px 12px 4px 8px;
  border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);
}
.user-chip .avatar{
  width:24px;height:24px;border-radius:50%;background:var(--green);color:#fff;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;flex:none;
}
.user-chip .u-name{font-size:var(--fs-sm);color:var(--ink);white-space:nowrap;
  display:inline-flex;align-items:center;gap:6px;}
.tb-out{
  font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-decoration:none;
  padding:7px 12px;border:1px solid var(--line);border-radius:var(--r-sm);
}
.tb-out:hover{color:var(--st-late-ink);border-color:var(--st-late);background:var(--st-late-soft);}
@media (max-width:820px){.user-chip .u-name{display:none;}.ex-lbl{display:none;}}

/* شعار صفحة الدخول الرئيسي */
.auth-logo-main{display:flex;justify-content:center;margin-block-end:14px;}
.auth-logo-main img{max-height:84px;max-width:240px;object-fit:contain;}
.auth-brand-center{justify-content:center;text-align:center;}
.dot-count{
  font-family:var(--font-num);font-size:10.5px;
  background:var(--st-late);color:#fff;border-radius:var(--r-pill);
  padding:1px 6px;margin-inline-start:4px;
}
.who{font-size:var(--fs-sm);color:var(--ink);display:flex;align-items:center;gap:6px;}
.tag-admin{
  font-style:normal;font-size:10.5px;font-weight:600;
  background:var(--st-gate-soft);color:var(--st-gate-ink);
  padding:2px 7px;border-radius:var(--r-pill);
}

/* ---------------- الهيكل ---------------- */
.shell{display:grid;grid-template-columns:216px 1fr;min-height:calc(100vh - 58px);}
.sidebar{
  border-inline-end:1px solid var(--line);
  padding:var(--sp-4) var(--sp-3);
  background:var(--surface);
  position:sticky;inset-block-start:58px;align-self:start;
  max-height:calc(100vh - 58px);overflow-y:auto;
}
.nav-group{
  font-size:var(--fs-xs);font-weight:600;color:var(--faint);
  padding:var(--sp-4) 10px var(--sp-2);
}
.nav-item{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:var(--r-sm);
  font-size:var(--fs-sm);color:var(--muted);text-decoration:none;
}
.nav-item:hover{background:var(--surface-2);color:var(--ink);}
.nav-item.active{background:var(--st-ok-soft);color:var(--st-ok-ink);font-weight:600;}
.nav-no{
  font-family:var(--font-num);font-size:10.5px;
  width:18px;height:18px;flex:none;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong);border-radius:5px;
}

.content{padding:var(--sp-5) var(--sp-6);max-width:1240px;}

/* ---------------- رأس الصفحة ---------------- */
.page-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:var(--sp-4);margin-block-end:var(--sp-5);flex-wrap:wrap;
}
.page-head h1{font-size:var(--fs-h1);}
.page-sub{color:var(--muted);font-size:var(--fs-sm);margin:6px 0 0;}
.page-actions{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;}
.hint{font-size:var(--fs-xs);color:var(--faint);}
.sub-h{font-size:var(--fs-h3);margin-block:var(--sp-5) var(--sp-3);display:flex;align-items:center;gap:8px;}

/* ---------------- اللوحات ---------------- */
.panel{margin-block-end:var(--sp-5);overflow:hidden;}
.panel-head{
  display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);
  border-block-end:1px solid var(--line);background:var(--surface-2);
}
.panel-head h2{font-size:var(--fs-h3);}
.panel-body{padding:var(--sp-4);}
.panel-foot{
  padding:var(--sp-3) var(--sp-4);border-block-start:1px solid var(--line);
  display:flex;gap:var(--sp-2);align-items:center;justify-content:flex-end;flex-wrap:wrap;
}
.form-panel.narrow{max-width:620px;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4);}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);}
.stack{display:flex;flex-direction:column;gap:var(--sp-3);}

/* ---------------- الأرقام السريعة ---------------- */
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-3);margin-block-end:var(--sp-5);}
.stat{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:var(--sp-4);
}
.stat-n{font-family:var(--font-num);font-size:26px;font-weight:600;display:block;line-height:1.1;}
.stat-l{font-size:var(--fs-xs);color:var(--muted);display:block;margin-block-start:6px;}
.stat.is-late .stat-n{color:var(--st-late);}

/* ---------------- النماذج ---------------- */
.lbl{display:block;font-size:var(--fs-sm);font-weight:500;margin-block-end:var(--sp-3);}
.lbl .field{margin-block-start:6px;}
.lbl .hint{display:block;margin-block-start:4px;}
.field-xs{padding:5px 8px;font-size:var(--fs-xs);}
select.field{background:var(--surface);}
textarea.field{resize:vertical;font-family:var(--font-body);line-height:1.7;}
.btn-block{width:100%;justify-content:center;}
.btn-xs{padding:4px 9px;font-size:var(--fs-xs);}
.btn[disabled]{opacity:.45;cursor:not-allowed;}
.inline-form{display:inline-flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0;}
.hidden-form{display:none;}
.filter-bar{
  display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;
  padding:var(--sp-3) var(--sp-4);border-block-end:1px solid var(--line);
}
.filter-bar .field{width:auto;min-width:130px;}

/* ---------------- الجداول ---------------- */
.table-wrap{overflow-x:auto;}
.col-act{width:1%;white-space:nowrap;text-align:end;}
.t-link{color:var(--ink);text-decoration:none;border-block-end:1px solid var(--line-strong);}
.t-link:hover{color:var(--st-ok-ink);border-color:currentColor;}
.t-muted{color:var(--muted);}
.t-faint{color:var(--faint);}
.t-late{color:var(--st-late-ink);}
.empty{color:var(--faint);text-align:center;padding:var(--sp-5);font-size:var(--fs-sm);}
.mini-tag{
  font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;
  margin-inline-start:6px;white-space:nowrap;
  background:var(--st-idle-soft);color:var(--st-idle-ink);
}
.mini-tag.is-late{background:var(--st-late-soft);color:var(--st-late-ink);}
.mini-tag.is-warn{background:var(--st-warn-soft);color:var(--st-warn-ink);}
.mini-tag.is-gate{background:var(--st-gate-soft);color:var(--st-gate-ink);}
.audit-val{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.windows-table td{vertical-align:top;}
.windows-table .field{margin-block-end:4px;}

/* ---------------- صحة المراحل ---------------- */
.health-list{display:flex;flex-direction:column;gap:var(--sp-5);}
.health-head{display:flex;align-items:center;gap:var(--sp-2);margin-block-end:8px;}
.health-name{font-weight:600;font-size:var(--fs-body);}
.health-nums{margin-inline-start:auto;color:var(--muted);}
.health-meta{
  display:flex;gap:var(--sp-4);flex-wrap:wrap;
  font-size:var(--fs-xs);color:var(--muted);margin-block-start:8px;
}
.health-note{font-size:var(--fs-xs);margin:8px 0 0;}
.window-bar.mini{height:5px;margin-block-start:4px;max-width:120px;}

/* ---------------- التنبيهات والرسائل ---------------- */
.flash{
  padding:12px 16px;border-radius:var(--r-sm);margin-block-end:var(--sp-4);
  font-size:var(--fs-sm);border-inline-start:3px solid var(--st-ok);
  background:var(--st-ok-soft);color:var(--st-ok-ink);
}
.flash.is-warn{border-color:var(--st-warn);background:var(--st-warn-soft);color:var(--st-warn-ink);}
.flash.is-late{border-color:var(--st-late);background:var(--st-late-soft);color:var(--st-late-ink);}
.flash.is-gate{border-color:var(--st-gate);background:var(--st-gate-soft);color:var(--st-gate-ink);}
.note{
  border-inline-start:3px solid var(--line-strong);background:var(--surface-2);
  padding:12px 16px;border-radius:var(--r-xs);font-size:var(--fs-sm);
  color:var(--muted);margin-block:var(--sp-3) 0;line-height:1.75;
}
.note.is-warn{border-color:var(--st-warn);background:var(--st-warn-soft);color:var(--st-warn-ink);}
.note.is-late{border-color:var(--st-late);background:var(--st-late-soft);color:var(--st-late-ink);}

.notif-list{display:flex;flex-direction:column;}
.notif{
  display:flex;gap:var(--sp-3);align-items:flex-start;
  padding:var(--sp-3) var(--sp-4);border-block-end:1px solid var(--line);
}
.notif.unread{background:var(--surface-2);}
.notif-body{flex:1;}
.notif-title{font-weight:600;font-size:var(--fs-sm);color:var(--ink);text-decoration:none;}
.notif-body p{margin:4px 0 0;font-size:var(--fs-xs);color:var(--muted);}

/* ---------------- المعالج ---------------- */
.stepper{
  display:flex;gap:1px;list-style:none;padding:0;margin:0 0 var(--sp-5);
  background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
}
.stepper-item{flex:1;background:var(--surface);}
.stepper-item > *{
  display:flex;align-items:center;gap:8px;padding:12px 14px;
  font-size:var(--fs-xs);color:var(--muted);text-decoration:none;
}
.stepper-item.active > *{background:var(--st-ok-soft);color:var(--st-ok-ink);font-weight:600;}
.stepper-item.done > *{color:var(--ink);}
.stepper-n{
  width:20px;height:20px;flex:none;border-radius:var(--r-pill);
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong);font-size:10.5px;
}
.stepper-item.active .stepper-n{background:var(--st-ok);color:#fff;border-color:transparent;}
.team-block{padding-block-end:var(--sp-4);border-block-end:1px solid var(--line);margin-block-end:var(--sp-4);}
.team-block:last-child{border:0;margin:0;}
.add-row{align-items:end;}
.launch-panel{border-color:var(--line-strong);}
.launch-list{margin:var(--sp-3) 0 0;padding-inline-start:var(--sp-5);font-size:var(--fs-sm);color:var(--muted);line-height:1.9;}

/* ---------------- الأدوار ---------------- */
.roles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-4);}
.role-card .panel-body{padding-block:var(--sp-3);}
.perm-group{margin-block-start:10px;font-size:var(--fs-xs);}
.perm-g{display:block;font-weight:600;color:var(--ink);}
.perm-n{color:var(--muted);line-height:1.7;}

/* ---------------- المهمة ---------------- */
.kv{display:grid;grid-template-columns:auto 1fr;gap:8px var(--sp-4);margin:0;font-size:var(--fs-sm);}
.kv dt{color:var(--muted);}
.kv dd{margin:0;}
.task-desc{margin-block-start:var(--sp-4);font-size:var(--fs-sm);color:var(--muted);line-height:1.85;}

/* ---------------- الحالات الفارغة والدخول ---------------- */
.empty-state{
  max-width:560px;margin:var(--sp-8) auto;text-align:center;
}
.empty-state h1{font-size:var(--fs-h1);margin-block-end:var(--sp-3);}
.empty-state p{color:var(--muted);font-size:var(--fs-body);line-height:1.85;}
.empty-state .btn{margin-block-start:var(--sp-4);}

body.bare{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-5);}
.bare-wrap{width:100%;max-width:420px;}
.auth-card{
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:var(--sp-6);
}
.auth-card h1{font-size:var(--fs-h2);margin-block-end:var(--sp-4);}
.auth-brand{display:flex;align-items:center;gap:12px;margin-block-end:var(--sp-6);}
.auth-brand .logomark{width:44px;height:44px;color:var(--ink);}
:root[data-theme="dark"] .auth-brand .logomark{color:var(--green);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .auth-brand .logomark{color:var(--green);}}
.auth-brand .wordmark{font-size:19px;}
.auth-sub{font-size:var(--fs-xs);color:var(--faint);margin-block-start:2px;}
.auth-foot{margin-block-start:var(--sp-5);font-size:var(--fs-xs);color:var(--faint);text-align:center;line-height:1.7;}

/* ---------------- التبويبات ---------------- */
.tabs{
  display:flex;gap:2px;margin-block-end:var(--sp-5);
  border-block-end:1px solid var(--line);flex-wrap:wrap;
}
.tab{
  padding:9px 16px;font-size:var(--fs-sm);font-weight:500;
  color:var(--muted);text-decoration:none;
  border-block-end:2px solid transparent;margin-block-end:-1px;
}
.tab:hover{color:var(--ink);}
.tab.active{color:var(--st-ok-ink);border-block-end-color:var(--st-ok);font-weight:600;}

/* ---------------- لوحة الصفقات (كانبان) ---------------- */
.kanban{
  display:grid;grid-template-columns:repeat(5,minmax(190px,1fr));
  gap:var(--sp-3);margin-block-end:var(--sp-5);
  overflow-x:auto;padding-block-end:var(--sp-2);
}
.kan-col{
  background:var(--surface-2);border:1px solid var(--line);
  border-radius:var(--r-md);display:flex;flex-direction:column;min-height:150px;
}
.kan-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 12px 4px;
}
.kan-title{font-weight:600;font-size:var(--fs-sm);}
.kan-count{
  font-size:11px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-pill);padding:1px 8px;color:var(--muted);
}
.kan-sum{
  padding:0 12px 10px;font-size:11.5px;color:var(--faint);
  border-block-end:1px solid var(--line);
}
.kan-body{padding:8px;display:flex;flex-direction:column;gap:8px;}
.kan-card{
  display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:10px 11px;text-decoration:none;color:var(--ink);
  transition:border-color .15s,transform .1s;
}
.kan-card:hover{border-color:var(--line-strong);transform:translateY(-1px);}
.kan-company{font-weight:600;font-size:13px;line-height:1.45;}
.kan-meta{display:flex;gap:5px;flex-wrap:wrap;align-items:center;margin-block-start:5px;font-size:10.5px;color:var(--faint);}
.kan-meta .mini-tag{margin:0;}
.kan-amount{font-size:13px;font-weight:600;margin-block-start:7px;}
.kan-foot{display:flex;gap:8px;flex-wrap:wrap;font-size:10.5px;color:var(--faint);margin-block-start:6px;}
.kan-foot .num{font-size:10.5px;}
.kan-card .window-bar{margin-block-start:8px;height:4px;max-width:none;}
.kan-empty{text-align:center;color:var(--faint);padding:var(--sp-4) 0;margin:0;}

/* شريط تحصيل جزئي — نفس دلالة اللون: مكتمل أخضر، جارٍ كهرماني */
.window-bar > i.part{background:var(--st-warn);}

.stat-row-5{grid-template-columns:repeat(5,1fr);}

/* ---------------- مسار الحالات (الورشة، التركيب، المشتريات) ---------------- */
.flow-row{display:flex;gap:6px;flex-wrap:wrap;align-items:stretch;}
.flow-step{
  flex:1;min-width:88px;text-align:center;
  border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px 6px;background:var(--surface-2);
}
.flow-step.has{background:var(--st-ok-soft);border-color:transparent;}
.flow-step.has .flow-n,.flow-step.has .flow-l{color:var(--st-ok-ink);}
.flow-step.bad{background:var(--st-late-soft);border-color:transparent;}
.flow-step.bad .flow-n,.flow-step.bad .flow-l{color:var(--st-late-ink);}
.flow-n{font-family:var(--font-num);font-size:19px;font-weight:600;display:block;line-height:1.2;}
.flow-l{font-size:var(--fs-xs);color:var(--muted);display:block;margin-block-start:3px;}

/* نقاط الفحص في جدول التركيب */
.check-dot{
  display:inline-block;width:9px;height:9px;border-radius:50%;
  border:1px solid var(--line-strong);margin-inline-end:4px;
}
.check-dot.on{background:var(--st-ok);border-color:transparent;}
.check-row{display:flex;gap:6px;flex-wrap:wrap;margin-block-start:12px;}
.mini-tag.is-ok-tag{background:var(--st-ok-soft);color:var(--st-ok-ink);}
.chk{font-size:var(--fs-xs);color:var(--muted);display:inline-flex;align-items:center;gap:3px;}

/* ---------------- تقييم العميل المحتمل ---------------- */
.score{
  display:inline-flex;align-items:center;gap:4px;
  font-size:var(--fs-xs);font-weight:600;
  padding:3px 9px;border-radius:var(--r-pill);
  background:var(--st-idle-soft);color:var(--st-idle-ink);
}
.score.hot{background:var(--st-ok-soft);color:var(--st-ok-ink);}
.score.warm{background:var(--st-warn-soft);color:var(--st-warn-ink);}
.score.cold{background:var(--surface-2);color:var(--faint);}

/* ---------------- المحادثة ---------------- */
.chat{display:flex;flex-direction:column;gap:10px;padding:var(--sp-4);max-height:460px;overflow-y:auto;}
.msg{max-width:78%;border-radius:var(--r-md);padding:9px 13px;font-size:var(--fs-sm);line-height:1.7;}
.msg.in{align-self:flex-start;background:var(--surface-2);border:1px solid var(--line);}
.msg.out{align-self:flex-end;background:var(--st-ok-soft);color:var(--st-ok-ink);}
.msg-time{display:block;font-size:10px;opacity:.6;margin-block-start:4px;}

/* ---------------- مخطط المواقع ---------------- */
.booth-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;}
.booth{
  border:1px solid var(--line);border-radius:var(--r-sm);
  padding:10px 8px;text-align:center;background:var(--surface);
}
.booth.wanted{border-color:var(--st-warn);background:var(--st-warn-soft);}
.booth.crowded{border-color:var(--st-late);background:var(--st-late-soft);}
.booth.taken{background:var(--st-ok-soft);border-color:transparent;}
.booth-no{display:block;font-weight:600;font-size:13px;}
.booth-area{display:block;font-size:10.5px;color:var(--muted);margin-block-start:2px;}
.booth-tag{display:block;font-size:10px;margin-block-start:5px;color:var(--muted);}
.booth.taken .booth-tag{color:var(--st-ok-ink);font-weight:600;}
.booth.crowded .booth-tag{color:var(--st-late-ink);font-weight:600;}
.booth.wanted .booth-tag{color:var(--st-warn-ink);font-weight:600;}

/* ---------------- اللوحة الحيّة: الحضور بالساعة ---------------- */
.hours{display:flex;gap:6px;align-items:flex-end;height:170px;overflow-x:auto;padding-block-end:4px;}
.hour{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;
      min-width:38px;flex:1;height:100%;}
.hour-bar{width:100%;background:var(--st-ok);border-radius:var(--r-xs) var(--r-xs) 0 0;min-height:6px;}
.hour-n{font-family:var(--font-num);font-size:11px;color:var(--ink);margin-block-start:5px;}
.hour-l{font-family:var(--font-num);font-size:10px;color:var(--faint);}

/* ---------------- نتيجة المسح ---------------- */
.scan-result{
  display:flex;align-items:center;gap:var(--sp-4);
  padding:var(--sp-4) var(--sp-5);border-radius:var(--r-lg);
  margin-block-end:var(--sp-4);border:1px solid transparent;
}
.scan-result.in{background:var(--st-ok-soft);color:var(--st-ok-ink);}
.scan-result.out{background:var(--st-warn-soft);color:var(--st-warn-ink);}
.scan-result.bad{background:var(--st-late-soft);color:var(--st-late-ink);}
.scan-icon{
  font-size:34px;font-weight:700;line-height:1;width:58px;height:58px;flex:none;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;background:rgba(255,255,255,0.35);
}
:root[data-theme="dark"] .scan-icon{background:rgba(0,0,0,0.25);}
.scan-msg{font-size:var(--fs-sm);font-weight:600;}
.scan-name{font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.35;margin-block-start:3px;}
.scan-meta{font-size:var(--fs-xs);opacity:.85;margin-block-start:3px;}
.scan-form{display:flex;gap:var(--sp-3);align-items:flex-end;flex-wrap:wrap;}
.scan-form .lbl{margin:0;flex:1;min-width:190px;}
.scan-input{font-family:var(--font-num);font-size:19px;letter-spacing:0.06em;padding:12px 14px;}

/* =========================================================================
   محرر مخطط الصالة
   الرسم LTR دائماً: قلب الإحداثيات مع اتجاه الصفحة يجعل المخطط المطبوع
   لا يطابق الصالة.
   ========================================================================= */
.plan-shell{display:grid;grid-template-columns:300px 1fr;gap:var(--sp-4);align-items:start;}
.plan-side .panel{margin-block-end:var(--sp-3);}
.plan-side .panel-body{padding:var(--sp-3);}
.plan-side .lbl{margin-block-end:var(--sp-2);}
.btn-block{width:100%;justify-content:center;}

.plan-main{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;}
.plan-bar{
  display:flex;justify-content:space-between;align-items:center;gap:var(--sp-3);
  padding:10px var(--sp-4);background:var(--surface-2);border-block-end:1px solid var(--line);
  flex-wrap:wrap;
}
.plan-stats{display:flex;gap:var(--sp-4);flex-wrap:wrap;font-size:var(--fs-xs);color:var(--muted);}
.plan-stats b{color:var(--ink);}
.plan-zoom{display:flex;gap:4px;}

.plan-wrap{
  padding:12px;overflow:auto;max-height:72vh;
  background:var(--paper);direction:ltr;
  background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:16px 16px;
}
.plan-svg{display:block;margin-inline:auto;touch-action:none;color:var(--line-strong);}
.pl-floor{fill:var(--surface);}
.pl-grid{pointer-events:none;color:var(--line-strong);}

/* -----------------------------------------------------------------------------
   ألوان المخطط: قيم صريحة لا رموز الحالة الشفافة.
   رموز الحالة مصمَّمة لخلفيات الشارات، وشفافيتها 15% فوق أرضية داكنة تعطي
   فرقاً لا تراه العين — فتبدو الأجنحة ثقوباً سوداء لا أجساماً. والأجنحة
   متلاصقة ظهراً لظهر، فالحدّ وحده هو ما يفصلها بصرياً ولا بد أن يُرى.
   -------------------------------------------------------------------------- */
:root{
  --pl-fill-ready:#DCEFE4;    --pl-line-ready:#2F8F5E;    --pl-text-ready:#1A5C40;
  --pl-fill-sponsor:#E7E3FC;  --pl-line-sponsor:#6C5CE7;  --pl-text-sponsor:#41339E;
  --pl-fill-wanted:#FCEBD1;   --pl-line-wanted:#D98E1C;   --pl-text-wanted:#7A4E06;
  --pl-fill-taken:#E7E5E0;    --pl-line-taken:#9B9B96;    --pl-text-taken:#63635E;
  --pl-fill-fx:#DCDAD5;       --pl-line-fx:#8C8C87;       --pl-text-fx:#5C5C58;
  --pl-fill-column:#3A3F45;
  --pl-sel:#15181B;
}
:root[data-theme="dark"]{
  --pl-fill-ready:#204536;    --pl-line-ready:#4FC98A;    --pl-text-ready:#A6E7C5;
  --pl-fill-sponsor:#2E2856;  --pl-line-sponsor:#9C90F4;  --pl-text-sponsor:#C6BEFB;
  --pl-fill-wanted:#463714;   --pl-line-wanted:#E5AB48;   --pl-text-wanted:#F6D79C;
  --pl-fill-taken:#2C3138;    --pl-line-taken:#6E747C;    --pl-text-taken:#9AA0A8;
  --pl-fill-fx:#343A42;       --pl-line-fx:#7C838B;       --pl-text-fx:#AEB4BB;
  --pl-fill-column:#0C0F11;
  --pl-sel:#FBFAF7;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --pl-fill-ready:#204536;    --pl-line-ready:#4FC98A;    --pl-text-ready:#A6E7C5;
    --pl-fill-sponsor:#2E2856;  --pl-line-sponsor:#9C90F4;  --pl-text-sponsor:#C6BEFB;
    --pl-fill-wanted:#463714;   --pl-line-wanted:#E5AB48;   --pl-text-wanted:#F6D79C;
    --pl-fill-taken:#2C3138;    --pl-line-taken:#6E747C;    --pl-text-taken:#9AA0A8;
    --pl-fill-fx:#343A42;       --pl-line-fx:#7C838B;       --pl-text-fx:#AEB4BB;
    --pl-fill-column:#0C0F11;
    --pl-sel:#FBFAF7;
  }
}

/* الجناح بلا إطار — اللون يأتي مضمَّناً من ألوان الأدمن، والفصل بفجوة
   رفيعة يرسمها المحرّر تحاكي الجدار المشترك بين جناحين متلاصقين. */
.pl-booth rect{fill:var(--pl-fill-ready);stroke:none;shape-rendering:crispEdges;
               transition:filter .12s ease;}
.pl-booth text{fill:var(--pl-text-ready);text-anchor:middle;dominant-baseline:middle;
               font-family:var(--font-num);font-weight:600;pointer-events:none;}
.pl-booth .pl-sub{font-family:var(--font-body);font-weight:400;opacity:.85;}
.pl-booth{cursor:grab;}
.pl-booth:hover rect{filter:brightness(1.12);}
.pl-booth.is-drag{cursor:grabbing;}

/* مسطرة الأمتار وحوافّ المخطط */
.pl-rulers{pointer-events:none;}
.pl-rulers text{fill:var(--faint);font-family:var(--font-num);text-anchor:middle;}
.pl-rulers .pl-tick{stroke:var(--line-strong);stroke-width:0.06;}
.plan-wrap.is-panning{cursor:grabbing;}
.plan-wrap.is-panning .pl-booth{cursor:grabbing;}

/* قسم العقد في صفحة الصفقة — مسار حالة وصندوقا فعل واضحان */
.ct-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-block-end:14px;
  font-size:var(--fs-xs);}
.ct-step{padding:4px 13px;border-radius:100px;border:1px solid var(--line);color:var(--muted);
  background:var(--surface);white-space:nowrap;}
.ct-step.done{border-color:var(--st-ok);background:var(--st-ok-soft);color:var(--st-ok-ink);}
.ct-step.now{border-color:var(--green);background:var(--green-soft);
  color:var(--ink);font-weight:700;}
.ct-arr{color:var(--faint);}
.ct-boxes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-block-start:16px;}
@media (max-width:900px){.ct-boxes{grid-template-columns:1fr;}}
.ct-box{border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;}
.ct-box h3{margin:0 0 4px;font-size:var(--fs-sm);}
.ct-box .hint{display:block;margin-block-end:10px;}
.ct-sign{display:grid;grid-template-columns:1fr 150px auto;gap:10px;align-items:end;}
.ct-sign .lbl{margin:0;}
@media (max-width:700px){.ct-sign{grid-template-columns:1fr;}}
.ct-danger{margin-block-start:14px;border:1px solid var(--line);border-radius:var(--r-md);
  padding:10px 14px;}
.ct-danger summary{cursor:pointer;font-size:var(--fs-xs);color:var(--st-late-ink);font-weight:600;}
.ct-danger form{margin-block-start:10px;}

/* نموذج تسجيل الدفعة — شبكة معنونة لا حقولاً متراصّة بعرض الصفحة */
.pay-form{border-block-start:1px solid var(--line);padding:14px 16px 16px;
  display:flex;flex-direction:column;gap:12px;}
.pay-rem{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;}
.pay-rem h3{margin:0;font-size:var(--fs-h3);}
.pay-rem span{font-size:var(--fs-xs);color:var(--muted);}
.pay-rem b{font-size:var(--fs-body);color:var(--ink);}
.pay-grid{display:grid;grid-template-columns:130px 150px minmax(180px,1fr) 150px auto;
  gap:10px 12px;align-items:end;}
.pay-grid .lbl{margin:0;}
.pay-actions{display:flex;gap:8px;align-items:end;}
.pay-actions .btn{white-space:nowrap;}
@media (max-width:980px){
  .pay-grid{grid-template-columns:1fr 1fr;}
  .pay-actions{grid-column:1 / -1;justify-content:flex-end;}
}

.pl-sponsor_space rect{fill:var(--pl-fill-sponsor);}
.pl-sponsor_space text{fill:var(--pl-text-sponsor);}

/* وضع المبيعات: اللون يقول الإتاحة لا التصنيف */
.st-available rect{fill:var(--pl-fill-ready);}
.st-available text{fill:var(--pl-text-ready);}
.st-wanted rect{fill:var(--pl-fill-wanted);}
.st-wanted text{fill:var(--pl-text-wanted);}
.st-contracted rect{fill:var(--pl-fill-taken);}
.st-contracted text{fill:var(--pl-text-taken);}
.lg-wanted{background:var(--pl-fill-wanted);border:1px solid var(--pl-line-wanted);}
.tabs-sub{margin-block-end:var(--sp-3);}

.pl-booth.locked rect{fill:var(--pl-fill-taken);}
.pl-booth.locked text{fill:var(--pl-text-taken);}
.pl-booth.locked{cursor:not-allowed;}
.pl-lock{fill:var(--st-late) !important;font-weight:700;}

.pl-fx rect{fill:var(--pl-fill-fx);stroke:var(--pl-line-fx);stroke-width:0.1;}
.pl-fx text{fill:var(--pl-text-fx);text-anchor:middle;dominant-baseline:middle;
            font-family:var(--font-body);pointer-events:none;}
.pl-fx{cursor:grab;}
.pl-fx-column rect{fill:var(--pl-fill-column);stroke:var(--pl-fill-column);}
.pl-fx-entrance rect,.pl-fx-gate rect{fill:var(--pl-fill-wanted);stroke:var(--pl-line-wanted);}
.pl-fx-entrance text,.pl-fx-gate text{fill:var(--pl-text-wanted);}
.pl-fx-emergency rect{fill:var(--st-late-soft);stroke:var(--st-late);}
.pl-fx-emergency text{fill:var(--st-late-ink);}
.pl-fx-stage rect{fill:var(--pl-fill-sponsor);stroke:var(--pl-line-sponsor);}

[data-kind].is-sel rect{stroke-width:0.16;stroke:var(--ink);}
:root[data-theme="dark"] [data-kind].is-sel rect{stroke:var(--paper);}

.pl-insp-head{font-weight:600;font-size:var(--fs-sm);margin-block-end:var(--sp-3);}
.pl-tray-list{display:flex;flex-wrap:wrap;gap:6px;margin-block-start:8px;}
.pl-chip{
  font-family:var(--font-num);font-size:11px;padding:5px 9px;cursor:pointer;
  border:1px solid var(--st-ok);background:var(--st-ok-soft);color:var(--st-ok-ink);
  border-radius:var(--r-sm);display:inline-flex;gap:5px;align-items:center;
}
.pl-chip.pl-sponsor_space{border-color:var(--st-gate);background:var(--st-gate-soft);color:var(--st-gate-ink);}
.pl-chip span{opacity:.7;font-size:10px;}

.plan-legend{
  display:flex;gap:var(--sp-4);flex-wrap:wrap;align-items:center;
  padding:10px var(--sp-4);border-block-start:1px solid var(--line);
  font-size:var(--fs-xs);color:var(--muted);
}
.lg{width:11px;height:11px;border-radius:3px;display:inline-block;margin-inline-end:5px;vertical-align:-1px;}
.lg-ready{background:var(--pl-fill-ready);border:1px solid var(--pl-line-ready);}
.lg-sponsor{background:var(--pl-fill-sponsor);border:1px solid var(--pl-line-sponsor);}
.lg-locked{background:var(--pl-fill-taken);border:1px dashed var(--pl-line-taken);}
.lg-fx{background:var(--pl-fill-fx);border:1px solid var(--pl-line-fx);}

#planSave.is-dirty::after{content:' •';color:var(--st-warn);}

/* ------------------------------------------------------------------ CRM */
.tab-badge{display:inline-block;min-inline-size:18px;padding:0 5px;margin-inline-start:5px;
  border-radius:9px;background:var(--st-late);color:#fff;font-size:10px;line-height:17px;text-align:center;}

.fu-list{display:flex;flex-direction:column;}
.fu-card{border-block-start:1px solid var(--line);}
.fu-card:first-child{border-block-start:0;}
.fu-card > summary{display:grid;grid-template-columns:120px 72px 1fr 1.4fr 44px;gap:var(--sp-3);
  align-items:center;padding:11px var(--sp-4);cursor:pointer;list-style:none;}
.fu-card > summary::-webkit-details-marker{display:none;}
.fu-card > summary:hover{background:var(--surface-2);}
.fu-card.is-late > summary{border-inline-start:3px solid var(--st-late);}
.fu-card.is-warn > summary{border-inline-start:3px solid var(--st-warn);}
.fu-when{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--muted);}
.fu-ch{font-size:var(--fs-xs);color:var(--muted);}
.fu-who{display:flex;flex-direction:column;gap:1px;min-inline-size:0;}
.fu-who b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fu-who small{font-size:var(--fs-xs);}
.fu-title{font-size:var(--fs-sm);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fu-score{font-family:var(--font-num);font-size:var(--fs-xs);color:var(--muted);text-align:end;}
.fu-body{padding:0 var(--sp-4) var(--sp-4);background:var(--surface-2);}
.fu-contact{display:flex;flex-wrap:wrap;gap:6px;margin-block:10px;}
.fu-form{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);align-items:start;}
.fu-actions{grid-column:1 / -1;display:flex;gap:8px;}

.hook-box{padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--surface-2);margin-block-end:var(--sp-4);}
.form-map{border:1px solid var(--line);border-radius:var(--r-md);padding:10px var(--sp-3);
  margin-block-end:10px;background:var(--surface);}
.form-map > summary{cursor:pointer;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.btn.is-on{background:var(--surface-2);border-color:var(--line-strong);}

@media (max-width:900px){
  .fu-card > summary{grid-template-columns:1fr auto;grid-auto-rows:min-content;}
  .fu-title,.fu-ch{grid-column:1 / -1;}
  .fu-form{grid-template-columns:1fr;}
}

/* ------------------------------------------------- المستهدفون والبريد والتقرير */
.is-on > td{background:var(--surface-2);}
.rep-row{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-block-end:8px;}
.rep-row.rep-2{grid-template-columns:1fr 2fr;}
.rep-row.rep-pack{grid-template-columns:1.4fr .8fr .8fr 2fr;align-items:start;}
.chk-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-block-end:var(--sp-3);}
.mini-stats{display:flex;flex-wrap:wrap;gap:8px;margin-block-start:var(--sp-3);}
fieldset.bare{border:0;padding:0;margin:0;min-inline-size:0;}
fieldset.bare[disabled] .field{opacity:.65;}

.mail-shell{display:grid;gap:var(--sp-4);grid-template-columns:1fr 1fr;align-items:start;}
.mail-preview{padding:0;}
.mail-preview iframe{inline-size:100%;block-size:640px;border:0;display:block;background:#F4F3EF;}

.funnel-bars{display:flex;flex-direction:column;gap:var(--sp-3);}
.fb-head{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-sm);margin-block-end:6px;}
.fb-head span:first-child{flex:1;}
.fb-head b{font-family:var(--font-num);font-size:var(--fs-md);}
.fb-track{block-size:9px;border-radius:5px;background:var(--surface-2);overflow:hidden;}
.fb-fill{block-size:100%;border-radius:5px;background:linear-gradient(90deg,var(--st-ok),var(--st-gate));}

.spark{display:flex;align-items:flex-end;gap:3px;block-size:110px;}
.spark-col{flex:1;block-size:100%;display:flex;align-items:flex-end;}
.spark-bar{inline-size:100%;border-radius:3px 3px 0 0;background:var(--st-ok);opacity:.85;}
.spark-col:hover .spark-bar{opacity:1;background:var(--st-gate);}

.table-plain td{padding-block:7px;}
.table-plain td:last-child{text-align:end;}
.t-center{text-align:center;}

@media (max-width:1000px){
  .mail-shell{grid-template-columns:1fr;}
  .rep-row.rep-pack{grid-template-columns:1fr 1fr;}
}
@media print{
  .sidebar,.topbar,.tabs,.page-actions{display:none !important;}
  .panel{break-inside:avoid;}
}

/* ---------------------------------------------------------------- ألوان المخطط */
.color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--sp-3);}
.color-row{display:flex;align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);
           border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;}
.color-row:hover{border-color:var(--line-strong);}
.color-name{flex:1;font-size:var(--fs-sm);}
.color-dot{inline-size:44px;block-size:30px;padding:0;border:1px solid var(--line-strong);
           border-radius:var(--r-1);background:none;cursor:pointer;}
.color-hex{font-size:var(--fs-xs);color:var(--muted);}

.color-preview{display:flex;flex-wrap:wrap;gap:var(--sp-3);}
.cp-booth{inline-size:150px;min-block-size:82px;border-radius:6px;
          display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;}
.cp-booth b{font-family:var(--font-num);font-size:var(--fs-md);}
.cp-booth small{font-size:var(--fs-xs);opacity:.85;}

@media (max-width:1080px){
  .plan-shell{grid-template-columns:1fr;}
  .plan-wrap{max-height:60vh;}
}

/* ---------------- النموذج العام ---------------- */
.public-wrap{max-width:460px;}
.public-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-block-end:var(--sp-5);}
.public-brand .logomark{width:34px;height:34px;color:var(--ink);}
:root[data-theme="dark"] .public-brand .logomark{color:var(--green);}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .public-brand .logomark{color:var(--green);}}
.public-foot{text-align:center;font-size:var(--fs-xs);color:var(--faint);margin-block-start:var(--sp-5);}
/* حقل الشرك — مخفي عن البشر وعن قارئات الشاشة، مرئي للبوتات */
.hp{position:absolute;inset-inline-start:-9999px;width:1px;height:1px;overflow:hidden;}

/* ---------------- شاشة المسح ---------------- */
.scan-result{
  display:flex;align-items:center;gap:var(--sp-4);
  padding:var(--sp-5);border-radius:var(--r-lg);margin-block-end:var(--sp-4);
  background:var(--surface-2);border:1px solid var(--line);
}
.scan-result.in{background:var(--st-ok-soft);border-color:transparent;color:var(--st-ok-ink);}
.scan-result.out{background:var(--st-warn-soft);border-color:transparent;color:var(--st-warn-ink);}
.scan-result.bad{background:var(--st-late-soft);border-color:transparent;color:var(--st-late-ink);}
.scan-icon{
  width:60px;height:60px;flex:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:30px;font-weight:700;background:rgba(255,255,255,.35);
}
.scan-msg{font-size:var(--fs-sm);font-weight:600;}
.scan-name{font-family:var(--font-display);font-weight:700;font-size:24px;line-height:1.35;margin-block-start:4px;}
.scan-meta{font-size:var(--fs-xs);opacity:.8;margin-block-start:3px;}
.scan-form{display:flex;gap:var(--sp-3);align-items:end;flex-wrap:wrap;}
.scan-form .lbl{margin:0;flex:1;min-width:190px;}
.scan-input{font-size:19px !important;letter-spacing:.06em;}

/* ---------------- الحضور بالساعة ---------------- */
.hours{display:flex;gap:6px;align-items:flex-end;height:170px;}
.hour{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}
.hour-bar{width:100%;background:var(--st-ok);border-radius:4px 4px 0 0;min-height:6px;}
.hour-n{font-size:10.5px;color:var(--muted);margin-block-start:4px;}
.hour-l{font-size:10px;color:var(--faint);}

/* صف الإجراءات تحت صف البيانات */
tr.sub-row > td{
  background:var(--surface-2);
  padding-block:8px;
  border-block-end:2px solid var(--line);
}

/* ---------------- الاستجابة ---------------- */
@media (max-width:1080px){
  .roles-grid{grid-template-columns:repeat(2,1fr);}
  .grid-4{grid-template-columns:repeat(2,1fr);}
  .stat-row-5{grid-template-columns:repeat(3,1fr);}
  .kanban{grid-template-columns:repeat(5,minmax(180px,1fr));}
}
@media (max-width:860px){
  .shell{grid-template-columns:1fr;}
  .sidebar{
    position:static;max-height:none;
    display:flex;gap:6px;overflow-x:auto;
    border-inline-end:0;border-block-end:1px solid var(--line);
  }
  .nav-group{display:none;}
  .nav-item{white-space:nowrap;}
  .content{padding:var(--sp-4);}
  .grid-2,.stat-row,.roles-grid,.grid-4{grid-template-columns:1fr;}
  .stat-row,.stat-row-5{grid-template-columns:1fr 1fr;}
  .ex-switch{max-width:none;}
  .stepper{flex-wrap:wrap;}
  .stepper-item{flex:1 1 33%;}
}

/* لوح الوارد من التسويق — يُميَّز بحافة لا بلون كامل، فيُرى ولا يصرخ */
.panel-accent{border-inline-start:3px solid var(--st-gate);}

/* تفكيك الدرجة — الرقمان بجوار المجموع فيُقرأ مصدره لا الرقم وحده */
.score-split{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:var(--sp-3);margin-block-end:var(--sp-4);}
.score-split > div{padding:12px var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);}
.score-split b{display:block;font-family:var(--font-num);font-size:24px;line-height:1.1;}
.score-split span{display:block;font-size:var(--fs-xs);color:var(--muted);margin-block-start:4px;}
.score-split .score-total{background:var(--st-ok-soft);border-color:var(--st-ok);}
.table td small{display:block;font-size:var(--fs-xs);}
@media (max-width:800px){.score-split{grid-template-columns:1fr;}}

/* رحلة المبيعات في النظرة العامة — كل خطوة بابٌ لشاشتها */
.journey{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;}
.j-step{flex:1;min-inline-size:110px;text-align:center;padding:14px 10px;border-radius:var(--r-md);
  border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);}
.j-step:hover{border-color:var(--line-strong);background:var(--surface-2);}
.j-step b{display:block;font-family:var(--font-num);font-size:24px;line-height:1.1;}
.j-step span{display:block;font-size:var(--fs-xs);color:var(--muted);margin-block-start:5px;}
.j-step.hot{border-color:var(--st-warn);background:var(--st-warn-soft);}
.j-step.hot b{color:var(--st-warn-ink);}
.j-step.done{border-color:var(--st-ok);background:var(--st-ok-soft);}
.j-step.done b{color:var(--st-ok-ink);}
.j-arr{align-self:center;color:var(--faint);}
@media (max-width:800px){.journey{flex-direction:column;}.j-arr{display:none;}}

/* جداول الفواتير والعقود: صفّان في الخلية بدل تسعة أعمدة تتكسّر */
.inv-table td{vertical-align:middle;padding-block:12px;}
.inv-table .cell-sub{display:block;font-size:var(--fs-xs);color:var(--muted);margin-block-start:3px;font-weight:400;}
.inv-table .cell-actions{white-space:nowrap;text-align:end;width:1%;}
.inv-table .send-form{display:inline-flex;gap:5px;align-items:center;margin-inline-start:6px;vertical-align:middle;}
.inv-table .window-bar.mini{max-width:90px;}
.bank-panel summary::-webkit-details-marker{display:none;}
.bank-panel summary h2::after{content:' ▾';font-size:11px;color:var(--faint);}
