/* ============================================================
   سیستم طراحی شیبات v2 — توکن‌محور (الگوی تیم‌های نوا و آموزش زبان)
   ساختار: فونت → توکن → پایه → کامپوننت → نما → واکنش‌گرا → حرکت
   ============================================================ */
@font-face{font-family:'Vazirmatn';src:url('/fonts/Vazirmatn-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('/fonts/Vazirmatn-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('/fonts/Vazirmatn-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('/fonts/Vazirmatn-ExtraBold.woff2') format('woff2');font-weight:800;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('/fonts/Vazirmatn-Black.woff2') format('woff2');font-weight:900;font-display:swap}

:root{
  /* پالت لایه‌ای */
  --bg:#f6f5fb; --bg2:#efeaf8; --card:#fff; --card2:#faf8ff; --card3:#f1ecfc;
  --line:#e7e4f2; --line2:#d9d2ee;
  --ink:#1c1830; --mut:#6f6a85; --mut2:#a49ec0;
  --brand:#6d28d9; --brand2:#a855f7; --pink:#ec4899;
  --grad:linear-gradient(135deg,#6d28d9,#a855f7 55%,#ec4899);
  --grad-soft:linear-gradient(135deg,rgba(139,92,246,.12),rgba(236,72,153,.1));
  --ok:#059669; --warn:#d97706; --err:#dc2626; --blue:#2563eb;
  /* مقیاس شعاع */
  --r-xs:8px; --r-sm:12px; --r-md:16px; --r-lg:20px; --r-xl:26px; --r-full:999px;
  --radius:18px;
  /* مقیاس فاصله */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px; --sp-7:28px; --sp-8:32px;
  /* کف هدف لمسی (جلسه ۱۹: استاندارد ۴۴px هلیا برای همه دکمه‌های سراسری) */
  --touch:44px;
  /* سایه و عمق */
  --sh-sm:0 2px 10px rgba(80,40,160,.07);
  --sh:0 10px 34px rgba(80,40,160,.11);
  --shadow:0 10px 34px rgba(80,40,160,.11);
  --sh-lg:0 24px 56px rgba(80,40,160,.17);
  --sh-glow:0 8px 28px rgba(147,51,234,.32);
  /* حرکت */
  --ease:cubic-bezier(.22,.9,.28,1); --spring:cubic-bezier(.2,.9,.3,1.25);
  --dur:.22s; --dur-lg:.38s;
  --ring:0 0 0 4px rgba(168,85,247,.16);
  /* نور محیطی */
  --ambient-1:radial-gradient(680px 440px at 88% -60px, rgba(139,92,246,.13), transparent 62%);
  --ambient-2:radial-gradient(580px 440px at -10% 14%, rgba(236,72,153,.08), transparent 58%);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{font-family:'Vazirmatn',system-ui,Tahoma,sans-serif;color:var(--ink);min-height:100vh;background:var(--ambient-1),var(--ambient-2),var(--bg);background-repeat:no-repeat;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain}
::selection{background:rgba(168,85,247,.3)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--brand2);outline-offset:2px;border-radius:6px}
.hidden{display:none!important}
button{font-family:inherit;cursor:pointer;color:inherit}
img{user-select:none}
.ic{display:inline-block;vertical-align:-4px;flex:none}
.sub{color:var(--mut);font-size:14px;line-height:1.95;margin:4px 0 14px}
.hint{font-size:12.5px;color:var(--mut);margin-top:10px;line-height:1.9}
.hint-ic .ic,.h-ic .ic{width:35px;height:35px;padding:8px;border-radius:12px;background:linear-gradient(140deg,#efe9ff,#fdf2f8);color:var(--brand);box-shadow:inset 0 0 0 1px #e7ddff;vertical-align:-11px}
.err{color:var(--err);font-size:13.5px;min-height:18px;margin-top:8px}
.ok{color:var(--ok);font-size:13.5px}
.badge{display:inline-flex;align-items:center;gap:5px;background:#efe9ff;color:var(--brand);font-size:12px;font-weight:800;border-radius:var(--r-full);padding:4px 12px}
.badge.neg{background:#fef2f2;color:var(--err)}
.done-txt{color:var(--ok);font-weight:800}

/* حرکت‌های پایه */
@keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes cardIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.3)}100%{transform:scale(1)}}
@keyframes msgIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes mascotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes mascotHalo{0%,100%{box-shadow:0 18px 44px rgba(124,58,237,.28),0 0 0 0 rgba(168,85,247,.25)}50%{box-shadow:0 18px 44px rgba(124,58,237,.28),0 0 0 16px rgba(168,85,247,0)}}
@keyframes blobFloat{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-26px,30px) scale(1.08)}}
@keyframes btnShine{from{left:-40px}to{left:115%}}
@keyframes toastIn{from{opacity:0;transform:translate(50%,14px)}to{opacity:1;transform:translate(50%,0)}}
@keyframes ctaPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
@keyframes ctaShine{0%{left:-46px}55%,100%{left:112%}}
@keyframes tdotBounce{0%,60%,100%{transform:translateY(0);opacity:.55}30%{transform:translateY(-5px);opacity:1}}

/* ===== دکمه‌ها ===== */
.btn{border:none;border-radius:var(--r-sm);padding:11px 20px;font-size:15px;font-weight:700;position:relative;overflow:hidden;transition:transform .15s var(--ease),box-shadow var(--dur) var(--ease),filter var(--dur);min-height:var(--touch);display:inline-flex;align-items:center;justify-content:center;text-align:center}
.btn:active{transform:scale(.965)}
.btn.primary{background:var(--grad);color:#fff;box-shadow:var(--sh-glow),inset 0 1px 0 rgba(255,255,255,.35)}
.btn.primary::after{content:'';position:absolute;top:0;bottom:0;width:30px;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);left:-40px}
.btn.primary:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(147,51,234,.42),inset 0 1px 0 rgba(255,255,255,.35)}
.btn.primary:hover::after{animation:btnShine .7s var(--ease)}
.btn.ghost{background:#efeaf9;color:var(--brand);transition:all var(--dur) var(--ease)}
.btn.ghost:hover{background:#e6dcfb}
.btn.gold{background:linear-gradient(120deg,#FFC53D,#FF9E2C);color:#4A2C00;box-shadow:0 8px 20px rgba(255,158,44,.4)}
.btn.big{width:100%;padding:14px;font-size:16px;margin-top:12px}
.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}
.btn.send{border-radius:var(--r-full);width:48px;height:48px;padding:0;font-size:19px;flex:none}
.iconbtn{background:none;border:none;font-size:18px;color:var(--mut);transition:all var(--dur) var(--ease);border-radius:10px}
.iconbtn:hover{background:#f3efff;transform:rotate(-6deg) scale(1.06)}

/* ===== فیلدها ===== */
input,textarea,select{font-family:inherit;font-size:15px;padding:12px 14px;border:1.5px solid var(--line);border-radius:13px;background:#fff;width:100%;outline:none;transition:border-color .15s,box-shadow .2s}
input:focus,textarea:focus,select:focus{border-color:var(--brand2);box-shadow:var(--ring)}
label{font-size:13px;color:var(--mut);display:block;margin:10px 0 5px;font-weight:600}
input.otp{text-align:center;font-size:23px;font-weight:800;letter-spacing:8px}
.devcode{border-radius:13px;border:1.5px dashed #c4b0f5;background:#f7f4ff;font-weight:800;padding:10px;text-align:center;margin-top:10px;color:var(--brand)}

/* ===== چیدمان کلی ===== */
.app{display:flex;min-height:100vh}
.main{flex:1;display:flex;flex-direction:column;min-width:0}
.view{padding:24px;max-width:960px;width:100%;margin:0 auto;flex:1;display:flex;flex-direction:column}
.view:not(.hidden){animation:viewIn var(--dur-lg) var(--ease) both}
.view h2{font-size:23px;font-weight:900;margin-bottom:6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;box-shadow:var(--sh-sm);margin-bottom:14px;transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}
.card h3{font-size:16.5px;font-weight:900;margin-bottom:8px}

/* ===== سایدبار (دسکتاپ + کشویی موبایل) ===== */
.sidebar{width:268px;flex:none;background:linear-gradient(180deg,#171233,#1d1440);color:#e9e6ff;display:flex;flex-direction:column;padding:18px 14px;position:sticky;top:0;height:100vh;z-index:60}
.brand{display:flex;gap:10px;align-items:center;padding:4px 6px 14px}
.brand .logo{font-size:34px}
.brand .mascot-sm{width:44px;height:44px;border-radius:13px;box-shadow:0 6px 16px rgba(0,0,0,.35)}
.brand b{font-size:22px;display:block;font-weight:900;background:linear-gradient(90deg,#fff,#d9c8ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand small{color:#a79fd6;font-size:11px;letter-spacing:2px}
.sidebar nav{display:flex;flex-direction:column;gap:3px}
.navbtn{background:none;border:none;color:#cfc9f2;text-align:right;padding:10px 12px;border-radius:11px;font-size:14.5px;font-weight:600;display:flex;align-items:center;gap:9px;transition:all .25s var(--ease)}
.navbtn .ic{color:#a79fd6}
.navbtn:hover{background:rgba(255,255,255,.07);transform:translateX(-3px)}
.navbtn.active{background:linear-gradient(120deg,rgba(168,85,247,.45),rgba(236,72,153,.3));color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.navbtn.active .ic{color:#fff}
.side-convs{margin-top:16px;flex:1;overflow:auto}
.side-convs h4{font-size:12px;color:#a79fd6;margin:0 6px 8px;font-weight:700}
.conv-item{padding:8px 10px;border-radius:9px;font-size:13px;color:#d8d3f5;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background var(--dur) var(--ease)}
.conv-item:hover{background:rgba(255,255,255,.08)}
.conv-item.active{background:linear-gradient(120deg,rgba(168,85,247,.4),rgba(236,72,153,.22));color:#fff}
.userbox{display:flex;gap:10px;align-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);border-radius:14px;padding:10px 12px;margin-top:12px}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--grad);display:flex;align-items:center;justify-content:center;font-weight:900;color:#fff;flex:none}
.uinfo{flex:1;min-width:0}
.uinfo b{display:block;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uinfo small{color:#a79fd6;font-size:11.5px}
.newchat{width:100%;margin-bottom:12px}

/* ===== هدر ===== */
.topbar{display:flex;gap:10px;align-items:center;padding:14px 22px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.82);backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 4px 20px rgba(80,40,160,.07);position:sticky;top:0;z-index:55}
.credit-pill,.plan-pill,.heavy-pill{font-size:12.5px;color:var(--mut);background:#fff;border:1px solid var(--line);border-radius:var(--r-full);white-space:nowrap;line-height:1.2;display:inline-flex;align-items:center;height:40px;padding:0 15px;gap:6px}
.credit-pill{background:linear-gradient(120deg,#f3efff,#fdf2f8);border-color:#ddd0fb;font-weight:800;color:var(--brand);box-shadow:0 3px 10px rgba(124,58,237,.1)}
.credit-pill b{font-size:14px}
.credit-pill .ic{color:var(--brand)}
.heavy-pill{color:var(--warn);border-color:#fde8c8;background:#fffaf0}
.menu-btn{display:none;background:#fff;border:1px solid var(--line);border-radius:11px;width:40px;height:40px;align-items:center;justify-content:center;color:var(--brand);flex:none}
.topbar .spacer{flex:1}

/* ===== ناوبری پایین موبایل ===== */
.mobile-nav{display:none;position:fixed;bottom:0;right:0;left:0;z-index:58;background:rgba(255,255,255,.88);backdrop-filter:blur(16px) saturate(1.5);box-shadow:0 -6px 24px rgba(80,40,160,.09);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
.mnav{flex:1;background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:700;color:var(--mut);padding:7px 0 4px;border-radius:12px;position:relative;transition:transform .15s var(--ease),color var(--dur)}
.mnav:active{transform:scale(.93)}
.mnav.active{color:var(--brand)}
.mnav.active::before{content:'';position:absolute;top:0;right:50%;transform:translateX(50%);width:26px;height:3.5px;border-radius:99px;background:var(--grad)}
.backdrop{position:fixed;inset:0;background:rgba(23,18,51,.5);backdrop-filter:blur(3px);z-index:59}

/* ===== توست ===== */
.toast{position:fixed;bottom:24px;right:50%;transform:translateX(50%);background:linear-gradient(#171233,#171233) padding-box,var(--grad) border-box;border:1.5px solid transparent;color:#fff;padding:12px 22px;border-radius:var(--r-full);font-size:14px;font-weight:700;z-index:99;box-shadow:var(--sh-lg);animation:toastIn .35s var(--ease) both;max-width:88vw;text-align:center}

/* ===== ورود ===== */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}
.auth-wrap::before,.auth-wrap::after{content:'';position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;pointer-events:none}
.auth-wrap::before{width:340px;height:340px;background:#c084fc;top:-90px;right:-70px;animation:blobFloat 11s ease-in-out infinite}
.auth-wrap::after{width:300px;height:300px;background:#f0abfc;bottom:-100px;left:-60px;animation:blobFloat 13s ease-in-out infinite reverse}
.auth-card{background:linear-gradient(#fff,#fff) padding-box,linear-gradient(140deg,#a855f7,#ec4899) border-box;border:1.5px solid transparent;border-radius:var(--r-xl);box-shadow:0 24px 60px rgba(88,28,175,.18);padding:38px 30px;max-width:400px;width:100%;text-align:center;position:relative;z-index:1}
.auth-card h1{font-size:38px;font-weight:900;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.auth-card input{margin-top:10px;text-align:center}
.tagline{color:var(--mut);font-size:13.8px;line-height:2;margin:8px 0 14px}
.mascot-lg{width:118px;height:118px;border-radius:28px}
.mascot-md{width:76px;height:76px;border-radius:20px}
.mascot-sm{width:44px;height:44px;border-radius:12px}
.auth-card .mascot-lg{animation:mascotFloat 5s ease-in-out infinite}
.legal-links{font-size:12.5px;color:var(--mut);margin-top:14px;line-height:2}
.legal-links a,.legal-note a{color:var(--brand);font-weight:800;cursor:pointer;text-decoration:underline}

/* ===== چت — بازسازی ساختاری (واحد طراحی، جلسه ۱ برنامه بازسازی) ===== */
#view-chat{position:relative;background:radial-gradient(700px 380px at 50% -120px,rgba(168,85,247,.07),transparent)}

/* --- حالت خالی --- */
.chat-empty{text-align:center;padding:var(--sp-6) var(--sp-3) var(--sp-2);position:relative}
.chat-empty::before{content:'';position:absolute;top:-46px;right:50%;transform:translateX(50%);width:300px;height:300px;background:radial-gradient(closest-side,rgba(168,85,247,.15),transparent 72%);pointer-events:none}
.chat-empty .mascot-lg{position:relative;border-radius:32px;box-shadow:0 18px 44px rgba(124,58,237,.28);animation:mascotFloat 5s ease-in-out infinite,mascotHalo 3.2s ease-in-out infinite}
.chat-empty h2{font-size:29px;font-weight:900;margin:var(--sp-4) 0 var(--sp-2)}
.chat-empty p{color:var(--mut);font-size:14.5px;line-height:2;margin-bottom:var(--sp-4)}
.chat-empty .chips{animation:heroChipsIn .5s var(--ease) .12s both}
/* نگار (جلسه ۲۴): چیپ‌های «سعی کن بپرسی…» — ردیف دوم حالت خالی چت؛ دکمه‌ها همان .chips سراسری‌اند (کف لمسی var(--touch)) */
.chat-empty .try-ask{margin-top:var(--sp-4);animation:heroChipsIn .5s var(--ease) .2s both}
.try-ask-label{display:block;color:var(--mut);font-size:13px;font-weight:800;margin-bottom:var(--sp-2)}
@keyframes heroChipsIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.chips{display:flex;flex-wrap:wrap;gap:9px;justify-content:center}
.chips button{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-full);padding:9px 16px;font-size:13.8px;font-weight:600;transition:all var(--dur) var(--ease);min-height:var(--touch)}
.chips button:hover{border-color:var(--brand2);transform:translateY(-1px);box-shadow:var(--sh-sm)}
.chips button .ic{color:var(--brand)}
.chips button.cta-chip{background:linear-gradient(120deg,var(--brand),var(--brand2));color:#fff;border:none;font-weight:900;box-shadow:0 8px 22px rgba(124,58,237,.38);animation:ctaPulse 2.2s ease-in-out infinite;position:relative;overflow:hidden}
.chips button.cta-chip .ic{color:#fff}
.cta-chip .cta-badge{background:rgba(255,255,255,.25);border-radius:var(--r-full);padding:1px 9px;font-size:11px;font-weight:800}
.cta-chip::after{content:'';position:absolute;top:0;bottom:0;width:34px;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);left:-46px;animation:ctaShine 2.8s ease-in-out infinite}
.catchip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-full);padding:6px 14px 6px 9px;font-weight:800}
.catchip-img{width:25px;height:25px;border-radius:8px}

/* --- بدنه گفت‌وگو و اسکرول --- */
.chatbox{flex:1;overflow-y:auto;overscroll-behavior:contain;scroll-padding-bottom:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-3) var(--sp-2) var(--sp-5);scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--line2) transparent}

/* --- حباب‌ها --- */
.msg{position:relative;max-width:82%;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);line-height:2;font-size:14.8px;white-space:pre-wrap;word-break:break-word;unicode-bidi:plaintext;animation:msgIn .3s var(--ease) both}
/* گروه‌بندی: پیام‌های پشت‌سرهم یک فرستنده به‌هم می‌چسبند، با تعویض فرستنده فاصله کامل */
.chatbox .msg + .msg{margin-top:calc(-1 * var(--sp-2))}
.chatbox .msg.user + .msg.bot,.chatbox .msg.bot + .msg.user{margin-top:0}
.msg.user{align-self:flex-start;background:var(--grad);color:#fff;border-start-end-radius:var(--r-xs);box-shadow:0 8px 20px rgba(147,51,234,.3),inset 0 1px 0 rgba(255,255,255,.22)}
.msg.bot{align-self:flex-end;background:var(--card);border:1px solid var(--line);border-end-start-radius:var(--r-xs);box-shadow:var(--sh-sm)}
/* هلیا: کنتراست خط اطلاعات پیام بالا رفت (حذف opacity کم‌رنگ) */
.msg .meta{display:block;font-size:11.5px;color:var(--mut);margin-top:var(--sp-2)}
.msg.user .meta{color:rgba(255,255,255,.88)}
.msg.typing{display:inline-flex;align-items:center;gap:6px;padding:15px 18px;align-self:flex-end;background:color-mix(in srgb,var(--card) 80%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:var(--r-lg)}
.tdot{width:8px;height:8px;border-radius:50%;background:var(--brand2);animation:tdotBounce 1.15s ease-in-out infinite}
.tdot:nth-child(2){animation-delay:.18s;background:var(--brand)}
.tdot:nth-child(3){animation-delay:.36s;background:#ec4899}
/* درسا: پیام در حال ارسال، شیمر ملایم */
.msg.pending-msg{opacity:.72;position:relative;overflow:hidden}
.msg.pending-msg::after{content:'';position:absolute;top:0;bottom:0;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);left:-46px;animation:ctaShine 1.6s var(--ease) infinite}

/* --- کامپوزر شناور شیشه‌ای --- */
.composer{display:flex;gap:9px;align-items:flex-end;background:rgba(255,255,255,.84);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1.5px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-2);box-shadow:var(--sh);transition:border-color var(--dur),box-shadow var(--dur)}
.composer:focus-within{border-color:var(--brand2);box-shadow:var(--ring),var(--sh)}
.composer textarea{border:none;resize:none;background:transparent;box-shadow:none!important;max-height:130px;padding:10px 8px;line-height:1.9}
.composer button.send{width:46px;height:46px;min-width:46px;padding:0;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;box-shadow:0 5px 14px rgba(124,58,237,.3);transition:transform .18s var(--ease),box-shadow var(--dur) var(--ease),filter var(--dur)}
@media (hover:hover){.composer button.send:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(124,58,237,.42)}}
.composer button.send:active{transform:scale(.965)}
.composer button.send .ic{width:20px;height:20px}
/* هلیا: راهنمای هزینه خواناتر شد */
.composer-hint{font-size:12px;color:var(--mut);text-align:center;margin-top:var(--sp-2);line-height:1.9}

/* --- نوار تخمین: کارت شیشه‌ای با لهجه هشدار --- */
.estimate-bar{background:rgba(255,255,255,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #fde3b8;border-inline-start:4px solid var(--warn);border-radius:var(--r-md);padding:14px 16px;margin-bottom:10px;line-height:2;font-size:14px;box-shadow:var(--sh-sm);animation:msgIn .3s var(--ease) both}
.estimate-bar b{color:var(--warn)}
.estimate-bar .rowbtns{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.estimate-bar .rowbtns button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch);padding:var(--sp-2) var(--sp-4)}
.rowbtns{display:flex;gap:8px;flex-wrap:wrap}

/* ===== چت — فاز ۲ بازسازی (واحد طراحی، جلسه ۹) ===== */

/* --- گوشه‌های واقعی گروه پیام (:has) — نیلوفر --- */
/* کاربر (راست در RTL): حباب دوم به بعد، گوشه بالای سمت خودش تنگ می‌شود */
.chatbox .msg.user + .msg.user{border-start-start-radius:var(--r-xs)}
.chatbox .msg.user + .msg.user:has(+ .msg.user){border-start-end-radius:var(--r-md)}
/* بات (چپ در RTL): قرینه */
.chatbox .msg.bot + .msg.bot{border-end-end-radius:var(--r-xs)}
.chatbox .msg.bot + .msg.bot:has(+ .msg.bot){border-end-start-radius:var(--r-md)}

/* --- اکشن‌های هر پیام (کپی) --- */
.msg-actions{display:flex;gap:var(--sp-1);margin-top:var(--sp-2);opacity:0;transform:translateY(2px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
@media(hover:hover){.msg.bot:hover .msg-actions{opacity:1;transform:none}}
.msg.bot .msg-actions:focus-within{opacity:1;transform:none}
@media(hover:none){.msg.bot .msg-actions{opacity:.85}}
.msg-act{display:inline-flex;align-items:center;gap:var(--sp-1);background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand);border:1px solid var(--line);border-radius:var(--r-full);padding:4px 12px;font-size:12px;font-weight:800;transition:transform .15s var(--ease),background-color var(--dur) var(--ease),color var(--dur) var(--ease);min-height:var(--touch)}
.msg-act:active{transform:scale(.94)}
.msg-act .ic{width:13px;height:13px}
.msg-act.copied{color:var(--ok);background:color-mix(in srgb,var(--ok) 8%,transparent)}
/* نگار (جلسه ۲۵): ردیف پیگیری زیر پاسخ دستیار — خواهر حباب، نه داخل آن؛ همیشه دیده می‌شود (برخلاف کپیِ hover-reveal) */
.msg-followups{display:flex;flex-wrap:wrap;gap:var(--sp-1);align-self:flex-end;max-width:82%;margin-top:calc(-1 * var(--sp-1))}
.msg-followups + .msg.bot{margin-top:calc(-1 * var(--sp-2))}
.msg-followup{display:inline-flex;align-items:center;gap:var(--sp-1);min-height:var(--touch);padding:4px 12px;border:1px solid var(--line);border-radius:var(--r-full);background:color-mix(in srgb,var(--brand) 8%,transparent);color:var(--brand);font-size:12px;font-weight:800;line-height:1.5}
.msg-followup:active{transform:scale(.94)}

/* --- حالت خطای متمایز + تلاش مجدد --- */
.msg.error{background:color-mix(in srgb,var(--err) 7%,#fff);border:1.5px solid color-mix(in srgb,var(--err) 32%,#fff);border-inline-start:4px solid var(--err);border-radius:var(--r-md);box-shadow:var(--sh-sm)}
.msg.error .err-ic{color:var(--err);vertical-align:-3px;margin-inline-end:6px}
.msg.error .msg-actions{opacity:1;transform:none}
.msg.error .msg-act.retry{color:var(--err);background:color-mix(in srgb,var(--err) 8%,transparent);border-color:color-mix(in srgb,var(--err) 30%,#fff)}

/* --- دکمه شناور «رفتن به آخرین پیام» (fixed نسبت به ویوپورت؛ با مخفی‌شدن ویو چت دیده نمی‌شود) --- */
.chat-fab{position:fixed;bottom:150px;inset-inline:50%;transform:translateX(50%) translateY(8px);width:var(--touch);height:var(--touch);border-radius:var(--r-full);background:color-mix(in srgb,var(--card) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1.5px solid var(--line);color:var(--brand);display:flex;align-items:center;justify-content:center;box-shadow:var(--sh);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease);z-index:5}
.chat-fab .ic{width:19px;height:19px}
.chat-fab.show{opacity:1;pointer-events:auto;transform:translateX(50%)}
.chat-fab:active{transform:translateX(50%) scale(.94)}
@media(max-width:820px){.chat-fab{bottom:96px}}

/* --- جداکننده روز + اسکلت تاریخچه --- */
.chat-date{align-self:center;font-size:12px;font-weight:800;color:var(--mut);background:color-mix(in srgb,var(--brand) 7%,#fff);border:1px solid var(--line);border-radius:var(--r-full);padding:3px 14px;margin:var(--sp-2) 0}
.skl.skl-msg{height:64px;border-radius:var(--r-lg);margin-bottom:var(--sp-3)}
.skl.skl-msg.u{max-width:60%;align-self:flex-start}
.skl.skl-msg.b{max-width:72%;align-self:flex-end}

/* --- کامپوزر فاز ۲: ارسال غیرفعال + hint جمع‌وجور در موبایل --- */
.composer button.send:disabled{opacity:.45;box-shadow:none;filter:saturate(.6);cursor:not-allowed;transform:none}
@media(max-width:820px){.composer-hint{display:none}}

/* ===== ویترین (بازسازی ساختاری — جلسه ۸) ===== */
#view-showcase .h-ic{font-size:22px;font-weight:900}
#view-showcase.cat-tinted{background:linear-gradient(180deg,var(--catwash,transparent),transparent 230px);border-radius:var(--r-xl)}
.cats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.cats button{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-full);padding:7px 15px 7px 10px;font-weight:800;font-size:13.5px;transition:all var(--dur) var(--ease);white-space:nowrap;scroll-snap-align:start;min-height:var(--touch)}
.cats button:active{transform:scale(.95)}
.cats button.active{background:var(--grad);color:#fff;border-color:transparent;box-shadow:var(--sh-glow)}
.cats button:focus-visible{box-shadow:var(--ring)}
.cat-tab-img{width:27px;height:27px;border-radius:9px}
.cat-count{font-size:11px;font-weight:800;background:rgba(90,60,160,.08);border-radius:var(--r-full);padding:1px 8px;line-height:1.7}
.cats button.active .cat-count{background:rgba(255,255,255,.24)}
.cat-img{width:27px;height:27px;border-radius:9px}
#taskSearch,#showcaseSearch{border-radius:14px}
.search-wrap{position:relative;margin-bottom:12px}
.search-wrap .ic{position:absolute;top:50%;right:14px;transform:translateY(-50%);color:var(--mut)}
.search-wrap input{padding-right:44px;box-shadow:var(--sh-sm);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.search-wrap input:focus{box-shadow:var(--sh-sm),var(--ring);border-color:var(--brand2)}
.search{margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:1100px){.grid{grid-template-columns:repeat(2,1fr);gap:14px}}
.task{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;animation:cardIn .45s var(--ease) both;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.task::before{content:'';position:absolute;top:0;right:0;left:0;height:3px;background:linear-gradient(270deg,var(--cat,#7C3AED),transparent 85%);transition:height var(--dur) var(--ease)}
.task:nth-child(2){animation-delay:.04s}.task:nth-child(3){animation-delay:.08s}.task:nth-child(4){animation-delay:.12s}.task:nth-child(5){animation-delay:.16s}.task:nth-child(6){animation-delay:.2s}.task:nth-child(7){animation-delay:.24s}.task:nth-child(8){animation-delay:.28s}.task:nth-child(9){animation-delay:.32s}.task:nth-child(10){animation-delay:.36s}.task:nth-child(11){animation-delay:.4s}.task:nth-child(12){animation-delay:.44s}
#taskGrid.no-anim .task{animation:none}
.task:active{transform:scale(.97)}
.task-top{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}
.task-ic{width:46px;height:46px;border-radius:14px;flex:none;display:flex;align-items:center;justify-content:center;transition:transform .25s var(--ease)}
.task-ic .ic{width:24px;height:24px}
.task h3{font-size:15px;font-weight:800;margin:2px 0 0;line-height:1.8}
.task .desc{font-size:12.8px;color:#5d5677;line-height:1.9;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:calc(12.8px * 1.9 * 2)}
.task-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:4px}
.foot-tags{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.task .cost{display:inline-flex;align-items:center;gap:5px;font-size:12px;border-radius:var(--r-full);padding:3px 10px;font-weight:800;background:#f1ecfc;color:var(--brand)}
.task .cost .ic{vertical-align:-2px}
.cost.chat{background:#eef2ff;color:var(--blue)}
.cost.light{background:#eff6ff;color:#0284c7}
.cost.heavy{background:#fdf2f8;color:#db2777}
.task-go{display:inline-flex;color:var(--mut2);transition:transform var(--dur) var(--ease),color var(--dur) var(--ease)}
.task-go .ic{width:17px;height:17px}

/* ===== صفحه اختصاصی کار و فرم‌ها ===== */
.back-btn{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1.5px solid var(--line);color:var(--brand);font-weight:800;border-radius:var(--r-sm);padding:8px 14px;margin-bottom:14px;transition:all var(--dur) var(--ease);min-height:44px}
.back-btn:active{transform:scale(.96)}
.task-page-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--sp-6);box-shadow:var(--sh);position:relative;overflow:hidden}
.task-page-card::before{content:'';position:absolute;top:0;right:0;left:0;height:5px;background:var(--grad)}
/* سربرگ مرحله */
.tstep{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:900;color:var(--ink);background:var(--grad-soft);border-radius:var(--r-full);padding:8px 16px 8px 8px;margin:var(--sp-5) 0 var(--sp-3);scroll-margin-top:76px}
.tstep:first-child{margin-top:0}
.tstep-n{width:28px;height:28px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--brand);color:#fff;font-size:13px;font-weight:900}
/* hero: آیکن + عنوان + چیپ دسته + نشان tier */
.tm-hero{display:flex;align-items:center;gap:12px;margin-bottom:4px}
#view-task .task-ic{width:44px;height:44px;border-radius:var(--r-sm);flex:none}
#view-task .task-ic .ic{width:22px;height:22px}
.tm-hero-txt h3{font-size:21px;font-weight:900;margin:0 0 6px}
.tm-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tier-badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;border-radius:var(--r-full);padding:4px 12px;min-height:28px}
.tier-badge.heavy{background:color-mix(in srgb,var(--warn) 12%,#fff);color:#92400e}
.tier-badge.light{background:color-mix(in srgb,var(--ok) 12%,#fff);color:#065f46}
/* کارت فیلد + ورود پلکانی */
.tfield{margin-bottom:var(--sp-4);animation:cardIn .45s var(--ease) both}
.tfield:nth-child(2){animation-delay:.04s}
.tfield:nth-child(3){animation-delay:.08s}
.tfield:nth-child(4){animation-delay:.12s}
.tfield:nth-child(5){animation-delay:.16s}
.tfield:nth-child(6){animation-delay:.2s}
.tfield:nth-child(7){animation-delay:.24s}
.tfield:nth-child(8){animation-delay:.28s}
.task-page-card .tfield>label{font-weight:800;font-size:13.5px;color:var(--ink);display:block;margin:0 0 6px}
.fd-hint{font-size:12.5px;color:var(--mut);line-height:1.9;margin:6px 0 0}
.task-page-card input,.task-page-card select,.task-page-card textarea{border-radius:var(--r-sm)}
.task-page-card input:focus,.task-page-card select:focus,.task-page-card textarea:focus{border-color:var(--brand2);box-shadow:var(--ring)}
.sel-wrap{position:relative}
.sel-wrap select{appearance:none;-webkit-appearance:none;padding-left:40px}
.sel-wrap .sel-ic{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--mut);pointer-events:none;display:flex}
/* چیپ‌ها */
.chiprow{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0;align-items:center}
.fchip{display:inline-flex;align-items:center;line-height:1.5;min-height:var(--touch);background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-full);padding:10px 18px;font-size:13.5px;font-weight:700;transition:all .18s var(--ease);cursor:pointer}
.fchip:active{transform:scale(.94)}
.fchip.sel{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(124,58,237,.35)}
/* کارت تخمین ساخت‌یافته */
.est-card{background:var(--card2);border:1.5px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--sh-sm);padding:16px 18px;margin-top:var(--sp-2);font-size:14.5px;line-height:2;animation:cardIn .45s var(--ease) both}
.est-card>.ic{color:var(--brand)}
.est-rows{margin:0 0 8px}
.est-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1.5px dashed var(--line2)}
.est-row:last-child{border-bottom:none}
.est-row dt{color:var(--mut);font-size:13.5px}
.est-row dd{margin:0;font-weight:800;color:var(--ink);font-size:14.5px;font-variant-numeric:tabular-nums}
.est-note{font-size:12.8px;color:var(--mut);line-height:2;margin:8px 0 0}
.est-note .ic{color:var(--brand);vertical-align:-3px}
.est-card .rowbtns{margin-top:12px}
/* کارت تأیید (خلاصه قبل از اقدام) */
.confirm-card{background:var(--card2);border:1.5px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--sh-sm);position:relative;overflow:hidden;padding:16px 18px;animation:cardIn .45s var(--ease) both}
.confirm-card::before{content:'';position:absolute;top:0;right:0;left:0;height:4px;background:var(--grad)}
.cf-rows{margin:0}
.cf-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-bottom:1.5px dashed var(--line2)}
.cf-row:last-of-type{border-bottom:none}
.cf-row dt{color:var(--mut);font-size:13.5px;flex:none;max-width:45%}
.cf-row dd{margin:0;font-weight:700;color:var(--ink);font-size:14px;text-align:left;line-height:1.9}
.cf-cost{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;border-top:2px solid var(--line2);font-weight:800;font-size:14.5px}
.cf-cost b{color:var(--brand);font-variant-numeric:tabular-nums}
/* نتیجه و رسید ساخت‌یافته */
.result-head{display:flex;align-items:center;gap:10px;margin:var(--sp-4) 0 10px;font-size:16px;font-weight:900;color:var(--ok)}
.result-head .done-ic{width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--ok),#34d399);color:#fff;box-shadow:0 8px 18px rgba(5,150,105,.38)}
.result-head .done-ic .ic{width:20px;height:20px}
.result-box{background:color-mix(in srgb,var(--ok) 5%,#fff);border:1.5px solid color-mix(in srgb,var(--ok) 26%,#fff);border-radius:var(--r-md);padding:16px 18px;margin-top:14px;line-height:2.05;font-size:14.5px;white-space:pre-wrap;max-height:420px;overflow:auto;box-shadow:var(--sh-sm)}
.receipt-dl{margin:12px 0 0;font-size:13.5px}
.r-row{display:flex;justify-content:space-between;gap:12px;padding:7px 2px;border-bottom:1.5px dashed var(--line2)}
.r-row:last-child{border-bottom:none}
.r-row dt{color:var(--mut)}
.r-row dd{margin:0;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.r-row.cost-real dd{color:var(--brand)}
.r-row.balance dd{color:#047857}
#tmEstimate .est-card,#tmConfirm .confirm-card,#tmResult .result-head,#tmResult .result-box,#tmResult .receipt-dl{animation:cardIn .45s var(--ease) both}
#tmResult .result-head{animation-delay:.02s}
#tmResult .result-box{animation-delay:.07s}
#tmResult .receipt-dl{animation-delay:.12s}
#tmResult .rowbtns{animation:cardIn .45s var(--ease) both;animation-delay:.17s;margin-top:10px}
#tmResult .skl,#tmEstimate .skl{margin:14px 0 0}
.modal-actions{display:flex;gap:9px;margin:var(--sp-4) 0 var(--sp-2);flex-wrap:wrap}
/* کارت خطا با اکشن بازیابی */
.err-card{background:#fef2f2;border:1.5px solid color-mix(in srgb,var(--err) 25%,#fff);border-inline-start:4px solid var(--err);border-radius:var(--r-md);padding:14px 16px;margin-top:14px;animation:cardIn .45s var(--ease) both}
.err-top{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px}
.err-mark{width:30px;height:30px;flex:none;border-radius:50%;background:var(--err);color:#fff;display:flex;align-items:center;justify-content:center}
.err-top b{font-size:14px}
.err-top p{margin:2px 0 0;font-size:13px;color:var(--mut);line-height:1.9}
@media(max-width:820px){
  .task-page-card{padding:var(--sp-5)}
  .result-head{font-size:15px}
  .result-head .done-ic{width:34px;height:34px}
  #tmActions .btn,#tmResult .rowbtns .btn{flex:1 1 100%}
}

/* ===== پلن و اعتبار ===== */
.rate-chips{display:flex;gap:9px;margin:4px 0 20px;flex-wrap:wrap}
.rate-chip{flex:1;min-width:100px;background:#fff;border:1.5px solid var(--line);border-radius:var(--r-md);padding:11px 8px;text-align:center;display:flex;flex-direction:column;gap:2px;animation:cardIn .45s var(--ease) both}
.rate-chip:nth-child(2){animation-delay:.07s}
.rate-chip:nth-child(3){animation-delay:.14s}
.rate-chip b{color:var(--brand);font-size:16px}
.rate-chip span{font-size:12px;color:var(--mut)}
/* گرید + ورود پلکانی */
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:var(--sp-4);margin-bottom:var(--sp-4)}
.plan-card{position:relative;background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-xl);
  padding:var(--sp-5) var(--sp-5) var(--sp-6);text-align:center;
  animation:cardIn .45s var(--ease) both;
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.plan-card:nth-child(2){animation-delay:.06s}.plan-card:nth-child(3){animation-delay:.12s}.plan-card:nth-child(4){animation-delay:.18s}
@media (hover:hover){.plan-card:hover{transform:translateY(-4px);box-shadow:var(--sh-lg)}}
/* آرت کوچک‌تر: نشان، نه قهرمان */
.plan-art{width:64px;height:64px;border-radius:var(--r-lg);margin:0 auto var(--sp-3);display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ac,#7C3AED) 11%,#fff);color:var(--ac,#7C3AED)}
.plan-art svg{width:40px;height:40px}
/* تایپ: قیمت بزرگ‌ترین */
.plan-card h3{font-size:15.5px;font-weight:800}
.plan-price{font-size:34px;font-weight:900;color:var(--ac,#7C3AED);font-variant-numeric:tabular-nums;margin:var(--sp-1) 0 var(--sp-2)}
.plan-price small{font-size:12px;font-weight:700;color:var(--mut)}
.plan-outcome{font-size:13.5px;font-weight:800;color:var(--ink);margin-bottom:var(--sp-3)}
.plan-feats{list-style:none;font-size:13.5px;color:var(--mut);line-height:2;margin:0 0 var(--sp-4);text-align:start}
.plan-feats li{display:flex;align-items:center;gap:8px}
.plan-feats .ic{flex:none;color:var(--ac,#7C3AED)}
/* CTA */
.plan-card .btn{width:100%;min-height:44px}
/* پلن فعلی: ring ثابت، بدون پالس */
.plan-card.current{border-color:var(--ac,#7C3AED);box-shadow:var(--ring),var(--sh)}
/* توصیه‌شده: تمایز چندکاناله */
.plan-card.reco{border:2.5px solid #FFC53D;box-shadow:0 18px 38px rgba(88,28,175,.28)}
@media(min-width:1024px){.plan-card.reco{transform:scale(1.03)}}
/* بج‌ها */
.reco-badge{position:absolute;top:-13px;right:50%;transform:translateX(50%);background:var(--grad);color:#fff;font-size:11.5px;font-weight:800;border-radius:var(--r-full);padding:4px 13px;display:inline-flex;gap:5px;align-items:center;box-shadow:0 6px 14px rgba(147,51,234,.35);white-space:nowrap;z-index:2}
.cur-badge{position:relative;z-index:1}
/* جزئیات آکاردئونی موبایل */
@media(max-width:640px){
  .plan-more{border-top:1px dashed var(--line2);margin:var(--sp-2) 0 var(--sp-3)}
  .plan-more summary{min-height:44px;display:flex;align-items:center;justify-content:center;
    font-size:13px;font-weight:800;color:var(--brand);cursor:pointer;list-style:none}
  .plan-more summary::-webkit-details-marker{display:none}
}
@media(min-width:641px){.plan-more{display:contents}.plan-more summary{display:none}}
/* تم‌های پلن */
.t-free{--ac:#16A34A}
.t-personal{--ac:#7C3AED}
.t-pro{--ac:#D97706;background:linear-gradient(180deg,#FFFBEB,#fff 65%)}
.t-business{--ac:#FFC53D;background:linear-gradient(160deg,#341268,#7C3AED 58%,#B02BD6);color:#fff;box-shadow:0 18px 38px rgba(88,28,175,.35)}
.t-business h3{color:#fff}
.t-business .plan-price{color:#fff}
.t-business .plan-price small{color:#E4DBFF}
.t-business .plan-outcome{color:#fff}
.t-business .plan-feats{color:#E9E2FF}
.t-business .plan-feats .ic{color:#FFC53D}
.t-business .plan-art{background:rgba(255,255,255,.15);color:#FFC53D}
.t-business .reco-badge{background:linear-gradient(120deg,#FFC53D,#FF9E2C);color:#4A2C00;box-shadow:0 8px 18px rgba(255,158,44,.45)}
/* بسته اضافه: کامپوننت مستقل هم‌خانواده با پلن‌ها */
.pack-card{display:flex;gap:var(--sp-4);align-items:center;background:var(--card);border:1.5px solid var(--line);
  border-radius:var(--r-xl);padding:var(--sp-5);box-shadow:var(--sh-sm);margin-bottom:var(--sp-3)}
.pack-card .pack-art{width:52px;height:52px;border-radius:var(--r-md);background:#efe9ff;color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.pack-card .pack-art .ic{width:27px;height:27px}
.pack-body{flex:1;min-width:0}
.pack-body>b{font-size:14.5px}
.pack-facts{display:flex;gap:var(--sp-5);margin-top:var(--sp-1)}
.pack-fact{display:flex;flex-direction:column;gap:2px}
.pack-fact b{font-size:15.5px;color:var(--brand)}
.pack-card .btn{min-height:44px;white-space:nowrap}
/* رسید: کارت سه‌بلوکی */
.receipt-card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.receipt-head{display:flex;align-items:center;gap:10px;padding:var(--sp-4) var(--sp-5);
  background:color-mix(in srgb,var(--ok) 7%,#fff);font-weight:900}
.legal-note{margin-top:14px}

/* ===== لیست‌ها: کارها، یادآوری‌ها، حافظه ===== */

/* ===== بازسازی کامل کارها و تراکنش‌ها (جلسه ۱۳) ===== */
.badge.pos{background:color-mix(in srgb,var(--ok) 12%,#fff);color:#065f46}
.badge.neg{color:#b91c1c}
#runsList .run-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-3);border-inline-start:4px solid var(--brand2);animation:cardIn .45s var(--ease) both}
#runsList .run-card:nth-child(2){animation-delay:.05s}#runsList .run-card:nth-child(3){animation-delay:.1s}#runsList .run-card:nth-child(4){animation-delay:.15s}#runsList .run-card:nth-child(5){animation-delay:.2s}#runsList .run-card:nth-child(6){animation-delay:.25s}
#runsList .run-head{display:flex;gap:var(--sp-3);align-items:flex-start}
#runsList .run-ic{width:44px;height:44px;flex:none;border-radius:var(--r-sm);background:var(--grad-soft);border:1px solid #e7ddff;color:var(--brand);display:flex;align-items:center;justify-content:center}
#runsList .run-ic .ic{width:22px;height:22px;color:var(--brand)}
#runsList .run-main{flex:1;min-width:0}
#runsList .run-title{font-size:15.5px;font-weight:900;line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#runsList .run-head .badge{flex:none}
#runsList .run-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-2);color:var(--mut);font-size:12.5px}
#runsList .run-meta>span{display:inline-flex;align-items:center;gap:5px}
#runsList .run-meta .ic{width:15px;height:15px;color:var(--brand2)}
#runsList .run-result{margin-top:var(--sp-3)}
#runsList .run-result pre{white-space:pre-wrap;font-family:inherit;font-size:13.5px;line-height:1.9;background:var(--card2);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);box-shadow:inset 0 1px 5px rgba(80,40,160,.05);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;position:relative}
#runsList .run-card:not(.open) .run-result pre::after{content:'';position:absolute;left:0;right:0;bottom:0;height:26px;background:linear-gradient(to top,var(--card2),transparent)}
#runsList .run-card.open .run-result pre{display:block}
#runsList .run-toggle{margin-top:var(--sp-2);min-height:44px;padding:8px 16px}
#runsList .empty-state .btn{margin-top:var(--sp-3)}
#runsList .date-sep{font-size:13px;font-weight:800;color:var(--mut);padding:var(--sp-3) var(--sp-1) var(--sp-2);display:flex;align-items:center;gap:var(--sp-2)}
#runsList .date-sep::after{content:'';flex:1;height:1px;background:var(--line)}
#txList .tx-row{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2);display:flex;gap:var(--sp-3);align-items:center;animation:cardIn .45s var(--ease) both}
#txList .tx-row:nth-child(2){animation-delay:.05s}#txList .tx-row:nth-child(3){animation-delay:.1s}#txList .tx-row:nth-child(4){animation-delay:.15s}#txList .tx-row:nth-child(5){animation-delay:.2s}#txList .tx-row:nth-child(6){animation-delay:.25s}
#txList .tx-ic{width:40px;height:40px;flex:none;border-radius:var(--r-sm);background:var(--grad-soft);border:1px solid #e7ddff;color:var(--brand);display:flex;align-items:center;justify-content:center}
#txList .tx-ic .ic{width:20px;height:20px;color:var(--brand)}
#txList .tx-main{flex:1;min-width:0;display:flex;flex-direction:column}
#txList .tx-desc{font-size:14.5px;font-weight:700;line-height:1.8}
#txList .tx-date{font-size:12px;color:var(--mut)}
#txList .tx-row .badge{flex:none}
.tx-head{margin-top:var(--sp-7)}
@media(hover:hover){
  #runsList .run-card:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:#ddd0fb;border-inline-start-color:var(--brand)}
  #txList .tx-row:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:#ddd0fb}
}

/* ===== بازسازی کامل یادآوری‌ها (جلسه ۱۴ — کارت اختصاصی .rem-card؛ .item-row عمومی دست نخورده) ===== */
#remList .rem-card{display:grid;grid-template-columns:48px 1fr;gap:var(--sp-3);background:var(--card);border:1px solid var(--line);border-inline-start:4px solid var(--brand);border-radius:var(--r-lg);padding:var(--sp-4);margin-bottom:var(--sp-3);box-shadow:var(--sh-sm);animation:cardIn .45s var(--ease) both;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
#remList .rem-card:nth-child(2){animation-delay:.05s}
#remList .rem-card:nth-child(3){animation-delay:.1s}
#remList .rem-card:nth-child(4){animation-delay:.15s}
#remList .rem-card:nth-child(5){animation-delay:.2s}
#remList .rem-card:nth-child(6){animation-delay:.25s}
#remList .rem-ic{width:48px;height:48px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--brand) 10%,#fff);color:var(--brand);flex:none}
#remList .rem-ic .ic{width:24px;height:24px}
#remList .rem-main{min-width:0}
#remList .rem-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}
#remList .rem-title{font-size:15.5px;font-weight:900;line-height:1.9;word-break:break-word}
#remList .rem-chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;border-radius:var(--r-full);padding:4px 12px;background:#efe9ff;color:var(--brand);white-space:nowrap;flex:none}
#remList .rem-chip .ic{width:13px;height:13px}
#remList .rem-meta{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);margin-top:var(--sp-1);font-size:13px;color:var(--mut)}
#remList .rem-meta span{display:inline-flex;align-items:center;gap:5px}
#remList .rem-meta .ic{width:15px;height:15px}
#remList .rem-actions{grid-column:2;display:flex;gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap}
#remList .rem-act{min-height:44px;border-radius:var(--r-full);padding:11px 18px;font-size:13.5px;border:1.5px solid transparent}
#remList .rem-act:active{transform:scale(.97)}
#remList .rem-card.done{border-inline-start-color:#047857;background:var(--card2)}
#remList .rem-card.done .rem-title{color:var(--mut);text-decoration:line-through;text-decoration-thickness:1.5px;text-underline-offset:3px}
#remList .rem-card.done .rem-ic{background:#ecfdf5;color:#047857}
#remList .rem-card.done .rem-chip{background:#ecfdf5;color:#047857}
#remList .skl-rem{height:76px;border-radius:var(--r-lg);margin-bottom:var(--sp-3)}
#remList .rem-group-head{display:flex;align-items:center;gap:var(--sp-3);font-size:13px;font-weight:800;color:var(--mut);margin:var(--sp-6) 0 var(--sp-3)}
#remList .rem-group-head:first-child{margin-top:0}
#remList .rem-group-head::after{content:"";flex:1;height:1px;background:var(--line)}
#remList .rem-group-head .ic{width:15px;height:15px}
@media(hover:hover){
  #remList .rem-card:hover{transform:translateY(-2px);box-shadow:var(--sh)}
  #remList .rem-card.done:hover{border-inline-start-color:#047857}
  #remList .rem-act:hover{border-color:var(--brand2)}
  #remList .rem-act.danger:hover{background:color-mix(in srgb,var(--err) 8%,#fff);color:#b91c1c;border-color:color-mix(in srgb,var(--err) 30%,#fff)}
}
@media(max-width:640px){
  #remList .rem-card{grid-template-columns:44px 1fr;padding:var(--sp-3)}
  #remList .rem-ic{width:44px;height:44px}
}
@media(max-width:480px){
  #remList .rem-act{flex:1}
}
/* فرم ساخت یادآوری: چیدمان دو ستونه در دسکتاپ، فاصله‌ها با توکن */
#view-reminders .rem-form input{min-height:48px;margin-bottom:var(--sp-3)}
#view-reminders .rem-form .btn{margin-top:2px;min-height:48px}
@media(min-width:641px){
  #view-reminders .rem-form .rem-form-row{display:flex;gap:var(--sp-3)}
  #view-reminders .rem-form .rem-form-row input{flex:1}
  #view-reminders .rem-form .btn{min-width:180px}
}
@media(max-width:640px){
  #view-reminders .rem-form .btn{width:100%}
}

/* ===== تنظیمات ===== */
.form-card label{font-weight:800;font-size:13.5px;color:#38304f}
.form-card input{border-radius:13px}
.form-card .btn{margin-top:14px}
label.h-ic{display:flex;align-items:center;gap:8px}

/* ===== حقوقی و پذیرش ===== */
.accept-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px 24px;box-shadow:0 20px 46px rgba(88,28,175,.14);max-width:560px;margin:10px auto}
.accept-card h2{font-size:21px;font-weight:900;margin:10px 0 4px}
.accept-points{list-style:none;margin:12px 0 4px;display:flex;flex-direction:column;gap:11px}
.accept-points li{display:flex;gap:9px;align-items:flex-start;font-size:13.8px;line-height:1.9;color:var(--ink)}
.accept-points li .ic,.accept-points .ic{width:33px;height:33px;padding:7px;border-radius:11px;background:#f1ebff;color:var(--brand);box-shadow:inset 0 0 0 1px #e3d7fd;flex:none}
.accept-links{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin:var(--sp-4) 0}
.accept-chk{display:flex;gap:9px;align-items:flex-start;background:#f7f4ff;border:1.5px solid #ddd0fb;border-radius:14px;padding:12px 14px;font-size:13.5px;font-weight:700;line-height:1.9;margin:8px 0 14px;cursor:pointer}
.accept-chk input{width:19px;height:19px;accent-color:var(--brand);flex:none;margin-top:3px}
.legal-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:26px;box-shadow:var(--sh)}
.legal-doc{font-size:14px;line-height:2.05;color:#37304f}
.legal-doc h3{font-size:15.5px;font-weight:900;color:var(--ink);margin:20px 0 5px;border-inline-start:4px solid var(--brand2);padding-inline-start:10px}
.legal-doc h3:first-of-type{margin-top:14px}
.legal-doc p{margin:0 0 8px}
.legal-doc ul{margin:0 0 8px;padding-inline-start:20px}
.legal-doc li{margin-bottom:4px}
.legal-meta{background:linear-gradient(140deg,#f5f3ff,#fdf4ff);border:1.5px solid #ddd0fb;border-radius:13px;padding:10px 14px;font-size:12.8px;line-height:1.95;color:#4c4370}

/* ===== اسکلت بارگذاری و حالت خالی (از سیستم نوا) ===== */
.skl{border-radius:12px;background:linear-gradient(90deg,#efebfa 25%,#f8f6ff 50%,#efebfa 75%);background-size:200% 100%;animation:shimmer 1.3s linear infinite}
.skl-line{height:13px;margin:8px 0}
.skl-card{height:150px;border-radius:19px}
.empty-state{text-align:center;padding:38px 16px;color:var(--mut)}
.empty-state .empty-ic{width:76px;height:76px;border-radius:50%;background:var(--grad-soft);border:1.5px solid #e7ddff;color:var(--brand);display:flex;align-items:center;justify-content:center;margin:0 auto 14px}
.empty-state .empty-ic .ic{width:34px;height:34px}
.empty-state b{display:block;font-size:16px;color:var(--ink);margin-bottom:5px}

/* ===== هاورهای دسکتاپ ===== */
@media(hover:hover){
  .task:hover{transform:translateY(-5px);box-shadow:var(--sh-lg);border-color:var(--line2)}
  .task:hover::before{height:5px}
  .task:hover .task-ic{transform:scale(1.1) rotate(-4deg)}
  .task:hover .task-go{transform:translateX(-3px);color:var(--brand)}
  .card:hover{box-shadow:0 14px 34px rgba(30,16,70,.11)}
}

/* نیلوفر (فاز ۲ چت): اسکرول‌بار سراسری و هم‌خانواده خطوط سیستم — قبلاً فقط داخل hover:hover بود */
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#cfc4ee;border-radius:99px;border:2px solid var(--bg)}
::-webkit-scrollbar-track{background:transparent}
@media(max-width:820px){.chatbox{scrollbar-width:none}.chatbox::-webkit-scrollbar{display:none}}

/* ===== واکنش‌گرا ===== */
@media(max-width:820px){
  .sidebar{position:fixed;top:0;right:0;height:100dvh;transform:translateX(105%);transition:transform .25s var(--ease);box-shadow:-12px 0 32px rgba(23,18,51,.3)}
  .sidebar.open{transform:none}
  .menu-btn{display:flex}
  .mobile-nav{display:flex}
  .main{padding-bottom:74px}
  .view{padding:16px}
  .topbar{padding:10px 12px;gap:7px}
  .grid{grid-template-columns:1fr 1fr;gap:10px}
  .task{padding:13px;border-radius:var(--r-md)}
  .task-top{gap:9px;margin-bottom:6px}
  .task-ic{width:42px;height:42px;border-radius:12px}
  .task h3{font-size:13.5px}
  .task .desc{font-size:12px;margin-bottom:10px}
  .cats{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;-webkit-mask-image:linear-gradient(270deg,#000 88%,transparent);mask-image:linear-gradient(270deg,#000 88%,transparent)}
  .cats::-webkit-scrollbar{display:none}
  #view-showcase .h-ic{font-size:20px}
  .toast{bottom:92px}
  .msg{max-width:90%}
  .pack-card{flex-wrap:wrap}
}
@media(max-width:820px){
  .heavy-pill{display:none}
  .topbar{overflow:hidden}
}
@media(max-width:380px){
  .plan-pill{display:none}
}

/* ===== احترام به کاهش حرکت ===== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}

/* ===== اصلاحات ممیزی QA (تیم‌های تست ظاهری/کاربری/فنی) — به‌روزشده جلسه ۸: .task/.costrow/.task p در بلوک جدید ویترین ادغام شد ===== */
.lock-badge{background:#fef3c7;color:#92400e}
.fchip{display:inline-flex;align-items:center;line-height:1.5}
.chiprow{align-items:center}
.cta-chip::after{opacity:.5;width:26px}
.chips .cta-chip{flex:1 1 100%;justify-content:center}
.chips .catchip{flex:1 1 calc(50% - 9px);justify-content:center}
.cats{padding:6px 4px 10px}
.cur-badge{background:color-mix(in srgb,var(--ac,#7C3AED) 13%,#fff);color:var(--ac,#7C3AED)}
/* کنتراست AA بج «پلن فعلی تو» روی هر تم (اصلاح QA جلسه ۱۲ — ترانه/هلیا) */
.t-free .cur-badge{color:#0f7a36}
.t-pro .cur-badge{color:#92400e}
.t-business .cur-badge{color:#4A2C00}
.legal-doc h3{unicode-bidi:plaintext}
.auth-card input{height:56px}
.legal-links a{white-space:nowrap}
.accept-links{flex-direction:column}
.accept-links .btn{width:100%}
@media(max-width:820px){
  .toast{bottom:auto;top:74px;animation:toastInTop .35s var(--ease) both}
  @keyframes toastInTop{from{opacity:0;transform:translate(50%,-12px)}to{opacity:1;transform:translate(50%,0)}}
}

/* ===== کاراکتر زنده شیباتی (حالت‌ها: idle/listen/think/happy/sleep) ===== */
.companion-bar { display:flex; align-items:center; gap:10px; padding:10px 4px 4px; }
#chatEmpty:not(.hidden) ~ #companionBar { display:none; }
.comp-wrap { position:relative; width:52px; height:52px; flex:none; cursor:pointer; }
.comp-wrap img { width:100%; height:100%; object-fit:cover; object-position:center 18%; border-radius:50%; border:2px solid #fff; box-shadow:0 6px 18px rgba(109,40,217,.25); background:#e9e4fa; display:block; }
.comp-meta { display:flex; flex-direction:column; gap:1px; min-width:0; }
.comp-meta b { font-size:15px; }
.comp-status { font-size:12.5px; color:var(--mut); }
.tdots { display:inline-flex; gap:3px; margin-inline-start:2px; }
.tdots i { width:6px; height:6px; border-radius:50%; background:#a78bfa; animation:tblink 1s infinite; }
.tdots i:nth-child(2) { animation-delay:.15s; } .tdots i:nth-child(3) { animation-delay:.3s; }
.zzz { position:absolute; top:-7px; inset-inline-end:-5px; font-size:11px; font-weight:800; color:#8b7cc9; opacity:0; pointer-events:none; letter-spacing:1px; }
.companion-hero { width:158px; height:158px; object-fit:cover; object-position:center 12%; border-radius:50%; border:3px solid #fff; box-shadow:0 16px 40px rgba(109,40,217,.28), 0 0 0 6px rgba(167,139,250,.14); cursor:pointer; background:#e9e4fa; }
#view-chat[data-mood="idle"] .comp-wrap img, #view-chat[data-mood="idle"] .companion-hero { animation:compFloat 3.4s ease-in-out infinite; }
#view-chat[data-mood="listen"] .comp-wrap img, #view-chat[data-mood="listen"] .companion-hero { animation:compTilt 1.6s ease-in-out infinite; }
#view-chat[data-mood="think"] .comp-wrap img, #view-chat[data-mood="think"] .companion-hero { animation:compThink .9s ease-in-out infinite; }
#view-chat[data-mood="happy"] .comp-wrap img, #view-chat[data-mood="happy"] .companion-hero { animation:compJump .55s ease-in-out 3; }
#view-chat[data-mood="sleep"] .comp-wrap img, #view-chat[data-mood="sleep"] .companion-hero { animation:compSway 4.5s ease-in-out infinite; filter:saturate(.72) brightness(.97); }
#view-chat[data-mood="sleep"] .zzz { opacity:1; animation:zFloat 2.2s ease-in-out infinite; }
@keyframes compFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-5px); } }
@keyframes compTilt { 0%,100% { transform:rotate(-2.5deg); } 50% { transform:rotate(2.5deg); } }
@keyframes compThink { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(2deg); } }
@keyframes compJump { 0%,100% { transform:translateY(0); } 35% { transform:translateY(-13px) scale(1.04); } 70% { transform:translateY(0); } }
@keyframes compSway { 0%,100% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } }
@keyframes zFloat { 0% { transform:translateY(2px); opacity:0; } 30% { opacity:1; } 100% { transform:translateY(-9px); opacity:0; } }
@keyframes tblink { 0%,100% { opacity:.25; transform:translateY(0); } 50% { opacity:1; transform:translateY(-2px); } }
.companion-pick { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.comp-opt { position:relative; border:2px solid var(--line, #e7e4f2); background:#f6f4fc; border-radius:18px; padding:10px 8px 9px; display:flex; flex-direction:column; align-items:center; gap:7px; cursor:pointer; font-family:inherit; transition:border-color .15s, transform .15s, box-shadow .15s; }
.comp-opt:hover { transform:translateY(-2px); }
.comp-opt img { width:64px; height:64px; border-radius:50%; object-fit:cover; object-position:center 18%; background:#e9e4fa; }
.comp-opt span { font-size:13.5px; font-weight:700; color:var(--ink, #241243); }
.comp-opt em { position:absolute; top:8px; inset-inline-start:8px; font-style:normal; font-size:10.5px; background:#ede9fe; color:#6d28d9; padding:2px 8px; border-radius:999px; font-weight:700; }
.comp-opt.sel { border-color:#7c3aed; box-shadow:0 8px 22px rgba(124,58,237,.18); }



/* ===== صحنهٔ سه‌بعدی کاراکتر (دایره‌ای، جایگزین عکس ثابت) ===== */
.comp-hero-wrap { position:relative; display:inline-block; line-height:0; }
.comp-stage { position:relative; border-radius:50%; overflow:hidden; background:radial-gradient(circle at 50% 32%, #f7f3ff 0%, #ede7fd 58%, #e3d9fb 100%); }
.comp-stage-hero { width:204px; height:204px; border:3px solid #fff; box-shadow:0 18px 44px rgba(109,40,217,.3), 0 0 0 6px rgba(167,139,250,.13); cursor:pointer; }
.comp-stage-mini { width:52px; height:52px; border:2px solid #fff; box-shadow:0 6px 18px rgba(109,40,217,.25); }
.comp-stage canvas { position:absolute; inset:0; width:100% !important; height:100% !important; display:block; }
.comp-stage img { width:100%; height:100%; object-fit:cover; object-position:center 12%; display:block; }
.comp-stage:has(canvas) img { opacity:0; }
.comp-stage-hero .companion-hero, .comp-stage-mini img { border:none; box-shadow:none; border-radius:50%; }

/* ===== ورود و OTP + پذیرش قوانین — بازسازی ساختاری (جلسه ۱۱) ===== */
/* همه مقادیر توکن‌محور: --r-* / --sp-* / --dur-* / --ease / --spring */
.auth-card{padding:var(--sp-8) var(--sp-7)}
.auth-card h1{font-size:30px}
/* نشانگر مرحله ۱/۲ */
.auth-steps{list-style:none;display:flex;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-2)}
.auth-steps li{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;font-size:12px;font-weight:800;color:var(--mut);background:var(--card2);border:1.5px solid var(--line);border-radius:var(--r-full);padding:var(--sp-2) var(--sp-3);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease)}
.auth-steps .step-n{width:24px;height:24px;flex:none;border-radius:50%;background:#e9e2fa;color:var(--mut);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:900}
.auth-steps .step-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.auth-steps li.active{color:var(--brand);border-color:#cbb8f5;background:#f6f1ff}
.auth-steps li.active .step-n{background:var(--grad);color:#fff}
.auth-steps li.done{color:var(--ok)}
.auth-steps li.done .step-n{background:var(--ok);color:#fff}
/* ترنزیشن جابه‌جایی مرحله */
.auth-swap{animation:authSwap var(--dur-lg) var(--ease) both}
@keyframes authSwap{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* گروه‌بندی فیلدهای مرحله ۱ */
.field-group{margin-top:var(--sp-3)}
.field-group>label{margin:0 0 var(--sp-2)}
.field-group input{margin-top:0}
.field-opt{position:relative}
.opt-chip{position:absolute;top:9px;left:10px;z-index:2;font-size:11px;font-weight:800;color:#5f5a77;background:#f4f1fd;border:1px solid var(--line2);border-radius:var(--r-full);padding:2px 10px;pointer-events:none;line-height:1.7}
/* چیپ شماره مقصد کد */
.otp-phone-chip{display:flex;justify-content:center;margin-top:var(--sp-2)}
.otp-phone-chip span{display:inline-flex;align-items:center;min-height:44px;background:var(--card2);border:1px solid var(--line);border-radius:var(--r-full);padding:var(--sp-2) var(--sp-4);font-size:14px;font-weight:800;color:var(--ink);letter-spacing:1px}
/* پنج خانه بصری روی یک ورودی واقعی */
.otp-wrap{position:relative;margin-top:var(--sp-3)}
.otp-cells{display:flex;gap:var(--sp-2);direction:rtl;justify-content:center}
.otp-cell{width:56px;height:64px;flex:none;border:1.5px solid var(--line2);border-radius:var(--r-md);background:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:900;color:var(--ink);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease),transform .18s var(--spring)}
.otp-cell.filled{background:var(--card2);border-color:#cbb8f5}
.otp-cell.active{border-color:var(--brand2);box-shadow:var(--ring)}
.otp-cell.pop{animation:cellPop .18s var(--spring)}
@keyframes cellPop{0%{transform:scale(.86)}100%{transform:scale(1)}}
.otp-real{position:absolute;inset:0;width:100%;height:100%;margin:0!important;opacity:0;cursor:text;direction:ltr}
.otp-wrap:focus-within .otp-cell.active{border-color:var(--brand2);box-shadow:var(--ring)}
/* کادر خطای آیکن‌دار دوحالته (err در برابر warn) */
.auth-errbox{display:flex;align-items:flex-start;gap:var(--sp-2);text-align:right;border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:13.5px;font-weight:700;line-height:1.9;margin-top:var(--sp-3)}
.auth-errbox.err{background:#fef2f2;border:1.5px solid #f5c2c2;color:#b91c1c}
.auth-errbox.warn{background:#fffbeb;border:1.5px solid #f3d38a;color:#b45309}
.auth-errbox .err-ic{flex:none;display:inline-flex;margin-top:3px}
.auth-errbox.shake{animation:errShake .25s var(--ease)}
@keyframes errShake{0%,100%{transform:none}25%{transform:translateX(5px)}75%{transform:translateX(-5px)}}
/* تأیید ماندگار ارسال مجدد */
.resend-ok{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);background:#ecfdf5;border:1.5px solid #a7e3c5;color:#047857;border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:13.5px;font-weight:800;line-height:1.9;margin-top:var(--sp-3)}
/* ردیف ارسال مجدد سه‌حالتی */
.resend-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:44px;flex-wrap:wrap}
.resend{display:inline-flex;align-items:center;min-height:44px;padding:var(--sp-2) var(--sp-3);color:var(--brand);font-weight:800;text-decoration:underline;border-radius:var(--r-sm)}
.resend.is-disabled{color:var(--mut);text-decoration:none;pointer-events:none;cursor:default}
/* اسپینر دکمه‌های تأیید */
.btn-loading{pointer-events:none}
.btn-loading .spinner{display:inline-block;width:18px;height:18px;flex:none;border:2.5px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;margin-inline-end:var(--sp-2);vertical-align:-4px}
@keyframes spin{to{transform:rotate(360deg)}}
/* پذیرش قوانین: جداسازی خلاصه و ناحیه اقدام sticky */
.accept-card .accept-points{margin:var(--sp-3) 0 var(--sp-4)}
.accept-card .accept-points li{padding:var(--sp-3) 0;border-bottom:1px solid var(--line)}
.accept-card .accept-points li:last-child{border-bottom:none}
.accept-actions{position:sticky;bottom:0;z-index:5;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:var(--sp-3) 0 var(--sp-2);margin-top:var(--sp-4)}
.accept-chk{min-height:44px;align-items:center}
.accept-chk input{width:22px;height:22px;margin-top:0}
/* ریتم خوانایی متن کامل قوانین */
.legal-doc{max-width:65ch}
.legal-doc h3{margin:var(--sp-4) 0 var(--sp-2)}
.legal-doc h3:first-of-type{margin-top:var(--sp-4)}
.legal-doc p{margin:0 0 var(--sp-3)}
.legal-doc ul{margin:0 0 var(--sp-3)}
@media(max-width:380px){
  .otp-cell{width:52px;height:60px}
  .auth-card{padding:var(--sp-6) var(--sp-4)}
}

/* ===== بازسازی کامل حافظه و تنظیمات (جلسه ۱۵ — کارت اختصاصی .mem-card؛ .item-row بازنشسته شد چون تنها مصرف‌کننده‌اش loadMemories بود) ===== */
#memList .mem-card{display:grid;grid-template-columns:44px 1fr;gap:var(--sp-3);background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);margin-bottom:var(--sp-3);animation:cardIn .45s var(--ease) both;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur)}
#memList .mem-card:nth-child(2){animation-delay:.05s}#memList .mem-card:nth-child(3){animation-delay:.1s}#memList .mem-card:nth-child(4){animation-delay:.15s}#memList .mem-card:nth-child(5){animation-delay:.2s}#memList .mem-card:nth-child(6){animation-delay:.25s}
#memList .mem-ic{width:44px;height:44px;border-radius:var(--r-sm);background:var(--grad-soft);border:1px solid #e7ddff;color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
#memList .mem-ic .ic{width:22px;height:22px}
#memList .mem-text{font-size:15px;font-weight:700;line-height:1.9;color:var(--ink);margin:0}
#memList .mem-actions{margin-top:var(--sp-3)}
#memList .mem-del{min-height:44px;padding:11px 18px;font-size:13.5px;background:#fef2f2;color:#b91c1c;border-color:#fee2e2}
#memList .skl-mem{height:76px;border-radius:var(--r-lg);margin-bottom:var(--sp-3)}
.mem-form input,.set-form input{min-height:48px;border-radius:13px}
.mem-form .btn,.set-form .btn{margin-top:var(--sp-4);min-height:48px}
.set-form label{display:block;margin-bottom:var(--sp-2)}
#view-settings #setMsg{display:inline-block;margin-top:var(--sp-3)}
#view-settings #setMsg:not(:empty){background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;border-radius:var(--r-full);padding:6px 14px;font-size:13.5px;font-weight:800}
#view-settings .card .btn{min-height:44px}
.companion-pick{gap:var(--sp-3)}
.comp-opt:active{transform:scale(.97)}
.comp-opt .comp-check{position:absolute;top:8px;inset-inline-end:8px;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--sh-sm)}
.comp-opt .comp-check .ic{width:14px;height:14px}
.comp-opt.sel{border-width:2.5px}
@media(hover:hover){
  #memList .mem-card:hover{transform:translateY(-2px);box-shadow:var(--sh);border-color:var(--line2)}
  #memList .mem-del:hover{background:#fee2e2;border-color:#fecaca}
  .comp-opt:not(.sel):hover{transform:translateY(-2px)}
}
@media(max-width:640px){
  #memList .mem-card{padding:var(--sp-3)}
}
@media(max-width:480px){
  #memList .mem-del{width:100%}
  .companion-pick{gap:var(--sp-2)}
  .mem-form .btn,.set-form .btn{width:100%}
}
/* اصلاح جلسه ۱۵: دکمه فرم تنظیمات باید ۴۸px باشد (قاعده #view-settings .card .btn با ID بر آن غلبه می‌کرد) */
#view-settings .set-form .btn{min-height:48px}
@media(min-width:641px){
  .mem-form .btn,.set-form .btn{min-width:180px}
}

/* ===== بازسازی کامل هدر و ناوبری + صفحات حقوقی (جلسه ۱۶ — طرح HEADNAV16-PLAN.md؛ متن‌های کاربری و حقوقی دست‌نخورده) ===== */
/* سایدبار دسکتاپ: ریتم توکنی، هدف ۴۴px، حلقه فوکوس روشن روی سطح تیره */
.sidebar{padding:var(--sp-4) var(--sp-3)}
.brand{padding:var(--sp-1) var(--sp-2) var(--sp-4)}
.sidebar nav{gap:var(--sp-1)}
.navbtn{min-height:44px;padding:var(--sp-3);border-radius:var(--r-sm);font-size:15px;font-weight:700;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.navbtn:hover{transform:none}
.sidebar :focus-visible{outline:2px solid #d8b4fe;outline-offset:2px}
.newchat{min-height:48px;margin-bottom:var(--sp-3)}
/* فهرست گفت‌وگوها: دکمه واقعی با ریست کامل */
#convList{padding:2px}
.conv-item{background:none;border:none;font:inherit;text-align:right;width:100%;min-height:44px;padding:var(--sp-3);border-radius:var(--r-sm);font-size:13.5px;cursor:pointer}
.conv-item:active{transform:none}
.side-convs-empty{padding:var(--sp-3);font-size:13px;color:#a79fd6}
/* یوزرباکس و دراور */
.userbox{border-radius:var(--r-md);padding:var(--sp-3);gap:var(--sp-3);margin-top:var(--sp-3)}
.userbox .avatar{width:44px;height:44px}
.userbox .iconbtn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);color:#cfc9f2;flex:none}
.userbox .iconbtn:hover{transform:none;background:rgba(255,255,255,.08)}
/* تاپ‌بار: یک دکمه (اعتبار) + دو نمایشی (پلن، سنگین) */
.topbar{padding:var(--sp-3) var(--sp-5);gap:var(--sp-3)}
.credit-pill{min-height:44px;padding:0 var(--sp-4);font-size:13px}
.credit-pill b{font-size:14.5px}
.credit-pill:active{transform:scale(.97)}
.plan-pill{background:#fff;box-shadow:none;color:var(--mut);min-width:0;overflow:hidden;text-overflow:ellipsis}
.credit-pill,.menu-btn{flex-shrink:0}
.heavy-pill{color:#92400e}
.menu-btn{width:44px;height:44px;border-radius:var(--r-sm)}
@media(hover:hover){.credit-pill:hover{box-shadow:0 8px 20px rgba(124,58,237,.22)}}
/* موبایل‌ناو: همان ۵ آیتم، فعال چندکاناله */
.mobile-nav{padding:var(--sp-2) var(--sp-1) calc(var(--sp-2) + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.mnav{padding:var(--sp-2) 0;font-size:12px;font-weight:800}
.mnav .ic{width:20px;height:20px}
.mnav .ic svg{width:20px;height:20px}
.mnav:active{transform:scale(.95)}
.mnav.active{font-weight:900}
.mnav.active::before{width:28px;height:4px}
.mnav.active .ic{width:36px;height:36px;background:#efeaf9;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center}
.mnav.active .ic svg{width:20px;height:20px}
/* صفحات حقوقی: تایپوگرافی تازه، متن دست‌نخورده */
.legal-card{border-radius:var(--r-lg);padding:var(--sp-6)}
.legal-doc{font-size:15px;line-height:1.95}
.legal-doc h3{font-size:17px;margin:var(--sp-6) 0 var(--sp-2);padding-inline-start:var(--sp-3);scroll-margin-top:84px}
.legal-doc p{margin:0 0 var(--sp-3)}
.legal-doc ul{margin:0 0 var(--sp-3)}
.legal-doc li{margin-bottom:var(--sp-2)}
.legal-meta{font-size:13.5px;line-height:1.9;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-sm);margin-bottom:var(--sp-4)}
/* فهرست بخش‌های سند: پیوندها از h3های رندرشده ساخته می‌شوند */
.legal-toc{margin-bottom:var(--sp-4)}
.legal-toc summary{min-height:44px;display:flex;align-items:center;font-weight:800;color:var(--brand);cursor:pointer;padding:0 var(--sp-2)}
.legal-toc ul{list-style:none;display:flex;flex-direction:column}
.legal-toc li a{display:flex;align-items:center;min-height:44px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);color:var(--brand);font-size:13.5px;font-weight:800;text-decoration:none}
.legal-toc li a:hover{background:#f5f3ff}
#view-terms .back-btn,#view-privacy .back-btn{position:sticky;top:80px;z-index:4;background:#fff;box-shadow:var(--sh-sm);margin-bottom:var(--sp-4)}
/* ویوی پذیرش و کارت حقوقی تنظیمات: فقط ریتم و هدف لمسی */
.accept-card{border-radius:var(--r-xl);padding:var(--sp-6) var(--sp-5)}
.accept-points{gap:var(--sp-3)}
.accept-points li .ic,.accept-points .ic{width:36px;height:36px;border-radius:var(--r-sm)}
.accept-chk{min-height:48px}
.accept-actions{padding-bottom:calc(var(--sp-2) + env(safe-area-inset-bottom))}
.accept-links{flex-direction:row}
.accept-links .btn{flex:1 1 200px;width:auto;min-height:44px;text-align:center}
@media(min-width:1024px){
  .legal-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--sp-5);align-items:start}
  .legal-card h2{grid-column:1/-1}
  .legal-toc{position:sticky;top:84px;grid-column:1;grid-row:2;margin-bottom:0}
  .legal-toc summary{display:none}
  .legal-toc ul{display:flex;flex-direction:column}
  .legal-doc{grid-column:2;grid-row:2}
}
@media(max-width:820px){
  .sidebar{transition:transform var(--dur-lg) var(--ease)}
  .topbar{padding:var(--sp-2) var(--sp-3);gap:var(--sp-2);overflow:visible}
  .main{padding-bottom:calc(74px + env(safe-area-inset-bottom))}
  #view-terms .back-btn,#view-privacy .back-btn{top:72px}
  .legal-card{padding:var(--sp-4)}
}
@media(max-width:380px){
  .plan-pill{display:inline-flex}
}

/* ===== جلسه ۱۷ — حالت تاریک کامل (توکنی؛ طرح DARK17-PLAN.md) ===== */
html[data-theme="dark"]{
  --bg:#14101f; --bg2:#1a1630; --card:#211c36; --card2:#282145; --card3:#2f2850;
  --line:#383064; --line2:#453c78;
  --ink:#f2eefc; --mut:#b3aad0; --mut2:#8a82ab;
  --brand:#a78bfa; --brand2:#c4b5fd; --pink:#f472b6;
  --grad:linear-gradient(135deg,#8b5cf6,#a855f7 55%,#ec4899);
  --grad-soft:linear-gradient(135deg,rgba(139,92,246,.22),rgba(236,72,153,.16));
  --ok:#34d399; --warn:#fbbf24; --err:#f87171; --blue:#60a5fa;
  --sh-sm:0 2px 10px rgba(0,0,0,.35); --sh:0 10px 34px rgba(0,0,0,.4); --shadow:0 10px 34px rgba(0,0,0,.4);
  --sh-lg:0 24px 56px rgba(0,0,0,.5); --sh-glow:0 8px 28px rgba(147,51,234,.45);
  --ring:0 0 0 4px rgba(167,139,250,.28);
  --ambient-1:radial-gradient(680px 440px at 88% -60px, rgba(139,92,246,.22), transparent 62%);
  --ambient-2:radial-gradient(580px 440px at -10% 14%, rgba(236,72,153,.14), transparent 58%);
}
html[data-theme="dark"] .topbar{background:rgba(33,28,54,.86);box-shadow:0 4px 20px rgba(0,0,0,.4)}
html[data-theme="dark"] .mobile-nav{background:rgba(33,28,54,.9);box-shadow:0 -6px 24px rgba(0,0,0,.4)}
html[data-theme="dark"] .composer{background:rgba(33,28,54,.9)}
html[data-theme="dark"] input,html[data-theme="dark"] textarea,html[data-theme="dark"] select{background:var(--card2);color:var(--ink)}
html[data-theme="dark"] input::placeholder,html[data-theme="dark"] textarea::placeholder{color:var(--mut2)}
html[data-theme="dark"] .btn.ghost{background:#2f2850;color:var(--brand2)}
html[data-theme="dark"] .btn.ghost:hover{background:#383064}
html[data-theme="dark"] .badge{background:#2f2850;color:var(--brand2)}
html[data-theme="dark"] .badge.neg{background:rgba(248,113,113,.16);color:var(--err)}
html[data-theme="dark"] .chips button,html[data-theme="dark"] .cats button,html[data-theme="dark"] .back-btn,html[data-theme="dark"] .menu-btn,html[data-theme="dark"] .credit-pill,html[data-theme="dark"] .plan-pill{background:var(--card2)}
html[data-theme="dark"] .credit-pill{background:linear-gradient(120deg,#2f2850,#3b2a4d);border-color:#453c78;color:var(--brand2)}
html[data-theme="dark"] .heavy-pill{background:#3b2a1a;border-color:#6b4a1f;color:var(--warn)}
html[data-theme="dark"] .auth-card{background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(140deg,#a855f7,#ec4899) border-box;box-shadow:0 24px 60px rgba(0,0,0,.5)}
html[data-theme="dark"] .auth-card h1{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-theme="dark"] .hint-ic .ic,html[data-theme="dark"] .h-ic .ic{background:linear-gradient(140deg,#2f2850,#3b2a4d);box-shadow:inset 0 0 0 1px #453c78;color:var(--brand2)}
html[data-theme="dark"] .devcode{background:#2f2850;border-color:#6d5bb5;color:var(--brand2)}
html[data-theme="dark"] .iconbtn:hover{background:#2f2850}
html[data-theme="dark"] .task .cost{background:#2f2850;color:var(--brand2)}
html[data-theme="dark"] .cost.chat{background:#1e2a4d;color:#93c5fd}
html[data-theme="dark"] .cost.light{background:#1c2f45;color:#7dd3fc}
html[data-theme="dark"] .cost.heavy{background:#3d2233;color:#f9a8d4}
html[data-theme="dark"] .estimate-bar{background:rgba(33,28,54,.92);border-color:#6b4a1f}
html[data-theme="dark"] .msg.error{background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.4)}
html[data-theme="dark"] .msg.error .msg-act.retry{border-color:rgba(248,113,113,.4)}
html[data-theme="dark"] .chat-date{background:color-mix(in srgb,var(--brand) 16%,transparent)}
html[data-theme="dark"] .tier-badge.heavy{background:rgba(251,191,36,.16);color:var(--warn)}
html[data-theme="dark"] .tier-badge.light{background:rgba(52,211,153,.16);color:var(--ok)}
html[data-theme="dark"] .result-box{background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.35)}
html[data-theme="dark"] .err-card{background:rgba(248,113,113,.1);border-color:rgba(248,113,113,.35)}
html[data-theme="dark"] .receipt-head{background:rgba(52,211,153,.1)}
html[data-theme="dark"] .badge.pos{background:rgba(52,211,153,.16);color:var(--ok)}
html[data-theme="dark"] .r-row.balance dd{color:var(--ok)}
html[data-theme="dark"] #remList .rem-ic{background:rgba(167,139,250,.16);color:var(--brand2)}
html[data-theme="dark"] #remList .rem-act.danger:hover{background:rgba(248,113,113,.14);color:var(--err);border-color:rgba(248,113,113,.35)}
html[data-theme="dark"] .cur-badge{background:rgba(167,139,250,.18);color:var(--brand2)}
html[data-theme="dark"] .t-free .cur-badge{color:#6ee7b7}
html[data-theme="dark"] .t-pro .cur-badge{color:#fcd34d}
html[data-theme="dark"] .t-business .cur-badge{color:#fcd34d}
html[data-theme="dark"] .plan-art{background:rgba(167,139,250,.16);color:var(--brand2)}
html[data-theme="dark"] .pack-card .pack-art{background:#2f2850;color:var(--brand2)}
html[data-theme="dark"] .lock-badge{background:#3b2a1a;color:#fcd34d}
html[data-theme="dark"] .comp-opt{background:#282145}
html[data-theme="dark"] .comp-opt img{background:#383064}
html[data-theme="dark"] .comp-opt em{background:#383064;color:var(--brand2)}
html[data-theme="dark"] .comp-opt.sel{border-color:#a78bfa}
html[data-theme="dark"] .legal-toc li a:hover{background:#2f2850}
html[data-theme="dark"] #view-terms .back-btn,html[data-theme="dark"] #view-privacy .back-btn{background:var(--card2)}
html[data-theme="dark"] .toast{background:linear-gradient(#211c36,#211c36) padding-box,var(--grad) border-box}
html[data-theme="dark"] ::selection{background:rgba(167,139,250,.4)}
html[data-theme="dark"] .chat-fab{background:rgba(33,28,54,.9);color:var(--brand2)}
html[data-theme="dark"] .skl{background:linear-gradient(90deg,#2f2850 25%,#383064 50%,#2f2850 75%);background-size:200% 100%}
/* کارت انتخاب تم در تنظیمات */
.theme-pick{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.theme-opt{flex:1 1 120px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:1.5px solid var(--line);background:var(--card2);border-radius:var(--r-sm);font-size:14px;font-weight:800;color:var(--ink);transition:border-color .15s,transform .15s}
.theme-opt:hover{transform:translateY(-1px)}
.theme-opt:active{transform:scale(.97)}
.theme-opt.sel{border-color:var(--brand);box-shadow:var(--ring)}
.theme-opt .ic{color:var(--brand)}
/* گذار تم: فقط رنگ‌ها، کوتاه و بدون تکان چیدمان */
html.theme-anim,html.theme-anim *{transition:background-color .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease)!important}
/* جلسه ۱۷ — اصلاحات QA ترانه/هلیا: متن‌های سخت‌کد تیره روی سطح تیره */
html[data-theme="dark"] .form-card label{color:var(--ink)}
html[data-theme="dark"] .task .desc{color:var(--mut)}
html[data-theme="dark"] .legal-doc{color:var(--ink)}
html[data-theme="dark"] .legal-meta{background:linear-gradient(140deg,#2f2850,#3b2a4d);border-color:#453c78;color:var(--mut)}
html[data-theme="dark"] .auth-steps li.active{color:var(--brand2);border-color:#6d5bb5;background:#2f2850}
html[data-theme="dark"] .opt-chip{color:var(--mut);background:#383064}
html[data-theme="dark"] .auth-errbox.err{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.4);color:var(--err)}
html[data-theme="dark"] #memList .mem-del{background:rgba(248,113,113,.12);color:var(--err);border-color:rgba(248,113,113,.35)}
html[data-theme="dark"] #memList .mem-del:hover{background:rgba(248,113,113,.2);border-color:rgba(248,113,113,.5)}
html[data-theme="dark"] .resend-ok{background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.4);color:var(--ok)}
html[data-theme="dark"] #view-settings #setMsg:not(:empty){background:rgba(52,211,153,.12);color:var(--ok);border-color:rgba(52,211,153,.4)}
html[data-theme="dark"] #remList .rem-card.done .rem-ic,html[data-theme="dark"] #remList .rem-card.done .rem-chip{background:rgba(52,211,153,.16);color:var(--ok)}
html[data-theme="dark"] .otp-cell.filled{border-color:var(--brand2)}
html[data-theme="dark"] .empty-state .empty-ic{border-color:var(--line2);color:var(--brand2)}
html[data-theme="dark"] .auth-steps li{border-color:var(--line)}
/* جلسه ۲۳ (نگار/نیلوفر/هلیا): اکشن ثانویه «از شیبات بپرس» روی کارت ویترین — ردیف تمام‌عرض زیر فوتر، فقط توکن‌ها، کف لمسی ۴۴px */
.task-ask{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:var(--touch);margin-top:12px;border:1.5px solid var(--line);border-radius:var(--r-full);background:color-mix(in srgb, var(--brand) 7%, transparent);color:var(--brand);font:800 13px/1 var(--font);cursor:pointer;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),background var(--dur) var(--ease)}
.task-ask .ic{width:15px;height:15px}
@media (hover:hover){.task-ask:hover{transform:translateY(-1px);border-color:var(--brand);background:color-mix(in srgb, var(--brand) 12%, transparent)}}
.task-ask:active{transform:scale(.965)}
