/* styles.css - BASE LAYER (loaded first)
   Design tokens (:root), reset, layout and every component of the storefront and admin. Light theme by default.
   Load order: styles.css -> ios-glass.css -> negavid-theme.css; later files override earlier ones.
   Format with: npx prettier --write styles.css (settings in .prettierrc.json). */

@font-face {
  font-family: Vazirmatn;
  src: url('/vazirmatn.woff2') format('woff2');
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --primary: #3069ee;
  --primary-dark: #114ad1;
  --ink: #242332;
  --muted: #72717f;
  --border: #e5e5ed;
  --bg: #f6f7fa;
  --surface: #fff;
  --radius: 10px;
  --gap: 16px;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font:
    16px/1.8 Vazirmatn,
    'Noto Sans Arabic',
    Tahoma,
    sans-serif;
  text-align: right;
}
button,
input,
textarea,
select {
  font: inherit;
  color: inherit;
}
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  color: var(--primary);
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}
button,
input,
textarea,
select {
  border: 1px solid var(--border);
  border-radius: 7px;
}
button {
  background: white;
}
input,
select {
  min-height: 43px;
  padding: 8px 12px;
  width: 100%;
  background: #fff;
}
textarea {
  min-height: 110px;
  padding: 12px;
  resize: vertical;
  width: 100%;
  background: white;
}
input[type='checkbox'],
input[type='radio'] {
  width: 17px;
  height: 17px;
  min-height: 17px;
  accent-color: var(--primary);
  flex-shrink: 0;
}
input[dir='ltr'],
textarea[dir='ltr'] {
  text-align: left;
  unicode-bidi: isolate;
}
bdi,
code {
  unicode-bidi: isolate;
}
bdi {
  direction: ltr;
}
code {
  font-family: monospace;
  font-size: 14px;
  overflow-wrap: anywhere;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1 {
  font-size: 27px;
  line-height: 1.55;
  font-weight: 800;
}
h2 {
  font-size: 20px;
  line-height: 1.7;
}
h3 {
  font-size: 16px;
}
p {
  margin: 8px 0;
}
small {
  font-size: 12px;
  color: var(--muted);
}
strong {
  font-weight: 700;
}
svg {
  flex-shrink: 0;
  vertical-align: middle;
}
a,
button {
  transition:
    color 0.15s,
    background 0.15s,
    border-color 0.15s;
}
button:hover {
  border-color: #96b3f7;
}
input:focus,
textarea:focus,
select:focus {
  outline: 2px solid #93b1f6;
  outline-offset: 1px;
}
:focus-visible {
  outline: 3px solid #5d8af2;
  outline-offset: 3px;
}
.container {
  max-width: 1380px;
  margin: auto;
  padding: 0 30px;
}
.main {
  min-height: 55vh;
  padding-top: 24px;
  padding-bottom: 48px;
}
.utility {
  height: 34px;
  background: #eff1f5;
  font-size: 12px;
  color: #686777;
}
.utility > .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}
.utility nav {
  display: flex;
  gap: 24px;
}
.site-header {
  background: #fff;
  border-bottom: 1px solid var(--border);
}
.header-main {
  display: flex;
  align-items: center;
  gap: 30px;
  min-height: 92px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}
