/* ===========================================================================
   پیشینو - سیستم طراحی
   ===========================================================================
   قاعده ای که این فایل از آن پیروی می کند:
   مینیمال یعنی «هر چیزی که هست، دلیل دارد»، نه «چیزی طراحی نشده».
   پس هیچ رنگی تصادفی نیست، هیچ فاصله ای گرد نشده، و هیچ متنی زیر ۱۵ پیکسل
   نیست. مخاطب این محصول با گوشی کار می کند و نباید برای خواندن چشم ریز کند.
   =========================================================================== */

/* فونت لوکال. هیچ وابستگی به گوگل یا هیچ CDN دیگری نداریم، چون برای کاربر
   ایرانی ممکن است لود نشود و آن وقت ارقام فارسی نامرئی می شوند. */
@font-face{
  font-family:'Vazirmatn';
  src:url('/fonts/Vazirmatn-variable.woff2') format('woff2');
  font-weight:100 900;
  font-style:normal;
  font-display:swap;
}

:root{
  /* --- هویت برند: سبز عمیق. رنگ اعتماد و ثبات، نه هیجان. --- */
  --brand-950:#07301f;
  --brand-900:#0b3d29;
  --brand-800:#0f4c35;
  --brand-700:#146044;
  --brand-600:#1a7a55;
  --brand-500:#229367;
  --brand-300:#7cc4a4;
  --brand-100:#d5ebe0;
  --brand-50:#eff8f3;

  /* --- تاکید: نارنجی. فقط برای کاری که کاربر باید انجام بدهد. --- */
  --accent-700:#b04f18;
  --accent-600:#cf5f1f;
  --accent-500:#e8722e;
  --accent-100:#fbdcc6;
  --accent-50:#fef4ec;

  /* --- معناها --- */
  --ok-600:#1a7a55;     --ok-50:#eff8f3;   --ok-100:#d5ebe0;
  --warn-700:#8a5a10;   --warn-500:#c98a1e; --warn-50:#fdf6e9;  --warn-100:#f3e2bd;
  --risk-700:#9b3826;   --risk-500:#c04a33; --risk-50:#fdf2f0;  --risk-100:#f4d8d2;

  /* --- سطح ها: چند لایه عمق، نه یک سفید یکدست --- */
  --bg-app:#eef2f0;        /* پس زمینه صفحه، کمی تیره تر از کارت */
  --bg-sunken:#e7ecea;     /* گودتر از صفحه: ورودی ها و جعبه حافظه */
  --surface:#ffffff;       /* کارت */
  --surface-raised:#ffffff;
  --surface-tint:#f7faf8;  /* کارت کم اهمیت تر */

  /* --- خط ها --- */
  --line:#dde4e0;
  --line-soft:#e9eeec;
  --line-strong:#c7d2cc;

  /* --- متن: چهار پله، نه دو تا --- */
  --ink:#0e1613;
  --ink-2:#37443e;
  --ink-3:#5c6b64;
  --ink-4:#82908a;

  /* --- گوشه ها --- */
  --r-sm:10px; --r-md:14px; --r-lg:18px; --r-xl:24px; --r-full:999px;

  /* --- عمق: سایه های چندلایه، نه یک سایه پخش --- */
  --sh-1:0 1px 2px rgba(11,40,28,.06);
  --sh-2:0 1px 2px rgba(11,40,28,.05), 0 2px 8px -2px rgba(11,40,28,.07);
  --sh-3:0 1px 2px rgba(11,40,28,.04), 0 8px 22px -8px rgba(11,40,28,.13);
  --sh-4:0 2px 4px rgba(11,40,28,.05), 0 20px 44px -16px rgba(11,40,28,.20);
  --sh-inset:inset 0 1px 2px rgba(11,40,28,.05);
  --ring:0 0 0 3px rgba(26,122,85,.16);
  --ring-accent:0 0 0 3px rgba(232,114,46,.18);

  /* --- گرادینت های خیلی ملایم. اگر دیده شوند، زیاده روی شده. --- */
  --grad-brand:linear-gradient(160deg,#17694a 0%,#0e4a33 100%);
  --grad-surface:linear-gradient(180deg,#ffffff 0%,#fcfdfc 100%);
  --grad-accent:linear-gradient(170deg,#ec7c3a 0%,#d9631f 100%);
  --grad-green:linear-gradient(170deg,#1e8a60 0%,#146044 100%);
}

*{box-sizing:border-box;}
html{-webkit-tap-highlight-color:transparent;text-size-adjust:100%;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  font-family:'Vazirmatn',Tahoma,sans-serif;
  background:var(--bg-app);
  color:var(--ink);
  direction:rtl;
  font-size:17px;
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;}
::selection{background:var(--brand-100);color:var(--brand-900);}

/* ---------------------------------------------------------------- نوار بالا */
.topbar{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);
  padding:12px 0;position:sticky;top:0;z-index:30;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset;
}
.topbar .container{display:flex;align-items:center;gap:22px;max-width:800px;margin:0 auto;padding:0 18px;}
.logo{font-weight:800;font-size:19px;display:flex;align-items:center;gap:8px;letter-spacing:-.015em;color:var(--brand-900);flex:none;}
.logo-dot{
  width:9px;height:9px;border-radius:50%;flex:none;
  background:var(--grad-accent);box-shadow:0 0 0 3px var(--accent-50);
}
/* نوار تب ها روی موبایل باید بتواند افقی اسکرول شود.
   با اضافه شدن تب چهارم، مجموع عرض تب ها از عرض گوشی رد شد و کل صفحه سرریز
   افقی پیدا کرد. نتیجه اش این بود که مرورگر موبایل کل صفحه را حدود ۱۵ درصد
   کوچک می کرد و همه متن ها ریزتر از چیزی که طراحی شده بود دیده می شدند. */
.tabs{
  display:flex;gap:2px;min-width:0;flex:0 1 auto;
  overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;
  -webkit-overflow-scrolling:touch;
}
.tabs::-webkit-scrollbar{display:none;}
.tabs a{flex:none;}
.tabs a{
  padding:8px 14px;border-radius:var(--r-full);font-size:16px;font-weight:600;
  color:var(--ink-3);transition:background .14s,color .14s;white-space:nowrap;
}
.tabs a.active{background:var(--brand-50);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--brand-100);}
.tabs a:hover:not(.active){background:var(--line-soft);color:var(--ink-2);}
.topbar-exit{margin-right:auto;font-size:15.5px;color:var(--ink-4);font-weight:600;padding:6px 4px;flex:none;}
.topbar-exit:hover{color:var(--ink-2);}

/* نوار بالای صفحه های ورود و دمو. قبلا این صفحه ها اصلا هدر نداشتند و
   کاربر حس می کرد صفحه نیمه کاره است. */
.authbar{
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(160%) blur(10px);
  -webkit-backdrop-filter:saturate(160%) blur(10px);
  border-bottom:1px solid var(--line);padding:12px 0;position:sticky;top:0;z-index:30;
}
.authbar .container{display:flex;align-items:center;gap:16px;max-width:800px;margin:0 auto;padding:0 18px;}
.authbar .authbar-link{margin-right:auto;font-size:15.5px;font-weight:700;color:var(--brand-700);}
.authbar .authbar-link:hover{color:var(--brand-800);}

/* -------------------------------------------------------- نوارهای اطلاع رسانی */
.banner{padding:11px 18px;font-size:16px;text-align:center;font-weight:600;line-height:1.6;}
.banner a{text-decoration:underline;text-underline-offset:3px;}
.banner-demo{background:var(--warn-50);color:var(--warn-700);border-bottom:1px solid var(--warn-100);}
.banner-owner{background:var(--grad-brand);color:#dff0e7;}
.banner-owner a{color:#fff;}
.banner-warn{background:var(--accent-50);color:var(--accent-700);border-bottom:1px solid var(--accent-100);}

/* ------------------------------------------------------------- ظرف صفحه ها */
.page-narrow{max-width:480px;margin:0 auto;padding:24px 18px 96px;}
.page-wide{max-width:800px;margin:0 auto;padding:28px 18px 96px;}

.card{
  background:var(--grad-surface);
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  padding:24px 22px;
  box-shadow:var(--sh-2);
}
.card + .card{margin-top:14px;}
.card-flat{box-shadow:var(--sh-1);background:var(--surface-tint);}

/* ------------------------------------------------------------------ تایپوگرافی */
h1{font-size:24px;line-height:1.45;margin:0 0 8px;font-weight:800;letter-spacing:-.02em;text-align:center;}
h2{font-size:20px;line-height:1.5;margin:0 0 14px;font-weight:750;letter-spacing:-.01em;text-align:center;}
h3{font-size:17.5px;margin:0 0 8px;font-weight:700;}
p.subtitle{color:var(--ink-3);margin:0 0 20px;font-size:16.5px;line-height:1.8;text-align:center;}
.text-right{text-align:right;}
.eyebrow{
  font-size:15px;font-weight:700;color:var(--brand-600);text-align:center;
  margin-bottom:8px;letter-spacing:.01em;
}

/* --------------------------------------------------------------------- فرم */
label{display:block;font-size:16px;font-weight:650;margin-bottom:7px;color:var(--ink-2);}
input[type=text],input[type=tel],input[type=password],input[type=number],input[type=date],textarea,select{
  width:100%;padding:13px 14px;
  border-radius:var(--r-md);
  border:1.5px solid var(--line-strong);
  background:var(--bg-sunken);
  box-shadow:var(--sh-inset);
  font-family:inherit;font-size:17px;color:var(--ink);
  margin-bottom:15px;
  transition:border-color .14s,background .14s,box-shadow .14s;
  -webkit-appearance:none;appearance:none;
}
input::placeholder,textarea::placeholder{color:var(--ink-4);opacity:1;}
input:hover:not(:focus),textarea:hover:not(:focus),select:hover:not(:focus){border-color:var(--ink-4);}
input:focus,textarea:focus,select:focus{
  outline:none;border-color:var(--brand-600);background:var(--surface);box-shadow:var(--ring);
}
textarea{min-height:88px;resize:vertical;line-height:1.7;}
select{
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(14px) calc(50% - 2px),calc(19px) calc(50% - 2px);
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
  padding-left:38px;
}
.field-hint{font-size:15px;color:var(--ink-4);margin:-9px 0 15px;line-height:1.65;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

/* دکمه های انتخابی: علاقه، بهترین زمان، منبع */
.chip-select{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px;}
.chip-opt{
  border:1.5px solid var(--line-strong);background:var(--surface);
  border-radius:var(--r-full);padding:9px 15px;
  font-family:inherit;font-size:15.5px;font-weight:600;color:var(--ink-3);
  cursor:pointer;transition:all .14s;
}
.chip-opt:hover{border-color:var(--brand-500);color:var(--ink-2);}
.chip-opt.on{
  background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-800);
  box-shadow:0 0 0 1px var(--brand-500);
}

/* ------------------------------------------------------------------- دکمه ها */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid transparent;border-radius:var(--r-md);
  padding:14px 22px;
  font-family:inherit;font-size:17px;font-weight:700;cursor:pointer;
  letter-spacing:-.005em;
  transition:transform .09s,box-shadow .16s,background .16s,border-color .16s,color .16s;
}
.btn:active{transform:translateY(1px);}
.btn:focus-visible{outline:none;box-shadow:var(--ring);}
.btn-orange{background:var(--grad-accent);color:#fff;box-shadow:0 1px 2px rgba(176,79,24,.2),0 8px 20px -10px rgba(207,95,31,.75);}
.btn-orange:hover{background:linear-gradient(170deg,#f08544 0%,#c4591b 100%);box-shadow:0 1px 2px rgba(176,79,24,.22),0 12px 26px -10px rgba(207,95,31,.8);}
.btn-green{background:var(--grad-green);color:#fff;box-shadow:0 1px 2px rgba(11,61,41,.18),0 8px 20px -10px rgba(20,96,68,.7);}
.btn-green:hover{background:linear-gradient(170deg,#229367 0%,#0f4c35 100%);box-shadow:0 1px 2px rgba(11,61,41,.2),0 12px 26px -10px rgba(20,96,68,.78);}
.btn-outline{background:var(--surface);border-color:var(--line-strong);color:var(--ink-2);box-shadow:var(--sh-1);}
.btn-outline:hover{border-color:var(--ink-4);background:#fff;box-shadow:var(--sh-2);}
.btn-danger{background:var(--surface);border-color:var(--risk-100);color:var(--risk-700);box-shadow:var(--sh-1);}
.btn-danger:hover{border-color:var(--risk-500);background:var(--risk-50);}
.btn-small{padding:9px 15px;font-size:15.5px;border-radius:var(--r-sm);}
.btn-block{width:100%;}
.btn[disabled]{opacity:.5;cursor:default;transform:none;box-shadow:none;}
.btn-row{display:flex;gap:9px;flex-wrap:wrap;}
.btn-row .btn{flex:1 1 auto;}

.spinner{
  width:16px;height:16px;border-radius:50%;
  border:2px solid rgba(255,255,255,.38);border-top-color:#fff;
  animation:spin .6s linear infinite;
}
.btn-outline .spinner,.btn-danger .spinner{border-color:rgba(14,22,19,.18);border-top-color:var(--ink-2);}
@keyframes spin{to{transform:rotate(360deg);}}

/* --------------------------------------------------------- کپی آیدی پیام رسان */
/* هیچ لینکی به هیچ اپلیکیشنی. فقط متن و یک دکمه کپی. */
.copy-row{
  display:flex;align-items:center;gap:10px;
  background:var(--bg-sunken);border:1.5px solid var(--line-strong);
  border-radius:var(--r-md);padding:8px 8px 8px 8px;
  box-shadow:var(--sh-inset);
}
.copy-row .copy-value{
  flex:1;min-width:0;font-size:17px;font-weight:700;color:var(--ink);
  direction:ltr;text-align:left;padding:4px 10px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.copy-btn{
  flex:none;border:none;background:var(--surface);color:var(--brand-800);
  border:1.5px solid var(--line-strong);
  border-radius:var(--r-sm);padding:9px 16px;
  font-family:inherit;font-size:15.5px;font-weight:700;cursor:pointer;
  transition:all .14s;box-shadow:var(--sh-1);
}
.copy-btn:hover{border-color:var(--brand-500);color:var(--brand-700);}
.copy-btn.done{background:var(--brand-600);border-color:var(--brand-600);color:#fff;}
.copy-label{font-size:15px;color:var(--ink-3);margin-bottom:7px;font-weight:650;}
.copy-block + .copy-block{margin-top:12px;}

/* ------------------------------------------------------------ کارت کارتابل */
.queue-head{display:flex;align-items:center;justify-content:space-between;gap:9px;margin-bottom:14px;flex-wrap:wrap;}
.remaining-pill{
  display:inline-flex;align-items:center;gap:7px;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-full);padding:7px 15px;font-size:15.5px;font-weight:600;
  color:var(--ink-3);box-shadow:var(--sh-1);
}
.late-pill{background:var(--risk-50);border-color:var(--risk-100);color:var(--risk-700);font-weight:700;}

.task-wrap{position:relative;min-height:250px;touch-action:pan-y;}
.task-card{
  background:var(--grad-surface);
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  padding:26px 20px 22px;
  text-align:center;position:relative;
  box-shadow:var(--sh-3);
  animation:cardIn .3s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes cardIn{from{opacity:0;transform:translateY(8px) scale(.99);}to{opacity:1;transform:none;}}
.task-card.leaving{animation:cardOut .16s ease both;}
@keyframes cardOut{to{opacity:0;transform:translateY(-8px) scale(.99);}}
.task-card.dragging{transition:none;animation:none;}
/* نوار رنگی بالای کارت: حالت کارت را بدون خواندن متن نشان می دهد */
.task-card::before{
  content:'';position:absolute;top:0;right:22px;left:22px;height:3px;
  border-radius:0 0 3px 3px;background:var(--brand-500);opacity:.85;
}
.task-card.is-late::before{background:var(--risk-500);}
.task-card.is-repeat::before{background:var(--grad-accent);}
.task-card.is-first::before{background:var(--brand-300);}

.task-eyebrow{font-size:15px;color:var(--ink-4);font-weight:650;margin-bottom:9px;}
.task-eyebrow.late{color:var(--risk-700);}
.task-eyebrow.repeat{color:var(--accent-700);}
.task-name{font-size:25px;font-weight:800;margin-bottom:5px;letter-spacing:-.02em;line-height:1.35;}
.task-sub{font-size:15.5px;color:var(--ink-4);margin-bottom:6px;}
/* برچسب های ریز زیر اسم: شهر، منبع، بهترین زمان */
.task-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:14px;}
.task-tag{
  font-size:15px;font-weight:600;color:var(--ink-3);
  background:var(--bg-sunken);border-radius:var(--r-full);padding:4px 12px;
}
.task-tag.good-time{background:var(--ok-50);color:var(--brand-700);box-shadow:inset 0 0 0 1px var(--ok-100);}
.task-tag.hot{background:var(--accent-50);color:var(--accent-700);box-shadow:inset 0 0 0 1px var(--accent-100);}

.star-btn{
  position:absolute;top:8px;left:8px;background:none;border:none;cursor:pointer;
  line-height:0;color:var(--ink-4);border-radius:var(--r-sm);
  transition:color .14s,background .14s;
  /* هدف لمسی دست کم ۴۴ پیکسل. ستاره خودش کوچک است ولی ناحیه قابل زدنش
     نباید کوچک باشد، وگرنه روی گوشی باید چند بار امتحان کرد. */
  min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;
}
.star-btn:hover{background:var(--line-soft);color:var(--ink-3);}
.star-btn.on{color:var(--accent-500);}

.call-buttons{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-bottom:7px;}
.call-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--grad-green);color:#fff;
  padding:13px 26px;border-radius:var(--r-full);
  font-weight:700;font-size:17.5px;border:none;cursor:pointer;font-family:inherit;
  box-shadow:0 1px 2px rgba(11,61,41,.2),0 10px 24px -10px rgba(20,96,68,.8);
  transition:transform .09s,box-shadow .16s,background .16s;
}
.call-btn:hover{background:linear-gradient(170deg,#229367 0%,#0f4c35 100%);}
.call-btn:active{transform:translateY(1px);}
.call-btn.secondary{
  background:var(--surface);color:var(--brand-800);border:1.5px solid var(--line-strong);
  box-shadow:var(--sh-1);font-size:16px;padding:11px 20px;
}
.call-btn.secondary:hover{background:var(--brand-50);border-color:var(--brand-300);}
.phone-number{font-size:15.5px;color:var(--ink-4);margin-bottom:8px;direction:ltr;unicode-bidi:embed;letter-spacing:.02em;}
.no-phone{color:var(--ink-4);font-size:16px;margin-bottom:8px;}

.memory-box{
  background:var(--bg-sunken);border-radius:var(--r-lg);
  padding:14px 16px;margin-bottom:14px;text-align:right;
  box-shadow:var(--sh-inset);
}
.memory-label{font-size:15px;color:var(--ink-3);font-weight:700;margin-bottom:6px;}
.memory-text{font-size:16.5px;color:var(--ink-2);line-height:1.75;}
.memory-text + .memory-text{margin-top:5px;}

.suggestion-box{
  background:linear-gradient(170deg,var(--warn-50) 0%,#fdf3e2 100%);
  border:1px solid var(--warn-100);border-radius:var(--r-lg);
  padding:14px 16px;margin-bottom:16px;text-align:right;
  font-size:16.5px;color:var(--warn-700);line-height:1.75;
  box-shadow:var(--sh-1);
}
.manual-date-note{
  background:var(--brand-50);border:1px solid var(--brand-100);border-radius:var(--r-lg);
  padding:12px 15px;margin-bottom:14px;text-align:right;
  font-size:16px;color:var(--brand-800);line-height:1.7;
}

.outcome-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:18px;}
.outcome-btn{
  position:relative;border:1.5px solid var(--line-strong);
  background:var(--surface);border-radius:var(--r-lg);
  padding:15px 10px;font-family:inherit;font-size:16.5px;font-weight:650;
  cursor:pointer;text-align:center;color:var(--ink-2);
  box-shadow:var(--sh-1);
  transition:border-color .14s,background .14s,transform .09s,box-shadow .16s,color .14s;
}
.outcome-btn:hover{border-color:var(--brand-500);background:var(--brand-50);color:var(--brand-800);box-shadow:var(--sh-2);}
.outcome-btn:active{transform:translateY(1px);}
.outcome-btn:focus-visible{outline:none;box-shadow:var(--ring);}
.outcome-btn.tone-won{border-color:var(--brand-300);color:var(--brand-800);background:var(--brand-50);}
.outcome-btn.tone-won:hover{background:var(--brand-100);}
.outcome-btn.tone-cold{color:var(--ink-3);}
.outcome-btn.suggested{
  border-color:var(--accent-500);background:var(--accent-50);color:var(--accent-700);
  box-shadow:var(--ring-accent);
}
.outcome-btn .kbd{
  position:absolute;top:7px;left:9px;font-size:13px;color:var(--ink-3);
  border:1px solid var(--line);border-radius:5px;padding:1px 6px;line-height:1.6;
  background:var(--bg-sunken);
}
.outcome-btn[disabled]{opacity:.45;pointer-events:none;}

.secondary-actions{
  display:flex;gap:4px;justify-content:center;flex-wrap:wrap;
  margin-top:16px;padding-top:15px;border-top:1px solid var(--line-soft);
}
.link-btn{
  background:none;border:none;color:var(--brand-700);font-weight:650;font-size:16px;
  cursor:pointer;font-family:inherit;padding:10px 11px;border-radius:var(--r-sm);
  transition:background .14s,color .14s;
  min-height:44px;display:inline-flex;align-items:center;
}
.link-btn:hover{background:var(--brand-50);color:var(--brand-800);}
.link-btn.muted{color:var(--ink-3);}
.link-btn.muted:hover{background:var(--line-soft);color:var(--ink-2);}

.note-toggle{
  display:block;width:fit-content;margin-top:15px;font-size:16px;color:var(--ink-3);
  border-bottom:1px dashed var(--ink-4);cursor:pointer;font-weight:600;padding-bottom:2px;
}
.note-toggle:hover{color:var(--ink);border-color:var(--ink-2);}
.note-area{margin-top:13px;display:none;}
.note-area.open{display:block;animation:fadeDown .2s ease both;}
@keyframes fadeDown{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

/* ------------------------------------------------ پنل کشویی پایین (Sheet) */
.sheet-backdrop{
  /* بالاتر از توست (۷۰). اگر پایین تر باشد، توستی که از اقدام قبلی هنوز روی
     صفحه است، دقیقا روی دکمه های پایین پنل می نشیند و کلیک را می بلعد.
     این یک باگ واقعی بود که در بازبینی بصری پیدا شد. */
  position:fixed;inset:0;background:rgba(9,26,19,.45);z-index:90;display:none;
  align-items:flex-end;justify-content:center;
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
}
.sheet-backdrop.open{display:flex;animation:fadeIn .16s ease both;}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
/* پنل کشویی به سبک درست: خود پنل اسکرول نمی شود، فقط بدنه اش.
   دکمه ها در پایه ثابت می مانند و هر چقدر هم محتوا بلند شود، همیشه سر جایشان
   هستند. قبلا کل پنل اسکرول می شد و روی گوشی کوچک دکمه ها زیر محتوا گم می شدند. */
.sheet{
  background:var(--surface);width:100%;max-width:480px;
  border-radius:var(--r-xl) var(--r-xl) 0 0;padding:14px 20px 24px;
  animation:sheetUp .24s cubic-bezier(.2,.8,.3,1) both;
  max-height:88vh;overflow:hidden;box-shadow:var(--sh-4);
  display:flex;flex-direction:column;
}
.sheet-scroll{
  flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;min-height:0;
}
.sheet-foot{
  flex:0 0 auto;padding-top:14px;margin-top:4px;
  border-top:1px solid var(--line-soft);background:var(--surface);
}
.sheet-foot .btn-row{margin:0;}
/* فهرست نکته های یک پنل تایید: هر نکته یک پیامد واقعی تصمیم است */
.sheet-points{margin:0 0 4px;padding-right:20px;color:var(--ink-2);font-size:16px;line-height:1.95;}
.sheet-points li{margin-bottom:5px;}
@keyframes sheetUp{from{transform:translateY(28px);opacity:.6;}to{transform:none;opacity:1;}}
/* دستگیره بالای پنل: نشانه ای که این پنل کشویی است */
.sheet::before{
  content:'';display:block;width:38px;height:4px;border-radius:var(--r-full);
  background:var(--line-strong);margin:0 auto 16px;
}
.sheet h3{text-align:center;margin-bottom:7px;font-size:19px;}
.sheet .sheet-sub{text-align:center;color:var(--ink-3);font-size:16px;margin:0 0 18px;line-height:1.75;}
.day-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;}
.day-chip{
  border:1.5px solid var(--line-strong);background:var(--surface);border-radius:var(--r-md);
  padding:12px 6px;font-family:inherit;font-size:15.5px;font-weight:650;color:var(--ink-2);
  cursor:pointer;transition:all .14s;box-shadow:var(--sh-1);line-height:1.5;
}
.day-chip:hover{border-color:var(--brand-500);background:var(--brand-50);}
.day-chip.on{border-color:var(--brand-600);background:var(--brand-50);color:var(--brand-800);box-shadow:0 0 0 1px var(--brand-600);}
.risk-note{
  background:var(--warn-50);border:1px solid var(--warn-100);border-radius:var(--r-lg);
  padding:13px 15px;font-size:16px;color:var(--warn-700);line-height:1.75;margin-bottom:16px;
}
/* دکمه های پنل کشویی عمدا چسبان نیستند.
   چسباندنشان امتحان شد و روی گوشی باعث می شد محتوای در حال اسکرول و دکمه
   سر جای کلیک با هم بجنگند. به جایش پنل کمی کوتاه تر شد تا همیشه جا بیاید. */


/* --------------------------------------------------------- حرکت انگشتی */
.swipe-hint{
  display:flex;justify-content:space-between;font-size:15px;color:var(--ink-4);
  padding:0 10px;margin-top:12px;font-weight:600;
}
.swipe-flash{
  position:absolute;inset:0;border-radius:var(--r-xl);display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:19px;opacity:0;pointer-events:none;transition:opacity .1s;
}
.swipe-flash.right{background:rgba(26,122,85,.12);color:var(--brand-800);}
.swipe-flash.left{background:rgba(192,74,51,.1);color:var(--risk-700);}

.dup-warning{
  margin-top:15px;background:var(--warn-50);border:1px solid var(--warn-100);
  border-radius:var(--r-lg);padding:14px 15px;font-size:16px;color:var(--warn-700);
  text-align:right;line-height:1.75;
}
.dup-actions{display:flex;gap:8px;margin-top:11px;}

.bulk-options{
  display:flex;flex-direction:column;gap:2px;align-items:center;margin-top:20px;
  padding-top:18px;border-top:1px solid var(--line-soft);max-width:360px;margin-left:auto;margin-right:auto;
}
.bulk-box{
  max-width:360px;margin:14px auto 0;text-align:right;
  background:var(--bg-sunken);border-radius:var(--r-lg);padding:16px;
  box-shadow:var(--sh-inset);
}
.bulk-box input[type=file]{
  width:100%;padding:11px;border-radius:var(--r-md);border:1.5px dashed var(--line-strong);
  background:var(--surface);font-family:inherit;font-size:16px;margin-bottom:13px;
}
.import-note{font-size:15px;color:var(--ink-3);line-height:1.7;margin:0 0 12px;}

.empty-state{text-align:center;padding:26px 8px;}

/* ------------------------------------------------------------ لیست مشتری ها */
.lead-row-link{display:block;color:inherit;}
.lead-row{
  display:flex;align-items:center;gap:12px;
  background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:14px 16px;margin-bottom:8px;
  box-shadow:var(--sh-1);transition:border-color .14s,box-shadow .16s,transform .09s;
}
.lead-row-link:hover .lead-row{border-color:var(--line-strong);box-shadow:var(--sh-2);transform:translateY(-1px);}
.lead-row-main{flex:1;min-width:0;}
.lead-row-name{font-weight:700;font-size:17.5px;display:flex;align-items:center;gap:6px;}
.lead-star{color:var(--accent-500);line-height:0;display:inline-flex;}
.lead-row-meta{font-size:15.5px;color:var(--ink-3);margin-top:3px;}
.status-pill{font-size:15px;font-weight:700;padding:4px 12px;border-radius:var(--r-full);white-space:nowrap;}
.status-new{background:var(--brand-50);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--brand-100);}
.status-in_progress{background:var(--accent-50);color:var(--accent-700);box-shadow:inset 0 0 0 1px var(--accent-100);}
.status-won{background:var(--ok-50);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--ok-100);}
.status-cold{background:var(--bg-sunken);color:var(--ink-3);}
.status-archived{background:var(--bg-sunken);color:var(--ink-4);}
.pill-late{background:var(--risk-50);color:var(--risk-700);box-shadow:inset 0 0 0 1px var(--risk-100);}
.filter-row{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px;}
.filter-chip{
  border:1.5px solid var(--line);background:var(--surface);border-radius:var(--r-full);
  padding:8px 15px;font-family:inherit;font-size:15.5px;font-weight:650;color:var(--ink-3);
  cursor:pointer;box-shadow:var(--sh-1);transition:all .14s;
}
.filter-chip:hover{border-color:var(--line-strong);color:var(--ink-2);}
.filter-chip.on{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-800);box-shadow:0 0 0 1px var(--brand-500);}

/* ------------------------------------------------------------ پرونده مشتری */
.back-link{
  display:inline-flex;align-items:center;gap:7px;color:var(--ink-3);
  font-size:16px;margin-bottom:16px;font-weight:650;padding:4px 0;
}
.back-link:hover{color:var(--ink);}
.profile-top{text-align:center;margin-bottom:20px;}
.profile-top h1{margin-bottom:10px;}
.profile-pills{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;}
.verdict{
  background:var(--bg-sunken);border-radius:var(--r-lg);padding:14px 16px;
  font-size:16.5px;line-height:1.8;color:var(--ink-2);margin-top:12px;text-align:right;
  box-shadow:var(--sh-inset);
}
.verdict.bad{background:var(--risk-50);color:var(--risk-700);box-shadow:inset 0 0 0 1px var(--risk-100);}
.timeline{margin-top:6px;position:relative;}
.timeline-item{padding:12px 0;border-bottom:1px solid var(--line-soft);}
.timeline-item:last-child{border-bottom:none;}
.timeline-item .t-when{font-size:15px;color:var(--ink-4);margin-bottom:4px;font-weight:600;}
.timeline-item .t-text{font-size:16.5px;color:var(--ink-2);line-height:1.75;}
.timeline-item.gap .t-text{color:var(--risk-700);font-weight:650;}
.timeline-item.schedule .t-text{color:var(--brand-700);}

/* ----------------------------------------------------------------- گزارش */
.headline-card{
  background:var(--grad-brand);border:none;border-radius:var(--r-xl);
  padding:24px 26px;margin-bottom:16px;
  box-shadow:0 2px 4px rgba(7,48,31,.2),0 20px 44px -18px rgba(11,61,41,.6);
  position:relative;overflow:hidden;
}
/* درخشش خیلی ملایم گوشه کارت. اگر دیده شود، زیاده روی شده. */
.headline-card::after{
  content:'';position:absolute;top:-60%;left:-10%;width:60%;height:200%;
  background:radial-gradient(closest-side,rgba(255,255,255,.09),transparent);
  pointer-events:none;
}
.headline-card .lbl{color:#a9cfbc;font-size:15.5px;font-weight:650;margin-bottom:7px;}
.headline-card .num{color:#fff;font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1.3;}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px;}
.stat-box{
  background:var(--grad-surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:16px 9px;text-align:center;box-shadow:var(--sh-1);
}
.stat-box .num{font-size:23px;font-weight:800;letter-spacing:-.02em;line-height:1.3;}
.stat-box .lbl{font-size:15px;color:var(--ink-3);margin-top:5px;font-weight:600;}
.action-item{
  border-right:3px solid var(--accent-500);padding:2px 15px 2px 0;margin-bottom:18px;
}
.action-item:last-child{margin-bottom:0;}
.action-item p{margin:0 0 9px;font-size:17px;line-height:1.8;color:var(--ink-2);}
.action-item a{
  color:var(--brand-700);font-weight:700;font-size:16px;
  border-bottom:1.5px solid var(--brand-100);padding-bottom:1px;
}
.action-item a:hover{border-color:var(--brand-500);}
.exception-item{
  display:flex;justify-content:space-between;align-items:center;gap:11px;
  padding:13px 16px;border:1px solid var(--line);border-radius:var(--r-lg);
  margin-bottom:8px;background:var(--surface);box-shadow:var(--sh-1);
  transition:border-color .14s,box-shadow .16s;
}
.lead-row-link:hover .exception-item{border-color:var(--line-strong);box-shadow:var(--sh-2);}
.exception-item:last-child{margin-bottom:0;}
.exception-item .name{font-weight:700;font-size:17px;}
.exception-item .meta{color:var(--ink-3);font-size:15px;margin-top:3px;}
.tag-late{
  background:var(--risk-50);color:var(--risk-700);border-radius:var(--r-full);
  padding:5px 13px;font-size:15px;font-weight:700;white-space:nowrap;
  box-shadow:inset 0 0 0 1px var(--risk-100);
}

/* ------------------------------------------------------- ورود، دمو، خطا */
.auth-page{max-width:430px;margin:0 auto;padding:44px 18px 80px;}
.auth-logo{
  display:flex;align-items:center;justify-content:center;gap:9px;
  font-weight:800;font-size:23px;margin-bottom:26px;color:var(--brand-900);letter-spacing:-.02em;
}
.auth-card{
  background:var(--grad-surface);border:1px solid var(--line);
  border-radius:var(--r-xl);padding:30px 26px;box-shadow:var(--sh-3);
}
.auth-error{
  background:var(--risk-50);border:1px solid var(--risk-100);color:var(--risk-700);
  border-radius:var(--r-md);padding:12px 14px;font-size:16px;margin-bottom:18px;line-height:1.75;
}
.auth-foot{text-align:center;margin-top:20px;font-size:16px;color:var(--ink-3);line-height:1.85;}
.auth-foot a{color:var(--brand-700);font-weight:650;border-bottom:1.5px solid var(--brand-100);padding-bottom:1px;}
.auth-foot a:hover{border-color:var(--brand-500);}
.code-box{
  background:var(--warn-50);border:1px solid var(--warn-100);border-radius:var(--r-lg);
  padding:15px;font-size:16px;color:var(--warn-700);line-height:1.8;margin-bottom:18px;text-align:center;
}
.code-box strong{
  font-size:30px;letter-spacing:8px;display:block;margin-top:8px;color:var(--ink);
  direction:ltr;font-weight:800;
}
.code-input{
  text-align:center;font-size:28px;letter-spacing:12px;font-weight:800;
  direction:ltr;padding-right:14px;
}

/* -------------------------------------------------------------- پنل مدیریت */
.admin-body{background:var(--bg-app);}
.admin-bar{background:var(--grad-brand);color:#fff;padding:13px 0;box-shadow:var(--sh-2);}
.admin-bar .container{max-width:1060px;margin:0 auto;padding:0 18px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;}
.admin-bar .logo{color:#fff;}
.admin-bar a{color:#a9cfbc;font-size:16px;font-weight:650;}
.admin-bar a:hover,.admin-bar a.active{color:#fff;}
.admin-bar .spacer{margin-right:auto;}
.page-admin{max-width:1060px;margin:0 auto;padding:26px 18px 90px;}
.admin-table{
  width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);
  border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-2);
}
.admin-table th,.admin-table td{
  padding:13px 14px;text-align:right;font-size:16px;
  border-bottom:1px solid var(--line-soft);vertical-align:middle;
}
.admin-table th{background:var(--bg-sunken);font-weight:700;font-size:15px;color:var(--ink-3);}
.admin-table tr:last-child td{border-bottom:none;}
.admin-table tbody tr:hover{background:var(--surface-tint);}
.admin-table .num{direction:ltr;text-align:right;}
.chip{display:inline-block;font-size:15px;font-weight:700;padding:4px 11px;border-radius:var(--r-full);}
.chip-ok{background:var(--ok-50);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--ok-100);}
.chip-off{background:var(--bg-sunken);color:var(--ink-4);}
.chip-warn{background:var(--accent-50);color:var(--accent-700);box-shadow:inset 0 0 0 1px var(--accent-100);}
.chip-bad{background:var(--risk-50);color:var(--risk-700);box-shadow:inset 0 0 0 1px var(--risk-100);}
.inline-form{display:flex;gap:5px;align-items:center;}
.inline-form input{margin-bottom:0;padding:8px 10px;font-size:15px;width:72px;}
.inline-form .btn{padding:8px 12px;font-size:15px;}
.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:10px;margin-bottom:24px;}

/* ------------------------------------------------------------------- توست */
.toast{
  position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(22px);
  background:var(--brand-950);color:#fff;padding:13px 18px 13px 22px;
  border-radius:var(--r-full);font-size:16px;font-weight:600;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:70;
  display:flex;align-items:center;gap:14px;
  box-shadow:0 4px 8px rgba(7,48,31,.2),0 16px 40px -12px rgba(7,48,31,.7);
  max-width:calc(100vw - 32px);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);pointer-events:auto;}
.toast button{
  background:rgba(255,255,255,.12);border:none;color:#8fe0b6;font-family:inherit;
  font-weight:700;font-size:15.5px;cursor:pointer;padding:5px 13px;border-radius:var(--r-full);
  transition:background .14s;
}
.toast button:hover{background:rgba(255,255,255,.2);}

/* ------------------------------------------------------------------ موبایل */
@media (max-width:640px){
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .outcome-btn .kbd{display:none;}
  .topbar .container{gap:10px;padding:0 13px;}
  .tabs a{padding:8px 10px;font-size:15.5px;}
  .logo{font-size:18px;}
  .topbar-exit{font-size:15px;}
  .admin-table{display:block;overflow-x:auto;white-space:nowrap;}
  .page-narrow{padding:18px 15px 90px;}
  .page-wide{padding:20px 15px 90px;}
  .card{padding:20px 17px;border-radius:var(--r-lg);}
  .task-card{padding:24px 16px 20px;}
  .task-name{font-size:23px;}
  .field-row{grid-template-columns:1fr;gap:0;}
  h1{font-size:22px;}
  .headline-card .num{font-size:26px;}
}
@media (min-width:641px){
  .swipe-hint{display:none;}
}
@media (min-width:900px){
  .page-narrow{padding-top:40px;}
  .page-wide{padding-top:40px;}
}

/* کسانی که حرکت کمتر می خواهند */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important;}
}

/* ===========================================================================
   ماژول خرید مجدد
   =========================================================================== */

/* معیارها: هر عدد با تعریفش زیرش */
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;}
.metric-card{
  background:var(--grad-surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:18px 16px;box-shadow:var(--sh-1);
}
.metric-label{font-size:15.5px;color:var(--ink-3);font-weight:650;margin-bottom:6px;}
.metric-value{font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1.3;color:var(--ink);}
.metric-value.good{color:var(--brand-700);}
.metric-value.warn{color:var(--risk-700);}
.metric-means{font-size:15px;color:var(--ink-4);line-height:1.7;margin-top:8px;}

/* دسته بندی */
.seg-rows{display:flex;flex-direction:column;gap:2px;}
.seg-row{
  display:flex;align-items:center;gap:14px;padding:13px 10px;border-radius:var(--r-md);
  transition:background .14s;color:inherit;
}
.seg-row:hover{background:var(--surface-tint);}
.seg-main{flex:1;min-width:0;}
.seg-name{font-weight:700;font-size:17px;display:flex;align-items:center;gap:8px;}
.seg-hint{font-size:15px;color:var(--ink-4);margin-top:3px;}
.seg-dot{width:9px;height:9px;border-radius:50%;flex:none;}
.seg-dot.tone-neutral{background:var(--ink-4);}
.seg-dot.tone-warm{background:var(--accent-500);}
.seg-dot.tone-good{background:var(--brand-500);}
.seg-dot.tone-warn{background:var(--warn-500);}
.seg-dot.tone-bad{background:var(--risk-500);}
.seg-bar{
  flex:0 0 110px;height:8px;background:var(--bg-sunken);border-radius:var(--r-full);
  overflow:hidden;box-shadow:var(--sh-inset);
}
.seg-bar span{display:block;height:100%;background:var(--grad-green);border-radius:var(--r-full);}
.seg-count{flex:0 0 42px;text-align:left;font-weight:800;font-size:18px;}

.row-hint{font-size:15px;color:var(--ink-4);white-space:normal;max-width:260px;margin-top:3px;}

/* برچسب دسته روی مشتری */
.status-pill.seg-new{background:var(--bg-sunken);color:var(--ink-3);}
.status-pill.seg-first_buyer{background:var(--accent-50);color:var(--accent-700);box-shadow:inset 0 0 0 1px var(--accent-100);}
.status-pill.seg-becoming_loyal{background:var(--brand-50);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--brand-100);}
.status-pill.seg-loyal{background:var(--ok-50);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--ok-100);}
.status-pill.seg-at_risk{background:var(--warn-50);color:var(--warn-700);box-shadow:inset 0 0 0 1px var(--warn-100);}
.status-pill.seg-lost{background:var(--risk-50);color:var(--risk-700);box-shadow:inset 0 0 0 1px var(--risk-100);}

/* فهرست مشتری های ماژول */
.bulk-bar{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:12px 15px;margin-bottom:12px;box-shadow:var(--sh-1);position:sticky;top:64px;z-index:15;
}
.pick-all{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:650;margin:0;cursor:pointer;}
.pick-all input{width:18px;height:18px;margin:0;accent-color:var(--brand-600);}
.bulk-count{font-size:15.5px;color:var(--ink-3);margin-right:auto;}
.rp-rows{display:flex;flex-direction:column;gap:8px;}
.rp-row{
  display:flex;gap:12px;align-items:flex-start;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;box-shadow:var(--sh-1);
}
.rp-pick{margin:0;padding-top:2px;}
.rp-pick input{width:18px;height:18px;margin:0;accent-color:var(--brand-600);}
.rp-main{flex:1;min-width:0;}
.rp-name{font-weight:700;font-size:17px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;}
.rp-meta{font-size:15.5px;color:var(--ink-3);margin-top:4px;}
/* شماره تلفن داخل یک جمله فارسی باید جهتش جدا شود، وگرنه ارقامش جابه جا
   دیده می شوند. این یک باگ واقعی بود که فقط با نگاه کردن پیدا شد. */
.ltr-num{direction:ltr;unicode-bidi:isolate;display:inline-block;}
.rp-why{font-size:15px;color:var(--ink-3);margin-top:6px;line-height:1.7;}
.rp-because{color:var(--ink-4);}
.est-tag{display:inline-block;font-size:15px;font-weight:600;color:var(--ink-3);background:var(--line-soft);border-radius:6px;padding:1px 7px;}
.churn-low{color:var(--brand-700);}
.churn-unknown{color:var(--ink-3);}
.churn-medium{color:var(--warn-700);}
.churn-high{color:var(--risk-700);}
.var-chip{
  display:inline-block;background:var(--bg-sunken);border-radius:6px;padding:2px 7px;
  font-size:15px;font-family:inherit;color:var(--ink-2);margin:2px 2px 2px 0;direction:ltr;
}

/* صندوق پیام */
.msg-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:16px 18px;margin-bottom:10px;box-shadow:var(--sh-1);
}
.msg-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;flex-wrap:wrap;}
.msg-name{font-weight:700;font-size:17px;}
.msg-auto{font-size:15px;color:var(--ink-4);margin-right:8px;}
.msg-to{font-size:15px;color:var(--ink-4);direction:ltr;text-align:right;margin-bottom:10px;}
.msg-body{
  background:var(--bg-sunken);border-radius:var(--r-md);padding:13px 15px;
  font-size:16.5px;line-height:1.8;color:var(--ink-2);box-shadow:var(--sh-inset);
}
/* ارتفاع به اندازه متن باز می شود. فروشنده باید کل پیامی را که تایید می کند
   ببیند، از جمله پاورقی لغو در خط آخر. یک کادر با ارتفاع ثابت، خط آخر را
   می برید و فروشنده چیزی را تایید می کند که ندیده. */
.msg-body-edit{min-height:104px;margin-bottom:12px;overflow:hidden;resize:vertical;}
.msg-error{
  background:var(--risk-50);border:1px solid var(--risk-100);color:var(--risk-700);
  border-radius:var(--r-md);padding:10px 13px;font-size:15.5px;margin-top:10px;line-height:1.7;
}
.status-pill.msg-draft{background:var(--warn-50);color:var(--warn-700);box-shadow:inset 0 0 0 1px var(--warn-100);}
.status-pill.msg-queued{background:var(--accent-50);color:var(--accent-700);box-shadow:inset 0 0 0 1px var(--accent-100);}
.status-pill.msg-sent,.status-pill.msg-delivered{background:var(--ok-50);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--ok-100);}
.status-pill.msg-failed,.status-pill.msg-blocked{background:var(--risk-50);color:var(--risk-700);box-shadow:inset 0 0 0 1px var(--risk-100);}
.status-pill.msg-cancelled{background:var(--bg-sunken);color:var(--ink-4);}

/* تنظیمات */
.auto-row{
  display:flex;gap:16px;align-items:flex-start;justify-content:space-between;
  padding:18px 0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap;
}
.auto-row:last-of-type{border-bottom:none;}
.auto-info{flex:1;min-width:230px;}
.auto-info h3{margin-bottom:5px;}
.auto-goal{font-size:16px;color:var(--ink-2);margin:0 0 5px;line-height:1.7;}
.auto-why{font-size:15px;color:var(--ink-4);margin:0;line-height:1.7;}
.mode-pills{display:flex;gap:5px;flex:none;}
.mode-pill{
  border:1.5px solid var(--line-strong);background:var(--surface);border-radius:var(--r-full);
  padding:9px 14px;font-family:inherit;font-size:15.5px;font-weight:650;color:var(--ink-3);
  cursor:pointer;transition:all .14s;white-space:nowrap;
  min-height:44px;display:inline-flex;align-items:center;justify-content:center;
}
.mode-pill:hover{border-color:var(--brand-500);}
.mode-pill.on{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-800);box-shadow:0 0 0 1px var(--brand-500);}
.conf-block{padding:16px 0;border-bottom:1px solid var(--line-soft);}
.conf-block:last-of-type{border-bottom:none;margin-bottom:16px;}
.save-note{
  background:var(--ok-50);border:1px solid var(--ok-100);color:var(--brand-800);
  border-radius:var(--r-md);padding:11px 14px;font-size:16px;font-weight:650;margin-bottom:16px;
}

@media (max-width:760px){
  .metric-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:640px){
  .metric-grid{grid-template-columns:1fr;}
  .seg-bar{flex:0 0 60px;}
  .auto-row{flex-direction:column;gap:12px;}
  .mode-pills{width:100%;}
  .mode-pill{flex:1;padding:9px 6px;font-size:15px;}
  .bulk-bar{top:58px;}
}

/* --- کدهای تخفیف صادر شده (ماژول خرید مجدد) --- */
/* یادآوری بالای پیش نویس ها: کدی که بیرون است و فروشنده خبر ندارد، دو بار
   تخفیف دادن به یک نفر است. پس برجسته ولی بدون هشدار قرمز نشان داده می شود. */
.code-reminder{
  background:var(--warn-50);border:1px solid var(--warn-100);border-radius:var(--r-md);
  padding:13px 15px;margin-bottom:14px;font-size:16px;line-height:1.85;color:var(--ink-2);
}
.code-reminder .link-btn{margin-right:4px;}
/* یادآوری کد روی پیش نویس. این متن هیچ وقت وارد پیامک مشتری نمی شود. */
.code-hint{
  background:var(--warn-50);border:1px solid var(--warn-100);border-radius:var(--r-sm);
  padding:9px 12px;margin-bottom:10px;font-size:15.5px;color:var(--ink-2);
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.code-row{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:11px 0;border-bottom:1px solid var(--line-soft);
}
.code-row:last-child{border-bottom:none;}
.code-main{display:flex;align-items:center;gap:9px;flex-wrap:wrap;flex:1 1 180px;}
.code-value{
  font-family:inherit;font-weight:700;font-size:16.5px;letter-spacing:.05em;
  background:var(--line-soft);border-radius:var(--r-sm);padding:3px 10px;
}
.code-who{font-size:16px;color:var(--ink-2);font-weight:600;}
.code-pct{font-size:15.5px;color:var(--ink-3);}
.code-meta{font-size:15.5px;color:var(--ink-3);flex:1 1 150px;}
.code-act{flex:none;}
.code-row.is-used{opacity:.62;}
.code-row.is-expired .code-meta{color:var(--ink-4);}

/* --- تنظیمات پیشرفته: جمع شده --- */
/* اولین اجرا باید ساده باشد. این بخش باز نیست تا کسی که تازه آمده با آستانه ها
   و تنظیم ریز هشت اتوماسیون روبرو نشود، ولی پنهان هم نیست. */
details.advanced{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--sh-1);margin-bottom:14px;overflow:hidden;
}
details.advanced > summary{
  cursor:pointer;padding:16px 18px;font-weight:700;font-size:17px;color:var(--ink-2);
  list-style:none;display:flex;align-items:center;gap:8px;
}
details.advanced > summary::-webkit-details-marker{display:none;}
details.advanced > summary::after{
  content:'';margin-right:auto;width:9px;height:9px;flex:none;
  border-left:2px solid var(--ink-4);border-bottom:2px solid var(--ink-4);
  transform:rotate(-45deg);transition:transform .16s;
}
details.advanced[open] > summary::after{transform:rotate(135deg);}
details.advanced > summary:hover{background:var(--line-soft);}
.advanced-note{
  margin:0;padding:0 18px 14px;color:var(--ink-3);font-size:16px;line-height:1.85;
}
details.advanced .card{box-shadow:none;border-radius:0;border-left:none;border-right:none;border-bottom:none;}

/* --- جدول ماه به ماه --- */
.month-table{display:flex;flex-direction:column;}
.month-row{
  display:grid;grid-template-columns:1.3fr 1fr 1fr 1.4fr;gap:8px;
  padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:16px;color:var(--ink-2);
}
.month-row:last-child{border-bottom:none;}
.month-row.month-head{font-weight:700;color:var(--ink-3);font-size:15.5px;}
@media (max-width:480px){
  .month-row{grid-template-columns:1.2fr .8fr .8fr 1.2fr;gap:6px;font-size:15px;}
}

/* --- انتخاب تاریخ شمسی --- */
/* سه فهرست کنار هم به جای تقویم میلادی سیستم. ترتیب روز، ماه، سال است چون
   فارسی زبان تاریخ را همین طور می گوید: «دوازده آبان ۱۴۰۵». */
.jdate{display:flex;gap:8px;margin-bottom:14px;}
.jdate select{flex:1 1 0;min-width:0;margin:0;}
.jdate select:last-child{flex:0 0 32%;}

/* --- پنل اینستاگرام --- */
/* کارت اینستاگرام از کارت کارتابل جداست: آنجا شماره می گیری و حرف می زنی،
   اینجا متن را کپی می کنی و خودت می فرستی. */
.ig-card{margin-bottom:16px;}
.ig-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px;}
.ig-name{margin:0 0 3px;font-size:19px;}
.ig-user{font-size:16px;color:var(--ink-3);font-weight:600;}
.ig-text{min-height:92px;margin-bottom:6px;overflow:hidden;resize:vertical;}
/* بخش «فرستادم»: جدا شده با یک خط، چون کاری است که بعد از رفتن به اینستاگرام
   و برگشتن انجام می شود، نه همزمان با کپی کردن. */
.ig-after{margin-top:16px;padding-top:14px;border-top:1px solid var(--line-soft);}

/* --- هوش مصنوعی «به مشتری چی بگم؟» --- */
.ai-box{margin:16px 0 4px;}
.ai-answer:empty{display:none;}
.ai-answer{
  margin-top:12px;background:var(--bg-sunken);border:1px solid var(--line);
  border-radius:var(--r-md);padding:14px 15px;
}
/* متن جواب با همان شکست خط هایی که آمده نشان داده می شود، چون ساختارش
   (وضعیت، متن پیشنهادی، دلیل) در همان شکست خط هاست. */
.ai-text{white-space:pre-wrap;font-size:16.5px;line-height:1.95;color:var(--ink-2);}
.ai-foot{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;
  margin-top:12px;padding-top:10px;border-top:1px solid var(--line-soft);
  font-size:15.5px;color:var(--ink-3);
}
.ai-vote .link-btn{margin-right:4px;}
.ai-note{margin-top:8px;font-size:15px;color:var(--ink-4);line-height:1.8;}
.ai-error{font-size:16px;color:var(--risk-700);line-height:1.9;}
.ai-quota{font-size:15px;color:var(--ink-4);}

/* --- صفحه اول ماژول خرید مجدد --- */
/* یک جمله بالای صفحه که می گوید الان چه کسی به توجه نیاز دارد. این اولین
   چیزی است که فروشنده می بیند، پس باید جواب «امروز چه کار کنم» باشد. */
.needs-now{
  margin-bottom:14px;font-size:17px;line-height:1.95;color:var(--ink-2);
  text-align:center;
}
.draft-row{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:16px;
}
.draft-row:last-of-type{border-bottom:none;margin-bottom:12px;}
.draft-who{font-weight:700;color:var(--ink-2);}
.draft-why{font-size:15.5px;color:var(--ink-3);}

/* دکمه های نتیجه برای مشتری بدون شماره تا قبل از «فرستادم» پنهان اند، چون
   «جواب نداد» قبل از فرستادن پیام هیچ معنایی ندارد. */
.is-hidden{display:none !important;}
/* دکمه پیام همان شکل دکمه تماس را دارد تا جای اقدام اصلی عوض نشود */
button.call-btn{font-family:inherit;cursor:pointer;}
button.call-btn[disabled]{opacity:.55;cursor:default;}

/* برچسب کانال. فقط متن، از رنگ های همین پالت، بدون ایموجی. */
.tag-ig{background:var(--accent-50);color:var(--accent-700);box-shadow:inset 0 0 0 1px var(--accent-100);}
.task-tag.tag-ig{background:var(--accent-50);color:var(--accent-700);}

/* --- منوی راه اندازی هوش مصنوعی --- */
.wz-top{margin-bottom:14px;}
.wz-bar{height:5px;background:var(--line-soft);border-radius:var(--r-full);overflow:hidden;}
.wz-bar span{display:block;height:100%;background:var(--grad-green);transition:width .2s;}
.wz-count{margin-top:7px;text-align:center;font-size:15px;color:var(--ink-3);}
/* گزینه های بزرگ لمسی. روی موبایل یک ستون، چون عرض کم است و متن ها فارسی. */
.wz-options{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;}
.wz-opt{
  min-height:48px;padding:12px 15px;font-family:inherit;font-size:16.5px;font-weight:600;
  text-align:right;background:var(--surface);color:var(--ink-2);cursor:pointer;
  border:1.5px solid var(--line-strong);border-radius:var(--r-md);transition:all .14s;
}
.wz-opt:hover{border-color:var(--brand-500);}
.wz-opt.on{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-800);box-shadow:inset 0 0 0 1px var(--brand-500);}

