/* ============================================================================
   12 · Showcase — layout
   Promotes concept 37 to the Sandvik design system. Image-forward catalog rows:
   a large product image anchors each item (recognise the tool by shape), with
   metadata, supplier/grade tags and stock + actions beside it. Each row is an
   sds-card; tags are sds-tag; actions are sds-button (primary CTA = the single
   electric-blue accent). Rail · command bar · 2-pane body (facets → catalog) ·
   status bar. Layout only; all color/space/type from --sds-* tokens. Shared
   vocabulary (.st, .num, review-bar) lives in ../_shared/base.css.
   ========================================================================== */

/* ---- App grid: rail | (top / panes / status) ---------------------------- */
.app {
  display: grid;
  grid-template-columns: 220px 1fr;
  grid-template-rows: 52px 1fr 30px;
  grid-template-areas:
    "rail top"
    "rail panes"
    "rail status";
  height: calc(100vh - 34px);
}

/* ---- Icon rail ---------------------------------------------------------- */
.rail {
  grid-area: rail;
  border-right: 1px solid var(--sds-color-border);
  background: var(--sds-color-surface);
  display: flex; flex-direction: column;
  padding: var(--sds-space-400) var(--sds-space-300);
  gap: var(--sds-space-200);
  overflow: auto;
}
.brand { display: flex; align-items: center; gap: 10px; padding: var(--sds-space-200) var(--sds-space-200) var(--sds-space-400); }
.brand sds-logo { --sds-logo-height: 22px; height: 22px; display: inline-flex; }
.brand .product { font-family: var(--sds-font-family-headline); font-weight: var(--sds-font-weight-bold); font-size: 16px; letter-spacing: .01em; }
.brand .product .sub { color: var(--sds-color-text-muted); font-weight: var(--sds-font-weight-regular); }
.rail .iconnav { width: 100%; }
.rail .rail-sp { flex: 1; }

/* ---- Top command bar ---------------------------------------------------- */
.top {
  grid-area: top;
  display: flex; align-items: center; gap: var(--sds-space-400);
  padding: 0 var(--sds-space-400);
  border-bottom: 1px solid var(--sds-color-border);
  background: var(--sds-color-surface);
}
.top .crumb { flex: none; }
.top .cmd {
  margin: 0 auto;
  width: 460px; max-width: 42vw; height: 34px;
  display: flex; align-items: center; gap: var(--sds-space-200);
  padding: 0 var(--sds-space-300);
  background: var(--sds-color-bg);
  border: 1px solid var(--sds-color-border-strong);
  border-radius: var(--sds-radius-m);
  color: var(--sds-color-text-muted);
  font-size: var(--sds-type-body-small-size);
}
.top .cmd sds-icon { color: var(--sds-color-text-muted); }
.top .cmd .cmd-text { flex: 1; }
.kbd {
  font-variant-numeric: tabular-nums;
  font-size: var(--sds-type-footnote-size);
  color: var(--sds-color-text-muted);
  background: var(--sds-color-surface-strong);
  border: 1px solid var(--sds-color-border);
  border-radius: var(--sds-radius-s);
  padding: 2px 6px;
}
.top .tools { flex: none; display: flex; align-items: center; gap: var(--sds-space-200); }

/* ---- 2-pane body -------------------------------------------------------- */
.panes {
  grid-area: panes;
  display: grid;
  grid-template-columns: 224px 1fr;
  min-height: 0;
}
.pane { min-height: 0; overflow: auto; }

/* ---- Pane 1: facets ----------------------------------------------------- */
.pane.facets {
  border-right: 1px solid var(--sds-color-border);
  background: var(--sds-color-surface);
  padding: var(--sds-space-400) var(--sds-space-300);
}
.facets .fhead { display: flex; align-items: center; margin-bottom: var(--sds-space-200); padding-inline: var(--sds-space-100); }
.facets .fhead b { font-size: var(--sds-type-body-regular-size); font-weight: var(--sds-font-weight-bold); }
.facets .fhead .clear { margin-left: auto; }
.fnode { display: flex; align-items: center; gap: var(--sds-space-200); padding: var(--sds-space-100); border-radius: var(--sds-radius-m); }
.fnode:hover { background: var(--sds-color-surface-hover); }
.fnode sds-checkbox { flex: 1 1 auto; min-width: 0; }
.fnode .ct { margin-left: auto; flex: none; font-size: var(--sds-type-body-small-size); color: var(--sds-color-text-muted); }
.facets sds-accordion-item::part(panel) { padding-block: var(--sds-space-100); }

