/* App shell page layouts — 768px and above */ @media (min-width: 768px) { :root { --page-padding: var(--page-padding-tablet); --nav-height: 0px; } .page { padding: 20px var(--page-padding-tablet) 28px; background: transparent; max-width: var(--content-max-width); margin-inline: auto; width: 100%; overflow: visible; min-height: auto; flex: 1 0 auto; } .page__scroll { overflow: visible; flex: none; min-height: auto; } .page__scroll--with-nav { padding-bottom: 0; } /* Shared page headings */ .page-head { margin-bottom: 20px; } .page-head__title { margin: 0 0 4px; font-size: 1.25rem; font-weight: 700; color: var(--color-text); } .page-head__subtitle { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); } /* Orders dashboard */ .orders-page__desktop-head { margin-bottom: 20px; } .orders-page__desktop-title { margin: 0 0 6px; font-size: 1.375rem; font-weight: 700; color: var(--color-text); } .orders-page__desktop-subtitle { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); } .orders-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; } .orders-stat-card { padding: 16px 18px 14px; background: var(--color-surface); border-radius: var(--radius-md); border: 1px solid var(--color-border); box-shadow: var(--shadow-sm); display: flex; flex-direction: column; align-items: stretch; gap: 0; min-height: 0; } .orders-stat-card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; } .orders-stat-card__label { font-size: 0.8125rem; font-weight: 600; line-height: 1.4; } .orders-stat-card__label--total, .orders-stat-card__label--review { color: var(--color-text); } .orders-stat-card__label--active { color: #ea580c; } .orders-stat-card__label--done { color: var(--color-success); } .orders-stat-card__value { font-size: 1.75rem; font-weight: 700; color: var(--color-text); line-height: 1.15; margin: 0 0 12px; font-variant-numeric: tabular-nums; } .orders-stat-card__link { margin-top: auto; padding: 0; border: none; background: none; color: var(--color-primary); font-family: inherit; font-size: 0.8125rem; font-weight: 600; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; align-self: flex-start; } .orders-stat-card__link:hover { color: var(--color-primary-hover); } .orders-stat-card__icon { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .orders-stat-card__icon--total { background: var(--color-primary-soft); color: var(--color-primary); } .orders-stat-card__icon--review { background: var(--color-primary-soft); color: var(--color-primary); } .orders-stat-card__icon--active { background: var(--color-warning-light); color: #ea580c; } .orders-stat-card__icon--done { background: var(--color-success-soft); color: var(--color-success); } .orders-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; flex-wrap: wrap; } .orders-toolbar__actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .orders-toolbar__filter-btn { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 18px; border: none; border-radius: var(--radius-sm); background: var(--color-primary); color: #fff; font-family: inherit; font-size: 0.875rem; font-weight: 600; cursor: pointer; white-space: nowrap; } .orders-toolbar__filter-btn:hover { background: var(--color-primary-hover); } .orders-toolbar__pills { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 1; min-width: 0; justify-content: flex-end; } .orders-filter-pill { height: 36px; padding: 0 16px; border: 1px solid var(--color-border); border-radius: 999px; background: var(--color-surface); color: var(--color-text-muted); font-family: inherit; font-size: 0.8125rem; font-weight: 500; cursor: pointer; white-space: nowrap; transition: background 0.15s, color 0.15s, border-color 0.15s; } .orders-filter-pill:hover { border-color: #cbd5e1; color: var(--color-text); } .orders-filter-pill--active { background: var(--color-primary-soft); border-color: #c7d7ff; color: var(--color-primary); font-weight: 600; } .orders-table-wrap { background: var(--color-surface); border-radius: var(--radius-md); border: 1px solid var(--color-border); box-shadow: var(--shadow-card); overflow: hidden; } .orders-table-scroll { overflow-x: auto; } .orders-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; min-width: 720px; } .orders-table th { padding: 14px 16px; text-align: start; font-weight: 600; font-size: 0.8125rem; color: var(--color-text-muted); background: var(--color-bg); border-bottom: 1px solid var(--color-border); white-space: nowrap; } .orders-table td { padding: 16px; border-bottom: 1px solid var(--color-border); color: var(--color-text); vertical-align: middle; background: var(--color-surface); } .orders-table tr:last-child td { border-bottom: none; } .orders-table tbody tr:hover td { background: var(--color-elevated); } .orders-table__number { font-weight: 700; color: var(--color-text); white-space: nowrap; } .orders-table__amount { font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; } .orders-table__date { color: var(--color-text-muted); font-size: 0.8125rem; white-space: nowrap; } .orders-table__actions { display: flex; align-items: center; gap: 8px; } .orders-table__action { padding: 7px 16px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-primary); font-size: 0.8125rem; font-weight: 600; cursor: pointer; font-family: inherit; white-space: nowrap; } .orders-table__action:hover { background: var(--color-primary-soft); border-color: #c7d7ff; } .orders-table__menu { width: 34px; height: 34px; border: none; border-radius: var(--radius-sm); background: transparent; color: var(--color-text-muted); cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; } .orders-table__menu:hover { background: var(--color-elevated); color: var(--color-text); } .orders-pagination { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border-top: 1px solid var(--color-border); font-size: 0.8125rem; color: var(--color-text-muted); flex-wrap: wrap; } .orders-pagination__summary { white-space: nowrap; } .orders-pagination__controls { display: flex; align-items: center; gap: 4px; } .orders-pagination__arrow { width: 32px; height: 32px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); cursor: pointer; display: flex; align-items: center; justify-content: center; padding: 0; color: var(--color-text); } .orders-pagination__arrow:disabled { opacity: 0.4; cursor: not-allowed; } .orders-pagination__arrow:not(:disabled):hover { border-color: var(--color-primary); color: var(--color-primary); } .orders-pagination__arrow-icon--prev { transform: scaleX(-1); } .orders-pagination__arrow-icon--next { transform: none; } .orders-pagination__ellipsis { min-width: 24px; text-align: center; color: var(--color-text-muted); } .orders-pagination__page { min-width: 32px; height: 32px; padding: 0 6px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); cursor: pointer; font-family: inherit; font-size: 0.8125rem; color: var(--color-text); } .orders-pagination__page:hover:not(.orders-pagination__page--active) { border-color: var(--color-primary); color: var(--color-primary); } .orders-pagination__page--active { background: var(--color-primary); border-color: var(--color-primary); color: #fff; font-weight: 600; } /* Product page desktop layout */ .product-page__layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; align-items: start; } .product-page__main { min-width: 0; } .product-page__sidebar { position: sticky; top: 16px; } .cart-summary-panel { padding: 20px; background: var(--color-surface); border-radius: var(--radius-md); border: 1px solid var(--color-border); box-shadow: var(--shadow-card); } .cart-summary-panel__title { margin: 0 0 16px; font-size: 0.9375rem; font-weight: 700; color: var(--color-text); padding-bottom: 12px; border-bottom: 1px solid var(--color-border); } .cart-summary-panel__row { display: flex; justify-content: space-between; align-items: center; padding: 8px 0; font-size: 0.875rem; } .cart-summary-panel__row span:first-child { color: var(--color-text-muted); } .cart-summary-panel__row strong { color: var(--color-text); } .cart-summary-panel__btn { margin-top: 16px; } .product-page__scroll { padding-bottom: 0; } .product-page .sticky-footer { display: none; } .product-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } /* Cart desktop */ .cart-page { max-width: var(--content-max-width); margin-inline: auto; padding: 20px var(--page-padding-tablet) 28px; background: transparent; } .cart-page__desktop-title { margin: 0 0 16px; font-size: 1.25rem; font-weight: 700; } .cart-page__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 320px); gap: 20px 24px; align-items: start; } .cart-page__company { grid-column: 1 / -1; } /* Order detail desktop */ .order-detail-page { max-width: none; margin-inline: 0; padding: 24px var(--page-padding) 32px; background: transparent; height: 100%; overflow: hidden; } .order-detail-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 12px; padding: 0; border: none; background: none; color: var(--color-primary); font-family: inherit; font-size: 0.875rem; font-weight: 600; cursor: pointer; } /* Company select desktop */ .company-select-page { max-width: var(--content-max-width); margin-inline: auto; padding: 24px var(--page-padding-desktop); background: transparent; } /* Catalog desktop */ .catalog-page { background: transparent; } .catalog-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } /* Profile desktop */ .profile-page { background: transparent; } .profile-hero { border-radius: var(--radius-md); margin-inline: 0; } } @media (min-width: 1200px) { :root { --page-padding: var(--page-padding-desktop); } .page { padding: 24px var(--page-padding-desktop) 32px; } .orders-stats { gap: 16px; margin-bottom: 24px; } .orders-page__desktop-head { margin-bottom: 24px; } .orders-toolbar { margin-bottom: 20px; } .catalog-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } .product-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }