/* ============================================================================
   تست‌کاو چالش — لایهٔ طراحی v3 (lab.css) — ch-049 فاز ۴: بنیان طراحی
   مستقل از panel.css / skills.css / tables-center.css / challenge.css.

   اصل‌ها
   ─ فلت و یک‌لایه: هر صفحه یک سطح دارد؛ بخش‌ها با فاصله و خط باریک جدا می‌شوند، نه کارت در کارت.
     سایه فقط برای منو، پنجره و پیام شناور.
   ─ رنگ کم: اکشن اصلی بنفش‌آبی (#6874AE؛ دکمه و متن با سایهٔ #5E6AA6)، موفقیت سبز (#22C55E؛
     متن سبز روی زمینهٔ روشن با #15803D). زرد فقط برای لوگو و نشان‌ها.
   ─ منطقهٔ حل (.tk-zone / صفحهٔ تلاش، دفاع، لابراتوار، پیش‌نمایش): زمینهٔ رنگی ندارد؛ وضعیت فقط با
     نشانگر کوچک و متن. توکن‌های «‑soft» آن‌جا به سطح خنثی برمی‌گردند.
   ─ خوانا و جادار: متن ۱۳/۱۴/۱۶/۱۸/۲۲/۲۸، وزن ۴۰۰/۶۰۰/۸۰۰، فاصله ۴/۸/۱۲/۱۶/۲۴/۳۲/۴۸، سطر حداکثر ۷۲ نویسه.
   ─ WCAG 2.2 AA: متن ≥ ۴٫۵:۱ و اجزای رابط ≥ ۳:۱ (آزمون خودکار core/tests/test_contrast.py)،
     حلقهٔ فوکوس ۲px، هدف کلیک ≥ ۲۴px (دکمهٔ اصلی لمسی ۴۴px)، «کاهش حرکت» و «کنتراست بیشتر».
   قواعد کلاس‌هایی که JS به آن‌ها وابسته است (sk-btn، sk-input، ch-form، tk-up__row، ch-task، …) حفظ شده‌اند.
   ============================================================================ */

/* ---------- توکن‌ها: روشن (روی :root؛ [data-theme="light"] برای بخشِ روشنِ تو در تو مثل راهنمای اجزا) ---------- */
:root,[data-theme="light"]{
  --zoom:1;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  /* خنثی‌ها */
  --bg:#F4F5F7; --s1:#FFFFFF; --s2:#F7F8FA; --s3:#EDEFF3; --s4:#E4E7EC;
  --line:#E4E6EB; --line-2:#868C9C;
  --ink:#1F2330; --ink-2:#505665; --ink-3:#646A79;

  /* رنگ اصلی — خانوادهٔ #6874AE */
  --accent:#5E6AA6; --accent-bg:#5E6AA6; --accent-bg-hover:#535E99; --on-accent:#FFFFFF;
  --accent-ui:#6874AE; --accent-soft:#EEF0F8; --accent-ink:#4A558E;

  /* موفقیت — خانوادهٔ #22C55E */
  --ok:#15803D; --ok-ui:#16A34A; --ok-fill:#22C55E; --on-ok:#052E16; --ok-soft:#EDF9F1; --ok-ink:#166534;

  /* هشدار و خطا */
  --warn:#B45309; --warn-soft:#FFF4E5; --warn-ink:#9A3412;
  --danger:#B91C1C; --danger-bg:#B91C1C; --on-danger:#FFFFFF; --danger-soft:#FDEEEE; --danger-ink:#B91C1C;

  /* زرد: فقط لوگو و نشان‌ها */
  --gold:#F8C018; --gold-ink:#1A1400; --gold-soft:#FFF6D6;

  /* لایه‌های شناور (پیام، راهنمای ابزار) */
  --pop-bg:#1F2330; --pop-ink:#FFFFFF; --pop-dim:#C9CDD8; --pop-accent:#A3ACD8;

  --shadow-pop:0 16px 40px -12px rgba(17,19,28,.24),0 2px 8px rgba(17,19,28,.06);
  --overlay:rgba(17,19,28,.45);
  --focus:#5E6AA6;

  /* اندازه‌ها */
  --r:8px; --r-lg:12px; --r-xl:16px;
  --fs-1:calc(13px*var(--zoom)); --fs-2:calc(14px*var(--zoom)); --fs-3:calc(16px*var(--zoom));
  --fs-h3:calc(18px*var(--zoom)); --fs-4:calc(22px*var(--zoom)); --fs-5:calc(28px*var(--zoom));
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px;
  --ctl:40px; --ctl-sm:32px;
  --gap:12px; --gap-lg:24px;
  --measure:72ch;

  --side-w:248px; --side-rail:64px; --topbar-h:56px; --wshead-h:60px;
  --steps-w:272px; --tools-w:56px; --drawer-w:372px;
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}

/* ---------- توکن‌ها: تیره (از نو، نه وارونهٔ روشن) ---------- */
[data-theme="dark"]{
  --bg:#121318; --s1:#181A20; --s2:#1F222A; --s3:#262A33; --s4:#2E323C;
  --line:#2A2E38; --line-2:#6B7183;
  --ink:#ECEEF3; --ink-2:#B4B9C6; --ink-3:#9AA0AE;

  --accent:#A3ACD8; --accent-bg:#5E6AA6; --accent-bg-hover:#535E99; --on-accent:#FFFFFF;
  --accent-ui:#8F99CC; --accent-soft:#1D2240; --accent-ink:#A3ACD8;

  --ok:#4ADE80; --ok-ui:#22C55E; --ok-fill:#22C55E; --on-ok:#052E16; --ok-soft:#16271D; --ok-ink:#4ADE80;
  --warn:#FDBA74; --warn-soft:#2A1D12; --warn-ink:#FDBA74;
  --danger:#FCA5A5; --danger-bg:#B91C1C; --on-danger:#FFFFFF; --danger-soft:#2B1618; --danger-ink:#FCA5A5;
  --gold-soft:#2E2710;

  --pop-bg:#2A2E38; --pop-ink:#ECEEF3; --pop-dim:#B4B9C6; --pop-accent:#A3ACD8;
  --shadow-pop:0 16px 40px -12px rgba(0,0,0,.72),0 0 0 1px #2E323C;
  --overlay:rgba(4,5,8,.62);
  --focus:#8F99CC;
  color-scheme:dark;
}
[data-textsize="s"]{--zoom:.92}[data-textsize="l"]{--zoom:1.1}[data-textsize="xl"]{--zoom:1.2}
@media (prefers-contrast:more){
  :root{--line:#A2A7B3;--line-2:#4A5060;--ink-2:#3E4452;--ink-3:#4A5060}
  [data-theme="dark"]{--line:#4E5462;--line-2:#A6ACBA;--ink-2:#D0D4DE;--ink-3:#C0C5D0}
}

/* منطقهٔ حل: هیچ زمینهٔ رنگی؛ همهٔ «‑soft»ها سطح خنثی می‌شوند (حتی اگر قاعده‌ای به‌اشتباه رنگ بخواهد) */
.tk-zone,body.is-lab,.ch-defense,.hl-overlay{--accent-soft:var(--s2);--ok-soft:var(--s2);--warn-soft:var(--s2);--danger-soft:var(--s2);--gold-soft:var(--s2)}

/* ---------- پایه ---------- */
*,*::before,*::after{box-sizing:border-box}
html{height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-size:var(--fs-2);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,textarea,select{font:inherit;color:inherit}
b,strong{font-weight:600}
h1,h2,h3,h4{font-weight:800}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
svg{display:block}
img{max-width:100%}
[hidden]{display:none!important}
::selection{background:color-mix(in srgb,var(--accent-ui) 30%,transparent)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:var(--r)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media (forced-colors:active){.sk-btn,.sk-input,.lab-card,.lab-tag,.ch-chip,.ch-status{border:1px solid CanvasText}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ch-skip{position:absolute;top:8px;inset-inline-start:8px;z-index:2000;padding:10px 16px;border-radius:var(--r);background:var(--accent-bg);color:var(--on-accent);font-weight:600;transform:translateY(-200%);box-shadow:var(--shadow-pop)}
.ch-skip:focus{transform:none;outline:2px solid var(--focus);outline-offset:2px}
.ch-muted{color:var(--ink-3)}
.ch-soft{color:var(--ink-2)}
.ch-mono{font-family:var(--mono);font-size:12.5px;line-height:1.7;tab-size:4;direction:ltr;text-align:left;unicode-bidi:isolate}
.ch-w100{width:100%;min-width:0}
.ch-kbd{display:inline-block;padding:0 6px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:6px;font-size:var(--fs-1);line-height:18px;font-family:var(--mono);direction:ltr;unicode-bidi:isolate}
/* ارقام فارسی با tabular-nums صفر نقطه‌ای را پهن می‌کنند؛ فقط برای شمارنده‌های زمان */
.lab-logo--night{display:none}
[data-theme="dark"] .lab-logo--day{display:none}
[data-theme="dark"] .lab-logo--night{display:block}

/* تاریخ و ساعت: «۱۴۰۵/۰۷/۰۸ – ۰۶:۵۳» با جداسازی جهت متن (فیلتر jtime) */
.tk-dt{unicode-bidi:isolate;direction:rtl;white-space:nowrap}
/* فهرست اطلاعات کوتاه با جداکنندهٔ خط باریک به‌جای «·» */
/* جداکنندهٔ هر مورد در فاصلهٔ پیش از آن است؛ جداکنندهٔ اولِ هر سطر (بعد از شکستن سطر) با overflow-x:clip بیرون می‌افتد */
.tk-meta,.lab-card__meta,.lab-detail__meta,.chh-meta{display:flex;flex-wrap:wrap;align-items:center;row-gap:2px;overflow-x:clip;margin-inline-start:-10px}
.tk-meta>*,.lab-card__meta>*,.lab-detail__meta>*,.chh-meta>*{position:relative;display:block;padding-inline:10px;white-space:nowrap}
.tk-meta>*::before,.lab-card__meta>*::before,.lab-detail__meta>*::before,.chh-meta>*::before{content:"";position:absolute;inset-inline-start:-1px;top:50%;width:1px;height:12px;margin-top:-6px;background:var(--line-2);opacity:.55}
.tk-meta{font-size:var(--fs-1);color:var(--ink-3);line-height:1.7}
.tk-meta svg{display:inline-block;width:14px;height:14px;margin-inline-end:4px;vertical-align:-2px}
.tk-meta b{color:var(--ink-2);font-weight:600}

/* تایپوگرافی */
.tk-h1{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.35;letter-spacing:-.2px}
.tk-h2{margin:0;font-size:var(--fs-4);font-weight:800;line-height:1.4}
.tk-h3{margin:0;font-size:var(--fs-h3);font-weight:800;line-height:1.5}
.tk-lead{margin:0;font-size:var(--fs-3);line-height:1.9;color:var(--ink-2);max-width:var(--measure)}
.tk-cap{font-size:var(--fs-1);color:var(--ink-3);line-height:1.7}
.tk-eyebrow{font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}

/* ---------- پوسته: منوی کناری ---------- */
.lab-shell{display:flex;min-height:100vh;min-height:100dvh}
.lab-side{width:var(--side-w);flex:none;position:sticky;top:0;height:100vh;height:100dvh;background:var(--s1);border-inline-end:1px solid var(--line);display:flex;flex-direction:column;transition:width .22s var(--ease);z-index:50}
.lab-side__brand{height:var(--topbar-h);display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--line);flex:none;overflow:hidden}
.lab-side__brand a{display:flex;align-items:center;border-radius:var(--r)}
.lab-side .lab-side__close{display:none;margin-inline-start:auto}
.lab-side__logo{height:30px;width:auto}
/* نشان تست‌کاو در منوی بسته (ch-051): نسخهٔ تیره در تم روز، سفید در تم شب */
.lab-side__mark{display:none;width:32px;height:32px}
.lab-side__mark img{display:block;width:32px;height:32px;object-fit:contain}
.lab-mark--night{display:none!important}
[data-theme="dark"] .lab-mark--day{display:none!important}
[data-theme="dark"] .lab-mark--night{display:block!important}
.lab-side__nav{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:2px}
.lab-nav-link{position:relative;display:flex;align-items:center;gap:12px;height:42px;padding:0 12px;border-radius:10px;color:var(--ink-2);font-weight:500;font-size:var(--fs-2);white-space:nowrap;transition:background .15s,color .15s;width:100%;text-align:start}
.lab-nav-link:hover{background:var(--s2);color:var(--ink)}
.lab-nav-link.is-active{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}
.lab-nav-ic{width:24px;height:24px;color:var(--ink-3);display:grid;place-items:center;flex:none;transition:color .15s}
.lab-nav-link:hover .lab-nav-ic{color:var(--ink)}
.lab-nav-link.is-active .lab-nav-ic{color:var(--accent-ink)}
.lab-nav-ic svg{width:20px;height:20px}
.lab-nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.lab-nav-link--danger{margin-top:8px}
.lab-nav-link--danger:hover,.lab-nav-link--danger:hover .lab-nav-ic{color:var(--danger)}
.lab-side__foot{padding:12px;border-top:1px solid var(--line);flex:none}
.lab-side__collapse{display:flex;align-items:center;gap:12px;height:40px;padding:0 12px;border-radius:10px;color:var(--ink-3);font-size:var(--fs-1);font-weight:600;width:100%;white-space:nowrap;transition:background .15s,color .15s}
.lab-side__collapse:hover,.lab-side__collapse:hover .lab-nav-ic{color:var(--ink)}
.lab-side__collapse:hover{background:var(--s2)}
.lab-side__collapse .chev{transform-box:fill-box;transform-origin:center;transition:transform .22s var(--ease)}
.lab-shell.is-collapsed .lab-side{width:var(--side-rail)}
.lab-shell.is-collapsed .lab-side__brand{padding:0;justify-content:center}
.lab-shell.is-collapsed .lab-side__brand .lab-side__logo{display:none}
.lab-shell.is-collapsed .lab-side__mark{display:block}
/* فقط برچسب متنی پنهان می‌شود؛ آیکون دکمهٔ باز/جمع کردن همیشه دیده می‌شود */
.lab-shell.is-collapsed .lab-nav-label,.lab-shell.is-collapsed .lab-side__collapse>span:not(.lab-nav-ic){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.lab-shell.is-collapsed .lab-nav-link,.lab-shell.is-collapsed .lab-side__collapse{justify-content:center;padding:0}
.lab-shell.is-collapsed .lab-side__collapse .chev{transform:scaleX(-1)}
.lab-shell.is-collapsed .lab-side__collapse{color:var(--ink-2);background:var(--s2)}
.lab-shell.is-collapsed .lab-side__collapse:hover{background:var(--s3)}
.lab-side__collapse-t{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* منوی جمع‌شده: نام هر گزینه با نگه داشتن ماوس یا فوکوس صفحه‌کلید، به شکل راهنمای کوچک کنار آیکون */
.lab-shell.is-collapsed .lab-side__nav{overflow:visible}
.lab-shell.is-collapsed .lab-nav-link:hover .lab-nav-label,.lab-shell.is-collapsed .lab-nav-link:focus-visible .lab-nav-label,
.lab-shell.is-collapsed .lab-side__collapse:hover>span:not(.lab-nav-ic),.lab-shell.is-collapsed .lab-side__collapse:focus-visible>span:not(.lab-nav-ic){position:absolute;inset-inline-start:calc(100% + 12px);top:50%;transform:translateY(-50%);width:auto;height:auto;clip:auto;overflow:visible;padding:5px 10px;border-radius:6px;background:var(--pop-bg);color:var(--pop-ink);font-size:var(--fs-1);font-weight:600;line-height:1.6;box-shadow:var(--shadow-pop);z-index:60;white-space:nowrap;pointer-events:none}
.lab-overlay{position:fixed;inset:0;background:var(--overlay);z-index:45;display:none}
.lab-overlay.is-on{display:block}

/* ---------- پوسته: نوار بالا ---------- */
.lab-main{flex:1;min-width:0;display:flex;flex-direction:column}
.lab-topbar{position:sticky;top:0;z-index:40;height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 24px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.lab-topbar__start{display:flex;align-items:center;gap:6px;min-width:0}
.lab-ibtn{position:relative;width:36px;height:36px;border-radius:var(--r);display:grid;place-items:center;color:var(--ink-2);flex:none;transition:background .15s,color .15s}
.lab-ibtn[aria-pressed="true"]:not([data-lab-theme]){background:var(--accent-soft);color:var(--accent-ink)}
.lab-ibtn--focus{display:inline-flex;align-items:center;gap:8px;width:auto;padding:0 12px 0 10px;font-size:var(--fs-1);font-weight:600}
.lab-ibtn--focus svg{width:18px;height:18px}
/* راهنمای کوچک دکمه‌های آیکونی نوار بالا */
.lab-topbar [data-tip]:hover::after,.lab-topbar [data-tip]:focus-visible::after{content:attr(data-tip);position:absolute;top:calc(100% + 8px);inset-inline-start:50%;transform:translateX(50%);padding:5px 10px;border-radius:6px;background:var(--pop-bg);color:var(--pop-ink);font-size:var(--fs-1);font-weight:600;line-height:1.6;white-space:nowrap;box-shadow:var(--shadow-pop);z-index:60;pointer-events:none}
.lab-topbar__end [data-tip]:hover::after,.lab-topbar__end [data-tip]:focus-visible::after{inset-inline-start:auto;inset-inline-end:0;transform:none}
.lab-topbar__start [data-tip]:hover::after,.lab-topbar__start [data-tip]:focus-visible::after{inset-inline-start:0;transform:none}
.lab-ibtn:hover{background:var(--s3);color:var(--ink)}
.lab-ibtn svg{width:19px;height:19px}
.lab-ibtn--menu{display:none}
.lab-ibtn--side{margin-inline-end:2px}
.lab-role{position:relative}
.lab-role__btn{display:flex;align-items:center;gap:10px;height:var(--ctl);padding:0 12px;border-radius:var(--r);background:var(--s1);text-align:start;transition:background .15s}
.lab-role__btn:hover{background:var(--s3)}
.lab-role__btn small{display:block;font-size:11px;color:var(--ink-3);font-weight:600;line-height:1.2}
.lab-role__btn strong{display:block;font-size:var(--fs-1);font-weight:800;line-height:1.3}
.lab-role__btn svg{width:14px;height:14px;color:var(--ink-3)}
.lab-role__menu{position:absolute;top:calc(100% + 6px);inset-inline-start:0;min-width:200px;background:var(--s1);border-radius:var(--r-lg);padding:6px;display:none;z-index:5;box-shadow:var(--shadow-pop)}
.lab-role__menu.is-open{display:block}
.lab-role__item{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px;border-radius:var(--r);font-size:var(--fs-2);font-weight:400;color:var(--ink-2)}
.lab-role__item:hover{background:var(--s2);color:var(--ink)}
.lab-role__item.is-active{color:var(--ink);font-weight:600}
.lab-role__item.is-active::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent-ui);margin-inline-start:auto}
.lab-topbar__end{margin-inline-start:auto;display:flex;align-items:center;gap:8px}
.lab-prefs{display:flex;align-items:center;gap:2px;padding:2px;border-radius:10px;background:var(--s1)}
.lab-prefs .lab-ibtn{width:34px;height:34px}
.lab-ibtn--txt{font-size:12px;font-weight:800}
.lab-prefs__sep{width:1px;height:18px;background:var(--line);margin:0 4px}
.lab-sun{display:none}
[data-theme="dark"] .lab-moon{display:none}
[data-theme="dark"] .lab-sun{display:block}

body.tk-side-open{overflow:hidden}
/* حالت تمرکز در صفحهٔ حل: فهرست مرحله‌ها هم جمع می‌شود (جابه‌جایی با نوار قبلی/بعدی و نوار پیشرفت) */
body.is-immersive .lab-steps{display:none}
body.is-immersive .lab-grid{grid-template-columns:minmax(0,1fr) auto}

/* ---------- محتوا و پیام‌ها ---------- */
.lab-content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding:32px 28px 56px}
/* ارتفاع ثابت فضای حل: flex:none تا height اعمال شود (با flex:1 ارتفاع از محتوا می‌آمد و فهرست بلند مرحله‌ها کل صفحه را بلند می‌کرد) */
.lab-content--fixed{flex:none;height:calc(100vh - var(--topbar-h));height:calc(100dvh - var(--topbar-h));padding:14px 20px 16px}
.ch-messages{display:flex;flex-direction:column;gap:8px;margin:0 auto var(--sp-5);flex:none;width:100%;max-width:1320px}
.lab-content--fixed .ch-messages{margin-bottom:var(--gap)}
.ch-msg{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:var(--r-lg);background:var(--s1);color:var(--ink);font-size:var(--fs-2);line-height:1.8}
.ch-msg::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none}
.ch-msg--success{background:var(--ok-soft)}.ch-msg--success::before{background:var(--ok-ui)}
.ch-msg--warning{background:var(--warn-soft)}.ch-msg--warning::before{background:var(--warn)}
.ch-msg--error{background:var(--danger-soft)}.ch-msg--error::before{background:var(--danger)}
.ch-msg--info{background:var(--accent-soft)}.ch-msg--info::before{background:var(--accent-ui)}
.ch-msg.is-hide{opacity:0;transition:opacity .4s}
/* نوار «نتیجهٔ این تلاش» بعد از تحویل (ch-049 فاز ۱۰) — فلت، یک اقدام اصلی */
.ch-outcome{flex:none;display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-bottom:var(--gap);padding:14px 18px;border-radius:var(--r-lg);background:var(--s1)}
.ch-outcome__ic{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--accent-soft);color:var(--accent-ink)}
.ch-outcome__ic .tk-ic{width:19px;height:19px;stroke-width:2.4}
.ch-outcome.is-good .ch-outcome__ic{background:var(--ok-fill);color:var(--on-ok)}
.ch-outcome.is-bad .ch-outcome__ic{background:var(--danger-soft);color:var(--danger-ink)}
.ch-outcome.is-wait .ch-outcome__ic{background:var(--warn-soft);color:var(--warn-ink)}
.ch-outcome__main{flex:1 1 260px;min-width:0}
.ch-outcome__t{margin:0;font-size:var(--fs-3);font-weight:800;line-height:1.6}
.ch-outcome__d{margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-2)}
.ch-outcome__stats{margin:0;display:flex;flex-wrap:wrap;row-gap:6px}
.ch-outcome__stats>div{padding:0 16px;border-inline-start:1px solid var(--line)}
.ch-outcome__stats>div:first-child{padding-inline-start:0;border-inline-start:0}
.ch-outcome__stats dt{font-size:12px;line-height:1.6;color:var(--ink-3)}
.ch-outcome__stats dd{margin:0;font-size:var(--fs-3);font-weight:800;line-height:1.5;white-space:nowrap}
.ch-outcome__stats small{font-size:var(--fs-1);font-weight:500;color:var(--ink-3)}
.ch-outcome__acts{display:flex;flex-wrap:wrap;gap:8px}

/* ============================================================================
   اجزای فلت
   ============================================================================ */

/* ---------- دکمه‌ها: اصلی (رنگی)، ثانویه (خنثی)، کم‌رنگ (خط باریک)، متنی، خطر ---------- */
.sk-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--ctl);padding:0 16px;border-radius:var(--r);font-size:var(--fs-2);font-weight:600;line-height:1.2;white-space:nowrap;border:1px solid transparent;background:var(--s3);color:var(--ink);text-decoration:none;user-select:none;-webkit-user-select:none;transition:background .15s,border-color .15s,color .15s,opacity .15s}
.sk-btn:hover{background:var(--s4)}
.sk-btn:active{transform:translateY(.5px)}
.sk-btn--primary,.sk-btn--gold{background:var(--accent-bg);color:var(--on-accent)}
.sk-btn--primary:hover,.sk-btn--gold:hover{background:var(--accent-bg-hover)}
.sk-btn--ghost{background:transparent;color:var(--ink-2);border-color:var(--line)}
.sk-btn--ghost:hover{background:var(--s2);color:var(--ink);border-color:var(--line-2)}
.sk-btn--text{background:transparent;color:var(--accent);padding:0 8px;border-color:transparent}
.sk-btn--text:hover{background:transparent;text-decoration:underline;text-underline-offset:4px}
.sk-btn--danger{background:var(--danger-soft);color:var(--danger-ink)}
.sk-btn--danger:hover{background:var(--danger-bg);color:var(--on-danger)}
.sk-btn--danger-solid{background:var(--danger-bg);color:var(--on-danger)}
.sk-btn--danger-solid:hover{background:color-mix(in srgb,var(--danger-bg) 88%,#000)}
.sk-btn--sm{height:var(--ctl-sm);padding:0 12px;font-size:var(--fs-1);gap:6px}
.sk-btn--lg{height:48px;padding:0 24px;font-size:var(--fs-3);border-radius:10px}
.sk-btn--block{width:100%}
.sk-btn:disabled,.sk-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.sk-btn.is-busy{opacity:.6;cursor:progress}
.sk-btn svg{width:16px;height:16px;flex:none}
.sk-btn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.lab-link{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fs-2);color:var(--accent);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 40%,transparent);text-underline-offset:4px;border-radius:4px}
.lab-link:hover{text-decoration-color:currentColor}
.lab-link svg{width:16px;height:16px}

/* ---------- فیلدها ---------- */
.sk-input{height:var(--ctl);padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--s1);font-size:var(--fs-2);color:var(--ink);min-width:0;transition:border-color .15s,box-shadow .15s}
.sk-input:hover:not(:disabled):not(:focus){border-color:var(--ink-3)}
textarea.sk-input{height:auto;padding:10px 12px;line-height:1.9;resize:vertical}
select.sk-input{padding-inline-end:32px;cursor:pointer}
.sk-input:focus,.sk-input:focus-visible{outline:none;border-color:var(--accent-ui);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ui) 30%,transparent)}
.sk-input::placeholder{color:var(--ink-3);opacity:1}
.sk-input:disabled,.sk-input[readonly]{background:var(--s2);color:var(--ink-3);border-color:var(--line)}
.sk-input[aria-invalid="true"]{border-color:var(--danger)}
.ch-form{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.ch-form--stack{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
.ch-form>*{max-width:100%}
.ch-form .sk-input{flex:1;min-width:200px}
.ch-form .sk-btn{flex:none}
.ch-form small.ch-muted{font-size:var(--fs-1);line-height:1.8}
.ch-form label{font-size:var(--fs-2)}
.ch-check,.lab-check input,.chh-checkrow input{width:18px;height:18px;accent-color:var(--accent-bg);flex:none;cursor:pointer}
.lab-check{display:inline-flex;align-items:center;gap:8px;min-height:var(--ctl);padding:0 4px;font-size:var(--fs-2);color:var(--ink-2);cursor:pointer}
.chh-checkrow{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--fs-2);font-weight:600;min-height:var(--ctl)}

/* کلید روشن/خاموش */
.lab-switch{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-size:var(--fs-1);line-height:1.7;cursor:pointer;position:relative}
.lab-switch input{position:absolute;opacity:0;width:1px;height:1px}
.lab-switch__ui{position:relative;width:38px;height:22px;border-radius:99px;background:var(--line-2);flex:none;transition:background .15s}
.lab-switch__ui::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s var(--ease)}
.lab-switch input:checked+.lab-switch__ui{background:var(--accent-bg)}
.lab-switch input:checked+.lab-switch__ui::after{transform:translateX(-16px)}
[dir="ltr"] .lab-switch input:checked+.lab-switch__ui::after{transform:translateX(16px)}
.lab-switch input:focus-visible+.lab-switch__ui{outline:2px solid var(--focus);outline-offset:2px}

/* بارگذاری فایل */
.tk-up{display:flex;flex-direction:column;gap:var(--gap)}
.tk-up__row{display:flex;align-items:center;gap:var(--gap);flex-wrap:wrap;position:relative}
.tk-up__row input[type=file],.tk-up input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.tk-up__btn{display:inline-flex;align-items:center;gap:8px;height:var(--ctl);padding:0 16px;border-radius:var(--r);background:var(--s3);color:var(--ink);font-size:var(--fs-2);font-weight:600;cursor:pointer;transition:background .15s}
.tk-up__btn:hover{background:var(--s4)}
.tk-up__row:focus-within .tk-up__btn{outline:2px solid var(--focus);outline-offset:2px}
.tk-up__btn svg{width:18px;height:18px;flex:none}
.tk-up__name{font-size:var(--fs-1);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.tk-up__name.is-set{color:var(--ink);font-weight:600}
.ch-upload{display:flex;align-items:center;gap:12px;flex-wrap:wrap;position:relative}
.ch-upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}

/* ---------- برچسب، وضعیت، اطلاعات کوتاه ---------- */
.ch-meta{display:flex;flex-wrap:wrap;align-items:center;row-gap:4px;font-size:var(--fs-1);color:var(--ink-3);line-height:1.8}
.ch-meta>b{display:block;font-weight:600;color:var(--ink-2);white-space:nowrap}
.ch-meta>b+b::before,.ch-meta>b+a::before,.ch-meta>a+b::before{content:"";display:inline-block;width:1px;height:12px;background:var(--line-2);opacity:.55;margin-inline:10px;vertical-align:-1px}
.ch-meta>a{display:block;color:var(--accent);font-weight:600}
.ch-meta>a>b{font-weight:600}
.ch-meta>.ch-status,.ch-meta>.ch-int,.ch-meta>.ch-chip{margin-inline-start:10px}
.ch-meta>:first-child{margin-inline-start:0}
.ch-chip,.ch-meta>b[class*="ch-chip--"]{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:0 10px;border-radius:99px;background:var(--s3);color:var(--ink-2);font-size:var(--fs-1);font-weight:600;white-space:nowrap}
.ch-chip--ok{background:var(--ok-soft);color:var(--ok-ink)}
.ch-chip--warn{background:var(--warn-soft);color:var(--warn-ink)}
.ch-chip--danger{background:var(--danger-soft);color:var(--danger-ink)}
.ch-chip--amber,.ch-chip--info{background:var(--accent-soft);color:var(--accent-ink)}
.ch-status,.lab-tag{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:99px;background:var(--s3);color:var(--ink-2);font-size:var(--fs-1);font-weight:600;vertical-align:middle;white-space:nowrap;flex:none}
.lab-tag{height:24px;padding:0 9px}
.ch-status--solved,.ch-status--graded,.ch-status--done,.lab-tag--ok{background:var(--ok-soft);color:var(--ok-ink)}
.ch-status--pending_review,.ch-status--queued,.ch-status--running,.ch-status--defense,.lab-tag--warn{background:var(--warn-soft);color:var(--warn-ink)}
.ch-status--failed,.ch-status--rejected,.ch-task.is-failed .ch-status--graded,.lab-tag--danger{background:var(--danger-soft);color:var(--danger-ink)}
.lab-tag--accent{background:var(--accent-soft);color:var(--accent-ink)}
.lab-tag--me{background:var(--ink);color:var(--s1);height:20px;margin-inline-start:6px;padding:0 8px}
/* در منطقهٔ حل زمینه خنثی است؛ رنگ فقط با یک نقطهٔ کوچک */
:is(.tk-zone,body.is-lab,.ch-defense) :is(.ch-status--solved,.ch-status--graded,.ch-status--done,.lab-tag--ok)::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok-ui)}
:is(.tk-zone,body.is-lab,.ch-defense) :is(.ch-status--pending_review,.ch-status--queued,.ch-status--running,.ch-status--defense,.lab-tag--warn)::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--warn)}
:is(.tk-zone,body.is-lab,.ch-defense) :is(.ch-status--failed,.ch-status--rejected,.lab-tag--danger)::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--danger)}
.ch-int{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;background:var(--s3);font-size:var(--fs-1);font-weight:600;color:var(--ink-2)}
.ch-int::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ok-ui)}
.ch-int--warn::before{background:var(--warn)}
.ch-int--high::before{background:var(--danger)}
.lab-level,.ch-level{display:inline-flex;gap:3px;align-items:center;vertical-align:middle}
.lab-level i,.ch-level i{width:6px;height:6px;border-radius:50%;background:var(--line-2);opacity:.45}
.lab-level i.on,.ch-level i.on{background:var(--accent-ui);opacity:1}
.req{color:var(--danger);font-weight:800;margin-inline-start:3px}

