/* Renox Invoices — استایل برگهٔ A4
   طرح پایه از FACTOR-RENOX-DESIGN-SPEC.md؛ رنگ‌ها از متغیرهایی می‌آیند که
   invoice-render.js بر اساس تم انتخابی کاربر روی هر .rnx-sheet می‌گذارد. */

@font-face{font-family:'Vazirmatn';src:url('../fonts/Vazirmatn-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('../fonts/Vazirmatn-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('../fonts/Vazirmatn-Bold.woff2') format('woff2');font-weight:700;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('../fonts/Vazirmatn-ExtraBold.woff2') format('woff2');font-weight:800;font-display:swap}

.rnx-pages{width:210mm;margin:0 auto;transform-origin:top center}

.rnx-sheet{
  width:210mm;min-height:297mm;height:297mm;background:#fff;margin:0 auto 14px;
  padding:12mm 13mm 13mm;position:relative;overflow:hidden;
  box-shadow:0 8px 30px rgba(0,0,0,.22);
  font-family:'Vazirmatn',Tahoma,system-ui,sans-serif;color:var(--txt);
  -webkit-print-color-adjust:exact;print-color-adjust:exact;
  page-break-after:always;box-sizing:border-box;
}
.rnx-sheet:last-child{page-break-after:auto}
.rnx-sheet *{box-sizing:border-box;margin:0;padding:0}

/* ---------- مقیاس فونت فاکتور ----------
   فقط همین چهار پله استفاده می‌شود؛ هیچ اندازهٔ دلبخواهی دیگری در این فایل نیست.
   استثناها: عنوان «فاکتور فروش»، واترمارک‌ها، و کادر پرداخت (که جدا تنظیم شده). */
.rnx-sheet{
  --fs-label: 8pt;    /* عنوان فیلدها، سرستون‌ها، متن‌های فرعی — ریزترین */
  --fs-field: 10pt;   /* هر چیزی که کاربر وارد کرده: نام، شماره، تماس، شرح کالا */
  --fs-money: 11pt;   /* جمع کل، تخفیف، ارزش افزوده */
  --fs-total: 12pt;   /* ردیف مبلغ قابل پرداخت — درشت‌ترین */
}
.rnx-content{position:relative;z-index:1}

.rnx-wm{position:absolute;left:50%;top:50%;width:120mm;transform:translate(-50%,-50%);opacity:.03;pointer-events:none;z-index:0}
.rnx-demo-wm{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-28deg);
  font-size:64pt;font-weight:800;color:rgba(0,0,0,.055);letter-spacing:6px;
  pointer-events:none;z-index:0;white-space:nowrap;
}

