/* ============================================================
   ZigZag — Ravagh Pro (FaNum) global font   [redesign · phase 0]
   Loads AFTER anjoman-font.css, so it overrides Anjoman site-wide.
   FaNum = Persian numerals: Latin 0-9 render as ۰-۹ (GLYPH only;
   the underlying character & form values stay Latin → zero JS/PHP
   impact, forms/copy/IDs unchanged). Anjoman kept as fallback for
   any glyph Ravagh might miss. Pure presentation; reversible.
   ============================================================ */
/* @font-face های Ravagh از ۲۰۲۶-۱۰-۱۴ در public/css/zz-tokens.css اند (پیش از این فایل بار می‌شود) */

*{ font-family:'Ravagh','Anjoman',ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; }
html, body{ font-family:'Ravagh','Anjoman',ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; }
:root{ --font-sans:'Ravagh','Anjoman',ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"; }

/* Technical content: keep monospace + LATIN digits (logs, URLs, IDs, hashes,
   tokens, short-link codes). The * rule above would otherwise force Ravagh
   FaNum here and turn digits Persian, which hurts readability of code/IDs.
   Monospace fonts carry Latin digits; Anjoman is the Persian-letter fallback. */
code, pre, kbd, samp, .font-mono{
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", "Anjoman", monospace;
}

/* منوهای کشوییِ بومی (<select>): color-scheme ِ هر تم (توکن‌ها، پایین‌تر) به مرورگر می‌گوید فهرستِ باز و نوارِ اسکرول را
   روشن یا تیره بکشد؛ رنگِ صریحِ option برای مرورگرهایی که فهرست را باز هم با زمینهٔ سیستم می‌کشند (ویندوز، ۲۰۲۶-۰۹-۳۰). */
select option,
select optgroup { background-color: var(--popover); color: var(--popover-foreground); }
select option:checked { background-color: var(--accent); color: var(--mono); }
select option:disabled { color: var(--muted-foreground); }

/* دکمه‌های قدیمیِ .btn (چند صفحهٔ قدیمی) — روی توکن‌های تم، در هر دو حالت (۲۰۲۶-۱۰-۱۴) */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.5rem 1rem; border-radius: 0.5rem; border: 1px solid var(--zz-line-strong);
  font-weight: 600; line-height: 1.25rem; cursor: pointer;
  transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, opacity 150ms ease;
  background-color: var(--card); color: var(--foreground);
}
.btn:hover { background-color: var(--zz-hover); }
.btn:disabled, .btn[disabled] { opacity: 0.5; cursor: not-allowed; }
.btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.btn-primary { background-color: var(--primary); color: var(--primary-foreground); border-color: transparent; }
.btn-primary:hover { background-color: var(--zz-brand-hover); }
.btn-secondary { background-color: var(--secondary); color: var(--foreground); border-color: var(--border); }
.btn-secondary:hover { background-color: var(--zz-hover); }
.btn-danger { background-color: var(--zz-danger-solid); color: #fff; border-color: transparent; }
.btn-danger:hover { filter: brightness(.94); }
.btn-dark { background-color: var(--mono); color: var(--mono-foreground); border-color: transparent; }
.btn-outline { background-color: transparent; }
.btn-outline.btn-primary { color: var(--zz-brand-text); border-color: var(--zz-brand-line); }
.btn-outline.btn-primary:hover { background-color: var(--zz-brand-soft); }
.btn-outline.btn-secondary { color: var(--foreground); border-color: var(--zz-line-strong); }
.btn-outline.btn-secondary:hover { background-color: var(--zz-hover); }
.btn-outline.btn-danger { color: var(--zz-danger); border-color: color-mix(in oklab, var(--zz-danger) 40%, transparent); }
.btn-outline.btn-danger:hover { background-color: color-mix(in oklab, var(--zz-danger) 10%, transparent); }
.btn-sm { padding: 0.375rem 0.75rem; font-size: var(--text-2sm); }
.btn-lg { padding: 0.75rem 1.25rem; font-size: var(--text-lg); }
.btn-icon { padding: 0.5rem; width: 2.5rem; height: 2.5rem; }

/* Form validation helpers */
small.text-red-600,
.form-error,
.text-red-600 {
  color: var(--zz-danger) !important;
}
small.text-red-600,
.form-error {
  font-size: var(--text-xs);
  line-height: 1.25;
  display: block;
}

/* ============================================================
   تم: روشن و تیره (بازطراحی ۲۰۲۶-۱۰-۱۴؛ سعید: «دارک مد پلتفرم خیلی افتضاحه. درستش کن و یه ورژن لایت هم براش بساز.»)
   همهٔ رنگ‌ها از همین توکن‌ها می‌آیند: :root = روشن، .dark = تیره (کلاس را layouts.partials.theme-boot پیش از هر CSS روی
   <html> می‌گذارد؛ پیش‌فرض مطابقِ دستگاه). توکن‌های Metronic (--background، --card، --primary…) که kt-* و یوتیلیتی‌ها
   می‌خوانند این‌جا بازتعریف می‌شوند، و توکن‌های معناییِ خودمان (--zz-*) برای هر چیزی که رنگ دارد.
   قاعده: در هیچ قاعدهٔ تازه‌ای رنگِ ثابت (hex/rgb) ننویسید؛ یکی از این توکن‌ها، یا color-mix از آن‌ها. یک رنگ که فقط
   روی زمینهٔ تیره کار می‌کند (rgba(255,255,255,…)) در حالتِ روشن نامرئی است.
   html.zz-premium دیگر یعنی «محدودهٔ پنلِ کاربر»، نه رنگ؛ body.zz-admin هم محدودهٔ ادمین.
   خودِ توکن‌ها (:root روشن، .dark تیره، و --color-* ها) در public/css/zz-tokens.css اند — یک منبع برای پنل‌ها و صفحه‌های تک؛
   این فایل بعد از آن بار می‌شود و فقط پوستِ اجزا را می‌سازد.
   ============================================================ */
body{background-color:var(--background)}

/* لوگو: فایلِ سفید؛ در حالتِ روشن تیره کشیده می‌شود */
html:not(.dark) .zz-logo{filter:brightness(0);opacity:.9}

/* دکمهٔ تم در هدر: آیکنِ حالتِ جاری، و تیکِ گزینهٔ انتخاب‌شده */
.zz-theme-ic-light{display:none}
html:not(.dark) .zz-theme-ic-light{display:inline-flex}
html:not(.dark) .zz-theme-ic-dark{display:none}
.zz-theme-opt .zz-theme-tick{visibility:hidden;color:var(--zz-brand-text)}
html[data-zz-theme="system"] [data-zz-theme-set="system"] .zz-theme-tick,
html[data-zz-theme="light"] [data-zz-theme-set="light"] .zz-theme-tick,
html[data-zz-theme="dark"] [data-zz-theme-set="dark"] .zz-theme-tick{visibility:visible}
html[data-zz-theme="system"] [data-zz-theme-set="system"],
html[data-zz-theme="light"] [data-zz-theme-set="light"],
html[data-zz-theme="dark"] [data-zz-theme-set="dark"]{color:var(--mono);font-weight:600}

/* — اجزای مشترک (هر دو پنل، هر دو حالت) — */
/* کارت */
.kt-card{background-color:var(--card);border-color:var(--border);border-radius:14px;box-shadow:var(--zz-shadow)}
.kt-card-header,.kt-card-footer{border-color:var(--border)}
.kt-card-title{color:var(--mono);font-weight:700}
/* دکمه‌ها: برند ساده و تخت (بی گرادیان و هاله)؛ mono ِ پُر هم دکمهٔ اصلی است */
.kt-btn-primary,.kt-btn-mono:not(.kt-btn-outline):not(.kt-btn-ghost){background-color:var(--primary);color:var(--primary-foreground);border-color:transparent}
.kt-btn-primary:hover,.kt-btn-mono:not(.kt-btn-outline):not(.kt-btn-ghost):hover{background-color:var(--zz-brand-hover)}
.kt-btn-mono:not(.kt-btn-outline):not(.kt-btn-ghost) *{color:inherit}
.kt-btn-outline{background-color:var(--card);border-color:var(--zz-line-strong);color:var(--foreground)}
.kt-btn-outline:hover{background-color:var(--zz-hover);color:var(--mono)}
.kt-btn-destructive{background-color:var(--zz-danger-solid);color:#fff}
.kt-btn-light{background-color:var(--secondary);color:var(--mono);border-color:var(--border)}
.kt-btn-light:hover{background-color:var(--zz-hover)}
.kt-btn-warning{background-color:var(--zz-warning-solid);color:#fff;border-color:transparent}
.kt-btn-warning:hover{filter:brightness(.94)}
/* فیلدها */
.kt-input,.kt-select,.kt-textarea{background-color:var(--zz-field);border-color:var(--input);color:var(--foreground)}
.kt-input::placeholder,.kt-textarea::placeholder{color:var(--muted-foreground)}
/* فوکوسِ فیلد باید دیده شود (بازبینی ۲۰۲۶-۱۰-۱۴: فقط مرزِ کم‌رنگ عوض می‌شد) */
.kt-input:focus,.kt-input:focus-within,.kt-select:focus,.kt-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}
/* چک‌باکس و رادیوی خالی: لبه با --input تقریباً نامرئی بود (۱٫۴ به ۱) */
.kt-checkbox:not(:checked),.kt-radio:not(:checked){border-color:color-mix(in oklab,var(--muted-foreground) 75%,transparent);background-color:var(--zz-field)}
/* بج‌ها: یک زبانِ «ملایم» برای هر رنگ — زمینهٔ کم‌رنگ، متنِ رنگی، مرزِ نازک (رنگِ پُر با متنِ سفید روی سبز و زرد ناخوانا بود) */
.kt-badge-primary{--zz-tone:var(--zz-brand-text)}
.kt-badge-success{--zz-tone:var(--zz-success)}
.kt-badge-warning{--zz-tone:var(--zz-warning)}
.kt-badge-info{--zz-tone:var(--zz-info)}
.kt-badge-destructive,.kt-badge-danger{--zz-tone:var(--zz-danger)}
:is(.kt-badge-primary,.kt-badge-success,.kt-badge-warning,.kt-badge-info,.kt-badge-destructive,.kt-badge-danger){
  background-color:color-mix(in oklab,var(--zz-tone) 12%,transparent);color:var(--zz-tone);
  border:1px solid color-mix(in oklab,var(--zz-tone) 28%,transparent)}
.kt-badge-secondary{background-color:var(--secondary);color:var(--secondary-foreground);border-color:var(--border)}
.kt-badge-outline:not(:is(.kt-badge-primary,.kt-badge-success,.kt-badge-warning,.kt-badge-info,.kt-badge-destructive,.kt-badge-danger,.kt-badge-mono)){
  background-color:var(--zz-surface-3);border-color:var(--border);color:var(--secondary-foreground)}
/* هشدارها: outline = بی زمینه، متن و مرزِ رنگی (قاعدهٔ صفحه‌های ادمین)؛ پُر = زمینهٔ ملایم */
.kt-alert-primary{--zz-tone:var(--zz-brand-text)}
.kt-alert-success{--zz-tone:var(--zz-success)}
.kt-alert-warning{--zz-tone:var(--zz-warning)}
.kt-alert-info{--zz-tone:var(--zz-info)}
.kt-alert-destructive,.kt-alert-danger{--zz-tone:var(--zz-danger)}
:is(.kt-alert-primary,.kt-alert-success,.kt-alert-warning,.kt-alert-info,.kt-alert-destructive,.kt-alert-danger){
  background-color:color-mix(in oklab,var(--zz-tone) 9%,var(--card));color:var(--foreground);
  border:1px solid color-mix(in oklab,var(--zz-tone) 30%,transparent)}
:is(.kt-alert-primary,.kt-alert-success,.kt-alert-warning,.kt-alert-info,.kt-alert-destructive,.kt-alert-danger) :is(.kt-alert-icon,.kt-alert-title,.kt-alert-close){color:var(--zz-tone)}
:is(.kt-alert-primary,.kt-alert-success,.kt-alert-warning,.kt-alert-info,.kt-alert-destructive,.kt-alert-danger) a:not(.kt-btn){color:var(--zz-tone)}
.kt-alert-outline:is(.kt-alert-primary,.kt-alert-success,.kt-alert-warning,.kt-alert-info,.kt-alert-destructive,.kt-alert-danger){background-color:transparent;color:var(--zz-tone)}
.kt-alert-outline:is(.kt-alert-primary,.kt-alert-success,.kt-alert-warning,.kt-alert-info,.kt-alert-destructive,.kt-alert-danger) .kt-alert-description{color:var(--zz-tone)}
/* تبِ فعال و hover: متنِ بنفش روی کارت --zz-brand-text است (با --primary در حالتِ تیره ۴ به ۱ می‌شد)؛ خطِ زیرش همان --primary */
.kt-tabs-line .kt-tab-toggle.active,.kt-tabs-line .kt-tab-toggle:hover{color:var(--zz-brand-text)}
/* سرِ کارت وقتی دوخطی می‌شود یا روی گوشی می‌شکند به لبهٔ بالای کارت نچسبد. در لایهٔ components، تا py-* ِ صفحه‌ها همچنان برنده باشد */
@layer components { .kt-card-header{padding-block:.75rem} }
/* جدول‌ها */
.kt-table thead th{color:var(--muted-foreground);font-weight:500;border-color:var(--border)}
.kt-table tbody td{border-color:var(--border)}
.kt-table-highlight tbody tr:hover td{background-color:var(--zz-hover)}
/* منوهای کشویی و پنجره‌ها */
.kt-dropdown-menu,.kt-modal-content,.kt-popover{box-shadow:var(--zz-shadow-pop)}
.kt-dropdown-menu-link:hover,.kt-dropdown-menu-link:focus-visible{background-color:var(--zz-hover)}
/* حلقهٔ focus همه‌جا دیده شود */
:focus-visible{outline-color:var(--primary)}
/* متن و لینکِ برند: --primary برای پُرکردن است؛ متنِ بنفش روی کارتِ تیره با آن حدودِ ۳٫۹:۱ می‌شد، --zz-brand-text خواناست */
.text-primary,.kt-link,.hover\:text-primary:hover{color:var(--zz-brand-text)}
/* متن‌ها و رنگ‌های وضعیت */
.text-success{color:var(--zz-success)}
.text-info{color:var(--zz-info)}
.text-warning{color:var(--zz-warning)}
.text-danger{color:var(--zz-danger)}
.bg-success{background-color:var(--zz-success-solid)}
.bg-info{background-color:var(--zz-info-solid)}
.bg-warning{background-color:var(--zz-warning-solid)}
.bg-primary-light,.bg-light-primary{background-color:var(--zz-brand-soft)}
.bg-light-success,.bg-success-light{background-color:var(--zz-success-soft)}
.bg-light-info,.bg-info-light{background-color:var(--zz-info-soft)}
.bg-light-warning,.bg-warning-light{background-color:var(--zz-warning-soft)}
.bg-light-danger,.bg-danger-light{background-color:var(--zz-danger-soft)}
.bg-danger{background-color:var(--zz-danger-solid);color:#fff}
/* وزن‌های فونت که باندلِ فریزشده ندارد (font-bold در ۲۴ ویو بی‌اثر بود و عنوان‌ها نازک دیده می‌شدند) */
.font-bold{font-weight:700}
.font-extrabold{font-weight:800}
.font-black{font-weight:900}

/* ============================================================
   یوتیلیتی‌های رنگیِ Tailwind که ویوهای قدیمی برای زمینهٔ سفید نوشته‌اند (bg-white، text-gray-900، bg-green-50…) —
   روی توکن‌ها، در هر دو حالت. custom.css لایه ندارد، پس از یوتیلیتی‌های لایه‌دارِ باندل قوی‌تر است (بی !important).
   در ویوِ تازه این‌ها را ننویسید؛ کلاسِ توکنی (bg-card، text-mono، text-secondary-foreground، kt-badge-*) بنویسید.
   ============================================================ */
.bg-white,[class~="bg-white/5"],[class~="bg-white/10"],[class~="bg-white/50"],[class~="bg-white/80"]{background-color:var(--card)}
.bg-gray-50,.bg-slate-50,.bg-zinc-50,.bg-gray-100,.bg-slate-100{background-color:var(--zz-surface-2)}
.bg-gray-200,.bg-gray-300,.bg-gray-600,.bg-gray-700,.bg-gray-800,.bg-gray-900{background-color:var(--zz-surface-3)}
.hover\:bg-gray-50:hover,.hover\:bg-gray-100:hover,.hover\:bg-gray-200:hover{background-color:var(--zz-hover)}
.bg-blue-50,.bg-blue-100,.bg-sky-50,.bg-cyan-50{background-color:var(--zz-info-soft)}
.bg-red-50,.bg-red-100,.bg-rose-50,.bg-pink-50{background-color:var(--zz-danger-soft)}
.bg-green-50,.bg-green-100,.bg-emerald-50,.bg-emerald-100{background-color:var(--zz-success-soft)}
.bg-yellow-50,.bg-yellow-100,.bg-amber-50,.bg-amber-100,.bg-orange-50,.bg-orange-100{background-color:var(--zz-warning-soft)}
.bg-indigo-50,.bg-indigo-100,.bg-purple-50,.bg-purple-100,.bg-violet-50,.bg-violet-100{background-color:var(--zz-brand-soft)}
[class*="from-green-50"],[class*="from-emerald-50"]{background:var(--zz-success-soft)}
[class*="from-amber-50"],[class*="from-yellow-50"],[class*="from-orange-50"]{background:var(--zz-warning-soft)}
[class*="from-blue-50"],[class*="from-sky-50"]{background:var(--zz-info-soft)}
[class*="from-purple-50"],[class*="from-violet-50"],[class*="from-indigo-50"]{background:var(--zz-brand-soft)}
.text-black,.text-gray-900,.text-slate-900,.text-zinc-900{color:var(--mono)}
.text-gray-800,.text-gray-700,.text-slate-800,.text-slate-700{color:var(--foreground)}
.text-gray-600,.text-gray-500,.text-slate-600,.text-slate-500{color:var(--secondary-foreground)}
.text-gray-400,.text-gray-300,.text-slate-400{color:var(--muted-foreground)}
.text-green-500,.text-green-600,.text-green-700,.text-green-800,.text-emerald-500,.text-emerald-600,.text-emerald-700{color:var(--zz-success)}
.text-red-500,.text-red-600,.text-red-700,.text-red-800{color:var(--zz-danger)}
.text-blue-500,.text-blue-600,.text-blue-700,.text-blue-800,.text-sky-600{color:var(--zz-info)}
.text-yellow-500,.text-yellow-600,.text-yellow-700,.text-yellow-800,.text-amber-500,.text-amber-600,.text-amber-700,.text-amber-800,.text-amber-900,.text-orange-500,.text-orange-600,.text-orange-700{color:var(--zz-warning)}
.text-purple-500,.text-purple-600,.text-purple-700,.text-violet-500,.text-violet-600,.text-indigo-600{color:var(--zz-brand-text)}
.border-gray-100,.border-gray-200,.border-gray-300,.border-slate-200{border-color:var(--border)}
.border-green-200,.border-green-300,.border-emerald-200{border-color:var(--zz-success-line)}
.border-red-200,.border-red-300{border-color:var(--zz-danger-line)}
.border-blue-200,.border-blue-300{border-color:var(--zz-info-line)}
.border-yellow-200,.border-yellow-300,.border-amber-200,.border-amber-300{border-color:var(--zz-warning-line)}
.border-purple-200,.border-violet-200,.border-indigo-200{border-color:var(--zz-brand-line)}
[class~="divide-gray-100"]>*+*,[class~="divide-gray-200"]>*+*{border-color:var(--border)}
[class~="ring-gray-200"],[class~="ring-gray-300"]{--tw-ring-color:var(--border)}
/* فیلدهای بومی بی کلاسِ kt-* (فرم‌های قدیمی) */
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not(.kt-input):not([class*="bg-"]),
select:not(.kt-select):not([class*="bg-"]),
textarea:not(.kt-textarea):not([class*="bg-"]){background-color:var(--zz-field);color:var(--foreground);border-color:var(--input)}
/* Select2 (فرمِ آپلودِ ویدیو) */
.select2-container--default .select2-selection,.select2-dropdown,.select2-search__field,.select2-results__option{background-color:var(--zz-field) !important;color:var(--foreground) !important;border-color:var(--input) !important}
.select2-container--default .select2-results__option--highlighted,
.select2-container--default .select2-results__option[aria-selected="true"]{background-color:var(--zz-brand-soft) !important;color:var(--mono) !important}


/* صفِ آپلودِ داشبورد (.zz-queue) و کارت‌های آماری (.zz-stats) — چیدمان از نسخهٔ premium، رنگ از توکن‌ها */
.zz-premium .zz-queue .kt-card-content > div{ display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:12px !important; }
.zz-premium .zz-queue .kt-card-content > div > div{ background:var(--zz-surface-2) !important; border:1px solid var(--border) !important; border-radius:14px !important; padding:16px 10px !important; gap:6px !important; }
.zz-premium .zz-queue .kt-card-content > div > div a{ font-size:var(--text-2xl) !important; font-weight:800 !important; line-height:1 !important; }
.zz-premium .zz-queue .kt-card-content > div > div span{ font-size:var(--text-xs) !important; color:var(--secondary-foreground) !important; }
@media(max-width:640px){ .zz-premium .zz-queue .kt-card-content > div{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
.zz-premium .zz-stats .kt-card{ padding:22px !important; }
.zz-premium .zz-stats .kt-card i.ki-filled.text-2xl{ display:inline-flex !important; align-items:center; justify-content:center; width:48px; height:48px; border-radius:14px; background:var(--zz-surface-3); border:1px solid var(--border); font-size:21px !important; }
.zz-premium .zz-stats .kt-card a:last-of-type{ font-size:var(--text-2xl) !important; font-weight:800 !important; color:var(--mono) !important; letter-spacing:.2px; }
.zz-premium .zz-stats .kt-card span{ color:var(--secondary-foreground) !important; }

/* ==========================================================================
   موبایل — اصلاحِ نمایشِ پنل روی گوشی (۲۰۲۶-۰۷-۲۹)
   ⚠️ این پروژه بیلدِ تیل‌ویند ندارد؛ styles.css یک بستهٔ ازپیش‌ساختهٔ تم است و
   واریانت‌هایی مثل sm:table-cell / object-cover در آن وجود ندارند. پس هر چیزی
   که کلاسش در بسته نیست باید این‌جا با CSS واقعی نوشته شود.
   ========================================================================== */
@media (max-width: 640px) {
  /* جلوگیری از اسکرولِ افقیِ کلِ صفحه */
  .zz-premium body,
  .zz-premium #scrollable_content { overflow-x: hidden !important; }

  /* پدینگِ ۲۴px کانتینر روی گوشی ۱۳٪ عرض را می‌خورد */
  .zz-premium .kt-container-fixed { padding-inline: 1rem !important; }
  .zz-premium .kt-card-content { padding-inline: 1rem !important; }

  /* جدول‌ها: عرضِ ثابتِ صدها پیکسلی روی گوشی معنی ندارد */
  .zz-premium .zz-m-table { table-layout: auto !important; }
  .zz-premium .zz-m-table th,
  .zz-premium .zz-m-table td { width: auto !important; padding-inline: .5rem !important; }

  /* ستون‌های کم‌ارزش روی گوشی پنهان تا ستونِ «عملیات» دیده شود */
  .zz-premium .zz-m-hide { display: none !important; }

  /* دکمه‌های عملیاتِ داخلِ جدول */
  .zz-premium .zz-m-table .kt-btn { font-size: var(--text-xs); padding-inline: .5rem; }
}

/* عکسِ کانال نباید کِش بیاید (کلاس object-cover در بستهٔ تم نیست) */
.zz-premium .kt-card img[loading="lazy"] { object-fit: cover; }

/* کلاس‌هایی که در بستهٔ تم وجود ندارند و باعث می‌شدند اجزا نامرئی/بدشکل شوند */
.zz-premium .h-2\.5 { height: .625rem; }            /* نوارهای پیشرفت ارتفاع صفر داشتند → نامرئی بودند */
.zz-premium .w-14 { width: 3.5rem; }
.zz-premium .h-14 { height: 3.5rem; }               /* دایره‌های آیکون بیضی می‌شدند */
.zz-premium .rounded-2xl { border-radius: 1rem; }

@media (max-width: 640px) {
  /* ردیف‌های «آیکون + متن + دکمه» که روی گوشی متن را له می‌کردند */
  .zz-premium .kt-card-content > .flex.items-center.justify-between { flex-wrap: wrap; gap: .75rem; }
  .zz-premium .kt-card-content > .flex.items-center.justify-between > * { min-width: 0; }
  /* کارت‌های آمار: دوتایی به‌جای تک‌ستونه تا اسکرولِ عمودی کمتر شود */
  .zz-premium .zz-stats { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
  /* عنوانِ ویدیوها/کانال‌ها نباید سطر را پهن کند */
  .zz-premium .kt-card h4 { overflow: hidden; text-overflow: ellipsis; }
  /* دکمه‌های نوار بالا هر کدام یک خط را اشغال نکنند */
  .zz-premium .kt-container-fixed .kt-btn { font-size: var(--text-xs); }
}

@media (max-width: 640px) {
  /* عکسِ کانال داخل جدول کوچک‌تر تا ستونِ نام جا باز کند */
  .zz-premium .zz-m-table td img { width: 34px !important; height: 34px !important; }
  .zz-premium .zz-m-table th:first-child,
  .zz-premium .zz-m-table td:first-child { width: 44px !important; padding-inline: .35rem !important; }
  /* نامِ کانال: به‌جای شکستن به چند خط، در یک خط با سه‌نقطه */
  .zz-premium .zz-m-table td:nth-child(2) > .flex { flex-wrap: wrap; gap: .25rem; }
  .zz-premium .zz-m-table td:nth-child(2) > .flex > span:first-child {
    display: block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  }
  /* دکمه‌های عملیات جمع‌وجورتر */
  .zz-premium .zz-m-table .kt-btn { padding-inline: .45rem; font-size: var(--text-xs); }
  .zz-premium .zz-m-table .kt-btn i { font-size: 13px; }
}

@media (max-width: 640px) {
  /* عنوانِ صفحه نباید نوار بالا را از عرضِ گوشی پهن‌تر کند */
  .zz-premium .kt-container-fixed h1 { overflow-wrap: anywhere; }
}

/* نوارِ بالای صفحه: ستونِ عنوان نباید صفحه را پهن کند (عنوانِ بلندِ کانال) */
.zz-premium .kt-container-fixed > .flex.flex-col { min-width: 0; max-width: 100%; }
.zz-premium .kt-container-fixed h1 { max-width: 100%; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  /* قفلِ نهایی: هیچ‌چیز نباید عرضِ صفحه را از پهنای گوشی بیشتر کند */
  .zz-premium, .zz-premium body { max-width: 100vw; overflow-x: hidden !important; }
}

@media (max-width: 640px) {
  /* ستونِ عنوان/مسیر در نوار بالا: overflow:hidden سهمِ min-content را صفر می‌کند
     و همین حلقهٔ «محتوا صفحه را پهن می‌کند» را می‌شکند */
  .zz-premium .kt-container-fixed > .flex.flex-col { width: 100%; max-width: 100%; overflow: hidden; }
  .zz-premium .kt-container-fixed h1 { font-size: var(--text-base); line-height: 1.7; }
  .zz-premium .kt-container-fixed { min-width: 0; }
}

/* مسیرِ راهنما (breadcrumb): whitespace-nowrap بود و کلاسِ overflow-x-auto در تم وجود ندارد،
   برای همین عنوانِ بلندِ کانال کلِ صفحه را پهن‌تر از گوشی می‌کرد */
.zz-premium .kt-container-fixed ol.whitespace-nowrap { overflow-x: auto; max-width: 100%; scrollbar-width: none; }
.zz-premium .kt-container-fixed ol.whitespace-nowrap::-webkit-scrollbar { display: none; }
.zz-premium .kt-container-fixed > .flex.flex-col > div { min-width: 0; max-width: 100%; }

/* مسیرِ راهنما: min-content عنوانِ بلندِ کانال را از محاسبهٔ عرضِ صفحه خارج کن —
   بدونِ این، کلِ صفحه روی گوشی به اندازهٔ متنِ مسیر پهن می‌شد (تنها فرمولی که جواب داد) */
.zz-premium .zz-crumbs { contain: inline-size; min-width: 0; }

/* ==========================================================================
   فروشگاه (store/*) — زبانِ پریمیومِ سایتِ v2 داخلِ پنل.
   باندلِ تم خیلی از یوتیلیتی‌های تیل‌ویند را ندارد؛ استایلِ واقعی این‌جاست
   و بینِ صفحه‌های محصول/چک‌اوت/سفارش مشترک است.
   ========================================================================== */
/* رنگ‌ها از توکن‌های تم (۲۰۲۶-۱۰-۱۴، روشن و تیره): کارت‌ها سطحِ کارت با مرزِ نازک‌اند، کارتِ پیشنهادی ته‌رنگِ برند و قابِ بنفش،
   وضعیت‌ها رنگِ وضعیت؛ هالهٔ بنفش، شیشهٔ سفیدِ نیمه‌شفاف و سایه‌های رنگی برداشته شدند (روی زمینهٔ روشن لکه یا نامرئی بودند).
   همین کلاس‌ها در فرمِ مشاوره (consultation/*) هم به کار می‌روند. */
.zz-store{position:relative}
.zz-store .amb{display:none}
.zz-store > *{position:relative;z-index:1}

.zz-verified{display:inline-flex;align-items:center;gap:10px;font-size:var(--text-sm);font-weight:800;color:var(--mono);
    padding:10px 20px;border-radius:100px;
    background:var(--zz-info-soft);
    border:1px solid var(--zz-info-line)}
.zz-verified svg{flex:none}

.zz-plan{position:relative;border-radius:16px;padding:26px 24px;display:flex;flex-direction:column;gap:16px;
    background:var(--card);
    border:1px solid var(--border);box-shadow:var(--zz-shadow)}
/* کارتِ پیشنهادی باید در نگاهِ اول برنده به نظر برسد: ته‌رنگِ برند و قابِ بنفش */
.zz-plan--featured{background:color-mix(in oklab,var(--primary) 5%,var(--card));
    border-color:var(--zz-brand-line)}
.zz-plan--success{background:color-mix(in oklab,var(--zz-success) 6%,var(--card));
    border-color:var(--zz-success-line)}
/* سفارشِ ناموفق (store/order) */
.zz-plan--danger{border-color:var(--zz-danger-line)}
/* ردیفِ «سفارش‌های شما» زیرِ پلن‌ها */
.zz-store-order{padding:.55rem .8rem;border:1px solid var(--border);border-radius:.7rem;background:var(--zz-surface-2);transition:background-color .15s,border-color .15s}
.zz-store-order:hover{background:var(--zz-hover);border-color:var(--zz-line-strong)}

/* سایه‌ی کارتِ وسطِ صفحهٔ پلن‌ها برداشته شد (سعید، ۲۰۲۶-۱۰-۰۱: «باکس شدوی پلن وسطی رو حذف کن»)؛ قاب و پس‌زمینهٔ بنفش می‌ماند */
.zz-plans>.zz-plan--featured{box-shadow:none}

/* نوارِ «بهترین انتخاب» بالای کارتِ پیشنهادی. ته‌رنگ با رنگِ کارت آمیخته می‌شود نه شفاف: روی ته‌رنگِ بنفشِ کارتِ پیشنهادی
   زردِ شفاف صورتیِ گل‌آلود می‌شد و متن به ۳٫۸ می‌رسید؛ متن هم کمی به رنگِ عنوان نزدیک‌تر (هر دو تم) */
.zz-crown{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;
    font-size:var(--text-xs);font-weight:800;color:color-mix(in oklab,var(--zz-warning) 78%,var(--mono));
    background:color-mix(in oklab,var(--zz-warning) 12%,var(--card));
    border:1px solid var(--zz-warning-line);border-radius:10px;padding:8px 10px}
.zz-crown svg{flex:none}

.zz-ribbon{display:inline-block;width:fit-content;border-radius:100px;padding:8px 18px;font-size:var(--text-base);font-weight:900;
    background:color-mix(in oklab,var(--zz-warning) 12%,var(--card));color:color-mix(in oklab,var(--zz-warning) 78%,var(--mono));
    border:1px solid var(--zz-warning-line)} /* هم‌قدِ بجِ کم‌رنگِ بوردردار — ترازِ سطرها به‌هم نخورد */
.zz-ribbon--ghost{visibility:hidden}
/* نردبانِ تخفیف: بجِ طلایی فقط برای پیشنهادِ اصلی؛ باقی پلن‌ها بجِ کم‌رنگ */
.zz-ribbon--dim{background:var(--zz-surface-3);color:var(--secondary-foreground);border:1px solid var(--border)}

/* سه کارتِ پلن کنارِ هم (باندلِ تم md:grid-cols-3 ندارد) */
.zz-plans{display:grid;grid-template-columns:1fr;gap:20px;align-items:stretch}
/* ردیف‌هایی که فقط برای ترازِ سه کارتِ کنارِ هم رندر می‌شوند؛ روی موبایل که
   کارت‌ها زیرِ هم می‌آیند ترازی در کار نیست، پس جای خالی هم نباید بگیرند. */
.zz-plan .zz-ghost{visibility:hidden}
@media (max-width:919px){.zz-plan .zz-ghost{display:none}}

/* دکمهٔ «نمایشِ ویژگی‌ها» — روی دسکتاپ اصلاً وجود ندارد (لیست همیشه باز است).
   روی موبایل لیست بسته است تا قیمت، تخفیف و تایمرِ هر سه پلن در یک نگاه بیایند. */
.zz-more{display:none}
@media (max-width:919px){
    .zz-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
        font-size:var(--text-2sm);font-weight:700;color:var(--zz-brand-text);cursor:pointer;
        background:var(--zz-brand-soft);border:1px solid var(--zz-brand-line);
        border-radius:12px;padding:11px 12px}
    .zz-more .chev{transition:transform .18s ease}
    .zz-plan.is-open .zz-more .chev{transform:rotate(180deg)}
    .zz-plan .zz-feats{display:none}
    .zz-plan.is-open .zz-feats{display:block}
}
@media (min-width:920px){
    /* کارتِ پیشنهادی وسط می‌نشیند و بزرگ‌تر از دو کارتِ کناری است — عینِ صفحهٔ سایت.
       ستونِ وسط پهن‌تر + بیرون‌زدگیِ عمودی، به‌جای transform:scale که متن را تار می‌کند. */
    .zz-plans{grid-template-columns:1fr 1.16fr 1fr}
    /* در RTL کمترین order سمتِ راست می‌نشیند: ماهانه | سالانه | ۶ ماهه */
    .zz-plans>[data-plan$="monthly"]{order:1}
    .zz-plans>[data-plan$="yearly"]{order:2}
    .zz-plans>[data-plan$="6m"]{order:3}
    .zz-plans>.zz-plan--featured{z-index:2;margin-block:-18px;padding:32px 28px;
        border-width:1.5px;border-color:color-mix(in oklab,var(--primary) 62%,transparent);
        background:color-mix(in oklab,var(--primary) 7%,var(--card))}
    /* پلنِ ویژه با قاب و زمینه برجسته است، نه با اندازهٔ دیگری از متن (مقیاسِ هفت‌پله، ۲۰۲۶-۱۰-۲۵) */
}

/* ردیف‌های زیرِ قیمت — min-height دارند تا سطرهای سه کارت تراز بمانند */
.zz-permo{font-size:var(--text-sm);font-weight:800;color:var(--zz-brand-text);min-height:23px}
.zz-save{font-size:var(--text-2sm);font-weight:700;color:var(--zz-success);min-height:21px}

/* شمارش‌معکوسِ به‌روزرسانیِ نرخ — به مرزِ واقعیِ ری‌کامپیوتِ قیمت وصل است.
   دیزاینِ فلیپ‌کلاک (خواستهٔ مالک): سه جعبهٔ رقمِ درشت با برچسبِ ساعت/دقیقه/ثانیه */
.zz-timer{display:flex;flex-direction:column;align-items:center;gap:9px;margin-bottom:12px}
.zz-timer .lbl{font-size:var(--text-xs);font-weight:800;color:var(--zz-warning);display:inline-flex;align-items:center;gap:7px}
.zz-timer .lbl svg{flex:none}
.zz-flip{display:flex;gap:10px;direction:ltr}
.zz-flip .cell{display:flex;flex-direction:column;align-items:center;gap:5px}
/* جعبهٔ رقم: دو نیمهٔ کمی متفاوت از سطح‌های تم (حسِ فلیپ‌کلاک بی رنگِ ثابت) */
.zz-flip .card{position:relative;min-width:58px;padding:9px 10px;border-radius:10px;text-align:center;
    background:linear-gradient(180deg,var(--zz-surface-2) 0%,var(--zz-surface-2) 50%,var(--zz-surface-3) 50%,var(--zz-surface-3) 100%);
    border:1px solid var(--zz-line-strong);box-shadow:var(--zz-shadow);
    font-size:30px;font-weight:900;color:var(--mono);line-height:1.15;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.zz-flip .card::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--zz-line-strong)}
.zz-flip .unit{font-size:var(--text-xs);font-weight:700;color:var(--muted-foreground);letter-spacing:.06em}

.zz-pname{font-size:var(--text-lg);font-weight:800;color:var(--mono)}

.zz-tag{display:inline-flex;align-items:center;font-size:var(--text-2sm);font-weight:700;padding:5px 14px;border-radius:100px}
.zz-tag--violet{color:var(--zz-brand-text);background:var(--zz-brand-soft);border:1px solid var(--zz-brand-line)}
.zz-tag--plain{color:var(--secondary-foreground);background:var(--zz-surface-3);border:1px solid var(--border)}

.zz-price{display:flex;align-items:baseline;gap:8px}
.zz-price .n{font-size:var(--text-2xl);font-weight:900;letter-spacing:-.02em;color:var(--mono);line-height:1.1}
.zz-price .c{font-size:var(--text-base);color:var(--secondary-foreground)}
/* قیمتِ اصلی: باید خوانا باشد و کاربر بفهمد چه چیزی خط خورده — خطِ قرمزِ واضح روی عدد */
.zz-was{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--text-base);color:var(--secondary-foreground);min-height:26px}
.zz-was b{font-size:var(--text-xs);font-weight:700;color:var(--secondary-foreground)}
.zz-was s{text-decoration:line-through;text-decoration-color:var(--zz-danger);text-decoration-thickness:2px;
    font-weight:700;color:var(--foreground)}

.zz-feats{border-radius:14px;border:1px solid var(--border);background:var(--zz-surface-2);padding:4px 16px}
.zz-feat{display:flex;align-items:flex-start;gap:10px;padding:12px 0;font-size:var(--text-sm);color:var(--foreground);line-height:1.8}
.zz-feat + .zz-feat{border-top:1px solid var(--border)}
.zz-feat .tick{flex:none;width:22px;height:22px;border-radius:7px;display:grid;place-items:center;margin-top:3px;
    color:var(--zz-success);background:var(--zz-success-soft);border:1px solid var(--zz-success-line)}
.zz-feat.hl{color:var(--mono);font-weight:800}

.zz-buy{margin-top:auto;padding-top:6px}

.zz-trust{display:flex;align-items:center;justify-content:center;gap:10px 28px;flex-wrap:wrap;
    font-size:var(--text-xs);color:var(--secondary-foreground);font-weight:600}
.zz-trust span{display:inline-flex;align-items:center;gap:8px}
.zz-trust svg{flex:none;color:var(--muted-foreground)}

/* آیکونِ گردِ وضعیت در صفحهٔ سفارش (رنگِ آیکن = currentColor) */
.zz-stateico{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.zz-stateico--wait{color:var(--zz-brand-text);background:var(--zz-brand-soft);border:1px solid var(--zz-brand-line)}
.zz-stateico--ok{color:var(--zz-success);background:var(--zz-success-soft);border:1px solid var(--zz-success-line)}

/* جداکنندهٔ «یا» در فرمِ کانال */
.zz-or{display:flex;align-items:center;gap:14px;color:var(--muted-foreground);font-size:var(--text-xs)}
.zz-or::before,.zz-or::after{content:"";height:1px;flex:1;background:var(--border)}

/* مراحلِ خرید (۲۰۲۶-۱۰-۰۱): پلن ← اطلاعات ← پرداخت */
.zz-steps{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;list-style:none;margin:0;padding:0;font-size:var(--text-xs);font-weight:700}
.zz-steps li{padding:5px 12px;border-radius:100px;border:1px solid var(--border);color:var(--muted-foreground);background:var(--card)}
.zz-steps li.is-done{color:var(--zz-success);border-color:var(--zz-success-line)}
.zz-steps li.is-current{color:var(--zz-brand-text);border-color:var(--zz-brand-line);background:var(--zz-brand-soft)}

/* دورهٔ اشتراک در صفحهٔ سفارش و «سفارش‌های شما» */
.zz-sub{display:flex;flex-direction:column;gap:8px;border-radius:12px;border:1px solid var(--border);background:var(--zz-surface-2);padding:10px 14px;font-size:var(--text-2sm)}
.zz-sub>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.zz-sub>div>span:first-child{color:var(--secondary-foreground)}
.zz-sub-date{width:9rem;max-width:100%;text-align:center}
.zz-default-submit{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

@media(max-width:520px){
    .zz-price .n{font-size:var(--text-2xl)}
    .zz-plan{padding:20px 16px}
    /* خطِ «قیمت اصلی» روی صفحهٔ باریک باید جا بگیرد، نه اینکه به لبه بچسبد */
    .zz-was{font-size:var(--text-2sm);gap:6px}
    .zz-was b{font-size:var(--text-xs)}
    .zz-crown{font-size:var(--text-xs);padding:7px 8px}
    .zz-flip .card{min-width:52px;font-size:26px;padding:8px}
}

/* فرمِ ساختِ کدِ تخفیف در ادمین — روی موبایل هر فیلد یک سطرِ تمام‌عرض */
.zz-formgrid{display:flex;flex-wrap:wrap;gap:1rem}
.zz-formgrid > div{flex:1 1 200px}
@media (max-width:640px){
    .zz-formgrid{flex-direction:column;gap:.85rem}
    .zz-formgrid > div{flex:1 1 auto;min-width:0 !important;width:100%}
    .zz-formgrid input,.zz-formgrid select{width:100%}
}

/* ============================================================
   گزارش‌های ادمین — ردیفِ اعدادِ کلیدی
   ============================================================ */
.zz-report{min-width:0}
.zz-report .kt-card,.zz-report .zz-kpi{min-width:0}
.zz-kpis{display:grid;grid-template-columns:1fr;gap:14px;min-width:0}
@media (min-width:700px){.zz-kpis{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.zz-kpis{grid-template-columns:repeat(4,1fr)}}
.zz-kpi{display:flex;flex-direction:column;gap:5px;padding:18px 20px;border-radius:14px;
    border:1px solid var(--border);background:var(--card);box-shadow:var(--zz-shadow)}
.zz-kpi .lbl{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-kpi .val{font-size:var(--text-2xl);font-weight:900;color:var(--mono);line-height:1.15;font-variant-numeric:tabular-nums}
.zz-kpi .delta{font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-kpi .delta.up{color:var(--zz-success)}
.zz-kpi .delta.down{color:var(--zz-danger)}

/* نمودار نباید عرضِ ستون را باز کند — سرریزِ افقی روی موبایل از همین‌جا می‌آید */
/* (#zzUsersChart و .zz-stat-val ِ گزارشِ حذف‌شدهٔ «رشدِ کاربران» بی‌مصرف بودند و رفتند، ۲۰۲۶-۱۰-۱۴) */

/* تیکتِ بی‌پاسخ یک آمار نیست، یک کارِ معوق است — رنگ از توکن‌های وضعیت، در هر دو تم */
.zz-alarm{display:inline-flex;align-items:center;gap:7px;font-weight:800;color:var(--zz-danger);
    background:var(--zz-danger-soft);border:1px solid var(--zz-danger-line);
    border-radius:100px;padding:4px 11px}
.zz-alarm:hover{background:color-mix(in oklab,var(--zz-danger) 18%,transparent)}
.zz-alarm .dot{width:7px;height:7px;border-radius:50%;background:var(--zz-danger);flex:none}
/* ردیفِ «تیکت‌های بدون پاسخ» در داشبورد (hover:bg-accent/20 در باندل نبود) */
.zz-dash-tk:hover{background-color:var(--zz-hover)}
/* خطای اخیر در admin/logs: زمینهٔ ملایم و مرزِ نازکِ «خطر» (border-danger ِ باندل قرمزِ تند بود) */
.zz-log-err{background-color:var(--zz-danger-soft);border:1px solid var(--zz-danger-line)}
/* درآمدِ یک کاربر در ادمین (revenue/admin-show): کارتِ «دسترسی محدود» (کهربایی) و «خطا در دریافت» (قرمز) */
.zz-arev-note{--zz-tone:var(--zz-warning);background-color:color-mix(in oklab,var(--zz-tone) 6%,var(--card));border-color:color-mix(in oklab,var(--zz-tone) 30%,transparent)}
.zz-arev-note.is-danger{--zz-tone:var(--zz-danger)}
.zz-arev-note .zz-arev-ic{background-color:color-mix(in oklab,var(--zz-tone) 14%,transparent);color:var(--zz-tone)}
.zz-arev-note .zz-arev-tone{color:var(--zz-tone)}
.zz-arev-item{background-color:var(--card);border:1px solid color-mix(in oklab,var(--zz-tone,var(--zz-danger)) 30%,transparent)}

/* نوارِ باریکِ وضعیت سرویس‌ها */
.zz-svc{padding:10px 16px;border-radius:12px;border:1px solid var(--border);background:var(--card);box-shadow:var(--zz-shadow)}
.zz-svc .row{display:flex;gap:20px;flex-wrap:wrap}
.zz-svc .svc{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);font-weight:600;color:var(--foreground)}
.zz-svc .svc em{font-style:normal;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-svc .dot{width:8px;height:8px;border-radius:50%;flex:none}
.zz-svc .ok .dot{background:var(--zz-success)}
.zz-svc .bad .dot{background:var(--zz-danger)}
.zz-svc--down{border-color:var(--zz-danger-line);background:color-mix(in oklab,var(--zz-danger) 6%,var(--card))}
.zz-svc .msgs{margin-top:8px;font-size:var(--text-xs);color:var(--zz-danger);word-break:break-word}

/* ============================================================
   پنل ادمین — بزرگ‌کردنِ فونت‌ها
   قالب برای لاتین ساخته شده و همان اندازه‌ها در فارسی ریز می‌خوانَد
   (کشیدگی و نقطه‌های فارسی فضای بیشتری می‌خواهند). فقط زیرِ .zz-admin
   اعمال می‌شود تا پنلِ کاربری و سایت دست‌نخورده بمانند.
   ============================================================ */
/* مقیاسِ قدیمیِ مخصوصِ ادمین حذف شد — اندازهٔ متنِ اجزا در «مقیاسِ تایپوگرافی» پایین‌تر است (۲۰۲۶-۱۰-۲۵) */

/* عددهای بزرگِ داشبورد و گزارش یک پله بالاتر */
.zz-admin .zz-kpi .val{font-size:var(--text-2xl)}
.zz-admin .zz-svc .svc{font-size:var(--text-sm)}
@media (max-width:520px){
    .zz-admin .zz-kpi .val{font-size:var(--text-2xl)}
}

/* ============================================================
   یوتیلیتی‌های گم‌شده‌ی باندلِ فریزشدهٔ قالب
   public/theme/css/styles.css یک بیلدِ ثابتِ Tailwind است و بعضی کلاس‌های
   استاندارد داخلش نیست؛ آن کلاس‌ها بی‌صدا کار نمی‌کنند. `lg:grid-cols-4`
   یکی از همان‌هاست و هفت صفحه به آن تکیه کرده‌اند — همه‌شان به‌جای چهار
   ستون، دو ستون می‌شدند و صفحه دو برابر بلند می‌شد.
   ============================================================ */
@media (min-width:1024px){
    .lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
    .lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
    .lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
}

/* عرضِ محتوا: قالب روی ۱۲۸۰px قفل بود و روی نمایشگرِ پهن دو طرف خالی می‌ماند.
   بازِ کامل هم بد است (خطِ متنِ بلند خوانده نمی‌شود)، پس سقفِ منطقی می‌گذاریم. */
.zz-admin .kt-container-fixed{max-width:2600px}


/* ── پوششِ اسکرولِ افقیِ جدول‌ها ──────────────────────────────────────────
   تلهٔ باندلِ فریزشدهٔ تم: ۱۳ جا در ۱۰ ویو از `.kt-table-responsive` یا
   `.overflow-x-auto` استفاده می‌شود، ولی **هیچ‌کدام در هیچ استایل‌شیتی تعریف
   نشده‌اند** (`kt-table-responsive` اصلاً وجود ندارد و `overflow-x-auto` جزو
   یوتیلیتی‌هایی است که بیلدِ فریزشده حذفشان کرده). یعنی آن جدول‌ها فکر می‌کنند
   مهار شده‌اند و در واقع روی موبایل کلِ صفحه را می‌کِشند.
   به‌جای دست‌زدن به ۱۳ نقطه، همین‌جا تعریفشان می‌کنیم تا هر استفادهٔ فعلی و
   آینده هم درست کار کند. min-width:0 حیاتی است: بدونِ آن، این پوشش داخلِ
   والدِ flex/grid کوچک‌تر از محتوایش نمی‌شود و به‌جای جدول، صفحه سرریز می‌کند. */
.kt-table-responsive,
.overflow-x-auto{
    overflow-x:auto;
    min-width:0;
    max-width:100%;
    -webkit-overflow-scrolling:touch;
}

/* ══ گامِ ۲: عرضِ محتوا ══════════════════════════════════════════════════
   پنلِ کاربر روی پیش‌فرضِ تم (۱۲۸۰px) مانده بود، در حالی که ادمین قبلاً به
   ۱۷۲۰ رسیده بود — روی نمایشگرِ ۱۹۲۰ یعنی صدها پیکسل حاشیهٔ الکی. حالا هر دو
   پنل یک عرض دارند. سقف باقی می‌ماند چون متنِ بی‌نهایت عریض بد خوانده می‌شود.
   نکته: این قاعده روی موبایل بی‌اثر است؛ آنجا کانتینر از عرضِ صفحه کوچک‌تر
   است و padding خودش تعیین‌کننده است.
   ۲۶۰۰: مالک روی نمایشگرِ فوق‌عریضِ ~۳۴۴۰ کار می‌کند. با سقفِ ۱۷۲۰ آنجا ۷۵۵px
   سیاهیِ خالی در هر طرف می‌ماند. سقف حذف نمی‌شود چون سطرِ بی‌نهایت عریض بد
   خوانده می‌شود. زیر ~۲۴۷۰px عرضِ صفحه این عدد اصلاً فعال نیست، پس روی
   لپ‌تاپ و ۱۹۲۰ هیچ تغییری نمی‌دهد. */
.kt-container-fixed{max-width:2600px}

/* ── یوتیلیتی‌های سقفِ عرض که بیلدِ فریزشدهٔ تم ندارد ──────────────────────
   ۳۳ جا در ویوها از max-w-* استفاده می‌شود و فقط 2xl/full/none/48 زنده‌اند؛
   بقیه بی‌اثرند. تا وقتی کانتینر باریک بود کسی متوجه نمی‌شد، ولی حالا که
   عریض شده، فرم‌ها و مودال‌ها بدونِ این سقف‌ها کش می‌آمدند. مقادیر عیناً
   مقیاسِ استانداردِ Tailwind است. */
.max-w-xs{max-width:20rem}
.max-w-sm{max-width:24rem}
.max-w-md{max-width:28rem}
.max-w-lg{max-width:32rem}
.max-w-xl{max-width:36rem}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-w-6xl{max-width:72rem}
.max-w-7xl{max-width:80rem}

/* ── گریدهای مردهٔ md (بریک‌پوینتِ تم: 48rem) ─────────────────────────────
   md:grid-cols-3 در ۷ ویو و md:grid-cols-4 در ۴ ویو استفاده شده و هیچ‌کدام
   وجود ندارند؛ آن فرم‌ها روی تبلت و دسکتاپ تک‌ستونی می‌ماندند. */
@media (width >= 48rem){
    .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
    .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* نامِ نسخهٔ ۳ تیلویند؛ در بیلدِ فعلی فقط shrink-0 زنده است */
.flex-shrink-0{flex-shrink:0}

/* صفحهٔ پلن‌ها روی نمایشگرِ فوق‌عریض ─────────────────────────────────────
   سقف روی کلِ صفحه است، نه فقط گریدِ کارت‌ها: اول فقط .zz-plans را محدود
   کردم و نتیجه نامیزان شد — کارت‌ها ۱۵۰۰ ولی کارتِ «سفارش‌های شما» و نوارِ
   پایین تمامِ ۲۶۰۰ را می‌گرفتند. حالا تیتر، کارت‌ها، سفارش‌ها و پانوشت همه
   روی یک خط تراز می‌شوند.
   انتخابِ سلکتور: قاعدهٔ قدیمیِ موبایل
   `.zz-premium .kt-container-fixed > .flex.flex-col{max-width:100%}`
   چهار کلاس دارد و ساده‌تر از آن را می‌بَرد؛ این یکی چهار کلاس دارد و
   دیرتر تعریف شده، پس برنده است. min() هم گاردِ ۱۰۰٪ موبایل را نگه می‌دارد. */
.kt-container-fixed > .zz-store.flex.flex-col{max-width:min(1500px,100%);margin-inline:auto}

/* ── پوستهٔ لِی‌اوت باید اجازهٔ کوچک‌شدن بدهد ─────────────────────────────
   گامِ ۱ به خودِ پوششِ جدول min-width:0 داد، ولی زنجیرهٔ فلکسِ بالای آن
   (body > .flex.grow › … › main.grow) روی min-width:auto مانده بود. آیتمِ
   فلکس با min-width:auto کوچک‌تر از محتوایش نمی‌شود، پس جدولِ ۱۲۱۵px کلِ
   صفحه را روی موبایل به ۱۲۸۱px می‌کشید و پوششِ اسکرول هرگز فعال نمی‌شد.
   اندازه‌گیری روی /admin/users در عرضِ ۳۷۵: صفحه ۱۲۸۱px بود. */
body > .flex.grow,
body > .flex.grow .grow{min-width:0}

/* ══════════════════════════════════════════════════════════════════════
   مقیاسِ تایپوگرافی — نقشِ هر جزء (۲۰۲۶-۱۰-۲۵)
   ──────────────────────────────────────────────────────────────────────
   هفت پله در zz-tokens.css است (--text-xs … --text-2xl). کلاس‌های text-* و
   بیشترِ اجزای kt-* از همان متغیرها می‌خوانند؛ این‌جا فقط جزئی است که قالب
   برایش عددِ ثابت گذاشته (دکمه، فیلد، بجِ کوچک) یا نقشش در پلتفرمِ ما پلهٔ
   دیگری است. جای بازنویسیِ «بزرگ‌تر»ِ ۲۰۲۶-۰۸-۱۱ را گرفته که خودِ کلاس‌های
   text-* را با عددِ ثابت و بی‌لایه می‌پوشاند و leading-* را از کار می‌انداخت.
   ══════════════════════════════════════════════════════════════════════ */
.kt-card-title{font-size:var(--text-lg);line-height:var(--text-lg--line-height);font-weight:600;letter-spacing:0}
.kt-card-description{font-size:var(--text-2sm)}
.kt-table th{font-size:var(--text-2sm)}
.kt-btn{font-size:var(--text-sm)}
.kt-btn-sm{font-size:var(--text-2sm)}
.kt-btn-lg{font-size:var(--text-base)}
/* بج: یک اندازه؛ کوچک و خیلی‌کوچک فقط قرصِ کوتاه‌ترند */
.kt-badge,.kt-badge-lg{font-size:var(--text-xs);line-height:1.2}
.kt-badge-sm,.kt-badge-xs{font-size:var(--text-xs);line-height:1}
.kt-input,.kt-select,.kt-textarea,.kt-input-addon{font-size:var(--text-sm)}
.kt-form-label{font-size:var(--text-2sm);line-height:var(--text-2sm--line-height)}
.kt-link{font-size:inherit}
.kt-link-sm{font-size:var(--text-2sm)}
.kt-menu-title,
.kt-menu-default .kt-menu-title{font-size:var(--text-sm)}
.kt-menu-sub .kt-menu-title,
.kt-menu-default .kt-menu-sub .kt-menu-title{font-size:var(--text-2sm)}
.kt-tabs.kt-tabs-line .kt-tab-toggle{font-size:var(--text-2sm)}
.kt-breadcrumb{font-size:var(--text-xs)}
.kt-kbd{font-size:var(--text-xs)}
/* عنوانِ صفحه در هدرِ دو پنل: ۲۲، روی گوشی ۱۸ تا ابزارهای هدر جا داشته باشند */
.zz-page-title{font-size:var(--text-lg);line-height:var(--text-lg--line-height);font-weight:700}
@media (min-width:1024px){.zz-page-title{font-size:var(--text-xl);line-height:var(--text-xl--line-height)}}

/* برچسب‌های نمودار در JS روی ۱۱px قفل‌اند و روی نمایشگرِ بزرگ خوانده نمی‌شوند */
.apexcharts-text,
.apexcharts-xaxis text,
.apexcharts-yaxis text,
.apexcharts-legend-text{font-size:var(--text-2sm) !important}

/* موبایل: هر هدفِ لمسی حداقل ۴۴px (استانداردِ دسترس‌پذیری) */
@media (max-width:640px){
    .kt-btn,
    a.kt-btn,
    button.kt-btn{min-height:44px}
    /* دکمهٔ آیکنی مربع بماند (بی این، قرصِ ۲۸×۴۴ می‌شد)؛ فیلد هم‌قدِ دکمهٔ کنارش (جست‌وجو، کدِ تخفیف) */
    .kt-btn.kt-btn-icon{min-width:44px}
    .kt-input{min-height:44px}
}

/* ══ گزارش‌ها و نمودارها — نسخهٔ تأییدشده در report-preview (1405/05/20) ══
   از ۲۰۲۶-۱۰-۱۴ رنگِ سری‌ها، محور و خطوطِ شبکه از توکن‌های --zz-chart-* (هر تم مقدارِ خودش) می‌آیند و
   admin/stats/partials/charts-script با تعویضِ تم دوباره رنگ می‌گیرد: chart-1 بنفش = کاربر/کلیک،
   chart-4 کهربایی = ویدیو، chart-3 سبز = پول. */

/* تولتیپِ مشترکِ نمودارها — فقط داخلِ .zz-chart تا حبابِ پیش‌فرضِ نمودارهای دست‌نخورده نشکند.
   سطحِ popover با سایهٔ پنجره‌ها: در تمِ روشن سفید، در تیره گرافیتی (۲۰۲۶-۱۰-۱۴) */
.zz-chart .apexcharts-tooltip{background:transparent!important;border:0!important;box-shadow:none!important}
.zz-tip{background:var(--popover);border:1px solid var(--zz-line-strong);border-radius:12px;padding:10px 14px;
    box-shadow:var(--zz-shadow-pop);font-family:inherit;direction:rtl}
.zz-tip .t{font-size:var(--text-xs);color:var(--secondary-foreground);margin-bottom:5px}
.zz-tip .v{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--mono);font-weight:800}
.zz-tip .v+.v{margin-top:4px}
.zz-tip .k{width:14px;height:3px;border-radius:2px;flex:none}

/* کارتِ آمارِ نسخهٔ ۲: آیکن + عددِ درشت + چیپِ جهتِ حرکت + اسپارک‌لاین — سطحِ کارت، تخت، در هر دو تم */
.zz-s2{position:relative;border-radius:14px;padding:18px 20px 14px;min-width:0;
    background:var(--card);border:1px solid var(--border);box-shadow:var(--zz-shadow)}
/* هاورِ «پریدن + حاشیه و سایهٔ بنفش» برداشته شد (۲۰۲۶-۰۹-۲۷، درخواستِ سعید): این کارت‌ها کلیک‌پذیر نیستند */
.zz-s2 .top{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.zz-s2 .ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none;
    background:var(--zz-surface-3);color:var(--secondary-foreground)}
.zz-s2 .ic>i{color:inherit}
/* کاشیِ آیکن: یک رنگ برای هر معنا، از توکن‌ها (جای style ِ درون‌خطیِ rgba و #a78bfa…) */
.zz-s2 .ic.is-brand{background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-s2 .ic.is-success{background:var(--zz-success-soft);color:var(--zz-success)}
.zz-s2 .ic.is-danger{background:var(--zz-danger-soft);color:var(--zz-danger)}
.zz-s2 .ic.is-info{background:var(--zz-info-soft);color:var(--zz-info)}
.zz-s2 .ic.is-warning{background:var(--zz-warning-soft);color:var(--zz-warning)}
.zz-s2 .lb{font-size:var(--text-2sm);color:var(--secondary-foreground);font-weight:600}
/* بازهٔ هر عدد صریح نوشته می‌شود — مالک: «بازه‌اش را بنویس» */
.zz-s2 .rng{margin-inline-start:auto;font-size:var(--text-xs);color:var(--muted-foreground);background:var(--zz-surface-3);
    border:1px solid var(--border);border-radius:100px;padding:2px 9px;flex:none}
.zz-s2 .cap{font-size:var(--text-xs);color:var(--muted-foreground);margin-top:2px}
.zz-s2 .row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.zz-s2 .val{font-size:var(--text-2xl);font-weight:800;color:var(--mono);line-height:1.2;letter-spacing:-.01em}
.zz-s2 .chip{font-size:var(--text-xs);font-weight:800;border-radius:100px;padding:3px 10px;display:inline-flex;align-items:center;gap:4px}
.zz-s2 .chip.up{color:var(--zz-success);background:var(--zz-success-soft)}
.zz-s2 .chip.down{color:var(--zz-danger);background:var(--zz-danger-soft)}
.zz-s2 .chip.warn{color:var(--zz-warning);background:var(--zz-warning-soft)}
/* بی‌تغییر (دو عددِ برابر، صفر و صفر هم): خنثی و بی پیکان — نه افتِ قرمز */
.zz-s2 .chip.flat{color:var(--secondary-foreground);background:color-mix(in oklab,var(--muted-foreground) 14%,transparent)}
.zz-s2 .vs{font-size:var(--text-xs);color:var(--muted-foreground);margin-top:2px}
.zz-s2 .spark{height:44px;margin:8px -6px -6px;min-width:0}
.zz-s2 .foot{display:flex;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border);
    font-size:var(--text-xs);color:var(--secondary-foreground);flex-wrap:wrap}
.zz-s2.attn{border-color:var(--zz-warning-line);background:color-mix(in oklab,var(--zz-warning) 5%,var(--card))}
/* نمودارِ داخلِ گرید بدونِ این از محتوایش کوچک‌تر نمی‌شود و روی موبایل سرریز می‌کند */
.zz-chart{min-width:0;max-width:100%}
.zz-chart .kt-card-content{overflow:hidden}


/* ===== تیکت‌ها (۱۴۰۵/۰۵/۳۱): متن یا لینکِ طولانیِ بدونِ فاصله نباید کارت را از
   عرضِ موبایل بیرون بدهد — رشتهٔ نشکن عرضِ min-content را باد می‌کند و کلِ صفحه
   به چپ کلیپ می‌شود. این کلاس روی متن‌های آزادِ تیکت (عنوان، متن، پاسخ، نام فایل)
   می‌نشیند؛ چیز دیگری از تم را دست نمی‌زند. ===== */
.zz-break{overflow-wrap:anywhere;word-break:break-word;min-width:0}

/* هدرِ کارتِ تیکت‌ها: جستجو + دکمهٔ «تیکت جدید» کنارِ هم و در موبایل بشکنند
   (flex-wrap در باندلِ فریز‌شدهٔ تم تضمینی نیست، پس صریح می‌نویسیم) */
.zz-hdr-wrap{flex-wrap:wrap;gap:10px}
.zz-hdr-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* شکستنِ ردیف‌های ابزار/دکمه در موبایل (flex-wrap در باندلِ فریزشده نیست) */
.zz-wrap{flex-wrap:wrap;row-gap:8px}

/* ============================================================
   کلاس‌های گمشدهٔ باندلِ فریزشده (ممیزی UI — ۱۴۰۵/۰۶/۰۲)
   این کلاس‌ها در قالب‌ها استفاده شده‌اند ولی در هیچ CSS بارگذاری‌شده‌ای
   تعریف نبودند، یعنی بی‌صدا هیچ کاری نمی‌کردند. تعریفشان فقط همان رفتارِ
   موردِ انتظارِ مارک‌آپ را برمی‌گرداند و چیزی را نمی‌شکند (کلاسی که اثر
   نداشت، حالا اثرِ درست دارد). مقادیر از توکن‌های خودِ تم گرفته شده‌اند.
   ============================================================ */

/* --- کارت‌های بوت‌استرپی (۵۱ فایل: صفحهٔ تیکتِ ادمین، قراردادها، سفارش‌ها…) --- */
.card{display:flex;flex-direction:column;align-items:stretch;border-radius:calc(var(--radius) + 4px);
  background:var(--card);color:var(--card-foreground);border:1px solid var(--border)}
.card-header{display:flex;min-height:calc(var(--spacing) * 14);flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:calc(var(--spacing) * 2.5);border-bottom:1px solid var(--border);
  padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 3)}
.card-body{flex-grow:1;padding-inline:calc(var(--spacing) * 5);padding-block:calc(var(--spacing) * 5)}
.card-footer{border-top:1px solid var(--border);padding-inline:calc(var(--spacing) * 5);
  padding-block:calc(var(--spacing) * 4)}
.card-title{font-size:var(--text-base);line-height:1;font-weight:600;color:var(--mono)}
.form-label{display:block;font-size:var(--text-2sm);font-weight:500;color:var(--mono);margin-bottom:6px}

/* --- نشانِ «خطر» (۱۵ فایل): تم فقط destructive دارد، پس danger خنثی می‌افتاد --- */

/* --- بریدن/شکستنِ متن --- */
.break-all{word-break:break-all}
.whitespace-pre-line{white-space:pre-line}
.line-clamp-2,.line-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}
.line-clamp-2{-webkit-line-clamp:2}
.line-clamp-3{-webkit-line-clamp:3}

/* --- ستونِ مخفی‌شده که هرگز برنمی‌گشت (سفارش‌های فروشگاه: «محصول» و «تاریخ پرداخت») --- */
@media (min-width:640px){ .sm\:table-cell{display:table-cell} }


/* .card بعد از تمِ اصلی بار می‌شود، پس display:flex آن بر .hidden غلبه می‌کرد و
   کشوهای بسته (مثل «حذف حساب کاربری» در پروفایل) رندر می‌شدند. وقتی هر دو کلاس
   هستند، پنهان‌بودن برنده است؛ با بازشدنِ کشو (حذفِ hidden توسط KTUI) دوباره flex می‌شود. */
.card.hidden{display:none}

/* --- دستهٔ دومِ کلاس‌های گمشده (ممیزی UI، بخشِ پنلِ کاربر) --- */
/* دکمه‌ها: تم فقط primary/destructive/mono/outline… دارد؛ light و warning تعریف نشده بودند
   و دکمه‌های «بازگشت»، «علامت‌زدنِ همه» و «اتصال مجددِ کانال» لخت رندر می‌شدند. */

/* هشدار/متنِ خطا با نامِ danger (تم فقط destructive دارد) */

/* پرکنندهٔ نوارِ پیشرفت و کاشی‌های آماری که هیچ رنگی نداشتند */

/* کشوی «حذف حساب» با عرضِ ثابتِ ۴۵۰ روی موبایلِ ۳۷۵ بیرون می‌زد */
.max-w-\[90\%\]{max-width:90%}


/* شکار رگرسیون ۱۴۰۵/۰۶/۰۳: whitespace-pre-wrap در باندلِ فریزشده نیست؛ متنِ
   چندخطیِ تیکت/پاسخ بدونش یک‌خطی له می‌شد. pre-line از قبل بود، این نبود. */
.whitespace-pre-wrap{white-space:pre-wrap}

/* ===== ماژول تیکتینگ (۱۴۰۵/۰۷/۰۱) =====
   چند قاعدهٔ این بلوک بعد از بازطراحیِ همان روز حذف شد، چون مارک‌آپی که به آن‌ها
   نیاز داشت (حبابِ چت، نخِ اسکرولی، ترتیبِ دستیِ موبایل) دیگر وجود ندارد.
   کلاس‌هایی که ویوهای تیکت استفاده می‌کردند ولی در باندلِ منجمدِ Metronic نبودند،
   پس بی‌صدا هیچ‌کاری نمی‌کردند: کاشی‌های آماری بی‌رنگ، نخِ گفتگوی بی‌اسکرول،
   حبابِ چتِ تمام‌عرض و چیدمانِ موبایلِ ادمین. */
.col-span-full{grid-column:1 / -1}
.zz-ticket-attachment{transition:opacity .15s}
.zz-ticket-attachment:hover{opacity:.8}

/* کادرِ فلش و خطا: لایهٔ dashboard و فرم‌های تیکت این‌ها را فرض کرده‌اند ولی در باندل نیستند،
   پس کادرِ سبزِ «ثبت شد» و کادرِ قرمزِ خطا بی‌قاب و بی‌رنگ رندر می‌شدند. */
.list-disc{list-style-type:disc}

/* ===== بازطراحی ماژول تیکتینگ (۱۴۰۵/۰۷/۰۱) ===== */

/* .kt-avatar-image img فقط aspect-ratio/width/height دارد و هیچ کلاسِ object-* در باندل نیست،
   پس آواتارِ غیرمربع (مثلاً عکسِ گوگل) داخلِ ماسکِ گِرد کشیده می‌شد. */
.kt-avatar-image img{object-fit:cover}

/* پیوست: مربعِ هم‌اندازهٔ ۴۰px برای تصویر و برای کاشیِ آیکن، تا ردیفِ پیوست‌ها هموار بماند */
.zz-att-thumb{width:2.5rem;height:2.5rem;flex:0 0 2.5rem;border-radius:.375rem;object-fit:cover}

/* دراپ‌زون: hover:border-primary و transition-colors هیچ‌کدام در باندل نیستند */
.zz-dropzone{transition:border-color .15s ease,background-color .15s ease}
.zz-dropzone:hover,
.zz-dropzone.zz-dragover{border-color:var(--primary);
  background-color:var(--zz-brand-soft)}

/* ردیفِ لیستِ موبایل: hover:bg-muted در باندل نیست */
.zz-ticket-row{transition:background-color .15s ease}
.zz-ticket-row:hover,
.zz-ticket-row:active{background-color:var(--zz-hover)}

/* کادرِ پاسخ با بزرگ‌شدنِ خودکار (resize-none در باندل نیست) */
.kt-textarea[data-zz-autogrow]{resize:vertical;overflow-y:hidden}

/* ستونِ کم‌اهمیتِ جدول فقط روی نمایشگرِ پهن — باندل هیچ lg:table-cell ای ندارد */
.zz-col-wide{display:none}
@media (min-width:1280px){.zz-col-wide{display:table-cell}}


/* کاشی‌های آماری: ترتیبِ md/lg در این باندل قابلِ اتکا نیست، پس گریدِ صریح */
/* (تیکت‌های ادمین) شش ستون فقط وقتی برچسبِ بلندترین کاشی («منتظر پاسخ پشتیبانی») کنارِ آیکن در یک خط جا می‌شود؛ تا آن‌جا سه ستون.
   برچسب‌ها یک‌خطی‌اند تا آیکن و عددِ همهٔ کاشی‌ها هم‌تراز بمانند؛ روی گوشی آیکن بالای متن می‌رود و برچسب جای کافی دارد. */
.zz-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
@media (min-width:768px){.zz-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1880px){.zz-stat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.zz-stat-grid>.kt-card>.kt-card-content{flex:1 1 auto;display:flex;align-items:center}
.zz-stat-grid .zz-stat-row{width:100%}
.zz-stat-grid .zz-stat-lb{white-space:nowrap}
.zz-stat-grid .zz-stat-ic-muted{background:color-mix(in oklab,var(--muted-foreground) 16%,transparent)}
@media (max-width:639.98px){
  .zz-stat-grid{gap:.875rem}
  .zz-stat-grid>.kt-card>.kt-card-content{align-items:flex-start;padding:.875rem}
  .zz-stat-grid .zz-stat-row{flex-direction:column;align-items:flex-start;gap:.5rem}
  .zz-stat-grid .zz-stat-ic{width:2.5rem;height:2.5rem}
  .zz-stat-grid .zz-stat-ic>i{font-size:1.25rem}
  .zz-stat-grid .zz-stat-lb{white-space:normal}
}

/* ===== گفتگوی چت‌گونهٔ تیکت در هر دو پنل (۱۴۰۵/۰۷/۰۳) =====
   کلاس‌های لازم (flex-row-reverse، max-w-[80%]، border-radius منطقی) در باندل نیستند،
   پس حباب‌ها با CSSِ خودمان و متغیرهای تم ساخته می‌شوند تا در هر دو تم درست باشند.
   در RTL: flex-start = راست (پیامِ خودِ بیننده، --mine) ، flex-end = چپ (طرفِ مقابل). */
.zz-chat{display:flex;flex-direction:column;gap:.5rem;max-height:640px;overflow-y:auto;
  padding:1.25rem;background:var(--zz-surface-2)}
.zz-chat-day{align-self:center;margin:.5rem 0 .25rem;padding:.125rem .75rem;border-radius:999px;
  font-size:var(--text-xs);line-height:1.5rem;color:var(--secondary-foreground);background:var(--card);
  border:1px solid var(--border)}
.zz-chat-row{display:flex;justify-content:flex-end}
.zz-chat-row--mine{justify-content:flex-start}
.zz-chat-bubble{max-width:78%;min-width:9rem;padding:.625rem .875rem;border-radius:14px;
  border-start-end-radius:4px;background:var(--card);border:1px solid var(--border);color:var(--foreground)}
.zz-chat-bubble--mine{border-start-end-radius:14px;border-start-start-radius:4px;
  background:color-mix(in oklab,var(--primary) 12%,var(--card));
  border-color:color-mix(in oklab,var(--primary) 30%,var(--border))}
.zz-chat-meta{display:flex;align-items:center;gap:.375rem;margin-bottom:.25rem;font-size:var(--text-xs);
  line-height:1.25rem;color:var(--secondary-foreground)}
.zz-chat-author{font-weight:600;color:var(--mono)}
.zz-chat-time{margin-inline-start:auto;padding-inline-start:.75rem}
.zz-chat-text{font-size:var(--text-2sm);line-height:1.75rem}
.zz-chat-files{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
@media (max-width:640px){.zz-chat{max-height:none;padding:.75rem}.zz-chat-bubble{max-width:92%}}
/* پس‌زمینهٔ چت وقتی آخرین فرزندِ کارت است، از گوشه‌های گِردِ پایینِ کارت بیرون نزند */
.kt-card > .zz-chat:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}
/* نشانی‌های کلیک‌پذیرِ متنِ تیکت (۲۰۲۶-۱۰-۱۲، App\Support\TextLinks). لینک در قابِ خودش کشیده می‌شود، با فاصله از دو طرف. این ظاهر بخشی از قاعدهٔ
   امنیتیِ لینک‌ساز است، نه تزئین: فاصلهٔ فونتِ پنل میانِ دو واژهٔ لاتین کمتر از ۲ پیکسل است، و در پیامِ راست‌به‌چپ واژهٔ قبلی درست کنارِ آخرِ نشانی
   می‌نشیند («https://paypal.co» و بعد «m»). قاب و فاصله نمی‌گذارند چیزی ادامهٔ نشانی خوانده شود — آن‌ها را برندارید و کم نکنید.
   خودِ لینک dir="ltr" دارد (چپ‌به‌راست و جدا از جملهٔ فارسیِ دورش) و فونتِ لاتینِ سیستم، نه فونتِ پنل: آن فونت رقم‌ها را فارسی نشان می‌دهد و شناسهٔ
   یک ویدیو («abc123») باید همان‌طور خوانده شود که نوشته شده. */
.zz-text-link{color:var(--zz-brand-text);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere;word-break:break-word;unicode-bidi:isolate;
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  margin-inline:.3em;padding:.1em .45em;border-radius:6px;background:var(--zz-surface-3);box-shadow:inset 0 0 0 1px var(--zz-line-strong);
  -webkit-box-decoration-break:clone;box-decoration-break:clone}
.zz-text-link:hover{color:var(--mono);background:var(--zz-hover)}
.zz-text-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/* ===== پنلِ ادمین — Demo 1ِ Metronic (۲۰۲۶-۰۹-۲۵) =====
   چیدمان (.demo1 .kt-sidebar / .kt-header / .kt-sidebar-collapse) در باندل است؛ این‌ها فقط
   جاافتاده‌های باندلِ ما و اصلاحِ RTL‌اند. */
.z-40{z-index:40}
/* upstream این را دارد و باندلِ ما نه: بدونِ آن، لوگوی ۲۸۰پیکسلی در منوی جمع‌شده بیرون می‌زند */
.demo1 .kt-sidebar .kt-sidebar-logo{overflow:hidden}
/* مسیرِ صفحه زیرِ عنوانِ هدر */
.zz-admin-crumbs{line-height:1rem}
.zz-admin-crumbs i{font-size:.625rem}
.zz-admin-crumbs a{color:inherit}
.zz-admin-crumbs a:hover{color:var(--primary)}
/* عددِ روی زنگ: گوشهٔ دکمه نه روی خودِ آیکن، با حاشیه‌ای به رنگِ زمینه تا جدا دیده شود (قبلاً ۱۶ پیکسلیِ چسبیده به آیکن) */
.zz-bell-count{position:absolute;top:1px;inset-inline-end:1px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;
  background:var(--destructive);color:#fff;font-size:var(--text-xs);line-height:15px;font-weight:700;text-align:center;pointer-events:none;
  box-shadow:0 0 0 2px var(--background)}
/* ابزارهای هدرِ هر دو پنل روی یک خط: wrapperِ dropdownها بلوک بودند و دکمهٔ inline-blockِ داخلشان روی
   baseline می‌نشست، پس wrapper به‌جای ۳۶ تا ۴۰ پیکسل می‌شد و زنگ ۱ و تعویضِ کانال ۳ پیکسل بالاتر از بقیه می‌ایستادند */
.zz-hdr-tools>[data-kt-dropdown]{display:flex;align-items:center}
/* هدرِ ادمین: دکمه‌های آیکنی دورِ آیکن ۹٫۵ تا ۱۰ پیکسل فضای خالیِ نامرئی دارند و آواتار دایرهٔ پُر است؛ بدونِ این
   فاصلهٔ دیداریِ آواتار تا زنگ ۲۰ و زنگ تا جست‌وجو ۲۹٫۵ پیکسل بود (اندازه‌گیری با پیکسل‌های اسکرین‌شات) */
.zz-hdr-tools>.zz-hdr-user{margin-inline-start:9.5px}
/* گوشی: دکمه‌های آیکنی ۴۴پیکسلی می‌شوند (هدفِ لمسی)، پس فضای خالیِ دورِ آیکن ۱۳٫۵ است؛ آواتار ۳۶ می‌ماند */
@media (max-width:640px){.zz-hdr-tools>.zz-hdr-user{margin-inline-start:13.5px}}
/* آواتارِ بی‌عکسِ هدرها: یک حرف روی زمینهٔ خنثی، حلقهٔ رنگی از کلاسِ border می‌آید */
.zz-avatar-initial{display:flex;align-items:center;justify-content:center;background:var(--accent);color:var(--mono);
  font-weight:600;font-size:15px;line-height:1}
.zz-bell-item:last-child{border-bottom:0}
.zz-search-row:last-child{border-bottom:0}
/* گوشی: جای لوگو را به عنوانِ صفحه می‌دهیم */
@media (max-width:639.98px){.zz-admin-mlogo{display:none}}
/* مسیرِ بلند (عنوانِ ویدیو یا کانال) هدرِ ۷۰پیکسلی را دوخطی نکند؛ فقط تکهٔ آخر کوتاه می‌شود */
.zz-admin-crumbs{min-width:0;overflow:hidden;white-space:nowrap}
.zz-admin-crumbs>*{flex-shrink:0}
.zz-admin-crumbs>:last-child{flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
/* ویدیوها و صفِ آپلود (ادغامِ ۲۰۲۶-۰۹-۲۵): object-cover در باندل نبود و تصویرِ بندانگشتی کش می‌آمد؛
   md:col-span-2 هم نبود (col-span-2 تنها، در گریدِ تک‌ستونیِ گوشی ستونِ اضافه می‌ساخت) */
.zz-admin .object-cover{object-fit:cover}
@media (min-width:768px){.zz-admin .md\:col-span-2{grid-column:span 2/span 2}}
/* هفت تبِ شماره‌دار: در لپ‌تاپ یک خط (فاصلهٔ پیش‌فرضِ kt-tabs-line ۲۸ پیکسل است) و در گوشی به‌جای
   سه ردیفِ شکسته با فاصلهٔ زیاد، یک نوارِ افقیِ قابلِ کشیدن */
.zz-admin .kt-tabs.kt-tabs-line.zz-vtabs{column-gap:1.25rem;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.zz-admin .zz-vtabs .kt-tab-toggle{flex-shrink:0;white-space:nowrap}
/* پنجرهٔ جست‌وجوی هدر (۲۰۲۶-۰۹-۲۵، مثلِ Demo 1): گروه‌ها در تبِ «همه» ۴ ردیف، در تبِ خودشان همه؛ ردیفِ
   انتخاب‌شده با ↑↓ همان رنگِ hover را می‌گیرد */
#zz_search_modal .kt-modal-content{top:4vh}
@media (min-width:1024px){#zz_search_modal .kt-modal-content{top:15%}}
#zz_search_modal .kt-input-ghost{background:transparent}
#zz_search_modal .zz-qs-scroll{max-height:min(60vh,520px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
#zz_search_modal [data-zz-qs-sections][data-view="all"] [data-zz-qs-extra]{display:none}
#zz_search_modal [data-zz-qs-sections]:not([data-view="all"]) [data-zz-qs-group]:not(.is-current){display:none}
#zz_search_modal [data-zz-qs-sections]:not([data-view="all"]) [data-zz-qs-goto]{display:none}
#zz_search_modal [data-zz-qs-sections][data-view="all"] [data-zz-qs-group]+[data-zz-qs-group]{border-top:1px solid var(--border)}
#zz_search_modal .zz-qs-row:hover,#zz_search_modal .zz-qs-row.is-active{background-color:var(--accent)}
#zz_search_modal .zz-qs-row.is-active .kt-menu-title{color:var(--zz-brand-text)}
#zz_search_modal [aria-busy="true"]{opacity:.6;transition:opacity .15s}
#zz_search_modal .zz-vtabs{border-bottom-color:var(--border)}
/* md:flex در باندل نیست (فقط md:flex-1 و…) */
#zz_search_modal .zz-qs-hints{display:none}
@media (min-width:768px){#zz_search_modal .zz-qs-hints{display:flex}}

/* ===== پوستهٔ دو پنل — Demo 1ِ Metronic (۲۰۲۶-۰۹-۲۵؛ رنگ‌ها روی توکن‌ها از ۲۰۲۶-۱۰-۱۴) =====
   منوی کنار و هدرِ پنلِ کاربر و ادمین یک ظاهر دارند، در هر دو حالت. */
/* منوی کنار: سطحِ کارت با مرزِ نازک؛ کشوی موبایل و حالتِ جمع‌شده با hover هم همان */
.demo1 #sidebar{background-color:var(--card);border-color:var(--border)}
/* هدر: هم‌رنگِ زمینه، کمی شفاف با blur؛ بعد از اسکرول خطِ مرزی می‌گیرد */
.demo1 #header{background-color:color-mix(in oklab,var(--background) 86%,transparent);-webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px)}
.demo1 #header.zz-header-stuck{border-bottom:1px solid var(--border)}
/* آیتم‌های منو */
#sidebar .kt-menu-link{border-radius:.5rem}
#sidebar .kt-menu-link:hover{background-color:var(--zz-hover)}
#sidebar .kt-menu-item>.kt-menu-link .kt-menu-title{color:var(--foreground)}
#sidebar .kt-menu-item>.kt-menu-link .kt-menu-icon{color:var(--muted-foreground)}
/* آیتمِ فعال: زمینهٔ ملایمِ برند، عنوان و آیکنِ رنگی */
#sidebar .kt-menu-item.active>.kt-menu-link{background-color:var(--zz-brand-soft);border-color:transparent}
#sidebar .kt-menu-item.active>.kt-menu-link .kt-menu-title{color:var(--zz-brand-text);font-weight:600}
#sidebar .kt-menu-item.active>.kt-menu-link .kt-menu-icon,
#sidebar .kt-menu-item.here>.kt-menu-link .kt-menu-icon{color:var(--zz-brand-text) !important}
#sidebar .kt-menu-item.here>.kt-menu-link .kt-menu-title{color:var(--mono)}
#sidebar .kt-menu-accordion .kt-menu-item.active>.kt-menu-link{background-color:var(--zz-brand-soft);border-color:transparent}
/* دکمهٔ جمع‌کردن روی لبهٔ منو */
#sidebar_toggle{background-color:var(--card) !important;border-color:var(--zz-line-strong) !important}
/* تعویضِ کانال: فهرستِ بلند اسکرول بخورد، کانالِ فعال پیدا باشد */
.zz-ch-list{max-height:320px;overflow-y:auto}
.zz-ch-active{background-color:var(--zz-brand-soft)}
.zz-premium .zz-user-title{max-width:100%}
/* گوشی: مثلِ هدرِ ادمین جای لوگو را به عنوانِ صفحه می‌دهیم (کنارِ دکمهٔ تم، تعویضِ کانال، زنگ و آواتار، عنوان به چند حرف بریده می‌شد) */
@media (max-width:639.98px){.zz-user-mlogo{display:none}}
/* پنجره‌های تمام‌صفحه (پیشرفتِ آپلود، پیش‌نمایشِ لینک) این کلاس‌ها را داشتند ولی در باندل نبودند؛
   بدونِ آن‌ها زیرِ هدر و منوی ثابت می‌افتادند */
.z-50{z-index:50}
.bg-black\/60{background-color:var(--zz-overlay)}
.bg-black.bg-opacity-90{background-color:rgb(0 0 0 / .9)}
/* بازبینیِ پنلِ کاربر (۲۰۲۶-۰۹-۲۵) */
/* inset-0 فقط برای پنجره‌های fixed؛ به‌صورتِ سراسری دکمهٔ مخفیِ «حذف» را روی تصویرِ پیش‌نمایشِ آپلود می‌انداخت */
.fixed.inset-0{inset:0}
/* روی گوشی بدنه اسکرول می‌خورد نه سند، پس KTSticky خطِ مرزی را روشن نمی‌کند؛ همیشه نشانش بده */
@media (max-width:640px){.demo1 #header{border-bottom:1px solid var(--border)}}
/* نوارِ ابزارِ نمودارها (z-index 11) روی هدرِ ثابت (z 10) می‌افتاد */
.demo1 .apexcharts-canvas{z-index:0}
/* ادمین‌ها بینِ ۱۰۲۴ و ۱۲۸۰: دکمهٔ «پنل مدیریت سایت» عنوان را له می‌کرد (در منوی کاربر هم هست) */
@media (max-width:1279.98px){.zz-hdr-admin{display:none !important}}
/* دکمه‌های آیکنیِ گردِ هدر روی گوشی (min-height:44pxِ سراسری) بیضی می‌شدند */
@media (max-width:640px){#header .kt-btn-icon.rounded-full{width:44px;height:44px}}
.zz-bell-list>.zz-bell-item:last-child{border-bottom:0}

/* ===== صفحهٔ حسابِ کاربری (بازسازی ۲۰۲۶-۰۹-۲۶، الگوی Account Settingsِ Metronic) =====
   custom.css لایه ندارد و از .hidden باندل قوی‌تر است؛ هر کلاسی این‌جا display بدهد، حالتِ .hidden خودش را هم دارد. */
.zz-profile .zz-prow{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}
.zz-profile .zz-prow-label{width:100%;flex-shrink:0}
@media (min-width:1024px){
  .zz-profile .zz-prow{flex-wrap:nowrap}
  .zz-profile .zz-prow-label{width:220px}
}
.zz-profile .zz-prow:first-child{align-items:center}
.zz-profile .zz-avatar-big{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:999px;
  background:var(--accent);color:var(--mono);font-size:30px;font-weight:600;line-height:1}
.zz-profile .zz-avatar-big.hidden{display:none}
.zz-profile .zz-avatar-cam{position:absolute;inset-inline:0;bottom:0;height:22px;display:flex;align-items:center;justify-content:center;
  background:color-mix(in oklab,var(--zz-overlay) 80%,transparent);pointer-events:none}
.zz-profile .kt-image-input:hover .zz-avatar-cam{background:var(--zz-overlay)}
.zz-profile .zz-readonly{display:flex;align-items:center;gap:8px;cursor:default;opacity:.9}
.zz-profile .zz-profile-save{position:sticky;bottom:12px;z-index:5;background:var(--card) !important;
  box-shadow:0 -10px 28px -14px color-mix(in oklab,var(--zz-overlay) 60%,transparent)}
/* نوارِ چسبان مات است (زمینهٔ کارت) تا متنِ زیرش پیدا نباشد. گوشی: فقط دکمه‌ها */
@media (max-width:640px){
  .zz-profile .zz-profile-save #zz_profile_dirty{display:none}
  .zz-profile .zz-profile-save .kt-card-content>div{width:100%;justify-content:flex-end}
}
.zz-profile .zz-danger-link{gap:6px;color:var(--destructive)}
.zz-profile .zz-danger-link:hover{text-decoration:underline}
/* inputِ داخلِ wrapperِ kt-input (رمز با دکمهٔ نمایش): قاعدهٔ premium به inputِ خام هم زمینه می‌دهد و یک کادرِ دوم می‌ساخت */
#zz_profile_form .kt-input>input{background:transparent !important;border:0 !important;box-shadow:none !important}
#zz_delete_account .kt-modal-content,#zz_phone_change .kt-modal-content{top:8vh}
#zz_delete_account .zz-code-input,#zz_phone_change .zz-code-input{text-align:center;font-size:var(--text-xl);font-weight:600;letter-spacing:.45em;height:52px}


/* ===== صفحهٔ آپلود: نوارِ انتشارِ چسبان (۲۰۲۶-۰۹-۲۶) =====
   دکمهٔ «ارسال و آپلود به یوتیوب» زیرِ فرم و بیرون از دید بود و کاربر بعد از پیامِ سبز صفحه را ترک می‌کرد.
   حالا نوار به پایینِ صفحه می‌چسبد و راهنمای زیرِ دکمه رنگِ وضعیت دارد. */
.zz-publish-bar{position:sticky;bottom:12px;z-index:5;background:var(--card);border:1px solid var(--border);
  border-radius:12px;padding:12px 14px;box-shadow:0 -10px 28px -14px color-mix(in oklab,var(--zz-overlay) 60%,transparent)}
#change-file-btn.zz-link-btn:hover{text-decoration:underline}
/* راهنمای زیرِ دکمه رنگِ وضعیت دارد (data-tone)؛ رنگ‌ها از توکن‌های تم (۲۰۲۶-۱۰-۱۴) */
#submit-hint[data-tone]{font-weight:600}
.zz-premium #submit-hint[data-tone="warn"]{color:var(--zz-warning) !important}
.zz-premium #submit-hint[data-tone="ok"]{color:var(--zz-success) !important}
/* جای رهاکردنِ فایل (ویدیو و تامبنیل): حالت‌ها را اسکریپتِ صفحه با همان کلاس‌های قدیمی می‌گذارد (border-blue-*، bg-green-50…)؛
   این‌جا به رنگِ برند (کشیدن/در حالِ آپلود)، سبز (کامل) و قرمز (خطا) ترجمه می‌شوند */
.zz-publish-drop{border-color:var(--zz-line-strong);background-color:var(--zz-surface-2)}
.zz-publish-drop:hover{border-color:var(--zz-brand-line);background-color:color-mix(in oklab,var(--zz-brand-soft) 60%,var(--zz-surface-2))}
.zz-publish-drop.border-blue-400,.zz-publish-drop.border-blue-500{border-color:var(--primary)}
.zz-publish-drop.bg-blue-50,.zz-publish-drop.bg-blue-100{background-color:var(--zz-brand-soft)}
.zz-publish-drop.border-green-400{border-color:var(--zz-success-line)}
.zz-publish-drop.bg-green-50{background-color:var(--zz-success-soft)}
.zz-publish-drop.border-red-400{border-color:var(--zz-danger)}
.zz-publish-drop.bg-red-50{background-color:var(--zz-danger-soft)}
/* جعبهٔ فایلِ ویدیو (۲۰۲۶-۱۰-۱۸؛ سعید: «باکس فایل ویدئو رو یکم از بالا و پایین بزرگ تر کن. تکست‌ها خیلی چسبیده به لبه‌ها»): «p-12»
   و «h-16» ِ قدیمی در باندل نبودند، پس جعبه هیچ فاصله‌ای نداشت و متن به خطِ چین می‌چسبید */
.zz-video-drop{padding:2.75rem 1.25rem}
.zz-video-drop svg{width:3.5rem;height:3.5rem}
@media (max-width:640px){.zz-video-drop{padding:2.25rem 1rem}}
/* لایهٔ «حذف» روی تامبنیلِ انتخاب‌شده: با هاور یا تمرکز؛ روی صفحه‌لمسی همیشه پیداست */
.zz-publish-thumb-ov{inset:0;opacity:0;background:transparent;transition:opacity .2s,background-color .2s}
#thumbnail-preview-container:hover .zz-publish-thumb-ov,.zz-publish-thumb-ov:focus-within{opacity:1;background:var(--zz-overlay)}
@media (hover:none){.zz-publish-thumb-ov{opacity:1;align-items:flex-end;padding-bottom:.75rem}}
.zz-publish-progress{background:var(--card)}
/* نوارِ پیشرفتِ آپلود: کلاسِ h-3 در باندل نیست و نوار تا ۲۰۲۶-۱۰-۱۴ ارتفاعِ صفر داشت (دیده نمی‌شد) */
.zz-publish-track{height:.75rem;overflow:hidden;background:color-mix(in oklab,var(--zz-line-strong) 70%,transparent)}
.zz-publish-track>#upload-progress-bar{height:100%}
#video-form input[type=radio],#video-form input[type=checkbox]{accent-color:var(--primary)}
/* «اعلام به یوتیوب» (۲۰۲۶-۱۰-۱۷): قابِ آرامِ پرسش‌های یوتیوب در کارتِ تأییدِ مالک (فشرده). در فرمِ آپلود از عصرِ ۲۰۲۶-۱۰-۱۸ قابی نیست:
   دو خانهٔ معمولیِ grid با «؟» و بله/خیرِ دوتایی (video/partials/declarations-form) */
.zz-decl{display:flex;flex-direction:column;gap:1rem;padding:1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--zz-surface-2)}
.zz-decl-line{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem 2rem}
.zz-decl-line .zz-decl-tip{flex-basis:100%}
.zz-decl-help{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:999px;
  border:1px solid var(--zz-line-strong);background:transparent;color:var(--secondary-foreground);font-size:var(--text-xs);line-height:1;cursor:pointer}
.zz-decl-help:hover{color:var(--zz-brand-text);border-color:var(--zz-brand-line)}
.zz-decl-help[aria-expanded="true"]{background:var(--zz-brand-soft);color:var(--zz-brand-text);border-color:var(--zz-brand-line)}
.zz-decl-help:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-decl-tip{margin:0;padding:.5rem .75rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--card);
  font-size:var(--text-xs);line-height:1.85;color:var(--secondary-foreground)}
/* بله/خیرِ دوتایی: input ِ شفاف روی هر نیمه، پس کلیک، فوکوس و کلیدهای جهت همان رادیوی واقعی‌اند */
.zz-seg{flex:none;display:inline-flex;border:1px solid var(--input);border-radius:calc(var(--radius) - 2px);overflow:hidden;background:var(--zz-field)}
.zz-seg-opt{position:relative;display:inline-flex;margin:0}
.zz-seg-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.zz-seg-opt span{display:inline-flex;align-items:center;justify-content:center;min-width:3rem;height:2rem;padding:0 .625rem;
  font-size:var(--text-xs);color:var(--secondary-foreground);user-select:none;transition:background-color .15s,color .15s}
.zz-seg-opt+.zz-seg-opt span{border-inline-start:1px solid var(--input)}
.zz-seg-opt:hover span{background:var(--zz-hover);color:var(--foreground)}
.zz-seg-opt input:checked+span{background:var(--zz-brand-soft);color:var(--zz-brand-text);font-weight:600}
.zz-seg-opt input:focus-visible+span{outline:2px solid var(--ring);outline-offset:-2px}
.zz-decl-compact{gap:.625rem;padding:.75rem 1rem}
.zz-decl-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem 1rem}
/* راهنمای YouTube Studio زیرِ ردیفِ آپلودشده (صف آپلود و صفحهٔ ویدیو در ادمین) */
.zz-decl-hint{max-width:230px;line-height:1.7;overflow-wrap:anywhere}
.zz-decl-hint a{color:var(--zz-brand-text);text-decoration:underline}
/* جملهٔ پذیرشِ پیش از اتصالِ کانال (includs/youtube-connect-consent): پیوندِ درون‌خطی، نه kt-link ِ inline-flex */
.zz-connect-consent a{color:var(--zz-brand-text)}
.zz-connect-consent a:hover{text-decoration:underline}
/* «اعلام‌هایی که باید در YouTube Studio ثبت کنید» در صفِ آپلودِ مالک (۲۰۲۶-۱۰-۱۷): فهرست، نه جدول — در گوشی دکمه زیرِ متن می‌رود */
.zz-mdecl{display:flex;flex-direction:column}
.zz-mdecl-item{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.75rem 0}
.zz-mdecl-item+.zz-mdecl-item{border-top:1px solid var(--border)}
.zz-mdecl-item>.min-w-0{flex:1 1 16rem}
/* کارتِ «آپلود شده ولی ارسال نشده»: نامِ فایلِ بی‌فاصله ستونِ متن را پهن نکند و دکمه‌ها در گوشی بیرون نزنند */
.zz-pending-upload{flex-wrap:wrap}
.zz-pending-upload .kt-alert-content{min-width:0;flex:1 1 14rem}
.zz-pending-upload .kt-alert-title{overflow-wrap:anywhere}
@media (max-width:640px){.zz-pending-upload .kt-alert-toolbar{flex-basis:100%}}
#submit-video-btn.zz-publish-ready{animation:zzPublishPulse 1.4s ease-out 3}
#submit-video-btn.zz-publish-armed{box-shadow:0 0 0 3px var(--ring)}
@keyframes zzPublishPulse{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--primary) 55%,transparent)}100%{box-shadow:0 0 0 14px color-mix(in oklab,var(--primary) 0%,transparent)}}
@media (prefers-reduced-motion:reduce){#submit-video-btn.zz-publish-ready{animation:none;box-shadow:0 0 0 3px var(--ring)}}

/* ===== جدول‌های پنلِ کاربر در گوشی (۲۰۲۶-۱۰-۱۴، تمِ روشن و تیره): ویدیوها، کانال‌ها، اعضای کانال، کارتِ کانال‌های داشبورد =====
   قاعدهٔ پنل: هر جدول وضعیت و دکمه‌اش را در ۳۷۵px بی اسکرولِ افقی نشان می‌دهد. zz-c-sm زیرِ ۶۴۰px پنهان، zz-c-xs فقط زیرِ آن. */
/* «ویدیوها» (video.index): min-w-[280px] در بسته نیست، پس ستونِ «ویدیو» در table-fixed صفر می‌شد (ستون‌های ثابت ۶۱۶px).
   این جدول ستون‌های «#، مدت، آمار، انتشار» را فقط از ۱۲۸۰px نشان می‌دهد (با سایدبار کمتر از آن جا نمی‌شوند)؛ زیرِ آن همان‌ها خطِ
   زیرِ عنوان‌اند (zz-c-xs)، و زیرِ ۶۴۰px هر ویدیو یک بلوک است */
.zz-vid-table .zz-c-sm{display:none}
.zz-vid-table .zz-c-xs.zz-vid-meta{display:flex;flex-wrap:wrap;gap:.125rem .875rem;margin-top:.125rem}
.zz-vid-meta i{font-size:12px;color:var(--muted-foreground)}
@media (min-width:1280px){
  .zz-vid-table{min-width:56rem}
  .zz-vid-table .zz-c-sm{display:table-cell}
  .zz-vid-table .zz-c-xs.zz-vid-meta{display:none}
}
@media (max-width:639px){
  /* هر ویدیو یک بلوک: تامبنیل و عنوان (و زیرش مدت، بازدید و تاریخ) در یک خطِ کامل، زیرش وضعیت و دکمه‌ها */
  .zz-vid-table thead{display:none}
  .zz-vid-table,.zz-vid-table tbody{display:block;width:100%}
  .zz-vid-table tr{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.75rem .875rem}
  .zz-vid-table td{display:block;padding:0 !important}
  .zz-vid-table td.zz-c-sm{display:none}
  .zz-vid-table td.zz-vid-main{flex:1 1 100%;min-width:0}
  .zz-vid-table td:last-child>div{justify-content:flex-start}
}
/* کارتِ «کانال‌های یوتیوب» ِ داشبورد: قاعدهٔ مشترکِ zz-m-table خانهٔ اول را در گوشی ۴۴px می‌کند (برای ستونِ «فقط عکس»)؛
   این‌جا خانهٔ اول عکس و نام است و نام کلمه‌به‌کلمه می‌شکست */
@media (max-width:640px){
  .zz-premium .zz-dash-ch .zz-m-table th:first-child,
  .zz-premium .zz-dash-ch .zz-m-table td:first-child{width:auto !important;padding-inline:.75rem .5rem !important}
}
/* «کانال‌ها» (channels.index) و «اعضای کانال» (channels.show): زیرِ ۶۴۰px عکسِ کانال کنارِ نام، ایمیلِ عضو زیرِ نامش، و دکمه‌ها فقط آیکن */
.zz-uch-table .zz-c-xs{display:none}
.zz-uch-thumb{flex:none;width:34px;height:34px;object-fit:cover}
.zz-uch-mail{color:var(--secondary-foreground);overflow-wrap:anywhere}
@media (max-width:639px){
  .zz-uch-table{table-layout:auto !important}
  .zz-uch-table th,.zz-uch-table td{width:auto !important;padding-inline:.5rem !important}
  .zz-uch-table tr>:first-child:not(.zz-c-sm),.zz-uch-table tr>.zz-c-sm:first-child+*{padding-inline-start:.875rem !important}
  .zz-uch-table tr>:last-child{width:1% !important;padding-inline-end:.875rem !important}
  .zz-uch-table .zz-c-sm{display:none}
  .zz-uch-table .zz-c-xs{display:block}
  .zz-uch-table .zz-uch-who{flex-wrap:wrap;gap:.25rem .5rem}
  .zz-uch-table .zz-uch-who>.text-mono{flex:1 1 calc(100% - 34px - .5rem);min-width:0;overflow-wrap:anywhere}
  .zz-uch-table .zz-uch-who>.kt-badge{margin-inline-start:calc(34px + .5rem)}
  .zz-uch-table .zz-uch-who>.kt-badge~.kt-badge{margin-inline-start:0}
  .zz-uch-act .zz-uch-label{display:none}
  .zz-uch-act .kt-btn{width:2rem;height:2rem;padding:0;justify-content:center;gap:0}
  .zz-uch-act .kt-btn i{font-size:15px}
}
/* ===== پایانِ جدول‌های پنلِ کاربر در گوشی ===== */

/* فهرستِ کاربرانِ ادمین (۲۰۲۶-۰۹-۲۷): عکس یا حرفِ اولِ نام */
.zz-uavatar{width:36px;height:36px;border-radius:9999px;flex-shrink:0}
.zz-users-table .zz-c-user{min-width:220px}
.zz-users-table .zz-c-phone{width:130px}
.zz-users-table .zz-c-channels{min-width:140px}
.zz-users-table .zz-c-date{width:120px}
.zz-users-table .zz-c-actions{width:140px}
/* ستونِ «آخرین ورود» از ۱۱۰۰px (عضویت از ۱۲۸۰px با zz-col-wide) — زیرِ آن دکمه‌ها پشتِ اسکرول نروند */
.zz-col-mid{display:none}
@media (min-width:1100px){.zz-col-mid{display:table-cell}}
.zz-user-mrow:last-child{border-bottom:0}
.zz-user-meta{column-gap:1rem;row-gap:.25rem}
/* کارتِ کانال‌ها در صفحهٔ کاربر: لینک‌های #channel-{id} زیرِ هدرِ ثابت نروند و کارتِ هدف برجسته شود */
.zz-channel-row{scroll-margin-top:90px}
.zz-channel-row:target{background:var(--zz-brand-soft)}
/* آخرین ردیف خطِ زیرین ندارد (last:border-b-0 در باندل نیست): وگرنه درست بالای مرزِ کارت خطِ دوم می‌افتاد */
.zz-channel-row:last-child{border-bottom:0}

/* صفحهٔ آمارِ سیستم (۲۰۲۶-۰۹-۲۷): نشانِ زندهٔ «کاربرانِ آنلاین» */
.zz-live-dot{width:9px;height:9px;border-radius:50%;background:var(--zz-success);box-shadow:0 0 0 0 color-mix(in oklab,var(--zz-success) 55%,transparent);animation:zzLivePulse 2s ease-out infinite;flex:none}
@keyframes zzLivePulse{0%{box-shadow:0 0 0 0 color-mix(in oklab,var(--zz-success) 55%,transparent)}70%{box-shadow:0 0 0 9px color-mix(in oklab,var(--zz-success) 0%,transparent)}100%{box-shadow:0 0 0 0 color-mix(in oklab,var(--zz-success) 0%,transparent)}}
@media (prefers-reduced-motion:reduce){.zz-live-dot{animation:none}}
.zz-s2.zz-s2-live{border-color:var(--zz-success-line);background:color-mix(in oklab,var(--zz-success) 5%,var(--card))}
/* صفحهٔ آمار: عددی که درجا عوض شد یک لحظه به رنگِ «موفق» درمی‌آید (بی هاله) */
.zz-s2 .val.zz-bump{animation:zzBump 1.6s ease-out}
@keyframes zzBump{from{color:var(--zz-success)}}
@media (prefers-reduced-motion:reduce){.zz-s2 .val.zz-bump{animation:none}}
/* به‌روزرسانی شکست خورد یا نشست تمام شد: نقطهٔ «زنده» خاموش، عددها کم‌رنگ، و در داشبورد برچسبِ وضعیت پیدا */
.zz-stats-stale .zz-live-dot{animation:none;background:var(--muted-foreground);box-shadow:none}
.zz-stats-stale .zz-s2 .val{opacity:.55}
.zz-live-status{display:none}
.zz-stats-stale .zz-live-status{display:block}
/* تقویمِ بازهٔ صفحهٔ آمار (۲۰۲۶-۰۹-۲۸): دکمه + پنلِ گزینه‌های آماده و تقویمِ شمسی؛ رنگِ انتخاب همان --primary (بنفشِ برند در هر دو پنل و هر دو حالت از ۲۰۲۶-۱۰-۱۴، مثلِ دکمهٔ «اعمال»). دو ماه کنارِ هم فقط از ۱۲۸۰px
   (پنل ~۷۵۰px است و زیرِ آن با سایدبارِ باز از صفحه بیرون می‌زد)، زیرِ ۶۴۰px پنل تمام‌عرض و گزینه‌ها بالای تقویم */
.zz-range{position:relative}
.zz-range-btn{gap:8px}
.zz-range-panel{position:absolute;top:calc(100% + 8px);inset-inline-start:0;z-index:40;display:flex;
    background:var(--popover);border:1px solid var(--border);border-radius:14px;box-shadow:var(--zz-shadow-pop);overflow:hidden}
.zz-range-presets{display:flex;flex-direction:column;gap:2px;padding:8px;min-width:150px;border-inline-end:1px solid var(--border)}
.zz-range-preset{padding:8px 12px;border-radius:8px;font-size:var(--text-xs);color:var(--mono);white-space:nowrap}
.zz-range-preset:hover,.zz-range-preset:focus-visible{background:var(--zz-hover)}
.zz-range-preset:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
/* گزینهٔ فعال: ته‌رنگ و متنِ برند (هر دو پنل و هر دو حالت؛ ۲۰۲۶-۱۰-۱۴) */
.zz-range-preset.is-active{background:var(--zz-brand-soft);color:var(--zz-brand-text);font-weight:600}
.zz-range-cal{display:flex;flex-direction:column;gap:10px;padding:12px 14px}
.zz-range-nav{display:flex;align-items:flex-start;gap:6px}
.zz-range-navbtn{flex:none;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--secondary-foreground)}
.zz-range-navbtn:hover:not(:disabled){background:var(--zz-hover);color:var(--mono)}
.zz-range-navbtn:disabled{opacity:.3;cursor:default}
.zz-range-months{display:flex;gap:18px}
.zz-cal-month{width:238px}
.zz-cal-title{text-align:center;font-weight:600;font-size:var(--text-2sm);line-height:32px;color:var(--mono)}
.zz-cal-grid{display:grid;grid-template-columns:repeat(7,34px);row-gap:2px}
.zz-cal-wd{height:26px;line-height:26px;text-align:center;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-cal-day{height:34px;border-radius:8px;font-size:var(--text-xs);color:var(--mono);font-variant-numeric:tabular-nums}
.zz-cal-day:hover:not(:disabled){background:var(--zz-hover)}
.zz-cal-day:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.zz-cal-day:disabled{opacity:.28;cursor:default}
.zz-cal-day.is-today{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--primary) 70%,transparent)}
.zz-cal-day.is-in{background:var(--zz-brand-soft);border-radius:0}
.zz-cal-day.is-start,.zz-cal-day.is-end{background:var(--primary);color:var(--primary-foreground)}
.zz-range-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;
    padding-top:10px;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}
@media (max-width:1279.98px){.zz-range-months>.zz-cal-month:not(:last-child){display:none}}
@media (max-width:639.98px){
    .zz-range-panel{flex-direction:column;width:calc(100vw - 32px);max-width:360px}
    .zz-range-presets{flex-direction:row;flex-wrap:wrap;min-width:0;border-inline-end:0;border-bottom:1px solid var(--border)}
    .zz-range-preset{padding:6px 10px;font-size:var(--text-xs)}
    .zz-range-nav,.zz-range-months,.zz-cal-month{flex:1;min-width:0}
    .zz-cal-month{width:auto}
    .zz-cal-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
}
/* ردیفِ ۵ کارتِ «نمای کلی» (داشبورد و صفحهٔ آمار، ۲۰۲۶-۰۹-۲۷). ستون‌ها از عرضِ واقعیِ محتوا (container query)
   می‌آیند نه از عرضِ پنجره، تا سایدبارِ باز/بسته هم حساب شود: ۵ ستون فقط وقتی هر کارت ≥ ~۱۹۵px می‌شود
   (در ۱۲۸۰px با سایدبارِ باز کارت ۱۶۹px می‌شد و «کانال‌های یوتیوب» سه‌خطی)، وگرنه ۳ (۳+۲)، ۲ یا ۱.
   داخلِ کارت: وقتی محتوای کارت زیرِ ۲۱۰px است، چیپِ بازه («از ابتدا»، «همین حالا») جا را از برچسب نگیرد. */
.zz-overview{container-type:inline-size}
.zz-overview-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem}
@container (min-width:420px){.zz-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:640px){.zz-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container (min-width:1060px){.zz-overview-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
.zz-overview-grid>.zz-s2{container-type:inline-size}
@container (max-width:210px){.zz-s2 .rng{display:none}}

/* ===== فهرستِ درخواست‌های MCN (admin/mcn-requests، بازسازیِ ۲۰۲۶-۰۹-۲۸) — فقط zz-mcnl- ===== */
/* عرضِ ستون‌ها: از ۷۶۸px (و ۱۰۲۴px با سایدبار) بدونِ اسکرولِ افقی. شماره و تلگرام از ۱۲۸۰px ستونِ خودشان
   را دارند (zz-col-wide)؛ زیرِ آن کنارِ نام و زیرِ ایمیل می‌آیند (zz-mcnl-narrow) و «مشاهده» فقط آیکن می‌شود */
.zz-mcnl-table .zz-mcnl-c-id{width:64px}
.zz-mcnl-table .zz-mcnl-c-who{min-width:230px}
.zz-mcnl-table .zz-mcnl-c-chan{min-width:170px}
.zz-mcnl-table .zz-mcnl-c-tg{width:115px}
.zz-mcnl-table .zz-mcnl-c-status{width:170px}
.zz-mcnl-table .zz-mcnl-c-act{width:60px}
@media (min-width:1280px){
    .zz-mcnl-table .zz-mcnl-narrow{display:none}
    .zz-mcnl-table .zz-mcnl-c-act{width:110px}
}
@media (max-width:1279.98px){
    .zz-mcnl-table .zz-mcnl-view{width:calc(var(--spacing)*7);padding:0;justify-content:center}
    .zz-mcnl-table .zz-mcnl-view>span{display:none}
}
.zz-mcnl-view{white-space:nowrap}
/* برچسبِ کانال: truncate در سلولِ جدول عرضِ مشخص می‌خواهد */
.zz-mcnl-chan{max-width:100%;min-width:0}
.zz-mcnl-table .zz-mcnl-chan{max-width:180px}
/* متنِ ردِ قدیمی (بی‌کلید) یک‌خطی */
.zz-mcnl-note{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;overflow-wrap:anywhere}
.zz-mcnl-table .zz-mcnl-note{max-width:170px}
.zz-mcnl-mrow:last-child{border-bottom:0}
.zz-mcnl-q:placeholder-shown{direction:rtl}
.zz-mcnl-meta{column-gap:1rem;row-gap:.25rem}
/* ===== پایانِ فهرستِ درخواست‌های MCN ===== */

/* ===== جزئیاتِ درخواستِ MCN در ادمین (بازسازی ۲۰۲۶-۰۹-۲۸) — پیشوندِ zz-mcnd- =====
   دو ستون (جزئیات + پنلِ تصمیمِ چسبان) فقط وقتی خودِ محتوا ≥ ۹۰۰px است (container query؛ سایدبارِ باز/بسته هم
   حساب می‌شود)؛ زیرِ آن یک ستون و پنلِ تصمیم درست بعد از کارتِ متقاضی. custom.css لایه ندارد و از .hidden باندل
   قوی‌تر است؛ هر کلاسی که display می‌دهد، حالتِ [hidden] خودش را هم دارد. */
.zz-mcnd{container-type:inline-size;display:flex;flex-direction:column;gap:1.25rem}
.zz-mcnd-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}
.zz-mcnd-top,.zz-mcnd-rest{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
.zz-mcnd-side{min-width:0}
@container (min-width:900px){
  .zz-mcnd-grid{grid-template-columns:minmax(0,1fr) 380px;grid-template-rows:auto 1fr}
  .zz-mcnd-top{grid-column:1;grid-row:1}
  .zz-mcnd-rest{grid-column:1;grid-row:2}
  .zz-mcnd-side{grid-column:2;grid-row:1 / span 2;position:sticky;top:calc(var(--header-height,70px) + 1.25rem)}
  /* پنل هرگز از صفحه بلندتر نشود: بدنه اسکرول می‌خورد، دکمهٔ ثبت همیشه پیداست */
  .zz-mcnd-decide{max-height:calc(100vh - var(--header-height,70px) - 2.5rem);display:flex;flex-direction:column}
  .zz-mcnd-decide>.kt-card-content{overflow-y:auto;min-height:0}
  .zz-mcnd-pane{flex:1 1 auto;min-height:0}
  .zz-mcnd-pane-body{overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
}
@container (min-width:1500px){.zz-mcnd-grid{grid-template-columns:minmax(0,1fr) 440px}}

/* سربرگ */
.zz-mcnd-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem}
.zz-mcnd-avatar{width:48px;height:48px;flex:none;border-radius:999px;display:grid;place-items:center;
  background:var(--zz-brand-soft);color:var(--zz-brand-text);font-size:20px;font-weight:700;line-height:1}
.zz-mcnd-meta{display:flex;flex-wrap:wrap;align-items:center;column-gap:.5rem;row-gap:.125rem}
/* جداکننده خطِ باریک، نه «·»: کنارِ رقم‌های فارسی «·» با «۰» اشتباه می‌شود */
.zz-mcnd-meta>*+*::before{content:"";display:inline-block;width:1px;height:.85em;margin-inline-end:.5rem;vertical-align:-.1em;background:var(--border)}
.zz-mcnd-head-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.375rem}
@media (max-width:639.98px){.zz-mcnd-head-actions{align-items:stretch;width:100%}.zz-mcnd-head-actions .kt-btn{flex:1 1 0;justify-content:center}}

/* مسیرِ درخواست */
.zz-mcnd-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;list-style:none;margin:0;padding:0}
.zz-mcnd-step{display:flex;align-items:center;gap:.625rem;min-width:0;position:relative}
.zz-mcnd-step:not(:last-child)::after{content:"";flex:1 1 auto;min-width:.75rem;height:1px;background:var(--border);margin-inline-start:.25rem}
.zz-mcnd-step-dot{width:28px;height:28px;flex:none;border-radius:999px;display:grid;place-items:center;font-size:var(--text-xs);font-weight:600;
  border:1.5px solid var(--border);color:var(--muted-foreground);background:var(--background)}
.zz-mcnd-step.is-done .zz-mcnd-step-dot{border-color:color-mix(in oklab,var(--zz-success) 70%,transparent);color:var(--zz-success);background:var(--zz-success-soft)}
.zz-mcnd-step.is-now .zz-mcnd-step-dot{border-color:color-mix(in oklab,var(--zz-warning) 70%,transparent);color:var(--zz-warning);background:var(--zz-warning-soft)}
.zz-mcnd-step.is-bad .zz-mcnd-step-dot{border-color:color-mix(in oklab,var(--zz-danger) 70%,transparent);color:var(--zz-danger);background:var(--zz-danger-soft)}
.zz-mcnd-step.is-off{opacity:.5}
.zz-mcnd-step.is-done:not(:last-child)::after{background:color-mix(in oklab,var(--zz-success) 45%,transparent)}
@media (max-width:767.98px){
  .zz-mcnd-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:1rem}
  .zz-mcnd-step::after{display:none}
}

/* کارتِ متقاضی: کانال */
.zz-mcnd-channel{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1rem;padding:1rem;border:1px solid var(--border);border-radius:12px;
  background:var(--zz-surface-2)}
.zz-mcnd-channel.is-invalid{border-color:color-mix(in oklab,var(--destructive) 45%,var(--border))}
.zz-mcnd-channel>.grow{flex:1 1 10rem}
.zz-mcnd-rawline{flex-basis:100%;display:flex;align-items:center;gap:.375rem;min-width:0;padding-top:.625rem;border-top:1px dashed var(--border)}
.zz-mcnd-yt{width:44px;height:44px;flex:none;border-radius:10px;display:grid;place-items:center;background:var(--zz-danger-soft);color:var(--zz-danger);font-size:var(--text-xl)}
.zz-mcnd-channel.is-invalid .zz-mcnd-yt{background:var(--zz-surface-3);color:var(--muted-foreground)}
.zz-mcnd-copy{flex:none;width:28px;height:28px;border-radius:7px;display:inline-grid;place-items:center;color:var(--secondary-foreground);font-size:var(--text-2sm);transition:background-color .15s,color .15s}
.zz-mcnd-copy:hover{background:var(--zz-hover);color:var(--mono)}
.zz-mcnd-copy:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-mcnd-copy.is-done{color:var(--zz-success)}
@media (max-width:640px){.zz-mcnd-copy{width:36px;height:36px}}

/* فهرستِ مشخصات (dt | dd) */
.zz-mcnd-dl{display:grid;grid-template-columns:minmax(0,1fr);margin:0}
.zz-mcnd-row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding:.625rem 0;border-bottom:1px dashed var(--border);min-width:0}
.zz-mcnd-dl>.zz-mcnd-row:last-child{border-bottom:0}
.zz-mcnd-row>dt{width:120px;flex:none;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-mcnd-row>dd{flex:1 1 12rem;min-width:0;margin:0;font-size:var(--text-base);color:var(--mono)}
@container (min-width:700px){
  .zz-mcnd-dl-2{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}
  .zz-mcnd-dl-2>.zz-mcnd-row:nth-last-child(2):nth-child(odd){border-bottom:0}
}
/* کارت‌هایی که چیدمانِ داخلی‌شان به عرضِ خودِ کارت بسته است */
.zz-mcnd-cq{container-type:inline-size}
.zz-mcnd-pre{white-space:pre-line}

/* سابقه */
.zz-mcnd-hist{list-style:none;margin:0;padding:0}
.zz-mcnd-hrow{display:flex;flex-direction:column;gap:.375rem;padding:.875rem 1.25rem;border-bottom:1px solid var(--border);border-inline-start:3px solid transparent}
.zz-mcnd-hrow:last-child{border-bottom:0}
.zz-mcnd-hrow.is-live{border-inline-start-color:var(--zz-warning);background:color-mix(in oklab,var(--zz-warning) 6%,transparent)}
.zz-mcnd-hrow.is-live.is-ok{border-inline-start-color:var(--zz-success);background:color-mix(in oklab,var(--zz-success) 6%,transparent)}
.zz-mcnd-hmeta{display:flex;flex-wrap:wrap;column-gap:1rem;row-gap:.125rem}
.zz-mcnd-live-note{display:inline-flex;align-items:center;gap:.375rem;color:var(--zz-warning)}
.zz-mcnd-hrow.is-ok .zz-mcnd-live-note{color:var(--zz-success)}
.zz-mcnd-rchip{display:inline-flex;align-items:center;height:26px;padding:0 .625rem;border-radius:999px;font-size:var(--text-xs);line-height:1;
  color:var(--zz-danger);background:var(--zz-danger-soft);border:1px solid var(--zz-danger-line)}

/* حساب */
.zz-mcnd-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.zz-mcnd-fact{display:flex;flex-direction:column;gap:.25rem;padding:.625rem .875rem;border:1px solid var(--border);border-radius:10px;min-width:0}
@media (max-width:479.98px){.zz-mcnd-facts{grid-template-columns:minmax(0,1fr)}.zz-mcnd-fact{flex-direction:row;justify-content:space-between;align-items:center}}

/* پنلِ تصمیم — کارت بُرش می‌خورد: گوشه‌های پایینِ نوارِ دکمهٔ ثبت (zz-surface-2) از گوشهٔ گردِ کارت بیرون می‌زد
   (inherit از form ِ پنل صفر می‌گرفت). بدنه خودش اسکرول دارد و در کارت هیچ منو یا پاپ‌اوری نیست. */
.zz-mcnd-decide{overflow:hidden}
.zz-mcnd-decide-top{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.25rem 1rem}
.zz-mcnd-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:var(--zz-surface-3);border:1px solid var(--border)}
.zz-mcnd-seg-opt{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;height:42px;border-radius:9px;
  font-size:var(--text-base);font-weight:600;color:var(--secondary-foreground);cursor:pointer;transition:background-color .15s,color .15s,box-shadow .15s}
.zz-mcnd-seg-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.zz-mcnd-seg-opt:hover{color:var(--mono);background:var(--zz-hover)}
.zz-mcnd-seg-opt:has(input:focus-visible){outline:2px solid var(--ring);outline-offset:1px}
.zz-mcnd-seg-opt.is-approve:has(input:checked){background:color-mix(in oklab,var(--zz-success) 14%,var(--card));color:var(--zz-success);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--zz-success) 45%,transparent)}
.zz-mcnd-seg-opt.is-reject:has(input:checked){background:color-mix(in oklab,var(--zz-danger) 12%,var(--card));color:var(--zz-danger);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--zz-danger) 45%,transparent)}
.zz-mcnd-pane{display:flex;flex-direction:column;border-top:1px solid var(--border)}
.zz-mcnd-pane[hidden],.zz-mcnd-update[hidden]{display:none}
.zz-mcnd-pane-body{display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem}
.zz-mcnd-pane-foot{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--border);
  background:var(--zz-surface-2);border-end-start-radius:inherit;border-end-end-radius:inherit}
.zz-mcnd-foot{display:flex;flex-direction:column;gap:1rem;padding:1rem 1.25rem;border-top:1px solid var(--border)}
.zz-mcnd-update{display:flex;flex-direction:column;gap:1rem}
.zz-mcnd-terms-fields{display:flex;flex-direction:column;gap:1.25rem}
/* دکمهٔ تأیید سبز (kt-btn-success در باندل نیست) */
.kt-btn.zz-mcnd-go-ok{background:var(--zz-success-solid);border-color:var(--zz-success-solid);color:var(--primary-foreground)}
.kt-btn.zz-mcnd-go-ok:hover:not(:disabled){filter:brightness(.92)}
.zz-mcnd .kt-btn.is-busy{opacity:.7;cursor:progress}

/* عدد + واحد */
.zz-mcnd-num input{font-variant-numeric:tabular-nums}
.zz-mcnd-num:has(input[aria-invalid="true"]){border-color:var(--destructive)}
.zz-mcnd-unit{flex:none;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-mcnd-chips{display:flex;flex-wrap:wrap;gap:.375rem}
.zz-mcnd-chip{height:32px;min-width:52px;padding:0 .75rem;border-radius:8px;border:1px solid var(--border);background:transparent;
  font-size:var(--text-2sm);color:var(--secondary-foreground);cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.zz-mcnd-chip:hover{background:var(--zz-hover);color:var(--mono)}
.zz-mcnd-chip[aria-pressed="true"]{border-color:var(--primary);background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-mcnd-chip:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
@media (max-width:640px){.zz-mcnd-chip{height:40px}}

/* دلیل‌های رد: کارتِ چک‌باکس */
.zz-mcnd-reasons{display:flex;flex-direction:column;gap:1.125rem;container-type:inline-size}
.zz-mcnd-rgroup{border:0;margin:0;padding:0;min-width:0}
.zz-mcnd-rlegend{padding:0;margin-bottom:.5rem;font-size:var(--text-2sm);font-weight:600;color:var(--secondary-foreground)}
.zz-mcnd-rlist{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}
@container (min-width:560px){.zz-mcnd-rlist{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zz-mcnd-reason{display:flex;align-items:flex-start;gap:.625rem;padding:.625rem .75rem;border:1px solid var(--border);border-radius:10px;cursor:pointer;
  transition:background-color .15s,border-color .15s}
.zz-mcnd-reason:hover{background:var(--zz-hover)}
.zz-mcnd-reason:has(input:checked){border-color:color-mix(in oklab,var(--zz-danger) 55%,transparent);background:color-mix(in oklab,var(--zz-danger) 7%,transparent)}
.zz-mcnd-reason:has(input:focus-visible){outline:2px solid var(--ring);outline-offset:1px}
.zz-mcnd-reason input{margin-top:.3rem}
.zz-mcnd-rtitle{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem;font-size:var(--text-sm);font-weight:600;color:var(--mono);line-height:1.6}
.zz-mcnd-rhint{font-size:var(--text-2sm);line-height:1.6;color:var(--secondary-foreground)}

/* پیش‌نمایش و متنِ فرستاده‌شده: دقیقاً با شکستِ خط‌ها */
.zz-mcnd-preview{white-space:pre-line;overflow-wrap:anywhere;font-size:var(--text-sm);line-height:1.9;color:var(--foreground);padding:.75rem 1rem;
  border-radius:10px;border:1px dashed var(--zz-line-strong);background:var(--zz-surface-2)}
.zz-mcnd-preview.is-empty::before{content:attr(data-empty);color:var(--muted-foreground)}
/* جملهٔ پایانیِ ایمیلِ رد (McnRejectReasons::reapplyNote) — مثلِ ایمیل، آخرین ردیفِ همان کادرِ پیش‌نمایش، زیرِ دلیل‌ها و کم‌رنگ‌تر */
.zz-mcnd-reapply{display:block;margin-top:.625rem;padding-top:.5rem;border-top:1px dashed var(--zz-line-strong);
  font-size:var(--text-2sm);line-height:1.8;color:var(--secondary-foreground)}
.zz-mcnd-reapply[hidden]{display:none}

/* وضعیتِ ایمیلِ تصمیم و «ارسالِ دوبارهٔ ایمیل» */
.zz-mcnd-mail{display:flex;flex-direction:column;align-items:flex-start;gap:.375rem;min-width:0}
.zz-mcnd-mail .kt-badge{gap:.375rem;height:auto;min-height:26px;padding-block:.25rem;white-space:normal;line-height:1.5}
.zz-mcnd-resend{display:flex;flex-direction:column}
/* به‌جای «ارسال دوبارهٔ ایمیل» وقتی ایمیل فرستاده نمی‌شود (McnRequest::decisionEmailBlocker) */
.zz-mcnd-blocker{display:flex;align-items:flex-start;gap:.5rem;margin:0;padding:.625rem .75rem;border-radius:10px;border:1px solid var(--border);
  background:var(--zz-surface-2);font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-mcnd-blocker>i{flex:none;margin-top:.3rem}

/* نتیجهٔ بررسی */
.zz-mcnd-outcome{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--border)}
.zz-mcnd-outcome>i{font-size:26px;flex:none}
.zz-mcnd-outcome.is-ok{border-color:var(--zz-success-line);background:color-mix(in oklab,var(--zz-success) 7%,transparent)}
.zz-mcnd-outcome.is-ok>i{color:var(--zz-success)}
.zz-mcnd-outcome.is-bad{border-color:var(--zz-danger-line);background:color-mix(in oklab,var(--zz-danger) 7%,transparent)}
.zz-mcnd-outcome.is-bad>i{color:var(--zz-danger)}
.zz-mcnd-terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.zz-mcnd-term{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:10px}
.zz-mcnd-term-val{font-size:var(--text-xl);font-weight:700;color:var(--mono);line-height:1.3}
/* پرش به کارت‌ها زیرِ هدرِ ثابت نرود */
.zz-mcnd [id^="zz_mcnd_"]{scroll-margin-top:90px}
/* ===== پایانِ جزئیاتِ درخواستِ MCN ===== */

/* ===== قراردادها در ادمین (admin/contracts، بازسازی ۲۰۲۶-۰۹-۲۹، فرمِ تازهٔ اطلاعات و مدارک) — فقط zz-kycadm- =====
   فهرست: هم‌شکلِ فهرستِ درخواست‌های MCN. جزئیات: دو ستون (بررسی + پنلِ تصمیمِ چسبان) وقتی خودِ محتوا ≥ ۹۰۰px است
   (container query)؛ زیرِ آن یک ستون و پنلِ تصمیم آخرِ صفحه. custom.css لایه ندارد و از .hidden ِ باندل قوی‌تر است؛
   هر کلاسی که display می‌دهد، [hidden] ِ خودش را هم دارد. */
.zz-kycadm-q:placeholder-shown{direction:rtl}
.zz-kycadm-table .zz-kycadm-c-who{min-width:230px}
.zz-kycadm-table .zz-kycadm-c-chan{min-width:190px}
.zz-kycadm-table .zz-kycadm-c-terms{width:170px}
.zz-kycadm-table .zz-kycadm-c-time{width:150px}
.zz-kycadm-table .zz-kycadm-c-status{width:150px}
.zz-kycadm-table .zz-kycadm-c-act{width:60px}
@media (min-width:1280px){.zz-kycadm-table .zz-kycadm-c-act{width:110px}}
@media (max-width:1279.98px){
  .zz-kycadm-table .zz-kycadm-view{width:calc(var(--spacing)*7);padding:0;justify-content:center}
  .zz-kycadm-table .zz-kycadm-view>span{display:none}
}
.zz-kycadm-view{white-space:nowrap}
.zz-kycadm-chan{max-width:100%;min-width:0}
.zz-kycadm-table .zz-kycadm-chan{max-width:220px}
.zz-kycadm-mrow:last-child{border-bottom:0}
.zz-kycadm-meta{column-gap:1rem;row-gap:.25rem}
/* شناسهٔ کانال و شبا با رقمِ لاتین (font-mono)؛ مونواسپیس درشت‌تر دیده می‌شود */
.zz-kycadm-chan .font-mono,.zz-kycadm-meta .font-mono,.zz-kycadm-table .font-mono{font-size:var(--text-xs)}

/* جزئیات: چیدمان */
.zz-kycadm{container-type:inline-size;display:flex;flex-direction:column;gap:1.25rem}
.zz-kycadm-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}
.zz-kycadm-main{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
.zz-kycadm-side{min-width:0}
@container (min-width:900px){
  .zz-kycadm-grid{grid-template-columns:minmax(0,1fr) 380px}
  .zz-kycadm-side{position:sticky;top:calc(var(--header-height,70px) + 1.25rem)}
  .zz-kycadm-decide{max-height:calc(100vh - var(--header-height,70px) - 2.5rem);display:flex;flex-direction:column}
  .zz-kycadm-decide>.kt-card-content{overflow-y:auto;min-height:0}
  .zz-kycadm-pane{flex:1 1 auto;min-height:0}
  .zz-kycadm-pane-body{overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--border) transparent}
}
@container (min-width:1500px){.zz-kycadm-grid{grid-template-columns:minmax(0,1fr) 420px}}
.zz-kycadm-cq{container-type:inline-size}
.zz-kycadm [id^="zz_kycadm_"]{scroll-margin-top:90px}

/* سربرگ */
.zz-kycadm-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem}
.zz-kycadm-avatar{width:48px;height:48px;flex:none;border-radius:999px;display:grid;place-items:center;
  background:var(--zz-brand-soft);color:var(--zz-brand-text);font-size:20px;font-weight:700;line-height:1}
.zz-kycadm-headmeta{display:flex;flex-wrap:wrap;align-items:center;column-gap:.5rem;row-gap:.125rem}
/* جداکننده خطِ باریک، نه «·» (کنارِ رقم‌های فارسی با «۰» اشتباه می‌شود) */
.zz-kycadm-headmeta>*+*::before{content:"";display:inline-block;width:1px;height:.85em;margin-inline-end:.5rem;vertical-align:-.1em;background:var(--border)}
.zz-kycadm-head-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.375rem}
@media (max-width:639.98px){.zz-kycadm-head-actions{align-items:stretch;width:100%}.zz-kycadm-head-actions .kt-btn{flex:1 1 0;justify-content:center}}

/* بررسی‌های خودکار */
.zz-kycadm-chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0;padding:0}
.zz-kycadm-chip{display:inline-flex;align-items:center;gap:.375rem;min-height:30px;padding:.25rem .75rem;border-radius:999px;font-size:var(--text-xs);line-height:1.5;
  border:1px solid var(--border);color:var(--secondary-foreground);background:var(--zz-surface-2)}
.zz-kycadm-chip>i{font-size:15px;flex:none}
.zz-kycadm-chip.is-ok{color:var(--zz-success);border-color:var(--zz-success-line);background:var(--zz-success-soft)}
.zz-kycadm-chip.is-warn{color:var(--zz-warning);border-color:var(--zz-warning-line);background:var(--zz-warning-soft)}
.zz-kycadm-chip.is-bad{color:var(--zz-danger);border-color:var(--zz-danger-line);background:var(--zz-danger-soft)}
.zz-kycadm-chip.is-info{color:var(--zz-info);border-color:var(--zz-info-line);background:var(--zz-info-soft)}
.zz-kycadm-notes{display:flex;flex-direction:column;gap:.375rem;list-style:none;margin:0;padding:0;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-kycadm-notes>li{display:flex;align-items:flex-start;gap:.5rem}
.zz-kycadm-notes>li>i{flex:none;margin-top:.3rem}
.zz-kycadm-notes>li.is-warn>i{color:var(--zz-warning)}
.zz-kycadm-notes>li.is-bad>i{color:var(--zz-danger)}
.zz-kycadm-notes>li.is-info>i{color:var(--zz-info)}

/* فهرستِ مشخصات (dt | dd) */
.zz-kycadm-sec{font-size:var(--text-2sm);font-weight:600;color:var(--secondary-foreground);margin:0}
.zz-kycadm-dl{display:grid;grid-template-columns:minmax(0,1fr);margin:0}
.zz-kycadm-row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding:.625rem 0;border-bottom:1px dashed var(--border);min-width:0}
.zz-kycadm-dl>.zz-kycadm-row:last-child{border-bottom:0}
.zz-kycadm-row>dt{width:130px;flex:none;font-size:var(--text-2sm);color:var(--secondary-foreground);line-height:1.5}
.zz-kycadm-dt-sub{display:block;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-kycadm-row>dd{flex:1 1 12rem;min-width:0;margin:0;font-size:var(--text-base);color:var(--mono)}
@container (min-width:700px){
  .zz-kycadm-dl-2{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}
  .zz-kycadm-dl-2>.zz-kycadm-row:nth-last-child(2):nth-child(odd){border-bottom:0}
}
.zz-kycadm-pre{white-space:pre-line}

/* مقدارِ پوشیده + «نمایش» + کپی */
.zz-kycadm-secret{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.25rem .5rem;min-width:0}
.zz-kycadm-secret-val{font-variant-numeric:tabular-nums;letter-spacing:.02em;overflow-wrap:anywhere}
.zz-kycadm-secret.is-open .zz-kycadm-secret-val{color:var(--zz-warning)}
.zz-kycadm-reveal{gap:.375rem}
.zz-kycadm-copy{flex:none;width:28px;height:28px;border-radius:7px;display:inline-grid;place-items:center;color:var(--secondary-foreground);font-size:var(--text-2sm);
  transition:background-color .15s,color .15s}
.zz-kycadm-copy[hidden]{display:none}
.zz-kycadm-copy:hover{background:var(--zz-hover);color:var(--mono)}
.zz-kycadm-copy:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-kycadm-copy.is-done{color:var(--zz-success)}
@media (max-width:640px){.zz-kycadm-copy{width:36px;height:36px}}

/* تذکرِ مالکیت */
.zz-kycadm-callout{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--zz-warning-line);background:color-mix(in oklab,var(--zz-warning) 7%,transparent)}
.zz-kycadm-callout>i{flex:none;font-size:22px;color:var(--zz-warning);margin-top:.1rem}

/* گالریِ مدارک */
.zz-kycadm-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.875rem}
@media (max-width:479.98px){.zz-kycadm-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:.625rem}}
.zz-kycadm-doc{display:flex;flex-direction:column;margin:0;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--card);min-width:0}
.zz-kycadm-doc.is-missing{border-style:dashed;border-color:color-mix(in oklab,var(--destructive) 40%,var(--border))}
.zz-kycadm-doc-media{aspect-ratio:4/3;background:var(--zz-surface-3);display:grid;place-items:stretch}
.zz-kycadm-doc-thumb{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.zz-kycadm-doc-thumb img{width:100%;height:100%;object-fit:contain;display:block}
.zz-kycadm-doc-thumb:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
.zz-kycadm-doc-file,.zz-kycadm-doc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;width:100%;height:100%;text-align:center;padding:.5rem}
.zz-kycadm-doc-file{color:var(--mono);font-size:var(--text-xs);font-weight:600}
.zz-kycadm-doc-file>i{font-size:40px;color:var(--zz-danger)}
.zz-kycadm-doc-file:hover{background:var(--zz-hover)}
/* secondary و نه muted: muted روی چاهِ zz-surface-3 فقط ۳٫۷ به ۱ بود؛ مرزِ خط‌چینِ «خطر» نشانِ نبودنِ مدرک می‌ماند */
.zz-kycadm-doc-empty{color:var(--secondary-foreground);font-size:var(--text-xs)}
.zz-kycadm-doc-empty>i{font-size:34px}
.zz-kycadm-doc-cap{display:flex;flex-direction:column;gap:.375rem;padding:.625rem .75rem .75rem;border-top:1px solid var(--border);min-width:0}

/* کانال */
.zz-kycadm-channel{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem 1rem;padding:1rem;border:1px solid var(--border);border-radius:12px;
  background:var(--zz-surface-2)}
.zz-kycadm-channel.is-invalid{border-color:color-mix(in oklab,var(--destructive) 45%,var(--border))}
.zz-kycadm-channel>.grow{flex:1 1 12rem}
.zz-kycadm-yt{width:44px;height:44px;flex:none;border-radius:10px;display:grid;place-items:center;background:var(--zz-danger-soft);color:var(--zz-danger);font-size:var(--text-xl)}
.zz-kycadm-channel.is-invalid .zz-kycadm-yt{background:var(--zz-surface-3);color:var(--muted-foreground)}

/* شرایط */
.zz-kycadm-terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.zz-kycadm-term{display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:10px}
.zz-kycadm-term-val{font-size:var(--text-xl);font-weight:700;color:var(--mono);line-height:1.3}

/* پنلِ تصمیم — کارت بُرش می‌خورد تا گوشه‌های نوارِ دکمهٔ ثبت از گوشهٔ گردِ کارت بیرون نزنند (مثلِ zz-mcnd-decide) */
.zz-kycadm-decide{overflow:hidden}
.zz-kycadm-decide-top{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.25rem 1rem}
.zz-kycadm-seg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:12px;background:var(--zz-surface-3);border:1px solid var(--border)}
.zz-kycadm-seg-opt{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:42px;padding:.25rem .5rem;border-radius:9px;text-align:center;
  font-size:var(--text-sm);font-weight:600;line-height:1.4;color:var(--secondary-foreground);cursor:pointer;transition:background-color .15s,color .15s,box-shadow .15s}
.zz-kycadm-seg-opt input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.zz-kycadm-seg-opt:hover{color:var(--mono);background:var(--zz-hover)}
.zz-kycadm-seg-opt:has(input:focus-visible){outline:2px solid var(--ring);outline-offset:1px}
.zz-kycadm-seg-opt.is-approve:has(input:checked){background:color-mix(in oklab,var(--zz-success) 14%,var(--card));color:var(--zz-success);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--zz-success) 45%,transparent)}
.zz-kycadm-seg-opt.is-reject:has(input:checked){background:color-mix(in oklab,var(--zz-danger) 12%,var(--card));color:var(--zz-danger);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--zz-danger) 45%,transparent)}
.zz-kycadm-pane{display:flex;flex-direction:column;border-top:1px solid var(--border)}
.zz-kycadm-pane[hidden]{display:none}
.zz-kycadm-pane-body{display:flex;flex-direction:column;gap:1.25rem;padding:1.25rem}
.zz-kycadm-pane-foot{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--border);
  background:var(--zz-surface-2);border-end-start-radius:inherit;border-end-end-radius:inherit}
/* دکمهٔ تأیید سبز (kt-btn-success در باندل نیست) */
.kt-btn.zz-kycadm-go-ok{background:var(--zz-success-solid);border-color:var(--zz-success-solid);color:var(--primary-foreground)}
.kt-btn.zz-kycadm-go-ok:hover:not(:disabled){filter:brightness(.92)}
.zz-kycadm .kt-btn.is-busy{opacity:.7;cursor:progress}
.zz-kycadm-snips{display:flex;flex-direction:column;gap:.375rem}
.zz-kycadm-snip{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:9px;
  background:transparent;text-align:start;font-size:var(--text-2sm);line-height:1.7;color:var(--secondary-foreground);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}
.zz-kycadm-snip:hover{background:var(--zz-hover);color:var(--mono)}
.zz-kycadm-snip[aria-pressed="true"]{border-color:color-mix(in oklab,var(--zz-danger) 55%,transparent);background:color-mix(in oklab,var(--zz-danger) 7%,transparent);color:var(--mono)}
.zz-kycadm-snip:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-kycadm-snip>.kt-badge{flex:none;margin-top:.2rem}
.zz-kycadm-outcome{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--border)}
.zz-kycadm-outcome>i{font-size:26px;flex:none}
.zz-kycadm-outcome.is-ok{border-color:var(--zz-success-line);background:color-mix(in oklab,var(--zz-success) 7%,transparent)}
.zz-kycadm-outcome.is-ok>i{color:var(--zz-success)}
.zz-kycadm-outcome.is-bad{border-color:var(--zz-danger-line);background:color-mix(in oklab,var(--zz-danger) 7%,transparent)}
.zz-kycadm-outcome.is-bad>i{color:var(--zz-danger)}
.zz-kycadm-note{white-space:pre-line;overflow-wrap:anywhere;font-size:var(--text-sm);line-height:1.9;color:var(--foreground);padding:.75rem 1rem;
  border-radius:10px;border:1px dashed var(--zz-line-strong);background:var(--zz-surface-2)}

/* بزرگ‌نمایی */
/* preflight ِ باندل margin ِ همه‌چیز را صفر می‌کند؛ بی margin:auto پنجره به لبهٔ راست می‌چسبید */
.zz-kycadm-lightbox{margin:auto;inset:0;width:min(1100px,calc(100vw - 2rem));max-width:none;height:calc(100vh - 2rem);max-height:none;padding:0;border:1px solid var(--border);
  border-radius:14px;background:var(--card);color:var(--foreground);overflow:hidden}
.zz-kycadm-lightbox[open]{display:flex;flex-direction:column}
.zz-kycadm-lightbox::backdrop{background:var(--zz-overlay)}
.zz-kycadm-lb-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}
.zz-kycadm-lb-stage{position:relative;flex:1 1 auto;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;background:#0b0b0f}
.zz-kycadm-lb-stage img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in}
.zz-kycadm-lb-stage img.is-zoomed{max-width:none;max-height:none;cursor:zoom-out;margin:auto}
.zz-kycadm-lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:999px;display:grid;place-items:center;
  background:rgba(0,0,0,.55);color:#fff;font-size:var(--text-lg);border:1px solid rgba(255,255,255,.2);z-index:1}
.zz-kycadm-lb-nav[hidden]{display:none}
.zz-kycadm-lb-nav:hover{background:rgba(0,0,0,.8)}
.zz-kycadm-lb-nav.is-prev{inset-inline-start:.75rem}
.zz-kycadm-lb-nav.is-next{inset-inline-end:.75rem}
/* ===== پایانِ قراردادها در ادمین ===== */

/* ==========================================================================
   قرارداد همکاری — فرمِ اطلاعات و مدارک و صفحهٔ وضعیت (.zz-kyc، ۲۰۲۶-۰۹-۲۹)
   resources/views/contract-signing/*. موبایل‌اول (۳۷۵px بی‌اسکرولِ افقی)، روشن و تیره (۲۰۲۶-۱۰-۱۴)، RTL.
   فقط کلاس‌های zz-kyc-*؛ همهٔ رنگ‌ها از توکن‌های تم (--primary، --zz-brand-*، --zz-danger/-warning/-success، --border …)
   — هیچ رنگِ ثابت یا سفیدِ نیمه‌شفاف؛ پیغام‌ها و چیپ‌ها با --zz-tone رنگِ وضعیتشان را می‌گیرند.
   ========================================================================== */
.zz-kyc{max-width:52rem;margin-inline:auto;display:flex;flex-direction:column;gap:1.25rem;min-width:0}
.zz-kyc [hidden]{display:none !important}
.zz-kyc-form{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
/* پوستهٔ بخش‌های فرم؛ در «ورود به‌جای کاربر» disabled (فقط خواندنی) */
.zz-kyc-form-body{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:1.25rem}
.zz-kyc-form-body:disabled .zz-kyc-drop,.zz-kyc-form-body:disabled label[for]{cursor:not-allowed}
/* تکهٔ لاتینِ عنوانِ کاشی («YouTube Studio»، «Main Page») یک‌جا */
.zz-kyc-nowrap{white-space:nowrap}
.zz-kyc [id^="zz_kyc_s"]{scroll-margin-top:90px}
.zz-kyc-muted{color:var(--secondary-foreground)}
.zz-kyc-break{overflow-wrap:anywhere;word-break:break-all}

/* سربرگ و نوارِ مراحل */
.zz-kyc-hero{display:flex;flex-direction:column;gap:.5rem}
.zz-kyc-h1{font-size:var(--text-xl);font-weight:800;line-height:1.5;color:var(--mono)}
.zz-kyc-lead{font-size:var(--text-sm);line-height:1.9;color:var(--secondary-foreground);max-width:44rem}
.zz-kyc-steps{list-style:none;margin:.75rem 0 0;padding:0;display:flex;align-items:flex-start}
.zz-kyc-step{position:relative;flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:.45rem;text-align:center}
.zz-kyc-step + .zz-kyc-step::before{content:"";position:absolute;top:15px;height:2px;border-radius:2px;
  inset-inline-start:calc(-50% + 20px);inset-inline-end:calc(50% + 20px);background:var(--zz-line-strong)}
.zz-kyc-step.is-done + .zz-kyc-step::before,.zz-kyc-step.is-done + .zz-kyc-step.is-done::before{background:var(--primary)}
.zz-kyc-step-dot{width:32px;height:32px;border-radius:999px;display:flex;align-items:center;justify-content:center;flex:none;
  font-size:var(--text-2sm);font-weight:700;color:var(--secondary-foreground);background:var(--card);border:1.5px solid var(--zz-line-strong)}
.zz-kyc-step-dot i{font-size:15px}
.zz-kyc-step.is-done .zz-kyc-step-dot{color:var(--primary-foreground);background:var(--primary);border-color:transparent}
.zz-kyc-step.is-current .zz-kyc-step-dot{color:var(--zz-brand-text);border-color:var(--primary);background:var(--zz-brand-soft);box-shadow:0 0 0 4px var(--zz-brand-soft)}
.zz-kyc-step-label{font-size:var(--text-xs);line-height:1.5;color:var(--secondary-foreground);max-width:7.5rem}
.zz-kyc-step.is-done .zz-kyc-step-label{color:var(--foreground)}
.zz-kyc-step.is-current .zz-kyc-step-label{color:var(--mono);font-weight:700}
@media (min-width:640px){.zz-kyc-step-label{font-size:var(--text-xs)}}

/* پیغام‌های بالای صفحه */
.zz-kyc-flash{display:flex;align-items:flex-start;gap:.625rem;padding:.875rem 1rem;border-radius:12px;font-size:var(--text-sm);line-height:1.85;border:1px solid}
.zz-kyc-flash i{font-size:20px;flex:none;margin-top:.2rem;color:var(--zz-tone)}
.zz-kyc-flash.is-ok{--zz-tone:var(--zz-success)}
.zz-kyc-flash.is-bad{--zz-tone:var(--zz-danger)}
.zz-kyc-flash.is-ok,.zz-kyc-flash.is-bad{color:var(--foreground);background:color-mix(in oklab,var(--zz-tone) 9%,var(--card));
  border-color:color-mix(in oklab,var(--zz-tone) 32%,transparent)}

/* خلاصهٔ شرایط */
.zz-kyc-summary .kt-card-content{display:flex;flex-direction:column;gap:.875rem;padding-block:1rem}
.zz-kyc-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem;margin:0}
.zz-kyc-fact{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;padding:.625rem .875rem;
  border:1px solid var(--border);border-radius:12px;background:var(--zz-surface-2)}
.zz-kyc-fact dt{font-size:var(--text-xs);color:var(--secondary-foreground);flex:none}
.zz-kyc-fact dd{margin:0;min-width:0;font-weight:700;color:var(--mono);text-align:end}
.zz-kyc-fact .zz-kyc-fact-big{font-size:var(--text-lg);color:var(--zz-brand-text)}
@media (min-width:640px){
  .zz-kyc-facts{grid-template-columns:1.4fr 1fr 1fr}
  .zz-kyc-fact{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.25rem}
  .zz-kyc-fact dd{text-align:start}
  .zz-kyc-fact .zz-kyc-fact-big{font-size:var(--text-xl)}
}
.zz-kyc-channel-link{color:var(--zz-brand-text);font-weight:600;unicode-bidi:isolate;overflow-wrap:anywhere;word-break:break-all}
.zz-kyc-channel-link:hover{color:var(--zz-brand-text);text-decoration:underline}
.zz-kyc-terms-link{align-self:flex-start;display:inline-flex;align-items:center;gap:.375rem;font-size:var(--text-2sm)}
/* شرایط + پیش‌نویسِ قرارداد + سؤالاتِ متداول در یک ردیف (۲۰۲۶-۱۰-۰۱) */
.zz-kyc-terms-links{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem}

/* ردِ قبلی */
.zz-kyc-reject{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.125rem;border-radius:14px;
  background:color-mix(in oklab,var(--zz-danger) 7%,var(--card));border:1px solid var(--zz-danger-line)}
.zz-kyc-reject-head{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .625rem}
.zz-kyc-reject-head i{font-size:20px;color:var(--zz-danger)}
.zz-kyc-reject-head h2{font-size:var(--text-base);font-weight:700;color:var(--zz-danger);margin-inline-end:auto}
.zz-kyc-reject-label{font-size:var(--text-2sm);font-weight:700;color:var(--mono)}
.zz-kyc-reject-reason{white-space:pre-line;overflow-wrap:anywhere;font-size:var(--text-sm);line-height:1.9;color:var(--foreground);
  padding:.625rem .875rem;border-radius:10px;background:var(--card);border:1px solid var(--zz-danger-line)}
.zz-kyc-reject-note{font-size:var(--text-2sm);line-height:1.85;color:var(--foreground)}
.zz-kyc-reject-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.25rem}
.zz-kyc-reject-time{font-size:var(--text-xs);color:var(--secondary-foreground)}

/* چیپِ وضعیت (فرم و صفحهٔ وضعیت). زمینه با رنگِ کارت آمیخته می‌شود نه شفاف: روی کارتِ قرمزِ «ردِ قبلی» ته‌رنگِ شفاف روی
   ته‌رنگِ کارت می‌نشست و «نیاز به اصلاح» به ۳٫۷:۱ می‌رسید؛ متن کمی به رنگِ عنوان نزدیک‌تر تا روی ته‌رنگ هم ≥ ۴٫۵ بماند (هر دو تم) */
.zz-kyc-status-chip{display:inline-flex;align-items:center;height:28px;padding:0 .75rem;border-radius:999px;font-size:var(--text-2sm);font-weight:700;line-height:1;border:1px solid;white-space:nowrap;
  --zz-tone:var(--secondary-foreground);color:color-mix(in oklab,var(--zz-tone) 82%,var(--mono));background:color-mix(in oklab,var(--zz-tone) 12%,var(--card));border-color:color-mix(in oklab,var(--zz-tone) 30%,transparent)}
.zz-kyc-status-chip.is-wait{--zz-tone:var(--zz-warning)}
.zz-kyc-status-chip.is-ok{--zz-tone:var(--zz-success)}
.zz-kyc-status-chip.is-bad{--zz-tone:var(--zz-danger)}

/* خلاصهٔ خطاها */
.zz-kyc-errors{padding:1rem 1.125rem;border-radius:14px;background:color-mix(in oklab,var(--zz-danger) 7%,var(--card));border:1px solid var(--zz-danger-line);outline:none}
.zz-kyc-errors:focus-visible{outline:2px solid var(--zz-danger);outline-offset:2px}
.zz-kyc-errors-title{display:flex;align-items:center;gap:.5rem;font-size:var(--text-sm);font-weight:700;color:var(--zz-danger)}
.zz-kyc-errors-title i{font-size:19px;color:var(--zz-danger)}
.zz-kyc-errors-list{list-style:none;margin:.625rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.zz-kyc-errors-list > li > a{font-size:var(--text-2sm);font-weight:700;color:var(--zz-danger);text-decoration:underline;text-underline-offset:3px}
.zz-kyc-errors-list ul{list-style:disc;margin:.25rem 0 0;padding-inline-start:1.25rem;font-size:var(--text-2sm);line-height:1.8;color:var(--foreground)}

/* بخش‌ها */
.zz-kyc-sec-head{justify-content:flex-start !important;flex-wrap:nowrap !important;gap:.75rem;padding-block:.875rem;min-height:auto}
.zz-kyc-sec-num{flex:none;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-size:var(--text-sm);font-weight:800;color:var(--zz-brand-text);background:var(--zz-brand-soft);border:1px solid var(--zz-brand-line)}
.zz-kyc-sec-titles{display:flex;flex-direction:column;gap:.125rem;min-width:0}
.zz-kyc-sec-titles .kt-card-title{font-size:var(--text-base)}
.zz-kyc-sec-sub{font-size:var(--text-xs);line-height:1.7;color:var(--secondary-foreground)}
.zz-kyc-sec:has([aria-invalid="true"]) .zz-kyc-sec-num{color:var(--zz-danger);background:var(--zz-danger-soft);border-color:var(--zz-danger-line)}

.zz-kyc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.125rem;padding-block:1.125rem}
@media (min-width:640px){.zz-kyc-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem}}
.zz-kyc-span2{grid-column:1 / -1}
.zz-kyc-field{display:flex;flex-direction:column;gap:.45rem;min-width:0}
.zz-kyc-label{font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.5}
.zz-kyc-label-en{font-weight:400;color:var(--secondary-foreground);font-size:var(--text-xs)}
.zz-kyc-hint{font-size:var(--text-xs);line-height:1.75;color:var(--secondary-foreground)}
.zz-kyc-err{font-size:var(--text-xs);line-height:1.7;color:var(--zz-danger)}
.zz-kyc-err:empty{display:none}
.zz-kyc .kt-input,.zz-kyc .kt-select,.zz-kyc .kt-textarea{font-size:var(--text-sm)}
.zz-kyc .kt-input,.zz-kyc .kt-select{min-height:42px}
.zz-kyc .kt-textarea{min-height:88px;line-height:1.8;resize:vertical}
.zz-kyc [aria-invalid="true"].kt-input,.zz-kyc [aria-invalid="true"].kt-select,.zz-kyc [aria-invalid="true"].kt-textarea{
  border-color:var(--zz-danger) !important;box-shadow:0 0 0 3px var(--zz-danger-soft) !important}
.zz-kyc-ltr{text-align:left;direction:ltr;letter-spacing:.02em}
.zz-kyc-ltr::placeholder{text-align:left}
.zz-kyc-date{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr) minmax(0,1fr);gap:.5rem}
.zz-kyc-readonly{display:flex;align-items:center;gap:.5rem;cursor:default;opacity:.92;min-width:0}
.zz-kyc-readonly i{color:var(--muted-foreground);flex:none}
.zz-kyc-readonly-val{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left}

/* چیپ‌های کوچکِ کنارِ فیلد */
.zz-kyc-chip{align-self:flex-start;display:inline-flex;align-items:center;gap:.375rem;max-width:100%;padding:.25rem .625rem;border-radius:8px;
  font-size:var(--text-xs);line-height:1.6;border:1px solid;
  --zz-tone:var(--secondary-foreground);color:var(--zz-tone);background:color-mix(in oklab,var(--zz-tone) 9%,transparent);border-color:color-mix(in oklab,var(--zz-tone) 28%,transparent)}
.zz-kyc-chip.is-ok{--zz-tone:var(--zz-success)}
.zz-kyc-chip.is-warn{--zz-tone:var(--zz-warning)}

/* هشدارِ مالکیتِ موبایل و حساب */
.zz-kyc-warn{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-radius:12px;
  background:color-mix(in oklab,var(--zz-warning) 9%,var(--card));border:1px solid var(--zz-warning-line)}
.zz-kyc-warn > i{font-size:22px;color:var(--zz-warning);flex:none;margin-top:.15rem}
.zz-kyc-warn-main{font-size:var(--text-sm);font-weight:700;line-height:1.8;color:var(--mono)}
.zz-kyc-warn-sub{font-size:var(--text-xs);line-height:1.8;color:var(--foreground);margin-top:.125rem}

/* شبا با «IR»ِ ثابت */
.zz-kyc-iban{display:flex;align-items:stretch;min-width:0}
.zz-kyc-iban-prefix{flex:none;display:flex;align-items:center;padding:0 .875rem;font-weight:700;font-size:var(--text-sm);letter-spacing:.04em;color:var(--foreground);
  background:var(--zz-surface-3);border:1px solid var(--input);border-inline-end:0;border-start-start-radius:.5rem;border-end-start-radius:.5rem}
.zz-kyc-iban .zz-kyc-iban-input{flex:1;min-width:0;border-start-start-radius:0 !important;border-end-start-radius:0 !important;
  text-align:left;letter-spacing:.06em;font-variant-numeric:tabular-nums}

/* کانال */
.zz-kyc-compare{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding:.625rem .875rem;border-radius:10px;
  border:1px dashed var(--zz-line-strong);font-size:var(--text-2sm)}
.zz-kyc-compare-label{display:inline-flex;align-items:center;gap:.375rem;color:var(--secondary-foreground)}
.zz-kyc-compare-label i{color:var(--zz-danger)}
.zz-kyc-picks{display:flex;flex-wrap:wrap;gap:.5rem}
.zz-kyc-pick{display:inline-flex;align-items:center;gap:.375rem;max-width:100%;min-height:40px;padding:.375rem .75rem;border-radius:10px;
  border:1px solid var(--zz-line-strong);background:var(--zz-surface-2);color:var(--foreground);font-size:var(--text-2sm);cursor:pointer;
  transition:background-color .15s,border-color .15s,color .15s}
.zz-kyc-pick:hover{background:var(--zz-hover)}
.zz-kyc-pick:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.zz-kyc-pick i{color:var(--zz-danger);flex:none}
.zz-kyc-pick-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-kyc-pick-handle{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-kyc-pick[aria-pressed="true"]{border-color:var(--primary);background:var(--zz-brand-soft);color:var(--mono)}

/* «کجا پیدا کنم؟» */
.zz-kyc-help{font-size:var(--text-xs);line-height:1.85;color:var(--secondary-foreground)}
.zz-kyc-help summary{cursor:pointer;display:inline-flex;align-items:center;gap:.25rem;color:var(--zz-brand-text);font-weight:600;list-style:none}
.zz-kyc-help summary::-webkit-details-marker{display:none}
.zz-kyc-help summary::before{content:"?";display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:999px;
  font-size:12px;font-weight:800;border:1px solid var(--zz-brand-line)}
.zz-kyc-help summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}
.zz-kyc-help[open] summary{margin-bottom:.25rem}
.zz-kyc-help p,.zz-kyc-help ol{padding:.5rem .75rem;border-radius:10px;background:var(--zz-surface-2);border:1px solid var(--border);color:var(--foreground)}
.zz-kyc-help ol{list-style:decimal;padding-inline-start:1.75rem}

/* مدارک: کاشی‌ها */
.zz-kyc-docs{display:flex;flex-direction:column;gap:1.5rem;padding-block:1.125rem}
.zz-kyc-docgroup{display:flex;flex-direction:column;gap:.625rem}
.zz-kyc-docgroup-title{font-size:var(--text-sm);font-weight:700;color:var(--mono)}
.zz-kyc-tiles{display:grid;grid-template-columns:minmax(0,1fr);gap:.875rem}
@media (min-width:640px){.zz-kyc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zz-kyc-tile{position:relative;display:flex;flex-direction:column;gap:.625rem;min-width:0;padding:.875rem;border-radius:14px;
  border:1px solid var(--border);background:var(--zz-surface-2);transition:border-color .15s,background-color .15s}
.zz-kyc-tile.is-invalid{border-color:color-mix(in oklab,var(--zz-danger) 55%,transparent);background:color-mix(in oklab,var(--zz-danger) 5%,var(--zz-surface-2))}
.zz-kyc-tile.is-drag{border-color:var(--primary);background:var(--zz-brand-soft)}
.zz-kyc-tile[data-state="draft"],.zz-kyc-tile[data-state="current"]{border-color:var(--zz-success-line)}
.zz-kyc-tile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}
.zz-kyc-tile-title{font-size:var(--text-2sm);font-weight:600;line-height:1.6;color:var(--mono);min-width:0}
.zz-kyc-req{flex:none;font-size:var(--text-xs);line-height:1;padding:.3rem .5rem;border-radius:6px;color:var(--zz-brand-text);background:var(--zz-brand-soft)}
.zz-kyc-tile:not([data-state="empty"]) .zz-kyc-req{display:none}
.zz-kyc-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;min-height:116px;padding:.875rem;
  border-radius:12px;border:1.5px dashed var(--zz-line-strong);background:var(--card);text-align:center;cursor:pointer;transition:border-color .15s,background-color .15s}
.zz-kyc-drop:hover{border-color:var(--zz-brand-line);background:color-mix(in oklab,var(--primary) 5%,var(--card))}
.zz-kyc-tile:has(.zz-kyc-file:focus-visible) .zz-kyc-drop,.zz-kyc-tile:has(.zz-kyc-file:focus-visible) .zz-kyc-filled{outline:2px solid var(--primary);outline-offset:2px}
.zz-kyc-tile.is-invalid .zz-kyc-drop{border-color:color-mix(in oklab,var(--zz-danger) 50%,transparent)}
.zz-kyc-drop-icon{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-kyc-drop-icon i{font-size:20px}
.zz-kyc-drop-text{font-size:var(--text-2sm);font-weight:600;color:var(--mono)}
.zz-kyc-drop-meta{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-kyc-tile:not([data-state="empty"]) .zz-kyc-drop{display:none}
/* گوشی: کادرِ انتخاب کوتاه و افقی (آیکن کنارِ متن) تا هفت کاشی صفحه را بی‌انتها نکنند */
@media (max-width:639.98px){
  .zz-kyc-drop{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto;column-gap:.75rem;row-gap:.125rem;
    align-items:center;justify-items:start;min-height:76px;text-align:start}
  .zz-kyc-drop-icon{grid-row:1 / span 2}
}
.zz-kyc-filled{display:grid;grid-template-columns:64px minmax(0,1fr);gap:.625rem .75rem;align-items:center;border-radius:12px}
.zz-kyc-tile[data-state="empty"] .zz-kyc-filled{display:none}
.zz-kyc-thumb{width:64px;height:64px;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;
  background:var(--zz-surface-3);border:1px solid var(--border)}
.zz-kyc-thumb img{width:100%;height:100%;object-fit:cover}
.zz-kyc-thumb-pdf{display:flex;flex-direction:column;align-items:center;gap:.125rem;font-size:var(--text-xs);font-weight:700;color:var(--zz-danger)}
.zz-kyc-thumb-pdf i{font-size:22px}
.zz-kyc-file-meta{display:flex;flex-direction:column;gap:.125rem;min-width:0}
.zz-kyc-file-name{font-size:var(--text-xs);font-weight:600;color:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;unicode-bidi:plaintext;text-align:right}
.zz-kyc-file-size{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-kyc-file-note{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--text-xs);color:var(--zz-success)}
.zz-kyc-file-note:empty{display:none}
.zz-kyc-tile[data-state="uploading"] .zz-kyc-file-note{color:var(--zz-brand-text)}
.zz-kyc-tile[data-state="local"] .zz-kyc-file-note{color:var(--zz-warning)}
.zz-kyc-bar{display:block;height:4px;border-radius:999px;background:var(--zz-surface-3);overflow:hidden;margin-top:.25rem}
.zz-kyc-bar > span{display:block;height:100%;width:0;border-radius:inherit;background:var(--primary);transition:width .2s}
.zz-kyc-file-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.375rem}
.zz-kyc-file-actions .kt-btn{gap:.25rem;height:32px;padding-inline:.625rem;font-size:var(--text-xs) !important;font-weight:500}
.zz-kyc-file-actions .is-off{pointer-events:none;opacity:.45}
.zz-kyc-tile[data-state="uploading"] .zz-kyc-file-actions{opacity:.6}
.zz-kyc-remove{color:var(--zz-danger) !important}
/* inputِ فایل دیده نمی‌شود ولی با Tab در دسترس است (label‌ها بازش می‌کنند) */
.zz-kyc-file{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;opacity:0}

/* تأیید و ارسال */
.zz-kyc-confirm{display:flex;flex-direction:column;gap:.875rem;padding-block:1.125rem}
.zz-kyc-check{display:flex;flex-direction:column;gap:.375rem;padding:.75rem .875rem;border-radius:12px;border:1px solid var(--border)}
.zz-kyc-check.is-invalid{border-color:color-mix(in oklab,var(--zz-danger) 55%,transparent);background:color-mix(in oklab,var(--zz-danger) 5%,transparent)}
.zz-kyc-check-row{display:flex;align-items:flex-start;gap:.625rem;cursor:pointer;font-size:var(--text-2sm);line-height:1.85;color:var(--foreground)}
.zz-kyc-check-row .kt-checkbox{flex:none;margin-top:.3rem}
.zz-kyc-check-link{align-self:flex-start;font-size:var(--text-xs);margin-inline-start:1.875rem}
.zz-kyc-check-links{display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.zz-kyc-submit{display:flex;flex-direction:column;gap:.5rem;padding-top:.25rem}
.zz-kyc-submit-btn{width:100%;justify-content:center;gap:.5rem;min-height:48px;font-size:var(--text-base) !important;font-weight:700}
.zz-kyc-submit-btn:disabled{opacity:.7;cursor:progress}
@media (min-width:640px){.zz-kyc-submit-btn{width:auto;align-self:flex-start;padding-inline:1.75rem}}
.zz-kyc-submit-wait{font-size:var(--text-xs);color:var(--zz-warning)}
.zz-kyc-submit-wait:empty{display:none}
.zz-kyc-support{font-size:var(--text-2sm);color:var(--secondary-foreground);text-align:center;line-height:1.9}

/* صفحهٔ وضعیت */
.zz-kyc-state .kt-card-content{display:flex;flex-direction:column;gap:1rem;padding-block:1.125rem}
.zz-kyc-state-top{display:flex;align-items:flex-start;gap:.875rem}
.zz-kyc-state-icon{flex:none;width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:24px}
.zz-kyc-state.is-wait .zz-kyc-state-icon{color:var(--zz-warning);background:var(--zz-warning-soft)}
.zz-kyc-state.is-ok .zz-kyc-state-icon{color:var(--zz-success);background:var(--zz-success-soft)}
.zz-kyc-state-body{display:flex;flex-direction:column;gap:.375rem;min-width:0;font-size:var(--text-sm);line-height:1.9;color:var(--foreground)}
.zz-kyc-state-title{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .5rem;font-size:var(--text-base);font-weight:700;color:var(--mono)}
.zz-kyc-state-body .zz-kyc-muted{font-size:var(--text-xs)}
.zz-kyc-times{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;padding-top:.75rem;border-top:1px solid var(--border);font-size:var(--text-2sm)}
.zz-kyc-times div{display:flex;flex-wrap:wrap;gap:.25rem .5rem}
.zz-kyc-times dt{color:var(--secondary-foreground)}
.zz-kyc-times dd{margin:0;color:var(--mono)}
.zz-kyc-dl{display:grid;grid-template-columns:minmax(0,1fr);margin:0;padding-block:.5rem}
.zz-kyc-dl > div{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.625rem 0;border-bottom:1px solid var(--border);min-width:0}
.zz-kyc-dl > div:last-child{border-bottom:0}
.zz-kyc-dl dt{flex:none;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-kyc-dl dd{margin:0;min-width:0;text-align:end;font-size:var(--text-2sm);font-weight:600;color:var(--mono);overflow-wrap:anywhere}
.zz-kyc-mask{letter-spacing:.06em;font-variant-numeric:tabular-nums}
.zz-kyc-doclist{list-style:none;margin:0;padding:.5rem 0;display:flex;flex-direction:column;gap:.5rem}
.zz-kyc-doclist li{display:flex;align-items:center;gap:.625rem;padding:.5rem .625rem;border:1px solid var(--border);border-radius:10px;min-width:0}
.zz-kyc-doclist-icon{flex:none;width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-kyc-doclist-label{flex:1;min-width:0;font-size:var(--text-2sm);line-height:1.6;color:var(--foreground)}
.zz-kyc-doclist .kt-btn{flex:none;gap:.25rem}

/* بی‌قرارداد / در دسترس نیست */
.zz-kyc-empty .kt-card-content{display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding-block:2rem}
.zz-kyc-empty-icon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;color:var(--zz-brand-text);background:var(--zz-brand-soft)}
.zz-kyc-empty-title{font-size:var(--text-lg);font-weight:800;color:var(--mono);line-height:1.6}
.zz-kyc-empty-text{max-width:34rem;font-size:var(--text-sm);line-height:1.9;color:var(--secondary-foreground)}
.zz-kyc-empty-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.5rem}
.zz-kyc-empty-actions .kt-btn{gap:.375rem}
@media (max-width:479.98px){.zz-kyc-empty-actions{flex-direction:column;align-self:stretch}.zz-kyc-empty-actions .kt-btn{justify-content:center}}
/* ===== پایانِ قرارداد همکاری ===== */

/* ===== وضعیتِ سیستم (/admin/status، ۲۰۲۶-۰۹-۳۰) =====
   نوارِ خلاصه با رنگِ وضعیت، کارت‌ها دوستونه از ۱۲۸۰ پیکسل، و ردیفِ هر بررسی: برچسب | مقدار | نشان (توضیح زیرِ مقدار).
   گوشی: برچسب و نشان در یک خط، مقدار و توضیح زیرش. باندل xl:col-span-2 و grid-template-areas ندارد. */
.zz-status-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}
@media (min-width:1280px){
  .zz-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zz-status-grid .zz-status-wide{grid-column:1/-1}
}
.zz-status-card{scroll-margin-top:90px;min-width:0}
.zz-status-sum{border-width:1px}
.zz-status-sum--ok{border-color:var(--zz-success-line)}
.zz-status-sum--warn{border-color:color-mix(in oklab,var(--zz-warning) 45%,transparent)}
.zz-status-sum--danger{border-color:color-mix(in oklab,var(--zz-danger) 45%,transparent);background:color-mix(in oklab,var(--zz-danger) 4%,var(--card))}
.zz-status-orb{flex:none;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}
.zz-status-sum--ok .zz-status-orb{background:var(--zz-success-soft);color:var(--zz-success)}
.zz-status-sum--warn .zz-status-orb{background:var(--zz-warning-soft);color:var(--zz-warning)}
.zz-status-sum--danger .zz-status-orb{background:var(--zz-danger-soft);color:var(--zz-danger)}
.zz-status-facts{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;margin:0;padding-top:1rem;border-top:1px solid var(--border)}
@media (min-width:768px){.zz-status-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
.zz-status-facts dt{font-size:var(--text-xs);color:var(--secondary-foreground);margin-bottom:2px}
.zz-status-facts dd{margin:0;font-size:var(--text-2sm);font-weight:600;color:var(--mono);overflow-wrap:anywhere}
.zz-status-problems{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:var(--text-xs);line-height:1.7}
.zz-status-problems li{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-width:0;overflow-wrap:anywhere}
.zz-status-plink{color:var(--mono);font-weight:600}
.zz-status-plink:hover{color:var(--zz-brand-text)}
.zz-status-rows{padding-block:.25rem}
.zz-srow{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label level" "value value";column-gap:.75rem;row-gap:.25rem;padding:.75rem 0}
.zz-srow--hint{grid-template-areas:"label level" "value value" "hint hint"}
.zz-srow+.zz-srow{border-top:1px solid var(--border)}
.zz-srow-label{grid-area:label;min-width:0}
.zz-srow-value{grid-area:value;min-width:0;color:var(--mono);overflow-wrap:anywhere}
.zz-srow-value[dir="ltr"]{text-align:right;font-size:var(--text-xs)}
.zz-srow-level{grid-area:level;justify-self:end;align-self:start;min-height:20px}
.zz-srow-hint{grid-area:hint;min-width:0;line-height:1.8;overflow-wrap:anywhere}
@media (min-width:640px){
  .zz-srow{grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr) 56px;grid-template-areas:"label value level"}
  .zz-srow--hint{grid-template-areas:"label value level" "label hint level"}
}
.zz-status-sub{margin-top:2px;font-size:var(--text-xs);line-height:1.6;overflow-wrap:anywhere;text-align:right}
@media (min-width:1280px){.zz-status-wide .zz-srow{grid-template-columns:minmax(0,.7fr) minmax(0,1.6fr) 56px}}
/* نشان‌های «سالم / هشدار / مشکل» همان بجِ ملایمِ سراسری‌اند (۲۰۲۶-۱۰-۱۴: وصله‌های رنگیِ تمِ تیرهٔ قدیم برداشته شد) */
.zz-status-link{color:var(--zz-brand-text)}
.zz-status-link:hover{text-decoration:underline}
.zz-status-code{display:inline-block;max-width:100%;padding:0 .375rem;border-radius:6px;background:var(--zz-surface-3);color:var(--mono);font-size:var(--text-xs);line-height:1.7;overflow-wrap:anywhere;vertical-align:baseline}
.zz-status-note{margin:0;padding:.75rem 0 .25rem;border-top:1px solid var(--border);line-height:1.9}
/* ===== پایانِ وضعیتِ سیستم ===== */

/* ===== ایمیل‌ها (/admin/emails، ۲۰۲۶-۰۹-۳۰) — فقط zz-eml- =====
   فهرست: هر بخش یک کارت در شبکه، و فهرستِ بخشِ باز زیرِ آن؛ هر ایمیل یک ردیفِ flex-wrap (متن | آمار | کلید و ویرایش) که در گوشی زیرِ هم می‌آید. ویرایش: فرمِ متن + پیش‌نمایشِ
   چسبان در ستونِ کناری وقتی خودِ محتوا ≥ ۱۰۰۰px است (container query، مثلِ zz-mcnd)؛ زیرِ آن یک ستون و پیش‌نمایش بعد از
   فرم. تاریخچه: جدول از ۷۶۸px، فهرستِ ردیفی در گوشی. [hidden] ِ باندل !important است؛ باز هم هر display ِ این‌جا [hidden] دارد. */
.zz-eml{display:flex;flex-direction:column;gap:1.25rem;container-type:inline-size}
.zz-eml-lead{line-height:1.9;max-width:62rem}
.zz-eml-intro{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 1.5rem}
.zz-eml-orb{flex:none;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;
  background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-eml-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
/* زیرِ ۴۸۰px آیکن بالای متن (مثلِ zz-lnk-stats): کنارِ آیکن برچسب و توضیح چندخطه می‌شکستند */
@media (max-width:479.98px){
  .zz-eml-stats{gap:.75rem}
  .zz-eml-stats>.kt-card>.kt-card-content{padding:.875rem}
  .zz-eml-stats>.kt-card>.kt-card-content>.flex{flex-direction:column;align-items:flex-start;gap:.5rem}
  .zz-eml-stats>.kt-card>.kt-card-content>.flex>:first-child{width:2.5rem;height:2.5rem}
}
@container (min-width:720px){.zz-eml-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}}
.zz-eml-stat-sub{font-size:var(--text-xs);line-height:1.6;color:var(--secondary-foreground)}

/* بجِ outline: رنگ‌ها از قاعدهٔ سراسریِ بج‌های ملایم (توکن‌های وضعیت، هر دو تم) — این‌جا فقط فاصلهٔ آیکن */
.zz-eml .kt-badge-outline{gap:.25rem}

/* فهرست */
.zz-eml-list{list-style:none;margin:0;padding:0}
.zz-eml-row{display:flex;flex-direction:column;gap:.625rem;padding:1rem;border-top:1px solid var(--border);
  border-inline-start:3px solid transparent;scroll-margin-top:90px}
.zz-eml-list>.zz-eml-row:first-child{border-top:0}
.zz-eml-row:target{border-inline-start-color:var(--primary);background:color-mix(in oklab,var(--primary) 6%,transparent)}
.zz-eml-row.is-off{background:color-mix(in oklab,var(--muted) 40%,transparent)}
.zz-eml-row.is-off .zz-eml-title{color:var(--secondary-foreground)}
.zz-eml-row-main{min-width:0;display:flex;flex-direction:column;gap:.375rem}
.zz-eml-title{font-size:var(--text-sm);font-weight:600;color:var(--mono);line-height:1.7}
.zz-eml-title:hover{color:var(--zz-brand-text)}
.zz-eml-when{margin:0;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-eml-to{margin:0;display:flex;align-items:flex-start;gap:.375rem;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-eml-to>i{margin-top:.3rem;flex:none}
.zz-eml-warn{margin:0;display:flex;align-items:flex-start;gap:.375rem;font-size:var(--text-xs);line-height:1.8;color:var(--zz-warning)}
.zz-eml-warn>i{margin-top:.3rem;flex:none}
.zz-eml-row-stats{display:flex;flex-wrap:wrap;column-gap:1rem;row-gap:.125rem;font-size:var(--text-xs);line-height:1.7;color:var(--secondary-foreground)}
.zz-eml-failed{color:var(--zz-danger);font-size:var(--text-xs)}
.zz-eml-failed:hover{text-decoration:underline}
.zz-eml-row-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
/* از ۷۰۰px ِ محتوا: سه ستونِ هم‌تراز (متن | آمار | کلید و ویرایش)؛ ستونِ آخر عرضِ ثابت دارد تا دکمه‌ها زیرِ هم بیفتند */
@container (min-width:700px){
  .zz-eml-row{display:grid;grid-template-columns:minmax(0,1fr) 10rem 12rem;align-items:center;column-gap:1.25rem;padding:1rem 1.25rem}
  .zz-eml-row-stats{flex-direction:column}
  .zz-eml-row-actions{justify-content:flex-end}
}

/* بخش‌ها به‌صورتِ کارت (۲۰۲۶-۱۰-۰۴): شبکهٔ کارت‌ها (دکمهٔ aria-expanded) و زیرش فهرستِ همان بخشی که باز است. با JS
   (کلاسِ is-js که پیش از رسمِ بخش‌ها می‌نشیند) فقط بخشِ is-open دیده می‌شود؛ بی JS همهٔ بخش‌ها بازند و «بستن» و پیکان پنهان. */
.zz-eml-secs{display:flex;flex-direction:column;gap:1.25rem}
.zz-eml-sec-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem}
@container (min-width:440px){.zz-eml-sec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (min-width:960px){.zz-eml-sec-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}}
.zz-eml-sec-card{display:flex;flex-direction:row;align-items:center;gap:.75rem;width:100%;min-height:76px;padding:.875rem 1rem;
  text-align:start;cursor:pointer;transition:border-color .15s,background-color .15s}
.zz-eml-sec-card:hover{border-color:var(--input)}
.zz-eml-sec-card:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.zz-eml-sec-card[aria-expanded="true"]{border-color:var(--primary);background:color-mix(in oklab,var(--primary) 8%,var(--card))}
.zz-eml-sec-icon{flex:none;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;
  background:var(--muted);color:var(--secondary-foreground)}
.zz-eml-sec-card[aria-expanded="true"] .zz-eml-sec-icon{background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-eml-sec-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.125rem}
.zz-eml-sec-title{font-size:var(--text-sm);font-weight:600;color:var(--mono);line-height:1.7;overflow-wrap:anywhere}
.zz-eml-sec-meta{font-size:var(--text-xs);line-height:1.7;color:var(--secondary-foreground)}
.zz-eml-sec-flags{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.25rem}
.zz-eml-sec-caret{flex:none;font-size:var(--text-2sm);color:var(--secondary-foreground);transition:transform .15s}
.zz-eml-sec-card[aria-expanded="true"] .zz-eml-sec-caret{transform:rotate(180deg)}
.zz-eml-sec{scroll-margin-top:90px}
.zz-eml-secs.is-js>.zz-eml-sec:not(.is-open){display:none}
.zz-eml-secs:not(.is-js) .zz-eml-sec-caret,.zz-eml-secs:not(.is-js) [data-zz-sec-close]{display:none}
@media (prefers-reduced-motion:reduce){.zz-eml-sec-card,.zz-eml-sec-caret{transition:none}}

/* کلیدِ روشن/خاموش: کلِ دکمه هدفِ لمسی است، ظاهرش kt-switch ِ باندل */
.zz-eml-switch-form{display:inline-flex}
.zz-eml-switch{display:inline-flex;align-items:center;gap:.5rem;min-height:34px;padding:.25rem .625rem;border-radius:8px;cursor:pointer;
  font-size:var(--text-xs);color:var(--secondary-foreground);background:transparent;transition:background-color .15s}
.zz-eml-switch:hover{background:var(--accent)}
.zz-eml-switch:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-eml-switch .kt-switch{pointer-events:none}
.zz-eml-switch[aria-checked="true"] .zz-eml-switch-text{color:var(--zz-success)}
@media (max-width:640px){.zz-eml-switch{min-height:44px}}

/* ویرایش: چیدمان */
.zz-eml-edit{container:zz-eml / inline-size}
.zz-eml-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}
.zz-eml-top,.zz-eml-rest{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
.zz-eml-top{container:zz-eml-form / inline-size}
.zz-eml-side{min-width:0}
@container zz-eml (min-width:1000px){
  .zz-eml-grid{grid-template-columns:minmax(0,1fr) 400px;grid-template-rows:auto 1fr}
  .zz-eml-top{grid-column:1;grid-row:1}
  .zz-eml-rest{grid-column:1;grid-row:2}
  .zz-eml-side{grid-column:2;grid-row:1 / span 2;position:sticky;top:calc(var(--header-height,70px) + 1.25rem)}
}
@container zz-eml (min-width:1400px){.zz-eml-grid{grid-template-columns:minmax(0,1fr) 460px}}

/* سربرگ */
.zz-eml-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem 1.5rem}
.zz-eml-head-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.zz-eml-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem 1.25rem;margin:.25rem 0 0;padding-top:.875rem;border-top:1px solid var(--border)}
.zz-eml-facts dt{font-size:var(--text-xs);color:var(--secondary-foreground);margin-bottom:2px}
.zz-eml-facts dd{margin:0;font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.7;overflow-wrap:anywhere}
.zz-eml-facts .zz-eml-failed{font-weight:500;margin-inline-start:.375rem}
@media (max-width:639.98px){.zz-eml-head-actions{width:100%}.zz-eml-head-actions .kt-btn{flex:1 1 auto;justify-content:center}}

/* بخش‌های متن */
.zz-eml-part{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.zz-eml-part-head{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .625rem}
.zz-eml-part-head .kt-form-label{margin:0;gap:.25rem}
.zz-eml-reset{display:inline-flex;align-items:center;gap:.25rem;margin-inline-start:auto;padding:.125rem .5rem;border-radius:6px;
  font-size:var(--text-xs);color:var(--zz-brand-text);background:transparent;cursor:pointer}
.zz-eml-reset:hover{background:var(--accent)}
.zz-eml-reset:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-eml-reset[hidden]{display:none}
@media (max-width:640px){.zz-eml-reset{min-height:36px}}
.zz-eml-textarea{line-height:1.9;resize:vertical}
.zz-eml-hint{margin:0;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-eml-default{font-size:var(--text-xs)}
.zz-eml-default>summary{cursor:pointer;width:fit-content;color:var(--secondary-foreground)}
.zz-eml-default>summary:hover{color:var(--mono)}
.zz-eml-default-text{white-space:pre-line;margin-top:.375rem;padding:.5rem .75rem;border-radius:8px;border:1px dashed var(--border);
  line-height:1.9;color:var(--secondary-foreground);overflow-wrap:anywhere}
.zz-eml-labels{margin:0;padding:.875rem 1rem 1rem;border:1px solid var(--border);border-radius:12px}
.zz-eml-labels>legend{display:flex;align-items:center;gap:.5rem;padding:0 .375rem;font-size:var(--text-2sm);font-weight:600;color:var(--mono)}
.zz-eml-labels-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.875rem;margin-top:.25rem}
@container zz-eml-form (min-width:620px){.zz-eml-labels-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zz-eml-label{display:flex;flex-direction:column;gap:.375rem;min-width:0}
.zz-eml-label-name{font-size:var(--text-xs);line-height:1.7;color:var(--secondary-foreground)}
.zz-eml-label-row{display:flex;align-items:center;gap:.375rem}
.zz-eml-label-row .kt-input{flex:1 1 auto;min-width:0}
.zz-eml-fixed{margin:0;display:flex;align-items:flex-start;gap:.5rem;font-size:var(--text-xs);line-height:1.9;color:var(--secondary-foreground);
  padding-top:1rem;border-top:1px dashed var(--border)}
.zz-eml-fixed>i{margin-top:.3rem;flex:none}
.zz-eml-form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem}
@media (max-width:639.98px){.zz-eml-form-foot .kt-btn{flex:1 1 100%;justify-content:center}}

/* جای‌نگهدارها */
.zz-eml-ph{display:flex;flex-direction:column;gap:.625rem;padding:.875rem 1rem;border-radius:12px;border:1px solid var(--border);
  background:color-mix(in oklab,var(--muted) 40%,transparent)}
.zz-eml-chips{display:flex;flex-wrap:wrap;gap:.375rem}
.zz-eml-chip{display:inline-flex;align-items:center;gap:.375rem;min-height:30px;padding:.25rem .625rem;border-radius:8px;border:1px solid var(--border);
  background:var(--card);font-size:var(--text-xs);color:var(--secondary-foreground);cursor:pointer;transition:border-color .15s,color .15s}
.zz-eml-chip code{font-size:var(--text-xs);color:var(--mono);unicode-bidi:isolate}
.zz-eml-chip.is-url code{color:var(--zz-info)}
.zz-eml-chip:hover{border-color:var(--primary);color:var(--mono)}
.zz-eml-chip:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-eml-chip[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
@media (max-width:640px){.zz-eml-chip{min-height:40px}}
.zz-eml-help{font-size:var(--text-xs);line-height:1.9;color:var(--secondary-foreground)}
.zz-eml-help>summary{cursor:pointer;width:fit-content;color:var(--zz-brand-text)}
.zz-eml-help ul{margin:.5rem 0 0;padding-inline-start:1.25rem;list-style:disc;display:flex;flex-direction:column;gap:.25rem}
.zz-eml-help code,.zz-eml-hint code{padding:0 .3rem;border-radius:5px;background:var(--accent);color:var(--mono);font-size:var(--text-xs)}

/* پیش‌نمایش */
.zz-eml-preview-body{display:flex;flex-direction:column;gap:.75rem}
.zz-eml-subject{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;padding:.5rem .75rem;border-radius:10px;border:1px solid var(--border);
  background:color-mix(in oklab,var(--muted) 40%,transparent)}
.zz-eml-subject-label{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-eml-subject-text{font-size:var(--text-2sm);font-weight:600;color:var(--mono);overflow-wrap:anywhere}
.zz-eml-perr{padding:.625rem .75rem;border-radius:10px;border:1px solid var(--zz-danger-line);background:var(--zz-danger-soft);
  font-size:var(--text-xs);line-height:1.8;color:var(--zz-danger)}
.zz-eml-perr ul{margin:.25rem 0 0;padding-inline-start:1.25rem;list-style:disc}
.zz-eml-perr[hidden]{display:none}
/* قابِ پیش‌نمایش عمداً در هر دو تم روشن است: خودِ ایمیل همیشه روشن فرستاده می‌شود (رنگ‌های ثابتِ این قاب و چیپِ «busy» ِ رویش) */
.zz-eml-frame{position:relative;border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#f4f4f7}
/* اسکرول مالِ این قاب است، نه iframe: srcdoc ِ تازه سندِ iframe را از بالا بار می‌کند و والد به اسکرولِ iframe ِ sandbox
   دسترسی ندارد؛ iframe بلندیِ ثابتِ بزرگ‌تر از بلندترین ایمیل (≈ ۱۴۵۰px در عرضِ ۳۲۰) دارد تا جای خواننده بماند */
.zz-eml-frame-scroll{overflow:auto;overscroll-behavior:contain}
.zz-eml-frame-scroll:has(iframe){height:640px}
.zz-eml-frame iframe{display:block;width:100%;height:1600px;border:0;background:#f4f4f7}
.zz-eml-frame-empty{display:grid;place-items:center;min-height:200px;padding:1rem;font-size:var(--text-xs);color:#4b5563;text-align:center}
.zz-eml-busy{position:absolute;inset-inline-start:.5rem;top:.5rem;padding:.125rem .5rem;border-radius:6px;font-size:var(--text-xs);
  background:rgba(17,24,39,.8);color:#e5e7eb}
.zz-eml-busy[hidden]{display:none}
@media (max-width:639.98px){.zz-eml-frame-scroll:has(iframe){height:560px}}
.zz-eml-preview-foot{display:flex;flex-direction:column;align-items:stretch;gap:.625rem}
/* ستونِ کناریِ چسبان: کارت هم‌قدِ صفحه و قاب جای باقی‌مانده را می‌گیرد (بعد از قاعده‌های پایهٔ قاب، تا بر ۶۴۰px ببرد) */
@container zz-eml (min-width:1000px){
  .zz-eml-preview{height:calc(100vh - var(--header-height,70px) - 2.5rem);min-height:520px;display:flex;flex-direction:column}
  .zz-eml-preview-body{flex:1 1 0;min-height:0}
  .zz-eml-frame{flex:1 1 0;min-height:240px;display:flex}
  .zz-eml-frame-scroll,.zz-eml-frame-scroll:has(iframe){flex:1 1 auto;min-width:0;height:auto}
}
.zz-eml .kt-btn.is-busy{opacity:.7;cursor:progress}

/* گیرندگان */
.zz-eml-natural{display:flex;flex-direction:column;gap:.125rem;padding:.625rem .875rem;border-radius:10px;border:1px solid var(--border)}
.zz-eml-natural-label{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-eml-natural-value{font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.7}
.zz-eml-note{margin:0;display:flex;align-items:flex-start;gap:.5rem;font-size:var(--text-xs);line-height:1.9;color:var(--secondary-foreground)}
.zz-eml-note>i{margin-top:.3rem;flex:none}
.zz-eml-modes{margin:0;padding:0;border:0;display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}
@container zz-eml (min-width:700px){.zz-eml-modes{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zz-eml-mode{display:flex;align-items:flex-start;gap:.625rem;padding:.75rem .875rem;border:1px solid var(--border);border-radius:10px;cursor:pointer;
  transition:background-color .15s,border-color .15s}
.zz-eml-mode:hover{background:color-mix(in oklab,var(--accent) 70%,transparent)}
.zz-eml-mode:has(input:checked){border-color:var(--primary);background:color-mix(in oklab,var(--primary) 8%,transparent)}
.zz-eml-mode:has(input:focus-visible){outline:2px solid var(--ring);outline-offset:1px}
.zz-eml-mode input{margin-top:.3rem;flex:none}
.zz-eml-mode-title{font-size:var(--text-2sm);font-weight:600;color:var(--mono)}
.zz-eml-mode-hint{font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-eml-rcpt-list{display:flex;flex-direction:column;gap:1.25rem;transition:opacity .15s}
.zz-eml-rcpt-list.is-dim{opacity:.55}
.zz-eml-admins{display:grid;grid-template-columns:minmax(0,1fr);gap:.5rem}
@container zz-eml (min-width:700px){.zz-eml-admins{grid-template-columns:repeat(2,minmax(0,1fr))}}
.zz-eml-admin{display:flex;align-items:flex-start;gap:.625rem;padding:.625rem .75rem;border:1px solid var(--border);border-radius:10px;cursor:pointer;min-width:0}
.zz-eml-admin:hover{background:color-mix(in oklab,var(--accent) 70%,transparent)}
.zz-eml-admin:has(input:checked){border-color:var(--primary);background:color-mix(in oklab,var(--primary) 8%,transparent)}
.zz-eml-admin input{margin-top:.3rem;flex:none}
.zz-eml-addr{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New","Anjoman",monospace;
  font-size:var(--text-xs);color:var(--secondary-foreground);text-align:right;overflow-wrap:anywhere}
.zz-eml-addresses{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:var(--text-xs);text-align:left}

/* تاریخچه */
.zz-eml-filters{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;align-items:end}
@media (min-width:768px){.zz-eml-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.zz-eml-filters{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) auto}}
.zz-eml-filters-actions{display:flex;flex-wrap:wrap;gap:.5rem}
@media (max-width:639.98px){.zz-eml-filters-actions .kt-btn{flex:1 1 auto;justify-content:center}}
.zz-eml-log-table td{vertical-align:top}
.zz-eml-log-list{list-style:none;margin:0;padding:0}
.zz-eml-log-row{display:flex;flex-direction:column;gap:.375rem;padding:.875rem 1rem;border-bottom:1px solid var(--border)}
.zz-eml-log-row:last-child{border-bottom:0}
.zz-eml-log-meta{display:flex;flex-wrap:wrap;column-gap:.75rem;row-gap:.125rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
/* «مرتبط با» زیرِ موضوع تا ۱۲۸۰px؛ از آن‌جا ستونِ خودش را دارد (zz-col-wide) */
.zz-eml-ctx{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.25rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-eml-ctx>i{font-size:11px;align-self:center}
.zz-eml-ctx>bdi{color:var(--mono)}
@media (min-width:1280px){.zz-eml-log-table .zz-eml-narrow{display:none}}
.zz-eml-chipnote:empty{display:none}
/* ===== پایانِ ایمیل‌ها ===== */

/* ===== «نقش‌ها و دسترسی‌ها» (/admin/roles) — جدولِ مالک و ادمین‌ها، صفحه‌های افزودن و ویرایشِ دسترسی‌ها (۲۰۲۶-۱۰-۰۱) ===== */
.zz-acc-table td{vertical-align:middle}
/* break-word (نه anywhere): min-content ِ ستون می‌ماند، پس جدول روی گوشی درونِ کارت افقی اسکرول می‌خورد و نام و ایمیل حرف‌به‌حرف نمی‌شکنند */
.zz-acc-break{overflow-wrap:break-word;min-width:0}
.zz-acc-table td.zz-acc-break{min-width:8rem}
.zz-acc-table td.zz-acc-break>bdi,.zz-acc-table td:not(.zz-acc-break){white-space:nowrap}
.zz-acc-form{max-width:56rem}
.zz-acc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.875rem 1.25rem}
.zz-acc-area{display:flex;align-items:center;gap:.5rem;min-width:0;font-size:var(--text-xs);line-height:1.6;color:var(--mono);cursor:pointer}
.zz-acc-email{max-width:26rem}
/* ===== پایانِ نقش‌ها و دسترسی‌ها ===== */

/* ===== لینک‌های کوتاهِ ادمین (/admin/links، بازسازیِ ۲۰۲۶-۱۰-۰۱) ===== */
.zz-lnk-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
@media (min-width:1024px){.zz-lnk-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* زیرِ ۴۸۰px دو ستون می‌ماند ولی آیکن بالای متن می‌رود: کنارِ آیکن، برچسب و توضیح در کاشیِ ۱۶۰ پیکسلی سه‌چهار خطه می‌شکستند.
   کاشی‌های مبلغ (zz-stmt-tiles) آن‌جا یک ستون‌اند و آیکن کنارِ متن می‌ماند */
@media (max-width:479.98px){
  .zz-lnk-stats{gap:.75rem}
  .zz-lnk-stats:not(.zz-stmt-tiles)>.kt-card>.kt-card-content{flex-direction:column;align-items:flex-start;gap:.5rem;padding:.875rem}
}
.zz-lnk-table td{vertical-align:middle}
/* صفِ آپلود: کارتِ «مسیرِ آپلود چطور پیش می‌رود» (video/queue، تمِ روشن و تیره ۲۰۲۶-۱۰-۱۴) — رنگِ هر قدم همان رنگِ نشانِ همان وضعیت در جدول */
.zz-q-legend-title{color:var(--mono)}
.zz-q-legend-title svg{color:var(--zz-brand-text)}
.zz-q-step{background:var(--zz-surface-2);border:1px solid var(--border);color:var(--foreground)}
.zz-q-dot{flex:none;width:8px;height:8px;border-radius:999px}
.zz-q-dot--queued{background:var(--zz-warning-solid)}
.zz-q-dot--prep{background:var(--zz-info-solid)}
.zz-q-dot--upload{background:var(--primary)}
.zz-q-dot--done{background:var(--zz-success-solid)}
.zz-q-arrow{color:var(--muted-foreground)}
.zz-q-note{color:var(--secondary-foreground)}
.zz-q-note svg{color:var(--muted-foreground)}
.zz-q-err{font-size:var(--text-xs);line-height:1.7;color:var(--secondary-foreground);background:var(--zz-surface-3);border:1px solid var(--border)}
/* صفِ آپلود (.zz-q-table) و فهرستِ لینک‌های کاربر (.zz-lnk-table) در موبایل (۲۰۲۶-۱۰-۱۳): جدول ۷۳۰ تا ۷۷۰ پیکسل بود در قابِ ۳۴۱ پیکسلی و
   «وضعیت» / «عملیات» پشتِ اسکرولِ افقی می‌ماند. زیرِ ۶۴۰px ستون‌های کم‌اهمیت پنهان‌اند (zz-c-sm) و همان اطلاعات زیرِ عنوان می‌آید (zz-c-xs). */
.zz-q-table .zz-c-sm,.zz-lnk-table .zz-c-sm{display:none}
.zz-q-table .zz-c-xs,.zz-lnk-table .zz-c-xs{display:block}
@media (min-width:640px){.zz-q-table .zz-c-sm,.zz-lnk-table .zz-c-sm{display:table-cell}.zz-q-table .zz-c-xs,.zz-lnk-table .zz-c-xs{display:none}}
@media (max-width:639px){
  /* صف: هر ویدیو یک بلوک — عنوان، زیرش وضعیت و زیرِ آن دکمه؛ سه ستونِ کنارِ هم با برچسب‌های بلندِ بی‌شکست («آپلودِ موفق در یوتیوب»،
     «مشاهده در یوتیوب») در ۳۴۱ پیکسل جا نمی‌شد و عنوان را حرف‌به‌حرف می‌شکست */
  .zz-q-table thead{display:none}
  .zz-q-table,.zz-q-table tbody,.zz-q-table tr{display:block;width:100%}
  .zz-q-table tr{padding:.5rem 0}
  .zz-q-table td{display:block;width:auto;padding:.25rem .875rem}
  .zz-q-table td.zz-c-sm{display:none}
  .zz-q-table td:last-child > div{justify-content:flex-start}
  .zz-lnk-table th{min-width:0;width:auto}
  .zz-lnk-table th,.zz-lnk-table td{padding-inline:.625rem}
}
.zz-lnk-toolbar{display:flex;flex-wrap:wrap;align-items:center}
.zz-lnk-search{width:15rem;max-width:100%}
.zz-lnk-toolbar .kt-select{width:auto;min-width:9rem}
.zz-lnk-dest{max-width:26rem;overflow-wrap:anywhere}
.zz-lnk-break{overflow-wrap:anywhere;min-width:0}
.zz-lnk-info{display:grid;gap:.75rem;margin:0}
.zz-lnk-info>div{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:.75rem;align-items:baseline}
.zz-lnk-info dt{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-lnk-info dd{margin:0;font-size:var(--text-2sm);color:var(--mono)}
.zz-lnk-bars{display:flex;align-items:flex-end;gap:3px;height:120px;direction:ltr}
.zz-lnk-bar{flex:1 1 0;height:100%;display:flex;align-items:flex-end;background:var(--zz-surface-3);border-radius:3px}
.zz-lnk-bar>span{display:block;width:100%;background:var(--primary);border-radius:3px}
.zz-lnk-refs{list-style:none;margin:0;padding:0}
.zz-lnk-refs>li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem 1.25rem;font-size:var(--text-2sm);color:var(--mono)}
.zz-lnk-refs>li+li{border-top:1px solid var(--border)}
/* ===== پایانِ لینک‌های کوتاهِ ادمین ===== */

/* ===== صفحهٔ «ادیتورها» (delegates.index، ۲۰۲۶-۱۰-۰۱): صفِ تأیید، دعوت، ادیتورهای فعلی ===== */
.zz-eds-item{display:grid;grid-template-columns:220px minmax(0,1fr);gap:1.25rem;padding:1.25rem;border:1px solid var(--border);border-radius:.75rem}
.zz-eds-side{display:flex;flex-direction:column;gap:.75rem;min-width:0}
.zz-eds-thumb{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:.5rem;background:var(--accent)}
.zz-eds-thumb-empty{display:flex;align-items:center;justify-content:center;color:var(--muted-foreground)}
.zz-eds-meta{display:flex;flex-direction:column;gap:.375rem;margin:0;font-size:var(--text-xs)}
.zz-eds-meta>div{display:flex;justify-content:space-between;gap:.75rem}
.zz-eds-meta dt{flex:none;color:var(--secondary-foreground)}
.zz-eds-meta dd{min-width:0;margin:0;text-align:end;font-weight:500;color:var(--mono);overflow-wrap:anywhere}
.zz-eds-meta dd.text-warning{color:var(--zz-warning)}
.zz-eds-form{display:flex;flex-direction:column;gap:1rem;min-width:0}
.zz-eds-chip{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.5rem;font-size:var(--text-2sm);color:var(--mono);cursor:pointer}
.zz-eds-chip:hover{background:var(--zz-hover)}
.zz-eds-chip:has(input:checked){border-color:var(--zz-brand-line);background:var(--zz-brand-soft)}
.zz-eds-invite{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}
.zz-eds-link{min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs)}
.zz-eds-invite-meta{overflow-wrap:anywhere}
/* سه سطحِ دعوت در صفحهٔ کانال (۲۰۲۶-۱۰-۱۶، channels/show #zz-invite): نامِ سطح پررنگ، توضیحِ یک‌خطی زیرش */
.zz-inv-levels{display:flex;flex-direction:column;gap:.6rem;margin:0}
.zz-inv-levels>div{padding:.55rem .75rem;border:1px solid var(--border);border-radius:.6rem;background:var(--zz-surface-2)}
.zz-inv-levels dt{font-size:var(--text-xs);font-weight:600;color:var(--mono)}
.zz-inv-levels dd{margin:0;font-size:var(--text-xs);line-height:1.75;color:var(--secondary-foreground)}
/* «کوتاه‌کنندهٔ لینک چه کار می‌کند؟» (۲۰۲۶-۱۰-۱۶، links/partials/about): یک <details> ِ بومی در قالبِ kt-card */
.zz-lnk-about>summary{cursor:pointer;list-style:none}
.zz-lnk-about>summary::-webkit-details-marker{display:none}
.zz-lnk-about:not([open])>summary{border-bottom:0}
.zz-lnk-about-chev{transition:transform .15s;color:var(--secondary-foreground)}
.zz-lnk-about[open] .zz-lnk-about-chev{transform:rotate(180deg)}
.zz-lnk-about-lead{font-size:var(--text-2sm);line-height:1.9;color:var(--foreground);margin-bottom:1rem}
.zz-lnk-about-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}
.zz-lnk-about-list>li{display:flex;gap:.75rem;padding:.9rem 1rem;border:1px solid var(--border);border-radius:.85rem;background:var(--zz-surface-2);min-width:0}
.zz-lnk-about-list strong{display:block;font-size:var(--text-2sm);color:var(--mono);margin-bottom:.2rem}
.zz-lnk-about-list p{font-size:var(--text-xs);line-height:1.85;color:var(--secondary-foreground)}
.zz-lnk-about-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.65rem;background:var(--zz-brand-soft);color:var(--zz-brand-text);border:1px solid var(--zz-brand-line)}
.zz-lnk-about-note{margin-top:.85rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
@media (max-width:1023px){.zz-lnk-about-list{grid-template-columns:minmax(0,1fr)}}
/* دکمهٔ outline ِ قرمز در پنلِ کاربر خاکستری می‌شد (قاعدهٔ .zz-premium .kt-btn-outline)؛ همان رنگِ نشان‌های destructive */
.zz-premium .zz-eds .kt-btn-outline.kt-btn-destructive{color:var(--zz-danger) !important;border-color:var(--zz-danger-line) !important;background:var(--zz-danger-soft) !important}
.zz-premium .zz-eds .kt-btn-outline.kt-btn-destructive:hover{background:color-mix(in oklab,var(--zz-danger) 18%,transparent) !important}
@media (max-width:767px){
.zz-eds-item{grid-template-columns:minmax(0,1fr);padding:1rem}
.zz-eds-side{flex-direction:row;align-items:flex-start}
.zz-eds-thumb{width:120px;flex:none}
.zz-eds-meta{flex:1;min-width:0}
.zz-eds-form .kt-btn{flex:1 1 auto;justify-content:center}
.zz-eds-form .kt-btn.ms-auto{margin-inline-start:0}
}
/* ===== پایانِ ادیتورها ===== */

/* ===== درآمدِ یوتیوب (revenue.index، مرتب‌سازیِ ظاهر ۲۰۲۶-۱۰-۰۱)؛ ردیفِ عددها همان zz-kpis ===== */
.zz-rev-period{width:auto;min-width:200px;max-width:100%}
.zz-rev-list{display:flex;flex-direction:column}
.zz-rev-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1.25rem}
.zz-rev-row+.zz-rev-row{border-top:1px solid var(--border)}
.zz-rev-note{max-width:420px;line-height:1.9}
.zz-rev-dot{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
/* ===== پایانِ درآمدِ یوتیوب ===== */

/* فرمِ ساختِ لینکِ کوتاه (links.create، ۲۰۲۶-۱۰-۰۱): کارتِ کم‌عرض، وسطِ صفحه */
.zz-lnk-form{width:100%;max-width:720px;margin-inline:auto}
/* ساختِ لینک (2026-10-16): فرم و «چه کار می‌کند؟» کنارِ هم، هر دو از بالا؛ فرم دیگر وسطِ صفحه رها نیست. هم‌قد کشیده نمی‌شوند:
   فرمِ کشیده میانِ فیلدها و دکمه‌ها جای خالی داشت، و زیرِ این دو چیزی نیست که فاصله‌ای بینشان بیفتد */
.zz-lnk-create{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}
@media (min-width:1024px){
  .zz-lnk-create{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:1.875rem}
  .zz-lnk-create>.zz-lnk-form{max-width:none;margin-inline:0}
}
.zz-lnk-about--side .zz-lnk-about-list{grid-template-columns:minmax(0,1fr)}
/* پیوندی که بیرون از پنل یا در زبانهٔ تازه باز می‌شود (منوی کنار و منوی پروفایل، 2026-10-16) */
.zz-nav-ext{font-size:var(--text-xs);color:var(--muted-foreground);margin-inline-start:.3rem;flex:none}

/* ===== لینک‌های کوتاهِ من (links.index، ۲۰۲۶-۱۰-۰۱): نمودارِ ۳۰ روز + کشورها + جدول ===== */
.zz-lnk-charts{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}
@media (min-width:1024px){.zz-lnk-charts{grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:1.875rem}}
/* صفحهٔ آمارِ یک لینک: سه عدد به‌جای چهار؛ ردیفِ دوم «مرجع‌ها | کلیک‌ها» (۱ به ۲) */
@media (min-width:1100px){.zz-kpis.zz-kpis-3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.zz-lnk-charts.zz-lnk-charts-rev{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}}
/* کارتِ کشورها از ۲۰۲۶-۱۱-۰۳ نقشهٔ جهان است (بلوکِ «نقشهٔ کشورهای لینک‌های کوتاه» در انتهای همین فایل)؛ ردیفِ «مرجع‌ها | کلیک‌ها» هم‌قد */
@media (min-width:1024px){.zz-lnk-charts{align-items:stretch}}
.zz-lnk-modal{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--zz-overlay)}
/* پیوندهای مقصد در صفحه‌های لینک: متنِ برندِ خوانا روی کارت در هر دو حالت (kt-link ِ باندل --primary است و روی کارتِ تیره کم‌کنتراست) */
.zz-lnk .kt-link{color:var(--zz-brand-text)}
.zz-lnk .kt-link:hover{color:var(--mono)}
.zz-lnk-modal[hidden]{display:none}
.zz-lnk-modal-box{position:relative;width:100%;max-width:960px;aspect-ratio:16/9;background:#000;border-radius:.75rem;overflow:hidden}
.zz-lnk-modal-box iframe{width:100%;height:100%;border:0;display:block}
.zz-lnk-modal-close{position:absolute;top:.75rem;inset-inline-start:.75rem;z-index:1}
/* ===== پایانِ لینک‌های کوتاهِ من ===== */

/* «مشتری‌ها» (ادمین، ۲۰۲۶-۱۰-۰۳): پرش به #customers زیرِ هدرِ ثابت نرود؛ نوارِ انتخابِ گروهی هنگامِ اسکرولِ فهرست بالای صفحه بماند */
.zz-cust-card{scroll-margin-top:90px}
.zz-cust-bulk{position:sticky;top:var(--header-height,70px);z-index:5;background:var(--card)}
/* ستونِ کانال در گوشی حرف‌به‌حرف می‌شکست (overflow-wrap:anywhere ِ zz-lnk-dest کمینهٔ ستون را صفر می‌کند)؛ جدول خودش اسکرول دارد */
.zz-cust-card .zz-cust-ch{min-width:8rem}
/* همان مشکل در ستونِ «مقصد» ِ admin/links (نشانیِ بلند حرف‌به‌حرف) */
.zz-alnk-dest{min-width:13rem}
/* min-width ِ خودِ td در کروم بی‌اثر است (۲۰۲۶-۱۰-۱۴: ستون باز هم ۳۵ پیکسل بود)؛ کمینه روی فرزندانِ بلوکی می‌نشیند */
.zz-cust-card .zz-cust-ch>*{min-width:8rem}

/* «آپلودهای ثبت‌نشده» در تبِ «در جریان»ِ ویدیوهای ادمین (۲۰۲۶-۱۰-۰۴): نام و کاربر · پیشرفت · حالت؛ زیرِ ۷۶۸px زیرِ هم */
.zz-inc-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(170px,auto);gap:.75rem 1.25rem;align-items:center;padding:.75rem;border:1px solid var(--border);border-radius:.5rem}
@media (max-width:767px){.zz-inc-row{grid-template-columns:minmax(0,1fr)}}
.zz-inc-bar{height:6px;border-radius:999px;background:var(--zz-surface-3);box-shadow:inset 0 0 0 1px var(--border);overflow:hidden}
/* در حالِ دریافت = برند، همهٔ تکه‌ها رسیده = موفق، «بی تکهٔ تازه» = هشدار (توکن‌ها، هر دو تم) */
.zz-inc-bar>span{display:block;height:100%;border-radius:inherit;background:var(--primary)}
.zz-inc-complete .zz-inc-bar>span{background:var(--zz-success-solid)}
.zz-inc-stalled .zz-inc-bar>span{background:var(--zz-warning-solid)}


/* داشبوردِ کاربر (۲۰۲۶-۱۰-۰۵): کارت‌های افقیِ بالا و، سمتِ چپشان، کارتِ عمودیِ «آپدیت‌های پلت».
   از ۱۲۸۰px دو ستون: کارتِ آپدیت‌ها هم‌قدِ ستونِ کارت‌های افقی می‌ماند (position:absolute، پس قدِ خودش ردیف را بلند
   نمی‌کند) و فهرستش درونِ خودش اسکرول می‌خورد. باریک‌تر: زیرِ کارت‌های افقی، با سقفِ قد. */
.zz-dash-top{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem}
.zz-dash-top-main{min-width:0}
/* بازچینیِ ۲۰۲۶-۱۰-۱۳: کاشی‌های آمار و «وضعیت صف آپلود» بالای داشبوردند. کنارِ کارتِ آپدیت‌ها جای چهار کاشی در یک ردیف نیست (تا ۱۶۰۰px):
   دو در دو. بی کارتِ آپدیت‌ها همان چهار در یک ردیف از ۱۲۸۰px. */
.zz-premium .zz-dash-top .zz-stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
@media (min-width:1280px){.zz-premium .zz-dash-top:not(.zz-dash-top--split) .zz-stats{grid-template-columns:repeat(4,minmax(0,1fr)) !important}}
@media (min-width:1600px){.zz-premium .zz-dash-top--split .zz-stats{grid-template-columns:repeat(4,minmax(0,1fr)) !important}}
/* تمِ روشن و تیره (۲۰۲۶-۱۰-۱۴): کارتِ «شروع» (کاربرِ بی کانال)، کارتِ خلاصهٔ درآمد و ردیفِ «محبوب‌ترین ویدیوها» — فقط از توکن‌ها */
.zz-dash-start{background:linear-gradient(90deg,var(--zz-brand-soft),color-mix(in oklab,var(--zz-brand-soft) 25%,var(--card)));border-color:var(--zz-brand-line)}
.zz-dash-start-ic{background:var(--primary);color:var(--primary-foreground)}
.zz-dash-start-ic i{color:inherit}
.zz-dash-rev{transition:border-color .15s,background-color .15s}
a:hover>.zz-dash-rev,a:focus-visible>.zz-dash-rev{border-color:var(--zz-success-line);background-color:color-mix(in oklab,var(--zz-success) 4%,var(--card))}
.zz-dash-tv{transition:background-color .15s}
.zz-dash-tv:hover{background-color:var(--zz-hover)}
.zz-dash-tv>img{flex:none}
/* راهنمای نمودارِ داشبورد در یک ردیف (باندلِ Metronic همهٔ .apexcharts-legendها را ستونی می‌کند) */
.zz-dash-chart .apexcharts-legend{flex-direction:row;flex-wrap:wrap;gap:0}
@media (max-width:640px){.zz-dash-tv{flex-wrap:wrap;gap:.75rem}.zz-dash-tv-meta{flex-basis:100%;display:flex;justify-content:space-between;gap:.75rem;text-align:start}}
/* بازسازیِ داشبورد (۲۰۲۶-۱۰-۱۶، مرحلهٔ ۱): «کارهای شما» (.zz-dtask)، «کانالِ شما» (.zz-dch) و «آپلودها» (.zz-dup) — همه از توکن‌ها.
   در گوشی هر ردیف دو خط می‌شود (دکمه / وضعیت زیرِ متن)، بی جدول و بی اسکرولِ افقی */
.zz-dtask-list{list-style:none;margin:0;padding:0}
.zz-dtask{display:flex;align-items:center;gap:.85rem;padding:.85rem 1.25rem;border-top:1px solid var(--border)}
.zz-dtask-list>.zz-dtask:first-child{border-top:0}
.zz-dtask-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.65rem;background:var(--zz-info-soft);color:var(--zz-info);border:1px solid var(--zz-info-line)}
.zz-dtask--warning .zz-dtask-ic{background:var(--zz-warning-soft);color:var(--zz-warning);border-color:var(--zz-warning-line)}
.zz-dtask--danger .zz-dtask-ic{background:var(--zz-danger-soft);color:var(--zz-danger);border-color:var(--zz-danger-line)}
.zz-dtask-text{flex:1 1 auto;min-width:0}
.zz-dtask-title{font-size:var(--text-2sm);font-weight:600;line-height:1.7;color:var(--mono);overflow-wrap:anywhere}
.zz-dtask-note{font-size:var(--text-xs);line-height:1.7;color:var(--secondary-foreground);overflow-wrap:anywhere}
.zz-dtask-btn{flex:none}
.zz-dtask-more{border-top:1px solid var(--border)}
.zz-dtask-more>summary{cursor:pointer;padding:.7rem 1.25rem;font-size:var(--text-xs);font-weight:500;color:var(--zz-brand-text);list-style:none}
.zz-dtask-more>summary::-webkit-details-marker{display:none}
.zz-dtask-more>summary:hover{background:var(--zz-hover)}
.zz-dtask-more[open]>summary{border-bottom:1px solid var(--border)}
.zz-dch-head{flex-wrap:wrap;gap:.75rem;row-gap:.75rem}
.zz-dch-thumb{width:2.75rem;height:2.75rem;border-radius:.75rem;object-fit:cover;flex:none;border:1px solid var(--border)}
.zz-dch-thumb--sm{width:2rem;height:2rem;border-radius:.5rem}
.zz-dch-title{display:flex;align-items:center;gap:.5rem;min-width:0}
.zz-dch-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.zz-dch-figs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.zz-dch-fig{display:flex;flex-direction:column;gap:.35rem;padding:1rem 1.1rem;border-radius:.9rem;background:var(--zz-surface-2);border:1px solid var(--border);min-width:0}
.zz-dch-label{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-dch-val{font-size:var(--text-2xl);font-weight:800;line-height:1.2;color:var(--mono)}
.zz-dch-sub{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-dch-note{margin-top:.85rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-dch-chart-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem .75rem;margin-top:1.25rem}
.zz-dch-more{display:inline-flex;align-items:center;gap:.35rem;margin-top:.85rem;font-size:var(--text-xs);font-weight:500;color:var(--zz-brand-text)}
.zz-dch-more i{font-size:.8em}
.zz-dch-more:hover{text-decoration:underline}
.zz-dch-members{list-style:none;margin:0;padding:0}
.zz-dch-members>li{display:flex;align-items:center;gap:.75rem;padding:.7rem 1.25rem;border-top:1px solid var(--border);min-width:0}
.zz-dch-members>li:first-child{border-top:0}
.zz-dch-foot{padding:.8rem 1.25rem;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-dup-chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:.9rem 1.25rem 0}
.zz-dup-chip:hover{background:var(--zz-hover)}
.zz-dup-list{list-style:none;margin:0;padding:.35rem 0}
.zz-dup-row{display:flex;align-items:center;gap:.85rem;padding:.7rem 1.25rem;min-width:0}
.zz-dup-row+.zz-dup-row{border-top:1px solid var(--border)}
.zz-dup-thumb{flex:none;width:4rem;height:2.5rem;border-radius:.5rem;object-fit:cover;border:1px solid var(--border)}
.zz-dup-thumb--empty{display:inline-flex;align-items:center;justify-content:center;background:var(--zz-surface-2);color:var(--muted-foreground)}
.zz-dup-text{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:.15rem}
.zz-dup-title{font-size:var(--text-2sm);font-weight:500;color:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-dup-meta{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-dup-end{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}
.zz-dup-yt{font-size:var(--text-xs);font-weight:500;color:var(--zz-brand-text)}
.zz-dup-yt:hover{text-decoration:underline}
@media (max-width:640px){
  .zz-dtask{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:.75rem;row-gap:.55rem;padding-inline:1rem}
  .zz-dtask-btn{grid-column:2;justify-self:start}
  .zz-dch-figs{grid-template-columns:minmax(0,1fr)}
  .zz-dch-val{font-size:var(--text-xl)}
  .zz-dup-row{flex-wrap:wrap;padding-inline:1rem}
  .zz-dup-thumb{width:3.25rem;height:2.1rem}
  .zz-dup-end{flex-basis:100%;flex-direction:row;align-items:center;justify-content:space-between;padding-inline-start:4.1rem}
  .zz-dup-title{white-space:normal}
}
.zz-updates{display:flex;flex-direction:column;min-height:0}
.zz-updates .kt-card-header{flex:none}
/* بدونِ overscroll-behavior: وقتی فهرست به ته می‌رسد، اسکرول به خودِ صفحه می‌رسد (روی گوشی کارت وسطِ صفحه است) */
.zz-updates-list{overflow-y:auto;max-height:24rem;padding:.25rem 1.25rem 1rem;scrollbar-width:thin;scrollbar-color:var(--zz-line-strong) transparent}
.zz-update{padding:.9rem 0;border-bottom:1px solid var(--border)}
.zz-update:last-child{border-bottom:0;padding-bottom:.25rem}
/* اندازه‌ها از مقیاسِ فارسیِ خودِ پنل (بلوکِ «مقیاسِ متن» در همین فایل)، نه ریزتر از متن‌های کنارش */
.zz-update-date{display:block;font-size:var(--text-xs);color:var(--muted-foreground);margin-bottom:.3rem}
.zz-update-title{font-size:var(--text-sm);font-weight:600;line-height:1.7;color:var(--mono);overflow-wrap:anywhere}
.zz-update-body{font-size:var(--text-2sm);line-height:1.9;color:var(--secondary-foreground);margin-top:.25rem;white-space:pre-line;overflow-wrap:anywhere}
.zz-update-items{margin-top:.35rem;padding-inline-start:1.15rem;list-style:disc;font-size:var(--text-2sm);line-height:1.9;color:var(--secondary-foreground)}
.zz-update-items li{overflow-wrap:anywhere}
.zz-update-items li::marker{color:var(--primary)}
.zz-update-actions{display:flex;align-items:center;gap:.9rem}
/* فاصلهٔ بالا روی خودِ دکمه‌هاست، نه ظرفشان: آپدیتی که نه لینک دارد نه «بیشتر» جای خالی نمی‌گیرد */
.zz-update-link,.zz-update-more{display:inline-flex;align-items:center;font-size:var(--text-2sm);font-weight:500;color:var(--zz-brand-text);background:none;border:0;padding:0;margin-top:.45rem;cursor:pointer}
.zz-update-link i,.zz-update-more i{font-size:.8em;margin-inline-start:.3rem}
.zz-update-link:hover,.zz-update-more:hover{text-decoration:underline}
.zz-update-link[hidden],.zz-update-more[hidden]{display:none}
/* آپدیتِ بلند (اسکریپتِ کارت is-clamped می‌گذارد): چند خطِ اول، با محوشدنِ پایین؛ کاملش با «بیشتر» در پنجره */
.zz-update.is-clamped .zz-update-content{max-height:7.2rem;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 62%,transparent);mask-image:linear-gradient(to bottom,#000 62%,transparent)}
/* پنجرهٔ «آپدیتِ کامل» (dialog بومیِ مرورگر: Esc، تمرکز و پس‌زمینه با خودش) */
.zz-update-dialog{width:min(34rem,calc(100vw - 2rem));max-height:min(80vh,40rem);padding:0;margin:auto;border:1px solid var(--border);border-radius:1rem;background:var(--card);color:var(--foreground);box-shadow:var(--zz-shadow-pop);overflow:hidden}
.zz-update-dialog[open]{display:flex;flex-direction:column}
/* مرورگرِ بی <dialog> (اسکریپت آن‌جا کاری نمی‌کند): پنجرهٔ بسته دیده نشود */
.zz-update-dialog:not([open]){display:none}
/* تا پنجره باز است صفحهٔ پشتش اسکرول نخورد؛ جای نوارِ اسکرول نگه داشته می‌شود تا صفحه با بازشدنِ پنجره نپرد */
html:has(.zz-update-dialog[open]){overflow:hidden;scrollbar-gutter:stable}
.zz-update-dialog-body:focus{outline:none}
.zz-update-dialog-body:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.zz-update-dialog::backdrop{background:var(--zz-overlay)}
.zz-update-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--border);flex:none}
.zz-update-dialog-head h3{font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-update-dialog-close{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.5rem;color:var(--secondary-foreground);background:none;border:0;cursor:pointer}
.zz-update-dialog-close:hover{background:var(--zz-hover);color:var(--mono)}
.zz-update-dialog-body{padding:1.1rem 1.25rem 1.35rem;overflow-y:auto;min-height:0;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--zz-line-strong) transparent}
.zz-update-dialog-body .zz-update-title{font-size:var(--text-lg)}
.zz-update-dialog-body .zz-update-body,.zz-update-dialog-body .zz-update-items{font-size:var(--text-sm);line-height:2}
.zz-update-dialog-body .zz-update-link{margin-top:.9rem;font-size:var(--text-sm)}
/* گوشی: «مشاهده» و «بیشتر» تنها راهِ بازکردنِ آپدیت‌اند — جای انگشت (۴۴px، مثلِ .kt-btn در همین فایل) */
@media (max-width:640px){.zz-update-link,.zz-update-more{min-height:44px}.zz-update-dialog-close{width:2.75rem;height:2.75rem}}
@media (min-width:1024px){.zz-dash-top{gap:1.875rem}}
@media (min-width:1280px){
    .zz-dash-top--split{grid-template-columns:minmax(0,1fr) clamp(20rem,22%,26rem)}
    /* ردیفِ اول: کارها و کانال کنارِ آپدیت‌ها؛ «آپلودها» تمام‌عرض در ردیفِ دوم (۲۰۲۶-۱۰-۱۶) — در گوشی ترتیبِ DOM می‌ماند */
    .zz-dash-top--split > .zz-dash-top-main{grid-column:1;grid-row:1}
    .zz-dash-top--split > .zz-updates-col{grid-column:2;grid-row:1}
    .zz-dash-top--split > [data-zz-dash-uploads]{grid-column:1 / -1;grid-row:2}
    /* ستونِ اصلیِ کوتاه‌تر از حداقلِ کارتِ آپدیت‌ها (بی «کارهای شما»): کارتِ آخرش تا پایین می‌آید تا لبه‌ها هم‌تراز باشند */
    .zz-dash-top--split .zz-dash-top-main > .kt-card:last-child{flex:1 1 auto}
    .zz-dash-top--split .zz-updates-col{position:relative;min-height:20rem}
    .zz-dash-top--split .zz-updates{position:absolute;inset:0}
    .zz-dash-top--split .zz-updates-list{flex:1 1 auto;min-height:0;max-height:none}
    /* کاربرِ بی کانال: کارتِ «شروع» تنها کارتِ ستونِ اصلی است — هم‌قدِ کارتِ آپدیت‌ها، متن وسطِ آن (۲۰۲۶-۱۰-۱۳) */
    .zz-dash-top--split [data-zz-dash-start]:only-child{flex:1 1 auto;display:flex;flex-direction:column}
    .zz-dash-top--split [data-zz-dash-start]:only-child > .kt-card-content{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center}
}
/* فرمِ ادمینِ «آپدیت‌های پلت»: هر مورد یک خانه + «بالا» / «پایین» / «حذف» (admin/updates/partials/fields.blade.php).
   - دکمهٔ لبه (بالای اولی، پایینِ آخری) aria-disabled است، نه disabled: تمرکزِ صفحه‌کلید رویش می‌ماند. باندل برای
     .kt-btn[aria-disabled] چیزی ندارد
   - «حذف» تأیید نمی‌خواهد و متنِ خانه را می‌برد: از دو دکمهٔ جابه‌جایی فاصله می‌گیرد
   - ردیفی که جابه‌جا شد یک لحظه پررنگ می‌شود (is-moved) */
.zz-update-item-row>.kt-btn[aria-disabled="true"]{opacity:.4;cursor:default;pointer-events:none}
.zz-update-item-row>[data-zz-item-remove]{margin-inline-start:.5rem}
.zz-update-item-row>input{transition:border-color .2s,box-shadow .2s}
.zz-update-item-row.is-moved>input{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in oklab,var(--primary) 28%,transparent)}
/* گوشی: سه دکمه کنارِ خانه جای نوشتن را می‌گرفتند (۱۳۷px از ۲۷۰) — خانه یک خطِ کامل می‌گیرد و دکمه‌های همان مورد
   زیرش می‌آیند؛ دو دکمهٔ جابه‌جایی ۴۴×۴۴ و «حذف» در سرِ دیگرِ خط */
@media (max-width:640px){
    .zz-update-item-row{flex-wrap:wrap;margin-bottom:.5rem}
    .zz-update-item-row>input{flex:1 0 100%}
    .zz-update-item-row>.kt-btn-icon{width:44px}
    .zz-update-item-row>[data-zz-item-remove]{margin-inline-start:auto}
}

/* پیام‌های پنلِ ادمین (kt-alert-outline در layouts/admin-layout و صفحهٔ «صورتحساب‌ها»): متن و حاشیه هم‌رنگ (سبز / قرمز / زرد)،
   بی پس‌زمینهٔ پُر — سعید، ۲۰۲۶-۱۰-۰۶: «تکست و بردر سبز بهتره». حاشیه از رنگِ خودِ متن ساخته می‌شود. */
.zz-admin .kt-alert.kt-alert-outline.kt-alert-success,
.zz-admin .kt-alert.kt-alert-outline.kt-alert-destructive,
.zz-admin .kt-alert.kt-alert-outline.kt-alert-warning{border-color:color-mix(in oklab,currentColor 55%,transparent)}

/* ===== «صورتحساب‌ها» ِ ادمین (admin/statements/index و month، ۲۰۲۶-۱۰-۰۶): همان جدولِ صفحه‌های دیگر؛ فقط ردیفِ بازشوی جزئیات
   زمینهٔ کم‌رنگِ خودش را دارد تا از ردیف‌های داده جدا دیده شود ===== */
/* بجِ outline: همان بجِ ملایمِ سراسری (۲۰۲۶-۱۰-۱۴: وصله‌های رنگیِ تمِ تیرهٔ قدیم برداشته شد) */
.zz-stmt-table td{vertical-align:middle}
/* مشاوره‌ها — درختِ «سرویس‌ها و دسته‌ها» و کشیدن و رها کردن (۲۰۲۶-۱۰-۲۱، admin/consultations/settings/services و partials/dnd):
   هر دستهٔ اصلی یک قابِ جدا، زیردسته تو رفته با خطِ کنارش، و ردیفی که کشیده می‌شود سایه و زمینهٔ برند می‌گیرد */
.zz-ctree ol{list-style:none;margin:0;padding:0}
.zz-ctree,.zz-ctree-cats{display:flex;flex-direction:column;gap:.75rem}
.zz-ctree-cats>.zz-ctree-cat,.zz-ctree-loose{border:1px solid var(--border);border-radius:.75rem;background:var(--card);overflow:hidden}
.zz-ctree-row{display:flex;align-items:center;gap:.5rem .75rem;flex-wrap:wrap;padding:.625rem .875rem;min-height:3.25rem}
.zz-ctree-catrow{background:var(--zz-surface-2)}
.zz-ctree-cat.is-sub>.zz-ctree-catrow{background:transparent}
.zz-ctree-head{min-height:2.75rem;background:var(--zz-surface-2)}
.zz-ctree-svcs>.zz-ctree-svc,.zz-ctree-subs>.zz-ctree-cat{border-top:1px solid var(--border)}
.zz-ctree-subs>.zz-ctree-cat{margin-inline-start:1.5rem;border-inline-start:2px solid var(--border)}
.zz-ctree-cat.is-sub .zz-ctree-svcs>.zz-ctree-svc{padding-inline-start:.5rem}
.zz-ctree-main{flex:1 1 14rem;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.125rem .5rem}
.zz-ctree-main .block{flex-basis:100%}
.zz-ctree-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-inline-start:auto}
.zz-ctree-warn{color:var(--zz-warning)}
.zz-ctree [data-zz-dnd-item]{scroll-margin-top:96px;background:var(--card);transition:background-color .25s,box-shadow .15s}
.zz-ctree [data-zz-dnd-item].is-moved>.zz-ctree-row{background:var(--zz-brand-soft)}
.zz-ctree [data-zz-dnd-item].is-dragging{position:relative;z-index:2;box-shadow:var(--zz-shadow-pop);outline:2px solid var(--zz-brand-line)}
.zz-ctree [data-zz-dnd-item].is-dragging>.zz-ctree-row{background:var(--zz-brand-soft)}
.zz-dnd-handle{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:.5rem;
    color:var(--secondary-foreground);cursor:grab;touch-action:none;border:0;background:transparent}
.zz-dnd-handle:hover{background:var(--zz-hover);color:var(--foreground)}
.zz-dnd-handle:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-dnd-handle .ki-filled{font-size:1.125rem}
html.zz-dnd-active,html.zz-dnd-active *{cursor:grabbing !important;user-select:none !important;-webkit-user-select:none !important}
/* ساختنِ سرویس قدم‌به‌قدم (۲۰۲۶-۱۰-۲۱، admin/consultations/services/wizard): با جاوااسکریپت فقط گامِ فعلی دیده می‌شود؛ نوارِ گام‌ها
   شماره، گامِ گذشته و گامِ فعلی را نشان می‌دهد، و گزینه‌های دسته کارت‌های کوچکِ قابلِ کلیک‌اند (زیردسته تو رفته) */
.zz-wiz.is-wizard [data-zz-wiz-step]:not(.is-current){display:none}
.zz-wiz-steps{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;list-style:none;margin:0;padding:0}
.zz-wiz-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .125rem;border:0;background:transparent;color:var(--secondary-foreground);font-weight:500;cursor:pointer}
.zz-wiz-tab:disabled{cursor:default;opacity:.55}
.zz-wiz-num{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:999px;border:1px solid var(--border);font-size:var(--text-xs)}
.zz-wiz-tab.is-done .zz-wiz-num{border-color:var(--zz-brand-line);color:var(--zz-brand-text)}
.zz-wiz-tab.is-current{color:var(--foreground)}
.zz-wiz-tab.is-current .zz-wiz-num{background:var(--zz-brand);border-color:var(--zz-brand);color:var(--primary-foreground)}
.zz-wiz-choices{display:flex;flex-direction:column;gap:.5rem;max-width:36rem}
.zz-wiz-choice{display:flex;align-items:center;gap:.625rem;padding:.625rem .875rem;border:1px solid var(--border);border-radius:.625rem;cursor:pointer;font-size:var(--text-2sm)}
.zz-wiz-choice:hover{background:var(--zz-hover)}
.zz-wiz-choice:has(input:checked){border-color:var(--zz-brand-line);background:var(--zz-brand-soft)}
.zz-wiz-choice.is-sub{margin-inline-start:1.5rem}
/* گوشی: دستگیره کنارِ عنوان می‌ماند و دکمه‌ها خطِ زیرش، هم‌ترازِ عنوان */
@media (max-width:639.98px){
  .zz-ctree-row{padding:.625rem .625rem;gap:.5rem}
  .zz-ctree-main{flex:1 1 0}
  .zz-ctree-actions{flex-basis:100%;margin-inline-start:2.5rem}
  .zz-ctree-subs>.zz-ctree-cat{margin-inline-start:.75rem}
}
.zz-stmt-detail>td{background:var(--zz-surface-2)}
/* آخرین ردیفِ داده: ردیفِ بستهٔ جزئیات «آخرین فرزند» ِ tbody است، پس باندل خطِ زیرِ ردیفِ داده را برنمی‌دارد و با خطِ بالای فوتر دوتا می‌شود */
.zz-stmt-table tbody tr:has(+ tr.zz-stmt-detail[hidden]:last-child){border-bottom-width:0}
/* سه ستونِ حساب‌شدنی (کارمزد، خدمات، خالص) از ۱۶۰۰px؛ زیرِ آن در جزئیاتِ همان ردیف‌اند — جدول در لپ‌تاپ بی اسکرولِ افقی جا شود */
.zz-stmt-table .zz-c-extra{display:none}
@media (min-width:1600px){.zz-stmt-table .zz-c-extra{display:table-cell}}
/* جدول‌های فهرستِ ادمین روی گوشی (zz-stmt-m؛ صورتحساب‌ها، درآمدِ کانال‌ها، مشاوره‌ها، تبلیغات، فروشگاه — تمِ روشن و تیره ۲۰۲۶-۱۰-۱۴):
   زیرِ ۶۴۰px هر ردیف یک بلوک است، مثلِ فهرستِ MCN و قراردادها — خانهٔ اول یک خطِ کامل، بقیهٔ خانه‌ها کنارِ هم زیرش با نامِ ستونشان
   (data-zz-th) و دکمهٔ ردیف در سرِ دیگرِ خط؛ ستون‌های کم‌اهمیت (zz-c-sm) پنهان و خلاصه‌شان زیرِ عنوان (zz-c-xs). جدول دیگر افقی
   اسکرول نمی‌خورد و وضعیت و دکمه در صفحهٔ اول‌اند. */
.zz-stmt-m .zz-c-xs{display:none}
@media (max-width:639.98px){
  .zz-stmt-m,.zz-stmt-m>tbody{display:block;width:100%}
  .zz-stmt-m>thead{display:none}
  .zz-stmt-m>tbody>tr{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.625rem 1.25rem;padding:.875rem 1.25rem}
  .zz-stmt-m>tbody>tr[hidden]{display:none}
  .zz-stmt-m>tbody>tr>td{display:block;padding:0 !important;min-width:0}
  .zz-stmt-m>tbody>tr>td:first-child,.zz-stmt-m>tbody>tr>td[colspan]{flex:1 1 100%}
  .zz-stmt-m>tbody>tr>td:last-child:not(:first-child){margin-inline-start:auto}
  .zz-stmt-m>tbody>tr>td.zz-c-sm,.zz-stmt-m>tbody>tr>td.zz-col-wide,.zz-stmt-m>tbody>tr>td.zz-c-extra{display:none}
  .zz-stmt-m>tbody>tr>td[data-zz-th]::before{content:attr(data-zz-th);display:block;margin-bottom:2px;font-size:var(--text-xs);font-weight:400;color:var(--secondary-foreground);white-space:nowrap}
  .zz-stmt-m .zz-c-xs{display:block}
  /* ردیفِ جزئیات: زمینه روی خودِ ردیف (خانه دیگر پدینگ ندارد) */
  .zz-stmt-m>tbody>tr.zz-stmt-detail{background:var(--zz-surface-2)}
}
/* کاشی‌های صفحهٔ یک ماه مبلغ دارند (نه شمار): یک ستون در گوشی، دو تا از ۴۸۰px، چهار تا از ۱۲۸۰px — عدد وسطش نشکند */
.zz-stmt-tiles{grid-template-columns:minmax(0,1fr)}
@media (min-width:480px){.zz-stmt-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1280px){.zz-stmt-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* فهرستِ صورتحساب‌های کاربر (statements/index): جدول بی اسکرولِ افقی جا شود و «مشاهده» همیشه دیده شود — «کانال» و «تاریخِ تسویه»
   از ۶۴۰px ستون‌اند (zz-c-sm)؛ زیرِ آن همان‌ها خطِ دومِ خانهٔ ماه و مبلغ‌اند (zz-c-xs) و دکمه فقط آیکن است */
.zz-ust-table td{vertical-align:middle}
.zz-ust-table .zz-c-sm{display:none}
.zz-ust-table .zz-c-xs{display:block}
@media (min-width:640px){.zz-ust-table .zz-c-sm{display:table-cell}.zz-ust-table .zz-c-xs{display:none}}
@media (max-width:639px){.zz-ust-table .zz-ust-label{display:none}}
/* ===== یک صورتحسابِ کاربر (statements/show، طراحیِ دوم ۲۰۲۶-۱۰-۰۶؛ سعید: «طراحی این خیلی خام هست. بهترش کن») =====
   سرصفحه (ماه + مبلغِ تسویهٔ بزرگ)، «ریزِ محاسبه» به شکلِ دفتر، و ستونِ کناری («تقسیمِ درآمد» و «مشخصات»). رنگ‌ها همان پنلِ کاربرند:
   بنفشِ برند، سبز برای «تسویه‌شده» و «خالص». عدد همیشه dir=ltr و tabular. نسخهٔ چاپ در خودِ صفحه است (statements/show، @section styles)، نه این‌جا: این فایل روی همهٔ
   صفحه‌های هر دو پنل بار می‌شود و «body * پنهان» در چاپ، چاپِ هر صفحهٔ دیگری را سفید می‌کرد */
/* پهنا (۲۰۲۶-۱۰-۰۹، سعید: «عرض صفحه درست نیست و باکسا افتادن گوشه»): مثلِ بقیهٔ صفحه‌های پنل تمامِ پهنای محتوا را می‌گیرد — سقفِ
   قبلیِ ۱۱۸۰ وسط‌چین نبود و در مانیتورِ پهن همه‌چیز را به گوشهٔ راست می‌چسباند. فقط در مانیتورِ خیلی پهن سقف دارد، و آن‌جا وسط می‌نشیند */
.zz-ustmt-page{display:flex;flex-direction:column;gap:20px;min-width:0;width:100%;max-width:1560px;margin-inline:auto}
.zz-ustmt{display:flex;flex-direction:column;gap:20px;min-width:0}
.zz-ustmt-hero{position:relative;overflow:hidden;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:22px 40px;
    padding:28px 30px;border-radius:18px;border:1px solid var(--zz-brand-line);box-shadow:var(--zz-shadow);
    background:linear-gradient(135deg,color-mix(in oklab,var(--primary) 10%,var(--card)),var(--card) 62%)}
.zz-ustmt-hero>*{position:relative;z-index:1;min-width:0}
.zz-ustmt-head{display:flex;flex-direction:column;gap:4px;flex:1 1 220px}
.zz-ustmt-eyebrow{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ustmt-period{margin:0;font-size:var(--text-2xl);font-weight:900;line-height:1.25;color:var(--mono)}
.zz-ustmt-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ustmt-meta>.font-mono{padding:2px 9px;border-radius:999px;border:1px solid var(--border);background:var(--zz-surface-3);font-size:var(--text-xs);color:var(--foreground)}
.zz-ustmt-pay{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.zz-ustmt-amount{display:flex;align-items:baseline;gap:8px}
.zz-ustmt-amount .n{font-size:var(--text-2xl);font-weight:900;line-height:1.1;color:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.zz-ustmt-amount .c{font-size:var(--text-base);color:var(--secondary-foreground)}
.zz-ustmt-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:var(--text-xs);
    color:var(--zz-success);background:var(--zz-success-soft);border:1px solid var(--zz-success-line)}
.zz-ustmt-cols{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
@media (min-width:1100px){.zz-ustmt-cols{grid-template-columns:minmax(0,1.75fr) minmax(0,1fr)}}
.zz-ustmt-side{display:flex;flex-direction:column;gap:20px;min-width:0}
/* دفتر: هر ردیف «شرح … مبلغ» */
.zz-ustmt-ledger{display:flex;flex-direction:column}
.zz-ustmt-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--border);font-size:var(--text-2sm)}
.zz-ustmt-row .k{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0;color:var(--foreground)}
.zz-ustmt-row .v{white-space:nowrap;color:var(--mono);font-variant-numeric:tabular-nums}
.zz-ustmt-row--group{border-bottom:0;padding-bottom:6px}
.zz-ustmt-items{display:flex;flex-direction:column;margin-inline-start:4px;padding:2px 0 12px;padding-inline-start:14px;
    border-inline-start:2px solid var(--zz-line-strong);border-bottom:1px solid var(--border)}
.zz-ustmt-row--sub{padding:6px 0;border-bottom:0;font-size:var(--text-xs)}
.zz-ustmt-row--sub .k,.zz-ustmt-row--sub .v{color:var(--secondary-foreground)}
.zz-ustmt-row--sub .v.is-credit{color:var(--zz-success)}
.zz-ustmt-row--total{font-size:var(--text-sm);font-weight:800}
.zz-ustmt-row--total .k,.zz-ustmt-row--total .v{color:var(--mono)}
.zz-ustmt-ledger>.zz-ustmt-row:last-child{border-bottom:0}
/* کسرها آرام‌اند (۲۰۲۶-۱۰-۰۹، سعید: «کارمزد ما زیادی تو چشمه و ممکنه حس بد بگیره مشتری»): همهٔ رقم‌ها می‌مانند، ولی کارمزد دیگر نه
   برچسبِ بنفش دارد و نه رنگِ برند — درصدش متنِ سادهٔ خاکستری است و مبلغِ کسرها کم‌رنگ؛ چشم از ناخالص به خالص و مبلغِ تسویه می‌رود.
   هرگز دوباره کارمزد را با رنگ، برچسب یا وزنِ بیشتر از خالص نشان ندهید */
.zz-ustmt-row--quiet .v{color:var(--secondary-foreground)}
.zz-ustmt-pct{font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.zz-ustmt-final{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px;padding:16px 18px;border-radius:14px;
    background:var(--zz-success-soft);border:1px solid var(--zz-success-line)}
.zz-ustmt-final .k{font-size:var(--text-2sm);font-weight:700;color:var(--zz-success)}
.zz-ustmt-final .v{font-size:var(--text-xl);font-weight:900;color:var(--mono);white-space:nowrap;font-variant-numeric:tabular-nums}
/* تقسیمِ درآمد: خالص به رنگِ وضعیتِ «موفق»، کارمزد و خدمات دو خاکستری (هرگز رنگِ برند برای کارمزد) */
.zz-ustmt-bar{display:flex;gap:3px;height:12px;border-radius:999px;overflow:hidden}
.zz-ustmt-bar>span{flex:0 1 0%;min-width:6px;border-radius:3px}
.zz-ustmt-bar .is-net,.zz-ustmt-dot.is-net{background:var(--zz-success)}
/* دو خاکستریِ آرام اما دیدنی (خدمات با ۲۸٪ روی کارت ~۱٫۳:۱ بود و تقریباً ناپدید می‌شد)؛ خدمات روشن‌تر از کارمزد می‌ماند */
.zz-ustmt-bar .is-fee,.zz-ustmt-dot.is-fee{background:color-mix(in oklab,var(--muted-foreground) 70%,transparent)}
.zz-ustmt-bar .is-svc,.zz-ustmt-dot.is-svc{background:color-mix(in oklab,var(--muted-foreground) 42%,transparent)}
.zz-ustmt-legend{display:flex;flex-direction:column;gap:11px;margin-top:18px}
.zz-ustmt-legend>div{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--text-xs)}
.zz-ustmt-legend .k{display:inline-flex;align-items:center;gap:8px;color:var(--secondary-foreground)}
.zz-ustmt-legend .v{display:inline-flex;align-items:baseline;gap:10px;white-space:nowrap;font-variant-numeric:tabular-nums}
.zz-ustmt-legend .v .a{color:var(--secondary-foreground);font-size:var(--text-xs)}
.zz-ustmt-legend .v .p{min-width:2.9em;text-align:end;color:var(--secondary-foreground);font-weight:500}
/* فقط سهمِ خودِ مشتری پررنگ است */
.zz-ustmt-legend>.is-net .k{color:var(--mono);font-weight:700}
.zz-ustmt-legend>.is-net .v .a{color:var(--foreground)}
.zz-ustmt-legend>.is-net .v .p{color:var(--zz-success);font-weight:800}
.zz-ustmt-dot{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
/* ماه‌های این کانال: هر ردیف یک پیوند؛ ماهِ همین صفحه پررنگ */
.zz-ustmt-months{display:flex;flex-direction:column;padding:6px 8px 10px}
.zz-ustmt-months>a{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 12px;border-radius:10px;font-size:var(--text-xs);
    color:var(--foreground);transition:background .15s}
.zz-ustmt-months>a:hover{background:var(--zz-hover)}
.zz-ustmt-months>a .v{color:var(--secondary-foreground);white-space:nowrap;font-variant-numeric:tabular-nums}
.zz-ustmt-months>a.is-current{background:var(--zz-brand-soft);color:var(--mono);font-weight:700}
.zz-ustmt-months>a.is-current .v{color:var(--foreground)}
.zz-ustmt-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
@media (max-width:640px){
    .zz-ustmt-hero{padding:22px 18px;align-items:flex-start}
    .zz-ustmt-period{font-size:var(--text-2xl)}
    .zz-ustmt-pay{align-items:flex-start;width:100%}
    .zz-ustmt-amount .n{font-size:var(--text-2xl)}
    .zz-ustmt-final .v{font-size:var(--text-base)}
}

/* تبلیغاتِ یوتیوب، پنلِ کاربر (۲۰۲۶-۱۰-۱۴، §6.20): تصویرِ کوچکِ ویدیو و جدولِ کمپین‌ها («کمپینِ تازه» بلوکِ zz-anw ِ خودش را
   پایینِ همین فایل دارد) — زیرِ ۶۴۰px ستونِ «بسته» پنهان و همان زیرِ عنوانِ ویدیو (zz-c-sm / zz-c-xs). */
/* عنوانِ ویدیو در فهرستِ کمپین‌های ادمین: یک خط با سه‌نقطه (۲۰۲۶-۱۰-۱۴) */
.zz-ads-vtitle{display:block;max-width:18rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* گوشی: جدول آن‌جا بلوک‌بلوک است و پدرش grid؛ یک خطِ بلند پهنای جدول را از صفحه بیرون می‌کشید — دو خط و سه‌نقطه */
@media (max-width:639.98px){.zz-ads-vtitle{max-width:100%;white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow-wrap:anywhere}}
.zz-ads-thumb{width:96px;aspect-ratio:16/9;object-fit:cover;border-radius:.4rem;flex-shrink:0;background:var(--muted)}
.zz-ads-table td{vertical-align:middle}
.zz-ads-table .zz-c-sm{display:none}
.zz-ads-table .zz-c-xs{display:block}
@media (min-width:640px){.zz-ads-table .zz-c-sm{display:table-cell}.zz-ads-table .zz-c-xs{display:none}}
@media (max-width:639px){.zz-ads-table .zz-ads-thumb{display:none}.zz-ads-thumb{width:72px}}
/* وضعیتِ گوگلِ کمپین (قدمِ دوم، ۲۰۲۶-۱۰-۱۴): «تأییدشده؛ به‌زودی در گوگل ساخته می‌شود» از ستونِ ۱۱rem بلندتر است — نشان می‌شکند، بیرون نمی‌زند */
.zz-ads-gbadge{white-space:normal;height:auto;min-height:calc(var(--spacing) * 5);padding-block:.2rem;line-height:1.35;text-align:start}
/* چهار عددِ آمار: روی گوشی دوتادوتا (نه چهار کاشیِ بلندِ پشتِ هم)، از ۱۱۰۰px یک ردیف */
.zz-kpis.zz-ads-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1100px){.zz-kpis.zz-ads-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:479.98px){.zz-ads-kpis .zz-kpi{padding:14px}.zz-ads-kpis .zz-kpi .val{font-size:var(--text-xl)}}
/* «؟» ِ «بازدید» و «کلیک» کنارِ برچسب (۲۰۲۶-۱۰-۲۸)؛ توضیح زیرِ کاشی‌ها */
.zz-ads-lbl{display:flex;align-items:center;gap:6px}
.zz-ads-lbl .zz-decl-help{width:1.25rem;height:1.25rem}
/* جدولِ روزهای آمار: چهار ستونِ باریک، روی ۳۷۵px بی اسکرولِ افقی */
.zz-ads-days th,.zz-ads-days td{padding-inline:.6rem;font-size:var(--text-xs)}
/* جاهای پخشِ تبلیغ (۲۰۲۶-۱۰-۱۴، ads/partials/placements): نامِ لاتین در <bdi> و توضیحِ فارسی جدا */
.zz-ad-places{display:inline-flex;flex-wrap:wrap;gap:.4rem}
.zz-ad-place{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .6rem;border:1px solid var(--border);border-radius:999px;font-size:var(--text-xs);line-height:1.6;background:var(--muted);white-space:nowrap}
.zz-ad-place i{color:var(--primary);font-size:.85rem}
.zz-ad-place-list{display:flex;flex-direction:column;gap:.45rem;font-size:var(--text-xs);line-height:1.6}
.zz-ad-place-list li{display:flex;align-items:flex-start;gap:.5rem}
.zz-ad-place-list i{color:var(--primary);font-size:1rem;margin-top:.15rem}
.zz-ad-place-grid{display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:768px){.zz-ad-place-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.zz-ad-place-card{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:.75rem;cursor:pointer;transition:border-color .15s,background-color .15s}
.zz-ad-place-card:hover{border-color:color-mix(in oklab,var(--primary) 45%,var(--border))}
.zz-ad-place-card:has(input:checked){border-color:var(--primary);background:color-mix(in oklab,var(--primary) 8%,transparent)}
.zz-ad-place-card:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.zz-ad-place-card .kt-checkbox{margin-top:.15rem;flex-shrink:0}
.zz-ad-place-card i{font-size:1.35rem;color:var(--primary);flex-shrink:0}

/* «سرویس زیگ‌زاگ نتورک»، پنلِ کاربر (۲۰۲۶-۱۰-۱۵، §6.21): کارتِ هر اشتراک (پایان، مصرف، لینک‌های اتصال با کپی و QR) و کارتِ
   پلن‌ها. فقط توکن‌ها (تمِ روشن و تیره)؛ روی ۳۷۵px بی اسکرولِ افقی: لینکِ بلند یک خط با سه‌نقطه و دکمه‌ها زیرش. QR خودش سفید و
   سیاه است (کد باید روی زمینهٔ روشن خوانده شود)، در هر دو تم. */
.zz-ns-accounts{display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr)}
/* اشتراک‌ها زیرِ هم، «راهنمای اتصال» کنارشان (۲۰۲۶-۱۰-۱۶) — پیش از آن اشتراک‌ها دوتایی کنارِ هم بودند و یکی نیمهٔ صفحه را خالی می‌گذاشت */
.zz-ns-mine{display:grid;gap:1.25rem;grid-template-columns:minmax(0,1fr);align-items:start}
@media (min-width:1280px){.zz-ns-mine{grid-template-columns:minmax(0,1fr) minmax(18rem,24rem)}}
.zz-ns-steps{display:flex;flex-direction:column;gap:1rem;margin:0;padding:0;list-style:none}
.zz-ns-steps li{display:flex;gap:.75rem;align-items:flex-start}
.zz-ns-step-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;border-radius:999px;background:var(--zz-brand-soft);color:var(--zz-brand-text);font-size:var(--text-xs);font-weight:600}
.zz-ns-step-title{font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.8}
.zz-ns-step-text{font-size:var(--text-xs);line-height:1.9;color:var(--secondary-foreground)}
.zz-ns-guide-help a{color:var(--zz-brand-text)}
.zz-ns-guide-help a:hover{text-decoration:underline}
.zz-ns-apps{display:flex;flex-direction:column;gap:.5rem;margin-top:.35rem}
.zz-ns-app{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ns-app-os{min-width:5.5rem}
.zz-ns-app-name{color:var(--mono);font-weight:600}
.zz-ns-app-links{display:inline-flex;flex-wrap:wrap;gap:.4rem}
.zz-ns-app-links a{display:inline-flex;align-items:center;padding:.15rem .6rem;border:1px solid var(--zz-brand-line);border-radius:999px;color:var(--zz-brand-text);font-size:var(--text-xs);line-height:1.7}
.zz-ns-app-links a:hover{background:var(--zz-brand-soft)}
.zz-ns-guide-help{margin-top:1.1rem;padding-top:.9rem;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ns-facts{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.zz-ns-facts>div{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .875rem;border-radius:.6rem;background:var(--zz-surface-2);border:1px solid var(--border);min-width:0}
.zz-ns-fact-label{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ns-fact-value{font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-ns-bar{height:.5rem;border-radius:999px;background:var(--zz-surface-3);overflow:hidden}
.zz-ns-bar>span{display:block;height:100%;border-radius:inherit;background:var(--primary)}
.zz-ns-link{display:flex;flex-direction:column;gap:.6rem;padding:.75rem .875rem;border:1px solid var(--border);border-radius:.6rem;background:var(--zz-surface-2);min-width:0}
.zz-ns-link-row{display:grid;gap:.5rem .75rem;grid-template-columns:minmax(0,1fr);align-items:center}
@media (min-width:768px){.zz-ns-link-row{grid-template-columns:auto minmax(0,1fr) auto}}
.zz-ns-link-name{font-size:var(--text-xs);font-weight:600;color:var(--mono);white-space:nowrap}
.zz-ns-link-text{display:block;min-width:0;padding:.35rem .6rem;border-radius:.4rem;background:var(--zz-surface-3);color:var(--foreground);font-size:var(--text-xs);line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.zz-ns-link-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.zz-ns-qr{display:flex;justify-content:center}
.zz-ns-qr[hidden]{display:none}
.zz-ns-qr>img{width:220px;max-width:100%;height:auto;border-radius:.5rem;border:1px solid var(--border)}
/* کارت‌های پلن (۲۰۲۶-۱۰-۱۵، سعید: «کارت های بسته ها رو قشنگ تر کن. خیلی ساده ان.»): همان زبانِ کارت‌های فروشگاه — گوشهٔ ۱۶، نامِ پلن
   با نشانِ «به‌صرفه‌ترین»، قیمتِ درشت، قیمتِ واحد و صرفه‌جویی، ویژگی‌ها با تیک، دکمه‌های تمام‌عرض در پایین. فقط توکن‌ها */
.zz-ns-family-head{display:flex;align-items:center;gap:.875rem}
.zz-ns-family-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:.8rem;
    background:var(--zz-brand-soft);border:1px solid var(--zz-brand-line);color:var(--zz-brand-text);font-size:1.35rem}
.zz-ns-plans{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));align-items:stretch}
.zz-ns-plan{position:relative;display:flex;flex-direction:column;height:100%;border-radius:16px;box-shadow:var(--zz-shadow);transition:border-color .15s}
.zz-ns-plan:hover{border-color:var(--zz-line-strong)}
.zz-ns-plan.is-best{border-color:var(--zz-brand-line);background:color-mix(in oklab,var(--primary) 5%,var(--card))}
.zz-ns-plan>.kt-card-content{flex:1 1 auto;display:flex;flex-direction:column;gap:1.1rem;padding:1.5rem}
.zz-ns-plan-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;min-height:1.75rem}
.zz-ns-plan-name{font-size:var(--text-base);font-weight:700;color:var(--mono)}
.zz-ns-plan-tag{display:inline-flex;align-items:center;gap:.3rem;font-size:var(--text-xs);font-weight:700;padding:.2rem .65rem;border-radius:999px;
    color:var(--zz-brand-text);background:var(--zz-brand-soft);border:1px solid var(--zz-brand-line)}
.zz-ns-price{display:flex;flex-direction:column;gap:.45rem;min-width:0}
.zz-ns-amount{display:flex;align-items:baseline;gap:.45rem}
.zz-ns-amount .n{font-size:var(--text-2xl);font-weight:800;line-height:1;color:var(--mono)}
.zz-ns-amount .c{font-size:var(--text-base);font-weight:500;color:var(--secondary-foreground)}
.zz-ns-alt{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .75rem;font-size:var(--text-xs);color:var(--secondary-foreground);min-height:1.35rem}
.zz-ns-save{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:700;padding:.12rem .55rem;border-radius:999px;
    color:var(--zz-success);background:var(--zz-success-soft);border:1px solid var(--zz-success-line)}
.zz-ns-feats{display:flex;flex-direction:column;gap:.6rem;padding-top:1.1rem;border-top:1px dashed var(--border);font-size:var(--text-2sm);color:var(--foreground)}
.zz-ns-feats li{display:flex;align-items:center;gap:.6rem}
.zz-ns-tick{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1.3rem;height:1.3rem;border-radius:999px;font-size:var(--text-xs);
    background:var(--zz-success-soft);color:var(--zz-success)}
/* mt-auto در بستهٔ Metronic نیست */
.zz-ns-plan-foot{margin-top:auto;display:flex;flex-direction:column;gap:.5rem}
.zz-ns-plan-foot .kt-btn{width:100%;justify-content:center}
/* انتخاب‌های صفحهٔ تأیید (این خرید / روشِ پرداخت): هر گزینه یک ردیفِ قاب‌دار، انتخاب‌شده با قابِ برند */
.zz-ns-choice{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .875rem;border:1px solid var(--border);border-radius:.6rem;cursor:pointer;background:var(--card)}
.zz-ns-choice:hover{background:var(--zz-hover)}
.zz-ns-choice:has(input[type=radio]:checked){border-color:var(--zz-brand-line);background:var(--zz-brand-soft)}
.zz-ns-choice>input[type=radio]{margin-top:.15rem;flex-shrink:0}
.zz-ns-choice>span:nth-of-type(1){flex:1 1 0;min-width:0}
.zz-ns-choice-amount{flex-shrink:0;font-weight:600;color:var(--mono);white-space:nowrap}
.zz-ns-choice.is-disabled{cursor:not-allowed;opacity:.6}
.zz-ns-choice.is-disabled:hover{background:var(--card)}
@media (max-width:480px){.zz-ns-choice{flex-wrap:wrap}.zz-ns-choice-amount{width:100%;padding-inline-start:1.75rem}}
.zz-ns-dl{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:.6rem;overflow:hidden}
.zz-ns-dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem .875rem;border-top:1px solid var(--border)}
.zz-ns-dl>div:first-child{border-top:0}
.zz-ns-dl dt{color:var(--secondary-foreground);flex-shrink:0}
.zz-ns-dl dd{margin:0;text-align:end;color:var(--mono);font-weight:500;min-width:0;overflow-wrap:anywhere}
.zz-ns-dl-total{background:var(--zz-surface-2)}
.zz-ns-dl-total dd{font-weight:700}

/* ── نشانِ دستهٔ مشتری روی آواتارِ خودش (۲۰۲۶-۱۰-۱۶، App\Support\CustomerTier) ───────────────────────────────────
   طرحِ «مدالِ گوشه» (سعید: «طرحِ ۱ (مدالِ گوشه) رو بساز»، جای تاج‌های اول): حلقهٔ فلزیِ دسته دورِ عکس و مدالِ ستاره‌دار در گوشهٔ
   پایین (includs/tier-mark). هر دسته فلزِ خودش (توکن‌های --zz-gold|silver|bronze-* در zz-tokens.css). فقط آواتارِ خودِ بیننده، در
   هدر، منوی پروفایل، /profile و پنجرهٔ یک‌بارهٔ صفحهٔ اصلی. نشانِ همیشگی هیچ‌وقت حرکت نمی‌کند؛ تنها حرکت پنجرهٔ معرفی است و با
   prefers-reduced-motion آن هم نه. --zz-t-cut رنگِ زمینهٔ جایی است که نشان رویش نشسته (برشِ دورِ مدال و حلقه). */
.zz-tier--gold{--zz-t-hi:var(--zz-gold-hi);--zz-t-mid:var(--zz-gold-mid);--zz-t-lo:var(--zz-gold-lo);--zz-t-ink:var(--zz-gold-ink)}
.zz-tier--silver{--zz-t-hi:var(--zz-silver-hi);--zz-t-mid:var(--zz-silver-mid);--zz-t-lo:var(--zz-silver-lo);--zz-t-ink:var(--zz-silver-ink)}
.zz-tier--bronze{--zz-t-hi:var(--zz-bronze-hi);--zz-t-mid:var(--zz-bronze-mid);--zz-t-lo:var(--zz-bronze-lo);--zz-t-ink:var(--zz-bronze-ink)}
.zz-tier--gold,.zz-tier--silver,.zz-tier--bronze{--zz-t-soft:color-mix(in oklab,var(--zz-t-mid) 16%,transparent);--zz-t-line:color-mix(in oklab,var(--zz-t-mid) 45%,transparent);--zz-t-cut:var(--background);--zz-t-metal:conic-gradient(from 210deg,var(--zz-t-lo),var(--zz-t-hi) 18%,var(--zz-t-mid) 34%,var(--zz-t-lo) 52%,var(--zz-t-hi) 72%,var(--zz-t-mid) 88%,var(--zz-t-lo))}
/* مدال: قطر از --zz-m (includs/tier-mark)، فلزِ دسته، لبهٔ تیره‌تر، ستاره به رنگِ روشنِ همان فلز */
.zz-tier-mark{--zz-m:16px;position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;width:var(--zz-m);height:var(--zz-m);border-radius:999px;background:linear-gradient(150deg,var(--zz-t-hi) -20%,var(--zz-t-mid) 38%,var(--zz-t-lo) 100%);box-shadow:0 0 0 calc(var(--zz-m) * .11) var(--zz-t-cut),inset 0 0 0 max(1px,calc(var(--zz-m) * .055)) color-mix(in oklab,var(--zz-t-lo) 55%,transparent)}
.zz-tier-mark > svg{display:block;width:60%;height:60%;fill:var(--zz-t-hi);filter:drop-shadow(0 .5px 0 color-mix(in oklab,var(--zz-t-lo) 80%,transparent))}
/* هدر: همان ۳۶ پیکسلِ آواتار؛ flex (نه inline-flex) تا خطِ متن دکمه را بلندتر نکند */
.zz-tier-av{position:relative;display:flex;flex:none;width:2.25rem;height:2.25rem;border-radius:999px;padding:2px;background:var(--zz-t-metal)}
.zz-tier-av > img,.zz-tier-av > .zz-avatar-initial{width:100%;height:100%;border-radius:999px;border:1.5px solid var(--zz-t-cut);object-fit:cover}
.zz-tier-av > .zz-tier-mark{position:absolute;bottom:-3px;inset-inline-end:-3px;pointer-events:none}
/* منوی پروفایل: مدال روی رنگِ خودِ چیپ نشسته، برش لازم نیست */
.zz-tier-chip{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;margin-top:.15rem;padding-block:.2rem;padding-inline:.45rem .6rem;border-radius:999px;font-size:var(--text-xs);font-weight:600;line-height:1.6;color:var(--zz-t-ink);background:var(--zz-t-soft);box-shadow:inset 0 0 0 1px var(--zz-t-line);--zz-t-cut:transparent}
/* /profile: حلقه دورِ عکسِ ۸۰ پیکسلی و مدال در گوشهٔ پایین — دکمهٔ حذفِ عکس گوشهٔ بالاست */
#zz_avatar.zz-tier-ring{--zz-t-cut:var(--card)}
#zz_avatar.zz-tier-ring::before{content:"";position:absolute;inset:-3px;border-radius:999px;background:var(--zz-t-metal);pointer-events:none}
#zz_avatar.zz-tier-ring > .kt-image-input-placeholder{position:relative;border:2px solid var(--zz-t-cut)}
#zz_avatar.zz-tier-ring > .zz-tier-mark{position:absolute;bottom:-2px;inset-inline-end:-2px;pointer-events:none;z-index:2}
.zz-tier-row{display:inline-flex;align-items:center;gap:.5rem;color:var(--zz-t-ink);font-weight:600;--zz-t-cut:var(--zz-field)}
/* پنجرهٔ یک‌بارهٔ صفحهٔ اصلی */
.zz-tier-reveal{width:min(21rem,calc(100vw - 2rem));padding:0;margin:auto;border:1px solid var(--zz-t-line);border-radius:1.25rem;background:var(--card);color:var(--foreground);box-shadow:var(--zz-shadow-pop);overflow:visible;--zz-t-cut:var(--card)}
.zz-tier-reveal:not([open]){display:none}
.zz-tier-reveal::backdrop{background:var(--zz-overlay)}
.zz-tier-reveal-body{position:relative;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2.2rem 1.5rem 1.4rem;text-align:center}
.zz-tier-reveal-close{position:absolute;top:.6rem;inset-inline-end:.6rem;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:.5rem;border:0;background:none;color:var(--secondary-foreground);cursor:pointer}
.zz-tier-reveal-close:hover{background:var(--zz-hover);color:var(--mono)}
.zz-tier-stage{position:relative;width:5rem;height:5rem;margin-bottom:.35rem}
.zz-tier-stage-ring{position:absolute;inset:0;border-radius:999px;padding:3px;background:var(--zz-t-metal)}
.zz-tier-stage-ring > img,.zz-tier-stage-ring > .zz-avatar-initial{width:100%;height:100%;border-radius:999px;border:2.5px solid var(--zz-t-cut);object-fit:cover;font-size:var(--text-xl)}
.zz-tier-stage > .zz-tier-mark{position:absolute;bottom:-3px;inset-inline-end:-3px}
.zz-tier-reveal-title{font-size:var(--text-lg);font-weight:600;color:var(--mono);line-height:1.8}
.zz-tier-reveal-title b{color:var(--zz-t-ink);font-weight:700}
.zz-tier-reveal-line{font-size:var(--text-xs);line-height:1.9;color:var(--secondary-foreground)}
.zz-tier-reveal .kt-btn{margin-top:.4rem;width:100%;justify-content:center}
@media (prefers-reduced-motion: no-preference){
  .zz-tier-reveal[open] .zz-tier-stage-ring{animation:zz-tier-ring-in .6s cubic-bezier(.2,.8,.2,1) both}
  .zz-tier-reveal[open] .zz-tier-stage > .zz-tier-mark{animation:zz-tier-medal-in .6s cubic-bezier(.3,1.4,.5,1) .45s both}
  .zz-tier-reveal[open] .zz-tier-stage > .zz-tier-mark::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(115deg,transparent 30%,color-mix(in oklab,var(--zz-t-hi) 85%,transparent) 50%,transparent 70%) no-repeat;background-size:260% 100%;animation:zz-tier-shine .9s ease-out 1.1s both}
  .zz-tier-reveal[open] .zz-tier-reveal-title,.zz-tier-reveal[open] .zz-tier-reveal-line{animation:zz-tier-fade .5s ease-out .8s both}
  .zz-tier-av.is-arriving > .zz-tier-mark{animation:zz-tier-land .5s cubic-bezier(.3,1.4,.5,1)}
}
@keyframes zz-tier-ring-in{from{opacity:0;transform:scale(.6) rotate(-90deg)}to{opacity:1;transform:none}}
@keyframes zz-tier-medal-in{from{opacity:0;transform:scale(.2) rotate(-50deg)}to{opacity:1;transform:none}}
@keyframes zz-tier-shine{from{opacity:1;background-position:130% 0}to{opacity:0;background-position:-30% 0}}
@keyframes zz-tier-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes zz-tier-land{from{transform:scale(1.4)}to{transform:none}}
@media (max-width:640px){.zz-tier-reveal .kt-btn{min-height:44px}}

/* ── استودیوی هوشمند (۲۰۲۶-۱۰-۱۷، studio/*) ─────────────────────────────────────────────────────────────
   از همان روز بی‌فرم (مالک: «کل سایت چرا شده فرم؟»): یک خطِ کوچکِ بالای صفحه (کانالِ پنل، سهمِ امروز، شرایط)، تنها جعبهٔ متن با
   دکمه‌هایش، کارتِ «موضوع‌های داغِ این هفته» با «موضوعِ کانال: … — تغییر»، تراشه‌های بعد از نتیجه، پنجرهٔ کوچکِ موافقت (هم در فرمِ
   آپلود)، جدولِ درخواست‌ها (۳۷۵px بی اسکرولِ افقی: zz-c-sm زیرِ ۶۴۰px پنهان، zz-c-xs فقط زیرِ آن)، انتظارِ کارِ باز، متنِ شرایط و
   برچسبِ «ساخته‌شده با هوش مصنوعی». فقط توکن‌ها، هر دو تم. */
.zz-st-line{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1.25rem;margin:0;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-st-line-item{display:inline-flex;align-items:center;gap:.375rem;min-width:0;max-width:100%}
.zz-st-line-item>i{flex:none;color:var(--zz-brand-text);font-size:.95rem}
.zz-st-line a{color:var(--zz-brand-text)}
.zz-st-q{font-size:var(--text-base);font-weight:600;line-height:1.6;color:var(--mono)}
.zz-st-note{min-height:5.5rem;resize:vertical}
.zz-st-start-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.625rem 1rem}
.zz-st-start-btns{display:flex;flex-wrap:wrap;gap:.5rem}
.zz-st-start-btns .kt-btn i{margin-inline-end:.125rem}
.zz-st-hint{display:flex;align-items:center;gap:.375rem;margin:0;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-st-hint>i{flex:none;color:var(--zz-brand-text)}
.zz-st-trends-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}
.zz-st-trends-row .kt-btn i{margin-inline-end:.125rem}
.zz-st-topic{display:flex;flex-direction:column;gap:.375rem;padding-top:.75rem;border-top:1px dashed var(--border)}
.zz-st-topic-line{margin:0;font-size:var(--text-xs);line-height:1.9;overflow-wrap:anywhere}
.zz-st-topic-v{font-weight:500;color:var(--foreground)}
.zz-st-topic-edit{margin-inline-start:.375rem;font-weight:600;color:var(--zz-brand-text)}
.zz-st-topic-edit:hover{text-decoration:underline}
.zz-st-topic-form{display:flex;flex-direction:column;gap:.375rem}
.zz-st-topic-row{display:flex;flex-wrap:wrap;gap:.5rem}
.zz-st-topic-row .kt-input{flex:1 1 14rem;min-width:0}
.zz-st-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;margin-bottom:1rem;padding-bottom:.875rem;border-bottom:1px dashed var(--border)}
.zz-st-chips-k{font-size:var(--text-xs);font-weight:600;color:var(--mono);margin-inline-end:.125rem}
.zz-st-chips-note{flex-basis:100%;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-st-chip-form{display:inline-flex;margin:0}
.zz-st-chip{display:inline-flex;align-items:center;padding:.125rem .75rem;border:1px solid var(--zz-brand-line);border-radius:999px;background:var(--card);
  font:inherit;font-size:var(--text-xs);line-height:1.8;color:var(--zz-brand-text);cursor:pointer;white-space:nowrap}
.zz-st-chip:hover{background:var(--zz-brand-soft)}
.zz-st-chip:focus-visible{outline:2px solid var(--ring);outline-offset:1px}
.zz-st-chip:disabled{opacity:.5;cursor:not-allowed}
.zz-st-chip.is-current{background:var(--zz-brand-soft);border-color:var(--zz-brand-text);font-weight:600;cursor:default}
/* پنجرهٔ موافقت (dialog بومیِ مرورگر: Esc، تمرکز و پس‌زمینه با خودش) */
.zz-st-dlg{width:min(28rem,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);padding:0;margin:auto;border:1px solid var(--border);border-radius:1rem;
  background:var(--card);color:var(--foreground);box-shadow:var(--zz-shadow-pop);overflow:auto}
.zz-st-dlg:not([open]){display:none}
.zz-st-dlg::backdrop{background:var(--zz-overlay)}
html:has(.zz-st-dlg[open]){overflow:hidden}
.zz-st-dlg-in{display:flex;flex-direction:column;gap:.75rem;padding:1.125rem 1.25rem 1.25rem}
.zz-st-dlg-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.zz-st-dlg-x{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:999px;background:transparent;
  color:var(--secondary-foreground);cursor:pointer}
.zz-st-dlg-x:hover{background:var(--zz-hover);color:var(--foreground)}
.zz-st-dlg-list{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}
.zz-st-dlg-list li{position:relative;padding-inline-start:1rem;font-size:var(--text-2sm);line-height:1.85;color:var(--foreground)}
.zz-st-dlg-list li::before{content:"";position:absolute;inset-inline-start:.125rem;top:.75em;width:.375rem;height:.375rem;border-radius:999px;background:var(--zz-brand-text)}
.zz-st-dlg-more{align-self:flex-start;font-size:var(--text-xs);font-weight:600;color:var(--zz-brand-text)}
.zz-st-dlg-more:hover{text-decoration:underline}
.zz-st-dlg-agree{display:flex;align-items:center;gap:.5rem;font-size:var(--text-2sm);font-weight:500;color:var(--mono);cursor:pointer}
.zz-st-dlg-error{margin:0;font-size:var(--text-xs);color:var(--zz-danger)}
.zz-st-dlg-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}
.zz-st-tool-ic{display:inline-flex;align-items:center;justify-content:center;flex:none;width:2.75rem;height:2.75rem;border-radius:.75rem;background:var(--zz-surface-2);color:var(--zz-brand-text);font-size:var(--text-xl)}
.zz-st-table .zz-c-xs{display:none}
.zz-st-meta{flex-wrap:wrap;align-items:center;gap:.25rem .625rem;margin-top:.25rem}
.zz-st-jobmeta{display:flex;flex-wrap:wrap;gap:.25rem 1rem}
.zz-st-wait{display:flex;align-items:center;gap:.625rem;font-size:var(--text-2sm);color:var(--foreground)}
.zz-st-spin{flex:none;width:1rem;height:1rem;border-radius:999px;border:2px solid var(--border);border-top-color:var(--primary);animation:zz-st-spin .9s linear infinite}
@keyframes zz-st-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.zz-st-spin{animation:none;border-top-color:var(--border);background:var(--primary)}}
.zz-st-ai-label{display:flex;align-items:center;gap:.375rem;margin-top:1rem;padding-top:.75rem;border-top:1px dashed var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-st-ai-label i{color:var(--zz-brand-text)}
.zz-st-terms{display:flex;flex-direction:column;gap:1rem}
.zz-st-terms section h4{font-size:var(--text-2sm);font-weight:600;color:var(--mono);margin:0 0 .25rem}
.zz-st-terms section p{font-size:var(--text-2sm);line-height:1.95;color:var(--foreground);margin:0}
@media (max-width:639px){
  .zz-st-table thead{display:none}
  .zz-st-table,.zz-st-table tbody{display:block;width:100%}
  .zz-st-table tr{display:flex;align-items:center;gap:.5rem .75rem;padding:.75rem .875rem}
  .zz-st-table td{display:block;padding:0 !important}
  .zz-st-table td.zz-c-sm{display:none}
  .zz-st-table td.zz-st-main{flex:1 1 auto;min-width:0}
  .zz-st-table .zz-c-xs{display:flex}
  .zz-st-start-btns,.zz-st-start-btns .kt-btn{width:100%}
  .zz-st-start-btns .kt-btn{flex:1 1 0;justify-content:center;min-height:44px}
  .zz-st-trends-row>form,.zz-st-trends-row>a.kt-btn,.zz-st-trends-row>form .kt-btn{width:100%;justify-content:center}
  .zz-st-dlg-foot .kt-btn{flex:1 1 0;justify-content:center}
  .zz-st-topic-row .kt-input{flex-basis:100%}
  .zz-st-topic-row .kt-btn{flex:1 1 0;justify-content:center}
}

/* ── «عنوان، توضیحات و تگ» (۲۰۲۶-۱۰-۱۷؛ studio/tools/metadata-result و پنلِ «پیشنهادِ هوشمند» ِ فرمِ آپلود، video/partials/ai-metadata)
   هر پیشنهاد یک ردیفِ شکستنی با «کپی» و (فقط در فرمِ آپلود) «درج»؛ متنِ بلند می‌شکند تا ۳۷۵px بی اسکرولِ افقی بماند. فقط توکن‌ها. */
.zz-md-result{display:flex;flex-direction:column;gap:1.25rem}
.zz-md-result [hidden],.zz-md-panel[hidden],.zz-md-panel [hidden],[data-zz-md-open][hidden]{display:none !important}
.zz-md-sec{display:flex;flex-direction:column;gap:.625rem;min-width:0}
.zz-md-h{margin:0;font-size:var(--text-2sm);font-weight:600;color:var(--mono)}
.zz-md-list{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none}
.zz-md-row{display:flex;flex-direction:column;gap:.5rem;min-width:0;padding:.625rem .75rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--zz-surface-2)}
.zz-md-val{font-size:var(--text-2sm);font-weight:500;line-height:1.8;color:var(--foreground);overflow-wrap:anywhere}
.zz-md-box{padding:.75rem .875rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--zz-surface-2);font-size:var(--text-2sm);line-height:1.95;color:var(--foreground);white-space:pre-wrap;overflow-wrap:anywhere}
.zz-md-desc{max-height:22rem;overflow-y:auto}
.zz-md-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem .75rem}
.zz-md-meta{margin:0;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-md-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.zz-md-chips{display:flex;flex-wrap:wrap;gap:.375rem}
.zz-md-chip{max-width:100%;height:auto;min-height:1.75rem;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
.zz-md-pair{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(15rem,100%),1fr))}
.zz-md-status{margin:0;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}

/* ── «فیلم‌نامه‌نویس» ِ استودیوی هوشمند (۲۰۲۶-۱۰-۱۷، studio/tools/script-result): نتیجه (عنوان و زمانِ خواندن، قلاب، بخش‌ها،
   دعوت به اقدام، بریفِ ادیتور) و تله‌پرامپتر (studio/teleprompter). فقط توکن‌ها، هر دو تم، ۳۷۵px بی اسکرولِ افقی. */
.zz-sc-result{display:flex;flex-direction:column;gap:1rem;min-width:0}
.zz-sc-top{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem}
.zz-sc-top-main{display:flex;flex-direction:column;gap:.5rem;min-width:0;flex:1 1 20rem}
.zz-sc-title{margin:0;font-size:var(--text-base);font-weight:700;line-height:1.8;color:var(--mono);overflow-wrap:anywhere}
.zz-sc-facts{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .75rem}
.zz-sc-facts .kt-badge{height:auto;min-height:1.75rem;gap:.25rem}
.zz-sc-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.zz-sc-actions .kt-btn i,.zz-sc-brief .kt-btn i{margin-inline-end:.25rem}
.zz-sc-note{margin:0;padding:.5rem .75rem;border:1px solid color-mix(in oklab,var(--zz-warning) 40%,transparent);border-radius:calc(var(--radius) - 2px);background:var(--zz-warning-soft);color:var(--foreground);font-size:var(--text-xs);line-height:1.9}
.zz-sc-sections{display:flex;flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none}
.zz-sc-part{display:flex;flex-direction:column;gap:.5rem;min-width:0;padding:.75rem .875rem;border:1px solid var(--border);border-radius:calc(var(--radius) - 2px);background:var(--zz-surface-2)}
.zz-sc-part--edge{border-color:var(--zz-brand-line)}
.zz-sc-part-head{display:flex;align-items:center;gap:.5rem;min-width:0}
.zz-sc-part-head .zz-md-meta{margin-inline-start:auto;flex:none;white-space:nowrap}
.zz-sc-h{margin:0;min-width:0;font-size:var(--text-2sm);font-weight:600;line-height:1.7;color:var(--mono);overflow-wrap:anywhere}
.zz-sc-num{display:inline-flex;align-items:center;justify-content:center;flex:none;min-width:1.625rem;height:1.625rem;padding:0 .25rem;border-radius:999px;background:var(--zz-brand-soft);color:var(--zz-brand-text);font-size:var(--text-xs);font-weight:700}
.zz-sc-say{font-size:var(--text-sm);line-height:2.05;color:var(--foreground);white-space:pre-wrap;overflow-wrap:anywhere}
.zz-sc-visual{display:flex;align-items:flex-start;gap:.375rem;margin:0;padding-top:.5rem;border-top:1px dashed var(--border);font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground);overflow-wrap:anywhere}
.zz-sc-visual i{margin-top:.3rem;color:var(--zz-brand-text)}
.zz-sc-visual-k{font-weight:600;color:var(--mono)}
.zz-sc-brief{display:flex;flex-direction:column;gap:.875rem;min-width:0;padding:1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}
.zz-sc-brief-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem}
.zz-sc-brief-head .zz-md-h{display:flex;align-items:center;gap:.375rem}
.zz-sc-brief-head .zz-md-h i{color:var(--zz-brand-text)}
.zz-sc-sub{margin:0;font-size:var(--text-xs);font-weight:600;color:var(--secondary-foreground)}
.zz-sc-shots,.zz-sc-notes{display:flex;flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;font-size:var(--text-2sm);line-height:1.85;color:var(--foreground)}
.zz-sc-shots li{display:flex;align-items:flex-start;gap:.5rem;overflow-wrap:anywhere}
.zz-sc-notes li{position:relative;padding-inline-start:1rem;overflow-wrap:anywhere}
.zz-sc-notes li::before{content:"";position:absolute;inset-inline-start:.125rem;top:.75em;width:.375rem;height:.375rem;border-radius:999px;background:var(--zz-brand-text)}
@media (max-width:640px){
  .zz-sc-actions{width:100%}
  .zz-sc-actions>*{flex:1 1 auto}
  .zz-sc-part{padding:.625rem .75rem}
}

/* تله‌پرامپتر: نوارِ کنترل و صحنه؛ خطِ خواندن در ۳۵٪ ِ بالای صحنه؛ تمام‌صفحه با :fullscreen یا .is-full (لایهٔ ثابت، آیفون) */
.zz-tp{display:flex;flex-direction:column;overflow:hidden;min-width:0}
.zz-tp-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.625rem 1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--card)}
.zz-tp-group{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.zz-tp-group .kt-btn i{margin-inline-end:.25rem}
.zz-tp-play{min-width:5.5rem;justify-content:center}
.zz-tp-ranges{gap:.5rem 1.25rem}
.zz-tp-range{display:flex;align-items:center;gap:.5rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-tp-range input[type=range]{width:7.5rem;accent-color:var(--primary)}
.zz-tp-range-v{min-width:1.5rem;font-size:var(--text-xs);font-weight:600;color:var(--mono);text-align:center}
.zz-tp-hint{margin-inline-start:auto;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-tp-hint kbd{padding:0 .375rem;border:1px solid var(--border);border-radius:.375rem;background:var(--zz-surface-2);font-family:inherit;font-size:var(--text-xs);color:var(--mono)}
.zz-tp-view{position:relative;height:min(68vh,40rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:var(--background);outline:none}
.zz-tp-view:focus-visible{box-shadow:inset 0 0 0 2px var(--zz-brand-line)}
.zz-tp-pad--top{height:35%}
.zz-tp-pad--bottom{height:65%}
.zz-tp-guide{position:sticky;top:35%;z-index:1;height:0;margin-bottom:-1px;border-top:2px dashed var(--zz-brand-line);pointer-events:none}
.zz-tp-text{padding-inline:clamp(1rem,6%,5rem);font-size:44px;font-weight:600;line-height:1.7;color:var(--foreground);transform-origin:center}
.zz-tp.is-mirror .zz-tp-text{transform:scaleX(-1)}
.zz-tp-say{margin:0 0 1.2em;white-space:pre-wrap;overflow-wrap:anywhere}
.zz-tp-mark{margin:0 0 .4em;font-size:max(13px,.38em);font-weight:600;line-height:1.6;color:var(--muted-foreground)}
.zz-tp-end{text-align:center;margin-top:1em}
.zz-tp:fullscreen{width:100vw;height:100vh;border-radius:0;border:0;background:var(--background)}
.zz-tp:fullscreen .zz-tp-view{flex:1 1 auto;height:auto}
.zz-tp.is-full{position:fixed;inset:0;z-index:1000;margin:0;border-radius:0;border:0;background:var(--background)}
.zz-tp.is-full .zz-tp-view{flex:1 1 auto;height:auto}
html.zz-tp-lock,html.zz-tp-lock body{overflow:hidden}
.zz-tp-foot{display:flex;align-items:center;gap:.375rem;margin:0;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground)}
.zz-tp-foot i{color:var(--zz-brand-text)}
@media (max-width:640px){
  .zz-tp-bar{padding:.625rem .75rem}
  .zz-tp-ranges{width:100%}
  .zz-tp-range{flex:1 1 9rem}
  .zz-tp-range input[type=range]{width:auto;flex:1 1 auto;min-width:0}
  .zz-tp-hint{display:none}
  .zz-tp-view{height:62vh}
}

/* ── نتیجهٔ «موضوع‌های داغ» ِ استودیوی هوشمند (۲۰۲۶-۱۰-۱۷، studio/tools/trends-result): هر موضوع یک کارت (چیدمانِ zz-sc-part) با
   «چرا الان»، زاویه، منبع‌ها و «اسکریپت بنویس». پیوندِ بلند می‌شکند تا ۳۷۵px بی اسکرولِ افقی بماند. فقط توکن‌ها، هر دو تم. */
.zz-tr-result{display:flex;flex-direction:column;gap:1rem;min-width:0}
.zz-tr-top{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem .75rem}
.zz-tr-top .kt-badge{height:auto;min-height:1.75rem;gap:.25rem}
.zz-tr-list{display:flex;flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none}
.zz-tr-line{margin:0;font-size:var(--text-2sm);line-height:1.95;color:var(--foreground);overflow-wrap:anywhere}
.zz-tr-k{font-weight:600;color:var(--mono)}
.zz-tr-foot{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.75rem;padding-top:.5rem;border-top:1px dashed var(--border)}
.zz-tr-foot .kt-btn i{margin-inline-end:.25rem}
.zz-tr-sources{display:flex;flex-direction:column;gap:.375rem;margin:0;padding:0;list-style:none;min-width:0;flex:1 1 16rem}
.zz-tr-sources li{display:flex;flex-direction:column;gap:.125rem;min-width:0}
.zz-tr-src{display:inline-flex;align-items:flex-start;gap:.375rem;font-size:var(--text-xs);font-weight:500;line-height:1.8;color:var(--zz-brand-text);overflow-wrap:anywhere;min-width:0}
.zz-tr-src:hover{text-decoration:underline}
.zz-tr-src i{margin-top:.3rem;flex:none}
.zz-tr-src-t{min-width:0}
@media (max-width:640px){
  .zz-tr-foot>form,.zz-tr-foot>form .kt-btn{width:100%;justify-content:center}
}

/* ============================================================
   «پخشِ همزمان» (۲۰۲۶-۱۰-۲۴، docs/live/SPEC.md §5): صفحهٔ کاربر /live و دو صفحهٔ ادمین. فقط توکن‌ها (zz-tokens.css)، در روشن و
   تیره. جدولِ «پخش‌های اخیر» در ۳۷۵px بی اسکرولِ افقی: زیرِ ۶۴۰px «شروع» و «مدت» پنهان‌اند (zz-c-sm) و زیرِ کد می‌آیند (zz-c-xs).
   ============================================================ */
.zz-live [hidden]{display:none !important}
.zz-live-top{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem}
@media (min-width:1024px){.zz-live-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.875rem;align-items:start}}

.zz-live-headline{display:flex;align-items:flex-start;gap:.625rem;font-size:var(--text-base);font-weight:600;line-height:1.8;color:var(--mono)}
.zz-live-dot{flex:none;width:.625rem;height:.625rem;margin-top:.6rem;border-radius:999px;background:var(--muted-foreground)}
.zz-live-headline[data-zz-live-tone="success"] .zz-live-dot{background:var(--zz-success-solid);box-shadow:0 0 0 4px var(--zz-success-soft);animation:zz-live-pulse 1.6s ease-in-out infinite}
.zz-live-headline[data-zz-live-tone="warning"] .zz-live-dot{background:var(--zz-warning-solid);box-shadow:0 0 0 4px var(--zz-warning-soft)}
.zz-live-headline[data-zz-live-tone="destructive"] .zz-live-dot{background:var(--zz-danger-solid);box-shadow:0 0 0 4px var(--zz-danger-soft)}
.zz-live-headline[data-zz-live-tone="info"] .zz-live-dot{background:var(--zz-info-solid);box-shadow:0 0 0 4px var(--zz-info-soft)}
@keyframes zz-live-pulse{50%{box-shadow:0 0 0 7px var(--zz-success-soft)}}
@media (prefers-reduced-motion:reduce){.zz-live-dot{animation:none !important}}

.zz-live-warn{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--zz-warning-line);border-radius:.5rem;
  background:var(--zz-warning-soft);color:var(--zz-warning);font-size:var(--text-xs);line-height:1.8}
.zz-live-warn i{margin-top:.3rem;flex:none}
.zz-live-refusal{margin:0;padding:.5rem .75rem;border:1px solid var(--border);border-radius:.5rem;background:var(--zz-surface-2);
  font-size:var(--text-xs);line-height:1.8;color:var(--foreground)}

.zz-live-table .zz-c-sm{display:none}
.zz-live-table .zz-c-xs{display:block;margin-top:.25rem}
@media (min-width:640px){.zz-live-table .zz-c-sm{display:table-cell}.zz-live-table .zz-c-xs{display:none}}
.zz-live-table td{vertical-align:top}

/* ═══ مولتی استریمینگ در ادمین: صفحهٔ هر پخش و فهرستِ پخش‌ها (۲۰۲۶-۱۰-۲۷، سعید: «هیچ توجهی به UI نداری… مترونیک داری») ═══
   کاشیِ پلتفرم مشترک با استودیو؛ همه‌چیز از توکن‌ها، اندازهٔ متن فقط var(--text-*) */
.zz-st-lg{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:none;font-size:var(--text-xs);font-weight:700;
  color:var(--zz-pf-ink);background:var(--zz-pf-custom)}
.zz-st-lg i{font-size:18px}
.zz-st-lg--youtube{background:var(--zz-pf-youtube)}
.zz-st-lg--twitch{background:var(--zz-pf-twitch)}
.zz-st-lg--kick{background:var(--zz-pf-kick);color:var(--zz-pf-kick-ink)}
.zz-st-lg--aparat{background:var(--zz-pf-aparat)}
.zz-st-lg--facebook{background:var(--zz-pf-facebook);font-size:var(--text-lg)}
.zz-st-lg.zz-st-lg--sm{width:28px;height:28px;border-radius:8px}
.zz-st-lg.zz-st-lg--sm i{font-size:14px}
/* لوگوی خودِ پلتفرم (۲۰۲۶-۱۰-۳۰، LivePanel::logo): تک‌رنگ با رنگِ متنِ کاشی */
.zz-st-lg svg{width:58%;height:58%;display:block}

.zz-lb-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}
.zz-lb-who{display:flex;align-items:center;gap:14px;min-width:0}
.zz-lb-avatar{width:48px;height:48px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:none;font-weight:700;
  font-size:var(--text-lg);color:var(--zz-brand-text);background:var(--zz-brand-soft)}
.zz-lb-avatar.zz-lb-avatar--sm{width:36px;height:36px;font-size:var(--text-sm)}
.zz-lb-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--text-xl);font-weight:700;color:var(--mono);line-height:1.4}
.zz-lb-name a{color:inherit}
.zz-lb-name a:hover{color:var(--zz-brand-text)}
.zz-lb-sub{font-size:var(--text-2sm);color:var(--secondary-foreground);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.zz-lb-clock{font-variant-numeric:tabular-nums;font-weight:600;color:var(--mono)}
.zz-lb-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.zz-lb-dot{width:8px;height:8px;border-radius:999px;background:currentColor;flex:none}
/* «زنده» سبز است، نه قرمز (۲۰۲۶-۱۰-۲۷، سعید: «زنده بودن رو باید سبز کنی نه قرمز») — قرمز فقط برای توقف و خرابی */
.zz-lb-dot.zz-lb-dot--live{background:var(--zz-success-solid);box-shadow:0 0 0 4px color-mix(in oklab,var(--zz-success-solid) 22%,transparent)}
.zz-lb-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
@media (min-width:1280px){.zz-lb-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}}
.zz-lb-col{display:flex;flex-direction:column;gap:20px;min-width:0}

.zz-lb-empty{display:flex;align-items:center;gap:14px;padding:6px 0}
.zz-lb-empty .zz-lb-ico{width:44px;height:44px}

.zz-lb-stat{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px dashed var(--border)}
.zz-lb-stat:first-child{padding-top:0}
.zz-lb-stat:last-child{border-bottom:0;padding-bottom:0}
.zz-lb-ico{width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--muted);color:var(--foreground)}
.zz-lb-ico i{font-size:18px}
.zz-lb-stat-l{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-lb-stat-v{font-size:var(--text-sm);font-weight:600;color:var(--mono);margin-top:2px}
.zz-lb-stat-s{font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:2px}
.zz-lb-ok{color:var(--zz-success)}
.zz-lb-warn{color:var(--zz-warning)}
.zz-lb-bad{color:var(--zz-danger)}

.zz-lb-dest{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:1px solid var(--border)}
.zz-lb-dest:last-child{border-bottom:0}
.zz-lb-dest-main{flex:1;min-width:0}
.zz-lb-dest-name{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-lb-dest-meta{font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:3px;display:flex;gap:4px 6px;flex-wrap:wrap}
.zz-lb-dest-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:end;flex:none;max-width:55%;min-width:0}
/* نشانیِ لاتین با ارقامِ لاتین (فونتِ Inter ِ خودِ پنل) — نه تک‌فاصله که در یک خطِ کوتاه سنگین و پرشکست بود */
.zz-lb-dest-addr{font-family:'Inter',ui-sans-serif,system-ui,sans-serif;font-size:var(--text-xs);color:var(--secondary-foreground);max-width:100%;overflow-wrap:anywhere}
.zz-lb-dest-err{font-size:var(--text-xs);margin-top:3px}
@media (max-width:640px){.zz-lb-dest{flex-wrap:wrap}.zz-lb-dest-side{width:100%;max-width:100%;align-items:flex-start;text-align:start;padding-inline-start:50px}}

.zz-lb-tl{list-style:none;margin:0;padding:0}
.zz-lb-tl li{position:relative;display:flex;gap:12px;padding-bottom:18px}
.zz-lb-tl li:last-child{padding-bottom:0}
.zz-lb-tl li::before{content:"";position:absolute;top:32px;bottom:2px;inset-inline-start:14px;border-inline-start:1px dashed var(--border)}
.zz-lb-tl li:last-child::before{display:none}
.zz-lb-tl-ico{width:30px;height:30px;border-radius:999px;border:1px solid var(--border);background:var(--card);display:inline-flex;align-items:center;justify-content:center;flex:none;color:var(--secondary-foreground)}
.zz-lb-tl-ico i{font-size:14px}
.zz-lb-tl-ico.is-live{color:var(--zz-success);border-color:currentColor}
.zz-lb-tl-ico.is-ok{color:var(--zz-success);border-color:currentColor}
.zz-lb-tl-ico.is-warn{color:var(--zz-warning);border-color:currentColor}
.zz-lb-tl-t{font-size:var(--text-sm);color:var(--foreground);line-height:1.6}
.zz-lb-tl-time{font-size:var(--text-xs);color:var(--secondary-foreground);font-variant-numeric:tabular-nums}

/* پخش‌کنندهٔ «تماشای زنده» */
.zz-lb-player{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:var(--zz-player-bg)}
.zz-lb-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:var(--zz-player-bg)}
.zz-lb-chips{position:absolute;top:12px;inset-inline-start:12px;display:flex;gap:8px;z-index:2;pointer-events:none}
.zz-lb-chip{font-size:var(--text-xs);padding:4px 10px;border-radius:6px;background:var(--zz-player-chip);color:var(--zz-player-ink);display:inline-flex;gap:6px;align-items:center}
.zz-lb-chip--live{background:var(--zz-success-solid);font-weight:600}
.zz-lb-chip[hidden]{display:none}
.zz-lb-note{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;padding:16px;text-align:center;
  color:var(--zz-player-text);font-size:var(--text-sm);background:var(--zz-player-scrim)}
[data-zz-lap-state="playing"] .zz-lb-note{display:none}

/* فهرستِ پخش‌ها */
.zz-lb-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1.2fr) auto;gap:16px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border)}
.zz-lb-row:last-child{border-bottom:0}
.zz-lb-row:hover{background:var(--muted)}
.zz-lb-row-who{display:flex;align-items:center;gap:12px;min-width:0}
.zz-lb-row-name{font-size:var(--text-sm);font-weight:600;color:var(--mono);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.zz-lb-row-sub{font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap}
.zz-lb-row-num{font-size:var(--text-sm);color:var(--mono);font-variant-numeric:tabular-nums}
.zz-lb-row-num small{display:block;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-lb-dests{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.zz-lb-mini{position:relative;display:inline-flex}
.zz-lb-mini-state{position:absolute;bottom:-3px;inset-inline-end:-3px;width:11px;height:11px;border-radius:999px;border:2px solid var(--card);background:var(--secondary-foreground)}
.zz-lb-mini-state.is-ok{background:var(--zz-success-solid)}
.zz-lb-mini-state.is-warn{background:var(--zz-warning-solid)}
.zz-lb-mini-state.is-bad{background:var(--zz-danger-solid)}
.zz-lb-mini-state.is-info{background:var(--zz-info-solid)}
.zz-lb-mini a.zz-lb-mini-watch{position:absolute;inset:0;border-radius:8px}
.zz-lb-mini a.zz-lb-mini-watch:hover,.zz-lb-mini a.zz-lb-mini-watch:focus-visible{outline:2px solid var(--zz-brand-text);outline-offset:2px}
@media (max-width:1000px){.zz-lb-row{grid-template-columns:minmax(0,1fr) auto}.zz-lb-row .zz-lb-row-mid,.zz-lb-row .zz-lb-dests{grid-column:1 / -1}.zz-lb-row .zz-lb-row-go{grid-row:1;grid-column:2}}

/* ═══ کمپینِ تبلیغ در ادمین (۲۰۲۶-۱۰-۲۸، روی ماکاپِ public/zz-mockup-admin-ad-campaign.html؛ هم‌زبانِ صفحهٔ پخش: .zz-lb-*) ═══ */
.zz-adc-mark{width:48px;height:48px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--zz-pf-youtube);color:var(--zz-pf-ink)}
.zz-adc-mark i{font-size:24px}
.zz-adc-code,.zz-adc-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.zz-adc-code{letter-spacing:.02em}
.zz-adc-sep{color:var(--muted-foreground)}
.zz-adc-raw{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-adc-btn-danger{color:var(--zz-danger);border-color:var(--zz-danger-line)}
.zz-adc-btn-danger:hover{color:var(--zz-danger);background:var(--zz-danger-soft)}
/* عملکرد در گوگل */
.zz-adc-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:900px){.zz-adc-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
.zz-adc-kpi{padding:18px 20px;display:flex;flex-direction:column;gap:4px;border-inline-start:1px solid var(--border);min-width:0}
.zz-adc-kpi:first-child{border-inline-start:0}
@media (max-width:899px){.zz-adc-kpi:nth-child(3){border-inline-start:0}.zz-adc-kpi:nth-child(n+3){border-top:1px solid var(--border)}}
.zz-adc-kpi-l{font-size:var(--text-xs);color:var(--secondary-foreground);display:flex;align-items:center;gap:6px}
.zz-adc-kpi-l i{font-size:15px;color:var(--muted-foreground)}
.zz-adc-kpi-v{font-size:var(--text-xl);font-weight:700;color:var(--mono);line-height:1.3}
.zz-adc-kpi-s{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-adc-kpi .kt-progress{margin-top:6px}
.zz-adc-foot{padding:10px 20px;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}
/* آگهی */
.zz-adc-ad{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:900px){.zz-adc-ad{grid-template-columns:300px minmax(0,1fr)}}
.zz-adc-vids{display:flex;gap:12px;align-items:flex-start;min-width:0}
.zz-adc-vid{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1 auto;color:inherit}
.zz-adc-vid.zz-adc-vid--v{flex:none;align-items:center}
.zz-adc-vid:hover .zz-adc-vid-t{color:var(--zz-brand-text)}
.zz-adc-thumb{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:var(--zz-surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center}
.zz-adc-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.zz-adc-thumb.zz-adc-thumb--v{aspect-ratio:9/16;width:76px}
.zz-adc-play{position:relative;width:40px;height:40px;border-radius:999px;background:var(--zz-pf-youtube);color:var(--zz-pf-ink);display:inline-flex;align-items:center;justify-content:center}
.zz-adc-thumb--v .zz-adc-play{width:28px;height:28px}
.zz-adc-vid-tag{position:absolute;top:8px;inset-inline-start:8px;font-size:var(--text-xs);padding:1px 7px;border-radius:6px;background:var(--zz-player-chip);color:var(--zz-player-ink)}
.zz-adc-vid-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.7}
.zz-adc-vid-s{font-size:var(--text-xs);color:var(--secondary-foreground);display:inline-flex;align-items:center;gap:4px}
.zz-adc-vid-s i{font-size:11px}
.zz-adc-copy{display:flex;flex-direction:column;gap:16px;min-width:0}
.zz-adc-copy-l{font-size:var(--text-xs);color:var(--secondary-foreground);margin-bottom:6px}
.zz-adc-copy-l b{font-weight:500;color:var(--muted-foreground)}
.zz-adc-lines{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.zz-adc-lines li{display:flex;gap:10px;align-items:baseline;padding:8px 12px;border:1px solid var(--border);border-radius:8px;font-size:var(--text-sm);color:var(--mono);background:var(--zz-surface-2);overflow-wrap:anywhere}
.zz-adc-n{font-size:var(--text-xs);color:var(--muted-foreground);flex:none}
/* کنار */
.zz-adc-decide{border-color:var(--zz-warning-line)}
.zz-adc-big{font-size:var(--text-2xl);font-weight:700;color:var(--mono);line-height:1.2}
.zz-adc-big small{font-size:var(--text-sm);font-weight:500;color:var(--secondary-foreground)}
.zz-adc-rows{display:flex;flex-direction:column;margin:0}
.zz-adc-r{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--border);font-size:var(--text-2sm)}
.zz-adc-r:first-child{padding-top:0}
.zz-adc-r:last-child{border-bottom:0;padding-bottom:0}
.zz-adc-r dt{color:var(--secondary-foreground);flex:none}
.zz-adc-r dd{margin:0;color:var(--mono);text-align:end;min-width:0;overflow-wrap:anywhere}
.zz-adc-r dd small{color:var(--secondary-foreground);font-size:var(--text-xs)}
.zz-adc-r--profit dd{color:var(--zz-success);font-weight:700}
.zz-adc-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.zz-adc-note{margin:10px 0 0;font-size:var(--text-xs);color:var(--secondary-foreground);line-height:1.8}
/* ═══ یک اشتراکِ اینترنت آزاد در ادمین (۲۰۲۶-۱۱-۰۲، admin/netservice/account؛ هم‌زبانِ صفحهٔ کمپین و پخش: .zz-lb-* و .zz-adc-*) ═══ */
.zz-nsd-mark{width:48px;height:48px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-nsd-mark i{font-size:24px}
.zz-adc-kpi-v.zz-nsd-muted{color:var(--secondary-foreground);font-weight:600}
.zz-adc-kpi-v.zz-lb-warn{color:var(--zz-warning)}
.zz-adc-r dd.zz-lb-ok{color:var(--zz-success)}
.zz-adc-r dd.zz-lb-warn{color:var(--zz-warning)}

/* صفحهٔ «سرورها و تنظیمات» (۲۰۲۶-۱۰-۲۷، روی ماکاپ): وضعیتِ بخش، دو سرور، ترافیک، سقف‌ها با واحد و «توقفِ همه» جدا */
.kt-card.zz-ls-hero{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px}
.zz-ls-hero-who{display:flex;align-items:center;gap:16px;min-width:0;flex:1 1 320px}
.zz-ls-ring{width:52px;height:52px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--muted);color:var(--secondary-foreground)}
.zz-ls-ring.is-on{background:color-mix(in oklab,var(--zz-success-solid) 14%,transparent);color:var(--zz-success)}
.zz-ls-ring i{font-size:24px}
.zz-ls-hero-t{display:flex;align-items:center;gap:8px;font-size:var(--text-lg);font-weight:700;color:var(--mono)}
.zz-ls-hero-s{font-size:var(--text-2sm);color:var(--secondary-foreground);margin-top:3px}
.zz-ls-dot{width:9px;height:9px;border-radius:999px;flex:none;background:var(--secondary-foreground)}
.zz-ls-dot.is-on{background:var(--zz-success-solid);box-shadow:0 0 0 4px color-mix(in oklab,var(--zz-success-solid) 25%,transparent)}
.zz-ls-nums{display:flex;gap:28px}
.zz-ls-num-v{font-size:var(--text-xl);font-weight:700;color:var(--mono);line-height:1.2}
.zz-ls-num-l{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ls-ok{color:var(--zz-success)}
.zz-ls-relays{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}
@media (min-width:900px){.zz-ls-relays{grid-template-columns:1fr 1fr}}
.zz-ls-relay-h{display:flex;align-items:center;gap:12px;min-width:0}
.zz-ls-relay-n{font-size:var(--text-base);font-weight:700;color:var(--mono)}
.zz-ls-relay-r{font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:1px}
.zz-ls-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.zz-ls-stat{padding:16px 20px;border-inline-start:1px solid var(--border);min-width:0}
.zz-ls-stat:first-child{border-inline-start:0}
.zz-ls-stat-l{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ls-stat-v{font-size:var(--text-lg);font-weight:700;color:var(--mono);margin-top:2px}
.zz-ls-stat-s{font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:2px}
.zz-ls-relay-f{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 20px;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}
@media (max-width:640px){.zz-ls-stats{grid-template-columns:1fr}.zz-ls-stat{border-inline-start:0;border-top:1px solid var(--border)}.zz-ls-stat:first-child{border-top:0}}
.zz-ls-traffic,.zz-ls-groups{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:900px){.zz-ls-traffic,.zz-ls-groups{grid-template-columns:1fr 1fr}}
.zz-ls-tr,.zz-ls-group{padding:18px 22px;display:flex;flex-direction:column;min-width:0}
.zz-ls-tr{gap:6px}
.zz-ls-group{gap:16px}
.zz-ls-tr+.zz-ls-tr,.zz-ls-group+.zz-ls-group{border-top:1px solid var(--border)}
@media (min-width:900px){.zz-ls-tr+.zz-ls-tr,.zz-ls-group+.zz-ls-group{border-top:0;border-inline-start:1px solid var(--border)}}
.zz-ls-tr-l{font-size:var(--text-2sm);color:var(--secondary-foreground);display:flex;align-items:center;gap:8px}
.zz-ls-tr-v{font-size:var(--text-xl);font-weight:700;color:var(--mono)}
.zz-ls-tr-v small{font-size:var(--text-sm);font-weight:500;color:var(--secondary-foreground)}
.zz-ls-tr-s{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ls-group-t{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);font-weight:700;color:var(--mono)}
.zz-ls-field{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:12px;align-items:center}
.zz-ls-field label{display:flex;flex-direction:column;gap:2px}
.zz-ls-field-l{font-size:var(--text-2sm);color:var(--mono)}
.zz-ls-field-h{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-ls-unit{font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap}
.zz-ls-field-ro{font-size:var(--text-sm);font-weight:600;color:var(--mono);text-align:end}
@media (max-width:640px){.zz-ls-field{grid-template-columns:1fr}}
.zz-ls-danger{border-color:color-mix(in oklab,var(--zz-danger-solid) 40%,var(--border))}
.zz-ls-danger .kt-card-content{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px}

/* ═══ «دونیت‌ها» در ادمین (۲۰۲۶-۱۰-۲۹، روی ماکاپِ public/zz-mockup-admin-donations.html؛ هم‌زبانِ صفحه‌های پخش: .zz-lb-*) ═══ */
.zz-adn-mark{width:48px;height:48px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-adn-mark i{font-size:24px}
.zz-adn-amount{font-size:var(--text-base);font-weight:700;color:var(--mono);font-variant-numeric:tabular-nums}
.zz-adn-amount small{font-size:var(--text-xs);font-weight:500;color:var(--secondary-foreground)}
.zz-adn-msg{font-size:var(--text-2sm);color:var(--secondary-foreground);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.zz-adn-msg i{font-size:13px;color:var(--muted-foreground)}
.zz-adn-msg.is-hidden{text-decoration:line-through}
.zz-adn-to{display:flex;align-items:center;gap:10px;min-width:0}
.zz-adn-to a{color:inherit}
.zz-adn-to a:hover{color:var(--zz-brand-text)}
.zz-adn-go{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.zz-adn-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border)}
.zz-adn-search{max-width:360px;min-width:0;flex:1 1 auto}
.zz-adn-chips{display:flex;flex-wrap:wrap;gap:6px}
.zz-adn-chip{font-size:var(--text-xs);padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--secondary-foreground);background:var(--card)}
.zz-adn-chip:hover{color:var(--mono)}
.zz-adn-chip.is-on{border-color:var(--zz-brand-text);color:var(--zz-brand-text);background:var(--zz-brand-soft)}
.zz-adn-note{font-size:var(--text-xs);color:var(--secondary-foreground);padding:10px 20px;border-top:1px solid var(--border);display:flex;gap:6px;align-items:center}
.zz-adn-note i{font-size:14px;color:var(--muted-foreground)}
@media (max-width:1000px){.zz-lb-row .zz-adn-to{grid-column:1 / -1}.zz-lb-row .zz-adn-go{grid-row:1;grid-column:2}.zz-lb-row .zz-adn-go:empty{display:none}}
.zz-adn-row .zz-lb-row-mid .zz-lb-row-name a{min-width:0;overflow-wrap:anywhere}

/* ───────── ستونِ کناریِ صفحهٔ تیکتِ ادمین و «تیکتِ تازه» (۲۰۲۶-۱۱-۰۲؛ admin/tickets/partials) ───────── */
.zz-tks-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.zz-tks-actions .kt-btn{justify-content:center}
.zz-tks-actions>[data-zz-ticket-new-for]{grid-column:1/-1}
.zz-tks-dl{display:flex;flex-direction:column;margin:0}
.zz-tks-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px dashed var(--border);min-width:0;min-height:2.5rem}
.zz-tks-dl>.zz-tks-row:first-child{padding-top:0}
.zz-tks-dl>.zz-tks-row:last-child{border-bottom:0;padding-bottom:0}
.zz-tks-row>dt{flex:none;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-tks-row>dd{margin:0;min-width:0;display:flex;align-items:center;justify-content:flex-end;gap:.25rem;font-size:var(--text-2sm);color:var(--mono);text-align:end}
.zz-tks-list{list-style:none;margin:0;padding:0}
.zz-tks-item{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.25rem;border-top:1px solid var(--border);min-width:0;transition:background-color .15s}
a.zz-tks-item:hover{background:var(--zz-hover)}
a.zz-tks-item:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}
.zz-tks-dot{flex:none;width:.5rem;height:.5rem;border-radius:999px;background:var(--muted-foreground)}
.zz-tks-dot.is-wait{background:var(--zz-warning-solid)}
.zz-tks-dot.is-review{background:var(--primary)}
.zz-tks-dot.is-done{background:var(--zz-success-solid)}
.zz-tks-thumb{flex:none;width:2rem;height:2rem;border-radius:999px;object-fit:cover;background:var(--muted)}
.zz-tks-thumb--yt{display:inline-grid;place-items:center;color:var(--zz-danger-solid);font-size:var(--text-base)}
.zz-tks-to{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border:1px solid var(--border);border-radius:.625rem;background:var(--muted);min-width:0}
.zz-tks-compose{align-self:start}
.zz-tkr-search{position:relative}
.zz-tkr-pop{position:absolute;inset-inline:0;top:calc(100% + .375rem);z-index:40;max-height:22rem;overflow-y:auto;overscroll-behavior:contain;padding:.375rem;background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:.75rem;box-shadow:var(--zz-shadow-pop)}
.zz-tkr-opt{display:flex;align-items:center;gap:.75rem;padding:.5rem .625rem;border-radius:.5rem;cursor:pointer;min-width:0}
.zz-tkr-opt.is-active{background:var(--accent)}
.zz-tkr-opt[aria-disabled="true"]{cursor:not-allowed;opacity:.6}
.zz-tkr-body{display:flex;flex-direction:column;gap:.125rem;min-width:0;flex:1 1 auto}
.zz-tkr-name{font-size:var(--text-sm);font-weight:500;color:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-tkr-meta{font-size:var(--text-xs);color:var(--secondary-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-tkr-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem;flex:none}
.zz-tkr-empty{padding:.75rem .625rem;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-tkr-av{flex:none;width:2rem;height:2rem;border-radius:999px;display:inline-grid;place-items:center;background:var(--muted);color:var(--secondary-foreground);font-size:var(--text-2sm);font-weight:600}
button.zz-tks-item{width:100%;text-align:start;background:none;cursor:pointer}
@media (max-width:640px){.zz-tkr-tags{display:none}}
.zz-tks-to .zz-tkr-av{background:var(--card);border:1px solid var(--border)}

/* ============================================================
   نقشهٔ کشورهای لینک‌های کوتاه (۲۰۲۶-۱۱-۰۳؛ links/partials/countries، links/partials/clicks-chart)
   چهار صفحه: links.index، links.show، admin.links.index، admin.links.show. ردیفِ اول عددها (۲×۲) یا مشخصاتِ لینک کنارِ
   نمودار، بعد کارتِ نقشه در تمامِ عرض: نقشه + ستونِ «پرکلیک‌ترین کشورها»، زیرش «نامشخص»، ربات‌ها و خطِ DB-IP.
   رنگ‌ها فقط از توکن‌ها؛ پنج پله: چهار پله از خاکستری تا رنگِ نمودار، و پلهٔ پنجم از رنگِ نمودار به سمتِ --mono (در تمِ
   روشن تیره‌تر، در تیره روشن‌تر) تا پرکلیک‌ترین کشور در هر دو تم آشکارا جدا باشد.
   ============================================================ */
.zz-lnk-over{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem}
.zz-lnk-over .zz-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:700px) and (max-width:1279.98px){
  .zz-lnk-over .zz-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
  .zz-lnk-over .zz-kpis.zz-kpis-3{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1280px){
  .zz-lnk-over{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:stretch;gap:1.875rem}
  .zz-lnk-over .zz-kpis{grid-auto-rows:1fr}
  .zz-lnk-over .zz-kpi{justify-content:center}
}
/* سه عدد در دو ستون: اولی (کلیک در بازه، با بازهٔ قبل) تمام‌عرض */
@media (max-width:699.98px),(min-width:1280px){.zz-lnk-over .zz-kpis-3>.zz-kpi:first-child{grid-column:span 2}}
.zz-lnk-over .zz-kpi .lbl{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.zz-kpi-ic{width:1.875rem;height:1.875rem;border-radius:.5625rem;display:inline-flex;align-items:center;justify-content:center;flex:none;
  background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-kpi-ic i{font-size:16px}
.zz-lnk-chart .kt-card-content{padding-top:.5rem;padding-bottom:.375rem}
.zz-lnk-peak{display:flex;align-items:baseline;gap:.375rem;font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap}
.zz-lnk-peak b{font-size:var(--text-sm);color:var(--mono);font-weight:700}
.zz-lnk-chart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;min-height:220px;text-align:center}

.zz-lmap{
  --zz-lmap-c0:color-mix(in oklab,var(--muted-foreground) 15%,var(--card));
  --zz-lmap-c1:color-mix(in oklab,var(--zz-chart-1) 17%,var(--zz-lmap-c0));
  --zz-lmap-c2:color-mix(in oklab,var(--zz-chart-1) 34%,var(--zz-lmap-c0));
  --zz-lmap-c3:color-mix(in oklab,var(--zz-chart-1) 54%,var(--zz-lmap-c0));
  --zz-lmap-c4:color-mix(in oklab,var(--zz-chart-1) 78%,var(--zz-lmap-c0));
  --zz-lmap-c5:color-mix(in oklab,var(--zz-chart-1) 62%,var(--mono));
}
.dark .zz-lmap{
  --zz-lmap-c0:color-mix(in oklab,var(--muted-foreground) 17%,var(--card));
  --zz-lmap-c1:color-mix(in oklab,var(--zz-chart-1) 26%,var(--zz-lmap-c0));
  --zz-lmap-c2:color-mix(in oklab,var(--zz-chart-1) 42%,var(--zz-lmap-c0));
  --zz-lmap-c3:color-mix(in oklab,var(--zz-chart-1) 60%,var(--zz-lmap-c0));
  --zz-lmap-c4:color-mix(in oklab,var(--zz-chart-1) 80%,var(--zz-lmap-c0));
  --zz-lmap-c5:color-mix(in oklab,var(--zz-chart-1) 52%,var(--mono));
}
.zz-lmap-body{display:grid;grid-template-columns:minmax(0,1fr)}
@media (min-width:1280px){.zz-lmap-body{grid-template-columns:minmax(0,1fr) 19.375rem}}
.zz-lmap-body[data-empty]{grid-template-columns:minmax(0,1fr)}
.zz-lmap-body[data-empty] .zz-lmap-map{width:100%;max-width:45rem;margin-inline:auto}
.zz-lmap-stage{position:relative;padding:1.125rem 1.25rem;min-width:0;display:flex;flex-direction:column;justify-content:center}
.zz-lmap-map{position:relative}
.zz-lmap-map svg{display:block;width:100%;height:auto;overflow:visible}
.zz-lmap .zz-map-land path{fill:var(--zz-lmap-c0);stroke:var(--card);stroke-width:.7;vector-effect:non-scaling-stroke;stroke-linejoin:round;
  transition:fill .15s ease;cursor:default}
/* پله‌ها: روی نقشه (fill، بی جاوااسکریپت هم) و در راهنما و فهرست (background) */
.zz-lmap svg [data-b="1"]{fill:var(--zz-lmap-c1)}
.zz-lmap svg [data-b="2"]{fill:var(--zz-lmap-c2)}
.zz-lmap svg [data-b="3"]{fill:var(--zz-lmap-c3)}
.zz-lmap svg [data-b="4"]{fill:var(--zz-lmap-c4)}
.zz-lmap svg [data-b="5"]{fill:var(--zz-lmap-c5)}
.zz-lmap-sw[data-b="1"]{background:var(--zz-lmap-c1)}
.zz-lmap-sw[data-b="2"]{background:var(--zz-lmap-c2)}
.zz-lmap-sw[data-b="3"]{background:var(--zz-lmap-c3)}
.zz-lmap-sw[data-b="4"]{background:var(--zz-lmap-c4)}
.zz-lmap-sw[data-b="5"]{background:var(--zz-lmap-c5)}
.zz-lmap .zz-map-land path[data-b]{cursor:pointer}
/* رونوشتِ شکلِ پررنگ روی همه (اسکریپتِ کارت)؛ رنگِ پله‌اش از همان data-b */
.zz-lmap .zz-map-hot path{stroke:var(--mono);stroke-width:1.25;vector-effect:non-scaling-stroke;stroke-linejoin:round;pointer-events:none}
.zz-lmap .zz-map-hot path:not([data-b]){fill:color-mix(in oklab,var(--muted-foreground) 26%,var(--card));stroke-width:1.1}
.zz-lmap .zz-map-dot{fill:transparent;pointer-events:none}
.zz-lmap .zz-map-dot[data-b]{stroke:var(--card);stroke-width:1.4;vector-effect:non-scaling-stroke;pointer-events:auto;cursor:pointer}
.zz-lmap .zz-map-dot.is-hot{stroke:var(--mono);stroke-width:1.8;outline:none}
.zz-lmap-body[data-empty] .zz-map-land path{fill:var(--zz-lmap-c0)}

/* راهنمای رنگ در سرِ کارت */
.zz-lmap-legend{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-lmap-scale{display:inline-flex;align-items:center;gap:.5rem}
.zz-lmap-ramp{display:inline-flex;gap:2px}
.zz-lmap-ramp .zz-lmap-sw{width:1.25rem;height:.625rem;border-radius:2px}
.zz-lmap-ramp .zz-lmap-sw:first-child{border-start-start-radius:4px;border-end-start-radius:4px}
.zz-lmap-ramp .zz-lmap-sw:last-child{border-start-end-radius:4px;border-end-end-radius:4px}
.zz-lmap-none{display:inline-flex;align-items:center;gap:.375rem}
.zz-lmap-none i{width:.625rem;height:.625rem;border-radius:3px;background:var(--zz-lmap-c0);box-shadow:0 0 0 1px var(--border) inset}

.zz-lmap-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;padding:0 1rem}
.zz-lmap-empty span{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .875rem;border-radius:999px;background:var(--card);
  border:1px solid var(--border);box-shadow:var(--zz-shadow-pop);font-size:var(--text-2sm);color:var(--secondary-foreground);text-align:center}
.zz-lmap-empty i{font-size:16px;color:var(--muted-foreground)}

/* حباب: همان zz-tip ِ نمودارها */
.zz-lmap-tip{position:absolute;z-index:5;min-width:10.5rem;max-width:15rem;pointer-events:none;opacity:0;transition:opacity .12s ease}
.zz-lmap-tip.is-on{opacity:1}
.zz-lmap-tip-h{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.375rem}
.zz-lmap-tip-name{font-size:var(--text-2sm);font-weight:700;color:var(--mono)}
.zz-lmap-tip-rank{font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap}
.zz-lmap-tip-v{display:flex;align-items:baseline;gap:.375rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-lmap-tip-v b{font-size:var(--text-lg);font-weight:800;color:var(--mono);font-variant-numeric:tabular-nums}
.zz-lmap-tip-share{margin-top:.5rem;display:flex;flex-direction:column;gap:.3125rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-lmap-tip-bar{height:4px;border-radius:4px;background:color-mix(in oklab,var(--muted-foreground) 18%,transparent);overflow:hidden}
.zz-lmap-tip-bar span{display:block;height:100%;background:var(--zz-chart-1);border-radius:4px}
.zz-lmap-tip-none{font-size:var(--text-xs);color:var(--muted-foreground)}

/* ستونِ کنار: پرکلیک‌ترین‌ها */
.zz-lmap-rail{border-top:1px solid var(--border);padding:1rem 1.25rem 1.125rem;display:flex;flex-direction:column;gap:.75rem;min-width:0}
.zz-lmap-rail-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono)}
.zz-lmap-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
@media (min-width:640px) and (max-width:1279.98px){.zz-lmap-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1.5rem}}
.zz-lmap-row{display:grid;grid-template-columns:1rem minmax(0,1fr) auto 3.125rem;grid-template-rows:auto auto;align-items:center;column-gap:.625rem;row-gap:.375rem;
  padding:.4375rem .5rem;margin-inline:-.5rem;border-radius:.625rem;cursor:default;outline:none}
.zz-lmap-row:hover,.zz-lmap-row.is-hot,.zz-lmap-row:focus-visible{background:var(--zz-hover)}
.zz-lmap-row:focus-visible{box-shadow:0 0 0 2px var(--ring)}
.zz-lmap-rank{grid-row:1 / span 2;font-size:var(--text-xs);color:var(--muted-foreground);text-align:center;font-variant-numeric:tabular-nums}
.zz-lmap-name{display:flex;align-items:center;gap:.5rem;min-width:0;font-size:var(--text-2sm);font-weight:500;color:var(--mono)}
.zz-lmap-name>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-lmap-sw{width:.625rem;height:.625rem;border-radius:3px;flex:none;background:var(--zz-lmap-c0)}
.zz-lmap-n{font-size:var(--text-2sm);color:var(--mono);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.zz-lmap-p{font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:end}
.zz-lmap-bar{grid-column:2 / span 3;height:4px;border-radius:4px;background:color-mix(in oklab,var(--muted-foreground) 14%,transparent);overflow:hidden}
.zz-lmap-bar span{display:block;height:100%;border-radius:4px;background:var(--zz-chart-1)}
.zz-lmap-more>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:.375rem;font-size:var(--text-xs);color:var(--zz-brand-text);padding:.25rem 0}
.zz-lmap-more>summary::-webkit-details-marker{display:none}
.zz-lmap-more>summary i{font-size:12px;transition:transform .15s}
.zz-lmap-more[open]>summary i{transform:rotate(180deg)}
.zz-lmap-more .zz-lmap-list{margin-top:.375rem;max-height:14.75rem;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--zz-line-strong) transparent;padding-inline-end:.5rem}
@media (min-width:640px) and (max-width:1279.98px){.zz-lmap-more .zz-lmap-list{max-height:none}}
/* از ۱۲۸۰px قدِ ردیف را نقشه می‌دهد؛ ستونِ کنار (contain: size) هم‌قدِ آن است و فهرستِ بازشده درونِ خودش اسکرول می‌خورد */
@media (min-width:1280px){
  .zz-lmap-stage{min-height:23.75rem}
  .zz-lmap-rail{border-top:0;border-inline-start:1px solid var(--border);contain:size;overflow-y:auto;
    scrollbar-width:thin;scrollbar-color:var(--zz-line-strong) transparent}
  .zz-lmap-more .zz-lmap-list{max-height:none;overflow:visible;padding-inline-end:0}
  /* «N کشورِ دیگر» پایینِ ستون، هم‌ترازِ لبهٔ پایینِ نقشه */
  .zz-lmap-more{margin-top:auto;padding-top:.625rem;border-top:1px solid var(--border)}
}

.zz-lmap-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem 1.25rem;padding-block:.75rem}
.zz-lmap-aside{display:flex;align-items:center;flex-wrap:wrap;gap:.375rem 1.375rem}
.zz-lmap-aside-row{display:inline-flex;align-items:center;gap:.4375rem;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-lmap-aside-row i{font-size:14px;color:var(--muted-foreground)}
.zz-lmap-num{display:inline-flex;gap:.5rem;margin-inline-start:.25rem;color:var(--muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap}
.zz-lmap-num b{color:var(--secondary-foreground);font-weight:600}
.zz-lmap-credit{font-size:var(--text-xs);color:var(--muted-foreground);text-decoration:none}
.zz-lmap-credit:hover{color:var(--secondary-foreground);text-decoration:underline}
@media (max-width:640px){
  .zz-lnk-over .zz-kpi{padding:.875rem}
  .zz-lnk-over .zz-kpi .val{font-size:var(--text-xl)}
  .zz-kpi-ic{display:none}
  .zz-lmap-stage{padding:.75rem .25rem .625rem}
  .zz-lmap-rail{padding:.875rem 1rem 1rem}
  .zz-lmap-row{margin-inline:-.375rem;padding:.5rem .375rem}
  .zz-lnk-peak{white-space:normal;flex-wrap:wrap}
}

/* ==========================================================================
   تبلیغاتِ یوتیوب — «کمپینِ تازه» در یک صفحه (۲۰۲۶-۱۱-۰۳، ads/form، ماکاپِ zz-mockup-ads-new؛ §6.20)
   بسته، ویدیو، متن و مخاطب با شمارهٔ کار (شمارندهٔ CSS: کارتِ پنهان شمرده نمی‌شود)، و ستونِ چسبانِ پیش‌نمایش و سفارش.
   دو ستون از ۹۰۰ پیکسلِ عرضِ خودِ محتوا (container query، نه پنجره: منوی کنار ~۲۸۰ پیکسل می‌گیرد؛ ستونِ کنار ۳۲۰ و از ۱۰۴۰ پیکسل ۳۶۰)؛ کمتر از آن یک ستون و
   پیش‌نمایش درست بعد از «متنِ آگهی». پنجرهٔ کوتاه: فقط کارتِ سفارش چسبان است. زیرِ ۷۶۸ نوارِ پرداختِ پایینِ صفحه.
   رنگ فقط از توکن‌ها (قابِ یوتیوب از --zz-player-*، جای خالیِ تصویر و آواتار از --zz-chart-*)، اندازهٔ متن فقط --text-*.
   ========================================================================== */
.zz-anw{container-type:inline-size;container-name:zz-anw}
.zz-anw-grid{display:flex;flex-direction:column;gap:1.25rem;counter-reset:zz-anw-step}
.zz-anw-main,.zz-anw-side{display:contents}
.zz-anw-grid .kt-card{min-width:0}
.zz-anw-c-pkg{order:1}.zz-anw-c-vid{order:2}.zz-anw-c-txt{order:3}.zz-anw-c-pv{order:4}.zz-anw-c-aud{order:5}.zz-anw-c-sum{order:6}
@container zz-anw (min-width:900px){
  .zz-anw-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:start}
  .zz-anw-main,.zz-anw-side{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
  .zz-anw-side{gap:1rem}
}
@container zz-anw (min-width:1040px){.zz-anw-grid{grid-template-columns:minmax(0,1fr) 360px}}
@container zz-anw (min-width:900px) and (max-width:1039.98px){.zz-anw-flow i{display:none}}
/* یک ستون ولی پهن (تبلت): پیش‌نمایش کنارِ عنوان و زبانه‌هایش، نه کشیده به عرضِ کامل */
@container zz-anw (min-width:640px) and (max-width:899.98px){
  /* با پدرِ کارت: قاعدهٔ پایه‌ی .zz-anw-pv (display:flex) پایین‌تر می‌آید و بی آن این grid هرگز اعمال نمی‌شد (قاب ~۱۴۰ پیکسل جمع می‌شد) */
  .zz-anw-c-pv .zz-anw-pv{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-rows:auto 1fr;column-gap:24px;row-gap:12px;align-items:start}
  .zz-anw-pv-h{grid-column:1;grid-row:1}
  .zz-anw-pv-note{grid-column:1;grid-row:2;align-self:end}
  .zz-anw-stage{grid-column:2;grid-row:1 / span 2}
}
/* پنجرهٔ بلند (از ۹۰۰ پیکسل): کلِ ستونِ کنار چسبان */
@media (min-height:900px){
  @container zz-anw (min-width:900px){
    .zz-anw-side{position:sticky;top:calc(var(--header-height,70px) + 1.25rem)}
  }
}
/* پنجرهٔ کوتاه‌تر از ۹۰۰ پیکسل (لپ‌تاپ): پیش‌نمایش بالای ستون و فقط کارتِ سفارش چسبان، تا «پرداخت» همیشه در دسترس باشد
   (۲۰۲۶-۱۱-۰۳: میانِ ۸۲۰ و ۹۰۰ ستونِ کاملِ چسبان با کدِ تخفیف بلندتر از پنجره می‌شد و «پرداخت» زیرِ لبه می‌ماند) */
@media (max-height:899.98px){
  @container zz-anw (min-width:900px){
    .zz-anw-grid{grid-template-rows:auto 1fr}
    .zz-anw-main{grid-column:1;grid-row:1 / span 2}
    .zz-anw-side{display:contents}
    .zz-anw-c-pv{grid-column:2;grid-row:1}
    .zz-anw-c-sum{grid-column:2;grid-row:2;align-self:start;position:sticky;top:calc(var(--header-height,70px) + 1rem)}
    .zz-anw-flow{display:none}
    .zz-anw-sum{gap:.75rem}
  }
}

/* سرِ کارت‌ها: شماره‌ای که با کامل‌شدن تیک و با ایراد قرمز می‌شود */
.zz-anw-h{display:flex;align-items:center;gap:.75rem;min-width:0}
.zz-anw-h-t{display:flex;flex-direction:column;min-width:0}
.zz-anw-h-sub{font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:2px;font-weight:400}
.zz-anw-n{width:28px;height:28px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;color:var(--mono);background:var(--muted);border:1px solid var(--border);counter-increment:zz-anw-step}
.zz-anw-n > span::before{content:counter(zz-anw-step)}
.zz-anw-n i{font-size:14px;display:none}
.zz-anw-n.is-done{background:var(--zz-success-soft);border-color:var(--zz-success-line);color:var(--zz-success)}
.zz-anw-n.is-done i{display:inline}
.zz-anw-n.is-done > span{display:none}
.zz-anw-n.is-bad{background:var(--zz-danger-soft);border-color:var(--zz-danger-line);color:var(--zz-danger)}
.zz-anw-note{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--secondary-foreground);min-width:0}
.zz-anw-note i{font-size:14px;color:var(--muted-foreground)}
.zz-anw-srv-err{display:block;font-size:var(--text-xs);color:var(--destructive);line-height:1.8}
.zz-anw-hint{display:block;font-size:var(--text-xs);color:var(--secondary-foreground);line-height:1.8}

/* ۱. بسته‌ها، کنارِ هم */
.zz-anw-pkgs{display:grid;grid-template-columns:repeat(var(--zz-anw-cols,3),minmax(0,1fr));gap:12px;border:0;margin:0;padding:0;min-width:0}
.zz-anw-pkg{position:relative;display:flex;flex-direction:column;gap:14px;padding:18px 16px 16px;border:1px solid var(--border);border-radius:14px;background:var(--card);cursor:pointer;min-width:0;transition:border-color .15s,background .15s}
.zz-anw-pkg:hover{border-color:var(--zz-line-strong)}
.zz-anw-pkg > input{position:absolute;opacity:0;pointer-events:none}
.zz-anw-pkg:has(> input:checked){border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset;background:color-mix(in oklab,var(--primary) 5%,var(--card))}
.zz-anw-pkg:has(> input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.zz-anw-pkg-flag{position:absolute;top:-11px;inset-inline-start:14px}
.zz-anw-pkg-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.zz-anw-pkg-top > span:first-child{display:flex;flex-direction:column}
.zz-anw-pkg-name{font-size:var(--text-base);font-weight:600;color:var(--mono);line-height:1.5}
a.zz-anw-pkg-name{text-decoration:none}
.zz-anw-pkg-sum{font-size:var(--text-xs);color:var(--secondary-foreground);line-height:1.8;margin-top:2px;min-height:1.8em}
.zz-anw-radio{width:20px;height:20px;border-radius:50%;flex:none;border:1.5px solid var(--zz-line-strong);display:inline-flex;align-items:center;justify-content:center;margin-top:3px}
.zz-anw-radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--primary);transform:scale(0);transition:transform .15s}
.zz-anw-pkg:has(> input:checked) .zz-anw-radio{border-color:var(--primary)}
.zz-anw-pkg:has(> input:checked) .zz-anw-radio::after{transform:scale(1)}
.zz-anw-pkg-price{display:flex;align-items:baseline;gap:6px;margin-top:auto} /* قیمت و مقایسه پایینِ همهٔ کارت‌های یک ردیف */
.zz-anw-pkg-price b{font-size:var(--text-xl);font-weight:700;color:var(--mono);font-variant-numeric:tabular-nums}
.zz-anw-pkg-price > b + span{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-anw-pkg-rows{list-style:none;margin:0;padding:12px 0 0;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:9px}
.zz-anw-pkg-rows li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--text-2sm);color:var(--foreground)}
.zz-anw-pkg-rows li > span{display:inline-flex;align-items:center;gap:8px;min-width:0}
.zz-anw-pkg-rows li > span > i{font-size:16px;color:var(--muted-foreground)}
.zz-anw-pkg-rows i.zz-anw-yes{color:var(--zz-success-solid);font-size:16px}
.zz-anw-pkg-rows i.zz-anw-no{color:var(--muted-foreground);font-size:14px}
.zz-anw-pkg-rows li.is-off{color:var(--muted-foreground)}
.zz-anw-pkg-rows li.is-off bdi{text-decoration:line-through;text-decoration-color:var(--border)}
.zz-anw-pkg-rows b{font-weight:600;color:var(--mono)}
.zz-anw-pkg-mini{display:none}
.zz-anw-pkg.is-off{cursor:not-allowed;background:var(--zz-surface-2)}
.zz-anw-pkg.is-off:hover{border-color:var(--border)}
.zz-anw-pkg.is-off .zz-anw-pkg-name,.zz-anw-pkg.is-off .zz-anw-pkg-rows{opacity:.6}
.zz-anw-pkg-na{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-2sm);color:var(--secondary-foreground);min-height:33px}
.zz-anw-pkg-na i{font-size:15px;color:var(--muted-foreground)}

/* ۲. ویدیوها */
.zz-anw-vtools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.zz-anw-vtools .kt-select{width:190px}
.zz-anw-vsearch .kt-input{width:210px}
.zz-anw-vids{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 12px}
.zz-anw-vid{position:relative;display:flex;flex-direction:column;gap:8px;cursor:pointer;min-width:0;border-radius:12px;padding:6px;margin:-6px;transition:background .15s}
.zz-anw-vid[hidden]{display:none}
.zz-anw-vid:hover{background:var(--zz-hover)}
.zz-anw-vid > input{position:absolute;opacity:0;pointer-events:none}
.zz-anw-vid-t{font-size:var(--text-xs);line-height:1.75;color:var(--foreground);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.zz-anw-vid:has(> input:checked) .zz-anw-th{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--primary)}
.zz-anw-vid:has(> input:checked) .zz-anw-vid-t{color:var(--mono);font-weight:600}
.zz-anw-vid:has(> input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.zz-anw-vid-ok{position:absolute;top:12px;inset-inline-start:12px;width:24px;height:24px;border-radius:50%;display:none;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-foreground);z-index:2}
.zz-anw-vid-ok i{font-size:13px}
.zz-anw-vid:has(> input:checked) .zz-anw-vid-ok{display:inline-flex}
.zz-anw-vid.is-live{cursor:not-allowed}
.zz-anw-vid.is-live:hover{background:transparent}
.zz-anw-vid.is-live .zz-anw-th{filter:grayscale(.85);opacity:.55}
.zz-anw-vid.is-live .zz-anw-vid-t{color:var(--muted-foreground)}
.zz-anw-vid-why{font-size:var(--text-xs);color:var(--secondary-foreground);display:inline-flex;align-items:center;gap:5px}
.zz-anw-vid-why i{font-size:13px}
/* بندانگشتی: تصویرِ خودِ ویدیو؛ تا برسد (یا نباشد) یک شیبِ رنگیِ نمودار جایش است */
.zz-anw-th{position:relative;display:block;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;background:linear-gradient(135deg,var(--zz-chart-1),var(--zz-chart-5))}
.zz-anw-th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.zz-anw-dur{position:absolute;bottom:6px;inset-inline-end:6px;z-index:1;font-size:var(--text-xs);line-height:1.6;padding:0 5px;border-radius:4px;background:var(--zz-player-chip);color:var(--zz-player-ink)}
.zz-anw-dur .font-mono{font-size:var(--text-xs)}
.zz-anw-dur.is-live{background:var(--zz-danger-solid);font-family:inherit;font-weight:700}
.zz-anw-vfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.zz-anw-short{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.zz-anw-short[hidden]{display:none}
.zz-anw-short-l{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-2sm);color:var(--mono);font-weight:500}
.zz-anw-short-l i{font-size:18px;color:var(--muted-foreground)}
.zz-anw-short .kt-select{width:250px;max-width:100%}
.zz-anw-more{margin-inline-start:auto}

/* ۳. متن */
.zz-anw-txt{display:flex;flex-direction:column;gap:20px}
.zz-anw-f{display:flex;flex-direction:column;gap:8px;min-width:0}
.zz-anw-f-l{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:var(--text-2sm);color:var(--mono);font-weight:500}
.zz-anw-f-l small{font-size:var(--text-xs);color:var(--muted-foreground);font-weight:400}
.zz-anw-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.zz-anw-one{display:flex;flex-direction:column;gap:10px}
.zz-anw-fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.zz-anw-fld[hidden]{display:none}
.zz-anw-in{position:relative;min-width:0}
.zz-anw-in .kt-input{width:100%;padding-left:62px} /* صفحه همیشه راست‌به‌چپ است: شمارنده سمتِ چپ، چه متن فارسی باشد چه لاتین */
/* خانهٔ خالیِ dir=auto چپ‌به‌راست حساب می‌شود و نمونهٔ فارسی کنارِ شمارنده می‌چسبید؛ تا چیزی نوشته نشده راست‌به‌چپ */
.zz-anw-in .kt-input:placeholder-shown,.zz-anw-cpn-in .kt-input:placeholder-shown{direction:rtl}
.zz-anw-cnt{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums;pointer-events:none}
.zz-anw-cnt.is-full{color:var(--destructive)}
.zz-anw-fld.is-bad .kt-input{border-color:var(--destructive)}
.zz-anw-err{display:none;align-items:flex-start;gap:6px;font-size:var(--text-xs);color:var(--destructive);line-height:1.8}
.zz-anw-err i{font-size:14px;margin-top:3px}
.zz-anw-fld.is-bad .zz-anw-err{display:flex}
.zz-anw-add{align-self:flex-start}
.zz-anw-add[hidden]{display:none}

/* ۴. مخاطب */
.zz-anw-aud{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
.zz-anw-aud-b{display:flex;flex-direction:column;gap:12px;min-width:0;padding-inline:0 20px}
.zz-anw-aud-b + .zz-anw-aud-b{padding-inline:20px 0;border-inline-start:1px solid var(--border)}
.zz-anw-aud-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.zz-anw-aud-t{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-2sm);color:var(--mono);font-weight:500}
.zz-anw-aud-t i{font-size:18px;color:var(--muted-foreground)}
.zz-anw-seg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--zz-surface-3);border:1px solid var(--border)}
.zz-anw-seg label{position:relative;cursor:pointer}
.zz-anw-seg input{position:absolute;opacity:0;pointer-events:none}
.zz-anw-seg span{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:7px;font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap}
.zz-anw-seg input:checked + span{background:var(--card);color:var(--mono);font-weight:600;box-shadow:var(--zz-shadow),0 0 0 1px var(--border)}
.zz-anw-seg input:focus-visible + span{outline:2px solid var(--primary);outline-offset:1px}
.zz-anw-all{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--zz-surface-2);border:1px solid var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-anw-all i{font-size:18px;color:var(--zz-brand-text)}
.zz-anw-aud-b:has(.zz-anw-seg input[value="all"]:checked) .zz-anw-chips{display:none}
.zz-anw-aud-b:has(.zz-anw-seg input[value="some"]:checked) .zz-anw-all{display:none}
.zz-anw-chips{display:flex;flex-wrap:wrap;gap:6px;position:relative;align-items:center}
.zz-anw-chiplist{display:contents}
.zz-anw-chip{display:inline-flex;align-items:center;gap:4px;padding-block:3px;padding-inline:10px 4px;border:1px solid var(--border);border-radius:999px;font-size:var(--text-xs);background:var(--zz-surface-2);color:var(--foreground);line-height:1.7}
.zz-anw-chip button{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--muted-foreground)}
.zz-anw-chip button:hover{background:var(--border);color:var(--foreground)}
.zz-anw-chip button i{font-size:10px}
.zz-anw-pick > summary{list-style:none}
.zz-anw-pick > summary::-webkit-details-marker{display:none}
.zz-anw-chip-add{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border:1px dashed var(--zz-line-strong);border-radius:999px;font-size:var(--text-xs);color:var(--zz-brand-text);line-height:1.7;background:transparent;cursor:pointer}
.zz-anw-chip-add:hover,.zz-anw-pick[open] > .zz-anw-chip-add{background:var(--zz-brand-soft);border-color:var(--zz-brand-line)}
.zz-anw-chip-add i{font-size:11px}
.zz-anw-pop{position:absolute;z-index:30;top:calc(100% + 6px);inset-inline-start:0;width:290px;max-width:100%;background:var(--popover);border:1px solid var(--border);border-radius:12px;box-shadow:var(--zz-shadow-pop);padding:10px;display:flex;flex-direction:column;gap:8px}
.zz-anw-pop.is-up{top:auto;bottom:calc(100% + 6px)}
.zz-anw-pop-list{display:flex;flex-direction:column;gap:1px;max-height:210px;overflow:auto;overscroll-behavior:contain}
.zz-anw-pop-list label{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px;font-size:var(--text-2sm);cursor:pointer}
.zz-anw-pop-list label[hidden]{display:none}
.zz-anw-pop-list label:hover{background:var(--zz-hover)}
.zz-anw-pop-f{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:6px;border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--secondary-foreground)}

/* ستونِ کنار: پیش‌نمایش (قابِ تیرهٔ خودِ یوتیوب، مستقل از تمِ پنل؛ قدِ ثابت تا عوض‌کردنِ زبانه صفحه را نپراند) */
.zz-anw-pv{display:flex;flex-direction:column;gap:12px}
.zz-anw-pv-h{display:flex;flex-direction:column;gap:10px}
.zz-anw-pv-t{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-anw-pv-t i{font-size:16px;color:var(--muted-foreground)}
.zz-anw-tabs{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr));gap:2px;padding:3px;border-radius:10px;background:var(--zz-surface-3);border:1px solid var(--border)}
.zz-anw-tabs[hidden],.zz-anw-tabs button[hidden]{display:none}
.zz-anw-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:5px 4px;border-radius:7px;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-anw-tabs button i{font-size:14px}
.zz-anw-tabs button[aria-selected="true"]{background:var(--card);color:var(--mono);font-weight:600;box-shadow:var(--zz-shadow),0 0 0 1px var(--border)}
.zz-anw-tabs button:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
.zz-anw-stage{background:var(--zz-player-bg);color:var(--zz-player-text);border-radius:14px;padding:12px;height:252px;display:flex;flex-direction:column;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1px var(--zz-player-line)}
.zz-anw-stage[hidden]{display:none}
.zz-anw-yt-ad{font-size:var(--text-xs);font-weight:700;padding:0 5px;border-radius:4px;background:var(--zz-player-ink);color:var(--zz-player-bg);line-height:1.6;flex:none}
.zz-anw-yt-av{width:30px;height:30px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;color:var(--zz-player-ink);background:linear-gradient(135deg,var(--zz-chart-1),var(--zz-chart-5))}
.zz-anw-yt-cta{display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;border-radius:999px;background:var(--zz-chart-2);color:var(--zz-player-bg);font-size:var(--text-xs);font-weight:700;white-space:nowrap}
.zz-anw-yt-h{font-size:var(--text-xs);font-weight:700;color:var(--zz-player-ink);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.zz-anw-yt-m{font-size:var(--text-xs);color:var(--zz-player-muted);display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}
.zz-anw-yt-m bdi{overflow:hidden;text-overflow:ellipsis}
.zz-anw-yt-d{font-size:var(--text-xs);color:var(--zz-player-text);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.zz-anw-ghost{display:block;height:7px;border-radius:4px;background:var(--zz-player-raise)}
.zz-anw-ghost-th{width:44%;flex:none;aspect-ratio:16 / 9;border-radius:8px;background:var(--zz-player-raise)}
.zz-anw-feed{display:flex;flex-direction:column;gap:12px}
.zz-anw-feed-row{display:flex;gap:10px;align-items:flex-start}
.zz-anw-feed-row > div{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.zz-anw-feed-row.is-ghost{opacity:.6}
.zz-anw-feed-row.is-ghost > div{gap:8px;padding-top:4px}
.zz-anw-feed-row.is-ghost:last-child{display:none}
.zz-anw-feed-row > .zz-anw-th{width:44%;flex:none;border-radius:8px}
.zz-anw-player{position:relative;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;flex:none}
.zz-anw-player > .zz-anw-th{position:absolute;inset:0;border-radius:0;aspect-ratio:auto}
.zz-anw-pl-top{position:absolute;top:8px;inset-inline-end:8px;z-index:2;font-size:var(--text-xs);padding:1px 7px;border-radius:4px;background:var(--zz-player-chip);color:var(--zz-player-ink)}
.zz-anw-pl-skip{position:absolute;bottom:14px;inset-inline-start:0;z-index:2;display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);padding:6px 12px;background:var(--zz-player-scrim);color:var(--zz-player-ink);border:1px solid var(--zz-player-ring);border-inline-start:0}
.zz-anw-pl-skip i{font-size:12px}
.zz-anw-pl-bar{position:absolute;bottom:0;inset-inline:0;height:3px;z-index:2;background:var(--zz-player-line)}
.zz-anw-pl-bar::before{content:"";position:absolute;inset-block:0;inset-inline-end:0;width:22%;background:var(--zz-chart-4)}
.zz-anw-pl-comp{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 8px;flex:none;border-radius:10px;background:var(--zz-player-field);border:1px solid var(--zz-player-line)}
.zz-anw-pl-comp > div{display:flex;flex-direction:column;min-width:0;flex:1}
.zz-anw-pl-comp .zz-anw-yt-h{-webkit-line-clamp:1}
.zz-anw-pl-comp .zz-anw-yt-av{width:26px;height:26px}
.zz-anw-stage[data-stage="in_stream"]{padding:10px}
.zz-anw-shorts{display:flex;justify-content:center;align-items:center;gap:10px}
.zz-anw-sh{position:relative;height:228px;aspect-ratio:9 / 16;border-radius:14px;overflow:hidden;flex:none}
.zz-anw-sh > .zz-anw-th{position:absolute;inset:0;border-radius:0;aspect-ratio:auto;background:linear-gradient(180deg,var(--zz-chart-1),var(--zz-chart-5) 70%,var(--zz-chart-4))}
.zz-anw-sh > .zz-anw-th::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,var(--zz-player-scrim))}
.zz-anw-sh-info{position:absolute;inset-inline:0;bottom:0;z-index:2;padding:9px;display:flex;flex-direction:column;gap:5px}
.zz-anw-sh-info .zz-anw-yt-av{width:22px;height:22px}
.zz-anw-sh-who{display:flex;align-items:center;gap:6px;min-width:0}
.zz-anw-sh-who > span:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;font-size:var(--text-xs);color:var(--zz-player-ink);line-height:1.3}
.zz-anw-sh-who b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.zz-anw-sh-info .zz-anw-yt-cta{padding:4px 10px}
.zz-anw-sh-acts{position:absolute;inset-inline-end:7px;bottom:124px;z-index:2;display:flex;flex-direction:column;gap:12px;align-items:center;color:var(--zz-player-ink)}
.zz-anw-sh-acts i{font-size:16px;filter:drop-shadow(0 1px 2px var(--zz-player-scrim))}
.zz-anw-sh-side{width:26px;height:176px;border-radius:10px;background:var(--zz-player-raise);opacity:.6}
.zz-anw-pv-note{font-size:var(--text-xs);color:var(--muted-foreground);display:flex;align-items:center;gap:6px}
.zz-anw-pv-note i{font-size:14px}

/* ستونِ کنار: سفارش */
.zz-anw-sum{display:flex;flex-direction:column;gap:14px}
.zz-anw-sum-pkg{display:flex;align-items:center;gap:12px}
.zz-anw-ic{width:40px;height:40px;border-radius:11px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-anw-ic i{font-size:20px}
.zz-anw-sum-pkg-n{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-anw-places{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}
.zz-anw-place{display:inline-flex;align-items:center;gap:4px;padding:0 7px;border:1px solid var(--border);border-radius:999px;font-size:var(--text-xs);line-height:1.8;color:var(--secondary-foreground);background:var(--zz-surface-2)}
.zz-anw-place[hidden]{display:none}
.zz-anw-place i{font-size:12px;color:var(--zz-brand-text)}
.zz-anw-cpn-box{display:flex;flex-direction:column;gap:6px}
.zz-anw-cpn-box[hidden],.zz-anw-cpn[hidden],.zz-anw-cpn-in[hidden]{display:none}
.zz-anw-cpn{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-block:4px;padding-inline:10px 4px;border-radius:10px;border:1px dashed var(--zz-success-line);background:var(--zz-success-soft)}
.zz-anw-cpn-l{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--zz-success);min-width:0;font-weight:600;flex-wrap:wrap}
.zz-anw-cpn-l i{font-size:16px}
.zz-anw-cpn-l bdi{font-weight:700;padding-inline-end:8px;border-inline-end:1px solid var(--zz-success-line)}
.zz-anw-cpn-in{display:flex;gap:8px}
.zz-anw-cpn-in .kt-input{flex:1 1 auto;min-width:0}
.zz-anw-cpn-in .kt-input::placeholder{font-family:var(--font-sans)}
.zz-anw-total{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--border)}
.zz-anw-total-l{font-size:var(--text-2sm);color:var(--secondary-foreground);padding-bottom:4px}
.zz-anw-total-r{display:flex;flex-direction:column;align-items:flex-end}
.zz-anw-was{font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums}
.zz-anw-total-v{display:flex;align-items:baseline;gap:6px}
.zz-anw-total-v b{font-size:var(--text-2xl);font-weight:700;color:var(--mono);font-variant-numeric:tabular-nums;line-height:1.2}
.zz-anw-total-v span{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-anw-total.is-stale .zz-anw-total-v,.zz-anw-total.is-stale .zz-anw-was{opacity:.45}
.zz-anw-flow{list-style:none;margin:0;padding:0;display:flex;align-items:center;justify-content:space-between;gap:4px;flex-wrap:wrap}
.zz-anw-flow li{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap}
.zz-anw-flow li + li::before{content:"";width:10px;height:1px;background:var(--zz-line-strong);margin-inline-end:4px}
.zz-anw-flow li.is-now{color:var(--zz-brand-text);font-weight:600}
.zz-anw-flow i{font-size:13px}
.zz-anw-terms{position:relative;display:flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-anw-terms label{cursor:pointer}
.zz-anw-terms-link{color:var(--zz-brand-text);text-decoration:underline dotted;text-underline-offset:3px;font-size:inherit}
.zz-anw-terms-pop{position:absolute;z-index:30;inset-inline:0;bottom:calc(100% + 8px);background:var(--popover);border:1px solid var(--border);border-radius:12px;box-shadow:var(--zz-shadow-pop);padding:12px 14px}
.zz-anw-terms-pop[hidden]{display:none}
.zz-anw-terms-pop ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.zz-anw-terms-pop li{display:flex;align-items:flex-start;gap:8px;font-size:var(--text-xs);line-height:1.8;color:var(--foreground)}
.zz-anw-terms-pop li i{font-size:15px;color:var(--zz-brand-text);margin-top:3px;flex:none}
.zz-anw-lock-note{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-anw-lock-note i{font-size:14px;color:var(--muted-foreground)}
.zz-anw-pay{width:100%;justify-content:center}
.zz-anw-pay-why{font-size:var(--text-xs);color:var(--secondary-foreground);text-align:center}
.zz-anw-pay-why[hidden]{display:none}

/* حسابِ بی‌کانال (و «بسته‌ای نیست»): یک ردیف در همان کارت، نه جعبه‌ای تنها */
.zz-anw-connect{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px;border:1px dashed var(--zz-line-strong);border-radius:12px;background:var(--zz-surface-2)}
.zz-anw-connect-ic{width:44px;height:44px;border-radius:12px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--zz-danger-soft);color:var(--zz-danger)}
.zz-anw-connect-ic i{font-size:22px}
.zz-anw-connect-t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}
.zz-anw-connect-t b{font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-anw-connect-t span{font-size:var(--text-xs);color:var(--secondary-foreground)}

/* لپ‌تاپِ کوتاه‌تر از ۹۰۰: خطِ روند پنهان و فاصله‌ها کمتر تا ستونِ کنار در یک نگاه جا شود */
@media (max-height:899.98px){.zz-anw-flow{display:none}.zz-anw-sum{gap:12px}}

/* میانه: یک ستون؛ مخاطب و کارت‌ها عرضِ کامل */
@container zz-anw (max-width:719.98px){
  .zz-anw-vids{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zz-anw-aud{grid-template-columns:minmax(0,1fr);gap:18px}
  .zz-anw-aud-b,.zz-anw-aud-b + .zz-anw-aud-b{padding:0;border:0}
  .zz-anw-aud-b + .zz-anw-aud-b{padding-top:18px;border-top:1px solid var(--border)}
}

/* گوشی */
.zz-anw-mbar{display:none}
@media (max-width:767.98px){
  .zz-anw-page{padding-bottom:84px}
  .zz-anw-mbar{display:flex;position:fixed;z-index:40;inset-inline:0;bottom:0;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--card);border-top:1px solid var(--border);box-shadow:var(--zz-shadow-pop);transition:transform .2s}
  .zz-anw-mbar.is-away{transform:translateY(110%)}
  .zz-anw-mbar-v{display:flex;flex-direction:column;line-height:1.4}
  .zz-anw-mbar-v small{font-size:var(--text-xs);color:var(--secondary-foreground)}
  .zz-anw-mbar-v b{font-size:var(--text-lg);color:var(--mono);font-variant-numeric:tabular-nums}
  .zz-anw-unit{font-size:var(--text-xs);color:var(--secondary-foreground);font-weight:400;margin-inline-start:4px}
  .zz-anw-mbar .kt-btn{min-height:44px;padding-inline:18px}
  .zz-anw-mbar .kt-btn[aria-disabled="true"]{opacity:.5}
  .zz-anw-pkgs{grid-template-columns:minmax(0,1fr);gap:10px}
  .zz-anw-pkg{flex-direction:row;align-items:center;gap:12px;padding:14px}
  .zz-anw-pkg-flag{top:-10px}
  .zz-anw-pkg .zz-anw-pkg-top{flex:1;min-width:0;flex-direction:row-reverse;justify-content:flex-end;align-items:center}
  .zz-anw-pkg .zz-anw-radio{margin-top:0}
  .zz-anw-pkg-sum,.zz-anw-pkg-rows{display:none}
  .zz-anw-pkg-mini{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:2px}
  .zz-anw-pkg-mini i{font-size:13px;color:var(--muted-foreground)}
  .zz-anw-pkg-mini .is-off{color:var(--muted-foreground);text-decoration:line-through}
  .zz-anw-pkg-price{flex-direction:column;align-items:flex-end;gap:0;flex:none}
  .zz-anw-pkg-price b{font-size:var(--text-base)}
  .zz-anw-pkg-na{min-height:0;font-size:var(--text-xs)}
  .zz-anw-vids{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zz-anw-vtools{width:100%}
  .zz-anw-vtools .kt-select,.zz-anw-vsearch{flex:1 1 140px;width:auto;min-width:0}
  .zz-anw-vsearch .kt-input{width:100%}
  .zz-anw .kt-select{min-height:44px} /* هم‌قدِ فیلدها و دکمه‌ها (هدفِ لمسیِ ۴۴ پیکسلیِ سراسری) */
  .zz-anw-two{grid-template-columns:minmax(0,1fr)}
  .zz-anw-short,.zz-anw-short .kt-select{width:100%}
  .zz-anw-more{margin-inline-start:0}
  .zz-anw .kt-card-header{flex-wrap:wrap;gap:10px}
}

/* ==========================================================================
   مشاوره‌های تخصصی یوتیوب — فرمِ رزرو، بازطراحیِ ۲۰۲۶-۱۱-۰۳ (consultation/*، §6.19؛ سعید: «همه رو بساز، با پیشنهادهات موافقم»
   روی ماکاپِ zz-mockup-consultation). یک صفحه برای پنل (layouts.dashboard) و قالبِ عمومی (layouts.consultation):
   ردیفِ عنوان، نوارِ پنج‌گامه، ستونِ اصلی و کارتِ ثابتِ «رزروِ شما» کنارش؛ در عرضِ کم کارتِ کنار جایش را به خلاصهٔ فشردهٔ
   بالا و نوارِ چسبانِ پایین می‌دهد. پهنا با container query سنجیده می‌شود، نه با عرضِ پنجره: در پنل منوی کنار جا می‌گیرد.
   نوارِ پایین sticky است، نه fixed (کانتینر containment دارد و fixed را در خودش نگه می‌داشت).
   رنگ فقط از توکن‌ها، اندازهٔ متن فقط var(--text-*) (TypeScaleTest)؛ px فقط برای آیکن‌ها.
   نام‌هایی که تست‌ها در صفحه می‌شمارند (zz-cns-cat، zz-cns-card، zz-cns-calday، zz-cns-daypanel، zz-cns-slot) همان قبلی‌اند.
   ========================================================================== */
.zz-cns-page{container:zzcns / inline-size;width:100%;max-width:1180px;margin-inline:auto;display:flex;flex-direction:column;gap:18px}
.zz-cns-page [hidden]{display:none !important}
.zz-cns-page .zz-edit{color:var(--zz-brand-text);text-decoration:none;font-size:var(--text-xs);font-weight:500;white-space:nowrap}
.zz-cns-page .zz-edit:hover{text-decoration:underline}
.zz-cns-err{font-size:var(--text-xs);color:var(--zz-danger);line-height:1.9}
.zz-cns-good{color:var(--zz-success)}
.zz-cns-link{color:var(--zz-brand-text);font-weight:600}
.zz-cns-link:hover{text-decoration:underline}

/* پیام‌ها: قاب و متنِ رنگی، بی زمینهٔ پر */
.zz-cns-alert{--zz-tone:var(--zz-danger);display:flex;align-items:flex-start;gap:10px;border-radius:12px;border:1px solid color-mix(in oklab,var(--zz-tone) 32%,transparent);
    background:color-mix(in oklab,var(--zz-tone) 6%,var(--card));padding:12px 14px;font-size:var(--text-2sm);line-height:1.9;color:var(--foreground)}
.zz-cns-alert > i{font-size:18px;color:var(--zz-tone);margin-top:3px}
.zz-cns-alert--info{--zz-tone:var(--zz-info)}
.zz-cns-alert--ok{--zz-tone:var(--zz-success)}
.zz-cns-alert--warn{--zz-tone:var(--zz-warning)}
.zz-cns-alert b{color:var(--mono)}

/* ── ردیفِ عنوان ── */
.zz-cns-top{display:flex;align-items:flex-end;justify-content:space-between;gap:10px 16px;flex-wrap:wrap}
.zz-cns-top .zz-crumbs{margin:0 0 2px}
.zz-cns-top .zz-crumbs ol{padding-bottom:0}
.zz-cns-title{margin:0;font-size:var(--text-xl);font-weight:600;color:var(--mono);line-height:1.5}
.zz-cns-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 12px;font-size:var(--text-xs);border:1px solid var(--border);
    color:var(--secondary-foreground);background:var(--card);max-width:100%}
.zz-cns-pill i{font-size:14px;color:var(--muted-foreground)}

/* ── نوارِ گام‌ها ── */
.zz-cns-steps{list-style:none;margin:0;padding:14px 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:center;background:var(--card);
    border:1px solid var(--border);border-radius:14px;box-shadow:var(--zz-shadow)}
.zz-cns-step{display:flex;align-items:center;min-width:0}
.zz-cns-step:not(:last-child)::after{content:"";flex:1 1 auto;min-width:24px;height:2px;border-radius:2px;background:var(--border);margin-inline:12px 14px}
.zz-cns-step.is-done:not(:last-child)::after{background:var(--zz-brand-line)}
.zz-cns-step-in{display:flex;align-items:center;gap:10px;min-width:0;flex:0 1 auto;color:inherit;text-decoration:none}
.zz-cns-step-n{flex:none;width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;
    background:var(--muted);color:var(--secondary-foreground);border:1px solid var(--border)}
.zz-cns-step-n i{font-size:15px}
.zz-cns-step.is-done .zz-cns-step-n{background:var(--zz-brand-soft);color:var(--zz-brand-text);border-color:var(--zz-brand-line)}
.zz-cns-step.is-current .zz-cns-step-n{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);box-shadow:0 0 0 4px var(--zz-brand-soft)}
.zz-cns-step.is-ok .zz-cns-step-n{background:var(--zz-success-solid);border-color:var(--zz-success-solid);color:var(--primary-foreground);box-shadow:0 0 0 4px var(--zz-success-soft)}
.zz-cns-step-b{display:flex;flex-direction:column;min-width:0;overflow:hidden}
.zz-cns-step-t{font-size:var(--text-2sm);font-weight:600;color:var(--muted-foreground);white-space:nowrap}
.zz-cns-step.is-done .zz-cns-step-t,.zz-cns-step.is-current .zz-cns-step-t,.zz-cns-step.is-ok .zz-cns-step-t{color:var(--mono)}
.zz-cns-step-v{font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
a.zz-cns-step-in:hover .zz-cns-step-t{color:var(--zz-brand-text)}
a.zz-cns-step-in:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:8px}

.zz-cns-psteps{display:none;flex-direction:column;gap:8px;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-radius:14px}
.zz-cns-psteps-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.zz-cns-psteps-t{font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-cns-psteps-n{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-psteps-bar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.zz-cns-psteps-bar span{height:4px;border-radius:4px;background:var(--border)}
.zz-cns-psteps-bar span.on{background:var(--primary)}

/* ── آواتار: عکس، یا حروفِ اولِ نام با رنگِ ثابتِ هر مشاور ── */
.zz-cns-av{--c:var(--zz-chart-1);flex:none;width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;
    font-size:var(--text-xs);font-weight:700;white-space:nowrap;line-height:1;background:color-mix(in oklab,var(--c) 18%,var(--card));
    color:color-mix(in oklab,var(--c) 72%,var(--mono));border:1px solid color-mix(in oklab,var(--c) 32%,transparent)}
.zz-cns-av img{width:100%;height:100%;object-fit:cover;display:block}
.zz-cns-av[data-c="2"]{--c:var(--zz-chart-2)}
.zz-cns-av[data-c="3"]{--c:var(--zz-chart-3)}
.zz-cns-av[data-c="4"]{--c:var(--zz-chart-4)}
.zz-cns-av[data-c="5"]{--c:var(--zz-chart-5)}
.zz-cns-av--sm{width:28px;height:28px}
.zz-cns-av--lg{width:48px;height:48px;font-size:var(--text-sm)}
.zz-cns-av--xl{width:72px;height:72px;font-size:var(--text-lg)}
.zz-cns-stack{display:inline-flex;align-items:center}
.zz-cns-stack .zz-cns-av{position:relative;box-shadow:0 0 0 2px var(--card)}
.zz-cns-stack .zz-cns-av + .zz-cns-av{margin-inline-start:-7px}
.zz-cns-stack .zz-cns-av:nth-child(1){z-index:4}
.zz-cns-stack .zz-cns-av:nth-child(2){z-index:3}
.zz-cns-stack .zz-cns-av:nth-child(3){z-index:2}
.zz-cns-stack .more{margin-inline-start:4px;font-size:var(--text-xs);color:var(--secondary-foreground)}

/* ── دو ستون: گامِ جاری و کارتِ «رزروِ شما» ── */
.zz-cns-form{display:flex;flex-direction:column;gap:18px;min-width:0}
.zz-cns-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.zz-cns-main{container:zzcnsmain / inline-size;display:flex;flex-direction:column;gap:20px;min-width:0}
.zz-cns-side{display:flex;flex-direction:column;gap:20px;min-width:0}
.zz-cns-hd{display:flex;flex-direction:column;min-width:0}
.zz-cns-hd .kt-card-title{line-height:1.6}
.zz-cns-hd-sub{font-size:var(--text-2sm);color:var(--secondary-foreground);margin-top:2px;font-weight:400}

/* ── گامِ ۱: کارتِ دسته‌ها ── */
.zz-cns-cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.zz-cns-cat{position:relative;display:flex;flex-direction:column;gap:2px;padding:14px 14px 12px;border:1px solid var(--border);border-radius:12px;background:var(--card);
    box-shadow:var(--zz-shadow);text-decoration:none;color:inherit;min-width:0;transition:border-color .15s,background .15s}
.zz-cns-cat:hover{border-color:var(--zz-line-strong)}
.zz-cns-cat:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.zz-cns-cat.is-on{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset;background:color-mix(in oklab,var(--primary) 4%,var(--card))}
.zz-cns-cat .t{font-size:var(--text-sm);font-weight:600;color:var(--mono);line-height:1.6;padding-inline-end:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-cat .p{font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap;min-height:1.9em;line-height:1.9}
.zz-cns-cat .p b{color:var(--mono);font-weight:700;font-size:var(--text-2sm)}
.zz-cns-cat .f{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}
.zz-cns-cat .n{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap}
.zz-cns-cat .n i{font-size:14px;color:var(--muted-foreground)}
.zz-cns-cat .ok{position:absolute;top:10px;inset-inline-end:10px;width:20px;height:20px;border-radius:50%;background:var(--primary);color:var(--primary-foreground);
    display:none;align-items:center;justify-content:center}
.zz-cns-cat .ok i{font-size:12px}
.zz-cns-cat.is-on .ok{display:inline-flex}

/* ── گامِ ۱: گروه‌ها، زیردسته‌ها و کارتِ سرویس‌ها ── */
.zz-cns-group{scroll-margin-top:96px}
.zz-cns-ghead h2{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--mono);line-height:1.6}
.zz-cns-gbody{display:flex;flex-direction:column;gap:18px}
.zz-cns-chips{display:flex;flex-wrap:wrap;gap:6px}
.zz-cns-chip{border:1px solid var(--border);background:var(--card);color:var(--secondary-foreground);border-radius:999px;padding:4px 12px;font:inherit;
    font-size:var(--text-xs);cursor:pointer}
.zz-cns-chip:hover{background:var(--zz-hover)}
.zz-cns-chip:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.zz-cns-chip.is-on{background:var(--mono);border-color:var(--mono);color:var(--mono-foreground)}
.zz-cns-sec{display:flex;flex-direction:column;gap:12px}
.zz-cns-sub{display:flex;flex-direction:column;gap:2px}
.zz-cns-sub h3{display:flex;align-items:center;gap:12px;margin:0;font-size:var(--text-2sm);font-weight:600;color:var(--secondary-foreground)}
.zz-cns-sub h3::after{content:"";flex:1;height:1px;background:var(--border)}
.zz-cns-sub .s{font-size:var(--text-xs);color:var(--secondary-foreground);line-height:1.9}
.zz-cns-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.zz-cns-card{border:1px solid var(--border);border-radius:12px;background:var(--card);display:flex;flex-direction:column;min-width:0;transition:border-color .15s}
.zz-cns-card:hover{border-color:var(--zz-line-strong)}
.zz-cns-card:has(input:checked){border-color:var(--zz-brand-line)}
.zz-cns-card .h{padding:16px 16px 10px;display:flex;flex-direction:column;gap:4px}
.zz-cns-card .h .t{margin:0;font-size:var(--text-base);font-weight:600;color:var(--mono);line-height:1.6}
.zz-cns-card .h .s{margin:0;font-size:var(--text-2sm);color:var(--secondary-foreground);line-height:1.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.zz-cns-card .m{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:0 16px 14px;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-card .m > span{display:inline-flex;align-items:center;gap:5px}
.zz-cns-card .m i{font-size:14px;color:var(--muted-foreground)}
.zz-cns-card .m .from{margin-inline-start:auto}
.zz-cns-card .m .from b{color:var(--mono);font-weight:700;font-size:var(--text-2sm)}
.zz-cns-opts{margin-top:auto;border-top:1px solid var(--border);padding:8px;display:flex;flex-direction:column;gap:4px;background:var(--zz-surface-2);border-radius:0 0 12px 12px}
.zz-cns-opt{position:relative;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;border:1px solid transparent}
.zz-cns-opt:hover{background:var(--zz-hover)}
.zz-cns-opt input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%}
.zz-cns-opt:has(input:checked){background:var(--card);border-color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}
.zz-cns-opt:has(input:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.zz-cns-opt .dot{flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--zz-line-strong);background:var(--zz-field)}
.zz-cns-opt:has(input:checked) .dot{border-color:var(--primary);background:var(--primary);box-shadow:inset 0 0 0 3.5px var(--card)}
.zz-cns-opt .b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.zz-cns-opt .n{font-size:var(--text-2sm);font-weight:600;color:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-opt .s{font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-opt .p{flex:none;font-size:var(--text-2sm);font-weight:700;color:var(--mono);white-space:nowrap}
.zz-cns-opt .p small{font-size:var(--text-xs);font-weight:400;color:var(--secondary-foreground)}
.zz-cns-empty{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:var(--text-2sm);color:var(--secondary-foreground);line-height:1.9}
.zz-cns-empty b{font-size:var(--text-base);color:var(--mono);font-weight:600}

/* ── کارتِ کنار: «رزروِ شما» ── */
.zz-cns-sum .kt-card-header{gap:8px}
.zz-cns-sum .kt-card-content{display:flex;flex-direction:column;gap:16px}
.zz-cns-sum .kt-card-footer{flex-direction:column;align-items:stretch;gap:8px}
.zz-cns-sum-svc{display:flex;gap:12px;align-items:flex-start}
.zz-cns-sum-ico{flex:none;width:40px;height:40px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-cns-sum-ico i{font-size:20px}
.zz-cns-sum-svc .t{font-size:var(--text-sm);font-weight:600;color:var(--mono);line-height:1.7}
.zz-cns-sum-svc .s{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-sum-svc .zz-edit{margin-inline-start:auto;flex:none}
.zz-cns-who{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:12px;background:var(--zz-surface-2);border:1px solid var(--border)}
.zz-cns-who-h{display:flex;gap:12px;align-items:center;min-width:0}
.zz-cns-who-b{display:flex;flex-direction:column;min-width:0}
.zz-cns-who-n{font-size:var(--text-sm);font-weight:600;color:var(--mono)}
.zz-cns-who-s{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-who-bio{font-size:var(--text-xs);color:var(--secondary-foreground);line-height:1.9}
.zz-cns-rows{display:flex;flex-direction:column;gap:11px;margin:0}
.zz-cns-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:var(--text-2sm)}
.zz-cns-row dt{display:flex;align-items:center;gap:8px;color:var(--secondary-foreground);white-space:nowrap}
.zz-cns-row dt i{font-size:16px;color:var(--muted-foreground)}
.zz-cns-row dd{margin:0;color:var(--mono);font-weight:500;text-align:end;min-width:0;overflow-wrap:anywhere}
.zz-cns-row dd.is-empty{color:var(--muted-foreground);font-weight:400}
.zz-cns-row dd .zz-edit{display:block}
.zz-cns-row--when dd{color:var(--zz-brand-text);font-weight:600}
.zz-cns-row dd.zz-cns-good{color:var(--zz-success)}
.zz-cns-money{display:flex;flex-direction:column;gap:9px;border-top:1px dashed var(--border);padding-top:14px}
.zz-cns-total{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:4px}
.zz-cns-total span{font-size:var(--text-2sm);color:var(--mono);font-weight:600}
.zz-cns-total b{font-size:var(--text-lg);color:var(--mono);font-weight:700;white-space:nowrap}
.zz-cns-total b small{font-size:var(--text-xs);color:var(--secondary-foreground);font-weight:400}
.zz-cns-coupon{display:flex;gap:6px}
.zz-cns-coupon .kt-input{flex:1 1 auto;min-width:0;text-align:center}
.zz-cns-coupon-ok{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:10px;border:1px dashed var(--zz-success-line);
    background:var(--zz-success-soft);font-size:var(--text-xs);color:var(--zz-success)}
.zz-cns-coupon-ok > span{display:inline-flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}
.zz-cns-coupon-ok i{font-size:15px}
.zz-cns-coupon-ok button{border:0;background:none;padding:0;font:inherit;font-size:var(--text-xs);color:var(--zz-brand-text);cursor:pointer;white-space:nowrap}
.zz-cns-coupon-ok button:hover{text-decoration:underline}
.zz-cns-go{justify-content:center}
.zz-cns-go i{font-size:16px}
.zz-cns-go:disabled,.zz-cns-go[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
.zz-cns-foot-line{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--text-xs);color:var(--secondary-foreground);text-align:center;line-height:1.8}
.zz-cns-foot-line i{font-size:14px;color:var(--muted-foreground)}
.zz-cns-narrow{display:none}

.zz-cns-mine{display:flex;flex-direction:column}
.zz-cns-mine a{display:flex;align-items:center;gap:10px;padding:11px 0;text-decoration:none;color:inherit;border-top:1px solid var(--border);min-width:0}
.zz-cns-mine a:first-child{border-top:0;padding-top:0}
.zz-cns-mine a:last-child{padding-bottom:0}
.zz-cns-mine-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.zz-cns-mine-t{font-size:var(--text-2sm);font-weight:500;color:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-mine-s{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-mine a:hover .zz-cns-mine-t{color:var(--zz-brand-text)}

/* ── گامِ ۲: تقویم و ساعت‌ها ── */
.zz-cns-pick{display:grid;grid-template-columns:minmax(0,1fr)}
.zz-cns-pick.is-live{grid-template-columns:300px minmax(0,1fr)}
.zz-cns-cal{padding:20px;border-inline-end:1px solid var(--border);display:flex;flex-direction:column;gap:10px}
.zz-cns-cal .cap{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--text-sm);font-weight:600;color:var(--mono);margin-bottom:4px}
.zz-cns-calhead,.zz-cns-calgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.zz-cns-calhead span{text-align:center;font-size:var(--text-xs);color:var(--muted-foreground);padding:2px 0}
.zz-cns-calday{position:relative;aspect-ratio:1 / 1;border:0;border-radius:10px;background:transparent;padding:0;font-family:inherit;display:flex;flex-direction:column;
    align-items:center;justify-content:center;line-height:1.15;font-size:var(--text-sm);color:var(--muted-foreground);font-weight:500}
.zz-cns-calday .m{order:-1;font-size:var(--text-xs);font-weight:600}
.zz-cns-calday:disabled{cursor:default;opacity:.7}
.zz-cns-calday.is-free{background:var(--zz-brand-soft);color:var(--zz-brand-text);font-weight:700;cursor:pointer}
.zz-cns-calday.is-free:hover{box-shadow:0 0 0 1px var(--zz-brand-line) inset}
.zz-cns-calday.is-on{background:var(--primary);color:var(--primary-foreground);box-shadow:0 6px 16px -6px color-mix(in oklab,var(--primary) 70%,transparent)}
.zz-cns-calday.is-today::after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:currentColor}
.zz-cns-calday.has-pick:not(.is-on){box-shadow:0 0 0 1.5px var(--primary) inset}
.zz-cns-calday:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.zz-cns-slotcol{padding:20px;display:flex;flex-direction:column;gap:18px;min-width:0}
.zz-cns-daypanel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px 10px}
.zz-cns-daypanel + .zz-cns-daypanel{padding-top:20px;border-top:1px solid var(--border)}
.zz-cns-pick.is-live .zz-cns-daypanel + .zz-cns-daypanel{padding-top:0;border-top:0}
.zz-cns-daypanel h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;font-size:var(--text-base);font-weight:600;color:var(--mono)}
.zz-cns-daypanel h3 .c{display:inline-flex;align-items:center;border-radius:6px;padding:1px 7px;font-size:var(--text-xs);font-weight:500;color:var(--zz-success);
    border:1px solid var(--zz-success-line);background:var(--zz-success-soft)}
.zz-cns-daynav{display:flex;gap:4px;flex:none}
.zz-cns-daynav i{font-size:14px}
.zz-cns-part{grid-column:1 / -1}
.zz-cns-part .name{display:flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--secondary-foreground);margin-bottom:10px}
.zz-cns-part .name i{font-size:15px;color:var(--muted-foreground)}
.zz-cns-part .name::after{content:"";flex:1 1 auto;height:1px;background:var(--border)}
.zz-cns-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.zz-cns-slot{position:relative;display:block}
.zz-cns-slot input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1;width:100%;height:100%}
.zz-cns-slot .box{position:relative;display:grid;grid-template-columns:auto auto;justify-content:center;align-items:baseline;column-gap:4px;padding:8px 6px;
    border:1px solid var(--zz-brand-line);border-radius:10px;background:var(--card);transition:background .12s,border-color .12s}
.zz-cns-slot .box .t{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-slot .box .t:first-child{grid-column:1 / -1;justify-self:center;font-size:var(--text-sm);font-weight:700;color:var(--zz-brand-text);line-height:1.5}
.zz-cns-slot .box .to{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-slot .box > i{position:absolute;top:6px;inset-inline-end:6px;font-size:15px;display:none}
.zz-cns-slot:hover .box{background:var(--zz-brand-soft)}
.zz-cns-slot input:focus-visible + .box{outline:2px solid var(--primary);outline-offset:2px}
.zz-cns-slot input:checked + .box{background:var(--primary);border-color:var(--primary)}
.zz-cns-slot input:checked + .box .t,.zz-cns-slot input:checked + .box .to,.zz-cns-slot input:checked + .box > i{color:var(--primary-foreground)}
.zz-cns-slot input:checked + .box > i{display:block}
.zz-cns-slot.is-off input{cursor:not-allowed}
.zz-cns-slot.is-off .box,.zz-cns-slot.is-off:hover .box{border-style:dashed;border-color:var(--zz-line-strong);
    background:repeating-linear-gradient(-45deg,transparent 0 7px,color-mix(in oklab,var(--zz-line-strong) 50%,transparent) 7px 8px)}
.zz-cns-slot.is-off .box .t:first-child{color:color-mix(in oklab,var(--secondary-foreground) 70%,transparent);font-weight:500;text-decoration:line-through;text-decoration-color:var(--zz-line-strong)}
.zz-cns-slot.is-off .box .t,.zz-cns-slot.is-off .box .to{color:var(--muted-foreground)}
.dark .zz-cns-slot.is-off .box,.dark .zz-cns-slot.is-off:hover .box{background:repeating-linear-gradient(-45deg,transparent 0 7px,color-mix(in oklab,var(--zz-line-strong) 75%,transparent) 7px 8px)}
.dark .zz-cns-slot.is-off .box .t:first-child{color:var(--secondary-foreground)}
.zz-cns-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:auto;padding-top:14px;border-top:1px dashed var(--border)}
.zz-cns-legend span{display:inline-flex;align-items:center;gap:6px}
.zz-cns-legend span::before{content:"";width:14px;height:14px;border-radius:4px;border:1px solid var(--zz-brand-line);background:var(--card)}
.zz-cns-legend .on::before{background:var(--primary);border-color:var(--primary)}
.zz-cns-legend .off::before{border-style:dashed;border-color:var(--zz-line-strong);
    background:repeating-linear-gradient(-45deg,transparent 0 3px,color-mix(in oklab,var(--zz-line-strong) 50%,transparent) 3px 4px)}

/* ── گامِ ۳ ── */
.zz-cns-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.zz-cns-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.zz-cns-field--wide{grid-column:1 / -1}
.zz-cns-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:var(--text-2sm);color:var(--mono);font-weight:500}
.zz-cns-label .req{color:var(--zz-danger)}
.zz-cns-label .opt,.zz-cns-label .cnt{color:var(--muted-foreground);font-weight:400;font-size:var(--text-xs)}
.zz-cns-field .kt-textarea{min-height:128px;line-height:1.9}
.zz-cns-page [aria-invalid="true"].kt-input,.zz-cns-page [aria-invalid="true"].kt-textarea{border-color:var(--zz-danger) !important;box-shadow:0 0 0 3px var(--zz-danger-soft) !important}
.zz-cns-terms{display:flex;align-items:center;justify-content:space-between;gap:10px 16px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;
    background:var(--zz-surface-2);border:1px solid var(--border)}
.zz-cns-terms.is-invalid{border-color:var(--zz-danger)}
.zz-cns-check{display:inline-flex;align-items:center;gap:10px;font-size:var(--text-2sm);color:var(--mono);cursor:pointer}
.zz-cns-terms details summary{list-style:none;cursor:pointer;color:var(--zz-brand-text);font-size:var(--text-xs);display:inline-flex;align-items:center;gap:4px}
.zz-cns-terms details summary::-webkit-details-marker{display:none}
.zz-cns-terms details summary i{font-size:14px}
.zz-cns-terms details[open]{flex-basis:100%}
.zz-cns-terms details ol{margin:10px 0 0;padding-inline-start:18px;list-style:decimal;font-size:var(--text-xs);color:var(--secondary-foreground);line-height:2}

/* ── گام‌های ۴ و ۵ ── */
.zz-cns-when{display:flex;align-items:center;gap:16px;min-width:0}
.zz-cns-date{flex:none;width:76px;border-radius:14px;overflow:hidden;border:1px solid var(--border);text-align:center;background:var(--card);box-shadow:var(--zz-shadow)}
.zz-cns-date-m{background:var(--primary);color:var(--primary-foreground);font-size:var(--text-xs);padding:3px 0;font-weight:600}
.zz-cns-date-d{font-size:var(--text-2xl);font-weight:700;color:var(--mono);line-height:1.25;padding-top:6px}
.zz-cns-date-w{font-size:var(--text-xs);color:var(--secondary-foreground);padding-bottom:7px}
.zz-cns-when-b{display:flex;flex-direction:column;gap:4px;min-width:0}
.zz-cns-when-t{font-size:var(--text-lg);font-weight:700;color:var(--mono)}
.zz-cns-when-s{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-cns-when-s span{display:inline-flex;align-items:center;gap:5px}
.zz-cns-when-s i{font-size:15px;color:var(--muted-foreground)}
.zz-cns-session{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.zz-cns-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;margin:0}
.zz-cns-dl > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.zz-cns-dl dt{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-dl dd{margin:0;font-size:var(--text-2sm);color:var(--mono);font-weight:500;overflow-wrap:anywhere}
.zz-cns-dl .wide{grid-column:1 / -1}
.zz-cns-dl .wide dd{font-weight:400;line-height:1.9}
.zz-cns-done-h{display:flex;align-items:center;gap:14px}
.zz-cns-done-ico{--zz-tone:var(--zz-success);flex:none;width:52px;height:52px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
    background:color-mix(in oklab,var(--zz-tone) 12%,var(--card));color:var(--zz-tone);box-shadow:0 0 0 6px color-mix(in oklab,var(--zz-tone) 8%,transparent)}
.zz-cns-done-ico i{font-size:26px}
.zz-cns-done-ico--warn{--zz-tone:var(--zz-warning)}
.zz-cns-done-ico--bad{--zz-tone:var(--zz-danger)}
.zz-cns-done-ico--dim{--zz-tone:var(--muted-foreground)}
.zz-cns-done-t{font-size:var(--text-lg);font-weight:700;color:var(--mono)}
.zz-cns-done-s{font-size:var(--text-2sm);color:var(--secondary-foreground);line-height:1.9}
.zz-cns-code{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-cns-code bdi{color:var(--mono);font-weight:600}
.zz-cns-meet{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--zz-surface-2);flex-wrap:wrap}
.zz-cns-meet-ico{flex:none;width:38px;height:38px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:var(--zz-info-soft);color:var(--zz-info)}
.zz-cns-meet-ico i{font-size:20px}
.zz-cns-meet-b{flex:1 1 200px;min-width:0;display:flex;flex-direction:column}
.zz-cns-meet-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono)}
.zz-cns-meet-s{font-size:var(--text-xs);color:var(--secondary-foreground);overflow-wrap:anywhere}
.zz-cns-actions{display:flex;flex-wrap:wrap;gap:8px}
.zz-cns-ticket{padding:16px;border-radius:12px;border:1px solid var(--border);background:var(--zz-surface-2)}
.zz-cns-note{display:flex;align-items:flex-start;gap:8px;font-size:var(--text-2sm);color:var(--secondary-foreground);line-height:1.8}
.zz-cns-note > i{font-size:17px;color:var(--muted-foreground);margin-top:3px}
.zz-cns-note b{color:var(--mono);font-weight:600}
.zz-cns-card-foot{justify-content:space-between;flex-wrap:wrap;gap:10px}
.zz-cns-card-foot .zz-cns-foot-line{justify-content:flex-start;text-align:start;align-items:flex-start;min-width:0;flex:1 1 260px}
.zz-cns-card-foot .zz-cns-foot-line i{margin-top:3px}
.zz-cns-foot-line bdi{overflow-wrap:anywhere}

/* ── عرضِ کم: خلاصهٔ فشردهٔ بالا و نوارِ چسبانِ پایین ── */
.zz-cns-mini{display:none;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border:1px solid var(--border);border-radius:12px;min-width:0}
.zz-cns-mini-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.zz-cns-mini-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-mini-s{font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-bar{display:none;position:sticky;bottom:0;z-index:20;align-items:center;gap:12px;padding:10px 16px;
    background:var(--card);border:1px solid var(--border);border-bottom:0;border-radius:14px 14px 0 0;box-shadow:var(--zz-shadow-pop)}
.zz-cns-bar-b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.zz-cns-bar-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-bar-s{font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-cns-bar .kt-btn{flex:none}

@container zzcns (min-width:900px){
    .zz-cns-grid{grid-template-columns:minmax(0,1fr) 320px}
    .zz-cns-side{position:sticky;top:calc(var(--header-height,0px) + 16px)}
}
@container zzcns (min-width:1100px){
    .zz-cns-grid{grid-template-columns:minmax(0,1fr) 340px}
}
@container zzcns (max-width:899.98px){
    .zz-cns-page[data-zz-step="service"] .zz-cns-sum,.zz-cns-page[data-zz-step="time"] .zz-cns-sum,.zz-cns-page[data-zz-step="details"] .zz-cns-sum{display:none}
    .zz-cns-mini[data-show]{display:flex}
    .zz-cns-bar{display:flex}
    /* پرداخت و رزروِ قطعی: کارتِ کنار بعد از ستونِ اصلی، فقط با مبلغ‌ها (و کدِ تخفیف) */
    .zz-cns-page[data-zz-step="pay"] .zz-cns-sum :is(.zz-cns-sum-svc,.zz-cns-who,.zz-cns-rows),
    .zz-cns-page[data-zz-step="done"] .zz-cns-sum :is(.zz-cns-sum-svc,.zz-cns-who,.zz-cns-rows){display:none}
    .zz-cns-page[data-zz-step="pay"] .zz-cns-money,.zz-cns-page[data-zz-step="done"] .zz-cns-money{border-top:0;padding-top:0}
    .zz-cns-wide{display:none}
    .zz-cns-narrow{display:inline}
}
@container zzcns (max-width:899.98px){
    .zz-cns-steps{display:none}
    .zz-cns-psteps{display:flex}
}
@container zzcns (max-width:640px){
    .zz-cns-top{flex-direction:column;align-items:flex-start;gap:8px}
    /* گوشی: نوارِ پایین لبه‌به‌لبه (فاصلهٔ کناریِ صفحه در هر دو قالب ۱۶ پیکسل است) */
    .zz-cns-bar{margin-inline:-16px;border-radius:0;border-inline:0}
    .zz-cns-page .kt-card-header{flex-wrap:wrap;gap:10px}
}
@container zzcnsmain (max-width:640px){
    .zz-cns-cats{grid-template-columns:repeat(2,minmax(0,1fr))}
    .zz-cns-pick.is-live{grid-template-columns:minmax(0,1fr)}
    .zz-cns-cal{border-inline-end:0;border-bottom:1px solid var(--border)}
    /* تقویم زیرِ ساعت‌ها (مثلاً پنل در ۱۲۸۰ پیکسل): روزها بزرگ‌تر از ۵۰ پیکسل نمی‌شوند و تقویم وسطِ کارت می‌ماند */
    .zz-cns-pick.is-live .zz-cns-cal > *{width:100%;max-width:400px;margin-inline:auto}
}
@container zzcnsmain (max-width:700px){
    .zz-cns-cards{grid-template-columns:minmax(0,1fr)}
    .zz-cns-fields{grid-template-columns:minmax(0,1fr)}
    .zz-cns-dl-mail{grid-column:1 / -1}
    /* کارت‌ها تودرتو نمی‌شوند: کارتِ گروه قاب و فاصلهٔ خودش را رها می‌کند */
    .zz-cns-group{background:transparent;border:0;box-shadow:none}
    .zz-cns-group > .kt-card-header{padding:0 0 12px;border:0;min-height:0}
    .zz-cns-group > .kt-card-content{padding:0 !important}
}
@container zzcnsmain (max-width:520px){
    .zz-cns-cats{gap:8px}
    .zz-cns-cat{padding:12px}
    .zz-cns-cal,.zz-cns-slotcol{padding:16px}
    .zz-cns-slots{grid-template-columns:repeat(2,minmax(0,1fr))}
    .zz-cns-card .h{padding:14px 14px 8px}
    .zz-cns-card .m{padding:0 14px 12px}
}

/* قالبِ عمومی: همان تمِ پنل، بی منو؛ لوگو و دکمهٔ تم بالا (دکمهٔ شناورِ تم روی نوارِ پایین می‌افتاد) */
.zz-cns-public{min-height:100vh;padding:22px 24px 40px;display:flex;flex-direction:column;align-items:center;gap:22px}
.zz-cns-public > header{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;max-width:1180px}
.zz-cns-public > header img{height:34px;width:auto}
.zz-cns-public > header .end{display:flex;align-items:center;gap:8px}
.zz-cns-public > header .zz-theme-fab{position:static;width:34px;height:34px;box-shadow:none}
.zz-cns-public > main{width:100%;display:flex;flex-direction:column;align-items:center}
.zz-cns-public > main > *{width:100%}
.zz-cns-public > footer{font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-cns-public .zz-cns-side{top:16px}
@media (max-width:640px){.zz-cns-public{padding:16px 16px 28px;gap:16px}}

/* صفحه‌های اتصالِ گوگلِ مشاور (consultation/google/*): ستونِ باریکِ وسط */
.zz-cns{width:100%;max-width:760px;margin-inline:auto;display:flex;flex-direction:column;gap:22px}
.zz-cns-head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.zz-cns-head h1{font-size:var(--text-xl);font-weight:900;color:var(--mono);margin:0}
.zz-cns-head p{font-size:var(--text-2sm);color:var(--secondary-foreground);margin:0;line-height:1.9}
.zz-cns-h{font-size:var(--text-sm);font-weight:800;color:var(--mono)}
.zz-cns-hint{font-size:var(--text-xs);color:var(--secondary-foreground);line-height:1.9}
.zz-cns-list{margin:0;padding-inline-start:20px;list-style:disc;display:flex;flex-direction:column;gap:8px;font-size:var(--text-2sm);line-height:1.9;color:var(--foreground)}
.zz-cns-list li::marker{color:var(--muted-foreground)}
.zz-cns-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}

/* عکسِ مشاور در صفحهٔ ادمین */
.zz-cns-photo{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.zz-cns-photo-b{display:flex;flex-direction:column;gap:6px;min-width:0}
.zz-cns-photo-b .kt-input[type="file"]{max-width:20rem;padding-block:.35rem}
.zz-cns-step.is-off .zz-cns-step-n{background:var(--muted);color:var(--muted-foreground);border-color:var(--zz-line-strong)}
.zz-cns-step.is-off .zz-cns-step-t{color:var(--mono)}
.zz-cns-sum [data-zz-sum-av]{display:contents}
/* نوارِ چسبانِ پایین: قفلِ «اسکرولِ افقی» ِ گوشی (overflow-x:hidden روی html و body) body را ظرفِ اسکرول می‌کرد و sticky دیگر
   به پایینِ صفحه نمی‌چسبید؛ clip همان بریدن را بی ساختنِ ظرفِ اسکرول انجام می‌دهد — فقط در صفحه‌های فرمِ رزرو */
@media (max-width:640px){
    html.zz-premium:has(.zz-cns-page),.zz-premium body:has(.zz-cns-page){overflow-x:clip !important}
}

/* ═══════════════ «ویدیوها» — صفحهٔ یکی‌شدهٔ «صف آپلود» و «ویدیوها» (۲۰۲۶-۱۱-۰۳، video.index، ماکاپِ zz-mockup-videos) ═══════════════
   دو تب («در جریان» · «روی یوتیوب»)، گوشی بی اسکرولِ افقی. پهنا با container query از پهنای خودِ صفحه و کارت‌ها خوانده می‌شود،
   نه از پنجره: منوی کنارِ پنل ۲۸۰ پیکسل می‌گیرد و در پنجرهٔ ۱۱۰۰ پیکسلی ستونِ کنار عنوانِ ردیف‌ها را له می‌کرد. ستونِ کنار وقتی
   صفحه دست‌کم ۱۰۰۰ پیکسل است؛ ردیفِ کارت زیرِ ۶۰۰ پیکسل دو ستون می‌شود و علتِ شکست تمام‌عرض. رنگ فقط از توکن‌ها، اندازهٔ متن فقط
   var(--text-…). */
.zz-vq{display:flex;flex-direction:column;gap:20px;container:zzvq/inline-size}
.zz-vq-o3,.zz-vq-appr{container:zzvqc/inline-size}
#zz-vq-yt{container:zzvqyt/inline-size}
.zz-vq-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.zz-vq-title{margin:0 0 6px}
.zz-vq-tabs{gap:4px}
.zz-vq-tabs .kt-tab-toggle{gap:8px}
.zz-vq-tabs .kt-tab-toggle i{font-size:16px}
.zz-vq-count{min-width:22px;height:20px;padding:0 6px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);background:var(--muted);color:var(--secondary-foreground);font-variant-numeric:tabular-nums}
.kt-tab-toggle.active .zz-vq-count{background:var(--zz-brand-soft);color:var(--zz-brand-text)}
.zz-vq-count--danger{background:var(--zz-danger-soft) !important;color:var(--zz-danger) !important}
.zz-vq-count--warn{background:var(--zz-warning-soft) !important;color:var(--zz-warning) !important}
.zz-vq-top-end{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:10px}
.zz-vq-chan{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:999px;background:var(--card);padding:4px;padding-inline-end:14px;min-width:0;max-width:100%}
.zz-vq-chan-av{width:32px;height:32px;border-radius:50%;flex:none;object-fit:cover;background:var(--zz-surface-3)}
.zz-vq-chan-av--icon{display:inline-flex;align-items:center;justify-content:center;background:var(--zz-info-soft);color:var(--zz-info)}
.zz-vq-chan-av--icon i{font-size:16px}
.zz-vq-chan-t{display:flex;flex-direction:column;line-height:1.35;min-width:0}
.zz-vq-chan-t b{font-size:var(--text-2sm);font-weight:600;color:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zz-vq-chan-t small{font-size:var(--text-xs);color:var(--secondary-foreground)}

.zz-vq-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.zz-vq-col{display:flex;flex-direction:column;gap:20px;min-width:0}
.zz-vq-grid--solo{grid-template-columns:minmax(0,1fr) !important}
@container zzvq (min-width:1000px){
  .zz-vq-grid{grid-template-columns:minmax(0,1fr) 300px}
  /* چسبنده، ولی هرگز بلندتر از پنجره: «نیاز به اقدام» تا ۵۰ ردیفِ Studio دارد و بی سقف پایینِ ستون تا تهِ فهرست دیده نمی‌شد */
  .zz-vq-side{position:sticky;top:84px;max-height:calc(100vh - 100px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-bottom:2px}
}
@container zzvq (max-width:999.98px){
  /* stretch: کارت‌ها container اند و پهنای ذاتی ندارند؛ با start صفر می‌شدند */
  .zz-vq-grid{display:flex;flex-direction:column;align-items:stretch}
  .zz-vq-col{display:contents}
  .zz-vq-o1{order:1}.zz-vq-o2{order:2}.zz-vq-o3{order:3}
  .zz-vq-kpi-card{display:none !important}
}
.kt-card-header .zz-vq-h{display:flex;flex-direction:column;min-width:0}
.zz-vq-h-sub{font-size:var(--text-2sm);color:var(--secondary-foreground);margin-top:2px;font-weight:400}
.zz-vq-h-title{display:flex;align-items:center;gap:8px}

/* تامبنیل: تصویرِ واقعی، یا کاشیِ خالی (۸۷۰ آپلودِ قدیمی تامبنیل ندارند) */
.zz-vq-th{position:relative;flex:none;display:block;width:112px;aspect-ratio:16/9;border-radius:10px;overflow:hidden;object-fit:cover;background:var(--zz-surface-3);border:1px solid var(--border)}
.zz-vq-th--empty{display:flex;align-items:center;justify-content:center;color:var(--muted-foreground)}
.zz-vq-th--empty i{font-size:22px}
.zz-vq-th--yt img{width:100%;height:100%;object-fit:cover;display:block}
.zz-vq-th-d{position:absolute;bottom:5px;inset-inline-end:5px;background:var(--zz-player-chip);color:var(--zz-player-ink);font-size:var(--text-xs);line-height:1.5;padding:0 5px;border-radius:4px;font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}

/* منتظرِ تأییدِ شما */
.zz-vq-appr{border-color:var(--zz-warning-line)}
.zz-vq-appr>.kt-card-header{background:color-mix(in oklab,var(--zz-warning-soft) 60%,transparent)}
.zz-vq-aps{display:flex;flex-direction:column}
.zz-vq-ap+.zz-vq-ap{border-top:1px solid var(--border)}
.zz-vq-ap-h{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 20px}
.zz-vq-ap-t{font-size:var(--text-sm);font-weight:600;color:var(--mono);line-height:1.6;overflow-wrap:anywhere}
.zz-vq-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:4px}
.zz-vq-meta>span{display:inline-flex;align-items:center;gap:5px;min-width:0}
.zz-vq-meta i{font-size:13px;color:var(--muted-foreground)}
.zz-vq-avatar{width:22px;height:22px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;background:var(--zz-success-soft);color:var(--zz-success)}
.zz-vq-due{color:var(--zz-warning);font-weight:600}
.zz-vq-due i{color:var(--zz-warning) !important}
.zz-vq-ap-a{display:flex;align-items:center;gap:6px;flex:none}
.zz-vq-open i.ki-down{transition:transform .2s}
.zz-vq-ap.is-open .zz-vq-open i.ki-down{transform:rotate(180deg)}
.zz-vq-ap.is-open .zz-vq-ap-dl{display:none}
.zz-vq-ap-form{border-top:1px dashed var(--border);background:var(--zz-surface-2);padding:18px 20px 16px;display:flex;flex-direction:column;gap:16px}
.zz-vq-ap-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.zz-vq-fields,.zz-vq-ap-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.zz-vq-f{display:flex;flex-direction:column;gap:6px;min-width:0}
.zz-vq-f label{font-size:var(--text-2sm);font-weight:500;color:var(--mono)}
.zz-vq-f .kt-input,.zz-vq-f .kt-textarea,.zz-vq-f .kt-select{background:var(--card)}
.zz-vq-sched{border:1px solid var(--zz-warning-line);background:var(--zz-warning-soft);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.zz-vq-sched-t{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--zz-warning);font-weight:600}
.zz-vq-sched-t i{font-size:15px}
.zz-vq-sched label{display:flex;align-items:flex-start;gap:8px;font-size:var(--text-xs);color:var(--mono);line-height:1.7}
.zz-vq-sched-note,.zz-vq-decl-note{margin:0;font-size:var(--text-xs);color:var(--secondary-foreground);line-height:1.7}
.zz-vq-decl{border:1px solid var(--border);border-radius:10px;background:var(--card)}
.zz-vq-decl-r{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;font-size:var(--text-2sm);color:var(--mono)}
.zz-vq-decl-r+.zz-vq-decl-r{border-top:1px solid var(--border)}
.zz-vq-decl-note{padding:8px 12px;border-top:1px solid var(--border)}
.zz-vq-yn{display:flex;gap:14px;flex:none}
.zz-vq-yn label{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-2sm);color:var(--foreground)}
.zz-vq-ap-foot{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.zz-vq-ap-foot .zz-vq-push{margin-inline-start:auto}

/* فهرستِ آپلودها */
.zz-vq-live{display:inline-flex;align-items:center;gap:7px;font-size:var(--text-xs);color:var(--zz-success);border:1px solid var(--zz-success-line);background:var(--zz-success-soft);border-radius:999px;padding:3px 10px;white-space:nowrap}
.zz-vq-live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--zz-success);animation:zz-live-pulse 1.6s infinite}
.zz-vq-live--bad{color:var(--zz-danger);border-color:var(--zz-danger-line);background:var(--zz-danger-soft)}
.zz-vq-live--bad::before{background:var(--zz-danger);animation:none}
.zz-vq-group{display:flex;align-items:center;gap:8px;padding:8px 20px;background:var(--zz-surface-2);border-block:1px solid var(--border);font-size:var(--text-xs);font-weight:600;color:var(--secondary-foreground)}
.zz-vq-group:first-child{border-top:0}
.zz-vq-group .zz-vq-count{height:18px;min-width:20px}
.zz-vq-group-end{margin-inline-start:auto;font-weight:400;color:var(--muted-foreground);display:inline-flex;align-items:center;gap:5px}
.zz-vq-group-end i{font-size:14px;color:var(--zz-success)}
.zz-vq-list{list-style:none;margin:0;padding:0}
.zz-vq-row{position:relative;display:grid;grid-template-columns:112px minmax(0,1fr) 212px;gap:18px;align-items:center;padding:14px 20px}
.zz-vq-row+.zz-vq-row{border-top:1px solid var(--border)}
.zz-vq-row::before{content:"";position:absolute;inset-block:12px;inset-inline-start:0;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:transparent}
.zz-vq-row[data-tone="failed"]::before{background:var(--zz-danger)}
.zz-vq-row[data-tone="wait"]::before{background:var(--zz-warning)}
.zz-vq-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.zz-vq-main .zz-vq-meta{margin-top:0}
.zz-vq-row-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.zz-vq-why{margin-top:4px;align-self:flex-start;max-width:100%;font-size:var(--text-xs);line-height:1.8;color:var(--zz-danger);display:flex;gap:7px;align-items:flex-start;background:var(--zz-danger-soft);border:1px solid var(--zz-danger-line);border-radius:8px;padding:5px 10px;overflow-wrap:anywhere}
.zz-vq-why i{font-size:14px;margin-top:3px;flex:none}
.zz-vq-why--warn{color:var(--zz-warning);background:var(--zz-warning-soft);border-color:var(--zz-warning-line)}
.zz-vq-why a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.zz-vq-why--muted{color:var(--secondary-foreground);background:var(--zz-surface-2);border-color:var(--border)}
.zz-vq-raw{align-self:flex-start;max-width:100%;font-size:var(--text-xs);line-height:1.7;color:var(--secondary-foreground);background:var(--zz-surface-3);border:1px solid var(--border);border-radius:6px;padding:3px 8px;overflow-wrap:anywhere}
.zz-vq-sched-chip{color:var(--zz-warning)}
.zz-vq-sched-chip i{color:var(--zz-warning) !important}
.zz-vq-state{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.zz-vq-state-h{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.zz-vq-state-s{font-size:var(--text-xs);color:var(--secondary-foreground);font-variant-numeric:tabular-nums}
.zz-vq-state-s b{color:var(--mono);font-weight:600}
.zz-vq-state-a{display:flex;gap:6px}
.zz-vq-bar{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;width:100%}
.zz-vq-bar li{height:6px;border-radius:999px;background:var(--zz-line-strong)}
.zz-vq-bar li.is-done{background:var(--primary)}
.zz-vq-bar li.is-now{background:repeating-linear-gradient(-45deg,var(--primary) 0 6px,color-mix(in oklab,var(--primary) 45%,transparent) 6px 12px);background-size:17px 17px;animation:zz-vq-stripes 1s linear infinite}
.zz-vq-pulse{animation:zz-live-pulse 1.6s infinite;border-radius:50%}
@keyframes zz-vq-stripes{to{background-position:17px 0}}
@media (prefers-reduced-motion:reduce){.zz-vq-bar li.is-now,.zz-vq-pulse,.zz-vq-live::before{animation:none}}
.zz-vq-yt-btn i{color:var(--zz-pf-youtube)}
.zz-vq-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;width:100%;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-vq-more{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs)}
.zz-vq-more i{font-size:14px}
.zz-vq-foot-more{display:inline-flex;align-items:center;gap:12px}

/* خالی و خطا */
.zz-vq-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:48px 20px}
.zz-vq-empty-ico{width:64px;height:64px;border-radius:18px;display:inline-flex;align-items:center;justify-content:center;background:var(--muted);color:var(--secondary-foreground);margin-bottom:6px}
.zz-vq-empty-ico i{font-size:30px}
.zz-vq-empty-ico--danger{background:var(--zz-danger-soft);color:var(--zz-danger)}
.zz-vq-empty-t{font-size:var(--text-base);font-weight:600;color:var(--mono)}
.zz-vq-empty-s{font-size:var(--text-2sm);color:var(--secondary-foreground);max-width:420px}
.zz-vq-empty-a{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px}

/* ستونِ کنار */
.zz-vq-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.zz-vq-kpi{display:flex;flex-direction:column;gap:4px;padding:14px 18px;min-width:0;color:inherit;text-decoration:none}
.zz-vq-kpi:nth-child(odd){border-inline-end:1px solid var(--border)}
.zz-vq-kpi:nth-child(-n+2){border-bottom:1px solid var(--border)}
a.zz-vq-kpi:hover{background:var(--zz-hover)}
.zz-vq-kpi-l{font-size:var(--text-xs);color:var(--secondary-foreground);display:flex;align-items:center;gap:6px}
.zz-vq-kpi-l i{font-size:14px}
.zz-vq-kpi-v{font-size:var(--text-xl);font-weight:800;color:var(--mono);line-height:1.2;font-variant-numeric:tabular-nums}
.zz-vq-kpi-v small{font-size:var(--text-xs);font-weight:500;color:var(--secondary-foreground);margin-inline-start:3px}
.zz-vq-kpi--ok .zz-vq-kpi-l i{color:var(--zz-success)}
.zz-vq-kpi--bad .zz-vq-kpi-v{color:var(--zz-danger)}
.zz-vq-kpi--bad .zz-vq-kpi-l i{color:var(--zz-danger)}
.zz-vq-todo{list-style:none;margin:0;padding:0}
.zz-vq-todo li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:14px 18px}
.zz-vq-todo li+li,.zz-vq-todo+.zz-vq-todo{border-top:1px solid var(--border)}
.zz-vq-ic{width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center}
.zz-vq-ic i{font-size:18px}
.zz-vq-ic--warn{background:var(--zz-warning-soft);color:var(--zz-warning)}
.zz-vq-ic--info{background:var(--zz-info-soft);color:var(--zz-info)}
.zz-vq-todo-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.6}
.zz-vq-todo-s{font-size:var(--text-xs);color:var(--secondary-foreground);margin-top:2px;line-height:1.8;overflow-wrap:anywhere}
.zz-vq-todo-a{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.zz-vq-todo-f{font-size:var(--text-xs);color:var(--mono);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}

/* روی یوتیوب */
.zz-vq-yt-head{flex-wrap:wrap;gap:12px}
.zz-vq-yt-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.zz-vq-search{width:240px}
.zz-vq-search i{font-size:16px;color:var(--muted-foreground)}
.zz-vq-yt-tools .kt-select{width:150px}
.zz-vq-yt-tools .zz-vq-yt-channel{width:auto;min-width:200px;max-width:340px} /* نامِ کانال و نقش کامل دیده شود */
.zz-vq-yt-tools :disabled,.zz-vq-search:has(input:disabled){opacity:.55;cursor:not-allowed}
/* ستون‌های عددی پهنای ثابت دارند و ستونِ «ویدیو» باقی را می‌گیرد؛ بی این، توضیحِ یک‌خطی ستون را تا ۴۲۰ پیکسل باز می‌کرد و
   صفحه در ۱۲۸۰ پیکسل اسکرولِ افقی می‌گرفت. در گوشی سرِ جدول پنهان است، پس جدولِ ثابت فقط از ۷۶۱ پیکسل */
@container zzvqyt (min-width:640px){.zz-vq-yt-table{table-layout:fixed;width:100%}}
.zz-vq-yt-table th{white-space:nowrap}
.zz-vq-yt-table td{vertical-align:middle}
.zz-vq-w-vis{width:130px}.zz-vq-w-date{width:120px}.zz-vq-w-num{width:90px}.zz-vq-w-act{width:96px}
.zz-vq-ytv{display:flex;align-items:center;gap:14px;min-width:0}
.zz-vq-ytv .zz-vq-th{width:132px}
.zz-vq-ytv-x{min-width:0;display:flex;flex-direction:column;gap:3px}
.zz-vq-grow{flex:1}
.zz-vq-ytv-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.zz-vq-ytv-s{font-size:var(--text-xs);color:var(--secondary-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px;min-width:0}
.zz-vq-ytv-s:empty{display:none}
.zz-vq-ytv-m{display:none}
.zz-vq-num{font-size:var(--text-2sm);color:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.zz-vq-num small{display:block;font-size:var(--text-xs);color:var(--secondary-foreground);font-weight:400}
.zz-vq-sub{display:block;margin-top:4px;font-size:var(--text-xs);color:var(--zz-warning)}
.zz-vq-yt-act{display:flex;justify-content:flex-end;gap:4px}
.zz-vq-yt-act .kt-btn i{font-size:16px}
.zz-vq-yt-none{padding:32px 20px !important;text-align:center;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-vq-sk{display:block;border-radius:6px;background:var(--zz-line-strong);opacity:.55;animation:zz-vq-sk 1.2s ease-in-out infinite alternate}
.zz-vq-sk--th{width:132px;aspect-ratio:16/9;border-radius:10px;flex:none}
.zz-vq-sk--l1{height:12px;width:70%}
.zz-vq-sk--l2{height:10px;width:45%;margin-top:8px}
.zz-vq-sk--pill{height:20px;width:64px;border-radius:999px}
.zz-vq-sk--s{height:10px;width:72px}
.zz-vq-sk--xs{height:10px;width:40px}
@keyframes zz-vq-sk{to{opacity:.25}}
.zz-vq-ytb{flex:none}

@container zzvqyt (max-width:979.98px){
  .zz-vq-ytv-s{max-width:260px}
  .zz-vq-c-md{display:none}
}
@container zzvq (max-width:639.98px){
  .zz-vq-top{align-items:stretch}
  .zz-vq-top-end{width:100%;justify-content:space-between;padding-bottom:0}
  .zz-vq-chan{flex:1 1 auto}
}
/* ردیفِ فهرست و کارتِ تأیید در کارتِ باریک (گوشی، یا پنجرهٔ میانه کنارِ منو) */
@container zzvqc (max-width:599.98px){
  .zz-vq-row{grid-template-columns:88px minmax(0,1fr);gap:6px 12px;padding:14px 16px;align-items:start}
  .zz-vq-row .zz-vq-th{width:88px;grid-row:span 2}
  .zz-vq-main{display:contents}
  .zz-vq-row-t,.zz-vq-main .zz-vq-meta{grid-column:2}
  .zz-vq-why,.zz-vq-raw{grid-column:1/-1;margin-top:4px;padding:5px 8px}
  .zz-vq-state{grid-column:1/-1;margin-top:6px;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 10px}
  .zz-vq-state-a{margin-inline-start:auto}
  .zz-vq-bar{flex:1 1 100%}
  .zz-vq-group{padding-inline:16px}
  .zz-vq-ap-h{grid-template-columns:88px minmax(0,1fr);padding:14px 16px;gap:12px;align-items:start}
  .zz-vq-ap-h .zz-vq-th{width:88px}
  .zz-vq-ap-a{grid-column:1/-1}
  .zz-vq-ap-a .zz-vq-open{flex:1 1 auto;justify-content:center}
  .zz-vq-ap-form{padding:16px}
  .zz-vq-ap-foot>*{flex:1 1 auto;justify-content:center}
  .zz-vq-ap-foot .zz-vq-push{margin-inline-start:0}
}
@container zzvqc (min-width:720px){.zz-vq-ap-grid{grid-template-columns:minmax(0,1fr) 270px}}
/* جدولِ «روی یوتیوب» در کارتِ باریک: بی سرِ جدول، مشخصات زیرِ عنوان */
@container zzvqyt (max-width:639.98px){
  .zz-vq-yt-head{flex-direction:column;align-items:stretch !important}
  .zz-vq-yt-tools{width:100%}
  .zz-vq-search{flex:1 1 100%;width:auto}
  .zz-vq-yt-tools .kt-select{flex:1 1 auto;width:auto}
  .zz-vq-yt-tools .zz-vq-yt-channel{max-width:none}
  .zz-vq-c-sm{display:none}
  .zz-vq-ytv{align-items:flex-start;gap:12px}
  .zz-vq-ytv .zz-vq-th,.zz-vq-sk--th{width:112px}
  .zz-vq-ytv-s{display:none}
  .zz-vq-ytv-m{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:var(--text-xs);color:var(--secondary-foreground);align-items:center}
  .zz-vq-ytv-m>span:empty{display:none}
  .zz-vq-yt-table td:first-child{padding-inline-end:4px}
  .zz-vq-yt-table td.zz-vq-yt-a{padding-inline-start:0;vertical-align:top}
  .zz-vq-yt-act{flex-direction:column}
  .zz-vq-yt-table thead{display:none}
}

/* ===== «استودیوی هوشمند» — میزِ کار (۲۰۲۶-۱۱-۰۳؛ studio/index، ماکاپِ zz-mockup-smart-studio که سعید پذیرفت) =====
   ردیفِ عنوان با سهمِ امروز، جعبهٔ نوشتن با شش زبانه، شروعِ سریع، کارتِ نتیجه (در حالِ نوشتن و تمام‌شده)، «ادامه با»، ستونِ کنار
   («کانالِ شما»، «تاریخچه»). رنگ فقط از توکن‌ها، اندازهٔ نوشته فقط از هفت پله. پیشوند zz-sw. */
.zz-sw{display:flex;flex-direction:column;gap:1.25rem;container:zz-sw / inline-size}
.zz-sw-top{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem 1rem;flex-wrap:wrap}
.zz-sw-title{margin:0;display:flex;align-items:center;gap:.625rem;line-height:1.5}
.zz-sw-title-ic{width:2.25rem;height:2.25rem;border-radius:.625rem;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--zz-brand-soft);color:var(--primary)}
.zz-sw-title-ic i{font-size:20px}
.zz-sw-top-end{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap}
.zz-sw-pill{display:inline-flex;align-items:center;gap:.5rem;border-radius:999px;padding:.3125rem .75rem;font-size:var(--text-xs);border:1px solid var(--border);color:var(--secondary-foreground);background:var(--card);white-space:nowrap}
.zz-sw-pill i{font-size:15px;color:var(--primary)}
.zz-sw-pill b{color:var(--mono);font-weight:700}
.zz-sw-pill.is-empty i,.zz-sw-pill.is-empty b{color:var(--zz-warning)}
.zz-sw-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:1.25rem;align-items:start}
.zz-sw-main,.zz-sw-side{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
.zz-sw-main{container:zz-swm / inline-size}
/* دو ستون به پهنای خودِ صفحه (نه پنجره): با منوی کنار، ۱۲۸۰ پیکسل هم جا دارد */
@container zz-sw (min-width:900px){
  .zz-sw-grid{grid-template-columns:minmax(0,1fr) 300px}
  .zz-sw-hist-btn{display:none !important}
}
@container zz-sw (min-width:1080px){.zz-sw-grid{grid-template-columns:minmax(0,1fr) 340px}}
[data-zz-sw] [hidden]{display:none !important}

/* جعبهٔ نوشتن */
.zz-sw-comp{overflow:visible}
.zz-sw-tools{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.25rem;padding:.5rem;background:var(--zz-surface-2);border-bottom:1px solid var(--border);border-start-start-radius:inherit;border-start-end-radius:inherit}
.zz-sw-tool{display:flex;align-items:center;justify-content:center;gap:.5rem;min-width:0;padding:.5625rem .5rem;border-radius:.5625rem;border:1px solid transparent;background:transparent;font-size:var(--text-2sm);color:var(--secondary-foreground);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}
.zz-sw-tool i{font-size:18px;color:var(--muted-foreground)}
.zz-sw-tool span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.zz-sw-tool:hover{background:var(--zz-hover);color:var(--mono)}
.zz-sw-tool[aria-selected="true"]{background:var(--card);border-color:var(--border);color:var(--mono);font-weight:600;box-shadow:var(--zz-shadow)}
.zz-sw-tool[aria-selected="true"] i{color:var(--primary)}
.zz-sw-tool:focus-visible{outline:2px solid var(--primary);outline-offset:1px}
textarea.zz-sw-ta{display:block;width:100%;min-height:6.5rem;resize:none;border:0;outline:0;background:transparent;padding:1.125rem 1.25rem .375rem;font-size:var(--text-base);line-height:1.9;color:var(--mono);font-family:inherit}
.zz-sw-ta::placeholder{color:var(--muted-foreground)}
.zz-sw-comp-foot{display:flex;align-items:center;justify-content:space-between;gap:.625rem;flex-wrap:wrap;padding:.625rem .875rem .875rem}
.zz-sw-opts{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;min-width:0}
.zz-sw-opt{position:relative;display:inline-flex;align-items:center;gap:.375rem;height:2rem;max-width:100%;padding:0 .75rem;border-radius:999px;border:1px dashed var(--zz-line-strong);background:transparent;font-size:var(--text-xs);color:var(--secondary-foreground);cursor:pointer;white-space:nowrap}
.zz-sw-opt i{font-size:15px;color:var(--muted-foreground)}
.zz-sw-opt:hover,.zz-sw-opt:focus-within{border-style:solid;color:var(--mono);background:var(--zz-hover)}
.zz-sw-opt.is-set{border-style:solid;border-color:var(--zz-brand-line);background:var(--zz-brand-soft);color:var(--mono)}
.zz-sw-opt.is-set i{color:var(--primary)}
.zz-sw-opt>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.zz-sw-opt-x{border:0;background:transparent;padding:0;margin-inline-start:.125rem;color:var(--muted-foreground);cursor:pointer;display:inline-flex}
.zz-sw-opt-x i{font-size:12px}
.zz-sw-seg{display:inline-flex;padding:.1875rem;border-radius:999px;background:var(--zz-surface-3);gap:.125rem}
.zz-sw-seg button{height:1.625rem;padding:0 .75rem;border-radius:999px;border:0;background:transparent;font-size:var(--text-xs);color:var(--secondary-foreground);cursor:pointer}
.zz-sw-seg button[aria-pressed="true"]{background:var(--card);color:var(--mono);font-weight:600;box-shadow:var(--zz-shadow)}
.zz-sw-langs{position:relative}
.zz-sw-lang-pop{position:absolute;inset-inline-start:0;top:calc(100% + .375rem);z-index:20;width:min(20rem,calc(100vw - 4rem));padding:.625rem;border:1px solid var(--border);border-radius:.75rem;background:var(--popover,var(--card));box-shadow:var(--zz-shadow-pop);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem}
.zz-sw-lang{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:.5rem;font-size:var(--text-2sm);color:var(--mono);cursor:pointer}
.zz-sw-lang:hover{background:var(--zz-hover)}
.zz-sw-lang small{font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-sw-lang-k{grid-column:1/-1;font-size:var(--text-xs);color:var(--muted-foreground);padding:0 .5rem .25rem}
.zz-sw-send{display:flex;align-items:center;gap:.625rem;margin-inline-start:auto}
.zz-sw-send .kt-btn{min-width:7rem;justify-content:center}
.zz-sw-line{margin:0;padding:0 1.25rem .875rem;font-size:var(--text-xs);color:var(--zz-warning);display:flex;align-items:center;gap:.375rem}
.zz-sw-line i{font-size:14px}
.zz-sw-line a,.zz-sw-line button{color:var(--primary);background:none;border:0;padding:0;cursor:pointer;font:inherit;text-decoration:underline}
.zz-sw-drag{outline:2px dashed var(--primary);outline-offset:-6px}

/* پیامِ کارها (خطا یا خبر) */
.zz-sw-note{margin:0}

/* سرِ بخش‌ها */
.zz-sw-sec-h{display:flex;align-items:center;justify-content:space-between;gap:.625rem;margin-bottom:.75rem}
.zz-sw-sec-t{font-size:var(--text-sm);font-weight:600;color:var(--mono);margin:0;display:flex;align-items:center;gap:.5rem;min-width:0}
.zz-sw-sec-t i{font-size:17px;color:var(--muted-foreground)}
.zz-sw-sec-t bdi{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* شروعِ سریع */
.zz-sw-starts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.875rem}
.zz-sw-start{display:flex;flex-direction:column;gap:.75rem;padding:1rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card);min-width:0;transition:border-color .15s,box-shadow .15s}
.zz-sw-start:hover{border-color:var(--zz-line-strong);box-shadow:var(--zz-shadow-pop)}
.zz-sw-start-h{display:flex;align-items:center;gap:.625rem;min-width:0}
.zz-sw-tile{width:2.375rem;height:2.375rem;border-radius:.625rem;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--zz-brand-soft);color:var(--primary)}
.zz-sw-tile i{font-size:20px}
.zz-sw-tile[data-tone="success"]{background:var(--zz-success-soft);color:var(--zz-success)}
.zz-sw-tile[data-tone="warning"]{background:var(--zz-warning-soft);color:var(--zz-warning)}
.zz-sw-tile[data-tone="info"]{background:var(--zz-info-soft);color:var(--zz-info)}
.zz-sw-start-k{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-sw-start-t{font-size:var(--text-sm);font-weight:600;color:var(--mono);line-height:1.5}
.zz-sw-quote{font-size:var(--text-2sm);color:var(--mono);padding:.5625rem .75rem;border-radius:.5625rem;background:var(--zz-surface-2);border:1px solid var(--border);line-height:1.8;overflow-wrap:anywhere}
.zz-sw-quote.is-muted{color:var(--secondary-foreground)}
.zz-sw-start-f{margin-top:auto;display:flex;align-items:center;justify-content:flex-end;gap:.5rem}
.zz-sw-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.875rem .625rem;border-radius:.625rem;border:1.5px dashed var(--zz-line-strong);background:var(--zz-surface-2);text-align:center;font-size:var(--text-xs);color:var(--secondary-foreground);cursor:pointer;transition:border-color .15s,background .15s}
.zz-sw-drop i{font-size:22px;color:var(--muted-foreground)}
.zz-sw-drop b{color:var(--mono);font-weight:600;font-size:var(--text-2sm)}
.zz-sw-drop:hover,.zz-sw-drop.is-over,.zz-sw-drop:focus-within{border-color:var(--primary);background:var(--zz-brand-soft)}

/* ادامهٔ کارِ قبلی */
.zz-sw-cont{display:flex;align-items:center;gap:.875rem;flex-wrap:wrap}
.zz-sw-cont-b{flex:1 1 12rem;min-width:0;display:flex;flex-direction:column;gap:.25rem}
.zz-sw-cont-m{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-sw-cont-m b{color:var(--mono)}
.zz-sw-cont-q{font-size:var(--text-sm);color:var(--mono);line-height:1.8;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.zz-sw-cont-a{display:flex;gap:.5rem;flex:none}
.zz-sw-meta{font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap}

/* دروازه (بی کانال، فقط ادیتور) */
.zz-sw-gate .kt-card-content{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.5rem}
.zz-sw-gate-b{display:flex;align-items:center;gap:1rem;min-width:0;flex:1 1 20rem}
.zz-sw-gate h3{font-size:var(--text-base);font-weight:600;color:var(--mono);margin:0 0 .25rem}
.zz-sw-gate p{margin:0;font-size:var(--text-sm);color:var(--secondary-foreground);line-height:1.8}

/* نتیجه */
.zz-sw-res .kt-card-header{gap:.625rem .875rem;flex-wrap:wrap;align-items:center}
.zz-sw-res-h{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1 1 16rem}
.zz-sw-res-h-t{display:flex;flex-direction:column;min-width:0;gap:.125rem}
.zz-sw-res-h-n{display:flex;align-items:center;gap:.5rem .625rem;flex-wrap:wrap}
.zz-sw-res-q{display:flex;align-items:center;gap:.25rem;min-width:0;font-size:var(--text-2sm);color:var(--secondary-foreground)}
.zz-sw-res-q>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-sw-res-q>span::before{content:"«"}
.zz-sw-res-q>span::after{content:"»"}
.zz-sw-res-q .kt-btn{width:1.625rem;height:1.625rem;flex:none}
.zz-sw-res .kt-card-toolbar{gap:.5rem;flex-wrap:wrap;align-items:center}
.zz-sw-res .kt-card-toolbar [aria-disabled="true"]{opacity:.5;pointer-events:none}
.zz-sw-res-body{display:flex;flex-direction:column;gap:1.375rem}
.zz-sw-res-body .zz-st-result{display:block}
.zz-sw-blk-h{display:flex;align-items:center;justify-content:space-between;gap:.625rem;margin-bottom:.625rem;min-height:1.75rem}
.zz-sw-blk-t{font-size:var(--text-2sm);font-weight:600;color:var(--mono);margin:0;display:flex;align-items:center;gap:.375rem}
.zz-sw-blk-t i{font-size:15px;color:var(--muted-foreground)}
.zz-sw-blk-m{font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap}
.zz-sw-blk-a{display:inline-flex;align-items:center;gap:.25rem}
.zz-sw-icon-btn{color:var(--muted-foreground)}
.zz-sw-icon-btn.is-done{color:var(--zz-success)}
.zz-sw-titles{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:.75rem;overflow:hidden}
.zz-sw-t{display:grid;grid-template-columns:1.375rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.6875rem .875rem;cursor:pointer;border-top:1px solid var(--border);transition:background .15s}
.zz-sw-t:first-child{border-top:0}
.zz-sw-t:hover{background:var(--zz-hover)}
.zz-sw-t:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
.zz-sw-t[aria-checked="true"]{background:var(--zz-brand-soft)}
.zz-sw-radio{width:1.125rem;height:1.125rem;border-radius:50%;border:1.5px solid var(--zz-line-strong);display:inline-flex;align-items:center;justify-content:center}
.zz-sw-t[aria-checked="true"] .zz-sw-radio{border-color:var(--primary)}
.zz-sw-t[aria-checked="true"] .zz-sw-radio::after{content:"";width:.5rem;height:.5rem;border-radius:50%;background:var(--primary)}
.zz-sw-t-b{min-width:0;display:flex;flex-direction:column;gap:.1875rem}
.zz-sw-t-v{font-size:var(--text-base);color:var(--mono);line-height:1.7;overflow-wrap:anywhere}
.zz-sw-t-m{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-sw-angle{display:inline-flex;align-items:center;height:1.25rem;padding:0 .5rem;border-radius:.375rem;background:var(--zz-surface-3);color:var(--secondary-foreground)}
.zz-sw-len.is-warn{color:var(--zz-warning);display:inline-flex;align-items:center;gap:.25rem}
.zz-sw-len.is-warn i{font-size:13px}
.zz-sw-t.is-pending{cursor:default}
.zz-sw-t.is-pending:hover{background:transparent}
.zz-sw-cols{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:1.375rem;align-items:start}
.zz-sw-stack{display:flex;flex-direction:column;gap:1.375rem;min-width:0}
.zz-sw-box{border:1px solid var(--border);border-radius:.75rem;background:var(--zz-surface-2);padding:.875rem 1rem;font-size:var(--text-sm);color:var(--mono);line-height:1.95;overflow-wrap:anywhere;white-space:pre-line}
.zz-sw-desc{display:flex;flex-direction:column;gap:.625rem;white-space:normal}
.zz-sw-desc p{margin:0;white-space:pre-line}
.zz-sw-desc p:first-child{font-weight:500}
.zz-sw-fold{display:flex;align-items:center;gap:.625rem;font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.4}
.zz-sw-fold::before,.zz-sw-fold::after{content:"";flex:1 1 auto;border-top:1px dashed var(--zz-line-strong)}
.zz-sw-thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
.zz-sw-thumb{aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;text-align:center;padding:.375rem .5rem;border:0;border-radius:.625rem;background:var(--zz-surface-3);box-shadow:inset 0 0 0 1px var(--border);color:var(--mono);font-family:inherit;font-size:var(--text-lg);font-weight:800;line-height:1.45;cursor:pointer;overflow-wrap:anywhere}
.zz-sw-thumb:hover,.zz-sw-thumb:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.zz-sw-thumb.is-done{outline:2px solid var(--zz-success);outline-offset:2px}
div.zz-sw-thumb{cursor:default}
.zz-sw-thumb-sk{aspect-ratio:16/9;height:auto !important;border-radius:.625rem}
.zz-sw-chips{display:flex;flex-wrap:wrap;gap:.375rem}
.zz-sw-tag{display:inline-flex;align-items:center;gap:.375rem;min-height:1.75rem;padding:.125rem .625rem;border-radius:.5rem;border:1px solid var(--border);background:var(--card);font-size:var(--text-xs);color:var(--mono);overflow-wrap:anywhere}
.zz-sw-tag.is-hash{color:var(--primary);border-color:var(--zz-brand-line);background:var(--zz-brand-soft)}
.zz-sw-meter{display:flex;align-items:center;gap:.625rem;margin-top:.625rem}
.zz-sw-meter .kt-progress{flex:1 1 auto;height:.375rem}
.zz-sw-meter .kt-progress-indicator{transform:none}
.zz-sw-meter span{font-size:var(--text-xs);color:var(--secondary-foreground);white-space:nowrap}
.zz-sw-meter.is-over span{color:var(--zz-warning)}
.zz-sw-comment{border:1px solid var(--border);border-radius:.75rem;padding:.75rem .875rem;display:flex;gap:.625rem;font-size:var(--text-2sm);color:var(--mono);line-height:1.9;white-space:pre-line;overflow-wrap:anywhere}
.zz-sw-comment i{font-size:17px;color:var(--primary);margin-top:.25rem}
.zz-sw-sk{display:flex;flex-direction:column;gap:.5625rem}
.zz-sw-sk .kt-skeleton{height:.75rem}
.zz-sw-sk-chip{width:5.5rem;height:1.75rem}
.zz-sw-caret{display:inline-block;width:2px;height:1.15em;vertical-align:-3px;background:var(--primary);margin-inline-start:2px;animation:zz-sw-blink 1s steps(1) infinite}
@keyframes zz-sw-blink{50%{opacity:0}}
.zz-sw-live{display:inline-flex;align-items:center;gap:.5rem;height:1.75rem;padding:0 .625rem;border-radius:999px;font-size:var(--text-xs);color:var(--zz-info);background:var(--zz-info-soft);border:1px solid var(--zz-info-line);white-space:nowrap}
.zz-sw-live b{font-variant-numeric:tabular-nums;font-weight:700}
.zz-sw-spin{width:.8125rem;height:.8125rem;border-radius:50%;border:2px solid var(--zz-info-line);border-top-color:var(--zz-info);animation:zz-sw-spin .8s linear infinite}
@keyframes zz-sw-spin{to{transform:rotate(360deg)}}
.zz-sw-state{display:flex;align-items:flex-start;gap:.75rem;padding:1rem;border-radius:.75rem;border:1px solid var(--border);background:var(--zz-surface-2);font-size:var(--text-sm);color:var(--mono);line-height:1.8}
.zz-sw-state i{font-size:20px;color:var(--muted-foreground);margin-top:.125rem}
.zz-sw-state.is-error{border-color:var(--zz-danger-line);background:var(--zz-danger-soft)}
.zz-sw-state.is-error i{color:var(--zz-danger)}
.zz-sw-res-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem 1rem;flex-wrap:wrap}
.zz-sw-again{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap}
.zz-sw-again-k{font-size:var(--text-xs);color:var(--secondary-foreground);margin-inline-end:.25rem}
.zz-sw-chip{display:inline-flex;align-items:center;gap:.3125rem;height:1.875rem;padding:0 .75rem;border-radius:999px;border:1px solid var(--border);background:var(--card);font-size:var(--text-xs);color:var(--mono);cursor:pointer;white-space:nowrap}
.zz-sw-chip i{font-size:14px;color:var(--muted-foreground)}
.zz-sw-chip:hover{border-color:var(--primary);color:var(--primary)}
.zz-sw-chip.is-current{border-color:var(--zz-brand-line);background:var(--zz-brand-soft);color:var(--primary);cursor:default}
.zz-sw-chip:disabled{opacity:.6;cursor:wait}
.zz-sw-ai{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-sw-ai i{font-size:15px}
.zz-sw-next{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.625rem}
.zz-sw-next button{display:flex;align-items:center;gap:.625rem;padding:.75rem;border:1px solid var(--border);border-radius:.75rem;background:var(--card);color:var(--mono);font-size:var(--text-2sm);font-weight:500;min-width:0;text-align:start;cursor:pointer;transition:border-color .15s}
.zz-sw-next button:hover,.zz-sw-next button:focus-visible{border-color:var(--primary)}
.zz-sw-next button>span:last-child{min-width:0;display:flex;flex-direction:column}
.zz-sw-next small{font-size:var(--text-xs);color:var(--secondary-foreground);font-weight:400}
.zz-sw-next .zz-sw-tile{width:2.125rem;height:2.125rem}
.zz-sw-next .zz-sw-tile i{font-size:18px}
.zz-sw-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.625rem}
.zz-sw-card{border:1px solid var(--border);border-radius:.75rem;padding:.875rem 1rem;display:flex;flex-direction:column;gap:.5rem;min-width:0;background:var(--card)}
.zz-sw-card-h{display:flex;align-items:flex-start;justify-content:space-between;gap:.625rem}
.zz-sw-card-t{font-size:var(--text-base);font-weight:600;color:var(--mono);line-height:1.7;margin:0;overflow-wrap:anywhere}
.zz-sw-card-p{margin:0;font-size:var(--text-sm);color:var(--secondary-foreground);line-height:1.85;white-space:pre-line;overflow-wrap:anywhere}
.zz-sw-card-p b{color:var(--mono);font-weight:600}
.zz-sw-card-a{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.zz-sw-srcs{display:flex;flex-wrap:wrap;gap:.375rem .75rem;font-size:var(--text-xs);color:var(--muted-foreground)}
.zz-sw-srcs a{color:var(--primary);display:inline-flex;align-items:center;gap:.25rem;max-width:100%}
.zz-sw-srcs a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-sw-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.zz-sw-say{font-size:var(--text-base);color:var(--mono);line-height:2;white-space:pre-line;overflow-wrap:anywhere;margin:0}
.zz-sw-visual{margin:0;font-size:var(--text-xs);color:var(--secondary-foreground);display:flex;gap:.375rem;align-items:flex-start}
.zz-sw-visual i{font-size:14px;margin-top:.1875rem}
.zz-sw-num{width:1.5rem;height:1.5rem;border-radius:.4375rem;display:inline-flex;align-items:center;justify-content:center;flex:none;background:var(--zz-surface-3);color:var(--secondary-foreground);font-size:var(--text-xs);font-weight:600}
.zz-sw-chap{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:.75rem;overflow:hidden}
.zz-sw-chap li{display:flex;align-items:center;gap:.875rem;padding:.5625rem .875rem;border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--mono)}
.zz-sw-chap li:first-child{border-top:0}
.zz-sw-chap bdi{font-variant-numeric:tabular-nums;color:var(--primary);font-weight:600;min-width:3.25rem}

/* ستونِ کنار */
.zz-sw-chan-h{display:flex;align-items:center;gap:.75rem;min-width:0}
.zz-sw-avatar{width:2.75rem;height:2.75rem;border-radius:50%;flex:none;object-fit:cover;border:1px solid var(--border);background:var(--zz-surface-3)}
.zz-sw-chan-n{display:flex;flex-direction:column;min-width:0}
.zz-sw-chan-n b{font-size:var(--text-sm);font-weight:600;color:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-sw-chan-n bdi{font-size:var(--text-xs);color:var(--secondary-foreground);overflow-wrap:anywhere}
.zz-sw-facts{display:flex;flex-direction:column;gap:.625rem}
.zz-sw-fact{display:grid;grid-template-columns:3.25rem minmax(0,1fr) auto;align-items:center;gap:.5rem;min-height:1.75rem}
.zz-sw-fact-k{font-size:var(--text-xs);color:var(--secondary-foreground)}
.zz-sw-fact-v{font-size:var(--text-2sm);color:var(--mono);font-weight:500;min-width:0;overflow-wrap:anywhere}
.zz-sw-fact-v.is-empty{color:var(--muted-foreground);font-weight:400}
.zz-sw-fact .kt-btn{width:1.75rem;height:1.75rem}
.zz-sw-fact-edit{grid-column:2/-1;display:flex;align-items:center;gap:.25rem;min-width:0}
.zz-sw-fact-edit .kt-input{height:2rem;min-width:0;flex:1 1 auto;font-size:var(--text-2sm)}
.zz-sw-fact-err{grid-column:2/-1;margin:0;font-size:var(--text-xs);color:var(--zz-danger)}
.zz-sw-src{font-size:var(--text-xs);color:var(--muted-foreground);display:flex;align-items:center;gap:.375rem;margin:0}
.zz-sw-src i{font-size:14px}
.zz-sw-hist{list-style:none;margin:0;padding:0 0 .25rem}
.zz-sw-hist-g{padding:.75rem 1rem .25rem;font-size:var(--text-xs);color:var(--muted-foreground);font-weight:500}
.zz-sw-hist-i a{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.625rem;padding:.5625rem 1rem;color:inherit;border-inline-start:2px solid transparent;transition:background .15s}
.zz-sw-hist-i a:hover,.zz-sw-hist-i a:focus-visible{background:var(--zz-hover)}
.zz-sw-hist-i.is-active a{background:var(--zz-brand-soft);border-inline-start-color:var(--primary)}
.zz-sw-hist-ic{width:2rem;height:2rem;border-radius:.5625rem;display:inline-flex;align-items:center;justify-content:center;background:var(--zz-surface-3);color:var(--secondary-foreground)}
.zz-sw-hist-ic i{font-size:16px}
.zz-sw-hist-i.is-active .zz-sw-hist-ic{background:var(--card);color:var(--primary)}
.zz-sw-hist-b{min-width:0;display:flex;flex-direction:column}
.zz-sw-hist-t{font-size:var(--text-2sm);color:var(--mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-sw-hist-k{font-size:var(--text-xs);color:var(--secondary-foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zz-sw-hist-k .is-bad{color:var(--zz-danger)}
.zz-sw-hist-w{font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap}
.zz-sw-hist-empty{padding:1rem;font-size:var(--text-sm);color:var(--secondary-foreground)}
.zz-sw-terms{font-size:var(--text-xs);color:var(--muted-foreground);display:inline-flex;align-items:center;gap:.375rem;padding-inline:.25rem}
.zz-sw-terms i{font-size:14px}
.zz-sw-terms a{color:inherit;text-decoration:underline}

/* ستونِ اصلی به پهنای خودش */
@container zz-swm (max-width:760px){
  .zz-sw-tool{font-size:var(--text-xs);gap:.375rem;padding-inline:.25rem}
}
@container zz-swm (max-width:640px){.zz-sw-next{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container zz-swm (max-width:680px){
  .zz-sw-tools{grid-template-columns:repeat(3,minmax(0,1fr))}
  .zz-sw-tool{font-size:var(--text-2sm);gap:.5rem}
  .zz-sw-starts,.zz-sw-cols,.zz-sw-grid2{grid-template-columns:minmax(0,1fr)}
  .zz-sw-starts{gap:.625rem}
  .zz-sw-start{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.625rem .75rem;padding:.875rem}
  .zz-sw-start-h{grid-column:1;grid-row:1}
  .zz-sw-start-f{grid-column:2;grid-row:1;margin-top:0}
  .zz-sw-start .zz-sw-quote,.zz-sw-start .zz-sw-drop{grid-column:1/-1}
  .zz-sw-start .zz-sw-drop{flex-direction:row;gap:.625rem;padding:.75rem}
}
@container zz-swm (max-width:560px){
  .zz-sw-send{width:100%}
  .zz-sw-send .kt-btn{flex:1 1 auto}
  textarea.zz-sw-ta{padding:.875rem 1rem .25rem}
  .zz-sw-t{grid-template-columns:1.25rem minmax(0,1fr) auto;gap:.625rem;padding:.6875rem .625rem .6875rem .75rem}
  .zz-sw-thumb{font-size:var(--text-2sm)}
  .zz-sw-res-q>span{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .zz-sw-res .kt-card-toolbar{width:100%}
  .zz-sw-res .kt-card-toolbar .kt-btn-primary{flex:1 1 auto;justify-content:center}
  .zz-sw-cont-a{width:100%}
  .zz-sw-cont-a .kt-btn{flex:1 1 0;justify-content:center}
  .zz-sw-next{gap:.5rem}
  .zz-sw-next button{padding:.625rem;gap:.5rem}
  .zz-sw-res-foot{flex-direction:column;align-items:flex-start}
  .zz-sw-lang-pop{grid-template-columns:minmax(0,1fr)}
}
/* صفحهٔ باریک (گوشی): ردیفِ عنوان جمع‌وجور، دکمه‌ها فقط آیکن */
@container zz-sw (max-width:600px){
  .zz-sw-top-end{width:100%;flex-wrap:nowrap}
  .zz-sw-top-end .zz-sw-pill{flex:1 1 auto;min-width:0;height:2.5rem;overflow:hidden}
  .zz-sw-top-end .kt-btn{flex:none;width:2.5rem;height:2.5rem;padding:0;justify-content:center}
  .zz-sw-btn-t{display:none}
}
@media print{.zz-sw-side,.zz-sw-comp,.zz-sw-top-end{display:none !important}}