/* --- دکمه قفل شده --- */
.ai-locked{color:var(--ink-3);}
.ai-lock-note{margin-top:6px;text-align:center;font-size:15px;color:var(--ink-4);}

/* --- بر چه اساسی --- */
.ai-basis{margin-top:10px;}
.ai-basis summary{
  cursor:pointer;font-size:15.5px;font-weight:650;color:var(--brand-700);
  list-style:none;padding:8px 0;min-height:44px;display:flex;align-items:center;
}
.ai-basis summary::-webkit-details-marker{display:none;}
.ai-basis ul{margin:0 0 4px;padding-right:20px;font-size:16px;line-height:1.9;color:var(--ink-2);}

/* --- متن پیشنهادی --- */
.ai-draft{margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);}
.ai-draft textarea{min-height:76px;overflow:hidden;resize:vertical;}

/* --- کارت سوال هوش مصنوعی --- */
.ai-ask-card{font-size:16.5px;line-height:1.9;}
.ni-why{font-size:15px;color:var(--ink-4);margin-bottom:6px;}
.ni-question{font-weight:700;color:var(--ink-2);margin-bottom:12px;}
.ni-options{display:flex;flex-direction:column;gap:8px;}
.ni-opt{
  min-height:48px;padding:12px 15px;font-family:inherit;font-size:16.5px;font-weight:600;
  text-align:right;background:var(--surface);color:var(--ink-2);cursor:pointer;
  border:1.5px solid var(--line-strong);border-radius:var(--r-md);transition:all .14s;
}
.ni-opt:hover{border-color:var(--brand-500);background:var(--brand-50);}