/* ---------- نوار پیشرفت ---------- */
.lab-progress,.ch-progress{height:6px;border-radius:99px;background:var(--s3);overflow:hidden}
.lab-progress i,.ch-progress i{display:block;height:100%;background:var(--accent-ui);border-radius:99px;transition:width .4s var(--ease)}
.lab-progress.is-done i,.ch-progress.is-done i{background:var(--ok-fill)}

/* ---------- صفحه، سربرگ، بخش ---------- */
/* قانون ch-051: فاصلهٔ افقی و عمودی بین باکس‌ها همیشه ۱۲px (--gap)؛ سرصفحهٔ هر صفحه ۸px بیشتر فاصله می‌گیرد */
.lab-page{max-width:1120px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:var(--gap)}
.lab-page--wide{max-width:1320px}
.lab-pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap;margin-bottom:8px}
.lab-pagehead>div:first-child{min-width:0;flex:1 1 360px}
.lab-pagehead__title{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.35}
.lab-pagehead__sub{margin:6px 0 0;color:var(--ink-2);font-size:var(--fs-3);max-width:var(--measure);line-height:1.8}
.lab-pagehead__acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lab-crumb{display:inline-flex;align-items:center;gap:6px;min-height:28px;font-size:var(--fs-1);color:var(--ink-3);margin-bottom:6px;border-radius:6px;font-weight:600}
.lab-crumb:hover{color:var(--accent)}
.lab-crumb svg{width:14px;height:14px}
.lab-sec{display:flex;flex-direction:column;gap:var(--gap)}
.lab-sec__h{margin:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-h3);font-weight:800;line-height:1.5}
.lab-sec__h small{font-size:var(--fs-1);font-weight:400;color:var(--ink-3)}
.ch-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--gap-lg);flex-wrap:wrap}
.ch-hero h1{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.35}
.ch-hero p{margin:6px 0 0;color:var(--ink-2);font-size:var(--fs-3);max-width:var(--measure);line-height:1.8}
.ch-hero__meta{margin-bottom:8px}
.ch-hero__aside{display:flex;gap:var(--gap);flex-wrap:wrap;align-items:center;flex-shrink:0}
.ch-panel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap;margin:0 0 8px;padding:0;border:0}
.ch-panel-head h1{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.35}
.ch-panel-head h1 small{display:inline-block;margin-inline-start:10px;padding-inline-start:12px;border-inline-start:1px solid var(--line-2);font-size:var(--fs-3);font-weight:600;line-height:1.4;color:var(--ink-3);vertical-align:middle}
.ch-panel-head__acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ch-section{margin:var(--sp-6) 0 var(--sp-4);font-size:var(--fs-h3);font-weight:800;display:flex;align-items:baseline;gap:12px;line-height:1.5}
.ch-section:first-child{margin-top:0}
.ch-section small{font-weight:400;color:var(--ink-3);font-size:var(--fs-1)}
.ch-section small a,.lab-sec__h small a{display:inline-flex;align-items:center;min-height:28px;padding:0 4px;color:var(--accent);font-weight:600}
.ch-page{max-width:1120px;margin:0 auto;width:100%;font-size:var(--fs-2);line-height:1.8}
.ch-page>*+*{margin-top:var(--gap)}
.ch-stack{display:flex;flex-direction:column;gap:var(--gap)}
.ch-toolbar{display:flex;justify-content:space-between;gap:var(--gap);flex-wrap:wrap;align-items:center;margin-bottom:var(--sp-4)}
.ch-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;align-items:center}
.ch-actions form{display:inline}
.ch-actions--stack{flex-direction:column;align-items:stretch;gap:8px}
.ch-table .ch-actions{margin:0;padding:0}
.ch-sticky{position:sticky;top:calc(var(--topbar-h) + 16px)}
.ch-note{line-height:1.7}
.ch-note-sm{font-size:var(--fs-1);margin:8px 0 0;line-height:1.8}
.ch-error,.ch-field small.ch-error{color:var(--danger);font-weight:600;font-size:var(--fs-1)}

/* ---------- سطح‌ها (کارت) — یک لایه؛ کارتِ داخل کارت زمینه نمی‌گیرد ---------- */
.lab-card{display:flex;flex-direction:column;gap:10px;padding:20px 24px;border-radius:var(--r-lg);background:var(--s1);color:inherit;min-width:0}
a.lab-card{transition:box-shadow .15s;outline-offset:2px}
a.lab-card:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
a.lab-card:hover h3{color:var(--accent)}
.lab-card h3{margin:0;font-size:var(--fs-3);font-weight:800;line-height:1.55;transition:color .15s}
.lab-card p{margin:0;color:var(--ink-2);font-size:var(--fs-2);line-height:1.8}
.lab-card__top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.lab-card__meta{font-size:var(--fs-1);color:var(--ink-3);margin-top:auto;padding-top:8px;line-height:1.8}
.lab-card__meta b{font-weight:600;color:var(--ink-2)}
.lab-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--gap)}
.lab-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ch-card{padding:24px;border-radius:var(--r-lg);background:var(--s1);display:flex;flex-direction:column;gap:var(--gap);min-width:0;border:0}
.ch-card h3,.ch-card__title{margin:0;font-size:var(--fs-3);font-weight:800}
.ch-card--form{display:block}
/* قاعدهٔ «کارت در کارت نه»: سطحِ تو در تو زمینه و فاصلهٔ جدا نمی‌گیرد */
:is(.lab-card,.ch-card,.chh-card) :is(.lab-card,.ch-card){background:transparent;box-shadow:none;padding:0;border-radius:0}

/* ---------- کاشی آمار ---------- */
.ch-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--gap);margin-bottom:var(--gap)}
.ch-stat{padding:16px 20px;border-radius:var(--r-lg);background:var(--s1);border:0}
.ch-stat b{display:block;font-size:var(--fs-4);line-height:1.3;font-weight:800}
.ch-stat span{font-size:var(--fs-1);color:var(--ink-3)}
.ch-side .ch-stat{padding:12px 16px}
.ch-side .ch-stat b{font-size:var(--fs-3)}
.lab-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.lab-stats--tiles{grid-template-columns:minmax(0,1fr)}
.lab-stat{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;padding:14px 16px;border-radius:var(--r-lg);background:var(--s1)}
.lab-stat:not(:has(.lab-stat__ic)){grid-template-columns:minmax(0,1fr)}
.lab-stat__ic{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--s3);color:var(--ink-2)}
.lab-stat__ic svg{width:18px;height:18px}
.lab-stat--gold .lab-stat__ic,.lab-stat--info .lab-stat__ic,.lab-stat--violet .lab-stat__ic{background:var(--accent-soft);color:var(--accent-ink)}
.lab-stat--ok .lab-stat__ic{background:var(--ok-soft);color:var(--ok-ink)}
.lab-stat b{display:block;font-size:var(--fs-3);font-weight:800;line-height:1.4}
.lab-stat span{font-size:var(--fs-1);color:var(--ink-3);line-height:1.6}

/* ---------- نمودارها ---------- */
.ch-donutwrap{position:relative;display:grid;place-items:center}
.ch-donut{width:104px;height:104px;transform:rotate(-90deg)}
.ch-donut__bg{fill:none;stroke:var(--s3);stroke-width:10}
.ch-donut__fg{fill:none;stroke:var(--ok-fill);stroke-width:10;stroke-linecap:round}
.ch-donut__v{position:absolute;font-size:var(--fs-4);font-weight:800}
.ch-bars{display:flex;flex-direction:column;gap:10px}
.ch-bar{display:grid;grid-template-columns:minmax(80px,1fr) 2fr auto;align-items:center;gap:10px;font-size:var(--fs-1)}
.ch-bar span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.ch-bar i{height:8px;border-radius:4px;background:var(--accent-ui);display:block;min-width:4px}
.ch-bar b{font-weight:800}

/* ---------- نشان‌ها (تنها جای زرد، کنار لوگو) ---------- */
.lab-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--gap)}
.lab-badge{padding:16px 18px;border-radius:var(--r-lg);background:var(--s1);color:var(--ink-3);font-size:var(--fs-1);line-height:1.7;display:flex;flex-direction:column;gap:4px}
.lab-badge b{color:var(--ink-3);font-size:var(--fs-2);display:flex;align-items:center;gap:8px;font-weight:600}
.lab-badge b::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--s3);flex:none}
.lab-badge.is-earned{color:var(--ink-2)}
.lab-badge.is-earned b{color:var(--ink);font-weight:800}
.lab-badge.is-earned b::before{background:var(--gold)}

/* ---------- فهرست و ردیف ---------- */
.lab-list{display:flex;flex-direction:column;background:var(--s1);border-radius:var(--r-lg);overflow:hidden}
.lab-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;min-height:56px;padding:10px 24px;border-top:1px solid var(--line);font-size:var(--fs-2)}
.lab-row:first-child{border-top:0}
.lab-row a{font-weight:600;display:inline-flex;align-items:center;min-height:32px}
.lab-row a:hover{color:var(--accent)}
.lab-row .lab-tag{justify-self:start}
.lab-row .muted{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.lab-row b{font-weight:800;white-space:nowrap}

/* ---------- جدول ---------- */
.ch-table,.lab-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-2);background:var(--s1)}
.lab-table{border-radius:var(--r-lg);overflow:hidden}
.ch-table th,.lab-table th{font-weight:600;font-size:var(--fs-1);color:var(--ink-3);text-align:start;white-space:nowrap;height:44px;padding:0 16px;border-bottom:1px solid var(--line);vertical-align:middle}
.ch-table td,.lab-table td{padding:10px 16px;border-bottom:1px solid var(--line);text-align:start;vertical-align:middle;overflow-wrap:anywhere;line-height:1.7}
.ch-table td{height:52px}
.ch-table tbody tr:last-child td,.lab-table tr:last-child td{border-bottom:0}
.ch-table tbody tr:hover td{background:var(--s2)}
.lab-table th:first-child,.lab-table td:first-child{padding-inline-start:24px}
.lab-table th:last-child,.lab-table td:last-child{padding-inline-end:24px}
.lab-table tr.is-me td{background:var(--accent-soft);font-weight:800}
.ch-table--compact{font-size:12.5px}
.ch-table--compact th,.ch-table--compact td{padding:0 10px;height:34px;font-family:var(--mono)}
.ch-table td.ch-nowrap{white-space:nowrap;overflow-wrap:normal}
.ch-table td>a:not(.sk-btn),.lab-table td>a:not(.sk-btn){display:inline-flex;align-items:center;min-height:28px;font-weight:600}
.ch-table td>a:not(.sk-btn):hover,.lab-table td>a:not(.sk-btn):hover{color:var(--accent)}
.ch-tablewrap,.lab-tablewrap,.ch-sqlres,.ch-matrixwrap{width:100%;overflow-x:auto;border-radius:var(--r-lg)}
.lab-rank{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--s3);font-weight:800;font-size:var(--fs-1)}
.lab-rank--1{background:var(--gold);color:var(--gold-ink)}

/* ---------- زبانه‌ها و فیلترها ---------- */
.lab-chips,.ch-helpnav,.lab-filterbar{display:flex;gap:6px;flex-wrap:wrap}
.lab-filterbar{margin-bottom:var(--sp-5)}
.lab-chips a,.ch-helpnav a.ch-chip,.lab-chip{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 14px;border-radius:99px;background:var(--s1);color:var(--ink-2);font-size:var(--fs-1);font-weight:600;min-height:0;transition:background .15s,color .15s}
.lab-chips a:hover,.ch-helpnav a.ch-chip:hover,.lab-chip:hover{color:var(--ink);background:var(--s3)}
.lab-chips a.is-active,.ch-helpnav a.ch-chip.is-on,.lab-chip.is-on{background:var(--accent-soft);color:var(--accent-ink)}
.lab-chips a small{font-weight:400;opacity:.85}
/* زبانه‌های خطی (زیرمنوی پنل طراح) */
.ch-subnav,.tk-tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:var(--sp-5);border-bottom:1px solid var(--line)}
.ch-subnav .sk-btn,.tk-tabs>a,.tk-tabs>button{height:42px;padding:0 14px;border:0;border-radius:var(--r) var(--r) 0 0;background:transparent;color:var(--ink-2);font-size:var(--fs-2);font-weight:600;position:relative;display:inline-flex;align-items:center}
.ch-subnav .sk-btn:hover,.tk-tabs>a:hover,.tk-tabs>button:hover{background:var(--s2);color:var(--ink)}
.ch-subnav .sk-btn--primary,.tk-tabs>.is-on,.tk-tabs>[aria-selected="true"]{color:var(--ink);font-weight:800;background:transparent}
.ch-subnav .sk-btn--primary::after,.tk-tabs>.is-on::after,.tk-tabs>[aria-selected="true"]::after{content:"";position:absolute;inset-inline:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent-ui)}

/* ---------- نوار جست‌وجو و فیلتر (ch-051): یک باکس؛ ردیف دسته/وضعیت + ردیف جست‌وجو، انتخاب‌های قرصی و کلید «فقط…» ---------- */
.lab-toolbar{display:flex;flex-direction:column;background:var(--s1);border-radius:var(--r-lg);min-width:0}
.lab-toolbar__cats{display:flex;align-items:center;gap:4px;padding:10px 12px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.lab-toolbar__cats::-webkit-scrollbar{display:none}
.lab-toolbar__cats a{flex:none;display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 14px;border-radius:99px;color:var(--ink-2);font-size:var(--fs-2);font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
.lab-toolbar__cats a:hover{background:var(--s2);color:var(--ink)}
.lab-toolbar__cats a.is-active{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}
.lab-toolbar__cats small{min-width:22px;padding:0 7px;border-radius:99px;background:var(--s2);color:var(--ink-3);font-size:12px;font-weight:700;line-height:20px;text-align:center}
.lab-toolbar__cats a.is-active small{background:var(--s1);color:var(--accent-ink)}
.lab-toolbar__cats a.is-warn small{background:var(--warn-soft);color:var(--warn-ink)}
.lab-toolbar__row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px}
.lab-search{position:relative;flex:1 1 280px;min-width:0}
.lab-search__input{width:100%;height:40px;padding:0 12px;padding-inline-start:42px;border:1px solid transparent;border-radius:10px;background:var(--s2);color:var(--ink);font-size:var(--fs-2);transition:background .15s,border-color .15s,box-shadow .15s}
.lab-search__input::placeholder{color:var(--ink-3);opacity:1}
.lab-search__input:hover{border-color:var(--line)}
.lab-search__input:focus{outline:none;background:var(--s1);border-color:var(--accent-ui);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ui) 28%,transparent)}
.lab-search__go{position:absolute;inset-inline-start:4px;top:4px;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--ink-3)}
.lab-search__go:hover{background:var(--s3);color:var(--ink)}
.lab-search__go .tk-ic{width:18px;height:18px}
.lab-pick,.lab-toggle{position:relative;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px;border-radius:10px;background:var(--s2);color:var(--ink-2);font-size:var(--fs-2);cursor:pointer;transition:background .15s,color .15s;white-space:nowrap}
.lab-pick:hover,.lab-toggle:hover{background:var(--s3)}
.lab-pick__k{color:var(--ink-3);font-weight:500}
.lab-pick select{-webkit-appearance:none;appearance:none;height:100%;min-width:2ch;max-width:200px;field-sizing:content;margin:0;padding:0;padding-inline-end:18px;border:0;background:transparent;color:var(--ink);font:inherit;font-weight:700;text-overflow:ellipsis;cursor:pointer}
.lab-pick select:focus{outline:none}
.lab-pick>.tk-ic{position:absolute;inset-inline-end:10px;top:50%;width:14px;height:14px;margin-top:-7px;color:var(--ink-3);pointer-events:none}
.lab-pick:focus-within,.lab-toggle:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}
.lab-pick.is-set{background:var(--accent-soft)}
.lab-pick.is-set .lab-pick__k,.lab-pick.is-set select,.lab-pick.is-set>.tk-ic{color:var(--accent-ink)}
.lab-toggle{gap:8px;font-weight:600}
.lab-toggle input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.lab-toggle__box{width:18px;height:18px;flex:none;display:grid;place-items:center;border-radius:5px;border:1.5px solid var(--line-2);background:var(--s1)}
.lab-toggle__box .tk-ic{width:12px;height:12px;color:var(--on-accent);opacity:0}
.lab-toggle.is-on,.lab-toggle:has(input:checked){background:var(--accent-soft);color:var(--accent-ink)}
.lab-toggle.is-on .lab-toggle__box,.lab-toggle:has(input:checked) .lab-toggle__box{border-color:var(--accent-bg);background:var(--accent-bg)}
.lab-toggle.is-on .lab-toggle__box .tk-ic,.lab-toggle:has(input:checked) .lab-toggle__box .tk-ic{opacity:1}
.lab-toolbar__clear{margin-inline-start:auto;font-size:var(--fs-1)}
@media (max-width:640px){
  .lab-toolbar__row{padding:10px}
  .lab-search{flex-basis:100%}
  .lab-pick{flex:1 1 calc(50% - 4px);min-width:0}
  .lab-pick select{max-width:none;flex:1;min-width:0}
  .lab-toggle{flex:1 1 100%}
  .lab-toolbar__clear{margin-inline-start:0}
}

/* ---------- پیام خالی ---------- */
.ch-empty,.chh-empty{padding:40px 24px;text-align:center;color:var(--ink-3);border-radius:var(--r-lg);background:var(--s1);line-height:1.9;font-size:var(--fs-2)}
.ch-empty strong,.chh-empty strong{display:block;color:var(--ink);font-size:var(--fs-3);font-weight:800;margin-bottom:4px}
.ch-empty__actions{margin-top:16px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.lab-empty{padding:20px 16px;border-radius:var(--r);background:var(--s2);color:var(--ink-3);font-size:var(--fs-1);line-height:1.8;text-align:center}
:is(.lab-card,.ch-card,.chh-card,.lab-task) :is(.ch-empty,.chh-empty){background:var(--s2)}

/* ---------- اسکلت بارگذاری ---------- */
.tk-skel{display:block;border-radius:var(--r);background:linear-gradient(90deg,var(--s3) 0%,var(--s2) 40%,var(--s3) 80%);background-size:300% 100%;animation:tkskel 1.4s ease-in-out infinite;min-height:12px}
.tk-skel--line{height:12px;margin:8px 0}
.tk-skel--title{height:22px;width:45%;margin-bottom:12px}
.tk-skel--block{height:120px}
@keyframes tkskel{from{background-position:100% 0}to{background-position:0 0}}

/* ---------- دو ستونه و کناری ---------- */
.lab-two,.ch-two{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--gap);align-items:start}
.lab-aside,.ch-side{display:flex;flex-direction:column;gap:var(--gap)}
.lab-aside--sticky{position:sticky;top:calc(var(--topbar-h) + 24px)}
.ch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--gap)}
.ch-two>*,.ch-grid>*,.chd-split>*,.ch-stack>*{min-width:0}

/* ---------- جزئیات تاشو ---------- */
details.ch-details summary{cursor:pointer;font-weight:600;font-size:var(--fs-1);color:var(--ink-2);list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:28px;border-radius:6px}
details.ch-details summary:hover{color:var(--ink)}
details.ch-details summary::-webkit-details-marker{display:none}
details.ch-details summary::before{content:"";width:0;height:0;border-inline-start:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}
details.ch-details[open] summary::before{transform:rotate(-90deg)}
.ch-details--gap{margin-top:10px}
.ch-side .ch-details p{margin:6px 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-2)}

/* ---------- کد ---------- */
.ch-pre{white-space:pre-wrap;margin:8px 0 0;padding:12px 14px;border-radius:var(--r);background:var(--s2);font-family:var(--mono);font-size:12.5px;line-height:1.7;max-width:100%;overflow:auto;direction:ltr;text-align:left}
.ch-pre--inline{margin:0;flex-basis:100%}
.ch-pre--rtl{direction:rtl;text-align:right}
.ch-pre--flush{margin:0;border:0;border-radius:0;background:transparent}

/* ---------- راهنمای «i» ---------- */
.ch-info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin:-4px;border:0;background:transparent;color:var(--ink-3);cursor:help;flex:none;padding:0;outline:none;vertical-align:middle;border-radius:50%}
.ch-info svg{width:15px;height:15px}
.ch-info:hover,.ch-info:focus,.ch-info.is-open{color:var(--accent)}
.ch-info:focus-visible{outline:2px solid var(--focus);outline-offset:0}
.ch-info__tip{position:fixed;z-index:1000;width:min(340px,calc(100vw - 24px));padding:10px 14px;border-radius:var(--r);background:var(--pop-bg);color:var(--pop-ink);box-shadow:var(--shadow-pop);font-size:var(--fs-1);font-weight:400;line-height:1.9;text-align:start;direction:rtl;opacity:0;visibility:hidden;transition:opacity .12s;pointer-events:none;white-space:normal}
.ch-info__tip.is-visible{opacity:1;visibility:visible}

/* ---------- پیام شناور، پنجرهٔ تأیید، نوار شبکه ---------- */
.ch-toasts{position:fixed;bottom:24px;inset-inline-start:50%;transform:translateX(50%);z-index:1400;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;width:max-content;max-width:min(460px,calc(100vw - 32px))}
.ch-toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:12px 18px;border-radius:var(--r-lg);background:var(--pop-bg);color:var(--pop-ink);box-shadow:var(--shadow-pop);font-size:var(--fs-2);font-weight:600;line-height:1.7;animation:labin .2s var(--ease)}
.ch-toast::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pop-accent);flex:none}
.ch-toast.is-ok::before{background:var(--ok-fill)}
.ch-toast.is-warn::before{background:#FDBA74}
.ch-toast.is-error{background:var(--danger-bg);color:var(--on-danger)}
.ch-toast.is-error::before{background:#fff}
.ch-toast.is-out{opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
@keyframes labin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
body.tk-modal-open{overflow:hidden}
.tk-modal{position:fixed;inset:0;z-index:1300;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:20px}
.tk-modal[hidden]{display:none}
.tk-modal__box{width:min(480px,100%);max-height:88vh;display:flex;flex-direction:column;background:var(--s1);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-pop);animation:labin .18s var(--ease)}
.tk-modal__box--wide{width:min(860px,96vw)}
.tk-modal__h{padding:24px 24px 0}
.tk-modal__h b{font-size:var(--fs-h3);font-weight:800}
.tk-modal__b{padding:10px 24px 0;overflow:auto;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.tk-modal__b p{margin:0}
.tk-modal__f{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:8px;padding:24px}
.ch-netbar{position:fixed;top:0;inset-inline:0;z-index:1300;padding:8px 14px;text-align:center;background:var(--pop-bg);color:var(--pop-ink);font-size:var(--fs-1);transform:translateY(-100%);transition:transform .2s}
.ch-netbar.is-on{transform:none}
.ch-integrity-warn{position:fixed;bottom:16px;inset-inline-start:16px;z-index:1200;padding:10px 14px;border-radius:var(--r);background:var(--pop-bg);color:var(--pop-ink);box-shadow:var(--shadow-pop);font-size:var(--fs-1);opacity:0;visibility:hidden;transition:opacity .15s}
.ch-integrity-warn.is-on{opacity:1;visibility:visible}
.ch-fsgate{position:fixed;inset:0;z-index:1100;display:none;align-items:center;justify-content:center;background:var(--bg)}
.ch-fsgate.is-on{display:flex}
.ch-fsgate__box{max-width:460px;padding:28px;border-radius:var(--r-xl);background:var(--s1);text-align:center;display:flex;flex-direction:column;gap:12px}
.ch-fsgate__box b{font-size:var(--fs-h3);font-weight:800}
.ch-fsgate__box p{margin:0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}

/* ---------- کشوی راهنمای صفحه ---------- */
.ch-help{position:fixed;inset:0;z-index:1000;background:var(--overlay);display:flex;justify-content:flex-start}
.ch-help[hidden]{display:none}
.ch-help__box{width:min(440px,100%);height:100%;background:var(--s1);display:flex;flex-direction:column;box-shadow:var(--shadow-pop)}
.ch-help__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 24px;border-bottom:1px solid var(--line)}
.ch-help__head b{font-size:var(--fs-3);font-weight:800}
.ch-help__body{padding:24px;overflow:auto;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.ch-help__body p{margin:0 0 10px}.ch-help__body h4{margin:16px 0 4px;color:var(--ink);font-size:var(--fs-2);font-weight:800}.ch-help__body b{color:var(--ink)}.ch-help__body ol,.ch-help__body ul{margin:0 0 10px;padding-inline-start:20px}
body.ch-help-open{overflow:hidden}

/* ---------- منوی «بیشتر» (details/summary؛ بدون JS هم کار می‌کند، ui.js با کلیک بیرون و Esc می‌بندد) ---------- */
.tk-more{position:relative;display:inline-block}
.tk-more>summary{list-style:none;cursor:pointer}
.tk-more>summary::-webkit-details-marker{display:none}
.tk-more[open]>summary{background:var(--s3);color:var(--ink)}
.tk-more__menu{position:absolute;top:calc(100% + 6px);inset-inline-end:0;z-index:30;display:flex;flex-direction:column;min-width:220px;padding:6px;border-radius:var(--r-lg);background:var(--s1);box-shadow:var(--shadow-pop)}
.tk-more.is-flip .tk-more__menu{inset-inline-end:auto;inset-inline-start:0}
.tk-more__menu form{margin:0}
.tk-more__menu form:first-of-type{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}
.tk-more__menu a,.tk-more__menu button{display:flex;align-items:center;width:100%;min-height:38px;padding:0 12px;border-radius:var(--r);font-size:var(--fs-2);font-weight:400;color:var(--ink-2);text-align:start;white-space:nowrap}
.tk-more__menu a:hover,.tk-more__menu button:hover{background:var(--s2);color:var(--ink)}
.tk-more__menu .is-danger{color:var(--danger)}
.tk-more__menu .is-danger:hover{background:var(--danger-soft);color:var(--danger-ink)}
.tk-more__menu a .tk-ic,.tk-more__menu button .tk-ic{width:16px;height:16px;margin-inline-end:8px;flex:none}
.lab-tag--muted{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink-3)}

/* ============================================================================
   صفحه‌ها: داشبوردها، کاتالوگ، صفحهٔ چالش، جدول امتیاز، راهنما، ورود
   ============================================================================ */
.lab-starter{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-5);flex-wrap:wrap;padding:20px 24px;border-radius:var(--r-lg);background:var(--s1);border-inline-start:3px solid var(--accent-ui)}
.lab-starter b{display:block;font-size:var(--fs-3);font-weight:800}
.lab-starter span{font-size:var(--fs-2);color:var(--ink-2)}
.lab-starter__acts{display:flex;gap:8px;flex-wrap:wrap}
.lab-cta{padding:20px;border-radius:var(--r-lg);background:var(--s1);color:var(--ink);display:flex;flex-direction:column;gap:12px}
.lab-cta p{margin:0;font-size:var(--fs-1);color:var(--ink-3);line-height:1.8;text-align:center}
.lab-cta__done{margin:0;font-size:var(--fs-2)!important;line-height:1.9!important;text-align:start!important;color:var(--ink-2)!important}
.lab-detail__meta{font-size:var(--fs-2);color:var(--ink-2);line-height:1.9}
.lab-detail__meta .lab-level{margin-inline-end:4px}
.lab-prose{font-size:var(--fs-3);line-height:1.95;max-width:var(--measure);margin:0}
.lab-prose--goal{font-size:var(--fs-2);color:var(--ink-2)}
.lab-prose--goal strong{color:var(--ink);font-weight:800}
.lab-files{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.lab-files__l{font-size:var(--fs-1);color:var(--ink-3);margin-inline-end:4px}
.lab-files span{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:var(--r);background:var(--s1);font-size:var(--fs-1);font-weight:600;font-family:var(--mono);direction:ltr}
.lab-stages{display:flex;flex-direction:column;background:var(--s1);border-radius:var(--r-lg)}
ol.lab-stages{list-style:none;margin:0;padding:0}
.lab-stage{display:grid;grid-template-columns:32px minmax(0,1fr);gap:16px;align-items:center;padding:14px 24px;border-top:1px solid var(--line)}
.lab-stage:first-child{border-top:0}
.lab-stage__n{width:32px;height:32px;border-radius:50%;background:var(--s3);display:grid;place-items:center;font-weight:800;font-size:var(--fs-1);color:var(--ink-2)}
.lab-stage h3{margin:0;font-size:var(--fs-3);font-weight:800;line-height:1.55}
.lab-stage__meta{font-size:var(--fs-1);color:var(--ink-3);margin-top:2px}
.lab-stage p{margin:8px 0 0;color:var(--ink-2);font-size:var(--fs-2);line-height:1.8}
.ch-cc{position:relative;gap:12px;min-height:auto}
.ch-cc__top{display:flex;justify-content:space-between;gap:8px;align-items:center}
.ch-cc__top h3{flex:1;min-width:0}
.ch-cc .ch-meta{margin-top:2px}

/* داشبورد نقش‌ها */
.ch-worker{display:flex;align-items:center;gap:12px;padding:14px 20px;border-radius:var(--r-lg);background:var(--s1);margin-bottom:var(--gap)}
.ch-worker__dot{width:10px;height:10px;border-radius:50%;background:var(--ink-3);flex:none}
.ch-worker--ok .ch-worker__dot{background:var(--ok-ui)}
.ch-worker--stale .ch-worker__dot{background:var(--danger)}
.ch-worker b{display:block;font-size:var(--fs-2);font-weight:800}
.ch-worker small{color:var(--ink-3);font-size:var(--fs-1)}

/* راهنما (core/help.html) */
.ch-article h2{margin:0 0 4px;font-size:var(--fs-h3);font-weight:800}
.ch-article h3{margin:14px 0 0;font-size:var(--fs-3);font-weight:800}
.ch-article p,.ch-article li{font-size:var(--fs-2);line-height:1.95;color:var(--ink-2)}
.ch-article p{margin:0;max-width:var(--measure)}
.ch-article ol,.ch-article ul{margin:0;padding-inline-start:20px}
.ch-article b{color:var(--ink)}
.ch-helpgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--gap)}
.ch-helpitem{padding:0 0 0;border-radius:0;background:transparent}
.ch-helpitem b{display:block;margin-bottom:4px;color:var(--ink);font-weight:800}
.ch-helpitem p{margin:0;font-size:var(--fs-1);line-height:1.9;color:var(--ink-2)}

/* ورود و صفحه‌های خطا */
.lab-auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px}
.lab-auth__box{width:min(420px,100%);background:var(--s1);border-radius:var(--r-xl);padding:36px 32px;display:flex;flex-direction:column;gap:16px}
.lab-auth__brand{display:flex;justify-content:center;margin-bottom:8px}
.lab-auth h1{margin:0;font-size:var(--fs-4);font-weight:800;text-align:center}
.lab-auth__lead{margin:0;font-size:var(--fs-2);color:var(--ink-2);line-height:1.8;text-align:center}
.lab-auth__lead a{color:var(--accent);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.lab-auth form{display:flex;flex-direction:column;gap:6px}
.lab-auth label{font-size:var(--fs-2);font-weight:600;margin-top:8px}
.lab-auth input:not([type=hidden]){height:44px;padding:0 12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--s1);font-size:var(--fs-3);width:100%;transition:border-color .15s,box-shadow .15s}
.lab-auth input:focus{outline:none;border-color:var(--accent-ui);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ui) 30%,transparent)}
.lab-auth__actions{margin-top:16px}
.lab-auth__actions .sk-btn{width:100%;height:44px}
.ch-auth{min-height:calc(100vh - 200px);display:grid;place-content:center;justify-items:center;gap:10px;padding:24px;text-align:center}
.ch-auth h1{margin:0;font-size:var(--fs-5);font-weight:800}
.ch-auth__lead{margin:0;color:var(--ink-2);font-size:var(--fs-3);line-height:1.8;max-width:52ch}
.ch-auth__actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}

