/*!************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/tokens.css ***!
  \************************************************************************************************************************************************************************************************************************************************************/
/* =========================================================================
   توکن‌های طراحی — تک‌مرجع: docs/Design-System.md §۱ تا §۳
   هیچ رنگ دستی در کامپوننت‌ها مجاز نیست؛ همیشه از این توکن‌ها.
   ========================================================================= */

:root {
  /* --- پایه برند — Onezi Visual Identity v1.0 (D-UI-03) --- */
  --brand-black: #0d0f12;     /* Onezi Black — رنگ اصلی */
  --brand-charcoal: #4b4f56;  /* Charcoal Grey — ثانویه */
  --brand-light-grey: #e8e9ec;/* Light Grey — ثانویه */
  --on-dark: #ffffff;          /* متن روی سطوح همیشه‌تیره (فوتر، بنتو، نوار سفارشی) در هر دو تم */
  --brand-gold: #d4af37;
  --brand-gold-warm: #f3d07a;
  --brand-offwhite: #f8f6f2;
  --brand-graphite: #1a1a1a;

  /* --- تم روشن = پیش‌فرض محصول (D-UI-01) --- */
  --bg: #f8f6f2;
  --surface: #ffffff;
  --surface-alt: #f1eee8;
  --fg: #0d0f12;
  --fg-muted: #4b4f56;
  --border: #e2ded5;
  --primary: #0d0f12;
  --on-primary: #ffffff;
  /* طلایی برند روی سفید کنتراست ۱٫۹:۱ دارد و برای متن مردود است. */
  --accent: #b8912a;
  --on-accent: #ffffff;
  --ring: #b8912a;

  /* --- رنگ‌های معنایی --- */
  --success: #1e7a46;
  --warning: #a9660a;
  --danger: #b3261e;
  --info: #1f5c99;
  --price-up: #1e7a46;
  --price-down: #b3261e;

  /* --- ارتفاع (تم روشن: سایه) --- */
  --elev-1: 0 1px 2px rgba(13, 15, 18, 0.06);
  --elev-2: 0 4px 12px rgba(13, 15, 18, 0.08);
  --elev-3: 0 12px 28px rgba(13, 15, 18, 0.12);

  /* --- فاصله (مبنای ۴px) --- */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-6: 24px; --space-8: 32px; --space-12: 48px; --space-16: 64px;

  /* --- شعاع — Design System v2 (D-UI-02، زبان لندینگ v9) --- */
  --radius-control: 14px;
  --radius-card: 22px;
  --radius-sheet: 28px;
  --radius-section: 36px;
  --radius-chip: 999px;
  --radius-pill: 999px;

  /* --- سطوح و طلایی متن — Design System v2 --- */
  --cream: #efe7d8;
  --cream-soft: #f6f0e4;
  --border-strong: #d3ccbe;
  --accent-ink: #86660f;   /* طلایی متن روی زمینه روشن، کنتراست ≥ ۴٫۵:۱ */
  --black-2: #1f2228;         /* گرادیان رسمی Black→Charcoal */
  --black-3: #33363c;
  --glass: rgba(255, 255, 255, 0.8);
  --success-bg: #e7f2ea;
  --warning-bg: #fbf0dc;
  --danger-bg: #fbe8e6;
  --info-bg: #e5eef8;
  --ease-v2: cubic-bezier(0.2, 0.7, 0.2, 1);

  /* --- تایپوگرافی --- */
  --font-fa: "Peyda", "Vazirmatn", Tahoma, sans-serif;
  --font-latin: "DM Sans", var(--font-fa);
  --leading-body: 1.8;
  --leading-heading: 1.4;

  /* --- حرکت (§۶) --- */
  --motion-control: 150ms;
  --motion-sheet: 250ms;
  --motion-list: 200ms;
  --motion-rate-highlight: 300ms;
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-sheet: cubic-bezier(0.2, 0.8, 0.2, 1);

  /* --- هدف لمسی --- */
  --tap-min: 44px;
  --content-max: 1320px;
  --admin-sidebar: 248px;
  --details-drawer: 380px;
  --ease-out-strong: cubic-bezier(0.23, 1, 0.32, 1);
}

[data-theme="dark"] {
  --bg: #0d0f12;
  --surface: #16181d;
  --surface-alt: #1e2127;
  --fg: #f5f3ee;
  --fg-muted: #a4a8af;
  --border: #2a2d33;
  --primary: #d4af37;
  --on-primary: #0d0f12;
  --accent: #f3d07a;
  --ring: #d4af37;

  --success: #3fbb77;
  --warning: #e5a63a;
  --danger: #f2685e;
  --info: #5fa8e8;
  --price-up: #3fbb77;
  --price-down: #f2685e;

  --cream: #1e2127;
  --cream-soft: #191b20;
  --border-strong: #3a3d44;
  --accent-ink: #f3d07a;
  --glass: rgba(22, 24, 29, 0.82);
  --success-bg: #12301f;
  --warning-bg: #33260f;
  --danger-bg: #3a1714;
  --info-bg: #10263f;

  /* سایه روی سطح تیره دیده نمی‌شود؛ عمق با مرز روشن‌تر ساخته می‌شود. */
  --elev-1: inset 0 0 0 1px rgba(212, 175, 55, 0.1);
  --elev-2: inset 0 0 0 1px rgba(212, 175, 55, 0.18);
  --elev-3: inset 0 0 0 1px rgba(212, 175, 55, 0.24);
}

/*!***********************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/fonts.css ***!
  \***********************************************************************************************************************************************************************************************************************************************************/
/* =========================================================================
   فونت‌های برند — Onezi Visual Identity v1.0 (D-UI-03)
   فارسی: Peyda (تجاری، fontiran — فایل‌ها Commit نمی‌شوند و در Deploy با مجوز وب
   قرار می‌گیرند؛ نبودشان = Vazirmatn). لاتین و ارقام لاتین: DM Sans (OFL).
   وزن‌ها طبق راهنما: تیتر Bold، زیرتیتر SemiBold، متن Regular، توضیح Light.
   ========================================================================= */

@font-face { font-family: "Peyda"; src: url("/fonts/peyda/peyda-300.woff2") format("woff2"); font-weight: 300; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("/fonts/peyda/peyda-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("/fonts/peyda/peyda-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("/fonts/peyda/peyda-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("/fonts/peyda/peyda-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("/fonts/peyda/peyda-800.woff2") format("woff2"); font-weight: 800 900; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("/fonts/dm-sans/dm-sans-variable.woff2") format("woff2"); font-weight: 100 1000; font-display: swap; }

/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-fa);
  font-size: 15px;              /* حداقل بدنه روی موبایل — §۷ */
  line-height: var(--leading-body);
}

@media (min-width: 768px) {
  body { font-size: 16px; }
}

h1, h2, h3 { line-height: var(--leading-heading); margin: 0 0 var(--space-3); }

/* --- اعداد مالی: ارقام لاتین، هم‌عرض، غیرقابل‌شکست (§۲) --- */
.money, .num {
  font-family: var(--font-latin);
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "tnum";
  direction: ltr;
  unicode-bidi: -webkit-isolate;
  unicode-bidi: isolate;
  white-space: nowrap;
}

/* --- فوکوس همیشه دیده می‌شود؛ حذف outline بدون جایگزین ممنوع (§۷) --- */
:focus-visible {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
  border-radius: var(--radius-control);
}

/* --- هدف لمسی حداقل ۴۴×۴۴ (§۴٫۸) --- */
button, a[role="button"], input[type="submit"] {
  min-height: var(--tap-min);
  min-width: var(--tap-min);
  font-family: inherit;
}

/* --- آیکون‌های جهت‌دار در RTL آینه می‌شوند، خنثی‌ها نه (§۵) --- */
[dir="rtl"] .icon-directional { transform: scaleX(-1); }

/* --- §۶: کاربر اگر حرکت کمتر خواست، فقط تایمر می‌ماند چون حامل اطلاعات است --- */
@media (prefers-reduced-motion: reduce) {
  *:not(.quote-timer):not(.quote-timer *) {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* --- اسکلت صفحه نمونه M1 --- */
.page { max-width: 720px; margin: 0 auto; padding: var(--space-6) var(--space-4); }
.head h1 { font-size: 22px; }
@media (min-width: 768px) { .head h1 { font-size: 30px; } }
.muted { color: var(--fg-muted); }
.note { color: var(--fg-muted); font-size: 13px; margin-top: var(--space-4); }

.card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  box-shadow: var(--elev-1);
  padding: var(--space-4);
  margin-top: var(--space-6);
}

.price-breakdown { width: 100%; border-collapse: collapse; margin-top: var(--space-4); }
.price-breakdown th { text-align: start; font-weight: 500; }
.price-breakdown td, .price-breakdown th { padding: var(--space-2) 0; vertical-align: baseline; }
.price-breakdown .basis { color: var(--fg-muted); font-size: 13px; text-align: start; }
.price-breakdown td.money { text-align: end; }
.price-breakdown tfoot th, .price-breakdown tfoot td {
  border-top: 1px solid var(--border);
  padding-top: var(--space-3);
  font-weight: 700;
}
.price-breakdown tfoot .total { font-size: 24px; }
@media (min-width: 768px) { .price-breakdown tfoot .total { font-size: 30px; } }

/* --- فرم و ورودی (Design-System §۴٫۹) --- */
.stack { display: flex; flex-direction: column; gap: var(--space-4); }

.field { display: flex; flex-direction: column; gap: var(--space-2); }
.field label { font-weight: 500; }
.field input {
  height: var(--tap-min);
  padding: 0 var(--space-3);
  border: 1px solid var(--border);
  border-radius: var(--radius-control);
  background: var(--surface);
  color: var(--fg);
  font-family: inherit;
  font-size: 16px; /* کمتر از این روی iOS خودکار Zoom می‌کند */
}
.field input:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; }
.field input:disabled { opacity: 0.6; }

/* هدف لمسی حداقل ۴۴px (`M6-006`) برای input/select/textarea خارج از
   `.field`/`.form-grid` هم — مثل فرم‌های فشرده داخل سلول جدول در صف‌های
   عملیات (`WorkshopQueue`, `ShipmentsQueue`, `ReturnsQueue`). */
input:not([type="checkbox"]):not([type="radio"]), select, textarea {
  min-height: var(--tap-min);
}

.field-error {
  color: var(--danger);
  font-size: 13px;
  margin: 0;
}

.countdown-timer { color: var(--fg-muted); font-size: 13px; margin: 0; }
.countdown-timer.countdown-expired { color: var(--danger); }

/* --- دکمه‌ها (Design-System §۴٫۸) --- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 48px;
  padding: 0 var(--space-4);
  border-radius: var(--radius-control);
  border: 1px solid transparent;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: opacity var(--motion-control) var(--ease-out-strong), transform var(--motion-control) var(--ease-out-strong), background-color var(--motion-control) ease;
}
@media (min-width: 768px) { .btn { min-height: var(--tap-min); } }

.btn:disabled { opacity: 0.5; cursor: not-allowed; }
.btn:not(:disabled):active { transform: scale(.97); }

.btn-primary { background: var(--primary); color: var(--on-primary); }
.btn-secondary { background: transparent; border-color: var(--primary); color: var(--primary); }
.btn-text { background: transparent; color: var(--accent); min-height: var(--tap-min); padding: 0 var(--space-2); }

.auth-card { max-width: 420px; }
.auth-links { display: flex; flex-direction: column; gap: var(--space-1); align-items: flex-start; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* --- پنل عملیاتی نرخ M2-011: متراکم، mobile-first و بدون رنگ دستی --- */
.admin-page { max-width: 1180px; margin: 0 auto; padding: var(--space-4); }
.admin-head { display: flex; flex-direction: column; gap: var(--space-3); margin-bottom: var(--space-6); }
.admin-head h1 { font-size: 24px; }
.eyebrow { color: var(--accent); font-weight: 700; margin: 0 0 var(--space-1); }
.metric-grid { display: grid; grid-template-columns: 1fr; grid-gap: var(--space-3); gap: var(--space-3); }
.metric-card {
  display: flex; flex-direction: column; gap: var(--space-2); min-height: 150px;
  padding: var(--space-4); background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius-card); box-shadow: var(--elev-1);
}
.metric-label, .metric-meta { color: var(--fg-muted); }
.metric-value { font-size: 22px; }
.status {
  display: inline-flex; align-items: center; width: -moz-fit-content; width: fit-content; min-height: 32px;
  padding: 0 var(--space-3); border: 1px solid currentColor; border-radius: var(--radius-chip);
  font-size: 13px; font-weight: 700;
}
.status-closed, .status-success, .status-active, .status-published, .status-tone-success { color: var(--success); }
.status-tone-danger { color: var(--danger); }
.status-tone-warning { color: var(--warning); }
.status-tone-muted { color: var(--fg-muted); }
.status-tone-info { color: var(--info); }
.status-open, .status-failed, .status-rejected, .status-archived { color: var(--danger); }
.status-pending, .status-draft, .status-paused, .status-reviewing { color: var(--warning); }
.status-expired, .status-retired, .status-out_of_stock { color: var(--fg-muted); }
.monitor-section h2 { font-size: 19px; }
.inline-form { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-3); }
.grow { flex: 1 1; }
.request-list { display: flex; flex-direction: column; gap: var(--space-3); }
.request-row {
  display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-3);
  border: 1px solid var(--border); border-radius: var(--radius-control); background: var(--surface-alt);
}
.request-row p { margin: var(--space-1) 0 0; }
.request-actions { display: flex; gap: var(--space-2); }
.table-wrap { width: 100%; overflow-x: auto; }
.ops-table { width: 100%; min-width: 620px; border-collapse: collapse; }
.ops-table th, .ops-table td { padding: var(--space-3); text-align: start; border-bottom: 1px solid var(--border); }
.ops-table th { color: var(--fg-muted); font-size: 13px; font-weight: 600; }
.alert { padding: var(--space-3) var(--space-4); border: 1px solid currentColor; border-radius: var(--radius-control); margin-bottom: var(--space-4); }
.alert-danger { color: var(--danger); background: var(--surface); }
.monitor-skeleton {
  min-height: 240px; margin: var(--space-6); border-radius: var(--radius-card);
  background: var(--surface-alt); animation: monitor-pulse 1.2s ease-in-out infinite alternate;
}
@keyframes monitor-pulse { from { opacity: 0.55; } to { opacity: 1; } }

