/*!
 * فاکتوریار پرو — استایل اسناد
 */

@font-face{font-family:'Vazirmatn';font-style:normal;font-weight:400;font-display:swap;src:local('Vazirmatn'),local('Vazir'),local('IRANSans')}

*,*::before,*::after{box-sizing:border-box}

html,body{margin:0;padding:0}

.fyar-body{
	background:#eef1f5;
	font-family:var(--fyar-font);
	font-size:var(--fyar-fs);
	color:#1f2937;
	line-height:1.8;
	-webkit-print-color-adjust:exact;
	print-color-adjust:exact;
}

/* ---------------------------------------------------------------- نوار ابزار */
.fyar-toolbar{
	position:sticky;top:0;z-index:50;
	display:flex;align-items:center;gap:8px;
	padding:10px 16px;
	background:#111827;color:#fff;
	box-shadow:0 2px 12px rgba(0,0,0,.18);
}
.fyar-tb-spacer{flex:1}
.fyar-tb-note{font-size:12px;opacity:.75}
.fyar-btn{
	appearance:none;border:0;cursor:pointer;
	background:rgba(255,255,255,.1);color:#fff;
	font-family:inherit;font-size:13px;
	padding:8px 16px;border-radius:10px;
	transition:background .15s ease,transform .15s ease;
}
.fyar-btn:hover{background:var(--fyar-main);transform:translateY(-1px)}
.fyar-btn:active{transform:translateY(0)}
.fyar-btn[disabled]{opacity:.5;cursor:progress}

