/* Alez — کوپن جادویی v2.5.8 */

/* 🔴 ه-54 — «کوپن و تخفیف صفحهٔ مشتری عمداً رنگ Alez است».
   حکم مدیر کل (بند 4 سند 2.3.0): این رنگ از **یک جا** خوانده شود، نه ده‌ها
   هگز پراکنده. پس تنها هگزِ پشتیبانِ مجاز این فایل همین یک خط است.
   🔵 و این «توکن خودساخته» نیست — خودِ حکم خواستش، و دامنه‌اش فقط همین
   دو فایل سمت مشتری است (`cpn.css` و `home.css`). */
:root { --alezcpn-alez: #a02ba6; --alezcpn-alez-soft: #f9ebfa; }

.alezcpn__row {
    display: flex;
    gap: 8px;
    margin-top: 10px;
}

.alezcpn__row input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--az-line, #e2e2ea);
    border-radius: 12px;
    font: inherit;
    background: var(--az-bg, #ffffff);
}

.alezcpn__row input:focus {
    outline: 0;
    border-color: var(--alezcpn-alez);
    box-shadow: 0 0 0 3px var(--alezcpn-alez-soft);
}

#alezcpn-go {
    flex: 0 0 auto;
    padding: 11px 22px;
    border: 0;
    border-radius: 12px;
    background: var(--alezcpn-alez);
    /* 🔴 مورد هشتم نقش سوم — از 2.2.13 مانده و در فهرست 5 مهر نیامده بود:
       زمینهٔ این دکمه بنفش **ثابت** Alez است (ه-54)، ولی `--az-brand-ink` را
       پیشخوان از برند **رستوران** می‌سازد. با برند نارنجی آزمون، جوهر تیره
       انتخاب می‌شود و روی بنفش Alez کنتراست 2.80 می‌دهد — زیر کف.
       🔵 و اینجا سفید برای همیشه درست است (6.19)، چون زمینه ثابت است.
       ✅ 2.4.2 — پاسخ مدیر کل (9 مهر): `--az-on-fill` سفیدِ **ثابت** است و
       در پالت ثابت سامانه تعریف شده، نه از برند رستوران. پس این یک جا روی
       بنفش ثابت ه-54 درست می‌ماند و استثنا لازم ندارد. پرسش بسته شد. */
    color: var(--az-on-fill, #fff);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
#alezcpn-go[disabled] { opacity: .6; cursor: default; }

.alezcpn__list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 8px; }

.alezcpn__list li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 12px;
    border-radius: 12px;
    background: var(--alezcpn-alez-soft);
}