@media (min-width: 768px) {
  .admin-page { padding: var(--space-6); }
  .admin-head { flex-direction: row; align-items: center; justify-content: space-between; }
  .admin-head h1 { font-size: 30px; }
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inline-form { flex-direction: row; align-items: end; }
  .request-row { flex-direction: row; align-items: center; justify-content: space-between; }
}
@media (min-width: 1024px) { .metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.stack-list { display: grid; grid-gap: var(--space-3); gap: var(--space-3); margin-block: var(--space-4); }
.form-grid { display: grid; grid-gap: var(--space-3); gap: var(--space-3); margin-top: var(--space-6); }
.form-grid label { display: grid; grid-gap: var(--space-1); gap: var(--space-1); color: var(--fg-muted); font-weight: 600; }
.form-grid input, .form-grid select, .form-grid textarea { width: 100%; min-height: var(--tap-min); padding: var(--space-2) var(--space-3); color: var(--fg); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-control); font: inherit; }
.form-grid textarea { min-height: 104px; resize: vertical; }
.form-grid .checkbox-row { display: flex; align-items: center; gap: var(--space-2); min-height: var(--tap-min); }
.form-grid .checkbox-row input { width: 20px; min-height: 20px; accent-color: var(--primary); }
.button-row { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.success-banner, .warning-banner { padding: var(--space-3); border: 1px solid currentColor; border-radius: var(--radius-control); }
.success-banner { color: var(--success); }.warning-banner { color: var(--warning); }

.alert-success { color: var(--success); background: var(--surface); }
.alert-warning { color: var(--warning); background: var(--surface); }
.alert-info { color: var(--info); background: var(--surface); }
.config-grid { display: grid; grid-template-columns: 1fr; grid-gap: var(--space-4); gap: var(--space-4); }
.config-form { display: grid; grid-template-columns: 1fr; grid-gap: var(--space-3); gap: var(--space-3); }
.field select {
  min-height: var(--tap-min); padding: 0 var(--space-3); border: 1px solid var(--border);
  border-radius: var(--radius-control); background: var(--surface); color: var(--fg); font: inherit;
}
.check-field { display: flex; align-items: center; gap: var(--space-2); min-height: var(--tap-min); }
.check-field input { width: 20px; height: 20px; accent-color: var(--primary); }
.version-columns { display: grid; grid-template-columns: 1fr; grid-gap: var(--space-6); gap: var(--space-6); }
.version-list { display: flex; flex-direction: column; gap: var(--space-2); }
.version-row {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--space-2); padding: var(--space-2) var(--space-3); border: 1px solid var(--border);
  border-radius: var(--radius-control);
}
@media (min-width: 768px) {
  .config-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .config-form .btn { grid-column: 1 / -1; }
  .version-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1024px) { .config-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* --- ویترین و Quote مشتری M2-E04 --- */
.store-nav { position: -webkit-sticky; position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; min-height: 64px; padding: 0 var(--space-4); background: color-mix(in srgb, var(--bg) 94%, transparent); border-bottom: 1px solid var(--border); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.store-nav .brand { color: var(--primary); font-size: 22px; font-weight: 800; text-decoration: none; }
.store-nav nav { display: flex; align-items: center; gap: var(--space-1); }
.store-nav nav a { display: inline-flex; align-items: center; min-height: var(--tap-min); padding: 0 var(--space-2); color: var(--fg); text-decoration: none; border-radius: var(--radius-control); }
.store-nav nav a:hover { background: var(--surface-alt); }
.cart-count { display: inline-grid; place-items: center; min-width: 24px; height: 24px; -webkit-margin-start: var(--space-1); margin-inline-start: var(--space-1); padding: 0 var(--space-1); background: var(--primary); color: var(--on-primary); border-radius: var(--radius-chip); font-size: 12px; }
.store-page { width: min(1180px, 100%); min-height: calc(100vh - 64px); margin: 0 auto; padding: var(--space-6) var(--space-4) var(--space-16); }
.store-heading { max-width: 720px; margin-bottom: var(--space-8); }
.store-heading h1, .product-detail-grid h1, .home-hero h1 { font-size: clamp(28px, 6vw, 52px); letter-spacing: -0.025em; }
.filter-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); margin-bottom: var(--space-6); padding: var(--space-3); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); }
.filter-bar label { display: flex; flex: 1 1 220px; flex-direction: column; gap: var(--space-1); font-weight: 600; }
.filter-bar select { min-height: var(--tap-min); padding: 0 var(--space-3); background: var(--surface); color: var(--fg); border: 1px solid var(--border); border-radius: var(--radius-control); font: inherit; }
.product-grid { display: grid; grid-template-columns: 1fr; grid-gap: var(--space-4); gap: var(--space-4); }
.product-card { display: flex; flex-direction: column; padding: var(--space-4); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); box-shadow: var(--elev-1); }
.product-card h2 { font-size: 20px; }.product-card h2 a { color: var(--fg); text-decoration: none; }.product-card .btn { margin-top: var(--space-4); }
.product-visual, .product-hero-visual { display: grid; place-items: center; overflow: hidden; aspect-ratio: 4 / 3; margin-bottom: var(--space-4); background: linear-gradient(145deg, var(--surface-alt), color-mix(in srgb, var(--brand-gold-warm) 25%, var(--surface))); border-radius: var(--radius-control); color: var(--accent); letter-spacing: .25em; }
.product-price { margin-top: auto; padding-top: var(--space-2); font-size: 19px; }
.product-skeleton, .product-detail-skeleton { min-height: 360px; background: var(--surface-alt); border-radius: var(--radius-card); animation: monitor-pulse 1.2s ease-in-out infinite alternate; }
.empty-state { display: grid; place-items: center; min-height: 320px; padding: var(--space-8); text-align: center; background: var(--surface); border: 1px dashed var(--border); border-radius: var(--radius-card); }
.product-detail-grid { display: grid; grid-gap: var(--space-6); gap: var(--space-6); }.product-hero-visual { aspect-ratio: 1 / 1; font-size: 24px; }
.variant-picker { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-4) 0; padding: 0; border: 0; }.variant-picker legend { width: 100%; margin-bottom: var(--space-2); font-weight: 700; }
.chip { min-height: var(--tap-min); padding: 0 var(--space-3); background: var(--surface); color: var(--fg); border: 1px solid var(--border); border-radius: var(--radius-chip); font: inherit; cursor: pointer; }.chip-active { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary); }
.availability { display: flex; flex-direction: column; gap: var(--space-1); margin: var(--space-4) 0; padding: var(--space-3); background: var(--surface-alt); border-radius: var(--radius-control); }.availability span { color: var(--fg-muted); }
.full-button { width: 100%; margin-top: var(--space-4); }
.cart-layout { display: grid; grid-gap: var(--space-6); gap: var(--space-6); }.cart-lines { display: flex; flex-direction: column; gap: var(--space-3); }.cart-line { display: grid; grid-template-columns: 1fr auto; grid-gap: var(--space-2); gap: var(--space-2); align-items: center; padding: var(--space-3); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-control); }.cart-line h2 { font-size: 17px; }.cart-line p { margin: 0; }.cart-line .btn { grid-column: 1 / -1; justify-self: start; }
.cart-summary { position: relative; margin-top: 0; align-self: start; }.quote-result { margin-top: var(--space-4); padding-top: var(--space-4); border-top: 1px solid var(--border); }.quote-timer { padding: var(--space-2); background: var(--surface-alt); border-radius: var(--radius-control); }.quote-result dl div { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) 0; }.quote-result dd { margin: 0; }.quote-result .quote-total { margin-top: var(--space-2); padding-top: var(--space-3); border-top: 1px solid var(--border); font-size: 19px; font-weight: 800; }.price-difference { color: var(--warning); }
.home-page { display: flex; flex-direction: column; justify-content: center; gap: var(--space-12); }.home-hero { max-width: 780px; }.home-hero > p:not(.eyebrow) { max-width: 660px; font-size: 18px; }.hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }.trust-grid { display: grid; grid-gap: var(--space-3); gap: var(--space-3); }.trust-grid article { display: flex; flex-direction: column; min-height: 132px; justify-content: center; padding: var(--space-4); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); }.trust-grid span { color: var(--fg-muted); }
@media (min-width: 640px) { .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.trust-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 768px) { .store-nav { padding-inline: var(--space-6); }.store-nav nav { gap: var(--space-3); }.store-page { padding: var(--space-8) var(--space-6) var(--space-16); }.product-detail-grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: start; }.cart-layout { grid-template-columns: minmax(0, 1.5fr) minmax(320px, .7fr); }.cart-summary { position: -webkit-sticky; position: sticky; top: 88px; }.cart-line { grid-template-columns: 1fr auto auto; }.cart-line .btn { grid-column: auto; }.trust-grid article { min-height: 160px; } }
@media (min-width: 1024px) { .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* --- پوسته پنل ادمین (Sidebar) — دسکتاپ-اول طبق Screen-Map §۲، پایه CSS همچنان mobile-first --- */
.admin-shell { min-height: 100vh; }
.admin-topbar { position: -webkit-sticky; position: sticky; top: 0; z-index: 10; display: flex; align-items: center; justify-content: space-between; min-height: 56px; padding: 0 var(--space-4); background: var(--surface); border-bottom: 1px solid var(--border); }
.admin-topbar .brand { color: var(--primary); font-weight: 800; text-decoration: none; }
.admin-topbar-user { display: flex; align-items: center; gap: var(--space-2); color: var(--fg-muted); font-size: 13px; }
.admin-nav { display: flex; overflow-x: auto; gap: var(--space-1); padding: var(--space-2) var(--space-3); background: var(--surface); border-bottom: 1px solid var(--border); }
.admin-nav a, .admin-nav span { display: inline-flex; align-items: center; white-space: nowrap; min-height: var(--tap-min); padding: 0 var(--space-3); color: var(--fg); text-decoration: none; border-radius: var(--radius-control); font-size: 14px; }
.admin-nav a:hover { background: var(--surface-alt); }
.admin-nav a.admin-nav-active { background: var(--primary); color: var(--on-primary); }
.admin-nav span.admin-nav-disabled { color: var(--fg-muted); opacity: 0.6; cursor: not-allowed; }
.admin-content { padding: var(--space-4); }
@media (min-width: 1024px) {
  .admin-shell { display: grid; grid-template-columns: 240px 1fr; }
  .admin-topbar { display: none; }
  .admin-nav { position: -webkit-sticky; position: sticky; top: 0; height: 100vh; flex-direction: column; align-items: stretch; overflow-y: auto; overflow-x: visible; padding: var(--space-4) var(--space-3); border-bottom: none; -webkit-border-end: 1px solid var(--border); border-inline-end: 1px solid var(--border); }
  .admin-nav a, .admin-nav span { justify-content: flex-start; }
  .admin-content { padding: var(--space-6); }
}
.admin-nav-brand { display: none; }
@media (min-width: 1024px) { .admin-nav-brand { display: block; padding: 0 var(--space-3) var(--space-4); color: var(--primary); font-weight: 800; font-size: 18px; } }

/* --- جدول عمومی (DataTable) روی .ops-table/.table-wrap — Sort/Filter/Pagination --- */
.data-table-toolbar { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: flex-end; margin-bottom: var(--space-4); }
.ops-table th button { display: inline-flex; align-items: center; gap: var(--space-1); background: none; border: 0; padding: 0; min-height: auto; min-width: auto; color: inherit; font: inherit; font-weight: 600; cursor: pointer; }
.data-table-pager { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-4); }
.data-table-pager .btn { min-height: var(--tap-min); }

/* --- صفحه اصلی مشتری: Ticker نرخ + سایدبار دسته --- */
.rate-ticker-card { padding: var(--space-4); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); box-shadow: var(--elev-1); }
.rate-ticker-amount { font-size: 28px; font-weight: 800; }
.rate-ticker-change { display: inline-flex; align-items: center; gap: var(--space-1); font-weight: 700; }
.rate-ticker-change[data-direction="up"] { color: var(--price-up); }
.rate-ticker-change[data-direction="down"] { color: var(--price-down); }
.rate-ticker-change[data-direction="flat"] { color: var(--fg-muted); }
.rate-ticker-meta { color: var(--fg-muted); font-size: 13px; margin-top: var(--space-2); }
.rate-sparkline { width: 100%; height: 40px; margin-top: var(--space-3); display: block; }
.category-sidebar { display: flex; flex-direction: column; gap: var(--space-1); }
.category-sidebar a { display: flex; align-items: center; min-height: var(--tap-min); padding: 0 var(--space-3); color: var(--fg); text-decoration: none; border-radius: var(--radius-control); }
.category-sidebar a:hover, .category-sidebar a.category-active { background: var(--surface-alt); }
.home-layout { display: grid; grid-gap: var(--space-6); gap: var(--space-6); }
@media (min-width: 1024px) {
  .home-layout { grid-template-columns: 220px minmax(0, 1fr) 280px; align-items: start; }
}

/* --- برچسب «به‌زودی» روی آیتم‌های خارج از محدوده --- */
.badge-soon { display: inline-flex; align-items: center; min-height: 22px; padding: 0 var(--space-2); -webkit-margin-start: var(--space-2); margin-inline-start: var(--space-2); background: var(--surface-alt); color: var(--fg-muted); border-radius: var(--radius-chip); font-size: 11px; font-weight: 600; }

/* --- Storefront v2 · Frontend-Design-Spec.md --- */
.store-container { width: min(var(--content-max), calc(100% - 32px)); margin-inline: auto; }
.store-nav { min-height: 72px; padding-inline: max(16px, calc((100vw - var(--content-max)) / 2)); background: color-mix(in srgb, var(--surface) 96%, transparent); }
.store-nav .brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.store-nav > nav:not(.mobile-store-nav) { flex: 1 1; justify-content: center; }
.store-nav nav a { position: relative; padding-inline: 12px; font-size: 14px; transition: color 150ms ease, background-color 150ms ease; }
.store-nav nav a.nav-current::after { content: ""; position: absolute; inset-inline: 12px; bottom: 3px; height: 2px; background: var(--accent); }
.store-nav-actions { display: flex; align-items: center; gap: 8px; }
.nav-icon-button { position: relative; display: grid; place-items: center; width: 44px; height: 44px; color: var(--fg); border: 1px solid var(--border); border-radius: var(--radius-control); }
.nav-icon-button svg { width: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-icon-button .cart-count { position: absolute; inset-block-start: -7px; inset-inline-start: -6px; }
.nav-account { display: inline-flex; align-items: center; min-height: 44px; padding-inline: 16px; color: var(--on-primary); background: var(--primary); border-radius: var(--radius-control); text-decoration: none; font-size: 13px; font-weight: 700; }
.mobile-store-nav { display: none !important; }

.home-page { display: block; padding: 0; }
.home-hero { position: relative; display: grid; min-height: 500px; margin-top: 24px; overflow: hidden; grid-template-columns: 5fr 7fr; border-radius: 20px; background: var(--primary); box-shadow: var(--elev-2); }
.home-hero-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px, 5vw, 72px); color: var(--on-primary); }
.home-hero-copy .eyebrow { color: var(--brand-gold-warm); }.home-hero-copy h1 { max-width: 540px; margin-bottom: 16px; font-size: clamp(36px, 4vw, 56px); }.home-hero-copy > p:not(.eyebrow) { max-width: 520px; color: color-mix(in srgb, var(--on-primary) 78%, transparent); font-size: 17px; }
.btn-accent { color: var(--brand-black); background: var(--brand-gold); }.btn-on-dark { color: var(--brand-gold-warm); background: transparent; border-color: var(--brand-gold); text-decoration: none; }
.home-hero-art { position: relative; display: grid; place-items: center; min-height: 500px; overflow: hidden; background: var(--surface-alt); }
.home-hero-art::before, .home-hero-art::after { content: ""; position: absolute; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--border)); }
.home-hero-art::before { width: 430px; height: 430px; background: var(--surface); box-shadow: inset 0 0 80px color-mix(in srgb, var(--brand-gold-warm) 18%, transparent); }
.home-hero-art::after { width: 280px; height: 280px; border-width: 2px; }
.hero-jewel { z-index: 1; width: 150px; height: 150px; border: 18px solid var(--brand-gold); border-radius: 50%; box-shadow: inset 0 0 0 7px var(--brand-gold-warm), 0 22px 40px color-mix(in srgb, var(--brand-black) 22%, transparent); transform: rotate(-8deg); }
.hero-jewel::before { content: ""; display: block; width: 42px; height: 22px; margin: -39px auto 0; border: 8px solid var(--brand-gold); border-bottom: 0; border-radius: 12px 12px 0 0; }
.home-hero .rate-ticker-card { position: absolute; z-index: 2; inset-inline-start: calc(41.666% - 130px); inset-block-start: 90px; width: 260px; margin: 0; }
.rate-card-head { display: flex; justify-content: space-between; gap: 12px; }.rate-card-head p { margin: 0; }.rate-card-head span { color: var(--fg-muted); font-size: 12px; }.rate-live-dot { align-self: start; padding: 2px 8px; color: var(--success) !important; border: 1px solid currentColor; border-radius: var(--radius-chip); }
.rate-ticker-card { padding: 20px; }.rate-ticker-amount { margin-top: 14px; font-size: 26px; }.rate-sparkline { color: var(--accent); }
.trust-grid { position: relative; z-index: 3; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: -22px; padding: 10px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); box-shadow: var(--elev-2); }
.trust-grid article { flex-direction: row; align-items: center; gap: 12px; min-height: 66px; padding: 8px 20px; border: 0; -webkit-border-end: 1px solid var(--border); border-inline-end: 1px solid var(--border); border-radius: 0; box-shadow: none; }.trust-grid article:last-child { -webkit-border-end: 0; border-inline-end: 0; }.trust-grid article div { display: grid; }.trust-grid article strong { font-size: 14px; }.trust-grid article span:not(.trust-icon) { font-size: 12px; }.trust-icon { display: grid; place-items: center; width: 36px; height: 36px; color: var(--accent); border: 1px solid currentColor; border-radius: 50%; font-weight: 800; }
.home-content { display: grid; grid-gap: 56px; gap: 56px; padding-block: 64px; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }.section-heading h2 { margin: 0; font-size: 26px; }.section-heading a { color: var(--accent); text-decoration: none; font-size: 14px; font-weight: 700; }
.category-rail-list { display: grid; grid-template-columns: repeat(5, 1fr); grid-gap: 14px; gap: 14px; }.category-rail-list > a { overflow: hidden; color: var(--fg); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); text-decoration: none; transition: transform 180ms var(--ease-out-strong), box-shadow 180ms ease; }.category-rail-list > a strong, .category-rail-list > a > span:last-child { display: block; padding-inline: 14px; }.category-rail-list > a strong { margin-top: 10px; }.category-rail-list > a > span:last-child { padding-bottom: 12px; color: var(--fg-muted); font-size: 12px; }.category-art { display: grid !important; place-items: center; height: 132px; padding: 0 !important; background: var(--surface-alt); }.category-art i { width: 64px; height: 64px; border: 9px solid var(--brand-gold); border-radius: 50%; box-shadow: inset 0 0 0 4px var(--brand-gold-warm); }
@media (hover: hover) and (pointer: fine) { .category-rail-list > a:hover, .product-card:hover { transform: translateY(-3px); box-shadow: var(--elev-2); } }
.home-products .product-grid { grid-template-columns: repeat(4, 1fr); }.home-products .product-card { padding: 10px; transition: transform 180ms var(--ease-out-strong), box-shadow 180ms ease; }.home-products .product-card h3 { min-height: 45px; margin: 10px 4px 4px; font-size: 16px; }.home-products .product-card p { margin: 0 4px; }.home-products .product-price { margin: 6px 4px 10px; font-size: 17px; }.home-products .btn { width: 100%; }
.jewel-placeholder { width: 74px; height: 74px; border: 10px solid var(--brand-gold); border-radius: 50%; box-shadow: inset 0 0 0 4px var(--brand-gold-warm); }.product-visual { aspect-ratio: 1; background: var(--surface-alt); }
.transparency-section { display: grid; grid-template-columns: 5fr 7fr; align-items: center; grid-gap: 56px; gap: 56px; padding-block: 64px; }.transparency-copy h2 { font-size: 34px; }.transparency-copy p:not(.eyebrow) { max-width: 570px; color: var(--fg-muted); }.breakdown-preview { margin: 0; padding: 28px; }.breakdown-preview > div { display: flex; justify-content: space-between; gap: 20px; padding: 10px 0; border-bottom: 1px solid var(--border); }.breakdown-preview .breakdown-total { margin-top: 8px; padding-top: 18px; font-size: 19px; border-bottom: 0; }.breakdown-preview small { display: block; margin-top: 12px; color: var(--fg-muted); }
.credit-section { display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; grid-gap: 40px; gap: 40px; margin-block: 32px 64px; padding: 30px; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius-card); }.credit-section h2 { font-size: 28px; }.credit-section p { margin-bottom: 0; }.credit-facts { display: grid; grid-template-columns: auto 1fr; grid-gap: 5px 20px; gap: 5px 20px; }.credit-facts span { color: var(--fg-muted); font-size: 13px; }
.custom-order-strip { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-bottom: 64px; padding: 28px 32px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); }.custom-order-strip h2 { margin-bottom: 3px; }.custom-order-strip p { margin: 0; }
.store-footer { padding-block: 42px; background: var(--primary); color: var(--on-primary); }.store-footer > div { display: grid; grid-template-columns: 2fr repeat(3, 1fr); grid-gap: 40px; gap: 40px; }.store-footer > div > div { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }.store-footer a { color: color-mix(in srgb, var(--on-primary) 75%, transparent); text-decoration: none; font-size: 13px; }.store-footer p { color: color-mix(in srgb, var(--on-primary) 65%, transparent); }

