/* ============================================================
 *  نیازی نو — استایل افزونه‌های فرانت‌اند v3
 *  ----------------------------------------------------------
 *  شامل استایل برای:
 *    ۱) ویرایشگر مشخصات فنی (TechSpecs editor)
 *    ۲) ویرایشگر تنظیمات ارسال (DeliverySettings editor)
 *    ۳) کمبوباکس قابل جستجوی مدارس (SchoolCombobox)
 *    ۴) انبارداری حرفه‌ای (NegativeStock)
 *    ۵) گزارش تولید (ProductionReport)
 *    ۶) فاکتور لیزری ۸ سانتی بهبود یافته (Border + Bold)
 * ============================================================ */

/* ============================================================
 *  ۱) TechSpecs Editor
 * ============================================================ */
.tech-specs-editor {
    background: var(--admin-bg, #F8FAFC);
    border: 1px solid var(--admin-border, #E2E8F0);
    border-radius: 12px;
    padding: 16px;
    margin-top: 18px;
}
.tech-specs-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.tech-specs-title {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--navy, #0F172A);
    display: flex;
    align-items: center;
    gap: 8px;
}
.tech-specs-title i {
    color: var(--primary, #00A3E0);
    font-size: 1rem;
}
.tech-specs-hint {
    font-size: 0.78rem;
    color: var(--admin-text-muted, #64748B);
    margin-bottom: 12px;
    line-height: 1.6;
}
.tech-specs-hint code {
    background: rgba(0,163,224,0.1);
    color: var(--primary, #00A3E0);
    padding: 2px 6px;
    border-radius: 4px;
    font-family: 'Vazirmatn', monospace;
    font-size: 0.74rem;
}
.tech-specs-rows {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.tech-spec-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto;
    gap: 8px;
    align-items: center;
    background: #fff;
    padding: 8px;
    border-radius: 8px;
    border: 1px solid var(--admin-border, #E2E8F0);
}
.tech-spec-row input.admin-form-control {
    padding: 8px 10px;
    font-size: 0.86rem;
}
.tech-spec-separator {
    color: var(--admin-text-muted, #64748B);
    font-weight: 700;
    padding: 0 4px;
}
.tech-spec-remove {
    flex-shrink: 0;
}
.tech-spec-empty {
    text-align: center;
    padding: 24px 16px;
    color: var(--admin-text-muted, #64748B);
    background: #fff;
    border-radius: 8px;
    border: 1px dashed var(--admin-border, #E2E8F0);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.tech-spec-empty i {
    font-size: 1.3rem;
    color: var(--admin-text-muted, #64748B);
}

/* ============================================================
 *  ۲) Delivery Settings Editor
 * ============================================================ */
.delivery-editor {
    background: var(--admin-bg, #F8FAFC);
    border: 1px solid var(--admin-border, #E2E8F0);
    border-radius: 12px;
    padding: 16px;
    margin-top: 18px;
}
.delivery-editor-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}
.delivery-editor-title {
    font-size: 0.96rem;
    font-weight: 700;
    color: var(--navy, #0F172A);
    display: flex;
    align-items: center;
    gap: 8px;
}
.delivery-editor-title i {
    color: var(--primary, #00A3E0);
}
.delivery-editor-hint {
    font-size: 0.78rem;
    color: var(--admin-text-muted, #64748B);
    margin-bottom: 14px;
    line-height: 1.6;
}
.delivery-rows {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.delivery-row {
    background: #fff;
    border: 1px solid var(--admin-border, #E2E8F0);
    border-radius: 10px;
    padding: 12px;
}
.delivery-row-main {
    display: grid;
    grid-template-columns: 160px 1fr auto;
    gap: 12px;
    align-items: center;
}
.delivery-row-icon-select {
    position: relative;
}
.delivery-row-icon-select select.admin-form-control {
    padding: 8px 28px 8px 10px;
    font-size: 0.84rem;
}
.delivery-icon-preview {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: var(--primary, #00A3E0);
    font-size: 1rem;
    background: #fff;
    padding: 0 4px;
}
.delivery-row-fields {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.delivery-row-fields input.admin-form-control {
    padding: 8px 10px;
    font-size: 0.86rem;
}
.delivery-row-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}
.delivery-enabled small {
    font-size: 0.74rem;
    color: var(--admin-text-muted, #64748B);
}

/* ============================================================
 *  ۳) SchoolCombobox — Searchable School Dropdown
 * ============================================================ */
.school-combobox {
    position: relative;
    width: 100%;
    /* Bump stacking context so the dropdown (z-index:1000) escapes
       any ancestor .admin-card that has overflow:hidden. */
    z-index: 50;
}
/* Allow the dropdown to escape the parent .admin-card.
   The parent card has overflow:hidden which clips the dropdown when open.
   Use modern CSS :has() — supported in Chrome 105+, Safari 15.4+, Firefox 121+. */
.admin-card:has(.school-combobox) {
    overflow: visible;
}
/* Fallback for older browsers: add a class manually if needed */
.admin-card.allows-dropdown-overflow {
    overflow: visible;
}
.school-combobox-input-wrap {
    position: relative;
}
.school-combobox-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--admin-text-muted, #94A3B8);
    font-size: 0.84rem;
    pointer-events: none;
}
.school-combobox-input {
    padding-right: 36px !important;
    /* padding-left must clear BOTH the chevron arrow (12px+8px) and the × clear button (24px+4px) */
    padding-left: 60px !important;
}
/* Clear (×) button — visible when input has text or a school is selected */
.school-combobox-clear {
    position: absolute;
    left: 32px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    background: rgba(15, 23, 42, 0.06);
    color: var(--admin-text-muted, #64748B);
    cursor: pointer;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.74rem;
    transition: background 0.15s, color 0.15s;
    z-index: 2;
}
.school-combobox-clear:hover {
    background: rgba(239, 68, 68, 0.15);
    color: var(--admin-danger, #EF4444);
}
/* Filter info badge shown at the top of the dropdown when filtering */
.school-combobox-filter-info {
    padding: 6px 10px;
    background: rgba(0, 163, 224, 0.08);
    color: var(--primary, #00A3E0);
    font-size: 0.74rem;
    border-radius: 6px;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
    direction: rtl;
}
/* Empty-state message shown when filter yields no schools */
.school-combobox-empty {
    padding: 18px 10px;
    text-align: center;
    color: var(--admin-text-muted, #94A3B8);
    font-size: 0.82rem;
    direction: rtl;
}
.school-combobox-empty i {
    margin-left: 6px;
    font-size: 0.92rem;
}
.school-combobox-arrow {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--admin-text-muted, #94A3B8);
    cursor: pointer;
    transition: transform 0.2s ease;
    font-size: 0.74rem;
    padding: 4px;
}
.school-combobox-arrow.rotated {
    transform: translateY(-50%) rotate(180deg);
}
.school-combobox-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--admin-border, #E2E8F0);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.15);
    z-index: 1000;
    max-height: 280px;
    overflow-y: auto;
    padding: 4px;
}
.school-combobox-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 10px;
    cursor: pointer;
    border-radius: 6px;
    font-size: 0.86rem;
    color: var(--navy, #0F172A);
    transition: background 0.12s ease;
}
.school-combobox-option:hover {
    background: rgba(0,163,224,0.08);
}
.school-combobox-option.selected {
    background: rgba(0,163,224,0.12);
    color: var(--primary, #00A3E0);
    font-weight: 700;
}
.school-combobox-option.selected::after {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    margin-right: auto;
    color: var(--primary, #00A3E0);
    font-size: 0.74rem;
}
.school-combobox-option i.fa-school {
    color: var(--primary, #00A3E0);
}
.school-combobox-option i.fa-ban {
    color: var(--admin-text-muted, #94A3B8);
}
.school-combobox-option i.fa-list {
    color: var(--admin-text-muted, #94A3B8);
}

/* ============================================================
 *  ۴) NegativeStock — Professional Inventory
 * ============================================================ */
.admin-stat-card {
    background: #fff;
    border: 1px solid var(--admin-border, #E2E8F0);
    border-radius: 12px;
    padding: 16px;
    display: flex;
    align-items: center;
    gap: 14px;
    transition: all 0.2s ease;
}
.admin-stat-card:hover {
    box-shadow: 0 4px 14px rgba(15,23,42,0.08);
    transform: translateY(-2px);
}
.admin-stat-card .stat-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    flex-shrink: 0;
    background: rgba(0,163,224,0.1);
    color: var(--primary, #00A3E0);
}
.admin-stat-card .stat-value {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--navy, #0F172A);
    line-height: 1.2;
    font-variant-numeric: tabular-nums;
}
.admin-stat-card .stat-label {
    font-size: 0.78rem;
    color: var(--admin-text-muted, #64748B);
    margin-top: 2px;
}
.admin-stat-card.stat-danger {
    border-color: rgba(220,38,38,0.2);
    background: linear-gradient(135deg, rgba(254,226,226,0.4) 0%, #fff 100%);
}
.admin-stat-card.stat-danger .stat-icon {
    background: rgba(220,38,38,0.12);
    color: #DC2626;
}
.admin-stat-card.stat-danger .stat-value {
    color: #DC2626;
}
.admin-stat-card.stat-warning {
    border-color: rgba(245,158,11,0.2);
    background: linear-gradient(135deg, rgba(254,243,199,0.4) 0%, #fff 100%);
}
.admin-stat-card.stat-warning .stat-icon {
    background: rgba(245,158,11,0.12);
    color: #F59E0B;
}
.admin-stat-card.stat-warning .stat-value {
    color: #B45309;
}
.admin-stat-card.stat-success .stat-icon {
    background: rgba(16,185,129,0.12);
    color: #10B981;
}
.admin-stat-card.stat-success .stat-value {
    color: #047857;
}

/* Row highlighting for negative stock */
#negStockTable tbody tr.neg-stock-row-negative {
    background: rgba(254,226,226,0.3) !important;
}
#negStockTable tbody tr.neg-stock-row-negative td {
    border-bottom-color: rgba(220,38,38,0.15) !important;
}

/* ============================================================
 *  ۵) Number format inputs — visual cue
 * ============================================================ */
input[type="number"].num-format {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
    letter-spacing: 0.2px;
}

/* ============================================================
 *  ۶) Production Report
 * ============================================================ */
.production-report-table {
    font-size: 0.84rem;
}

/* ============================================================
 *  ۶-الف) TriCombobox — مولتی‌سلکت + جستجو + مستثنا (قرمز)
 *  برای فیلترهای گزارش تولید
 * ============================================================ */
.mcb {
    position: relative;
    width: 100%;
    z-index: 50; /* دراپ‌داون از overflow کارت والد فرار کند */
}
.admin-card:has(.mcb) {
    overflow: visible;
}
.mcb-field {
    position: relative;
}
.mcb-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--admin-text-muted, #94A3B8);
    font-size: 0.84rem;
    pointer-events: none;
}
.mcb-input {
    padding-right: 36px !important;
    /* باید از فلش (چپ) و دکمه × عبور کند */
    padding-left: 60px !important;
}
.mcb-clear {
    position: absolute;
    left: 32px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    background: rgba(15, 23, 42, 0.06);
    color: var(--admin-text-muted, #64748B);
    cursor: pointer;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.74rem;
    transition: background 0.15s, color 0.15s;
    z-index: 2;
}
.mcb-clear:hover {
    background: rgba(239, 68, 68, 0.15);
    color: var(--admin-danger, #EF4444);
}
.mcb-arrow {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--admin-text-muted, #94A3B8);
    cursor: pointer;
    transition: transform 0.2s ease;
    font-size: 0.74rem;
    padding: 4px;
}
.mcb-arrow.mcb-arrow-open {
    transform: translateY(-50%) rotate(180deg);
}
.mcb-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid var(--admin-border, #E2E8F0);
    border-radius: 10px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.15);
    z-index: 1000;
    max-height: 320px;
    overflow-y: auto;
    padding: 6px;
    direction: rtl;
}
.mcb-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 6px 8px;
    border-bottom: 1px solid var(--admin-border, #E2E8F0);
    margin-bottom: 4px;
    flex-wrap: wrap;
    position: sticky;
    top: -6px;
    background: #fff;
    z-index: 1;
}
.mcb-count {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 0.75rem;
    color: var(--navy, #0F172A);
    font-weight: 600;
}
.mcb-count i.fa-check { color: var(--admin-success, #10B981); font-size: 0.7rem; }
.mcb-count i.fa-ban  { color: var(--admin-danger, #EF4444); font-size: 0.7rem; }
.mcb-count-idle { color: var(--admin-text-muted, #94A3B8); font-weight: 400; }
.mcb-tools {
    margin-right: auto;
    display: inline-flex;
    gap: 6px;
}
.mcb-tool-btn {
    border: 1px solid var(--admin-border, #E2E8F0);
    background: #fff;
    border-radius: 6px;
    padding: 3px 8px;
    font-size: 0.72rem;
    color: var(--navy, #0F172A);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: background 0.12s, border-color 0.12s, color 0.12s;
}
.mcb-tool-btn:hover {
    background: rgba(0, 163, 224, 0.08);
    border-color: var(--primary, #00A3E0);
}
.mcb-tool-btn.mcb-tool-danger:hover {
    background: rgba(239, 68, 68, 0.1);
    border-color: var(--admin-danger, #EF4444);
    color: var(--admin-danger, #EF4444);
}
.mcb-filter-info {
    padding: 5px 10px;
    background: rgba(0, 163, 224, 0.08);
    color: var(--primary, #00A3E0);
    font-size: 0.74rem;
    border-radius: 6px;
    margin-bottom: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.mcb-empty {
    padding: 18px 10px;
    text-align: center;
    color: var(--admin-text-muted, #94A3B8);
    font-size: 0.82rem;
}
.mcb-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    cursor: pointer;
    border-radius: 6px;
    font-size: 0.86rem;
    color: var(--navy, #0F172A);
    transition: background 0.12s ease;
}
.mcb-option:hover {
    background: rgba(0, 163, 224, 0.08);
}
.mcb-option .mcb-check {
    width: 16px;
    height: 16px;
    border-radius: 4px;
    border: 1.5px solid #CBD5E1;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.12s, border-color 0.12s;
}
.mcb-option .mcb-check i {
    font-size: 0.6rem;
    color: #fff;
    opacity: 0;
    transition: opacity 0.12s;
}
.mcb-option .mcb-label {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mcb-option .mcb-hint {
    font-size: 0.68rem;
    color: var(--admin-text-muted, #94A3B8);
    flex-shrink: 0;
}
.mcb-swatch {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid rgba(15, 23, 42, 0.18);
    flex-shrink: 0;
}
.mcb-ban {
    margin-right: auto;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 1px solid var(--admin-border, #E2E8F0);
    background: #fff;
    color: var(--admin-text-muted, #94A3B8);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.68rem;
    padding: 0;
    flex-shrink: 0;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}
.mcb-ban:hover {
    background: rgba(239, 68, 68, 0.12);
    color: var(--admin-danger, #EF4444);
    border-color: rgba(239, 68, 68, 0.45);
}
/* حالت انتخاب‌شده (سبز) */
.mcb-option.state-include {
    background: rgba(16, 185, 129, 0.09);
}
.mcb-option.state-include .mcb-label { font-weight: 700; }
.mcb-option.state-include .mcb-check {
    background: var(--admin-success, #10B981);
    border-color: var(--admin-success, #10B981);
}
.mcb-option.state-include .mcb-check i { opacity: 1; }
/* حالت مستثنا (قرمز — از گزارش حذف می‌شود) */
.mcb-option.state-ignore {
    background: rgba(239, 68, 68, 0.07);
}
.mcb-option.state-ignore .mcb-label {
    text-decoration: line-through;
    color: var(--admin-danger, #EF4444);
}
.mcb-option.state-ignore .mcb-check { border-color: rgba(239, 68, 68, 0.4); }
.mcb-option.state-ignore .mcb-ban {
    background: var(--admin-danger, #EF4444);
    color: #fff;
    border-color: transparent;
}
.mcb-option.mcb-active {
    box-shadow: inset 0 0 0 2px rgba(0, 163, 224, 0.4);
}

/* ============================================================
 *  ۵-ج) پاپ‌آپ بزرگ TriCombobox (v3.27)
 *  ----------------------------------------------------------
 *  دسکتاپ: دراپ‌داون fixed با عرض ۳۸۰–۵۲۰px (JS جاگذاری می‌کند،
 *  اینجا فقط سایهٔ عمیق‌تر). موبایل (≤640px): شیت تمام‌صفحه —
 *  سرچ + «انتخاب همه/پاک‌کردن» + لیست اسکرولی + دکمهٔ «انجام شد».
 * ============================================================ */
.mcb.mcb-active {
    /* روی باز شدن، زمینهٔ انباشت بالاتر از تقویم جلالی (9999) برود */
    z-index: 10500;
}
.mcb-dropdown[style*="position: fixed"] {
    box-shadow: 0 18px 48px rgba(15, 23, 42, 0.24);
}

/* قفل اسکرول صفحه وقتی شیت باز است */
html.mcb-scroll-lock,
html.mcb-scroll-lock body {
    overflow: hidden !important;
}

/* ---------- شیت تمام‌صفحه (موبایل) ---------- */
.mcb-dropdown.mcb-sheet {
    position: fixed !important;
    inset: 0;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-height: none !important;
    border: none;
    border-radius: 0;
    box-shadow: none;
    z-index: 10600;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 12px 14px calc(14px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    animation: mcbSheetIn 0.18s ease-out;
}
@keyframes mcbSheetIn {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: none; }
}
.mcb-sheet-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 4px 2px 12px;
    border-bottom: 2px solid var(--primary, #00A3E0);
    flex-shrink: 0;
}
.mcb-sheet-title {
    font-size: 1.0rem;
    font-weight: 800;
    color: var(--navy, #0F172A);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.mcb-sheet-title i { color: var(--primary, #00A3E0); }
.mcb-sheet-done {
    border: none;
    border-radius: 9px;
    cursor: pointer;
    background: var(--primary, #00A3E0);
    color: #fff;
    padding: 10px 20px;
    font-size: 0.92rem;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex-shrink: 0;
    font-family: inherit;
}
.mcb-sheet-done:active { background: #0090C7; }
.mcb-sheet-search {
    flex-shrink: 0;
    padding: 10px 0 6px;
}
.mcb-dropdown.mcb-sheet .mcb-input {
    width: 100%;
    font-size: 16px; /* جلوگیری از زوم خودکار iOS */
    padding: 13px 16px !important;
    border-radius: 10px;
}
.mcb-dropdown.mcb-sheet .mcb-panel {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}
.mcb-dropdown.mcb-sheet .mcb-toolbar {
    position: static;
    background: transparent;
    margin-bottom: 6px;
    padding: 6px 0 8px;
}
.mcb-dropdown.mcb-sheet .mcb-tool-btn {
    padding: 8px 14px;
    font-size: 0.8rem;
}
.mcb-dropdown.mcb-sheet .mcb-option {
    padding: 14px 10px;
    font-size: 0.95rem;
    gap: 10px;
}
.mcb-dropdown.mcb-sheet .mcb-option .mcb-check {
    width: 22px;
    height: 22px;
    border-radius: 6px;
}
.mcb-dropdown.mcb-sheet .mcb-option .mcb-check i { font-size: 0.75rem; }
.mcb-dropdown.mcb-sheet .mcb-ban {
    width: 36px;
    height: 36px;
    font-size: 0.85rem;
    border-radius: 9px;
}
.mcb-dropdown.mcb-sheet .mcb-option .mcb-hint { font-size: 0.74rem; }

/* ============================================================
 *  ۶-ب) فیلتر گزارش تولید + تنظیمات ستون‌ها
 * ============================================================ */
.prod-filter-card {
    overflow: visible;
}
/* v3.26: ردیف فیلتر — auto-fill مثل مرکز گزارش‌ها؛ ۸ خانه (از تاریخ/تا
 * تاریخ/مدرسه/وضعیت/قطعه/سایز/رنگ/دکمه) به‌صورت خودکار می‌شکنند. */
.prod-filter-row {
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important;
    gap: 10px;
}
.prod-filter-go {
    align-self: end;
}
.prod-filter-hint {
    font-size: 0.72rem;
    color: var(--admin-text-muted, #94A3B8);
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}
@media (max-width: 640px) {
    .prod-filter-row {
        grid-template-columns: 1fr !important;
    }
    .prod-filter-go { grid-column: span 1; }
}

/* نشان فیلترهای فعال زیر عنوان گزارش */
.prod-filter-badge {
    display: inline-flex;
    align-items: center;
    background: rgba(0, 163, 224, 0.1);
    color: var(--primary, #00A3E0);
    border-radius: 999px;
    padding: 2px 10px;
    font-size: 0.7rem;
    font-weight: 600;
    margin-right: 6px;
}
.prod-filter-badge.ign {
    background: rgba(239, 68, 68, 0.1);
    color: var(--admin-danger, #EF4444);
}

/* دکمه ستون‌ها + شمارنده */
#prodColsBtn.prod-cols-btn-active {
    background: rgba(0, 163, 224, 0.08);
    border-color: var(--primary, #00A3E0);
    color: var(--primary, #00A3E0);
}
.prod-cols-count {
    font-size: 0.72rem;
    opacity: 0.85;
}

/* پنل تنظیمات ستون‌ها */
.prod-cols-card {
    overflow: visible;
    border-color: rgba(0, 163, 224, 0.25);
}
.prod-cols-tools {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: center;
}
.prod-cols-tools .admin-form-control {
    max-width: 190px;
    padding: 6px 10px;
    font-size: 0.8rem;
}
.prod-cols-tools .btn-admin-outline {
    padding: 6px 10px;
    font-size: 0.76rem;
}
.prod-cols-group {
    margin-bottom: 14px;
}
.prod-cols-group-title {
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--navy, #0F172A);
    display: flex;
    gap: 6px;
    align-items: center;
    margin-bottom: 8px;
}
.prod-cols-group-title i { color: var(--primary, #00A3E0); }
.prod-cols-group-title span {
    color: var(--admin-text-muted, #94A3B8);
    font-weight: 400;
    font-size: 0.72rem;
}
.prod-cols-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.prod-col-chip {
    border: 1px solid var(--admin-border, #E2E8F0);
    background: #fff;
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 0.78rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--navy, #0F172A);
    transition: all 0.15s ease;
    font-family: inherit;
}
.prod-col-chip i {
    color: var(--admin-text-muted, #94A3B8);
    font-size: 0.82rem;
    transition: color 0.15s ease;
}
.prod-col-chip:hover {
    border-color: var(--primary, #00A3E0);
    background: rgba(0, 163, 224, 0.06);
}
.prod-col-chip.on {
    background: rgba(16, 185, 129, 0.1);
    border-color: rgba(16, 185, 129, 0.45);
}
.prod-col-chip.on i {
    color: var(--admin-success, #10B981);
}
.prod-cols-hint {
    font-size: 0.72rem;
    color: var(--admin-text-muted, #94A3B8);
    margin: 6px 0 0;
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}

/* ============================================================
 *  v3.26 — «فقط سفارش‌های همین قطعه» (پنل تنظیمات ستون‌ها):
 *  فیلدی برای نمایش فقط سفارش‌هایی که تمام اقلامشان در فیلتر قطعه
 *  انتخاب شده باشد (مخفی‌کردن سفارش‌های پیراهن + تی‌شرت + شلوار).
 * ============================================================ */
.prod-onlyitem-card {
    margin: 4px 0 14px;
    padding: 12px 14px;
    border: 1px solid rgba(239, 68, 68, 0.25);
    border-right: 4px solid rgba(239, 68, 68, 0.55);
    border-radius: 10px;
    background: rgba(239, 68, 68, 0.04);
}
.prod-onlyitem-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
    flex-wrap: wrap;
}
.prod-onlyitem-toggle input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    accent-color: var(--admin-danger, #EF4444);
    flex-shrink: 0;
}
.prod-onlyitem-toggle input[type="checkbox"]:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}
.prod-onlyitem-icon {
    color: var(--admin-danger, #EF4444);
    display: inline-flex;
}
.prod-onlyitem-text {
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--navy, #0F172A);
}
.prod-onlyitem-state {
    font-size: 0.7rem;
    padding: 2px 10px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
    color: var(--admin-text-muted, #64748B);
}
.prod-onlyitem-card:has(input:checked) .prod-onlyitem-state {
    background: rgba(239, 68, 68, 0.12);
    color: var(--admin-danger, #EF4444);
}
.prod-onlyitem-hint {
    font-size: 0.72rem;
    color: var(--admin-text-muted, #94A3B8);
    margin: 8px 0 0;
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.prod-onlyitem-hint b { color: var(--admin-danger, #EF4444); }
@media (max-width: 640px) {
    .prod-onlyitem-card { padding: 10px 12px; }
}

/* ============================================================
 *  v3.55 — پرچم شمارش تحویل (کارت فیلتر گزارش تولید):
 *  «اقلام تحویل‌شده را در شمارش نیاور» — عدد گزارش = ماندهٔ
 *  تحویل‌نشده. فقط نگاه گزارش؛ انبار یکپارچه بی‌تغییر.
 *  (بج ستون «تحویل اقلام» همان .order-dlv-badge پنل سفارش‌هاست —
 *  بدون CSS جدید، زبان بصری واحد.)
 * ============================================================ */
.prod-count-flag {
    margin-top: 12px;
    padding: 10px 14px;
    border-top: 1px dashed rgba(0, 163, 224, 0.35);
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.prod-count-toggle {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
    flex-wrap: wrap;
}
.prod-count-toggle input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    cursor: pointer;
    accent-color: #0A9AD6;
    flex-shrink: 0;
}
.prod-count-icon {
    color: #0A9AD6;
    display: inline-flex;
}
.prod-count-text {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--navy, #0F172A);
}
.prod-count-state {
    font-size: 0.7rem;
    padding: 2px 10px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.18);
    color: var(--admin-text-muted, #64748B);
    transition: background 0.15s ease, color 0.15s ease;
}
.prod-count-flag:has(input:checked) .prod-count-state {
    background: rgba(16, 185, 129, 0.14);
    color: #059669;
}
.prod-count-flag:has(input:checked) {
    border-top-color: rgba(16, 185, 129, 0.45);
}
.prod-count-hint {
    font-size: 0.72rem;
    color: var(--admin-text-muted, #94A3B8);
    margin: 0;
    display: flex;
    gap: 6px;
    align-items: center;
    flex-wrap: wrap;
}
.prod-count-hint b { color: #059669; }
@media (max-width: 640px) {
    .prod-count-flag { padding: 8px 10px; }
    .prod-count-text { font-size: 0.8rem; }
}

/* نقطه رنگ در جدول قطعات */
.color-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid rgba(15, 23, 42, 0.2);
    margin-left: 5px;
    vertical-align: middle;
}
/* سلول‌های عددی جدول سفارشات */
.prod-num-cell {
    font-variant-numeric: tabular-nums;
    font-feature-settings: 'tnum';
    direction: ltr;
    text-align: left;
}

/* ============================================================
 *  ۷) Enhanced Thermal Invoice (80mm laser printer)
 *  ----------------------------------------------------------
 *  Border around invoice, fully bold, RTL-aligned, with proper
 *  margin for 8cm laser printers (use 80mm @page size).
 * ============================================================ */

/* Outer border around the entire invoice */
.inv-thermal {
    border: 2px solid #000 !important;
    padding: 4px 6px !important;
    margin: 0 !important;
    border-radius: 4px;
}

/* Make sure all text is bold and right-aligned by default for laser printing */
.inv-thermal,
.inv-thermal * {
    font-weight: 700 !important;
    text-align: right;
}
.inv-thermal .inv-thermal-table th,
.inv-thermal .inv-thermal-table td {
    text-align: right !important;
}
.inv-thermal .inv-thermal-table .col-num,
.inv-thermal .inv-thermal-table .col-qty {
    text-align: center !important;
}
.inv-thermal .inv-thermal-table .col-amount {
    text-align: left !important;
    font-variant-numeric: tabular-nums;
}

/* Ensure 80mm @page size with proper printable width */
@media print {
    @page {
        size: 80mm auto;
        margin: 2mm;
    }
    body {
        width: 76mm !important;
        margin: 0 auto !important;
        padding: 0 !important;
    }
    .inv-thermal {
        border: 2px solid #000 !important;
    }
}

/* Configurable widths for 72mm vs 80mm printers */
.inv-thermal.inv-thermal-72 {
    width: 72mm;
}
.inv-thermal.inv-thermal-80 {
    width: 80mm;
}

/* Make invoice title show school name */
.inv-thermal-title.inv-thermal-title-with-school {
    background: #000;
    color: #fff;
    font-size: 13px;
    padding: 4px 6px;
    border: 1px solid #000;
}

/* Footer text container — make it more readable */
.inv-thermal-footer.inv-thermal-footer-configurable {
    border-top: 2px solid #000 !important;
    padding: 6px 4px !important;
    margin-top: 4px !important;
    font-size: 11px !important;
    line-height: 1.6 !important;
    text-align: center !important;
}

/* Totals: always show remainder even if 0 */
.inv-thermal-totals .row.remainder-row.row-zero {
    background: #FAFAFA;
}

/* Hide "متغیر" / "variable" text in amount column — replace with empty */
.inv-thermal-table td.col-amount.no-amount {
    color: transparent;
    user-select: none;
}

/* Print only button — hidden in print */
.no-print-btn {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
}

/* ============================================================
 *  v3.9 — گزارش یکپارچه تولید (یک کاغذ) + چندوضعیتی
 * ============================================================ */

/* چند بج وضعیت در یک سلول (سفارش‌های چندوضعیتی) */
.prod-badge-stack {
    display: inline-flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 3px;
    vertical-align: middle;
}

/* لینک مشاهده سفارش در گزارش — کد سفارش / نام مشتری */
.prod-order-link,
a.prod-order-link {
    color: var(--primary, #00A3E0);
    text-decoration: none;
    cursor: pointer;
    border-bottom: 1px dashed rgba(0, 163, 224, 0.45);
    padding-bottom: 1px;
}
.prod-order-link:hover {
    color: var(--primary-dark, #0077A3);
    border-bottom-style: solid;
    background: rgba(0, 163, 224, 0.06);
    border-radius: 4px;
}

/* سلول‌های بلوک سفارش (rowspan) در جدول یکپارچه */
.production-report-table td.prod-order-cell {
    vertical-align: top;
    border-right-width: 2px;
}
.production-report-table td.prod-row-num {
    vertical-align: top;
    font-weight: 600;
}

/* بلوک سفارش — ردیف‌های بعدیِ همان سفارش کمی آرام‌تر دیده شوند */
.production-report-table tr.prod-order-block td {
    border-top: 1px solid var(--admin-border, #E2E8F0);
}

/* هاست فیلتر وضعیت چندانتخابی صفحه سفارشات (/admin#orders) */
.order-status-filter-host {
    flex: 1 1 220px;
    max-width: 320px;
}

/* ============================================================
 *  ۶-ب) v3.24 — نمای قطعه‌ای گزارش تولید (شاخص = قطعه × سایز)
 *  سوییچ نما + بلوک مدرسه + دکمه «+/− انبار» + جدول سایزها
 * ============================================================ */
.prod-view-switch {
    display: inline-flex;
    border: 1px solid var(--admin-border, #E2E8F0);
    border-radius: 8px;
    overflow: hidden;
    background: var(--admin-bg, #F8FAFC);
    direction: rtl;
}
.prod-view-btn {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 7px 14px;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--admin-text, #334155);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    transition: background 0.15s, color 0.15s;
}
.prod-view-btn + .prod-view-btn {
    border-right: 1px solid var(--admin-border, #E2E8F0);
}
.prod-view-btn:hover {
    background: rgba(0, 163, 224, 0.07);
}
.prod-view-btn.active {
    background: var(--primary, #00A3E0);
    color: #fff;
}
.prod-view-btn.active i { color: #fff; }

.prod-piece-card {
    margin-bottom: 16px;
}
.prod-piece-school-header {
    flex-wrap: wrap;
    gap: 6px 14px;
}
.prod-piece-school-name {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin: 0;
}
.prod-piece-school-meta {
    font-size: 0.78rem;
    color: var(--admin-text-muted, #64748B);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.prod-piece-meta-sep {
    color: var(--admin-border, #CBD5E1);
}
.prod-inv-print {
    font-size: 0.74rem;
    padding: 3px 10px;
    gap: 5px;
}
.prod-inv-print i {
    color: var(--primary, #00A3E0);
}
.prod-inv-print:hover {
    border-color: var(--primary, #00A3E0);
    background: rgba(0, 163, 224, 0.08);
}

/* جدول قطعه × سایز — ستون‌های سایز باریک و وسط‌چین */
.prod-pieces-table th.prod-pc-sizes-head {
    text-align: center;
    background: rgba(0, 163, 224, 0.08);
    color: var(--primary-dark, #0077A3);
    font-size: 0.74rem;
}
.prod-pieces-table tr.prod-pc-sizes-row th {
    text-align: center;
    font-size: 0.78rem;
    padding: 4px 6px;
    background: rgba(0, 163, 224, 0.05);
    white-space: nowrap;
}
.prod-pieces-table td.prod-pc-size {
    text-align: center;
    padding: 4px 6px;
    white-space: nowrap;
}
.prod-pieces-table td.prod-pc-name {
    font-weight: 600;
    white-space: nowrap;
}
.prod-pieces-table td.prod-pc-color {
    font-size: 0.78rem;
    white-space: nowrap;
}
.prod-pieces-table td.prod-pc-products {
    font-size: 0.72rem;
    color: var(--admin-text-muted, #64748B);
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.prod-pieces-foot-hint {
    font-size: 0.75rem;
    color: var(--admin-text-muted, #64748B);
    margin: 10px 4px 0;
    line-height: 1.8;
}
.prod-pieces-foot-hint i {
    color: var(--primary, #00A3E0);
}

@media (max-width: 640px) {
    .prod-view-switch {
        width: 100%;
    }
    .prod-view-btn {
        flex: 1;
        justify-content: center;
        padding: 8px 8px;
        font-size: 0.74rem;
    }
    .prod-piece-school-name {
        font-size: 0.92rem;
    }
    .prod-inv-print {
        order: 3;
    }
    .prod-piece-school-meta {
        width: 100%;
        font-size: 0.72rem;
    }
    /* جدول داخل .admin-table-wrap اسکرول افقی دارد — ستون حذف نمی‌شود
       تا تراز ستون‌ها به‌هم نریزد؛ فقط سلول‌ها فشرده‌تر می‌شوند. */
    .prod-pieces-table td, .prod-pieces-table th {
        padding: 4px 5px;
    }
}