.alezcpn__code { flex: 1 1 auto; font-weight: 700; color: var(--az-brand-text, var(--alezcpn-alez)); }
.alezcpn__amt { font-weight: 700; color: var(--az-ok, #167a44); white-space: nowrap; }

.alezcpn__x {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--az-brand-text, var(--alezcpn-alez));
    line-height: 1;
    cursor: pointer;
}
.alezcpn__x:hover { background: rgba(160, 43, 166, .12); }

.alezcpn__msg { margin: 10px 0 0; line-height: 1.8; min-height: 1px; }
.alezcpn__msg.is-ok  { color: var(--az-ok, #167a44); }
.alezcpn__msg.is-bad { color: var(--az-danger, #b3261e); }

/* v1.1.0 */
.alezcpn__tag {
    flex: 0 0 auto;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--az-bg, #ffffff);
    color: var(--az-brand-text, var(--alezcpn-alez));
    font-weight: 700;
}
.alezcpn__list li.is-auto { background: var(--az-ok-soft, #eef7f1); }
.alezcpn__list li.is-auto .alezcpn__code { color: var(--az-ok, #167a44); }

.alezcpn__news {
    margin: 10px 0 0;
    padding: 9px 12px;
    border-radius: 12px;
    background: var(--az-warn-soft, #fff7e6);
    color: var(--az-warn, #7a4b00);
    line-height: 1.9;
}

/* ── (یاس ۳۱ شهریور): یک ارتفاع برای دکمه‌ها — دکمهٔ «اعمال» و کادر کد تخفیف ۴۰px، نوشته بولد. */
#alezcpn-go, .alezcpn__row button { height: 40px !important; min-height: 40px !important; padding-block: 0 !important; font-weight: 600 !important; }
.alezcpn__row input[type="text"], .alezcpn__row input { height: 40px !important; min-height: 40px !important; }

/* ═══ 2.0.2 — قاعدهٔ ۱۹ «خوانایی سایت مشتری» (تصویب یاس ۱ مهر) ═══ */
.alezcpn__row input, #alezcpn-code, #alezcpn-go, .alezcpn__row button { font-size:16px; }
.alezcpn__list li, .alezcpn__msg, .alezcpn__tag, .alezcpn__news { font-size:15px; }
.alezcpn__row input::placeholder { color:rgba(19,20,31,.45); font-weight:400; opacity:1; }

/* ═══ 2.0.3 — قاعدهٔ ۱۹، پلهٔ درشت‌تر (۱ مهر): کادر و دکمهٔ کد تخفیف ۱۷px ═══ */
.alezcpn__row input, #alezcpn-code, #alezcpn-go, .alezcpn__row button { font-size:17px; }

/* ═══ 2.0.5 — الگوی ثابت تخفیف (یاس، 1 مهر) ═══
   کد اعمال‌شده: برچسب قرمز «10%» (یا دایرهٔ قرمز «%» برای مبلغ ثابت)، کد پررنگ، مبلغ با «−» هم‌رنگ بقیهٔ عددها،
   و «حذف» قرمز ۴۰px (قاعدهٔ ۶؛ حذف همیشه قرمز). */
.alezcpn__list li { flex-wrap:wrap; row-gap:8px; min-height:40px; padding:8px 12px; }
.alezcpn__off { flex:0 0 auto; display:inline-block; unicode-bidi:isolate; background:var(--az-danger, #b91c1c); color: var(--az-on-fill, #fff) /* 2.4.1: حکم مدیر کل راه الف — نوشتهٔ سفید روی رنگ پُر با توکن خودش، نه `--az-brand-ink` که از رنگ برند ساخته می‌شود */; font-size:15px; font-weight:700; line-height:1.4; padding:2px 7px; border-radius:8px; white-space:nowrap; }
.alezcpn__seal { flex:0 0 auto; display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; background:var(--az-danger, #b91c1c); color: var(--az-on-fill, #fff) /* 2.4.1: حکم مدیر کل راه الف — نوشتهٔ سفید روی رنگ پُر با توکن خودش، نه `--az-brand-ink` که از رنگ برند ساخته می‌شود */; font-style:normal; font-size:15px; font-weight:700; line-height:1; }
.alezcpn__code { font-size:17px; }
.alezcpn__amt, .alezcpn__list li.is-auto .alezcpn__amt { color:var(--az-ink, #13141f); font-size:17px; }
.alezcpn__x { width:auto; height:40px; padding:0 14px; border-radius:12px; background:var(--az-danger-soft, #f9eded); color:var(--az-danger, #b91c1c); font-size:17px; font-weight:700; }
.alezcpn__x:hover { background:var(--az-danger-soft, #f3dcdc); }
.alezcpn__x:focus-visible { outline:2px solid var(--az-danger, #b91c1c); outline-offset:2px; }
/* 2.0.5 — یک چیدمان در همهٔ اندازه‌ها: برچسب | (کد + مبلغ زیرش) | «حذف». در 320px هم ردیف‌ها یک‌شکل می‌مانند. */
.alezcpn__list li { flex-wrap:nowrap; align-items:center; gap:10px; }
.alezcpn__tx { flex:1 1 auto; min-width:0; display:flex; flex-wrap:wrap; align-items:center; column-gap:8px; row-gap:2px; }
.alezcpn__tx .alezcpn__code { flex:0 1 auto; min-width:0; overflow-wrap:anywhere; }
.alezcpn__tx .alezcpn__amt { flex-basis:100%; }
.alezcpn__list .alezcpn__x { flex:none; }

/* 2.2.4 (یاس، 3 مهر) — بلیت کوپن‌های فعال همین سفارش به‌جای کادرهای زرد: زیر هم، تمام‌عرض، به ترتیب سود.
   ظاهر خود بلیت از home.css است (همان صفحهٔ اول). */
.alezcpn-cartlist { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.alezcpn-cartlist__more { display: flex; flex-direction: column; gap: 8px; }
.alezcpn-cartlist__more[hidden] { display: none; }
.alezcpn-cartlist .alezcpn-t { flex: 0 0 auto; width: 100%; }
.alezcpn-cartlist__btn {
    height: var(--az-ctrl-h, 40px);   /* 2.2.5: توکن ارتفاع (حکم مدیر کل 2.2.4، قانون طراحی بند 9) */
    padding: 0 16px;
    border: 1px solid var(--az-line-strong, #d9d9db);
    border-radius: 12px;
    background: var(--az-bg, #ffffff);
    color: var(--az-brand-text, var(--az-brand, #a02ba6));
    font: inherit;
    font-size: 17px;
    font-weight: 700;
    cursor: pointer;
}

/* ═══ 2.5.7 — فهرست گزینه‌ها به ترتیب سود (حکم بر گام 5 سند 2.5.5، قلم 1 و 4) ═══
   هر ردیف یک دکمهٔ تمام‌عرض ≥ 40px؛ نشسته: قاب رنگ Alez + «✓ انتخاب شما» (واژه، نه فقط رنگ)؛
   نامعتبر: خاموش با دلیل. فقط توکن‌ها و همان پشتیبان‌های همین فایل؛ هیچ هگز تازه‌ای نیست.
   بی عرض ثابت و با شکستن واژه، پس در 390px اسکرول افقی نمی‌سازد. */
.alezcpn-opts { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; min-width: 0; }
.alezcpn-opts__h { margin: 0; font-size: 15px; font-weight: 700; color: var(--az-ink, #13141f); }
.alezcpn-opt {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 10px;
    row-gap: 4px;
    width: 100%;
    min-width: 0;
    min-height: var(--az-ctrl-h, 40px);
    padding: 8px 12px;
    border: 1px solid var(--az-line-strong, #d9d9db);
    border-radius: 12px;
    background: var(--az-bg, #ffffff);
    color: var(--az-ink, #13141f);
    font: inherit;
    font-size: 15px;
    text-align: start;
    cursor: pointer;
}
.alezcpn-opt__l { flex: 1 1 12em; min-width: 0; font-weight: 700; overflow-wrap: anywhere; }
.alezcpn-opt__v { flex: 0 1 auto; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.alezcpn-opt__sel { flex: 0 0 auto; padding: 2px 8px; border-radius: 999px; background: var(--alezcpn-alez); color: var(--az-on-fill, #fff); font-weight: 700; }
.alezcpn-opt.is-sel { border: 2px solid var(--alezcpn-alez); background: var(--alezcpn-alez-soft); cursor: default; }
.alezcpn-opt.is-off { opacity: .6; cursor: default; }
.alezcpn-opt.is-busy { opacity: .6; }
.alezcpn-opt:focus-visible { outline: 2px solid var(--alezcpn-alez); outline-offset: 2px; }

/* 2.5.8 — پیام زیر ردیف کد (حکم بر c82): خالی که هست، فاصلهٔ اضافه نسازد */
.alezcpn__msg:empty { margin-top: 0; min-height: 0; }