/* ---------- صفحهٔ شروع چالش (ch-049 فاز ۶) ---------- */
.tk-ic{width:18px;height:18px;flex:none}
/* سرصفحهٔ صفحهٔ شروع (ch-052): یک باکس سفید و آرام. راست «این چالش چیست»، چپ «وضعیت شما + یک اقدام اصلی» (مثل کارت
   «چالش پیشنهادی بعدی» داشبورد). بدون نقشهٔ مسیر، بافت و جعبهٔ دوم؛ قاعده‌ها و مرحله‌ها فقط پایین صفحه. */
.st{gap:var(--gap);container:st/inline-size}
.st-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding:28px 32px;border-radius:var(--r-xl);background:var(--s1)}
@container st (min-width:760px){.st-hero{grid-template-columns:minmax(0,1fr) 296px;column-gap:56px;align-items:center}}
.st-hero__head{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.st-crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:2px 10px;margin-bottom:4px;font-size:var(--fs-1);color:var(--ink-3)}
.st-crumbs .lab-crumb{margin:0}
.st-exam{margin:0;display:flex;align-items:flex-start;gap:6px;font-size:var(--fs-1);font-weight:600;line-height:1.8;color:var(--accent-ink)}
.st-exam .tk-ic{width:16px;height:16px;margin-top:3px}
.st-title{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.45;max-width:30ch;text-wrap:balance;color:var(--ink)}
.st-sum{margin:0;font-size:var(--fs-3);line-height:1.9;color:var(--ink-2);max-width:62ch}
.st-meta{margin-top:4px}

/* ستون «وضعیت شما»: یک خط وضعیت یا عدد، سپس یک دکمه */
.st-act{display:flex;flex-direction:column;gap:14px;min-width:0}
@container st (max-width:759px){
  .st-act{padding-top:20px;border-top:1px solid var(--line)}
  .st-act>*{max-width:440px}
}
.st-form{margin:0}
.st-go{width:100%;height:46px;border-radius:var(--r-lg);font-size:var(--fs-3);font-weight:700}
.st-go--skills{height:auto;min-height:46px;padding-block:10px;white-space:normal;text-align:center;line-height:1.6}   /* ch-055: دکمهٔ «شروع از آزمون» با عنوان بلند */
.st-go--skills+.st-go--skills{margin-top:8px}
.st-link{align-self:center;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-1)}
.st-link .tk-ic{width:14px;height:14px}
.st-state{margin:0;display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-2);line-height:1.85;color:var(--ink-2)}
.st-state .tk-ic{width:18px;height:18px;flex:none;margin-top:3px;color:var(--accent-ui)}
.st-state.is-ok{font-weight:600;color:var(--ok-ink)}
.st-state.is-ok .tk-ic{color:var(--ok-ui)}
.st-state.is-warn .tk-ic{color:var(--warn)}
.st-note{margin:-6px 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3)}
/* یک عدد اصلی: برچسب کوچک، عدد درشت */
.st-num{margin:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;font-size:var(--fs-2);color:var(--ink-2)}
.st-num>span:first-child{flex-basis:100%;margin-bottom:2px;font-size:var(--fs-1);color:var(--ink-3)}
.st-num b{font-size:var(--fs-4);font-weight:800;line-height:1.3;color:var(--ink)}
.st-num small{font-size:var(--fs-2);color:var(--ink-3)}
.st-num .lab-tag{align-self:center}
.st-prog{display:flex;flex-direction:column;gap:10px}
.st-prog p{margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.st-prog b{font-weight:800;color:var(--ink);margin-inline-end:2px}
.st-facts{margin:0;display:flex;flex-direction:column;gap:8px}
.st-facts>div{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:baseline}
.st-facts dt{font-size:var(--fs-1);color:var(--ink-3);line-height:1.8}
.st-facts dd{margin:0;min-width:0;font-size:var(--fs-2);font-weight:700;line-height:1.8;color:var(--ink)}
.st-left{margin:0;display:flex;align-items:center;gap:5px;font-size:var(--fs-1);font-weight:600;color:var(--accent)}
.st-left .tk-ic{width:14px;height:14px}
.st-left.is-soon{color:var(--warn)}
.st-score{display:flex;flex-direction:column;gap:10px}
.st-meter{position:relative;display:block;height:6px;border-radius:99px;background:var(--s3)}
.st-meter i{position:absolute;inset-block:0;inset-inline-start:0;width:var(--v);border-radius:99px;background:var(--accent-ui)}
.st-score.is-below .st-meter i{background:var(--warn)}
.st-score.is-met .st-meter i{background:var(--ok-ui)}
.st-meter b{position:absolute;top:-4px;bottom:-4px;inset-inline-start:var(--min);width:2px;border-radius:2px;background:var(--ink);transform:translateX(50%)}

.st-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:start}
.st-main{grid-column:1;grid-row:1;background:var(--s1);border-radius:var(--r-lg);padding:28px 32px;min-width:0}
.st-aside{grid-column:2;grid-row:1;background:var(--s1);border-radius:var(--r-lg);padding:28px 32px;position:sticky;top:calc(var(--topbar-h) + 24px);min-width:0}
.st-sec+.st-sec{margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}
.st-sec__h{margin:0 0 14px;font-size:var(--fs-h3);font-weight:800;line-height:1.5;display:flex;align-items:baseline;gap:4px 12px;flex-wrap:wrap}
.st-sec__h small{font-size:var(--fs-1);font-weight:400;color:var(--ink-3)}
.st-goal{margin:14px 0 0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2);max-width:var(--measure)}
.st-goal b{color:var(--ink);font-weight:800}
.st-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.st-step{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.st-step:first-child{border-top:0;padding-top:2px}
.st-step:focus{outline:none}
.st-step__n{width:32px;height:32px;border-radius:50%;background:var(--s3);display:grid;place-items:center;font-weight:800;font-size:var(--fs-1);color:var(--ink-2)}
.st-step__t{display:flex;flex-direction:column;gap:2px;min-width:0}
.st-step__t b{font-size:var(--fs-3);font-weight:600;line-height:1.6}
.st-step__k{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-1);color:var(--ink-3)}
.st-step__k .tk-ic{width:15px;height:15px}
.st-step__h{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.st-step__h .tk-ic{width:14px;height:14px}
.st-more{margin-top:14px}
.st-rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px}
.st-rules li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:12px;align-items:start}
.st-rules .tk-ic{width:20px;height:20px;color:var(--accent-ui);margin-top:3px}
.st-rules b{display:block;font-size:var(--fs-2);font-weight:800;margin-bottom:2px}
.st-rules p{margin:0;font-size:var(--fs-2);line-height:1.85;color:var(--ink-2)}
.st-mine{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.st-mine__h{margin:0 0 8px;font-size:var(--fs-2);font-weight:800}
.st-mine__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.st-mine__list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;min-height:44px;border-top:1px solid var(--line)}
.st-mine__list li:first-child{border-top:0}
.st-mine__list a{font-weight:600;display:inline-flex;align-items:center;min-height:32px}
.st-mine__list a:hover{color:var(--accent)}
.st-mine__list b{font-weight:800;min-width:2ch;text-align:end}
.st-rank{margin-top:18px}
.st-rank .tk-ic{width:17px;height:17px}

/* ---------- داشبورد شرکت‌کننده (ch-049 فاز ۸): قدم بعدی، کارنامه، فعالیت، دسته‌ها، تلاش‌ها، نشان‌ها ---------- */
.pd{gap:var(--gap)}
.pd-head{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}
.pd-title{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.4}
.pd-sub{margin:0;font-size:var(--fs-3);color:var(--ink-2);line-height:1.8}
/* قدم بعدی: تنها بخش با دکمهٔ اصلی بزرگ؛ یک لبهٔ باریک رنگی، بدون زمینهٔ رنگی */
.pd-next{position:relative;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px 40px;padding:28px 32px;border-radius:var(--r-xl);background:var(--s1);overflow:hidden}
.pd-next::before{content:"";position:absolute;inset-block:0;inset-inline-start:0;width:4px;background:var(--accent-ui)}
.pd-next.is-defense::before{background:var(--warn)}
.pd-next__body{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:8px}
.pd-next__over{margin:0;display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-1);font-weight:600;color:var(--accent)}
.pd-next__over .tk-ic{width:16px;height:16px}
.pd-next.is-defense .pd-next__over{color:var(--warn-ink)}
.pd-next__t{margin:0;font-size:var(--fs-4);font-weight:800;line-height:1.5}
.pd-next__text{margin:0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2);max-width:var(--measure)}
.pd-next__meta{margin-block:0}
.pd-next__prog{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:4px;font-size:var(--fs-1);color:var(--ink-2)}
.pd-next__prog .lab-progress{width:min(280px,100%);flex:none}
.pd-next__acts{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.pd-next__acts .sk-btn--lg{min-width:210px}
/* کارنامه: یک سطح با خانه‌های جداشده با خط باریک؛ رنگ فقط در نشانگر هر خانه */
.pd-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));background:var(--s1);border-radius:var(--r-lg);overflow:hidden}
.pd-stat{display:flex;align-items:center;gap:14px;padding:18px 24px;min-width:0;color:inherit}
.pd-stat+.pd-stat{border-inline-start:1px solid var(--line)}
.pd-stat__ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--s3);color:var(--ink-2);flex:none}
.pd-stat__ic .tk-ic{width:20px;height:20px}
.pd-stat--ok .pd-stat__ic{background:var(--ok-soft);color:var(--ok)}
.pd-stat--accent .pd-stat__ic{background:var(--accent-soft);color:var(--accent)}
.pd-stat b{display:block;font-size:var(--fs-5);font-weight:800;line-height:1.25}
.pd-stat span{font-size:var(--fs-1);color:var(--ink-3)}
.pd-stat small{margin-inline-start:6px;font-size:var(--fs-1);font-weight:600;color:var(--accent)}
a.pd-stat{transition:background .15s}
a.pd-stat:hover{background:var(--s2)}
/* دو ستون: فعالیت و دسته‌ها */
.pd-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--gap);align-items:stretch}
.pd-card{display:flex;flex-direction:column;gap:16px;min-width:0;padding:24px 28px;border-radius:var(--r-lg);background:var(--s1)}
.pd-card__h{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 16px}
.pd-card__h h2{margin:0;font-size:var(--fs-h3);font-weight:800;line-height:1.5}
.pd-card__sub{font-size:var(--fs-1);color:var(--ink-3)}
.pd-card__f{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}
.pd-card__f .tk-meta{margin-block:0}
.pd-card__f .tk-meta b{color:var(--ink);font-weight:800}
.pd-card__f .tk-ic{color:var(--ink-3)}
/* نمودار ستونی ۱۴ روز: ستون امروز پررنگ؛ عدد روی هر ستون و روز شمسی زیر آن */
.pd-chart{position:relative}
.pd-bars{list-style:none;margin:0;padding:18px 0 0;display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:6px;height:190px}
.pd-bar{display:flex;flex-direction:column;gap:8px;min-width:0;height:100%}
.pd-bar__col{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;background:linear-gradient(var(--line),var(--line)) bottom/100% 2px no-repeat}
.pd-bar__col i{display:block;width:100%;min-height:6px;border-radius:6px 6px 2px 2px;background:color-mix(in srgb,var(--accent-ui) 55%,var(--s1))}
.pd-bar.is-today .pd-bar__col i{background:var(--accent-ui)}
.pd-bar__v{text-align:center;font-size:11px;font-weight:800;color:var(--ink-2);line-height:1.2;white-space:nowrap}
.pd-bar__d{font-size:11px;line-height:1;color:var(--ink-3);text-align:center}
.pd-bar.is-today .pd-bar__d{color:var(--ink);font-weight:800}
.pd-chart.is-empty .pd-bar__col{opacity:.55}
.pd-chart__empty{position:absolute;inset:0 0 24px;display:grid;place-items:center;margin:0;padding:0 24px;font-size:var(--fs-2);line-height:1.8;color:var(--ink-2);text-align:center}
/* پیشرفت دسته‌ها: نوار سبز با عدد */
.pd-cats{list-style:none;margin:0 -10px;padding:0;display:flex;flex-direction:column}
.pd-cats li+li{border-top:1px solid var(--line)}
.pd-cat{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:12px 10px;border-radius:var(--r);color:inherit;transition:background .15s}
.pd-cat:hover{background:var(--s2)}
.pd-cat__n{font-size:var(--fs-2);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pd-cat__v{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.pd-cat__v b{color:var(--ink);font-weight:800}
.pd-cat__bar{grid-column:1/-1}
/* تلاش‌های اخیر: هر ردیف یک پیوند */
.pd-list{list-style:none;margin:0 -12px;padding:0;display:flex;flex-direction:column}
.pd-list li+li{border-top:1px solid var(--line)}
.pd-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px 16px;min-height:64px;padding:10px 12px;border-radius:var(--r);color:inherit;transition:background .15s}
.pd-row:hover{background:var(--s2)}
.pd-row__main{display:flex;flex-direction:column;gap:2px;min-width:0}
.pd-row__t{font-size:var(--fs-2);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pd-row .tk-meta b{color:var(--ink);font-weight:800}
.pd-row__go{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;min-width:76px;font-size:var(--fs-1);font-weight:600;color:var(--accent)}
.pd-row__arrow{width:15px;height:15px;transform:scaleX(-1)}
/* نشان‌ها: گرفته‌شده‌ها طلایی (تنها جای زرد)، بقیه کم‌رنگ با میزان پیشرفت */
.pd-badges{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px 32px}
.pd-badge{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:start}
.pd-badge__ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--s3);color:var(--ink-3)}
.pd-badge__ic .tk-ic{width:20px;height:20px}
.pd-badge.is-earned .pd-badge__ic{background:var(--gold);color:var(--gold-ink)}
.pd-badge__t{display:flex;flex-direction:column;gap:3px;min-width:0}
.pd-badge__t b{font-size:var(--fs-2);font-weight:800;color:var(--ink-2);line-height:1.5}
.pd-badge.is-earned .pd-badge__t b{color:var(--ink)}
.pd-badge__t>span:not(.lab-progress){font-size:var(--fs-1);color:var(--ink-3);line-height:1.7}
.pd-badge__t small{font-size:12px;color:var(--ink-3);line-height:1.6}
.pd-badge__t small.pd-badge__ok{display:inline-flex;align-items:center;gap:4px;color:var(--ok);font-weight:600}
.pd-badge__ok .tk-ic{width:13px;height:13px}
.pd-badge__bar{height:4px;margin-top:5px;max-width:180px}
.pd-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:0;font-size:var(--fs-2);line-height:1.8;color:var(--ink-2)}
.pd-empty p{margin:0}
.pd-next-badge{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-2);color:var(--ink-2);line-height:1.8}
.pd-next-badge .tk-ic{width:18px;height:18px;color:var(--ink-3);flex:none}
.pd-next-badge b{color:var(--ink);font-weight:800}

/* ---------- داشبورد طراح (ch-049 فاز ۹): فهرست کار، کارنامه، نیاز به توجه، نمودار تلاش/حل، فعالیت ---------- */
.dz{display:flex;flex-direction:column;gap:var(--gap)}
.dz-check{display:flex;flex-direction:column;gap:18px;padding:22px 28px;border-radius:var(--r-lg);background:var(--s1)}
.dz-check[hidden]{display:none}
.dz-check__h{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px}
.dz-check__h>div{flex:1 1 260px;min-width:0}
.dz-check__h h2{margin:0;font-size:var(--fs-h3);font-weight:800;line-height:1.5}
.dz-check__h p{margin:2px 0 0;font-size:var(--fs-1);color:var(--ink-3)}
.dz-check__bar{width:160px;flex:none}
.dz-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 24px}
.dz-steps--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.dz-step{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;align-items:start}
.dz-step__n{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line-2);font-size:var(--fs-1);font-weight:800;color:var(--ink-2)}
.dz-step.is-done .dz-step__n{background:var(--ok-fill);border-color:var(--ok-fill);color:var(--on-ok)}
.dz-step.is-next .dz-step__n{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--on-accent)}
.dz-step__n .tk-ic{width:16px;height:16px}
.dz-step__t{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}
.dz-step__t b{font-size:var(--fs-2);font-weight:800}
.dz-step.is-done .dz-step__t b{color:var(--ink-2)}
.dz-step__t p{margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3)}
.dz-step__t .sk-btn,.dz-step__t .lab-link{margin-top:4px}
.pd-stat--warn .pd-stat__ic{background:var(--warn-soft);color:var(--warn)}
.dz-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--gap);align-items:stretch}
.dz-grid--2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.dz-attn{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.dz-attn__i{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.dz-attn__i:first-child{border-top:0;padding-top:0}
.dz-attn__ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--s3);color:var(--ink-2)}
.dz-attn__ic .tk-ic{width:17px;height:17px}
.dz-attn__i--grade .dz-attn__ic{background:var(--accent-soft);color:var(--accent)}
.dz-attn__i--fix .dz-attn__ic,.dz-attn__i--queue .dz-attn__ic,.dz-attn__i--flag .dz-attn__ic{background:var(--warn-soft);color:var(--warn)}
.dz-attn__i--ready .dz-attn__ic{background:var(--ok-soft);color:var(--ok)}
.dz-attn__t{min-width:0}
.dz-attn__t b{font-size:var(--fs-2);font-weight:800}
.dz-attn__t .lab-tag{margin-inline-start:6px;height:22px;font-size:12px}
.dz-attn__t p{margin:2px 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-2)}
.dz-clear{display:flex;align-items:center;gap:10px;margin:0;font-size:var(--fs-2);color:var(--ink-2);line-height:1.8}
.dz-clear .tk-ic{width:26px;height:26px;padding:5px;border-radius:50%;background:var(--ok-soft);color:var(--ok);flex:none}
.dz-rate{display:flex;align-items:center;gap:16px}
.dz-rate>b{font-size:var(--fs-5);font-weight:800;line-height:1}
.dz-rate>div{flex:1;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-1);color:var(--ink-3)}
.dz-rate .lab-progress{max-width:260px}
.dz-bars{height:170px}
.pd-bar__col.dz-bar__pair{flex-direction:row;align-items:flex-end;justify-content:center;gap:2px}
.dz-bar__pair i{flex:1;max-width:10px;min-height:0;border-radius:4px 4px 1px 1px}
.dz-bar__pair .dz-bar__t{background:color-mix(in srgb,var(--accent-ui) 60%,var(--s1))}
.pd-bar.is-today .dz-bar__pair .dz-bar__t{background:var(--accent-ui)}
.dz-bar__pair .dz-bar__s{background:var(--ok-fill)}
.dz-legend{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;font-size:var(--fs-1);color:var(--ink-2)}
.dz-legend span{display:inline-flex;align-items:center;gap:6px}
.dz-dot{display:inline-block;width:10px;height:10px;border-radius:3px}
.dz-dot--t{background:color-mix(in srgb,var(--accent-ui) 60%,var(--s1))}
.dz-dot--s{background:var(--ok-fill)}
.dz-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.dz-feed__i{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid var(--line);font-size:var(--fs-2)}
.dz-feed__i:first-child{border-top:0;padding-top:0}
.dz-feed__ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--s3);color:var(--ink-2)}
.dz-feed__ic .tk-ic{width:14px;height:14px}
.dz-feed__i--solve .dz-feed__ic{background:var(--ok-soft);color:var(--ok)}
.dz-feed__i p{margin:0;line-height:1.8;min-width:0}
.dz-feed__i p b{font-weight:800}
.dz-feed__i time{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.dz-row{grid-template-columns:minmax(0,1fr) auto}

/* ---------- داشبورد مدیر (ch-049 فاز ۱۰) ---------- */
.dz>.ch-worker{margin:0}
.ad-int{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.ad-int .ch-donutwrap{flex:none}
.ad-int__dl{margin:0;display:flex;flex-direction:column;gap:6px;min-width:160px}
.ad-int__dl>div{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:var(--fs-2)}
.ad-int__dl dt{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2)}
.ad-int__dl dd{margin:0;font-weight:800}
.ad-dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ink-3)}
.ad-dot--ok{background:var(--ok-ui)}
.ad-dot--warn{background:var(--warn)}
.ad-dot--high{background:var(--danger)}
.ad-sub{margin-top:8px;padding-top:14px;border-top:1px solid var(--line)}
.ad-sub h3{margin:0;font-size:var(--fs-2);font-weight:700}
.ad-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-3)}
.ad-link{display:flex;align-items:center;gap:12px;min-height:64px;padding:12px 16px;border-radius:var(--r-lg);background:var(--s1);color:var(--ink);transition:box-shadow .15s}
.ad-link:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
.ad-link>.tk-ic{width:20px;height:20px;flex:none;color:var(--accent)}
.ad-link span{display:flex;flex-direction:column;gap:2px;min-width:0}
.ad-link b{font-size:var(--fs-2);font-weight:800}
.ad-link small{font-size:var(--fs-1);color:var(--ink-3)}

/* ============================================================================
   پنل طراح، تصحیح، اعتبار — سطح اصلی سفید؛ گروه‌های داخلی فقط با تُنِ خنثی، بدون خط دور
   ============================================================================ */
.chd{display:flex;flex-direction:column;gap:var(--gap);max-width:1120px;margin:0 auto;width:100%}
.chd--narrow,.chd--wizard{max-width:860px}
.chd-split{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--gap);align-items:start;width:100%}
.chd-main{min-width:0;width:100%;display:flex;flex-direction:column;gap:var(--gap)}
.chd-main>*,.chd-main form.skb{width:100%;max-width:none;min-width:0;margin-inline:0;box-sizing:border-box}
.chd-list{position:sticky;top:calc(var(--topbar-h) + 16px);min-width:0}

/* سربرگ ویرایشگر */
.chh-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);flex-wrap:wrap;padding:20px 24px;background:var(--s1);border-radius:var(--r-lg)}
.chh-head__t{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.chh-head__t h1{margin:0;font-size:var(--fs-h3);line-height:1.5;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.chh-head__t small{display:block;color:var(--ink-3);font-size:var(--fs-1);line-height:1.9;margin-top:2px}
.chh-head__t small.tk-meta{display:flex}
.chh-head__p{display:flex;align-items:center;gap:12px;min-width:220px}
.chh-head__p .ch-progress{flex:1;min-width:120px}
.chh-head__p b{font-size:var(--fs-1);white-space:nowrap;color:var(--ink-2);font-weight:600}
.chh-head__acts{display:flex;gap:8px;flex-wrap:wrap}

/* فهرست قدم‌ها */
.sks-list{display:flex;flex-direction:column;gap:2px;padding:8px;background:var(--s1);border-radius:var(--r-lg)}
.sks-list__head{display:flex;justify-content:space-between;align-items:center;padding:8px 10px 10px;font-size:var(--fs-1)}
.sks-list__head strong{font-size:var(--fs-2);font-weight:800}
.sks-list__head span{color:var(--ink-3);font-size:var(--fs-1)}
.sks-item{display:flex;align-items:center;gap:12px;width:100%;text-align:start;border:0;background:transparent;border-radius:var(--r);padding:10px;cursor:pointer;font:inherit;color:inherit;text-decoration:none;transition:background .14s}
.sks-item:hover{background:var(--s2)}
.sks-item.is-active{background:var(--accent-soft)}
.sks-item__n{width:28px;height:28px;border-radius:50%;background:var(--s3);color:var(--ink-2);display:grid;place-items:center;font-size:var(--fs-1);font-weight:800;flex-shrink:0}
.sks-item.is-ok .sks-item__n{background:var(--ok-fill);color:var(--on-ok)}
.sks-item.is-active .sks-item__n{background:var(--accent-bg);color:var(--on-accent)}
.sks-item__main{display:flex;flex-direction:column;gap:2px;min-width:0}
.sks-item__t{font-size:var(--fs-2);font-weight:600}
.sks-item.is-active .sks-item__t{font-weight:800}
.sks-item__s{font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.sks-item__s.ok{color:var(--ok)}
.sks-item.is-active .sks-item__s.ok{color:var(--ok-ink)}
.sks-item__s.todo{color:var(--danger)}
.sks-item__s.opt{color:var(--ink-3)}

/* کارت بخش (یک سطح) */
.chh-card{background:var(--s1);border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;gap:var(--gap);box-sizing:border-box;width:100%;border:0}
.chh-card__head{display:flex;align-items:center;gap:10px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.chh-card__head>div{min-width:0}
.chh-card__head b{display:block;font-size:var(--fs-3);font-weight:800}
.chh-card__head small{display:block;color:var(--ink-3);font-size:var(--fs-1);margin-top:2px;line-height:1.8}
.chh-card__head .ch-info{margin-inline-start:2px}
.chh-card__head .sk-btn{margin-inline-start:auto}
.chh-card>.chh-actions:last-child{border-top:1px solid var(--line);padding-top:16px}
.chh-num{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--s3);color:var(--ink-2);font-weight:800;font-size:var(--fs-1)}
.chh-num--sm{width:24px;height:24px;font-size:var(--fs-1)}
.chh-sep{display:flex;flex-direction:column;gap:2px;margin:var(--gap-lg) 0 var(--gap);padding-top:var(--gap);border-top:1px solid var(--line)}
.chh-sep:first-child,.chh-card>.chh-sep:first-of-type{margin-top:0;padding-top:0;border-top:0}
.chh-sep b{font-size:var(--fs-3);font-weight:800}
.chh-sep small{color:var(--ink-3);font-size:var(--fs-1);line-height:1.8}
.chh-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding-top:var(--gap)}
.chh-actions form{display:inline}
.chh-actions--tight{margin:0;padding-top:0}
.chh-actions--progressive{border-top:1px solid var(--line);padding-top:16px}
.chh-note{padding:14px 16px;border-radius:var(--r);background:var(--s2);font-size:var(--fs-1);line-height:2}
.chh-note--pick p{margin:0;font-size:var(--fs-1);line-height:1.9}
.chh-note--pick p+p{margin-top:4px}
.chh-note--exam{margin:4px 0 var(--gap);display:flex;flex-direction:column;gap:4px}
.chh-note--exam b{font-size:var(--fs-2);font-weight:800}
.chh-note--exam p{margin:0;color:var(--ink-2);max-width:var(--measure)}
.chh-problems{display:flex;flex-direction:column;gap:6px;padding:14px 16px;line-height:2}
.chh-problems__t{font-size:var(--fs-2)}
.chh-problem{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--r);background:var(--danger-soft);color:var(--ink);font-size:var(--fs-2);line-height:1.9}
.chh-problem::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--danger);flex:none;margin-top:10px}
.chh-ok{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;background:var(--ok-soft);border-radius:var(--r);font-size:var(--fs-2);line-height:1.9;color:var(--ink)}
.chh-hint{margin:0;font-size:var(--fs-1);color:var(--ink-3);line-height:1.8}
.chh-url{margin:-8px 0 14px}
.chh-url bdi{color:var(--ink-2);word-break:break-all}
.chh-url__fix{font-size:var(--fs-1);margin-inline-start:4px}
.chh-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;padding:4px 0;border-block:1px solid var(--line)}
.chh-summary>div{padding:12px 18px;display:flex;flex-direction:column;gap:2px}
.chh-summary>div+div{border-inline-start:1px solid var(--line)}
.chh-summary span{font-size:var(--fs-1);color:var(--ink-3)}
.chh-summary b{font-size:var(--fs-3);font-weight:800}

/* فرم‌ها (skb / tk-field) */
.skb{display:flex;flex-direction:column;gap:var(--gap)}
.tk-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--gap)}
.skb .tk-field:last-child,.ch-fields .tk-field,.chh-hintrow .tk-field,.chh-upload .tk-field{margin-bottom:0}
.tk-field>label,.chh-label label{font-size:var(--fs-2);font-weight:600;color:var(--ink)}
.skb .tk-field .sk-input,.skb .tk-field select,.skb .tk-field textarea,.skb .tk-field input[type=number],.skb .tk-field input[type=text]{width:100%;min-width:0;box-sizing:border-box}
.tk-field textarea{line-height:1.9;padding:12px 14px}
.tk-field .help{font-size:var(--fs-1);color:var(--ink-3);line-height:1.8}
.tk-field .error,.chh-fieldfoot .error{font-size:var(--fs-1);color:var(--danger);font-weight:600}
.tk-field.has-error>label,.tk-field.has-error .chh-label label{color:var(--danger)}
.tk-field.has-error .sk-input{border-color:var(--danger)}
.skm-formerr{padding:12px 16px;border-radius:var(--r);background:var(--danger-soft);color:var(--ink);font-size:var(--fs-2);margin-bottom:var(--gap)}
.chh-label{display:flex;align-items:center;gap:6px;margin-bottom:2px}
.chh-fieldfoot{display:flex;align-items:center;gap:8px;margin-top:4px}
.chh-fieldfoot:empty{display:none}
.chh-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
.chh-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}
.chh-template{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:8px;align-items:center;padding:12px 14px;border-radius:var(--r);background:var(--s2)}
.chh-template label{font-size:var(--fs-1);font-weight:600;white-space:nowrap}
.chh-template .sk-input{height:var(--ctl);font-size:var(--fs-1)}
.chh-sum{font-size:var(--fs-1);font-weight:600;color:var(--ink-2)}
.chh-sum.is-ok{color:var(--ok)}
.chh-files{display:flex;flex-direction:column;gap:12px;margin-bottom:var(--gap)}
.chh-filelist{display:flex;flex-wrap:wrap;gap:8px}
.chh-file{display:inline-flex;align-items:center;gap:8px}
.chh-file__x{border:0;background:transparent;color:var(--ink-3);font-size:var(--fs-2);line-height:1;cursor:pointer;padding:2px 4px;border-radius:4px}
.chh-file__x:hover{color:var(--danger)}
.chh-attach{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}
.chh-hintrow{display:grid;grid-template-columns:72px minmax(0,1fr) 100px;gap:12px;margin-bottom:10px}
.chh-hintrow.has-del{grid-template-columns:72px minmax(0,1fr) 100px 56px}
.chh-weights{display:flex;flex-direction:column;gap:12px;padding:16px 0 0;border-top:1px solid var(--line)}
.chh-weights>b{font-size:var(--fs-2);font-weight:800}
.chh-upload{position:relative;display:flex;flex-direction:column;gap:12px;padding:18px 20px;border-radius:var(--r);background:var(--s2)}
.chh-upload__h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.chh-upload__h b{font-size:var(--fs-2);font-weight:800}
.chh-upload__h small{font-size:var(--fs-1);color:var(--ink-3)}
.chh-upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.chh-upload .chh-actions{padding-top:0;border-top:0}
.chh-upload .sk-btn--primary{height:var(--ctl);padding:0 22px}
.chh-hiddenform{display:none}

/* فهرست مرحله‌ها در ویرایشگر: ردیف با خط باریک، نه جعبه */
.chh-tasks{display:flex;flex-direction:column;gap:0}
.chh-task{display:flex;justify-content:space-between;gap:var(--gap);align-items:center;padding:14px 4px;border-bottom:1px solid var(--line);background:transparent;border-radius:0}
.chh-task:last-child{border-bottom:0}
.chh-task__main{display:flex;gap:12px;align-items:center;min-width:0}
.chh-task__main b{display:block;font-size:var(--fs-2);font-weight:800}
.chh-task__acts{display:flex;gap:6px;align-items:center;flex-shrink:0;flex-wrap:wrap}
.chh-task__acts form{display:inline}
.chh-meta{margin-top:4px;font-size:var(--fs-1);color:var(--ink-3)}