/* هدر */
.rnx-hd{display:flex;align-items:center;gap:7mm;padding-bottom:4mm;border-bottom:3px double var(--accent)}
.rnx-logo{width:40mm;height:auto;max-height:22mm;object-fit:contain;flex:none}
.rnx-logo.rnx-nologo{display:none}
.rnx-titles{flex:1;min-width:0}
.rnx-titles h1{font-size:19pt;color:var(--brand);font-weight:800;line-height:1.25}
.rnx-titles p{font-size:var(--fs-field);color:var(--sub);margin-top:1mm}
.rnx-meta{font-size:var(--fs-label);line-height:1.9;white-space:nowrap;text-align:left}
.rnx-sheet.rnx-en .rnx-meta{text-align:right}
/* شمارهٔ فاکتور مستقل از رنگ سازمانی همیشه قرمز است و عمداً ریز می‌ماند */
.rnx-meta b.rnx-num{color:#c0392b;font-size:var(--fs-label);font-weight:800}

/* کارفرما */
.rnx-customer{
  margin:4mm 0 3mm;background:var(--box);border-right:4px solid var(--accent);
  border-radius:2mm;padding:2.5mm 3.5mm;font-size:var(--fs-label);line-height:1.85;
}
.rnx-sheet.rnx-en .rnx-customer{border-right:0;border-left:4px solid var(--accent)}
.rnx-cbits{color:var(--sub);margin-right:3mm}
.rnx-sheet.rnx-en .rnx-cbits{margin-right:0;margin-left:3mm}
.rnx-cbits i{font-style:normal;opacity:.5;margin:0 1mm}
/* عنوانِ هر فیلد کم‌رنگ‌تر از مقدارش است تا مقدار جلوتر بیاید */
.rnx-ck{opacity:.72}
.rnx-cb{white-space:nowrap}
.rnx-caddr{color:var(--sub);margin-top:1mm}

/* «مقدارِ واردشده توسط کاربر» — هر جای فاکتور که باشد، همین یک اندازه */
.rnx-v{font-size:var(--fs-field)}

/* جدول اقلام */
table.rnx-items{width:100%;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-field);margin-top:1mm}
table.rnx-items thead th{background:var(--brand);color:#fff;padding:2.2mm 1.4mm;text-align:center;font-weight:700;font-size:var(--fs-label)}
table.rnx-items tbody td{border:1px solid var(--bd);padding:2mm 1.6mm;vertical-align:top;line-height:1.7;word-break:break-word}
table.rnx-items tbody tr:nth-child(even) td{background:var(--even)}
table.rnx-items tr{page-break-inside:avoid}
.rnx-items th:nth-child(1),.rnx-rn{width:7%}
.rnx-items th:nth-child(2),.rnx-desc{width:39%}
.rnx-items th:nth-child(3){width:10%}
.rnx-items th:nth-child(4),.rnx-items th:nth-child(5){width:22%}
.rnx-c{text-align:center}
.rnx-ltr{direction:ltr;unicode-bidi:embed}
span.rnx-ltr,b.rnx-ltr,i.rnx-ltr{display:inline-block}
.rnx-strong{font-weight:800;color:var(--strong)}

/* جمع / تخفیف / مالیات */
.rnx-closing{page-break-inside:avoid}
/* عنوان‌ها ریزند و عددها درشت — چشم روی مبلغ‌ها می‌نشیند نه روی برچسب‌ها */
table.rnx-break{width:100%;border-collapse:collapse;margin-top:3mm;font-size:var(--fs-label)}
table.rnx-break td{border:1px solid var(--bd);padding:1.8mm 2.5mm}
.rnx-lbl{background:var(--even);font-weight:700;width:75%}
/* ستون عددها درشت‌تر از عنوان‌هایشان است تا مبلغ‌ها سریع خوانده شوند */
.rnx-val-plain{text-align:center;font-weight:700;color:var(--strong);font-size:var(--fs-money)}
/* تخفیف سبز (چیزی که کم می‌شود)، ارزش افزوده قرمز (چیزی که اضافه می‌شود) */
.rnx-disc{color:#1f7a55}
.rnx-vat{color:#b4453f}

table.rnx-tot{width:100%;border-collapse:collapse;margin-top:2mm;font-size:var(--fs-label)}
table.rnx-tot td{border:1px solid var(--bd);padding:2.7mm}
.rnx-sign{width:38%;height:23mm;text-align:center;vertical-align:top;color:var(--sub)}
.rnx-label{width:37%;background:var(--label);font-weight:800;font-size:var(--fs-total)}
.rnx-value{width:25%;background:var(--brand);color:#fff;text-align:center;font-size:var(--fs-total);font-weight:800}

/* کادر پرداخت: ریزترین متن برگه — فقط شماره‌های داخلش پررنگ‌اند */
.rnx-pay{margin-top:3mm;background:var(--box);border:1px dashed var(--accent);border-radius:2.5mm;padding:3mm 4mm;font-size:8pt;line-height:2.15}
/* چیزهایی که کاربر پر کرده فقط پررنگ‌اند، نه بزرگ‌تر */
.rnx-payv{font-weight:800;color:var(--strong)}
.rnx-paysep{opacity:.45;margin:0 .6mm}
/* شماره کارت/حساب/شبا هیچ‌وقت نباید نصفه به خط بعد بیفتد و با هم قاطی شود */
.rnx-payitem{white-space:nowrap}
/* همهٔ عددهایی که کاربر در مشخصات صادرکننده وارد کرده هم‌اندازه‌اند:
   کارت، حساب، شبا، کد ملی و کد اقتصادی. نام‌ها فقط پررنگ‌اند، نه درشت‌تر. */
.rnx-payv.rnx-ltr{font-size:10pt;white-space:nowrap}
.rnx-payx{font-size:8.5pt;color:var(--sub);margin-top:1mm}
.rnx-payx i{font-style:normal;opacity:.5;margin:0 1mm}
.rnx-notes{margin-top:3mm;font-size:var(--fs-label);line-height:1.95;color:var(--sub);border-top:1px solid var(--fline);padding-top:2mm}
.rnx-issuer{text-align:center;margin-top:3mm;color:var(--sub);font-size:var(--fs-label);line-height:1.8}
.rnx-issuer i{font-style:normal;opacity:.5;margin:0 1mm}
.rnx-issaddr{margin-top:1mm}

/* فوتر */
.rnx-ft{
  position:absolute;right:13mm;left:13mm;bottom:6mm;border-top:1px solid var(--fline);
  padding-top:2mm;display:flex;justify-content:space-between;gap:8mm;
  font-size:var(--fs-label);color:var(--ftext);z-index:2;
}
.rnx-ft b{color:var(--meta);white-space:nowrap}

/* قطع برگه همیشه A4 عمودی (۲۱ × ۲۹٫۷ سانتی‌متر) — حتی وقتی چاپگر «ذخیره به PDF» است.
   margin:0 چون خودِ برگه حاشیه‌اش را دارد. */
@page{size:210mm 297mm portrait;margin:0}

@media print{
  html,body{background:#fff!important;margin:0!important;padding:0!important}
  .rnx-pages{width:210mm;margin:0;transform:none!important;zoom:1!important}
  .rnx-sheet{margin:0;box-shadow:none;width:210mm;height:297mm;
             page-break-after:always;break-after:page}
  .rnx-sheet:last-child{page-break-after:auto;break-after:auto}
}

/* واترمارکِ پیش‌نمایش — فقط داخل برنامه، هرگز در PDF/پرینت/لینک اشتراکی */
.rnx-pwm{
  position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-around;
  transform:rotate(-24deg) scale(1.5);transform-origin:center;
}
.rnx-pwm-row{display:flex;justify-content:space-around;white-space:nowrap}
.rnx-pwm span{
  font-size:15pt;font-weight:800;color:#e03b3b;opacity:.13;
  letter-spacing:1px;padding:0 6mm;
}
@media print{.rnx-pwm{display:none!important}}

/* مهر و امضای آپلودشده داخل کادر امضا — بزرگ‌ترین حالت ممکن بدون بریدگی */
.rnx-marks{display:flex;align-items:center;justify-content:center;gap:3mm;height:100%;width:100%}
.rnx-mark{max-height:21mm;max-width:45%;object-fit:contain;flex:0 1 auto}
.rnx-marks .rnx-mark:only-child{max-width:88%;max-height:22mm}
table.rnx-tot.rnx-nosign .rnx-label{width:60%}
table.rnx-tot.rnx-nosign .rnx-value{width:40%}