/* ==========================================================================
   مرحله ۱۴، فاز ۲: کارتابل، یک مشتری در هر لحظه
   رنگ ها معنا دارند: سبز = اقدام، بنفش = هوش مصنوعی، خاکستری = پیشنهاد و
   خلاصه قاعده محور پیشینو.
   ========================================================================== */
:root{
  --ai-700:#4c2f9e; --ai-600:#6040c0; --ai-500:#7a5ce0;
  --ai-100:#e4dcf8; --ai-50:#f6f3fe;
  --bar-h:84px;
}
.q-page{background:var(--bg-app);}
.q-head{
  display:grid;grid-template-columns:48px 1fr 48px;align-items:center;
  max-width:480px;margin:0 auto;padding:8px 10px 0;
  padding-top:calc(8px + env(safe-area-inset-top,0px));
}
.q-menu{
  width:48px;height:48px;border-radius:var(--r-full);border:1px solid var(--line);
  background:var(--surface);color:var(--ink-2);display:inline-flex;
  align-items:center;justify-content:center;cursor:pointer;padding:0;
}
.q-menu:active{background:var(--line-soft);}
.q-count{text-align:center;font-weight:800;font-size:17px;color:var(--ink);}
.q-progress{
  display:flex;gap:6px;max-width:480px;margin:8px auto 0;padding:0 18px;height:12px;
  align-items:center;
}
.q-progress .seg{flex:1;height:8px;border-radius:var(--r-full);background:var(--line);}
.q-progress .seg.done{background:var(--brand-600);}
.q-progress .seg.now{background:var(--brand-300);}
.q-progress.cont{display:block;padding:0;margin-inline:18px;max-width:none;}
.q-progress.cont .track{height:8px;border-radius:var(--r-full);background:var(--line);overflow:hidden;}
.q-progress.cont .fill{height:100%;background:var(--brand-600);border-radius:var(--r-full);}
@media (min-width:516px){ .q-progress.cont{max-width:444px;margin-inline:auto;} }