/* نمونه‌ها و انتخاب نوع مرحله */
.chh-samples{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--gap)}
.chh-sample{display:flex;flex-direction:column;gap:8px;padding:20px;border-radius:var(--r-lg);background:var(--s1)}
.chh-sample__h b{display:block;font-size:var(--fs-3);font-weight:800}
.chh-sample__h span{font-size:var(--fs-1);color:var(--ink-3)}
.chh-sample p{margin:0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.chh-sample__use{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:8px}
.chh-sample__use .sk-input{min-width:0;flex:1;height:var(--ctl);font-size:var(--fs-1)}
.chh-dl{margin:8px 0 0;display:grid;grid-template-columns:96px minmax(0,1fr);gap:6px 12px;font-size:var(--fs-1)}
.chh-dl dt{font-weight:600;color:var(--ink-2)}
.chh-dl dd{margin:0;line-height:1.9}
.chh-dl pre{margin:0;white-space:pre-wrap;font-size:var(--fs-1);padding:8px 10px;border-radius:var(--r);background:var(--s2)}
.chh-q{display:flex;flex-direction:column;gap:var(--gap);margin-bottom:var(--gap-lg)}
.chh-q__h{display:flex;flex-direction:column;gap:4px;margin-bottom:4px}
.chh-q__h b{font-size:var(--fs-3);font-weight:800}
.chh-q__h small{font-size:var(--fs-1);color:var(--ink-3);line-height:1.9}
.chh-q__h--2{margin-top:4px}
.chh-qgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--gap)}
.ch-typegrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--gap)}
.chh-qcard,.ch-type{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;border:0;border-radius:var(--r-lg);background:var(--s2);text-align:start;cursor:pointer;font:inherit;color:var(--ink);line-height:1.8;min-width:0;transition:background .15s,box-shadow .15s}
.chh-qcard svg,.ch-type svg{width:22px;height:22px;color:var(--ink-3);margin-bottom:2px}
.chh-qcard b,.ch-type b{font-size:var(--fs-2);font-weight:800}
.chh-qcard small,.ch-type small{font-size:var(--fs-1);color:var(--ink-2);line-height:1.8}
.chh-qcard:hover,.ch-type:hover{background:var(--s3)}
.chh-qcard.is-active,.ch-type.is-active{background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--accent-ui)}
.chh-qcard.is-active svg,.ch-type.is-active svg{color:var(--accent-ink)}
.chh-qcard:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ch-type input{display:none}
.ch-type.is-soon{opacity:.45;pointer-events:none}
.chh-picked{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 18px;border-radius:var(--r-lg);background:var(--accent-soft)}
.chh-picked small{display:block;font-size:var(--fs-1);color:var(--ink-2)}
.chh-picked b{font-size:var(--fs-3);font-weight:800}
.chh-back{margin-top:10px}
.chh-samplecards{display:flex;flex-direction:column;gap:12px;margin-top:var(--gap)}
.chh-samplecards summary{padding:10px 0}
.chh-samplegrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--gap);margin-top:var(--gap)}
.chh-samplecard{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--r-lg);background:var(--s2);text-decoration:none;color:var(--ink);line-height:1.9;transition:background .15s,box-shadow .15s}
.chh-samplecard:hover{background:var(--s3)}
.chh-samplecard b{font-size:var(--fs-2);font-weight:800}
.chh-samplecard p{margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-2)}
.chh-samplecard small{font-size:var(--fs-1);color:var(--ink-3);line-height:1.7}
.tk-samples{display:flex;flex-direction:column;gap:0}
.tk-sample{display:flex;flex-direction:column;gap:6px;padding:14px 0;border-bottom:1px solid var(--line)}
.tk-sample:last-child{border-bottom:0}
.tk-sample b{font-size:var(--fs-2);font-weight:800}
.tk-sample p{margin:0;font-size:var(--fs-1);line-height:1.9;color:var(--ink-2)}
.tk-sample .sk-btn{align-self:flex-start}

/* تنظیمات پیشرفته (تاشو) */
.chh-adv{border-radius:var(--r);background:var(--s2);margin-top:4px}
.chh-adv>summary{cursor:pointer;padding:12px 14px;font-size:var(--fs-2);font-weight:800;list-style:none;display:flex;align-items:center;gap:8px;border-radius:var(--r)}
.chh-adv>summary::-webkit-details-marker{display:none}
.chh-adv>summary::before{content:"";width:0;height:0;border-inline-start:6px solid var(--ink-3);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .12s}
.chh-adv[open]>summary::before{transform:rotate(-90deg)}
.chh-adv>summary small{font-weight:400;color:var(--ink-3);font-size:var(--fs-1)}
.chh-adv__body{padding:4px 14px 14px;display:flex;flex-direction:column;gap:12px}
.chh-adv__body.chh-grid2{display:grid}

/* ویرایشگرهای دیداری (جدول، سناریو، نقطه‌ها) */
.chv{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:var(--r);background:var(--s2)}
.chv-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.chv-head label{font-size:var(--fs-1);color:var(--ink-2);font-weight:600}
.chv-head .sk-input{height:var(--ctl);flex:1;min-width:160px}
.chv-table{display:flex;flex-direction:column;gap:6px}
.chv-tr{display:flex;gap:6px;align-items:center}
.chv-tr .sk-input{height:var(--ctl);width:100%}
.chv-acts{flex:0 0 92px;display:flex;gap:2px;justify-content:flex-end}
.chv-acts .sk-btn{height:var(--ctl);padding:0 8px}
.chv-nodes{display:flex;flex-direction:column;gap:12px}
.chv-node{padding:12px 14px;border-radius:var(--r);background:var(--s1);display:flex;flex-direction:column;gap:8px}
.chv-opts{display:flex;flex-direction:column;gap:6px}
.chv-opt{display:grid;grid-template-columns:minmax(0,1fr) 150px 70px 36px;gap:6px;align-items:center}
.chv-opt .sk-input{height:var(--ctl)}
.chv-box{position:absolute;border:2px solid var(--accent-ui);background:color-mix(in srgb,var(--accent-ui) 18%,transparent);color:var(--ink);font-weight:800;font-size:var(--fs-1);display:grid;place-items:center;pointer-events:none}
.chv-box--ghost{border-style:dashed}
.chv-regions{display:flex;flex-direction:column;gap:6px}
.chv-region{display:grid;grid-template-columns:26px minmax(0,1fr) 110px 36px;gap:6px;align-items:center}
.chv-region .sk-input{height:var(--ctl)}
.ch-rows{display:flex;flex-direction:column;gap:8px}
.ch-row{display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px;border-radius:var(--r);background:var(--s2);border:0}
.ch-row--single{grid-template-columns:minmax(0,1fr)}
.ch-row__grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:8px}
.ch-row__grid textarea{grid-column:1/-1;min-height:64px}
.ch-row .sk-input{width:100%}

/* پراکنده */
.ch-resources{gap:12px}
.ch-resources h3{margin:0;font-size:var(--fs-2)}
.prompt--tight{margin:0!important}
.ch-w-md{min-width:150px}
.ch-w-sm{width:80px}
.ch-fields.ch-fields--1{grid-template-columns:minmax(0,1fr)}
.ch-submission__text--flush{margin:0}
.ch-hero__aside--stack .ch-stat{display:flex;flex-direction:column;gap:6px;padding:14px 16px}
.ch-hero__aside--stack .ch-stat b{font-size:var(--fs-4)}
.ch-hero--attempt .ch-hero__meta{gap:8px}
.ch-recording{border-color:var(--line-2)}
.ch-int-list{margin:8px 0 0;padding-inline-start:18px;font-size:var(--fs-1);line-height:2;color:var(--ink-2)}
.ch-int-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:0;border-radius:var(--r);background:var(--s2);padding:4px 0}
.ch-int-grid>div{padding:8px 14px;font-size:var(--fs-1)}
.ch-int-grid>div+div{border-inline-start:1px solid var(--line)}
.ch-int-grid b{display:block;font-size:var(--fs-2);margin-bottom:2px;font-weight:800}

/* ---------- کیت لابراتوار تعاملی HTML (صفحهٔ راهنما + دانلود) ---------- */
.lk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lk-advanced{margin-top:14px}.lk-advanced>summary{cursor:pointer;font-weight:700;color:var(--ink-2)}.lk-advanced .lk-grid{margin-top:10px}
.lk-file{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-lg);background:var(--s2);color:inherit;text-decoration:none;transition:background .15s}
.lk-file:hover{background:var(--s3)}
.lk-file.is-missing{opacity:.55;pointer-events:none}
.lk-file__icon{flex:0 0 40px;height:40px;border-radius:12px;background:var(--s1);display:grid;place-items:center;color:var(--ink-2)}
.lk-file__icon svg{width:20px;height:20px}
.lk-file__t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lk-file__t b{font-size:var(--fs-2);font-weight:800}
.lk-file__t small{font-size:var(--fs-1);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0}
.lk-file__dl{flex:0 0 auto;font-size:var(--fs-1);font-weight:600;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;padding:5px 12px}
.lk-body{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--gap);align-items:start}
.lk-toc{position:sticky;top:calc(var(--topbar-h) + 16px);gap:8px;padding:16px}
.lk-toc ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.lk-toc a{display:block;overflow-wrap:anywhere;padding:6px 10px;border-radius:8px;font-size:var(--fs-1);color:var(--ink-2);text-decoration:none;line-height:1.6}
.lk-toc a:hover{background:var(--s2);color:var(--ink)}
.lk-toc__l3 a{padding-inline-start:22px;color:var(--ink-3)}
.lk-guide{gap:10px;padding:24px 28px}
.lk-guide h1{margin:0 0 6px;font-size:var(--fs-4);line-height:1.5;font-weight:800}
.lk-guide h2{margin:24px 0 4px;padding-top:16px;border-top:1px solid var(--line);font-size:var(--fs-h3);font-weight:800}
.lk-guide h3{margin:16px 0 0;font-size:var(--fs-3);font-weight:800}
.lk-guide h4{margin:10px 0 0;font-size:var(--fs-2);color:var(--ink-2);font-weight:800}
.lk-guide p,.lk-guide li{font-size:var(--fs-2);line-height:2;color:var(--ink-2)}
.lk-guide ol,.lk-guide ul{margin:2px 0;padding-inline-start:22px;display:flex;flex-direction:column;gap:4px}
.lk-guide li>ul,.lk-guide li>ol{margin-top:4px}
.lk-guide code{font-family:var(--mono);font-size:12.5px;background:var(--s2);border-radius:6px;padding:1px 6px;unicode-bidi:isolate;overflow-wrap:anywhere}
.lk-guide .lk-pre{margin:6px 0}
.lk-guide .lk-pre code{background:none;border:0;padding:0;font-size:12.5px}
.lk-guide .lk-table{font-size:var(--fs-1)}
.lk-guide .lk-table td,.lk-guide .lk-table th{padding:8px 10px;line-height:1.8}
.lk-guide hr{border:0;border-top:1px solid var(--line);margin:8px 0}
.lk-quote{margin:6px 0;padding:12px 16px;border-inline-start:3px solid var(--accent-ui);background:var(--s2);border-radius:var(--r)}
.lk-quote p{margin:0}
.lk-guide a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.lk-guide li input[type=checkbox]{display:none}
.chh-kit{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:14px 16px;border-radius:var(--r);background:var(--s2)}
.chh-kit__t{flex:1 1 260px;min-width:0;font-size:var(--fs-1);color:var(--ink-2);line-height:1.8}
.chh-kit__t b{display:block;color:var(--ink);font-size:var(--fs-2);font-weight:800}
.chh-kit__acts{display:flex;flex-wrap:wrap;gap:6px}

/* ch-056: گزارش مشکل مرحله‌های لابراتوار (فرم مرحلهٔ طراح) */
.chh-reports{margin-top:14px;padding:14px 16px;border-radius:var(--r);background:var(--s2)}
.chh-reports__h{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.chh-reports__h b{font-size:var(--fs-2);font-weight:800}
.chh-reports__h small{font-size:var(--fs-1);line-height:1.8;color:var(--ink-2);max-width:var(--measure)}
.chh-reports__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.chh-report{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:start;padding:10px 12px;border-radius:var(--r);background:var(--s1)}
.chh-report.is-done{opacity:.65}
.chh-report__t{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:var(--fs-1);color:var(--ink-3)}
.chh-report__t b{font-size:var(--fs-2);color:var(--ink)}
.chh-report__x{grid-column:1;margin:0;font-size:var(--fs-2);line-height:1.85;color:var(--ink-2)}
.chh-report__b{grid-column:2;grid-row:1/span 2;align-self:center}
/* ویرایشگر لابراتوار HTML */
.chv-lab{display:flex;flex-direction:column;gap:10px}
.chv-lab__sec{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-top:6px;font-size:var(--fs-2)}
.chv-lab__num{flex:0 0 96px!important;min-width:0!important}
.chv-lab .chh-adv__body.chv-head{gap:8px 12px}
.chv-lab__step{border-radius:var(--r);padding:12px 14px 14px;background:var(--s1);display:flex;flex-direction:column;gap:8px}
.chv-lab__l{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px}
.chv-lab__n{flex:0 0 auto;align-self:flex-end;height:var(--ctl);min-width:28px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-weight:800;font-size:var(--fs-1)}
.chv-lab__f{display:flex;flex-direction:column;gap:3px;min-width:0}
.chv-lab__f>label{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.chv-lab__f .sk-input{height:var(--ctl);width:100%}
.chv-lab__f--id{flex:0 0 150px}
.chv-lab__f--kind{flex:0 0 165px}
.chv-lab__f--tol{flex:0 0 96px}
.chv-lab__f--grow{flex:1 1 150px}
.chv-lab__f--grow2{flex:2 1 220px}
.chv-lab__step .chv-acts{align-self:flex-end;flex:0 0 auto}
.chv-lab__req{color:var(--danger);font-style:normal}
.chv-lab__tier .chv-lab__tw,.chv-lab__tier .chv-acts{flex:0 0 auto!important}
.chv-lab__tier .chv-lab__tin{flex:0 0 110px!important}
.chv-lab__tier .chv-acts{flex-basis:auto}
.chv-lab__pts{flex:1 1 auto!important;font-size:var(--fs-1);white-space:nowrap}
/* ch-056: حالت قبولی، کف، رد کردن، وزن */
.chv-lab__modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.chv-lab__mode{position:relative;display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--r);border:1px solid var(--line);background:var(--s1);cursor:pointer;transition:border-color .15s var(--ease),background .15s var(--ease)}
.chv-lab__mode:hover{border-color:var(--ink-3)}
.chv-lab__mode.is-on{border-color:var(--accent-ui);background:var(--accent-soft)}
.chv-lab__mode input{margin-top:5px;flex:none;accent-color:var(--accent-ui)}
.chv-lab__mode:focus-within{outline:2px solid var(--focus);outline-offset:2px}
.chv-lab__mode__t{display:flex;flex-direction:column;gap:3px;min-width:0}
.chv-lab__mode__t b{font-size:var(--fs-2);font-weight:800;color:var(--ink)}
.chv-lab__mode__t small{font-size:var(--fs-1);line-height:1.75;color:var(--ink-2)}
.chv-lab__floor,.chv-lab__skip{align-items:center}
.chv-lab__floor>span,.chv-lab__skip>span{flex:1 1 240px;font-size:var(--fs-1);line-height:1.75}
.chv-lab__skip .chh-checkrow{flex:1 1 100%}
.chv-lab__f--w{flex:0 0 72px}
.chv-lab__up{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.chv-lab__up .sk-btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.chv-lab__up .sk-btn svg{width:16px;height:16px}
.chv-lab__up .sk-btn.is-busy{opacity:.6;pointer-events:none}
.chv-lab__up .ch-muted{font-size:var(--fs-1);line-height:1.8}
/* ch-069: وضعیت اتصال فایل انتخاب‌شده به تست‌کاو (زیر انتخاب فایل) */
.chv-lab__conn{margin:8px 0 0;padding:9px 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--s1);font-size:var(--fs-1);line-height:1.8;color:var(--ink-2)}
.chv-lab__conn b{font-weight:800;color:var(--ink)}
.chv-lab__conn__ic{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:12px;font-weight:900;vertical-align:-3px;margin-inline-end:2px}
.chv-lab__conn.is-ok{border-color:color-mix(in srgb,var(--ok-ui) 40%,var(--line));background:var(--ok-soft)}.chv-lab__conn.is-ok .chv-lab__conn__ic{background:var(--ok-fill);color:var(--on-ok)}
.chv-lab__conn.is-warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--line));background:var(--warn-soft)}.chv-lab__conn.is-warn .chv-lab__conn__ic{background:var(--warn);color:#fff}
.chv-lab__conn.is-bad{border-color:color-mix(in srgb,var(--danger) 45%,var(--line));background:var(--danger-soft)}.chv-lab__conn.is-bad .chv-lab__conn__ic{background:var(--danger-bg);color:var(--on-danger)}
.chv-lab__conn.is-bad b{color:var(--danger-ink)}
/* ch-071: داخل div (نه p) — خط اتصال + فهرست «داخل تست‌کاو کار نمی‌کند» */
.chv-lab__conn>p{margin:0}
.chv-lab__issues-h{margin-top:8px!important;padding-top:8px;border-top:1px dashed color-mix(in srgb,var(--warn) 45%,var(--line))}
.chv-lab__issues-h b{color:var(--ink)!important}
.chv-lab__conn__ic.is-warn{background:var(--warn);color:#fff}
.chv-lab__conn .chv-lab__conn__ic.is-ok{background:var(--ok-fill);color:var(--on-ok)}.chv-lab__conn .chv-lab__conn__ic.is-bad{background:var(--danger-bg);color:var(--on-danger)}
.chv-lab__issues code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;font-variant-numeric:normal;unicode-bidi:isolate;direction:ltr;padding:0 4px;border-radius:4px;background:var(--s2);color:var(--ink);overflow-wrap:anywhere}
.chv-lab__issues{margin:4px 0 0;padding-inline-start:20px;display:flex;flex-direction:column;gap:4px}
.chv-lab__issues li{line-height:1.85}
.chv-lab__issues li b{color:var(--ink)!important}
.ch-tag-lab{display:inline-flex;align-items:center;height:20px;padding:0 8px;margin-inline-start:6px;border-radius:999px;background:var(--accent-soft);color:var(--accent-ink);font-size:11px;font-weight:800;vertical-align:middle}

/* ---------- فهرست چالش‌های طراح (ch-049 فاز ۹) ---------- */
.dl{display:flex;flex-direction:column;gap:12px}
.dl-count{margin:0;display:flex;align-items:center;gap:12px;font-size:var(--fs-1);color:var(--ink-3)}
.dl-wrap{border-radius:var(--r-lg);background:var(--s1)}
.dl-table{background:transparent}
.dl-table td{height:auto;padding:12px 16px}
.dl-table th.dl-num,.dl-table td.dl-num{text-align:center;white-space:nowrap}
.dl-num small{color:var(--ink-3);font-size:var(--fs-1)}
.dl-main{min-width:220px}
.dl-title{display:block;font-size:var(--fs-2);font-weight:800;line-height:1.6;color:var(--ink)}
.dl-title:hover{color:var(--accent)}
.dl-main .tk-meta{margin-top:2px}
.dl-state{white-space:nowrap}
.dl-why{display:block;margin-top:4px;max-width:230px;font-size:12px;line-height:1.6;color:var(--warn-ink);white-space:normal}
.dl-date{white-space:nowrap;font-size:var(--fs-1);color:var(--ink-2)}
.dl-acts{white-space:nowrap}
.dl-acts>*{vertical-align:middle}
.dl-acts>*+*{margin-inline-start:4px}
.dl-empty{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:28px;border-radius:var(--r-lg);background:var(--s1);font-size:var(--fs-2);color:var(--ink-2)}
.dl-empty p{margin:0;line-height:1.9}
.dl-empty b{font-size:var(--fs-h3);font-weight:800;color:var(--ink)}

/* ---------- قواعد شرکت و نمایش نتایج (ch-049 فاز ۹): یک گروه با توضیح کوتاه و پیش‌نمایش آنچه شرکت‌کننده می‌بیند ---------- */
.chh-group{margin:var(--gap-lg) 0 var(--gap);padding:var(--gap) 0 0;border:0;border-top:1px solid var(--line);min-width:0;display:flex;flex-direction:column;gap:4px}
.chh-group__h{float:none;width:100%;padding:0;margin:0}
.chh-group__h b{font-size:var(--fs-3);font-weight:800}
.chh-group__note{margin:2px 0 8px;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3);max-width:var(--measure)}
.chh-rule{display:flex;flex-direction:column;gap:10px;padding:14px 0;border-top:1px dashed var(--line)}
.chh-rule:first-of-type{border-top:0;padding-top:4px}
.chh-rule__h b{display:block;font-size:var(--fs-2);font-weight:800}
.chh-rule__h p{margin:2px 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-2);max-width:var(--measure)}
.chh-rule .tk-field{margin-bottom:0}
.chh-rules-preview{margin-top:10px;padding:16px 18px;border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:12px}
.chh-rules-preview>b{font-size:var(--fs-2);font-weight:800}
.chh-rules-preview>b small{font-weight:400;color:var(--ink-3);font-size:var(--fs-1)}
.chh-rules-preview .st-rules{gap:12px}
.chh-rules-preview .st-rules p{font-size:var(--fs-1)}