@media (max-width: 1023px) {
  .nav-guide, .store-nav > nav:not(.mobile-store-nav) a:nth-child(n+4) { display: none; }
  .home-hero { grid-template-columns: 1fr 1fr; }.home-hero .rate-ticker-card { inset-inline-start: calc(50% - 120px); width: 240px; }
  .category-rail-list { grid-template-columns: repeat(3, 1fr); }.home-products .product-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
  body { padding-bottom: 66px; }.store-nav { min-height: 60px; }.store-nav .brand { min-width: 0; }.store-nav .brand small, .store-nav > nav:not(.mobile-store-nav), .nav-account, .store-nav-actions .nav-icon-button:first-child { display: none; }.brand-mark { width: 34px; height: 34px; }.store-nav .brand b { font-size: 18px; }
  .mobile-store-nav { position: fixed; z-index: 30; inset-inline: 0; bottom: 0; display: grid !important; grid-template-columns: repeat(4, 1fr); min-height: 60px; padding-bottom: env(safe-area-inset-bottom); background: var(--surface); border-top: 1px solid var(--border); box-shadow: var(--elev-3); }.mobile-store-nav a { justify-content: center; padding: 0 4px !important; font-size: 12px !important; }.mobile-store-nav a.nav-current::after { inset-inline: 20px; bottom: auto; top: 0; }
  .store-container { width: min(100% - 24px, var(--content-max)); }.home-hero { display: flex; flex-direction: column; min-height: 0; margin-top: 12px; }.home-hero-art { order: -1; min-height: 250px; }.home-hero-art::before { width: 250px; height: 250px; }.home-hero-art::after { width: 180px; height: 180px; }.hero-jewel { width: 100px; height: 100px; border-width: 13px; }.home-hero-copy { padding: 28px 20px 110px; }.home-hero-copy h1 { font-size: 32px; }.hero-actions { display: grid; }.home-hero .rate-ticker-card { inset-inline: 16px; inset-block: auto 16px; width: auto; }.rate-sparkline { display: none; }.rate-ticker-amount { font-size: 21px; }
  .trust-grid { grid-template-columns: 1fr 1fr; margin-top: 14px; }.trust-grid article { -webkit-border-end: 0; border-inline-end: 0; border-bottom: 1px solid var(--border); }.trust-grid article:nth-last-child(-n+2) { border-bottom: 0; }
  .home-content { gap: 44px; padding-block: 44px; }.category-rail-list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px; }.category-rail-list > a { flex: 0 0 150px; scroll-snap-align: start; }.category-art { height: 108px; }.home-products .product-grid { gap: 10px; }.home-products .product-card { padding: 8px; }.home-products .product-card h3 { min-height: 42px; font-size: 14px; }.home-products .product-price { font-size: 14px; }.home-products .product-card .btn { padding-inline: 6px; font-size: 12px; }
  .transparency-section { grid-template-columns: 1fr; gap: 24px; padding-block: 44px; }.transparency-copy h2 { font-size: 28px; }.breakdown-preview { padding: 18px; }.credit-section { grid-template-columns: 1fr; gap: 22px; margin-bottom: 44px; padding: 22px; }.custom-order-strip { align-items: stretch; flex-direction: column; margin-bottom: 44px; padding: 22px; }.store-footer > div { grid-template-columns: 1fr 1fr; gap: 28px; }
}
.support-workspace { display: grid; grid-template-columns: 320px minmax(0, 1fr); grid-gap: 16px; gap: 16px; align-items: start; }.support-workspace tbody tr { cursor: pointer; }.row-selected { background: var(--surface-alt) !important; box-shadow: inset -3px 0 0 var(--accent); }.support-conversation { display: grid; grid-gap: 14px; gap: 14px; margin-top: 0; }.support-messages { display: grid; grid-gap: 8px; gap: 8px; max-height: 52vh; overflow-y: auto; padding: 4px; }.support-messages .card, .support-conversation .stack .card { max-width: 82%; margin: 0; box-shadow: none; }.support-messages .alert, .support-conversation .stack .alert { max-width: 82%; -webkit-margin-start: auto; margin-inline-start: auto; margin-bottom: 0; }.file-button { cursor: pointer; }.ticket-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 58px; padding: 10px 12px; border-bottom: 1px solid var(--border); cursor: pointer; }.support-customer-page { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr); grid-gap: 18px; gap: 18px; max-width: 1100px !important; }.support-customer-page > .card { margin-top: 0; }.support-customer-page > .support-conversation { grid-column: 2; grid-row: 1 / span 2; }.payment-card { max-width: 680px; margin-inline: auto; padding: 28px; border-top: 3px solid var(--accent); }.payment-card > h1 { font-size: 28px; }.payment-card .muted-card { background: var(--surface-alt); box-shadow: none; }.disabled-control { opacity: .55; cursor: not-allowed; }
@media (max-width: 900px) { .support-workspace, .support-customer-page { grid-template-columns: 1fr; }.support-customer-page > .support-conversation { grid-column: auto; grid-row: auto; } }
.admin-nav span.admin-nav-section { min-height: auto; margin: 16px 16px 4px; padding: 0; color: color-mix(in srgb, var(--on-dark) 45%, transparent); font-size: 10px; font-weight: 700; letter-spacing: .04em; }.admin-nav-brand + .admin-nav-section { margin-top: 4px; }

/* --- Admin shell v2 --- */
.admin-shell { background: var(--bg); }.admin-topbar { min-height: 72px; padding-inline: 24px; }.admin-topbar-title { display: grid; line-height: 1.3; }.admin-topbar-title .eyebrow { margin: 0; font-size: 11px; }.admin-topbar-title strong { font-size: 20px; }.admin-global-search { position: relative; width: min(420px, 40vw); }.admin-global-search svg { position: absolute; inset-inline-start: 13px; top: 13px; width: 18px; fill: none; stroke: var(--fg-muted); stroke-width: 1.8; }.admin-global-search input { width: 100%; padding-inline: 42px 14px; color: var(--fg); background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-control); font: inherit; }.admin-operator { display: flex; align-items: center; gap: 10px; }.admin-operator > span:last-child { display: grid; line-height: 1.35; }.admin-operator small { color: var(--fg-muted); font-size: 11px; }.admin-avatar { display: grid; place-items: center; width: 36px; height: 36px; color: var(--on-primary); background: var(--primary); border-radius: 50%; }.admin-nav { background: var(--primary); }.admin-nav a, .admin-nav span { color: color-mix(in srgb, var(--on-primary) 78%, transparent); }.admin-nav a:hover { color: var(--on-primary); background: color-mix(in srgb, var(--on-primary) 8%, transparent); }.admin-nav a.admin-nav-active { position: relative; color: var(--on-primary); background: color-mix(in srgb, var(--on-primary) 10%, transparent); }.admin-nav a.admin-nav-active::before { content: ""; position: absolute; inset-inline-start: 0; inset-block: 9px; width: 3px; background: var(--brand-gold); border-radius: 3px; }.admin-nav-brand { color: var(--brand-gold) !important; font-size: 24px !important; letter-spacing: .08em; }.admin-nav-brand small { display: block; color: color-mix(in srgb, var(--on-primary) 65%, transparent); font-size: 10px; letter-spacing: 0; }.admin-content { min-width: 0; }.admin-page { max-width: 1320px; }.admin-head { padding-bottom: 18px; border-bottom: 1px solid var(--border); }.admin-head .eyebrow { margin-bottom: 2px; }.table-wrap { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); box-shadow: var(--elev-1); }.ops-table th { position: -webkit-sticky; position: sticky; top: 0; z-index: 1; background: var(--surface-alt); }.ops-table tbody tr { transition: background-color 150ms ease; }.ops-table tbody tr:hover { background: color-mix(in srgb, var(--surface-alt) 62%, transparent); }.status { gap: 6px; border-color: color-mix(in srgb, currentColor 35%, transparent); background: color-mix(in srgb, currentColor 6%, transparent); }
@media (min-width: 1024px) { .admin-shell { grid-template-columns: var(--admin-sidebar) minmax(0, 1fr); grid-template-rows: 72px minmax(calc(100vh - 72px), auto); }.admin-topbar { display: flex; grid-column: 2; grid-row: 1; }.admin-nav { grid-column: 1; grid-row: 1 / 3; padding: 22px 14px; -webkit-border-end: 0; border-inline-end: 0; }.admin-nav a { min-height: 46px; padding-inline: 16px; }.admin-content { grid-column: 2; grid-row: 2; padding: 0; }.admin-page { padding: 28px 32px 48px; } }
.metric-card { position: relative; min-height: 138px; padding: 18px; }.metric-card .metric-value { font-size: 30px; font-weight: 800; }.metric-card > a { margin-top: auto; color: var(--accent); text-decoration: none; font-size: 12px; font-weight: 700; }.metric-icon { position: absolute; inset-inline-end: 16px; top: 16px; display: grid; place-items: center; width: 38px; height: 38px; color: var(--accent); background: var(--surface-alt); border-radius: 50%; font-family: var(--font-latin); font-weight: 800; }.metric-icon-warning { color: var(--warning); }.metric-icon-info { color: var(--info); }.metric-icon-danger { color: var(--danger); }.monitor-section { margin-top: 34px; }.operations-overview .section-heading { margin-bottom: 14px; }.row-warning { background: color-mix(in srgb, var(--warning) 7%, var(--surface)); }.compact-empty { min-height: 130px; }.system-health { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap: 12px; gap: 12px; margin-bottom: 30px; }.system-health > div { display: grid; grid-template-columns: 1fr auto; grid-gap: 2px 16px; gap: 2px 16px; padding: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); }.system-health strong { font-size: 18px; }.system-health small { grid-column: 1 / -1; color: var(--fg-muted); }
@media (max-width: 767px) { .system-health { grid-template-columns: 1fr; }.admin-global-search { display: none; }.admin-topbar-title strong { font-size: 17px; } }

/* --- Platform-wide customer surfaces --- */
.store-page { width: min(var(--content-max), 100%); min-height: calc(100vh - 72px); padding: 40px max(16px, calc((100% - 1240px) / 2)) 72px; }
.store-page > .page, .store-page > article.page { max-width: 980px; padding: 0; }.store-page > .page:has(.cart-layout), .store-page > .page:has(.product-detail-grid) { max-width: 1240px; }
.page { padding-block: 36px; }.head, .store-heading { position: relative; margin-bottom: 28px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }.head::after, .store-heading::after { content: ""; position: absolute; inset-inline-start: 0; bottom: -1px; width: 52px; height: 2px; background: var(--accent); }.head h1, .store-heading h1 { margin-bottom: 0; }
.card { padding: 22px; box-shadow: var(--elev-1); transition: border-color 160ms ease, box-shadow 160ms ease; }.card > h2:first-child { font-size: 19px; }.stack { gap: 18px; }
input:not([type="checkbox"]):not([type="radio"]), select, textarea { padding-inline: 12px; color: var(--fg); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-control); font: inherit; transition: border-color 150ms ease, box-shadow 150ms ease; }
textarea { padding-block: 10px; resize: vertical; }input:hover, select:hover, textarea:hover { border-color: color-mix(in srgb, var(--fg-muted) 48%, var(--border)); }input:focus, select:focus, textarea:focus { border-color: var(--ring); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ring) 14%, transparent); outline: 0; }
.form-grid { padding: 20px; background: var(--surface-alt); border: 1px solid var(--border); border-radius: var(--radius-card); }.check-field { padding: 10px 12px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-control); }.check-field:has(input:checked) { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.filter-bar { position: -webkit-sticky; position: sticky; top: 84px; z-index: 5; padding: 16px; box-shadow: var(--elev-1); }.filter-bar label { color: var(--fg-muted); font-size: 13px; }.filter-bar select { margin-top: 4px; color: var(--fg); }
.product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }.product-card { min-width: 0; padding: 10px; }.product-card h2 { min-height: 56px; margin: 10px 5px 4px; font-size: 17px; }.product-card .eyebrow, .product-card .muted { margin-inline: 5px; }.product-card .product-price { margin-inline: 5px; }.product-card .btn { width: 100%; }.product-visual { aspect-ratio: 1; margin-bottom: 8px; }.jewel-placeholder-large { width: 138px; height: 138px; border-width: 16px; }
.product-detail-grid { gap: 48px; }.product-detail-grid > section { padding-block: 12px; }.product-detail-grid h1 { margin-bottom: 8px; font-size: clamp(28px, 4vw, 42px); }.product-hero-visual { position: -webkit-sticky; position: sticky; top: 96px; min-height: 520px; background: var(--surface-alt); border: 1px solid var(--border); }.variant-picker { padding: 14px; background: var(--surface-alt); border-radius: var(--radius-card); }.availability { border: 1px solid var(--border); }.price-breakdown tbody tr:not(:last-child) { border-bottom: 1px solid var(--border); }
.cart-layout { gap: 32px; }.cart-layout > section > h1 { margin-bottom: 24px; }.cart-summary { padding: 22px; border-top: 3px solid var(--accent); }.quote-timer { position: relative; overflow: hidden; }.quote-timer::after { content: ""; position: absolute; inset-inline: 0; bottom: 0; height: 2px; background: var(--accent); }.quote-result dl, .cart-summary dl { margin: 12px 0; }.cart-summary dl > div { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--border); }.cart-summary dl > div:last-child { border-bottom: 0; }
.order-list-card { display: block; margin-top: 12px; color: inherit; text-decoration: none; }.order-list-row { display: grid; grid-template-columns: 1fr auto auto; align-items: center; grid-gap: 20px; gap: 20px; }.order-list-card:hover { border-color: var(--accent); box-shadow: var(--elev-2); }.order-list-card p { margin: 2px 0 0; }
.order-detail-page { max-width: 1080px !important; }.order-detail-page .head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; }.order-detail-page .head .eyebrow { width: 100%; }.order-detail-page .head h1 { -webkit-margin-end: auto; margin-inline-end: auto; }.order-detail-page .version-list { position: relative; -webkit-padding-start: 28px; padding-inline-start: 28px; }.order-detail-page .version-list::before { content: ""; position: absolute; inset-block: 10px; inset-inline-start: 8px; width: 2px; background: var(--border); }.order-detail-page .version-row { position: relative; border: 0; border-bottom: 1px solid var(--border); border-radius: 0; }.order-detail-page .version-row::before { content: ""; position: absolute; inset-inline-start: -25px; top: 18px; width: 10px; height: 10px; background: var(--success); border: 3px solid var(--surface); border-radius: 50%; box-shadow: 0 0 0 1px var(--success); }
.account-page { max-width: 1080px !important; }.account-page > .card { margin-top: 14px; }.account-identity { display: flex; align-items: center; justify-content: space-between; gap: 20px; border-top: 3px solid var(--accent); }.account-page .metric-card { min-height: 118px; }
.auth-card { width: min(420px, calc(100vw - 32px)); margin: 8vh auto 0; padding: 28px; border-top: 3px solid var(--accent); }.auth-card::before { content: "وان‌زی"; display: block; margin-bottom: 22px; color: var(--primary); font-size: 23px; font-weight: 800; }.auth-links { padding-top: 12px; border-top: 1px solid var(--border); }
.alert { display: flex; align-items: center; gap: 8px; }.alert::before { content: "!"; display: grid; flex: 0 0 22px; place-items: center; width: 22px; height: 22px; border: 1px solid currentColor; border-radius: 50%; font-family: var(--font-latin); font-weight: 800; }.alert-success::before { content: "✓"; }
.empty-state { min-height: 250px; }.empty-state h1, .empty-state h2 { margin-bottom: 6px; }.monitor-skeleton, .product-skeleton, .product-detail-skeleton { background: linear-gradient(90deg, var(--surface-alt), var(--surface), var(--surface-alt)); background-size: 200% 100%; animation: skeleton-shift 1.4s linear infinite; }@keyframes skeleton-shift { to { background-position: -200% 0; } }

/* --- Platform-wide admin surfaces --- */
.admin-page > .card, .admin-page > section.card { margin-top: 18px; }.admin-page .monitor-section > h2 { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }.admin-page .monitor-section > h2::before { content: ""; width: 4px; height: 22px; background: var(--accent); border-radius: 4px; }.admin-page .form-grid, .admin-page form.card { background: var(--surface); }.admin-page .inline-form { padding: 16px; background: var(--surface-alt); border-radius: var(--radius-card); }.admin-page .request-row { background: var(--surface); }.admin-page .data-table-toolbar { padding: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); }.admin-page .ops-table td { height: 58px; }.admin-page .ops-table tbody tr:last-child td { border-bottom: 0; }.admin-page pre { max-width: 480px; overflow: auto; padding: 10px; background: var(--surface-alt); border-radius: 8px; font-size: 11px; direction: ltr; text-align: left; }