.q-main{
  max-width:480px;margin:0 auto;
  /* ته صفحه جای دکمه گرد را هم دارد تا وقتی تا آخر اسکرول شود، چیزی زیرش نماند */
  padding:14px 16px calc(var(--bar-h) + 96px + env(safe-area-inset-bottom,0px));
}
.q-card{display:flex;flex-direction:column;gap:12px;animation:cardIn .22s ease both;}
.q-card.leaving{animation:cardOut .14s ease both;}
.q-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.q-who{min-width:0;flex:1;text-align:right;}
.q-card .task-name{
  font-size:26px;font-weight:800;line-height:1.35;margin:0;letter-spacing:-.02em;
  text-align:right;overflow-wrap:anywhere;
}
.q-reason{font-size:15.5px;color:var(--ink-3);margin-top:2px;line-height:1.6;}
.q-phone{
  display:inline-block;direction:ltr;font-size:21px;font-weight:800;color:var(--ink);
  letter-spacing:.02em;margin-top:2px;
}
.q-full{
  flex:0 0 auto;min-height:44px;display:inline-flex;align-items:center;justify-content:center;
  padding:0 14px;border-radius:var(--r-full);border:1px solid var(--line-strong);
  background:var(--surface);color:var(--ink-2);font-family:inherit;font-size:15px;
  font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap;
}
.q-full:active{background:var(--line-soft);}

