/* استایل قالب مطلب — از _design/v9/read.html استخراج شده. */
/* ══════════════════════════════════════════════════════════════════════
   قالب مطلب — همه‌چیز روی یک کارت.

   این فایل «انبار عناصر» هم هست: هر چیزی که ممکن است در آینده داخل یک
   مطلب بیاید اینجا استایل دارد، تا موقع نوشتن مطلب تازه لازم نباشد
   دوباره طراحی شود.

   قاعده‌های ثابت:
   · بلوک‌های لاتین (کد) همیشه direction:ltr و موقعیت‌دهی فیزیکی.
   · بلوک‌های عریض (کد، جدول، تصویر) تا لبه‌ی داخلی کارت می‌روند.
   · فاصله‌ی عمودی از یک مقیاس واحد می‌آید، نه عدد دلخواه.
   ══════════════════════════════════════════════════════════════════════ */

.rd{--pad:clamp(20px,3.4vw,44px);
  display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px;align-items:start}
@media (max-width:1080px){ .rd{grid-template-columns:1fr} }

/* ───────── کارت ───────── */
.rd-card{background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:var(--pad);overflow:hidden}

/* ───────── سربرگ مطلب ───────── */
.rd-hd{padding-bottom:26px;border-bottom:1px solid var(--line)}
.rd-hd h1{font-size:clamp(25px,3.4vw,38px);line-height:1.4;margin-top:13px}
.rd-latin{direction:ltr;text-align:right;font-size:14.5px;color:var(--muted);
  margin-top:7px;font-weight:600}
.rd-deck{font-size:clamp(16.5px,1.8vw,19px);line-height:1.85;color:var(--ink-2);margin-top:15px}
.rd-by{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px;
  font-size:13px;color:var(--muted)}
.rd-by i{width:4px;height:4px;border-radius:50%;background:var(--line);flex:none}
.rd-av{width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;
  display:grid;place-items:center;font-size:12.5px;font-weight:800;direction:ltr;flex:none}
.rd-by b{color:var(--ink);font-size:13.5px}

/* ───────── بدنه: مقیاس فاصله و تایپوگرافی ───────── */
.rd-b{padding-top:26px;font-size:17.5px;line-height:2.05;color:var(--ink-2)}
.rd-b > * + *{margin-top:20px}
.rd-b > h2{font-size:clamp(20px,2.3vw,25px);line-height:1.6;color:var(--ink);margin-top:42px}
.rd-b > h3{font-size:18.5px;line-height:1.7;color:var(--ink);margin-top:32px}
.rd-b > h4{font-size:16.5px;line-height:1.7;color:var(--ink);margin-top:26px}
.rd-b > h2:first-child,.rd-b > h3:first-child{margin-top:0}
.rd-b p{font-size:17.5px;line-height:2.05}
.rd-lead{font-size:19.5px !important;line-height:1.95 !important;color:var(--ink) !important}

/* عناصر درون‌خطی */
.rd-b strong,.rd-b b{color:var(--ink);font-weight:800}
.rd-b em{font-style:normal;color:var(--ink);border-bottom:1px dashed var(--line)}
.rd-b a{color:var(--accent);font-weight:700;text-decoration:underline;
  text-underline-offset:5px;text-decoration-thickness:1px;
  text-decoration-color:color-mix(in srgb,var(--accent) 38%,transparent)}
.rd-b a:hover{text-decoration-color:var(--accent)}
.rd-b code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14.5px;
  direction:ltr;unicode-bidi:embed;background:var(--navy-soft);color:var(--navy);
  padding:2px 7px;border-radius:6px}
.rd-b mark{background:color-mix(in srgb,var(--accent) 22%,transparent);
  color:var(--ink);padding:1px 4px;border-radius:4px}
.rd-b kbd{font-family:ui-monospace,monospace;font-size:13px;direction:ltr;
  border:1px solid var(--line);border-bottom-width:2px;border-radius:6px;
  padding:2px 7px;background:var(--bg);color:var(--ink)}
.rd-b abbr{text-decoration:underline dotted;text-underline-offset:4px;cursor:help}
.rd-b sup a{font-size:12px;text-decoration:none;padding:0 2px}

/* فهرست‌ها */
.rd-b ul,.rd-b ol{padding-inline-start:22px;display:flex;flex-direction:column;gap:10px}
.rd-b li{font-size:17.5px;line-height:1.95}
.rd-b li > ul,.rd-b li > ol{margin-top:10px}
.rd-b ul{list-style:none;padding-inline-start:4px}
.rd-b ul > li{display:flex;gap:11px;align-items:flex-start}
.rd-b ul > li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;
  background:var(--accent);margin-top:13px}