@media (min-width: 1280px) { .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .store-page { min-height: calc(100vh - 60px); padding: 24px 12px 48px; }.page { padding-block: 18px; }.head, .store-heading { margin-bottom: 20px; }.card { padding: 16px; }.filter-bar { top: 68px; }.product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }.product-card { padding: 7px; }.product-card h2 { min-height: 44px; font-size: 14px; }.product-card .btn { padding-inline: 5px; font-size: 12px; }.product-detail-grid { gap: 20px; }.product-hero-visual { position: static; min-height: 320px; }.jewel-placeholder-large { width: 100px; height: 100px; }.cart-layout { gap: 18px; }.cart-summary { position: static; }.order-list-row { grid-template-columns: 1fr auto; }.order-list-row > .money { grid-column: 1 / -1; }.account-identity { align-items: flex-start; flex-direction: column; }.admin-page .ops-table td { height: auto; min-height: 56px; }
}

/*!***************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/design-v2.css ***!
  \***************************************************************************************************************************************************************************************************************************************************************/
/* =========================================================================
   Design System v2 — لایه زبان بصری لندینگ v9 (docs/Decision-Log.md D-UI-02)
   مرجع طراحی: docs/ui/platform/ (ds.html و صفحات)
   این فایل پس از globals.css بارگذاری می‌شود و فقط شکل، فاصله، تایپ و
   ترکیب‌بندی را تغییر می‌دهد؛ منطق، داده و قواعد محتوایی دست‌نخورده‌اند.
   همه رنگ‌ها از tokens.css؛ رنگ دستی ممنوع.
   ========================================================================= */

body { background: var(--bg); -webkit-font-smoothing: antialiased; }
h1, h2, h3 { letter-spacing: -0.015em; }
h1 { font-weight: 800; }
h2 { font-weight: 800; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--accent-ink); font-size: 13px; font-weight: 700; }
.eyebrow::before { content: ""; width: 22px; height: 1.5px; background: currentColor; flex: none; }
.muted, .note { color: var(--fg-muted); }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- دکمه‌ها: کپسولی ---------- */
.btn { min-height: 50px; padding-inline: 24px; border-radius: var(--radius-pill); font-weight: 700; text-decoration: none; transition: background-color var(--motion-control) ease, color var(--motion-control) ease, border-color var(--motion-control) ease, box-shadow var(--motion-control) ease, transform var(--motion-control) var(--ease-out-strong); }
.btn:active { transform: scale(0.97); }
.btn-primary { background: var(--primary); color: var(--on-primary); }
.btn-primary:hover { background: var(--black-2); box-shadow: 0 10px 24px color-mix(in srgb, var(--brand-black) 22%, transparent); }
.btn-secondary { background: var(--surface); color: var(--primary); border: 1.5px solid var(--primary); }
.btn-secondary:hover { background: var(--primary); color: var(--on-primary); }
.btn-ghost { background: var(--surface); color: var(--fg); border: 1.5px solid var(--border); }
.btn-ghost:hover { border-color: var(--fg); }
.btn-text { color: var(--accent-ink); background: none; border: 0; padding-inline: 6px; }
.btn-text:hover { text-decoration: underline; text-underline-offset: 5px; }
.btn-accent { background: var(--brand-gold); color: var(--brand-black); border: 0; }
.btn-accent:hover { background: var(--brand-gold-warm); }
.btn-on-dark { background: transparent; color: var(--on-dark); border: 1.5px solid color-mix(in srgb, var(--on-dark) 30%, transparent); }
.btn-on-dark:hover { border-color: var(--brand-gold-warm); color: var(--brand-gold-warm); }
.btn:disabled, .btn[aria-disabled="true"] { opacity: 0.42; cursor: not-allowed; transform: none; box-shadow: none; }
.full-button { width: 100%; }

/* ---------- سطوح ---------- */
.card { border-radius: var(--radius-card); border-color: var(--border); box-shadow: none; padding: 22px; }
.muted-card { background: var(--cream-soft); border-color: transparent; }
.empty-state { border-radius: var(--radius-card); border-style: solid; background: var(--surface); }
.empty-state::before { content: ""; width: 88px; height: 88px; border-radius: 50%; background: var(--surface-alt); margin-bottom: 12px; }
.alert { border-radius: 20px; padding: 16px 18px; }
.alert-info { background: var(--info-bg); }
.alert-success { background: var(--success-bg); }
.alert-warning { background: var(--warning-bg); }
.alert-danger { background: var(--danger-bg); }

/* ---------- فرم ---------- */
.field input, .field select, .field textarea, .form-grid input, .form-grid select, .form-grid textarea, .filter-bar select, .filter-bar input {
  border-radius: var(--radius-control); border: 1.5px solid var(--border); background: var(--surface); min-height: 50px; padding-inline: 16px; transition: border-color 150ms ease, box-shadow 150ms ease;
}
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible, .form-grid input:focus-visible, .form-grid select:focus-visible, .form-grid textarea:focus-visible {
  outline: 0; border-color: var(--primary); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-black) 8%, transparent);
}
.field textarea, .form-grid textarea { padding-block: 12px; }
.chip { border-radius: var(--radius-pill); min-height: 36px; padding-inline: 14px; border: 1px solid var(--border); background: var(--surface); font-weight: 600; }
.chip-active { background: var(--primary); color: var(--on-primary); border-color: var(--primary); }
.filter-bar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; padding: 14px 16px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); margin-bottom: 24px; }
.filter-bar label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 600; }

/* ---------- جدول و صف عملیات ---------- */
.table-wrap { border-radius: var(--radius-card); border: 1px solid var(--border); background: var(--surface); overflow-x: auto; }
.ops-table th { background: var(--cream-soft); font-size: 12.5px; padding: 12px 16px; }
.ops-table td { padding: 14px 16px; }
.ops-table tbody tr:hover { background: color-mix(in srgb, var(--cream-soft) 70%, transparent); }
.row-selected, .ops-table tbody tr.row-selected { background: color-mix(in srgb, var(--brand-gold-warm) 18%, var(--surface)); box-shadow: inset -3px 0 0 var(--brand-gold); }
.data-table-toolbar { border-radius: var(--radius-card); }
.metric-card { border-radius: var(--radius-card); box-shadow: none; transition: box-shadow 200ms ease, transform 200ms var(--ease-v2); }
.metric-card:hover { box-shadow: var(--elev-2); transform: translateY(-2px); }
.metric-card .metric-value { font-weight: 900; }
.metric-icon { border-radius: 12px; }

/* ---------- نشان وضعیت: کپسولی با زمینه معنایی ---------- */
.status { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding-inline: 12px; border-radius: var(--radius-pill); font-size: 12.5px; font-weight: 700; background: var(--surface-alt); }
.status.status-tone-success, .status.status-success, .status.status-active, .status.status-published, .status.status-closed { background: var(--success-bg); }
.status.status-tone-danger { background: var(--danger-bg); }
.status.status-tone-warning { background: var(--warning-bg); }
.status.status-tone-info { background: var(--info-bg); }

/* ---------- قیمت و Quote ---------- */
.price-breakdown td, .price-breakdown th { padding-block: 11px; border-bottom: 1px dashed var(--border); }
.price-breakdown tfoot th, .price-breakdown tfoot td { border-top: 2px solid var(--fg); border-bottom: 0; }
.price-breakdown tfoot .total { font-weight: 900; }
.quote-timer { border: 1px solid var(--border); border-radius: 20px; padding: 14px 18px; background: var(--surface); }

/* =========================================================================
   فروشگاه: هدر شناور شیشه‌ای + نوار پایین کپسولی (v9)
   ========================================================================= */
.store-nav { position: -webkit-sticky; position: sticky; top: 0; z-index: 40; display: block; min-height: 0; padding: 10px 10px 0; background: transparent; border: 0; -webkit-backdrop-filter: none; backdrop-filter: none; pointer-events: none; }
@media (min-width: 768px) { .store-nav { padding: 14px 16px 0; } }
.store-nav-bar { pointer-events: auto; max-width: 1280px; margin-inline: auto; display: flex; align-items: center; gap: 14px; height: 60px; padding-inline: 14px 8px; border-radius: var(--radius-pill); background: var(--glass); backdrop-filter: saturate(1.6) blur(18px); -webkit-backdrop-filter: saturate(1.6) blur(18px); border: 1px solid color-mix(in srgb, var(--surface) 75%, transparent); box-shadow: var(--elev-1); }
@media (min-width: 1024px) { .store-nav-bar { height: 66px; gap: 18px; padding-inline: 20px 10px; } }
.store-nav .brand { display: inline-flex; align-items: center; gap: 10px; min-width: 0; color: var(--fg); text-decoration: none; flex: none; }
.store-nav-links { display: none; gap: 2px; margin-inline: auto; }
.store-nav-links a { position: relative; display: inline-flex; align-items: center; min-height: 40px; padding-inline: 13px; border-radius: var(--radius-pill); color: var(--fg); font-size: 14.5px; font-weight: 500; text-decoration: none; transition: color 150ms ease; }
.store-nav-links a:hover { color: var(--accent-ink); background: none; }
.store-nav-links a.nav-current { font-weight: 700; }
.store-nav-links a.nav-current::after { content: ""; position: absolute; bottom: 2px; left: 50%; translate: -50% 0; width: 5px; height: 5px; border-radius: 50%; background: var(--brand-gold); inset-inline: auto; }
.store-nav-rate { display: none; align-items: center; gap: 8px; padding: 7px 14px; border-radius: var(--radius-pill); background: var(--surface-alt); font-size: 13px; white-space: nowrap; }
.store-nav-rate i { width: 8px; height: 8px; border-radius: 50%; background: var(--success); }
.store-nav-rate[data-stale="true"] i { background: var(--warning); }
.store-nav-actions { display: flex; align-items: center; gap: 4px; -webkit-margin-start: auto; margin-inline-start: auto; }
.nav-icon-button { position: relative; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: var(--fg); text-decoration: none; transition: background-color 150ms ease; }
.nav-icon-button:hover { background: var(--surface-alt); }
.nav-icon-button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.nav-icon-button.nav-cart { background: var(--primary); color: var(--on-primary); }
.nav-icon-button.nav-cart:hover { background: var(--black-2); }
.cart-count { position: absolute; top: 3px; inset-inline-start: 3px; min-width: 18px; height: 18px; padding-inline: 4px; border-radius: 9px; background: var(--brand-gold); color: var(--brand-black); font-size: 10.5px; font-weight: 800; display: grid; place-items: center; line-height: 1; }
.nav-account { display: none; align-items: center; min-height: 42px; padding-inline: 16px; border-radius: var(--radius-pill); border: 1.5px solid var(--border); background: var(--surface); color: var(--fg); font-size: 13.5px; font-weight: 700; text-decoration: none; }
.nav-account:hover { border-color: var(--fg); }
@media (min-width: 1024px) {
  .store-nav-links { display: flex; }
  .store-nav-actions { -webkit-margin-start: 0; margin-inline-start: 0; }
  .nav-account { display: inline-flex; }
  .store-nav-actions .nav-cart-mobile-hidden { display: inline-grid; }
}
@media (min-width: 1280px) { .store-nav-rate { display: inline-flex; } }
@media (max-width: 1023px) { .store-nav-actions .nav-cart { display: none; } }
/* نوار پایین موبایل — شناور کپسولی */
.mobile-store-nav { position: fixed !important; z-index: 45; inset-inline: 10px !important; bottom: calc(10px + env(safe-area-inset-bottom)) !important; display: grid !important; grid-template-columns: repeat(4, 1fr); height: 62px; min-height: 0 !important; padding: 5px !important; border-radius: var(--radius-pill); background: var(--glass); backdrop-filter: saturate(1.6) blur(16px); -webkit-backdrop-filter: saturate(1.6) blur(16px); border: 1px solid color-mix(in srgb, var(--surface) 80%, transparent) !important; box-shadow: var(--elev-2); pointer-events: auto; }
.mobile-store-nav a { position: relative; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 0 !important; padding: 0 !important; border-radius: var(--radius-pill); color: var(--fg-muted) !important; font-size: 11px !important; font-weight: 600; text-decoration: none; }
.mobile-store-nav a svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mobile-store-nav a.nav-current { background: var(--primary); color: var(--on-primary) !important; }
.mobile-store-nav a.nav-current svg { color: var(--brand-gold); }
.mobile-store-nav a.nav-current::after { display: none; }
.mobile-store-nav .cart-count { top: 3px; inset-inline-start: calc(50% + 4px); }
@media (min-width: 1024px) { .mobile-store-nav { display: none !important; } }
@media (max-width: 1023px) { body:has(.mobile-store-nav) { padding-bottom: calc(84px + env(safe-area-inset-bottom)); } }
.offline-banner { pointer-events: auto; max-width: 1280px; margin: 10px auto 0; border-radius: var(--radius-pill) !important; text-align: center; }

/* ---------- فوتر سرمه‌ای گرد با Wordmark ---------- */
.store-footer { margin-top: 64px; padding: 0; background: var(--brand-black); color: color-mix(in srgb, var(--on-dark) 72%, transparent); border-radius: 36px 36px 0 0; overflow: hidden; }
@media (min-width: 1024px) { .store-footer { border-radius: 40px 40px 0 0; } }
.store-footer .store-footer-grid { display: grid; grid-template-columns: minmax(0, 1fr); grid-gap: 28px; gap: 28px; padding-block: 56px 32px; }
@media (min-width: 768px) { .store-footer .store-footer-grid { grid-template-columns: 1.4fr repeat(3, 1fr); gap: 40px; padding-block: 72px 40px; } }
.store-footer h2 { color: var(--on-dark); font-size: 15px; font-weight: 700; margin: 0 0 14px; }
.store-footer ul { list-style: none; margin: 0; padding: 0; display: grid; grid-gap: 10px; gap: 10px; }
.store-footer a { color: inherit; font-size: 14px; text-decoration: none; }
.store-footer a:hover { color: var(--brand-gold-warm); }
.store-footer .brand { display: inline-flex; align-items: center; gap: 10px; color: var(--on-dark); }
.store-footer-seals { display: flex; gap: 10px; margin-top: 18px; }
.store-footer-seals span { width: 76px; height: 76px; border-radius: 12px; background: var(--on-dark); color: var(--brand-black); display: grid; place-items: center; text-align: center; font-size: 11px; font-weight: 700; line-height: 1.4; }
.store-footer-wordmark { font-size: clamp(84px, 19vw, 280px); font-weight: 900; line-height: .8; letter-spacing: -4px; text-align: center; color: color-mix(in srgb, var(--brand-gold) 8%, transparent); -webkit-user-select: none; -moz-user-select: none; user-select: none; margin-bottom: -0.12em; direction: ltr; }
.store-footer-bottom { border-top: 1px solid color-mix(in srgb, var(--on-dark) 10%, transparent); }
.store-footer-bottom > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-block: 18px; font-size: 13px; }

/* =========================================================================
   صفحه اصلی (v9: هیروی ادیتوریال + Bento، نوار اعتماد، دسته Bento، بخش سرمه‌ای)
   ========================================================================= */
.home-page { display: block; gap: 0; }
.home-hero { display: grid; grid-gap: 28px; gap: 28px; min-height: 0; margin-top: 28px; overflow: visible; background: none; border-radius: 0; box-shadow: none; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .home-hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 56px; align-items: center; margin-top: 48px; } }
.home-hero-copy { padding: 0; color: var(--fg); justify-content: center; }
.home-hero-copy .eyebrow { color: var(--accent-ink); }
.home-hero-copy h1 { max-width: none; margin: 14px 0 18px; font-size: clamp(36px, 5vw, 64px); font-weight: 900; line-height: 1.15; letter-spacing: -1px; color: var(--fg); }
.home-hero-copy h1 em { font-style: normal; color: var(--accent-ink); }
.home-hero-copy > p:not(.eyebrow) { max-width: 480px; color: var(--fg-muted); font-size: 17px; line-height: 1.95; }
.hero-actions { margin-top: 30px; gap: 12px; }
@media (max-width: 767px) { .hero-actions .btn { flex: 1 1 100%; } }
.hero-note { display: flex; align-items: center; gap: 10px; margin-top: 22px; color: var(--fg-muted); font-size: 13.5px; }
.home-bento { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); grid-template-rows: 280px 240px; grid-gap: 14px; gap: 14px; }
@media (max-width: 767px) { .home-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: 340px 190px; } .home-bento .bento-big { grid-column: span 2; grid-row: auto !important; } }
.bento-tile { position: relative; isolation: isolate; overflow: hidden; border-radius: var(--radius-sheet); background: var(--cream); color: var(--fg); text-decoration: none; }
.bento-tile.bento-big { grid-row: span 2; }
.bento-tile img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease-v2); }
.bento-tile:hover img { transform: scale(1.04); }
.bento-label { position: absolute; bottom: 14px; inset-inline-start: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--surface) 90%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); font-size: 13px; font-weight: 700; }
.bento-tile.bento-dark { display: flex; flex-direction: column; justify-content: flex-end; padding: 20px; background: var(--brand-black); color: var(--on-dark); }
.bento-tile.bento-dark img { position: absolute; inset: 0; z-index: -2; }
.bento-tile.bento-dark::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, color-mix(in srgb, var(--brand-black) 96%, transparent) 12%, color-mix(in srgb, var(--brand-black) 30%, transparent) 70%, transparent); }
.bento-tile.bento-dark small { color: var(--brand-gold-warm); font-size: 12px; font-weight: 700; }
.bento-tile.bento-dark b { font-size: 18px; line-height: 1.4; }
.home-hero .rate-ticker-card { position: absolute; z-index: 2; inset: 14px 14px auto 14px; width: auto; margin: 0; padding: 14px 16px; border-radius: 20px; background: color-mix(in srgb, var(--surface) 90%, transparent); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid color-mix(in srgb, var(--surface) 90%, transparent); box-shadow: var(--elev-2); }
.rate-ticker-card .eyebrow { font-size: 12px; }
.rate-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; font-size: 12.5px; color: var(--fg-muted); }
.rate-live-dot { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--success); font-weight: 700; }
.rate-live-dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.home-hero .rate-ticker-amount { margin-top: 4px; font-size: 24px; font-weight: 800; }
.rate-sparkline { width: 100%; height: 34px; margin-top: 6px; color: var(--accent); }
.home-hero .rate-ticker-meta { margin-top: 2px; font-size: 12px; }