/* خلاصه: خاکستری برای پیشینو، بنفش برای هوش مصنوعی */
.q-summary{
  background:var(--bg-sunken);border-radius:var(--r-lg);padding:14px 16px;
  border:1px solid var(--line-soft);
}
.q-summary.ai{background:var(--ai-50);border-color:var(--ai-100);}
.q-summary-title{font-size:15px;font-weight:800;color:var(--ink-3);margin-bottom:6px;}
.q-summary.ai .q-summary-title{color:var(--ai-700);}
.q-line{font-size:16px;color:var(--ink-2);line-height:1.7;padding-right:14px;position:relative;}
.q-line::before{
  content:'';position:absolute;right:0;top:.82em;width:6px;height:6px;border-radius:50%;
  background:var(--ink-4);
}
.q-summary.ai .q-line::before{background:var(--ai-500);}
/* وقتی پیشنهاد باز است، خلاصه کوتاه می شود تا جا باشد */
.q-card.sug-open .q-summary .q-line:nth-child(n+4){display:none;}
.q-card.sug-open .q-summary{padding:10px 14px;}

.q-phone2{
  display:flex;align-items:center;gap:10px;min-height:56px;padding:6px 12px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
}
.q-badge{
  flex:0 0 28px;width:28px;height:28px;border-radius:50%;background:var(--bg-sunken);
  color:var(--ink-2);font-size:15px;font-weight:800;display:inline-flex;
  align-items:center;justify-content:center;
}
.q-phone2 .num{flex:1;direction:ltr;text-align:right;font-size:18px;font-weight:800;}
.q-mini{
  flex:0 0 auto;min-width:44px;min-height:44px;border-radius:var(--r-md);
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-2);
  display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;
  font-family:inherit;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;
}
.q-mini.go{background:var(--brand-600);border-color:var(--brand-600);color:#fff;}
.q-mini.done{background:var(--ok-50);border-color:var(--brand-300);color:var(--brand-700);}

.q-suggest{
  width:100%;min-height:56px;border-radius:var(--r-lg);border:1.5px solid var(--line-strong);
  background:var(--surface);color:var(--ink-2);font-family:inherit;font-size:17px;font-weight:800;
  display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;
}
.q-suggest:disabled{opacity:.7;cursor:default;}
.q-suggest.ai{border-color:var(--ai-600);background:var(--ai-50);color:var(--ai-700);}
.q-suggest.ai:active{background:var(--ai-100);}
.q-suggest.rule:active{background:var(--line-soft);}
.q-suggest[aria-expanded="true"]{box-shadow:var(--ring);}
.q-sug-box{
  display:none;border-radius:var(--r-lg);padding:14px 16px;font-size:16px;line-height:1.85;
  color:var(--ink-2);text-align:right;
}
.q-sug-box.open{display:block;animation:fadeDown .18s ease both;}
.q-sug-box.rule{background:#f1f3f2;border:1px solid var(--line);}
.q-sug-box.ai{background:var(--ai-50);border:1px solid var(--ai-100);}
.q-sug-label{font-size:15px;font-weight:800;color:var(--ink-3);margin-bottom:4px;}
.q-sug-box.ai .q-sug-label{color:var(--ai-700);}
.q-sug-box .ai-answer{margin-top:0;}
.q-sug-note{font-size:15px;color:var(--ink-4);margin-top:8px;line-height:1.7;}

.q-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.q-soft{
  min-height:48px;border-radius:var(--r-lg);border:1px solid var(--line-strong);
  background:transparent;color:var(--ink-2);font-family:inherit;font-size:16px;font-weight:700;
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;
}
.q-soft:active{background:var(--line-soft);}
.q-soft:disabled{opacity:.55;}

/* نوار ثابت پایین: اقدام اصلی همیشه زیر انگشت شست */
.q-bar{
  position:fixed;right:0;left:0;bottom:0;z-index:40;
  background:rgba(255,255,255,.96);border-top:1px solid var(--line);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px));
}
.q-bar-in{max-width:480px;margin:0 auto;display:flex;gap:10px;}
.q-call{
  flex:1;min-height:64px;border-radius:var(--r-lg);border:none;color:#fff;
  background:var(--grad-green);font-family:inherit;font-size:20px;font-weight:800;
  display:flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;
  cursor:pointer;box-shadow:0 6px 16px -6px rgba(20,96,68,.6);
}
.q-call:active{transform:translateY(1px);}
.q-call:disabled,.q-call.off{background:var(--line-strong);box-shadow:none;color:var(--ink-2);}
.q-copy{
  flex:0 0 84px;width:84px;min-height:64px;border-radius:var(--r-lg);
  border:1.5px solid var(--brand-600);background:var(--surface);color:var(--brand-700);
  font-family:inherit;font-size:15px;font-weight:800;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:2px;cursor:pointer;padding:0;
}
.q-copy:active{background:var(--ok-50);}
.q-copy.done{background:var(--ok-50);}