/* ---- Pane 2: catalog ---------------------------------------------------- */
.pane.list { display: flex; flex-direction: column; background: var(--sds-color-bg); }
.bulkbar {
  display: flex; align-items: center; gap: var(--sds-space-300);
  padding: var(--sds-space-200) var(--sds-space-400);
  border-bottom: 1px solid var(--sds-color-border);
  background: var(--sds-color-surface);
  flex: none;
}
.bulkbar .bcount { font-size: var(--sds-type-body-small-size); color: var(--sds-color-text-muted); }
.bulkbar .bcount b { color: var(--sds-color-text); }
.bulkbar .acts { margin-left: auto; display: flex; align-items: center; gap: var(--sds-space-100); }

.catalog {
  padding: var(--sds-space-400);
  display: flex; flex-direction: column; gap: var(--sds-space-300);
}

/* each row is an sds-card holding a horizontal layout */
.crow { display: block; }
.crow.selected { box-shadow: 0 0 0 2px var(--sds-color-primary); border-radius: var(--sds-radius-l); }
.crow-in {
  display: grid;
  grid-template-columns: auto 168px 1fr auto;
  align-items: center;
  gap: var(--sds-space-400);
}

/* the hero image — recognise the tool by its shape */
.shot {
  width: 168px; height: 104px; flex: none;
  border-radius: var(--sds-radius-m);
  border: 1px solid var(--sds-color-border);
  background:
    linear-gradient(var(--sds-color-bg), var(--sds-color-bg)) padding-box,
    repeating-linear-gradient(135deg, var(--sds-color-border) 0 1px, transparent 1px 8px);
}

/* metadata block */
.meta { min-width: 0; }
.eyebrow { font-size: var(--sds-type-footnote-size); color: var(--sds-color-text-muted); }
.cname {
  font-family: var(--sds-font-family-headline);
  font-size: var(--sds-type-headline-6-size);
  line-height: var(--sds-type-headline-6-line);
  font-weight: var(--sds-type-headline-6-weight);
  margin: var(--sds-space-100) 0 0;
}
.ccode { font-size: var(--sds-type-body-small-size); color: var(--sds-color-text-muted); margin-top: 2px; }
.specline {
  display: flex; flex-wrap: wrap; gap: var(--sds-space-400);
  margin-top: var(--sds-space-300);
  font-size: var(--sds-type-body-small-size);
  font-variant-numeric: tabular-nums;
}
.specline b { color: var(--sds-color-text-muted); font-weight: var(--sds-font-weight-regular); margin-right: 4px; }
.tags { display: flex; flex-wrap: wrap; gap: var(--sds-space-200); margin-top: var(--sds-space-300); }

/* right-side stock + actions, divided from the metadata */
.aside {
  align-self: stretch;
  display: flex; flex-direction: column; justify-content: center; gap: var(--sds-space-100);
  padding-left: var(--sds-space-400);
  border-left: 1px solid var(--sds-color-border);
  min-width: 184px;
}
.aside .qty { font-size: var(--sds-type-body-regular-size); }
.aside .dev { font-size: var(--sds-type-footnote-size); color: var(--sds-color-text-muted); }
.cacts { display: flex; gap: var(--sds-space-200); margin-top: var(--sds-space-300); }

/* ---- Status bar --------------------------------------------------------- */
.status {
  grid-area: status;
  display: flex; align-items: center; gap: var(--sds-space-400);
  padding: 0 var(--sds-space-400);
  background: var(--sds-color-surface);
  border-top: 1px solid var(--sds-color-border);
  font-size: var(--sds-type-footnote-size);
  color: var(--sds-color-text-muted);
}
.status .s-ok { display: inline-flex; align-items: center; gap: 6px; color: var(--sds-color-success); }
.status .s-ok .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--sds-color-success); }
.status .right { margin-left: auto; display: flex; align-items: center; gap: var(--sds-space-300); }

/* ---- Responsive --------------------------------------------------------- */
@media (max-width: 1040px) {
  .crow-in { grid-template-columns: auto 140px 1fr; }
  .shot { width: 140px; height: 92px; }
  .aside { grid-column: 2 / -1; flex-direction: row; align-items: center; flex-wrap: wrap;
           border-left: 0; border-top: 1px solid var(--sds-color-border);
           padding-left: 0; padding-top: var(--sds-space-300); margin-top: var(--sds-space-200); }
  .cacts { margin-top: 0; margin-left: auto; }
}
@media (max-width: 860px) {
  .panes { grid-template-columns: 1fr; }
  .pane.facets { display: none; }
}
