/* ============================================================
   SARASOFT FIX PACK v1.0.0 — 2026-10-13
   P0 + P1 fixes: iOS zoom, mobile footer/legal links, tap targets,
   z-index sanity, focus rings, tiny fonts, notification sheet guard,
   desktop chat empty-state cards removal.
   This file loads LAST (after theme-head) and must win without !important wars:
   it uses high-specificity selectors instead.
   ============================================================ */

/* ---------- P0-1: prevent iOS auto-zoom on focus ---------- */
@media (max-width: 767px) {
  body.nikrad-app .composer textarea,
  body.nikrad-app input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=submit]):not([type=button]),
  body.nikrad-app select,
  body.nikrad-app textarea,
  body.nikrad-app .field input,
  body.nikrad-app .field select,
  body.nikrad-app .field textarea {
    font-size: 16px !important;
  }
}

/* ---------- P0-2: compact legal footer on mobile (restores privacy/terms links) ---------- */
@media (max-width: 767px) {
  body.nikrad-app .nk-mobile-legal {
    display: flex !important;
    visibility: visible !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 14px var(--gutter, 16px) calc(14px + env(safe-area-inset-bottom, 0px)) !important;
    border: 0 !important;
    overflow: visible !important;
    flex-wrap: wrap;
    gap: 6px 14px;
    justify-content: center;
    font-size: 12px;
    color: var(--muted, #6b6b6b);
    background: var(--bg, #fff);
    border-top: 1px solid var(--line, #e5e5e5);
  }
  body.nikrad-app .nk-mobile-legal a {
    color: var(--ink-soft, #333);
    text-decoration: none;
    font-weight: 600;
    min-height: 32px;
    display: inline-flex;
    align-items: center;
  }
  body.nikrad-app .nk-mobile-legal a:hover { color: var(--accent, #111); }
}
@media (min-width: 768px) {
  body.nikrad-app .nk-mobile-legal { display: none; }
}

/* ---------- P1-5/P1-6: readability + touch targets ---------- */
body.nikrad-app button,
body.nikrad-app [role="button"] {
  touch-action: manipulation;
}
@media (max-width: 767px) {
  body.nikrad-app .btn-sm,
  body.nikrad-app button.bm,
  body.nikrad-app .nk-mini,
  body.nikrad-app .mini-btn,
  body.nikrad-app .pagination button {
    min-height: 44px;
    min-width: 44px;
  }
}

/* ---------- P2-7: visible focus ring ---------- */
body.nikrad-app :focus-visible {
  outline: 2px solid var(--accent, #111);
  outline-offset: 2px;
  border-radius: 4px;
}
body.nikrad-app input:focus-visible,
body.nikrad-app textarea:focus-visible,
body.nikrad-app select:focus-visible {
  outline: 2px solid var(--accent, #111);
  outline-offset: 0;
}

/* ---------- P2-1: chat answer tables/code never overflow ---------- */
body.nikrad-app .answer table,
body.nikrad-app .msg table,
body.nikrad-app .message-body table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
body.nikrad-app .answer pre,
body.nikrad-app .msg pre,
body.nikrad-app .message-body pre {
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
body.nikrad-app .answer img,
body.nikrad-app .msg img {
  max-width: 100%;
  height: auto;
}

/* ---------- NOTIF SHEET: robust open/close regardless of page ---------- */
/* Overlay must sit under sheet but above everything else */
body.nikrad-app #sheetOverlay {
  z-index: 7200 !important;
}
body.nikrad-app .sheet#notifSheet,
body.nikrad-app .sheet#acctSheet,
body.nikrad-app .sheet#sourceSheet,
body.nikrad-app .sheet#moveSheet {
  z-index: 7201 !important;
}
/* If overlay is open but its sheet is missing/never opens, auto-recover after 700ms */
body.nikrad-app.sheet-open #sheetOverlay.open ~ * { /* noop anchor */ }

/* ---------- DESKTOP CHAT: hide empty-state hero cards (user request) ---------- */
@media (min-width: 768px) {
  body.nikrad-app.chat-empty .hero,
  body.nikrad-app.chat-empty #hero,
  body.nikrad-app.chat-empty .hero-sub,
  body.nikrad-app.chat-empty .z-cards,
  body.nikrad-app.chat-empty .z-card {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
  }
  body.nikrad-app.chat-empty #inner {
    justify-content: center !important;
    align-items: stretch !important;
  }
}

/* ---------- P2-4: cap runaway z-index inside admin & site ---------- */
body.nikrad-app .toast { z-index: 7300 !important; }

/* ---------- P2-3: allow pull-to-refresh only outside chat ---------- */
html:not(:has(body.nikrad-app)) { overscroll-behavior-y: auto; }

/* ============================================================
   FIXPACK V2 — admin panel readability + touch targets
   ============================================================ */
@media (max-width: 900px) {
  body[data-admin-shell="v2"] .mini-btn,
  body[data-admin-shell="v2"] .nk-mini,
  body[data-admin-shell="v2"] .sidebar-collapse {
    min-width: 44px !important;
    min-height: 44px !important;
  }
}
body[data-admin-shell="v2"] .status-pill,
body[data-admin-shell="v2"] .kpi-note,
body[data-admin-shell="v2"] .nav-section-title,
body[data-admin-shell="v2"] .activity-copy span {
  font-size: 12px;
  line-height: 1.7;
}
body[data-admin-shell="v2"] .nk-crumb { font-size: 11px; }

/* FIXPACK V2 — pagination & small buttons site-wide min touch area */
body.nikrad-app .pagination button { min-height: 44px; min-width: 44px; }

/* FIXPACK V2 — mobile KPI grid already 2-col via all-pages css; ensure stat-card readable */
@media (max-width: 767px) {
  body.nikrad-app .stat-card .num { font-size: 22px; }
  body.nikrad-app .stat-card .label { font-size: 12px; }
}

/* ============================================================
   FIXPACK V3 — z-index scale + auth shell + misc
   Scale: header 100 · drawer 200 · sheet 300 · toast 400 · modal 500
   (mapped onto existing 7000-range to avoid breaking current stacking)
   ============================================================ */
:root {
  --z-header: 4000;
  --z-drawer: 4901;
  --z-sheet: 7201;
  --z-toast: 7300;
  --z-modal: 9000;
}
body.nikrad-app .app-header { z-index: var(--z-header); }
body.nikrad-app .drawer { z-index: var(--z-drawer); }

/* Auth pages: card grows with content, no clipping, centered */
@media (min-width: 1100px) {
  body.nikrad-app .device,
  .auth-device {
    height: auto !important;
    max-height: none !important;
  }
}

/* ============================================================
   FIXPACK V5 — هدر سراسری: چیدمان قطعی flex (رفع هم‌پوشانی لوگو/تم/همبرگر)
   مشکل: چند گرید متناقض روی .app-header و .nk-header-inner
   (site-shell 1fr/auto/1fr + nikrad-critical auto/1fr/auto + display:contents
   + nikrad-media auto/1fr/auto) با ۴ فرزند → ردیف اضافه و سقوط المان‌ها.
   راه‌حل: flex تک‌ردیفی با ترتیب DOM معکوس (RTL) و عرضهای سرریز امن.
   ============================================================ */
html .app-header.nk-media-header,
html .app-header {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  height: 60px !important;
  padding-inline: clamp(10px, 2.5vw, 20px) !important;
}
html .app-header .nk-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  gap: 8px !important;
}
/* لوگو وسط‌چین فضای خودش؛ سرریز متن مخفی نه بریده ریز */
html .app-header .header-brand {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  justify-content: center !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  overflow: hidden !important;
}
html .app-header .header-brand-copy {
  max-width: 46vw !important;
  overflow: hidden !important;
}
html .app-header .header-brand-copy strong,
html .app-header .header-brand-copy small {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
html .app-header .header-zone {
  display: flex !important;
  align-items: center !important;
  gap: 2px !important;
  flex: 0 0 auto !important;
}
/* ناوبری دسکتاپ: منقبض، بدون فشار روی لوگو */
html .app-header .header-nav {
  display: flex !important;
  gap: 12px !important;
  flex: 0 1 auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
}
@media (max-width: 980px) {
  html .app-header .header-nav { display: none !important; }
}
/* آیکن‌ها: اندازه ثابت، فشرده‌شونده نیستند */
html .app-header .header-icon {
  flex: 0 0 auto !important;
  width: 40px !important;
  height: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border: 0 !important;
  background: transparent !important;
  border-radius: 12px !important;
}
html .app-header .header-icon svg,
html .app-header .header-icon .nk-ti svg {
  width: 20px !important;
  height: 20px !important;
}
/* جفت ماه/خورشید: فقط یکی نمایان */
html .app-header .nk-ti { display: none !important; }
html .app-header .nk-ti-moon { display: inline-flex !important; }
html[data-theme="dark"] .app-header .nk-ti-moon { display: none !important; }
html[data-theme="dark"] .app-header .nk-ti-sun { display: inline-flex !important; }
@media (max-width: 640px) {
  html .app-header { height: 56px !important; }
  html .app-header .header-brand-copy { max-width: 40vw !important; }
  html .app-header .header-brand-copy small { display: none !important; }
  html .app-header .header-icon { width: 38px !important; height: 38px !important; }
}

/* ============================================================
   FIXPACK V6 — فوتر منوها: در موبایل کلاً مخفی؛ در دسکتاپ با استایل کامل
   ============================================================ */
@media (max-width: 1023px) {
  body .theme-footer,
  body footer.theme-footer {
    display: none !important;
    visibility: hidden !important;
  }
}
@media (min-width: 1024px) {
  body .theme-footer {
    display: block !important;
    width: 100% !important;
    margin-top: 40px !important;
    padding: 28px 0 !important;
    border-top: 1px solid var(--shell-line, #e5e5e5) !important;
    background: var(--shell-surface, #fafafa) !important;
  }
  body .theme-footer .theme-footer-inner {
    width: min(1180px, calc(100% - 48px)) !important;
    margin-inline: auto !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 40px !important;
    box-sizing: border-box !important;
  }
  body .theme-footer .theme-footer-brand strong {
    display: block !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    color: var(--shell-ink, #111) !important;
  }
  body .theme-footer .theme-footer-brand span {
    display: block !important;
    margin-top: 6px !important;
    font-size: 12px !important;
    color: var(--shell-muted, #777) !important;
  }
  body .theme-footer .theme-footer-links {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(120px, 1fr)) !important;
    gap: 24px !important;
    flex: 1 !important;
  }
  body .theme-footer .theme-footer-links b {
    display: block !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: var(--shell-ink, #111) !important;
    margin-bottom: 8px !important;
  }
  body .theme-footer .theme-footer-links a {
    display: block !important;
    margin: 6px 0 !important;
    font-size: 12.5px !important;
    color: var(--shell-muted, #666) !important;
    text-decoration: none !important;
  }
  body .theme-footer .theme-footer-links a:hover { color: var(--shell-ink, #111) !important; }
}

/* ============================================================
   FIXPACK V7 — باگ‌های یافتهٔ دور جدید
   ============================================================ */
/* 7.1 — بالون قرمز خالی در صفحات کلید (ورود/ثبت‌نام):
   .alert{display:flex} روی hidden غلبه می‌کند → بالون خالی قرمز. */
[hidden] { display: none !important; }

/* 7.2 — ابزار خواندن (سپیا / A+ / A−) که کار نمی‌کرد:
   data-size و data-tone روی .nk-reader ست می‌شود ولی متن در .article/.lead است
   و هیچ استایلی برای حالت‌ها روی این صفحه تعریف نشده بود. */
.nk-reader .article { font-size: var(--nk-reader-fs, 15px); line-height: 2; }
.nk-reader[data-size="s"] { --nk-reader-fs: 14px; }
.nk-reader[data-size="m"] { --nk-reader-fs: 15px; }
.nk-reader[data-size="l"] { --nk-reader-fs: 17px; }
.nk-reader[data-size] .article, .nk-reader[data-size] .lead { transition: font-size .15s ease; }
.nk-reader[data-tone="sepia"] {
  background: #fbf6ec !important;
  color: #3a3227 !important;
  padding: 18px 16px !important;
  border-radius: 16px !important;
  box-shadow: inset 0 0 0 1px #eadfca;
}
.nk-reader[data-tone="sepia"] .article,
.nk-reader[data-tone="sepia"] .lead,
.nk-reader[data-tone="sepia"] .hero,
.nk-reader[data-tone="sepia"] .crumbs { color: #3a3227 !important; }
html[data-theme="dark"] .nk-reader[data-tone="sepia"] {
  background: #241f16 !important;
  color: #e8dfd0 !important;
  box-shadow: inset 0 0 0 1px #3a3227;
}
html[data-theme="dark"] .nk-reader[data-tone="sepia"] .article,
html[data-theme="dark"] .nk-reader[data-tone="sepia"] .lead { color: #e8dfd0 !important; }

/* 7.3 — دکمه‌های اکشن سند (نشان‌گذاری/چاپ/اشتراک/کپی/منبع) — استایل قطعی */
.nk-reader .actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin: 0 0 22px !important;
  padding: 12px 14px !important;
  background: var(--raised, #fff) !important;
  border: 1px solid var(--line, #e5e5e5) !important;
  border-radius: 16px !important;
}
.nk-reader .act {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 40px !important;
  padding: 9px 15px !important;
  border-radius: 12px !important;
  background: var(--soft, #f4f4f4) !important;
  border: 1px solid var(--line, #e5e5e5) !important;
  color: var(--ink-soft, #333) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  transition: .15s;
  text-decoration: none !important;
}
.nk-reader .act svg { width: 17px; height: 17px; flex: 0 0 auto; }
.nk-reader .act:hover {
  background: var(--accent-soft, #efefef) !important;
  color: var(--accent, #111) !important;
  border-color: var(--accent-dim, #ccc) !important;
}
.nk-reader .act.saved {
  background: var(--accent-soft, #efefef) !important;
  color: var(--accent, #111) !important;
  border-color: var(--accent-dim, #ccc) !important;
}
.nk-reader .act.primary {
  background: var(--ink, #111) !important;
  color: var(--bg, #fff) !important;
  border-color: var(--ink, #111) !important;
}
.nk-reader .act.primary:hover { opacity: .88 !important; color: var(--bg, #fff) !important; }
.nk-reader .act.spacer { margin-inline-start: auto !important; }
@media (max-width: 640px) {
  .nk-reader .actions { padding: 10px !important; gap: 6px !important; border-radius: 14px !important; }
  .nk-reader .act { padding: 8px 12px !important; font-size: 12.5px !important; min-height: 42px !important; }
}

/* 7.4 — نوار ابزار خواندن: همیشه دیده شود و دکمه‌هایش استایل داشته باشند */
.nk-reader-bar {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 0 !important;
  margin-bottom: 14px !important;
}
.nk-reader-bar .nk-btn {
  min-height: 36px !important;
  padding: 7px 14px !important;
  border: 1px solid var(--line, #e5e5e5) !important;
  border-radius: 10px !important;
  background: var(--surface, #fff) !important;
  color: var(--ink, #111) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}
.nk-reader-bar .nk-btn:hover { background: var(--soft, #f4f4f4) !important; }
.nk-reader-bar .nk-btn.is-active {
  background: var(--ink, #111) !important;
  color: var(--bg, #fff) !important;
  border-color: var(--ink, #111) !important;
}

/* ============================================================
   FIXPACK V7.1 — هدر چت هرگز با قوانین .hero مخفی نشود
   (JS قدیمی به app-header کلاس hero می‌داد؛ با chat-empty هدر حذف می‌شد)
   ============================================================ */
header.app-header.hero,
header.app-header.nk-hero {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* ============================================================
   FIXPACK V8 — P2-3 overscroll و P2-7 فوکوس‌رینگ
   ============================================================ */
/* P2-3: pull-to-refresh فقط در چت بلاک شود، بقیهٔ صفحات آزاد */
html { overscroll-behavior-y: auto !important; }
body.nikrad-app .nk-chat-shell,
body.nikrad-app #scroll { overscroll-behavior: contain; }

/* P2-7: فوکوس‌رینگ قابل‌دیدن برای کیبورد */
:focus-visible { outline: 2px solid var(--accent, #111); outline-offset: 2px; }
.btn:focus-visible, a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--accent, #111) !important;
  outline-offset: 2px !important;
}
