/* Chavill backend-owned CSS chunk: c7f2a9e4b1d83650.css; version: 1.0.0-105db2c98093 */
/* Chavill experience system: storefront, account and admin workspace. */

/* ---------------------------------------------------------------------------
   Breakpoints

   There is ONE layout switch, and every component uses it:

     up to 1024px ....... mobile layout (phones AND tablets, both orientations)
     from 1025px ........ desktop layout

   Tablets deliberately get the mobile layout: an iPad in portrait is 768-834
   CSS px and in landscape 1024, all of which sit below the switch.

   Below that, and only inside the mobile layout, three refinement steps tighten
   things for smaller phones. They never change the layout, only its spacing and
   scale, so they can be skipped without anything collapsing:

     560px .............. small tablets / large phones in landscape
     480px .............. standard phones
     380px / 360px ...... narrow phones (iPhone SE and similar)

   Do not introduce another value. The reason the tablet range used to fall
   apart is that the nav switched at 1050, the catalog sidebar at 850, the
   campaign hero at 900, the cart at 960, the checkout at 700 and the product
   card at 600, so anything between roughly 600 and 1050 was showing a mixture
   of two layouts at once.
   --------------------------------------------------------------------------- */
:root {
  /* Airier ink and lines. --cv-brand / --cv-brand-2 are already at the lightest
     value that still clears WCAG AA in their dual role (green text on white AND
     white text on a green button), so they hold; everything else lightens. */
  --cv-ink: #1d3129;
  --cv-muted: #64736c;
  --cv-line: #e8f1ed;
  --cv-soft: #f4fcf9;
  --cv-brand: #0a8062;
  --cv-brand-2: #12a87e;
  /* Referenced by the hero CTA and file-picker button; was undefined and fell
     back to inherited ink. Deeper than --cv-brand for text on light surfaces. */
  --cv-brand-strong: #076b52;
  --cv-dark: #1f6a56;
  --cv-surface: rgba(255, 255, 255, .96);
  --cv-shadow: 0 14px 40px rgba(31, 106, 86, .07);
  --cv-shadow-hover: 0 20px 52px rgba(31, 106, 86, .11);

  /* ---- panel surfaces -------------------------------------------------
     Three flat planes instead of gradients: the ground the panel sits on,
     the navigation rail, and the cards. They are derived from the brand
     token, so the ocean and plum themes below get them for free. */
  --cv-panel-ground: color-mix(in srgb, var(--cv-brand) 3%, #fbfdfc);
  --cv-panel-nav: #ffffff;
  --cv-panel-card: #ffffff;
  --cv-panel-line: color-mix(in srgb, var(--cv-brand) 11%, #e6efeb);
  --cv-panel-line-soft: color-mix(in srgb, var(--cv-brand) 6%, #eef4f1);
  --cv-panel-hover: color-mix(in srgb, var(--cv-brand) 6%, #fff);

  /* ---- status vocabulary ----------------------------------------------
     One meaning per colour, used identically for order state, stock level
     and active/inactive across both panels. Each pairs a tinted ground with
     ink that clears AA on it. */
  --cv-ok-bg: #e7f6ef;      --cv-ok-ink: #0a6b4e;
  --cv-wait-bg: #fff4e2;    --cv-wait-ink: #8a5300;
  --cv-stop-bg: #fdeceb;    --cv-stop-ink: #a3231c;
  --cv-idle-bg: #eef2f0;    --cv-idle-ink: #5a6b64;
  --cv-info-bg: #e8f1fb;    --cv-info-ink: #1f5a94;

  /* ---- shop surfaces --------------------------------------------------
     A product card sits on a near-white page, so its edge needs more contrast
     than the hairline used between rows inside a panel. Separate token, because
     making --cv-line this dark would coarsen every table and form on the site.
     --cv-catalog-bg tints the region the grid sits in, so the eye can tell the
     catalogue from the promotional matter around it. */
  --cv-card-line: #d7e3de;
  --cv-catalog-bg: #f4f8f6;
  /* Badges that say "this is a real product": discount, new, best seller. */
  --cv-badge-sale-bg: #d92b1f;   --cv-badge-sale-ink: #fff;
  --cv-badge-new-bg: #e8f1fb;    --cv-badge-new-ink: #1f5a94;
  --cv-badge-hot-bg: #fff1dd;    --cv-badge-hot-ink: #8a5300;

  /* ---- panel rhythm ---------------------------------------------------
     One spacing and radius scale for every card, tile and control in both
     panels, so sections stop each inventing their own. */
  --cv-panel-pad: clamp(15px, 1.7vw, 20px);
  --cv-panel-gap: 12px;
  --cv-panel-radius: 14px;
  --cv-panel-radius-sm: 10px;
  --cv-control-h: 40px;
}

html[data-theme="ocean"] { --cv-brand: #1a6f8c; --cv-brand-2: #3aa3c0; --cv-dark: #2b5f76; --cv-soft: #f5fbfd; --cv-line: #e3f0f5; }
html[data-theme="plum"] { --cv-brand: #75547f; --cv-brand-2: #a37fb2; --cv-dark: #5b4266; --cv-soft: #fdf9fd; --cv-line: #f0e7f2; }
html[data-theme="forest"] { --cv-brand: #0a8062; --cv-brand-2: #12a87e; --cv-dark: #1f6a56; }

html { scroll-padding-top: 90px; overflow-x: hidden; }

body {
  color: var(--cv-ink);
  background:
    radial-gradient(circle at 8% 0%, rgba(66, 211, 167, .05), transparent 22rem),
    linear-gradient(180deg, #fdfefe, #f8fcfa);
}

.container { max-width: 1320px; }

.nav {
  border-bottom-color: rgba(213, 229, 222, .8);
  background: rgba(252, 254, 253, .88);
  box-shadow: 0 8px 34px rgba(12, 74, 59, .045);
}

.brand { letter-spacing: -.8px; }

.nav .links a,
.account-actions a { transition: color .2s ease, transform .2s ease; }

.nav .links a:hover,
.account-actions a:hover { color: var(--cv-brand); transform: translateY(-1px); }

.card {
  border-color: var(--cv-line);
  background: var(--cv-surface);
  box-shadow: var(--cv-shadow);
}

.btn {
  min-height: 44px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--cv-brand), var(--cv-brand-2));
  box-shadow: 0 10px 24px rgba(10, 131, 101, .14);
  font-weight: 750;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.btn { color: #fff; }
.btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 15px 30px rgba(10, 131, 101, .2); filter: saturate(1.06); }
.btn.ghost { border-color: var(--cv-line); background: #fff; color: var(--cv-ink); box-shadow: none; }
.btn.ghost:hover { color: var(--cv-brand); }
.btn.secondary { color: var(--cv-brand); box-shadow: none; }
.btn.secondary:hover { color: var(--cv-brand); }
.account-actions .btn:not(.ghost):hover,
.panel-head-actions .btn:not(.ghost):hover { color: #fff; }

.input,
select,
textarea,
.nav input {
  min-height: 46px;
  border-color: var(--cv-line);
  border-radius: 14px;
  background: #fbfdfc;
}

.input:focus,
select:focus,
textarea:focus,
.nav input:focus {
  border-color: #6fd0b3;
  box-shadow: 0 0 0 4px rgba(30, 177, 132, .1) !important;
}

.section > h1:not(.panel-page-head h1) {
  position: relative;
  margin-bottom: 28px;
  font-size: clamp(1.75rem, 3vw, 2.65rem);
}

.section > h1:not(.panel-page-head h1)::after {
  content: '';
  display: block;
  width: 54px;
  height: 4px;
  margin-top: 10px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--cv-brand), #63d9b6);
}

/* Storefront polish */
.home-strip-section {
  position: relative;
  margin-block: clamp(35px, 6vw, 78px);
}

.home-strip-section > h2,
.home-strip-section .section-title h2 {
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  letter-spacing: -.5px;
}

.product.card {
  border-radius: 23px;
  background: linear-gradient(180deg, #fff, #fbfdfc);
  box-shadow: 0 12px 38px rgba(12, 74, 59, .07);
}

.product.card:hover {
  transform: translateY(-6px);
  border-color: #c9e6db;
  box-shadow: var(--cv-shadow-hover);
}

.product-media {
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(145deg, #f6fbf9, #fff);
}

.product-image-link img { transition: transform .45s cubic-bezier(.2,.8,.2,1); }
.product.card:hover .product-image-link img { transform: scale(1.045); }

#newsletter {
  position: relative;
  overflow: hidden;
  padding: clamp(25px, 5vw, 48px);
  border: 0;
  background: radial-gradient(circle at 12% 10%, rgba(62, 211, 167, .22), transparent 28%), linear-gradient(135deg, #1f6a56, #149170);
  color: #fff;
}

#newsletter .muted { color: #eefbf7; }

/* Shared panel workspace */
.account-shell-page { padding-top: 32px; padding-bottom: 80px; }

.panel-page-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 22px;
  padding: 25px 28px;
  border: 1px solid var(--cv-line);
  border-radius: 26px;
  background: radial-gradient(circle at 10% 20%, rgba(83, 211, 170, .11), transparent 24%), #fff;
  box-shadow: var(--cv-shadow);
}

.panel-page-head h1 {
  max-width: 780px;
  margin: 8px 0 7px;
  font-size: clamp(1.65rem, 3.4vw, 3rem);
  letter-spacing: -.8px;
}

.panel-page-head p { margin: 0; line-height: 1.9; }
.panel-eyebrow { color: var(--cv-brand); font-size: .78rem; font-weight: 900; letter-spacing: .3px; }
.panel-head-actions { display: flex; gap: 9px; flex-wrap: wrap; }

.premium-panel.panel {
  display: grid;
  grid-template-columns: minmax(225px, 270px) minmax(0, 1fr);
  align-items: start;
  gap: 18px;
}

.premium-panel .side {
  position: sticky;
  top: 92px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-height:calc(100vh - 110px); max-height:calc(100dvh - 110px);
  overflow: auto;
  padding: 14px;
  border-radius: 23px;
  scrollbar-width: thin;
  scrollbar-color: #bddace transparent;
}

.side-identity {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 10px;
  padding: 10px;
  border-radius: 17px;
  background: linear-gradient(135deg, #eef9f5, #f8fcfa);
}

.side-avatar {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--cv-brand), #2ec99b);
  color: #fff;
  font-size: 1.15rem;
  font-weight: 900;
  box-shadow: 0 10px 22px rgba(10, 131, 101, .2);
}

.side-identity b,
.side-identity small { display: block; }
.side-identity small { margin-top: 3px; color: var(--cv-muted); font-size: .68rem; }

.side-label {
  margin: 13px 10px 4px;
  color: #8a9892;
  font-size: .68rem;
  font-weight: 850;
}

.premium-panel .side a,
.premium-panel .side button {
  position: relative;
  min-height: 43px;
  display: flex;
  align-items: center;
  padding: 10px 13px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: #41514b;
  box-shadow: none;
  font: inherit;
  font-size: .88rem;
  text-align: right;
  cursor: pointer;
}

.premium-panel .side a::before {
  content: '';
  width: 7px;
  height: 7px;
  margin-left: 10px;
  border-radius: 50%;
  background: #bfd0c9;
  transition: .2s ease;
}

.premium-panel .side a:hover,
.premium-panel .side a.active {
  background: #eaf7f2;
  color: #0a8062;
  transform: none;
}

.premium-panel .side a.active { font-weight: 850; }
.premium-panel .side a.active::before { background: #12a87e; box-shadow: 0 0 0 5px rgba(10, 156, 117, .12); }
.premium-panel .side .logout-button { margin-top: 10px; background: #fff1f2; color: #b52a47; }

.premium-panel #panel,
.premium-panel #admin { min-width: 0; gap: 16px; }

.panel-section,
#admin > .card,
#admin > .grid > .card {
  border-radius: 23px;
}

.panel-section[hidden] { display: none !important; }

.panel-section > h2,
#admin .section-title h2 {
  margin-top: 0;
  font-size: 1.25rem;
}

.panel-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.panel-summary-card {
  position: relative;
  overflow: hidden;
  min-height: 118px;
  padding: 18px;
  border: 1px solid var(--cv-line);
  border-radius: 19px;
  background: linear-gradient(145deg, #fff, #f9fdfb);
}

.panel-summary-card small { display: block; color: var(--cv-muted); }
.panel-summary-card b { display: block; margin-top: 12px; font-size: 1.35rem; }
.panel-summary-card.primary { border: 0; background: linear-gradient(135deg, #1f6a56, #0a8062); color: #fff; }
.panel-summary-card.primary small { color: #cfebe2; }

.panel-quick-actions {
  display: flex;
  align-items: center;
  gap: 9px;
  flex-wrap: wrap;
  margin-top: 16px;
}

.panel-section-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.pretty-order {
  border: 1px solid var(--cv-line);
  border-radius: 18px;
  background: #fbfdfc;
}

.notification-card { border-radius: 17px; }
.notification-card.is-unread { border-right: 4px solid #12a87e; background: #f0faf6; }

/* Admin command center and resources */
#admin > .admin-dashboard-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(245px, .65fr);
  align-items: center;
  gap: 24px;
  min-height: 190px;
  padding: 28px;
  border: 0;
  border-radius: 25px;
  background: radial-gradient(circle at 12% 20%, rgba(72, 224, 178, .18), transparent 28%), linear-gradient(135deg, #1c6151, #0a8062);
}
.admin-dashboard-hero, .admin-dashboard-hero h2, .admin-dashboard-hero p, .admin-dashboard-hero .hero-kicker { color: #fff; }
.admin-dashboard-hero .hero-kicker { padding: 7px 10px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.11); }
.admin-dashboard-hero p { color: rgba(255,255,255,.78); }
.admin-dashboard-hero .btn { border-color: rgba(255,255,255,.28); }
.admin-dashboard-hero .btn.secondary { background: #fff; color: var(--cv-dark); }
.admin-dashboard-hero .btn.ghost { background: rgba(255,255,255,.1); color: #fff; }
.admin-dashboard-hero .btn:hover { color: inherit; }
.admin-dashboard-copy h2 { margin: 10px 0 4px; font-size: clamp(1.55rem, 2.8vw, 2.35rem); }
.admin-revenue-card { display: grid; gap: 8px; padding: 20px; border: 1px solid rgba(255,255,255,.2); border-radius: 20px; background: rgba(255,255,255,.1); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.admin-revenue-card small, .admin-revenue-card span { color: rgba(255,255,255,.72); }
.admin-revenue-card b { font-size: clamp(1.35rem, 2.5vw, 2rem); }

.admin-stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.admin-stat-grid .stat-card { position: relative; min-height: 126px; padding: 19px; overflow: hidden; border-radius: 19px; }
.admin-stat-grid .stat-card::after { content: ''; position: absolute; inset: auto auto -30px -24px; width: 90px; height: 90px; border-radius: 50%; background: var(--cv-soft); }
.admin-stat-grid .stat-card > * { position: relative; z-index: 1; }
.admin-stat-grid .stat-card span, .admin-stat-grid .stat-card small { display: block; color: var(--cv-muted); }
.admin-stat-grid .stat-card b { display: block; margin: 8px 0; color: var(--cv-ink); font-size: 1.7rem; }
.admin-stat-grid .stat-card.has-warning { border-color: #eed5a4; background: #fffaf1; }
.admin-dashboard-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.admin-focus-card, .admin-inventory-card { padding: 20px; }
.admin-health-dot { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border-radius: 999px; background: #e8f8f0; color: #0a8062; font-size: .75rem; font-weight: 900; }
.admin-health-dot::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.admin-health-dot.needs-attention { background: #fff1d9; color: #8b5a00; }
.admin-empty-state { margin: 0; padding: 18px; border-radius: 14px; background: var(--cv-soft); color: var(--cv-muted); text-align: center; }

.admin-alert-list { display: grid; gap: 9px; }
.admin-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--cv-line);
  border-radius: 14px;
  background: #fafcfb;
}
.admin-alert.attention { border-color: #f6ddb2; background: #fffaf1; }
.admin-alert b { color: var(--cv-brand); }

#admin > .card:first-child .section-title { margin-bottom: 15px; }
#admin form[data-admin-search] { padding-top: 13px; border-top: 1px solid var(--cv-line); }

.table-wrap { overflow: auto; border-radius: 22px; }
.table { border-collapse: separate; border-spacing: 0 7px; }
.table th { color: #718079; font-size: .78rem; white-space: nowrap; }
.table td { background: #f8fbf9; border-block: 1px solid #f2f8f5; }
.table tbody tr:hover td { background: #f0f8f5; }
.table td:first-child { border-radius: 0 13px 13px 0; }
.table td:last-child { border-radius: 13px 0 0 13px; }
.table td .row { flex-wrap: nowrap; gap: 6px; }
.table td .btn { min-height: 37px; padding: 8px 11px; font-size: .76rem; }

#adminEditor > .card {
  border-color: #cfe5dc;
  background: linear-gradient(180deg, #fff, #f7fbf9);
}
.admin-editor-field label { margin-bottom: 7px; color: #354841; font-size: .84rem; font-weight: 800; }

.admin-ticket-list-item { border-radius: 18px; }

@media (max-width: 1024px) {
  .panel-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .premium-panel.panel { grid-template-columns: 220px minmax(0, 1fr); }
  .admin-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .panel-page-head { align-items: flex-start; flex-direction: column; padding: 20px; }
  .premium-panel.panel { display: block; }
  .admin-dashboard-hero, .admin-dashboard-columns { grid-template-columns: 1fr; }
  .premium-panel .side {
    position: sticky;
    top: 72px;
    z-index: 12;
    max-height: none;
    flex-direction: row;
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    margin-bottom: 14px;
    padding: 9px;
    border-radius: 18px;
    white-space: nowrap;
  }
  .side-identity,
  .side-label,
  .premium-panel .side .logout-button { display: none; }
  .premium-panel .side a,
  .premium-panel .side button { width: auto; flex: 0 0 auto; min-height: 39px; }
  .premium-panel .side a::before { display: none; }
  .premium-panel #panel,
  .premium-panel #admin { width: 100%; }
  .row[data-admin-search] { align-items: stretch; }
  .row[data-admin-search] > * { flex: 1 1 180px; }
}

@media (max-width: 560px) {
  .account-shell-page { padding-top: 15px; }
  .panel-page-head { border-radius: 20px; }
  .panel-shop-action,
  .panel-head-actions,
  .panel-head-actions .btn { width: 100%; }
  .panel-summary-grid { grid-template-columns: 1fr 1fr; }
  .panel-summary-card { min-height: 105px; padding: 14px; }
  .panel-summary-card b { font-size: 1.05rem; }
  .panel-section,
  #admin > .card { padding: 16px; }
  .panel-section-intro { align-items: flex-start; flex-direction: column; }
  .pretty-order { align-items: flex-start; flex-direction: column; }
  .pretty-order .row,
  .pretty-order .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .btn,
  .product.card,
  .product-image-link img { transition: none !important; }
}
/* Focused account and administration UX improvements. */
.security-notice {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: 18px; border: 1px solid color-mix(in srgb,var(--cv-brand) 22%,#fff); border-radius: 22px;
  background: radial-gradient(circle at 0 0,color-mix(in srgb,var(--cv-brand-2) 18%,transparent),transparent 34%),linear-gradient(135deg,var(--cv-soft),#fff); color: var(--cv-ink); box-shadow:0 16px 40px color-mix(in srgb,var(--cv-brand) 9%,transparent);
}
.security-notice p { margin: 5px 0 0; }
.security-notice-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:15px;background:var(--cv-brand);color:#fff;font-size:1.5rem;font-weight:900}.security-notice-actions{display:flex;align-items:center;gap:8px}.security-notice-actions>button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--cv-line);border-radius:12px;background:#fff;color:var(--cv-muted);font-size:1.3rem;cursor:pointer}.security-notice-actions>button:hover{color:var(--cv-ink);border-color:var(--cv-brand)}
.mfa-wizard-overlay {
  position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center;
  padding: 20px; overflow-y: auto; background: rgba(9, 26, 21, .72); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px);
}
.mfa-wizard-card { width: min(680px, 100%); max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); overflow-y: auto; box-shadow: 0 28px 80px rgba(0,0,0,.28); }
.mfa-wizard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.mfa-wizard-head h2{margin:5px 0}.mfa-wizard-head p{max-width:52ch;margin:6px 0 0}.mfa-wizard-actions{display:flex;align-items:center;gap:8px}.mfa-wizard-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--cv-line);border-radius:12px;background:#fff;color:var(--cv-muted);font-size:1.35rem}.security-recommended-badge{padding:6px 10px;border-radius:999px;background:var(--cv-soft);color:var(--cv-brand);font-size:.82rem;font-weight:800}
.security-required-badge { padding: 6px 10px; border-radius: 999px; background: #fff0d0; color: #765000; font-size: .82rem; font-weight: 800; }
.mfa-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 0; margin: 18px 0; list-style: none; }
.mfa-steps li { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 10px; border-radius: 12px; background: #f2f5f3; color: #64716c; font-size: .78rem; }
.mfa-steps li b { display: grid; place-items: center; width: 24px; height: 24px; flex: 0 0 24px; border-radius: 50%; background: #e8f1ed; }
.mfa-steps li.is-active { background: #e4f5ed; color: #0a8062; }
.mfa-steps li.is-active b { background: #0a8062; color: white; }
.search-chip-row > *, .admin-shell-page .table td {
  max-width: 24ch; overflow-x: auto; white-space: nowrap; scrollbar-width: thin;
}
.admin-shell-page .scroll-box { overflow-x: auto; scrollbar-width: thin; }
@media (max-width: 1024px) {
  .security-notice { align-items: stretch; flex-direction: column; }.security-notice-actions{justify-content:space-between}.security-notice-actions .btn{flex:1}
  .mfa-steps span { display: none; }
}

/* User-selectable theme and focused settings UI. */
.brand, .panel-eyebrow, .admin-alert b { color: var(--cv-brand); }
.btn:not(.ghost):not(.danger):not(.secondary):not(.logout-button), .chat-send { background: var(--cv-brand); }
.btn.secondary { background: var(--cv-soft); color: var(--cv-brand); }
.btn.account-primary { background: var(--cv-brand); box-shadow: 0 10px 24px color-mix(in srgb, var(--cv-brand) 25%, transparent); }
.premium-panel .side a:hover, .premium-panel .side a.active { background: var(--cv-soft); color: var(--cv-brand); }
.premium-panel .side a.active::before { background: var(--cv-brand-2); box-shadow: 0 0 0 5px color-mix(in srgb, var(--cv-brand-2) 14%, transparent); }
.panel-summary-card.primary, #admin > .admin-dashboard-hero { background: radial-gradient(circle at 12% 20%, rgba(72,224,178,.18), transparent 28%), linear-gradient(135deg, var(--cv-dark), var(--cv-brand)); }
.notification-card.is-unread { border-right-color: var(--cv-brand-2); background: var(--cv-soft); }
.settings-panel { border-top: 4px solid var(--cv-brand); }
.settings-form h3 { margin: 18px 0 4px; }
.settings-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.settings-grid label, .settings-form > label {
  display: grid;
  /* Three fixed rows: caption, control, then anything hanging beneath it.
     Without this the rows were implicit and stretched to match the tallest
     field in the row, so a field carrying a helper line divided its extra
     height differently from its neighbours and its input sat higher than
     theirs. Pinning the rows puts every control at the same offset and
     lets the helper text hang in the spare row instead. */
  grid-template-rows: auto auto 1fr;
  gap: 7px;
  color: var(--cv-muted);
  font-size: .88rem;
  font-weight: 700;
}
/* The caption and the control keep their natural height; only the trailing
   row absorbs the difference. */
.settings-grid label > .input,
.settings-grid label > select,
.settings-grid label > .account-mobile-control { align-self: start; }
.settings-grid label > small { align-self: start; margin: 0; line-height: 1.6; font-weight: 600; }
.settings-wide { grid-column: 1 / -1; }
.theme-picker { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.theme-choice { position: relative; display: flex; align-items: center; gap: 9px; padding: 12px; border: 1px solid var(--cv-line); border-radius: 15px; cursor: pointer; background: #fff; }
.theme-choice input { position: absolute; opacity: 0; pointer-events: none; }
.theme-choice span { width: 30px; height: 30px; border-radius: 10px; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.theme-choice.forest span { background: #0a8062; } .theme-choice.ocean span { background: #176b87; } .theme-choice.plum span { background: #70507d; }
.theme-choice:has(input:checked) { border-color: var(--cv-brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--cv-brand) 12%, transparent); }
.admin-ticket-list { padding: 8px; border: 1px solid var(--cv-line); border-radius: 20px; background: #f8fbfa; }
.admin-ticket-list-item { border: 1px solid transparent; border-radius: 15px; transition: .18s ease; }
.admin-ticket-list-item:hover { transform: translateX(-2px); background: #fff; }
.admin-ticket-list-item.active { border-color: color-mix(in srgb, var(--cv-brand) 28%, white); background: var(--cv-soft); }
.admin-ticket-detail { border-radius: 22px; overflow: hidden; box-shadow: var(--cv-shadow); }
.support-chat-body { background: linear-gradient(180deg, #f8fbfa, #fff); }
@media (max-width: 1024px) { .settings-grid { grid-template-columns: 1fr; } .theme-picker { grid-template-columns: 1fr; } }

/* Desktop navigation must remain independently scrollable. */
@media (min-width: 1025px) {
  .admin-shell-page .premium-panel .side { height:calc(100vh - 110px); height:calc(100dvh - 110px); max-height: none; overflow-y: scroll !important; overscroll-behavior: contain; scrollbar-gutter: stable; }
  .admin-shell-page .premium-panel .side::-webkit-scrollbar { width: 8px; }
  .admin-shell-page .premium-panel .side::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 99px; background: color-mix(in srgb, var(--cv-brand) 45%, transparent); background-clip: padding-box; }
}

.header-notification-pill { display: inline-flex; align-items: center; gap: 6px; padding: 7px 9px; border: 1px solid color-mix(in srgb, var(--cv-brand) 24%, white); border-radius: 12px; background: var(--cv-soft); color: var(--cv-brand); font-size: .78rem; font-weight: 800; }
.header-notification-pill b { display: grid; place-items: center; min-width: 22px; height: 22px; border-radius: 999px; background: var(--cv-brand); color: #fff; }
.site-message { position: relative; z-index: 25; display: flex; align-items: center; justify-content: center; gap: 16px; padding: 11px 50px; text-align: center; font-weight: 800; }
.site-message.maintenance { background: linear-gradient(90deg, #fff4d8, #fffbef); color: #684900; border-bottom: 1px solid #f1dba7; }
.site-message.announcement { background: linear-gradient(90deg, var(--cv-dark), var(--cv-brand)); color: #fff; }
.site-message-content { display:flex; align-items:center; justify-content:center; width:100%; min-height:42px; padding:8px 48px; color:inherit; text-align:center; line-height:1.8; }
a.site-message-content { text-decoration:none; cursor:pointer; }
a.site-message-content:hover { color:inherit; background:rgba(255,255,255,.08); }
.site-message button { position: absolute; left: 16px; border: 0; background: transparent; color: inherit; font-size: 1.25rem; cursor: pointer; }

/* Storefront refinement. */
.home-hero-premium { position: relative; isolation: isolate; }
.home-hero-premium{margin-top:12px}.home-hero-premium .campaign-hero-slider{border:1px solid color-mix(in srgb,var(--cv-brand) 18%,#fff);border-radius:34px;box-shadow:0 34px 90px color-mix(in srgb,var(--cv-brand) 18%,transparent)}
.home-hero-premium::before { content: ''; position: absolute; inset: -30px 5% auto; height: 230px; z-index: -1; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--cv-brand-2) 18%, transparent), transparent 68%); filter: blur(25px); }
.home-scroll-strip { padding: 8px 4px 24px; scroll-snap-type: x proximity; }
.home-discovery-bar { display: flex; align-items: center; justify-content: center; gap: 20px; margin: 16px 0 26px; padding: 16px 18px; border: 1px solid var(--cv-line); border-radius: 20px; background: rgba(255,255,255,.82); box-shadow: 0 12px 36px rgba(12,74,59,.06); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
#homeCategories>a.card{min-height:132px;padding:22px;border-radius:22px;background:linear-gradient(145deg,#fff,var(--cv-soft));transition:.2s}#homeCategories>a.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--cv-brand) 35%,#fff);box-shadow:0 18px 42px rgba(12,74,59,.1)}
.home-discovery-bar small, .home-discovery-bar b { display: block; }.home-discovery-bar small { color: var(--cv-brand); font-weight: 900; }.home-discovery-links { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }.home-discovery-links a { padding: 9px 12px; border-radius: 999px; background: var(--cv-soft); color: var(--cv-ink); font-size: .8rem; font-weight: 800; transition: .18s ease; }.home-discovery-links a:hover { background: var(--cv-brand); color: #fff; transform: translateY(-1px); }
.home-scroll-strip > * { scroll-snap-align: start; }
.home-strip-section { position: relative; padding-block: 28px; }
.home-strip-section > h2, .home-strip-section .section-title h2 { font-size: clamp(1.35rem, 2.4vw, 2rem); letter-spacing: -.7px; }

/* Section headings: real HTML title text flanked by decorative botanical sprigs.
   The text is deliberately NOT inside the SVG - iOS Safari does not apply Arabic
   shaping or bidi reordering to SVG <text>, which scrambled the Persian glyphs. */
.cv-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.strip-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(9px, 1.5vw, 18px);
  margin: 0 0 18px;
  color: var(--cv-ink);
}
.strip-title-text {
  min-width: 0;
  color: var(--cv-ink);
  font-size: clamp(1.12rem, 2vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.95;
  text-align: center;
}
.strip-title-leaf {
  display: block;
  flex: 0 1 auto;
  width: clamp(56px, 8vw, 104px);
  height: auto;
  color: var(--cv-brand);
  overflow: visible;
}
/* In RTL the first child renders on the right, so it is the one that mirrors. */
.strip-title-leaf--start { transform: scaleX(-1); }

@media (max-width: 560px) {
  .strip-title { gap: 8px; margin-bottom: 12px; }
  .strip-title-leaf { width: clamp(38px, 13vw, 62px); }
}
/* Below this the sprigs crowd longer Persian titles; the title alone reads better. */
@media (max-width: 380px) {
  .strip-title-leaf { display: none; }
}

#newsletter { position: relative; overflow: hidden; margin-block: 38px; padding: clamp(24px, 5vw, 48px); border: 0; border-radius: 30px; background: radial-gradient(circle at 10% 20%, color-mix(in srgb, var(--cv-brand-2) 34%, transparent), transparent 28%), linear-gradient(135deg, var(--cv-dark), var(--cv-brand)); color: #fff; box-shadow: 0 28px 70px color-mix(in srgb, var(--cv-brand) 25%, transparent); }
#newsletter .muted { color: #eefbf7; }
#newsletter form { position: relative; z-index: 1; padding: 8px; border-radius: 18px; background: rgba(255,255,255,.12); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
#newsletter .input { border-color: rgba(255,255,255,.25); background: #fff; }
#newsletter .btn { background: #fff; color: var(--cv-brand); }

/* Invoice redesign. */
.invoice-premium { position: relative; overflow: hidden; max-width: 1050px; margin: 0 auto; padding: clamp(22px, 4vw, 48px); border: 1px solid var(--cv-line); border-radius: 32px; background: #fff; box-shadow: 0 30px 90px rgba(13,45,35,.12); }
.invoice-brand-lockup { display: flex; align-items: center; gap: 13px; }
.invoice-logo { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 17px; background: linear-gradient(135deg, var(--cv-dark), var(--cv-brand)); color: #fff; font-size: 1.5rem; font-weight: 900; }
.invoice-brand-lockup b { font-size: 1.2rem; }.invoice-brand-lockup p { color: var(--cv-muted); }
.invoice-meta { text-align: left; }.invoice-meta h1 { margin: 10px 0 2px; }.invoice-meta p { margin: 2px 0; font-weight: 900; }
.invoice-paid-badge { display: inline-flex; padding: 7px 10px; border-radius: 999px; background: #eaf8f2; color: #0a8062; font-size: .75rem; font-weight: 900; }
.invoice-label { color: var(--cv-brand); font-size: .75rem; font-weight: 900; }
.invoice-parties { margin-block: 28px; }.invoice-parties > div { border: 1px solid var(--cv-line); border-radius: 19px; background: linear-gradient(145deg,#fff,var(--cv-soft)); }
.invoice-table-wrap { overflow-x: auto; border: 1px solid var(--cv-line); border-radius: 19px; }.invoice-table { margin: 0; }.invoice-table th { background: var(--cv-dark); color: #fff; }.invoice-table td small { display: block; margin-top: 4px; color: var(--cv-muted); }
.invoice-bottom { display: grid; grid-template-columns: 1fr minmax(300px, .7fr); gap: 18px; align-items: stretch; margin-top: 22px; }
.invoice-delivery { padding: 20px; border: 1px dashed var(--cv-line); border-radius: 19px; }.invoice-delivery p { display: flex; justify-content: space-between; gap: 14px; }
.invoice-summary { margin: 0; border: 0; border-radius: 19px; background: var(--cv-soft); }.invoice-summary h2 { margin: 12px -4px -4px; padding: 16px; border-radius: 15px; background: var(--cv-dark); color: #fff; }.invoice-discount { color: #0a8062; }
.invoice-footer { margin-top: 26px; padding-top: 20px; border-top: 1px solid var(--cv-line); }.invoice-footer p { margin: 4px 0 0; color: var(--cv-muted); }

.broadcast-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }.broadcast-head { margin-bottom: 16px; }.broadcast-form { border-top: 4px solid var(--cv-brand); border-radius: 24px; }.broadcast-channel-icon { display: grid; place-items: center; width: 52px; height: 38px; border-radius: 12px; background: var(--cv-soft); color: var(--cv-brand); font-weight: 900; direction: ltr; }.code-editor { min-height: 310px; font-family: Consolas,monospace; font-size: .82rem; text-align: left; }.broadcast-preview { width: min(850px,95vw); max-height: 90vh; overflow-y: auto; }.broadcast-preview-content iframe { width: 100%; height: 430px; border: 1px solid var(--cv-line); border-radius: 15px; background: #fff; }.sms-phone-preview { max-width: 340px; min-height: 190px; margin: 18px auto; padding: 22px; border: 9px solid #1d3129; border-radius: 30px; background: #eef5f2; white-space: pre-wrap; line-height: 1.9; }.site-setting-card { padding: 16px; border: 1px solid var(--cv-line); border-radius: 17px; background: var(--cv-soft); }
/* The one irreversible control in the panel. Set apart from the settings it
   sits below, and coloured as a warning rather than as another save button, so
   it cannot be mistaken for part of the form above it. */
.site-setting-card.danger-zone { margin-top: 26px; border: 1.5px solid #e0b4ae; background: #fdf5f4; }
.site-setting-card.danger-zone h3 { color: #a5271b; }
.site-setting-card.danger-zone .muted { margin: 6px 0 14px; }
.database-wipe-dialog { width: min(560px, 94vw); max-height: 90vh; overflow-y: auto; text-align: start; }
.database-wipe-list { margin: 10px 0 14px; padding-inline-start: 20px; color: var(--cv-ink, #1d3129); font-size: .86rem; line-height: 2; }
.database-wipe-list li { margin: 0; }
.database-wipe-field { display: block; margin: 14px 0 8px; font-size: .84rem; font-weight: 700; }
.database-wipe-field .input { margin-top: 6px; }
.database-wipe-dialog .row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.database-wipe-dialog .btn.danger[disabled] { opacity: .5; cursor: not-allowed; }
/* The install offer inside a settings panel. The floating dock can be dismissed
   once and never seen again, so this is the way back to it. */
.pwa-install-block [data-pwa-install-action] { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; }
.pwa-install-block [data-pwa-install-action] img { border-radius: 6px; }
.pwa-install-block [data-pwa-install-note] { margin: 10px 0 0; font-size: .82rem; line-height: 1.9; }
.pwa-install-block [data-pwa-install-action][hidden] { display: none !important; }
/* The line under a phone number that the shop actually texts: which number is
   live, and whether a newly typed one is still waiting on its code. */
.contact-verify-state { display: block; margin-top: 6px; color: var(--cv-muted, #65756d); font-size: .78rem; line-height: 1.9; }
.contact-verify-state.is-verified { color: var(--cv-brand, #0a8062); }
.contact-verify-state.is-pending { color: #9a6b12; }
.contact-verify-state.is-pending b { font-weight: 800; }
.link-button { padding: 0; border: 0; background: none; color: var(--cv-brand, #0a8062); font: inherit; font-weight: 800; text-decoration: underline; cursor: pointer; }
.link-button:hover { opacity: .8; }
.login-remember { align-items: center; flex-wrap: wrap; padding: 10px 12px; border: 1px solid var(--cv-line); border-radius: 14px; background: var(--cv-soft); cursor: pointer; }
.auth-text-button { width: fit-content; padding: 4px 0; border: 0; background: transparent; color: var(--cv-brand); font: inherit; font-weight: 800; cursor: pointer; }
.auth-flow-overlay { position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center; padding: 18px; overflow-y: auto; background: rgba(7, 31, 24, .7); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.auth-flow-open .cookie-consent-pop{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:translateY(18px)!important}
.auth-flow-card { position: relative; width: min(520px, 100%); padding: clamp(24px, 5vw, 38px); border-radius: 26px; box-shadow: 0 30px 90px rgba(3, 31, 23, .28); animation: auth-card-in .2s ease-out; }
.auth-flow-card h2 { margin: 8px 0; font-size: clamp(1.55rem, 4vw, 2.15rem); }
.auth-flow-card form { margin-top: 22px; }
.auth-code-input { direction: ltr; text-align: center; font-size: 1.6rem; font-weight: 900; letter-spacing: 8px; }
.auth-debug-code { padding: 10px 12px; border: 1px dashed var(--cv-brand); border-radius: 12px; background: var(--cv-soft); color: var(--cv-brand); text-align: center; }
/* A small, quiet prompt - not a hero-sized block. */
.product-finder-entry {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 14px auto 24px;
  padding: 13px 16px;
  border: 1px solid var(--cv-line);
  border-radius: 15px;
  background: #fff;
}
.product-finder-entry > div { min-width: 0; }
.product-finder-entry h2 { margin: 0; font-size: 1rem; font-weight: 700; letter-spacing: -.01em; }
.product-finder-entry p { margin: 3px 0 0; color: var(--cv-muted); font-size: .82rem; line-height: 1.7; }
.product-finder-entry .btn { flex: 0 0 auto; min-height: 40px; padding: 8px 20px; font-size: .82rem; }
@media (max-width: 560px) {
  .product-finder-entry { align-items: stretch; flex-direction: column; gap: 11px; padding: 13px; }
  .product-finder-entry .btn { width: 100%; }
}
.product-finder-overlay { align-items: flex-start; padding-block: 18px; }
.product-finder-modal {
  width: min(720px, 100%);
  max-height: calc(100dvh - 36px);
  overflow-y: auto;
  padding: clamp(20px, 3vw, 30px);
  border-radius: 20px;
}
.product-finder-modal > .pretty-confirm-x { position: sticky; top: 0; z-index: 4; margin-inline-start: auto; }
.finder-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 15px;
  border-bottom: 1px solid var(--cv-line);
}
.finder-modal-head h2 { margin: 0; font-size: 1.28rem; letter-spacing: -.01em; }
.finder-modal-head p { margin: 5px 0 0; color: var(--cv-muted); font-size: .84rem; line-height: 1.75; }
.finder-step-badge {
  white-space: nowrap;
  padding: 6px 11px;
  border: 1px solid var(--cv-line);
  border-radius: 999px;
  background: var(--cv-soft);
  color: var(--cv-brand);
  font-size: .73rem;
  font-weight: 700;
}
/* The field sizing below is for text boxes and selects. A checkbox matched it
   too, which stretched it to 100% wide and 46px tall; with the border-radius
   of 50% it also carries, a non-square box draws as a pointed ellipse -- the
   "diamond" reported on the gift-pack option. Checkboxes and radios keep
   their own size. */
.perfume-finder-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 14px;margin-top:18px;padding:0;border:0;border-radius:0;background:none}.perfume-finder-form.is-collapsed{display:none}.finder-field{display:grid;align-content:start;gap:7px}.finder-field label{color:var(--cv-ink);font-size:.81rem;font-weight:700}.finder-field label small{color:var(--cv-muted);font-weight:500}.finder-field select,.finder-field input:not([type=checkbox]):not([type=radio]){width:100%;min-height:46px;border:1px solid var(--cv-line);border-radius:12px;background:#fff;padding:10px 12px;font:inherit;font-size:16px;color:var(--cv-ink);outline:0}.finder-field select:focus,.finder-field input:focus{border-color:var(--cv-brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--cv-brand) 12%,transparent)}.finder-wide{grid-column:1/-1}.finder-submit{grid-column:1/-1;display:grid!important;gap:1px;justify-items:center;min-height:50px;border-radius:12px;margin-top:4px}.finder-submit small{font-size:.7rem;opacity:.78;font-weight:500}.finder-results{margin-top:22px}.finder-note,.search-correction-note{padding:12px 15px;border-radius:14px;background:var(--cv-soft);color:var(--cv-brand);border:1px solid var(--cv-line)}.search-correction-note{margin-bottom:15px}.finder-loading{display:flex;align-items:center;gap:13px;padding:20px;border:1px solid var(--cv-line);border-radius:18px;background:#fff}.finder-loading i{width:28px;height:28px;border:3px solid var(--cv-line);border-top-color:var(--cv-brand);border-radius:50%;animation:finder-spin .8s linear infinite}.finder-loading div{display:grid;gap:3px}.finder-loading span{color:var(--cv-muted);font-size:.82rem}@keyframes finder-spin{to{transform:rotate(360deg)}}
.finder-result-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.finder-result-head span{color:var(--cv-brand);font-size:.8rem;font-weight:900}.finder-result-head h3{margin:4px 0}.perfume-match-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.finder-empty{padding:28px;text-align:center;border:1px dashed var(--cv-line);border-radius:20px;background:var(--cv-soft)}
.smart-bundle{margin:22px 0;overflow:hidden}.bundle-heading,.bundle-total{display:flex;align-items:center;justify-content:space-between;gap:18px}.bundle-heading h2{margin:4px 0}.bundle-heading>div>span{color:var(--cv-brand);font-weight:800}
.bundle-products{display:flex;align-items:stretch;gap:12px;margin:22px 0;overflow-x:auto;padding-bottom:5px}.bundle-products article{min-width:190px;flex:1;border:1px solid var(--cv-line);border-radius:18px;padding:12px;display:flex;gap:12px;align-items:center;background:#fff}.bundle-products article img{width:64px;height:64px;object-fit:cover;border-radius:13px}.bundle-products article div{display:grid;gap:4px}.bundle-products article small{color:var(--cv-muted)}.bundle-products>i{align-self:center;font-size:24px;color:var(--cv-brand);font-style:normal}.bundle-total{padding-top:17px;border-top:1px solid var(--cv-line)}.bundle-total>div{display:grid;gap:4px}.bundle-total strong{font-size:1.25rem;color:var(--cv-brand)}
@keyframes auth-card-in { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
@media(max-width: 1024px){.perfume-match-list{grid-template-columns:1fr}}@media(max-width: 1024px){.product-finder-entry,.bundle-heading,.bundle-total,.finder-modal-head,.finder-result-head{align-items:stretch;flex-direction:column}.product-finder-entry .btn,.bundle-total .btn{width:100%}.product-finder-modal{padding:18px;border-radius:22px}.perfume-finder-form{grid-template-columns:1fr;padding:14px}.finder-wide,.finder-submit{grid-column:auto}.finder-result-head .btn{width:100%}}
@media(max-width: 1024px){.invoice-header,.invoice-parties,.invoice-footer{display:grid;grid-template-columns:1fr}.invoice-meta{text-align:right}.invoice-bottom,.broadcast-grid{grid-template-columns:1fr}.invoice-premium{border-radius:20px}.site-message{padding-inline:42px 16px}.home-discovery-bar{align-items:center}.home-discovery-links{justify-content:center}.admin-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width: 480px){.admin-stat-grid{grid-template-columns:1fr}.admin-dashboard-hero{padding:20px}.home-discovery-links a{flex:1 1 auto;text-align:center}}

.volume-purchase-box{display:grid;gap:9px;margin:12px 0;padding:15px;border:1px solid var(--cv-line);border-radius:18px;background:var(--cv-soft)}.volume-purchase-box label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:900}.volume-purchase-box label small{color:var(--cv-muted);font-size:.72rem;font-weight:500}.volume-select{background:#fff}.volume-single{grid-template-columns:1fr auto;align-items:center}.volume-single b{color:var(--cv-brand)}
@media(max-width: 520px){.volume-purchase-box label{align-items:flex-start;flex-direction:column}}
.admin-dashboard-head{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(22px,4vw,36px);border-top:4px solid var(--cv-brand)}.admin-dashboard-head h1{margin:7px 0;font-size:clamp(1.65rem,3vw,2.35rem)}.admin-dashboard-head p{margin:0;color:var(--cv-muted)}.admin-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-summary-item{min-width:0;border-radius:20px}.admin-summary-item small,.admin-summary-item span{display:block;color:var(--cv-muted)}.admin-summary-item b{display:block;margin:10px 0 7px;color:var(--cv-ink);font-size:clamp(1.35rem,2.4vw,2rem);overflow-wrap:anywhere}.admin-dashboard-workspace{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-task-list,.admin-stock-list{display:grid;gap:8px;max-height:330px;overflow:auto}.admin-task-list a,.admin-stock-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 13px;border:1px solid var(--cv-line);border-radius:13px;background:#fff;color:var(--cv-ink)}.admin-task-list a:hover{border-color:var(--cv-brand);background:var(--cv-soft)}.admin-task-list b,.admin-stock-list b{color:var(--cv-brand)}.admin-recent-orders .table-wrap,.admin-shell-page .table-wrap{max-height:520px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.admin-recent-orders .table{min-width:760px}.notification-stack{display:grid;gap:10px;max-height:min(68vh,680px);padding-inline-end:4px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.admin-shell-page .panel-section,.admin-shell-page .card{min-width:0}.admin-shell-page .scroll-box{max-height:520px;overflow:auto}.confirm-dialog{width:min(440px,94vw);padding:28px;border-radius:22px;text-align:right}.confirm-dialog-label{display:block;margin-bottom:7px;color:var(--cv-brand);font-size:.75rem;font-weight:900}.confirm-dialog h3{margin:0 0 10px}.confirm-dialog p{margin:0;line-height:1.9}.confirm-dialog>small{display:block;margin:12px 0 22px;color:var(--cv-muted)}.confirm-dialog .row{justify-content:flex-start}.order-workflow-editor{margin-top:20px;padding-top:18px;border-top:1px solid var(--cv-line)}
@media(max-width: 1024px){.admin-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width: 1024px){.admin-dashboard-head{align-items:flex-start;flex-direction:column}.admin-dashboard-workspace{grid-template-columns:1fr}.admin-summary-grid{grid-template-columns:1fr 1fr}}@media(max-width: 430px){.admin-summary-grid{grid-template-columns:1fr}}
.jalali-picker-field{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.jalali-picker-button{border:1px solid var(--cv-line);border-radius:13px;padding:0 13px;background:var(--cv-soft);color:var(--cv-brand);font:inherit;font-size:.8rem;font-weight:900;cursor:pointer}.jalali-calendar-pop{position:fixed;top:0;left:0;z-index:12000;width:min(340px,90vw);padding:14px;border:1px solid var(--cv-line);border-radius:18px;background:#fff;box-shadow:0 22px 65px rgba(6,48,37,.2);direction:rtl}.jalali-calendar-pop header,.jalali-calendar-pop footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.jalali-calendar-pop header button,.jalali-calendar-pop footer button{border:0;border-radius:9px;padding:7px 10px;background:var(--cv-soft);color:var(--cv-brand);font:inherit;cursor:pointer}.jalali-week,.jalali-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.jalali-week{margin:13px 0 6px;color:var(--cv-muted);font-size:.7rem;text-align:center}.jalali-days button{aspect-ratio:1;border:0;border-radius:9px;background:transparent;font:inherit;cursor:pointer}.jalali-days button:hover,.jalali-days button.is-today{background:var(--cv-soft);color:var(--cv-brand)}.jalali-days button.is-selected{background:var(--cv-brand);color:#fff}.jalali-days i{aspect-ratio:1}.jalali-calendar-pop footer{margin-top:10px;padding-top:10px;border-top:1px solid var(--cv-line);color:var(--cv-muted);font-size:.75rem}
.order-detail-backdrop{align-items:flex-start;padding:24px}.order-detail-modal{width:min(1120px,96vw);max-height:calc(100vh - 48px); max-height:calc(100dvh - 48px);overflow:auto;padding:clamp(20px,4vw,36px);border-radius:28px;background:#fff;box-shadow:0 34px 100px rgba(4,34,25,.28)}.order-detail-modal>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid var(--cv-line)}.order-detail-modal h2{margin:5px 0}.order-detail-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:20px}.order-detail-products,.order-delivery-form{padding:18px;border:1px solid var(--cv-line);border-radius:21px;background:var(--cv-soft)}.order-finance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}.order-finance-grid span{display:grid;gap:4px;padding:11px;border-radius:13px;background:#fff}.order-finance-grid .total{grid-column:1/-1;background:var(--cv-dark);color:#fff}.order-delivery-form .settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.order-delivery-form .settings-wide{grid-column:1/-1}
@media(max-width: 1024px){.order-detail-layout{grid-template-columns:1fr}.order-detail-backdrop{padding:10px}.order-detail-modal{max-height:calc(100vh - 20px); max-height:calc(100dvh - 20px);border-radius:20px}}@media(max-width: 560px){.order-delivery-form .settings-grid,.order-finance-grid{grid-template-columns:1fr}.order-finance-grid .total,.order-delivery-form .settings-wide{grid-column:auto}}
.tracking-premium{display:grid;gap:18px;max-width:1120px;margin:auto}.tracking-premium-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(24px,5vw,48px);overflow:hidden;border-radius:30px;background:radial-gradient(circle at 8% 15%,rgba(86,225,182,.2),transparent 28%),linear-gradient(135deg,var(--cv-dark),var(--cv-brand));color:#fff;box-shadow:0 28px 75px rgba(12,74,59,.22)}.tracking-premium-hero h1{margin:8px 0;font-size:clamp(1.65rem,4vw,2.8rem)}.tracking-premium-hero p{margin:0;color:#d7eee6}.tracking-progress-ring{--value:calc(var(--progress)*1%);display:grid;place-items:center;align-content:center;flex:0 0 126px;width:126px;height:126px;border-radius:50%;background:radial-gradient(circle at center,var(--cv-dark) 57%,transparent 59%),conic-gradient(#73e1bd var(--value),rgba(255,255,255,.16) 0);box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}.tracking-progress-ring b{font-size:1.45rem}.tracking-progress-ring small{color:#cce8df}.tracking-main-card{padding:20px;border:1px solid var(--cv-line);border-radius:25px;background:#fff;box-shadow:var(--cv-shadow)}.tracking-stepper{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.tracking-stepper article{position:relative;display:grid;justify-items:center;gap:8px;padding:12px 7px;text-align:center;color:var(--cv-muted)}.tracking-stepper article:not(:last-child)::after{content:'';position:absolute;top:27px;right:calc(50% + 24px);width:calc(100% - 48px);height:3px;border-radius:99px;background:var(--cv-line)}.tracking-stepper article.done:not(:last-child)::after{background:var(--cv-brand-2)}.tracking-stepper i{display:grid;place-items:center;width:34px;height:34px;z-index:1;border-radius:50%;background:#f2f8f5;font-style:normal;font-weight:900}.tracking-stepper .done i{background:var(--cv-brand);color:#fff}.tracking-stepper .current i{box-shadow:0 0 0 7px color-mix(in srgb,var(--cv-brand) 14%,transparent)}.tracking-stepper small{line-height:1.7}.tracking-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tracking-info-grid .card{border-radius:23px}.tracking-code{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;padding:12px;border-radius:14px;background:var(--cv-soft)}.tracking-timeline{display:grid;gap:0;margin-top:12px}.tracking-timeline article{display:grid;grid-template-columns:22px 1fr;gap:12px;min-height:84px}.tracking-timeline i{position:relative;width:12px;height:12px;margin-top:7px;border:3px solid #fff;border-radius:50%;background:var(--cv-brand);box-shadow:0 0 0 2px var(--cv-brand)}.tracking-timeline article:not(:last-child) i::after{content:'';position:absolute;top:13px;right:3px;width:2px;height:67px;background:var(--cv-line)}.tracking-timeline p{margin:5px 0}.tracking-timeline time{color:var(--cv-muted);font-size:.76rem}.tracking-items{display:grid;gap:9px}.tracking-items article{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:12px;padding:11px;border:1px solid var(--cv-line);border-radius:16px}.tracking-items img{width:58px;height:58px;object-fit:cover;border-radius:13px}.tracking-items small{display:block;color:var(--cv-muted)}.tracking-empty{max-width:620px;margin:40px auto;padding:40px;border:1px solid var(--cv-line);border-radius:28px;background:#fff;text-align:center;box-shadow:var(--cv-shadow)}.tracking-exception{padding:18px;border-radius:17px;background:#fff4e7;color:#7a4a11}
@media(max-width: 1024px){.tracking-premium-hero{align-items:flex-start;flex-direction:column}.tracking-progress-ring{width:104px;height:104px;flex-basis:104px}.tracking-stepper{grid-template-columns:1fr}.tracking-stepper article{grid-template-columns:36px 1fr;justify-items:start;text-align:right}.tracking-stepper article:not(:last-child)::after{top:45px;right:24px;width:3px;height:calc(100% - 36px)}.tracking-info-grid{grid-template-columns:1fr}.tracking-items article{grid-template-columns:52px 1fr}.tracking-items strong{grid-column:2}.tracking-items img{width:52px;height:52px}}

/* Focused storefront and admin sizing pass. */
.admin-shell-page .premium-panel,
.admin-shell-page #admin { min-width: 0; max-width: 100%; }
.admin-resource-table {
  width: 100%;
  max-width: 100%;
  height: clamp(360px, 62vh, 680px);
  max-height: none !important;
  padding: 0 8px 8px;
  overflow: scroll !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable both-edges;
  scrollbar-width: auto;
  scrollbar-color: color-mix(in srgb, var(--cv-brand) 58%, #aebdb7) #edf3f0;
  touch-action: pan-x pan-y;
}
.admin-resource-table:focus { outline: 3px solid color-mix(in srgb, var(--cv-brand) 18%, transparent); outline-offset: 3px; }
.admin-resource-table::-webkit-scrollbar { width: 13px; height: 13px; }
.admin-resource-table::-webkit-scrollbar-track { border-radius: 999px; background: #edf3f0; }
.admin-resource-table::-webkit-scrollbar-thumb { border: 3px solid #edf3f0; border-radius: 999px; background: color-mix(in srgb, var(--cv-brand) 62%, #b8c6c0); }
.admin-resource-table .table { width: max-content; min-width: 100%; margin: 0; }
.admin-resource-table .table th,
.admin-resource-table .table td { max-width: none; overflow: visible; white-space: nowrap; }
.admin-resource-table .table thead th { position: sticky; top: 0; z-index: 4; padding-block: 15px; background: #f0f7f4; box-shadow: 0 1px 0 var(--cv-line); }

.campaign-hero-slide { grid-template-columns: minmax(0, 1.02fr) minmax(310px, .88fr); gap: clamp(22px, 4vw, 52px); }
.campaign-hero-copy { max-width: 660px; animation: none; }
.campaign-hero-copy h1 { margin-block: 12px; font-size: clamp(2rem, 4.5vw, 4.15rem); line-height: 1.22; }
.campaign-hero-copy p { max-width: 62ch; line-height: 2; }
.campaign-hero-visual {
  background-image: linear-gradient(180deg, rgba(5,25,20,.02) 18%, rgba(5,25,20,.38) 100%), var(--campaign-poster, radial-gradient(circle at 18% 10%, color-mix(in srgb, var(--cv-brand) 18%, #fff), color-mix(in srgb, var(--cv-brand) 42%, var(--cv-dark))));
  background-color: color-mix(in srgb, var(--cv-brand) 12%, #f7fbf9);
  box-shadow: 0 26px 65px rgba(12,74,59,.18);
}
.campaign-hero-visual::before { background: linear-gradient(180deg, transparent 42%, rgba(3,18,14,.38)); }
.campaign-hero-controls { left: 22px; top: auto; bottom: 22px; grid-template-columns: repeat(2, auto); transform: none; }
.campaign-hero-controls button { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%; border-color: color-mix(in srgb, var(--cv-brand) 22%, #fff); background: rgba(255,255,255,.92); box-shadow: 0 12px 28px rgba(12,74,59,.16); }
.campaign-hero-controls button svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; }
.campaign-hero-controls button:hover { background: #fff; transform: translateY(-3px) scale(1.04); }

.home-scroll-strip { padding-block: 8px 18px; }
.home-strip-section { margin-block: clamp(30px, 5vw, 62px); padding-block: 14px; }

main[data-page="product"] .product-detail-grid { align-items: start; max-width: 1180px; margin-inline: auto; }
.product-detail-grid > .product-media-specs,
.product-detail-grid > .product-detail-main { grid-column: auto; border-radius: 28px; }
.product-media-specs { padding: clamp(16px, 2.6vw, 28px); overflow: hidden; }
.product-media-specs > .thumb { width: 100%; height: clamp(330px, 44vw, 540px); object-fit: contain; border-radius: 22px; background: linear-gradient(145deg, var(--cv-soft), #fff); }
.product-specs-under-image { margin-top: 18px; max-height: 360px; overflow: auto; scrollbar-gutter: stable; }
.product-detail-main { position: sticky; top: 92px; padding: clamp(22px, 4vw, 42px); }
.product-detail-main h1 { margin: 10px 0; font-size: clamp(1.8rem, 4vw, 3.3rem); line-height: 1.45; }
.product-detail-main > p { line-height: 1.9; }
.product-detail-main .price { margin-block: 18px; font-size: clamp(1.45rem, 3vw, 2.3rem); color: var(--cv-brand); }
.product-detail-main > .btn { width: 100%; margin-top: 9px; }
.volume-purchase-box { margin-block: 20px; padding: 18px; }
.product-description,
.qa-section,
.related-grid,
#smartBundle { max-width: 1180px; margin-inline: auto; }
.product-description,
.qa-section { padding: clamp(22px, 4vw, 38px); border-radius: 26px; }
.product-description p { line-height: 2.15; }

.jalali-calendar-pop footer label { display: flex; align-items: center; gap: 8px; color: var(--cv-ink); font-weight: 800; }
.jalali-calendar-pop footer input[type="time"] { min-height: 38px; width: 116px; padding: 5px 8px; border: 1px solid var(--cv-line); border-radius: 10px; background: var(--cv-soft); color: var(--cv-ink); font: inherit; direction: ltr; }
.admin-order-progress { display: grid; grid-template-columns: repeat(5, minmax(118px,1fr)); gap: 7px; margin: 12px 0 20px; padding-bottom: 8px; overflow-x: auto; }
.admin-order-progress article { position: relative; display: grid; grid-template-columns: 30px 1fr; align-items: start; gap: 8px; min-width: 118px; padding: 10px; border: 1px solid var(--cv-line); border-radius: 14px; background: #fff; color: var(--cv-muted); }
.admin-order-progress i { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #f2f8f5; font-style: normal; font-weight: 900; }
.admin-order-progress b,.admin-order-progress small { display: block; }.admin-order-progress small { margin-top: 4px; line-height: 1.55; font-size: .67rem; }
.admin-order-progress .is-done { border-color: color-mix(in srgb,var(--cv-brand) 25%,#fff); color: var(--cv-ink); background: var(--cv-soft); }
.admin-order-progress .is-done i { background: var(--cv-brand); color: #fff; }
.admin-order-progress .is-current { box-shadow: 0 0 0 3px color-mix(in srgb,var(--cv-brand) 12%,transparent); }

@media(max-width: 1024px){.campaign-hero-slide{position:absolute;grid-template-columns:1fr}main[data-page="product"] .product-detail-grid{grid-template-columns:1fr}.product-detail-main{position:static}.product-media-specs>.thumb{height:min(520px,72vw)}}
@media(max-width: 1024px){.admin-resource-table{height:min(64vh,620px);max-width:calc(100vw - 24px)}}
@media(max-width: 1024px){.campaign-hero-slider{border-radius:25px}.campaign-hero-slide{padding:20px 16px}.campaign-hero-controls{left:14px;bottom:14px}.campaign-hero-controls button{width:42px;height:42px}.product-media-specs>.thumb{height:82vw;max-height:430px}.admin-order-progress{grid-template-columns:repeat(5,150px)}}
.payment-result-card{max-width:620px;margin:clamp(30px,8vh,90px) auto;padding:clamp(28px,6vw,52px);border:1px solid var(--cv-line);border-radius:30px;background:#fff;text-align:center;box-shadow:0 30px 90px rgba(12,74,59,.13)}.payment-result-icon{display:grid;place-items:center;width:78px;height:78px;margin:0 auto 18px;border-radius:50%;background:var(--cv-soft);color:var(--cv-brand);font-size:2rem;font-weight:900}.payment-result-card.success{border-top:5px solid #0a8062}.payment-result-card.pending{border-top:5px solid #d99b22}.payment-result-card.error{border-top:5px solid #ad4a51}.payment-result-card.pending .payment-result-icon{background:#fff5d8;color:#8a6108}.payment-result-card.error .payment-result-icon{background:#fff0f1;color:#9a3039}.payment-result-card .row{justify-content:center;margin-top:24px}

/* Product catalog: calm, compact and easy to scan. */
.catalog-page { width: min(1280px, calc(100% - 28px)); padding-top: clamp(24px, 4vw, 52px); }
.catalog-heading { position: relative; display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 26px; padding: clamp(24px, 4vw, 42px); overflow: hidden; border: 1px solid color-mix(in srgb, var(--cv-brand) 18%, #fff); border-radius: 30px; background: linear-gradient(125deg, var(--cv-dark), color-mix(in srgb, var(--cv-brand) 86%, #2a7460)); color: #fff; box-shadow: 0 24px 65px rgba(12,74,59,.16); }
.catalog-heading::after { content: ''; position: absolute; inset: auto -8% -90px auto; width: 360px; height: 180px; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; transform: rotate(-8deg); pointer-events: none; }
.catalog-heading > * { position: relative; z-index: 1; }
.catalog-heading h1 { margin: 5px 0 6px; color: #fff; font-size: clamp(2.15rem, 5vw, 4.2rem); line-height: 1.2; letter-spacing: -.04em; }
.catalog-heading p { max-width: 650px; margin: 0; color: rgba(255,255,255,.76); line-height: 1.9; }
.catalog-layout { display: grid; grid-template-columns: 286px minmax(0,1fr); gap: clamp(18px, 2.5vw, 30px); align-items: start; }
.catalog-sidebar { min-width: 0; }
.catalog-page .product-filters { top: 88px; gap: 14px; padding: 17px; border-color: var(--cv-line); border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 18px 52px rgba(12,74,59,.08); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.filter-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 2px 2px 12px; border-bottom: 1px solid var(--cv-line); }
.filter-heading > div { display: grid; gap: 2px; }.filter-heading span { color: var(--cv-muted); font-size: .72rem; }.filter-heading b { font-size: 1rem; }
.filter-heading a { color: var(--cv-brand); font-size: .74rem; font-weight: 800; text-decoration: none; }
.catalog-search,.catalog-sort { display: grid; gap: 7px; color: var(--cv-ink); font-size: .78rem; font-weight: 850; }
.catalog-search { position: relative; }.catalog-search .input { min-height: 47px; padding-inline: 42px 12px; border-radius: 13px; background: #f8fbf9; font-size: .82rem; }
.catalog-search svg { position: absolute; right: 14px; bottom: 13px; width: 19px; height: 19px; fill: none; stroke: var(--cv-brand); stroke-width: 1.8; pointer-events: none; }
.catalog-page .filter-panel { padding: 13px; border-radius: 16px; background: #fbfdfc; }.catalog-page .filter-panel summary { color: var(--cv-ink); font-size: .82rem; }
.catalog-page .price-values { gap: 7px; }.catalog-page .price-values output { font-size: .9rem; }.catalog-page .price-range { gap: 10px; padding-top: 13px; }
.catalog-page .check-list { max-height: 190px; padding-inline-end: 3px; overflow-y: auto; scrollbar-gutter: stable; }
.catalog-page .check-row { min-height: 38px; margin: 0; padding: 7px 9px; border-radius: 11px; font-size: .79rem; }
.catalog-switches { display: grid; gap: 3px; padding-block: 2px; }
.catalog-filter-submit { width: 100%; min-height: 49px; border-radius: 14px; }
.catalog-results { min-width: 0; }
.catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 66px; margin-bottom: 16px; padding: 11px 16px; border: 1px solid var(--cv-line); border-radius: 18px; background: #fff; }
.catalog-toolbar > div { display: grid; gap: 3px; }.catalog-toolbar b { font-size: .92rem; }.catalog-toolbar span { color: var(--cv-muted); font-size: .74rem; }.catalog-toolbar > a { color: var(--cv-brand); font-size: .78rem; font-weight: 850; text-decoration: none; }
.catalog-page .product-icon-actions { top: 11px; left: 11px; right: auto; }.catalog-page .icon-btn { width: 42px; height: 42px; border-radius: 13px; background: rgba(255,255,255,.94); }
.catalog-pager { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 28px; padding: 12px; border: 1px solid var(--cv-line); border-radius: 17px; background: #fff; }.catalog-pager[hidden] { display: none; }.catalog-pager a { justify-self: start; padding: 9px 13px; border-radius: 11px; background: var(--cv-soft); color: var(--cv-brand); font-size: .78rem; font-weight: 850; text-decoration: none; }.catalog-pager a:last-child { justify-self: end; }.catalog-pager b { font-size: .78rem; }
.settings-save-row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }.settings-save-row .btn:disabled { cursor: wait; opacity: .68; }.settings-feedback { margin: 0; color: var(--cv-muted); font-size: .8rem; }.settings-feedback.is-success { color: #0a8062; }.settings-feedback.is-error { color: #a33c45; }

@media(max-width: 1024px){.catalog-layout{grid-template-columns:260px minmax(0,1fr)}}
@media(max-width: 1024px){.catalog-heading{align-items:flex-start;flex-direction:column}.catalog-layout{grid-template-columns:1fr}.catalog-page .product-filters{position:relative;top:auto}.catalog-page .check-list{max-height:220px}.catalog-sidebar{order:0}.catalog-results{order:1}}
@media(max-width: 1024px){.catalog-page{width:min(100% - 20px,1280px);padding-top:18px}.catalog-heading{margin-bottom:16px;padding:22px 18px;border-radius:23px}.catalog-heading h1{font-size:2.35rem}.catalog-page .product-filters{padding:13px;border-radius:19px}.catalog-toolbar{align-items:flex-start;min-height:0}.catalog-page .catalog-product-card{border-radius:20px}.catalog-pager{grid-template-columns:1fr 1fr}.catalog-pager b{grid-column:1/-1;grid-row:1;text-align:center}.catalog-pager a{grid-row:2}.settings-save-row{align-items:stretch;flex-direction:column}.settings-save-row .btn{width:100%}}

/* Simplified catalog correction. */
.catalog-page { width: min(1180px, calc(100% - 28px)); padding-top: 30px; }
.catalog-heading { display: block; margin: 0 0 24px; padding: 0 0 18px; overflow: visible; border: 0; border-bottom: 1px solid var(--cv-line); border-radius: 0; background: transparent; color: var(--cv-ink); box-shadow: none; }
.catalog-heading::after { display: none; }
.catalog-heading h1 { margin: 0 0 5px; color: var(--cv-ink); font-size: clamp(1.8rem, 3vw, 2.45rem); letter-spacing: 0; }
.catalog-heading p { margin: 0; color: var(--cv-muted); font-size: .88rem; line-height: 1.8; }
.catalog-layout { grid-template-columns: 270px minmax(0, 1fr); gap: 24px; }
.catalog-page .product-filters { top: 84px; gap: 13px; padding: 16px; border-radius: 18px; background: #fff; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.filter-heading { padding-bottom: 11px; }.filter-heading > div { display: block; }.filter-heading span { display: none; }.filter-heading b { font-size: .92rem; }
.catalog-search svg { display: none; }
.catalog-search .input { padding-inline: 12px; background: #fff; }
.catalog-page .filter-panel { padding: 12px; border-radius: 13px; background: #fff; }
.catalog-page .check-row { min-height: 40px; padding: 5px 7px; border-radius: 9px; }
.catalog-filter-submit { min-height: 44px; }
.catalog-toolbar { min-height: 54px; margin-bottom: 14px; padding: 8px 4px 11px; border: 0; border-bottom: 1px solid var(--cv-line); border-radius: 0; background: transparent; }
@media(max-width: 1024px){.catalog-page{padding-top:22px}.catalog-layout{grid-template-columns:1fr}.catalog-page .product-filters{position:relative;top:auto}.catalog-sidebar{order:0}.catalog-results{order:1}}
@media(max-width: 560px){.catalog-page{width:min(100% - 20px,1180px)}.catalog-heading{padding:0 2px 14px}.catalog-toolbar{align-items:flex-start}.catalog-page .product-card-actions{grid-template-columns:1fr auto}}
@media print { body { background:#fff !important; } body > *:not(#app-root) { display:none !important; } #app-root { padding:0 !important; } .invoice-premium { max-width:none; padding:18px; border:0; box-shadow:none; } }

/* Admin reporting and expanded operational overview */
.admin-resource-actions,.admin-result-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.admin-result-actions{justify-content:space-between}.admin-summary-grid-expanded{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-summary-item.has-warning{border-color:color-mix(in srgb,#c47b28 45%,var(--cv-line));background:color-mix(in srgb,#fff8ed 72%,#fff)}.admin-dashboard-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-insight-card{min-width:0}.admin-insight-card dl{display:grid;gap:0;margin:4px 0 0}.admin-insight-card dl>div{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--cv-line)}.admin-insight-card dl>div:last-child{border-bottom:0}.admin-insight-card dt{color:var(--cv-muted);font-size:.84rem}.admin-insight-card dd{margin:0;color:var(--cv-ink);font-weight:850;text-align:left}.admin-dashboard-head [data-admin-export],.admin-resource-actions [data-admin-export]{white-space:nowrap}.admin-dashboard-head button:disabled,.admin-resource-actions button:disabled,.admin-result-actions button:disabled{cursor:wait;opacity:.65}
@media(max-width: 1024px){.admin-summary-grid-expanded,.admin-dashboard-insights{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width: 1024px){.admin-dashboard-insights{grid-template-columns:1fr}.admin-resource-actions{width:100%;justify-content:flex-start}.admin-result-actions{align-items:stretch;flex-direction:column}.admin-result-actions .btn{width:100%}}
@media(max-width: 430px){.admin-summary-grid-expanded{grid-template-columns:1fr}}

/* Clear modal/toast layering, recipient previews, and small storefront refinements.
   Every full-screen overlay belongs on this one line. A modal left off it sits
   at whatever z-index its own block declares and disappears behind the others:
   the sign-in prompt was at 140 and rendered *behind* the volume picker that
   opened it, so choosing a volume while logged out looked like nothing had
   happened at all. */
.pretty-confirm-backdrop,.auth-flow-overlay,.mfa-wizard-overlay,.order-detail-backdrop,.variant-picker-overlay,.signin-prompt-backdrop{z-index:12000!important}
.toast{z-index:30000!important}
.admin-popup{width:min(760px,calc(100vw - 28px));max-height:min(780px,calc(100vh - 32px)); max-height:min(780px,calc(100dvh - 32px));overflow:auto;padding:clamp(20px,4vw,34px);text-align:right}
.admin-popup>h3{margin:8px 0 18px}.broadcast-recipient-content>.muted{margin-top:-8px}
.broadcast-recipient-list{display:grid;gap:9px;max-height:58vh;overflow:auto;padding:3px;overscroll-behavior:contain}
.broadcast-recipient-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--cv-line);border-radius:15px;background:color-mix(in srgb,var(--cv-soft) 58%,#fff)}
.broadcast-recipient-row>div{display:grid;gap:3px;min-width:0}.broadcast-recipient-row b{overflow:auto;white-space:nowrap;font-size:.86rem}.broadcast-recipient-row small{overflow:hidden;color:var(--cv-muted);text-overflow:ellipsis;white-space:nowrap}
.recipient-source,.recipient-verification{padding:6px 9px;border-radius:999px;white-space:nowrap;font-size:.72rem;font-weight:850}
.recipient-source{background:#edf4ff;color:#315a8b}.recipient-verification.is-verified{background:#e6f7ef;color:#0a8062}.recipient-verification.is-unverified{background:#fff4e5;color:#8a5b14}
.home-newsletter{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:clamp(22px,4vw,36px);overflow:hidden;border-color:color-mix(in srgb,var(--cv-brand) 22%,#fff);background:linear-gradient(135deg,color-mix(in srgb,var(--cv-soft) 88%,#fff),#fff 62%,color-mix(in srgb,var(--cv-brand-2) 12%,#fff))}
.home-newsletter h2,.home-newsletter p{margin:0}.home-newsletter p{margin-top:7px}.home-newsletter .btn{flex:0 0 auto}
.footer{position:relative}.footer-back-top-wrap{display:flex;justify-content:center;height:0;transform:translateY(-50%)}
.footer-back-top{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:10px 22px;border:1px solid color-mix(in srgb,var(--cv-brand-2) 38%,#fff);border-radius:17px;background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--cv-soft) 72%,#fff));color:var(--cv-brand);box-shadow:0 15px 40px rgba(4,35,26,.16);font:inherit;font-weight:900;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}
.footer-back-top:hover{transform:translateY(-3px);box-shadow:0 20px 46px rgba(4,35,26,.22)}.footer-back-top span{font-size:1.05rem}
.home-strip-section{padding:clamp(16px,2vw,24px);border:1px solid color-mix(in srgb,var(--cv-brand) 10%,#fff);border-radius:24px;background:linear-gradient(145deg,#fff,color-mix(in srgb,var(--cv-soft) 38%,#fff))}
.campaign-hero-slide{grid-template-columns:minmax(0,.82fr) minmax(360px,1.18fr)}
@media(max-width: 1024px){.broadcast-recipient-row{grid-template-columns:1fr auto}.recipient-source{grid-column:1/-1;justify-self:start}.home-newsletter{align-items:stretch;flex-direction:column}.home-newsletter .btn{width:100%}}
@media(max-width: 480px){.admin-popup{width:calc(100vw - 16px);max-height:calc(100vh - 16px); max-height:calc(100dvh - 16px);padding:18px;border-radius:20px}.broadcast-recipient-row{grid-template-columns:1fr}.recipient-source,.recipient-verification{grid-column:auto;justify-self:start}.footer-back-top{min-height:44px;padding:8px 18px}.home-strip-section{padding:14px;border-radius:19px}}

/* Product cards: wider, shorter and consistent on home and catalog. */

.home-scroll-strip{gap:clamp(16px,2vw,24px)}
/* Keep the hero frame fixed; only lift the campaign artwork inside it. */
.campaign-hero-visual{align-self:start;height:calc(100% - 54px);margin-block:8px 46px;background-position:center 42%;background-size:cover}
.product-media-specs>.thumb{position:static;display:block;inset:auto;width:100%;max-width:100%;height:clamp(320px,40vw,520px);object-fit:contain}
.footer-back-top-wrap{position:relative;z-index:3;height:48px;margin-top:46px;margin-bottom:-24px;transform:none}
.footer{margin-top:0;padding-top:64px}
.broadcast-segment-box{padding:12px;border:1px solid var(--cv-line);border-radius:16px;background:var(--cv-soft)}
.broadcast-segment-box summary{cursor:pointer;font-weight:900}.broadcast-segment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:13px}
.broadcast-segment-grid label{display:grid;gap:6px;font-size:.78rem;font-weight:800}.broadcast-segment-grid select{width:100%}
.broadcast-segment-grid .broadcast-verified{grid-column:1/-1;display:flex}
.broadcast-recipient-row{grid-template-columns:minmax(180px,1fr) auto auto auto}.broadcast-recipient-row.is-disabled{border-color:#e4c5c5;background:#fff7f7;opacity:.84}
.broadcast-recipient-row.is-disabled::after{content:'ارسال غیرفعال';grid-column:1/-1;color:#9b3636;font-size:.72rem;font-weight:900}
.recipient-status-button{min-height:36px;padding:7px 10px;font-size:.72rem}
@media(max-width: 1024px){
  .campaign-hero-slider{min-height:0}
  .campaign-hero-slide{position:absolute;grid-template-columns:minmax(0,1fr);gap:18px;padding:20px}
  .campaign-hero-slide.is-active{position:relative}
  .campaign-hero-copy{max-width:none}
  .campaign-hero-visual{width:100%;height:auto;margin:0;background-position:center 35%}
  .campaign-hero-controls{bottom:16px;left:16px}
}
@media(max-width: 1024px){
  /* Two per row is the phone requirement; a tablet has room for three and
     looked absurd with two 480px-wide cards. */
  
  .product-media-specs>.thumb{height:min(82vw,430px)}
  .broadcast-segment-grid{grid-template-columns:1fr}
  .broadcast-segment-grid .broadcast-verified{grid-column:auto}
  .broadcast-recipient-row{grid-template-columns:1fr auto}
}
@media(max-width: 480px){
  .campaign-hero-slide{gap:14px;padding:15px 13px 64px}
  .campaign-hero-copy h1{font-size:clamp(2rem,12vw,3rem)}
  .campaign-hero-copy .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .campaign-hero-copy .row .btn:first-child{grid-column:1/-1}
  .campaign-hero-visual{border-radius:22px;padding:17px}
  .footer-back-top-wrap{margin-top:34px}
  .broadcast-recipient-row{grid-template-columns:1fr}
}

/* --------------------------------------------------------------------------
   Phone catalog density: exactly two cards per row, as specified.
   -------------------------------------------------------------------------- */
@media (max-width: 560px) {
}