/* ---------- پیش‌نمایش طراح (ch-049 فاز ۱۰): سرصفحهٔ چسبان، فهرست پرش، نمای شرکت‌کننده + یادداشت طراح، آمادگی انتشار ---------- */
.pv{display:flex;flex-direction:column;gap:12px}
.pv-bar{position:sticky;top:calc(var(--topbar-h) + 8px);z-index:20;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 16px;border-radius:var(--r-lg);background:var(--s1);box-shadow:0 0 0 1px var(--line),0 -10px 0 2px var(--bg)}
.pv-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;row-gap:6px}
.pv-facts li{display:flex;flex-direction:column;min-width:0;padding:0 14px;border-inline-start:1px solid var(--line)}
.pv-facts li:first-child{padding-inline-start:0;border-inline-start:0}
.pv-facts span{font-size:12px;line-height:1.6;color:var(--ink-3)}
.pv-facts b{font-size:var(--fs-1);font-weight:800;line-height:1.6;color:var(--ink)}
.pv-view{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--s3)}
.pv-view__b{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:8px;font-size:var(--fs-1);font-weight:600;color:var(--ink-2)}
.pv-view__b .tk-ic{width:16px;height:16px}
.pv-view__b[aria-pressed="true"]{background:var(--s1);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.pv-note{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-2)}
.pv-note .tk-ic{width:16px;height:16px;flex:none;margin-top:3px;color:var(--ink-3)}
.pv-body{display:grid;grid-template-columns:230px minmax(0,1fr);gap:var(--gap);align-items:start}
.pv-toc{position:sticky;top:calc(var(--topbar-h) + 88px);display:flex;flex-direction:column;gap:4px;max-height:calc(100vh - var(--topbar-h) - 110px);overflow:auto;scrollbar-width:thin}
.pv-toc__h{padding:0 10px 4px;font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.pv-toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.pv-toc a{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:36px;padding:4px 10px;border-radius:var(--r);font-size:var(--fs-1);color:var(--ink-2)}
.pv-toc a:hover{background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
.pv-toc a[aria-current]{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink);font-weight:700}
.pv-toc__n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--line-2);font-size:11px;font-weight:800}
.pv-toc a[aria-current] .pv-toc__n{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--on-accent)}
.pv-toc__t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-toc__warn{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--warn-soft);color:var(--warn-ink);font-size:11px;font-weight:800}
.pv-toc .pv-toc__end{margin-top:6px;font-weight:700;color:var(--ok)}
.pv-toc__end .pv-toc__n{border:0;background:var(--ok-soft);color:var(--ok)}
.pv-toc__end .pv-toc__n .tk-ic{width:14px;height:14px}
.pv-toc .pv-toc__end.is-warn{color:var(--warn-ink)}
.pv-toc__end.is-warn .pv-toc__n{background:var(--warn-soft);color:var(--warn-ink)}
.pv-main{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
.pv-intro{display:flex;flex-direction:column;gap:10px;padding:28px 32px;border-radius:var(--r-lg);background:var(--s1)}
.pv-intro .tk-meta{margin-block:0}
.pv-intro__t{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.4}
.pv-intro__sum{margin:0;font-size:var(--fs-3);line-height:1.8;color:var(--ink-2)}
.pv-intro__d{margin:0;font-size:var(--fs-2);line-height:1.95;color:var(--ink);max-width:var(--measure)}
.pv .pv-steps{gap:var(--gap)}
.pv-step{display:flex;flex-direction:column;min-width:0;border-radius:var(--r-lg);background:var(--s1);scroll-margin-top:calc(var(--topbar-h) + 96px)}
.pv-frame{container-type:inline-size;min-width:0}
.pv.is-mobile .pv-frame{width:min(390px,calc(100% - 32px));margin:20px auto 16px;border-radius:26px;overflow:hidden;box-shadow:0 0 0 1px var(--line-2),0 0 0 8px var(--s3)}
.pv-notes{margin:0 32px;padding-bottom:12px;border-top:1px solid var(--line)}
.pv-notes>summary{list-style:none;cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-height:48px;font-size:var(--fs-2);font-weight:700;color:var(--ink-2)}
.pv-notes>summary::-webkit-details-marker{display:none}
.pv-notes>summary .tk-ic{width:18px;height:18px;color:var(--ink-3)}
.pv-notes>summary small{font-size:var(--fs-1);font-weight:400;color:var(--ink-3)}
.pv-notes>summary::after{content:"";width:7px;height:7px;margin-inline-start:auto;border-inline-end:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);transform:rotate(45deg);transition:transform .15s}
.pv-notes[open]>summary::after{transform:rotate(-135deg)}
.pv-notes>summary:hover{color:var(--ink)}
.pv-notes__b{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.pv-warn{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.pv-warn li{display:flex;gap:8px;font-size:var(--fs-2);line-height:1.8;color:var(--warn-ink)}
.pv-warn li::before{content:"";width:7px;height:7px;margin-top:10px;border-radius:50%;background:var(--warn);flex:none}
.pv-dl{margin:0;align-self:stretch;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 28px}
.pv-dl>div{min-width:0}
.pv-dl dt{font-size:12px;color:var(--ink-3)}
.pv-dl dd{margin:2px 0 0;font-size:var(--fs-2);font-weight:600;line-height:1.8;color:var(--ink);overflow-wrap:anywhere}
.pv-code{align-self:stretch}
.pv-code pre{max-height:340px;white-space:pre-wrap}
.pv-ready{display:flex;flex-direction:column;gap:12px;padding:24px 28px;border-radius:var(--r-lg);background:var(--s1);scroll-margin-top:calc(var(--topbar-h) + 96px)}
.pv-ready h2{margin:0;font-size:var(--fs-h3);font-weight:800}
.pv-ready__lead{margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.pv-check{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pv-check li{display:flex;align-items:flex-start;gap:10px;font-size:var(--fs-2);line-height:1.8}
.pv-check .tk-ic{width:22px;height:22px;flex:none;margin-top:2px;padding:4px;border-radius:50%}
.pv-check .is-ok .tk-ic{background:var(--ok-soft);color:var(--ok)}
.pv-check .is-bad .tk-ic{background:var(--warn-soft);color:var(--warn)}
.pv-check .is-todo .tk-ic{background:var(--s3);color:var(--ink-2)}
.pv-ready__acts{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}

/* ---------- صفحهٔ تصحیح (ch-049 فاز ۱۰) ---------- */
.gr{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--gap);align-items:start}
.gr-sub{display:flex;flex-direction:column;gap:10px;min-width:0;padding:24px 28px 28px;border-radius:var(--r-lg);background:var(--s1)}
.gr-sub>.tk-meta{margin:0 0 4px}
.gr-h{margin:10px 0 0;font-size:var(--fs-1);font-weight:700;color:var(--ink-3)}
.gr-h:first-of-type{margin-top:0}
.gr-prompt{margin:0;font-size:var(--fs-2);line-height:1.95;color:var(--ink-2);max-width:var(--measure)}
.gr-text{font-size:var(--fs-3);line-height:2;color:var(--ink);max-width:var(--measure);white-space:normal;overflow-wrap:anywhere}
.gr-media{display:flex;flex-direction:column;gap:6px}
.gr-media .tk-meta{margin:0}
.gr-file{align-self:flex-start;gap:6px}
.gr-file .tk-ic{width:16px;height:16px}
.gr-history ol{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column}
.gr-history li{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-top:1px solid var(--line);font-size:var(--fs-2);line-height:1.8}
.gr-history li .tk-meta{margin:0}
.gr-side{position:sticky;top:calc(var(--topbar-h) + 16px)}
.gr-form{display:flex;flex-direction:column;gap:16px;padding:22px 22px 24px;border-radius:var(--r-lg);background:var(--s1)}
.gr-form__t{margin:0;font-size:var(--fs-h3);font-weight:800}
.gr-crit{margin:0;padding:0;border:0;display:flex;flex-direction:column}
.gr-crit legend{padding:0 0 6px;font-size:var(--fs-1);font-weight:700;color:var(--ink-3)}
.gr-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:10px 0;border-top:1px solid var(--line)}
.gr-row label{font-size:var(--fs-2);font-weight:600;line-height:1.7}
.gr-row__in{display:inline-flex;align-items:center;gap:6px}
.gr-row__in .sk-input{width:76px;text-align:center}
.gr-row__in small{min-width:3.6ch;font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.gr-row .ch-error{grid-column:1/-1}
.gr-total{display:flex;align-items:baseline;justify-content:space-between;margin:0;padding:12px 0 0;border-top:1px solid var(--line-2);font-size:var(--fs-2);font-weight:700}
.gr-total b{font-size:var(--fs-3);font-weight:800}
.gr-total small{font-size:var(--fs-1);font-weight:500;color:var(--ink-3)}
.gr-field{display:flex;flex-direction:column;gap:6px}
.gr-field label{font-size:var(--fs-2);font-weight:700}
.gr-field small{font-size:12px;line-height:1.7;color:var(--ink-3)}
.gr-note textarea{margin-top:8px;width:100%}
.gr-acts{display:flex;flex-direction:column;gap:8px}
.gr-acts .sk-btn{width:100%}
@media (max-width:1000px){.gr{grid-template-columns:minmax(0,1fr)}.gr-side{position:static}}
@media (max-width:640px){.gr-sub{padding:20px 16px}.gr-form{padding:20px 16px}}

/* ============================================================================
   منطقهٔ حل چالش (ch-049 فاز ۷) — یک سطح
   فقط برگهٔ مرحله سطح سفید دارد؛ سرصفحه، فهرست مرحله‌ها و نوار ابزار بی‌قاب روی زمینه‌اند.
   بخش‌ها با فاصله و خط باریک جدا می‌شوند، نه کادر در کادر. رنگ فقط برای وضعیت (انجام‌شده، جاری، نادرست)
   و یک دکمهٔ اصلی در هر نما.
   ============================================================================ */
.lab-ws{max-width:1480px;width:100%;margin:0 auto;display:flex;flex-direction:column;flex:1;min-height:0}

/* ---------- سرصفحه: یک ردیف فلت و باریک ---------- */
.lab-head{flex:none;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:var(--gap-lg);min-height:44px;padding:0 4px 10px}
.lab-head__start{display:flex;align-items:center;gap:6px;min-width:0}
.lab-head__title{margin:0;font-size:var(--fs-3);font-weight:800;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lab-head__end{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-width:0}
.lab-head__end form{display:contents}
.lab-head__note{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.lab-head .sk-btn{height:36px;padding:0 14px}
.lab-head .sk-btn:not(.sk-btn--primary){background:var(--s1);border-color:var(--line);color:var(--ink)}
.lab-head .sk-btn:not(.sk-btn--primary):hover{border-color:var(--line-2);background:var(--s1)}
.lab-back{width:32px;height:32px;border-radius:var(--r);display:grid;place-items:center;color:var(--ink-2);flex:none}
.lab-back:hover{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}
.lab-back svg{width:18px;height:18px}
.lab-track{display:flex;align-items:center;gap:12px}
.lab-track__bar{width:180px;height:4px;border-radius:99px;background:color-mix(in srgb,var(--ink) 12%,transparent);overflow:hidden}
.lab-track__bar i{display:block;height:100%;background:var(--ok-fill);border-radius:99px;transition:width .35s var(--ease)}
.lab-track__label{font-size:var(--fs-1);color:var(--ink-2);white-space:nowrap}
.lab-timer{display:flex;align-items:baseline;gap:6px;font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.lab-timer b{font-size:var(--fs-2);font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.lab-score{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}
.lab-score b{font-size:var(--fs-3);font-weight:800}
.lab-score small{font-size:var(--fs-1);color:var(--ink-3)}
.lab-score i{display:none}

.lab-grid{flex:1;min-height:0;display:grid;grid-template-columns:var(--steps-w) minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr);gap:var(--gap);align-items:stretch}

/* ---------- فهرست مرحله‌ها: ردیف‌های ساده؛ رنگ فقط برای «جاری» و «انجام‌شده» ---------- */
.lab-steps{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-inline-end:2px;scrollbar-width:thin}
.lab-steps__h{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;padding:2px 10px 4px;font-size:var(--fs-1);color:var(--ink-3)}
.lab-steps__h b{color:var(--ink);font-size:var(--fs-2);font-weight:800}
.lab-steps__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.lab-step{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:center;width:100%;min-height:44px;padding:7px 10px;border-radius:var(--r);text-align:start;color:var(--ink-2);transition:background .15s,color .15s,opacity .15s}
.lab-step:hover:not(.is-locked){background:color-mix(in srgb,var(--ink) 5%,transparent);color:var(--ink)}
.lab-step.is-current{background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}
.lab-step.is-locked{cursor:not-allowed;opacity:.5}
.lab-step__n{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--line-2);display:grid;place-items:center;font-size:12px;font-weight:800;color:var(--ink-2);flex:none;transition:background .15s,border-color .15s}
.lab-step__n svg{width:13px;height:13px}
.lab-step__n .lab-i{display:none}
.lab-step__n .lab-i--num{display:block;line-height:1}
.lab-step.is-answered .lab-step__n,.lab-step.is-partial .lab-step__n,.lab-step.is-retry .lab-step__n{background:var(--s4);border-color:var(--s4);color:var(--ink)}
.lab-step.is-pending .lab-step__n{border-style:dashed;border-color:var(--ink-3);color:var(--ink-2)}
.lab-step.is-done .lab-step__n{background:var(--ok-fill);border-color:var(--ok-fill);color:var(--on-ok)}
.lab-step.is-bad .lab-step__n{background:var(--danger-bg);border-color:var(--danger-bg);color:var(--on-danger)}
/* مرحلهٔ جاری: رنگ اصلی — مگر اینکه نتیجه‌اش (سبز/قرمز) معلوم باشد؛ آن‌وقت ردیف پررنگ جاری بودن را نشان می‌دهد */
.lab-step.is-current:not(.is-done):not(.is-bad) .lab-step__n{background:var(--accent-bg);border-color:var(--accent-bg);border-style:solid;color:var(--on-accent)}
.lab-step.is-done .lab-step__n .lab-i--num,.lab-step.is-locked .lab-step__n .lab-i--num,.lab-step.is-bad .lab-step__n .lab-i--num{display:none}
.lab-step.is-done .lab-step__n .lab-i--check,.lab-step.is-bad .lab-step__n .lab-i--x,.lab-step.is-locked .lab-step__n .lab-i--lock{display:block}
.lab-step.is-locked .lab-step__n{border-style:dashed}
.lab-step__t{font-size:var(--fs-2);font-weight:600;line-height:1.55;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.lab-step.is-current .lab-step__t{font-weight:800}
.lab-step__s{display:block;font-size:12px;color:var(--ink-3);line-height:1.5}
.lab-step.is-current .lab-step__s{color:var(--ink-2)}
/* «بی‌پاسخ» پیش‌فرض است و فقط برای صفحه‌خوان گفته می‌شود */
.lab-step.is-open .lab-step__s{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.lab-step.is-open.is-skipped .lab-step__s{position:static;width:auto;height:auto;overflow:visible;clip:auto;color:var(--warn)}   /* ch-056: «رد شده» دیده شود */
.lab-steps__foot{padding:12px 10px 4px;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-1);color:var(--ink-3);border-top:1px solid var(--line);margin-top:4px;line-height:1.8}
.lab-steps__foot b{color:var(--ink-2);font-weight:800}

/* ---------- برگهٔ مرحله: تنها سطح صفحه ---------- */
.lab-task{position:relative;background:var(--s1);border-radius:var(--r-lg);min-width:0;min-height:0;display:flex;flex-direction:column}
.lab-task__scroll{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;scroll-padding-top:16px}
.lab-task__foot{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 24px;border-top:1px solid var(--line)}
.lab-task__foot .sk-btn{height:var(--ctl-sm)}

/* کارت مرحله (_task.html) */
.ch-tasklist{display:flex;flex-direction:column;flex:1 0 auto;gap:var(--gap)}
.ch-task{position:relative;display:flex;flex-direction:column;flex:1 0 auto}
.ch-task.is-sending{opacity:.6;pointer-events:none}
.ch-task.is-updated{animation:labflash .9s ease-out}
@keyframes labflash{from{background:color-mix(in srgb,var(--accent-ui) 8%,transparent)}to{background:transparent}}
.ch-task__head,.ch-task__body{max-width:900px}
.ch-task__head{padding:28px 32px 0}
.ch-task__over{margin:0 0 6px}
.ch-task__head h3{margin:0;font-size:var(--fs-4);font-weight:800;line-height:1.5;color:var(--ink);outline-offset:6px;max-width:var(--measure)}
.ch-task__body{padding:14px 32px 28px;display:flex;flex-direction:column;gap:20px;flex:none}
.ch-task .prompt{margin:0;font-size:var(--fs-3);line-height:1.95;max-width:var(--measure);color:var(--ink)}
.ch-task .prompt em{font-style:normal;color:var(--ink-3)}
/* پیش‌نمایش طراح: همهٔ مرحله‌ها زیر هم، هر کدام یک برگه */
.ch-designer .ch-tasklist{gap:var(--gap)}
.ch-designer .ch-tasklist>.ch-task{background:var(--s1);border-radius:var(--r-lg)}

/* فایل‌های مرحله */
.ch-files{display:flex;flex-direction:column;gap:8px;align-self:stretch;max-width:100%}
.ch-files__h{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-1);color:var(--ink-3)}
.ch-files__h svg{width:15px;height:15px;flex:none}
.ch-files__h b{font-weight:600;color:var(--ink-2)}
.ch-files__list{display:flex;flex-wrap:wrap;gap:8px}
.ch-file{display:inline-flex;align-items:center;gap:10px;min-height:36px;padding:0 12px;border-radius:var(--r);background:var(--s2);color:var(--ink);font-size:var(--fs-1);font-weight:600;transition:background .15s}
a.ch-file:hover{background:var(--s3)}
.ch-file span{color:var(--accent);font-weight:600}
.ch-file small{color:var(--ink-3);font-weight:400;font-size:var(--fs-1)}
.ch-taskfiles{display:flex;flex-wrap:wrap;gap:8px}
.ch-taskfiles a{display:inline-flex;align-items:center;height:34px;padding:0 12px;border-radius:var(--r);background:var(--s2);font-size:var(--fs-1);font-weight:600;font-family:var(--mono);direction:ltr}

/* خط وضعیت یک‌دست: «ثبت شد»، «در صف»، «در انتظار تصحیح»، «درست بود»… — بی‌کادر؛ رنگ فقط در نشانگر */
.ch-state{display:flex;align-items:flex-start;gap:10px;max-width:var(--measure)}
.ch-state__ic{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;margin-top:3px;background:var(--s3);color:var(--ink-2)}
.ch-state__ic svg{width:13px;height:13px}
.ch-state.is-good .ch-state__ic{background:var(--ok-fill);color:var(--on-ok)}
.ch-state.is-bad .ch-state__ic{background:var(--danger-bg);color:var(--on-danger)}
.ch-state.is-wait .ch-state__ic{background:transparent;box-shadow:inset 0 0 0 1.5px var(--warn);color:var(--warn)}
.ch-state__t{margin:0;font-size:var(--fs-2);line-height:1.85;color:var(--ink-2)}
.ch-state__t b{color:var(--ink);font-weight:800;margin-inline-end:4px}
.ch-state__next{color:var(--ink-3)}
/* نسخهٔ قدیمی کارت نتیجه (برای قالب‌های دیگر) */
.ch-result{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}
.ch-result__ico{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--s3);color:var(--ink-2);font-weight:800;font-size:12px;flex:none}
.ch-result.is-good .ch-result__ico{background:var(--ok-fill);color:var(--on-ok)}
.ch-result.is-bad .ch-result__ico{background:var(--danger-bg);color:var(--on-danger)}
.ch-result__t{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-2);line-height:1.8;color:var(--ink-2)}
.ch-result__t b{color:var(--ink);font-weight:800}

/* آخرین ارسال و نتیجهٔ تست‌ها: بخشی با خط باریک، نه باکس */
.ch-sub{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:16px;border-top:1px solid var(--line)}
.ch-sub>*{max-width:100%}
.ch-sub__meta{margin:0}
.tk-meta>.ch-sub__err{white-space:normal;color:var(--danger)}
.ch-sub__text{margin:0;white-space:pre-wrap;line-height:1.9;font-size:var(--fs-2);color:var(--ink);max-width:var(--measure)}
.ch-sub__file{display:inline-flex;align-items:center;gap:8px;min-height:32px;font-size:var(--fs-1);font-weight:600;color:var(--accent);overflow-wrap:anywhere}
.ch-sub__file svg{width:16px;height:16px;flex:none}
.ch-sub__file:hover span{text-decoration:underline;text-underline-offset:3px}
.ch-grade{display:flex;flex-direction:column;gap:6px;width:100%}
.ch-grade .tk-meta{margin-block:0}
.ch-submission{display:flex;flex-direction:column;gap:8px;padding-top:16px;border-top:1px solid var(--line)}
.ch-submission__text{white-space:pre-wrap;line-height:1.9;margin:0;font-size:var(--fs-2)}
.ch-tests{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;align-self:stretch}
.ch-test{display:flex;gap:10px;align-items:center;flex-wrap:wrap;min-height:40px;padding:6px 0;border-top:1px solid var(--line);font-size:var(--fs-2)}
.ch-tests .ch-test:first-child{border-top:0}
.ch-test .ico{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:var(--on-danger);background:var(--danger-bg);flex:none}
.ch-test.is-pass .ico{background:var(--ok-fill);color:var(--on-ok)}
.ch-test__details{margin-inline-start:auto}
.ch-pending{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--warn);font-weight:600;font-size:var(--fs-1);line-height:1.8}
.ch-pending i{width:12px;height:12px;border:2px solid var(--warn);border-inline-end-color:transparent;border-radius:50%;animation:labspin .8s linear infinite;flex:none}
@keyframes labspin{to{transform:rotate(360deg)}}

/* ردیف اقدام: یک دکمه و یک توضیح کوتاه */
.ch-acts{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap}
.ch-acts .sk-btn{flex:none}
.ch-acts__note{flex:1 1 240px;display:flex;align-items:flex-start;gap:6px;margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3);max-width:var(--measure)}
.ch-acts__note svg{width:15px;height:15px;flex:none;margin-top:3px}
.ch-form--stack>.ch-acts__note{flex:none}
.ch-answer{display:flex;gap:8px;align-items:center;max-width:560px}
.ch-answer .sk-input{flex:1;min-width:0}
.ch-label{display:block;font-size:var(--fs-2);font-weight:600;color:var(--ink)}
.ch-label small{font-weight:400;color:var(--ink-3);font-size:var(--fs-1);margin-inline-start:6px}
.ch-howto{margin:0;font-size:var(--fs-1);line-height:2;color:var(--ink-2);max-width:var(--measure)}
.ch-count{font-size:var(--fs-1);font-weight:600;color:var(--ink-2)}
.ch-crit{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}
.ch-crit__h{font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.ch-crit .tk-meta{margin-block:0}

/* ویرایشگر کد */
.ch-editor{border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;background:var(--s1)}
.ch-editor:focus-within{border-color:var(--accent-ui);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ui) 25%,transparent)}
.ch-editor__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 8px;padding:6px 12px;background:var(--s2);border-bottom:1px solid var(--line);font-size:var(--fs-1);color:var(--ink-3)}
.ch-editor textarea.sk-input{border:0;border-radius:0;min-height:220px;font-family:var(--mono);font-size:13px;box-shadow:none}
/* [class] وزن قاعده را از پوستهٔ material-darker (که بعد از lab.css بارگذاری می‌شود) بیشتر می‌کند */
.ch-editor .CodeMirror[class]{height:auto;min-height:220px;font-family:var(--mono);font-size:13px;line-height:1.6;direction:ltr;text-align:left;background:var(--s1);color:var(--ink)}
.ch-editor .CodeMirror-scroll{min-height:220px;max-height:520px}
.ch-editor .CodeMirror[class] .CodeMirror-gutters{background:var(--s2);border-color:var(--line)}
.ch-editor .CodeMirror[class] .CodeMirror-linenumber{color:var(--ink-3)}
.CodeMirror{max-width:100%}

/* SQL: جدول‌های پایگاه داده بی‌کادر، فقط سرستون خاکستری */
.ch-schema{display:flex;flex-direction:column;gap:14px}
.ch-schema__h{margin:0;font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.ch-schema__t summary{font-size:12.5px;color:var(--ink-2)}
.ch-schema__t small{color:var(--ink-3);font-weight:400}
.ch-schema__t .ch-tablewrap{margin-top:6px;border-radius:0}
.ch-schema .ch-table thead th,.ch-sqlres .ch-table thead th{background:var(--s2)}
.ch-sqlres{border-radius:0}

/* ساخت‌یافته‌ها: فرم، علامت‌گذاری، جفت‌کردن، برآورد — ردیف‌ها با خط باریک، بدون کادر */
.ch-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px}
.ch-fields.ch-fields--1{grid-template-columns:minmax(0,1fr)}
.ch-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.ch-field label{font-size:var(--fs-2);font-weight:600;line-height:1.7}
.ch-marklist,.ch-matchlist,.ch-estlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.ch-markitem,.ch-matchrow,.ch-est{border-top:1px solid var(--line)}
.ch-markitem{display:flex;align-items:center;gap:12px;min-height:48px;padding:4px 8px;transition:background .12s}
.ch-markitem:hover{background:var(--s2)}
.ch-markitem__lbl{display:flex;align-items:flex-start;gap:12px;flex:1;padding:8px 0;cursor:pointer;line-height:1.8;font-size:var(--fs-2)}
.ch-markitem__lbl input{width:18px;height:18px;margin-top:4px;accent-color:var(--accent-bg);flex:none;cursor:pointer}
.ch-markitem__t{flex:1;padding:8px 0;line-height:1.8;font-size:var(--fs-2)}
.ch-markitem__sel{width:200px;height:36px;flex:none}
.ch-matchrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,240px);gap:16px;align-items:center;padding:8px}
.ch-matchrow__l{line-height:1.8;font-size:var(--fs-2)}
.ch-matchrow .sk-input{height:36px}
.ch-est{padding:14px 8px}
.ch-est__q{margin:0 0 10px;line-height:1.8;font-size:var(--fs-2);font-weight:600}
.ch-est__in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ch-est__in label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-1);color:var(--ink-2)}
.ch-est__in .sk-input{height:36px}

/* فیلدهای داخل ردیف‌ها و جدول‌ها کوچک می‌مانند (قاعدهٔ عمومی .ch-form .sk-input حداقل ۲۰۰ پیکسل دارد) */
.ch-form :is(.ch-matrix,.ch-matchrow,.ch-markitem,.ch-est__in,.ch-field,.ch-answer) .sk-input{min-width:0}

/* ماتریس: جدول تمیز با انتخاب‌های کوچک */
.ch-matrixwrap{border-radius:0}
.ch-matrix{font-size:var(--fs-2)}
.ch-matrix thead th{background:var(--s2);height:40px;padding:0 10px}
.ch-matrix th[scope=row]{white-space:normal;font-size:var(--fs-2);font-weight:600;color:var(--ink);min-width:140px;padding:8px 12px;line-height:1.7;border-bottom:1px solid var(--line);text-align:start}
.ch-matrix tbody tr:last-child th{border-bottom:0}
.ch-matrix td{height:auto;padding:6px 8px;width:1%;white-space:nowrap}
.ch-matrix .sk-input{width:clamp(104px,11vw,148px);height:34px;padding-inline:10px 28px;font-size:var(--fs-1)}
.ch-matrix tbody tr:hover th,.ch-matrix tbody tr:hover td{background:var(--s2)}

/* سناریو: متن وضعیت و گزینه‌ها به‌شکل ردیف‌های قابل انتخاب */
.ch-trail{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.ch-trail__step{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line)}
.ch-trail__n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--s3);font-size:11px;font-weight:800;flex:none;margin-top:3px}
.ch-trail__step b{display:block;font-size:var(--fs-2);font-weight:600}
.ch-trail__step small{display:block;line-height:1.8;color:var(--ink-3);font-size:var(--fs-1)}
.ch-scenario{display:flex;flex-direction:column;gap:12px;max-width:var(--measure)}
.ch-scenario__n{margin:0;font-size:var(--fs-1);color:var(--ink-3);font-weight:600}
.ch-scenario__t{margin:0;line-height:1.95;font-size:var(--fs-3)}
.ch-scenario__opts{display:flex;flex-direction:column;gap:8px}
.sk-btn.ch-scenario__opt{justify-content:flex-start;text-align:start;white-space:normal;height:auto;min-height:48px;padding:11px 16px;line-height:1.75;font-weight:400;font-size:var(--fs-2);color:var(--ink);background:var(--s1);border:1px solid var(--line-2)}
.sk-btn.ch-scenario__opt:hover{background:var(--s2);border-color:var(--ink-3)}

/* ضبط: بی‌کادر؛ توضیح محرمانگی کوتاه و کم‌رنگ */
.ch-recorder{display:flex;flex-direction:column;gap:16px}
.ch-recorder__consent{display:flex;align-items:flex-start;gap:8px;margin:0;font-size:var(--fs-1);line-height:1.85;color:var(--ink-3);max-width:var(--measure)}
.ch-recorder__consent svg{width:15px;height:15px;flex:none;margin-top:3px}
.ch-recorder__consent b{color:var(--ink-2);font-weight:600}
.ch-recorder__live,.ch-recorder__review{display:flex;flex-direction:column;gap:12px}
.ch-recorder__bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ch-recorder__time{font-size:var(--fs-1);font-weight:800;color:var(--danger);font-variant-numeric:tabular-nums}
.ch-recorder__status{font-size:var(--fs-1);color:var(--ink-2)}
.ch-or{display:flex;align-items:center;gap:12px;margin:0;font-size:var(--fs-1);color:var(--ink-3);max-width:420px}
.ch-or::before,.ch-or::after{content:"";flex:1;height:1px;background:var(--line)}
.ch-player{width:100%;max-width:640px;border-radius:var(--r);background:#000;outline:none}
audio.ch-player{background:transparent;height:40px}
.ch-player--live{aspect-ratio:16/9;max-height:360px}

/* نقطه‌گذاری روی تصویر */
.ch-hotspot{display:flex;flex-direction:column;gap:12px}
.ch-hotspot__img{position:relative;display:inline-block;align-self:flex-start;max-width:100%;border-radius:var(--r);overflow:hidden;user-select:none}
.ch-hotspot__img img{display:block;max-width:100%;height:auto}
.ch-hotspot__layer{position:absolute;inset:0;cursor:crosshair}
.ch-hotspot__pin{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;border-radius:50%;border:2px solid #fff;background:var(--accent-bg);color:var(--on-accent);font-weight:800;font-size:12px;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.35)}

/* نکته‌ها: زیر مرحله، جمع‌شده؛ هر نکته یک ردیف */
.ch-hints{margin:0 32px 24px;padding-top:12px;border-top:1px solid var(--line);max-width:836px}
.ch-hints summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;flex-wrap:wrap;gap:2px 8px;min-height:36px;padding:0 10px;margin-inline-start:-10px;border-radius:var(--r);color:var(--ink-2);font-size:var(--fs-1);font-weight:600}
.ch-hints summary::-webkit-details-marker{display:none}
.ch-hints summary:hover{background:var(--s2);color:var(--ink)}
.ch-hints summary svg{width:16px;height:16px;flex:none}
.ch-hints summary small{font-weight:400;color:var(--ink-3);font-size:var(--fs-1)}
.ch-hints[open] summary{color:var(--ink)}
.ch-hints__list{list-style:none;margin:4px 0 0;padding:0;max-width:var(--measure)}
.ch-hint{padding:12px 0;border-top:1px solid var(--line);line-height:1.85;font-size:var(--fs-2)}
.ch-hints__list .ch-hint:first-child{border-top:0}
.ch-hint b{font-weight:800;color:var(--ink);font-size:var(--fs-1)}
.ch-hint small{font-weight:400;color:var(--ink-3);font-size:var(--fs-1)}
.ch-hint p{margin:2px 0 0;color:var(--ink)}
.ch-hint--locked{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--ink-2)}
.ch-hint--locked form{display:inline}

/* ---------- نوار ابزار کناری و کشو ---------- */
.lab-tools{display:flex;min-height:0;gap:12px}
.lab-strip{width:48px;display:flex;flex-direction:column;align-items:center;gap:4px;flex:none;align-self:flex-start}
.lab-tool{position:relative;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;color:var(--ink-2);transition:background .15s,color .15s}
.lab-tool:hover:not(:disabled){background:color-mix(in srgb,var(--ink) 7%,transparent);color:var(--ink)}
.lab-tool.is-active{background:var(--s1);color:var(--ink)}
.lab-tool:disabled{opacity:.45;cursor:not-allowed}
.lab-tool svg{width:20px;height:20px}
.lab-tool__badge{position:absolute;top:3px;inset-inline-start:3px;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--ink-2);color:var(--s1);font-size:11px;font-weight:800;display:grid;place-items:center;line-height:1;box-shadow:0 0 0 2px var(--bg)}
.lab-tool__badge[hidden],.lab-tool__dot[hidden]{display:none}
.lab-tool__dot{position:absolute;top:8px;inset-inline-start:9px;width:8px;height:8px;border-radius:50%;background:var(--ink-2);box-shadow:0 0 0 2px var(--bg)}
.lab-tool__tip{position:absolute;inset-inline-end:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--pop-bg);color:var(--pop-ink);box-shadow:var(--shadow-pop);font-size:var(--fs-1);font-weight:600;padding:5px 10px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s;z-index:5}
.lab-tool:hover .lab-tool__tip,.lab-tool:focus-visible .lab-tool__tip{opacity:1}
.lab-strip__sep{width:24px;height:1px;background:var(--line);margin:4px 0}
.lab-drawer{width:0;overflow:hidden;background:var(--s1);border-radius:var(--r-lg);display:flex;flex-direction:column;transition:width .22s var(--ease);opacity:0;visibility:hidden}
.lab-drawer.is-open{width:var(--drawer-w);opacity:1;visibility:visible}
.lab-drawer__in{width:var(--drawer-w);display:flex;flex-direction:column;height:100%;min-height:0}
.lab-drawer__h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line);flex:none}
.lab-drawer__title{margin:0;font-size:var(--fs-2);font-weight:800;outline-offset:4px}
.lab-drawer__body{padding:16px;overflow:auto;flex:1;min-height:0}
.lab-panel{display:none;flex-direction:column;gap:var(--gap-lg)}
.lab-panel.is-on{display:flex}
.lab-panel h3{margin:0;font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.lab-panel__sec{display:flex;flex-direction:column;gap:8px}
.lab-panel .ch-files{align-self:stretch}
.lab-panel .ch-files__h{display:none}
.lab-panel .ch-files__list{flex-direction:column}
.lab-panel .ch-file{height:auto;padding:10px 12px;justify-content:space-between}
.lab-note{width:100%;min-height:240px;padding:12px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--s1);resize:vertical;line-height:1.9;font-size:var(--fs-2)}
.lab-note:focus{outline:none;border-color:var(--accent-ui);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ui) 25%,transparent)}
.lab-help{font-size:var(--fs-2);line-height:1.85;color:var(--ink-2)}
.lab-help p{margin:0 0 8px}
.lab-help ol,.lab-help ul{margin:0 0 8px;padding-inline-start:18px}
.lab-help li{margin-bottom:4px}
.lab-help h4{margin:14px 0 4px;font-size:var(--fs-2);font-weight:800;color:var(--ink)}
.lab-help b{color:var(--ink)}
.lab-help .lab-now{padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid var(--line);color:var(--ink)}

/* ---------- جریان حل (ch-049 فاز ۲): قبلی/بعدی، رفتن خودکار، مرور و تحویل ---------- */
.ch-focus__pager{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 16px;background:var(--s1);border-top:1px solid var(--line);border-radius:0 0 var(--r-lg) var(--r-lg)}
.ch-pager__btn{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 14px}
.ch-pager__btn svg{width:18px;height:18px;flex:none}
.ch-pager__btn:disabled{opacity:.45;cursor:not-allowed}
.ch-pager__btn--next.is-ready{background:var(--accent-bg);color:var(--on-accent);border-color:var(--accent-bg)}
.ch-pager__btn--next.is-ready:hover{background:var(--accent-bg-hover)}
.ch-pager__pos{display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.5;min-width:0}
.ch-pager__pos b{font-size:var(--fs-2);font-weight:800}
.ch-pager__pos small{font-size:var(--fs-1);color:var(--ink-3)}
.ch-advance{position:absolute;inset-inline:16px;bottom:72px;z-index:6;display:flex;align-items:center;gap:10px;padding:10px 12px 12px 14px;border-radius:var(--r-lg);background:var(--pop-bg);color:var(--pop-ink);box-shadow:var(--shadow-pop);overflow:hidden;opacity:0;transform:translateY(6px);transition:opacity .18s var(--ease),transform .18s var(--ease)}
.ch-advance.is-on{opacity:1;transform:none}
.ch-advance__bar{position:absolute;inset-inline:0;bottom:0;height:3px;background:var(--pop-accent);transform-origin:left center;animation:tkAdvance var(--advance-ms,1200ms) linear forwards}
@keyframes tkAdvance{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.ch-advance__t{flex:1;min-width:0;font-size:var(--fs-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch-advance__go,.ch-advance__stay{height:32px;padding:0 12px;border-radius:var(--r);font-size:var(--fs-1);font-weight:800;flex:none}
.ch-advance__go{color:inherit;text-decoration:underline;text-underline-offset:3px}
.ch-advance__stay{background:var(--pop-ink);color:var(--pop-bg)}
.ch-advance__go:focus-visible,.ch-advance__stay:focus-visible{outline-color:var(--pop-accent)}
.ch-finish{display:flex;flex-direction:column;gap:16px;padding:32px 32px 28px;max-width:760px}
.ch-finish__ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--s3);color:var(--ink-2)}
.ch-finish__ic svg{width:24px;height:24px}
.ch-finish h2{margin:0;font-size:var(--fs-4);font-weight:800;line-height:1.4}
.ch-finish__lead{margin:0;color:var(--ink-2);font-size:var(--fs-3);line-height:1.9}
.ch-finish__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ch-finish__row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;min-height:48px;padding:8px;border-bottom:1px solid var(--line);text-align:start;border-radius:0}
.ch-finish__row:hover{background:var(--s2)}
.ch-finish__n{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--s3);font-size:var(--fs-1);font-weight:800}
.ch-finish__t{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-finish__s{font-size:var(--fs-1);color:var(--ink-3);white-space:nowrap}
.ch-finish__s.is-open{color:var(--warn);font-weight:800}
.ch-finish__acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:4px}

/* ---------- مرتب‌سازی با کشیدن (ch-049 فاز ۳): ردیف‌ها با خط باریک ---------- */
.ch-ranklist__hint{margin:0;font-size:var(--fs-1);color:var(--ink-3);line-height:1.8}
.ch-ranklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.ch-ranklist li{display:flex;align-items:center;gap:10px;min-height:52px;padding:4px 4px 4px 2px;border-top:1px solid var(--line);background:var(--s1);cursor:grab;user-select:none;-webkit-user-select:none;transition:background .12s}
.ch-ranklist li:hover{background:var(--s2)}
.ch-ranklist li:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:var(--r)}
.ch-ranklist li.is-grabbed{background:var(--s2);outline:2px dashed var(--accent-ui);outline-offset:-2px;border-radius:var(--r)}
.ch-ranklist li.is-dragging{position:fixed;z-index:1000;margin:0;border:0;border-radius:var(--r);background:var(--s1);outline:1.5px solid var(--accent-ui);box-shadow:var(--shadow-pop);cursor:grabbing;pointer-events:none}
.ch-ranklist__ph{list-style:none;border-top:1px solid var(--line);background:var(--s2);box-shadow:inset 0 0 0 1.5px var(--line-2);border-radius:var(--r)}
.ch-ranklist__grip{display:grid;place-items:center;width:28px;height:40px;color:var(--ink-3);flex:none;touch-action:none;cursor:grab}
.ch-ranklist__grip svg{width:18px;height:18px}
.ch-ranklist__n{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--s3);font-size:var(--fs-1);font-weight:800;flex:none}
.ch-ranklist__t{flex:1;min-width:0;line-height:1.8;font-size:var(--fs-2)}
.ch-ranklist__acts{display:flex;gap:2px;flex:none}
.ch-ranklist__btn{width:36px;height:36px;border-radius:var(--r);display:grid;place-items:center;color:var(--ink-2)}
.ch-ranklist__btn:hover:not(:disabled){background:var(--s3);color:var(--ink)}
.ch-ranklist__btn:disabled{opacity:.3;cursor:default}
.ch-ranklist__btn svg{width:18px;height:18px}
body.tk-dragging,body.tk-dragging *{user-select:none!important;-webkit-user-select:none!important;cursor:grabbing!important}

/* ---------- ترمینال شبیه‌سازی‌شده (همیشه تیره؛ مستقل از تم) ---------- */
.ch-term{--term-bg:#0F1115;--term-bar:#171A20;--term-ink:#E7E9EE;--term-dim:#8B93A1;--term-ps:#4ADE80;--term-err:#FCA5A5;
  position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--term-bg);color:var(--term-ink);font-family:var(--mono)}