/* دکمه گرد «ثبت مشتری جدید» */
.q-fab{
  position:fixed;z-index:45;width:56px;height:56px;border-radius:50%;border:none;
  left:max(16px,calc(50vw - 232px));
  bottom:calc(16px + env(safe-area-inset-bottom,0px));
  background:var(--grad-green);color:#fff;cursor:pointer;display:flex;
  align-items:center;justify-content:center;padding:0;
  box-shadow:0 8px 20px -6px rgba(20,96,68,.7),0 2px 6px rgba(7,48,31,.25);
}
.q-fab:active{transform:scale(.96);}
body.has-bar .q-fab{bottom:calc(var(--bar-h) + 12px + env(safe-area-inset-bottom,0px));}
body.sheet-open .q-fab{display:none;}

.q-empty{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);
  padding:34px 22px;text-align:center;box-shadow:var(--sh-2);
}
.q-empty h2{font-size:22px;margin:0 0 10px;}
.q-empty p{color:var(--ink-3);font-size:16px;line-height:1.85;margin:0 0 6px;}
.q-empty .q-soft{margin-top:14px;width:100%;}

/* برگه منو */
.q-menu-list{display:flex;flex-direction:column;gap:2px;margin:4px 0 6px;}
.q-menu-link{
  display:flex;align-items:center;min-height:52px;padding:0 14px;border-radius:var(--r-md);
  color:var(--ink);font-size:17px;font-weight:700;text-decoration:none;
}
.q-menu-link:active,.q-menu-link:hover{background:var(--line-soft);}
.q-menu-link.muted{color:var(--ink-3);font-weight:600;}