.brand strong {
  font-size: 27px;
  letter-spacing: -1px;
  color: #272e3e;
}
.brand small {
  display: block;
  font-size: 11px;
  color: var(--muted);
  line-height: 1.4;
  letter-spacing: 0;
}
.brand-mark {
  display: inline-flex;
  width: 43px;
  height: 43px;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  background: var(--primary);
  color: #fff;
  font-size: 32px;
  font-weight: 800;
  line-height: 1;
}
.header-search {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 13px 4px 5px;
  border: 1px solid #dbdfe8;
  background: #f8f9fb;
  border-radius: 8px;
  flex: 1;
  height: 48px;
}
.header-search input {
  background: transparent;
  border: 0;
  padding: 0;
  min-height: 34px;
  font-size: 14px;
  outline: none;
}
.header-search button {
  background: var(--primary);
  color: white;
  border: 0;
  height: 36px;
  font-size: 13px;
  padding: 0 17px;
  flex-shrink: 0;
}
.header-search svg {
  color: #858393;
}
.header-actions {
  display: flex;
  gap: 24px;
  font-size: 13px;
  white-space: nowrap;
}
.header-actions a {
  display: flex;
  align-items: center;
  gap: 7px;
  position: relative;
}
.header-actions i {
  font-style: normal;
  display: flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  background: var(--primary);
  color: #fff;
  border-radius: 100%;
  font-size: 11px;
  position: absolute;
  top: -8px;
  right: -8px;
}
.cart-link {
  border-right: 1px solid var(--border);
  padding-right: 22px;
}
.category-nav {
  border-top: 1px solid #f0f0f4;
  font-size: 13px;
}
.category-nav > .container {
  display: flex;
  align-items: center;
  gap: 28px;
  height: 48px;
}
.category-nav a {
  white-space: nowrap;
}
.category-nav a.all {
  display: flex;
  gap: 9px;
  align-items: center;
  border-left: 1px solid var(--border);
  padding-left: 22px;
  font-weight: bold;
}
.seller-link {
  margin-right: auto;
  color: var(--primary);
}
.demo-banner {
  background: #e7edfd;
  border-bottom: 1px solid #d8e3fc;
  color: #525f7f;
  font-size: 12px;
}
.demo-banner > .container {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 34px;
}
.demo-banner span:first-child {
  white-space: nowrap;
  font-weight: 700;
}
.demo-banner p {
  margin: 0;
}
.demo-banner a {
  margin-right: auto;
  display: flex;
  align-items: center;
  white-space: nowrap;
}
.demo-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #647ebe;
  margin-left: 5px;
}
.home-top {
  display: grid;
  grid-template-columns: 244px 1fr;
  gap: 20px;
}
.category-side {
  background: white;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px 0 8px;
}
.category-side h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 18px 14px;
  border-bottom: 1px solid #f0f0f4;
  margin-bottom: 6px;
}
.category-side > a {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 12px 18px;
  font-size: 14px;
}
.category-side > a:hover {
  background: #f3f7ff;
}
.category-side > a > svg:first-child {
  color: #7b748d;
}
.category-side > a > svg:last-child {
  margin-right: auto;
  color: #aba5b7;
}
.category-side .all-categories {
  font-size: 12px;
  color: var(--primary);
  border-top: 1px solid var(--border);
  margin-top: 5px;
  padding-top: 12px;
}
.home-discovery {
  min-width: 0;
}
.editorial {
  height: 284px;
  display: flex;
  justify-content: space-between;
  background: #24202e;
  color: white;
  border-radius: 10px;
  overflow: hidden;
  padding: 26px 32px;
  position: relative;
}
.editorial h1 {
  font-size: 32px;
  margin-top: 10px;
  line-height: 1.55;
}
.editorial p {
  font-size: 13px;
  color: #c9c2d6;
  margin: 6px 0 14px;
}
.editorial .btn {
  min-height: 35px;
  font-size: 12px;
}
.feature-type {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 18px;
  transform: rotate(-7deg);
  text-align: left;
  direction: ltr;
  line-height: 0.95;
}
.feature-type > span {
  font-family: Arial, sans-serif;
  font-size: 64px;
  font-weight: 900;
  letter-spacing: -4px;
  color: #bcf273;
}
.feature-type > span:nth-child(2) {
  color: #b8ccfb;
}
.feature-type > span:nth-child(3) {
  color: white;
}
.feature-type > small {
  color: #a2acc4;
  font-size: 12px;
  margin-top: 17px;
  direction: rtl;
  text-align: right;
  transform: rotate(7deg);
}
.trust-strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  height: 69px;
  background: white;
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-top: 14px;
  padding: 0 28px;
  font-size: 13px;
  color: #5f5a70;
}
.trust-strip > span {
  display: flex;
  gap: 9px;
  align-items: center;
}
.trust-strip svg {
  color: var(--primary);
  width: 19px;
}
.popular-tags {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 22px 0 30px;
  font-size: 12px;
}
.popular-tags strong {
  color: #706c7d;
  font-weight: 500;
  margin-left: 4px;
}
.popular-tags a {
  border: 1px solid var(--border);
  background: white;
  border-radius: 6px;
  padding: 3px 14px;
  color: #63616d;
}
.popular-tags a:hover {
  border-color: var(--primary);
  color: var(--primary);
}
.product-section {
  margin: 28px 0 35px;
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: 16px;
}
.section-heading > div > p {
  font-size: 12px;
  color: var(--muted);
  margin: 3px 0 0;
}
.section-heading > a {
  display: flex;
  align-items: center;
  color: var(--primary);
  font-size: 12px;
  gap: 3px;
}
.section-heading h2 {
  display: flex;
  gap: 10px;
  align-items: center;
}
.product-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 15px;
}
.product-card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 9px;
  overflow: hidden;
  position: relative;
  transition:
    box-shadow 0.15s,
    transform 0.15s;
  min-width: 0;
}
.product-card:hover {
  box-shadow: 0 7px 18px #2723320c;
  transform: translateY(-2px);
}
.art-link {
  display: block;
  position: relative;
}
.product-art {
  height: 155px;
  color: white;
  padding: 14px;
  display: flex;
  flex-direction: column;
  position: relative;
  text-align: left;
  direction: ltr;
  border-radius: 0;
  font-family: Arial, sans-serif;
  overflow: hidden;
}
.product-art:after {
  content: '';
  position: absolute;
  top: -35px;
  left: -70px;
  width: 190px;
  height: 260px;
  border: 30px solid #ffffff09;
  transform: rotate(35deg);
  pointer-events: none;
}
.art-meta {
  display: flex;
  justify-content: space-between;
  font-size: 11px;
  position: relative;
  z-index: 1;
  color: #ffffffb3;
}
.art-meta > span:last-child {
  font:
    9px Vazirmatn,
    Tahoma,
    sans-serif;
}
.product-art > strong {
  font-size: 36px;
  line-height: 1.1;
  margin-top: 16px;
  position: relative;
  z-index: 1;
  letter-spacing: -1.5px;
}
.art-title {
  font-size: 11px;
  margin-top: 5px;
  color: #ffffffd4;
  position: relative;
  z-index: 1;
}
.art-line {
  height: 1px;
  background: #ffffff3b;
  width: 26px;
  margin-top: 10px;
}
.art-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  font:
    9px Vazirmatn,
    Tahoma,
    sans-serif;
  color: #ffffffa8;
  position: relative;
  z-index: 1;
}
.art-bottom b {
  font-size: 20px;
  line-height: 1;
}
.product-art.large {
  height: 400px;
  border-radius: 10px;
  padding: 28px;
}
.product-art.large > strong {
  font-size: 80px;
  margin-top: 85px;
}
.product-art.large .art-title {
  font-size: 20px;
}
.product-art.large .art-meta {
  font-size: 12px;
}
.product-art.large .art-bottom {
  font-size: 13px;
}
.product-art.large:after {
  width: 300px;
  height: 500px;
  border-width: 70px;
  left: -90px;
  top: -100px;
}
img.product-art {
  object-fit: cover;
  width: 100%;
  padding: 0;
}
.card-tag {
  position: absolute;
  bottom: 9px;
  right: 10px;
  font-size: 11px;
  background: #fff;
  color: #3a4e82;
  padding: 1px 7px;
  border-radius: 4px;
}
.favorite {
  position: absolute;
  left: 10px;
  top: 10px;
  background: #fffefbdf;
  border: none;
  border-radius: 50%;
  height: 29px;
  width: 29px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #716d7e;
}
.favorite.selected {
  color: var(--primary);
}
.favorite.selected svg {
  fill: currentColor;
}
.card-body {
  padding: 12px 13px;
}
.meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: var(--muted);
  font-size: 11px;
  gap: 8px;
}
.product-name {
  display: block;
  font-size: 14px;
  font-weight: 700;
  margin-top: 7px;
  min-height: 25px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: right;
}
.subtitle {
  font-size: 11px;
  color: #817b8c;
  margin: 3px 0 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.seller-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  padding-bottom: 10px;
  border-bottom: 1px solid #efedf3;
}
.seller-line a {
  color: #777180;
}
.seller-line > span {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #a7741c;
}
.card-price {
  padding-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.card-price > strong {
  font-size: 14px;
}
.delivery {
  display: flex;
  align-items: center;
  gap: 3px;
  color: #268375;
  font-size: 11px;
}
.seller-section {
  margin: 35px 0;
}
.seller-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}
.seller-card {
  border: 1px solid var(--border);
  background: #fff;
  border-radius: 8px;
  padding: 15px;
  display: flex;
  align-items: center;
  gap: 11px;
}
.avatar {
  display: inline-flex;
  width: 43px;
  height: 43px;
  border-radius: 10px;
  background: #e1e9fd;
  color: white;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  flex-shrink: 0;
  background: var(--primary);
}
.avatar.small {
  width: 33px;
  height: 33px;
  font-size: 17px;
}
.avatar.big {
  width: 78px;
  height: 78px;
  font-size: 38px;
}
.seller-card strong {
  font-size: 13px;
  display: flex;
  gap: 5px;
  align-items: center;
}
.seller-card strong svg {
  color: #576891;
}
.seller-card > div > span {
  display: block;
  font-size: 11px;
  color: var(--muted);
  margin-top: 3px;
}
.rating {
  color: #ad7b24;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  white-space: nowrap;
}
.seller-card > .rating {
  margin-right: auto;
}
.seller-callout {
  background: #e8edf7;
  border: 1px solid #dce2f0;
  border-radius: 10px;
  padding: 21px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.seller-callout p {
  font-size: 13px;
  color: #7e728f;
  margin: 3px 0;
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 17px;
  min-height: 43px;
  border: 1px solid var(--border);
  border-radius: 7px;
  font-size: 14px;
  background: white;
  white-space: nowrap;
  line-height: 1.5;
}
.btn:hover {
  background: #f1f5fe;
}
.btn.primary {
  background: var(--primary);
  color: white;
  border-color: var(--primary);
}
.btn.light {
  background: #b9f377;
  border: 0;
  color: #26282b;
}
.full {
  width: 100%;
}
.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  height: 38px;
  width: 38px;
  border-radius: 7px;
  background: white;
  padding: 0;
}
.text-btn {
  border: none;
  background: none;
  padding: 0;
  color: var(--primary);
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.danger {
  color: #b94458 !important;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 4px;
  font-size: 11px;
  padding: 3px 8px;
  line-height: 1.5;
  white-space: nowrap;
}
.badge.green {
  color: #257263;
  background: #e9f6f1;
}
.badge.purple {
  background: #e5edff;
  color: #1d5aed;
}
.badge.gray {
  background: #eff1f5;
  color: #726982;
}
.badge.orange {
  background: #fff3e1;
  color: #a56b1a;
}
.badge.red {
  background: #ffe9ef;
  color: #ac3a55;
}
.badge.lime {
  background: #b9f377;
  color: #3a5228;
  font-size: 11px;
}
.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: #8b8395;
  margin: 0 0 20px;
  flex-wrap: wrap;
}
.breadcrumbs a {
  color: #6f647e;
}
.page-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}
.page-heading p {
  font-size: 13px;
  color: var(--muted);
  margin: 5px 0 0;
}
.panel {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  padding: 24px;
  margin-bottom: 20px;
}
.panel h2 {
  margin-bottom: 14px;
}
.panel h3 {
  margin-top: 16px;
}
.panel p {
  font-size: 14px;
}
.muted {
  color: var(--muted);
  font-size: 13px;
}
.catalog-layout {
  display: grid;
  grid-template-columns: 235px minmax(0, 1fr);
  gap: 22px;
}
.filters {
  height: fit-content;
  padding: 20px;
  font-size: 14px;
  position: sticky;
  top: 20px;
}
.filter-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.filter-title h3 {
  margin: 0;
}
.filters .field,
.filter-dialog .field {
  margin-bottom: 20px;
}
.field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 13px;
  margin-bottom: 14px;
}
.field > span {
  font-weight: 600;
  color: #595362;
}
.field input,
.field select,
.field textarea {
  font-size: 14px;
}
.required {
  color: var(--primary);
}
.price-inputs {
  display: flex;
  gap: 7px;
}
.price-inputs > input {
  min-width: 0;
  width: 50%;
  font-size: 12px;
}
.check {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  margin: 14px 0;
  line-height: 1.9;
}
.check a {
  color: var(--primary);
}
.filter-help {
  border-top: 1px solid var(--border);
  margin-top: 25px;
  padding-top: 20px;
  color: #766883;
}
.filter-help svg {
  display: block;
  margin-bottom: 10px;
}
.filter-help strong {
  font-size: 13px;
}
.filter-help p {
  font-size: 12px;
}
.filter-help a {
  font-size: 12px;
  color: var(--primary);
}
.catalog-toolbar,
.table-toolbar {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 18px;
}
.catalog-toolbar {
  border: 1px solid var(--border);
  background: white;
  padding: 10px;
  border-radius: 8px;
}
.inline-search {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid var(--border);
  border-radius: 7px;
  background: white;
  flex: 1;
  min-width: 0;
}
.inline-search input {
  border: 0;
  min-width: 0;
  padding: 7px 0;
  font-size: 13px;
  outline: none;
}
.inline-search svg {
  color: #8c829a;
}
.catalog-toolbar > select,
.table-toolbar > select {
  width: auto;
  font-size: 12px;
  flex-shrink: 0;
}
.catalog-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.view-toggle {
  display: flex;
  gap: 2px;
}
.view-toggle > button {
  width: 33px;
  height: 33px;
  border: 0;
  display: grid;
  place-items: center;
  color: #8a7f96;
}
.view-toggle > button[aria-pressed='true'] {
  color: var(--primary);
  background: #e7edfd;
}
.list-view {
  grid-template-columns: 1fr;
}
.list-view .product-card {
  display: flex;
}
.list-view .art-link {
  width: 180px;
  flex-shrink: 0;
}
.list-view .product-art {
  height: 150px;
}
.list-view .card-body {
  flex: 1;
}
.list-view .card-price {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
}
.pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 26px;
}
.pagination button {
  width: 35px;
  height: 35px;
  display: grid;
  place-items: center;
  font-size: 13px;
}
.pagination button[aria-current] {
  background: var(--primary);
  color: white;
  border-color: var(--primary);
}
.tabs {
  display: flex;
  gap: 24px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 22px;
  overflow-x: auto;
  white-space: nowrap;
}
.tabs > button,
.tabs > a {
  padding: 10px 3px;
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  font-size: 14px;
  color: #7b6f8c;
}
.tabs > .active {
  border-color: var(--primary);
  color: var(--primary);
  font-weight: 700;
}
.empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 65px 25px;
  min-height: 300px;
  text-align: center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.empty > svg {
  color: #9ba8c9;
}
.empty p {
  color: var(--muted);
  font-size: 14px;
}
.empty .btn {
  margin-top: 15px;
}
.directory-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 26px;
}
.directory-grid .panel {
  margin: 0;
}
.directory-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 11px 0;
  border-top: 1px solid #ebedf2;
  font-size: 14px;
}
.product-detail {
  display: grid;
  grid-template-columns: 390px 1fr;
  gap: 36px;
  margin-bottom: 26px;
}
.product-info h1 {
  font-family: Arial, Vazirmatn, sans-serif;
  margin-top: 12px;
}
.product-info > p {
  font-size: 15px;
  color: #7c7389;
}
.product-info .meta {
  font-size: 12px;
}
.product-social {
  display: flex;
  align-items: center;
  gap: 20px;
  font-size: 13px;
  color: #8d8398;
  margin: 18px 0;
}
.product-social a {
  border-bottom: 1px dashed #aab3c9;
}
.spec-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px;
  margin: 20px 0;
}
.spec-grid > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid #eff1f6;
  padding-bottom: 7px;
  font-size: 13px;
}
.spec-grid span {
  color: #8a7f97;
}
.spec-grid strong {
  font-size: 12px;
}
.notice {
  background: #edf2fe;
  border: 1px solid #d7e2fc;
  border-radius: 7px;
  padding: 13px 16px;
  color: #756486;
  font-size: 13px;
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 15px 0;
}
.notice a {
  color: var(--primary);
}
.notice p {
  margin: 0;
  font-size: 13px;
}
.notice.warning {
  background: #fff8e9;
  border-color: #f0e2c2;
  color: #8c784e;
}
.variations {
  display: flex;
  gap: 12px;
  margin: 13px 0 20px;
}
.variations > button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 12px 15px;
  flex: 1;
  font-size: 13px;
  gap: 4px;
}
.variations strong {
  font-size: 12px;
}
.variations .selected,
.payment-options .selected {
  border-color: var(--primary);
  background: #f1f5ff;
  box-shadow: inset 0 0 0 1px var(--primary);
}
.purchase-panel {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.purchase-panel > div:first-child {
  display: flex;
  flex-direction: column;
}
.big-price {
  font-size: 24px;
}
.purchase-actions {
  display: flex;
  gap: 8px;
}
.image-thumbs {
  display: flex;
  gap: 8px;
  padding: 13px 0;
  font-size: 11px;
  color: var(--muted);
}
.image-thumbs button {
  width: 50px;
  height: 50px;
  overflow: hidden;
  padding: 0;
}
.image-thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.seller-box {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 17px;
}
.seller-box p {
  margin: 0;
  font-size: 11px;
}
.seller-box > a:last-child {
  margin-right: auto;
}
.prose {
  line-height: 2.15;
  font-size: 15px;
}
.prose p {
  font-size: 15px;
  margin-bottom: 20px;
}
.prose h2 {
  margin-top: 22px;
}
.prose ol {
  padding-right: 22px;
}
.prose li {
  padding-right: 5px;
  margin: 9px 0;
}
.reviews .review {
  display: flex;
  gap: 14px;
  padding: 18px 0;
  border-bottom: 1px solid var(--border);
  align-items: flex-start;
}
.review p {
  font-size: 14px;
}
.review strong {
  font-size: 13px;
}
.review > .icon-btn {
  margin-right: auto;
}
.store-header {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 26px;
}
.store-header > div {
  flex: 1;
}
.store-header h1 {
  font-size: 24px;
}
.checkout-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 24px;
  margin-top: 24px;
}
.cart-items {
  padding: 0 22px;
}
.cart-row {
  display: flex;
  gap: 18px;
  padding: 22px 0;
  align-items: center;
  border-bottom: 1px solid var(--border);
}
.cart-row:last-child {
  border: 0;
}
.cart-row .product-art {
  width: 118px;
  height: 112px;
  padding: 10px;
}
.cart-row .product-art strong {
  font-size: 25px;
  margin-top: 13px;
}
.cart-row .art-meta,
.cart-row .art-title {
  display: none;
}
.cart-info {
  flex: 1;
}
.cart-info > p {
  font-size: 12px;
  color: var(--muted);
}
.cart-row > div:last-child {
  display: flex;
  align-items: flex-end;
  flex-direction: column;
  gap: 20px;
  font-size: 14px;
}
.qty {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 9px;
}
.qty > button {
  height: 25px;
  width: 25px;
  display: grid;
  place-items: center;
}
.qty > span {
  font-size: 12px;
}
.summary {
  height: fit-content;
  position: sticky;
  top: 20px;
}
.summary > div:not(.order-summary-item) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 15px 0;
  font-size: 13px;
}
.summary-total {
  border-top: 1px solid var(--border);
  padding-top: 16px;
}
.summary-total strong {
  font-size: 18px;
  color: var(--primary);
}
.summary > p {
  font-size: 11px;
  text-align: center;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0 20px;
}
.form > h2 {
  margin-top: 10px;
}
.form > .btn {
  margin-top: 10px;
}
.payment-options {
  display: flex;
  gap: 12px;
  margin-bottom: 20px;
}
.payment-options > label {
  padding: 15px;
  border: 1px solid var(--border);
  border-radius: 7px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  flex: 1;
}
.order-summary-item {
  padding: 14px 0;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.order-summary-item strong {
  font-size: 13px;
}
.order-summary-item span {
  font-size: 11px;
  color: var(--muted);
}
.order-summary-item b {
  font-size: 14px;
}
.result {
  max-width: 820px;
  margin: 40px auto;
  padding: 50px 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
  text-align: center;
}
.result.success > svg {
  color: #39a184;
}
.result.failure > svg {
  color: #c15069;
}
.result.pending > svg {
  color: #c08e3d;
}
.result h1 {
  font-size: 26px;
}
.result p {
  max-width: 600px;
  color: var(--muted);
}
.actions {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.dashboard-layout {
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 25px;
}
.dashboard-nav {
  padding: 15px 0;
  height: fit-content;
}
.dash-profile {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 5px 18px 20px;
  border-bottom: 1px solid var(--border);
  margin-bottom: 10px;
}
.dash-profile strong {
  font-size: 13px;
}
.dash-profile small {
  display: block;
  font-size: 11px;
}
.dashboard-nav nav {
  display: flex;
  flex-direction: column;
  padding: 0 10px;
}
.dashboard-nav nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #7f758e;
  padding: 10px;
  border-radius: 6px;
}
.dashboard-nav nav a.active {
  background: #eaeffd;
  color: var(--primary);
  font-weight: bold;
}
.switch-role {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  color: var(--primary);
  border-top: 1px solid var(--border);
  padding: 16px 20px 0;
  margin-top: 10px;
}
.dashboard-content {
  min-width: 0;
}
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-bottom: 22px;
}
.stat {
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 18px;
  margin-bottom: 0;
  min-height: 116px;
  gap: 14px;
}
.stat > span {
  font-size: 12px;
  color: var(--muted);
}
.stat > strong {
  font-size: 20px;
}
.stat > svg {
  position: absolute;
  left: 16px;
  top: 16px;
  color: #a3b4dd;
}
.welcome {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.welcome h2 {
  margin: 0;
}
.welcome p {
  font-size: 13px;
  margin: 0;
}
.welcome .btn {
  margin-right: auto;
}
.table-wrap {
  overflow: auto;
  padding: 0;
}
table {
  border-collapse: collapse;
  width: 100%;
  font-size: 13px;
  text-align: right;
  white-space: nowrap;
}
th {
  font-size: 12px;
  font-weight: 500;
  background: #f9fafc;
  color: #8a7f97;
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
}
td {
  padding: 17px 18px;
  border-bottom: 1px solid #ebeef4;
}
tr:last-child td {
  border-bottom: 0;
}
td > small {
  display: block;
  margin-top: 4px;
  font-size: 11px;
}
td > a {
  color: var(--primary);
}
td > strong {
  font-size: 13px;
}
td .actions {
  font-size: 12px;
}
.order-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.order-header h2 {
  font-size: 17px;
  margin: 0;
}
.order-header p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
}
.delivery-box {
  display: flex;
  gap: 13px;
  background: #eaf6f1;
  border: 1px solid #d6ebe2;
  padding: 18px;
  border-radius: 8px;
  color: #3c7b65;
}
.delivery-box > div {
  flex: 1;
  min-width: 0;
}
.delivery-box p {
  font-size: 12px;
}
.license {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: white;
  padding: 10px 12px;
  border: 1px solid #d6ebe2;
  border-radius: 6px;
  color: #4c4756;
  margin: 8px 0;
  direction: ltr;
}
.license button {
  padding: 5px;
  border: 0;
}
.conversations {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  padding: 0;
  overflow: hidden;
  min-height: 520px;
}
.conversations > aside {
  border-left: 1px solid var(--border);
  padding: 12px;
}
.conversations aside > button {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 64px;
  width: 100%;
  text-align: right;
  border: 0;
  padding: 10px;
  font-size: 12px;
}
.conversations aside > button.active {
  background: #ebf0fd;
}
.conversation {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.conversation header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 14px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 16px;
}
.message-list {
  flex: 1;
  min-height: 260px;
  max-height: 440px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: flex-start;
}
.message {
  max-width: 85%;
  background: #eff1f5;
  border-radius: 10px 0 10px 10px;
  padding: 10px 14px;
  font-size: 13px;
}
.message.mine {
  align-self: flex-end;
  background: #e4ebfd;
  border-radius: 0 10px 10px 10px;
  color: #455e9d;
}
.message p {
  margin: 0;
  font-size: 13px;
  overflow-wrap: anywhere;
}
.message small {
  font-size: 11px;
}
.conversation form {
  display: flex;
  gap: 10px;
}
.conversation textarea {
  min-height: 65px;
  font-size: 13px;
}
.conversation .btn {
  align-self: flex-end;
}
.ticket {
  border-top: 1px solid var(--border);
  padding: 14px 0;
}
.ticket-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  justify-content: space-between;
  border: 0;
  padding: 12px 0;
  text-align: right;
  background: none;
  font-size: 13px;
}
.toggle-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--border);
  padding: 20px 0;
  font-size: 14px;
}
.sales-chart .bars {
  height: 200px;
  display: flex;
  gap: 20px;
  padding: 20px 20px 0;
  align-items: end;
  direction: rtl;
}
.bars > div {
  flex: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: center;
  gap: 7px;
}
.bars > div > span {
  display: block;
  background: #9ab5f7;
  border-radius: 5px 5px 0 0;
  width: 70%;
  max-width: 60px;
}
.bars > div:nth-child(6) > span {
  background: var(--primary);
}
.bars small {
  font-size: 11px;
}
.upload {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  background: #f7f9fe;
  border: 1px dashed #bac3db;
  padding: 22px;
  border-radius: 8px;
  font-size: 12px;
  color: #8492b5;
}
.upload > input {
  max-width: 330px;
  font-size: 12px;
  background: transparent;
  border: 0;
}
.upload-preview {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 0;
  flex-wrap: wrap;
}
.upload-preview img {
  width: 100px;
  height: 70px;
  object-fit: cover;
  border-radius: 6px;
}
.auth {
  max-width: 440px;
  margin: 35px auto;
  padding: 30px;
}
.auth h1 {
  font-size: 23px;
  margin: 15px 0 10px;
}
.auth .muted {
  font-size: 12px;
  margin-bottom: 20px;
}
.auth .form > .btn {
  width: 100%;
}
.large-mark {
  height: 52px;
  width: 52px;
  font-size: 36px;
}
.auth-links {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  color: var(--primary);
  margin-top: 24px;
}
.help-heading {
  text-align: center;
  padding: 20px 0 30px;
}
.help-heading > svg {
  color: #788fc9;
  margin-bottom: 15px;
}
.help-heading p {
  font-size: 14px;
  color: var(--muted);
}
.help-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin: 0 0 24px;
}
.help-cards .panel {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  padding: 20px;
}
.help-cards svg {
  color: #6a84c4;
}
.help-cards svg:last-child {
  margin-right: auto;
}
details {
  border-bottom: 1px solid var(--border);
  padding: 19px 0;
  font-size: 14px;
}
summary {
  cursor: pointer;
  font-weight: 600;
}
details p {
  color: var(--muted);
  padding-top: 10px;
}
.two-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 24px;
}
.seller-intro {
  background: #ebeff8;
  padding: 35px;
}
.seller-intro h1 {
  margin: 15px 0;
  font-size: 30px;
}
.seller-intro p {
  color: #8a789f;
  margin-bottom: 20px;
}
.legal {
  max-width: 900px;
  margin: auto;
  padding: 35px 45px;
}
.not-found > strong {
  font-size: 85px;
  color: #9baedd;
  line-height: 1.2;
}
.loading {
  height: 500px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #8a729f;
}
.loading > span {
  width: 20px;
  height: 20px;
  border: 2px solid #d6ddf0;
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
footer {
  background: white;
  border-top: 1px solid var(--border);
  padding: 35px 0 0;
  font-size: 12px;
  color: #88818f;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 30px;
}
.footer-top > div {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.footer-top h3 {
  font-size: 13px;
  color: #4d425f;
  margin-bottom: 7px;
}
.footer-top p {
  font-size: 12px;
  line-height: 1.9;
}
.footer-top .brand strong {
  font-size: 23px;
}
.footer-top .brand-mark {
  width: 34px;
  height: 34px;
  font-size: 27px;
}
.footer-bottom {
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 19px 0;
  font-size: 11px;
  color: #a29aab;
}
.toast {
  position: fixed;
  left: 28px;
  bottom: 28px;
  z-index: 90;
  max-width: calc(100vw - 40px);
  background: #212632;
  color: white;
  padding: 14px 19px;
  display: flex;
  gap: 10px;
  align-items: center;
  border-radius: 9px;
  box-shadow: 0 10px 30px #171e3135;
  font-size: 13px;
}
.toast > svg {
  color: #b9f377;
}
.toast button {
  border: 0;
  background: none;
  color: #b8c1d8;
  display: grid;
  place-items: center;
}
dialog {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 25px;
  max-width: calc(100vw - 30px);
  color: var(--ink);
  background: white;
  text-align: right;
}
dialog::backdrop {
  background: #131b3177;
}
.filter-dialog {
  width: 380px;
  max-height: 95vh;
  overflow: auto;
}
.dialog-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.mobile-filter,
.mobile-menu,
.mobile-bottom {
  display: none;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}
.skip {
  position: fixed;
  top: -100px;
  right: 15px;
  background: var(--primary);
  color: white;
  padding: 10px;
  z-index: 100;
}
.skip:focus {
  top: 10px;
}
@media (min-width: 1550px) {
  .container {
    max-width: 1450px;
  }
  .product-art {
    height: 165px;
  }
}
@media (max-width: 1150px) {
    .header-actions {
    gap: 16px;
  }
  .header-actions span {
    display: none;
  }
  .category-nav > .container {
    gap: 20px;
  }
  .category-nav a {
    font-size: 11px;
  }
  .category-nav .seller-link {
    display: none;
  }
  .home-top {
    grid-template-columns: 215px 1fr;
  }
  .feature-type > span {
    font-size: 52px;
  }
  .product-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .product-section > .product-grid > .product-card:last-child {
    display: none;
  }
  .catalog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .product-detail {
    grid-template-columns: 320px 1fr;
    gap: 25px;
  }
  .stats {
    grid-template-columns: repeat(2, 1fr);
  }
  .seller-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .help-cards {
    grid-template-columns: repeat(2, 1fr);
  }
  .checkout-layout {
    grid-template-columns: minmax(0, 1fr) 290px;
  }
  .purchase-panel {
    flex-wrap: wrap;
  }
  .product-art.large > strong {
    font-size: 65px;
  }
}
@media (max-width: 850px) {
  .container {
    padding-right: 20px;
    padding-left: 20px;
  }
  .header-main {
    flex-wrap: wrap;
    gap: 15px;
    padding-top: 15px;
    padding-bottom: 15px;
    min-height: 110px;
  }
  .header-search {
    order: 3;
    flex-basis: 100%;
    height: 44px;
  }
  .header-actions {
    margin-right: auto;
  }
  .brand strong {
    font-size: 24px;
  }
  .category-nav > .container {
    overflow-x: auto;
    gap: 25px;
  }
  .category-nav a.all {
    padding-left: 15px;
  }
  .demo-banner p {
    font-size: 11px;
  }
  .demo-banner a {
    display: none;
  }
  .demo-banner > .container {
    gap: 9px;
  }
  .home-top {
    grid-template-columns: 1fr;
  }
  .category-side {
    display: none;
  }
  .editorial {
    height: 260px;
    padding: 25px;
  }
  .editorial h1 {
    font-size: 29px;
  }
  .feature-type > span {
    font-size: 58px;
  }
  .trust-strip {
    height: 58px;
  }
  .popular-tags {
    overflow-x: auto;
    white-space: nowrap;
    margin-bottom: 25px;
  }
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .product-section > .product-grid > .product-card:last-child {
    display: block;
  }
  .product-section > .product-grid > .product-card:nth-child(n + 4) {
    display: none;
  }
  .catalog-layout {
    grid-template-columns: 1fr;
  }
  .filters {
    display: none;
  }
  .mobile-filter {
    display: inline-flex;
    font-size: 12px;
    padding: 7px 12px;
    min-height: 38px;
  }
  .catalog-toolbar > .inline-search {
    flex-basis: 100%;
  }
  .catalog-toolbar {
    flex-wrap: wrap;
  }
  .catalog-toolbar > select {
    flex: 1;
  }
  .catalog-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .directory-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .product-detail {
    grid-template-columns: 250px 1fr;
    gap: 20px;
  }
  .product-art.large {
    height: 320px;
    padding: 20px;
  }
  .product-art.large > strong {
    font-size: 53px;
    margin-top: 60px;
  }
  .spec-grid {
    grid-template-columns: 1fr;
  }
  .variations {
    gap: 7px;
  }
  .variations > button {
    padding: 10px;
    font-size: 11px;
  }
  .big-price {
    font-size: 21px;
  }
  .dashboard-layout {
    grid-template-columns: 1fr;
  }
  .dashboard-nav {
    padding: 0;
    margin-bottom: 0;
  }
  .dash-profile,
  .switch-role {
    display: none;
  }
  .dashboard-nav nav {
    flex-direction: row;
    overflow: auto;
    gap: 3px;
    padding: 8px;
  }
  .dashboard-nav nav a {
    white-space: nowrap;
    padding: 7px 12px;
    font-size: 12px;
  }
  .dashboard-nav nav a svg {
    display: none;
  }
  .checkout-layout {
    grid-template-columns: 1fr;
  }
    .cart-row .product-art {
    width: 100px;
  }
  .footer-top {
    gap: 20px;
    grid-template-columns: repeat(2, 1fr);
  }
  .store-header {
    flex-wrap: wrap;
  }
  .store-header > .btn {
    margin-right: 100px;
  }
  .conversations {
    grid-template-columns: 160px 1fr;
  }
  .table-toolbar {
    flex-wrap: wrap;
  }
  .table-toolbar .inline-search {
    min-width: 180px;
  }
}
@media (max-width: 580px) {
  body {
    font-size: 15px;
  }
  .container {
    padding: 0 15px;
  }
  .main {
    padding-top: 20px;
    padding-bottom: 35px;
  }
  h1 {
    font-size: 22px;
  }
  h2 {
    font-size: 18px;
  }
  .utility {
    font-size: 11px;
    height: 28px;
  }
  .utility nav {
    gap: 12px;
  }
  .utility nav > span {
    display: none;
  }
  .header-main {
    padding-top: 14px;
    padding-bottom: 12px;
    gap: 12px;
  }
  .brand-mark {
    width: 34px;
    height: 34px;
    font-size: 26px;
    border-radius: 8px;
  }
  .brand strong {
    font-size: 24px;
  }
    .header-actions {
    gap: 16px;
  }
  .header-actions > a:first-child {
    display: none;
  }
  .cart-link {
    padding-right: 0;
    border: 0;
  }
  .header-actions svg {
    width: 21px;
  }
  .header-search {
    height: 43px;
    font-size: 12px;
  }
  .header-search input {
    font-size: 12px;
  }
  .header-search button {
    font-size: 11px;
    padding: 0 12px;
    height: 32px;
  }
  .mobile-menu {
    display: flex;
    border: 0;
    width: 28px;
    height: 30px;
  }
  .category-nav {
    display: none;
  }
  .category-nav.open {
    display: block;
  }
  .category-nav > .container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    height: auto;
    padding-top: 12px;
    padding-bottom: 12px;
    gap: 0;
  }
  .category-nav a {
    padding: 9px 0;
    font-size: 13px;
  }
  .category-nav a.all {
    border: 0;
    padding-left: 0;
  }
  .demo-banner .container {
    padding: 7px 15px;
    align-items: flex-start;
    gap: 8px;
    line-height: 1.7;
  }
  .demo-banner .container > span {
    font-size: 11px;
    margin-top: 2px;
  }
  .demo-banner p {
    font-size: 11px;
  }
  .editorial {
    padding: 20px;
    height: 230px;
  }
  .editorial h1 {
    font-size: 25px;
  }
  .editorial p {
    font-size: 11px;
  }
  .editorial .btn {
    font-size: 11px;
    min-height: 31px;
    padding: 7px 11px;
  }
  .feature-type {
    padding-left: 0;
    margin-right: 10px;
  }
  .feature-type > span {
    font-size: 36px;
    letter-spacing: -2px;
  }
  .feature-type > small {
    font-size: 11px;
    margin-top: 12px;
  }
  .trust-strip {
    padding: 0 9px;
    gap: 7px;
    font-size: 11px;
    height: 47px;
    margin-top: 10px;
  }
  .trust-strip > span {
    gap: 4px;
  }
  .trust-strip svg {
    width: 14px;
  }
  .popular-tags {
    margin: 15px 0 20px;
    gap: 8px;
    font-size: 11px;
  }
  .popular-tags a {
    padding: 3px 10px;
  }
  .product-section {
    margin: 22px 0 27px;
  }
  .section-heading {
    gap: 10px;
    margin-bottom: 12px;
  }
  .section-heading > div > p {
    font-size: 11px;
  }
  .section-heading > a {
    font-size: 11px;
  }
  .section-heading > .muted {
    font-size: 11px;
    max-width: 130px;
  }
  .product-grid,
  .catalog-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .product-section > .product-grid > .product-card:nth-child(4) {
    display: block;
  }
  .product-section > .product-grid > .product-card:nth-child(n + 5) {
    display: none;
  }
  .product-art {
    height: 133px;
    padding: 11px;
  }
  .product-art > strong {
    font-size: 29px;
    margin-top: 18px;
  }
  .art-meta {
    font-size: 11px;
  }
  .art-meta > span:last-child {
    display: none;
  }
        .product-name {
    font-size: 12px;
    min-height: 23px;
    margin-top: 5px;
  }
  .meta {
    font-size: 11px;
  }
  .subtitle {
    font-size: 11px;
    margin-bottom: 7px;
  }
  .seller-line {
    font-size: 11px;
    padding-bottom: 8px;
  }
  .card-price {
    padding-top: 8px;
  }
  .card-price > strong {
    font-size: 12px;
  }
  .delivery {
    font-size: 11px;
  }
  .card-tag {
    font-size: 11px;
    right: 9px;
    bottom: 9px;
  }
  .favorite {
    width: 25px;
    height: 25px;
    left: 8px;
    top: 8px;
  }
  .favorite svg {
    width: 15px;
  }
  .seller-grid {
    gap: 9px;
  }
  .seller-card {
    padding: 11px 9px;
    gap: 8px;
    flex-wrap: wrap;
  }
  .seller-card .avatar {
    width: 40px;
    height: 40px;
    font-size: 18px;
  }
  .seller-card strong {
    font-size: 11px;
  }
  .seller-card .rating {
    font-size: 11px;
  }
  .seller-card > div > span {
    font-size: 11px;
  }
  .seller-callout {
    padding: 18px;
    gap: 15px;
    flex-wrap: wrap;
  }
  .seller-callout p {
    font-size: 11px;
  }
  .seller-callout .btn {
    min-height: 35px;
    font-size: 12px;
  }
  .breadcrumbs {
    font-size: 11px;
    gap: 5px;
    margin-bottom: 14px;
  }
  .panel {
    padding: 18px;
    margin-bottom: 15px;
  }
  .page-heading {
    margin-bottom: 16px;
  }
  .page-heading p {
    font-size: 12px;
  }
  .catalog-toolbar {
    padding: 9px;
    gap: 8px;
  }
  .catalog-toolbar > select {
    min-height: 37px;
    font-size: 11px;
  }
  .view-toggle > button {
    width: 28px;
  }
  .catalog-toolbar .inline-search input {
    font-size: 12px;
    min-height: 36px;
  }
  .list-view {
    grid-template-columns: 1fr;
  }
  .list-view .art-link {
    width: 125px;
  }
  .list-view .product-art {
    height: 149px;
  }
  .list-view .card-price {
    flex-direction: column;
    align-items: flex-start;
  }
  .directory-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .directory-grid .section-heading h2 {
    font-size: 17px;
  }
  .product-detail {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .product-media {
    max-width: 100%;
  }
  .product-art.large {
    height: 290px;
    padding: 25px;
  }
  .product-art.large > strong {
    font-size: 68px;
    margin-top: 50px;
  }
  .product-art.large .art-meta {
    font-size: 11px;
  }
  .product-art.large .art-title {
    font-size: 18px;
  }
  .seller-box {
    margin-bottom: 0;
  }
  .product-info h1 {
    font-size: 25px;
  }
  .product-info > p {
    font-size: 13px;
  }
  .product-social {
    font-size: 11px;
    margin: 13px 0;
  }
  .spec-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 12px;
    gap: 12px;
  }
  .spec-grid > div {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    font-size: 11px;
  }
  .notice {
    font-size: 12px;
    padding: 12px;
    align-items: flex-start;
  }
  .notice p {
    font-size: 12px;
  }
  .purchase-panel {
    padding: 15px;
  }
  .purchase-actions {
    width: 100%;
  }
  .purchase-actions > .primary {
    flex: 1;
  }
  .purchase-panel .big-price {
    font-size: 24px;
  }
  .tabs {
    gap: 18px;
  }
  .tabs > button,
  .tabs > a {
    font-size: 12px;
    padding: 10px 0;
  }
  .prose p,
  .prose li {
    font-size: 13px;
  }
  .prose h2 {
    font-size: 18px;
  }
  .store-header {
    gap: 15px;
  }
  .store-header .avatar.big {
    height: 55px;
    width: 55px;
    font-size: 26px;
  }
  .store-header h1 {
    font-size: 20px;
  }
  .store-header p {
    font-size: 12px;
  }
  .store-header .muted {
    font-size: 11px;
  }
  .store-header > .btn {
    margin-right: 0;
    width: 100%;
    font-size: 12px;
  }
  .cart-row {
    gap: 10px;
    flex-wrap: wrap;
    padding: 17px 0;
  }
  .cart-row .product-art {
    width: 70px;
    height: 86px;
  }
  .cart-row .product-art > strong {
    font-size: 21px;
  }
  .cart-info > strong,
  .cart-info > a {
    font-size: 13px;
  }
  .cart-info p,
  .cart-info small {
    font-size: 11px;
  }
  .cart-row > div:last-child {
    flex-direction: row;
    width: 100%;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
  }
  .cart-items {
    padding: 0 15px;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .field > span {
    font-size: 12px;
  }
  .form .field input,
  .form .field select,
  .form .field textarea {
    font-size: 13px;
  }
  .checkout-layout {
    margin-top: 18px;
    gap: 10px;
  }
  .payment-options {
    flex-direction: column;
  }
  .summary {
    padding: 20px;
  }
  .result {
    padding: 35px 20px;
    margin: 20px 0;
  }
  .result h1 {
    font-size: 21px;
  }
  .result .actions {
    justify-content: center;
  }
  .result .btn {
    white-space: normal;
    font-size: 12px;
  }
  .dashboard-layout {
    gap: 15px;
  }
  .stats {
    gap: 10px;
    margin-bottom: 15px;
  }
  .stat {
    min-height: 108px;
    padding: 14px;
    gap: 15px;
  }
  .stat > span {
    font-size: 11px;
  }
  .stat > strong {
    font-size: 17px;
  }
  .stat > svg {
    width: 16px;
    left: 12px;
    top: 12px;
  }
  .welcome h2 {
    font-size: 17px;
  }
  .welcome p {
    font-size: 12px;
  }
  .welcome .btn {
    margin: 0;
    font-size: 12px;
  }
  .table-wrap {
    padding: 0;
  }
  th,
  td {
    padding: 14px 12px;
    font-size: 12px;
  }
  .table-toolbar > select {
    font-size: 11px;
  }
  .table-toolbar > .btn {
    font-size: 11px;
    min-height: 38px;
  }
  .table-toolbar {
    gap: 8px;
  }
  .table-toolbar .inline-search {
    flex-basis: 100%;
  }
  .order-header {
    flex-direction: column;
    align-items: flex-start;
  }
  .order-header h2 {
    font-size: 15px;
    overflow-wrap: anywhere;
  }
  .license {
    padding: 8px;
  }
  .license code {
    font-size: 11px;
  }
  .delivery-box {
    padding: 12px;
    gap: 8px;
  }
  .delivery-box strong {
    font-size: 13px;
  }
  .delivery-box p {
    font-size: 11px;
  }
  .conversations {
    grid-template-columns: 1fr;
    padding: 0;
  }
  .conversations > aside {
    display: flex;
    overflow-x: auto;
    border-left: 0;
    border-bottom: 1px solid var(--border);
    padding: 8px;
  }
  .conversations aside > button {
    width: auto;
    min-height: 48px;
    white-space: nowrap;
    padding: 8px;
    font-size: 11px;
  }
  .conversations aside .avatar {
    width: 23px;
    height: 23px;
    font-size: 14px;
  }
  .conversation {
    padding: 15px;
  }
  .conversation header {
    font-size: 12px;
  }
  .message-list {
    min-height: 200px;
  }
  .conversation textarea {
    font-size: 12px;
  }
  .conversation .btn {
    padding: 8px 12px;
    font-size: 12px;
  }
  .conversation > small {
    font-size: 11px;
  }
  .ticket-heading {
    flex-wrap: wrap;
  }
  .sales-chart .bars {
    gap: 6px;
    padding: 20px 0 0;
    height: 150px;
  }
  .bars small {
    font-size: 11px;
  }
  .auth {
    padding: 25px 20px;
    margin: 15px auto;
  }
  .auth-links {
    font-size: 11px;
  }
  .help-cards {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .help-cards .panel {
    padding: 15px;
    font-size: 13px;
  }
  .help-heading {
    padding: 15px 0 25px;
  }
  .two-columns {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .seller-intro {
    padding: 25px 20px;
  }
  .seller-intro h1 {
    font-size: 24px;
  }
  .seller-intro p {
    font-size: 13px;
  }
  .legal {
    padding: 24px 20px;
  }
  .empty {
    padding: 45px 20px;
    min-height: 300px;
  }
  .empty h2 {
    font-size: 18px;
  }
  .empty p {
    font-size: 12px;
  }
  .footer-top {
    grid-template-columns: 1fr 1fr;
    gap: 25px 15px;
  }
  .footer-top > div:first-child {
    grid-column: 1/-1;
  }
  .footer-top p {
    font-size: 11px;
  }
  .footer-bottom {
    flex-direction: column;
    font-size: 11px;
    padding-bottom: 85px;
  }
  .footer-top > div {
    gap: 7px;
  }
  .mobile-bottom {
    display: flex;
    justify-content: space-around;
    position: fixed;
    bottom: 0;
    right: 0;
    left: 0;
    background: white;
    border-top: 1px solid var(--border);
    z-index: 50;
    padding: 9px 5px 12px;
    box-shadow: 0 -4px 15px #151d3305;
  }
  .mobile-bottom > a {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 3px;
    font-size: 11px;
    color: #7f6f8f;
  }
  .mobile-bottom > a:hover {
    color: var(--primary);
  }
  .toast {
    bottom: 82px;
    left: 15px;
    right: 15px;
    font-size: 12px;
  }
  .toast > button {
    margin-right: auto;
  }
  .btn {
    font-size: 13px;
  }
  .review p {
    font-size: 12px;
  }
  .review strong {
    font-size: 12px;
  }
  .review small {
    font-size: 11px;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}
.route-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 20px;
}
.route-list > a {
  font: 13px monospace;
  padding: 12px;
  background: #f2f6fe;
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow-wrap: anywhere;
  text-align: left;
  direction: ltr;
}
@media (max-width: 700px) {
  .route-list {
    grid-template-columns: 1fr;
  }
}
/* Keep functional labels legible in the compact marketplace. */
.header-actions,
.category-nav,
.field > span,
.field input,
.field select,
.field textarea,
.dashboard-nav nav a,
.catalog-toolbar > select,
.table-toolbar > select,
.tabs > button,
.tabs > a,
.table-toolbar > .btn,
.directory-link,
.btn {
  font-size: 14px;
}
.meta,
.subtitle,
.seller-line,
.delivery,
.badge,
.section-heading > a,
.section-heading > div > p,
.popular-tags,
.muted,
.breadcrumbs,
.footer-top,
.footer-top p,
.demo-banner,
.demo-banner p,
.summary > p,
.cart-info small,
.art-meta,
.art-meta > span:last-child,
.art-bottom,
.art-title,
.card-tag,
.mobile-bottom > a,
.footer-bottom,
.seller-card > div > span,
.filter-help p,
.filter-help a,
.auth-links,
.order-summary-item span,
.order-header p,
.message small,
.review small,
.bars small {
  font-size: 12px;
}
.product-name,
.card-price > strong,
.seller-card strong,
.product-social,
.spec-grid > div,
.spec-grid strong,
.cart-info > p,
.cart-info > a,
.cart-row > div:last-child,
.stat > span,
.message p,
.ticket-heading,
.conversation > small,
.check,
.notice p,
.filter-help strong {
  font-size: 14px;
}
.art-meta > span:last-child {
  display: none;
}
.header-search input {
  font-size: 14px;
}
.card-price .delivery {
  font-size: 12px;
}
.product-name {
  min-height: 26px;
}
.subtitle {
  line-height: 1.8;
}
.product-card .meta {
  gap: 4px;
}
.seller-line span {
  font-size: 12px;
}
@media (max-width: 580px) {
  .header-search input {
    font-size: 13px;
  }
  .trust-strip {
    font-size: 11px;
    min-height: 56px;
    padding: 7px 9px;
    align-items: flex-start;
  }
  .trust-strip > span {
    flex-direction: column;
    text-align: center;
    line-height: 1.7;
    flex: 1;
  }
  .demo-banner .container > span,
  .demo-banner p {
    font-size: 11px;
  }
  .seller-card > .rating {
    font-size: 12px;
  }
  .seller-card > div {
    min-width: 0;
  }
  .product-card .meta {
    font-size: 11px;
  }
    .subtitle {
    font-size: 12px;
  }
    .card-body {
    padding: 10px;
  }
  .stat > strong {
    font-size: 18px;
  }
    .feature-type > small {
    font-size: 11px;
  }
  .section-heading > .muted {
    font-size: 11px;
  }
  .brand small {
    font-size: 11px;
  }
}

.thumb {
  width: 56px;
  height: 36px;
  object-fit: cover;
  border-radius: 8px;
  vertical-align: middle;
}
.thumb.wide {
  width: 100%;
  max-width: 320px;
  height: auto;
  aspect-ratio: 16/6;
  display: block;
  margin-bottom: 8px;
}
.swatch {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  vertical-align: middle;
}
/* ios-glass.css - GLASS + FEATURE LAYER (loaded second)
   1. The frosted-glass look (tokens such as --glass-panel, blurred headers, floating bottom bar) for light and dark.
   2. Feature blocks appended over time, each introduced by its own comment: phone menu and account hub, sample-data page,
      order page and progress bar, campaign banner, image editor (.ie-*), receipt printer (.printer, .receipt-*), product-card art.
   Keep new features as a new commented block at the END of this file. Dark theme = :root[data-theme="dark"]. */

/* ApiMarkets glass material system.
 * Original CSS implementation of an iOS-inspired direction, not an imported
 * Figma/Apple library. Figma library access was rate-limited for this change.
 * Content uses high-opacity surfaces; navigation carries the stronger glass.
 */
:root {
  --primary: #0060f0;
  --primary-dark: #0048c8;
  --ink: #202735;
  --muted: #606477;
  --border: rgba(105, 113, 147, 0.18);
  --bg: #eef2f9;
  --surface: #fff;
  --radius: 22px;
  --glass-chrome: rgba(249, 251, 255, 0.78);
  --glass-panel: rgba(255, 255, 255, 0.84);
  --glass-content: rgba(255, 255, 255, 0.94);
  --glass-field: rgba(235, 242, 253, 0.86);
  --glass-edge: rgba(255, 255, 255, 0.92);
  --glass-shadow: 0 8px 28px rgba(36, 55, 91, 0.055), inset 0 1px 0 rgba(255, 255, 255, 0.95);
  --glass-floating-shadow: 0 12px 35px rgba(40, 54, 80, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.96);
  --glass-blur: 24px;
  --control-radius: 14px;
}
body {
  background-color: var(--bg);
  background-image: none;
  -webkit-tap-highlight-color: transparent;
}
button,
input,
select,
textarea {
  border-radius: var(--control-radius);
}
button,
a {
  touch-action: manipulation;
}
button:disabled {
  opacity: 0.58;
}
:focus-visible {
  outline: 3px solid #2f6dee;
  outline-offset: 4px;
}
input:focus,
textarea:focus,
select:focus {
  outline: 2px solid #5d8ef2;
  outline-offset: 2px;
}
.utility {
  background: rgba(237, 241, 248, 0.68);
  color: #606477;
}
.site-header {
  position: sticky;
  top: 0;
  z-index: 40;
  background: var(--glass-chrome);
  border: 0;
  border-bottom: 1px solid var(--glass-edge);
  box-shadow: 0 6px 24px rgba(44, 60, 88, 0.055);
  backdrop-filter: blur(var(--glass-blur)) saturate(155%);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(155%);
}
.header-main {
  min-height: 85px;
  gap: 26px;
}
.brand-mark {
  border-radius: 14px;
  background: linear-gradient(145deg, #5f8ef2, var(--primary));
  box-shadow:
    inset 0 1px 1px #ffffff70,
    0 5px 10px #0060f019;
}
.brand strong {
  color: var(--ink);
}
.brand small {
  color: var(--muted);
}
.header-search {
  border-radius: 18px;
  background: var(--glass-field);
  border: 1px solid rgba(255, 255, 255, 0.96);
  box-shadow: inset 0 1px 4px rgba(53, 68, 96, 0.04);
  height: 48px;
}
.header-search input {
  background: transparent;
}
.header-search button {
  border-radius: 13px;
  min-height: 38px;
  background: var(--primary);
}
.header-actions {
  gap: 10px;
}
.header-actions > a {
  padding: 10px 12px;
  min-height: 44px;
  min-width: 44px;
  justify-content: center;
  border-radius: 16px;
}
.header-actions > a:hover {
  background: rgba(255, 255, 255, 0.76);
  box-shadow: inset 0 0 0 1px #fff;
}
.header-actions .cart-link {
  border: 0;
  background: rgba(255, 255, 255, 0.62);
  box-shadow: inset 0 0 0 1px #fff;
}
.header-actions i {
  top: 2px;
  right: 2px;
  border: 2px solid #f3f7fe;
  width: 20px;
  height: 20px;
}
.category-nav {
  border-top-color: rgba(124, 124, 159, 0.1);
}
.category-nav > .container {
  height: 48px;
  gap: 22px;
}
.category-nav a {
  font-size: 13px;
  color: #50546a;
}
.category-nav a.all {
  color: var(--ink);
  border-left-color: rgba(126, 129, 153, 0.2);
}
.category-nav .seller-link {
  color: var(--primary);
}
.demo-banner {
  background: rgba(227, 235, 253, 0.67);
  color: #546282;
  border-bottom-color: #ffffffaa;
}
.demo-banner > .container {
  min-height: 36px;
}
.main {
  padding-top: 27px;
}
.panel,
.category-side,
.product-card,
.seller-card,
.trust-strip,
.empty,
.spec-grid,
.purchase-panel,
.catalog-toolbar,
.seller-callout {
  border: 1px solid var(--glass-edge);
  border-radius: var(--radius);
  box-shadow: var(--glass-shadow);
  background: var(--glass-panel);
}
.panel,
.category-side,
.trust-strip,
.seller-callout,
.filters {
  background: var(--glass-content);
}
.product-card,
.spec-grid,
.purchase-panel,
.table-wrap,
.conversations {
  background: var(--glass-content);
}
.product-card {
  overflow: hidden;
}
.product-card:hover {
  box-shadow:
    0 12px 26px rgba(43, 58, 87, 0.11),
    inset 0 0 0 1px white;
  transform: translateY(-2px);
}
.category-side {
  padding: 17px 10px 10px;
}
.category-side h3 {
  padding: 0 9px 14px;
  margin-bottom: 6px;
  border-bottom-color: var(--border);
}
.category-side > a {
  border-radius: 13px;
  padding: 11px 10px;
  min-height: 46px;
}
.category-side > a:hover {
  background: rgba(255, 255, 255, 0.72);
  color: var(--primary);
}
.category-side .all-categories {
  border-top: 1px solid var(--border);
  border-radius: 0;
  padding-bottom: 7px;
}
.editorial {
  min-height: 284px;
  color: var(--ink);
  border: 1px solid var(--glass-edge);
  border-radius: 26px;
  background: linear-gradient(
    112deg,
    rgba(236, 247, 254, 0.84),
    rgba(224, 233, 254, 0.89) 62%,
    rgba(246, 249, 255, 0.93)
  );
  box-shadow: var(--glass-shadow);
  padding: 27px 32px;
}
.editorial h1 {
  font-size: 31px;
  letter-spacing: -0.6px;
}
.editorial p {
  color: #66617c;
  font-size: 14px;
}
.editorial .badge.lime {
  color: #4965a2;
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid white;
  border-radius: 100px;
  padding: 4px 10px;
  font-size: 12px;
}
.editorial .btn.light {
  background: var(--primary);
  color: white;
  border-radius: 100px;
  min-height: 40px;
  padding: 9px 18px;
  box-shadow:
    0 5px 14px #0060f025,
    inset 0 1px 1px #ffffff30;
}
.feature-type {
  transform: rotate(-5deg);
}
.feature-type > span {
  font-size: 58px;
  letter-spacing: -3px;
  color: #1f5fd0;
  text-shadow: 0 2px 0 rgba(255, 255, 255, 0.5);
}
.feature-type > span:nth-child(2) {
  color: #6f88b8;
}
.feature-type > span:nth-child(3) {
  color: #3d4e6c;
}
.feature-type > small {
  color: #67687e;
  transform: rotate(5deg);
}
.trust-strip {
  border-radius: 18px;
  height: 69px;
}
.trust-strip svg {
  color: #6780b7;
}
.popular-tags a {
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(255, 255, 255, 0.95);
  border-radius: 100px;
  padding: 5px 15px;
  color: #53536c;
}
.popular-tags a:hover {
  background: white;
  border-color: #b5c4e3;
}
.product-art {
  border-radius: 0;
}
.product-art.large {
  border-radius: 23px;
  box-shadow: var(--glass-shadow);
}
.card-body {
  padding: 13px 15px 15px;
}
.meta {
  color: #66657b;
}
.product-name {
  color: var(--ink);
}
.subtitle,
.seller-line a {
  color: #555368;
}
.seller-line {
  border-bottom-color: rgba(108, 110, 139, 0.12);
}
.card-price {
  gap: 6px;
}
.card-tag {
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.92);
  color: #43588a;
  padding: 3px 10px;
  bottom: 10px;
}
.favorite {
  width: 40px;
  height: 40px;
  left: 9px;
  top: 9px;
  background: rgba(255, 255, 255, 0.83);
  border: 1px solid #ffffffc9;
  box-shadow: 0 4px 12px #17213814;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.favorite:hover {
  background: #fff;
}
.favorite.selected {
  background: #eff4ff;
  color: var(--primary);
}
.seller-card {
  padding: 17px;
  border-radius: 20px;
}
.avatar {
  border-radius: 14px;
  box-shadow: inset 0 1px 2px #ffffff3d;
}
.avatar.small {
  border-radius: 11px;
}
.avatar.big {
  border-radius: 24px;
}
.seller-callout {
  background: rgba(224, 233, 252, 0.73);
}
.btn,
.icon-btn {
  border-radius: var(--control-radius);
  border-color: rgba(190, 198, 212, 0.48);
  background: rgba(255, 255, 255, 0.8);
  box-shadow: inset 0 1px 0 #ffffffbd;
  min-height: 44px;
}
.btn:hover,
.icon-btn:hover {
  background: #fff;
  border-color: #a8b6d6;
}
.btn.primary {
  background: var(--primary);
  border-color: transparent;
  box-shadow:
    inset 0 1px 1px #ffffff30,
    0 4px 12px #0060f01a;
}
.btn.primary:hover {
  background: var(--primary-dark);
}
.btn.primary:active {
  transform: translateY(1px);
}
.icon-btn {
  min-width: 44px;
  width: 44px;
  height: 44px;
}
.badge {
  border-radius: 100px;
  padding: 4px 9px;
}
.badge.gray {
  background: #eef0f5;
  color: #62617a;
}
.badge.purple {
  background: #e8effd;
  color: #4061ab;
}
.badge.green {
  background: #e7f3ef;
  color: #216952;
}
.badge.orange {
  background: #fff2dc;
  color: #8b601d;
}
.badge.red {
  background: #fce9ed;
  color: #9e304e;
}
.breadcrumbs {
  color: #696d80;
}
.breadcrumbs a {
  color: #62637b;
}
.filters {
  top: 154px;
}
.field input,
.field select,
.field textarea {
  border-color: rgba(177, 188, 207, 0.36);
  background: var(--glass-field);
  box-shadow: inset 0 1px 3px rgba(69, 84, 109, 0.025);
}
.field > span {
  color: #53576d;
}
input::placeholder,
textarea::placeholder {
  color: #757a8a;
  opacity: 1;
}
.inline-search {
  background: var(--glass-field);
  border-color: rgba(194, 204, 222, 0.4);
  border-radius: 14px;
  min-height: 44px;
}
.inline-search input {
  background: transparent;
}
.catalog-toolbar {
  padding: 10px;
  border-radius: 19px;
}
.catalog-toolbar > select,
.table-toolbar > select {
  border-radius: 13px;
  background: rgba(255, 255, 255, 0.82);
  min-height: 44px;
}
.view-toggle {
  background: #ebeef5;
  border: 1px solid rgba(193, 202, 219, 0.25);
  padding: 3px;
  border-radius: 13px;
  gap: 3px;
}
.view-toggle > button {
  border-radius: 10px;
  width: 36px;
  min-height: 38px;
}
.view-toggle > button[aria-pressed='true'] {
  background: white;
  color: var(--primary);
  box-shadow: 0 2px 5px #2d3c5612;
}
.tabs {
  gap: 5px;
  padding: 4px;
  border: 1px solid rgba(189, 199, 217, 0.25);
  border-radius: 15px;
  background: rgba(228, 233, 244, 0.65);
  width: fit-content;
  max-width: 100%;
}
.tabs > button,
.tabs > a {
  border: 0;
  border-radius: 11px;
  min-height: 44px;
  padding: 9px 16px;
  color: #5b6074;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.tabs > .active {
  background: rgba(255, 255, 255, 0.97);
  color: var(--primary);
  box-shadow: 0 2px 8px rgba(38, 54, 84, 0.09);
}
.pagination button {
  border-radius: 13px;
  width: 44px;
  height: 44px;
  background: rgba(255, 255, 255, 0.8);
  border-color: white;
}
.pagination button[aria-current] {
  background: var(--primary);
  border-color: transparent;
}
.spec-grid {
  border-radius: 18px;
}
.spec-grid > div {
  border-bottom-color: rgba(113, 117, 143, 0.12);
}
.variations > button {
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.77);
  border: 1px solid rgba(177, 187, 207, 0.38);
}
.variations .selected,
.payment-options .selected {
  background: #edf3ff;
  border-color: var(--primary);
  box-shadow: inset 0 0 0 1px var(--primary);
}
.purchase-panel {
  border-radius: 21px;
}
.notice {
  border-radius: 14px;
  background: #eaf0fd;
  border-color: #d5e1fc;
  color: #65577b;
}
.notice.warning {
  background: #fff6e4;
  border-color: #eee0be;
  color: #816a3d;
}
.payment-options > label {
  border-radius: 16px;
  min-height: 60px;
  background: rgba(246, 249, 254, 0.9);
}
.qty {
  gap: 4px;
  border: 1px solid rgba(179, 191, 213, 0.35);
  padding: 3px;
  border-radius: 13px;
  width: fit-content;
  background: #eff2f7;
}
.qty > button {
  border: 0;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: white;
}
.qty > span {
  min-width: 24px;
  text-align: center;
}
.summary {
  top: 154px;
}
.dashboard-nav {
  background: var(--glass-panel);
  padding: 17px 8px 8px;
}
.dashboard-nav nav {
  padding: 0;
  gap: 4px;
}
.dashboard-nav nav a {
  border-radius: 13px;
  min-height: 44px;
  color: #5f6378;
}
.dashboard-nav nav a.active {
  background: #e5ecfd;
  color: #4160a4;
  box-shadow: inset 0 1px 0 white;
}
.dash-profile {
  padding: 0 10px 18px;
}
.switch-role {
  min-height: 48px;
  padding-right: 12px;
  padding-left: 12px;
}
.stat {
  border-radius: 21px;
}
.stat > span {
  color: #5f647a;
}
.stat > svg {
  color: #8699c4;
}
.stat > strong {
  font-variant-numeric: tabular-nums;
}
.table-wrap {
  border-radius: 20px;
}
th {
  background: rgba(238, 242, 248, 0.72);
  color: #64657a;
}
td {
  border-bottom-color: rgba(172, 178, 199, 0.21);
}
tr:hover td {
  background: rgba(240, 245, 254, 0.45);
}
.delivery-box {
  border-radius: 17px;
  background: #ebf6f1;
  border-color: #d4e9df;
}
.license {
  border-radius: 12px;
}
.license > button {
  width: 40px;
  min-height: 40px;
  border-radius: 10px;
}
.message {
  border-radius: 19px 5px 19px 19px;
  background: #eff1f6;
}
.message.mine {
  border-radius: 5px 19px 19px 19px;
  background: #e3ebfd;
  color: #445478;
}
.conversations aside > button {
  border-radius: 14px;
}
.conversations aside > button.active {
  background: #e8eefd;
}
.conversation textarea {
  border-radius: 17px;
  background: #f3f5f8;
}
.bars > div > span {
  border-radius: 7px 7px 0 0;
  background: #a8badf;
}
.upload {
  border-radius: 18px;
  background: #f3f5fb;
}
.auth {
  border-radius: 27px;
  box-shadow:
    0 20px 60px rgba(47, 62, 94, 0.07),
    inset 0 1px 0 white;
}
.seller-intro {
  background: linear-gradient(110deg, #edf4fcde, #e2eafde8);
}
.help-cards .panel {
  border-radius: 20px;
}
footer {
  background: rgba(249, 251, 254, 0.69);
  border-top: 1px solid white;
  color: #636778;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.footer-top h3 {
  color: #42485e;
}
.footer-bottom {
  color: #5b6073;
}
.toast {
  border: 1px solid #ffffff40;
  border-radius: 20px;
  background: rgba(37, 44, 58, 0.93);
  box-shadow: 0 10px 40px #1c2a432e;
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
}
.toast > svg {
  color: #cddbfc;
}
dialog {
  border-radius: 26px;
  border: 1px solid rgba(255, 255, 255, 0.96);
  background: rgba(251, 252, 255, 0.97);
  box-shadow:
    0 30px 90px #242e4133,
    inset 0 1px 0 white;
  backdrop-filter: blur(26px) saturate(140%);
  -webkit-backdrop-filter: blur(26px) saturate(140%);
}
dialog::backdrop {
  background: rgba(29, 41, 62, 0.28);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.route-list > a {
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.78);
  border-color: white;
}
#product-tabs {
  scroll-margin-top: 160px;
}
/* A solid material is the baseline for browsers without backdrop filtering. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header,
  .panel,
  .category-side,
  .trust-strip,
  footer,
  dialog {
    background: #f7f9fe;
  }
  .product-card,
  .seller-card,
  .spec-grid,
  .purchase-panel,
  .catalog-toolbar {
    background: #fff;
  }
}
@media (max-width: 1150px) {
  .category-nav > .container {
    gap: 17px;
  }
  .category-nav a {
    font-size: 12px;
  }
  .header-actions {
    gap: 4px;
  }
  .header-main {
    gap: 20px;
  }
  .feature-type > span {
    font-size: 49px;
  }
}
@media (max-width: 850px) {
  .site-header {
    position: relative;
  }
  .header-main {
    gap: 12px;
    padding-top: 15px;
    padding-bottom: 14px;
  }
  .header-search {
    border-radius: 16px;
    height: 46px;
  }
  .header-search button {
    border-radius: 12px;
  }
  .header-actions {
    gap: 5px;
  }
  .header-actions > a {
    padding: 9px 11px;
  }
  .category-nav > .container {
    gap: 24px;
  }
  .editorial {
    min-height: 268px;
  }
  .feature-type > span {
    font-size: 55px;
  }
  .dashboard-nav {
    padding: 6px;
    border-radius: 18px;
  }
  .dashboard-nav nav {
    padding: 0;
    gap: 3px;
  }
  .dashboard-nav nav a {
    border-radius: 12px;
  }
  .dashboard-nav nav a.active {
    background: #fff;
    box-shadow: 0 2px 7px #212c400b;
  }
  .summary {
    position: static;
  }
  #product-tabs {
    scroll-margin-top: 20px;
  }
  .tabs > button,
  .tabs > a {
    font-size: 13px;
  }
  .catalog-toolbar > .inline-search {
    border-radius: 13px;
  }
}
@media (max-width: 580px) {
  :root {
    --radius: 20px;
  }
  .main {
    padding-top: 19px;
  }
  .utility {
    background: rgba(233, 237, 247, 0.58);
  }
  .header-main {
    gap: 10px;
    padding-top: 12px;
    padding-bottom: 12px;
  }
  .brand-mark {
    width: 36px;
    height: 36px;
    border-radius: 12px;
  }
  .header-actions > a {
    padding: 8px;
    min-width: 42px;
    min-height: 42px;
    border-radius: 14px;
  }
  .header-actions {
    gap: 3px;
  }
  .mobile-menu {
    width: 40px;
    height: 40px;
    min-height: 40px;
    min-width: 40px;
    border-radius: 13px;
    background: #ffffff7a;
  }
  .header-search {
    height: 44px;
    border-radius: 15px;
  }
  .header-search button {
    min-height: 34px;
    border-radius: 11px;
  }
  .category-nav.open {
    padding-bottom: 8px;
  }
  .category-nav > .container {
    padding: 5px 15px;
    gap: 3px;
  }
  .category-nav a,
  .category-nav a.all {
    min-height: 44px;
    border-radius: 12px;
    padding: 8px 12px;
    font-size: 14px;
  }
  .category-nav a:hover {
    background: #fff;
  }
  .demo-banner .container {
    padding-top: 8px;
    padding-bottom: 8px;
  }
  .editorial {
    min-height: 252px;
    padding: 22px 19px;
    border-radius: 23px;
  }
  .editorial h1 {
    font-size: 25px;
    line-height: 1.55;
    margin-top: 11px;
  }
  .editorial p {
    font-size: 12px;
    line-height: 1.9;
    margin-bottom: 13px;
  }
  .editorial .btn.light {
    font-size: 12px;
    padding: 8px 15px;
    min-height: 38px;
  }
  .editorial .badge.lime {
    font-size: 11px;
  }
  .feature-type {
    margin-right: 7px;
    padding-left: 0;
  }
  .feature-type > span {
    font-size: clamp(27px, 8.3vw, 44px);
    letter-spacing: -1.8px;
  }
  .feature-type > small {
    max-width: 125px;
    font-size: 11px;
    line-height: 1.8;
  }
  .trust-strip {
    height: auto;
    min-height: 62px;
    padding: 10px 8px;
    border-radius: 18px;
  }
  .popular-tags {
    padding: 2px 0 4px;
    gap: 7px;
  }
  .popular-tags a {
    padding: 6px 12px;
  }
  .product-card {
    border-radius: 19px;
  }
  .product-art {
    height: 157px;
    padding: 12px;
  }
  .product-art > strong {
    font-size: 30px;
    margin-top: 25px;
  }
  .art-meta {
    padding-left: 0;
    padding-right: 42px;
  }
  .art-title {
    font-size: 11px;
  }
  .art-bottom {
    font-size: 11px;
  }
  .favorite {
    width: 40px;
    height: 40px;
    top: 7px;
    left: 7px;
  }
  .favorite svg {
    width: 18px;
    height: 18px;
  }
  .card-tag {
    bottom: 8px;
    right: 9px;
    padding: 2px 8px;
    font-size: 11px;
  }
  .card-body {
    padding: 12px 11px 13px;
  }
  .product-name {
    font-size: 14px;
  }
  .seller-line {
    gap: 5px;
  }
  .seller-line a {
    font-size: 12px;
  }
  .card-price > strong {
    font-size: 14px;
  }
  .seller-card {
    padding: 12px 10px;
    border-radius: 18px;
  }
  .seller-card strong {
    font-size: 13px;
  }
  .seller-card .avatar {
    border-radius: 11px;
  }
  .seller-callout {
    padding: 20px;
    border-radius: 21px;
  }
  .btn {
    border-radius: 14px;
    min-height: 44px;
  }
  .panel {
    border-radius: 20px;
  }
  .catalog-toolbar {
    border-radius: 17px;
  }
  .catalog-toolbar > select {
    min-height: 44px;
    font-size: 13px;
  }
  .mobile-filter {
    min-height: 44px;
    font-size: 13px;
  }
  .view-toggle > button {
    width: 37px;
    min-height: 38px;
  }
  .tabs {
    border-radius: 14px;
    gap: 3px;
    padding: 4px;
  }
  .tabs > button,
  .tabs > a {
    font-size: 13px;
    padding: 9px 13px;
    min-height: 44px;
  }
  .list-view .product-art {
    height: 170px;
  }
  .list-view .art-link {
    width: 126px;
  }
  .list-view .card-price {
    padding-top: 8px;
  }
  .list-view .product-art > strong {
    font-size: 25px;
  }
  .product-art.large {
    border-radius: 22px;
    height: 290px;
  }
  .product-art.large > strong {
    font-size: 65px;
    margin-top: 55px;
  }
  .product-art.large .art-meta {
    padding-right: 0;
  }
  .purchase-panel {
    border-radius: 22px;
    padding: 17px;
  }
  .purchase-actions > .btn {
    min-height: 49px;
    border-radius: 15px;
  }
  .qty > button {
    width: 37px;
    height: 37px;
  }
  .cart-row .product-art {
    border-radius: 12px;
  }
  .cart-row .product-art > strong {
    margin-top: 13px;
  }
  .payment-options > label {
    padding: 16px;
  }
  .dashboard-nav {
    border-radius: 18px;
    padding: 6px;
  }
  .dashboard-nav nav a {
    padding: 8px 12px;
    min-height: 44px;
    font-size: 13px;
  }
  .stat {
    border-radius: 19px;
  }
  .conversations aside > button {
    font-size: 12px;
  }
  .conversation .btn {
    min-height: 44px;
  }
  .auth {
    border-radius: 26px;
  }
  .filter-dialog {
    position: fixed;
    inset: auto 0 0;
    margin: 0 auto;
    width: 100%;
    max-width: 100%;
    max-height: 88dvh;
    border-radius: 29px 29px 0 0;
    padding: 24px 20px max(24px, env(safe-area-inset-bottom));
    background: rgba(249, 251, 254, 0.97);
  }
  .filter-dialog::before {
    content: '';
    display: block;
    width: 36px;
    height: 5px;
    background: #c1c3cf;
    border-radius: 100px;
    margin: -12px auto 16px;
  }
  .filter-dialog > .btn.full {
    position: sticky;
    bottom: 0;
    min-height: 48px;
    box-shadow: 0 -5px 18px #f9fbfef5;
  }
  .mobile-bottom {
    display: flex;
    right: 12px;
    left: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
    border: 1px solid rgba(255, 255, 255, 0.96);
    border-radius: 27px;
    padding: 6px;
    min-height: 68px;
    background: rgba(246, 249, 254, 0.88);
    box-shadow: var(--glass-floating-shadow);
    backdrop-filter: blur(28px) saturate(170%);
    -webkit-backdrop-filter: blur(28px) saturate(170%);
    align-items: stretch;
  }
  .mobile-bottom > a {
    flex: 1;
    min-width: 0;
    border-radius: 21px;
    justify-content: center;
    padding: 7px 2px;
    gap: 4px;
    font-size: 11px;
    color: #545a71;
  }
  .mobile-bottom > a[aria-current='page'] {
    background: rgba(221, 231, 252, 0.94);
    color: #4062ac;
    box-shadow: inset 0 1px 0 white;
  }
  .mobile-bottom > a:hover {
    background: rgba(255, 255, 255, 0.85);
  }
  .mobile-bottom svg {
    width: 21px;
    height: 21px;
    stroke-width: 1.8;
  }
  .toast {
    bottom: calc(94px + env(safe-area-inset-bottom));
    right: 14px;
    left: 14px;
    border-radius: 20px;
  }
  .footer-bottom {
    padding-bottom: calc(110px + env(safe-area-inset-bottom));
  }
  .main {
    padding-bottom: 45px;
  }
}
@media (prefers-reduced-transparency: reduce) {
  body {
    background: #eff2f7;
  }
  .site-header,
  .panel,
  .category-side,
  .trust-strip,
  .product-card,
  .seller-card,
  .catalog-toolbar,
  .mobile-bottom,
  footer,
  dialog,
  .favorite,
  .seller-callout {
    background: #f9fbff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-color: #dfe4ed;
  }
  .spec-grid,
  .purchase-panel,
  .table-wrap,
  .conversations {
    background: #fff;
  }
  dialog::backdrop {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: #20293873;
  }
  .toast {
    background: #252c3a;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
}
@media (prefers-contrast: more) {
  :root {
    --ink: #141a25;
    --muted: #464b60;
    --border: #a6abc0;
  }
  body {
    background: #eef1f6;
  }
  .panel,
  .product-card,
  .category-side,
  .seller-card,
  .site-header,
  .mobile-bottom {
    background: #fff;
    border-color: #a6abc0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .meta,
  .subtitle,
  .seller-line a,
  .breadcrumbs,
  .footer-bottom {
    color: #42485c;
  }
  .btn,
  .field input,
  .field select,
  .field textarea {
    border-color: #999fb5;
  }
}
@media (prefers-reduced-motion: reduce) {
  .product-card:hover,
  .btn.primary:active {
    transform: none;
  }
}

/* Skill-guided refinement: glass for chrome, quiet surfaces for reading. */
html {
  scroll-padding-block-start: 170px;
}
:where(h1, h2, h3) {
  text-wrap: balance;
  scroll-margin-block-start: 170px;
}
:where(input, select, textarea, button, a) {
  scroll-margin-block: 175px 110px;
}
:where(.panel, .category-side, .trust-strip, .seller-callout, .filters) {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.panel,
.product-card,
.seller-card,
.spec-grid,
.purchase-panel,
.table-wrap,
.conversations {
  background: #fff;
  border-color: #e0e5ee;
  box-shadow: 0 3px 12px rgba(36, 55, 91, 0.035);
}
.product-card {
  border-radius: 17px;
}
.product-card:hover {
  transform: none;
  border-color: #a0b3dc;
  box-shadow: 0 5px 18px rgba(43, 58, 87, 0.08);
}
.card-price strong,
td,
.stat > strong,
.summary strong {
  font-variant-numeric: tabular-nums;
}
.product-name,
.seller-card > div,
.cart-row > div,
.message,
.license {
  min-width: 0;
  overflow-wrap: anywhere;
}
.header-search:focus-within,
.inline-search:focus-within {
  outline: 2px solid var(--primary);
  outline-offset: 3px;
}
.header-search input:focus,
.inline-search input:focus {
  outline: none;
}
.filter-dialog {
  overscroll-behavior: contain;
}
.favorite,
.qty > button,
.view-toggle > button,
.license > button {
  min-width: 44px;
  min-height: 44px;
}
.tabs {
  overflow-x: auto;
  scrollbar-width: thin;
  flex-wrap: nowrap;
}
.tabs > * {
  white-space: nowrap;
  flex-shrink: 0;
}
.art-meta {
  padding-inline-end: 48px;
}
.product-art.large .art-meta {
  padding-inline-end: 0;
}
.art-link img.product-art {
  object-fit: cover;
}
input[type='email'],
input[type='url'],
input[type='tel'] {
  text-align: left;
}
button,
a {
  transition:
    background-color 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease;
}
@media (hover: hover) {
  .mobile-bottom > a:hover,
  .header-actions > a:hover {
    background-color: #fff;
  }
}
@media (max-width: 580px) {
  html {
    scroll-padding-block-start: 16px;
  }
  :where(h1, h2, h3) {
    scroll-margin-block-start: 16px;
  }
  :where(input, select, textarea, button, a) {
    scroll-margin-block: 20px 115px;
  }
  .field input,
  .field select,
  .field textarea,
  .header-search input,
  .inline-search input {
    font-size: 16px;
  }
  .editorial {
    height: auto;
    min-height: 205px;
    padding: 20px;
  }
  .editorial h1 {
    font-size: 24px;
  }
  .editorial .feature-type {
    display: none;
  }
  .header-actions > a,
  .mobile-menu {
    min-width: 44px;
    min-height: 44px;
  }
  .header-search {
    height: 50px;
  }
  .header-search button {
    min-height: 44px;
  }
  .product-card {
    border-radius: 15px;
  }
  .favorite {
    top: 5px;
    left: 5px;
  }
  .card-body {
    padding: 12px 10px;
  }
  .card-price {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  .meta {
    flex-wrap: wrap;
    gap: 3px 8px;
  }
  .mobile-bottom {
    inset-inline: max(10px, env(safe-area-inset-left)) max(10px, env(safe-area-inset-right));
  }
  .mobile-bottom > a {
    font-size: 11px;
  }
  .mobile-bottom > a[aria-current='page'] {
    font-weight: 700;
  }
  body:has(input:focus, textarea:focus, select:focus) .mobile-bottom {
    display: none;
  }
  .filter-dialog {
    max-height: 85dvh;
    padding-bottom: max(24px, env(safe-area-inset-bottom));
  }
  .filter-dialog .field {
    margin-bottom: 15px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

.brand-logo {
  display: block;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  flex: none;
  box-shadow: 0 5px 10px #0060f026;
}
.brand-logo.large-mark {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  margin-inline: auto;
}
@media (max-width: 580px) {
  .brand-logo:not(.large-mark) {
    width: 36px;
    height: 36px;
    border-radius: 11px;
  }
}

/* Liquid Glass refinement (web adaptation of the liquid-glass-design patterns):
 * regular glass for chrome, tinted+prominent glass for the primary action,
 * interactive press response, one merged glass group for the bottom bar,
 * and a specular rim that reads as light catching the edge. */
:root {
  --glass-rim: linear-gradient(
    160deg,
    rgba(255, 255, 255, 0.95),
    rgba(255, 255, 255, 0.18) 38%,
    rgba(255, 255, 255, 0.1) 62%,
    rgba(255, 255, 255, 0.7)
  );
  --glass-tint: rgba(0, 96, 240, 0.86);
}
.site-header,
.mobile-bottom,
.header-search {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.55), rgba(255, 255, 255, 0) 60%);
  backdrop-filter: blur(var(--glass-blur)) saturate(180%) brightness(1.02);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(180%) brightness(1.02);
}
.mobile-bottom {
  position: fixed;
  isolation: isolate;
  box-shadow:
    var(--glass-floating-shadow),
    0 1px 0 rgba(255, 255, 255, 0.6) inset;
}
.mobile-bottom::before,
.editorial::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  pointer-events: none;
  background: var(--glass-rim);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box exclude,
    linear-gradient(#000 0 0);
  mask:
    linear-gradient(#000 0 0) content-box exclude,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
}
.editorial {
  position: relative;
}
.mobile-bottom > a[aria-current='page'] {
  background: var(--glass-tint);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.45),
    0 4px 12px rgba(0, 96, 240, 0.3);
}
.btn.primary,
.header-search button,
.editorial .btn.light {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.28), rgba(255, 255, 255, 0) 55%);
  background-color: var(--glass-tint);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.5),
    inset 0 -1px 0 rgba(0, 0, 0, 0.08),
    0 6px 16px rgba(0, 96, 240, 0.26);
}
.btn,
.header-actions > a,
.popular-tags a,
.category-side > a,
.mobile-bottom > a,
.favorite {
  transition:
    transform 0.18s cubic-bezier(0.3, 1.4, 0.5, 1),
    background-color 0.18s,
    box-shadow 0.18s;
}
.btn:active,
.header-actions > a:active,
.popular-tags a:active,
.mobile-bottom > a:active,
.favorite:active {
  transform: scale(0.96);
}
.product-card {
  transition:
    transform 0.22s cubic-bezier(0.3, 1.2, 0.5, 1),
    box-shadow 0.22s;
}
.panel,
.category-side,
.trust-strip {
  box-shadow:
    var(--glass-shadow),
    0 1px 2px rgba(36, 55, 91, 0.04);
}
@media (prefers-reduced-motion: reduce) {
  .btn:active,
  .header-actions > a:active,
  .popular-tags a:active,
  .mobile-bottom > a:active,
  .favorite:active {
    transform: none;
  }
  .btn,
  .header-actions > a,
  .popular-tags a,
  .category-side > a,
  .mobile-bottom > a,
  .favorite,
  .product-card {
    transition: none;
  }
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .site-header,
  .mobile-bottom,
  .header-search {
    background-image: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .mobile-bottom::before,
  .editorial::before {
    display: none;
  }
  .mobile-bottom > a[aria-current='page'] {
    background: var(--primary-dark);
  }
}

/* Audit fixes: balanced headings, tabular numerals for prices/counts, sheet scroll containment. */
:root {
  color-scheme: light;
}
h1,
h2,
h3 {
  text-wrap: balance;
}
.price,
.price *,
.product-price,
td,
.meta {
  font-variant-numeric: tabular-nums;
}
dialog {
  overscroll-behavior: contain;
}
.brand strong {
  white-space: nowrap;
  letter-spacing: -0.2px;
}

/* Dashboard/account layouts: let the horizontal tab strip scroll instead of widening the page on phones. */
.dashboard-layout > * {
  min-width: 0;
}

/* Supplied ApiMarkets logo artwork (transparent PNG lockups). */
.brand-wordmark {
  display: block;
  height: 40px;
  width: auto;
  max-width: 100%;
}
footer .brand-wordmark {
  height: 36px;
}
.brand-logo.large-mark {
  width: 72px;
  height: 72px;
  border-radius: 0;
  box-shadow: none;
}
@media (max-width: 580px) {
  .brand-wordmark {
    height: 34px;
  }
}

/* Footer is content, not floating chrome: solid surface, no backdrop blur (also avoids a full-page blur layer on phones). */
footer {
  background: var(--glass-content);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* Restraint: one blur layer per card x15 is costly on phones; use a near-opaque fill instead. */
.favorite {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  background: rgba(255, 255, 255, 0.92);
}

/* Cloud-basket logo is closer to square: give the wordmark more height. */
.brand-wordmark {
  height: 48px;
}
footer .brand-wordmark {
  height: 44px;
}
@media (max-width: 580px) {
  .brand-wordmark {
    height: 42px;
  }
}

/* Page wash lives on a fixed layer instead of background-attachment: fixed (ignored by iOS Safari, repaints badly under backdrop-filter). */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background-image: radial-gradient(ellipse at 92% 0%, rgba(182, 207, 252, 0.46), transparent 48%),
    radial-gradient(ellipse at 4% 24%, rgba(160, 219, 236, 0.25), transparent 43%),
    linear-gradient(160deg, #f2f6fe, #eef2f7 60%, #eff4fe);
}

/* Theme switching: show the logo artwork that matches the active theme; compact toggle in the utility bar. */
html[data-theme='dark'] .logo-light,
html:not([data-theme='dark']) .logo-dark {
  display: none !important;
}
.theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  color: inherit;
  border: 1px solid currentColor;
  border-color: color-mix(in srgb, currentColor 30%, transparent);
  border-radius: 999px;
  padding: 1px 10px;
  font: inherit;
  font-size: 11px;
  line-height: 1.6;
  cursor: pointer;
}
.theme-toggle:hover {
  background: color-mix(in srgb, currentColor 12%, transparent);
}
.theme-toggle {
  white-space: nowrap;
  flex: none;
  height: 22px;
}
.utility nav {
  align-items: center;
}
@media (max-width: 580px) {
  .theme-toggle span {
    display: none;
  }
  .theme-toggle {
    padding: 0 8px;
  }
}

/* Glass recipe from Figma's glass-effect settings (documented ranges): light from the top-left (-45deg) at ~75%,
 * low frost (blur ~14px), and a 10-30px "depth" bevel. Refraction/dispersion need SVG backdrop filters, which only
 * Chromium renders, so they are left out. Applies to the floating/functional layer only. */
:root {
  --glass-blur: 14px;
  --glass-rim: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.95),
    rgba(255, 255, 255, 0.16) 34%,
    rgba(255, 255, 255, 0.06) 62%,
    rgba(255, 255, 255, 0.55)
  );
  --glass-bevel: inset 2px 2px 9px rgba(255, 255, 255, 0.55), inset -1px -1px 6px rgba(255, 255, 255, 0.22);
}
html[data-theme='dark'] {
  --glass-rim: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.75),
    rgba(255, 255, 255, 0.1) 34%,
    rgba(255, 255, 255, 0.04) 62%,
    rgba(255, 255, 255, 0.4)
  );
  --glass-bevel: inset 2px 2px 9px rgba(255, 255, 255, 0.22), inset -1px -1px 6px rgba(255, 255, 255, 0.09);
}
.site-header,
.mobile-bottom,
.header-search,
.theme-toggle,
.favorite,
dialog {
  box-shadow: var(--glass-floating-shadow), var(--glass-bevel);
}
.site-header {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.6),
    0 1px 0 rgba(0, 0, 0, 0.05),
    0 10px 22px -14px rgba(0, 0, 0, 0.2);
}
.editorial {
  box-shadow: var(--glass-shadow), var(--glass-bevel);
}
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
  .site-header,
  .mobile-bottom,
  .header-search,
  .theme-toggle,
  .favorite,
  dialog,
  .editorial {
    box-shadow: none;
  }
}

