/* ===========================================================
   Resuscitation Fellow — شیوه‌نامهٔ بصری
   طراحی موبایل‌اول، راست‌چین، با حالت روشن/تاریک و چاپ تمیز
   =========================================================== */

:root{
  --font-fa: "Vazirmatn Variable","Vazirmatn","IRANSansX","IRANSans",Tahoma,system-ui,sans-serif;
  --font-en: ui-sans-serif,-apple-system,"Segoe UI",Roboto,sans-serif;
  --font-mono: ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  --bg:        #f5f7f8;
  --bg-soft:   #ffffff;
  --bg-sunk:   #eceff1;
  --ink:       #15232b;
  --ink-soft:  #4a5c66;
  --ink-faint: #7b8c95;
  --line:      #dde3e6;
  --line-soft: #e9edef;

  --brand:     #0e7490;
  --brand-ink: #075a70;
  --brand-wash:#e2f2f6;

  --crit:      #c0392b;   /* بحرانی / اقدام فوری */
  --crit-wash: #fdecea;
  --warn:      #b06a00;
  --warn-wash: #fdf2e0;
  --ok:        #1e7a4e;
  --ok-wash:   #e6f4ec;
  --info:      #3a5fa8;
  --info-wash: #e9eef9;

  --radius: 12px;
  --radius-s: 8px;
  --shadow: 0 1px 2px rgba(16,32,40,.06), 0 8px 24px -16px rgba(16,32,40,.35);
  --wrap: 1180px;
  --read: 72ch;
}

/* حالت تاریک */
:root[data-theme="dark"]{
  --bg:        #0b1920;
  --bg-soft:   #12262f;
  --bg-sunk:   #0a151b;
  --ink:       #e4edf1;
  --ink-soft:  #a7bcc6;
  --ink-faint: #7b949f;
  --line:      #21404d;
  --line-soft: #1a333e;

  --brand:     #3cb4cf;
  --brand-ink: #7fd3e6;
  --brand-wash:#0f3542;

  --crit:      #ff7a6b;
  --crit-wash: #3a1b18;
  --warn:      #e8ae52;
  --warn-wash: #352713;
  --ok:        #58c795;
  --ok-wash:   #10301f;
  --info:      #8fb0f0;
  --info-wash: #16243f;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 10px 30px -18px rgba(0,0,0,.9);
}

/* همان متغیرها وقتی کاربر دستی چیزی انتخاب نکرده و سیستمش تاریک است */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
  --bg:        #0b1920;
  --bg-soft:   #12262f;
  --bg-sunk:   #0a151b;
  --ink:       #e4edf1;
  --ink-soft:  #a7bcc6;
  --ink-faint: #7b949f;
  --line:      #21404d;
  --line-soft: #1a333e;

  --brand:     #3cb4cf;
  --brand-ink: #7fd3e6;
  --brand-wash:#0f3542;

  --crit:      #ff7a6b;
  --crit-wash: #3a1b18;
  --warn:      #e8ae52;
  --warn-wash: #352713;
  --ok:        #58c795;
  --ok-wash:   #10301f;
  --info:      #8fb0f0;
  --info-wash: #16243f;
  --shadow: 0 1px 2px rgba(0,0,0,.4), 0 10px 30px -18px rgba(0,0,0,.9);
  }
  :root:not([data-theme="light"]) .i-sun{ display:none; }
  :root:not([data-theme="light"]) .i-moon{ display:block; }
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:6rem; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font-fa); font-size:17px; line-height:1.85;
  font-feature-settings:"ss01","kern"; text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
