
/* IranFixit Design System v18.18 */
:root{
  --ifx-space-1:4px;--ifx-space-2:8px;--ifx-space-3:12px;--ifx-space-4:16px;--ifx-space-5:20px;--ifx-space-6:24px;
  --ifx-radius-sm:10px;--ifx-radius-md:14px;--ifx-radius-lg:20px;--ifx-radius-xl:26px;
  --ifx-shadow-card:0 10px 28px rgba(15,23,42,.07);--ifx-shadow-pop:0 24px 70px rgba(15,23,42,.22);
  --ifx-status-open:#2563eb;--ifx-status-good:#059669;--ifx-status-warn:#d97706;--ifx-status-danger:#dc2626;--ifx-status-muted:#64748b;
}
.ifx-card,.sa-card,.sa-panel,.catalog-card,.parts-panel,.parts-list,.supplier-panel,.supplier-lane{border-radius:var(--ifx-radius-lg)!important;box-shadow:var(--ifx-shadow-card)}
.ifx-btn,.btn,.sa-btn,.module-btn{min-height:42px;border-radius:var(--ifx-radius-md)!important;font-weight:950;touch-action:manipulation}
.ifx-control,.control,.sa-control{min-height:44px;border-radius:var(--ifx-radius-md)!important;font-family:var(--iranfixit-font)!important}
.ifx-table-wrap,.sa-table-wrap,.table-shell{border-radius:var(--ifx-radius-lg)!important;overflow:auto;-webkit-overflow-scrolling:touch}
.ifx-empty,.empty,.sa-empty{border:1px dashed var(--line,var(--sa-line,#dbe3ef));border-radius:var(--ifx-radius-lg);padding:24px;text-align:center;color:var(--muted,var(--sa-muted,#64748b));background:color-mix(in srgb,var(--surface,var(--sa-surface,#fff)) 88%,transparent)}
.ifx-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:950;border:1px solid transparent}.ifx-status.good{background:rgba(5,150,105,.12);color:var(--ifx-status-good)}.ifx-status.warn{background:rgba(217,119,6,.12);color:var(--ifx-status-warn)}.ifx-status.danger{background:rgba(220,38,38,.12);color:var(--ifx-status-danger)}.ifx-status.open{background:rgba(37,99,235,.12);color:var(--ifx-status-open)}.ifx-status.muted{background:rgba(100,116,139,.12);color:var(--ifx-status-muted)}
.ifx-responsive-list{display:grid;gap:8px}.ifx-list-row{display:grid;align-items:center;gap:10px;border:1px solid var(--line,var(--sa-line,#dbe3ef));background:var(--surface,var(--sa-surface,#fff));border-radius:16px;padding:11px}.ifx-row-title{font-weight:950;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ifx-row-sub{color:var(--muted,var(--sa-muted,#64748b));font-size:11px;line-height:1.7}.ifx-sticky-actions{position:sticky;bottom:0;background:linear-gradient(180deg,transparent,var(--surface,var(--sa-surface,#fff)) 30%);padding-top:10px}
.ifx-advanced{border:1px solid var(--line,var(--sa-line,#dbe3ef));border-radius:18px;background:var(--surface-2,var(--sa-surface-2,#f8fafc));padding:10px}.ifx-advanced>summary{cursor:pointer;font-weight:950;list-style:none}.ifx-advanced>summary::-webkit-details-marker{display:none}
.ifx-focus-ring :is(a,button,input,select,textarea):focus-visible, :is(a,button,input,select,textarea):focus-visible{outline:3px solid color-mix(in srgb,var(--brand,var(--sa-brand,#4f46e5)) 30%,transparent);outline-offset:2px}
.ifx-tac-15{direction:ltr;unicode-bidi:plaintext;display:inline-flex;align-items:center;gap:0;font-weight:1000;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.5px}.ifx-tac-15 .tac{color:#2563eb;background:rgba(37,99,235,.10);padding:4px 6px;border-radius:9px 0 0 9px}.ifx-tac-15 .serial{color:#0f766e;background:rgba(15,118,110,.10);padding:4px 6px;border-radius:0 9px 9px 0}
@media(max-width:760px){
  .ifx-mobile-card-table table,.sa-table{min-width:0!important}.ifx-mobile-card-table thead,.sa-table-wrap.mobile-cards thead{display:none}.ifx-mobile-card-table tr,.sa-table-wrap.mobile-cards tr{display:grid;gap:7px;border:1px solid var(--line,var(--sa-line,#dbe3ef));border-radius:16px;padding:10px;margin:8px;background:var(--surface,var(--sa-surface,#fff));box-shadow:var(--ifx-shadow-card)}.ifx-mobile-card-table td,.sa-table-wrap.mobile-cards td{display:grid;grid-template-columns:118px minmax(0,1fr);gap:8px;border:0!important;padding:4px!important}.ifx-mobile-card-table td:before,.sa-table-wrap.mobile-cards td:before{content:attr(data-label);color:var(--muted,var(--sa-muted,#64748b));font-size:11px;font-weight:950}
  .ifx-hide-mobile{display:none!important}.ifx-stack-mobile{grid-template-columns:1fr!important}.ifx-btn,.btn,.sa-btn{min-height:44px}.ifx-row-title{white-space:normal}
}

/* v18.21: central SaaS/product UI consolidation */
:root{--ifx-card-gap:12px;--ifx-touch:44px;--ifx-border:var(--line,var(--sa-line,#dbe3ef));--ifx-bg:var(--surface,var(--sa-surface,#fff));--ifx-soft:var(--surface-2,var(--sa-surface-2,#f8fafc))}
.ifx-page-shell,.sa-content,.content-wrap{max-width:100%;overflow-x:hidden}.ifx-section{display:grid;gap:var(--ifx-card-gap)}.ifx-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--ifx-card-gap)}.ifx-action-strip{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.ifx-action-strip .ifx-btn,.ifx-action-strip .btn,.ifx-action-strip .sa-btn{white-space:nowrap}.ifx-form-steps{display:grid;gap:12px}.ifx-form-step{border:1px solid var(--ifx-border);background:var(--ifx-bg);border-radius:var(--ifx-radius-lg);padding:14px}.ifx-form-step h3{margin:0 0 8px;font-size:15px}.ifx-form-step .hint{color:var(--muted,var(--sa-muted,#64748b));font-size:12px;line-height:1.8}.ifx-sidebar-safe{max-width:100vw;overflow-x:hidden}.ifx-next-action{border:1px solid color-mix(in srgb,var(--brand,var(--sa-brand,#4f46e5)) 26%,var(--ifx-border));background:linear-gradient(135deg,color-mix(in srgb,var(--brand,var(--sa-brand,#4f46e5)) 10%,transparent),var(--ifx-bg));border-radius:var(--ifx-radius-xl);padding:14px;display:flex;justify-content:space-between;gap:12px;align-items:center}.ifx-next-action b{display:block}.ifx-next-action p{margin:4px 0 0;color:var(--muted,var(--sa-muted,#64748b));line-height:1.7}.ifx-next-action a,.ifx-next-action button{flex:0 0 auto}.ifx-part-status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:10.5px;font-weight:950;border:1px solid var(--ifx-border);background:var(--ifx-soft)}.ifx-part-status.waiting_dispatch{color:#92400e;background:#fef3c7}.ifx-part-status.dispatched{color:#1d4ed8;background:#dbeafe}.ifx-part-status.delivered,.ifx-part-status.fulfilled{color:#047857;background:#d1fae5}.ifx-part-status.returned{color:#be123c;background:#ffe4e6}
@media(max-width:760px){.ifx-next-action{display:grid}.ifx-next-action a,.ifx-next-action button{width:100%}.ifx-action-strip{display:grid}.ifx-action-strip>*{width:100%}.sa-panel,.catalog-card,.supplier-panel,.supplier-lane{border-radius:18px!important}.sa-content{padding-inline:8px!important}.sa-form-grid,.form-grid,.filters-grid{grid-template-columns:1fr!important}.data-table,.sa-table{width:100%;min-width:0}.data-table thead{display:none}.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{border:1px solid var(--ifx-border);border-radius:16px;margin:8px 0;padding:8px;background:var(--ifx-bg)}.data-table td{border:0!important;padding:5px 4px!important}.data-table td[data-label]{display:grid;grid-template-columns:116px minmax(0,1fr);gap:8px}.data-table td[data-label]::before{content:attr(data-label);font-weight:950;color:var(--muted,var(--sa-muted,#64748b));font-size:11px}.modal-card,.sa-modal-card{width:min(100%,96vw)!important;max-height:calc(100dvh - 20px);overflow:auto}.ifx-hide-on-mobile{display:none!important}}

/* v18.25: missing form primitives used across supplier/workshop UI */
.ifx-field{display:grid;gap:6px;min-width:0}.ifx-field>span,.ifx-field>label{font-size:11px;font-weight:950;color:var(--muted,var(--sa-muted,#64748b))}.ifx-control{width:100%;border:1px solid var(--ifx-border);background:var(--field,var(--surface-2,var(--sa-surface-2,#f8fafc)));color:var(--text,var(--sa-text,#0f172a));padding:8px 11px;min-width:0}.ifx-btn{border:1px solid var(--ifx-border);background:var(--surface-2,var(--sa-surface-2,#f8fafc));color:var(--text,var(--sa-text,#0f172a));text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 13px;font-family:var(--iranfixit-font);cursor:pointer}.ifx-btn-primary{background:var(--brand,var(--sa-brand,#2563eb))!important;color:#fff!important;border-color:var(--brand,var(--sa-brand,#2563eb))!important}.ifx-card{background:var(--surface,var(--sa-surface,#fff));border:1px solid var(--line,var(--sa-line,#e2e8f0));box-shadow:var(--ifx-shadow-card)}

/* v18.27 password reveal primitive */
.ifx-password-wrap{position:relative!important;display:block}.ifx-password-wrap>input[type="password"],.ifx-password-wrap>input[type="text"]{padding-left:48px!important}.ifx-password-toggle{position:absolute;left:7px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:1px solid var(--ifx-border,var(--line,#dbe3ef));border-radius:12px;background:var(--surface-2,var(--sa-surface-2,#f8fafc));color:var(--muted,var(--sa-muted,#64748b));display:grid;place-items:center;cursor:pointer;font-size:16px;z-index:3}.ifx-password-toggle:hover{background:var(--brand-weak,#eef2ff);color:var(--brand,#2563eb)}.ifx-password-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--brand,#2563eb) 30%,transparent);outline-offset:2px}

/* v18.28 help button moved into sidebar footer */
.sidebar-footer-actions{display:flex;gap:6px;margin-top:8px}.sidebar-footer-help{min-height:32px;border:1px solid var(--line,var(--sa-line,#dbe3ef));background:var(--surface-2,var(--sa-surface-2,#f8fafc));color:var(--text,var(--sa-text,#0f172a));border-radius:11px;padding:0 10px;font-size:11px;font-weight:950;text-decoration:none;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:var(--iranfixit-font,inherit)}.sidebar-footer-help svg{width:15px;height:15px}.sidebar-footer-help:hover{background:var(--brand-weak,#eef2ff);color:var(--brand,#2563eb)}

/* v18.29: global cache-safe UI normalization */
.ifx-page,.ifx-card,.sa-content,.main{min-width:0;max-width:100%;overflow-wrap:anywhere}.ifx-card{background:var(--surface,#fff);border:1px solid var(--line,#e2e8f0);border-radius:22px;box-shadow:0 10px 30px rgba(15,23,42,.06)}.ifx-btn{min-height:40px;border-radius:13px;border:1px solid var(--line,#e2e8f0);background:var(--surface,#fff);color:var(--text,#0f172a);padding:8px 12px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:950;cursor:pointer}.ifx-btn-primary{background:var(--brand,#4f46e5)!important;color:#fff!important;border-color:var(--brand,#4f46e5)!important}.ifx-field{display:grid;gap:6px}.ifx-field span,.ifx-field label{font-size:11px;font-weight:950;color:var(--muted,#64748b)}.ifx-control{width:100%;min-height:42px;border:1px solid var(--line,#e2e8f0);border-radius:13px;background:var(--surface,#fff);color:var(--text,#0f172a);padding:8px 10px;font:inherit}.ifx-empty{border:1px dashed var(--line,#e2e8f0);border-radius:16px;background:var(--surface-2,#f8fafc);color:var(--muted,#64748b);padding:16px}.sidebar-footer-help{min-height:32px;border:1px solid var(--line,#e2e8f0);background:var(--surface,#fff);border-radius:12px;color:var(--muted,#64748b);display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;font-weight:950;padding:5px 9px}.sidebar-footer-help:hover{background:var(--brand-weak,#eef2ff);color:var(--brand,#2563eb)}
@media(max-width:760px){.ifx-btn{width:100%}.ifx-card{border-radius:18px}.desktop-table{display:none!important}.mobile-card-list{display:grid!important;gap:10px!important}}