.trust-grid { margin-top: 48px; padding: 0; gap: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sheet); box-shadow: none; }
.trust-grid article { min-height: 0; padding: 18px; border: 0; border-radius: 0; gap: 12px; flex-direction: row; align-items: center; }
.trust-grid article:nth-child(odd) { -webkit-border-end: 1px solid var(--border); border-inline-end: 1px solid var(--border); }
.trust-grid article:nth-child(-n+2) { border-bottom: 1px solid var(--border); }
.trust-icon { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border-radius: 14px; background: var(--surface-alt); color: var(--accent-ink); font-weight: 800; }
@media (min-width: 1024px) {
  .trust-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 64px; }
  .trust-grid article { padding: 22px 24px; border-bottom: 0 !important; -webkit-border-end: 0 !important; border-inline-end: 0 !important; }
  .trust-grid article + article { -webkit-border-start: 1px solid var(--border); border-inline-start: 1px solid var(--border); }
}

.home-content { display: block; padding-block: 0; }
.home-section { padding-top: 96px; }
@media (max-width: 767px) { .home-section { padding-top: 64px; } }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; }
.section-heading h2 { margin: 8px 0 0; font-size: clamp(26px, 2.6vw, 38px); font-weight: 800; }
.section-heading > a { color: var(--accent-ink); font-weight: 700; text-decoration: none; }
.section-heading > a:hover { text-decoration: underline; text-underline-offset: 5px; }

/* دسته‌ها: Bento با برچسب شیشه‌ای */
.category-rail-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 200px; grid-gap: 14px; gap: 14px; overflow: visible; padding: 0; }
.category-rail-list > a { position: relative; isolation: isolate; overflow: hidden; display: block; padding: 0; border: 0; border-radius: var(--radius-sheet); background: var(--cream); color: var(--fg); text-decoration: none; }
.category-rail-list > a:first-child { grid-column: span 2; grid-row: span 1; }
@media (min-width: 1024px) {
  .category-rail-list { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 240px; }
  .category-rail-list > a:first-child { grid-column: span 2; grid-row: span 2; }
}
.category-rail-list > a img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 900ms var(--ease-v2); }
.category-rail-list > a:hover { transform: none; box-shadow: none; }
.category-rail-list > a:hover img { transform: scale(1.13); }
.category-art { display: none !important; }
.category-tag { position: absolute; bottom: 12px; inset-inline: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 16px 10px 10px; border-radius: 18px; background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.category-tag strong { display: block; margin: 0 !important; padding: 0 !important; font-size: 16px; }
.category-tag span { display: block; padding: 0 !important; color: var(--fg-muted); font-size: 12px; }
.category-go { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--primary); color: var(--on-primary); transition: transform 300ms var(--ease-v2), background-color 200ms ease; }
.category-go svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; }
.category-rail-list > a:hover .category-go { transform: rotate(-45deg); background: var(--brand-gold); color: var(--brand-black); }

/* کارت محصول: تصویر شاخص، اطلاعات بیرون قاب */
.product-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap: 24px 12px; gap: 24px 12px; }
@media (min-width: 1024px) { .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 20px; } }
.store-page .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .store-page .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.product-card, .home-products .product-card { padding: 0 !important; background: none; border: 0; border-radius: 0; box-shadow: none; }
.product-card:hover, .home-products .product-card:hover { transform: none; box-shadow: none; }
.product-visual { display: grid; place-items: center; aspect-ratio: 1 / 1.08 !important; margin: 0 0 12px !important; border-radius: 20px; background: radial-gradient(120% 90% at 30% 20%, var(--cream-soft), var(--cream)); overflow: hidden; }
.jewel-placeholder { width: 84px; height: 84px; border: 10px solid var(--brand-gold); border-radius: 50%; box-shadow: inset 0 0 0 4px var(--brand-gold-warm), 0 18px 30px color-mix(in srgb, var(--brand-black) 12%, transparent); transition: transform 800ms var(--ease-v2); }
.product-card:hover .jewel-placeholder { transform: scale(1.06); }
.product-card h2, .product-card h3, .home-products .product-card h3 { min-height: 0; margin: 2px 2px 2px !important; font-size: 15.5px; font-weight: 600; line-height: 1.55; }
.product-card h2 a, .product-card h3 a { color: var(--fg); text-decoration: none; }
.product-card h2 a::after, .product-card h3 a::after { content: ""; position: absolute; inset: 0; }
.product-card { position: relative; }
.product-card .btn { position: relative; z-index: 1; width: 100%; margin-top: 10px; min-height: 44px; }
.product-card .muted { display: inline-flex; align-items: center; gap: 6px; margin: 0 2px !important; font-size: 12.5px; }
.product-card .muted::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--brand-gold); }
.product-card .eyebrow { margin: 0 2px; font-size: 12px; }
.product-card .eyebrow::before { display: none; }
.product-price { display: block; margin: 6px 2px 0 !important; font-size: 17px; font-weight: 800; }
.product-skeleton { aspect-ratio: 1 / 1.4; border-radius: 20px; background: linear-gradient(90deg, var(--surface-alt), var(--cream-soft), var(--surface-alt)); background-size: 200% 100%; animation: v2-shimmer 1.2s linear infinite; }
@keyframes v2-shimmer { to { background-position: -200% 0; } }
@media (max-width: 767px) { .product-card h2, .product-card h3 { font-size: 14px; } .product-price { font-size: 15.5px; } }

/* شفافیت قیمت: بخش سرمه‌ای گرد */
.transparency-section { position: relative; isolation: isolate; overflow: hidden; margin-top: 96px; padding: 28px 20px; display: grid; grid-gap: 32px; gap: 32px; grid-template-columns: minmax(0, 1fr); background: var(--brand-black); color: var(--on-dark); border-radius: var(--radius-section); }
.transparency-section::before { content: ""; position: absolute; z-index: -1; width: 600px; height: 600px; top: -260px; right: -200px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--brand-gold) 18%, transparent), transparent 65%); }
@media (min-width: 1024px) { .transparency-section { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 64px; padding: 72px 64px; align-items: center; } }
.transparency-copy .eyebrow { color: var(--brand-gold-warm); }
.transparency-copy h2 { color: var(--on-dark); font-size: clamp(28px, 3vw, 40px); margin-top: 14px; }
.transparency-copy h2 em { font-style: normal; color: var(--brand-gold); }
.transparency-copy p:not(.eyebrow) { color: color-mix(in srgb, var(--on-dark) 70%, transparent); }
.transparency-copy .btn-secondary { background: var(--brand-gold); color: var(--brand-black); border-color: var(--brand-gold); }
.transparency-copy .btn-secondary:hover { background: var(--brand-gold-warm); }
.breakdown-preview { margin: 0; padding: 24px; color: var(--fg); border: 0; border-radius: var(--radius-sheet); box-shadow: 0 40px 80px color-mix(in srgb, var(--brand-graphite) 35%, transparent); }
.breakdown-preview > div { display: flex; justify-content: space-between; gap: 12px; padding-block: 11px; border-bottom: 1px dashed var(--border); }
.breakdown-preview .breakdown-total { border-top: 2px solid var(--fg); border-bottom: 0; padding-top: 16px; font-weight: 800; }
.breakdown-preview .breakdown-total b { font-size: 20px; font-weight: 900; }
.breakdown-preview small { display: block; margin-top: 10px; color: var(--fg-muted); }

/* برآوردگر اعتباری و سفارش ساخت */
.credit-section { margin-block: 96px 0; padding: 22px; border-radius: var(--radius-card); background: var(--surface); }
@media (min-width: 1024px) { .credit-section { padding: 32px; } }
.credit-section h2 { font-size: clamp(24px, 2.4vw, 32px); margin-top: 8px; }
.credit-facts { display: grid; grid-gap: 6px; gap: 6px; padding: 18px; border-radius: 20px; background: var(--cream-soft); }
.custom-order-strip { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-start; gap: 16px; min-height: 480px; margin: 96px auto 0; padding: 26px 22px; border: 0; border-radius: var(--radius-section); color: var(--on-primary); background: var(--brand-black); }
.custom-order-strip img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 20% 50%; }
.custom-order-strip::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, color-mix(in srgb, var(--brand-black) 97%, transparent) 0%, color-mix(in srgb, var(--brand-black) 86%, transparent) 50%, transparent 80%); }
@media (min-width: 1024px) {
  .custom-order-strip { justify-content: center; padding: 56px; }
  .custom-order-strip::before { background: linear-gradient(to left, color-mix(in srgb, var(--brand-black) 96%, transparent) 0%, color-mix(in srgb, var(--brand-black) 86%, transparent) 34%, color-mix(in srgb, var(--brand-black) 15%, transparent) 64%, transparent 82%); }
  .custom-order-strip > div { max-width: 520px; }
}
.custom-order-strip .eyebrow { color: var(--brand-gold-warm); }
.custom-order-strip h2 { color: var(--on-dark); font-size: clamp(26px, 2.6vw, 38px); margin: 12px 0 10px; }
.custom-order-strip p { color: color-mix(in srgb, var(--on-dark) 78%, transparent); }
.custom-order-strip .btn-secondary { background: var(--brand-gold); color: var(--brand-black); border-color: var(--brand-gold); }

/* =========================================================================
   صفحات داخلی فروشگاه
   ========================================================================= */
.store-page { padding-block: 28px 96px; }
@media (min-width: 1024px) { .store-page { padding-block: 40px 112px; } }
.store-heading h1, .head h1 { font-size: clamp(26px, 2.6vw, 38px); font-weight: 800; }
.product-hero-visual { border-radius: var(--radius-sheet); background: radial-gradient(120% 90% at 30% 20%, var(--cream-soft), var(--cream)); }
.variant-picker button, .variant-picker label { border-radius: var(--radius-pill); }
.cart-line, .order-list-card, .order-list-row, .payment-card, .auth-card, .support-create-card, .ticket-row { border-radius: var(--radius-card); }
.payment-card:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary), var(--elev-1); }

/* =========================================================================
   پنل عملیات: سایدبار سرمه‌ای گرد + نوار بالای شیشه‌ای
   ========================================================================= */
.admin-shell { background: color-mix(in srgb, var(--bg) 92%, var(--surface-alt)); }
@media (min-width: 1024px) {
  .admin-shell { grid-template-columns: 256px minmax(0, 1fr); grid-template-rows: auto 1fr; }
  .admin-nav { position: -webkit-sticky; position: sticky; top: 12px; height: calc(100vh - 24px); margin: 12px; -webkit-margin-end: 0; margin-inline-end: 0; padding: 18px 12px; border-radius: var(--radius-sheet); background: var(--brand-black); isolation: isolate; overflow-y: auto; }
  .admin-topbar { position: -webkit-sticky; position: sticky; top: 12px; z-index: 20; margin: 12px 16px 0; min-height: 62px; padding-inline: 22px 10px; border: 1px solid color-mix(in srgb, var(--surface) 80%, transparent); border-radius: var(--radius-pill); background: var(--glass); backdrop-filter: saturate(1.6) blur(18px); -webkit-backdrop-filter: saturate(1.6) blur(18px); box-shadow: var(--elev-1); }
  .admin-content { padding: 24px 16px 56px !important; }
}
.admin-nav a { min-height: 42px !important; padding-inline: 14px !important; border-radius: var(--radius-pill) !important; font-size: 14px; }
.admin-nav a.admin-nav-active { background: var(--brand-gold) !important; color: var(--brand-black) !important; font-weight: 700; }
.admin-nav a.admin-nav-active::before { display: none; }
.admin-nav-brand { letter-spacing: 2px !important; font-weight: 900; }
.admin-global-search { display: flex; align-items: center; gap: 8px; height: 42px; padding-inline: 14px; border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); }
.admin-global-search input { border: 0; outline: 0; background: none; min-height: 0 !important; }
.admin-global-search svg { width: 16px; height: 16px; fill: none; stroke: var(--fg-muted); stroke-width: 2; }
.admin-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--brand-gold); color: var(--brand-black); display: inline-grid; place-items: center; font-weight: 800; }
.admin-head h1 { font-size: 26px; font-weight: 800; }
.admin-page .data-table-toolbar { border-radius: var(--radius-card); }

/* اصلاحات بعد از پیاده‌سازی */
.bento-label { color: var(--fg); text-decoration: none; }
@media (max-width: 1023px) { .store-nav-actions .nav-icon-button:first-child { display: inline-grid !important; } }
.store-nav-secure { -webkit-margin-start: auto; margin-inline-start: auto; color: var(--fg-muted); font-size: 13.5px; display: inline-flex; align-items: center; gap: 6px; }
.store-nav-secure::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--success); }
/* اولویت بر قواعد قدیمی `.store-nav nav` و `.home-hero` در globals.css */
.store-nav .store-nav-links { display: none; }
@media (min-width: 1024px) { .store-nav .store-nav-links { display: flex; align-items: center; } }
.home-hero.store-container { max-width: none; }
.trust-grid { overflow: hidden; }
.mobile-store-nav { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; left: 10px !important; right: 10px !important; width: auto !important; gap: 0 !important; }
.mobile-store-nav a { min-width: 0 !important; overflow: hidden; white-space: nowrap; }
.home-products .product-grid, .store-page .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; }
@media (min-width: 768px) { .store-page .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 20px; } }
@media (min-width: 1024px) { .home-products .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 20px; } }
@media (min-width: 1280px) { .store-page .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.home-products .product-card .btn { padding-inline: 12px; font-size: 13.5px; }
.home-products .product-price { margin: 6px 2px 0; }
.product-skeleton { min-height: 0 !important; width: 100%; }
.store-page { width: min(1280px, calc(100% - 32px)); max-width: none; margin-inline: auto; padding-inline: 0; }
@media (min-width: 1024px) { .store-page { width: min(1280px, calc(100% - 64px)); } }
.store-page > .page { max-width: 760px; }

/*!*********************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[12].use[3]!./app/design-v2-pages.css ***!
  \*********************************************************************************************************************************************************************************************************************************************************************/
/* =========================================================================
   Design System v2 — چیدمان صفحات (D-UI-02). مرجع: docs/ui/platform/c*.html و a*.html
   فقط توکن؛ رنگ دستی ممنوع. پس از design-v2.css بارگذاری می‌شود.
   ========================================================================= */

/* ---------- پایه مشترک ---------- */
.ico { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.btn .ico { width: 18px; height: 18px; }
.page-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.page-title h1 { margin: 6px 0 0; font-size: clamp(26px, 2.6vw, 38px); font-weight: 800; }
.page-title p:not(.eyebrow) { margin: 6px 0 0; }
.crumbs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 14px; color: var(--fg-muted); font-size: 13px; }
.crumbs a { color: inherit; text-decoration: none; }
.crumbs a:hover { color: var(--fg); }
.card h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 18px; font-weight: 700; }
.card h2 .ico { color: var(--accent-ink); }
.kv { display: flex; justify-content: space-between; gap: 16px; padding-block: 9px; font-size: 14.5px; }
.kv + .kv { border-top: 1px dashed var(--border); }
.kv > span:first-child { color: var(--fg-muted); }
.status .ico { width: 14px; height: 14px; }
.status-tone-muted { background: var(--surface-alt); }
.stack-list { display: flex; flex-direction: column; gap: 10px; }
.form-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap: 12px; gap: 12px; }
.field > select, .field > textarea, .field > input { width: 100%; font: inherit; }
label.field { font-size: 14px; font-weight: 600; }
.form-hint { display: flex; align-items: center; gap: 6px; color: var(--fg-muted); font-size: 13px; }
.alert { display: flex; gap: 10px; align-items: flex-start; }
.alert > .ico { margin-top: 3px; }
.alert p { margin: 0; }
.success-banner, .warning-banner { padding: 14px 16px; border-radius: 20px; }
.success-banner { background: var(--success-bg); color: var(--success); }
.warning-banner { background: var(--warning-bg); }

/* گام‌های خرید */
.steps { display: flex; align-items: center; gap: 8px; max-width: 620px; margin: 0 auto 28px; padding: 0; list-style: none; counter-reset: s; }
.steps li { display: flex; align-items: center; gap: 10px; flex: 1 1; color: var(--fg-muted); font-size: 14px; font-weight: 600; }
.steps li::before { counter-increment: s; content: counter(s); width: 34px; height: 34px; flex: none; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid var(--border-strong); background: var(--surface); font-weight: 800; font-size: 13.5px; }
.steps li::after { content: ""; flex: 1 1; border-top: 1.5px dashed var(--border-strong); }
.steps li:last-child { flex: none; }
.steps li:last-child::after { display: none; }
.steps li.done, .steps li.cur { color: var(--fg); }
.steps li.done::before { content: "✓"; background: var(--brand-black); border-color: var(--brand-black); color: var(--brand-gold); }
.steps li.done::after { border-top-style: solid; border-top-color: var(--brand-gold); }
.steps li.cur::before { background: var(--brand-gold); border-color: var(--brand-gold); color: var(--brand-black); box-shadow: 0 0 0 5px color-mix(in srgb, var(--brand-gold) 18%, transparent); }
@media (max-width: 767px) { .steps li span { display: none; } .steps li.cur span { display: inline; } }

/* گزینه انتخابی (نشانی و مانند آن) */
.opt { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border: 1.5px solid var(--border); border-radius: 20px; background: var(--surface); cursor: pointer; transition: border-color 150ms ease, box-shadow 150ms ease; }
.opt:hover { border-color: var(--border-strong); }
.opt input { width: 20px; height: 20px; min-height: 0 !important; margin-top: 3px; accent-color: var(--primary); flex: none; }
.opt:has(input:checked) { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary), var(--elev-1); }
.opt-main { display: flex; flex-direction: column; gap: 2px; flex: 1 1; min-width: 0; }
.check-field { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; }
.check-field input { width: 20px; height: 20px; min-height: 0 !important; margin-top: 4px; accent-color: var(--primary); }

