Files
fabric_trade_admin/src/assets/styles/responsive.css
T
safavimohadeseh78andCursor 1c3c494a43 Improve order detail UX, confirm check actions, and fix notification deep links.
Normalize inbox /orders/:id links, open related admin pages on click, and keep Jalali dates consistent.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-09 14:32:09 +02:00

409 lines
7.2 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* Admin responsive breakpoints:
xs (small mobile): below 480px
sm (mobile): 480px – 767px
md (tablet): 768px – 1023px
lg (small desktop): 1024px – 1279px
xl (desktop): 1280px – 1439px
2xl (large desktop): 1440px+
*/
:root {
--page-padding-mobile: 16px;
--page-padding-tablet: 20px;
--page-padding-desktop: 28px;
--page-padding: var(--page-padding-mobile);
--mobile-nav-height: 0px;
--drawer-width: min(300px, 88vw);
--admin-desktop-min: 1280px;
}
@media (min-width: 768px) {
:root {
--page-padding: var(--page-padding-tablet);
}
}
@media (min-width: 1280px) {
:root {
--page-padding: var(--page-padding-desktop);
}
}
/* Visibility utilities — desktop layout is source of truth at >= 1280px */
.desktop-only {
display: none !important;
}
.compact-only {
display: block;
}
@media (min-width: 1280px) {
.desktop-only {
display: revert !important;
}
.desktop-only.admin-shell__sidebar,
.desktop-only.admin-sidebar {
display: flex !important;
}
.desktop-only.orders-page,
.desktop-only.dashboard {
display: block !important;
}
.compact-only {
display: none !important;
}
}
/* Mobile drawer overlay */
.admin-drawer-backdrop {
position: fixed;
inset: 0;
z-index: 900;
background: rgba(15, 23, 42, 0.45);
opacity: 0;
visibility: hidden;
transition: opacity 0.2s, visibility 0.2s;
}
.admin-drawer-backdrop.open {
opacity: 1;
visibility: visible;
}
.admin-drawer {
position: fixed;
top: 0;
right: 0;
z-index: 901;
width: var(--drawer-width);
height: 100dvh;
background: var(--color-sidebar-bg);
color: #fff;
transform: translateX(100%);
transition: transform 0.25s ease;
display: flex;
flex-direction: column;
overflow: hidden;
}
.admin-drawer.open {
transform: translateX(0);
}
/* Compact card list pattern */
.admin-card-list {
display: flex;
flex-direction: column;
gap: 10px;
}
.admin-card-item {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
padding: 14px 16px;
text-align: right;
width: 100%;
transition: border-color 0.15s, background 0.15s;
}
.admin-card-item:hover {
border-color: #cbd5e1;
}
.admin-card-item.selected {
border-color: var(--color-primary);
background: var(--color-info-light);
}
.admin-card-item__header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
margin-bottom: 8px;
}
.admin-card-item__header-actions {
display: flex;
align-items: center;
gap: 8px;
flex-shrink: 0;
}
.admin-card-item__title {
margin: 0;
font-size: 0.875rem;
font-weight: 700;
}
.admin-card-item__meta {
display: flex;
flex-wrap: wrap;
gap: 8px 16px;
font-size: 0.8125rem;
color: var(--color-text-muted);
}
.admin-card-item__meta span strong {
color: var(--color-text);
font-weight: 600;
}
.admin-card-item__actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 12px;
padding-top: 12px;
border-top: 1px solid var(--color-border-light);
}
/* Full-screen detail panel (mobile) */
.admin-detail-panel {
position: fixed;
inset: 0;
z-index: 850;
background: var(--color-bg);
display: flex;
flex-direction: column;
transform: translateX(100%);
transition: transform 0.25s ease;
}
.admin-detail-panel.open {
transform: translateX(0);
}
.admin-detail-panel__header {
flex-shrink: 0;
display: flex;
align-items: center;
gap: 12px;
padding: 12px var(--page-padding);
background: var(--color-surface);
border-bottom: 1px solid var(--color-border);
}
.admin-detail-panel__back {
width: 40px;
height: 40px;
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
background: var(--color-surface);
display: flex;
align-items: center;
justify-content: center;
color: var(--color-text);
flex-shrink: 0;
}
.admin-detail-panel__title {
margin: 0;
font-size: 1rem;
font-weight: 700;
}
.admin-detail-panel__body {
flex: 1;
overflow-y: auto;
padding: var(--page-padding);
}
/* Compact page header */
.compact-page-header {
display: flex;
flex-direction: column;
gap: 12px;
margin-bottom: 16px;
}
.compact-page-header__row {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 12px;
}
.compact-page-header__title {
margin: 0;
font-size: 1.125rem;
font-weight: 700;
}
.compact-page-header__breadcrumb {
margin: 4px 0 0;
font-size: 0.8125rem;
color: var(--color-text-muted);
}
.compact-page-header__actions {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
@media (min-width: 768px) {
.compact-page-header__row {
align-items: center;
}
.compact-page-header__actions {
flex-shrink: 0;
}
}
/* Stat grid for compact dashboard */
.compact-stats-grid {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
margin-bottom: 16px;
}
@media (min-width: 480px) {
.compact-stats-grid {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 768px) {
.compact-stats-grid {
grid-template-columns: repeat(3, 1fr);
}
}
.compact-section-grid {
display: flex;
flex-direction: column;
gap: 16px;
}
.compact-section-card {
background: var(--color-surface);
border: 1px solid var(--color-border);
border-radius: var(--radius-lg);
padding: 16px;
box-shadow: var(--shadow-sm);
}
.compact-section-card__title {
margin: 0 0 12px;
font-size: 0.9375rem;
font-weight: 700;
}
/* Tablet / compact desktop: keep multi-column layouts usable in modals */
@media (max-width: 1279px) {
.admin-shell__content {
padding: var(--page-padding);
}
.admin-summary-grid {
grid-template-columns: repeat(2, 1fr);
}
.admin-form-grid {
grid-template-columns: repeat(2, 1fr);
}
.admin-info-grid {
grid-template-columns: repeat(2, 1fr);
}
.admin-pagination {
flex-direction: column;
gap: 12px;
align-items: stretch;
}
.admin-pagination__pages {
justify-content: center;
flex-wrap: wrap;
}
.admin-tab {
padding: 10px 12px;
font-size: 0.8125rem;
}
.admin-page-header .admin-action-group {
flex-wrap: wrap;
gap: 8px;
}
}
/* Phone only: stack to single column / action sheet */
@media (max-width: 767px) {
:root {
--header-height: 60px;
}
.admin-page-header {
flex-direction: column;
align-items: stretch;
}
.admin-page-header .admin-btn,
.admin-page-header .admin-action-group {
width: 100%;
}
.admin-page-header .admin-action-group .admin-btn {
flex: 1;
min-width: fit-content;
}
.admin-summary-grid,
.admin-form-grid,
.admin-info-grid {
grid-template-columns: 1fr;
}
.admin-footer-actions {
flex-direction: column;
}
.admin-footer-actions .admin-btn {
width: 100%;
}
.admin-form__row {
grid-template-columns: 1fr;
}
.admin-tab {
padding: 8px 10px;
font-size: 0.75rem;
}
.admin-modal-backdrop {
padding: 0;
align-items: flex-end;
}
.admin-modal {
max-width: 100%;
max-height: 92dvh;
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}
.checks-page__footer {
flex-direction: column;
align-items: stretch;
}
.checks-page__footer .admin-action-group {
flex-direction: column;
width: 100%;
}
.checks-page__footer .admin-action-group .admin-btn {
width: 100%;
}
}