diff --git a/assets/css/routes/orders.css b/assets/css/routes/orders.css index 5a2ac9ad..a0b1010f 100644 --- a/assets/css/routes/orders.css +++ b/assets/css/routes/orders.css @@ -1,10 +1,12 @@ /** - * AKSRT Orders Page — zibll-aligned - * 订单中心页面样式 + * AKSRT Orders — user-center embedded + legacy shell + * 订单中心:卡片 / 状态 tab / 统计 / 售后 */ +/* ==================== Shell ==================== */ .aksrt-orders-page { padding: 24px 0; + color: var(--color-ink, #1f2329); } .aksrt-orders-page__header h1 { @@ -15,284 +17,767 @@ } .aksrt-orders-page__header p { - color: var(--color-ink-3); + color: var(--color-ink-3, #8b8f97); margin: 0 0 20px; } -/* ===== Filter chips ===== */ -.aksrt-orders-page__filters { +/* UC embed: no outer page padding */ +.uc-orders-panel.aksrt-orders-page { + padding: 0; + max-width: 100%; +} + +.uc-orders-panel__head { + gap: 12px; + margin-bottom: 4px; + padding: 2px 2px 12px; + border-bottom: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 80%, transparent); +} + +.uc-orders-panel__head .font-bold { + letter-spacing: 0.01em; +} + +/* ==================== Stats ==================== */ +.aksrt-orders-page__stats { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; + margin: 0 0 18px; +} + +.aksrt-orders-page__stat { + position: relative; + padding: 16px 18px; + border-radius: var(--radius-xl, 14px); + border: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 90%, transparent); + background: + linear-gradient( + 145deg, + color-mix(in srgb, var(--surface-1, #fff) 92%, var(--color-primary, #3b82f6) 8%), + var(--surface-1, #fff) 55% + ); + box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); + display: flex; + flex-direction: column; + gap: 8px; + overflow: hidden; + transition: transform 0.18s ease, box-shadow 0.18s ease; +} + +.aksrt-orders-page__stat::after { + content: ""; + position: absolute; + right: -12px; + top: -12px; + width: 64px; + height: 64px; + border-radius: 50%; + background: color-mix(in srgb, var(--color-primary, #3b82f6) 10%, transparent); + pointer-events: none; +} + +.aksrt-orders-page__stat:hover { + transform: translateY(-1px); + box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06); +} + +.aksrt-orders-page__stat-label { + font-size: 12px; + font-weight: 500; + color: var(--color-ink-3, #8b8f97); + letter-spacing: 0.02em; +} + +.aksrt-orders-page__stat-value { + font-size: 24px; + font-weight: 750; + color: var(--color-ink, #1f2329); + line-height: 1.1; + font-variant-numeric: tabular-nums; +} + +.aksrt-orders-page__stat-value.c-red { + color: var(--color-error, #ef4444); +} + +.aksrt-orders-page__stat-value.c-green { + color: var(--color-success, #16a34a); +} + +/* ==================== Extra nav (sections) ==================== */ +.aksrt-orders-page__extra-nav { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin: 0 0 14px; +} + +.aksrt-orders-page__extra-link { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 7px 14px; + border-radius: 999px; + border: 1px solid var(--color-line, #e5e7eb); + background: var(--surface-4, var(--surface-2, #f6f7f9)); + color: var(--color-ink-2, #4b5563); + font-size: 13px; + font-weight: 550; + text-decoration: none; + transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease; +} + +.aksrt-orders-page__extra-link:hover { + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 35%, var(--color-line, #e5e7eb)); + color: var(--color-primary, #3b82f6); + background: color-mix(in srgb, var(--color-primary, #3b82f6) 8%, var(--surface-1, #fff)); +} + +.aksrt-orders-page__extra-link.is-active { + background: color-mix(in srgb, var(--color-primary, #3b82f6) 12%, var(--surface-1, #fff)); + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 40%, var(--color-line, #e5e7eb)); + color: var(--color-primary, #3b82f6); + box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, #3b82f6) 12%, transparent); +} + +/* ==================== Type filter chips ==================== */ +.aksrt-orders-page__filters, +.aksrt-orders-page__type-filters { display: flex; gap: 8px; flex-wrap: wrap; - margin-bottom: 20px; + margin: 0 0 14px; } .aksrt-orders-page__filter-chip { - padding: 6px 16px; - border-radius: var(--radius-pill); - border: 1px solid var(--color-line); - background: var(--surface-4); - font-size: 13px; - font-weight: 500; + padding: 6px 14px; + border-radius: 999px; + border: 1px solid var(--color-line, #e5e7eb); + background: var(--surface-1, #fff); + font-size: 12.5px; + font-weight: 550; text-decoration: none; - color: var(--color-ink-2); - transition: all var(--dur-fast) var(--ease); + color: var(--color-ink-2, #4b5563); + transition: all 0.15s ease; + line-height: 1.4; +} + +.aksrt-orders-page__filter-chip:hover { + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 40%, var(--color-line, #e5e7eb)); + color: var(--color-primary, #3b82f6); } -.aksrt-orders-page__filter-chip:hover, .aksrt-orders-page__filter-chip.is-active { - background: var(--color-primary); - color: var(--color-on-primary); - border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-line, #e5e7eb)); + background: var(--color-primary, #3b82f6); + color: var(--color-on-primary, #fff); + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 55%, #000 0%); + box-shadow: 0 4px 12px color-mix(in srgb, var(--color-primary, #3b82f6) 28%, transparent); } -/* ===== Order list ===== */ +/* ==================== Status tabs ==================== */ +.aksrt-orders-page__tabs { + display: flex; + gap: 4px; + flex-wrap: nowrap; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + scrollbar-width: thin; + margin: 0 0 16px; + padding: 4px; + border-radius: 12px; + background: var(--surface-2, #f3f4f6); + border: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 70%, transparent); +} + +.aksrt-orders-page__tab { + position: relative; + flex: 1 0 auto; + display: inline-flex; + align-items: center; + justify-content: center; + gap: 6px; + min-width: 72px; + padding: 9px 14px; + border-radius: 9px; + font-size: 13px; + font-weight: 600; + color: var(--color-ink-2, #4b5563); + text-decoration: none; + white-space: nowrap; + transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; +} + +.aksrt-orders-page__tab:hover { + color: var(--color-ink, #1f2329); + background: color-mix(in srgb, var(--surface-1, #fff) 70%, transparent); +} + +.aksrt-orders-page__tab.is-active { + background: var(--surface-1, #fff); + color: var(--color-primary, #3b82f6); + box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08), 0 0 0 1px color-mix(in srgb, var(--color-line, #e5e7eb) 60%, transparent); +} + +.aksrt-orders-page__tab-badge { + display: inline-flex; + align-items: center; + justify-content: center; + min-width: 18px; + height: 18px; + padding: 0 5px; + border-radius: 999px; + background: var(--color-error, #ef4444); + color: #fff; + font-size: 11px; + font-weight: 700; + line-height: 1; +} + +.uc-orders-panel .aksrt-orders-page__tab-badge { + margin-left: 2px; +} + +/* ==================== Order cards ==================== */ .aksrt-orders-page__list { display: grid; - gap: 16px; + gap: 14px; } -.aksrt-orders-page__item { - background: var(--surface-1); - border: none; - border-radius: var(--radius-2xl, 16px); - box-shadow: var(--shadow-sm); +.aksrt-orders-page__card { + background: var(--surface-1, #fff); + border: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 88%, transparent); + border-radius: var(--radius-xl, 14px); + box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); overflow: hidden; - transition: box-shadow var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease); + transition: box-shadow 0.18s ease, border-color 0.18s ease, transform 0.18s ease; } -.aksrt-orders-page__item:hover { - box-shadow: var(--shadow); +.aksrt-orders-page__card:hover { + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 22%, var(--color-line, #e5e7eb)); + box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07); } -.aksrt-orders-page__item-main { +.aksrt-orders-page__card-head { display: flex; - justify-content: space-between; + flex-wrap: wrap; align-items: center; - padding: 16px 20px; - gap: 16px; + gap: 8px 10px; + padding: 12px 16px; + background: color-mix(in srgb, var(--surface-2, #f6f7f9) 88%, transparent); + border-bottom: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 75%, transparent); } -.aksrt-orders-page__item-info { +.aksrt-orders-page__card-type { + display: inline-flex; + align-items: center; + padding: 2px 9px; + border-radius: 999px; + background: color-mix(in srgb, var(--color-primary, #3b82f6) 12%, transparent); + color: var(--color-primary, #3b82f6); + font-size: 12px; + font-weight: 650; + letter-spacing: 0.01em; +} + +.aksrt-orders-page__card-number { + font-size: 12.5px; + font-weight: 600; + color: var(--color-ink-2, #4b5563); + font-variant-numeric: tabular-nums; + font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace); +} + +.aksrt-orders-page__card-time { + margin-left: auto; + font-size: 12px; + color: var(--color-ink-3, #8b8f97); +} + +.aksrt-orders-page__card-status { + font-size: 12.5px; + font-weight: 700; + color: var(--color-primary, #3b82f6); + padding: 2px 0; +} + +/* line items */ +.aksrt-orders-page__card-items { + display: grid; + gap: 12px; + padding: 14px 16px 6px; +} + +.aksrt-orders-page__card-item { + display: grid; + grid-template-columns: 64px minmax(0, 1fr) auto; + gap: 12px; + align-items: center; +} + +.aksrt-orders-page__card-img { + width: 64px; + height: 64px; + border-radius: 10px; + object-fit: cover; + background: var(--surface-3, #eef0f3); + border: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 70%, transparent); +} + +.aksrt-orders-page__card-item-info { + min-width: 0; display: grid; gap: 4px; } -.aksrt-orders-page__item-number { - font-weight: 600; +.aksrt-orders-page__card-item-title { font-size: 14px; - color: var(--color-ink); + font-weight: 650; + color: var(--color-ink, #1f2329); + line-height: 1.4; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; } -.aksrt-orders-page__item-product { - color: var(--color-ink-2); - font-size: 14px; -} - -.aksrt-orders-page__item-time { +.aksrt-orders-page__card-item-opts { font-size: 12px; - color: var(--color-ink-4); + color: var(--color-ink-3, #8b8f97); } -.aksrt-orders-page__item-meta { +.aksrt-orders-page__card-item-price { text-align: right; display: grid; - gap: 6px; + gap: 2px; + justify-items: end; + font-variant-numeric: tabular-nums; } -.aksrt-orders-page__item-amount { - font-size: 18px; +.aksrt-orders-page__card-item-price strong { + font-size: 14px; font-weight: 700; - color: var(--color-error); + color: var(--color-ink, #1f2329); } -.aksrt-orders-page__item-badge { - display: inline-block; +.aksrt-orders-page__card-item-price span { font-size: 12px; - padding: 2px 10px; - border-radius: var(--radius-pill); - background: var(--surface-3); - color: var(--color-ink-2); - font-weight: 500; + color: var(--color-ink-3, #8b8f97); } -/* ===== Summary row ===== */ -.aksrt-orders-page__summary { +.aksrt-orders-page__card-summary { display: flex; - gap: 24px; - padding: 12px 20px; - background: var(--surface-2); - border-top: 1px solid var(--color-line); - border-bottom: 1px solid var(--color-line); -} - -.aksrt-orders-page__summary div { - display: flex; - gap: 6px; + flex-wrap: wrap; + align-items: baseline; + justify-content: flex-end; + gap: 8px; + padding: 8px 16px 4px; font-size: 13px; + color: var(--color-ink-2, #4b5563); } -.aksrt-orders-page__summary span { - color: var(--color-ink-4); +.aksrt-orders-page__card-summary strong { + font-size: 18px; + font-weight: 750; + color: var(--color-error, #ef4444); + font-variant-numeric: tabular-nums; } -/* ===== Details grid ===== */ -.aksrt-orders-page__details { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 16px; - padding: 16px 20px; -} - -.aksrt-orders-page__detail-block h2 { +.aksrt-orders-page__card-summary small { + color: var(--color-ink-3, #8b8f97); font-size: 12px; - color: var(--color-ink-4); - margin: 0 0 6px; - font-weight: 600; - text-transform: uppercase; - letter-spacing: 0.5px; } -.aksrt-orders-page__detail-block p { +/* logistics */ +.aksrt-orders-page__timeline { + margin: 6px 16px 0; + padding: 10px 12px; + border-radius: 10px; + background: var(--surface-2, #f6f7f9); + border: 1px dashed color-mix(in srgb, var(--color-line, #e5e7eb) 90%, transparent); +} + +.aksrt-orders-page__timeline-toggle { margin: 0; font-size: 13px; - color: var(--color-ink-2); -} - -.aksrt-orders-page__shipping-info { - display: flex; - gap: 8px; - align-items: center; - flex-wrap: wrap; -} - -.aksrt-orders-page__carrier { font-weight: 600; - font-size: 13px; - color: var(--color-ink); -} - -.aksrt-orders-page__tracking { - font-size: 12px; - color: var(--color-ink-3); - font-family: var(--font-mono); -} - -.aksrt-orders-page__ship-status { - font-size: 12px; - padding: 1px 8px; - border-radius: var(--radius-sm); - background: var(--color-primary-softer); - color: var(--color-primary); - font-weight: 500; -} - -/* ===== Footer & Actions ===== */ -.aksrt-orders-page__item-footer { + color: var(--color-ink-2, #4b5563); + cursor: pointer; display: flex; - justify-content: space-between; align-items: center; - padding: 14px 20px; + gap: 8px; + user-select: none; } -.aksrt-orders-page__item-actions { - display: flex; +.aksrt-orders-page__timeline-toggle .fa-chevron-down { + margin-left: auto; + opacity: 0.55; + transition: transform 0.15s ease; +} + +.aksrt-orders-page__timeline.is-open .aksrt-orders-page__timeline-toggle .fa-chevron-down { + transform: rotate(180deg); +} + +.aksrt-orders-page__timeline-body { + margin-top: 10px; + display: grid; + gap: 8px; +} + +.aksrt-orders-page__timeline-item { + display: grid; + grid-template-columns: 120px minmax(0, 1fr); gap: 10px; + font-size: 12.5px; + color: var(--color-ink-2, #4b5563); +} + +.aksrt-orders-page__timeline-item time { + color: var(--color-ink-3, #8b8f97); + font-variant-numeric: tabular-nums; +} + +/* actions */ +.aksrt-orders-page__card-actions { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + align-items: center; + gap: 8px; + padding: 12px 16px 14px; + border-top: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 70%, transparent); + margin-top: 8px; + background: color-mix(in srgb, var(--surface-1, #fff) 70%, var(--surface-2, #f6f7f9)); +} + +.aksrt-orders-page__card-actions .btn-sm, +.aksrt-orders-page__card-actions .btn-primary, +.aksrt-orders-page__card-actions .btn-outline, +.aksrt-orders-page__card-actions .btn-ghost, +.aksrt-orders-page__card-actions a.btn-outline, +.aksrt-orders-page__card-actions a.btn-ghost { + min-height: 32px; + padding: 0 12px; + border-radius: 999px; + font-size: 12.5px; + font-weight: 600; + line-height: 30px; + display: inline-flex; + align-items: center; + justify-content: center; + text-decoration: none; + cursor: pointer; + transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease; +} + +.aksrt-orders-page__card-actions .btn-primary, +.aksrt-orders-page__card-actions button.btn-primary { + border: 1px solid transparent; + background: var(--color-primary, #3b82f6); + color: var(--color-on-primary, #fff); + box-shadow: 0 4px 10px color-mix(in srgb, var(--color-primary, #3b82f6) 25%, transparent); +} + +.aksrt-orders-page__card-actions .btn-primary:hover { + filter: brightness(1.05); +} + +.aksrt-orders-page__card-actions .btn-primary.c-green { + background: var(--color-success, #16a34a); + box-shadow: 0 4px 10px color-mix(in srgb, var(--color-success, #16a34a) 22%, transparent); +} + +.aksrt-orders-page__card-actions .btn-outline, +.aksrt-orders-page__card-actions a.btn-outline { + border: 1px solid var(--color-line, #e5e7eb); + background: var(--surface-1, #fff); + color: var(--color-ink-2, #4b5563); +} + +.aksrt-orders-page__card-actions .btn-outline:hover, +.aksrt-orders-page__card-actions a.btn-outline:hover { + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 40%, var(--color-line, #e5e7eb)); + color: var(--color-primary, #3b82f6); +} + +.aksrt-orders-page__card-actions .btn-ghost, +.aksrt-orders-page__card-actions a.btn-ghost { + border: 1px solid transparent; + background: transparent; + color: var(--color-ink-3, #8b8f97); +} + +.aksrt-orders-page__card-actions .btn-ghost:hover { + color: var(--color-ink, #1f2329); + background: color-mix(in srgb, var(--surface-2, #f3f4f6) 80%, transparent); } .aksrt-orders-page__countdown { - font-size: 13px; - color: var(--color-warning); - font-weight: 600; + font-size: 12.5px; + color: var(--color-warning, #d97706); + font-weight: 650; + margin-right: auto; + font-variant-numeric: tabular-nums; } -/* ===== Pagination ===== */ +/* legacy item classes (if any remain) */ +.aksrt-orders-page__item { + background: var(--surface-1); + border-radius: var(--radius-2xl, 16px); + box-shadow: var(--shadow-sm); + overflow: hidden; +} + +/* ==================== Pagination ==================== */ .aksrt-orders-page__pagination { display: flex; justify-content: center; + flex-wrap: wrap; gap: 8px; - margin-top: 24px; + margin-top: 22px; } .aksrt-orders-page__page-chip { display: inline-flex; align-items: center; justify-content: center; - width: 36px; + min-width: 36px; height: 36px; - border-radius: var(--radius); - border: 1px solid var(--color-line); - background: var(--surface-1); + padding: 0 10px; + border-radius: 10px; + border: 1px solid var(--color-line, #e5e7eb); + background: var(--surface-1, #fff); font-size: 13px; - font-weight: 500; + font-weight: 600; text-decoration: none; - color: var(--color-ink-2); - transition: all var(--dur-fast) var(--ease); + color: var(--color-ink-2, #4b5563); + transition: all 0.15s ease; } .aksrt-orders-page__page-chip:hover { - border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-line, #e5e7eb)); - color: var(--color-primary); + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 45%, var(--color-line, #e5e7eb)); + color: var(--color-primary, #3b82f6); } .aksrt-orders-page__page-chip.is-active { - background: var(--color-primary); - color: var(--color-on-primary); - border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-line, #e5e7eb)); + background: var(--color-primary, #3b82f6); + color: var(--color-on-primary, #fff); + border-color: transparent; + box-shadow: 0 4px 12px color-mix(in srgb, var(--color-primary, #3b82f6) 28%, transparent); } -/* ===== Empty state ===== */ +/* ==================== Empty ==================== */ .aksrt-orders-page__empty { text-align: center; - padding: 60px 20px; + padding: 56px 20px; + border-radius: var(--radius-xl, 14px); + border: 1px dashed color-mix(in srgb, var(--color-line, #e5e7eb) 90%, transparent); + background: + radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--color-primary, #3b82f6) 8%, transparent), transparent 55%), + var(--surface-2, #f6f7f9); } .aksrt-orders-page__empty i { - font-size: 48px; - color: var(--color-ink-4); - margin-bottom: 16px; + font-size: 42px; + color: color-mix(in srgb, var(--color-primary, #3b82f6) 45%, var(--color-ink-4, #c0c4cc)); + margin-bottom: 14px; display: block; + opacity: 0.9; } -/* ===== After-Sale Form Fields ===== */ +.aksrt-orders-page__empty p { + margin: 0; + font-size: 14px; + color: var(--color-ink-3, #8b8f97); +} + +/* ==================== After-sale / coupons / favorites ==================== */ +.aksrt-orders-page__aftersale, +.aksrt-orders-page__coupons, +.aksrt-orders-page__favorites { + margin-top: 4px; +} + +.aksrt-orders-page__aftersale h2, +.aksrt-orders-page__coupons h2, +.aksrt-orders-page__favorites h2 { + margin: 0 0 14px; + font-size: 16px; + font-weight: 700; +} + +.aksrt-as-list { + display: grid; + gap: 12px; +} + +.aksrt-as-card { + border: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 88%, transparent); + border-radius: 12px; + background: var(--surface-1, #fff); + padding: 14px 16px; + box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04); +} + +.aksrt-as-card__head { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 8px 12px; + margin-bottom: 6px; +} + +.aksrt-as-card__order { + font-family: var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace); + font-size: 12px; + color: var(--color-ink-3, #8b8f97); +} + +.aksrt-as-card__status { + margin-left: auto; + font-size: 12.5px; + font-weight: 700; + color: var(--color-warning, #d97706); +} + +.aksrt-as-card__meta { + font-size: 12px; + margin-bottom: 8px; +} + +.aksrt-as-card__reason { + font-size: 13.5px; + color: var(--color-ink-2, #4b5563); + line-height: 1.5; + margin-bottom: 10px; +} + +.aksrt-as-timeline { + margin: 0 0 12px; + padding: 0 0 0 14px; + border-left: 2px solid color-mix(in srgb, var(--color-primary, #3b82f6) 25%, var(--color-line, #e5e7eb)); + list-style: none; + display: grid; + gap: 8px; +} + +.aksrt-as-timeline li { + display: grid; + gap: 2px; + font-size: 12.5px; + color: var(--color-ink-2, #4b5563); +} + +.aksrt-as-timeline time { + color: var(--color-ink-3, #8b8f97); + font-size: 11.5px; +} + +.aksrt-as-card__actions { + display: flex; + flex-wrap: wrap; + gap: 8px; + justify-content: flex-end; +} + +.aksrt-orders-page__fav-grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); + gap: 12px; +} + +.aksrt-orders-page__fav-card { + display: grid; + gap: 8px; + padding: 10px; + border-radius: 12px; + border: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 88%, transparent); + background: var(--surface-1, #fff); + text-decoration: none; + color: inherit; + transition: box-shadow 0.15s ease, transform 0.15s ease; +} + +.aksrt-orders-page__fav-card:hover { + box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08); + transform: translateY(-1px); +} + +.aksrt-orders-page__fav-card img { + width: 100%; + aspect-ratio: 1; + object-fit: cover; + border-radius: 8px; + background: var(--surface-3, #eef0f3); +} + +.aksrt-orders-page__fav-card h3 { + margin: 0; + font-size: 13px; + font-weight: 600; + line-height: 1.35; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; +} + +.aksrt-orders-page__fav-card strong { + color: var(--color-error, #ef4444); + font-size: 14px; +} + +/* ==================== Form fields + modal ==================== */ .aksrt-orders-page__field { display: grid; gap: 6px; } .aksrt-orders-page__field label { - font-size: 14px; - font-weight: 500; - color: var(--color-ink); + font-size: 13.5px; + font-weight: 600; + color: var(--color-ink, #1f2329); } .aksrt-orders-page__select, -.aksrt-orders-page__textarea { +.aksrt-orders-page__textarea, +.aksrt-orders-page__input { width: 100%; - border: 1px solid var(--color-line); - border-radius: var(--radius); - padding: 10px 14px; + border: 1px solid var(--color-line, #e5e7eb); + border-radius: 10px; + padding: 10px 12px; font-size: 14px; - color: var(--color-ink); - background: var(--surface-1); - transition: border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease); + color: var(--color-ink, #1f2329); + background: var(--surface-1, #fff); + transition: border-color 0.15s ease, box-shadow 0.15s ease; + box-sizing: border-box; } .aksrt-orders-page__select:focus, -.aksrt-orders-page__textarea:focus { +.aksrt-orders-page__textarea:focus, +.aksrt-orders-page__input:focus { outline: none; - border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-line, #e5e7eb)); - box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 18%, transparent); + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 50%, var(--color-line, #e5e7eb)); + box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary, #3b82f6) 16%, transparent); +} + +.aksrt-modal[hidden] { + display: none !important; } -/* ===== Shared Modal (orders page) ===== */ .aksrt-modal { position: fixed; inset: 0; - z-index: var(--z-modal); + z-index: var(--z-modal, 10050); display: none; align-items: center; justify-content: center; + padding: 16px; +} + +.aksrt-modal:not([hidden]) { + display: flex; } .aksrt-modal.is-open { @@ -302,76 +787,88 @@ .aksrt-modal__overlay { position: absolute; inset: 0; - background: rgba(0, 0, 0, 0.45); - backdrop-filter: blur(4px); - -webkit-backdrop-filter: blur(4px); + background: rgba(15, 23, 42, 0.48); + backdrop-filter: blur(5px); + -webkit-backdrop-filter: blur(5px); } .aksrt-modal__dialog { position: relative; - background: var(--surface-1); - border-radius: var(--radius-lg); - width: 90%; - max-width: 520px; + background: var(--surface-1, #fff); + border-radius: 16px; + width: min(520px, 100%); max-height: 85vh; overflow-y: auto; - box-shadow: var(--shadow-lg); + box-shadow: 0 24px 60px rgba(15, 23, 42, 0.22); + border: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 70%, transparent); } .aksrt-modal__header { display: flex; align-items: center; justify-content: space-between; - padding: 18px 24px; - border-bottom: 1px solid var(--color-line); + padding: 16px 18px; + border-bottom: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 80%, transparent); + position: sticky; + top: 0; + background: var(--surface-1, #fff); + z-index: 1; } .aksrt-modal__header h3 { margin: 0; - font-size: 18px; + font-size: 16px; font-weight: 700; - color: var(--color-ink); + color: var(--color-ink, #1f2329); } .aksrt-modal__close { border: none; - background: none; - font-size: 24px; + background: var(--surface-2, #f3f4f6); + width: 32px; + height: 32px; + border-radius: 999px; + font-size: 20px; cursor: pointer; - color: var(--color-ink-3); - padding: 0; + color: var(--color-ink-3, #8b8f97); line-height: 1; - transition: color var(--dur-fast) var(--ease); + transition: color 0.15s ease, background 0.15s ease; } .aksrt-modal__close:hover { - color: var(--color-ink); + color: var(--color-ink, #1f2329); + background: var(--surface-3, #e8eaed); } .aksrt-modal__body { - padding: 20px 24px; + padding: 16px 18px; display: grid; - gap: 16px; + gap: 14px; } .aksrt-modal__footer { display: flex; justify-content: flex-end; - gap: 12px; - padding: 16px 24px; - border-top: 1px solid var(--color-line); + gap: 10px; + padding: 14px 18px 16px; + border-top: 1px solid color-mix(in srgb, var(--color-line, #e5e7eb) 80%, transparent); } -/* ===== Responsive ===== */ +/* ==================== Responsive ==================== */ @media (max-width: 767px) { - .aksrt-orders-page__header h1 { - font-size: 20px; + .aksrt-orders-page { + padding: 16px 0; } - .aksrt-orders-page__filters { - overflow-x: auto; + .aksrt-orders-page__stats { + grid-template-columns: 1fr; + } + + .aksrt-orders-page__filters, + .aksrt-orders-page__type-filters { flex-wrap: nowrap; - padding-bottom: 4px; + overflow-x: auto; + padding-bottom: 2px; -webkit-overflow-scrolling: touch; } @@ -379,142 +876,176 @@ flex-shrink: 0; } - .aksrt-orders-page__details { - grid-template-columns: 1fr; + .aksrt-orders-page__card-item { + grid-template-columns: 56px minmax(0, 1fr); } - .aksrt-orders-page__item-main { - flex-direction: column; - align-items: flex-start; + .aksrt-orders-page__card-img { + width: 56px; + height: 56px; } - .aksrt-orders-page__item-meta { + .aksrt-orders-page__card-item-price { + grid-column: 2; text-align: left; + justify-items: start; + flex-direction: row; + display: flex; + gap: 10px; + align-items: baseline; } - .aksrt-orders-page__summary { - flex-wrap: wrap; + .aksrt-orders-page__card-time { + margin-left: 0; + width: 100%; + order: 5; } - .aksrt-orders-page__item-actions { - flex-wrap: wrap; + .aksrt-orders-page__card-head { + gap: 6px 8px; + } + + .aksrt-orders-page__card-actions { + justify-content: stretch; + } + + .aksrt-orders-page__card-actions .btn-sm, + .aksrt-orders-page__card-actions .btn-primary, + .aksrt-orders-page__card-actions .btn-outline, + .aksrt-orders-page__card-actions .btn-ghost, + .aksrt-orders-page__card-actions a { + flex: 1 1 auto; + } + + .aksrt-orders-page__timeline-item { + grid-template-columns: 1fr; + gap: 2px; + } + + .aksrt-orders-page__countdown { + width: 100%; + margin-right: 0; + margin-bottom: 4px; } } @media (max-width: 480px) { - .aksrt-orders-page { - padding: 16px 0; + .aksrt-orders-page__stat { + padding: 14px; } - .aksrt-orders-page__item-footer { - padding: 12px 16px; + .aksrt-orders-page__stat-value { + font-size: 20px; } - .aksrt-orders-page__pagination { - gap: 4px; + .aksrt-orders-page__tab { + min-width: 64px; + padding: 8px 10px; + font-size: 12.5px; } .aksrt-modal__dialog { - width: 95%; - max-height: 90vh; + max-height: 92vh; } } -/* ===== Dark mode ===== */ -html.dark .aksrt-orders-page__item-badge, -html.dark .aksrt-orders-page__item-badge { - background: var(--surface-2); - border: 1px solid var(--color-line); +/* ==================== Dark mode ==================== */ +html.dark .aksrt-orders-page__stat, +html.dark .aksrt-orders-page__card, +html.dark .aksrt-as-card, +html.dark .aksrt-orders-page__fav-card { + background: var(--surface-1, #1a1d24); + border-color: color-mix(in srgb, var(--color-line, #333) 90%, transparent); + box-shadow: none; +} + +html.dark .aksrt-orders-page__stat { + background: linear-gradient( + 145deg, + color-mix(in srgb, var(--surface-1, #1a1d24) 88%, var(--color-primary, #3b82f6) 12%), + var(--surface-1, #1a1d24) 60% + ); +} + +html.dark .aksrt-orders-page__tabs { + background: var(--surface-2, #12151b); +} + +html.dark .aksrt-orders-page__tab.is-active { + background: var(--surface-1, #1a1d24); +} + +html.dark .aksrt-orders-page__card-head, +html.dark .aksrt-orders-page__card-actions { + background: color-mix(in srgb, var(--surface-2, #12151b) 80%, transparent); +} + +html.dark .aksrt-orders-page__empty { + background: + radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--color-primary, #3b82f6) 14%, transparent), transparent 55%), + var(--surface-2, #12151b); } -html.dark .aksrt-orders-page__filter-chip, html.dark .aksrt-orders-page__filter-chip { - border-color: var(--color-line); + background: var(--surface-2, #12151b); + border-color: var(--color-line, #333); } -html.dark .aksrt-orders-page__filter-chip.is-active, -html.dark .aksrt-orders-page__filter-chip.is-active { - border-color: color-mix(in srgb, var(--color-primary) 45%, var(--color-line, #e5e7eb)); +html.dark .aksrt-modal__dialog { + background: var(--surface-1, #1a1d24); + box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45); } -/* ===== Stats + type filters (My Orders) ===== */ -.aksrt-orders-page__stats { - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 12px; - margin: 0 0 16px; +html.dark .aksrt-modal__header, +html.dark .aksrt-modal__close { + background: var(--surface-1, #1a1d24); } -.aksrt-orders-page__stat { - padding: 14px 16px; - border-radius: var(--radius-md, 12px); - border: 1px solid var(--color-line); - background: var(--surface-4, #fff); - display: flex; - flex-direction: column; - gap: 6px; +html.dark .aksrt-modal__close { + background: var(--surface-2, #12151b); } -.aksrt-orders-page__stat-label { - font-size: 12px; - color: var(--color-ink-3, #8b8f97); -} - -.aksrt-orders-page__stat-value { - font-size: 22px; - font-weight: 700; - color: var(--color-ink, #1f2329); - line-height: 1.1; -} - -.aksrt-orders-page__type-filters { - display: flex; - gap: 8px; - flex-wrap: wrap; - margin: 0 0 14px; -} - -.aksrt-orders-page__card-type { +/* UC panel title / cart chip */ +.uc-orders-panel__title { display: inline-flex; align-items: center; - padding: 2px 8px; - border-radius: 999px; - background: color-mix(in srgb, var(--color-primary, #3b82f6) 12%, transparent); - color: var(--color-primary, #3b82f6); - font-size: 12px; - font-weight: 600; - margin-right: 8px; -} - -.aksrt-orders-page__card-head { - display: flex; - flex-wrap: wrap; - align-items: center; gap: 8px; + font-size: 16px; } - -@media (max-width: 640px) { - .aksrt-orders-page__stats { - grid-template-columns: 1fr; - } +.uc-orders-panel__title-icon { + width: 28px; + height: 28px; + border-radius: 8px; + display: inline-flex; + align-items: center; + justify-content: center; + font-size: 13px; + color: var(--color-primary, #3b82f6); + background: color-mix(in srgb, var(--color-primary, #3b82f6) 12%, transparent); } - -/* User-center embedded orders panel */ -.uc-orders-panel.aksrt-orders-page { - padding: 0; -} -.uc-orders-panel .aksrt-orders-page__tab-badge { - display: inline-block; - min-width: 1.1em; - margin-left: 4px; - padding: 0 5px; +.uc-orders-panel__cart-link { + display: inline-flex; + align-items: center; + gap: 6px; + padding: 7px 12px; border-radius: 999px; - background: var(--color-danger, #e5484d); - color: #fff; - font-size: 11px; - line-height: 1.4; - vertical-align: middle; + border: 1px solid var(--color-line, #e5e7eb); + background: var(--surface-1, #fff); + color: var(--color-ink-2, #4b5563); + font-size: 12.5px; + font-weight: 600; + text-decoration: none; + transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease; } -.uc-orders-panel__head { - gap: 12px; +.uc-orders-panel__cart-link:hover { + border-color: color-mix(in srgb, var(--color-primary, #3b82f6) 40%, var(--color-line, #e5e7eb)); + color: var(--color-primary, #3b82f6); + background: color-mix(in srgb, var(--color-primary, #3b82f6) 8%, var(--surface-1, #fff)); +} +.aksrt-orders-page__empty-hint { + margin: 8px 0 0; + max-width: 280px; + margin-left: auto; + margin-right: auto; + line-height: 1.5; } diff --git a/inc/helpers/user-center-renderers/profile-orders.php b/inc/helpers/user-center-renderers/profile-orders.php index 4b1d5698..847eefe0 100644 --- a/inc/helpers/user-center-renderers/profile-orders.php +++ b/inc/helpers/user-center-renderers/profile-orders.php @@ -116,13 +116,18 @@ $pending_count = (int) ($stats['pending'] ?? 0); ?>
-
-
+
+
+ + +
- - + + + +
@@ -348,7 +353,8 @@ $pending_count = (int) ($stats['pending'] ?? 0);
-

+

+