/* تایمر قیمت */
.quote-timer { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; font-size: 14px; }
.quote-timer .num { -webkit-margin-start: auto; margin-inline-start: auto; font-weight: 800; font-size: 17px; }
.quote-timer .ico { color: var(--accent-ink); width: 18px; height: 18px; }
.quote-timer.countdown-expired { border-color: var(--danger); background: var(--danger-bg); color: var(--danger); }
.cart-summary dl, .quote-result dl { margin: 0; }
.cart-summary dl > div, .quote-result dl > div { display: flex; justify-content: space-between; gap: 12px; padding-block: 10px; border-bottom: 1px dashed var(--border); }
.cart-summary dl > div dt { color: var(--fg-muted); }
.cart-summary dd, .quote-result dd { margin: 0; font-weight: 700; }
.quote-total { border-top: 2px solid var(--fg); border-bottom: 0 !important; padding-top: 14px !important; }
.quote-total dt { color: var(--fg) !important; font-weight: 800; }
.quote-total dd { font-size: 20px; font-weight: 900 !important; }
.price-difference { padding: 10px 14px; border-radius: 14px; background: var(--warning-bg); }

/* چیدمان دوستونه مشترک (سبد، Checkout، سفارش) */
.cart-layout { display: grid; grid-gap: 24px; gap: 24px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) {
  .cart-layout { grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; }
  .cart-summary { position: -webkit-sticky; position: sticky; top: 100px; }
}
.cart-layout > * { min-width: 0; }
.cart-layout h1 { margin: 0; font-size: clamp(26px, 2.6vw, 38px); }

/* ---------- محصول ---------- */
.product-detail-grid { display: grid; grid-gap: 24px; gap: 24px; grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 1024px) {
  .product-detail-grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 48px; }
  .pd-gallery { position: -webkit-sticky; position: sticky; top: 100px; }
}
.product-hero-visual { display: grid; place-items: center; aspect-ratio: 1; min-height: 0 !important; margin: 0; position: static !important; }
.pd-info { display: flex; flex-direction: column; gap: 18px; }
.pd-title h1 { margin: 8px 0 6px; font-size: clamp(26px, 2.6vw, 36px); font-weight: 800; }
.pd-title .status { margin-bottom: 8px; }
.pd-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--surface); }
.pd-specs > div { padding: 12px 16px; }
.pd-specs > div + div { -webkit-border-start: 1px solid var(--border); border-inline-start: 1px solid var(--border); }
.pd-specs dt { color: var(--fg-muted); font-size: 12.5px; }
.pd-specs dd { margin: 0; font-weight: 700; }
.variant-picker { display: flex; flex-wrap: wrap; gap: 8px; border: 0; padding: 0; margin: 0; }
.variant-picker legend { margin-bottom: 8px; font-size: 14px; font-weight: 600; }
.pd-buy { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.pd-buy-price { display: flex; flex-direction: column; }
.pd-buy-price strong { font-size: clamp(26px, 2.4vw, 32px); font-weight: 800; }
.pd-rate { margin: 0; color: var(--fg-muted); font-size: 13.5px; }
.pd-breakdown, .pd-facts { margin: 0; }
.pd-facts { list-style: none; display: grid; grid-gap: 14px; gap: 14px; }
.pd-facts li { display: flex; gap: 12px; font-size: 14.5px; }
.pd-facts li .ico { color: var(--accent-ink); margin-top: 3px; }
.pd-facts b { display: block; }
.pd-facts span { color: var(--fg-muted); font-size: 13.5px; }
.pd-facts a { color: var(--accent-ink); font-weight: 600; }
/* نوار اقدام چسبان موبایل */
.m-action { position: fixed; z-index: 44; inset-inline: 10px; bottom: calc(82px + env(safe-area-inset-bottom)); display: flex; align-items: center; gap: 12px; padding: 10px 10px 10px 14px; border-radius: var(--radius-sheet); background: var(--glass); backdrop-filter: saturate(1.6) blur(16px); -webkit-backdrop-filter: saturate(1.6) blur(16px); border: 1px solid color-mix(in srgb, var(--surface) 80%, transparent); box-shadow: var(--elev-2); }
.m-action > div { display: flex; flex-direction: column; flex: 1 1; min-width: 0; font-size: 12px; }
.m-action strong { font-size: 16px; }
.m-action .btn { flex: 1.2 1; }
@media (min-width: 1024px) { .m-action { display: none; } }
@media (max-width: 1023px) { .pd-page { padding-bottom: 90px; } }

/* ---------- سبد ---------- */
.cart-lines { padding-block: 4px; }
.cart-line { display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; grid-template-areas: "thumb info price" "thumb info remove"; grid-gap: 4px 14px; gap: 4px 14px; align-items: center; padding: 14px 0; border: 0; border-radius: 0; background: none; }
.cart-line + .cart-line { border-top: 1px solid var(--border); }
.cart-thumb { grid-area: thumb; width: 72px; height: 72px; border-radius: 14px; display: grid; place-items: center; background: radial-gradient(120% 90% at 30% 20%, var(--cream-soft), var(--cream)); }
.cart-thumb .jewel-placeholder { width: 36px; height: 36px; border-width: 5px; box-shadow: inset 0 0 0 2px var(--brand-gold-warm); }
.cart-line-info { grid-area: info; }
.cart-line-info h2 { margin: 0; font-size: 15.5px; font-weight: 600; }
.cart-line-info h2 a { color: var(--fg); text-decoration: none; }
.cart-line-info p { margin: 2px 0 0; font-size: 13px; }
.cart-line > .money { grid-area: price; font-weight: 800; text-align: end; }
.cart-line > .btn { grid-area: remove; justify-self: end; min-height: 36px; color: var(--danger); font-size: 13px; }

/* ---------- Checkout / پرداخت ---------- */
.eta { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); grid-gap: 0; gap: 0; margin: 0; border: 1px solid var(--border); border-radius: var(--radius-card); overflow: hidden; }
.eta > div { padding: 12px 16px; }
.eta > div + div { -webkit-border-start: 1px solid var(--border); border-inline-start: 1px solid var(--border); }
.eta dt { color: var(--fg-muted); font-size: 12.5px; }
.eta dd { margin: 0; font-weight: 700; }
.eta .quote-total { border-top: 0; padding-top: 12px !important; background: color-mix(in srgb, var(--brand-gold-warm) 20%, var(--surface)); }
.pay-option { display: flex; align-items: center; gap: 14px; margin: 0; flex-wrap: wrap; }
.pay-option.is-disabled { opacity: .55; }
.pay-ico { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 14px; background: var(--surface-alt); color: var(--accent-ink); }
.pay-credit { margin: 0; display: flex; flex-direction: column; gap: 14px; }
.pay-credit-head { display: flex; gap: 14px; align-items: center; }
.pay-credit-head h2 { margin: 0; }
.credit-result { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-gap: 10px; gap: 10px; margin: 0; }
.credit-result > div { padding: 12px 14px; border-radius: 14px; background: var(--cream-soft); }
.credit-result dt { color: var(--fg-muted); font-size: 12.5px; }
.credit-result dd { margin: 0; font-weight: 800; }
.pay-total strong { font-size: clamp(26px, 2.4vw, 32px); font-weight: 900; }
.result { display: flex; flex-direction: column; align-items: center; gap: 12px; max-width: 560px; margin: 24px auto; text-align: center; }
.result h1 { margin: 6px 0 0; font-size: clamp(24px, 2.4vw, 32px); }
.result p { margin: 0; color: var(--fg-muted); }
.result .alert { text-align: start; }
.result-ico { width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center; background: var(--surface-alt); }
.result-ico .ico { width: 38px; height: 38px; }
.result-success .result-ico { background: var(--success-bg); color: var(--success); }
.result-danger .result-ico { background: var(--danger-bg); color: var(--danger); }
.result-info .result-ico { background: var(--info-bg); color: var(--info); }
.result-spin { width: 72px; height: 72px; border-radius: 50%; border: 4px solid var(--surface-alt); border-top-color: var(--primary); animation: v2-spin 1s linear infinite; }
@keyframes v2-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .result-spin { animation: none; border-top-color: var(--border-strong); } }

/* ---------- حساب مشتری ---------- */
.account-shell { display: grid; grid-gap: 20px; gap: 20px; grid-template-columns: minmax(0, 1fr); align-items: start; }
.account-main { min-width: 0; }
.account-nav { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 4px; }
.account-nav::-webkit-scrollbar { display: none; }
.account-nav-title { display: none; }
.account-nav a { display: inline-flex; flex: none; align-items: center; gap: 8px; min-height: 40px; padding-inline: 14px; border: 1px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); color: var(--fg-muted); font-size: 13.5px; font-weight: 600; text-decoration: none; transition: background-color 150ms ease, color 150ms ease; }
.account-nav a .ico { width: 16px; height: 16px; }
.account-nav a[aria-current="page"] { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
@media (min-width: 1024px) {
  .account-shell { grid-template-columns: 260px minmax(0, 1fr); gap: 32px; }
  .account-nav { position: -webkit-sticky; position: sticky; top: 100px; flex-direction: column; gap: 2px; padding: 12px; overflow: visible; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--surface); }
  .account-nav-title { display: block; padding: 6px 14px 12px; margin-bottom: 6px; border-bottom: 1px solid var(--border); font-weight: 800; }
  .account-nav a { border: 0; min-height: 44px; font-size: 14.5px; font-weight: 500; }
  .account-nav a:hover { background: var(--surface-alt); color: var(--fg); }
  .account-nav a[aria-current="page"] { font-weight: 700; }
  .account-nav a[aria-current="page"] .ico { color: var(--brand-gold); }
}
.account-page .card { margin: 0; }
.account-page .metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); grid-gap: 12px; gap: 12px; }
.account-page .metric-card { min-height: 0; padding: 16px; background: var(--cream-soft); border-color: transparent; }
.order-cards { display: grid; grid-gap: 12px; gap: 12px; }
.order-card { display: flex; flex-direction: column; gap: 12px; margin: 0; color: var(--fg); text-decoration: none; transition: box-shadow 200ms ease, border-color 200ms ease; }
.order-card:hover { box-shadow: var(--elev-2); border-color: transparent; }
.order-card-top, .order-card-bottom { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.order-card-bottom { padding-top: 12px; border-top: 1px dashed var(--border); }
.order-card-bottom .muted { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; }
.order-card-bottom .ico { width: 16px; height: 16px; }
.order-no { padding: 3px 10px; border-radius: 8px; background: var(--surface-alt); font-size: 13px; }
.order-head { align-items: center; }
.order-head h1 { font-size: clamp(22px, 2.2vw, 30px); }
.order-detail-page .card, .invoice-page .card, .return-page .card, .support-customer-page .card { margin: 0; }
.tl { list-style: none; margin: 0; padding: 0; }
.tl li { display: grid; grid-template-columns: 32px 1fr; grid-gap: 0 14px; gap: 0 14px; position: relative; padding-bottom: 20px; }
.tl li:last-child { padding-bottom: 0; }
.tl li::before { content: ""; position: absolute; top: 32px; bottom: 0; right: 15px; border-right: 2px solid var(--brand-gold); }
.tl li:last-child::before { display: none; }
.tl-dot { width: 32px; height: 32px; grid-row: span 2; display: grid; place-items: center; border-radius: 50%; background: var(--brand-black); color: var(--brand-gold); position: relative; z-index: 1; }
.tl-dot .ico { width: 15px; height: 15px; }
.tl li.cur .tl-dot { background: var(--brand-gold); color: var(--brand-black); box-shadow: 0 0 0 5px color-mix(in srgb, var(--brand-gold) 20%, transparent); }
.tl-t { font-weight: 700; }
.tl-d { color: var(--fg-muted); font-size: 12.5px; }
.doc-links { display: grid; grid-gap: 8px; gap: 8px; }
.doc-links a { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 16px; color: var(--fg); text-decoration: none; font-size: 14px; }
.doc-links a:hover { border-color: var(--border-strong); }
.doc-links .ico { color: var(--accent-ink); }
.invoice-sheet { display: flex; flex-direction: column; gap: 16px; }
.invoice-head { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 16px; border-bottom: 2px solid var(--fg); }
.invoice-meta { display: grid; grid-gap: 6px; gap: 6px; margin: 0; font-size: 14px; }
.invoice-meta > div { display: flex; gap: 16px; justify-content: space-between; }
.invoice-meta dt { color: var(--fg-muted); }
.invoice-meta dd { margin: 0; font-weight: 600; }
@media print { .store-nav, .store-footer, .account-nav, .page-title .btn, .mobile-store-nav { display: none !important; } }
.support-grid { display: grid; grid-gap: 16px; gap: 16px; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .support-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; } .support-conversation { grid-column: 1 / -1; } }
.ticket-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; padding: 12px 14px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); font: inherit; text-align: start; cursor: pointer; }
.ticket-row + .ticket-row { margin-top: 8px; }
.ticket-row.row-selected { border-color: var(--brand-gold); box-shadow: inset -3px 0 0 var(--brand-gold); }
.messages { display: flex; flex-direction: column; gap: 12px; padding: 16px; margin-bottom: 14px; border-radius: 18px; background: var(--cream-soft); }
.msg { max-width: 80%; padding: 12px 16px; border-radius: 18px; }
.msg p { margin: 0; }
.msg-meta { display: block; margin-top: 4px; font-size: 11.5px; opacity: .75; }
.msg-me { align-self: flex-start; background: var(--primary); color: var(--on-primary); border-end-start-radius: 6px; }
.msg-staff { align-self: flex-end; background: var(--surface); border: 1px solid var(--border); border-end-end-radius: 6px; }
.legal-page { max-width: 860px; margin: 0 auto; padding: 24px; }
@media (min-width: 1024px) { .legal-page { padding: 40px 48px; } }
.legal-head { padding-bottom: 18px; margin-bottom: 24px; border-bottom: 1px solid var(--border); }
.legal-head h1 { margin: 0 0 10px; font-size: clamp(24px, 2.4vw, 34px); }
.legal-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; color: var(--fg-muted); font-size: 13px; }
.legal-body { max-width: 68ch; white-space: pre-wrap; font-size: 15.5px; line-height: 2; }

/* ---------- ورود ---------- */
.auth-page { display: grid; grid-template-columns: minmax(0, 1fr); min-height: calc(100vh - 80px); }
@media (min-width: 1024px) { .auth-page { grid-template-columns: 1fr 1fr; gap: 32px; width: min(1280px, calc(100% - 64px)); margin: 24px auto 0; } }
.auth-box { display: flex; flex-direction: column; justify-content: center; width: 100%; max-width: 460px; margin: 0 auto; padding: 32px 16px 48px; }
.auth-box .page { padding: 0; max-width: none; }
.auth-card { margin: 0; padding: 24px; }
.auth-media { display: none; position: relative; overflow: hidden; border-radius: var(--radius-section); background: var(--brand-black); isolation: isolate; }
.auth-media img { opacity: .6; object-fit: cover; z-index: -1; }
.auth-quote { position: absolute; inset-inline: 40px; bottom: 40px; color: var(--on-dark); }
.auth-quote b { display: block; font-size: 28px; line-height: 1.4; }
.auth-quote p { margin: 8px 0 0; color: color-mix(in srgb, var(--on-dark) 78%, transparent); }
@media (min-width: 1024px) { .auth-media { display: block; } }
.auth-links { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; }

/* ---------- کاتالوگ ---------- */
.store-heading { margin-bottom: 24px; }
.store-heading h1 { margin: 8px 0 6px; }
.store-heading::after { display: none !important; }

/* =========================================================================
   پنل عملیات
   ========================================================================= */