/* ---------------------------------------------------------------- ورق */
.fyar-doc{
	position:relative;
	width:var(--fyar-width);
	max-width:100%;
	margin:24px auto;
	background:#fff;
	padding:var(--fyar-pad);
	box-shadow:0 10px 40px rgba(15,23,42,.12);
	border-radius:6px;
}
.fyar-bordered .fyar-sheet{border:1px solid #d1d5db;border-radius:8px;padding:calc(var(--fyar-pad) / 2)}
.fyar-sheet{position:relative;z-index:1}
.fyar-compact{--fyar-fs:11px}
.fyar-compact .fyar-doc{padding:6mm}
.fyar-compact .fyar-table th,.fyar-compact .fyar-table td{padding:4px 6px}

/* ---------------------------------------------------------------- واترمارک متنی (مهر) */
.fyar-watermark{
	position:absolute;top:50%;left:50%;
	z-index:0;pointer-events:none;user-select:none;
	opacity:var(--fyar-wm-opacity);
	color:var(--wm-color);
	font-weight:900;line-height:1;white-space:nowrap;
	letter-spacing:2px;
}
.fyar-watermark span{display:block;padding:.28em .7em}

/* مهر دوخطی */
.fyar-wm-stamp span{
	border:.09em solid var(--wm-color);
	border-radius:.18em;
	box-shadow:inset 0 0 0 .045em var(--wm-color);
	background:transparent;
}
/* توخالی */
.fyar-wm-outline span{
	color:transparent;
	-webkit-text-stroke:.035em var(--wm-color);
	text-stroke:.035em var(--wm-color);
}
/* ساده */
.fyar-wm-plain span{border:0}

/* ---------------------------------------------------------------- سربرگ */
.fyar-head{
	display:flex;align-items:center;gap:16px;
	padding-bottom:12px;margin-bottom:14px;
	border-bottom:2px solid var(--fyar-main);
}
.fyar-head-brand{flex:0 0 auto}
.fyar-logo{max-height:56px;max-width:170px;object-fit:contain;display:block}
.fyar-logo-text{font-size:1.4em;font-weight:800;color:var(--fyar-main)}
.fyar-head-title{flex:1;text-align:center}
.fyar-head-title h1{margin:0;font-size:1.25em;font-weight:800;color:var(--fyar-main)}
.fyar-head-meta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:6px;font-size:.88em;color:#4b5563}
.fyar-head-meta b{color:#111827}
.fyar-head-codes{flex:0 0 auto;text-align:center}

/* سربرگ کلاسیک */
.fyar-head-classic{border-bottom:1px solid #9ca3af;align-items:flex-start}
.fyar-head-classic h1{font-size:1.3em;color:#111827;letter-spacing:-.3px}
.fyar-head-classic .fyar-shop-name{margin-top:4px;color:var(--fyar-main);font-weight:700}
.fyar-head-numbers{font-size:.9em;text-align:left;min-width:150px}
.fyar-head-side{flex:0 0 auto;min-width:120px}
.fyar-head-center{flex:1;text-align:center}

.fyar-header-fields,.fyar-footer-fields{
	display:flex;flex-wrap:wrap;gap:6px 18px;
	background:var(--fyar-soft);border-radius:8px;
	padding:8px 12px;margin-bottom:12px;font-size:.9em;
}
.fyar-footer-fields{margin:12px 0 0}

/* ---------------------------------------------------------------- طرفین */
.fyar-parties{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.fyar-party{border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}
.fyar-party-title{
	background:var(--fyar-soft);color:var(--fyar-main);
	font-weight:800;font-size:.95em;padding:6px 12px;
	border-bottom:1px solid #e5e7eb;
}
.fyar-party-body{padding:8px 12px;font-size:.9em;display:grid;gap:2px}
.fyar-party-body b{color:#6b7280;font-weight:600}

/* ---------------------------------------------------------------- جداول */
.fyar-table{width:100%;border-collapse:collapse;margin-bottom:12px;font-size:.92em}
.fyar-table th,.fyar-table td{border:1px solid #e5e7eb;padding:7px 8px;text-align:center;vertical-align:middle}
.fyar-table thead th{
	background:var(--fyar-main);color:#fff;
	font-weight:700;font-size:.95em;border-color:var(--fyar-main);
}
.fyar-items tbody tr:nth-child(even){background:#fafbfc}
.fyar-items .c-row{width:38px}
.fyar-items .c-img,
.fyar-items .c-image{width:calc(var(--fyar-img) + 16px)}
.fyar-items .c-img img,
.fyar-items .c-image img{width:var(--fyar-img)!important;height:var(--fyar-img)!important;object-fit:contain;display:block;margin:auto}
.fyar-items .c-name{text-align:right}
.fyar-items .c-qty{width:60px}
.fyar-items .c-price,.fyar-items .c-total,.fyar-items .c-disc{width:120px;white-space:nowrap}
.fyar-item-name{font-weight:600;display:block}
.fyar-sku{display:block;color:#9ca3af;font-size:.85em}
.fyar-item-meta{margin:3px 0 0;padding:0;list-style:none;color:#6b7280;font-size:.85em}
.fyar-items del{display:block;color:#9ca3af;font-size:.85em;text-decoration-color:#ef4444}
.fyar-items-sum td{background:var(--fyar-soft);font-weight:700}
.fyar-section-title{font-weight:800;color:var(--fyar-main);margin:10px 0 6px}
.fyar-refunds thead th{background:#6b7280;border-color:#6b7280}

/* ---------------------------------------------------------------- جمع مبالغ */
.fyar-bottom{display:flex;gap:14px;align-items:flex-start;margin-top:6px}
.fyar-bottom-left{flex:1;display:flex;flex-direction:column;gap:10px}
.fyar-totals-wrap{flex:0 0 340px;max-width:60%}
.fyar-totals{margin:0}
.fyar-totals th{background:var(--fyar-soft);text-align:right;font-weight:600;width:55%;color:#374151}
.fyar-totals td{text-align:left;white-space:nowrap;font-weight:600}
.fyar-totals .is-discount td{color:#dc2626}
.fyar-totals .fyar-free{color:#16a34a;font-weight:700}
.fyar-grand th,.fyar-grand td{
	background:var(--fyar-main)!important;color:#fff!important;
	font-size:1.08em;font-weight:800;border-color:var(--fyar-main);
}
.fyar-remaining th,.fyar-remaining td{background:#fef2f2!important;color:#b91c1c!important;font-weight:800}
.fyar-paid th,.fyar-paid td{background:#f0fdf4!important;color:#15803d!important}
.fyar-words{
	margin-top:8px;padding:7px 10px;font-size:.88em;
	background:var(--fyar-soft);border-radius:8px;color:#374151;
}
.fyar-payinfo{font-size:.9em;color:#4b5563;display:grid;gap:2px}
.fyar-barcode-box svg,.fyar-barcode-box{max-width:100%}
.fyar-qr canvas,.fyar-qr img{width:78px;height:78px;display:block;margin:auto}

/* ---------------------------------------------------------------- امضا */
.fyar-signs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}
.fyar-sign-title{font-size:.88em;color:#6b7280;margin-bottom:4px}
.fyar-sign-box{
	position:relative;height:86px;
	border:1px dashed #d1d5db;border-radius:10px;
	display:flex;align-items:center;justify-content:center;gap:10px;
}
.fyar-sign-box img{max-height:72px;max-width:45%;object-fit:contain}
.fyar-sign-hint{color:#cbd5e1;font-size:.85em}
.fyar-note{
	margin-top:14px;text-align:center;font-size:.9em;
	color:var(--fyar-main);padding-top:10px;border-top:1px dashed #e5e7eb;
}

/* ---------------------------------------------------------------- قالب مدرن */
.tpl-modern .fyar-party,.tpl-modern .fyar-table{border-radius:12px;overflow:hidden}
.tpl-modern .fyar-head{border-bottom:0;background:var(--fyar-soft);border-radius:14px;padding:14px}

/* ---------------------------------------------------------------- قالب شکیل */
.fyar-tpl-elegant .fyar-head h1{font-size:1.7em;font-weight:300;letter-spacing:1px}
.fyar-tpl-elegant .fyar-table thead th{background:#111827;border-color:#111827}
.fyar-tpl-elegant .fyar-party-title{background:#fff;border-bottom:2px solid var(--fyar-main)}
.fyar-tpl-elegant .fyar-doc{padding:calc(var(--fyar-pad) * 1.4)}

/* ---------------------------------------------------------------- قالب رسمی */
.fyar-tpl-formal .fyar-sheet{border:2px double #111827;padding:8px}
.fyar-tpl-formal .fyar-table thead th{background:#e5e7eb;color:#111827;border-color:#9ca3af}
.fyar-tpl-formal .fyar-table th,.fyar-tpl-formal .fyar-table td{border-color:#9ca3af}

/* ---------------------------------------------------------------- POS */
.fyar-tpl-pos .fyar-doc{width:80mm;padding:4mm;box-shadow:none;border-radius:0}
.tpl-pos{font-size:12px;text-align:center}
.pos-logo{max-height:42px;margin:auto;display:block}
.pos-shop{font-weight:800;font-size:15px;margin-top:4px}
.pos-line{font-size:11px;color:#374151}
.pos-sep{border-top:1px dashed #9ca3af;margin:7px 0}
.pos-meta div,.pos-totals div{display:flex;justify-content:space-between;font-size:11.5px}
.pos-items{text-align:right}
.pos-item{margin-bottom:5px}
.pos-item-name{font-weight:700;font-size:12px}
.pos-item-row{display:flex;justify-content:space-between;color:#374151;font-size:11.5px}
.pos-grand{font-size:14px!important;font-weight:800;border-top:1px solid #111827;margin-top:5px;padding-top:5px}
.pos-words{font-size:10.5px;color:#4b5563;margin-top:6px}
.pos-codes{margin-top:8px}
.pos-codes svg{max-width:100%}
.pos-note{margin-top:8px;font-size:11px}

/* ---------------------------------------------------------------- رسید تحویل حضوری */
.tpl-pickup .pickup-copy{border:1px solid #d1d5db;border-radius:10px;padding:10px;margin-bottom:8px}
.pickup-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.pickup-brand{display:flex;align-items:center;gap:10px}
.pickup-brand img{max-height:44px}
.pickup-brand h2{margin:0;font-size:1.1em;color:var(--fyar-main)}
.pickup-copy-tag{font-size:.8em;color:#6b7280}
.pickup-code-box{
	text-align:center;border:2px dashed var(--fyar-main);border-radius:12px;
	padding:6px 18px;background:var(--fyar-soft);
}
.pickup-code-box span{display:block;font-size:.75em;color:#6b7280}
.pickup-code-box strong{font-size:1.5em;letter-spacing:3px;color:var(--fyar-main)}
.pickup-info th{background:var(--fyar-soft);text-align:right;width:15%}
.pickup-info td{text-align:right}
.pickup-items .c-check,.packing-items .c-check{width:70px}
.pickup-box{display:inline-block;width:16px;height:16px;border:1.5px solid #9ca3af;border-radius:4px}
.pickup-remaining{color:#b91c1c;font-weight:800}
.pickup-terms{font-size:.85em;color:#4b5563;background:#f9fafb;border-radius:8px;padding:6px 10px}
.pickup-signs{display:flex;gap:14px;align-items:flex-end;margin-top:10px}
.pickup-signs>div{flex:1;font-size:.85em;color:#6b7280}
.pickup-signs i{display:block;border-bottom:1px dotted #9ca3af;height:34px}
.pickup-barcode{flex:0 0 auto}
.pickup-barcode svg{height:38px}
.pickup-cut{text-align:center;color:#9ca3af;font-size:.8em;border-top:2px dashed #d1d5db;margin:10px 0;padding-top:4px}

/* ---------------------------------------------------------------- برچسب پستی */
.plabel{border:3px solid #111827;border-radius:6px;overflow:hidden}
.plabel-stripe{
	height:12px;
	background:repeating-linear-gradient(45deg,#d32f2f 0 14px,#fff 14px 28px,#1565c0 28px 42px,#fff 42px 56px);
}
.plabel-body{padding:10px}
.plabel-row{display:flex;gap:10px;border:1px solid #d1d5db;border-radius:8px;margin-bottom:8px;overflow:hidden}
.plabel-tag{
	flex:0 0 34px;background:#f3f4f6;display:flex;align-items:center;justify-content:center;
	writing-mode:vertical-rl;font-weight:800;font-size:.9em;border-left:1px solid #d1d5db;
}
.plabel-content{padding:8px 10px;flex:1}
.plabel-name{font-weight:800;font-size:1.05em}
.plabel-addr{color:#374151;margin:2px 0}
.plabel-inline{display:flex;gap:18px;flex-wrap:wrap;font-size:.9em;color:#4b5563}
.plabel-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.plabel-ship{font-size:.9em}
.plabel-delivery{margin-right:14px}
.plabel-codes{text-align:center}
.plabel-date{font-size:.85em;color:#6b7280}

/* ---------------------------------------------------------------- برچسب‌های کوچک */
.tpl-minilabel .mlabel{border:2px solid #111827;border-radius:10px;padding:10px;max-width:100mm}
.mlabel-top{display:flex;justify-content:space-between;font-size:.85em;color:#6b7280;border-bottom:1px dashed #d1d5db;padding-bottom:4px}
.mlabel-main{text-align:center;padding:8px 0}
.mlabel-title{font-size:.85em;color:#6b7280}
.mlabel-number{font-size:1.8em;font-weight:800;color:var(--fyar-main);letter-spacing:1px}
.mlabel-name{font-size:1.2em}
.mlabel-logo{max-height:38px;display:block;margin:0 auto 4px}
.mlabel-rows{font-size:.9em;display:grid;gap:2px;border-top:1px dashed #d1d5db;padding-top:6px}
.mlabel-addr{color:#374151}
.mlabel-code{text-align:center;margin-top:6px}

/* ---------------------------------------------------------------- انبارداری */
.packing-info th{background:var(--fyar-soft);text-align:right;width:14%}
.packing-info td{text-align:right}
.packing-items .c-img img,
.packing-items .c-image img{width:var(--fyar-img);height:var(--fyar-img);object-fit:contain}
.packing-items .c-loc{width:90px}
.packing-signs{display:flex;gap:16px;margin-top:18px}
.packing-signs>div{flex:1;font-size:.85em;color:#6b7280}
.packing-signs i{display:block;border-bottom:1px dotted #9ca3af;height:40px}

/* ---------------------------------------------------------------- چاپ */
@media print{
	.no-print{display:none!important}
	body.fyar-body{background:#fff}
	.fyar-doc{margin:0;box-shadow:none;border-radius:0;width:auto;padding:0}
	.fyar-table{page-break-inside:auto}
	.fyar-table tr{page-break-inside:avoid}
	.pickup-copy{page-break-inside:avoid}
	.fyar-bulk-page{padding:0;margin:0;border:0!important}
	.fyar-doc .fyar-bulk-page + .fyar-bulk-page{border-top:0!important;padding-top:0;margin-top:0}
	.fyar-bulk-page:last-child{page-break-after:avoid;break-after:avoid}
	a{text-decoration:none;color:inherit}
}

/*
 * مهم: حتماً «screen» بماند.
 * بدون آن، این قوانین هنگام چاپ هم اجرا می‌شوند — چون عرض یک برگه A4
 * برابر ۲۱۰ میلی‌متر یعنی حدود ۷۹۴ پیکسل است و از ۸۶۰ کمتر است.
 * نتیجه‌اش حذف شدن ستون تصویر در چاپ، PDF و PNG بود.
 */
@media screen and (max-width:860px){
	.fyar-doc{width:auto;margin:12px;padding:12px}
	.fyar-parties{grid-template-columns:1fr}
	.fyar-bottom{flex-direction:column}
	.fyar-totals-wrap{flex:1;max-width:100%;width:100%}
	.fyar-table{font-size:.85em}
	.fyar-items .c-img,
	.fyar-items .c-image{display:none}
}

/* ---------------------------------------------------------------- چاپ گروهی */
.fyar-bulk-page{position:relative;page-break-after:always;break-after:page;padding-bottom:6mm}
.fyar-bulk-page:last-child{page-break-after:auto;break-after:auto}
.fyar-doc .fyar-bulk-page + .fyar-bulk-page{border-top:1px dashed #cbd5e1;padding-top:10mm;margin-top:10mm}

/* ویژگی‌ها و یادداشت‌ها */
.fyar-item-attrs{margin:3px 0 0;padding:0;list-style:none;color:#6b7280;font-size:.85em}
.fyar-item-attrs li::before{content:"• ";opacity:.5}
.fyar-note-box{
	margin:10px 0;padding:8px 12px;border-radius:8px;
	background:var(--fyar-soft);font-size:.9em;line-height:1.9;
}
.fyar-note-box b{display:block;color:var(--fyar-main);margin-bottom:2px}
.fyar-order-note{display:block;color:#4b5563}
.fyar-total-weight{text-align:left;font-size:.9em;color:#4b5563;margin:-6px 0 10px}
.fyar-items .c-id,.fyar-items .c-weight,.fyar-items .c-dimensions,.fyar-items .c-shelf{white-space:nowrap}

/* ---------------------------------------------------------------- قالب‌ساز */
.fyar-builder-sheet .fyar-b-row{display:flex;flex-wrap:wrap;margin-bottom:10px}
.fyar-builder-sheet .fyar-b-col{min-width:0}
.fyar-b-block{margin-bottom:8px}
.fyar-b-block:last-child{margin-bottom:0}
.fyar-b-header h1{margin:0 0 6px;font-size:1.25em;font-weight:800;color:var(--fyar-main)}
.fyar-b-text{line-height:2}
.fyar-b-image{display:block;height:auto;margin:auto}
.fyar-b-divider{border:0;border-top:1px solid #e5e7eb;margin:6px 0}
.fyar-b-pickup{
	display:inline-flex;flex-direction:column;align-items:center;gap:2px;
	border:2px dashed var(--fyar-main);border-radius:12px;padding:8px 22px;
}
.fyar-b-pickup span{font-size:.78em;color:#6b7280}
.fyar-b-pickup strong{font-size:1.6em;letter-spacing:4px;color:var(--fyar-main)}

/* کلاس‌های چاپ ویجت‌ها */
.fyar-print-only{display:none}
.fyar-print-gray,.fyar-print-gray img{filter:grayscale(1)}
@media print{
	.fyar-print-only{display:block}
	.fyar-break-before{page-break-before:always;break-before:page}
	.fyar-break-after{page-break-after:always;break-after:page}
	.fyar-break-avoid{page-break-inside:avoid;break-inside:avoid}
}

/* ================================================================
 * چیدمان پایدار جدول اقلام
 * ستون‌های عددی عرض ثابت می‌گیرند تا ستون «شرح کالا» بیشترین فضا را
 * داشته باشد و متن محصول در ستون باریک نشکند.
 * ============================================================== */
.fyar-items{table-layout:auto}
.fyar-items .c-name{
	text-align:right;
	width:auto;
	min-width:38%;
	word-break:normal;
	overflow-wrap:anywhere;
	hyphens:auto;
}
.fyar-items .c-row{width:34px;min-width:34px}
.fyar-items .c-qty{width:52px;min-width:52px}
.fyar-items .c-id,
.fyar-items .c-shelf{width:82px;min-width:82px}
.fyar-items .c-weight,
.fyar-items .c-dimensions{width:76px;min-width:76px}
.fyar-items .c-price,
.fyar-items .c-total,
.fyar-items .c-discount,
.fyar-items .c-disc,
.fyar-items .c-tax{width:105px;min-width:105px;white-space:nowrap}
.fyar-items .c-meta{width:90px;min-width:90px}

/* تصویر: اگر بارگذاری نشد، سلول فضای بیهوده نگیرد */
.fyar-item-img{background:#fff}
.fyar-img-failed{display:none!important}

/* در سایزهای کوچک، ستون‌های عددی جمع‌وجورتر می‌شوند */
.fyar-compact .fyar-items .c-price,
.fyar-compact .fyar-items .c-total,
.fyar-compact .fyar-items .c-discount,
.fyar-compact .fyar-items .c-tax{width:88px;min-width:88px}
.fyar-compact .fyar-items .c-name{min-width:34%}

@media print{
	/* تصاویر باید در چاپ حتماً دیده شوند */
	.fyar-items img,
	.packing-items img,
	.fyar-item-img{
		display:block!important;
		visibility:visible!important;
		opacity:1!important;
		-webkit-print-color-adjust:exact;
		print-color-adjust:exact;
	}
	.fyar-img-failed{display:none!important}

	/* جلوگیری از شکستن یک ردیف بین دو صفحه */
	.fyar-items tr,
	.packing-items tr{page-break-inside:avoid;break-inside:avoid}
	.fyar-items thead{display:table-header-group}
	.fyar-items tfoot{display:table-row-group}
}

/* ================================================================
 * فاکتور افقی (Landscape)
 * در حالت افقی فضای بیشتری هست: باکس‌های طرفین کنار هم می‌مانند،
 * جدول جمع مبالغ باریک‌تر می‌شود و نام محصول یک‌خطی‌تر می‌شود.
 * ============================================================== */
.fyar-landscape .fyar-parties{grid-template-columns:1fr 1fr 1fr}
.fyar-landscape .fyar-totals-wrap{flex:0 0 300px}
.fyar-landscape .fyar-items .c-name{min-width:30%}
.fyar-landscape .fyar-head-meta{gap:20px}
.fyar-landscape .fyar-signs{grid-template-columns:1fr 1fr 1fr}
.fyar-landscape .fyar-sign-box{height:70px}

/* ================================================================
 * چرخش محتوا (لیبل‌پرینتر)
 * ============================================================== */
.fyar-rot .fyar-doc{box-shadow:0 10px 40px rgba(15,23,42,.12)}
.fyar-rot-note{
	background:#fff7ed;color:#9a3412;border-radius:10px;
	padding:8px 14px;margin:14px auto;max-width:760px;font-size:13px;text-align:center;
}