.rd-b ol{list-style:none;counter-reset:rdol;padding-inline-start:4px}
.rd-b ol > li{counter-increment:rdol;display:flex;gap:11px;align-items:flex-start}
.rd-b ol > li::before{content:counter(rdol) "."; flex:none;color:var(--accent);
  font-weight:800;font-variant-numeric:tabular-nums;min-width:20px}

/* فهرست تعریفی */
.rd-b dl{display:grid;grid-template-columns:auto 1fr;gap:10px 16px;margin:0}
.rd-b dt{font-weight:800;color:var(--ink);font-size:16px}
.rd-b dd{margin:0;font-size:16px;line-height:1.9}

/* جداکننده */
.rd-b hr{border:0;border-top:1px solid var(--line);margin-block:34px}

/* ───────── بلوک‌ها ─────────
   هیچ‌چیز به لبه‌ی کارت نمی‌چسبد. همه‌ی بلوک‌ها داخل padding کارت
   می‌مانند و گوشه‌ی گرد خودشان را دارند. */

/* کد — نوار بالایی برای نام زبان و دکمه کپی.
   قبلاً هر دو روی خودِ کد شناور بودند و با خط اول کد تداخل می‌کردند.
   با نوار جدا، هیچ‌چیز روی کد نمی‌افتد و دکمه همیشه در دسترس است. */