.admin-nav { display: flex; flex-direction: column; color: color-mix(in srgb, var(--brand-offwhite) 78%, transparent); }
.admin-nav-brand { display: flex !important; align-items: center; gap: 10px; padding: 6px 8px 16px !important; color: var(--brand-offwhite) !important; font-size: 18px !important; }
.admin-nav-brand small { display: block; font-size: 10px; font-weight: 500; letter-spacing: 0; opacity: .7; }
.admin-nav-links { display: flex; flex-direction: column; gap: 2px; flex: 1 1; }
.admin-nav a { display: flex !important; align-items: center; gap: 12px; }
.admin-nav a .ico { width: 18px; height: 18px; opacity: .9; }
.admin-nav-section { margin: 14px 12px 4px !important; }
.admin-operator { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 14px 8px 4px; border-top: 1px solid color-mix(in srgb, var(--brand-offwhite) 10%, transparent); font-size: 13px; }
.admin-operator b { display: block; color: var(--brand-offwhite); }
.admin-operator small { display: block; opacity: .75; }
.admin-rate { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: var(--radius-pill); background: var(--surface-alt); font-size: 13px; white-space: nowrap; }
.admin-rate i { width: 8px; height: 8px; border-radius: 50%; background: var(--success); }
.admin-rate[data-stale="true"] i { background: var(--warning); }
.admin-topbar { gap: 14px; }
.admin-global-search { -webkit-margin-start: auto; margin-inline-start: auto; width: min(360px, 30vw); }
@media (max-width: 1023px) {
  .admin-shell { display: block; }
  .admin-topbar { display: flex !important; flex-wrap: wrap; position: static; padding: 12px 16px; background: var(--surface); }
  .admin-global-search { width: 100%; order: 3; }
  .admin-nav { position: static !important; height: auto !important; margin: 0 !important; border-radius: 0 !important; padding: 10px 12px !important; }
  .admin-nav-links { flex-direction: row; overflow-x: auto; gap: 4px; }
  .admin-nav-section, .admin-operator, .admin-nav-brand { display: none !important; }
  .admin-nav a { flex: none; }
}
@media (min-width: 1024px) and (max-width: 1199px) {
  .admin-shell { grid-template-columns: 84px minmax(0, 1fr) !important; }
  .admin-nav a span, .admin-nav-section, .admin-nav-brand > span:last-child, .admin-operator > span:last-child { display: none !important; }
  .admin-nav a { justify-content: center; padding-inline: 0 !important; }
}
.admin-page { display: flex; flex-direction: column; gap: 20px; }
.admin-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.admin-head h1 { margin: 4px 0 0; }
.metric-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); grid-gap: 14px; gap: 14px; }
.metric-card { background: var(--surface); }
.metric-label { color: var(--fg-muted); font-size: 13px; }
.metric-icon { width: 34px; height: 34px; display: grid; place-items: center; background: var(--surface-alt); color: var(--accent-ink); font-weight: 800; }
.metric-icon-warning { background: var(--warning-bg); color: var(--warning); }
.metric-icon-danger { background: var(--danger-bg); color: var(--danger); }
.metric-icon-info { background: var(--info-bg); color: var(--info); }
.monitor-section { padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); }
.monitor-section > h2, .monitor-section .section-heading h2 { font-size: 18px; margin: 0 0 14px; }
.monitor-section .section-heading { margin-bottom: 14px; }
.request-list { display: grid; grid-gap: 10px; gap: 10px; }
.request-row { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); }
.system-health { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); grid-gap: 12px; gap: 12px; margin-bottom: 14px; }
.system-health > div { display: flex; flex-direction: column; padding: 14px 16px; border-radius: 16px; background: var(--cream-soft); }
.system-health span, .system-health small { color: var(--fg-muted); font-size: 12.5px; }
.system-health strong { font-size: 20px; }
.row-warning { background: color-mix(in srgb, var(--warning-bg) 70%, transparent); }
.monitor-skeleton { min-height: 240px; border-radius: var(--radius-card); }
.config-page .card, .admin-page .card { margin-top: 0; }
.version-row { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 14px; }
.version-row + .version-row { border-top: 1px dashed var(--border); }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.badge-soon { padding: 0 8px; border-radius: 9px; background: color-mix(in srgb, var(--on-primary) 12%, transparent); font-size: 11px; }

/* ---------- S-C-02 فهرست محصولات (مرجع: c02-products.html) ---------- */
.cat-chips, .chip-row { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.cat-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-bottom: 4px; padding-block: 2px; }
.cat-chips::-webkit-scrollbar { display: none; }
.cat-chips .chip { flex: none; }
.chip { font: inherit; font-size: 14px; color: var(--fg); cursor: pointer; }
.chip-active { color: var(--on-primary); }
.chip-removable { display: inline-flex; align-items: center; gap: 8px; background: var(--surface-alt); }
.chip-removable span { font-size: 17px; line-height: 1; color: var(--fg-muted); }
.catalog-layout { display: grid; grid-gap: 24px; gap: 24px; margin-top: 20px; }
.catalog-filters { padding: 20px 22px; }
.catalog-sheet-head { display: none; }
.catalog-filter-form .f-group { margin: 0; padding: 0 0 16px; border: 0; border-bottom: 1px solid var(--border); display: flex; flex-direction: column; gap: 8px; }
.catalog-filter-form .f-group + .f-group { padding-top: 16px; }
.catalog-filter-form legend { float: right; width: 100%; margin-bottom: 8px; padding: 0; font-size: 14.5px; font-weight: 700; display: flex; justify-content: space-between; }
.catalog-filter-form .full-button { margin-top: 16px; width: 100%; }
.range-row { display: grid; grid-template-columns: 1fr 1fr; grid-gap: 8px; gap: 8px; }
.range-row input { min-width: 0; min-height: 40px; padding-inline: 12px; border: 1.5px solid var(--border); border-radius: var(--radius-control, 14px); background: var(--surface); color: var(--fg); font: inherit; font-size: 14px; }
.catalog-toolbar { display: flex; align-items: center; gap: 10px; min-height: 40px; font-size: 14px; }
.active-filters { margin: 4px 0 16px; }
.catalog-mobile-bar { position: -webkit-sticky; position: sticky; top: 72px; z-index: 20; display: flex; gap: 8px; margin-top: 14px; padding-block: 6px; }
.catalog-mobile-bar .btn { flex: 1 1; }
.filter-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding-inline: 6px; border-radius: var(--radius-pill); background: var(--brand-gold); color: var(--brand-black); font-size: 12px; }
.catalog-more { display: flex; flex-direction: column; align-items: center; gap: 10px; margin-top: 32px; font-size: 14px; }
.catalog-progress { width: 200px; height: 4px; border-radius: var(--radius-pill); background: var(--surface-alt); overflow: hidden; }
.catalog-progress i { display: block; height: 100%; background: var(--brand-gold); border-radius: inherit; }
.catalog-scrim { display: none; }
.product-card .status { position: absolute; z-index: 1; top: 12px; inset-inline-start: 12px; margin: 0; }
@media (max-width: 1023px) {
  .catalog-filters { position: fixed; z-index: 60; inset: auto 0 0 0; max-height: 86dvh; overflow-y: auto; border-radius: 28px 28px 0 0; padding-bottom: calc(20px + env(safe-area-inset-bottom)); transform: translateY(105%); visibility: hidden; transition: transform 260ms var(--ease-v2, ease), visibility 0s linear 260ms; box-shadow: var(--elev-3, var(--elev-2)); }
  .catalog-filters[data-open="true"] { transform: none; visibility: visible; transition: transform 260ms var(--ease-v2, ease); }
  .catalog-sheet-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 18px; }
  .catalog-scrim { display: block; position: fixed; inset: 0; z-index: 55; border: 0; background: color-mix(in srgb, var(--brand-black) 45%, transparent); }
}
@media (min-width: 1024px) {
  .catalog-layout { grid-template-columns: 272px minmax(0, 1fr); gap: 32px; align-items: start; }
  .catalog-filters { position: -webkit-sticky; position: sticky; top: 96px; }
  .catalog-mobile-bar { display: none; }
}
@media (prefers-reduced-motion: reduce) { .catalog-filters { transition: none !important; } }
.catalog-filter-form .check-field, .catalog-filter-form .check-field:has(input:checked) { min-height: 36px; padding: 2px 0; background: none; border: 0; box-shadow: none; align-items: center; }
.catalog-filter-form .check-field input { margin-top: 0; }
@media (min-width: 1024px) { .catalog-layout .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Shell پنل — هم‌ترازی با a01…a18 ---------- */
.admin-global-search svg { position: static; flex: none; }
.admin-global-search input, .admin-global-search input:focus { width: 100%; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.admin-global-search:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 14%, transparent); }
.admin-nav-brand small { margin-top: 3px; letter-spacing: 2px; text-transform: uppercase; }
.admin-head { padding-bottom: 0; border-bottom: 0; margin-bottom: 0; }
@media (min-width: 1024px) {
  .admin-nav { overflow: hidden !important; }
  .admin-nav-links { min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: color-mix(in srgb, var(--brand-offwhite) 20%, transparent) transparent; }
}

/* ---------- S-A-01 مرکز عملیات (مرجع: a01-dashboard.html) ---------- */
.metric-icon .ico { width: 18px; height: 18px; }
.dashboard-alerts { padding: 18px 22px; border-radius: var(--radius-card); }
.dashboard-alerts ul { margin: 6px 0 0; -webkit-padding-start: 18px; padding-inline-start: 18px; }
.dashboard-alerts li small { -webkit-margin-start: 6px; margin-inline-start: 6px; }
.dashboard-grid { display: grid; grid-gap: 20px; gap: 20px; align-items: start; }
@media (min-width: 1200px) { .dashboard-grid { grid-template-columns: minmax(0, 1fr) 360px; } }
.dashboard-queue { padding: 0; overflow: hidden; }
.dashboard-card-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding: 22px 24px 18px; }
.dashboard-card-head h2 { margin: 4px 0 0; font-size: 20px; }
.dashboard-queue .table-wrap { border: 0; border-top: 1px solid var(--border); border-radius: 0; box-shadow: none; }
.dashboard-queue .compact-empty { margin: 0 24px 24px; }
.dashboard-side { display: flex; flex-direction: column; gap: 20px; }
.dashboard-side .card { display: flex; flex-direction: column; gap: 4px; }
.dashboard-side .card > .btn { align-self: flex-start; margin-top: 10px; }
.dashboard-side .card > .full-button { align-self: stretch; }
.health-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-block: 12px; }
.health-row + .health-row { border-top: 1px dashed var(--border); }
.health-row > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.health-row b { font-size: 14.5px; }
.health-row small { font-size: 12.5px; }
.health-row .status { flex: none; }
.count-pill { display: inline-grid; place-items: center; min-width: 22px; height: 22px; padding-inline: 7px; border-radius: var(--radius-pill); background: var(--brand-gold); color: var(--brand-black); font-size: 12px; }
.alert:has(> .ico)::before { display: none; }
.alert > .ico { margin-top: 2px; }
@media (max-width: 767px) { .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } .metric-card .metric-value { font-size: 26px; } }

/* ---------- دیالوگ Step-up پنل ---------- */
.stepup-dialog { width: min(420px, calc(100vw - 32px)); padding: 28px; border: 0; border-radius: var(--radius-sheet, 28px); background: var(--surface); color: var(--fg); box-shadow: var(--elev-3); }
.stepup-dialog::-webkit-backdrop { background: color-mix(in srgb, var(--brand-black) 50%, transparent); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.stepup-dialog::backdrop { background: color-mix(in srgb, var(--brand-black) 50%, transparent); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.stepup-dialog form { display: flex; flex-direction: column; gap: 14px; }
.stepup-dialog h2 { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 20px; }
.stepup-dialog h2 .ico { color: var(--accent-ink); }
.stepup-dialog p { margin: 0; }
.stepup-dialog input { font-size: 22px; letter-spacing: 8px; text-align: center; }

/* ---------- S-A-03 ویرایش محصول و S-A-03A گروه‌ها ---------- */
.editor-grid { display: grid; grid-gap: 20px; gap: 20px; align-items: start; }
@media (min-width: 1200px) { .editor-grid { grid-template-columns: minmax(0, 1fr) 340px; } }
.editor-main, .editor-side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.editor-side { position: -webkit-sticky; position: sticky; top: 96px; }
.product-editor .card, .editor-grid .card { display: flex; flex-direction: column; gap: 14px; }
.card-head-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.card-head-row h2 { margin: 0; }
.editor-seo summary { cursor: pointer; font-weight: 600; padding-block: 6px; }
.editor-seo[open] { display: flex; flex-direction: column; gap: 12px; }
.sku-form { display: flex; flex-direction: column; gap: 14px; margin-top: 6px; padding: 18px; border-radius: 20px; background: var(--surface-alt); }
.sku-form h3 { margin: 0; font-size: 16px; }
.sku-form .form-row { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.row-actions { white-space: nowrap; }
.danger-text { color: var(--danger) !important; }
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); grid-gap: 14px; gap: 14px; margin: 0; padding: 0; list-style: none; }
.media-tile { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 10px; border: 1px solid var(--border); border-radius: 20px; background: var(--surface); }
.media-tile img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; background: var(--cream, var(--surface-alt)); }
.media-tile .field span { font-size: 13px; color: var(--fg-muted); }
.media-badge { position: absolute; top: 18px; inset-inline-start: 18px; }
.media-upload { display: grid; grid-gap: 12px; gap: 12px; padding-top: 14px; border-top: 1px dashed var(--border); }
.checklist { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.checklist li { display: flex; gap: 8px; align-items: flex-start; color: var(--warning); }
.checklist .ico { width: 16px; height: 16px; margin-top: 3px; }
.cell-link { display: flex; flex-direction: column; gap: 2px; color: var(--fg); font-weight: 600; text-decoration: none; }
.cell-link:hover { color: var(--accent-ink); }
.cell-link small { font-weight: 400; font-size: 12px; }
.tree-title { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; }
.tree-branch { color: var(--fg-muted); }
.toolbar-search { display: flex; align-items: center; gap: 8px; flex: 1 1 240px; min-height: 44px; padding-inline: 14px; border: 1.5px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); }
.toolbar-search input { flex: 1 1; min-width: 0; border: 0 !important; background: none !important; box-shadow: none !important; padding: 0 !important; }
.toolbar-search:focus-within { border-color: var(--primary); }
.toolbar-search .ico { width: 18px; height: 18px; color: var(--fg-muted); }
@media (max-width: 1199px) { .editor-side { position: static; } }

/* ---------- تصویر واقعی محصول ---------- */
.product-visual.has-image, .product-hero-visual.has-image { padding: 0; overflow: hidden; }
.has-image picture, .has-image img { display: block; width: 100%; height: 100%; }
.has-image img { object-fit: cover; transition: transform 800ms var(--ease-v2, ease); }
.product-card:hover .has-image img { transform: scale(1.04); }
.pd-thumbs { display: flex; gap: 10px; margin-top: 12px; overflow-x: auto; }
.pd-thumbs button { flex: none; width: 76px; padding: 0; border: 2px solid transparent; border-radius: 16px; background: none; cursor: pointer; overflow: hidden; }
.pd-thumbs button[aria-pressed="true"] { border-color: var(--primary); }
.pd-thumb { aspect-ratio: 1; border-radius: 14px; background: var(--cream, var(--surface-alt)); }
@media (prefers-reduced-motion: reduce) { .has-image img { transition: none; } }
.catalog-filter-form select { width: 100%; min-height: 44px; }
.sort-select { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.sort-select select { min-height: 40px; width: auto; padding-inline: 12px 32px; border-radius: var(--radius-pill); }
.catalog-mobile-bar .sort-select { flex: 1 1; justify-content: center; }
.catalog-mobile-bar .sort-select .muted { display: none; }
.catalog-mobile-bar .sort-select select { width: 100%; min-height: 44px; }
.catalog-count { -webkit-margin-end: auto; margin-inline-end: auto; }
@media (max-width: 1023px) { .catalog-sort-desktop { display: none; } }
.chip-color { display: inline-flex; align-items: center; gap: 8px; }
.chip-color i { width: 14px; height: 14px; border-radius: 50%; border: 1px solid color-mix(in srgb, var(--fg) 20%, transparent); }
.chip-color-yellow i { background: var(--brand-gold); }
.chip-color-white i { background: var(--surface-alt); }
.chip-color-rose i { background: color-mix(in srgb, var(--brand-gold) 55%, var(--danger)); }

/* ---------- S-C-06/07 احراز هویت ---------- */
.kyc-page { display: flex; flex-direction: column; gap: 20px; }
.kyc-levels { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); grid-gap: 12px; gap: 12px; margin: 0; padding: 0; list-style: none; }
.kyc-level button { display: flex; flex-direction: column; gap: 8px; width: 100%; height: 100%; padding: 18px; border: 1.5px solid var(--border); border-radius: var(--radius-card); background: var(--surface); color: var(--fg); font: inherit; text-align: start; cursor: pointer; }
.kyc-level button:disabled { cursor: default; }
.kyc-level.is-reached button { background: var(--surface-alt); }
.kyc-level.is-target button { border-color: var(--primary); box-shadow: inset 0 0 0 1px var(--primary), var(--elev-1); }
.kyc-level-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 16px; }
.kyc-limits { display: flex; flex-direction: column; gap: 2px; font-size: 13.5px; color: var(--fg-muted); }
.kyc-limits b { color: var(--fg); font-weight: 700; }
.kyc-needs { font-size: 13px; line-height: 1.7; }
.kyc-form, .kyc-pending { display: flex; flex-direction: column; gap: 16px; }
.kyc-form .btn-primary { align-self: flex-start; min-width: 220px; }
.kyc-file input[type="file"] { padding: 10px; border: 1.5px dashed var(--border-strong, var(--border)); border-radius: 16px; background: var(--surface-alt); }
.kyc-history { margin: 0; padding: 0; list-style: none; }
@media (max-width: 767px) { .kyc-form .btn-primary { align-self: stretch; } }

/* ---------- S-A-14 صف بررسی KYC ---------- */
.kyc-queue { display: flex; flex-direction: column; gap: 16px; }
.kyc-queue-grid { display: grid; grid-gap: 18px; gap: 18px; align-items: start; }
@media (min-width: 1200px) { .kyc-queue-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); } }
.kyc-review { display: flex; flex-direction: column; gap: 10px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--surface); }
.kyc-review h3 { margin: 0; font-size: 17px; }
.kyc-review h4 { margin: 10px 0 2px; font-size: 14.5px; }
.kyc-review .kv .btn-text { min-height: 0; padding: 0 8px; }
.kyc-checks li[data-result="pass"] { color: var(--success); }
.kyc-checks li[data-result="fail"] { color: var(--danger); }
.kyc-checks li[data-result="manual"] { color: var(--warning); }
.kyc-docs { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); grid-gap: 12px; gap: 12px; }
.kyc-docs figure { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.kyc-docs figure > .btn { min-height: 140px; border-style: dashed; }
.kyc-docs img { width: 100%; border-radius: 14px; border: 1px solid var(--border); }
.kyc-docs figcaption { font-size: 12px; }
.kyc-decision { display: flex; flex-direction: column; gap: 10px; padding-top: 12px; border-top: 1px dashed var(--border); }

/* ---------- S-C-21 اعلان‌ها ---------- */
.notifications-page { display: flex; flex-direction: column; gap: 20px; }
.notification-list { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; }
.notification-list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-gap: 14px; gap: 14px; align-items: start; padding: 16px 18px; border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--surface); }
.notification-list li.is-unread { border-color: color-mix(in srgb, var(--brand-gold) 55%, var(--border)); box-shadow: inset -4px 0 0 var(--brand-gold); }
.notification-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--surface-alt); color: var(--accent-ink); }
.notification-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.notification-body p { margin: 0; color: var(--fg-muted); font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
.notification-actions { display: flex; flex-direction: column; align-items: flex-end; }
@media (max-width: 767px) { .notification-list li { grid-template-columns: auto minmax(0, 1fr); } .notification-actions { grid-column: 2; flex-direction: row; align-items: center; } }

/* ---------- حالت‌های سراسری خرید (M3-009) ---------- */
.price-updating { display: inline-flex; align-items: center; gap: 6px; color: color-mix(in srgb, var(--warning) 78%, var(--fg)); font-size: 14px; font-weight: 700; }
.price-updating::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--warning); animation: price-pulse 1.4s ease-in-out infinite; }
@keyframes price-pulse { 50% { opacity: .3; } }
@media (prefers-reduced-motion: reduce) { .price-updating::before { animation: none; } }
.sales-banner { justify-content: center; }