/* ---- home slider and campaigns (content comes from the CMS) */
.slider {
  position: relative;
  height: 284px;
  overflow: hidden;
  border-radius: 26px;
  border: 1px solid var(--glass-edge);
  box-shadow: var(--glass-shadow);
  background: linear-gradient(112deg, #3b517a, #6b9eff 60%, #d6a046);
  color: #fff;
}
.slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.5s ease,
    visibility 0.5s;
}
.slide.on {
  opacity: 1;
  visibility: visible;
}
.slide > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(10, 15, 24, 0.78), rgba(10, 15, 24, 0.15) 65%);
}
.slide-text {
  position: relative;
  z-index: 1;
  padding: 24px 32px 40px;
  max-width: 560px;
}
.slide-text h2 {
  margin: 0 0 6px;
  font-size: 28px;
  line-height: 1.3;
  color: #fff;
}
.slide-text p {
  margin: 0 0 14px;
  color: rgba(255, 255, 255, 0.86);
  font-size: 14px;
}
.slide-text .btn.light {
  background: #fff;
  color: #23252f;
  border-radius: 100px;
  min-height: 40px;
  padding: 9px 18px;
}
.slider-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(20, 27, 40, 0.38);
  color: #fff;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
}
.slider-nav.prev {
  right: 12px;
}
.slider-nav.next {
  left: 12px;
}
.slider-dots {
  position: absolute;
  z-index: 2;
  bottom: 12px;
  left: 0;
  right: 0;
  display: flex;
  gap: 6px;
  justify-content: center;
}
.slider-dots button {
  width: 8px;
  height: 8px;
  padding: 0;
  border-radius: 50%;
  border: 0;
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
}
.slider-dots button.on {
  background: #fff;
  width: 22px;
  border-radius: 8px;
}
.campaigns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin: 18px 0;
}
.campaign {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 130px;
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid var(--glass-edge);
  background: var(--glass-chrome, rgba(255, 255, 255, 0.6));
  box-shadow: var(--glass-shadow);
  padding: 16px;
  color: inherit;
  text-decoration: none;
}
.campaign > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.campaign:has(> img)::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(10, 15, 24, 0.75), rgba(10, 15, 24, 0.1));
}
.campaign > div {
  position: relative;
  z-index: 1;
}
.campaign:has(> img) > div,
.campaign:has(> img) h3,
.campaign:has(> img) p {
  color: #fff;
}
.campaign h3 {
  margin: 6px 0 2px;
  font-size: 17px;
}
.campaign p {
  margin: 0;
  font-size: 13px;
  opacity: 0.85;
}
.campaign small {
  opacity: 0.75;
}
@media (max-width: 720px) {
  .slider {
    height: 230px;
  }
  .slide-text {
    padding: 18px 20px 38px;
  }
  .slide-text h2 {
    font-size: 22px;
  }
  .slider-nav {
    display: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .slide {
    transition: none;
  }
}

/* touch-scrolled rows: no visible scrollbar */
.popular-tags {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}
.popular-tags::-webkit-scrollbar {
  display: none;
}
.popular-tags > * {
  flex: none;
}

/* swipe-only rows on touch screens: hide the scrollbar but keep scrolling */
.dashboard-layout aside nav,
.dashboard-nav nav,
.tabs,
.category-nav,
.table-wrap,
.admin-nav {
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}
.dashboard-layout aside nav::-webkit-scrollbar,
.dashboard-nav nav::-webkit-scrollbar,
.tabs::-webkit-scrollbar,
.category-nav::-webkit-scrollbar,
.table-wrap::-webkit-scrollbar,
.admin-nav::-webkit-scrollbar {
  display: none;
}

/* every dropdown: custom arrow, set in from the edge */
body select:not([multiple]):not([size]) {
  -webkit-appearance: none;
  appearance: none;
  padding-left: 38px;
  padding-right: 14px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23666b80' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: left 16px center !important;
  background-size: 14px !important;
}
html[data-theme='dark'] body select:not([multiple]):not([size]) {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
}

/* hero: keep the type art and the text side by side without clipping, then stack when narrow */
.editorial {
  height: auto;
  overflow: hidden;
}
@media (min-width: 581px) and (max-width: 980px) {
  .editorial {
    gap: 14px;
    padding: 24px 26px;
  }
  .feature-type > span {
    font-size: 44px;
    letter-spacing: -2px;
  }
  .editorial h1 {
    font-size: 26px;
    line-height: 1.5;
  }
}

/* card platform label on the right, clear of the favourite button */
.product-card .product-art:not(.large) .art-meta {
  padding-inline: 0;
  text-align: right;
  display: flex;
  justify-content: flex-end;
}

/* typographic cards: the tag takes the sparkle's place on the brand row instead of covering it */
.art-link:has(div.product-art) .card-tag {
  bottom: 4px;
}
.art-link:has(.card-tag) .art-bottom b {
  display: none;
}
@media (max-width: 580px) {
  .art-link:has(div.product-art) .card-tag {
    bottom: 2px;
    font-size: 10px;
    line-height: 1.5;
    padding: 1px 7px;
  }
}
.category-nav > .container {
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}
.category-nav > .container::-webkit-scrollbar {
  display: none;
}

/* touch layouts: no inner scrollbars anywhere (the page's own scrollbar is left alone) */
@media (max-width: 850px) {
  *:not(html) {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }
  *:not(html)::-webkit-scrollbar {
    display: none;
  }
}

/* keep the PLAY. CREATE. REPEAT. lettering on mid-size phones/windows; only the narrowest phones drop it */
@media (min-width: 420px) and (max-width: 580px) {
  .editorial .feature-type {
    display: flex;
    margin-right: 0;
    flex: none;
  }
  .editorial .feature-type > span {
    font-size: clamp(30px, 8.5vw, 44px);
    letter-spacing: -1.8px;
  }
  .editorial .feature-type > small {
    max-width: none;
    white-space: nowrap;
    font-size: 11px;
  }
  .editorial {
    gap: 10px;
  }
}

/* narrowest phones: the lettering goes under the text instead of beside it */
@media (max-width: 419px) {
  .editorial {
    flex-direction: column;
    gap: 6px;
  }
  .editorial .feature-type {
    display: flex;
    margin: 6px 0 0;
    padding: 0;
    transform: rotate(-3deg);
    transform-origin: left center;
  }
  .editorial .feature-type > span {
    font-size: clamp(28px, 10vw, 40px);
    letter-spacing: -1.6px;
  }
  .editorial .feature-type > small {
    max-width: none;
    white-space: nowrap;
    font-size: 11px;
    margin-top: 8px;
  }
}

/* long product names must not push the brand row out of the picture: one line, ellipsis */
.product-art:not(.large) .art-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

/* touch: enlarge the tap area of small text links without moving anything */
@media (max-width: 850px) {
  .seller-line a,
  .utility nav a,
  .section-heading > a,
  .product-name a,
  .theme-toggle {
    position: relative;
  }
  .seller-line a::after,
  .utility nav a::after,
  .section-heading > a::after,
  .product-name a::after,
  .theme-toggle::after {
    content: '';
    position: absolute;
    inset: -11px -8px;
  }
}

/* light theme contrast: gold ratings, muted labels, and white text on the coloured product art */
html:not([data-theme='dark']) {
  --muted: #4d5166;
}
html:not([data-theme='dark']) .rating {
  color: #84560e;
}
html:not([data-theme='dark']) div.product-art {
  box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.17);
}
html:not([data-theme='dark']) .art-meta,
html:not([data-theme='dark']) .art-bottom {
  color: rgba(255, 255, 255, 0.92);
}