.rd-code{border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;
  background:#0F1F4D}
[data-theme="dark"] .rd-code{background:#0A1020}
.rd-code__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:7px 10px 7px 14px;background:rgba(255,255,255,.05);
  border-bottom:1px solid rgba(255,255,255,.09)}
.rd-code__lang{font-size:11px;font-weight:700;letter-spacing:.06em;
  color:rgba(220,230,255,.5);direction:ltr}
.rd-code__btn{font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;
  padding:5px 12px;min-height:30px;border-radius:var(--pill);border:0;
  background:rgba(255,255,255,.12);color:#DCE6FF;
  transition:background-color .18s linear,color .18s linear}
.rd-code__btn:hover{background:rgba(255,255,255,.26)}
.rd-code__btn.is-done{background:var(--ok);color:#fff}
.rd-code pre{margin:0;background:none;color:#DCE6FF;padding:18px 20px;
  overflow-x:auto;overscroll-behavior-x:contain;
  direction:ltr;text-align:left;font-size:14px;line-height:1.9;
  font-family:ui-monospace,Menlo,Consolas,monospace}

/* جدول — قاب خودش را دارد، پس محتوا به لبه نمی‌چسبد */
.rd-tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
.rd-tbl table{width:100%;border-collapse:collapse;font-size:15.5px;min-width:460px}
.rd-tbl th,.rd-tbl td{padding:13px 18px;text-align:start;
  border-bottom:1px solid var(--line)}
.rd-tbl th{font-size:13px;font-weight:800;color:var(--muted);background:var(--bg)}
.rd-tbl tr:last-child td{border-bottom:0}
.rd-tbl td{color:var(--ink-2)}
.rd-tbl .n{font-variant-numeric:tabular-nums;direction:ltr;text-align:start}

/* تصویر و ویدیو */
.rd-fig{margin:0}
.rd-fig img,.rd-fig .rd-ph{width:100%;display:block;border-radius:var(--r-sm)}
.rd-ph{aspect-ratio:16/9;display:grid;place-items:center;color:rgba(255,255,255,.3);
  font-size:22px;font-weight:800;direction:ltr}
.rd-fig figcaption{font-size:13px;color:var(--muted);margin-top:9px;
  text-align:center;line-height:1.8}
.rd-embed{position:relative;aspect-ratio:16/9;border-radius:var(--r-sm);overflow:hidden}
.rd-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ───────── جعبه‌های محتوایی ───────── */

/* خلاصه‌ی بالای مطلب */
.rd-sum{background:var(--navy-soft);border-radius:var(--r);padding:18px 20px}
.rd-sum b{display:block;font-size:12.5px;color:var(--navy);margin-bottom:10px}
.rd-sum ul{gap:8px}
.rd-sum li{font-size:15.5px;line-height:1.85;color:var(--ink)}
.rd-sum ul > li::before{background:var(--navy);margin-top:11px}

/* نکته / هشدار / توصیه */
.rd-note{display:flex;gap:13px;padding:16px 18px;border-radius:var(--r);
  background:var(--navy-soft);border-inline-start:3px solid var(--navy)}
.rd-note__i{flex:none;width:26px;height:26px;border-radius:50%;display:grid;
  place-items:center;background:var(--navy);color:#fff;font-size:14px;
  font-weight:800;font-style:normal}
.rd-note p{font-size:15.5px !important;line-height:1.9 !important;margin:0}
.rd-note b{display:block;margin-bottom:3px;color:var(--ink)}
.rd-note--warn{background:color-mix(in srgb,var(--red) 9%,transparent);
  border-inline-start-color:var(--red)}
.rd-note--warn .rd-note__i{background:var(--red)}
.rd-note--tip{background:var(--accent-soft);border-inline-start-color:var(--accent)}
.rd-note--tip .rd-note__i{background:var(--accent);color:var(--on-accent)}

/* نقل‌قول */
.rd-q{margin:0;padding:22px 24px;border-radius:var(--r);background:var(--bg);
  border:1px solid var(--line);position:relative}
.rd-q p{font-size:19px !important;line-height:1.85 !important;color:var(--ink);font-weight:700}
.rd-q cite{display:block;margin-top:10px;font-style:normal;font-size:12.5px;color:var(--muted)}
.rd-q::before{content:"";position:absolute;inset-inline-start:0;inset-block:20px;
  width:3px;border-radius:3px;background:var(--accent)}

/* مراحل */
.rd-steps{counter-reset:rs;display:flex;flex-direction:column;gap:16px;
  margin:0;padding:0;list-style:none}
.rd-steps > li{counter-increment:rs;display:flex;gap:14px;align-items:flex-start;padding:0}
.rd-steps > li::before{content:counter(rs);flex:none;width:30px;height:30px;
  border-radius:50%;display:grid;place-items:center;background:var(--accent);
  color:var(--on-accent);font-size:13.5px;font-weight:800;
  font-variant-numeric:tabular-nums;margin-top:3px}
.rd-steps b{display:block;color:var(--ink);font-size:16px}
.rd-steps p{font-size:15.5px !important;line-height:1.9 !important;margin-top:4px}

/* بکن / نکن */
.rd-yn{display:grid;grid-template-columns:1fr 1fr;
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.rd-yn > div{padding:18px 20px}
.rd-yn > div + div{border-inline-start:1px solid var(--line)}
.rd-yn b{display:block;font-size:13px;margin-bottom:12px}
.rd-yn ul{gap:9px}
.rd-yn li{font-size:15px;line-height:1.8}
.rd-yn__y b{color:var(--ok)} .rd-yn__y ul > li::before{background:var(--ok)}
.rd-yn__n b{color:var(--red)} .rd-yn__n ul > li::before{background:var(--red)}
@media (max-width:620px){
  .rd-yn{grid-template-columns:1fr}
  .rd-yn > div + div{border-inline-start:0;border-top:1px solid var(--line)}
}

/* فایل دانلودی */
.rd-file{display:flex;align-items:center;gap:14px;padding:15px 18px;
  border:1px solid var(--line);border-radius:var(--r);background:var(--bg)}
.rd-file__i{flex:none;width:42px;height:42px;border-radius:11px;display:grid;
  place-items:center;background:var(--accent-soft);color:var(--accent)}
.rd-file__i svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9}
.rd-file__t{flex:1;min-width:0}
.rd-file__t b{display:block;font-size:15px;color:var(--ink)}
.rd-file__t span{font-size:12.5px;color:var(--muted)}

/* فراخوان میان‌متن */
.rd-cta{position:relative;overflow:hidden;border-radius:var(--r);padding:22px 24px;
  color:#fff;display:flex;align-items:center;justify-content:space-between;
  gap:18px;flex-wrap:wrap;
  background:radial-gradient(ellipse 60% 80% at 88% 15%,rgba(var(--accent-rgb),.34),transparent 62%),
             linear-gradient(150deg,#0F1F4D,#1E3A8A)}
.rd-cta h3{font-size:17.5px;color:#fff;line-height:1.6}
.rd-cta p{font-size:14px !important;color:rgba(255,255,255,.76) !important;
  margin-top:5px;line-height:1.85 !important}

/* پانویس */
.rd-fn{border-top:1px solid var(--line);padding-top:20px}
.rd-fn b{display:block;font-size:12.5px;color:var(--muted);margin-bottom:11px}
.rd-fn ol{gap:9px}
.rd-fn li{font-size:14px;line-height:1.85}
.rd-fn ol > li::before{color:var(--muted);font-weight:700}

/* ───────── پایان مطلب ───────── */
.rd-ft{margin-top:34px;padding-top:22px;border-top:1px solid var(--line)}
.rd-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}
.rd-tags a{font-size:12.5px;font-weight:700;padding:6px 13px;border-radius:var(--pill);
  background:var(--navy-soft);color:var(--navy)}
.rd-tags a:hover{background:var(--navy);color:#fff}

.rd-share{display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap}
.rd-share__l{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rd-share__l span{font-size:13px;color:var(--muted);white-space:nowrap}

/* دایره فقط برای دکمه‌های آیکونی است.
   قبلاً سلکتور .rd-share a همه‌ی لینک‌های این ردیف را می‌گرفت، از جمله
   لینک متنیِ انتها — آن هم ۳۸ پیکسل و گرد می‌شد و متنش بیرون می‌زد. */
.rd-share__l a,.rd-share__l button{width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:transparent;color:var(--ink-2);cursor:pointer;
  display:grid;place-items:center;transition:border-color .18s,color .18s,transform .18s}
.rd-share__l a:hover,.rd-share__l button:hover{border-color:var(--accent);
  color:var(--accent);transform:translateY(-2px)}
.rd-share__l svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9}

/* لینک انتها: قاب کپسولی، هم‌ارتفاع با دکمه‌های آیکونی */
.rd-share__more{display:inline-flex;align-items:center;gap:7px;flex:none;
  white-space:nowrap;min-height:38px;padding:0 18px;border-radius:var(--pill);
  border:1px solid var(--line);font-size:13.5px;font-weight:700;color:var(--ink-2);
  transition:border-color .18s,color .18s,background-color .18s}
.rd-share__more:hover{border-color:var(--accent);color:var(--accent);
  background:var(--accent-soft)}

.rd-help{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:22px;
  padding:15px 18px;border-radius:var(--r);background:var(--bg);border:1px solid var(--line)}
.rd-help b{font-size:14px}
.rd-help button{font-family:inherit;font-size:13.5px;font-weight:700;cursor:pointer;
  padding:8px 17px;min-height:38px;border-radius:var(--pill);
  border:1px solid var(--line);background:var(--card);color:var(--ink-2);
  transition:border-color .18s,color .18s}
.rd-help button:hover{border-color:var(--accent);color:var(--accent)}
.rd-help.is-done button{display:none}
.rd-help__ok{display:none;font-size:14px;color:var(--ok);font-weight:700}
.rd-help.is-done .rd-help__ok{display:block}

/* نویسنده */
.rd-author{display:flex;gap:15px;align-items:flex-start;margin-top:20px;
  padding:18px;border-radius:var(--r);background:var(--bg);border:1px solid var(--line)}
.rd-author__av{width:52px;height:52px;border-radius:50%;flex:none;background:var(--navy);
  color:#fff;display:grid;place-items:center;font-weight:800;direction:ltr}
.rd-author b{font-size:15px;color:var(--ink)}
.rd-author p{font-size:14px !important;line-height:1.9 !important;margin-top:5px}

/* قبلی / بعدی */
.rd-nav{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.rd-nav a{padding:15px 18px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--card);transition:border-color .18s,transform .18s}
.rd-nav a:hover{border-color:var(--accent);transform:translateY(-2px)}
.rd-nav span{font-size:12px;color:var(--muted);display:block;margin-bottom:5px}
.rd-nav b{font-size:14.5px;line-height:1.7;color:var(--ink)}
@media (max-width:620px){ .rd-nav{grid-template-columns:1fr} }

/* ───────── ستون کناری ───────── */
.rd-side{position:sticky;top:18px;display:flex;flex-direction:column;gap:14px;
  max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain;
  padding-block:6px;margin-block:-6px}
@media (max-width:1080px){ .rd-side{position:static;max-height:none;overflow:visible} }
.rd-toc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:17px 19px}
.rd-toc b{display:block;font-size:12.5px;color:var(--muted);margin-bottom:12px}
.rd-toc a{display:block;font-size:13.5px;line-height:1.65;color:var(--ink-2);
  padding:8px 0;padding-inline-end:12px;border-inline-end:2px solid var(--line);
  transition:color .2s,border-color .2s}
.rd-toc a:hover{color:var(--ink)}
.rd-toc a[aria-current="true"]{color:var(--accent);border-inline-end-color:var(--accent);font-weight:700}
/* ═══════════ سطح کارتی برای متن ═══════════
   صفحه‌های متن‌محور (مقاله، واژه، خدمت، نمونه‌کار، ابزار، پادکست، ویدیو
   و برگه‌های متنی) متنشان روی کارت می‌نشیند، نه لخت روی زمینه.
   لبه‌ی کارت برای چشم قاب می‌سازد و متن جمع‌تر دیده می‌شود. */
.prose--card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--r);
  padding:clamp(20px,3vw,40px);
}
.prose--card > *:first-child{margin-top:0}

/* بلوک‌های عریض داخل کارت نباید به لبه بچسبند — قاب خودشان را دارند */
.prose--card pre,
.prose--card .rd-tbl,
.prose--card table{border-radius:var(--r-sm)}