/* ---------- S-A-15 گزارش KPI ---------- */
.kpi-section-title { margin: 0 0 10px; font-size: 16px; }
.funnel-row { display: grid; grid-template-columns: 130px minmax(0, 1fr) 70px; grid-gap: 12px; gap: 12px; align-items: center; padding-block: 6px; font-size: 14px; }
.funnel-row b { text-align: end; }
.funnel-bar { height: 10px; border-radius: var(--radius-pill); background: var(--surface-alt); overflow: hidden; }
.funnel-bar i { display: block; height: 100%; border-radius: inherit; background: var(--brand-gold); }
.metric-card small { font-size: 12px; }

/* تصویر تزئینی تمام‌قاب (جایگزین `next/image fill`، M6-006) */
.fill-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

/* ---------- جدول‌های پنل: نوار فیلتر و جدول در یک کارت (مرجع a06-orders.html) ---------- */
.admin-page .data-table-toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin: 0; padding: 16px 18px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-card); }
.admin-page .data-table-toolbar .field { margin: 0; min-width: 180px; }
.admin-page .data-table-toolbar:has(+ .data-table, + .table-wrap, + .empty-state, + .monitor-skeleton) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-bottom-color: color-mix(in srgb, var(--border) 60%, transparent); }
.admin-page .data-table-toolbar + .data-table,
.admin-page .data-table-toolbar + .table-wrap,
.admin-page .data-table-toolbar + .empty-state,
.admin-page .data-table-toolbar + .monitor-skeleton { margin-top: -20px; }
.admin-page .data-table-toolbar + .data-table > .table-wrap,
.admin-page .data-table-toolbar + .data-table > .empty-state,
.admin-page .data-table-toolbar + .table-wrap,
.admin-page .data-table-toolbar + .empty-state,
.admin-page .data-table-toolbar + .monitor-skeleton { border-top: 0; border-top-left-radius: 0; border-top-right-radius: 0; }
.admin-page .data-table-toolbar + .data-table > .table-wrap:has(+ .data-table-pager) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.admin-page .data-table > .data-table-pager { margin-top: 0; padding: 12px 18px; background: var(--surface); border: 1px solid var(--border); border-top: 0; border-radius: 0 0 var(--radius-card) var(--radius-card); }
.admin-page .table-wrap { box-shadow: none; }
.theme-toggle { border: 0; background: none; cursor: pointer; font: inherit; padding: 0; }

/* ---------- کنتراست WCAG AA (یافته‌های axe-core، A-073) ---------- */
.admin-nav a.admin-nav-active span, .admin-nav a.admin-nav-active .ico { color: inherit !important; }
.admin-nav .admin-nav-section { color: color-mix(in srgb, var(--brand-offwhite) 72%, var(--brand-black)) !important; opacity: 1; }
.admin-nav-brand small, .admin-operator small { color: color-mix(in srgb, var(--brand-offwhite) 78%, var(--brand-black)) !important; opacity: 1 !important; }
.status-tone-warning, .status.status-tone-warning { color: color-mix(in srgb, var(--warning) 78%, var(--fg)); }
.product-card .price-updating, .m-action .price-updating { color: color-mix(in srgb, var(--warning) 78%, var(--fg)) !important; }
.alert-warning { color: color-mix(in srgb, var(--warning) 78%, var(--fg)); }
.metric-card > a { color: var(--accent-ink); }

/* ---------- کارت‌ها و کیف پول لندتک فن‌زی‌پی (D-FZP-03) ---------- */
.pay-fanzipay { display: flex; flex-direction: column; gap: 16px; }
.fz-cards { display: flex; flex-direction: column; gap: 14px; padding-top: 14px; border-top: 1px dashed var(--border); }
.fz-total { margin: 0; font-size: 14px; color: var(--fg-muted); }
.fz-total strong { color: var(--fg); }
.fz-card-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); grid-gap: 12px; gap: 12px; margin: 0; padding: 0; list-style: none; }
.fz-card { display: flex; flex-direction: column; gap: 10px; padding: 10px; border: 1px solid var(--border); border-radius: 22px; background: var(--surface); color: var(--fg); }
.fz-card-face { display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 1.586; padding: 14px 16px; border-radius: 16px; color: var(--brand-offwhite); background: linear-gradient(135deg, var(--fz-c1, var(--brand-black)), var(--fz-c2, var(--brand-gold))); }
.fz-card-type { font-weight: 800; font-size: 15px; text-shadow: 0 1px 2px rgb(0 0 0 / .35); }
.fz-card-pan { align-self: flex-end; font-size: 17px; letter-spacing: 2px; text-shadow: 0 1px 2px rgb(0 0 0 / .35); }
.fz-card-meta { display: flex; flex-direction: column; gap: 4px; padding: 0 4px 4px; font-size: 13.5px; }
.fz-card-meta strong { font-size: 17px; }
.fz-card-meta .status { align-self: flex-start; }
.fz-cards-skeleton { height: 180px; border-radius: 20px; background: linear-gradient(90deg, var(--surface-alt), var(--surface), var(--surface-alt)); background-size: 200% 100%; animation: fz-shimmer 1.4s linear infinite; }
@keyframes fz-shimmer { to { background-position: -200% 0; } }
@media (prefers-reduced-motion: reduce) { .fz-cards-skeleton { animation: none; } }
@media (max-width: 767px) {
  .fz-card-list { grid-template-columns: 1fr; gap: 10px; }
  .fz-card { flex-direction: row; align-items: center; gap: 14px; }
  .fz-card-face { flex: none; width: 118px; padding: 10px; border-radius: 12px; }
  .fz-card-type { font-size: 12.5px; }
  .fz-card-pan { font-size: 12px; letter-spacing: 1px; }
  .fz-card-meta { padding: 0; }
}
.cart-layout > *, .pay-fanzipay, .fz-cards, .fz-card-list { min-width: 0; max-width: 100%; }

/* =========================================================================
   پاسخ‌گویی موبایل (بازبینی UI/UX روی ۳۶۰ تا ۷۶۸ پیکسل، A-077)
   ========================================================================= */

/* ستون‌های Grid/Flex نباید با محتوای پهن (جدول، کارت افقی) صفحه را پهن کنند. */
.editor-grid > *, .dashboard-grid > *, .kyc-queue-grid > *, .cart-layout > *, .account-main, .admin-content { min-width: 0; }
.table-wrap { max-width: 100%; }

/* متن‌های طولانی بدون فاصله (Hash، شماره، Slug) قاب را نمی‌شکنند. */
.invoice-page .note.num, .hash, .cell-link small, .kv > span:last-child { overflow-wrap: anywhere; }

/* ورودی فایل: دکمه همسو با Design System به‌جای دکمه پیش‌فرض مرورگر. */
input[type="file"] { width: 100%; max-width: 100%; font: inherit; font-size: 13.5px; color: var(--fg-muted); }
input[type="file"]::-webkit-file-upload-button { -webkit-margin-end: 12px; margin-inline-end: 12px; min-height: 40px; padding-inline: 16px; border: 1.5px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); color: var(--fg); font: inherit; font-weight: 700; cursor: pointer; }
input[type="file"]::file-selector-button { -webkit-margin-end: 12px; margin-inline-end: 12px; min-height: 40px; padding-inline: 16px; border: 1.5px solid var(--border); border-radius: var(--radius-pill); background: var(--surface); color: var(--fg); font: inherit; font-weight: 700; cursor: pointer; }
input[type="file"]::-webkit-file-upload-button:hover { border-color: var(--fg); }
input[type="file"]::file-selector-button:hover { border-color: var(--fg); }

/* نوار سراسری توقف فروش: یک بلوک خوانا، نه ستون‌های باریک. */
.sales-banner { display: block; text-align: center; line-height: 1.8; }
.sales-banner::before { display: none !important; }

/* هدر متمرکز Checkout: «بازگشت به سبد» و «پرداخت امن» هرگز دوخطی نمی‌شوند. */
.store-nav-secure, .store-nav-bar .btn-text { white-space: nowrap; }

/* هدف لمسی حداقل ۴۰ تا ۴۴ پیکسل روی صفحه لمسی (WCAG 2.5.8). */
@media (pointer: coarse), (max-width: 767px) {
  .chip { min-height: 40px; }
  .store-nav .brand { min-height: 44px; display: inline-flex; align-items: center; }
  .btn-text { min-height: 40px; }
  .section-heading a, .metric-card > a { display: inline-flex; align-items: center; min-height: 40px; }
  .stack-table th button, .ops-table th button { min-height: 40px; }
  .admin-global-search input { align-self: stretch; height: auto !important; }
  .row-actions .btn-text, .chip-removable { min-height: 40px; }
}

@media (max-width: 767px) {
  /* متن کوچک: حداقل ۱۲ پیکسل. */
  .mobile-store-nav a { font-size: 12px !important; }
  .store-footer-seals span { font-size: 12px; }
  .admin-topbar-title .eyebrow { font-size: 12px; }
  .cart-count { font-size: 11.5px; }

  /* گزینه‌های پرداخت: آیکون و متن یک ردیف، دکمه تمام‌عرض زیر آن. */
  .pay-option { align-items: flex-start; }
  .pay-option .opt-main { flex-grow: 1; flex-shrink: 1; flex-basis: calc(100% - 64px); min-width: 0; }
  .pay-option > .btn { flex: 1 1 100%; }

  /* تفکیک قیمت: عنوان و مبلغ در یک خط، مبنا زیر آن. */
  .price-breakdown:not(.stack-table) tbody tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-column-gap: 12px; column-gap: 12px; padding-block: 8px; border-bottom: 1px solid var(--border); }
  .price-breakdown:not(.stack-table) tbody th, .price-breakdown:not(.stack-table) tbody td { padding: 0 !important; border: 0 !important; }
  .price-breakdown:not(.stack-table) tbody th { white-space: nowrap; }
  .price-breakdown:not(.stack-table) tbody .basis { grid-column: 1 / -1; grid-row: 2; font-size: 12px; color: var(--fg-muted); text-align: start; }
  .price-breakdown:not(.stack-table) tbody .money { grid-row: 1; grid-column: 2; }

  /* جدول‌های داده: هر ردیف یک کارت با برچسب ستون. */
  .stack-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .stack-table, .stack-table tbody, .stack-table tr, .stack-table td { display: block; width: 100%; }
  .stack-table tbody tr { padding: 12px 14px; border-bottom: 1px solid var(--border); }
  .stack-table tbody tr:last-child { border-bottom: 0; }
  .stack-table tbody td { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 5px 0 !important; border: 0 !important; text-align: start !important; min-height: 32px; }
  .stack-table tbody td[data-label]::before { content: attr(data-label); flex: none; color: var(--fg-muted); font-size: 12.5px; font-weight: 600; }
  .stack-table tbody td:not([data-label]) { justify-content: flex-end; }
  .stack-table tbody td > * { text-align: end; }
  .stack-table tfoot, .stack-table tfoot tr { display: flex; width: 100%; justify-content: space-between; align-items: center; padding: 12px 14px; gap: 12px; }
  .stack-table tfoot th, .stack-table tfoot td { display: block; padding: 0 !important; border: 0 !important; width: auto; }
  .table-wrap:has(.stack-table) { overflow-x: visible; }

  /* کاشی‌های دسته صفحه اصلی: برچسب کوچک‌تر تا تصویر دیده شود. */
  .category-tag { inset-inline: 8px; bottom: 8px; padding: 8px 12px 8px 8px; border-radius: 14px; }
  .category-tag strong { font-size: 14px; }
  .category-tag > span > span { display: none !important; }
  .category-go { width: 32px !important; height: 32px !important; }

  /* هشدار با چند بند: بندها زیر هم و تمام‌عرض. */
  .alert:has(> p + p) { flex-wrap: wrap; }
  .alert > p { flex: 1 1 100%; }
  .alert > .ico + p, .alert > svg + p { flex: 1 1; }

  /* سقف‌های خرید پروفایل: عدد بزرگ کمتر فضا بگیرد. */
  .account-page .metric-value, .account-main .metric-card .metric-value { font-size: 22px; }

  /* پنل: سرصفحه و دکمه‌های عملیات زیر هم. */
  .admin-head { align-items: stretch; }
  .admin-head .button-row { width: 100%; }
  .admin-head .button-row .btn { flex: 1 1; }
}

@media (max-width: 380px) {
  .store-nav-secure { font-size: 12px; }
  .fz-card-face { width: 96px; }
  .metric-grid { grid-template-columns: 1fr; }
}
.role-chip { display: inline-flex; align-items: center; gap: 4px; padding-inline: 12px 4px; font-size: 12.5px; }
.role-chip-remove { display: inline-grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 50%; background: color-mix(in srgb, var(--on-primary) 16%, transparent); color: inherit; font-size: 16px; cursor: pointer; }
.role-chip-remove:hover { background: color-mix(in srgb, var(--on-primary) 28%, transparent); }

/* اصلاحات دور دوم بازبینی (A-077) */
@media (max-width: 767px) {
  .stack-table, .ops-table.stack-table { min-width: 0 !important; }
}
@media (max-width: 380px) {
  .store-nav-secure { display: none; }
}
/* نوار پایین تا ۱۰۲۳px دیده می‌شود؛ متن و هدف لمسی آن تبلت را هم پوشش می‌دهد. */
@media (max-width: 1023px) {
  .mobile-store-nav a { font-size: 12px !important; }
  .store-footer-seals span { font-size: 12px; }
  .admin-topbar-title .eyebrow { font-size: 12px; }
  .cart-count { font-size: 11.5px; }
  .chip, .btn-text { min-height: 40px; }
  .store-nav .brand { min-height: 44px; display: inline-flex; align-items: center; }
  .section-heading a, .metric-card > a, .bento-label { display: inline-flex; align-items: center; min-height: 40px; }
  .stack-table th button, .ops-table th button { min-height: 40px; min-width: 40px; }
  .admin-global-search input { align-self: stretch; height: auto !important; }
  .cell-link { min-height: 40px; justify-content: center; }
}
@media (max-width: 767px) {
  .stack-table tbody td { overflow-wrap: anywhere; }
  .stack-table tbody td > * { min-width: 0; overflow-wrap: anywhere; }
}
@media (max-width: 1023px) {
  .store-nav a.brand { min-height: 44px !important; }
  .cart-line .btn-text { min-height: 44px !important; }
  .cart-line-info h2 a { display: inline-block; padding-block: 9px; }
  .cart-count { font-size: 12px; }
}
@media (max-width: 1023px) { a.brand { min-height: 44px; display: inline-flex; align-items: center; } }
@media (max-width: 767px) {
  .stack-table tbody td { flex-wrap: wrap; row-gap: 2px; }
  .stack-table tbody td[data-label]::before { -webkit-margin-end: auto; margin-inline-end: auto; }
}

/* =========================================================================
   هویت بصری رسمی — Onezi Visual Identity v1.0 (D-UI-03)
   افقی برای هدر وب‌سایت؛ نشانه حداقل ۴۰px عرض (دیجیتال)؛ فاصله ایمن = ارتفاع برگ.
   بدنه لوگو روی زمینه روشن Onezi Black و روی زمینه تیره سفید؛ برگ همیشه Onezi Gold.
   ========================================================================= */
:root { --logo-ink: var(--brand-black); }
[data-theme="dark"], .store-footer, .admin-nav { --logo-ink: #ffffff; }
.logo { display: block; flex: none; width: auto; overflow: visible; }
.logo .logo-ink { fill: var(--logo-ink); }
.logo .logo-leaf { fill: var(--brand-gold); }
.store-nav .brand { padding-block: 2px; }
.store-nav .brand .logo-horizontal { height: 40px; }
.store-footer .brand .logo-horizontal { height: 48px; }
.store-footer .brand { margin-block: 4px 12px; }
.admin-nav-brand { flex-direction: column; align-items: flex-start !important; gap: 6px !important; letter-spacing: 0 !important; }
.admin-nav-brand .logo-horizontal { height: 40px; }
.admin-nav-brand small { margin: 0 !important; letter-spacing: 3px; }
/* `.store-footer > div` در globals گرید چهارستونه است؛ نشانه واترمارک وسط و با برش در خط پایین فوتر. */
.store-footer > .store-footer-wordmark { display: flex; justify-content: center; align-items: flex-start; gap: 0; height: clamp(96px, 17vw, 220px); margin: 0; padding-top: 12px; overflow: hidden; }
.store-footer-wordmark .logo-symbol { width: clamp(150px, 26vw, 330px); height: auto; }
.store-footer-wordmark .logo .logo-ink, .store-footer-wordmark .logo .logo-leaf { fill: color-mix(in srgb, var(--brand-gold) 8%, transparent); }
.invoice-head .invoice-logo { height: 44px; }
@media print { .invoice-head .invoice-logo .logo-ink { fill: var(--brand-black); } }