.ch-term__bar{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--term-bar);font-family:inherit;font-size:12px;color:var(--term-dim);direction:rtl}
.ch-term__dots{display:flex;gap:6px;direction:ltr}
.ch-term__dots i{width:10px;height:10px;border-radius:50%;background:#3A3F48}
.ch-term__title{color:var(--term-ink);font-weight:800;font-family:var(--mono)}
.ch-term__sub{font-family:inherit;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-term__cwd{font-family:var(--mono);color:var(--term-dim)}
.ch-term__screen{max-height:min(460px,55vh);min-height:240px;overflow:auto;padding:10px 14px 12px;cursor:text;text-align:left}
.ch-term__out{margin:0;white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.65;font-family:var(--mono);color:inherit}
.ch-term__out .ch-term__ps,.ch-term__in .ch-term__ps{color:var(--term-ps);font-weight:800}
.ch-term__dim{color:var(--term-dim)}
.ch-term__line{display:block;unicode-bidi:plaintext;text-align:start}
.ch-term__err{color:var(--term-err)}
.ch-term__in{display:flex;align-items:center;gap:8px}
.ch-term__input{flex:1;min-width:0;background:transparent;border:0;color:var(--term-ink);font:inherit;font-family:var(--mono);font-size:13px;line-height:1.65;padding:0;caret-color:var(--term-ps)}
.ch-term__input:focus-visible{outline:none}
.ch-term:focus-within{outline:2px solid var(--focus);outline-offset:2px}
.ch-term.is-busy .ch-term__in .ch-term__ps::after{content:" …";color:var(--term-dim)}
.ch-term.is-readonly .ch-term__screen{cursor:default;min-height:120px}
.ch-term__help{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:var(--fs-1);color:var(--ink-3);line-height:1.8}
.ch-term__help code{font-family:var(--mono);font-size:12px;background:var(--s2);padding:1px 6px;border-radius:6px}
.ch-term__editor{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--term-bg);z-index:3}
.ch-term.is-editing .ch-term__screen{visibility:hidden}
.ch-ed__head{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#DDE1E7;color:#15171C;font-size:12.5px;font-family:var(--mono)}
.ch-ed__file{flex:1;text-align:center;font-weight:800}
.ch-ed__mod{font-family:inherit;color:#8A3B00;direction:rtl}
.ch-ed__area{flex:1;min-height:0;resize:none;border:0;margin:0;padding:10px 14px;background:var(--term-bg);color:var(--term-ink);font-family:var(--mono);font-size:13px;line-height:1.65;tab-size:4;white-space:pre;overflow:auto}
.ch-ed__area:focus-visible{outline:none}
.ch-ed__status{padding:4px 12px;min-height:26px;font-size:12px;color:var(--term-dim);font-family:inherit;direction:rtl}
.ch-ed__confirm{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:#2A1F12;color:#FFD9A8;font-size:12.5px;direction:rtl}
.ch-ed__keys{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid #262A31;direction:rtl}
.ch-ed__key{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:6px;background:#1D2128;color:var(--term-ink);font-size:12.5px}
.ch-ed__key:hover{background:#262B33}
.ch-ed__key:focus-visible{outline:2px solid var(--term-ps);outline-offset:1px}
.ch-ed__key kbd{font-family:var(--mono);font-size:11.5px;padding:0 5px;border-radius:4px;background:#E7E9EE;color:#15171C}
.ch-termtry{display:flex;flex-direction:column;gap:10px}
.ch-termtry__checks{padding:12px 14px;border-radius:var(--r);background:var(--s2);font-size:var(--fs-1);line-height:1.9}
.ch-termtry__checks ul{list-style:none;margin:6px 0 0;padding:0}
.ch-termtry__checks .is-pass{color:var(--ok)}
.ch-termtry__checks .is-fail{color:var(--danger)}

/* ---------- لابراتوار تعاملی HTML: مقدمهٔ کوتاه، لایهٔ تمام‌صفحه و نتیجه ---------- */
.hl-launch{display:flex;flex-direction:column;gap:16px}
.hl-sum{margin:0;font-size:var(--fs-3);line-height:1.9;color:var(--ink-2);max-width:var(--measure)}
.hl-sum b{color:var(--ink);font-weight:800}
.hl-tiers{align-self:flex-start;border-collapse:collapse;font-size:var(--fs-2);min-width:min(320px,100%)}
.hl-tiers th,.hl-tiers td{padding:8px 0;border-bottom:1px solid var(--line);text-align:start;white-space:nowrap}
.hl-tiers th+th,.hl-tiers th+td{padding-inline-start:32px;text-align:end}
.hl-tiers thead th{font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.hl-tiers tbody th{font-weight:400;color:var(--ink-2)}
.hl-tiers tbody td{font-weight:800;color:var(--ink)}
.hl-tiers tbody tr:last-child>*{border-bottom:0}
.hl-rules ul{margin:8px 0 0;padding-inline-start:20px;font-size:var(--fs-2);line-height:1.95;color:var(--ink-2);max-width:var(--measure)}
.hl-rules summary{font-size:var(--fs-2)}
.hl-launch__acts{padding-top:4px}
.hl-done .tk-meta b{white-space:nowrap}
.hl-overlay{position:fixed;inset:0;z-index:1200;display:flex;flex-direction:column;background:var(--bg)}
.hl-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:var(--gap);height:52px;padding:0 16px;background:var(--s1);border-bottom:1px solid var(--line);flex:none}
.hl-bar__t{display:flex;align-items:center;gap:12px;min-width:0;font-size:var(--fs-2)}
.hl-bar__t b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw;font-weight:800}
.hl-steps{color:var(--ink-2);white-space:nowrap}
.hl-bar__c{display:flex;align-items:center;gap:12px}
.hl-bar__a{display:flex;gap:8px;flex:none}
.hl-bar__prog{position:absolute;inset-inline:0;bottom:-1px;height:2px;background:transparent;pointer-events:none}
.hl-bar__prog i{display:block;height:100%;width:0;background:var(--ok-fill);transition:width .35s var(--ease)}
.hl-timer{font-variant-numeric:tabular-nums;font-size:var(--fs-3);font-weight:800;color:var(--ink);direction:ltr}
.hl-timer.is-low{color:var(--danger)}
/* ch-059: «رد کردن مرحله» در نوار لابراتوار (همهٔ فایل‌ها؛ نماد «بعدی» برای راست‌به‌چپ قرینه است)
   ch-060: دکمه بعد از چند ثانیه ماندن روی مرحله ظاهر می‌شود — طلایی تا میان دکمه‌های خاکستری نوار گم نشود؛ لحظهٔ ظاهر شدن یک
   حرکت کوتاه و حلقهٔ نور (دو بار) و یک پیام کوتاه زیر دکمه. با «کاهش حرکت» فقط پیام. */
.hl-bar{z-index:2}
.hl-bar__a{position:relative}
.hl-skip{background:var(--gold);color:var(--gold-ink);border-color:transparent;font-weight:800}
.hl-skip:hover{background:var(--gold);color:var(--gold-ink);filter:brightness(1.06)}
.hl-skip:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.hl-skip svg{width:15px;height:15px;transform:scaleX(-1)}
.hl-skip[aria-busy="true"]{cursor:progress}
.hl-skip.is-reveal{animation:hlSkipIn .3s var(--ease) both,hlSkipRing 1.4s ease-out .32s 2}
@keyframes hlSkipIn{from{opacity:0;transform:translateY(-6px) scale(.92)}to{opacity:1;transform:none}}
@keyframes hlSkipRing{0%{box-shadow:0 0 0 0 rgba(248,192,24,.6)}100%{box-shadow:0 0 0 14px rgba(248,192,24,0)}}
.hl-skip-tip{position:absolute;top:calc(100% + 12px);inset-inline-start:0;z-index:3;width:max-content;max-width:min(340px,calc(100vw - 32px));padding:10px 14px;border-radius:var(--r-lg);background:var(--pop-bg);color:var(--pop-ink);border:1px solid rgba(248,192,24,.55);box-shadow:var(--shadow-pop);font-size:var(--fs-1);font-weight:600;line-height:1.85;cursor:pointer;animation:labin .2s var(--ease)}
.hl-skip-tip::before{content:"";position:absolute;top:-7px;inset-inline-start:32px;width:12px;height:12px;background:inherit;border-top:1px solid rgba(248,192,24,.55);border-left:1px solid rgba(248,192,24,.55);border-radius:2px 0 0 0;transform:rotate(45deg)}
.hl-skip-tip b{color:var(--gold);font-weight:800}
.hl-skip-tip.is-out{opacity:0;transform:translateY(-4px);transition:opacity .25s,transform .25s}
@media (prefers-reduced-motion:reduce){.hl-skip.is-reveal,.hl-skip-tip{animation:none}}
@media (forced-colors:active){.hl-skip{border:2px solid ButtonText}}
.hl-badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-1);color:var(--ink-2);font-weight:600}
.hl-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--warn)}
.hl-frame{flex:1;width:100%;border:0;background:#0b0d0f}
.hl-result{position:absolute;inset:52px 0 0;display:flex;align-items:center;justify-content:center;background:var(--overlay);padding:20px}
.hl-result__card{display:flex;flex-direction:column;align-items:center;gap:12px;width:min(440px,100%);padding:32px 28px 28px;border-radius:var(--r-xl);background:var(--s1);box-shadow:var(--shadow-pop);text-align:center}
.hl-result__ic{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--s3);color:var(--ink-2)}
.hl-result__ic svg{width:24px;height:24px}
.hl-result__card>b{font-size:var(--fs-4);font-weight:800;line-height:1.4}
.hl-result__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));width:100%;margin:4px 0;border-block:1px solid var(--line)}
.hl-result__meta>div{display:flex;flex-direction:column;gap:2px;padding:12px 8px}
.hl-result__meta dt{font-size:var(--fs-1);color:var(--ink-3)}
.hl-result__meta dd{margin:0;font-size:var(--fs-3);font-weight:800;color:var(--ink)}
.hl-result__summary{grid-template-columns:repeat(3,minmax(0,1fr));text-align:start;gap:8px}
.hl-result__summary dd small{font-size:var(--fs-1);font-weight:400;color:var(--ink-3);white-space:nowrap}
.hl-result__details{width:100%;min-width:0;text-align:start}
.hl-result__details>summary{cursor:pointer;font-weight:600;line-height:1.8}
.hl-result__details[open]{display:flex;flex-direction:column;gap:12px}
.hl-result__details bdi{unicode-bidi:isolate;display:inline-block;direction:ltr}
.hl-formula-rows{display:flex;flex-direction:column;gap:6px;min-width:0}
.hl-formula-rows>p{margin:0}
.hl-formula-rows .hl-equation-row{display:block;width:100%;unicode-bidi:isolate;overflow-wrap:anywhere}
.hl-formula-rows .hl-equation-row[dir="ltr"]{direction:ltr;text-align:left;font-family:monospace;font-size:16px;line-height:1.9;font-variant-numeric:tabular-nums}
.hl-formula-rows .hl-equation-row[dir="rtl"]{direction:rtl;text-align:right}
.hl-result__msg{margin:0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.hl-result__card .sk-btn{margin-top:4px}
/* ch-056: قبول/مردود لابراتوار و مرحله‌های ردشده */
.hl-result__card.is-pass .hl-result__ic{background:var(--ok-soft);color:var(--ok-ink)}
.hl-result__card.is-fail .hl-result__ic{background:var(--danger-soft);color:var(--danger-ink)}
.hl-pass{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:999px;font-size:var(--fs-1);font-weight:800;line-height:1.8;border:1px solid var(--line)}
.hl-pass::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ink-3)}
.hl-pass.is-pass{color:var(--ok-ink);border-color:transparent;background:var(--ok-soft)}.hl-pass.is-pass::before{background:var(--ok-fill)}
.hl-pass.is-fail{color:var(--danger-ink);border-color:transparent;background:var(--danger-soft)}.hl-pass.is-fail::before{background:var(--danger-bg)}
.hl-result__card .hl-pass{font-size:var(--fs-2);padding:4px 14px}
.hl-skipped{color:var(--ink-3)}
.hl-result__actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:4px}
.hl-result__actions .sk-btn{margin-top:0}
/* ch-067: «کارنامهٔ پایان» — نوار پایان‌یافته/مرور، دکمهٔ کارنامه روی کارت نتیجه و دکمهٔ مرور در کارت مرحلهٔ تمام‌شده */
.hl-result__hint{margin:-4px 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3)}
/* ch-073: گزارش سناریوها از نتیجهٔ رسمی سرور؛ کارت پایان قابل مرور و اسکرول است. */
.hl-result{overflow-y:auto;align-items:safe center}
.hl-result__card.has-scenarios{width:min(1040px,100%);max-height:100%;overflow-y:auto;padding:24px;text-align:start}
.hl-result__card.has-scenarios>.hl-result__msg,.hl-result__card.has-scenarios>.hl-result__hint{align-self:stretch}
.hl-scenario-report{display:flex;flex-direction:column;gap:10px;width:100%;min-width:0;text-align:start}
.hl-scenario-report h3{margin:6px 0 0;font-size:var(--fs-3);font-weight:800;color:var(--ink)}
.hl-scenario-report__scroll{width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:var(--r)}
.hl-scenario-table{width:100%;border-collapse:collapse;font:inherit;font-size:var(--fs-1);line-height:1.8;text-align:start}
.hl-scenario-table th,.hl-scenario-table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top;text-align:start;white-space:normal}
.hl-scenario-table thead th{background:var(--s2);font-weight:700;color:var(--ink-2)}
.hl-scenario-table tbody th{min-width:13em;font-weight:600;color:var(--ink)}
.hl-scenario-table tbody td{min-width:5em;color:var(--ink-2)}
.hl-scenario-table tr:last-child th,.hl-scenario-table tr:last-child td{border-bottom:0}
.hl-scenario-table--simple th:first-child{width:76%}
.hl-scenario-table--simple td{width:24%;min-width:6em}
.hl-scenario-table tr.is-solved td:first-of-type{color:var(--ok-ink);font-weight:700}
.hl-scenario-table tr.is-exhausted td:first-of-type{color:var(--danger-ink);font-weight:700}
.hl-scenario-report__note{margin:0;font-size:var(--fs-1);line-height:1.9;color:var(--ink-3)}
.hl-score-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:0;width:100%}
.hl-score-breakdown>div{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--s2)}
.hl-score-breakdown dt{font-size:var(--fs-1);line-height:1.7;color:var(--ink-3)}
.hl-score-breakdown dd{margin:3px 0 0;font-size:var(--fs-2);font-weight:800;color:var(--ink)}
@media(max-width:640px){
  .hl-result__card.has-scenarios{padding:16px;max-height:100%}
  .hl-scenario-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .hl-scenario-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;border-bottom:1px solid var(--line)}
  .hl-scenario-table tbody tr:last-child{border-bottom:0}
  .hl-scenario-table tbody th{grid-column:1/-1;min-width:0;padding:0 0 6px}
  .hl-scenario-table tbody td{display:block;min-width:0;padding:3px 4px;border:0;overflow-wrap:anywhere}
  .hl-scenario-table tbody td::before{display:block;content:attr(data-label);font-size:var(--fs-1);color:var(--ink-3);font-weight:400}
  .hl-scenario-table tbody th{border:0}
  .hl-scenario-table--simple tbody tr{grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .hl-scenario-table--simple tbody th{grid-column:auto;padding:0;width:auto}
  .hl-scenario-table--simple tbody td{width:auto;padding:0;min-width:0}
  .hl-scenario-table--simple tbody td::before{display:none}
  .hl-result__summary>div{padding:10px 4px}
  .hl-result__summary dd{font-size:var(--fs-2)}
}
.hl-bar.is-done .hl-timer{font-size:var(--fs-2);font-weight:700;color:var(--ink-3)}
.hl-bar.is-done .hl-bar__prog i{background:var(--ink-3)}
.hl-timer.is-done{direction:rtl}
.hl-badge--done::before{background:var(--ok-fill)}
/* ch-068: پایان مهلت — صفحه باز می‌ماند؛ برچسب زرد */
.hl-badge--timeup{color:var(--gold-ink);background:var(--gold);padding:2px 10px;border-radius:999px;font-weight:800}.hl-badge--timeup::before{background:var(--gold-ink)}
/* ch-069: وضعیت اتصال فایل در پیش‌نمایش طراح */
.hl-badge--conn{padding:2px 10px;border-radius:999px;font-weight:800;border:1px solid currentColor;cursor:help}
.hl-badge--conn.is-warn{color:var(--warn-ink)}.hl-badge--conn.is-bad{color:var(--danger-ink)}
.hl-review{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.hl-review .sk-btn svg{width:15px;height:15px}
.hl-review__note{font-size:var(--fs-1);line-height:1.8}
.hl-review [data-hl-msg]{flex-basis:100%}
/* ch-056: رد کردن مرحله در چالش «به ترتیب» */
.ch-stepskip{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:18px;padding-top:14px;border-top:1px dashed var(--line)}
.ch-stepskip .sk-btn svg{width:15px;height:15px;transform:scaleX(-1)}
.ch-stepskip__n{font-size:var(--fs-1);color:var(--ink-3);line-height:1.8}
.ch-stepskip__done{margin-top:14px}
body.hl-open{overflow:hidden}

/* دفاع از راه‌حل (ch-049 فاز ۱۰): سرصفحهٔ فلت روی زمینه، یک برگه، زمان‌سنج با نوار */
.ch-defense{display:flex;flex-direction:column;gap:var(--gap);max-width:780px;margin:0 auto;width:100%;padding-top:8px}
.df-head{display:flex;flex-direction:column;gap:4px}
.df-head .tk-meta{margin:0}
.df-head__row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px}
.df-head__t{margin:0;font-size:var(--fs-4);font-weight:800;line-height:1.5}
.df-dots{list-style:none;margin:0;padding:0;display:flex;gap:6px}
.df-dots li{width:22px;height:6px;border-radius:99px;background:var(--s4)}
.df-dots li.is-done{background:var(--ok-fill)}
.df-dots li.is-now{background:var(--accent-ui)}
.df-sheet{display:flex;flex-direction:column;gap:14px;padding:24px 32px 28px;border-radius:var(--r-lg);background:var(--s1)}
.df-sheet .ch-task__over{margin:0}
.df-time{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.df-time__t{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-2);color:var(--ink-2);white-space:nowrap}
.df-time__t .tk-ic{width:17px;height:17px;color:var(--ink-3)}
.df-time__t b{min-width:2.2ch;font-size:var(--fs-4);font-weight:800;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;text-align:center}
.df-time__bar{flex:1 1 160px;height:6px;border-radius:99px;background:var(--s3);overflow:hidden}
.df-time__bar i{display:block;height:100%;border-radius:inherit;background:var(--accent-ui);transition:width 1s linear}
.df-time.is-low .df-time__t b{color:var(--danger-ink)}
.df-time.is-low .df-time__bar i{background:var(--danger)}
.df-q{margin:0;font-size:var(--fs-h3);font-weight:700;line-height:1.9;max-width:var(--measure)}
.df-io{display:flex;flex-direction:column;gap:6px}
.df-io__h{margin:0;font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.df-io pre{margin:0;max-height:260px;overflow:auto}
.df-form{display:flex;flex-direction:column;gap:8px}
.df-form__l{font-size:var(--fs-2);font-weight:700}
.df-form textarea{width:100%;min-height:128px;resize:vertical}
.df-rules ul{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
@media (prefers-reduced-motion:reduce){.df-time__bar i{transition:none}}
@media (max-width:640px){.df-sheet{padding:20px 16px}.df-head__t{font-size:var(--fs-h3)}}

/* کارت مرحله در ظرف باریک (پیش‌نمایش موبایل طراح): همان چیدمان موبایل با container query */
@container (max-width:520px){
  .ch-task__head,.ch-task__body{padding-inline:16px}
  .ch-task__head{padding-top:20px}
  .ch-hints{margin-inline:16px}
  .ch-task__head h3{font-size:calc(19px*var(--zoom))}
  .ch-fields,.ch-est__in{grid-template-columns:minmax(0,1fr)}
  .ch-matchrow{grid-template-columns:minmax(0,1fr);gap:6px}
  .ch-marklist--cls .ch-markitem{flex-wrap:wrap;padding-bottom:10px}
  .ch-markitem__sel{width:100%}
  .ch-form{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
  .ch-form .sk-btn,.ch-acts .sk-btn,.ch-answer .sk-btn{width:100%}
  .ch-acts,.ch-answer{flex-direction:column;align-items:stretch;max-width:none}
  .ch-acts__note{flex:none}
  .tk-up__row{flex-direction:column;align-items:stretch}
  .tk-up__btn{justify-content:center}
  .ch-matrix,.ch-matrix tbody,.ch-matrix tr{display:block;width:100%}
  .ch-matrix thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .ch-matrix tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .ch-matrix th[scope=row]{grid-column:1/-1;display:block;min-width:0;height:auto;padding:0;border:0}
  .ch-matrix td{display:flex;flex-direction:column;gap:4px;width:auto;height:auto;padding:0;border:0;white-space:normal}
  .ch-matrix td::before{content:attr(data-label);font-size:12px;color:var(--ink-3);font-weight:600}
  .ch-matrix .sk-input{width:100%}
  .hl-tiers{min-width:0;width:100%}
}

/* مهلت آزمون skills در سرصفحهٔ فضای حل (ch-050) */
.lab-head__due{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-1);color:var(--ink-2);white-space:nowrap}
.lab-head__due .tk-ic{width:15px;height:15px;color:var(--warn)}
@media (max-width:1240px) and (min-width:861px){.lab-head__due-l{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}}

/* ---------- راهنمای زندهٔ اجزا (panel/styleguide) ---------- */
.sg-rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-4) var(--sp-5);padding:24px;border-radius:var(--r-lg);background:var(--s1)}
.sg-rules b{display:block;font-size:var(--fs-3);font-weight:800;margin-bottom:4px}
.sg-rules p{margin:0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.sg-rules .ch-mono{font-size:12px;unicode-bidi:isolate}
.sg-contrast{margin-top:12px;max-height:520px;overflow:auto}
.sg-dot{display:inline-block;width:12px;height:12px;border-radius:50%;vertical-align:-1px;margin-inline-end:6px;box-shadow:0 0 0 1px var(--line)}
.sg-panes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-4);align-items:start}
.sg-pane{background:var(--bg);color:var(--ink);border-radius:var(--r-xl);padding:24px;display:flex;flex-direction:column;gap:var(--sp-5);box-shadow:inset 0 0 0 1px var(--line)}
.sg-pane__h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sg-pane__h b{font-size:var(--fs-h3);font-weight:800}
.sg-pane__h span{font-size:var(--fs-1)}
.sg-sec{display:flex;flex-direction:column;gap:12px}
.sg-h{margin:0;font-size:var(--fs-1);font-weight:600;color:var(--ink-3)}
.sg-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sg-ui{margin:0;font-size:var(--fs-2)}
.sg-sec p{margin:0}
.sg-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.sg-sw{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-1)}
.sg-sw i{display:block;height:36px;border-radius:var(--r);box-shadow:inset 0 0 0 1px var(--line)}
.sg-sw b{font-weight:600;margin-top:4px}
.sg-sw code{font-size:11px;color:var(--ink-3);text-align:end}
.sg-modal{width:100%;box-shadow:var(--shadow-pop)}
.sg-steps{display:flex;flex-direction:column;gap:4px}
.sg-steps .lab-step::after{display:none}
.sg-steps .lab-step{cursor:default}
.sg-pane .tk-field{margin-bottom:0}
@media (max-width:1200px){.sg-panes{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.sg-pane{padding:16px}.sg-rules{padding:16px}}

/* ============================================================================
   واکنش‌گرا
   ============================================================================ */
@media (max-width:1240px){:root{--steps-w:236px;--drawer-w:340px}.lab-track{width:200px}.lab-head{gap:12px}}
@media (max-width:1100px){
  .lab-shell .lab-side{width:var(--side-rail)}
  .lab-shell .lab-side__brand{padding:0;justify-content:center}
  .lab-shell .lab-side__brand .lab-side__logo{display:none}
  .lab-shell .lab-side__mark{display:block}
  .lab-shell .lab-nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .lab-shell .lab-side__collapse{display:none}
  .lab-shell .lab-nav-link{justify-content:center;padding:0}
  /* تبلت: نوار ابزار همان ستون باریک کنار برگه می‌ماند؛ کشو شناور کنار آن باز می‌شود */
  .lab-drawer{position:fixed;inset-inline-end:84px;top:calc(var(--topbar-h) + 12px);bottom:16px;width:min(var(--drawer-w),calc(100vw - 120px));height:auto;z-index:70;box-shadow:var(--shadow-pop);transition:opacity .2s;pointer-events:none}
  .lab-drawer.is-open{pointer-events:auto}
  .lab-drawer__in{width:100%}
  .lab-ibtn--side{display:none}
  .lab-shell .lab-side__nav{overflow:visible}
  .lab-shell .lab-nav-link:hover .lab-nav-label,.lab-shell .lab-nav-link:focus-visible .lab-nav-label{position:absolute;inset-inline-start:calc(100% + 12px);top:50%;transform:translateY(-50%);width:auto;height:auto;clip:auto;overflow:visible;padding:5px 10px;border-radius:6px;background:var(--pop-bg);color:var(--pop-ink);font-size:var(--fs-1);font-weight:600;line-height:1.6;box-shadow:var(--shadow-pop);z-index:60;white-space:nowrap;pointer-events:none}
}
@media (max-width:1024px){.ch-side,.ch-sticky{position:static}}
@media (max-width:1060px){
  .st-body{grid-template-columns:minmax(0,1fr)}
  .st-aside{grid-column:1;grid-row:auto;position:static}
  .st-main{grid-column:1;grid-row:auto}
}
@media (max-width:900px){
  .lab-two,.ch-two{grid-template-columns:minmax(0,1fr)}
  .lab-aside--sticky{position:static}
  .lab-cards--3{grid-template-columns:minmax(0,1fr)}
  .lab-row{grid-template-columns:minmax(0,1fr) auto}
  .lab-row .muted{display:none}
  .chd-split{grid-template-columns:minmax(0,1fr)}
  .chd-list{position:static}
  .chh-grid2,.chh-grid3{grid-template-columns:minmax(0,1fr)}
  .ch-typegrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chh-template{grid-template-columns:minmax(0,1fr)}
  .lk-body{grid-template-columns:minmax(0,1fr)}.lk-toc{position:static}.lk-grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .lab-content{padding:20px 16px 48px}
  .lab-content--fixed{height:auto;padding:12px 12px 120px}
  .lab-ws{display:block}
  .lab-grid{display:flex;flex-direction:column}
  .lab-task__scroll{overflow:visible}
  .lab-steps{overflow:visible}
  .lab-ibtn--menu{display:grid}
  .lab-ibtn--side{display:none}
  .lab-side{position:fixed;inset-inline-start:0;top:0;transform:translateX(100%);transition:transform .25s var(--ease);width:var(--side-w)!important;box-shadow:var(--shadow-pop)}
  .lab-side.is-open{transform:none}
  .lab-shell .lab-side .lab-side__brand{padding:0 20px;justify-content:flex-start}
  .lab-shell .lab-side .lab-side__brand .lab-logo--day{display:block}.lab-shell .lab-side .lab-side__mark{display:none}
  [data-theme="dark"] .lab-shell .lab-side .lab-side__brand .lab-logo--day{display:none}[data-theme="dark"] .lab-shell .lab-side .lab-side__brand .lab-logo--night{display:block}
  .lab-side .lab-side__close{display:grid}
  .lab-shell .lab-side .lab-nav-label{position:static;width:auto;height:auto;overflow:visible;clip:auto}.lab-shell .lab-side .lab-nav-link{justify-content:flex-start;padding:0 12px}
  .lab-role__btn small{display:none}
  .lab-role__btn{padding:0 10px;gap:6px}
  .lab-shell .lab-side .lab-side__nav{overflow:auto}
  .lab-shell .lab-side .lab-nav-link:hover .lab-nav-label,.lab-shell .lab-side .lab-nav-link:focus-visible .lab-nav-label{position:static;transform:none;padding:0;background:none;color:inherit;box-shadow:none;font-size:inherit;font-weight:inherit}
  .lab-ibtn--focus .lab-ibtn__t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .lab-ibtn--focus{width:36px;padding:0;justify-content:center}
  .lab-topbar{padding:0 12px}
  .lab-topbar [data-tip]::after{display:none}
  .ch-subnav,.tk-tabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .ch-subnav::-webkit-scrollbar,.tk-tabs::-webkit-scrollbar{display:none}
  .ch-subnav .sk-btn,.tk-tabs>a,.tk-tabs>button{flex:none}
  .lab-head{grid-template-columns:minmax(0,1fr);min-height:0;padding:4px 2px 12px;gap:10px}
  .lab-head__end{justify-content:flex-start;flex-wrap:wrap;gap:10px 16px}
  .lab-track{width:100%}
  .lab-track__bar{flex:1;width:auto}
  /* موبایل: فهرست مرحله‌ها یک ردیف شماره؛ عنوان‌ها فقط برای صفحه‌خوان (عنوان مرحلهٔ جاری بالای برگه است) */
  .lab-steps{gap:6px}
  .lab-steps__h{padding:0 2px}
  .lab-steps__list{flex-direction:row;overflow-x:auto;gap:4px;padding:2px 2px 6px;scrollbar-width:none}
  .lab-steps__list::-webkit-scrollbar{display:none}
  .lab-step{display:grid;place-items:center;grid-template-columns:auto;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border-radius:50%}
  .lab-step.is-current,.lab-step:hover:not(.is-locked){background:transparent}
  .lab-step>span:not(.lab-step__n){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .lab-step__n{width:32px;height:32px;font-size:13px}
  .lab-step.is-current .lab-step__n{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ui) 30%,transparent)}
  .lab-steps__foot{display:none}
  .ch-task__head,.ch-task__body,.lab-task__foot{padding-inline:16px}
  .ch-task__head{padding-top:20px}
  .ch-hints{margin-inline:16px}
  .ch-task__head h3{font-size:calc(19px*var(--zoom))}
  /* نوار ابزار: پایین صفحه، شناور؛ کشو به‌شکل برگهٔ پایین */
  .lab-tools{position:fixed;inset-inline:12px;bottom:12px;height:auto;z-index:70;display:block}
  .lab-strip{flex-direction:row;width:100%;height:52px;padding:0 6px;justify-content:space-around;align-items:center;background:var(--s1);border-radius:14px;box-shadow:var(--shadow-pop)}
  .lab-strip__sep{width:1px;height:24px;margin:0 4px}
  .lab-tool__tip{display:none}
  .lab-tool__badge,.lab-tool__dot{box-shadow:0 0 0 2px var(--s1)}
  .lab-drawer{inset-inline:12px;top:auto;width:auto;bottom:76px;height:min(70vh,640px)}
  .ch-fields,.ch-est__in{grid-template-columns:minmax(0,1fr)}
  .ch-matchrow{grid-template-columns:minmax(0,1fr);gap:6px}
  .ch-marklist--cls .ch-markitem{flex-wrap:wrap;padding-bottom:10px}
  .ch-markitem__sel{width:100%}
  .ch-form{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
  .ch-form .sk-btn{width:100%}
  .ch-acts,.ch-answer{flex-direction:column;align-items:stretch;max-width:none}
  .ch-acts .sk-btn,.ch-answer .sk-btn{width:100%}
  .ch-acts__note{flex:none}
  /* ماتریس در موبایل: هر مورد یک بلوک؛ ویژگی‌ها با برچسب خودشان زیر هم */
  .ch-matrix,.ch-matrix tbody,.ch-matrix tr{display:block;width:100%}
  .ch-matrix thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .ch-matrix tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;padding:12px 0;border-bottom:1px solid var(--line)}
  .ch-matrix tbody tr:last-child{border-bottom:0}
  .ch-matrix th[scope=row]{grid-column:1/-1;display:block;min-width:0;height:auto;padding:0;border:0}
  .ch-matrix td{display:flex;flex-direction:column;gap:4px;width:auto;height:auto;padding:0;border:0;white-space:normal}
  .ch-matrix td::before{content:attr(data-label);font-size:12px;color:var(--ink-3);font-weight:600}
  .ch-matrix .sk-input{width:100%}
  .ch-matrix tbody tr:hover th,.ch-matrix tbody tr:hover td{background:transparent}
  .tk-up__row{flex-direction:column;align-items:stretch}
  .tk-up__btn{justify-content:center}
  .tk-up__name{max-width:none;text-align:center}
  .tk-modal{padding:0;align-items:flex-end}
  .tk-modal__box{width:100%;border-radius:var(--r-xl) var(--r-xl) 0 0}
  .tk-modal__f .sk-btn{flex:1}
  .ch-focus__pager{position:sticky;bottom:76px;z-index:20;margin-top:12px;border-radius:var(--r-lg);padding:8px 10px;box-shadow:var(--shadow-pop)}
  .ch-pager__btn{padding:0 10px}
  .ch-pager__btn span{font-size:var(--fs-1)}
  .ch-advance{position:fixed;inset-inline:12px;bottom:140px}
  body.is-lab .ch-toasts{bottom:148px}
  .ch-finish{padding:20px 16px}
  .ch-term__screen{max-height:60vh}.ch-term__input,.ch-ed__area{font-size:16px}.ch-term__sub{display:none}
  .lab-pagehead__title,.ch-panel-head h1,.ch-hero h1{font-size:var(--fs-4)}
}
@media (max-width:760px){
  .ch-hero__aside,.ch-hero__aside--stack{flex-direction:row;flex-wrap:wrap;min-width:0}
  .ch-hero__aside .ch-stat{flex:1 1 140px}
  .ch-panel-head{flex-direction:column;align-items:flex-start;gap:12px}
  .ch-panel-head__acts{width:100%}
  .ch-panel-head__acts .sk-btn{flex:1 1 auto}
}
@media (max-width:720px){
  .chv-lab__f--id,.chv-lab__f--kind,.chv-lab__f--tol{flex:1 1 45%}
  .chv-lab__tier{gap:6px}
  .chv-lab__tier .chv-lab__tin{flex:0 0 64px!important}
  .chv-lab__pts{flex:1 1 100%!important;order:9;margin-top:-2px}
}
@media (max-width:700px){
  .chv-tr{flex-wrap:wrap}
  .chv-tr>div{flex:1 1 45%!important}
  .chv-opt,.chv-region{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ch-hero__aside{width:100%;justify-content:space-between}
  .chh-actions{flex-wrap:wrap}
  .chh-actions .sk-btn{flex:1 1 auto}
  .ch-toolbar{flex-direction:column;align-items:stretch}
  .ch-toolbar .sk-input{width:100%}
  .chh-qgrid,.ch-typegrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:1100px){
  .dz-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pv-body{grid-template-columns:minmax(0,1fr)}
  .pv-toc{position:static;max-height:none;overflow:visible}
  .pv-toc ol{flex-direction:row;flex-wrap:wrap;gap:6px}
  .pv-toc a{grid-template-columns:24px auto auto;min-height:32px;padding:2px 10px 2px 6px;border-radius:99px;box-shadow:inset 0 0 0 1px var(--line)}
  .pv-toc__t{max-width:160px}
}
@media (max-width:640px){
  .pv-bar{position:static}
  .pv-facts li{padding:0 10px}
  .pv-intro,.pv-ready{padding:20px}
  .pv-notes{margin:0 16px}
  .pv-toc__t{display:none}
  .pv-toc__end .pv-toc__t{display:block}
  .pv-view{display:none}
}
@media (max-width:900px){.pd-grid,.dz-grid,.dz-grid--2{grid-template-columns:minmax(0,1fr)}}
/* فهرست چالش‌های طراح در موبایل: هر ردیف یک کارت */
@media (max-width:1240px){.dl-lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.dl-acts .sk-btn--ghost{padding:0 9px}.dl-date{white-space:normal;min-width:96px}}
@media (max-width:760px){
  .dl-wrap{overflow:visible;background:var(--s1)}
  .dl-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
  .dl-table,.dl-table tbody{display:block;width:100%}
  .dl-table tr{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:16px;border-bottom:1px solid var(--line)}
  .dl-table tbody tr:last-child{border-bottom:0}
  .dl-table td{display:block;height:auto;padding:0;border:0}
  .dl-table tbody tr:hover td{background:transparent}
  .dl-main{flex:1 1 100%;min-width:0}
  .dl-num,.dl-date{font-size:var(--fs-1);color:var(--ink-2)}
  .dl-num::before,.dl-date::before{content:attr(data-label) " ";color:var(--ink-3)}
  .dl-why{max-width:none}
  .dl-state{white-space:normal;flex:1 1 100%}
  .dl-acts{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px;white-space:normal}
  .dl-acts>*+*{margin:0}
  .dl-lbl{position:static;width:auto;height:auto;overflow:visible;clip:auto}
}
@media (max-width:640px){
  .dz-check{padding:20px}
  .dz-steps{grid-template-columns:minmax(0,1fr)}
  .dz-check__bar{width:100%}
  .dz-attn__i{grid-template-columns:32px minmax(0,1fr)}
  .dz-attn__i>.sk-btn{grid-column:2;justify-self:start}
  .dz-feed__i{grid-template-columns:28px minmax(0,1fr)}
  .dz-feed__i time{grid-column:2}
  .pd-title{font-size:var(--fs-4)}
  .pd-next{padding:22px 20px 22px 20px}
  .pd-next__acts,.pd-next__acts .sk-btn--lg{width:100%}
  .pd-next__acts .sk-btn--lg{min-width:0}
  .pd-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pd-stat+.pd-stat{border-inline-start:0}
  .pd-stat:nth-child(even){border-inline-start:1px solid var(--line)}
  .pd-stat:nth-child(n+3){border-top:1px solid var(--line)}
  .pd-stat{padding:14px 16px;gap:10px}
  .pd-stat__ic{width:34px;height:34px;border-radius:10px}
  .pd-stat b{font-size:var(--fs-4)}
  .pd-card{padding:20px}
  .pd-bars{gap:3px;height:160px}
  .pd-bar__v{font-size:10px}
  .pd-row{grid-template-columns:minmax(0,1fr) auto}
  .pd-row__go{display:none}
  .st-main,.st-aside{padding:20px}
  .st-hero{padding:22px 20px 20px}
  .st-title{font-size:calc(24px*var(--zoom))}
  .st-sum{font-size:var(--fs-2)}
  .st-step{grid-template-columns:28px minmax(0,1fr);gap:12px}
  .st-step__n{width:28px;height:28px}
  .st-step__h{grid-column:2}
  .hl-bar{height:auto;flex-wrap:wrap;padding:8px 10px}.hl-bar__t b{max-width:60vw}.hl-result{inset:0}
  .chh-summary>div+div,.ch-int-grid>div+div{border-inline-start:0}
}
@media (max-width:600px){
  .ch-row__grid{grid-template-columns:minmax(0,1fr)}
  .chh-hintrow,.chh-hintrow.has-del{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:480px){
  .lab-ibtn--txt,.lab-prefs__sep{display:none}
  .chh-qgrid,.ch-typegrid,.ch-grid,.ch-grid--3{grid-template-columns:minmax(0,1fr)}
}
@media (pointer:coarse){
  .sk-btn,.ch-upload__btn,.ch-scenario__opt,.chh-qcard,.ch-markitem__lbl,.ch-ranklist li,.ch-matchrow,.ch-step{min-height:var(--ctl)}
  .sk-btn--primary{min-height:44px}
  .lab-ibtn{width:44px;height:44px}
}

/* ============================================================================
   مهارت‌های فکری (ch-063، فاز ۱): برچسب مهارت، کارنامهٔ آموزشی، خط روند، نمایهٔ مهارت،
   کارت‌های مفهوم و برچسب‌گذاری چالش‌های فعلی. رنگ کم: برچسب‌ها خنثی؛ فقط سنجه‌ها رنگ اصلی و نشان‌ها طلایی.
   ============================================================================ */
:root,[data-theme="light"]{--medal-silver:#8F98A8;--medal-bronze:#B26A2E}
[data-theme="dark"]{--medal-silver:#AEB5C2;--medal-bronze:#D38B4C}
.th-chip{display:inline-flex;align-items:center;gap:4px;min-height:22px;padding:0 9px;border-radius:99px;background:var(--s3);color:var(--ink-2);font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap}
a.th-chip{transition:background .15s,color .15s}
a.th-chip:hover{background:var(--s4);color:var(--ink)}
.th-chip--ghost{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink-3)}
a.th-chip--ghost:hover{background:var(--s2);color:var(--accent)}
.th-skills{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0}
.th-skills__k{font-size:var(--fs-1);color:var(--ink-3);margin-inline-end:2px}
.th-skills--hub{margin-top:6px}
.st-skills{margin-top:10px}
.th-over{color:var(--ink-2)}
.th-lead{margin:0 0 16px;max-width:var(--measure);font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.th-note{margin-bottom:12px}

/* کارنامهٔ یک مرحله (_report.html): بخشی با خط باریک زیر کار مرحله؛ «اصل پشت مرحله» با خط رنگی کنار */
.ch-report{display:flex;flex-direction:column;gap:14px;padding-top:18px;border-top:1px solid var(--line)}
/* متن‌ها در اندازهٔ خواندن؛ جدول «پاسخ شما کنار پاسخ خبره» تمام عرض کارت */
.ch-report>.ch-report__b,.ch-report>.ch-report__note,.ch-report>.ch-report__lists,.ch-report>.ch-report__pair,.ch-report>.ch-report__src{max-width:var(--measure)}
.ch-report__h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.ch-report__t{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-3);font-weight:800;color:var(--ink)}
.ch-report__t .tk-ic{width:18px;height:18px;color:var(--accent-ui)}
.ch-report__skills{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}
.ch-report__score{font-size:var(--fs-1);color:var(--ink-3);margin-inline-start:4px}
.ch-report__score b{color:var(--ink);font-weight:800}
.ch-report__k{margin:0 0 4px;font-size:var(--fs-1);font-weight:800;color:var(--ink-3)}
.ch-report__x{margin:0;font-size:var(--fs-2);line-height:1.95;color:var(--ink)}
.ch-report__b--lesson{padding-inline-start:14px;border-inline-start:3px solid var(--accent-ui)}
.ch-report__note{margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3)}
.ch-report__cmp{width:100%;overflow-x:auto;border-radius:var(--r)}
.ch-report__table{min-width:420px}
.ch-report__table th,.ch-report__table td{font-family:inherit;height:auto;padding:8px 10px;line-height:1.7;white-space:normal}
.ch-report__table tbody th{font-weight:600;color:var(--ink-2);font-size:12.5px;min-width:12em;max-width:36ch}
.ch-report__table td:nth-of-type(1){min-width:9em}
@media (max-width:640px){
  /* موبایل: هر ردیف یک بلوک — «مورد» بالا، «پاسخ شما» و «پاسخ خبره» زیرش با برچسب */
  .ch-report__table{min-width:0}
  .ch-report__table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ch-report__table tbody tr{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}
  .ch-report__table tbody tr:last-child{border-bottom:0}
  .ch-report__table tbody th,.ch-report__table td{display:block;min-width:0;max-width:none;padding:0;border:0}
  .ch-report__table td[data-label]::before{content:attr(data-label) ": ";font-size:12px;font-weight:600;color:var(--ink-3)}
}
.ch-report__table tbody tr:hover td{background:transparent}
.ch-report__mark{display:inline-block;width:1.2em;font-weight:800}
.ch-report__mark:empty{display:none}
.ch-report__table tr.is-ok .ch-report__mark{color:var(--ok)}
.ch-report__table tr.is-bad .ch-report__mark{color:var(--danger)}
.ch-report__lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
.ch-report__lists ol,.ch-report__lists ul{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-2);line-height:1.8}
.ch-report__pair{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
.ch-report__pair dt{font-size:var(--fs-1);font-weight:800;color:var(--ink-3)}
.ch-report__pair dd{margin:2px 0 0;font-size:var(--fs-2);line-height:1.8;overflow-wrap:anywhere}
.ch-report__src{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-2)}
.ch-report__src b{font-weight:600;color:var(--ink-3)}
@media (max-width:640px){.ch-report__lists,.ch-report__pair{grid-template-columns:1fr}}

/* کارت مفهوم: یک خط عنوان؛ با باز کردن، تعریف و مثال */
.th-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.th-card+.th-card{border-top:1px solid var(--line)}
.ch-report .th-card summary,.th-card summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;cursor:pointer;list-style:none;font-size:var(--fs-2);font-weight:400;color:var(--ink)}
.th-card summary::-webkit-details-marker{display:none}
.ch-report .th-card summary::before{content:none}
.th-card summary b{font-weight:700;color:var(--ink)}
.th-card__more{font-size:var(--fs-1);color:var(--accent);font-weight:600;flex:none}
.th-card details[open] .th-card__more{color:var(--ink-3)}
.th-card p{margin:0 0 10px;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.th-card__ex{color:var(--ink-3)!important}
.th-card__ex span{font-weight:700;color:var(--ink-2)}

/* کارنامهٔ کل تلاش: نوار تاشو زیر نوار نتیجه */
.th-sum{flex:none;margin-bottom:var(--gap);border-radius:var(--r-lg);background:var(--s1)}
.th-sum__s{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;min-height:52px;padding:10px 18px;cursor:pointer;list-style:none}
.th-sum__s::-webkit-details-marker{display:none}
.th-sum__t{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-2)}
.th-sum__t .tk-ic{width:18px;height:18px;color:var(--accent-ui)}
.th-sum__t b{font-weight:800}
.th-sum__skills{display:flex;flex-wrap:wrap;gap:6px 18px;flex:1 1 280px}
.th-sum__more{margin-inline-start:auto;color:var(--ink-3);display:inline-flex;transition:transform .2s var(--ease)}
.th-sum__more .tk-ic{width:18px;height:18px}
.th-sum[open] .th-sum__more{transform:rotate(180deg)}
.th-sum__b{display:flex;flex-direction:column;gap:14px;padding:4px 18px 18px;border-top:1px solid var(--line)}
.th-sum__note{margin:10px 0 0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3);max-width:var(--measure)}
.th-meter{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-1);color:var(--ink-2)}
.th-meter__l{white-space:nowrap}
.th-meter__bar{width:64px;height:6px;border-radius:99px;background:color-mix(in srgb,var(--accent-ui) 18%,var(--s2));overflow:hidden}
.th-meter__bar i{display:block;height:100%;border-radius:99px;background:var(--accent-ui)}
.th-meter b{font-weight:800;color:var(--ink);min-width:3ch}
.th-time{display:flex;flex-direction:column;gap:8px}
.th-time__h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:10px 0 0;font-size:var(--fs-1);color:var(--ink-3)}
.th-time__h b{font-size:var(--fs-2);font-weight:800;color:var(--ink)}
.th-time__wrap{overflow-x:auto;border-radius:var(--r)}
.th-time__t{min-width:520px}
.th-time__t th,.th-time__t td{font-family:inherit;height:auto;padding:8px 10px;white-space:normal;line-height:1.7}
.th-time__t tbody th{font-weight:600;color:var(--ink);font-size:12.5px}
.th-time__n{display:inline-grid;place-items:center;width:22px;height:22px;margin-inline-end:8px;border-radius:50%;background:var(--s3);font-size:11px;font-weight:800;color:var(--ink-2)}
.th-time__bar{width:110px}
.th-time__bar span{display:block;height:6px;border-radius:99px;background:var(--s3);overflow:hidden}
.th-time__bar i{display:block;height:100%;background:var(--accent-ui);border-radius:99px}
.th-time__rv{display:block;color:var(--ink-3);font-size:11.5px}
.th-time__t tbody tr:hover td{background:transparent}

