/* ═══════════════════════════════════════════════════════════════════════════
   Sketch OS — واجهة النظام

   الهوية نفسها التي في الموقع: ٩٥٪ محايد + ٥٪ بنفسجي، والشعار lowercase.
   لكنّ الغرض مختلف: الموقع يُقنع، واللوحة تُقرأ عشرات المرّات يوميًّا.
   فالبنفسجي هنا أشحّ، والحركة أقلّ، والأرقام تتقدّم على الصور.
   ═════════════════════════════════════════════════════════════════════════ */

:root{
  --ink:        #0a0a0a;
  --ink-soft:   #2a2a2a;
  --grey:       #6b6b6b;
  --grey-dim:   #9a9a9a;
  --paper:      #f6f4f1;
  --white:      #ffffff;
  --line:       #e2ded8;
  --line-soft:  #eeebe6;
  --violet:     #6d28f5;
  --violet-dim: #f1ebff;
  --danger:     #b4232a;

  --font: "Segoe UI", "Helvetica Neue", system-ui, sans-serif;
  --mono: ui-monospace, "Cascadia Mono", Consolas, monospace;

  --gutter: clamp(18px, 3vw, 40px);
  --radius: 3px;
}

*, *::before, *::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font); font-size:15px; line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,p,dl,dd,dt,ol,ul{ margin:0; }
ol,ul{ padding:0; list-style:none; }
button{ font:inherit; color:inherit; cursor:pointer; }
a{ color:inherit; text-decoration:none; }
table{ border-collapse:collapse; width:100%; }

.mono{ font-family:var(--mono); font-size:.82em; letter-spacing:0; }

/* الأرقام اللاتينية تُقرأ يمينًا-يسارًا داخل نصّ عربي، فنعزل اتجاهها */
.kpi-v, .fstage-n, .alert-n, td.mono, dd{ unicode-bidi:isolate; }

.skip{
  position:absolute; inset-inline-start:0; top:-60px; z-index:99;
  background:var(--ink); color:var(--paper); padding:10px 16px;
  transition:top .18s ease;
}
.skip:focus{ top:0; }

/* الإطار المرئي للتركيز لا يُحذف: التنقّل بالمفاتيح يعتمد عليه */
:focus-visible{ outline:2px solid var(--violet); outline-offset:2px; }

/* ═══ الشريط الأعلى ══════════════════════════════════════════════════════ */
.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:0 var(--gutter);
  background:var(--white); border-bottom:1px solid var(--line);
}
.topbar-start{ display:flex; align-items:center; gap:32px; min-width:0; }
.topbar-end{ display:flex; align-items:center; gap:18px; }

.brand{ font-size:17px; font-weight:600; letter-spacing:-.02em; flex:none; }
.brand-os{
  font-family:var(--mono); font-size:10px; font-weight:400;
  color:var(--violet); vertical-align:super; margin-inline-start:2px;
}

.nav{ display:flex; gap:4px; overflow-x:auto; }
.nav-item{
  padding:16px 12px; font-size:14px; color:var(--grey);
  border-bottom:2px solid transparent; white-space:nowrap;
  transition:color .15s ease, border-color .15s ease;
}
.nav-item:hover{ color:var(--ink); }
.nav-item.is-active{ color:var(--ink); border-bottom-color:var(--violet); }

.who{ display:flex; flex-direction:column; align-items:flex-end; line-height:1.3; }
.who-name{ font-size:13px; }
.who-org{ color:var(--grey-dim); }

.logout button{
  background:none; border:1px solid var(--line); border-radius:999px;
  padding:6px 14px; font-size:12.5px; color:var(--grey);
  transition:border-color .15s ease, color .15s ease;
}
.logout button:hover{ border-color:var(--ink); color:var(--ink); }

/* ═══ الهيكل ═════════════════════════════════════════════════════════════ */
.shell{ padding:var(--gutter); max-width:1400px; margin-inline:auto; }

.head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap:20px; flex-wrap:wrap; margin-bottom:26px;
}
.eyebrow{ color:var(--grey); letter-spacing:.1em; margin-bottom:6px; }
.h1{ font-size:clamp(24px, 3vw, 32px); font-weight:600; letter-spacing:-.02em; }
.h2{ font-size:15px; font-weight:600; margin-bottom:16px; }