/* touch: tap areas for the remaining small text links (footer, breadcrumbs, forms, tables) */
@media (max-width: 850px) {
  footer a,
  .breadcrumbs a,
  .auth a,
  td a,
  .rating,
  .product-info a {
    position: relative;
  }
  footer a::after,
  .breadcrumbs a::after,
  .auth a::after,
  td a::after,
  .product-info a::after {
    content: '';
    position: absolute;
    inset: -11px -4px;
  }
}

/* light theme: the remaining pale purple-grey text, darkened to reach 4.5:1 */
html:not([data-theme='dark']) .product-info > p,
html:not([data-theme='dark']) .product-social,
html:not([data-theme='dark']) .spec-grid span,
html:not([data-theme='dark']) th,
html:not([data-theme='dark']) .subtitle,
html:not([data-theme='dark']) .breadcrumbs,
html:not([data-theme='dark']) .seller-intro p {
  color: #5a566b;
}
html:not([data-theme='dark']) .seller-line > span {
  color: #84560e;
}
html:not([data-theme='dark']) .badge.orange {
  color: #7a4d0c;
}
html:not([data-theme='dark']) .notice.warning {
  color: #5f4f2c;
}
html:not([data-theme='dark']) .seller-callout p {
  color: #5a566b;
}
html:not([data-theme='dark']) .popular-tags strong {
  color: #3f3d52;
}
html:not([data-theme='dark']) div.product-art {
  box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.2);
}
.avatar {
  font-weight: 700;
}