/* نمایهٔ مهارت‌های فکری (داشبورد و صفحهٔ اشتراک): هر مهارت یک ردیف — نام و نشان، سنجه، شواهد، تاریخچهٔ کوچک */
.th-prof{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.th-prof__row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:12px 16px;padding:14px 0}
.th-prof__row+.th-prof__row{border-top:1px solid var(--line)}
.th-prof__ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent-ink)}
.th-prof__ic .tk-ic{width:19px;height:19px}
.th-prof__row.is-empty .th-prof__ic{background:var(--s3);color:var(--ink-3)}
.th-prof__main{display:flex;flex-direction:column;gap:4px;min-width:0}
.th-prof__l{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;font-size:var(--fs-2)}
.th-prof__l b{font-weight:800;color:var(--ink)}
.th-prof__meter{display:flex;align-items:center;gap:10px;max-width:420px}
.th-prof__bar{flex:1;height:8px;border-radius:99px;background:color-mix(in srgb,var(--accent-ui) 18%,var(--s2));overflow:hidden}
.th-prof__bar i{display:block;height:100%;border-radius:99px;background:var(--accent-ui)}
.th-prof__v{font-size:var(--fs-3);font-weight:800;color:var(--ink);min-width:2.5ch}
.th-prof__ev{display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3)}
.th-prof__trend{font-weight:600;color:var(--ink-2)}
.th-prof__trend.is-up{color:var(--ok)}
.th-prof__trend.is-down{color:var(--warn)}
.th-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:99px;box-shadow:inset 0 0 0 1px var(--line-2);font-size:12px;font-weight:700;color:var(--ink-2)}
.th-badge .tk-ic{width:13px;height:13px}
.th-badge--gold .tk-ic{color:var(--gold);fill:var(--gold)}
.th-badge--silver .tk-ic{color:var(--medal-silver);fill:var(--medal-silver)}
.th-badge--bronze .tk-ic{color:var(--medal-bronze);fill:var(--medal-bronze)}
.th-spark{display:block;flex:none;overflow:visible}
.th-spark__base{stroke:var(--line);stroke-width:1}
.th-spark__line{fill:none;stroke:var(--line-2);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.th-spark__hit{fill:transparent;cursor:default}
.th-spark__last{fill:var(--accent-ui);stroke:var(--s1);stroke-width:2}
@media (max-width:640px){.th-prof__row{grid-template-columns:36px minmax(0,1fr)}.th-spark{grid-column:2}}

/* کتابخانهٔ کارت‌های مفهوم */
.th-lib{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.th-lib__bar{margin-bottom:8px}
.th-lib__count{margin:4px 0 8px;font-size:var(--fs-1);color:var(--ink-3)}
.th-libcards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.th-libcard{display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-radius:var(--r-lg);background:var(--s1)}
.th-libcard__h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.th-libcard__h b{font-size:var(--fs-2);font-weight:800;margin-inline-end:auto}
.th-libcard p{margin:0;font-size:var(--fs-2);line-height:1.85;color:var(--ink-2)}
.th-libcard__by{font-size:12px;color:var(--ink-3)}
.th-lib__new{position:sticky;top:16px}
.th-lib__edit{max-width:640px}
@media (max-width:980px){.th-lib{grid-template-columns:1fr}.th-lib__new{position:static}}

/* ویرایشگر مرحله، قدم «کارنامه»: پنج مهارت با وزن، و انتخاب کارت مفهوم */
.th-skillpick{display:flex;flex-direction:column;gap:2px}
.th-skillpick__row{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.th-skillpick__l{display:flex;flex-direction:column;gap:2px;cursor:pointer}
.th-skillpick__l b{font-size:var(--fs-2);font-weight:700}
.th-skillpick__l small{font-size:12px;color:var(--ink-3);line-height:1.6}
.th-cardpick{display:flex;flex-direction:column;gap:8px}
.th-cardpick__q{max-width:360px}
.th-cardpick__list{list-style:none;margin:0;padding:6px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px 16px;max-height:260px;overflow:auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.th-cardpick__list li{display:flex;align-items:center;gap:8px;min-height:34px;font-size:var(--fs-2)}
.th-cardpick__list label{cursor:pointer}
.th-cardpick__count{margin:0;font-size:var(--fs-1)}

/* برچسب‌گذاری چالش‌های فعلی */
.th-tags__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.th-tags__ch{padding:16px 20px;border-radius:var(--r-lg);background:var(--s1)}
.th-tags__h{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 16px}
.th-tags__t{font-size:var(--fs-3);font-weight:800;color:var(--ink)}
.th-tags__t:hover{color:var(--accent)}
.th-tags__h .tk-meta{margin:2px 0 0}
.th-tags__steps{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column}
.th-tags__step{display:grid;grid-template-columns:28px minmax(0,1fr) auto auto;align-items:center;gap:8px 12px;padding:8px 0;border-top:1px solid var(--line)}
.th-tags__n{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--s3);font-size:11px;font-weight:800;color:var(--ink-2)}
.th-tags__st{font-size:var(--fs-2);min-width:0}
.th-tags__st small{display:block;font-size:12px;color:var(--ink-3)}
.th-tags__chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.th-tags__sugg{font-size:12px;color:var(--ink-3)}
.th-tags__step.is-tagged .th-tags__n{background:var(--accent-soft);color:var(--accent-ink)}
@media (max-width:720px){.th-tags__step{grid-template-columns:28px minmax(0,1fr)}.th-tags__chips,.th-tags__step>a{grid-column:2}}
.th-hubskills{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:12px}
.th-hubskills b{font-size:var(--fs-2);font-weight:700}
.th-hubskills>span{display:inline-flex;flex-wrap:wrap;gap:6px}
.pv-report .ch-report{border-top:0;padding-top:8px}
@media (prefers-reduced-motion:reduce){.th-sum__more{transition:none}}

/* ============================================================================
   ch-063 فاز ۲: تصمیم با اطلاعات ناقص، «چقدر مطمئنید؟» و ویرایشگر دیداری نوع‌های مهارت فکری.
   منطقهٔ حل بی‌رنگ می‌ماند: سطح‌ها خنثی، رنگ اصلی فقط برای خط کارت بازشده، انتخاب و فوکوس.
   ============================================================================ */
.th-dec{display:flex;flex-direction:column;gap:20px}
.th-dec__h{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin:0 0 10px;padding:0}
.th-dec__h b{font-size:var(--fs-2);font-weight:800;color:var(--ink)}
.th-dec__h small{font-size:var(--fs-1);color:var(--ink-3);line-height:1.7}
.th-dec__tablewrap{box-shadow:inset 0 0 0 1px var(--line)}
.th-dec__table{background:transparent;min-width:440px}
.th-dec__table caption{caption-side:top;text-align:start;padding:12px 16px 4px;font-size:var(--fs-1);font-weight:800;color:var(--ink-3)}
.th-dec__table caption small{font-weight:400}
.th-dec__table thead th{height:auto;padding:8px 16px;white-space:normal;vertical-align:bottom;line-height:1.6}
.th-dec__p{display:block;font-weight:400;font-size:11.5px;color:var(--ink-3)}
.th-dec__table tbody th{font-weight:600;color:var(--ink);font-size:var(--fs-2);white-space:normal}
.th-dec__table td{font-variant-numeric:tabular-nums;font-weight:600;height:46px}
.th-dec__table tbody tr:hover td{background:transparent}
.th-clock{display:flex;align-items:center;flex-wrap:wrap;gap:4px 12px;padding:10px 14px;border-radius:var(--r);background:var(--s2);font-size:var(--fs-2);line-height:1.8}
.th-clock .tk-ic{width:18px;height:18px;color:var(--ink-3)}
.th-clock small{font-size:var(--fs-1);color:var(--ink-3)}
.th-clock__t{font-size:var(--fs-3);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.th-clock.is-low .th-clock__t{color:var(--warn)}
.th-clock.is-over{box-shadow:inset 0 0 0 1px var(--line-2)}
.th-infos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.th-info{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line);min-width:0}
.th-info.is-open{box-shadow:inset 0 0 0 1px var(--line),inset -3px 0 0 var(--accent-ui)}
[dir="ltr"] .th-info.is-open{box-shadow:inset 0 0 0 1px var(--line),inset 3px 0 0 var(--accent-ui)}
.th-info__h{display:flex;align-items:flex-start;justify-content:space-between;gap:8px 12px;width:100%}
.th-info__h b{font-size:var(--fs-2);font-weight:700;line-height:1.7}
.th-info__cost{flex:none;margin-top:2px;font-size:12px;font-weight:600;color:var(--ink-3);white-space:nowrap}
.th-info__cost.is-free{color:var(--ok)}
.th-info__sig{display:flex;align-items:flex-start;gap:10px;margin:0;font-size:var(--fs-2);line-height:1.9;color:var(--ink)}
.th-info__n{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;margin-top:3px;border-radius:50%;background:var(--s3);font-size:11px;font-weight:800;color:var(--ink-2)}
.th-info__muted{margin:0;font-size:var(--fs-1);color:var(--ink-3)}
.th-dec__acc>summary{display:inline-flex;align-items:baseline;gap:8px;min-height:32px;cursor:pointer;font-size:var(--fs-2);font-weight:700;color:var(--accent)}
.th-dec__acc>summary small{font-weight:400;font-size:var(--fs-1);color:var(--ink-3)}
.th-dec__acc[open]>summary{margin-bottom:8px}
.th-dec__table--acc tbody th{font-weight:400;line-height:1.8}
.th-dec__table--acc tbody th .th-dec__p{font-weight:600}
@media (max-width:640px){
  /* جدول سود و دقت در موبایل: هر ردیف یک بلوک؛ نام کوتاه وضعیت کنار هر عدد */
  .th-dec__table{min-width:0}
  .th-dec__table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .th-dec__table tbody tr{display:flex;flex-wrap:wrap;gap:4px 16px;padding:10px 14px;border-bottom:1px solid var(--line)}
  .th-dec__table tbody tr:last-child{border-bottom:0}
  .th-dec__table tbody th{flex:1 1 100%;padding:0;height:auto;border:0;white-space:normal}
  .th-dec__table td{display:inline-flex;align-items:baseline;gap:6px;height:auto;padding:0;border:0}
  .th-dec__table td::before{content:attr(data-label);font-weight:400;font-size:12px;color:var(--ink-3)}
}
.th-opts{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.th-opts>legend{float:left;width:100%}
.th-opts>legend+*{clear:both}
.th-opt{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:10px 8px;border-top:1px solid var(--line);cursor:pointer;font-size:var(--fs-2);line-height:1.8;transition:background .12s}
.th-opt:hover{background:var(--s2)}
.th-opt input{width:18px;height:18px;margin-top:5px;flex:none;accent-color:var(--accent-bg);cursor:pointer}
.th-opt:has(input:checked){background:var(--s2)}
.th-opt:has(input:checked) span{font-weight:700}
.th-outcome{display:flex;flex-direction:column;gap:6px;padding-inline-start:14px;border-inline-start:3px solid var(--line-2);max-width:var(--measure)}
.th-outcome p{margin:0}
.th-outcome__h{font-size:var(--fs-2)}
.th-outcome__h b{font-weight:800}
.th-outcome__x{font-size:var(--fs-2);line-height:1.95;color:var(--ink-2)}
.th-outcome__n{font-size:var(--fs-2)}
.th-outcome__n b{font-size:var(--fs-3);font-weight:800;font-variant-numeric:tabular-nums}
.th-outcome__n small{color:var(--ink-3)}

/* «چقدر مطمئنید؟»: شش گزینهٔ قرصی؛ ورودی رادیو روی همان قرص می‌ماند تا اعتبارسنجی مرورگر جایش را نشان دهد */
.ch-conf{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:8px}
.ch-conf__q{padding:0;font-size:var(--fs-2);font-weight:700;color:var(--ink)}
.ch-conf__opts{display:flex;flex-wrap:wrap;gap:6px}
.ch-conf__o{position:relative;display:inline-flex}
.ch-conf__o input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.ch-conf__o span{display:inline-grid;place-items:center;min-width:58px;height:34px;padding:0 12px;border-radius:99px;box-shadow:inset 0 0 0 1px var(--line-2);font-size:var(--fs-2);font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums;transition:background .12s,color .12s}
.ch-conf__o:hover span{background:var(--s2);color:var(--ink)}
.ch-conf__o input:checked+span{background:var(--accent-bg);color:var(--on-accent);box-shadow:none}
.ch-conf__o input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.ch-conf__o input:disabled+span{opacity:.6;cursor:default}
.ch-conf__n{margin:0;font-size:12px;line-height:1.7;color:var(--ink-3);max-width:var(--measure)}
.ch-acts>.ch-conf{flex:1 1 100%}
.th-cal .th-time__h b{font-size:var(--fs-2)}

/* ویرایشگر دیداری نوع‌های مهارت فکری (kind-editors.js): هر کلید یک بخش، هر ردیف یک کارت کوچک با برچسب روی هر خانه */
.chk{display:flex;flex-direction:column;gap:18px}
.chk-intro{margin:0;font-size:var(--fs-1);line-height:1.9;color:var(--ink-2);max-width:var(--measure)}
.chk-sec{display:flex;flex-direction:column;gap:8px}
.chk-sec__h{display:flex;flex-direction:column;gap:2px}
.chk-sec__h b{font-size:var(--fs-2);font-weight:800}
.chk-sec__h small{font-size:12px;line-height:1.7;color:var(--ink-3)}
.chk-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--r);background:var(--s1)}
.chk-row__n{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;margin-top:24px;border-radius:50%;background:var(--s3);font-size:11px;font-weight:800;color:var(--ink-2)}
.chk-row__fs{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:8px 10px}
.chk-row .chv-acts{flex:0 0 auto;margin-top:22px}
.chk-f{display:flex;flex-direction:column;gap:3px;min-width:0}
.chk-f>label{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.chk-f .sk-input{height:var(--ctl);width:100%}
.chk-f textarea.sk-input{height:auto;min-height:96px;line-height:1.8;padding-top:8px}
.chk-f--sm{flex:0 0 112px}
.chk-f--md{flex:0 1 180px}
.chk-f--grow{flex:1 1 220px}
.chk-f--full{flex:1 1 100%}
.chk-singles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 12px;padding:10px 12px;border-radius:var(--r);background:var(--s1)}
.chk-sum{margin:0;font-size:12px;line-height:1.7;color:var(--ink-3)}
.chk-sum b{font-weight:800}
.chk-sum.is-ok{color:var(--ok)}
.chk-sum.is-warn{color:var(--warn)}
.chk-hint{margin:0;font-size:12px;color:var(--ink-3)}
@media (max-width:640px){.chk-row{flex-wrap:wrap}.chk-row__n{margin-top:0}.chk-row .chv-acts{margin-top:0;margin-inline-start:auto}.chk-f--sm,.chk-f--md{flex:1 1 120px}}

/* ch-063: «یا از یک قالب آماده شروع کنید» در صفحهٔ چالش جدید */
.chh-tpl{margin-top:var(--gap)}
.chh-tpl form{display:flex;flex-direction:column;gap:14px}
.chh-tpl__cat{max-width:320px}
.chh-tpl__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.chh-tpl__item{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line)}
.chh-tpl__item p{margin:0;font-size:var(--fs-2);line-height:1.85;color:var(--ink-2)}
.chh-tpl__t{display:flex;flex-direction:column;gap:2px}
.chh-tpl__t b{font-size:var(--fs-2);font-weight:800}
.chh-tpl__t small{font-size:12px;color:var(--ink-3)}
.chh-tpl__item .sk-btn{margin-top:auto}

/* ch-063 فاز ۳: قضاوت موقعیتی */
.th-sjt{display:flex;flex-direction:column;gap:14px}
.th-bw__wrap{box-shadow:inset 0 0 0 1px var(--line)}
.th-bw{background:transparent}
.th-bw thead th{height:40px}
.th-bw tbody th{font-weight:400;font-size:var(--fs-2);line-height:1.85;color:var(--ink);white-space:normal;padding:10px 16px;height:auto}
.th-bw td{height:auto}
.th-bw__c{width:84px;text-align:center!important}
.th-bw__r{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;cursor:pointer}
.th-bw__r:hover{background:var(--s2)}
.th-bw__r input{width:20px;height:20px;margin:0;accent-color:var(--accent-bg);cursor:pointer}
.th-bw tbody tr:has(input[data-bw=best]:checked) th{font-weight:700}
.th-bw tbody tr:hover td,.th-bw tbody tr:hover th{background:transparent}
.th-rate{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.th-rate__row{border-top:1px solid var(--line);padding:12px 0}
.th-rate__f{border:0;margin:0;padding:0;min-width:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px}
.th-rate__t{float:right;max-width:var(--measure);padding:0;font-size:var(--fs-2);line-height:1.85;color:var(--ink)}
[dir="ltr"] .th-rate__t{float:left}
.th-rate__opts{display:flex;gap:6px;flex:none}
.th-rate__opts .ch-conf__o span{min-width:40px;padding:0 10px}
.th-rate__legend{display:flex;justify-content:space-between;gap:12px;width:224px;margin:0 auto -6px 0;font-size:12px;color:var(--ink-3)}
[dir="ltr"] .th-rate__legend{margin:0 0 -6px auto}
.th-sjt__mine{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;width:100%}
.th-sjt__mine li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-size:var(--fs-2);line-height:1.8}
.th-sjt__mine b{flex:none;font-size:var(--fs-1);font-weight:700;color:var(--ink-2)}
@media (max-width:640px){.th-bw__c{width:64px}.th-bw tbody th{padding:10px}.th-rate__f{flex-direction:column;align-items:flex-start}.th-rate__t{float:none}.th-rate__legend{margin:0}}

/* ch-063 فاز ۳ب: برنامهٔ تحویل چالش چندروزه و موعد هر مرحله */
.th-plan__sum{flex:1 1 260px;font-size:var(--fs-2);color:var(--ink-2)}
.th-plan__end{font-size:var(--fs-1);color:var(--ink-3)}
.th-plan__form{display:flex;flex-direction:column;gap:12px}
.th-plan__rows{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.th-plan__row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 14px;padding:10px 0;border-top:1px solid var(--line)}
.th-plan__row .th-time__n{align-self:center}
.th-plan__task{flex:1 1 200px;align-self:center;font-size:var(--fs-2);font-weight:700}
.th-plan__f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-3)}
.th-plan__f .sk-input{height:var(--ctl);min-width:200px}
.th-plan__f--h .sk-input{min-width:96px}
.th-plan__f--r .sk-input{min-width:220px}
.th-plan__state{font-weight:700}
.th-plan__state.is-met{color:var(--ok)}
.th-plan__state.is-late{color:var(--warn)}
.th-plan__state.is-missed,.th-plan__t tr.is-overdue .th-plan__state{color:var(--danger-ink)}
.th-plan__chg>summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:var(--fs-1);min-height:28px;display:inline-flex;align-items:center}
.th-plan__chgform{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin-top:8px}
.ch-due{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0;font-size:var(--fs-1);color:var(--ink-2)}
.ch-due .tk-ic{width:16px;height:16px;color:var(--ink-3)}
.ch-due.is-met{color:var(--ok)}
.ch-due.is-late{color:var(--warn)}
.ch-due.is-missed,.ch-due.is-overdue{color:var(--danger-ink)}
.ch-due__chg{font-weight:600}
.th-plan__t{min-width:0}
@media (max-width:640px){
  .th-plan__f .sk-input,.th-plan__f--r .sk-input{min-width:0;width:100%}.th-plan__f{flex:1 1 140px}
  /* جدول برنامه در موبایل: هر مرحله یک بلوک؛ فرم «موعد تازه» تمام‌عرض */
  .th-plan__t thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .th-plan__t tbody tr{display:flex;flex-wrap:wrap;gap:4px 14px;padding:10px 0;border-bottom:1px solid var(--line)}
  .th-plan__t tbody th{flex:1 1 100%;padding:0;height:auto;border:0;white-space:normal}
  .th-plan__t td{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px;height:auto;padding:0;border:0;white-space:normal}
  .th-plan__t td[data-label]::before{content:attr(data-label) ":";font-size:12px;color:var(--ink-3)}
  .th-plan__t td.th-plan__chgcell{flex:1 1 100%}
  .th-plan__t .th-time__rv{flex-basis:100%}
}

