/* Scene "commerce" — storefront, filter URL decisions, product schema, checkout */
.cm { position: absolute; inset: 0; display: flex; flex-direction: column; font-size: 12px; }
.cm-head { flex: none; height: 42px; display: flex; align-items: center; gap: 12px; padding: 0 14px; border-bottom: 1px solid var(--line); }
.cm-logo { font-weight: 600; font-size: 13px; letter-spacing: -0.02em; color: var(--text); white-space: nowrap; }
.cm-search { flex: 1; min-width: 0; height: 24px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border-radius: 12px; background: rgba(140, 165, 255, 0.08); font-size: 11px; color: var(--dim); white-space: nowrap; overflow: hidden; }
.cm-search i { flex: none; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--dim); }
.cm-cart { position: relative; flex: none; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; border: 1px solid var(--line-2); color: var(--muted); }
.cm-cart svg { width: 16px; height: 16px; }
.cm-cart b { position: absolute; top: -7px; right: -7px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; display: grid; place-items: center; font-family: var(--f-mono); font-size: 10px; font-weight: 600; background: var(--accent); color: var(--bg); }
.cm-cart.is-bump b { animation: cm-bump 0.55s var(--ease); background: var(--mint); }
@keyframes cm-bump { 40% { transform: scale(1.45); } }
.cm-body { flex: 1; min-height: 0; display: grid; grid-template-columns: 118px minmax(0, 1fr); gap: 12px; padding: 12px 14px; }
.cm-filters { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cm-flabel { font-family: var(--f-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--dim); margin-bottom: 2px; }
.cm-chip { display: flex; align-items: center; gap: 7px; height: 26px; padding: 0 8px; border-radius: 7px; border: 1px solid var(--line); font-size: 11px; color: var(--muted); white-space: nowrap; overflow: hidden; transition: all 0.35s var(--ease); }
.cm-chip::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 3px; border: 1.3px solid var(--dim); transition: all 0.3s; }
.cm-chip.is-on { border-color: rgba(var(--accent-rgb), 0.8); background: rgba(var(--accent-rgb), 0.14); color: var(--text); }
.cm-chip.is-on::before { background: var(--accent); border-color: var(--accent); }
.cm-grid { min-height: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 8px; }
.cm-card { position: relative; min-height: 0; display: flex; flex-direction: column; gap: 4px; padding: 6px; border-radius: 9px; border: 1px solid transparent; background: rgba(140, 165, 255, 0.06); overflow: hidden; transition: opacity 0.45s var(--ease), transform 0.55s var(--ease), border-color 0.35s, box-shadow 0.35s; }
.cm-card.is-dim { opacity: 0.2; transform: scale(0.95); }
.cm-card.is-focus { border-color: var(--mint); box-shadow: 0 0 0 3px rgba(87, 242, 176, 0.14); transform: translateY(-2px); }
.cm-img { flex: 1; min-height: 18px; border-radius: 6px; }
.cm-img-0 { background: linear-gradient(140deg, rgba(91, 140, 255, 0.55), rgba(154, 131, 255, 0.25)); }
.cm-img-1 { background: linear-gradient(140deg, rgba(70, 225, 255, 0.45), rgba(91, 140, 255, 0.2)); }
.cm-img-2 { background: linear-gradient(140deg, rgba(154, 131, 255, 0.5), rgba(255, 111, 134, 0.2)); }
.cm-img-3 { background: linear-gradient(140deg, rgba(87, 242, 176, 0.35), rgba(70, 225, 255, 0.18)); }
.cm-img-4 { background: linear-gradient(140deg, rgba(255, 190, 92, 0.35), rgba(154, 131, 255, 0.2)); }
.cm-img-5 { background: linear-gradient(140deg, rgba(91, 140, 255, 0.35), rgba(87, 242, 176, 0.2)); }
.cm-name, .cm-price { font-style: normal; font-size: 10.5px; line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cm-name { color: var(--muted); }
.cm-price { font-family: var(--f-mono); color: var(--mint); }
.cm-add { position: absolute; left: 6px; right: 6px; bottom: 6px; height: 21px; border-radius: 11px; display: grid; place-items: center; background: var(--accent); color: var(--bg); font-size: 10px; font-weight: 600; opacity: 0; transform: translateY(8px); transition: opacity 0.35s var(--ease), transform 0.45s var(--ease); }
.cm-card.is-add .cm-add { opacity: 1; transform: none; animation: cm-press 0.6s 0.35s var(--ease); }
@keyframes cm-press { 50% { transform: scale(0.9); background: var(--mint); } }
.cm-url { flex: none; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-height: 44px; padding: 9px 14px; border-top: 1px solid var(--line); background: rgba(5, 10, 28, 0.55); font-family: var(--f-mono); font-size: 11px; }
.cm-url-k { color: var(--cyan); letter-spacing: 0.06em; }
.cm-url-t { min-width: 0; max-width: 100%; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cm-url-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.cm-url-tags .scn-tag { animation: cm-tag 0.4s var(--ease); }
@keyframes cm-tag { from { opacity: 0; transform: translateY(5px); } }
.cm-co { flex: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; padding: 9px 14px 12px; }
.cm-step { position: relative; padding-top: 9px; font-family: var(--f-mono); font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--dim); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color 0.3s; }
.cm-step::before, .cm-step::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px; border-radius: 2px; background: var(--line-2); }
.cm-step::after { background: var(--mint); transform: scaleX(0); transform-origin: left; transition: transform 0.45s var(--ease); box-shadow: 0 0 8px rgba(87, 242, 176, 0.6); }
.cm-step.is-on { color: var(--text); }
.cm-step.is-on::after { transform: scaleX(1); }
@media (max-width: 560px) {
  .cm-head { height: 38px; gap: 8px; padding: 0 10px; }
  .cm-search span { display: none; }
  .cm-body { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); gap: 8px; padding: 8px 10px; }
  .cm-filters { flex-direction: row; overflow: hidden; gap: 5px; }
  .cm-flabel { display: none; }
  .cm-chip { flex: none; height: 22px; font-size: 10px; padding: 0 7px; }
  .cm-url { padding: 7px 10px; font-size: 10px; min-height: 40px; }
  .cm-co { padding: 7px 10px 10px; }
  .cm-step { font-size: 9px; }
}