/* برگه ثبت نتیجه */
.q-result-name{text-align:center;color:var(--ink-3);font-size:16px;margin:0 0 12px;}
.sheet .outcome-grid{margin-top:12px;}
.sheet .secondary-actions{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;}

.q-reason.ai{color:var(--ai-700);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ai-mini{display:inline-flex;vertical-align:-3px;margin-inline-end:5px;color:var(--ai-500);}
.ai-mini svg{width:16px;height:16px;}
.q-reason.late{color:var(--risk-700);font-weight:650;}
.q-card.is-busy .q-soft{opacity:.6;}

/* گوشی کوتاه (مثلا ۳۶۰ در ۶۴۰): همه چیز فشرده تر تا کارت در یک صفحه جا شود */
@media (max-height:700px){
  :root{--bar-h:76px;}
  .q-head{padding-top:calc(4px + env(safe-area-inset-top,0px));}
  .q-menu{width:44px;height:44px;}
  .q-main{padding-top:8px;}
  .q-card{gap:8px;}
  .q-card .task-name{font-size:23px;line-height:1.3;}
  .q-reason{font-size:15px;line-height:1.5;}
  .q-phone{font-size:19px;}
  .q-summary{padding:9px 14px;}
  .q-summary-title{margin-bottom:2px;}
  .q-line{font-size:15px;line-height:1.55;}
  .q-phone2{min-height:52px;padding:4px 10px;}
  .q-suggest{min-height:52px;}
  .q-soft{min-height:46px;}
  .q-bar{padding-top:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));}
  .q-call,.q-copy{min-height:60px;}
}
.q-sug-box .q-suggest{margin-top:12px;}

/* ==========================================================================
   مرحله ۱۴، فاز ۳: ثبت نتیجه با پنج دکمه
   ========================================================================== */
/* پیام «ثبت شد / برگردانید» بالای صفحه و توی جریان صفحه: هیچ دکمه ای را نمی پوشاند */
.q-notice{
  display:none;align-items:center;justify-content:space-between;gap:12px;
  background:var(--brand-950);color:#fff;border-radius:var(--r-lg);
  padding:10px 14px;margin:0 0 12px;font-size:16px;font-weight:600;line-height:1.6;
}
.q-notice.show{display:flex;animation:fadeDown .18s ease both;}
.q-notice button{
  flex:0 0 auto;min-height:44px;padding:0 16px;border-radius:var(--r-full);border:none;
  background:rgba(255,255,255,.14);color:#9be8c0;font-family:inherit;font-size:16px;
  font-weight:800;cursor:pointer;
}
.q-notice button:active{background:rgba(255,255,255,.24);}

.result-list{display:flex;flex-direction:column;gap:8px;margin:6px 0 14px;}
.result-btn{
  width:100%;min-height:56px;border-radius:var(--r-lg);border:1.5px solid var(--line-strong);
  background:var(--surface);color:var(--ink);font-family:inherit;font-size:17px;font-weight:800;
  cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 14px;
}
.result-btn:active{transform:translateY(1px);}
.result-btn.tone-warm{border-color:#e0cfa3;}
.result-btn.tone-won{border-color:var(--brand-300);}
.result-btn.on{
  background:var(--ok-50);border-color:var(--brand-600);color:var(--brand-800);
  box-shadow:0 0 0 3px rgba(31,138,96,.18);
}
.sold-amount{margin:-4px 0 10px;}
.ai-hint{
  display:flex;align-items:flex-start;gap:8px;margin-top:8px;padding:10px 12px;
  background:var(--ai-50);border:1px solid var(--ai-100);border-radius:var(--r-md);
  color:var(--ai-700);font-size:15px;line-height:1.7;text-align:right;
}
.ai-hint svg{flex:0 0 20px;margin-top:3px;}
.q-later{
  display:block;width:100%;min-height:48px;margin-top:6px;background:transparent;border:none;
  color:var(--ink-3);font-family:inherit;font-size:16px;font-weight:700;cursor:pointer;
}
.q-later:active{color:var(--ink);}
@media (max-height:700px){
  .result-btn{min-height:56px;}
  .sheet textarea{min-height:64px;}
}

/* ==========================================================================
   مرحله ۱۴، فاز ۴: خرید مجدد
   همان زبان بصری برنامه: کارت های سفید، سبز برای اقدام، خاکستری برای توضیح.
   اول موبایل. هیچ منطقی عوض نشده، فقط ارائه.
   ========================================================================== */
.rp-head h1{margin-bottom:6px;}
.rp-head .subtitle{margin-bottom:14px;}

/* خط خلاصه بالای داشبورد */
.rp-now{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 16px;margin-bottom:14px;box-shadow:var(--sh-1);
}
.rp-now.alert{border-color:#e8c9a0;background:#fff8ee;}
.rp-now-text{flex:1 1 220px;font-size:16.5px;line-height:1.8;color:var(--ink);text-align:right;}
.rp-now .btn{flex:0 0 auto;min-height:48px;}

/* شش کارت آماری: دو ستون روی موبایل، سه ستون روی کامپیوتر */
.stat-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px;}
@media (min-width:900px){ .stat-grid2{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;} }
.stat-card{
  position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 14px 12px;box-shadow:var(--sh-1);text-align:right;min-width:0;
  display:flex;flex-direction:column;gap:4px;
}
.stat-title{font-size:15px;font-weight:700;color:var(--ink-3);padding-left:40px;line-height:1.5;}
.stat-value{font-size:26px;font-weight:800;color:var(--ink);line-height:1.35;letter-spacing:-.02em;overflow-wrap:anywhere;}
.stat-value.good{color:var(--brand-700);}
.stat-value.warn{color:var(--risk-700);}
.stat-card.unknown .stat-value{font-size:17px;font-weight:700;color:var(--ink-4);line-height:1.7;}
.stat-reason{font-size:15px;color:var(--ink-3);line-height:1.6;}
.stat-card.unknown .stat-reason{color:var(--ink-4);}
.stat-card.unknown{background:var(--bg-sunken);box-shadow:none;}
.stat-q{
  position:absolute;top:2px;left:2px;width:44px;height:44px;border:none;background:transparent;
  cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;
}
.stat-q span{
  width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-strong);color:var(--ink-3);
  font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;background:var(--surface);
}
.stat-q:active span{background:var(--line-soft);}
.est-tag{font-size:15px;}

/* کارت های عمومی این بخش */
.rp-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:16px;margin-bottom:14px;box-shadow:var(--sh-1);text-align:right;
}
.rp-card h2{font-size:19px;margin:0 0 4px;}
.rp-card .rp-sub{font-size:15.5px;color:var(--ink-3);line-height:1.7;margin:0 0 12px;}
.rp-actions{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 18px;}
.rp-actions .btn{flex:1 1 150px;min-height:48px;}

/* اثر اتوماسیون ها: کارت، نه جدول */
.impact-list{display:grid;grid-template-columns:1fr;gap:10px;}
@media (min-width:900px){ .impact-list{grid-template-columns:1fr 1fr;} }
.impact-card{border:1px solid var(--line-soft);border-radius:var(--r-md);padding:12px 14px;background:var(--bg-sunken);}
.impact-name{font-weight:800;font-size:16.5px;margin-bottom:8px;}
.impact-cells{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px;}
.impact-cells div{font-size:15px;color:var(--ink-3);}
.impact-cells b{display:block;font-size:17px;color:var(--ink);}

/* ماه به ماه روی موبایل کارت می شود */
@media (max-width:640px){
  .month-table .month-head{display:none;}
  .month-table .month-row{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line-soft);}
  .month-table .month-row span:first-child{grid-column:1 / -1;font-weight:800;}
}

/* اتوماسیون ها: کارت، کلید روشن و خاموش، کنترل دوقسمتی */
.auto-group-title{font-size:16px;font-weight:800;color:var(--ink-2);margin:16px 0 8px;display:flex;align-items:center;gap:8px;}
.auto-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 14px 12px;margin-bottom:10px;box-shadow:var(--sh-1);
}
.auto-card.is-off{background:var(--bg-sunken);box-shadow:none;}
.auto-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.auto-text{min-width:0;flex:1;text-align:right;}
.auto-title{display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
.auto-title h3{margin:0;font-size:17.5px;}
.auto-line{margin:4px 0 0;font-size:15.5px;color:var(--ink-3);line-height:1.7;}
.auto-badge{
  display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:var(--r-full);
  background:#fff1dc;color:#8a4b08;font-size:15px;font-weight:800;border:1px solid #f0d3a6;
}
.auto-badge[hidden]{display:none;}
/* کلید روشن و خاموش، ۴۴ پیکسل لمسی */
.switch{
  flex:0 0 auto;position:relative;width:60px;height:44px;border:none;background:transparent;
  cursor:pointer;padding:0;
}
.switch::before{
  content:'';position:absolute;top:8px;right:0;width:56px;height:30px;border-radius:var(--r-full);
  background:var(--line-strong);transition:background .18s;
}
.switch .knob{
  position:absolute;top:11px;right:3px;width:24px;height:24px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .18s;
}
.switch[aria-checked="true"]::before{background:var(--brand-600);}
.switch[aria-checked="true"] .knob{transform:translateX(-26px);}
.switch:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-full);}
/* کنترل دوقسمتی: حالت انتخاب شده روشن و واضح */
.seg2{
  display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:12px;padding:4px;
  background:var(--bg-sunken);border-radius:var(--r-lg);border:1px solid var(--line-soft);
}
.seg2[hidden]{display:none;}
.seg2 .mode-pill{
  min-height:48px;border-radius:var(--r-md);border:1.5px solid transparent;background:transparent;
  color:var(--ink-3);font-family:inherit;font-size:15.5px;font-weight:700;cursor:pointer;padding:4px 8px;line-height:1.4;
}
.seg2 .mode-pill.on{
  background:var(--surface);color:var(--brand-800);border-color:var(--brand-600);font-weight:800;
  box-shadow:0 1px 4px rgba(7,48,31,.12);
}
details.auto-off-group > summary{
  list-style:none;cursor:pointer;min-height:48px;display:flex;align-items:center;justify-content:space-between;
  font-size:16px;font-weight:800;color:var(--ink-2);padding:0 4px;
}
details.auto-off-group > summary::-webkit-details-marker{display:none;}
details.auto-off-group > summary::after{content:'';width:10px;height:10px;border-left:2.5px solid var(--ink-3);border-bottom:2.5px solid var(--ink-3);transform:rotate(-45deg);margin-left:6px;transition:transform .18s;}
details.auto-off-group[open] > summary::after{transform:rotate(135deg);}