/* ch-063 فاز ۴: پروندهٔ شلوغ — سندهای تاشو با سطرهای سنجاق‌شدنی */
.th-case{display:flex;flex-direction:column;gap:14px}
.th-docs{display:flex;flex-direction:column;gap:8px}
.th-doc{border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line)}
.th-doc__s{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-height:48px;padding:8px 16px;cursor:pointer;list-style:none}
.th-doc__s::-webkit-details-marker{display:none}
.th-doc__s b{font-size:var(--fs-2);font-weight:700}
.th-doc__k{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--ink-3)}
.th-doc__k .tk-ic{width:16px;height:16px}
.th-doc__cost{margin-inline-start:auto;font-size:12px;color:var(--ink-3)}
.th-doc[open]>.th-doc__s{border-bottom:1px solid var(--line)}
.th-doc__b{padding:10px 12px 14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.th-doc__lines{display:flex;flex-direction:column;width:100%}
.th-doc__gap{display:block;height:8px}
.th-pin{position:relative;display:flex;align-items:flex-start;gap:8px;cursor:pointer;border-radius:var(--r)}
.th-pin input{position:absolute;inset-inline-start:6px;top:8px;width:18px;height:18px;margin:0;opacity:0;cursor:pointer}
.th-pin__ui{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;margin-top:1px;border-radius:50%;color:var(--line-2);transition:background .12s,color .12s}
.th-pin__ui .tk-ic{width:16px;height:16px}
.th-pin:hover .th-pin__ui{background:var(--s2);color:var(--ink-2)}
.th-pin input:checked+.th-pin__ui{background:var(--accent-bg);color:var(--on-accent)}
.th-pin input:focus-visible+.th-pin__ui{outline:2px solid var(--focus);outline-offset:2px}
.th-pin.is-full input:not(:checked)+.th-pin__ui{opacity:.4}
.th-line{padding:3px 4px}
.th-line:hover{background:var(--s2)}
.th-line__t{flex:1;font-size:var(--fs-2);line-height:1.9;padding-top:2px}
.th-line:has(input:checked) .th-line__t{font-weight:600}
.th-doc--email .th-line:nth-child(-n+3) .th-line__t{color:var(--ink-3);font-size:var(--fs-1)}
.th-doc__table{background:transparent}
.th-doc__table td{font-family:inherit;white-space:nowrap}
.th-pin__cell{width:44px;padding:0 4px!important}
.th-pin--icon{justify-content:center}
.th-doc__table tr:has(input:checked) td{font-weight:700}
.th-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;width:100%;max-width:560px}
.th-bar{align-items:center;padding:3px 4px}
.th-bar:hover{background:var(--s2)}
.th-bar__l{flex:0 0 92px;font-size:var(--fs-1);color:var(--ink-2)}
.th-bar__track{flex:1;height:10px;border-radius:99px;background:var(--s3);overflow:hidden}
.th-bar__track i{display:block;height:100%;border-radius:99px;background:var(--line-2)}
.th-bar:has(input:checked) .th-bar__track i{background:var(--accent-ui)}
.th-bar__v{flex:0 0 52px;font-size:var(--fs-1);font-variant-numeric:tabular-nums;text-align:end}
.th-case__count{margin:0;font-size:var(--fs-1);color:var(--ink-2)}
.th-case__pinned{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.th-case__pinned li{display:flex;align-items:baseline;gap:8px;font-size:var(--fs-2);line-height:1.8}
.th-case__pinned .tk-ic{width:14px;height:14px;color:var(--ink-3);flex:none}
.th-case__pinned small{color:var(--ink-3);font-size:12px}

/* ch-063 فاز ۴: برآورد فرمی و علامت زدن جمله‌ها */
.th-fermi{display:flex;flex-direction:column;gap:12px}
.th-fermi__q{margin:0;font-size:var(--fs-3);font-weight:700;line-height:1.8}
.th-fx{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.th-fx__row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px}
.th-fx__op{flex:0 0 64px;height:var(--ctl);text-align:center;font-weight:800}
/* قاعدهٔ عمومی «.ch-form .sk-input» (flex:1، حداقل ۲۰۰ پیکسل) این‌جا نباید اثر کند: فیلدها داخل برچسب ستونی‌اند */
.ch-form .th-fermi .sk-input,.ch-form .th-tm .sk-input{flex:none;min-width:0}
.ch-form .th-fx select.th-fx__op,.th-fx__op--first{flex:0 0 72px;width:72px}
.ch-form .th-fx select.th-fx__op{padding-inline:10px 26px}
.th-fx__op--first{display:inline-grid;place-items:center;color:var(--ink-3)}
.th-fx__f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-3);min-width:0}
.th-fx__f .sk-input{height:var(--ctl);width:100%}
.th-fx__f--l{flex:1 1 220px}
.th-fx__f--v{flex:0 1 180px}
.th-fx__acts{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.th-fx__total{margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.th-fx__total b{font-size:var(--fs-3);font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.th-fx__range{display:flex;flex-wrap:wrap;gap:8px 12px;padding-top:12px;border-top:1px solid var(--line)}
.th-fx__range .th-fx__f{flex:1 1 220px}
.th-tm{display:flex;flex-direction:column;gap:10px}
.th-tm__doc{padding:16px 18px;border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line);max-width:var(--measure)}
.th-tm__title{margin:0 0 8px;font-size:var(--fs-3);font-weight:800}
.th-tm__p{margin:0 0 12px;font-size:var(--fs-2);line-height:2.3}
.th-tm__p:last-child{margin-bottom:0}
.th-tm__s{display:inline}
.th-tm__lbl{position:relative;cursor:pointer;border-radius:4px;padding:2px 2px;transition:background .12s;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.th-tm__lbl input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.th-tm__lbl:hover{background:var(--s2)}
.th-tm__lbl input:focus-visible+.th-tm__t{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}
.th-tm__s.is-marked .th-tm__t,.th-tm__lbl input:checked+.th-tm__t{text-decoration:underline;text-decoration-color:var(--accent-ui);text-decoration-thickness:2px;text-underline-offset:6px;background:var(--s3)}
.th-tm__type{display:inline-block;width:auto;height:30px;margin:0 6px;padding-block:0;font-size:12px;vertical-align:middle}
.th-tm__count{margin:0;font-size:var(--fs-1);color:var(--ink-2)}

/* ch-063 فاز ۵: مسئلهٔ بدتعریف — سهمیهٔ سؤال، پرسیده‌ها (سؤال و پاسخ)، بانک سؤال‌ها */
.th-frame{display:flex;flex-direction:column;gap:14px}
.th-frame__meter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.th-frame__meter b{font-weight:800;color:var(--ink)}
.th-frame__dots{display:inline-flex;gap:5px}
.th-frame__dots i{width:10px;height:10px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-2)}
.th-frame__dots i.is-on{background:var(--accent-ui);box-shadow:none}
.th-frame__sec{display:flex;flex-direction:column;gap:8px}
.th-qa{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;counter-reset:qa}
.th-qa li{counter-increment:qa;padding:10px 14px;border-radius:var(--r);background:var(--s2);border-inline-start:3px solid var(--accent-ui);max-width:var(--measure)}
.th-qa b{display:block;font-size:var(--fs-2);font-weight:700;line-height:1.8}
.th-qa b::before{content:counter(qa,persian) ". ";color:var(--ink-3);font-weight:600}
.th-qa p{margin:2px 0 0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.th-qa--done li{border-inline-start-color:var(--line-2)}
.th-bank{border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line)}
.th-bank__s{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;min-height:48px;padding:8px 16px;cursor:pointer;list-style:none}
.th-bank__s::-webkit-details-marker{display:none}
.th-bank__s b{font-size:var(--fs-2);font-weight:700}
.th-bank__s small{color:var(--ink-3);font-size:12px}
.th-bank[open] .th-sum__more{transform:rotate(180deg)}
.th-bank__list{list-style:none;margin:0;padding:0 16px 8px;border-top:1px solid var(--line)}
.th-bank__q{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--line)}
.th-bank__q:first-child{border-top:0}
.th-bank__t{flex:1 1 auto;min-width:0;font-size:var(--fs-2);line-height:1.8}
.th-bank__q form{flex:none;margin:0}
.th-frame__own{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-2);max-width:var(--measure)}
.th-frame__own small{color:var(--ink-3);font-size:12px}
.ch-form .th-frame__own .sk-input{flex:none;min-width:0;width:100%}

/* ch-063 فاز ۵: عیب‌یابی با فرضیه — فرضیه‌ها کنار بررسی‌ها؛ نتیجهٔ هر بررسی زیر همان بررسی */
.th-diag{display:flex;flex-direction:column;gap:14px}
.th-diag__clock{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.th-diag__clock .tk-ic{width:18px;height:18px;color:var(--ink-3)}
.th-diag__clock b{font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.th-diag__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px 24px;align-items:start}
.th-diag__sec{display:flex;flex-direction:column;gap:6px;min-width:0}
.th-hyps,.th-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.th-hyp{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:6px 0;border-top:1px solid var(--line)}
.th-hyp__t{flex:1 1 auto;min-width:0;font-size:var(--fs-2);line-height:1.8}
.th-hyp form{flex:none;margin:0}
.th-hyp.is-struck .th-hyp__t{color:var(--ink-3);text-decoration:line-through;text-decoration-thickness:1.5px}
.th-check{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;min-height:48px;padding:8px 0;border-top:1px solid var(--line)}
.th-check__h{display:flex;flex-direction:column;gap:2px;flex:1 1 200px;min-width:0}
.th-check__t{display:flex;align-items:center;font-size:var(--fs-2);line-height:1.8}
.th-check__t .th-time__n{flex:none}
.th-check__c{color:var(--ink-3);font-size:12px}
.th-check form{flex:none;margin:0}
.th-check__r{flex:1 1 100%;margin:0;padding:8px 12px;border-radius:var(--r);background:var(--s2);font-size:var(--fs-2);line-height:1.8;color:var(--ink)}
.th-check.is-done .th-check__t{font-weight:600}
.th-opt.is-muted>span{color:var(--ink-3)}
.th-diag__log{margin:0;padding-inline-start:20px;display:flex;flex-direction:column;gap:6px;font-size:var(--fs-2);line-height:1.8}
.th-diag__log b{font-weight:600}
.th-diag__log span{display:block;color:var(--ink-2)}
@media (max-width:760px){.th-diag__cols{grid-template-columns:1fr}}

/* ch-063 فاز ۶: طوفان فکری — ورودی ایده، فهرست ایده‌ها با دسته و ستارهٔ «بهترین»، داوری همتا */
.th-storm{display:flex;flex-direction:column;gap:14px}
.th-storm__intro{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.th-storm__cats{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.th-storm__cats li{padding:4px 12px;border-radius:999px;background:var(--s2);font-size:var(--fs-1);color:var(--ink-2)}
.th-storm__add{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;padding:12px;border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line)}
.th-storm__f{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--ink-3);min-width:0;flex:0 1 200px}
.th-storm__f--t{flex:1 1 280px}
.th-storm__f .sk-input{width:100%;min-width:0;height:var(--ctl)}
.th-storm__add .sk-btn{flex:none}
.th-storm__count{margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.th-storm__count b{font-weight:800;color:var(--ink)}
.th-ideas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.th-idea{display:flex;align-items:center;gap:6px 10px;min-height:48px;padding:6px 0;border-top:1px solid var(--line)}
.th-idea:first-child{border-top:0}
.th-idea__n{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--s3);font-size:11px;font-weight:800;color:var(--ink-2)}
.th-idea__t{flex:1 1 auto;min-width:0;font-size:var(--fs-2);line-height:1.8;overflow-wrap:anywhere}
.th-idea__c{flex:none;padding:2px 10px;border-radius:999px;background:var(--s2);font-size:12px;color:var(--ink-2);white-space:nowrap}
.th-idea form{flex:none;margin:0}
.th-idea__b{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--ink-3);background:transparent;transition:background .12s,color .12s}
.th-idea__b:hover{background:var(--s2);color:var(--ink)}
.th-idea__b:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.th-idea__b .tk-ic{width:18px;height:18px}
.th-idea__b--star[aria-pressed="true"]{color:var(--accent-ui)}
.th-idea__b--star[aria-pressed="true"] .tk-ic,.th-idea__star .tk-ic{fill:currentColor}
.th-idea__star{flex:none;display:inline-flex;color:var(--accent-ui)}
.th-idea__star .tk-ic{width:16px;height:16px}
.th-idea.is-best .th-idea__t{font-weight:700}
.th-ideas--done .th-idea{min-height:40px}
.th-peer{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.th-peer__f{border:0;margin:0;padding:12px 14px;border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line);display:flex;flex-direction:column;gap:10px;min-width:0}
.th-peer__t{float:left;width:100%;padding:0;font-size:var(--fs-2);font-weight:700;line-height:1.8}
.th-peer__t+*{clear:both}
.th-peer__t small{font-weight:400;color:var(--ink-3);margin-inline-start:6px}
.th-peer__o{display:flex;flex-wrap:wrap;gap:6px}
@media (max-width:640px){.th-idea{flex-wrap:wrap}.th-idea__t{flex-basis:calc(100% - 120px)}.th-storm__add .sk-btn{width:100%}}

/* ch-063 فاز ۶: بازبینی ایده‌ها (صف تصحیح ← ایده‌ها) */
.idr-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-bottom:12px}
.idr-stats{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0;font-size:var(--fs-2)}
.idr-stats b{font-weight:800}
.idr-rule{margin:0;flex:1 1 320px;font-size:var(--fs-1)}
.idr-recompute{margin:0}
.idr-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-bottom:12px}
.idr-tab{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;color:var(--ink-2);text-decoration:none;font-size:var(--fs-1);font-weight:600}
.idr-tab:hover{background:var(--s2);color:var(--ink)}
.idr-tab.is-on{background:var(--s3);color:var(--ink)}
.idr-search{display:flex;gap:6px;margin-inline-start:auto;flex:0 1 360px}
.idr-search .sk-input{flex:1;min-width:0}
.idr-clusters{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.idr-cl{padding:12px 16px;border-radius:var(--r-lg);background:var(--s1);box-shadow:inset 0 0 0 1px var(--line)}
.idr-cl__h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}
.idr-cl__t{font-size:var(--fs-2);font-weight:700;line-height:1.8}
.idr-cl__m{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;color:var(--ink-3)}
.idr-ideas{list-style:none;margin:8px 0 0;padding:0}
.idr-i{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;padding:6px 0;border-top:1px solid var(--line)}
.idr-i__l{display:flex;align-items:flex-start;gap:10px;flex:1 1 320px;min-width:0;cursor:pointer}
.idr-i__l input{margin-top:6px;width:18px;height:18px;flex:none}
.idr-i__t{font-size:var(--fs-2);line-height:1.8;overflow-wrap:anywhere}
.idr-i__m{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;color:var(--ink-3)}
.idr-i.is-rejected .idr-i__t{color:var(--ink-3);text-decoration:line-through}
.idr-bar{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;border-radius:var(--r-lg);background:var(--s1);box-shadow:var(--shadow-pop)}
.idr-bar__n{font-size:var(--fs-1);color:var(--ink-2);margin-inline-end:auto}
.idr-bar__cat{display:inline-flex;gap:6px;align-items:center}
.idr-bar__cat .sk-input{height:var(--ctl-sm);min-width:140px}
.idr-pages{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;font-size:var(--fs-1)}

/* ch-063 فاز ۷: ویرایشگر «اتاق بحران» (سناریو با متغیر، رویداد و مهلت) */
.chv-crisis .chv-node__h .chv-opt__score{flex:0 0 76px;height:var(--ctl)}
.chv-copt{grid-template-columns:150px 64px minmax(0,1fr) auto 36px;padding:8px 0;border-top:1px solid var(--line)}
.chv-copt:first-child{border-top:0;padding-top:0}
.chv-copt>[data-o="label"]{grid-column:1/-1}
.chv-copt__def{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-2);white-space:nowrap;cursor:pointer}
@media (max-width:640px){.chv-copt{grid-template-columns:minmax(0,1fr) 64px}.chv-copt>[data-o="eff"]{grid-column:1/-1}}

/* ch-063 فاز ۷: اتاق بحران — داشبورد متغیرها، ساعت بحران، شمارش معکوس تصمیم، خط زمانی */
.th-crisis{display:flex;flex-direction:column;gap:14px}
.th-crisis__vars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.th-crisis__var{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:var(--r-lg);background:var(--s2)}
.th-crisis__var small{font-size:12px;color:var(--ink-3)}
.th-crisis__var b{font-size:var(--fs-4,20px);font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink)}
.th-crisis__var i{font-style:normal;font-size:12px;font-weight:700;margin-inline-start:6px}
.th-crisis__var i.is-up{color:var(--ok-ink,var(--ok))}
.th-crisis__var i.is-down{color:var(--danger-ink,var(--danger))}
.th-crisis__var.is-danger{box-shadow:inset 0 0 0 1.5px var(--danger)}
.th-crisis__clock{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.th-crisis__clock b{font-weight:800;color:var(--ink)}
.th-crisis__node{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-radius:var(--r-lg);box-shadow:inset 0 0 0 1px var(--line)}
.th-crisis__text{margin:0;font-size:var(--fs-3);line-height:1.95;white-space:pre-line}
.th-crisis__opts{display:flex;flex-direction:column;gap:8px}
.th-crisis__opt{justify-content:flex-start;height:auto;min-height:48px;padding:10px 16px;text-align:start;white-space:normal;line-height:1.7}
.th-crisis__feed{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.th-crisis__feed li{display:flex;gap:10px;padding:8px 0;border-top:1px solid var(--line);font-size:var(--fs-1);line-height:1.8}
.th-crisis__feed li:first-child{border-top:0}
.th-crisis__feed .th-crisis__min{flex:none;min-width:5.5em;color:var(--ink-3);font-variant-numeric:tabular-nums}
.th-crisis__feed .is-event{color:var(--warn-ink,var(--ink))}
.th-crisis__feed .is-event b{font-weight:700}
.th-crisis__feed .is-timeout{color:var(--danger-ink,var(--danger))}
.th-crisis__alert{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--r-lg);background:var(--s2);border-inline-start:3px solid var(--warn)}
.th-crisis__alert .tk-ic{flex:none;width:18px;height:18px;margin-top:4px;color:var(--warn-ink,var(--warn))}
.th-crisis__alert p{margin:0;font-size:var(--fs-2);line-height:1.8}

/* ch-063 فاز ۷: داشبورد — چالش امروز، مسیرها، اشتراک نمایه */
.pd-grid--even{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.pd-daily__t{margin:10px 0 0;font-size:var(--fs-3);font-weight:800;line-height:1.7}
.pd-daily__s{margin:4px 0 0;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.pd-daily__streak{align-items:center}
.th-share{align-items:flex-end}
.th-share__link{display:flex;flex-direction:column;gap:4px;flex:1 1 360px;min-width:0;font-size:var(--fs-1);color:var(--ink-2)}
.th-share__link small{color:var(--ink-3)}
.th-share__row{display:flex;gap:6px}
.th-share__row .sk-input{flex:1;min-width:0;height:var(--ctl-sm);font-size:12px;line-height:normal}
.th-share__acts{display:inline-flex;gap:6px}
.th-share__acts form{margin:0}
.th-share__note{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-1);color:var(--ink-2);flex:1 1 320px}
.th-share__note .tk-ic{flex:none;width:16px;height:16px;color:var(--ink-3)}

/* ch-063 فاز ۷: مسیرهای مهارت */
.sp-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:var(--gap)}
.sp-card__a{display:flex;flex-direction:column;gap:8px;height:100%;padding:18px 20px;border-radius:var(--r-lg);background:var(--s1);color:inherit;text-decoration:none;box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .15s}
.sp-card__a:hover{box-shadow:inset 0 0 0 1px var(--line-2),var(--shadow-pop)}
.sp-card__a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.sp-card__t{font-size:var(--fs-3);font-weight:800;line-height:1.6}
.sp-card__s{font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
.sp-card__steps{display:flex;gap:4px}
.sp-card__steps i{flex:1;height:6px;border-radius:3px;background:var(--s3)}
.sp-card__steps i.is-done{background:var(--ok)}
.sp-card__steps i.is-open{background:var(--accent-ui)}
.sp-card__steps i.is-spent{background:var(--ink-3)}
.sp-card__a .tk-meta{margin-top:auto}
.lab-pagehead__over{margin:0 0 4px;font-size:var(--fs-1)}
.sp-prog{display:flex;align-items:center;gap:12px;font-size:var(--fs-2);color:var(--ink-2)}
.sp-prog .lab-progress{flex:1;max-width:420px}
.sp-prog b{color:var(--ink);font-weight:800}
.sp-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.sp-step{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--r-lg);background:var(--s1);box-shadow:inset 0 0 0 1px var(--line)}
.sp-step__n{flex:none;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--s3);font-weight:800;color:var(--ink-2)}
.sp-step__n .tk-ic{width:18px;height:18px}
.sp-step.is-done .sp-step__n{background:var(--ok-soft);color:var(--ok-ink)}
.sp-step.is-open .sp-step__n{box-shadow:inset 0 0 0 2px var(--accent-ui);background:transparent;color:var(--ink)}
.sp-step.is-spent .sp-step__n{background:var(--s3);color:var(--ink-2)}
.sp-step.is-locked{background:var(--s2);box-shadow:none}
.sp-step.is-locked .sp-step__t b{color:var(--ink-3)}
.sp-step__b{flex:1;min-width:0}
.sp-step__t{margin:0;font-size:var(--fs-2);line-height:1.8}
.sp-step__b .tk-meta{margin:2px 0 0}
.sp-step__why{margin:4px 0 0;font-size:12px;color:var(--ink-3)}
.sp-step__a{flex:none}
.sp-cert{display:flex;align-items:flex-start;gap:14px;padding:18px 20px;border-radius:var(--r-lg);background:var(--s1);box-shadow:inset 0 0 0 1px var(--line)}
.sp-cert.is-done{box-shadow:inset 0 0 0 1.5px var(--ok)}
.sp-cert__ic{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--s2);color:var(--gold)}
.sp-cert__ic .tk-ic{width:22px;height:22px}
.sp-cert__h{margin:0;font-size:var(--fs-3);font-weight:800}
.sp-cert__p{margin:4px 0 10px;font-size:var(--fs-2);line-height:1.9;color:var(--ink-2)}
@media (max-width:640px){.sp-step{flex-wrap:wrap}.sp-step__a{flex-basis:100%}.sp-step__a .sk-btn{width:100%}}

/* ch-063 فاز ۷: نمایهٔ عمومی مهارت‌های فکری */
.pp{max-width:760px;margin:0 auto;padding:40px 16px 56px;display:flex;flex-direction:column;gap:20px}
.pp-head{display:flex;flex-direction:column;gap:6px}
.pp-brand{margin-bottom:12px}
.pp-title{margin:0;font-size:var(--fs-5);font-weight:800;line-height:1.35}
.pp-sub{margin:0;font-size:var(--fs-2);color:var(--ink-2)}
.pp-streak{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0;font-size:var(--fs-1);color:var(--ink-2)}
.pp-streak .tk-ic{width:16px;height:16px;color:var(--ink-3)}
.pp-card{padding:8px 20px;border-radius:var(--r-lg);background:var(--s1);box-shadow:inset 0 0 0 1px var(--line)}
.pp-note{margin:0;font-size:var(--fs-1);line-height:1.9;color:var(--ink-3)}

/* ch-063: راهنمای طراح — قالب‌های مهارت فکری (هر قالب یک بخش تاشو با قالب خطی) */
.hg-kinds{display:flex;flex-direction:column;margin-top:12px;border-top:1px solid var(--line)}
.hg-kind{border-bottom:1px solid var(--line)}
.hg-kind[open]{padding-bottom:10px}
.hg-kind>summary{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px 0;padding-inline-start:24px;cursor:pointer;list-style:none;border-radius:6px}
.hg-kind>summary::-webkit-details-marker{display:none}
.hg-kind>summary::before{content:"";position:absolute;inset-inline-start:6px;top:21px;border-inline-start:6px solid var(--ink-3);border-top:5px solid transparent;border-bottom:5px solid transparent;transition:transform .15s}
.hg-kind[open]>summary::before{transform:rotate(-90deg)}
.hg-kind>summary:hover b{color:var(--accent-ink)}
.hg-kind>summary b{font-size:var(--fs-3);font-weight:800;color:var(--ink)}
.hg-kind>summary small{font-size:var(--fs-1);line-height:1.8;color:var(--ink-3)}
.hg-kind>summary .tk-meta>*{white-space:normal}
.hg-kind>p{margin:0 0 8px;padding-inline-start:24px}
.hg-kind>.ch-pre{margin:2px 0 12px;margin-inline-start:24px;font-size:12.5px;line-height:1.9}
.hg-lines{direction:ltr;text-align:left}
.hg-lines bdi{unicode-bidi:isolate}
.hg-kind code{font-family:var(--mono);font-size:12.5px;background:var(--s2);border-radius:6px;padding:1px 6px;unicode-bidi:isolate}
@media (prefers-reduced-motion:reduce){.hg-kind>summary::before{transition:none}}

/* ---------- ch-072b: «امتیاز و تلاش‌ها» — هر بخش یک جعبهٔ جدا: آیکون، نام، مقدار ذخیره‌شده و فلش؛ باز: فیلدهای همان بخش داخل جعبه ---------- */
.scb-form{display:flex;flex-direction:column;gap:28px}
.scb-form>.chh-actions{padding-top:16px;border-top:1px solid var(--line)}
.scb-group{display:flex;flex-direction:column;gap:8px;min-width:0}
.scb-group__head{display:flex;flex-direction:column;gap:2px;margin-bottom:2px}
.scb-group__h{margin:0;font-size:var(--fs-3);font-weight:800;line-height:1.6;color:var(--ink)}
.scb-group__note{margin:0;font-size:var(--fs-1);line-height:1.8;color:var(--ink-3);max-width:var(--measure)}
.scb-box{min-width:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--s1);scroll-margin-top:84px;transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}
.scb-box:hover{border-color:color-mix(in srgb,var(--line-2) 45%,var(--line))}
.scb-box[open]{border-color:var(--accent-ui);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ui) 16%,transparent)}
.scb-box.has-error{border-color:var(--danger)}
.scb-box.has-error[open]{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 16%,transparent)}
.scb-box__s{list-style:none;display:flex;align-items:center;gap:12px;min-height:60px;padding:11px 14px;box-sizing:border-box;border-radius:calc(var(--r-lg) - 1px);cursor:pointer;-webkit-user-select:none;user-select:none}
.scb-box__s::-webkit-details-marker{display:none}
.scb-box__s::marker{content:""}
.scb-box__s:hover{background:var(--s2)}
.scb-box__s:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.scb-box[open]>.scb-box__s{background:var(--s2);border-bottom:1px solid var(--line);border-end-start-radius:0;border-end-end-radius:0}
.scb-box__ic{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--accent-ink)}
.scb-box__ic .tk-ic{width:19px;height:19px}
.scb-box.has-error .scb-box__ic{background:var(--danger-soft);color:var(--danger-ink)}
.scb-box__t{flex:1 1 auto;min-width:7em;font-size:var(--fs-2);font-weight:700;line-height:1.6;color:var(--ink)}
.scb-box__meta{flex:0 1 auto;min-width:0;display:flex;align-items:center;gap:6px}
.scb-box__v{min-width:0;padding:3px 12px;border:1px solid var(--line);border-radius:999px;background:var(--s2);font-size:var(--fs-1);font-weight:600;line-height:1.7;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scb-box[open] .scb-box__v{background:var(--s1)}
.scb-box__v.is-set,.scb-box[open] .scb-box__v.is-set{border-color:color-mix(in srgb,var(--accent-ui) 40%,transparent);background:var(--accent-soft);color:var(--accent-ink)}
.scb-box__err{flex:none;padding:3px 10px;border-radius:999px;background:var(--danger-soft);color:var(--danger-ink);font-size:var(--fs-1);font-weight:700;line-height:1.7}
.scb-box__chev{flex:none;display:grid;place-items:center;width:20px;color:var(--ink-3);transition:transform .2s var(--ease)}
.scb-box[open] .scb-box__chev{transform:rotate(180deg);color:var(--accent-ink)}
.scb-box__b{display:flex;flex-direction:column;gap:var(--gap);padding:18px 16px 20px}
.scb-box__lead{margin:0;font-size:var(--fs-1);line-height:1.9;color:var(--ink-2);max-width:var(--measure)}
.scb-box .tk-field{margin-bottom:0}
.scb-box .chh-note--exam,.scb-box .chh-note{margin:0}
.scb-box__rules{gap:12px}
.scb-box__rules p{font-size:var(--fs-1)}
[data-acc-all][hidden]{display:none}
@media (max-width:600px){                                  /* دو سطر: نام، زیرش مقدار؛ آیکون و فلش وسطِ دو سطر */
  .scb-form{gap:24px}
  .scb-box__s{display:grid;grid-template-columns:34px minmax(0,1fr) 20px;grid-template-rows:auto auto;column-gap:10px;row-gap:4px;padding:11px 12px}
  .scb-box__ic{grid-column:1;grid-row:1 / span 2;width:34px;height:34px;border-radius:10px}
  .scb-box__ic .tk-ic{width:17px;height:17px}
  .scb-box__t{grid-column:2;grid-row:1;min-width:0}
  .scb-box__meta{grid-column:2;grid-row:2;flex-wrap:wrap}
  .scb-box__chev{grid-column:3;grid-row:1 / span 2}
  .scb-box__v{white-space:normal;padding:1px 10px}
  .scb-box__b{padding:16px 12px 18px}
}
@media (prefers-reduced-motion:reduce){.scb-box,.scb-box__chev{transition:none}}
@media (forced-colors:active){.scb-box,.scb-box__v{border:1px solid CanvasText}}