.wrap{ max-width:var(--wrap); margin-inline:auto; padding-inline:16px; }
img,svg,video{ max-width:100%; height:auto; }
a{ color:var(--brand-ink); text-decoration-thickness:1px; text-underline-offset:3px; }
a:hover{ color:var(--crit); }
code,kbd,samp,.ltr{ font-family:var(--font-mono); direction:ltr; unicode-bidi:isolate; }
.en,.dose,[lang="en"]{ font-family:var(--font-en); direction:ltr; unicode-bidi:isolate; display:inline-block; }
.skip{ position:absolute; inset-inline-start:-9999px; }
.skip:focus{ inset-inline-start:12px; top:12px; z-index:99; background:var(--brand); color:#fff; padding:.5rem 1rem; border-radius:var(--radius-s); }
:focus-visible{ outline:2.5px solid var(--brand); outline-offset:2px; border-radius:4px; }

h1,h2,h3,h4{ line-height:1.45; font-weight:800; margin:2.2rem 0 .7rem; letter-spacing:-.01em; scroll-margin-top:5.5rem; }
h1{ font-size:clamp(1.65rem,1.1rem + 2.2vw,2.35rem); margin-top:0; }
/* بخش‌های اصلی هر مطلب نفس بکشند — حدود ۸۵ پیکسل روی دسکتاپ،
   و کمتر روی موبایل تا صفحه بیش از حد کشیده نشود */
h2{ font-size:clamp(1.32rem,1rem + 1.2vw,1.62rem);
  margin-top:clamp(3.2rem, 1.6rem + 4.5vw, 5.3rem); margin-bottom:1.7rem;
  padding-bottom:.6rem; border-bottom:1px solid var(--line); }
.doc-main > h2:first-child,
.doc-main > *:first-child + h2{ margin-top:1.4rem; }
h3{ font-size:1.15rem; color:var(--brand-ink); margin-top:3.2rem; margin-bottom:1rem; }
h4{ font-size:1rem; color:var(--ink-soft); margin-top:2.4rem; margin-bottom:.7rem; }
p{ margin:0 0 1.15rem; }
ul,ol{ padding-inline-start:1.4rem; margin:0 0 1.35rem; }
li{ margin-bottom:.35rem; }
li::marker{ color:var(--brand); }
blockquote{ margin:1.2rem 0; padding:.2rem 1rem; border-inline-start:3px solid var(--brand); color:var(--ink-soft); background:var(--bg-sunk); border-radius:var(--radius-s); }
hr{ border:0; border-top:1px solid var(--line); margin:2rem 0; }
.muted{ color:var(--ink-soft); }
.small{ font-size:.86rem; }
.plain{ list-style:none; padding:0; margin:0; }

/* ───── سربرگ ───── */
.site-head{
  position:sticky; top:0; z-index:40;
  background:color-mix(in srgb, var(--bg-soft) 88%, transparent);
  backdrop-filter:saturate(1.6) blur(12px);
  border-bottom:1px solid var(--line);
}
.head-inner{ display:flex; align-items:center; gap:1rem; min-height:64px; }
.brand{ display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--ink); }
.brand-mark{ color:var(--crit); display:grid; place-items:center; flex:0 0 auto; }
.brand-text strong{ display:block; font-family:var(--font-en); font-size:1.02rem; letter-spacing:-.02em; direction:ltr; }
.brand-text small{ display:block; color:var(--ink-faint); font-size:.72rem; line-height:1.3; }
.site-nav{ margin-inline-start:auto; display:flex; align-items:center; gap:.2rem; flex-wrap:wrap; }
.site-nav>a{ padding:.45rem .55rem; border-radius:var(--radius-s); color:var(--ink-soft); text-decoration:none; font-size:.94rem; font-weight:600; }
.site-nav>a:hover{ background:var(--bg-sunk); color:var(--ink); }
.site-nav>a.is-active{ color:var(--brand-ink); background:var(--brand-wash); }
.search-open{
  display:flex; align-items:center; gap:.45rem; margin-inline-start:.4rem;
  padding:.4rem .7rem; border:1px solid var(--line); border-radius:999px;
  background:var(--bg-sunk); color:var(--ink-soft); cursor:pointer; font:inherit; font-size:.88rem;
}
.search-open:hover{ border-color:var(--brand); color:var(--brand-ink); }
.search-open kbd{ font-size:.72rem; background:var(--bg-soft); border:1px solid var(--line); border-radius:4px; padding:0 .3rem; }
.theme-toggle{ background:none; border:1px solid var(--line); border-radius:999px; width:36px; height:36px; display:grid; place-items:center; cursor:pointer; color:var(--ink-soft); margin-inline-start:.3rem; }
.theme-toggle:hover{ color:var(--brand-ink); border-color:var(--brand); }
.i-moon{ display:none; }
:root[data-theme="dark"] .i-sun{ display:none; }
:root[data-theme="dark"] .i-moon{ display:block; }
.head-actions{ display:flex; align-items:center; gap:.3rem; margin-inline-start:.4rem; }
.nav-toggle{ display:none; width:40px; height:40px; background:none; border:1px solid var(--line); border-radius:var(--radius-s); cursor:pointer; padding:9px 8px; }
.nav-toggle span{ display:block; height:2px; background:var(--ink); border-radius:2px; margin:3px 0; }

@media (max-width:1280px){
  .nav-toggle{ display:block; }
  .site-nav{ display:none; width:100%; order:3; flex-direction:column; align-items:stretch; padding-bottom:.8rem; }
  .site-nav.open{ display:flex; }
  .head-inner{ flex-wrap:wrap; }
  .head-actions{ margin-inline-start:auto; }
}

/* روی صفحهٔ باریک، دکمهٔ جست‌وجو فقط آیکن می‌شود تا در نوار سربرگ جا بگیرد */
@media (max-width:560px){
  .search-open span,.search-open kbd{ display:none; }
  .search-open{ width:38px; height:38px; padding:0; justify-content:center; }
}

/* ───── صفحهٔ نخست ───── */
.hero{ padding:3.2rem 0 2.4rem; background:
  radial-gradient(1200px 400px at 85% -10%, var(--brand-wash), transparent 70%); }