/* مشتری ها: هر ردیف یک کارت، توضیح داخل «چرا؟» */
.rp-bar{
  position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:rgba(255,255,255,.97);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:8px 10px;margin:0 0 12px;box-shadow:var(--sh-2);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.rp-all{
  display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:var(--r-full);
  border:1.5px solid var(--brand-600);background:var(--ok-50);color:var(--brand-800);
  font-size:15.5px;font-weight:800;cursor:pointer;margin:0;
}
.rp-all input{width:20px;height:20px;margin:0;accent-color:var(--brand-600);}
.rp-count{flex:1 1 90px;font-size:15.5px;color:var(--ink-2);font-weight:700;text-align:center;}
.rp-bar .btn{min-height:44px;flex:0 0 auto;}
.rp-bar .btn:disabled{background:var(--line);color:var(--ink-3);box-shadow:none;border-color:transparent;}
.rp-list{display:flex;flex-direction:column;gap:10px;}
.rp-item{
  display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:12px;box-shadow:var(--sh-1);
}
.rp-item .rp-pick{flex:0 0 44px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;margin:0;cursor:pointer;}
.rp-item .rp-pick input{width:22px;height:22px;margin:0;accent-color:var(--brand-600);}
.rp-body{flex:1;min-width:0;text-align:right;}
.rp-line1{display:flex;align-items:center;flex-wrap:wrap;gap:8px;}
.rp-line1 a{font-size:17.5px;font-weight:800;color:var(--ink);text-decoration:none;}
.rp-line2{margin-top:2px;font-size:15.5px;color:var(--ink-3);line-height:1.7;}
.rp-phone{display:flex;align-items:center;gap:8px;margin-top:2px;}
.rp-phone .ltr-num{font-size:16.5px;font-weight:700;color:var(--ink);}
.rp-copy{
  min-width:44px;min-height:44px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);
  color:var(--ink-2);font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;padding:0 12px;
  display:inline-flex;align-items:center;justify-content:center;
}
.rp-copy.done{background:var(--ok-50);border-color:var(--brand-300);color:var(--brand-700);}
details.rp-why-box{margin-top:6px;}
details.rp-why-box > summary{
  list-style:none;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;gap:6px;
  color:var(--brand-700);font-size:15.5px;font-weight:800;
}
details.rp-why-box > summary::-webkit-details-marker{display:none;}
details.rp-why-box > summary::after{content:'';width:8px;height:8px;border-left:2.2px solid currentColor;border-bottom:2.2px solid currentColor;transform:rotate(-45deg);transition:transform .18s;}
details.rp-why-box[open] > summary::after{transform:rotate(135deg);}
.rp-why-body{background:var(--bg-sunken);border-radius:var(--r-md);padding:10px 12px;font-size:15px;line-height:1.85;color:var(--ink-2);}
.rp-why-body p{margin:0 0 6px;}
.rp-why-body p:last-child{margin:0;}

/* صندوق پیام */
.msg-pick{flex:0 0 44px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;margin:0;cursor:pointer;}
.msg-pick input{width:22px;height:22px;margin:0;accent-color:var(--brand-600);}
.msg-top{display:flex;align-items:flex-start;gap:8px;}
.msg-top .msg-head{flex:1;min-width:0;}
.msg-reason{font-size:15.5px;color:var(--ink-3);margin-top:2px;}
.msg-preview{
  margin:8px 0;font-size:16px;line-height:1.85;color:var(--ink-2);background:var(--bg-sunken);
  border-radius:var(--r-md);padding:10px 12px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;
  white-space:pre-wrap;
}
.msg-preview.open{display:block;-webkit-line-clamp:unset;}
.msg-edit-area{display:none;margin:8px 0;}
.msg-edit-area.open{display:block;}
.msg-card .btn-row .btn{flex:1 1 130px;min-height:44px;}
.msg-top .msg-head{display:block;}

/* ==========================================================================
   مرحله ۱۴، فاز ۵: هویت هوش مصنوعی
   همه جا یکی است: جرقه، برچسب «هوش مصنوعی»، بنفش، کادر ملایم.
   پیشنهاد قاعده محور پیشینو برعکس، خاکستری و کم رنگ با برچسب کوچک است.
   ========================================================================== */
.ai-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;}
.ai-badge{
  display:inline-flex;align-items:center;gap:6px;color:var(--ai-700);
  font-size:15.5px;font-weight:800;line-height:1.4;
}
.ai-badge svg{flex:0 0 20px;color:var(--ai-600);}
.ai-sample-tag{
  display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:var(--r-full);
  border:1.5px dashed var(--ai-600);color:var(--ai-700);background:#fff;font-size:15px;font-weight:800;
}
.ai-sample-note{margin-top:10px;font-size:15px;line-height:1.8;color:var(--ai-700);}
.ai-working{display:flex;align-items:center;gap:10px;font-size:16.5px;color:var(--ai-700);padding:6px 0;}
.ai-working .spinner{border-color:rgba(96,64,192,.25);border-top-color:var(--ai-600);}
.ai-lock-note{margin-top:6px;font-size:15px;color:var(--ai-700);text-align:center;}
.q-summary.ai .ai-head{margin-bottom:6px;}
.q-summary.ai{border-width:1.5px;}

/* پیشنهاد پیشینو: کم رنگ، با برچسب کوچک. چیزی بنفش در آن نیست. */
.rule-tag{
  display:inline-block;font-size:15px;font-weight:700;color:var(--ink-4);
  background:var(--line-soft);border-radius:var(--r-full);padding:1px 10px;margin-bottom:6px;
}
.q-sug-box.rule{background:#f4f6f5;border-color:var(--line-soft);color:var(--ink-3);}

/* کارت هوش مصنوعی در پرونده مشتری */
.ai-card{
  background:var(--ai-50);border:1.5px solid var(--ai-100);border-radius:var(--r-lg);
  padding:14px 16px;margin-bottom:14px;text-align:right;
}
.ai-card[hidden]{display:none;}
.ai-card .q-suggest{margin-top:10px;}
.ai-card .q-sug-box{margin-top:10px;background:#fff;}
.ai-card .q-summary.ai{margin:0;}
.rule-card{background:#f7f8f7;border-color:var(--line-soft);box-shadow:none;}
.rule-card .suggestion-box{background:transparent;border:none;padding:0;color:var(--ink-3);}
/* جواب هوش مصنوعی داخل جعبه بنفش، بدون قاب خاکستری جدا */
.q-sug-box .ai-answer,.ai-card .ai-answer{background:transparent;border:none;padding:0;margin:0;}
/* وقتی پیشنهاد باز است، خلاصه بنفش کوتاه می شود: سربرگ و سه خط، بدون خط نمونه (پیشنهاد خط خودش را دارد) */
.q-card.sug-open .q-summary.ai .q-line:nth-child(n+5){display:none;}
.q-card.sug-open .q-summary.ai .ai-sample-note{display:none;}
.q-card.sug-open .q-summary.ai{padding:10px 14px;}

/* ---- فاز ۷: بازنویسی، «مشتری چه گفت؟»، تحلیل ---- */
.ai-rewrite{margin-top:10px;}
.ai-rewrite-row{display:flex;flex-wrap:wrap;gap:8px;}
.ai-rw-btn{flex:1 1 0;min-width:88px;min-height:44px;padding:8px 10px;font:inherit;font-size:15px;font-weight:650;
  color:var(--ai-700);background:var(--ai-50);border:1px solid var(--ai-600);border-radius:12px;cursor:pointer;}
.ai-rw-btn:active{background:var(--ai-100);}
.ai-rw-btn:disabled{opacity:.55;cursor:default;}
.ai-rewrite-msg{font-size:15px;line-height:1.6;color:var(--ink-3);margin-top:8px;min-height:0;}
.ai-reply{margin-top:12px;border:1px solid var(--ai-100);border-radius:12px;background:#fff;}
.ai-reply>summary{min-height:44px;display:flex;align-items:center;padding:8px 14px;font-size:15.5px;font-weight:650;color:var(--ai-700);cursor:pointer;list-style:none;}
.ai-reply>summary::-webkit-details-marker{display:none;}
.ai-reply[open]>summary{border-bottom:1px solid var(--ai-100);}
.ai-reply-body{padding:12px 14px 14px;}
.ai-reply-body label{display:block;font-size:15px;color:var(--ink-3);margin-bottom:6px;}
.ai-reply-body input[type=text]{width:100%;min-height:48px;font-size:16px;margin-bottom:10px;}
.ai-reply-opt{display:flex;gap:10px;align-items:flex-start;background:var(--ai-50);border:1px solid var(--ai-100);border-radius:12px;padding:10px 12px;margin-top:10px;}
.ai-reply-text{flex:1;font-size:15.5px;line-height:1.7;color:var(--ink);}
.ai-copy-sm{flex:none;min-height:44px;min-width:64px;padding:6px 12px;font:inherit;font-size:15px;font-weight:650;color:var(--ai-700);background:#fff;border:1px solid var(--ai-600);border-radius:10px;cursor:pointer;}
.ai-reply-avoid{margin-top:10px;font-size:15px;line-height:1.7;color:var(--ink-2);}
.ai-report-card{margin:14px 0 16px;}
.ai-report-box{background:var(--ai-50);border:1px solid var(--ai-100);border-radius:14px;padding:14px 16px;}
.ai-report-hint{font-size:15px;line-height:1.7;color:var(--ink-3);padding:2px 2px 0;}
.ai-rep-focus{background:#fff;border:1px solid var(--ai-100);border-radius:12px;padding:10px 14px;margin:10px 0;font-size:16px;line-height:1.7;color:var(--ink);}
.ai-rep-focus span{display:block;font-size:15px;font-weight:650;color:var(--ai-700);margin-bottom:2px;}
.ai-rep-sec{margin-top:12px;}
.ai-rep-title{font-size:15.5px;font-weight:700;color:var(--ai-700);margin-bottom:4px;}
.ai-rep-sec ul{margin:0;padding:0 18px 0 0;}
.ai-rep-sec li{font-size:15.5px;line-height:1.75;color:var(--ink);margin-bottom:2px;}
.ai-report-bar{position:fixed;z-index:30;bottom:calc(16px + env(safe-area-inset-bottom,0px));right:16px;left:88px;}
.ai-report-bar .q-suggest{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:16px;box-shadow:0 6px 18px rgba(76,47,158,.22);}
.page-wide.has-ai-bar{padding-bottom:104px;}
/* روی صفحه بزرگ، نوار تحلیل کنار راست می ماند تا روی دکمه «+» نیفتد */
@media (min-width:900px){.ai-report-bar{left:auto;width:360px;}}
.ai-tpl{margin:0 0 16px;}
.ai-tpl .q-suggest{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:16px;}
.ai-tpl-msg{font-size:15px;line-height:1.7;color:var(--ink-3);margin-top:8px;}
.ai-tpl-item{background:var(--ai-50);border:1px solid var(--ai-100);border-radius:12px;padding:10px 12px;margin-top:10px;}
.ai-tpl-label{font-size:15px;font-weight:700;color:var(--ai-700);margin-bottom:4px;}
.ai-tpl-new{font-size:15.5px;line-height:1.8;color:var(--ink);}
.ai-tpl-keep{font-size:15px;line-height:1.7;color:var(--ink-3);margin-top:6px;}
.ai-tpl-old{margin-top:6px;font-size:15px;color:var(--ink-3);}
.ai-tpl-old>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;}
.ai-tpl-old div{line-height:1.8;padding-bottom:6px;}