/* ---- brand palette: the logo's blue + emerald green */
:root {
  --primary: #0060f0;
  --primary-dark: #0048c8;
  --accent: #18c090;
  --accent-ink: #0b7a5c;
}
html:not([data-theme='dark']) .feature-type > span:nth-child(2) {
  color: #0e8a68;
}
.demo-banner > .container::before,
.demo-banner i {
  background: var(--accent);
}

/* admin tables: action buttons sit on one line, centred, with even spacing */
td .text-btn {
  vertical-align: middle;
  min-height: 32px;
  min-width: 28px;
  justify-content: center;
  padding: 0 4px;
}
td .text-btn + .text-btn {
  margin-inline-start: 6px;
}
td:has(> .text-btn) {
  white-space: nowrap;
}
td .text-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

/* ---- liquid glass: light follows the pointer (set by components/glass.ts) */
:where(.trust-strip, .panel, .seller-card, .seller-callout, .category-side, .header-search, .product-card) {
  position: relative;
}
.slider::before,
.product-card::before,
.campaign::before,
.trust-strip::before,
.panel::before,
.seller-card::before,
.seller-callout::before,
.category-side::before,
.header-search::before,
.editorial::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 4;
  opacity: 0;
  background: radial-gradient(
      220px circle at var(--gx, 50%) var(--gy, 50%),
      rgba(255, 255, 255, 0.34),
      rgba(255, 255, 255, 0.1) 38%,
      transparent 64%
    ),
    radial-gradient(520px circle at var(--gx, 50%) var(--gy, 50%), rgba(120, 190, 255, 0.1), transparent 70%);
  transition: opacity 0.3s ease;
  mix-blend-mode: soft-light;
}
[data-glass]::before,
.editorial[data-glass]::after {
  opacity: 1;
}
html:not([data-theme='dark']) .product-card::before,
html:not([data-theme='dark']) .panel::before,
html:not([data-theme='dark']) .trust-strip::before {
  mix-blend-mode: normal;
  background: radial-gradient(
    240px circle at var(--gx, 50%) var(--gy, 50%),
    rgba(255, 255, 255, 0.75),
    rgba(255, 255, 255, 0.2) 42%,
    transparent 66%
  );
}

