Improve product cards/pagination, Farsi locale fonts, and super-admin migrate UI.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Alireza Hassani
2026-07-29 16:10:43 +03:30
co-authored by Cursor
parent 2e40d5eb4c
commit f5b2193ba1
108 changed files with 2421 additions and 812 deletions
@@ -60,6 +60,140 @@
color: var(--text-muted);
}
.entityGroupLabel {
font-size: 12px;
font-weight: 500;
color: var(--text-secondary);
}
.entityChecks {
display: flex;
flex-direction: column;
gap: 0;
margin-top: 8px;
}
.entityGroup {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 10px 16px;
padding: 12px 0;
border-bottom: 1px solid rgba(148, 163, 184, 0.28);
}
.entityGroup:last-child {
border-bottom: none;
padding-bottom: 4px;
}
.entityGroup:first-child {
padding-top: 4px;
}
.entityGroupTitle {
font-size: 13px;
font-weight: 600;
color: var(--text-primary);
line-height: 1.3;
min-width: 88px;
flex-shrink: 0;
}
.entityNestedChecks {
display: flex;
flex-direction: row;
flex-wrap: wrap;
align-items: center;
gap: 8px 18px;
}
.entityCheck {
display: flex;
align-items: center;
gap: 8px;
font-size: 13px;
color: var(--text-primary);
cursor: pointer;
width: fit-content;
max-width: 100%;
}
.field .entityCheck input[type='checkbox'],
.entityCheck input[type='checkbox'],
.field .entityCheck input[type='radio'],
.entityCheck input[type='radio'] {
appearance: auto;
-webkit-appearance: auto;
width: 16px;
height: 16px;
min-width: 16px;
min-height: 16px;
margin: 0;
padding: 0;
flex-shrink: 0;
border: none;
border-radius: 0;
background: transparent;
box-shadow: none;
cursor: pointer;
}
.entityCheck span {
line-height: 1.3;
}
.alertError {
margin: 0 0 12px;
padding: 12px 14px;
border-radius: var(--radius-sm);
font-size: 13px;
line-height: 1.5;
background: rgba(239, 68, 68, 0.08);
border: 1px solid rgba(239, 68, 68, 0.25);
color: #b91c1c;
}
.alertInfo {
margin: 0 0 12px;
padding: 12px 14px;
border-radius: var(--radius-sm);
font-size: 13px;
line-height: 1.5;
background: rgba(59, 130, 246, 0.08);
border: 1px solid rgba(59, 130, 246, 0.25);
color: #1d4ed8;
}
.alertSuccess {
margin: 0 0 12px;
padding: 12px 14px;
border-radius: var(--radius-sm);
font-size: 13px;
line-height: 1.5;
background: rgba(34, 197, 94, 0.08);
border: 1px solid rgba(34, 197, 94, 0.28);
color: #166534;
}
.migrateResultTitle {
margin: 0;
font-weight: 600;
}
.migrateResultList {
margin: 8px 0 0;
padding-inline-start: 18px;
display: flex;
flex-direction: column;
gap: 4px;
}
.migrateResultList strong {
font-weight: 600;
}
.field input,
.field select,
.field textarea {
@@ -182,6 +316,17 @@
transform: translateY(-1px);
}
.btnDanger {
color: white;
background: linear-gradient(135deg, #f87171 0%, #ef4444 55%, #dc2626 100%);
box-shadow: 0 4px 14px rgba(239, 68, 68, 0.28);
border: none;
}
.btnDanger:hover:not(:disabled) {
transform: translateY(-1px);
}
.tablePanel {
margin-top: 12px;
padding: 0;