/* ═══ مبدّل المدّة ════════════════════════════════════════════════════════ */
.range{ display:flex; gap:0; border:1px solid var(--line); border-radius:999px; padding:3px; background:var(--white); }
.range-btn{
  background:none; border:0; border-radius:999px;
  padding:7px 14px; font-size:12.5px; color:var(--grey);
  transition:background .15s ease, color .15s ease;
}
.range-btn:hover{ color:var(--ink); }
.range-btn.is-on{ background:var(--ink); color:var(--paper); }

/* ═══ التنبيهات ══════════════════════════════════════════════════════════ */
.alerts{
  display:flex; gap:1px; flex-wrap:wrap; margin-bottom:22px;
  background:var(--line); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden;
}
.alert{
  flex:1 1 180px; display:flex; align-items:center; gap:10px;
  padding:14px 18px; background:var(--white);
}
.alert-n{
  font-size:20px; font-weight:600; color:var(--danger);
  font-variant-numeric:tabular-nums;
}
.alert-l{ font-size:13px; color:var(--ink-soft); }

/* ═══ المؤشّرات ═══════════════════════════════════════════════════════════ */
/**
 * أربعة أعمدة لا «auto-fit».
 *
 * المؤشّرات ثمانية، وauto-fit كان يرصف سبعة في صفّ ويترك الثامن وحده
 * بجواره فراغ رمادي بعرض ستّة مواضع — يقرأه الناظر خللًا لا تصميمًا.
 * والعدد الصريح يقسم الثمانية صفّين متساويين على كل عرض.
 */
.kpis{
  display:grid; grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; margin-bottom:14px;
}
.kpi{ padding:16px 18px; background:var(--white); }
.kpi-l{ color:var(--grey); margin-bottom:6px; }
.kpi-v{
  font-size:21px; font-weight:600; letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
}

/* الفارغ يُرى فارغًا: لونه باهت وحجمه أصغر، فلا يُقرأ رقمًا */
.kpi.is-missing .kpi-v,
.row.is-missing dd{
  color:var(--grey-dim); font-size:14px; font-weight:400;
}

.inline-note{
  font-size:13px; color:var(--grey); line-height:1.75;
  padding:12px 16px; margin-bottom:22px;
  background:var(--violet-dim); border-radius:var(--radius);
  border-inline-start:2px solid var(--violet);
}

/* ═══ الأعمدة ════════════════════════════════════════════════════════════ */
.cols{
  display:grid; grid-template-columns:minmax(0, 1.15fr) minmax(0, .85fr);
  gap:18px; margin-top:22px;
}
.stack{ display:flex; flex-direction:column; gap:18px; }

.panel{
  background:var(--white); border:1px solid var(--line);
  border-radius:var(--radius); padding:20px;
}
.panel-note{
  margin-top:16px; padding-top:14px; border-top:1px solid var(--line-soft);
  font-size:12.5px; color:var(--grey); line-height:1.8;
}