/* edge light: the rim brightens where the pointer is */
.slider::after,
.product-card::after,
.editorial::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  pointer-events: none;
  z-index: 5;
}
.slider::after,
.product-card::after {
  background: radial-gradient(
    160px circle at var(--gx, 50%) var(--gy, 50%),
    rgba(255, 255, 255, 0.95),
    rgba(255, 255, 255, 0.25) 45%,
    transparent 70%
  );
  -webkit-mask:
    linear-gradient(#000 0 0) content-box exclude,
    linear-gradient(#000 0 0);
  mask:
    linear-gradient(#000 0 0) content-box exclude,
    linear-gradient(#000 0 0);
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.slider[data-glass]::after,
.product-card[data-glass]::after {
  opacity: 1;
}

/* slider: slight tilt toward the pointer and a parallax on the picture */
.slider {
  transform: perspective(1000px) rotateX(calc(var(--gty, 0) * -5deg)) rotateY(calc(var(--gtx, 0) * 6deg));
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: transform;
}
.slide > img {
  transform: scale(1.08) translate(calc(var(--gtx, 0) * -22px), calc(var(--gty, 0) * -14px));
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.slide-text {
  transform: translate(calc(var(--gtx, 0) * 8px), calc(var(--gty, 0) * 5px));
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.product-card {
  transition:
    transform 0.25s ease,
    box-shadow 0.25s ease;
}
.product-card[data-glass] {
  transform: translateY(-3px);
}
@media (prefers-reduced-motion: reduce), (hover: none) {
  .slider,
  .slide > img,
  .slide-text,
  .product-card[data-glass] {
    transform: none;
  }
}

/* slider: a stronger specular spot plus a glass glare band that slides with the pointer */
.slider::before {
  mix-blend-mode: normal;
  background: radial-gradient(
      240px circle at var(--gx, 50%) var(--gy, 50%),
      rgba(255, 255, 255, 0.42),
      rgba(255, 255, 255, 0.12) 40%,
      transparent 66%
    ),
    linear-gradient(
      112deg,
      transparent calc(var(--gx, 50%) - 22%),
      rgba(255, 255, 255, 0.16) var(--gx, 50%),
      transparent calc(var(--gx, 50%) + 22%)
    );
}

/* product description: one soft panel per paragraph block, line breaks kept (like the original listing) */
.desc-blocks {
  display: grid;
  gap: 14px;
  margin: 6px 0 22px;
}
.desc-block {
  text-align: start;
  white-space: pre-line;
  overflow-wrap: anywhere;
  line-height: 1.95;
  font-size: 15px;
  padding: 16px 20px;
  border-radius: 18px;
  background: rgba(66, 76, 110, 0.07);
  unicode-bidi: plaintext;
}
html[data-theme='dark'] .desc-block {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.9);
}

/* form submit rows: breathing room below the last field */
.form > .actions:last-child {
  margin-top: 24px;
}

/* product page grid: columns may shrink below their content's natural width instead of spilling out */
.product-detail > * {
  min-width: 0;
}
.product-info {
  overflow-wrap: anywhere;
}
@media (max-width: 680px) {
  .product-detail {
    grid-template-columns: minmax(0, 1fr);
  }
  .product-media {
    max-width: 460px;
    margin-inline: auto;
    width: 100%;
  }
}

/* very narrow windows (about 360px and below): keep the top bar and header on single rows */
@media (max-width: 360px) {
  .utility .container > span,
  .utility nav > span {
    display: none;
  }
  .utility .container {
    justify-content: center;
  }
  .utility nav {
    gap: 14px;
    flex-wrap: nowrap;
    white-space: nowrap;
  }
  .theme-toggle > span {
    display: none;
  }
  .header-main {
    gap: 8px;
  }
  .brand-wordmark {
    height: 34px;
    width: auto;
  }
  .header-actions {
    gap: 6px;
  }
  .header-actions > a,
  .mobile-menu {
    min-width: 40px;
    min-height: 40px;
  }
  .demo-banner .container {
    font-size: 11px;
    line-height: 1.7;
  }
}
.header-search input {
  text-overflow: ellipsis;
}

/* extremely narrow windows (about 290px and below) */
@media (max-width: 290px) {
  .container {
    padding-inline: 12px;
  }
  .brand-wordmark {
    height: 28px;
  }
  .header-main {
    gap: 6px;
  }
  .header-actions {
    gap: 2px;
  }
  .header-actions > a,
  .mobile-menu {
    min-width: 36px;
    min-height: 36px;
    width: 36px;
    height: 36px;
  }
  .mobile-bottom > a {
    font-size: 9px;
    line-height: 1.3;
    letter-spacing: -0.2px;
    padding-inline: 1px;
    text-align: center;
  }
  .mobile-bottom > a svg {
    width: 20px;
    height: 20px;
  }
}

/* verified sellers page: the main seller gets a large featured card */
.main-seller {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px;
  margin: 18px 0 26px;
  color: inherit;
  text-decoration: none;
}
.main-seller .avatar {
  width: 72px;
  height: 72px;
  font-size: 30px;
  flex: none;
}
.main-seller > div {
  flex: 1;
  min-width: 0;
}
.main-seller h2 {
  margin: 8px 0 4px;
  font-size: 24px;
}
.main-seller p {
  margin: 0 0 6px;
}
.main-seller .btn {
  flex: none;
}
@media (max-width: 640px) {
  .main-seller {
    flex-wrap: wrap;
  }
  .main-seller .btn {
    width: 100%;
    justify-content: center;
  }
}

/* verified seller marks: gold for the main seller (ApiMarkets), green for every other verified seller */
.verified {
  vertical-align: -0.2em;
  fill-opacity: 0.2;
}
.verified.green {
  color: #0e8a68;
  fill: #18c090;
}
.verified.gold {
  color: #b7791f;
  fill: #f5c04a;
}
html[data-theme='dark'] .verified.green {
  color: #35d6a8;
  fill: #18c090;
}
html[data-theme='dark'] .verified.gold {
  color: #f5c04a;
  fill: #f5c04a;
}
.badge.gold {
  color: #7a4d0c;
  background: #fff1cc;
  border-color: #f0d58a;
}
html[data-theme='dark'] .badge.gold {
  color: #f7d27a;
  background: rgba(245, 192, 74, 0.14);
  border: 1px solid rgba(245, 192, 74, 0.4);
}
.badge.gold .verified {
  fill-opacity: 0.3;
}

/* light theme, phone-width audit fixes */
html:not([data-theme='dark']) .upload span {
  color: #56607a;
}
html:not([data-theme='dark']) .not-found strong {
  color: #6b80c2;
}
html:not([data-theme='dark']) div.product-art {
  box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.26);
}
@media (max-width: 850px) {
  .auth .text-btn,
  .directory-grid h2 a {
    position: relative;
  }
  .auth .text-btn::after,
  .directory-grid h2 a::after {
    content: '';
    position: absolute;
    inset: -10px -6px;
  }
}
@media (max-width: 850px) {
  .seller-box a {
    position: relative;
  }
  .seller-box a::after {
    content: '';
    position: absolute;
    inset: -10px -6px;
  }
}

/* admin panel, phone width: bigger tap targets and a readable upload button in the light theme */
html:not([data-theme='dark']) .btn.upload,
html:not([data-theme='dark']) .upload {
  color: #3f4a6b;
}
@media (max-width: 850px) {
  td .text-btn {
    min-width: 40px;
    min-height: 40px;
  }
  .form .actions .text-btn,
  .form .actions .btn {
    min-height: 40px;
    padding-inline: 8px;
  }
}

/* admin: checkbox fields sit inline with their text; intro text above the "new" button gets the full row on phones */
.field:has(> input[type='checkbox']) {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}
.field:has(> input[type='checkbox']) > input {
  order: -1;
  flex: none;
  width: 22px;
  height: 22px;
  min-height: 0;
  margin: 0;
}
@media (max-width: 680px) {
  .section-heading {
    flex-wrap: wrap;
  }
  .section-heading > p.muted {
    flex: 1 1 100%;
    max-width: none;
    margin: 0 0 4px;
  }
}

/* destructive / sign-out buttons: soft red (tinted surface, readable red text, visible edge) */
html body .btn.danger {
  background: #fdecef;
  border-color: #f0a9b4;
  color: #b3202f !important;
  box-shadow: none;
}
html body .btn.danger:hover {
  background: #fbdbe1;
  border-color: #e68a99;
}
html[data-theme='dark'] body .btn.danger {
  background: rgba(255, 90, 110, 0.16);
  border-color: rgba(255, 130, 145, 0.5);
  color: #ffa3ae !important;
  box-shadow: none;
}
html[data-theme='dark'] body .btn.danger:hover {
  background: rgba(255, 90, 110, 0.28);
  border-color: rgba(255, 140, 155, 0.7);
}

/* tab rows that scroll sideways: soft fade on both ends so a cut-off tab reads as "more this way" */
@media (max-width: 850px) {
  .dashboard-layout aside nav,
  .category-nav > .container {
    padding-inline: 22px;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 22px, #000 calc(100% - 22px), transparent 100%);
  }
}

/* ---- pointer glow, v2: behind the text, stronger in light mode */
.product-card,
.editorial,
.panel,
.trust-strip,
.seller-card,
.seller-callout,
.category-side,
.header-search,
.campaign {
  isolation: isolate;
}
.product-card::before,
.campaign::before,
.trust-strip::before,
.panel::before,
.seller-card::before,
.seller-callout::before,
.category-side::before,
.header-search::before,
.editorial::after {
  z-index: -1;
}

/* slider: the glow sits inside each slide, over the picture but under the slide's text */
.slider::before {
  display: none;
}
.slide::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s ease;
  background: radial-gradient(
      240px circle at var(--gx, 50%) var(--gy, 50%),
      rgba(255, 255, 255, 0.42),
      rgba(255, 255, 255, 0.12) 40%,
      transparent 66%
    ),
    linear-gradient(
      112deg,
      transparent calc(var(--gx, 50%) - 22%),
      rgba(255, 255, 255, 0.16) var(--gx, 50%),
      transparent calc(var(--gx, 50%) + 22%)
    );
}
.slider[data-glass] .slide::before {
  opacity: 1;
}

/* light theme: a brand-tinted glow is visible on white and pale surfaces */
html:not([data-theme='dark']) .product-card::before,
html:not([data-theme='dark']) .panel::before,
html:not([data-theme='dark']) .trust-strip::before,
html:not([data-theme='dark']) .seller-card::before,
html:not([data-theme='dark']) .seller-callout::before,
html:not([data-theme='dark']) .category-side::before,
html:not([data-theme='dark']) .header-search::before,
html:not([data-theme='dark']) .campaign::before,
html:not([data-theme='dark']) .editorial::after {
  mix-blend-mode: normal;
  background: radial-gradient(
      240px circle at var(--gx, 50%) var(--gy, 50%),
      rgba(0, 96, 240, 0.2),
      rgba(24, 192, 144, 0.1) 46%,
      transparent 72%
    ),
    radial-gradient(90px circle at var(--gx, 50%) var(--gy, 50%), rgba(255, 255, 255, 0.55), transparent 100%);
}
html:not([data-theme='dark']) .slider::after,
html:not([data-theme='dark']) .product-card::after {
  background: radial-gradient(
    170px circle at var(--gx, 50%) var(--gy, 50%),
    rgba(0, 96, 240, 0.85),
    rgba(24, 192, 144, 0.35) 50%,
    transparent 74%
  );
}
html:not([data-theme='dark']) .product-card[data-glass] {
  box-shadow:
    0 18px 38px rgba(0, 96, 240, 0.2),
    0 2px 8px rgba(0, 60, 160, 0.1);
  transform: translateY(-4px);
}

/* sidebar footer: a rule under the last link, then breathing room before the sign-out button */
.dashboard-layout aside .switch-role:last-of-type {
  border-bottom: 1px solid var(--border, rgba(105, 113, 147, 0.18));
  padding-bottom: 16px;
  min-height: 0;
  margin-bottom: 16px;
}
.dashboard-layout aside .switch-role:last-of-type + .btn {
  margin-top: 0;
}

/* product description section: no pointer glow, keep the text surface calm */
#product-tabs::before,
#product-tabs::after {
  display: none;
}
.legal::before,
.legal::after {
  display: none;
}

/* DiceBear user pictures */
img.avatar {
  object-fit: cover;
  background: var(--surface-2, #e8eefc);
}

/* "all categories" row: rounded hover highlight, divider drawn above it so the rounding doesn't bend the line */
.category-side .all-categories,
html[data-theme='dark'] .category-side .all-categories {
  position: relative;
  border: 0;
  border-radius: 13px;
  margin-top: 8px;
  padding-top: 10px;
}
.category-side .all-categories::before {
  content: '';
  position: absolute;
  top: -4px;
  inset-inline: 10px;
  height: 1px;
  background: var(--border);
}

/* wallet and cash-back */
.cashback-tag,
.cashback-note,
.summary-cashback {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #0a7a58;
  font-weight: 600;
  font-size: 13px;
}
.cashback-tag {
  margin-top: 4px;
}
.summary-cashback {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 8px 0 0;
}
.summary-cashback span {
  flex: 1;
}
html[data-theme='dark'] .cashback-tag,
html[data-theme='dark'] .cashback-note,
html[data-theme='dark'] .summary-cashback {
  color: #4fdcae;
}
.wallet-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.wallet-card strong {
  display: block;
  font-size: 28px;
  line-height: 1.4;
}
.wallet-card svg {
  color: var(--primary);
}
.wallet-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
}
.wallet-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-top: 1px solid var(--border);
}
.wallet-list li:first-child {
  border-top: 0;
}
.wallet-list small {
  display: block;
}
.wallet-list .plus {
  color: #0a7a58;
}
.wallet-list .minus {
  color: #b3261e;
}
html[data-theme='dark'] .wallet-list .plus {
  color: #4fdcae;
}
html[data-theme='dark'] .wallet-list .minus {
  color: #ff9a92;
}
.row-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.row-actions input,
.row-actions select {
  flex: 1;
  min-width: 0;
}
.summary-wallet {
  display: flex;
  justify-content: space-between;
  padding-top: 8px;
  color: #0a7a58;
  font-weight: 600;
}
html[data-theme='dark'] .summary-wallet {
  color: #4fdcae;
}
.wallet-use {
  margin: 4px 0 14px;
}
.pay-hint {
  margin: -8px 0 16px;
  font-size: 13px;
}
@media (max-width: 520px) {
  .row-actions {
    flex-wrap: wrap;
  }
  .row-actions select {
    flex: 1 1 100%;
  }
  .row-actions input {
    flex: 1 1 90px;
  }
}
@media (min-width: 521px) {
  .row-actions input[type='number'] {
    flex: 0 1 160px;
  }
  .row-actions .btn {
    flex: 0 0 auto;
  }
}
.pay-method {
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 14px;
  margin: 0;
  display: grid;
  gap: 10px;
}
.pay-method legend {
  padding: 0 8px;
  font-weight: 600;
}
.order-summary-item {
  padding: 14px;
}
.payment-options label.disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.payment-options label.disabled input {
  cursor: not-allowed;
}
.art-title {
  color: #fff;
}
.art-meta {
  color: #ffffffe6;
}
.art-bottom {
  color: #ffffffd9;
}
html[data-theme='dark'] .required {
  color: #8fb4ff;
}

/* header search placeholder: fits on phones and meets 4.5:1 */
.header-search input::placeholder {
  color: #565b6e;
  opacity: 1;
}
@media (max-width: 480px) {
  .header-search input::placeholder {
    font-size: 14px;
  }
}
html[data-theme='dark'] .header-search input::placeholder {
  color: #b4bacb;
  opacity: 1;
}

/* phones: favourites and cart already live in the bottom bar, so they leave the header */
@media (max-width: 580px) {
  .header-actions a[href='/favorites'],
  .header-actions .cart-link {
    display: none !important;
  }
}
.mobile-bottom a {
  position: relative;
}
.mobile-bottom a i {
  position: absolute;
  top: 2px;
  inset-inline-start: calc(50% + 6px);
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: var(--primary-dark, #0060f0);
  color: #fff;
  font:
    700 11px/1 Vazirmatn,
    sans-serif;
  font-style: normal;
}
html:not([data-theme='dark']) .mobile-bottom a[aria-current='page'] {
  background: rgba(0, 82, 214, 0.94);
}

/* phones: the account / seller sections live in the hamburger menu instead of a row under the header */
.menu-account {
  display: none;
}
@media (max-width: 580px) {
  .dashboard-nav {
    display: none;
  }
  .category-nav.open > .container {
    height: auto;
    max-height: calc(100vh - 240px);
    overflow-y: auto;
    overflow-x: hidden;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding-top: 10px;
    padding-bottom: 12px;
  }
  .category-nav.open .menu-account {
    display: flex;
    flex-direction: column;
    margin-bottom: 4px;
  }
  .menu-account strong {
    font-size: 12px;
    color: var(--muted);
    padding: 8px 0 2px;
  }
  .menu-account a[aria-current='page'] {
    color: var(--primary);
    font-weight: 700;
  }
  .menu-account .menu-sep {
    border-top: 1px solid var(--border);
    margin-top: 8px;
    padding-top: 12px;
  }
}
@media (max-width: 580px) {
  html[data-theme='dark'] .menu-account a[aria-current='page'] {
    color: #8fb4ff;
    font-weight: 700;
  }
  html[data-theme='dark'] .menu-account strong {
    color: rgba(255, 255, 255, 0.62);
  }
}

/* custom checkbox */
input[type='checkbox'] {
  -webkit-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  flex: none;
  border-radius: 7px;
  border: 1.5px solid #8a93a6;
  background: transparent center/14px no-repeat;
  cursor: pointer;
  transition:
    background-color 0.15s,
    border-color 0.15s,
    box-shadow 0.15s;
}
input[type='checkbox']:hover {
  border-color: #0050d8;
}
input[type='checkbox']:checked {
  background-color: #0050d8;
  border-color: #0050d8;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
input[type='checkbox']:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 80, 216, 0.35);
}
html[data-theme='dark'] input[type='checkbox'] {
  border-color: #6b7488;
  background-color: #1a1d27;
}
html[data-theme='dark'] input[type='checkbox']:checked {
  background-color: #2f7bff;
  border-color: #2f7bff;
}

.mobile-bottom .nav-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: block;
  box-shadow: 0 0 0 1.5px currentColor;
}

.menu-account .menu-logout {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  font: inherit;
  font-size: 14px;
  color: #d92d20;
  text-align: right;
  cursor: pointer;
}
.menu-account .menu-logout:hover {
  background: rgba(217, 45, 32, 0.1);
}
html[data-theme='dark'] .menu-account .menu-logout {
  color: #ff8a80;
}

@media (max-width: 350px) {
  .mobile-bottom > a {
    font-size: 10px;
    padding-inline: 0;
  }
}

@media (max-width: 580px) {
  .category-nav .container:has(> .menu-account) > :not(.menu-account) {
    display: none;
  }
  .menu-account .menu-sep {
    display: none;
  }
}

input[type='checkbox'] {
  min-width: 22px;
  max-width: 22px;
  min-height: 22px;
  max-height: 22px;
  padding: 0;
}

/* ---- phone redesign: account hub + menu sheet ---- */
.menu-sheet,
.account-hub,
.back-hub {
  display: none;
}
@media (max-width: 580px) {
  :root {
    --hub-card: #fff;
    --hub-line: #d5d9e6;
    --hub-text: #1c2033;
    --hub-muted: #545a71;
    --hub-accent: #0050d8;
    --hub-soft: #e9efff;
    --hub-danger: #c4271b;
  }
  html[data-theme='dark'] {
    --hub-card: rgba(255, 255, 255, 0.07);
    --hub-line: rgba(255, 255, 255, 0.16);
    --hub-text: #fff;
    --hub-muted: rgba(255, 255, 255, 0.72);
    --hub-accent: #6aa2ff;
    --hub-soft: rgba(106, 162, 255, 0.16);
    --hub-danger: #ff8a80;
  }
  .category-nav .container > :not(.menu-sheet) {
    display: none;
  }
  .menu-sheet,
  .account-hub {
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: right;
  }
  .menu-sheet {
    padding: 4px 0 8px;
  }
  .menu-sheet a,
  .menu-sheet button,
  .account-hub a,
  .account-hub button {
    min-height: 48px;
    color: var(--hub-text);
    text-decoration: none;
  }
  .menu-me,
  .hub-profile {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--hub-line);
    border-radius: 18px;
    background: var(--hub-card);
  }
  .menu-me .avatar,
  .hub-profile .avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    flex: none;
  }
  .menu-me > svg:first-child,
  .hub-profile > svg:first-child {
    flex: none;
    padding: 11px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--hub-soft);
    color: var(--hub-accent);
  }
  .menu-me span,
  .hub-profile span {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
  }
  .menu-me strong,
  .hub-profile strong {
    font-size: 16px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .menu-me small,
  .hub-profile small {
    font-size: 13px;
    color: var(--hub-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .menu-me > svg:last-child,
  .hub-profile > svg:last-child {
    flex: none;
    color: var(--hub-muted);
  }
  .menu-h,
  .account-hub h2 {
    margin: 8px 4px 0;
    font-size: 13px;
    font-weight: 700;
    color: var(--hub-muted);
    letter-spacing: 0;
  }
  .menu-cats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .menu-cats a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--hub-line);
    border-radius: 14px;
    background: var(--hub-card);
    font-size: 14px;
    line-height: 1.4;
  }
  .menu-cats a svg {
    flex: none;
    color: var(--hub-accent);
  }
  .menu-all {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 14px;
    color: var(--hub-accent) !important;
    font-weight: 700;
  }
  .menu-links {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--hub-line);
    border-radius: 16px;
    background: var(--hub-card);
    overflow: hidden;
  }
  .menu-links a {
    display: flex;
    align-items: center;
    padding: 0 16px;
    font-size: 15px;
  }
    .menu-sheet .menu-logout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    border: 1px solid var(--hub-line);
    border-radius: 16px;
    background: transparent;
    font: inherit;
    font-size: 15px;
    color: var(--hub-danger);
  }
  .menu-sheet a:focus-visible,
  .menu-sheet button:focus-visible,
  .account-hub a:focus-visible,
  .account-hub button:focus-visible,
  .back-hub:focus-visible {
    outline: 2px solid var(--hub-accent);
    outline-offset: 2px;
  }

  /* account hub */
  .account-desktop {
    display: none;
  }
  .dashboard-layout:has(.account-hub) .page-heading {
    display: none;
  }
  .account-hub {
    gap: 14px;
  }
  .hub-tiles {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .hub-tiles a {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 14px;
    border-radius: 18px;
    background: var(--hub-soft);
    border: 1px solid var(--hub-line);
  }
  .hub-tiles svg {
    color: var(--hub-accent);
  }
  .hub-tiles small {
    font-size: 13px;
    color: var(--hub-muted);
  }
  .hub-tiles strong {
    font-size: 17px;
  }
  .account-hub section {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .account-hub ul {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--hub-line);
    border-radius: 18px;
    background: var(--hub-card);
    overflow: hidden;
  }
  .account-hub li + li {
    border-top: 1px solid var(--hub-line);
  }
  .account-hub li a,
  .hub-logout {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 0 16px;
    font: inherit;
    font-size: 15px;
    background: transparent;
    border: 0;
    text-align: right;
    cursor: pointer;
  }
  .account-hub li a > svg:first-child,
  .hub-logout > svg {
    flex: none;
    color: var(--hub-accent);
  }
  .account-hub li a span,
  .hub-logout span {
    flex: 1;
  }
  .account-hub li a > svg:last-child {
    color: var(--hub-muted);
  }
  .hub-logout,
  .hub-logout > svg {
    color: var(--hub-danger) !important;
  }
  .back-hub {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 44px;
    margin-bottom: 4px;
    color: var(--hub-accent);
    text-decoration: none;
    font-weight: 700;
    font-size: 15px;
  }
}

@media (max-width: 580px) {
  .menu-sheet {
    width: 100%;
    align-self: stretch;
  }
  .menu-sheet a,
  .menu-sheet button {
    margin: 0;
    box-shadow: none;
  }
  .menu-links a {
    border-radius: 0;
    background: transparent;
    border-width: 0;
  }
  .menu-links a + a {
    border-top: 1px solid var(--hub-line);
  }
  .menu-sheet .menu-me,
  .menu-sheet .menu-cats a {
    box-sizing: border-box;
  }
}

