/* زبان — سیستم طراحی پورت‌شده از theme.css مرجع: پالت زمردی عمیق، کارت‌های گرد، دکمه‌های برجسته */
@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{
  color-scheme:light;
  --bg:#F7F6F3;--bg-elevated:#FFFFFF;--surface:#FFFFFF;--surface-2:#F1EFEA;--surface-3:#E9E7E1;
  --text:#101828;--text-2:#344054;--dim:#667085;--faint:#98A2B3;--border:#EAECF0;--border-strong:#D0D5DD;
  --accent:#059669;--accent-dark:#047857;--accent-soft:#ECFDF5;--accent-ink:#065F46;
  --gold:#F59E0B;--gold-soft:#FFFAEB;--gold-deep:#B54708;
  --coral:#F04438;--coral-soft:#FEF3F2;--coral-deep:#B42318;
  --sky:#0284C7;--sky-soft:#F0F9FF;--sky-deep:#026AA2;
  --violet:#7C3AED;--violet-soft:#F5F3FF;--violet-deep:#6D28D9;
  --pink:#DB2777;--pink-soft:#FDF2F8;--ink:#0B1F17;
  /* سیستم گرادیان برند زبانا (جلسه ۱۰ تیم، پورت از theme.css آرتیفکت): مش شعاعی چندلایه در پالت طوطی — سبز عمیق غالب، مرجانی فقط هاله در لبه‌ها؛ ثابت، بدون انیمیشن */
  --zab-mesh-green:#064e3b;--zab-mesh-coral:#ff6a4d;
  --zab-mesh-header:radial-gradient(130% 300% at 12% -40%,rgba(16,185,129,.55) 0%,rgba(16,185,129,0) 55%),radial-gradient(120% 320% at 88% 135%,rgba(255,106,77,.38) 0%,rgba(255,106,77,0) 52%),radial-gradient(150% 260% at 78% -30%,rgba(94,234,212,.28) 0%,rgba(94,234,212,0) 55%),radial-gradient(160% 300% at 30% 60%,#075e43 0%,var(--zab-mesh-green) 78%);
  --zab-mesh-cta:radial-gradient(90% 220% at 6% 0%,rgba(94,234,212,.35) 0%,rgba(94,234,212,0) 55%),radial-gradient(85% 230% at 97% 108%,rgba(255,106,77,.5) 0%,rgba(255,106,77,0) 55%),radial-gradient(150% 320% at 50% 45%,#0a6b4c 0%,var(--zab-mesh-green) 82%);
  --zab-mesh-border:radial-gradient(120% 120% at 12% 8%,var(--zab-mesh-coral) 0%,rgba(255,106,77,0) 55%),radial-gradient(130% 130% at 88% 92%,#34d399 0%,rgba(52,211,153,0) 55%),radial-gradient(150% 150% at 50% 50%,#0a6b4c 0%,var(--zab-mesh-green) 80%);
  --radius:20px;
  --shadow-xs:0 1px 2px rgba(16,24,40,.05);--shadow-sm:0 1px 3px rgba(16,24,40,.07),0 1px 2px rgba(16,24,40,.04);
  --shadow-md:0 4px 12px -2px rgba(16,24,40,.08),0 2px 4px -1px rgba(16,24,40,.04);
  --shadow-lg:0 12px 32px -8px rgba(16,24,40,.14),0 4px 8px -2px rgba(16,24,40,.05);
  --shadow-xl:0 24px 48px -12px rgba(16,24,40,.18);
  --font-sans:"Vazirmatn",system-ui,-apple-system,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{color-scheme:dark;--bg:#0C0F0E;--bg-elevated:#141816;--surface:#171C1A;--surface-2:#1E2421;--surface-3:#262E2A;
  --text:#F2F4F3;--text-2:#D0D5DD;--dim:#98A2A0;--faint:#6B7672;--border:#262E2A;--border-strong:#36403B;
  --accent:#10B981;--accent-dark:#059669;--accent-soft:#0B2E23;--accent-ink:#6EE7B7;
  --gold-soft:#2A2110;--gold-deep:#FDBA74;--coral-soft:#2E1512;--coral-deep:#FDA29B;
  --sky-soft:#0C2436;--sky-deep:#7DD3FC;--violet-soft:#211A36;--violet-deep:#C4B5FD;--pink-soft:#33182A;--pink:#F472B6;--ink:#E6F4EC;
  /* گرادیان برند، تم تیره: همان پالت با سبز عمیق‌تر تا هدر/دکمه سطح تیره خوانده شوند؛ هاله مرجانی کمی قوی‌تر */
  --zab-mesh-green:#04382a;
  --zab-mesh-header:radial-gradient(130% 300% at 12% -40%,rgba(16,185,129,.5) 0%,rgba(16,185,129,0) 55%),radial-gradient(120% 320% at 88% 135%,rgba(255,106,77,.45) 0%,rgba(255,106,77,0) 52%),radial-gradient(150% 260% at 78% -30%,rgba(94,234,212,.22) 0%,rgba(94,234,212,0) 55%),radial-gradient(160% 300% at 30% 60%,#065f46 0%,var(--zab-mesh-green) 78%);
  --zab-mesh-cta:radial-gradient(90% 220% at 6% 0%,rgba(94,234,212,.3) 0%,rgba(94,234,212,0) 55%),radial-gradient(85% 230% at 97% 108%,rgba(255,106,77,.55) 0%,rgba(255,106,77,0) 55%),radial-gradient(150% 320% at 50% 45%,#075e43 0%,var(--zab-mesh-green) 82%);
  --zab-mesh-border:radial-gradient(120% 120% at 12% 8%,var(--zab-mesh-coral) 0%,rgba(255,106,77,0) 55%),radial-gradient(130% 130% at 88% 92%,#34d399 0%,rgba(52,211,153,0) 55%),radial-gradient(150% 150% at 50% 50%,#065f46 0%,var(--zab-mesh-green) 80%);
  --shadow-xs:0 1px 2px rgba(0,0,0,.3);--shadow-sm:0 1px 3px rgba(0,0,0,.35);--shadow-md:0 4px 12px -2px rgba(0,0,0,.4);
  --shadow-lg:0 12px 32px -8px rgba(0,0,0,.5);--shadow-xl:0 24px 48px -12px rgba(0,0,0,.6)}
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font-sans);background:var(--bg);color:var(--text);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
body::before{content:"";position:absolute;inset-inline:0;top:0;height:288px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 9%,transparent),transparent);pointer-events:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit}
::selection{background:#A6F4C5;color:#054F31}
.en{direction:ltr;unicode-bidi:isolate;font-family:"Inter","Vazirmatn",system-ui,sans-serif;font-weight:600;letter-spacing:-.01em}
:focus-visible{outline:2px solid rgba(2,132,199,.75);outline-offset:2px;border-radius:6px}
h1,h2,h3{margin:0}
p{margin:0}
.wrap{max-width:560px;margin:0 auto;padding:0 16px 144px;position:relative}
.glass{background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6)}
/* ---------- دکمه‌ها ---------- */
.btn-primary,.btn-chunky{box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.18);transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .15s,filter .15s,opacity .15s;border-radius:16px;font-weight:800}
.btn-primary:hover,.btn-chunky:hover{filter:brightness(1.04);box-shadow:var(--shadow-md),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-primary:active,.btn-chunky:active{transform:scale(.975);box-shadow:var(--shadow-xs)}
.btn-primary:disabled,.btn-chunky:disabled{opacity:.45;box-shadow:none;transform:none;cursor:default}
/* دکمه لمسی اکسپرسیو (جلسه ۷ تیم، Material 3 Expressive ۲۰۲۶) — فقط دکمه‌های اصلی صفحه درس: بررسی و ادامه */
.btn-tactile{border-radius:calc(var(--radius) + 8px);box-shadow:0 4px 0 var(--accent-dark),inset 0 1px 0 rgba(255,255,255,.18);transition:transform .12s ease-out,box-shadow .12s ease-out,filter .12s ease-out,opacity .12s ease-out}
.btn-tactile:hover{box-shadow:0 4px 0 var(--accent-dark),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-tactile:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-dark),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-tactile:disabled{box-shadow:none;transform:none}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 20px;font-size:15px}
.btn-accent{background:var(--accent);color:#fff}
.btn-sky{background:var(--sky);color:#fff}
.btn-violet{background:linear-gradient(135deg,#8B5CF6,#7C3AED);color:#fff}
.btn-coral{background:#D92D20;color:#fff}
.btn-soft{transition:all .15s;box-shadow:var(--shadow-xs);border:1px solid var(--border);background:var(--surface);border-radius:14px;font-weight:700}
.btn-soft:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}
.btn-soft:active{transform:scale(.98)}
.btn-ghost{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:12px 16px;font-weight:700;font-size:14px}
/* ---------- کارت و فیلد ---------- */
.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.55);border-radius:20px}
@media (prefers-color-scheme:dark){.card{box-shadow:var(--shadow-sm),inset 0 1px 0 rgba(255,255,255,.04)}}
.card-hover{transition:transform .18s,box-shadow .18s,border-color .18s}
.card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.field{border:1px solid var(--border);background:var(--surface);transition:border-color .15s,box-shadow .15s;border-radius:14px;padding:13px 14px;font-size:15px;width:100%;color:var(--text)}
.field:focus{border-color:var(--sky);box-shadow:0 0 0 3px rgba(2,132,199,.18);outline:none}
label.lbl{display:block;font-size:12px;font-weight:700;color:var(--dim);margin-bottom:5px}
.dots-light{background-image:radial-gradient(rgba(255,255,255,.16) 1.5px,transparent 1.6px);background-size:18px 18px}
.dots-faint{background-image:radial-gradient(rgba(16,24,40,.07) 1.5px,transparent 1.6px);background-size:18px 18px}
/* ---------- هدر و ناوبری ---------- */
.topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--border)}
.topbar-in{max-width:560px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px}
.brand-badge{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#059669,#047857);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);flex-shrink:0}
.brand-badge img{width:32px;height:32px;border-radius:50%;background:#fff;object-fit:cover}
@media(max-width:639px){.brand-name{display:none}}
.help-btn{margin-inline-start:auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-xs);display:flex;align-items:center;justify-content:center;color:var(--dim);flex-shrink:0}
.pills{display:flex;gap:0;flex-wrap:nowrap;align-items:center;border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:4px;box-shadow:var(--shadow-xs)}
.pill{display:flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px 4px 6px;font-size:14px;font-weight:800;position:relative;white-space:nowrap}
.pill + .pill::before{content:"";position:absolute;inset-inline-start:-1px;top:50%;transform:translateY(-50%);width:1px;height:20px;background:var(--border)}
.pill .ic{display:flex;width:24px;height:24px;border-radius:50%;align-items:center;justify-content:center}
.dock{position:fixed;inset-inline:0;bottom:0;z-index:20;padding:0 16px calc(14px + env(safe-area-inset-bottom))}
.dock-in{max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(6,1fr);gap:4px;border-radius:26px;border:1px solid var(--border);padding:6px;box-shadow:var(--shadow-lg);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(16px) saturate(1.6)}
.navbtn{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;border-radius:20px;padding:9px 2px;font-size:11px;font-weight:700;color:var(--dim);transition:all .2s}
.navbtn.on{background:var(--accent-soft);color:var(--accent-ink);box-shadow:var(--shadow-xs)}
.navbtn.on::before{content:"";position:absolute;top:6px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
/* ---------- مسیر یادگیری ---------- */
.goal-card{margin-top:20px;border-radius:26px;padding:20px;color:#fff;box-shadow:var(--shadow-lg);overflow:hidden;position:relative;background-color:#0B2E21;background-image:radial-gradient(rgba(255,255,255,.16) 1.5px,transparent 1.6px),radial-gradient(circle,rgba(52,211,153,.35),transparent 70%),radial-gradient(circle,rgba(251,191,36,.16),transparent 70%),linear-gradient(135deg,#0B2E21 0%,#0E4A34 55%,#0B6B4F 100%);background-size:18px 18px,192px 192px,176px 176px,cover;background-position:0 0,-40px -64px,calc(100% + 32px) calc(100% + 80px),0 0;background-repeat:repeat,no-repeat,no-repeat,no-repeat}
.goal-row{display:flex;gap:16px;align-items:center;position:relative}
.goal-pct{display:inline-block;background:rgba(255,255,255,.15);color:#A7F3D0;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}
.goal-big{font-size:26px;font-weight:900;line-height:1.3;margin-top:4px}
.goal-big span{font-size:14px;font-weight:600;color:rgba(255,255,255,.6)}
.goal-foot{position:relative;margin-top:16px;border-top:1px solid rgba(255,255,255,.1);padding-top:14px;font-size:12px;font-weight:600;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.goal-dot{width:4px;height:4px;border-radius:50%;background:rgba(255,255,255,.3);margin:0 4px;flex-shrink:0}
.goal-ring{position:relative;width:76px;height:76px;flex-shrink:0}
.goal-ring img{position:absolute;inset:0;margin:auto;width:48px;height:48px;border-radius:50%;object-fit:cover;background:#fff;box-shadow:var(--shadow-md),0 0 0 2px rgba(255,255,255,.4)}
.unit-banner{margin-top:28px;border-radius:24px;padding:20px;color:#fff;box-shadow:var(--shadow-md);position:relative;overflow:hidden}
.unit-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;position:relative}
.unit-chip{display:inline-block;background:rgba(0,0,0,.2);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700}
.unit-count{flex-shrink:0;background:rgba(255,255,255,.15);border-radius:16px;padding:8px 12px;text-align:center}
.unit-count b{display:block;font-size:16px;font-weight:900;line-height:1.4}
.unit-count span{display:block;font-size:10px;font-weight:600;color:rgba(255,255,255,.8)}
.unit-progress{position:relative;margin-top:16px;height:6px;border-radius:99px;background:rgba(0,0,0,.2);overflow:hidden}
.unit-progress i{display:block;height:100%;border-radius:99px;background:#fff;transition:width .7s}
.unit-banner h3{font-size:20px;font-weight:900}
.unit-banner p{font-size:13px;opacity:.85;margin-top:3px}
.trail{position:relative;margin-top:4px}
.trail svg.bg{position:absolute;inset:0;width:100%;height:100%}
.node-wrap{position:absolute;width:144px;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-34px)}
.node-3d{box-shadow:var(--shadow-md),inset 0 2px 0 rgba(255,255,255,.35),inset 0 -7px 0 rgba(0,0,0,.14);width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;position:relative;z-index:2;transition:transform .2s;border:4px solid var(--bg)}
.node-3d:active{box-shadow:var(--shadow-sm),inset 0 2px 0 rgba(255,255,255,.3),inset 0 -3px 0 rgba(0,0,0,.14)}
.node-3d:hover{transform:scale(1.05)}
.node-title{margin-top:8px;font-size:14px;font-weight:700;text-align:center;line-height:1.45;max-width:128px}
.node-stars{display:flex;gap:2px;margin-top:2px;color:var(--gold)}
.start-bubble{position:absolute;top:-46px;left:50%;transform:translateX(-50%);z-index:3}
.start-bubble span{display:block;position:relative;white-space:nowrap;background:var(--surface);padding:6px 14px;border-radius:12px;font-size:13px;font-weight:800;box-shadow:var(--shadow-md);border:1px solid var(--border)}
.start-bubble span::after{content:"";position:absolute;left:50%;top:100%;width:10px;height:10px;background:var(--surface);border-inline-end:1px solid var(--border);border-bottom:1px solid var(--border);transform:translate(-50%,-6px) rotate(45deg);clip-path:polygon(100% 0,100% 100%,0 100%)}
@keyframes ring-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ring-color,#059669) 35%,transparent)}70%{box-shadow:0 0 0 12px transparent}100%{box-shadow:0 0 0 0 transparent}}
.ring-pulse{animation:ring-pulse 2.2s cubic-bezier(.4,0,.6,1) infinite}
@keyframes bubble-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.bubble-bob{animation:bubble-bob 2.4s ease-in-out infinite}
/* ---------- تمرین ---------- */
.opt{display:flex;align-items:center;gap:12px;width:100%;text-align:start;border:2px solid var(--border);background:var(--surface);border-radius:16px;padding:14px 16px;font-size:15px;font-weight:600;transition:all .15s;box-shadow:var(--shadow-xs)}
.opt:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.opt-list{counter-reset:opt}
.opt-list .opt{counter-increment:opt}
.opt-list .opt::before{content:counter(opt,upper-alpha);width:28px;height:28px;border-radius:8px;background:var(--surface-2);color:var(--dim);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;font-family:"Inter","Vazirmatn",system-ui,sans-serif}
.opt.sel{border-color:var(--sky);background:var(--sky-soft);box-shadow:0 0 0 1px var(--sky)}
.opt-list .opt.sel::before{background:var(--sky);color:#fff}
.opt.right{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent)}
.opt-list .opt.right::before{background:var(--accent);color:#fff}
.opt.wrong{border-color:var(--coral);background:var(--coral-soft);box-shadow:0 0 0 1px var(--coral)}
.opt-list .opt.wrong::before{background:var(--coral);color:#fff}
.tile{border:2px solid var(--border);background:var(--surface);border-radius:12px;padding:9px 14px;font-weight:700;box-shadow:0 3px 0 var(--border);transition:all .12s}
.tile:active{transform:translateY(2px);box-shadow:none}
.tile.used{opacity:.25;pointer-events:none}
.tile.built{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.built-line{min-height:56px;border:2px dashed var(--border-strong);border-radius:16px;display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:10px;background:var(--surface-2)}
.feedback{border-radius:22px;padding:16px;margin-top:28px;border:1px solid rgba(16,24,40,.07);box-shadow:var(--shadow-md)}
.fb-ic{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.bar{height:10px;border-radius:99px;background:var(--surface-3);overflow:hidden}
.bar>i{display:block;height:100%;border-radius:99px;background:var(--accent);transition:width .4s cubic-bezier(.22,1,.36,1)}
.bar.shine{position:relative}
.progress-shine{position:relative;overflow:hidden}
.progress-shine::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);background-size:200% 100%;animation:shimmer 2.4s linear infinite}
@keyframes shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
/* ---------- فلش‌کارت ---------- */
.flip-scene{perspective:1200px;height:190px}
.flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.34,1.2,.64,1)}
.flip-inner.flipped{transform:rotateY(180deg)}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border-radius:22px}
.flip-face.back{transform:rotateY(180deg)}
/* ---------- متفرقه ---------- */
.skel{border-radius:14px;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes pop-in{0%{transform:scale(.92) translateY(6px);opacity:0}100%{transform:scale(1) translateY(0);opacity:1}}
.pop-in{animation:pop-in .35s cubic-bezier(.34,1.4,.64,1) both}
@keyframes fade-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fade-up{animation:fade-up .5s cubic-bezier(.22,1,.36,1) both}
.fade-up-1{animation-delay:.05s}.fade-up-2{animation-delay:.12s}.fade-up-3{animation-delay:.19s}
@keyframes float-soft{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.float-soft{animation:float-soft 3.5s ease-in-out infinite}
@keyframes sheet-up{from{transform:translateY(48px);opacity:.6}to{transform:translateY(0);opacity:1}}
.sheet-up{animation:sheet-up .38s cubic-bezier(.22,1,.36,1) both}
@keyframes star-pop{0%{transform:scale(0) rotate(-30deg);opacity:0}60%{transform:scale(1.25) rotate(6deg);opacity:1}100%{transform:scale(1) rotate(0);opacity:1}}
.star-pop{animation:star-pop .5s cubic-bezier(.34,1.56,.64,1) both}
@keyframes bar-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.bar-grow{transform-origin:bottom;animation:bar-grow .7s cubic-bezier(.22,1,.36,1) both}
.eq{display:inline-flex;align-items:flex-end;gap:2.5px;height:14px}
.eq>span{width:3px;height:100%;border-radius:2px;background:currentColor;transform-origin:bottom;animation:eq-bounce .9s ease-in-out infinite}
.eq>span:nth-child(2){animation-delay:.18s}.eq>span:nth-child(3){animation-delay:.36s}.eq>span:nth-child(4){animation-delay:.54s}
@keyframes eq-bounce{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.toast{position:fixed;inset-inline:0;bottom:110px;z-index:60;margin:0 auto;width:fit-content;max-width:90%;background:#101828;color:#fff;border-radius:16px;padding:13px 20px;font-size:14px;font-weight:700;box-shadow:var(--shadow-xl);text-align:center}
.overlay{position:fixed;inset:0;z-index:40;background:var(--bg);overflow-y:auto}
.sheet-bg{position:fixed;inset:0;z-index:40;background:rgba(16,24,40,.55);backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--surface);width:100%;max-width:560px;border-radius:26px 26px 0 0;padding:22px;max-height:88dvh;overflow-y:auto}
@media(min-width:640px){.sheet-bg{align-items:center;padding:24px}.sheet{border-radius:26px}}
.sec-head{display:flex;align-items:center;gap:10px;margin-top:26px}
.sec-head .ic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sec-head h3{font-size:16px;font-weight:800}
.mut{color:var(--dim)} .small{font-size:13px;line-height:1.9}
.chip{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:700}
.row{display:flex;align-items:center;gap:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stat-card{padding:15px}
.stat-card .v{font-size:17px;font-weight:900;margin-top:10px}
.stat-card .l{font-size:12px;color:var(--dim);margin-top:2px}
.stat-ic{width:32px;height:32px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.seg{display:flex;background:var(--surface-2);border-radius:14px;padding:4px;gap:4px}
.seg button{flex:1;padding:9px;border-radius:11px;font-weight:800;font-size:13px;color:var(--dim)}
.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}
.chat-user{align-self:flex-start;background:var(--accent);color:#fff;border-radius:20px;border-end-start-radius:6px;padding:11px 15px;max-width:85%;line-height:1.9}
.chat-tutor{align-self:flex-end;background:var(--surface);border:1px solid var(--border);border-radius:20px;border-end-end-radius:6px;padding:11px 15px;max-width:85%;box-shadow:var(--shadow-xs)}
.hl-line{background:var(--accent-soft)!important;border-color:var(--accent)!important}
input[type="time"].field{max-width:170px}
.otp-inp{text-align:center;font-size:24px;font-weight:900;letter-spacing:8px;direction:ltr}
.phone-inp{direction:ltr;text-align:left}
.err{background:var(--coral-soft);color:var(--coral-deep);border:1px solid #FECDCA;border-radius:14px;padding:11px 14px;font-size:13px;font-weight:700;line-height:1.9}
.okbox{background:var(--accent-soft);color:var(--accent-ink);border-radius:14px;padding:11px 14px;font-size:13px;font-weight:700;line-height:1.9}
/* بازخورد زنده حین تایپ — لرزش ملایم حرف اشتباه (پورت مرجع) */
@keyframes char-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-2.5px)}40%{transform:translateX(2.5px)}60%{transform:translateX(-1.5px)}80%{transform:translateX(1.5px)}}
.char-shake{animation:char-shake .38s ease-in-out}
/* برچسب شناور +XP (جلسه ۹ تیم، پورت از theme.css آرتیفکت) — با پاسخ صحیح XPآور از روی دکمه بالا می‌رود و محو می‌شود؛ کاملاً عمودی پس RTL امن است */
@keyframes xp-float{0%{opacity:0;transform:translateY(6px) scale(.9)}18%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-36px) scale(1.02)}}
.xp-float{animation:xp-float .6s cubic-bezier(.22,1,.36,1) both}
@media (prefers-reduced-motion:reduce){.pop-in,.float-soft,.fade-up,.sheet-up,.ring-pulse,.bubble-bob,.bar-grow,.star-pop,.eq>span,.skel,.char-shake,.xp-float{animation:none}.flip-inner{transition:none}.btn-tactile{transition:none}.btn-tactile:active{transform:none}html{scroll-behavior:auto}}

/* برند زبانا — وردمارک طبق شیت مرجع لوگو: نقطه مرجانی + ZABANA لاتین */
.brand-dot{color:#F4633A;font-weight:900}
.brand-latin{direction:ltr;letter-spacing:.38em;font-size:11px;font-weight:700;color:#0B6B4F;margin-top:3px;text-indent:.38em}

/* سیستم گرادیان برند زبانا (جلسه ۱۰ تیم، پورت از theme.css آرتیفکت) — فقط روی سه عنصر موجود اعمال می‌شود؛ بدون تغییر DOM/متن/منطق */
.mesh-header{background-color:var(--zab-mesh-green);background-image:var(--zab-mesh-header);border-bottom-color:color-mix(in srgb,var(--zab-mesh-green) 55%,transparent)}
.mesh-header .brand-name{color:#ffffff}
.mesh-header .brand-latin{color:#5eead4}
.mesh-cta{background-color:var(--zab-mesh-green);background-image:var(--zab-mesh-cta);color:#ffffff}
.mesh-avatar{border:2.5px solid transparent;background:radial-gradient(130% 130% at 28% 18%,#065f46,#022c22) padding-box,var(--zab-mesh-border) border-box}

/* کارت چرخان واژه (جلسه ۱۱ تیم، پورت از FlipWordRow.tsx آرتیفکت) — فقط در بافت‌های نمایش غیرارزیابی‌شده: پیش‌نمایش واژه‌های شیت درس و فهرست «واژه‌های تو»؛ چرخش حول محور عمودی = RTL امن؛ زیر prefers-reduced-motion ترنزیشن .flip-inner حذف است (تعویض آنی) */
.flip-inner.quick{transition:transform .3s ease}
.flip-wordrow{height:56px}
.flip-wordrow .flip-inner{display:block;width:100%;height:100%;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:start;font:inherit;color:inherit}
.flip-wordrow .flip-face{flex-direction:row;justify-content:flex-start;align-items:center;gap:8px;border-radius:14px;padding:8px 12px;border:1px solid var(--border);background:var(--surface)}
.flip-wordrow .flip-face.back{background:var(--accent-soft);border-color:transparent}