/* ═══ القمع ══════════════════════════════════════════════════════════════ */
.funnel{ display:flex; flex-direction:column; gap:16px; }
.fstage-top{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.fstage-l{ font-size:14px; }
.fstage-n{ font-size:16px; font-weight:600; font-variant-numeric:tabular-nums; }

/* الشريط SVG لا عنصرًا بعرض سطري — انظر تعليق القالب */
.fbar{
  display:block; margin-top:7px; width:100%; height:22px;
  background:var(--paper); border-radius:2px;
}
.fbar rect{ fill:var(--violet); }
.fstage-meta{ margin-top:5px; color:var(--grey); }

/* ═══ صفوف القيم ═════════════════════════════════════════════════════════ */
.rows{ display:flex; flex-direction:column; }
.row{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:14px; padding:11px 0; border-bottom:1px solid var(--line-soft);
}
.row:last-child{ border-bottom:0; }
.row dt{ font-size:13.5px; color:var(--grey); }
.row dd{ font-size:14.5px; font-weight:500; font-variant-numeric:tabular-nums; text-align:end; }

/* ═══ الجدول ═════════════════════════════════════════════════════════════ */
.table{ font-size:14px; }
.table th{
  text-align:start; padding:0 12px 10px; font-weight:600; font-size:12px;
  color:var(--grey); border-bottom:1px solid var(--line);
}
.table td{ padding:11px 12px; border-bottom:1px solid var(--line-soft); }
.table tbody tr:last-child td{ border-bottom:0; }
.table th:first-child, .table td:first-child{ padding-inline-start:0; }
.table th:not(:first-child), .table td:not(:first-child){ text-align:end; }

/* ═══ الرسائل ════════════════════════════════════════════════════════════ */
.msg{
  padding:12px 15px; border-radius:var(--radius); font-size:13.5px;
  margin-bottom:18px; line-height:1.7;
}
.msg.is-err{
  background:#fdf0f0; color:#8d1b21; border-inline-start:2px solid var(--danger);
}
.msg.is-note{
  background:var(--violet-dim); color:#3d1a8a; border-inline-start:2px solid var(--violet);
}

/* ═══ الدخول ═════════════════════════════════════════════════════════════ */
.login-body{ background:var(--ink); }

/**
 * النموذج في العمود الأول، أي عند بداية القراءة — يمين الشاشة بالعربية.
 *
 * الغرض من هذه الصفحة الدخول لا التعريف بالعلامة. ولو جاء العمود
 * التعريفي أوّلًا لوقعت العين عليه ثمّ عبرت الشاشة كلّها إلى الحقل الذي
 * جاء المستخدم من أجله.
 */
.login{
  min-height:100svh; display:grid;
  grid-template-columns:minmax(0, 460px) minmax(0, 1fr);
}

.login-aside{
  display:flex; flex-direction:column; justify-content:center; gap:18px;
  padding:clamp(30px, 6vw, 80px); color:var(--paper);
}
.login-mark{ font-size:20px; font-weight:600; }
.login-mark span{
  font-family:var(--mono); font-size:11px; font-weight:400;
  color:#a98bff; vertical-align:super; margin-inline-start:3px;
}
.login-line{
  font-size:clamp(28px, 4vw, 46px); font-weight:600;
  line-height:1.25; letter-spacing:-.02em; max-width:15ch;
}
.login-note{ color:#8e8e8e; }

.login-panel{
  background:var(--paper); padding:clamp(28px, 4vw, 56px);
  display:flex; flex-direction:column; justify-content:center;
}
.login-title{ font-size:20px; font-weight:600; margin-bottom:22px; }

.form{ display:flex; flex-direction:column; gap:16px; }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{ font-size:13px; color:var(--grey); }
.field input{
  font:inherit; font-size:15px; padding:11px 13px;
  background:var(--white); color:var(--ink);
  border:1px solid var(--line); border-radius:var(--radius);
  transition:border-color .15s ease;
}
.field input:focus{ border-color:var(--violet); outline:none; }
.field input:focus-visible{ outline:2px solid var(--violet); outline-offset:1px; }

.btn{
  margin-top:4px; padding:12px 18px; font-size:15px; font-weight:500;
  background:var(--ink); color:var(--paper);
  border:1px solid var(--ink); border-radius:var(--radius);
  transition:background .15s ease;
}
.btn:hover{ background:var(--violet); border-color:var(--violet); }

.login-foot{ margin-top:22px; color:var(--grey-dim); line-height:1.8; }

/* ═══ الشاشات الضيّقة ═════════════════════════════════════════════════════ */
@media (max-width: 1180px){
  .kpis{ grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 980px){
  .cols{ grid-template-columns:1fr; }
}

@media (max-width: 760px){
  .login{ grid-template-columns:1fr; }
  /* الجانب التعريفي يختفي على الجوّال: النموذج هو الغرض */
  .login-aside{ display:none; }
  .login-panel{ min-height:100svh; }

  .topbar{ flex-wrap:wrap; padding-block:10px; }
  .topbar-start{ order:2; width:100%; gap:0; }
  .nav{ width:100%; }
  .nav-item{ padding:12px 10px; }
  .head{ align-items:flex-start; }
  .range{ width:100%; overflow-x:auto; }
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   العملاء المحتملون
   ═════════════════════════════════════════════════════════════════════════ */

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}

.h1-sub{ font-size:15px; font-weight:400; color:var(--grey); margin-inline-start:8px; }

/* ── البحث ─────────────────────────────────────────────────────────────── */
.search{ display:flex; align-items:center; gap:8px; }
.search input{
  font:inherit; font-size:14px; padding:9px 13px; min-width:min(300px, 60vw);
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
}
.search input:focus{ border-color:var(--violet); outline:none; }
.search button{
  padding:9px 16px; font-size:13.5px;
  background:var(--ink); color:var(--paper);
  border:1px solid var(--ink); border-radius:var(--radius);
}
.search-clear{ color:var(--grey); }
.search-clear:hover{ color:var(--ink); }

/* ── الشرائح ───────────────────────────────────────────────────────────── */
.chips{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
.chip{
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 14px; font-size:13.5px; color:var(--grey);
  background:var(--white); border:1px solid var(--line); border-radius:999px;
  transition:border-color .15s ease, color .15s ease;
}
.chip:hover{ border-color:var(--ink); color:var(--ink); }
.chip.is-on{ background:var(--ink); border-color:var(--ink); color:var(--paper); }
.chip-n{ color:inherit; opacity:.65; }

.chips--sm{ margin-bottom:0; }
.chips--sm .chip{ padding:6px 12px; font-size:12.5px; }

.subbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap; margin-bottom:20px;
}

/* ── الجدول ────────────────────────────────────────────────────────────── */
/* الحاوية بلا حواشٍ كي يلامس الجدول حدودها */
.panel--flush{ padding:0; overflow:hidden; }
.panel--flush .table{ font-size:14px; }
.panel--flush .table th{ padding:13px 16px; border-bottom:1px solid var(--line); }
.panel--flush .table td{ padding:13px 16px; }
.panel--flush .table th:first-child,
.panel--flush .table td:first-child{ padding-inline-start:20px; }
.panel--flush .table th:last-child,
.panel--flush .table td:last-child{ padding-inline-end:20px; }

/* أعمدة الجدول كلّها تبدأ من جهة القراءة — تجاوز قاعدة الجداول العامّة */
.table--leads th, .table--leads td{ text-align:start !important; }
.table--leads tbody tr:hover{ background:var(--paper); }

.lead-name{ display:block; font-weight:500; }
.lead-sub{ display:block; color:var(--grey-dim); margin-top:2px; }

.tag{
  display:inline-block; padding:3px 10px; font-size:12px;
  border:1px solid var(--line); border-radius:999px; color:var(--ink-soft);
}

/* التقييم ودلالة الحرارة: اللون معنى لا زخرفة، ومعه الكلمة كي لا
   يعتمد الفهم على تمييز اللون وحده */
.score{ display:inline-flex; align-items:baseline; gap:7px; font-variant-numeric:tabular-nums; }
.score-t{ font-size:11.5px; color:var(--grey); }
.score.is-hot{ color:#b4232a; font-weight:600; }
.score.is-warm{ color:#a8620d; font-weight:500; }
.score.is-cold{ color:var(--grey); }

.is-dim{ color:var(--grey-dim); }

/* ── لا نتائج ──────────────────────────────────────────────────────────── */
.empty{
  padding:56px 24px; text-align:center;
  background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
}
.empty-t{ font-size:17px; font-weight:600; margin-bottom:8px; }
.empty-b{ font-size:13.5px; color:var(--grey); line-height:1.85; max-width:52ch; margin-inline:auto; }
.empty-b a{ color:var(--violet); text-decoration:underline; }

/* ── التصفّح ───────────────────────────────────────────────────────────── */
.pager{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:20px; }
.pager-btn{
  padding:8px 16px; font-size:13.5px; color:var(--ink);
  border:1px solid var(--line); border-radius:999px; background:var(--white);
}
.pager-btn:hover{ border-color:var(--ink); }
.pager-btn.is-off{ color:var(--grey-dim); border-color:var(--line-soft); }
.pager-at{ color:var(--grey); }

@media (max-width: 760px){
  .search{ width:100%; }
  .search input{ flex:1; min-width:0; }
  /* الجدول يمرّر أفقيًّا داخل حاويته لا يدفع الصفحة كلّها */
  .panel--flush{ overflow-x:auto; }
  .table--leads{ min-width:660px; }
}