/* product page: cash-back callout */
.cashback-tag {
  display: flex;
  width: 100%;
  box-sizing: border-box;
  margin-top: 8px;
  padding: 9px 12px;
  gap: 10px;
  border: 1px solid #7fd3b2;
  border-radius: 14px;
  background: linear-gradient(135deg, #e8f9f1, #d2f2e3);
  color: #065f46;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  box-shadow: 0 4px 14px rgba(10, 122, 88, 0.14);
}
.cashback-tag svg {
  flex: none;
  box-sizing: border-box;
  width: 28px;
  height: 28px;
  padding: 6px;
  border-radius: 50%;
  background: #0a7a58;
  color: #fff;
  stroke-width: 2.2;
}
html[data-theme='dark'] .cashback-tag {
  border-color: rgba(79, 220, 174, 0.5);
  background: linear-gradient(135deg, rgba(79, 220, 174, 0.2), rgba(79, 220, 174, 0.08));
  color: #8ff3d0;
  box-shadow: 0 4px 18px rgba(79, 220, 174, 0.12);
}
html[data-theme='dark'] .cashback-tag svg {
  background: #4fdcae;
  color: #06281d;
}
.purchase-panel > div:has(> .cashback-tag) {
  width: 100%;
  align-self: stretch;
  flex-direction: column;
  align-items: stretch;
}

/* sample-data tools + hide wording that was cleared in the CMS */
:is(p, small, li, h2, h3, .notice, .badge, button, .muted):empty {
  display: none;
}
.sample-counts {
  list-style: none;
  margin: 12px 0;
  padding: 0;
  border: 1px solid #d5d9e6;
  border-radius: 14px;
  overflow: hidden;
}
.sample-counts li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
}
.sample-counts li + li {
  border-top: 1px solid #d5d9e6;
}
html[data-theme='dark'] .sample-counts,
html[data-theme='dark'] .sample-counts li + li {
  border-color: rgba(255, 255, 255, 0.16);
}
.sample-text {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.sample-text textarea {
  width: 100%;
}

/* order page: specs + tickets cards, note, status bar */
.order-page {
  --op-card: #fff;
  --op-soft: #f1f3f8;
  --op-line: #d5d9e6;
  --op-text: #1c2033;
  --op-muted: #545a71;
  --op-accent: #0050d8;
  --op-ok: #2a9d57;
  --op-warn-bg: #fdd662;
  --op-warn-text: #3d2f00;
  --op-chip-bg: rgba(42, 157, 87, 0.15);
  --op-chip-text: #17703d;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
html[data-theme='dark'] .order-page {
  --op-card: rgba(255, 255, 255, 0.07);
  --op-soft: rgba(255, 255, 255, 0.1);
  --op-line: rgba(255, 255, 255, 0.16);
  --op-text: #fff;
  --op-muted: rgba(255, 255, 255, 0.72);
  --op-accent: #7fb0ff;
  --op-ok: #4cd08a;
  --op-warn-bg: #4a3b0c;
  --op-warn-text: #ffe9a6;
  --op-chip-bg: rgba(76, 208, 138, 0.18);
  --op-chip-text: #7be3a9;
}
.order-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.order-top h2 {
  margin: 0;
  color: var(--op-accent);
  font-size: clamp(20px, 3vw, 26px);
}
.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  color: var(--op-muted);
  text-decoration: none;
}
.back-link:focus-visible,
.order-tickets a:focus-visible,
.order-note a:focus-visible {
  outline: 2px solid var(--op-accent);
  outline-offset: 2px;
}
.order-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: stretch;
}
.order-cols > .panel {
  margin: 0;
  color: var(--op-text);
}
.order-specs {
  background: var(--op-soft);
}
.order-tickets {
  background: var(--op-card);
}
.order-card-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--op-line);
}
.order-card-head h3 {
  margin: 0;
  font-size: 18px;
}
.order-card-head small {
  color: var(--op-muted);
}
.order-specs dl {
  margin: 0;
}
.spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--op-line);
}
.spec-row:last-child {
  border-bottom: 0;
}
.spec-row dt {
  color: var(--op-muted);
  flex: none;
}
.spec-row dd {
  margin: 0;
  font-weight: 700;
  text-align: end;
  min-width: 0;
  overflow-wrap: anywhere;
}
.order-tickets ul {
  list-style: none;
  margin: 14px 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.order-tickets li a {
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--op-line);
  border-radius: 14px;
  color: var(--op-text);
  text-decoration: none;
}
.order-tickets small {
  color: var(--op-muted);
}
.ticket-state {
  justify-self: start;
  padding: 4px 12px;
  border-radius: 999px;
  background: var(--op-chip-bg);
  color: var(--op-chip-text);
  font-size: 13px;
  font-weight: 700;
}
.order-tickets > .muted {
  margin: 14px 0;
}
.notice.order-note {
  background: var(--op-warn-bg);
  color: var(--op-warn-text);
  border: 0;
  border-radius: 12px;
  padding: 16px 20px;
}
.notice.order-note a {
  color: inherit;
  font-weight: 700;
}
.order-status h3 {
  margin: 0 0 14px;
  text-align: center;
  color: var(--op-accent);
  font-size: 18px;
}
.order-bar {
  height: 8px;
  border-radius: 999px;
  background: var(--op-line);
  overflow: hidden;
}
.order-bar > span {
  display: block;
  height: 100%;
  background: var(--op-ok);
  border-radius: inherit;
}
.order-steps {
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}
.order-steps li {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--op-muted);
  font-size: 14px;
}
.order-steps li.done {
  color: var(--op-text);
}
.order-steps li.done svg {
  color: var(--op-ok);
}
.order-steps li.current svg {
  color: var(--op-accent);
}
.order-steps li.failed {
  color: var(--op-text);
}
.order-steps li.failed svg {
  color: #c4271b;
}
@media (max-width: 820px) {
  .order-cols {
    grid-template-columns: 1fr;
  }
  .order-steps {
    grid-template-columns: 1fr 1fr;
  }
  .order-status h3 {
    text-align: start;
  }
}
.order-bar > span:empty {
  display: block;
  min-width: 8px;
  background: linear-gradient(90deg, var(--op-ok), color-mix(in srgb, var(--op-ok) 70%, #fff));
  transition: width 0.4s ease;
}
@media (prefers-reduced-motion: reduce) {
  .order-bar > span:empty {
    transition: none;
  }
}

/* ---- campaign banner: taller photo banner, glass text panel, date chip and CTA */
.campaigns {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
  gap: 18px;
  margin: 24px 0;
}
.campaign {
  align-items: center;
  min-height: clamp(200px, 22vw, 260px);
  padding: clamp(14px, 2vw, 24px);
  border-radius: 26px;
  text-decoration: none;
  box-shadow: 0 14px 34px rgba(8, 12, 22, 0.28);
}
.campaign > img {
  object-position: center 30%;
  transition: transform 0.6s ease;
}
a.campaign:hover > img {
  transform: scale(1.04);
}
.campaign:has(> img)::after {
  background: linear-gradient(to left, rgba(8, 12, 22, 0.82) 0%, rgba(8, 12, 22, 0.46) 48%, rgba(8, 12, 22, 0.06) 100%);
}
.campaign-body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  max-width: min(440px, 100%);
  padding: clamp(14px, 2vw, 20px) clamp(16px, 2.2vw, 24px);
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 20px;
  background: rgba(10, 15, 24, 0.46);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  backdrop-filter: blur(14px) saturate(1.3);
  color: #fff;
}
.campaign .campaign-body h3 {
  margin: 0;
  font-size: clamp(20px, 2.6vw, 28px);
  font-weight: 700;
  line-height: 1.35;
  color: #fff;
}
.campaign .campaign-body p {
  margin: 0;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.92);
  opacity: 1;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.campaign-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 4px;
}
.campaign .campaign-date {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  color: #fff;
  font-size: 13px;
  opacity: 1;
}
.campaign-cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  background: #fff;
  color: #0b1220;
  font-size: 14px;
  font-weight: 700;
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease;
}
a.campaign:hover .campaign-cta {
  transform: translateX(-3px);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.28);
}
a.campaign:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 3px;
}
/* without a photo: brand gradient */
.campaign:not(:has(> img)) {
  background: linear-gradient(135deg, #0046c0, #2f7bff 60%, #6aa2ff);
}
.campaign:not(:has(> img))::after {
  content: '';
  position: absolute;
  inset-inline-end: -60px;
  inset-block-start: -60px;
  width: 240px;
  height: 240px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.14);
}
@media (prefers-reduced-motion: reduce) {
  .campaign > img,
  .campaign-cta {
    transition: none;
  }
  a.campaign:hover > img {
    transform: none;
  }
}
@media (max-width: 580px) {
  .campaigns {
    margin: 18px 0;
  }
  .campaign {
    min-height: 210px;
    align-items: flex-end;
    padding: 12px;
    border-radius: 22px;
  }
  .campaign:has(> img)::after {
    background: linear-gradient(0deg, rgba(8, 12, 22, 0.86) 0%, rgba(8, 12, 22, 0.35) 55%, rgba(8, 12, 22, 0.05) 100%);
  }
  .campaign-body {
    width: 100%;
    max-width: none;
    padding: 14px 16px;
    gap: 6px;
  }
  .campaign .campaign-body h3 {
    font-size: 20px;
  }
  .campaign .campaign-body p {
    font-size: 14px;
  }
  .campaign-cta {
    min-height: 44px;
  }
}
@media (max-width: 580px) {
  .campaign {
    min-height: 240px;
  }
  .campaign .campaign-body p {
    -webkit-line-clamp: 1;
  }
}

/* campaign banner sizes (set per campaign in the CMS) */
.campaign.size-s {
  min-height: clamp(150px, 16vw, 180px);
}
.campaign.size-l {
  grid-column: 1/-1;
  min-height: clamp(260px, 30vw, 360px);
}
.campaign.size-l .campaign-body {
  max-width: min(520px, 100%);
}
@media (max-width: 580px) {
  .campaign.size-s {
    min-height: 180px;
  }
  .campaign.size-m {
    min-height: 240px;
  }
  .campaign.size-l {
    min-height: 300px;
  }
}

/* home hero: discovery column fills the sidebar height so the hero and trust strip line up with it */
.home-discovery {
  display: flex;
  flex-direction: column;
}
.home-discovery > .editorial {
  flex: 1;
}
.home-discovery > .trust-strip {
  flex: none;
}
@media (max-width: 900px) {
  .home-discovery > .editorial {
    flex: none;
  }
}

/* ---- image editor (CMS) */
.ie-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(8, 12, 22, 0.62);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}
.ie {
  display: flex;
  flex-direction: column;
  width: min(1100px, 100%);
  max-height: 100%;
  border: 1px solid var(--border);
  border-radius: 24px;
  background: var(--glass-content, #fff);
  color: var(--ink);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.4);
  outline: none;
  overflow: hidden;
}
.ie-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  border-bottom: 1px solid var(--border);
}
.ie-head h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 17px;
}
.ie-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 18px;
  padding: 18px 20px;
  overflow: auto;
  min-height: 0;
}
.ie-stage-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.ie-stage {
  position: relative;
  width: 100%;
  max-width: 100%;
  max-height: 60vh;
  margin: 0 auto;
  border-radius: 12px;
  overflow: hidden;
  touch-action: none;
  user-select: none;
  background: repeating-conic-gradient(#8884 0 25%, #0000 0 50%) 0 0/16px 16px;
}
.ie-stage canvas {
  display: block;
  width: 100%;
  height: 100%;
}
.ie-crop {
  position: absolute;
  border: 2px solid #fff;
  box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.55);
  cursor: move;
  outline: none;
  touch-action: none;
}
.ie-crop:focus-visible {
  border-color: #6aa2ff;
}
.ie-crop::before,
.ie-crop::after {
  content: '';
  position: absolute;
  pointer-events: none;
  border: 0 solid rgba(255, 255, 255, 0.45);
}
.ie-crop::before {
  inset: 0 33.33%;
  border-width: 0 1px;
}
.ie-crop::after {
  inset: 33.33% 0;
  border-width: 1px 0;
}
.ie-h {
  position: absolute;
  width: 22px;
  height: 22px;
  margin: -11px 0 0 -11px;
  display: block;
}
.ie-h::after {
  content: '';
  position: absolute;
  inset: 5px;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5);
}
.ie-tl {
  left: 0;
  top: 0;
  cursor: nwse-resize;
}
.ie-t {
  left: 50%;
  top: 0;
  cursor: ns-resize;
}
.ie-tr {
  left: 100%;
  top: 0;
  cursor: nesw-resize;
}
.ie-r {
  left: 100%;
  top: 50%;
  cursor: ew-resize;
}
.ie-br {
  left: 100%;
  top: 100%;
  cursor: nwse-resize;
}
.ie-b {
  left: 50%;
  top: 100%;
  cursor: ns-resize;
}
.ie-bl {
  left: 0;
  top: 100%;
  cursor: nesw-resize;
}
.ie-l {
  left: 0;
  top: 50%;
  cursor: ew-resize;
}
.ie-meta {
  margin: 0;
  font-size: 13px;
  color: var(--muted);
}
.ie-panel {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.ie-panel h3 {
  margin: 0 0 8px;
  font-size: 14px;
}
.ie-chips,
.ie-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ie-chip {
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--glass-field);
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.ie-chip.on {
  background: var(--primary);
  border-color: var(--primary);
  color: #fff;
}
.ie-range,
.ie-row {
  display: grid;
  grid-template-columns: 84px 1fr 38px;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 13px;
}
.ie-row {
  grid-template-columns: 84px 1fr;
}
.ie-range output {
  text-align: end;
  color: var(--muted);
}
.ie-range input {
  width: 100%;
  min-height: 32px;
  accent-color: var(--primary);
}
.ie-note {
  margin: 0;
  padding: 24px;
  text-align: center;
}
.ie-note.small {
  padding: 0;
  text-align: start;
  font-size: 12px;
  color: var(--muted);
}
.ie-error {
  margin: 0;
  padding: 8px 20px;
  color: #c0392b;
  font-size: 14px;
}
.ie-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 20px;
  border-top: 1px solid var(--border);
}
.upload-preview {
  position: relative;
}
.upload-preview .ie-edit {
  position: absolute;
  inset-block-end: 4px;
  inset-inline-end: 4px;
}
@media (max-width: 760px) {
  .ie-backdrop {
    padding: 0;
  }
  .ie {
    border-radius: 0;
    height: 100%;
  }
  .ie-body {
    grid-template-columns: 1fr;
  }
  .ie-stage {
    max-height: 42vh;
  }
  .ie-range {
    grid-template-columns: 76px 1fr 34px;
  }
}
.ie-frames {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
}
.ie-frame {
  margin: 0;
  min-width: 0;
}
.ie-frame > div {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: #000;
}
.ie-frame canvas {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.ie-frame i {
  position: absolute;
  inset: 0;
  background: linear-gradient(to left, rgba(8, 12, 22, 0.7), rgba(8, 12, 22, 0.05));
  pointer-events: none;
}
.ie-frame figcaption {
  margin-top: 4px;
  font-size: 12px;
  text-align: center;
  color: var(--muted);
}
@media (max-width: 760px) {
  .ie-frames {
    grid-template-columns: 1fr 1fr;
  }
}

/* uploaded product photos are mixed into the sample-card identity: the same product-colour card, stripes, platform label,
   big short code and name - the photo sits underneath as a colour-blended texture instead of replacing the card */
.product-art.has-photo {
  isolation: isolate;
}
.product-art.has-photo > img {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: cover;
  border-radius: 0;
  opacity: 0.5;
  mix-blend-mode: luminosity;
}
.product-art.has-photo::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(8, 12, 22, 0.35) 0%, rgba(8, 12, 22, 0) 35%, rgba(8, 12, 22, 0.7) 100%);
}
.product-art.has-photo > .art-meta,
.product-art.has-photo > strong,
.product-art.has-photo > .art-title,
.product-art.has-photo > .art-line {
  position: relative;
  z-index: 2;
}
.product-art.has-photo > strong {
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.35);
}
.product-art.has-photo .art-title {
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.45);
}
@media (max-width: 580px) {
  .cart-row .product-art.has-photo > strong {
    font-size: 22px;
  }
}
.favorite {
  z-index: 3;
}
/* product image thumbnails: the edit and remove buttons sit beside the picture instead of on top of each other */
.upload-preview {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  margin: 12px 12px 12px 0;
}
.upload-preview .icon-btn,
.upload-preview .ie-edit {
  position: static;
  inset: auto;
  width: 38px;
  height: 38px;
  min-width: 38px;
  border-radius: 12px;
}

/* ---- receipt printer on the payment result page */
.printer {
  width: min(360px, 100%);
  margin: 4px auto 6px;
  position: relative;
}
.printer-body {
  position: relative;
  z-index: 3;
  padding: 14px 14px 12px;
  border-radius: 26px;
  background: linear-gradient(180deg, #eef1f6, #d9dee8);
  box-shadow:
    0 14px 32px rgba(10, 14, 24, 0.28),
    inset 0 1px 0 #fff,
    inset 0 -3px 0 rgba(0, 0, 0, 0.08);
}
:root[data-theme='dark'] .printer-body {
  background: linear-gradient(180deg, #3a4050, #2a2f3c);
  box-shadow:
    0 14px 32px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -3px 0 rgba(0, 0, 0, 0.35);
}
.printer-screen {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  padding: 0 14px;
  border-radius: 14px;
  background: #0d1117;
  color: #b8f5c4;
  font:
    600 13px/1.4 ui-monospace,
    Menlo,
    Consolas,
    monospace;
  box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.6);
}
.printer.failure .printer-screen {
  color: #ffb3bd;
}
.printer.pending .printer-screen {
  color: #ffe29a;
}
.printer-screen span:last-child {
  font-family: Vazirmatn, Tahoma, sans-serif;
  font-weight: 600;
  font-size: 13px;
}
.printer-spin {
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: printer-spin 0.8s linear infinite;
}
@keyframes printer-spin {
  to {
    transform: rotate(360deg);
  }
}
.printer-slot {
  height: 9px;
  margin: 12px 6px 0;
  border-radius: 999px;
  background: #12151c;
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.7),
    0 1px 0 rgba(255, 255, 255, 0.5);
}
.printer-paper-wrap {
  position: relative;
  z-index: 1;
  margin: -3px 22px 0;
  overflow: hidden;
  padding-bottom: 2px;
}
.receipt-paper {
  position: relative;
  padding: 18px 16px 26px;
  background: #fffdf7 repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.018) 0 1px, transparent 1px 3px);
  color: #1d2230;
  text-align: start;
  font:
    12.5px/1.9 ui-monospace,
    Menlo,
    Consolas,
    monospace;
  clip-path: polygon(
    0 0,
    100% 0,
    100% calc(100% - 7px),
    97.73% 100%,
    95.45% calc(100% - 7px),
    93.18% 100%,
    90.91% calc(100% - 7px),
    88.64% 100%,
    86.36% calc(100% - 7px),
    84.09% 100%,
    81.82% calc(100% - 7px),
    79.55% 100%,
    77.27% calc(100% - 7px),
    75% 100%,
    72.73% calc(100% - 7px),
    70.45% 100%,
    68.18% calc(100% - 7px),
    65.91% 100%,
    63.64% calc(100% - 7px),
    61.36% 100%,
    59.09% calc(100% - 7px),
    56.82% 100%,
    54.55% calc(100% - 7px),
    52.27% 100%,
    50% calc(100% - 7px),
    47.73% 100%,
    45.45% calc(100% - 7px),
    43.18% 100%,
    40.91% calc(100% - 7px),
    38.64% 100%,
    36.36% calc(100% - 7px),
    34.09% 100%,
    31.82% calc(100% - 7px),
    29.55% 100%,
    27.27% calc(100% - 7px),
    25% 100%,
    22.73% calc(100% - 7px),
    20.45% 100%,
    18.18% calc(100% - 7px),
    15.91% 100%,
    13.64% calc(100% - 7px),
    11.36% 100%,
    9.09% calc(100% - 7px),
    6.82% 100%,
    4.55% calc(100% - 7px),
    2.27% 100%,
    0% calc(100% - 7px)
  );
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, 0.25));
  transform: translateY(-100%);
}
.stage-printing .receipt-paper {
  animation: receipt-out 1.75s steps(19, end) forwards;
  transform: translateY(-100%);
}
.stage-done .receipt-paper {
  transform: none;
}
@keyframes receipt-out {
  to {
    transform: translateY(0);
  }
}
.receipt-paper * {
  font-family: inherit;
}
.receipt-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  text-align: center;
}
.receipt-head strong {
  font-size: 15px;
  font-family: Vazirmatn, Tahoma, sans-serif;
}
.receipt-head span {
  font-size: 12px;
  color: #5b6475;
  font-family: Vazirmatn, Tahoma, sans-serif;
}
.receipt-rule {
  border-top: 1px dashed #9aa3b5;
  margin: 8px 0;
}
.receipt-meta {
  margin: 0;
}
.receipt-meta > div,
.receipt-row,
.receipt-total,
.receipt-lines li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}
.receipt-meta dt {
  color: #5b6475;
  font-family: Vazirmatn, Tahoma, sans-serif;
}
.receipt-meta dd {
  margin: 0;
  text-align: end;
  overflow-wrap: anywhere;
  font-family: Vazirmatn, Tahoma, sans-serif;
}
.receipt-meta dd[dir='ltr'] {
  font-family: inherit;
}
.receipt-lines {
  list-style: none;
  margin: 0;
  padding: 0;
}
.receipt-lines li > span {
  font-family: Vazirmatn, Tahoma, sans-serif;
  min-width: 0;
}
.receipt-lines b,
.receipt-row b,
.receipt-total b {
  white-space: nowrap;
  font-family: Vazirmatn, Tahoma, sans-serif;
}
.receipt-row {
  color: #3a6b58;
}
.receipt-row span {
  font-family: Vazirmatn, Tahoma, sans-serif;
}
.receipt-total {
  margin-top: 4px;
  font-size: 15px;
  font-weight: 800;
}
.receipt-total span {
  font-family: Vazirmatn, Tahoma, sans-serif;
}
.receipt-stamp {
  width: max-content;
  margin: 12px auto 0;
  padding: 2px 14px;
  border: 2px solid;
  border-radius: 6px;
  font:
    800 13px Vazirmatn,
    Tahoma,
    sans-serif;
  transform: rotate(-4deg);
  color: #1f8a5b;
}
.receipt-stamp.failure {
  color: #c0392b;
}
.receipt-stamp.pending {
  color: #b7791f;
}
.receipt-note {
  margin: 10px 0 0;
  text-align: center;
  font-size: 11px;
  color: #7a8296;
  font-family: Vazirmatn, Tahoma, sans-serif;
}
@media (prefers-reduced-motion: reduce) {
  .printer-spin {
    animation: none;
  }
  .stage-printing .receipt-paper {
    animation: none;
    transform: none;
  }
}

.pay-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(8, 12, 22, 0.66);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.pay-overlay .printer {
  margin: 0;
}
.receipt-paper strong,
.receipt-paper b,
.receipt-paper dd,
.receipt-paper dt,
.receipt-paper span {
  color: inherit;
}
.receipt-head strong {
  color: #1d2230;
}
.receipt-head span,
.receipt-meta dt {
  color: #5b6475;
}
.receipt-row,
.receipt-row b {
  color: #2f6b55;
}
.receipt-note {
  color: #7a8296;
}
.receipt-stamp.success {
  color: #1f8a5b;
}
.receipt-paper .receipt-head strong {
  color: #1d2230 !important;
}
/* light theme: keep the torn edge visible - shadow on the wrapper (not clipped by the zig-zag) and a warmer paper tone */
.printer-paper-wrap {
  padding-bottom: 12px;
  filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.22));
}
.receipt-paper {
  filter: none;
  background-color: #f9f4e6;
}
/* wallet lines on the receipt: money leaving the wallet is red, cashback coming in is green */
.receipt-paper .receipt-row.debit,
.receipt-paper .receipt-row.debit b,
.receipt-paper .receipt-row.debit span {
  color: #c0392b;
}
.receipt-paper .receipt-row.credit,
.receipt-paper .receipt-row.credit b,
.receipt-paper .receipt-row.credit span {
  color: #17714a;
}

/* wallet balance on the account overview as a box */
.wallet-box {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  min-width: 210px;
  padding: 12px 16px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: var(--glass-field);
  color: var(--ink);
  transition:
    border-color 0.15s,
    transform 0.15s;
}
.wallet-box:hover {
  border-color: var(--primary);
  color: var(--ink);
  transform: translateY(-1px);
}
.wallet-box-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: rgba(0, 98, 255, 0.14);
  color: var(--primary);
}
.wallet-box-text {
  display: flex;
  flex-direction: column;
  line-height: 1.5;
}
.wallet-box-text small {
  font-size: 12px;
  color: var(--muted);
}
.wallet-box-text strong {
  font-size: 17px;
}
/* negavid-theme.css - DARK THEME LAYER (loaded last)
   Applies only when <html data-theme="dark">; the light theme is styles.css + ios-glass.css. It deliberately wins over the two
   files before it, which is why a few rules here use !important. Small dark-only fixes for new features can also live in
   ios-glass.css under :root[data-theme="dark"]. */