.hero h1{ max-width:22ch; }
.hero .lede{ font-size:1.12rem; color:var(--ink-soft); max-width:58ch; }
.hero-cta{ display:flex; gap:.7rem; flex-wrap:wrap; margin-top:1.4rem; }
.btn{ display:inline-flex; align-items:center; gap:.4rem; padding:.62rem 1.15rem; border-radius:999px;
  font-weight:700; font-size:.95rem; text-decoration:none; border:1px solid transparent; cursor:pointer; }
.btn-primary{ background:var(--brand); color:#fff; }
.btn-primary:hover{ background:var(--brand-ink); color:#fff; }
.btn-ghost{ border-color:var(--line); color:var(--ink); background:var(--bg-soft); }
.btn-ghost:hover{ border-color:var(--brand); color:var(--brand-ink); }
.btn-crit{ background:var(--crit); color:#fff; }
.btn-crit:hover{ filter:brightness(.92); color:#fff; }

.grid{ display:grid; gap:1rem; }
.grid-3{ grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
.grid-2{ grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
section.band{ padding:2.6rem 0; }
section.band.sunk{ background:var(--bg-sunk); border-block:1px solid var(--line-soft); }
.band-head{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; margin-bottom:1.2rem; flex-wrap:wrap; }
.band-head h2{ border:0; margin:0; padding:0; }
.band-head p{ margin:.2rem 0 0; color:var(--ink-soft); font-size:.95rem; }

.card{ background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.1rem 1.2rem; box-shadow:var(--shadow); text-decoration:none; color:inherit; display:block;
  transition:border-color .15s, transform .15s; }
a.card:hover{ border-color:var(--brand); transform:translateY(-2px); }
.card h3{ margin:.1rem 0 .4rem; color:var(--ink); font-size:1.06rem; }
.card p{ margin:0; color:var(--ink-soft); font-size:.92rem; line-height:1.7; }
.card-icon{ color:var(--brand); margin-bottom:.5rem; display:block; }
.card-meta{ margin-top:.7rem; display:flex; gap:.5rem; flex-wrap:wrap; align-items:center; font-size:.78rem; color:var(--ink-faint); }

.chip{ display:inline-block; padding:.12rem .55rem; border-radius:999px; font-size:.75rem; font-weight:700;
  background:var(--bg-sunk); color:var(--ink-soft); border:1px solid var(--line); }
.chip-crit{ background:var(--crit-wash); color:var(--crit); border-color:transparent; }
.chip-warn{ background:var(--warn-wash); color:var(--warn); border-color:transparent; }
.chip-ok{ background:var(--ok-wash); color:var(--ok); border-color:transparent; }
.chip-info{ background:var(--info-wash); color:var(--info); border-color:transparent; }
.chip-brand{ background:var(--brand-wash); color:var(--brand-ink); border-color:transparent; }

/* ───── چیدمان مقاله ───── */
/* در صفحهٔ راست‌چین، ستون اولِ گرید سمت راست می‌افتد.
   پس ستون باریک را اول تعریف می‌کنیم و با grid-column جای هر کدام را تثبیت. */
.doc{ display:grid; grid-template-columns:260px minmax(0,1fr); gap:2.6rem; padding:2rem 0 3rem; align-items:start; }
.doc-side{ grid-column:1; grid-row:1; }
.doc-main{ grid-column:2; }
@media (max-width:980px){
  .doc{ grid-template-columns:1fr; gap:1.2rem; }
  .doc-side,.doc-main{ grid-column:auto; grid-row:auto; }
}
.doc-main{ min-width:0; max-width:var(--read); }
.doc-side{ position:sticky; top:84px; font-size:.88rem; }
@media (max-width:980px){ .doc-side{ position:static; } }
.toc{ background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius); padding:.9rem 1rem; }
.toc p.toc-h{ margin:0 0 .5rem; font-weight:800; font-size:.82rem; color:var(--ink-faint); letter-spacing:.04em; }
.toc ul{ list-style:none; padding:0; margin:0; }
.toc ul ul{ padding-inline-start:.9rem; }
.toc a{ display:block; padding:.22rem 0; color:var(--ink-soft); text-decoration:none; border-inline-start:2px solid transparent; padding-inline-start:.6rem; }
.toc a:hover{ color:var(--brand-ink); }
.toc a.active{ color:var(--brand-ink); border-inline-start-color:var(--brand); font-weight:700; }

.doc-head{ padding:1.6rem 0 0; }
.crumbs{ font-size:.84rem; color:var(--ink-faint); margin-bottom:.5rem; }
.crumbs a{ color:var(--ink-faint); text-decoration:none; }
.crumbs a:hover{ color:var(--brand-ink); }
.doc-title{ margin:0 0 .4rem; }
.doc-title .en-sub{ display:block; font-family:var(--font-en); direction:ltr; text-align:start;
  font-size:.55em; font-weight:600; color:var(--ink-faint); margin-top:.3rem; letter-spacing:0; }
.doc-meta{ display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; font-size:.82rem; color:var(--ink-faint); margin-bottom:.4rem; }
.doc-tools{ display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0 0; }
.doc-tools button,.doc-tools a{ font-size:.84rem; padding:.35rem .8rem; border-radius:999px; border:1px solid var(--line);
  background:var(--bg-soft); color:var(--ink-soft); cursor:pointer; font-family:inherit; text-decoration:none; }
.doc-tools button:hover,.doc-tools a:hover{ border-color:var(--brand); color:var(--brand-ink); }

/* ───── بلوک‌های بالینی ───── */
.bedside{
  border:2px solid var(--crit); border-radius:var(--radius);
  background:var(--crit-wash); padding:1.1rem 1.3rem; margin:2.3rem 0;
}
.bedside > .bedside-h{
  display:flex; align-items:center; gap:.5rem; margin:0 0 .6rem;
  font-weight:800; color:var(--crit); font-size:1rem; letter-spacing:-.01em;
}
.bedside ol,.bedside ul{ margin-bottom:0; }
.bedside li::marker{ color:var(--crit); font-weight:800; }

.callout{ border:1px solid var(--line); border-inline-start-width:4px; border-radius:var(--radius-s);
  padding:1rem 1.15rem; margin:2.1rem 0; background:var(--bg-soft); }
.callout > :first-child{ margin-top:0; }
.callout > :last-child{ margin-bottom:0; }
.callout-h{ font-weight:800; margin:0 0 .35rem; font-size:.95rem; }
.callout.danger{ border-inline-start-color:var(--crit); background:var(--crit-wash); }
.callout.danger .callout-h{ color:var(--crit); }
.callout.warn{ border-inline-start-color:var(--warn); background:var(--warn-wash); }
.callout.warn .callout-h{ color:var(--warn); }
.callout.tip{ border-inline-start-color:var(--ok); background:var(--ok-wash); }
.callout.tip .callout-h{ color:var(--ok); }
.callout.note{ border-inline-start-color:var(--info); background:var(--info-wash); }
.callout.note .callout-h{ color:var(--info); }
.callout.uk{ border-inline-start-color:var(--brand); background:var(--brand-wash); }
.callout.uk .callout-h{ color:var(--brand-ink); }

/* جدول دوز و جدول‌های عمومی */
.table-wrap{ overflow-x:auto; margin:2.1rem 0; border:1px solid var(--line); border-radius:var(--radius); background:var(--bg-soft); }
table{ border-collapse:collapse; width:100%; font-size:.93rem; }
thead th{ background:var(--bg-sunk); text-align:start; font-weight:800; font-size:.85rem;
  color:var(--ink-soft); padding:.6rem .8rem; border-bottom:1px solid var(--line); white-space:nowrap; }
td,tbody th{ padding:.6rem .8rem; border-bottom:1px solid var(--line-soft); vertical-align:top; text-align:start; }
tbody tr:last-child td{ border-bottom:0; }
tbody tr:hover{ background:var(--bg-sunk); }
td code{ font-size:.9em; background:var(--bg-sunk); padding:.1rem .35rem; border-radius:4px; }

.drug-table td{ vertical-align:top; }
.drug-table .dose-cell{ font-family:var(--font-mono); direction:rtl; font-size:.9rem; line-height:1.8; }
.drug-table .en-sub-inline{ font-size:.72rem; margin-top:.1rem; }
.drug-table tbody tr:hover{ background:var(--brand-wash); }

/* بلوک تاشو */
details{ border:1px solid var(--line); border-radius:var(--radius-s); padding:.2rem .9rem; margin:1.6rem 0; background:var(--bg-soft); }
details[open]{ padding-bottom:.6rem; }
summary{ cursor:pointer; font-weight:700; padding:.6rem 0; color:var(--brand-ink); list-style:none; }
summary::-webkit-details-marker{ display:none; }
summary::before{ content:"‹"; display:inline-block; margin-inline-end:.5rem; transition:transform .15s; color:var(--brand); font-weight:900; }
details[open] summary::before{ transform:rotate(-90deg); }

/* ───── فهرست بخش ───── */
.filters{ display:flex; gap:.5rem; flex-wrap:wrap; margin:1.2rem 0 1.6rem; align-items:center; }
.filter-btn{ padding:.35rem .85rem; border-radius:999px; border:1px solid var(--line); background:var(--bg-soft);
  color:var(--ink-soft); cursor:pointer; font:inherit; font-size:.86rem; font-weight:600; }
.filter-btn:hover{ border-color:var(--brand); }
.filter-btn.on{ background:var(--brand); border-color:var(--brand); color:#fff; }
.listing-search{ flex:1 1 200px; min-width:180px; padding:.45rem .9rem; border-radius:999px; border:1px solid var(--line);
  background:var(--bg-soft); color:var(--ink); font:inherit; font-size:.9rem; }
.filter-sep{ width:1px; height:1.4rem; background:var(--line); margin-inline:.3rem; }
.chip-phase{ background:var(--warn-wash); color:var(--warn); border-color:transparent; }
.empty{ padding:2rem; text-align:center; color:var(--ink-faint); }

/* ───── آزمون ───── */
.quiz{ background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius); padding:1.2rem; margin:2rem 0; }
.quiz h2{ margin-top:0; }
.q{ padding:1rem 0; border-top:1px solid var(--line-soft); }
.q:first-of-type{ border-top:0; }
.q-stem{ font-weight:700; margin-bottom:.7rem; }
.q-opts{ list-style:none; padding:0; margin:0; display:grid; gap:.4rem; }
.q-opts button{ width:100%; text-align:start; padding:.6rem .9rem; border-radius:var(--radius-s);
  border:1px solid var(--line); background:var(--bg); color:var(--ink); cursor:pointer; font:inherit; font-size:.94rem; }
.q-opts button:hover{ border-color:var(--brand); }
.q-opts button.right{ border-color:var(--ok); background:var(--ok-wash); color:var(--ok); font-weight:700; }
.q-opts button.wrong{ border-color:var(--crit); background:var(--crit-wash); color:var(--crit); }
.q-exp{ margin-top:.7rem; padding:.7rem .9rem; border-radius:var(--radius-s); background:var(--info-wash);
  color:var(--ink); font-size:.9rem; display:none; }
.q.answered .q-exp{ display:block; }
.quiz-score{ margin-top:1rem; font-weight:800; color:var(--brand-ink); }

/* ───── پادکست ───── */
.ep{ display:flex; gap:1rem; padding:1.1rem 0; border-bottom:1px solid var(--line-soft); }
.ep-num{ flex:0 0 46px; height:46px; border-radius:50%; background:var(--brand-wash); color:var(--brand-ink);
  display:grid; place-items:center; font-weight:800; font-size:.95rem; }
.ep h3{ margin:0 0 .25rem; font-size:1.05rem; }
.ep h3 a{ color:var(--ink); text-decoration:none; }
.ep h3 a:hover{ color:var(--brand-ink); }
audio{ width:100%; margin:1rem 0; }
.subscribe{ display:flex; gap:.5rem; flex-wrap:wrap; margin:1.2rem 0; }

/* ───── جست‌وجو ───── */
.search-modal{ position:fixed; inset:0; z-index:90; background:rgba(8,20,26,.55); backdrop-filter:blur(3px);
  display:flex; align-items:flex-start; justify-content:center; padding:8vh 16px 16px; }
.search-modal[hidden]{ display:none; }
.search-panel{ width:min(720px,100%); background:var(--bg-soft); border:1px solid var(--line);
  border-radius:var(--radius); box-shadow:0 30px 80px -30px rgba(0,0,0,.6); overflow:hidden; }
.search-bar{ display:flex; align-items:center; gap:.6rem; padding:.8rem 1rem; border-bottom:1px solid var(--line); color:var(--ink-faint); }
.search-bar input{ flex:1; border:0; background:none; font:inherit; font-size:1rem; color:var(--ink); outline:none; }
.search-bar button{ border:1px solid var(--line); background:var(--bg-sunk); color:var(--ink-faint);
  border-radius:6px; padding:.15rem .45rem; font-size:.75rem; cursor:pointer; font-family:var(--font-mono); }
.search-results{ max-height:58vh; overflow-y:auto; }
.sr{ display:block; padding:.75rem 1rem; border-bottom:1px solid var(--line-soft); text-decoration:none; color:inherit; }
.sr:hover,.sr.sel{ background:var(--brand-wash); }
.sr strong{ display:block; font-size:.98rem; }
.sr span{ display:block; font-size:.84rem; color:var(--ink-soft); }
.sr .sr-sec{ font-size:.72rem; color:var(--brand-ink); font-weight:700; }
.sr mark{ background:var(--warn-wash); color:inherit; border-radius:3px; padding:0 .1em; }
.search-hint{ margin:0; padding:.5rem 1rem; font-size:.78rem; color:var(--ink-faint); background:var(--bg-sunk); }

/* ───── پانوشت سایت ───── */
.site-foot{ margin-top:3rem; border-top:1px solid var(--line); background:var(--bg-soft); padding:2.4rem 0 1.6rem; font-size:.92rem; }
.foot-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.6rem; margin-bottom:1.6rem; }
.foot-brand{ font-family:var(--font-en); font-weight:800; direction:ltr; margin:0 0 .3rem; }
.foot-h{ font-weight:800; margin:0 0 .5rem; font-size:.88rem; color:var(--ink-faint); }
.site-foot ul li{ margin-bottom:.3rem; }
.site-foot a{ color:var(--ink-soft); text-decoration:none; }
.site-foot a:hover{ color:var(--brand-ink); }
.disclaimer-foot{ font-size:.82rem; color:var(--ink-faint); border-top:1px solid var(--line-soft);
  padding-top:1rem; line-height:1.8; margin-bottom:.5rem; }
.copy{ margin:0; }


/* خروجی افزونهٔ admonition  (!!! type "عنوان")  و details  (??? type "عنوان") */
.admonition{ border:1px solid var(--line); border-inline-start-width:4px; border-radius:var(--radius-s);
  padding:1rem 1.15rem; margin:2.2rem 0; background:var(--bg-soft); }
.admonition > :first-child{ margin-top:0; }
.admonition > :last-child{ margin-bottom:0; }
.admonition-title{ font-weight:800; margin:0 0 .4rem; font-size:.95rem; }
.admonition.note,.admonition.info{ border-inline-start-color:var(--info); background:var(--info-wash); }
.admonition.note .admonition-title,.admonition.info .admonition-title{ color:var(--info); }
.admonition.tip,.admonition.success{ border-inline-start-color:var(--ok); background:var(--ok-wash); }
.admonition.tip .admonition-title,.admonition.success .admonition-title{ color:var(--ok); }
.admonition.warning,.admonition.caution{ border-inline-start-color:var(--warn); background:var(--warn-wash); }
.admonition.warning .admonition-title,.admonition.caution .admonition-title{ color:var(--warn); }
.admonition.danger,.admonition.error{ border-inline-start-color:var(--crit); background:var(--crit-wash); }
.admonition.danger .admonition-title,.admonition.error .admonition-title{ color:var(--crit); }
.admonition.guideline{ border-inline-start-color:var(--brand); background:var(--brand-wash); }
.admonition.guideline .admonition-title{ color:var(--brand-ink); }
details.admonition{ padding:.2rem .9rem; }
details.admonition > summary.admonition-title{ padding:.6rem 0; }
.related{ list-style:none; padding:0; margin:0 0 1.5rem; }
.related li{ padding:.5rem .9rem; border-inline-start:3px solid var(--brand);
  background:var(--bg-soft); border-radius:var(--radius-s); margin-bottom:.4rem; font-size:.93rem; }
/* ───── منابع و مطالعهٔ بیشتر: تاشو، با عنوانِ لاتینِ چپ‌چین ───── */
.refs{ margin:1.6rem 0; }
.refs > summary.refs-h{ font-size:1.05rem; font-weight:800; color:var(--ink); }
.refs > summary.refs-h::before{ color:var(--brand); }
.refs-n{ display:inline-block; margin-inline-start:.45rem; padding:.05rem .45rem;
  font-size:.72rem; font-weight:700; border-radius:999px;
  background:var(--bg-sunk); border:1px solid var(--line); color:var(--ink-faint); }
.ref-main{ display:block; direction:ltr; text-align:left; unicode-bidi:isolate; }
.ref-note,.ref-meta{ display:block; direction:rtl; text-align:right; margin-top:.3rem; }
.ref-meta:empty{ display:none; }
.ref-meta .chip{ margin-inline-end:.4rem; }

.further{ list-style:none; padding:0; margin:0 0 1.5rem; }
.further li{ padding:.6rem .9rem; border:1px solid var(--line); border-radius:var(--radius-s);
  background:var(--bg-soft); margin-bottom:.45rem; font-size:.93rem; }
.further li a{ font-weight:600; }
.further .chip{ margin-inline-start:.4rem; font-size:.7rem; }
.sources{ font-size:.9rem; color:var(--ink-soft); padding-inline-start:1.4rem; margin-bottom:.4rem; list-style-type:persian; }
.sources li{ margin-bottom:.7rem; }
@media print{ .admonition{ border:1px solid #666; background:#fff; } }


/* ───── گروه‌بندی فهرست‌ها و نقشهٔ کوریکولوم ───── */
.group-block{ margin:0 0 2.4rem; }
.group-block[hidden]{ display:none; }
.group-head{ display:flex; align-items:center; gap:.7rem; margin:0 0 .3rem; flex-wrap:wrap; }
.group-head h2{ margin:0; padding:0; border:0; font-size:1.22rem; }
.group-blurb{ margin:0 0 1rem; }
.group-block .grid{ margin-top:1rem; }
.en-sub-inline{ display:block; font-family:var(--font-en); direction:ltr; text-align:start;
  font-size:.72rem; font-weight:600; color:var(--ink-faint); letter-spacing:0; margin-top:.15rem; }

.progress-wrap{ margin:1.2rem 0 0; max-width:34rem; }
.progress{ height:7px; border-radius:99px; background:var(--bg-sunk); overflow:hidden; border:1px solid var(--line); }
.progress span{ display:block; height:100%; background:var(--brand); border-radius:99px; }
.progress-wrap p{ margin:.4rem 0 0; }

.topic-list{ list-style:none; padding:0; margin:0; border:1px solid var(--line);
  border-radius:var(--radius); background:var(--bg-soft); overflow:hidden; }
.topic{ margin:0; border-top:1px solid var(--line-soft); }
.topic:first-child{ border-top:0; }
.topic[style*="none"]{ display:none; }
.topic > a,.topic > .topic-tick{ text-decoration:none; color:inherit; }
.topic > a{ display:flex; gap:.7rem; padding:.75rem 1rem; align-items:flex-start; }
.topic.todo{ display:flex; gap:.7rem; padding:.75rem 1rem; align-items:flex-start; color:var(--ink-faint); }
.topic > a:hover{ background:var(--brand-wash); }
.topic-tick{ flex:0 0 1.3rem; font-weight:800; line-height:1.7; }
.topic.done .topic-tick{ color:var(--ok); }
.topic.todo .topic-tick{ color:var(--ink-faint); }
.topic-body{ display:block; min-width:0; }
.topic-body strong{ display:block; font-size:.98rem; font-weight:700; }
.topic.done .topic-body strong{ color:var(--brand-ink); }
.topic-en{ display:block; font-family:var(--font-en); direction:ltr; text-align:start;
  font-size:.78rem; color:var(--ink-faint); margin-top:.1rem; letter-spacing:0; }
.topic-body .small{ display:block; line-height:1.65; margin-top:.1rem; }
.topic-body .card-meta{ margin-top:.35rem; }
@media print{ .topic-list{ border:1px solid #999; } .progress{ display:none; } }


/* ───── الگوریتم ───── */
.flow{ margin:1.6rem 0; }
.flow-step{ margin:0; }
.flow-box{ border:2px solid var(--brand); border-radius:var(--radius); background:var(--bg-soft);
  padding:.8rem 1rem; }
.flow-label{ display:inline-block; font-size:.72rem; font-weight:800; letter-spacing:.03em;
  color:var(--brand-ink); background:var(--brand-wash); border-radius:999px; padding:.1rem .6rem; margin-bottom:.4rem; }
.flow-text{ margin:0; font-weight:700; font-size:1rem; }
.flow-detail{ margin:.35rem 0 0; font-size:.9rem; color:var(--ink-soft); line-height:1.7; }
.flow-drugs{ margin:.5rem 0 0; padding-inline-start:1.1rem; font-size:.9rem; }
.flow-drugs li{ margin-bottom:.2rem; }
.flow-start .flow-box{ border-color:var(--ink-faint); background:var(--bg-sunk); }
.flow-action .flow-box{ border-color:var(--brand); }
.flow-critical .flow-box{ border-color:var(--crit); background:var(--crit-wash); }
.flow-critical .flow-text{ color:var(--crit); }
.flow-critical .flow-label{ color:var(--crit); background:transparent; border:1px solid var(--crit); }
.flow-decision .flow-box{ border-color:var(--warn); background:var(--warn-wash); }
.flow-decision .flow-text{ color:var(--warn); }
.flow-outcome .flow-box{ border-color:var(--ok); background:var(--ok-wash); }
.flow-outcome .flow-text{ color:var(--ok); }
.flow-arrow{ width:2px; height:22px; background:var(--line); margin:0 auto; position:relative; }
.flow-arrow::after{ content:""; position:absolute; bottom:0; inset-inline-start:-4px;
  border:5px solid transparent; border-top-color:var(--line); }
.flow-branches{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-top:.6rem; }
@media (max-width:560px){ .flow-branches{ grid-template-columns:1fr; } }
.branch{ border:1px solid var(--line); border-radius:var(--radius-s); padding:.55rem .8rem; background:var(--bg-soft); }
.branch p{ margin:.25rem 0 0; font-size:.9rem; line-height:1.65; }
.branch-tag{ font-size:.72rem; font-weight:800; border-radius:999px; padding:.05rem .5rem; }
.branch-yes{ border-color:var(--ok); }
.branch-yes .branch-tag{ color:var(--ok); background:var(--ok-wash); }
.branch-no{ border-color:var(--crit); }
.branch-no .branch-tag{ color:var(--crit); background:var(--crit-wash); }

/* ───── پروسیجر ───── */
.two-col{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin:1.4rem 0; }
@media (max-width:720px){ .two-col{ grid-template-columns:1fr; } }
.two-col .callout{ margin:0; }
.kit{ list-style:none; padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:.4rem; }
.kit li{ background:var(--bg-soft); border:1px solid var(--line); border-radius:var(--radius-s);
  padding:.45rem .8rem; font-size:.92rem; margin:0; }
.kit li::before{ content:"◦"; color:var(--brand); font-weight:800; margin-inline-end:.45rem; }
.checklist{ list-style:none; padding:0; counter-reset:ck; border:1px solid var(--line);
  border-radius:var(--radius); overflow:hidden; background:var(--bg-soft); }
.checklist li{ margin:0; border-top:1px solid var(--line-soft); }
.checklist li:first-child{ border-top:0; }
.checklist label{ display:flex; gap:.7rem; align-items:flex-start; padding:.6rem 1rem; cursor:pointer; }
.checklist label:hover{ background:var(--bg-sunk); }
.checklist input{ width:19px; height:19px; margin-top:.22rem; accent-color:var(--brand); flex:0 0 auto; }
.checklist input:checked + span{ color:var(--ink-faint); text-decoration:line-through; }
.checklist-note{ margin:.5rem 0 1.5rem; }
.link-btn{ background:none; border:0; color:var(--brand-ink); cursor:pointer; font:inherit;
  font-size:.86rem; text-decoration:underline; padding:0; }
.steps{ counter-reset:step; list-style:none; padding:0; }
.steps > li{ position:relative; padding-inline-start:2.6rem; margin-bottom:1.1rem; }
.steps > li::before{ counter-increment:step; content:counter(step);
  position:absolute; inset-inline-start:0; top:0; width:1.9rem; height:1.9rem; border-radius:50%;
  background:var(--brand); color:#fff; display:grid; place-items:center; font-weight:800; font-size:.88rem; }
.step-text{ margin:.15rem 0 0; font-weight:600; }
.step-detail{ margin:.3rem 0 0; font-size:.9rem; color:var(--ink-soft); line-height:1.75; }
.step-warn{ margin:.35rem 0 0; font-size:.88rem; color:var(--crit); font-weight:600; }

/* ───── کیس ───── */
.obs-table th{ width:12rem; }
.comments{ margin-top:2.5rem; padding-top:1.5rem; border-top:1px solid var(--line); }

/* ───── آلبوم ───── */
.album-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(270px,1fr)); gap:1rem; }
.pearl-card{ display:block; text-decoration:none; color:inherit; background:var(--bg-soft);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);
  transition:border-color .15s, transform .15s; }
.pearl-card:hover{ border-color:var(--brand); transform:translateY(-2px); }
.pearl-thumb{ aspect-ratio:16/10; background:var(--bg-sunk); display:grid; place-items:center; overflow:hidden; }
.pearl-thumb img{ width:100%; height:100%; object-fit:cover; }
.pearl-thumb-empty{ color:var(--ink-faint); font-size:.85rem; }
.pearl-body{ padding:.85rem 1rem; }
.pearl-body h3{ margin:.4rem 0 .35rem; font-size:1.02rem; }
.pearl-body p{ margin:0; font-size:.9rem; color:var(--ink-soft); line-height:1.7; }
.pearl-figure{ margin:0 0 1.4rem; }
.pearl-figure img{ width:100%; border-radius:var(--radius); border:1px solid var(--line); background:var(--bg-soft); }
.pearl-figure figcaption{ margin-top:.5rem; font-size:.88rem; color:var(--ink-faint); text-align:center; }
.pearl-placeholder{ padding:4rem 1rem; text-align:center; color:var(--ink-faint);
  border:2px dashed var(--line); border-radius:var(--radius); }

@media print{
  .flow-box{ border:2px solid #000 !important; background:#fff !important; }
  .flow-arrow{ background:#000; }
  .comments,.checklist-note .link-btn{ display:none; }
  .checklist input{ -webkit-appearance:none; appearance:none; border:1.5px solid #000; border-radius:3px; }
  .steps > li::before{ background:#000; }
}

/* ───── چاپ ───── */
@media print{
  :root{ --bg:#fff; --bg-soft:#fff; --bg-sunk:#fff; --ink:#000; --ink-soft:#333; --line:#999; }
  .site-head,.site-foot,.doc-side,.doc-tools,.search-modal,.quiz,.filters,.skip{ display:none !important; }
  body{ font-size:11pt; line-height:1.5; }
  .doc{ display:block; padding:0; }
  .doc-main{ max-width:none; }
  a{ color:#000; text-decoration:none; }
  .bedside{ border:2px solid #000; background:#fff; }
  .callout{ border:1px solid #666; background:#fff; }
  details{ border:0; padding:0; }
  details[open] summary{ font-weight:800; }
  details:not([open]) > *:not(summary){ display:none; }
  /* منابع در نسخهٔ چاپی همیشه کامل بیایند */
  details.refs > *{ display:revert !important; }
  details.refs .ref-main a::after{ content:" (" attr(href) ")"; font-size:.75em; color:#555; word-break:break-all; }
  table{ page-break-inside:avoid; }
  h2,h3{ page-break-after:avoid; }
}

/* بلوک‌های تاشوی رنگی (??? note / tip / warning / danger) */
details.note,details.info{ border-inline-start:4px solid var(--info); }
details.tip,details.success{ border-inline-start:4px solid var(--ok); }
details.warning,details.caution{ border-inline-start:4px solid var(--warn); }
details.danger,details.error{ border-inline-start:4px solid var(--crit); }
details > summary{ display:flex; align-items:baseline; }