/* Dark theme (negavid.com-inspired). Applies only when <html data-theme="dark">; light theme = styles.css + ios-glass.css. */
html[data-theme='dark'] {
  color-scheme: dark;
  --primary: #6b9eff;
  --primary-dark: #548af1;
  --ink: #ffffff;
  --muted: rgba(255, 255, 255, 0.68);
  --border: rgba(255, 255, 255, 0.13);
  --bg: #23252f;
  --surface: rgba(255, 255, 255, 0.06);
  --glass-chrome: rgba(10, 13, 18, 0.38);
  --glass-panel: rgba(255, 255, 255, 0.06);
  --glass-content: rgba(30, 32, 44, 0.78);
  --glass-field: rgba(255, 255, 255, 0.08);
  --glass-edge: rgba(255, 255, 255, 0.13);
  --glass-shadow: 0 10px 34px rgba(0, 0, 0, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  --glass-floating-shadow: 0 16px 44px rgba(0, 0, 0, 0.42), inset 0 1px 0 rgba(255, 255, 255, 0.14);
  --glass-tint: rgba(107, 158, 255, 0.92);
  --glass-rim: linear-gradient(
    160deg,
    rgba(255, 255, 255, 0.5),
    rgba(255, 255, 255, 0.08) 38%,
    rgba(255, 255, 255, 0.05) 62%,
    rgba(255, 255, 255, 0.3)
  );
}
html[data-theme='dark'] {
  background: #23252f;
}
html[data-theme='dark'] body {
  background-color: #23252f;
  color: #fff;
}
html[data-theme='dark'] body::before {
  background-image: radial-gradient(ellipse 55% 45% at 88% 2%, rgba(24, 192, 144, 0.3), transparent 70%),
    radial-gradient(ellipse 50% 50% at 8% 20%, rgba(107, 158, 255, 0.38), transparent 70%),
    radial-gradient(ellipse 45% 40% at 55% 100%, rgba(0, 96, 240, 0.28), transparent 70%),
    linear-gradient(165deg, #2a2c38, #1d1f29 70%);
}
html[data-theme='dark'] ::selection {
  background: rgba(107, 158, 255, 0.45);
}
html[data-theme='dark'] h1,
html[data-theme='dark'] h2,
html[data-theme='dark'] h3,
html[data-theme='dark'] h4,
html[data-theme='dark'] strong,
html[data-theme='dark'] .product-name,
html[data-theme='dark'] .art-title {
  color: #fff;
}
html[data-theme='dark'] .muted,
html[data-theme='dark'] .meta,
html[data-theme='dark'] .subtitle,
html[data-theme='dark'] .breadcrumbs,
html[data-theme='dark'] .breadcrumbs a,
html[data-theme='dark'] .seller-line a,
html[data-theme='dark'] .footer-bottom,
html[data-theme='dark'] .card-price small,
html[data-theme='dark'] .category-nav a,
html[data-theme='dark'] .utility,
html[data-theme='dark'] .utility a,
html[data-theme='dark'] small,
html[data-theme='dark'] label,
html[data-theme='dark'] .field label,
html[data-theme='dark'] th,
html[data-theme='dark'] .art-meta {
  color: rgba(255, 255, 255, 0.7);
}
html[data-theme='dark'] a {
  color: inherit;
}
html[data-theme='dark'] .breadcrumbs a:hover,
html[data-theme='dark'] .category-nav a:hover,
html[data-theme='dark'] .utility a:hover {
  color: #fff;
}
html[data-theme='dark'] .category-nav .seller-link,
html[data-theme='dark'] .text-btn {
  color: #aac7ff;
}
html[data-theme='dark'] .card-price,
html[data-theme='dark'] .big-price,
html[data-theme='dark'] .price {
  color: #c8dbff;
}
html[data-theme='dark'] .utility {
  background: rgba(0, 0, 0, 0.25);
  border-color: var(--border);
}
html[data-theme='dark'] .site-header {
  background: var(--glass-chrome);
  border-bottom: 1px solid var(--border);
  box-shadow: none;
  backdrop-filter: blur(14px) saturate(150%);
  -webkit-backdrop-filter: blur(14px) saturate(150%);
}
html[data-theme='dark'] .category-nav {
  background: transparent;
  border-top-color: var(--border);
}
html[data-theme='dark'] .category-nav a.all {
  color: #fff;
  border-left-color: var(--border);
}
html[data-theme='dark'] .demo-banner {
  background: rgba(107, 158, 255, 0.14);
  color: #d6e4ff;
  border-bottom-color: var(--border);
}
html[data-theme='dark'] .header-search {
  background: var(--glass-field);
  border: 1px solid var(--border);
  box-shadow: none;
}
html[data-theme='dark'] .header-search input,
html[data-theme='dark'] input,
html[data-theme='dark'] textarea,
html[data-theme='dark'] select {
  color: #fff;
}
html[data-theme='dark'] input::placeholder,
html[data-theme='dark'] textarea::placeholder {
  color: rgba(255, 255, 255, 0.5);
}
html[data-theme='dark'] .header-search svg {
  color: rgba(255, 255, 255, 0.6);
}
html[data-theme='dark'] .header-actions > a {
  color: #fff;
}
html[data-theme='dark'] .header-actions > a:hover {
  background: rgba(255, 255, 255, 0.1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}
html[data-theme='dark'] .header-actions .cart-link {
  background: rgba(255, 255, 255, 0.08);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}
html[data-theme='dark'] .header-actions i {
  border-color: #2a2c38;
}
html[data-theme='dark'] .brand strong {
  color: #fff;
}
html[data-theme='dark'] .panel,
html[data-theme='dark'] .category-side,
html[data-theme='dark'] .trust-strip,
html[data-theme='dark'] .seller-callout,
html[data-theme='dark'] .filters,
html[data-theme='dark'] .spec-grid,
html[data-theme='dark'] .purchase-panel,
html[data-theme='dark'] .catalog-toolbar,
html[data-theme='dark'] .empty,
html[data-theme='dark'] .seller-card,
html[data-theme='dark'] .table-wrap,
html[data-theme='dark'] .conversations,
html[data-theme='dark'] .auth,
html[data-theme='dark'] .store-header,
html[data-theme='dark'] .dashboard-nav,
html[data-theme='dark'] .order-summary-item,
html[data-theme='dark'] .delivery-box,
html[data-theme='dark'] .help-cards > *,
html[data-theme='dark'] .directory-link,
html[data-theme='dark'] .product-card {
  background: var(--glass-content);
  border: 1px solid var(--glass-edge);
  box-shadow: var(--glass-shadow);
  color: #fff;
}
html[data-theme='dark'] .product-card:hover {
  box-shadow:
    0 16px 38px rgba(0, 0, 0, 0.45),
    inset 0 0 0 1px rgba(255, 255, 255, 0.22);
}
html[data-theme='dark'] .category-side > a,
html[data-theme='dark'] .dashboard-nav nav a {
  color: rgba(255, 255, 255, 0.82);
}
html[data-theme='dark'] .category-side > a:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}
html[data-theme='dark'] .dashboard-nav nav a.active {
  background: rgba(107, 158, 255, 0.28);
  color: #fff;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}
html[data-theme='dark'] .category-side h3,
html[data-theme='dark'] .category-side .all-categories {
  border-color: var(--border);
}
html[data-theme='dark'] .editorial {
  background: linear-gradient(112deg, rgba(60, 77, 110, 0.62), rgba(107, 158, 255, 0.3) 55%, rgba(214, 160, 70, 0.22));
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
}
html[data-theme='dark'] .editorial p {
  color: rgba(255, 255, 255, 0.78);
}
html[data-theme='dark'] .editorial .badge.lime,
html[data-theme='dark'] .popular-tags a {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #fff;
}
html[data-theme='dark'] .popular-tags a:hover {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.28);
}
html[data-theme='dark'] .feature-type > span {
  color: #aac7ff;
  text-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
}
html[data-theme='dark'] .feature-type > span:nth-child(2) {
  color: #d7a95b;
}
html[data-theme='dark'] .feature-type > span:nth-child(3) {
  color: #fff;
}
html[data-theme='dark'] .feature-type > small {
  color: rgba(255, 255, 255, 0.65);
}
html[data-theme='dark'] .trust-strip svg {
  color: #aac7ff;
}
html[data-theme='dark'] footer {
  background: rgba(10, 13, 18, 0.45);
  border-top: 1px solid var(--border);
  color: rgba(255, 255, 255, 0.78);
}
html[data-theme='dark'] footer a {
  color: rgba(255, 255, 255, 0.75);
}
html[data-theme='dark'] footer a:hover {
  color: #fff;
}
html[data-theme='dark'] .footer-bottom {
  border-top-color: var(--border);
}
html[data-theme='dark'] .btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: #fff;
}
html[data-theme='dark'] .btn:hover {
  background: rgba(255, 255, 255, 0.15);
}
html[data-theme='dark'] .btn.primary,
html[data-theme='dark'] .header-search button,
html[data-theme='dark'] .editorial .btn.light {
  background: linear-gradient(135deg, #689afa, #4681f0);
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 8px 26px rgba(107, 158, 255, 0.45);
}
html[data-theme='dark'] .btn.primary:hover,
html[data-theme='dark'] .header-search button:hover {
  filter: brightness(1.08);
}
html[data-theme='dark'] .btn.danger {
  color: #ff8f9d;
  background: rgba(255, 90, 110, 0.1);
  border-color: rgba(255, 90, 110, 0.3);
}
html[data-theme='dark'] .btn:disabled,
html[data-theme='dark'] button:disabled {
  opacity: 0.5;
}
html[data-theme='dark'] .field input,
html[data-theme='dark'] .field select,
html[data-theme='dark'] .field textarea,
html[data-theme='dark'] input,
html[data-theme='dark'] select,
html[data-theme='dark'] textarea {
  background: var(--glass-field);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #fff;
}
html[data-theme='dark'] input:focus,
html[data-theme='dark'] textarea:focus,
html[data-theme='dark'] select:focus {
  outline: 2px solid rgba(139, 179, 255, 0.85);
  outline-offset: 1px;
}
html[data-theme='dark'] select option {
  background: #262836;
  color: #fff;
}
html[data-theme='dark'] :focus-visible {
  outline-color: #9abdff;
}
html[data-theme='dark'] .tabs > button,
html[data-theme='dark'] .tabs > a {
  color: rgba(255, 255, 255, 0.75);
}
html[data-theme='dark'] .tabs > .active,
html[data-theme='dark'] .tabs > [aria-current],
html[data-theme='dark'] .tabs > button.active,
html[data-theme='dark'] .tabs a.active {
  background: rgba(107, 158, 255, 0.3);
  color: #fff;
}
html[data-theme='dark'] .favorite,
html[data-theme='dark'] .view-toggle button,
html[data-theme='dark'] .icon-btn {
  background: rgba(20, 24, 32, 0.62);
  color: #fff;
  border-color: rgba(255, 255, 255, 0.18);
}
html[data-theme='dark'] .badge,
html[data-theme='dark'] .card-tag {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.14);
}
html[data-theme='dark'] .badge.green,
html[data-theme='dark'] .badge.lime {
  color: #8ff0b9;
}
html[data-theme='dark'] .badge.purple {
  color: #c3d8ff;
}
html[data-theme='dark'] .notice,
html[data-theme='dark'] .warning {
  background: rgba(214, 160, 70, 0.12);
  border-color: rgba(214, 160, 70, 0.35);
  color: #f1d7a6;
}
html[data-theme='dark'] .table-wrap table,
html[data-theme='dark'] table {
  color: #fff;
}
html[data-theme='dark'] th {
  background: rgba(255, 255, 255, 0.05);
}
html[data-theme='dark'] td,
html[data-theme='dark'] th {
  border-color: var(--border);
}
html[data-theme='dark'] .toast {
  background: rgba(25, 30, 38, 0.92);
  color: #fff;
  border: 1px solid var(--border);
}
html[data-theme='dark'] dialog {
  background: rgba(28, 30, 42, 0.94);
  color: #fff;
  border: 1px solid var(--glass-edge);
}
html[data-theme='dark'] dialog::backdrop {
  background: rgba(5, 7, 12, 0.55);
  backdrop-filter: blur(6px);
}
html[data-theme='dark'] hr,
html[data-theme='dark'] .divider {
  border-color: var(--border);
}
html[data-theme='dark'] .mobile-bottom {
  background: rgba(14, 17, 24, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.14);
}
html[data-theme='dark'] .mobile-bottom > a {
  color: rgba(255, 255, 255, 0.75);
}
html[data-theme='dark'] .mobile-bottom > a:hover {
  background: rgba(255, 255, 255, 0.1);
}
html[data-theme='dark'] .mobile-bottom > a[aria-current='page'] {
  background: linear-gradient(135deg, #1a66f2, #0050d8);
  color: #fff;
}
html[data-theme='dark'] .skip {
  background: #fff;
  color: #111;
}
html[data-theme='dark'] body .badge,
html[data-theme='dark'] body .badge.gray,
html[data-theme='dark'] body .badge.green,
html[data-theme='dark'] body .badge.purple,
html[data-theme='dark'] body .badge.lime,
html[data-theme='dark'] body .badge.red,
html[data-theme='dark'] body .badge.orange {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.14);
}
html[data-theme='dark'] body .badge.green {
  color: #8ff0b9;
  background: rgba(60, 200, 130, 0.14);
  border-color: rgba(60, 200, 130, 0.32);
}
html[data-theme='dark'] body .badge.purple {
  color: #c3d8ff;
  background: rgba(107, 158, 255, 0.18);
  border-color: rgba(107, 158, 255, 0.38);
}
html[data-theme='dark'] body .tabs {
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid var(--border);
  box-shadow: none;
}
html[data-theme='dark'] body .tabs > button,
html[data-theme='dark'] body .tabs > a {
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
}
html[data-theme='dark'] body .tabs > button.active,
html[data-theme='dark'] body .tabs > a.active,
html[data-theme='dark'] body .tabs > [aria-selected='true'],
html[data-theme='dark'] body .tabs > [aria-current] {
  background: linear-gradient(135deg, #689afa, #4681f0);
  color: #fff;
  box-shadow: 0 6px 18px rgba(107, 158, 255, 0.4);
}
html[data-theme='dark'] body select,
html[data-theme='dark'] body textarea,
html[data-theme='dark'] body input:not([type='checkbox']):not([type='radio']):not([type='file']) {
  background-color: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
html[data-theme='dark'] body .view-toggle {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid var(--border);
}
html[data-theme='dark'] body .view-toggle button {
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  border: 0;
}
html[data-theme='dark'] body .view-toggle button.active,
html[data-theme='dark'] body .view-toggle button[aria-pressed='true'] {
  background: rgba(107, 158, 255, 0.3);
  color: #fff;
}
html[data-theme='dark'] body .notice.warning {
  background: rgba(214, 160, 70, 0.13);
  border-color: rgba(214, 160, 70, 0.38);
  color: #f1d7a6;
}
html[data-theme='dark'] body .variations button {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--border);
  color: #fff;
}
html[data-theme='dark'] body .variations button.selected {
  background: rgba(107, 158, 255, 0.22);
  border-color: #8bb3ff;
  box-shadow:
    0 0 0 1px #8bb3ff inset,
    0 8px 22px rgba(107, 158, 255, 0.25);
}
html[data-theme='dark'] body .license {
  background: rgba(0, 0, 0, 0.38);
  color: #a8ffd0;
  border: 1px solid rgba(143, 240, 185, 0.3);
}
html[data-theme='dark'] body .message {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid var(--border);
}
html[data-theme='dark'] body .conversations button.active,
html[data-theme='dark'] body .conversations .active {
  background: rgba(107, 158, 255, 0.25);
  color: #fff;
}
html[data-theme='dark'] body .conversations button {
  color: #fff;
}
html[data-theme='dark'] body .upload {
  background: rgba(255, 255, 255, 0.06);
  border: 1px dashed rgba(255, 255, 255, 0.3);
  color: #fff;
}
html[data-theme='dark'] body .route-list a,
html[data-theme='dark'] body .directory-grid a {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--border);
  color: #fff;
}
html[data-theme='dark'] body .route-list a:hover,
html[data-theme='dark'] body .directory-grid a:hover {
  background: rgba(255, 255, 255, 0.12);
}
html[data-theme='dark'] body select,
html[data-theme='dark'] body textarea {
  background-color: rgba(255, 255, 255, 0.08) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.15) !important;
}
html[data-theme='dark'] body button:not([class]) {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.16);
}
html[data-theme='dark'] body button:not([class]):hover {
  background: rgba(255, 255, 255, 0.15);
}
html[data-theme='dark'] body button[class=''] {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.16);
}
html[data-theme='dark'] body button[class='']:hover {
  background: rgba(255, 255, 255, 0.15);
}
html[data-theme='dark'] body .field span,
html[data-theme='dark'] body label > span,
html[data-theme='dark'] body .field > div > span {
  color: rgba(255, 255, 255, 0.8);
}
html[data-theme='dark'] body footer h3,
html[data-theme='dark'] body footer h4 {
  color: #fff;
}
html[data-theme='dark'] body .header-search button[class=''],
html[data-theme='dark'] body .header-search button {
  background: linear-gradient(135deg, #689afa, #4681f0);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 6px 20px rgba(107, 158, 255, 0.45);
}
html[data-theme='dark'] body .header-search input {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none;
}
html[data-theme='dark'] body .qty {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  color: #fff;
}
html[data-theme='dark'] body .qty button,
html[data-theme='dark'] body .qty button[class=''] {
  background: transparent !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none;
}
html[data-theme='dark'] body .qty button:hover {
  background: rgba(255, 255, 255, 0.14) !important;
}
html[data-theme='dark'] body .qty span,
html[data-theme='dark'] body .qty output,
html[data-theme='dark'] body .qty input {
  color: #fff !important;
  background: transparent !important;
}
html[data-theme='dark'] body .payment-options label {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--border);
  color: #fff;
}
html[data-theme='dark'] body .payment-options label:hover {
  background: rgba(255, 255, 255, 0.1);
}
html[data-theme='dark'] body .payment-options label.selected {
  background: rgba(107, 158, 255, 0.22);
  border-color: #8bb3ff;
  box-shadow:
    0 0 0 1px #8bb3ff inset,
    0 8px 22px rgba(107, 158, 255, 0.22);
}
html[data-theme='dark'] body .payment-options label svg {
  color: #c8dbff;
}
html[data-theme='dark'] body .footer-top h3,
html[data-theme='dark'] body footer .footer-top h3,
html[data-theme='dark'] body .footer-top h4 {
  color: #fff;
}
html[data-theme='dark'] body .footer-top a,
html[data-theme='dark'] body .footer-top li {
  color: rgba(255, 255, 255, 0.72);
}
html[data-theme='dark'] body .footer-top a:hover {
  color: #fff;
}
html[data-theme='dark'] .inline-search input {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none;
}
html[data-theme='dark'] .site-header {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    0 1px 0 rgba(255, 255, 255, 0.05);
}

/* generic button hover/active must not turn the search button grey */
html[data-theme='dark'] body .header-search button:is(:hover, :active, :focus-visible),
html[data-theme='dark'] body .header-search button[class='']:is(:hover, :active, :focus-visible) {
  background: linear-gradient(135deg, #689afa, #4681f0) !important;
  filter: brightness(1.08);
}

/* categories directory: plain links, no boxes */
html[data-theme='dark'] body .directory-grid a {
  background: none;
  border: 0;
  box-shadow: none;
  border-radius: 0;
}
html[data-theme='dark'] body .directory-grid a.directory-link {
  border-top: 1px solid var(--border);
}
html[data-theme='dark'] body .route-list a {
  background: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
html[data-theme='dark'] body .route-list a:hover,
html[data-theme='dark'] body .directory-grid a:hover {
  background: none;
  color: #aac7ff;
}

/* contrast: small status text on the dark surfaces was under 4.5:1 */
html[data-theme='dark'] .rating {
  color: #f0b95a;
}
html[data-theme='dark'] .delivery {
  color: #52d6ba;
}
html[data-theme='dark'] .seller-callout p {
  color: rgba(255, 255, 255, 0.72);
}

/* ---- brand palette: the logo's blue + emerald green */
html[data-theme='dark'] {
  --primary: #3b82ff;
  --primary-dark: #0060f0;
  --accent: #18c090;
}
html[data-theme='dark'] .btn.primary,
html[data-theme='dark'] .header-search button,
html[data-theme='dark'] .editorial .btn.light,
html[data-theme='dark'] body .header-search button,
html[data-theme='dark'] body .header-search button:is(:hover, :active, :focus-visible) {
  background: linear-gradient(135deg, #1a66f2, #0050d8) !important;
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    0 8px 24px rgba(0, 96, 240, 0.45);
}
html[data-theme='dark'] .feature-type > span:nth-child(2) {
  color: #35d6a8;
}
html[data-theme='dark'] .editorial {
  background: linear-gradient(112deg, rgba(20, 48, 92, 0.7), rgba(0, 96, 240, 0.28) 55%, rgba(24, 192, 144, 0.22));
}

/* dark theme, phone-width audit fixes: small text and labels that were under 4.5:1 */
html[data-theme='dark'] .stat > span,
html[data-theme='dark'] .product-info > p,
html[data-theme='dark'] .product-social,
html[data-theme='dark'] .spec-grid span,
html[data-theme='dark'] .seller-intro p {
  color: rgba(255, 255, 255, 0.74);
}
html[data-theme='dark'] .seller-line > span {
  color: #f0b95a;
}
html[data-theme='dark'] .art-meta {
  color: rgba(255, 255, 255, 0.92);
}
html[data-theme='dark'] .auth a,
html[data-theme='dark'] .auth-links a {
  color: #7aa9ff;
}
html[data-theme='dark'] div.product-art {
  box-shadow: inset 0 0 0 999px rgba(0, 0, 0, 0.2);
}

/* header search button: a tight glow that stays inside the search bar */
html[data-theme='dark'] body .header-search button,
html[data-theme='dark'] body .header-search button:is(:hover, :active, :focus-visible) {
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 2px 8px rgba(0, 96, 240, 0.35);
}
html[data-theme='dark'] .header-actions i,
html[data-theme='dark'] .mobile-bottom a i {
  background: #0050d8;
  border-color: #1b1d2a;
}
