/* Preserve the supplied three-panel object view. */
/* Keep the first tiles visible while Mapbox streams the rest. The old
   full-size opaque loading note concealed the canvas until map idle. */
body[data-view="browse"] .browse-build__globe .browse-build__globe-note {
  inset:120px 16px auto; min-height:0; padding:7px 10px;
  border-radius:8px; background:color-mix(in srgb,var(--surface) 88%,transparent);
  pointer-events:none;
}
body[data-view="browse"] .browse-build__globe:is([data-state="rendering"],[data-state="ready"]) .browse-build__globe-note { display:none; }
body[data-view="browse"] { --workspace-footer-height:0px; position:fixed; inset:0; width:100%; height:100%; }
body[data-view="browse"] .browse-categories { padding:0 12px calc(var(--workspace-legal-gutter,26px) - 12px); --browse-side-foot:0px; }
body[data-view="browse"] .browse-categories > .browse-side-face { margin-top:0; margin-bottom:12px; border:0; border-radius:18px; }
body[data-view="browse"] .browse-center-frame { border:0; margin-bottom:12px; }
body[data-view="browse"] .browse-center-stage > .browse-feed-dots { opacity:0; pointer-events:none; transition:opacity .15s ease; }
body[data-view="browse"] .browse-center-frame:is(:hover,:focus-within) .browse-center-stage > .browse-feed-dots { opacity:1; pointer-events:auto; }
/* Pill to match the Sign in / Sign up trigger beside it. */
#workspaceEarn { white-space:nowrap; border-radius:999px; }
.browse-side-switcher, .workspace-footer { display:none!important; }
body[data-view="browse"] .browse-command-actions { opacity:1; visibility:visible; }
/* With a pointer, the object action bar stays out of the way until the
   pointer is over it or the command panel; keyboard focus also shows it.
   Touch screens keep it visible because they have no hover. */
@media (hover:hover) {
  body[data-view="browse"] .browse-command-actions { opacity:0; }
  body[data-view="browse"] #command:hover .browse-command-actions,
  body[data-view="browse"] .browse-command-actions:focus-within { opacity:1; }
}
body[data-view="browse"] > .workspace-footer { display:block!important; top:18px; bottom:auto; right:16px; z-index:91; }
body[data-view="browse"] > #workspaceBrand { top:12px; bottom:auto; left:14px; z-index:91; }
.browse-side-face--right .browse-side__close { display:none; }
body[data-view="browse"] .browse-side-face--right [data-side-card="shops"] {
  border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);
  border-radius:16px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);
  padding:14px;
}
/* Let the native map fill the right face beneath the floating shop cards. */
body[data-view="browse"] .browse-side-face--right {
  position:relative;
  isolation:isolate;
}
body[data-view="browse"] .browse-side-face--right > [data-build-head] {
  z-index:2;
  background:var(--surface);
}
body[data-view="browse"] .browse-side-face--right > .browse-build__globe {
  position:absolute; inset:0; z-index:-1;
  margin:0; border-radius:18px;
}
body[data-view="browse"] .browse-side-face--right > [data-build-body] {
  margin-top:auto;
  flex:0 1 auto;
  /* Clearance for the full head: eyebrow + title row + byline + a wrapped
     location status. 110px let the floating cards slide over that text. */
  max-height:calc(100% - 160px);
  padding:4px 24px max(16px,env(safe-area-inset-bottom));
  overflow:clip;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  background:transparent;
  pointer-events:none;
}
body[data-view="browse"] .browse-side-face--right > [data-build-body] > * {
  pointer-events:auto;
  backdrop-filter:blur(12px);
}
body[data-view="browse"] .browse-side-face--right [data-side-card="shops"] {
  min-height:0; overflow:clip;
  display:flex; flex-direction:column;
}
body[data-view="browse"] [data-side-card="shops"] > :not(.browse-build__shops) { flex:none; }
body[data-view="browse"] [data-side-card="shops"] .browse-side__card-head {
  position:relative; padding-top:10px; cursor:ns-resize; touch-action:none; user-select:none;
}
.browse-build__resize {
  position:absolute; top:-12px; left:50%; transform:translateX(-50%);
  display:grid; place-items:center; width:56px; height:20px; padding:0;
  border:0; background:transparent; cursor:ns-resize; touch-action:none;
}
.browse-build__resize span { width:32px; height:3px; border-radius:3px; background:var(--dim); opacity:.5; }
.browse-build__resize:focus-visible { outline:2px solid var(--accent-ink); border-radius:6px; }
body[data-view="browse"] .browse-build__shops {
  flex:0 1 auto; min-height:0; max-height:var(--browse-shop-list-height,226px);
  overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin;
  align-content:start;
}
body[data-view="browse"] .browse-build__shops button { height:52px; }
body[data-view="browse"] .browse-build__shop-name small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
body[data-view="browse"] [data-shop-resizing="true"] { user-select:none; cursor:ns-resize; }
body[data-view="browse"] .browse-side-face--right [data-build-summary] {
  background:var(--surface);
  border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);
}
body[data-view="browse"] .honeycomb-launcher { top:auto; right:max(14px,env(safe-area-inset-right)); bottom:max(16px,env(safe-area-inset-bottom)); }

/* Alphabetical directory; a category opens across the first two tracks. */
body[data-view="browse"] .browse-categories > :is(.browse-side-face--left,.browse-category-bank--left) { display:none; }
body[data-view="browse"] .browse-side-toggle { display:none; }
body[data-view="browse"] .browse-categories[data-category-style] > .browse-side-face--left { display:flex; }
.browse-categories[data-category-style] > .browse-category-browser { display:none; }
.browse-category-browser {
  grid-column:1; grid-row:1; z-index:5; min-width:0; min-height:0;
  display:flex; flex-direction:column; margin-bottom:12px; overflow:hidden;
  border-radius:18px; background:color-mix(in srgb,var(--surface) 94%,transparent);
  color:var(--ink); pointer-events:auto;
}
.browse-category-browser__head { flex:none; position:relative; min-height:0; box-sizing:border-box; padding:20px 24px 0; border-bottom:0; text-align:left; }
.browse-category-browser__head > .browse-side__eyebrow { display:block; }
.browse-category-browser__head h2 { margin:4px 0 0; font:650 18px/1.35 var(--font); letter-spacing:normal; }
.browse-category-browser__head h2:focus:not(:focus-visible) { outline:none; }
.browse-category-browser__head h2:focus-visible { outline:2px solid var(--accent-ink); outline-offset:2px; border-radius:4px; }
.browse-category-browser__head p { margin:0; color:var(--dim); font:12px/1.5 var(--font); }
.browse-category-browser__list,.browse-category-browser__grid {
  min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin;
}
.browse-category-browser__list { padding:8px 18px 62px; }
.browse-category-browser__section { padding:10px 0 16px; border-bottom:1px solid var(--line); }
.browse-category-browser__section > header { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.browse-category-browser__section h3 { margin:0; min-width:0; font:650 16px/1.35 var(--font); }
.browse-category-browser__section h3 button { border:0; background:none; color:var(--ink); padding:0; font:inherit; text-align:left; cursor:pointer; }
.browse-category-browser__section h3 button:hover { color:var(--accent-ink); }
.browse-category-browser__sort-control { position:relative; display:flex; align-items:center; justify-content:center; gap:5px; flex:none; width:auto; height:26px; padding:0 3px; border:0; border-radius:8px; background:transparent; color:var(--dim); }
.browse-category-browser__sort-control > svg { width:20px; height:20px; pointer-events:none; }
.browse-category-browser__sort-control > .browse-category-browser__sort-chevron { width:12px; height:12px; }
.browse-category-browser__sort-control:hover { color:var(--accent-ink); background:var(--accent-soft); }
.browse-category-browser__sort-control:focus-within { outline:2px solid var(--accent-ink); outline-offset:2px; }
.browse-category-browser__sort { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.browse-categories[data-category-expanded] .browse-category-browser__head > .browse-category-browser__sort-control { position:absolute; right:24px; bottom:24px; }
.browse-categories[data-category-expanded] .browse-category-browser__head:has(> .browse-category-browser__sort-control) h2 { padding-right:104px; }
.browse-category-browser__shelf { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.browse-category-browser__shelf .browse-category-browser__object { padding:7px 7px 10px; border-radius:11px; gap:5px; }
.browse-category-browser__shelf .browse-category-browser__object img { margin-bottom:2px; }
.browse-category-browser__shelf .browse-category-browser__object strong { font-size:11px; line-height:1.4; }
.browse-category-browser__shelf .browse-category-browser__object > span { font-size:10px; }
@media(max-width:1400px) {
  .browse-category-browser__shelf { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .browse-category-browser__section h3 { font-size:14px; }
  .browse-category-browser__sort { max-width:112px; font-size:10px; }
}
.browse-category-browser__row {
  display:grid; grid-template-columns:36px minmax(0,1fr) auto 16px; align-items:center; gap:12px;
  width:100%; padding:17px 8px; border:0; border-bottom:1px solid var(--line);
  background:transparent; color:var(--ink); text-align:left; cursor:pointer;
}
.browse-category-browser__row:hover { background:var(--accent-soft); border-radius:10px; }
.browse-category-browser__letter {
  display:grid; place-items:center; height:36px; border-radius:10px;
  background:var(--raised); color:var(--dim); font:500 13px/1 var(--font);
}
.browse-category-browser__row strong { font:600 14px/1.35 var(--font); }
.browse-category-browser__row small { color:var(--dim); font:11px/1.4 var(--font); white-space:nowrap; }
.browse-category-browser__row > :last-child { color:var(--dim); }
.browse-categories[data-category-expanded] > .browse-category-browser { grid-column:1 / 3; background:var(--surface); }
.browse-categories[data-category-expanded] .browse-category-browser__head:not(:has(.browse-category-browser__back)) h2 { margin-right:140px; }
.browse-category-browser__head:has(.browse-category-browser__back) { padding-top:70px; }
.browse-categories[data-category-expanded] .browse-category-browser__shelf { grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:16px; }
.browse-category-browser__restore { position:absolute; top:20px; right:24px; padding:7px 12px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--ink); font:600 12px/1.4 var(--font); cursor:pointer; }
.browse-category-browser__restore[hidden] { display:none; }
.browse-categories[data-category-expanded] > .browse-center-frame { visibility:hidden; pointer-events:none; }
body[data-view="browse"]:has(.browse-categories[data-category-expanded]) #command:not([data-free="true"]):not([data-seat]) { left:0; right:30%; bottom:38px; visibility:visible; pointer-events:auto; }
.browse-categories[data-category-expanded] .browse-category-browser__list,
.browse-categories[data-category-expanded] .browse-category-browser__grid { padding-bottom:160px; }
/* The feed dots / heart / share / Next row belongs to the centre feed; it has
   no referent while a category grid covers that feed. */
body[data-view="browse"]:has(.browse-categories[data-category-expanded]) .browse-command-actions { display:none!important; }

.browse-category-browser__back {
  display:block; margin:0 0 24px; padding:0; border:0; background:none;
  color:var(--accent-ink); font:600 12px/1.4 var(--font); cursor:pointer;
}
.browse-category-browser__grid {
  display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
  gap:20px; align-content:start; padding:24px 24px 62px;
}
.browse-category-browser__object {
  min-width:0; display:flex; flex-direction:column; gap:7px; padding:12px 12px 16px;
  border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--ink);
  text-align:left; cursor:pointer; transition:border-color .15s,background .15s;
}
.browse-category-browser__object:hover { border-color:var(--accent-ink); background:var(--accent-soft); }
.browse-category-browser__object img { width:100%; aspect-ratio:1; object-fit:contain; margin-bottom:8px; border-radius:10px; background:var(--raised); }
/* A preview that has not resolved yet reads as loading, not broken. */
.browse-category-browser__object img:not([src]),
.browse-category-preview:not([src]) {
  background:linear-gradient(100deg,var(--raised) 40%,color-mix(in srgb,var(--ink) 6%,var(--raised)) 50%,var(--raised) 60%) var(--raised);
  background-size:200% 100%;
  animation:browse-thumb-loading 1.4s ease-in-out infinite;
}
@keyframes browse-thumb-loading { from { background-position:120% 0; } to { background-position:-80% 0; } }
@media(prefers-reduced-motion:reduce) {
  .browse-category-browser__object img:not([src]),
  .browse-category-preview:not([src]) { animation:none; }
}
.browse-category-browser__object strong { font:600 14px/1.4 var(--font); }
.browse-category-browser__object > span { color:var(--dim); font:11px/1.4 var(--font); }
.browse-category-browser button:focus-visible { outline:2px solid var(--accent-ink); outline-offset:-2px; border-radius:10px; }
.browse-categories[data-left-collapsed="true"] > .browse-category-browser { visibility:hidden; pointer-events:none; }
@media(max-width:1100px) {
  .browse-category-browser__list { padding-inline:8px; }
  .browse-category-browser__row { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .browse-category-browser__row > :is(.browse-category-browser__letter,:last-child) { display:none; }
  .browse-category-browser__grid { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px; padding:16px; }
}

/* Keep the hive module available while removing its corner entry point. */
body[data-view="browse"] .honeycomb-launcher { display:none!important; }
.browse-category-browser__filters { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 14px; text-align:left; }
.browse-category-browser__filters button { border:1px solid var(--line); border-radius:999px; padding:6px 10px; background:var(--surface); color:var(--dim); font:550 11px/1.4 var(--font); cursor:pointer; white-space:nowrap; }
.browse-category-browser__filters button:hover { color:var(--ink); background:var(--raised); }
.browse-category-browser__filters button[aria-pressed="true"] { color:var(--accent-ink); border-color:var(--accent-ink); background:var(--accent-soft); }
.browse-category-browser__filters button:focus-visible { outline:2px solid var(--accent-ink); outline-offset:2px; }
.browse-category-browser > .browse-category-browser__filters { flex:none; margin:0; padding:14px 18px; border-bottom:1px solid var(--line); }
.browse-category-browser__empty { grid-column:1/-1; margin:0; padding:18px 12px; color:var(--dim); font:12px/1.6 var(--font); }

.browse-center-stage > .browse-center-title { position:absolute; top:24px; left:24px; right:24px; z-index:5; color:var(--ink); font:650 22px/1.3 var(--font); letter-spacing:-.025em; pointer-events:none; }

/* The shared assistant stays available across Browse panel arrangements. */
body[data-view="browse"] #command { visibility:visible; opacity:1; pointer-events:auto; }

.browse-category-card { position:relative; min-width:0; }
.browse-category-card > .browse-category-browser__object { width:100%; height:100%; }
.browse-category-card__actions { position:absolute; top:10px; right:10px; display:flex; gap:5px; opacity:0; pointer-events:none; }
.browse-category-card:is(:hover,:focus-within,[data-in-cart]) .browse-category-card__actions { opacity:1; pointer-events:auto; }
.browse-category-card__actions button { display:grid; place-items:center; width:30px; height:30px; padding:6px; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:var(--surface); cursor:pointer; box-shadow:var(--shadow-sm); }
.browse-category-card__actions svg { width:16px; height:16px; }
.browse-category-card__actions button[aria-pressed="true"] { color:var(--accent-ink); border-color:var(--accent-ink); background:var(--accent-soft); }
.browse-category-card__actions [data-card-favorite][aria-pressed="true"] svg { fill:currentColor; }
.browse-category-card[data-in-cart] > .browse-category-browser__object { border-color:var(--accent-ink); box-shadow:inset 0 0 0 1px var(--accent-ink); }
.browse-category-card__actions button:focus-visible { outline:2px solid var(--accent-ink); outline-offset:2px; }
@media(hover:none) { .browse-category-card__actions { opacity:1; pointer-events:auto; } }

.browse-center-offer > .browse-center-title { display:block; margin-bottom:8px; font:650 20px/1.3 var(--font); color:var(--ink); }
.browse-categories[data-creation-canvas]:not([data-reconstruction]) > :not(.browse-center-frame) { display:none!important; }
.browse-categories[data-creation-canvas]:not([data-reconstruction]) > .browse-center-frame { grid-column:1/-1!important; visibility:visible!important; pointer-events:auto!important; background:var(--surface); position:relative; }
.browse-categories[data-creation-canvas] .browse-center-frame > :not(.browse-creation-back):not(.center-upload):not(.creation-demo) { visibility:hidden; pointer-events:none; }
.browse-creation-back { position:absolute; top:20px; left:24px; z-index:6; padding:9px 14px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--ink); cursor:pointer; font:600 12px/1.4 var(--font); }
.browse-creation-back[hidden] { display:none; }
body:has(.browse-categories[data-creation-canvas]:not([data-reconstruction])) #command:not([data-free="true"]):not([data-seat]) { left:0!important; right:0!important; bottom:38px; }
body:has(.browse-categories[data-creation-canvas]) .browse-command-actions { display:none!important; }

.browse-category-browser__sort-label { font:500 11px/1.4 var(--font); white-space:nowrap; pointer-events:none; }

.browse-center-product > [data-browse-edit] { border:1px solid var(--line); border-radius:999px; padding:7px 14px; background:var(--surface); cursor:pointer; }
.browse-center-sizing { width:280px; max-width:100%; box-sizing:border-box; padding:14px; margin:10px auto 0; border:1px solid var(--line); border-radius:14px; background:var(--surface); box-shadow:var(--shadow-lg); text-align:left; }
.browse-center-sizing[hidden] { display:none; }
.browse-center-sizing label { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.browse-center-sizing input[type="number"] { width:85px; padding:6px; border:1px solid var(--line); border-radius:6px; color:var(--ink); background:var(--surface); }
.browse-center-sizing input[type="range"] { width:100%; margin:14px 0 4px; accent-color:var(--accent); }
.browse-center-sizing p { font-size:11px; color:var(--dim); margin:4px 0 10px; }
.browse-center-sizing output { display:block; font-size:11px; margin-bottom:10px; }
.browse-center-sizing button { border:1px solid var(--line); border-radius:8px; padding:5px 9px; background:var(--surface); color:var(--ink); cursor:pointer; }

.browse-location-prompt { display:none!important; }
.browse-center-product > [data-browse-analytics] { border:1px solid var(--line); border-radius:999px; padding:7px 14px; background:var(--surface); color:var(--ink); cursor:pointer; }
.browse-center-product > [data-browse-analytics][aria-expanded="true"] { color:var(--accent-ink); border-color:var(--accent-ink); }
.browse-categories[data-review-expanded] > .browse-center-frame { grid-column:1/3; visibility:visible; pointer-events:auto; }
.browse-categories[data-review-expanded] > :is(.browse-category-browser,.browse-side-face--left,.browse-category-bank--left) { display:none!important; }
.browse-review-sheet { position:absolute; z-index:20; bottom:110px; left:24px; right:24px; height:var(--review-sheet-height,260px); max-height:70%; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-lg); animation:review-sheet-rise .22s ease-out; }
.browse-review-sheet[hidden] { display:none; }
.browse-review-sheet > header { position:relative; display:flex; justify-content:space-between; align-items:center; padding:22px 18px 10px; gap:12px; font:600 14px/1.4 var(--font); }
.browse-review-sheet__grip { position:absolute; top:0; left:calc(50% - 30px); width:60px; height:20px; border:0; background:transparent; cursor:ns-resize; touch-action:none; }
.browse-review-sheet__grip span { display:block; width:30px; height:3px; margin:auto; background:var(--dim); border-radius:4px; }
.browse-review-sheet [data-close-reviews] { border:0; background:transparent; color:var(--ink); font-size:22px; cursor:pointer; }
.browse-review-sheet__body { min-height:0; overflow:auto; padding:8px 18px 18px; font:13px/1.6 var(--font); color:var(--dim); }
.browse-review-sheet article { padding:12px 0; border-bottom:1px solid var(--line); }
.browse-review-sheet article strong { color:var(--ink); }
.browse-review-sheet article > small { display:block; margin-top:1px; color:var(--dim); font:11px/1.4 var(--font); }
.browse-review-sheet__label { margin:10px 0 2px; color:var(--ink); font:650 11px/1.4 var(--font); text-transform:uppercase; letter-spacing:.07em; }

/* Seeded analytics strip at the top of the sheet. */
.browse-analytics-strip { display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; padding:4px 0 12px; border-bottom:1px solid var(--line); }
.browse-analytics-strip > div { box-sizing:border-box; min-width:96px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; background:var(--raised); display:grid; gap:2px; align-content:center; }
.browse-analytics-strip b { font:650 16px/1.2 var(--font); color:var(--ink); }
.browse-analytics-strip small { color:var(--dim); font:11px/1.3 var(--font); }
.browse-analytics-spark-wrap { flex:1 1 180px; min-width:150px; }
.browse-analytics-spark { display:block; width:100%; height:36px; }
.browse-analytics-spark polyline { fill:none; stroke:var(--accent-ink); stroke-width:2; vector-effect:non-scaling-stroke; stroke-linejoin:round; }
.browse-review-sheet :is(img,video) { max-width:240px; height:160px; object-fit:contain; border-radius:8px; margin:6px; }
body:has(.browse-categories[data-review-expanded]) #command:not([data-free="true"]):not([data-seat]) { left:0; right:30%; bottom:38px; }
@keyframes review-sheet-rise { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } }
@media(prefers-reduced-motion:reduce) { .browse-review-sheet { animation:none; } }

.browse-categories[data-review-expanded] .browse-center-stage { margin-bottom:calc(var(--review-sheet-height,260px) + 130px); }
.browse-categories[data-review-expanded] .browse-center-offer { bottom:30px; }
.browse-categories[data-review-expanded] .browse-feed-next { display:none; }

/* One continuous header surface; existing brand and account controls keep their handlers. */
.workspace-top-banner { position:fixed; top:0; left:0; right:0; height:68px; z-index:85; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:var(--shadow-sm); }
body[data-view="browse"] .browse-categories { padding-top:80px; }
.browse-category-browser__head:has(h2[hidden]):not(:has(.browse-category-browser__restore:not([hidden]))) { display:none; }
.browse-category-browser__head:has(h2[hidden]):has(.browse-category-browser__restore:not([hidden])) { min-height:56px; padding:0; }
.browse-category-browser__head .browse-category-browser__restore { top:12px; }
.browse-category-browser__head:has(.browse-category-browser__back) { padding-top:20px; }
@media(max-width:700px) {
  .workspace-top-banner { height:60px; }
  body[data-view="browse"] > .workspace-footer { top:14px; }
  body[data-view="browse"] .browse-categories { padding-top:70px; }
}

.browse-object-header { position:absolute; top:0; left:0; right:0; padding:20px 24px 14px; z-index:5; pointer-events:none; }
.browse-build-back { display:none; position:absolute; top:16px; right:16px; z-index:6; width:36px; height:36px; align-items:center; justify-content:center; padding:8px; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); cursor:pointer; opacity:0; pointer-events:none; }
[data-build-expanded] .browse-build-back { display:flex; }
[data-build-expanded] .browse-center-frame:hover .browse-build-back,
[data-build-expanded] .browse-build-back:focus-visible { opacity:1; pointer-events:auto; }
[data-build-expanded] .browse-object-header { padding-right:64px; }
.browse-build-back svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.browse-build-back:hover { color:var(--accent-ink); }
.browse-build-back:focus-visible { outline:2px solid var(--accent-ink); outline-offset:3px; }
@media(hover:none) { [data-build-expanded] .browse-build-back { opacity:1; pointer-events:auto; } }
.browse-object-header > .browse-center-title { display:block; position:static; margin:4px 0 0; font:650 18px/1.35 var(--font); color:var(--ink); }
/* The model can drift behind the heading; a light frost keeps it legible. */
.browse-object-header > .browse-side__eyebrow,
.browse-object-header > .browse-object-heading-row {
  width:max-content; max-width:100%; box-sizing:border-box;
  padding:3px 10px; margin-left:-10px; border-radius:10px;
  background:color-mix(in srgb,var(--stage) 78%,transparent);
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
}
.browse-build-location-row { display:flex; align-items:flex-start; flex-wrap:wrap; gap:10px; margin-top:4px; }
.browse-build-location-row .browse-side__title { margin-right:auto; }
[data-find-printers] { border:1px solid var(--line); border-radius:999px; padding:6px 10px; background:var(--surface); color:var(--accent-ink); font:550 11px/1.4 var(--font); cursor:pointer; }
[data-find-printers]:disabled { opacity:.6; cursor:wait; }
.browse-location-status { display:block; color:var(--dim); font:11px/1.4 var(--font); }
.browse-location-status:empty { display:none; }

/* The source PNG is the dark-theme wordmark (silver "3D", gold "hive"). Light
   theme darkens the "3D" half to ink; dark theme shows it as authored. */
#workspaceBrand .banner-wordmark-gold { clip-path:inset(0 0 0 44%); }
#workspaceBrand .banner-wordmark-ink { clip-path:inset(0 54% 0 0); filter:brightness(.12) contrast(1.22); }
:root[data-theme="dark"] #workspaceBrand .banner-wordmark-ink { filter:none; }

/* Shared header baseline across the three columns. */
body[data-view="browse"] .browse-side-face--right > [data-build-head] { padding-top:0; }
body[data-view="browse"] .browse-side-face--right > [data-build-head] > .browse-side__head { padding:20px 24px 14px; }
.browse-object-heading-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:4px; }
.browse-object-heading-row > .browse-center-title { display:block; margin:0; font:650 18px/1.35 var(--font); color:var(--ink); }
.browse-object-heading-row > .browse-center-rating { flex:none; font:600 12px/1.4 var(--font); }
.browse-build-location-row .browse-side__title { margin-top:0; margin-bottom:0; font:650 18px/1.35 var(--font); }
.browse-category-card__actions [data-card-favorite][aria-pressed="true"],
.browse-command-actions [data-browse-heart][aria-pressed="true"] { color:var(--favorite); border-color:var(--favorite); background:var(--favorite-soft); }
.browse-category-card__actions [data-card-favorite][aria-pressed="true"] svg,
.browse-command-actions [data-browse-heart][aria-pressed="true"] svg { fill:currentColor; }
body[data-view="browse"] .browse-side-face--right > [data-build-body]:has(.browse-cart-rows:not([hidden])) { grid-template-rows:minmax(0,1fr) auto; }
.browse-cart-rows[hidden] { display:none; }
.browse-cart-rows { padding:12px; border:1px solid var(--line); border-radius:16px; background:var(--surface); }
.browse-cart-rows > strong { font:650 13px/1.4 var(--font); }
.browse-cart-rows__list { max-height:140px; overflow:auto; margin:8px 0; }
.browse-cart-rows__item { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; padding:10px 6px; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--ink); text-align:left; cursor:pointer; font:12px/1.4 var(--font); }
.browse-cart-rows__item > strong { white-space:nowrap; color:var(--accent-ink); font-size:11px; }
.browse-cart-rows__item:hover { background:var(--accent-soft); }

/* Compact Browse heading without the divider or reserved blank height. */
.browse-category-browser > .browse-category-browser__filters { padding-top:6px; padding-bottom:6px; }
#commandAdd:not([data-send="true"]) { width:auto; flex:0 0 auto; padding:0 12px; border-radius:999px; }
#commandAdd > .ico-attach { white-space:nowrap; font:600 12px/1.4 var(--font); }

.browse-build__summary > .browse-cart-rows { margin:10px 0 12px; padding:10px; box-shadow:none; }

#commandHistory { display:none!important; }
/* Checkout keeps the native cart and billing form inside the Browse layout. */
body[data-browse-inline-checkout] .browse-categories { grid-template-columns:minmax(0,40%) minmax(0,60%); }
body[data-browse-inline-checkout] .browse-categories > :not(.browse-center-frame) { display:none!important; }
body[data-browse-inline-checkout] .browse-categories > .browse-center-frame { grid-column:1; visibility:visible!important; pointer-events:auto!important; }
body[data-browse-inline-checkout] .browse-center-stage { flex:none; height:35vh; margin-bottom:0; }
body[data-browse-inline-checkout] .browse-center-offer,
body[data-browse-inline-checkout] .browse-feed-next,
body[data-browse-inline-checkout] .browse-command-actions { display:none!important; }
body[data-browse-inline-checkout] .build-checkout-overlay { inset:80px 12px 110px; padding:0; background:transparent; backdrop-filter:none; -webkit-backdrop-filter:none; pointer-events:none; z-index:80; }
body[data-browse-inline-checkout] .build-checkout-dialog { width:100%; height:100%; max-height:none; border:0; border-radius:0; background:transparent!important; box-shadow:none!important; pointer-events:none; }
body[data-browse-inline-checkout] .build-checkout-dialog__head { position:absolute; top:0; left:40%; right:0; z-index:2; min-height:86px; box-sizing:border-box; background:var(--surface); pointer-events:auto; border-radius:16px 16px 0 0; }
body[data-browse-inline-checkout] .build-checkout-form { height:100%; grid-template-columns:minmax(0,40%) minmax(0,60%); background:transparent; }
body[data-browse-inline-checkout] .build-checkout-order { margin-top:35vh; margin-right:12px; border:1px solid var(--line); border-radius:16px; pointer-events:auto; }
body[data-browse-inline-checkout] .build-checkout-details { padding-top:112px; pointer-events:auto; border:1px solid var(--line); border-radius:16px; }
body[data-browse-inline-checkout] #command { display:none!important; }
@media(max-width:700px) {
  body[data-browse-inline-checkout] .build-checkout-overlay { inset:70px 8px 110px; }
  body[data-browse-inline-checkout] .build-checkout-form { display:block; overflow:auto; }
  body[data-browse-inline-checkout] .build-checkout-dialog__head { position:relative; left:0; }
  body[data-browse-inline-checkout] .build-checkout-order { margin:0 0 10px; }
  body[data-browse-inline-checkout] .build-checkout-details { padding-top:16px; overflow:visible; }
}

body[data-browse-inline-checkout] .browse-center-stage { margin-top:76px; height:calc(35vh - 76px); }
body[data-browse-inline-checkout] .browse-object-header { top:-76px; }

/* Soft light sweep on the two primary Browse actions — one pass on hover,
   never an ambient loop. */
#commandAdd:not([data-send="true"]),
.browse-build__actions button[data-build-checkout] { position:relative; overflow:hidden; isolation:isolate; }
#commandAdd:not([data-send="true"])::after,
.browse-build__actions button[data-build-checkout]::after {
  content:""; position:absolute; inset:-30% auto -30% -65%; width:45%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.65),transparent);
  transform:skewX(-18deg); pointer-events:none; opacity:0;
}
#commandAdd:not([data-send="true"]):hover::after,
.browse-build__actions button[data-build-checkout]:hover::after {
  animation:browse-action-shimmer .8s ease-out;
}
@keyframes browse-action-shimmer {
  0% { left:-65%; opacity:0; }
  20% { opacity:1; }
  100% { left:130%; opacity:0; }
}
.browse-command-actions .browse-feed-next { margin:0; }
@media (prefers-reduced-motion:reduce) {
  #commandAdd::after, .browse-build__actions button[data-build-checkout]::after { animation:none; display:none; }
}
.browse-command-actions > .browse-feed-next {
  position:static; left:auto; bottom:auto; transform:none; z-index:auto;
  flex:0 0 auto; max-width:min(190px,35vw); height:34px; margin:0;
  padding:6px 12px; background:var(--surface); color:var(--ink);
}

/* A gentle lift suggests that each Browse section can open. */
body[data-view="browse"] .browse-categories > :is(.browse-category-browser,.browse-center-frame,.browse-side-face--right) {
  outline:1px solid transparent;
  outline-offset:-1px;
  translate:0 0;
  transition:background-color .26s ease,box-shadow .26s ease,translate .26s cubic-bezier(.2,.8,.2,1);
}
.browse-category-browser__head h2::after,
.browse-object-heading-row::after,
.browse-build-location-row::after {
  content:"↗"; display:inline-block; margin-left:10px; flex:none;
  color:var(--accent-ink); font:500 19px/1 var(--font);
  opacity:0; transform:translate(-4px,4px) scale(.85);
  transition:opacity .2s ease,transform .3s cubic-bezier(.2,.8,.2,1);
  pointer-events:none;
}
@media(hover:hover) and (pointer:fine) {
  body[data-view="browse"] .browse-categories:not([data-section-selected]) > :is(.browse-category-browser,.browse-center-frame,.browse-side-face--right):hover {
    background-color:color-mix(in srgb,var(--surface) 94%,var(--ink) 6%);
    translate:0 -3px;
    box-shadow:0 12px 28px -12px color-mix(in srgb,var(--ink) 28%,transparent),0 3px 8px -4px color-mix(in srgb,var(--ink) 18%,transparent);
  }
  .browse-category-browser:hover .browse-category-browser__head h2::after,
  .browse-center-frame:hover .browse-object-heading-row::after,
  .browse-side-face--right:hover .browse-build-location-row::after {
    opacity:1; transform:translate(0,0) scale(1);
  }
}
body[data-view="browse"] .browse-categories > :is(.browse-category-browser,.browse-center-frame,.browse-side-face--right):has(:focus-visible) {
  outline-color:var(--accent-ink);
}
.browse-category-browser:has(:focus-visible) .browse-category-browser__head h2::after,
.browse-center-frame:has(:focus-visible) .browse-object-heading-row::after,
.browse-side-face--right:has(:focus-visible) .browse-build-location-row::after {
  opacity:1; transform:none;
}
@media(prefers-reduced-motion:reduce) {
  body[data-view="browse"] .browse-categories > :is(.browse-category-browser,.browse-center-frame,.browse-side-face--right):is(:hover,:not(:hover)) { translate:none; }
  body[data-view="browse"] .browse-categories > :is(.browse-category-browser,.browse-center-frame,.browse-side-face--right),
  .browse-category-browser__head h2::after,.browse-object-heading-row::after,.browse-build-location-row::after { transition:none; transform:none; }
}
:root[data-reduce-motion="true"] body[data-view="browse"] .browse-categories > :is(.browse-category-browser,.browse-center-frame,.browse-side-face--right):is(:hover,:not(:hover)) { translate:none; }
:root[data-reduce-motion="true"] body[data-view="browse"] .browse-categories > :is(.browse-category-browser,.browse-center-frame,.browse-side-face--right),
:root[data-reduce-motion="true"] :is(.browse-category-browser__head h2,.browse-object-heading-row,.browse-build-location-row)::after { transition:none; transform:none; }

/* Give the selected object's offer breathing room beneath the model, and a
   frost so the price stays legible when the model reaches behind it. */
.browse-center-offer { bottom:62px; }
.browse-center-offer > .browse-center-price {
  box-sizing:border-box; padding:8px 16px; border-radius:14px;
  background:color-mix(in srgb,var(--stage) 80%,transparent);
  backdrop-filter:blur(9px); -webkit-backdrop-filter:blur(9px);
}
.browse-center-price-line { display:flex; align-items:center; justify-content:center; gap:8px; }
.browse-center-price-line > strong { font-size:16px; font-weight:650; }
.browse-price-badges { display:inline-flex; align-items:center; gap:5px; font-size:15px; }
.browse-price-badges:empty { display:none; }
.browse-center-product { background:transparent; box-shadow:none; padding:8px 0; }
.browse-center-product > :is([data-browse-edit],[data-browse-analytics]) { display:inline-flex; align-items:center; justify-content:center; gap:7px; }
.browse-center-product > button > svg { width:15px; height:15px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.browse-center-product > [data-browse-style] { display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); border-radius:999px; padding:7px 14px; background:var(--surface); color:var(--ink); cursor:pointer; }

/* The native selection owns the highlight, including the initial shop. */
body[data-view="browse"] .browse-build__shops button[aria-pressed="true"] {
  border:2px solid var(--accent-ink);
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-ink) 12%,transparent);
}
body[data-view="browse"] .browse-side-face--right [data-build-summary]:has(.browse-build__total) {
  border:2px solid var(--accent-ink);
}

/* Checkout fills the remaining window with clearly separated sections. */
body[data-browse-inline-checkout] .build-checkout-order > .build-checkout-order__items {
  flex:none;
  overflow:visible;
}
.browse-category-browser__search-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 24px; border-bottom:1px solid var(--line); color:var(--dim); font:500 12px/1.4 var(--font); }
.browse-category-browser__search-summary > span { min-width:0; overflow-wrap:anywhere; }
.browse-category-browser__search-summary button { flex:none; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--ink); padding:6px 10px; cursor:pointer; font:inherit; }
.browse-category-browser__search-summary button:focus-visible { outline:2px solid var(--accent-ink); outline-offset:2px; }
.browse-category-browser__search-grid { grid-template-columns:repeat(auto-fill,minmax(170px,1fr)); gap:16px; }
.browse-category-browser__search-grid > .browse-category-browser__empty { grid-column:1/-1; }
body[data-browse-inline-checkout] .build-checkout-details > .build-checkout-order__costs {
  margin-top:auto;
  flex:none;
}
body[data-browse-inline-checkout] .build-checkout-details > .build-checkout-order__total {
  flex:none;
}
body[data-browse-inline-checkout] .build-checkout-order > .build-checkout-recommendations {
  flex:none;
}
body[data-browse-inline-checkout] .build-checkout-overlay { bottom:12px; }
body[data-browse-inline-checkout] .build-checkout-dialog {
  --checkout-border:color-mix(in srgb,var(--ink) 24%,var(--surface));
}
body[data-browse-inline-checkout] :is(.build-checkout-order,.build-checkout-details) {
  box-sizing:border-box; border:1px solid var(--checkout-border);
  border-radius:16px;
  padding-bottom:22px;
}
body[data-browse-inline-checkout] .build-checkout-dialog__head {
  border:1px solid var(--checkout-border); border-bottom:1px solid var(--checkout-border);
}
body[data-browse-inline-checkout] :is(.build-checkout-section,.build-checkout-express,.build-checkout-recommendations,.build-checkout-order__item,.build-checkout-order__location) {
  border:1px solid color-mix(in srgb,var(--ink) 28%,var(--surface));
  box-shadow:0 2px 5px rgba(0,0,0,.035);
}
.build-checkout-order__item { cursor:pointer; }
.build-checkout-order__preview { border:0; padding:0; background:transparent; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.build-checkout-order__preview:focus-visible { outline:2px solid var(--accent-ink); outline-offset:4px; border-radius:3px; }
body[data-browse-inline-checkout] .build-checkout-order__item[data-preview-selected] { border-color:var(--accent-ink); box-shadow:inset 0 0 0 1px var(--accent-ink); }
@media(max-width:700px) {
  body[data-browse-inline-checkout] .build-checkout-overlay { bottom:12px; }
  body[data-browse-inline-checkout] .build-checkout-order { padding-bottom:22px; border-bottom:1px solid var(--checkout-border); border-radius:16px; }
  body[data-browse-inline-checkout] .build-checkout-details { min-height:calc(100dvh - 70px); }
}

/* ── Narrow windows: the three desktop tracks become one scrolling column.
   Object stage first, then the Build panel, then the category directory.
   Each section keeps a viewport-relative height and scrolls internally. ── */
@media (max-width:760px) {
  body[data-view="browse"] .browse-categories {
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:none;
    grid-auto-rows:auto;
    row-gap:12px;
    overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain;
    padding-inline:8px; padding-bottom:150px;
  }
  body[data-view="browse"] .browse-categories > .browse-center-frame {
    grid-column:1 !important; grid-row:auto !important; order:1;
    height:56vh; min-height:340px; flex:none; margin-bottom:0;
  }
  body[data-view="browse"] .browse-categories > .browse-side-face--right {
    grid-column:1 !important; grid-row:auto !important; order:2;
    height:60vh; min-height:430px; margin-bottom:0;
  }
  /* An inert (hidden) bank still reserves its grid row; drop it from flow. */
  body[data-view="browse"] .browse-categories > .browse-category-bank[inert] { display:none; }
  body[data-view="browse"] .browse-categories > :is(.browse-category-browser,.browse-side-face--left,.browse-category-bank--left,.browse-category-bank--right) {
    grid-column:1 !important; grid-row:auto !important; order:3;
    height:70vh; min-height:320px; margin-bottom:0;
  }
  /* Expanded category, review, and creation states own the whole column. */
  body[data-view="browse"] .browse-categories[data-category-expanded] > .browse-category-browser { grid-column:1 !important; order:0; height:auto; min-height:70vh; }
  .browse-categories[data-category-expanded] > .browse-center-frame { display:none; }
  .browse-categories[data-review-expanded] > .browse-center-frame { grid-column:1 !important; height:auto; min-height:88vh; }
  .browse-categories[data-creation-canvas] > .browse-center-frame { grid-column:1 !important; height:auto; min-height:80vh; }
  body[data-browse-inline-checkout] .browse-categories { overflow-y:hidden; }
  /* The floating command bar spans the window instead of the centre track. */
  body[data-view="browse"] #command:not([data-free="true"]):not([data-seat]) { left:8px; right:8px; }
  /* Floating feed controls read as chrome, not debris, over scrolled content. */
  body[data-view="browse"] .browse-command-actions {
    padding:4px 8px; border-radius:999px;
    background:color-mix(in srgb,var(--surface) 84%,transparent);
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
    box-shadow:var(--shadow-sm);
  }
  body:has(.browse-categories[data-category-expanded]) #command:not([data-free="true"]):not([data-seat]),
  body:has(.browse-categories[data-review-expanded]) #command:not([data-free="true"]):not([data-seat]) { right:8px; }
}

/* Keep the Browse title and filter header transparent. */
body[data-view="browse"] .browse-categories[data-category-expanded] > .browse-category-browser > :is(.browse-category-browser__head,.browse-category-browser__filters) {
  background:transparent;
}
.browse-build-expand { padding:0; border:0; background:transparent; color:var(--dim); font:inherit; cursor:pointer; text-align:left; }
.browse-build-expand:focus-visible { outline:2px solid var(--accent-ink); outline-offset:5px; border-radius:3px; }
.browse-build-expand span { display:inline-block; transition:transform .2s ease; }
[data-build-expanded] .browse-build-expand span { transform:rotate(180deg); }
body[data-view="browse"] .browse-categories[data-build-expanded] > .browse-category-browser { display:none; }
@media(min-width:761px) {
  body[data-view="browse"] .browse-categories[data-build-expanded] { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }
  body[data-view="browse"] .browse-categories[data-build-expanded] > .browse-center-frame { grid-column:1; visibility:visible; pointer-events:auto; }
  body[data-view="browse"] .browse-categories[data-build-expanded] > .browse-side-face--right { grid-column:2 / 4; }
  body[data-view="browse"] .browse-categories[data-build-expanded] > .browse-side-face--right > [data-build-body] { width:min(100%,410px); margin-left:auto; box-sizing:border-box; padding-inline:12px; }
  body[data-view="browse"]:has(.browse-categories[data-build-expanded]) #command:not([data-free="true"]):not([data-seat]) { left:24px; right:auto; width:calc(33.3333% - 42px); min-width:0; max-width:calc(33.3333% - 42px); bottom:38px; }
}

/* Build and Browse use the same compact eyebrow typography. */
body[data-view="browse"] .browse-build-expand {
  font:600 10px/1.4 var(--font); letter-spacing:.12em; text-transform:uppercase;
}
.browse-center-colors { justify-content:center; flex-wrap:wrap; margin:12px auto 0; padding:10px 14px; width:max-content; max-width:100%; box-sizing:border-box; border-radius:999px; background:var(--surface); }
.browse-center-colors[hidden] { display:none; }
.browse-center-colors:has(.browse-center-part-colors:not([hidden])) { border-radius:18px; width:310px; }
.browse-center-part-colors { flex-basis:100%; display:grid; gap:8px; margin-top:8px; }
.browse-center-part-colors[hidden] { display:none; }
.browse-center-part-color { display:grid; gap:5px; font:600 12px/1.4 var(--font); color:var(--ink); }
.browse-center-part-swatches { display:flex; flex-wrap:wrap; gap:5px; }
.browse-center-part-swatch { width:18px; height:18px; padding:0; border:2px solid var(--surface); border-radius:999px; background:var(--swatch,#fff); box-shadow:0 0 0 1px color-mix(in srgb,var(--ink) 18%,transparent); cursor:pointer; }
.browse-center-part-swatch[aria-pressed="true"] { box-shadow:0 0 0 2px var(--accent-ink); }
.shop-sort-icon { width:13px; height:13px; flex:none; }
:is([data-build-sort], [data-build-shop-sort]) { display:inline-flex; align-items:center; justify-content:center; gap:5px; }
.browse-category-expand-toggle { position:absolute; top:18px; right:18px; width:32px; height:32px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--ink); font-size:20px; opacity:0; pointer-events:none; transition:opacity .15s; }
.browse-category-browser:hover .browse-category-expand-toggle,
.browse-category-browser:focus-within .browse-category-expand-toggle { opacity:1; pointer-events:auto; }
@media(hover:none) { .browse-category-expand-toggle { opacity:1; pointer-events:auto; } }
/* Analytics opens two side panels around the live object. */
.browse-categories[data-review-expanded] { grid-template-columns:minmax(240px,27%) minmax(0,46%) minmax(250px,27%); }
.browse-categories[data-review-expanded] > .browse-center-frame { grid-column:2; grid-row:1; }
.browse-categories[data-review-expanded] > .browse-side-face--right { display:none!important; }
.browse-categories[data-review-expanded] .browse-center-stage { margin-bottom:130px; }
.browse-categories[data-review-expanded] > .browse-review-sheet { position:relative; inset:auto; grid-column:1; grid-row:1; width:auto; height:auto; max-height:none; min-height:0; margin:12px 0 90px; }
.browse-analytics-side { grid-column:3; grid-row:1; min-height:0; overflow:auto; display:flex; flex-direction:column; gap:14px; margin:12px 0 90px; color:var(--ink); }
.browse-analytics-side[hidden] { display:none; }
.browse-analytics-side > section { padding:16px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:var(--shadow-lg); }
.browse-analytics-side h3 { margin:0 0 12px; font:650 15px/1.4 var(--font); }
.browse-analytics-side p,.browse-analytics-side a { font:12px/1.5 var(--font); }
.browse-analytics-note { color:var(--dim); }
.browse-analytics-player { aspect-ratio:16/9; overflow:hidden; border-radius:10px; background:#111; }
.browse-analytics-player :is(button,iframe) { width:100%; height:100%; border:0; padding:0; position:relative; display:block; }
.browse-analytics-player img { width:100%; height:100%; object-fit:cover; }
.browse-analytics-player span { position:absolute; inset:auto 0 0; padding:10px; color:#fff; background:#000b; }
.browse-analytics-metrics .browse-analytics-strip { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); border:0; }
.browse-analytics-metrics .browse-analytics-strip > div { min-width:0; }
.browse-analytics-metrics .browse-analytics-spark-wrap { grid-column:1/-1; }
body:has(.browse-categories[data-review-expanded]) #command:not([data-free="true"]):not([data-seat]) { left:calc(27% + 18px); right:calc(27% + 18px); width:auto; }
@media(max-width:760px) {
  .browse-categories[data-review-expanded] { display:flex; flex-direction:column; overflow:auto; }
  .browse-categories[data-review-expanded] > .browse-center-frame { order:0; min-height:65vh; flex:none; }
  .browse-categories[data-review-expanded] > .browse-review-sheet { order:1; margin:10px; min-height:260px; max-height:60vh; flex:none; }
  .browse-analytics-side { order:2; margin:10px 10px 110px; overflow:visible; flex:none; }
  body:has(.browse-categories[data-review-expanded]) #command:not([data-free="true"]):not([data-seat]) { left:8px; right:8px; }
}
.browse-categories > :is(.browse-review-sheet,.browse-analytics-side) { pointer-events:auto; position:relative; z-index:20; }
/* Unified shop comparison: list and selected quote share one card. */
body[data-view="browse"] .browse-side-face--right > [data-build-body] { grid-template-rows:minmax(0,1fr); }
body[data-view="browse"] .browse-side-face--right [data-side-card="shops"] { padding:0; gap:0; background:var(--mat-panel); color:var(--ink); border-color:var(--line); }
body[data-view="browse"] [data-side-card="shops"] > .browse-side__card-head { margin:0; padding:16px 16px 12px; cursor:default; }
body[data-view="browse"] [data-side-card="shops"] > .browse-side__card-head h3 { font-size:16px; }
.browse-compare__filters { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:0 16px 12px; }
.browse-compare__filters .browse-build__sorts { margin:0; gap:6px; }
.browse-compare__filters .browse-build__sorts button { padding:6px 10px; border-color:var(--line); }
.browse-compare__filters .browse-build__sorts button[aria-pressed="true"] { background:var(--accent-ink); color:var(--on-accent-ink); }
.browse-compare__filters .shop-sort-icon { width:13px; height:13px; }
.browse-compare__filters [data-build-sort="speed"] svg,.browse-compare__filters [data-build-sort="nearest"] svg { display:none; }
.browse-compare__filters .browse-build__pickup { margin:0 0 0 auto; white-space:nowrap; font-weight:600; }
.browse-compare__filters input { accent-color:var(--accent-ink); }
.browse-compare__columns,body[data-view="browse"] [data-side-card="shops"] .browse-build__shops button { display:grid; grid-template-columns:minmax(159px,1fr) 64px 48px 72px; gap:8px; align-items:center; }
.browse-compare__columns { padding:10px 16px; border-top:1px solid var(--line-soft); color:var(--dim); font:10px/1.2 var(--font); text-transform:uppercase; letter-spacing:.06em; }
.browse-compare__columns span:not(:first-child) { text-align:center; }
.browse-compare__columns span:last-child { text-align:right; }
body[data-view="browse"] [data-side-card="shops"] .browse-build__shops { display:block; max-height:var(--browse-shop-list-height,330px); scrollbar-color:var(--dim) var(--slot); scrollbar-width:auto; }
body[data-view="browse"] [data-side-card="shops"] .browse-build__shops button { height:55px; padding:8px 16px; border:0; border-bottom:1px solid var(--line-soft); border-radius:0; color:var(--ink); }
body[data-view="browse"] [data-side-card="shops"] .browse-build__shops button[aria-pressed="true"] { background:var(--accent-soft); }
body[data-view="browse"] [data-side-card="shops"] .browse-build__shops button:hover { background:var(--accent-soft); }
.browse-compare__metric { text-align:center; font:12px/1.3 var(--font); }
body[data-view="browse"] [data-side-card="shops"] .browse-build__shop-name strong { font-size:13px; }
body[data-view="browse"] [data-side-card="shops"] .browse-build__shop-quote b { font-size:14px; }
body[data-view="browse"] [data-side-card="shops"] .browse-compare__best { color:var(--accent-ink); }
body[data-view="browse"] .browse-side-face--right [data-side-card="shops"] [data-build-summary] { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:14px 16px; border:0; border-top:1px solid var(--line); border-radius:0; background:var(--mat-raised); }
.browse-compare__selection { flex:1; min-width:120px; }
.browse-compare__selection > p { margin:0 0 3px; color:var(--dim); font:12px/1.3 var(--font); }
body[data-view="browse"] [data-side-card="shops"] .browse-build__actions { margin:0; flex:none; }
body[data-view="browse"] [data-side-card="shops"] .browse-build__actions button { min-height:42px; padding:10px 16px; border:1px solid var(--line); border-radius:11px; background:var(--mat-panel); color:var(--ink); }
body[data-view="browse"] [data-side-card="shops"] .browse-build__actions [data-build-checkout] { background:#e9a020; color:#16181c; border-color:#e9a020; }
body[data-view="browse"] [data-side-card="shops"] .browse-build__actions [data-build-checkout]:hover,
body[data-view="browse"] [data-side-card="shops"] .browse-build__actions [data-build-checkout]:focus-visible { background:#d18f16; border-color:#d18f16; }
body[data-view="browse"] [data-side-card="shops"] .browse-side__status:empty { display:none; }
body[data-view="browse"] [data-side-card="shops"] .browse-cart-rows { flex-basis:100%; order:2; max-height:90px; overflow:auto; }
@media(max-width:1100px) { .browse-compare__columns,body[data-view="browse"] [data-side-card="shops"] .browse-build__shops button { grid-template-columns:minmax(118px,1fr) 48px 36px 60px; gap:4px; padding-left:9px; padding-right:9px; } }
body[data-view="browse"] .browse-side-face--right > [data-build-body] { min-width:0; width:100%; box-sizing:border-box; padding-left:8px; padding-right:8px; }
body[data-view="browse"] .browse-side-face--right [data-side-card="shops"] { min-width:0; container-type:inline-size; }
.browse-compare__filters > .browse-build__sorts { flex-wrap:wrap; min-width:0; }
@container (max-width:440px) {
  .browse-compare__columns,body[data-view="browse"] [data-side-card="shops"] .browse-build__shops button { grid-template-columns:minmax(95px,1fr) 43px 31px 55px; gap:3px; padding-left:7px; padding-right:7px; }
  .browse-compare__columns { font-size:8px; letter-spacing:0; }
  .browse-compare__metric { font-size:10px; }
  body[data-view="browse"] [data-side-card="shops"] .browse-build__shop-name strong { font-size:11px; }
  body[data-view="browse"] [data-side-card="shops"] .browse-build__shop-quote b { font-size:12px; }
  body[data-view="browse"] [data-side-card="shops"] .browse-build__shop-name small,body[data-view="browse"] [data-side-card="shops"] .browse-build__shop-quote small { font-size:9px; }
  body[data-view="browse"] [data-side-card="shops"] > .browse-side__card-head { flex-wrap:wrap; gap:3px; padding:12px 10px 8px; }
  .browse-compare__filters { padding:0 10px 10px; }
  .browse-compare__filters .browse-build__sorts { gap:4px; }
  .browse-compare__filters .browse-build__sorts button { font-size:10px; padding:5px 6px; }
  body[data-view="browse"] [data-side-card="shops"] .browse-build__actions { width:100%; }
  body[data-view="browse"] [data-side-card="shops"] .browse-build__actions button { flex:1; }
}

/* Decorative checkout symbol follows the same root banner state as the header. */
.browse-compare__checkout-icon::before { content:"🛒"; }
:root[data-header-banner="boo"] .browse-compare__checkout-icon::before { content:"🎃"; }
:root[data-header-banner="xmas"] .browse-compare__checkout-icon::before { content:"☃️"; }
:root[data-header-banner="thanks"] .browse-compare__checkout-icon::before { content:"🦃"; }
:root[data-header-banner="money"] .browse-compare__checkout-icon::before { content:"💰"; }
:root[data-header-banner="night"] .browse-compare__checkout-icon::before { content:"🌙"; }
:root[data-header-banner="house"] .browse-compare__checkout-icon::before { content:"🏠"; }
:root[data-header-banner="family"] .browse-compare__checkout-icon::before { content:"👪"; }
:root[data-header-banner="hive"] .browse-compare__checkout-icon::before { content:"🐝"; }
:root[data-header-banner="reprint"] .browse-compare__checkout-icon::before { content:"🔧"; }
.browse-compare__walk { display:inline-block; width:14px; height:14px; vertical-align:-2px; flex:none; }
body[data-view="browse"] [data-side-card="shops"] .browse-build__actions button { display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; font-family:var(--font); }
body[data-view="browse"] [data-side-card="shops"] .browse-build__actions [data-build-checkout] { min-width:150px; padding-inline:24px; flex:1.5; }
body[data-view="browse"] [data-side-card="shops"] button:focus-visible { outline:2px solid var(--accent-ink); outline-offset:-3px; }

/* Custom card: the first tile of every Browse section previews several
   personalizable designs at once (assets/custom-kits.js fills the collage). */
.browse-custom-kit { position:relative; }
.browse-custom-kit__collage {
  position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px;
  width:100%; aspect-ratio:1; margin-bottom:2px; padding:3px; box-sizing:border-box; overflow:hidden;
  border-radius:10px; background:color-mix(in srgb,var(--accent-ink) 7%,var(--raised));
}
.browse-category-browser__object .browse-custom-kit__collage img {
  width:100%; height:100%; aspect-ratio:auto; min-height:0; margin:0; border-radius:7px;
  object-fit:contain; background:var(--raised);
}
.browse-custom-kit__collage img[hidden] { display:none; }
.browse-custom-kit[data-custom-kit-count="3"] .browse-custom-kit__collage img:nth-child(3) { grid-column:1 / -1; }
.browse-custom-kit[data-custom-kit-count="2"] .browse-custom-kit__collage { grid-template-columns:1fr; }
.browse-custom-kit__badge {
  position:absolute; left:8px; bottom:8px; padding:2px 8px; border-radius:999px;
  background:var(--accent-ink); color:var(--on-accent-ink); font:650 10px/1.6 var(--font); letter-spacing:.02em;
  box-shadow:var(--shadow-sm); pointer-events:none;
}
.browse-custom-kit > strong { display:flex; align-items:center; gap:6px; }
.browse-custom-kit-card > .browse-custom-kit { border-style:dashed; border-color:color-mix(in srgb,var(--accent-ink) 45%,var(--line)); }
.browse-custom-kit-card > .browse-custom-kit:hover { border-style:solid; }

/* Keep each rating beside its shop name at every panel width. */
.browse-compare__shop-title { display:flex; align-items:center; gap:7px; min-width:0; }
.browse-compare__rating { flex:none; color:var(--accent-ink); font:600 11px/1.35 var(--font); white-space:nowrap; }
.browse-compare__shop-title strong { min-width:0; }

/* Custom designs. A Custom card widens the browser into its section's gallery
   (data-custom-panel="gallery" rides on the expanded state). Editing lays the
   controls, the 3D preview and the print actions over the three tracks while
   the catalog panels stay laid out, hidden, underneath; leaving restores them
   untouched. Inner styling is in custom-kits.css. */
.browse-custom-panel,.browse-custom-stage { display:none; }
body[data-view="browse"] .browse-categories[data-custom-panel="edit"] > :is(.browse-custom-panel,.browse-custom-stage) { display:flex; }
.browse-custom-panel {
  grid-row:1; z-index:6; flex-direction:column; min-width:0; min-height:0; margin-bottom:12px; overflow:hidden;
  border-radius:18px; box-sizing:border-box; container-type:inline-size; pointer-events:auto;
  background:var(--surface); color:var(--ink); box-shadow:0 20px 56px -30px rgba(30,64,175,.28);
}
.browse-custom-panel--controls { grid-column:1; }
.browse-custom-panel--print { grid-column:3; }
.browse-custom-stage {
  grid-column:2; grid-row:1; z-index:6; position:relative; flex-direction:column; min-width:0; min-height:0;
  margin-bottom:12px; overflow:hidden; border-radius:18px; box-sizing:border-box; pointer-events:auto; color:var(--ink);
  background:radial-gradient(110% 80% at 50% 30%,color-mix(in srgb,var(--raised) 60%,var(--surface)) 0%,color-mix(in srgb,var(--surface) 88%,transparent) 72%);
}
.browse-categories[data-custom-panel="edit"] > :is(.browse-category-browser,.browse-center-frame,.browse-side-face,.browse-category-bank) { visibility:hidden!important; pointer-events:none!important; }
body[data-view="browse"]:has(.browse-categories[data-custom-panel]) .browse-command-actions { display:none!important; }
.browse-categories[data-custom-panel] .browse-category-browser__head h2::after { content:none!important; }
@media (max-width:760px) {
  body[data-view="browse"] .browse-categories[data-custom-panel="edit"] > .browse-custom-stage { grid-column:1!important; grid-row:auto!important; order:0; height:52vh; min-height:320px; margin-bottom:0; }
  body[data-view="browse"] .browse-categories[data-custom-panel="edit"] > .browse-custom-panel--controls { grid-column:1!important; grid-row:auto!important; order:1; height:auto; min-height:0; margin-bottom:0; overflow:visible; }
  body[data-view="browse"] .browse-categories[data-custom-panel="edit"] > .browse-custom-panel--print { grid-column:1!important; grid-row:auto!important; order:2; height:auto; margin-bottom:0; }
  /* One scrolling column: the panels take their natural height instead of
     squeezing a scrolling form into an auto-sized grid row. */
  body[data-view="browse"] .view[data-view="browse"] .pfocus__object-space > .browse-categories[data-custom-panel="edit"] { display:flex!important; flex-direction:column; row-gap:12px; }
  body[data-view="browse"] .browse-categories[data-custom-panel="edit"] > * { flex:none; }
  body[data-view="browse"] .browse-categories[data-custom-panel="edit"] > .browse-custom-panel { display:block!important; overflow:visible; container-type:normal; }
  body[data-view="browse"] .browse-categories[data-custom-panel="edit"] > :is(.browse-category-browser,.browse-center-frame,.browse-side-face,.browse-category-bank) { display:none!important; }
  body[data-view="browse"]:has(.browse-categories[data-custom-panel]) #command:not([data-free="true"]):not([data-seat]) { left:8px!important; right:8px!important; }
}

/* A print shop's store ("See store" on a map business card) in the left panel:
   the shop's lettered mark, name, place and printer head the shop's items. */
.browse-store__head { padding-bottom:12px; border-bottom:1px solid var(--line); }
.browse-store__head.browse-category-browser__head:has(.browse-category-browser__back) { padding-top:20px; }
.browse-store__head .browse-category-browser__back { margin-bottom:14px; }
.browse-store__head h2::after { content:none!important; }
.browse-store__brand { display:flex; align-items:center; gap:12px; min-width:0; }
.browse-store__logo {
  flex:none; display:grid; place-items:center; width:48px; height:48px; border-radius:14px;
  background:hsl(var(--store-hue,210) 62% 46%); color:#fff; font:700 17px/1 var(--font); letter-spacing:.02em;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,#000 12%,transparent);
}
.browse-store__copy { display:flex; flex-direction:column; min-width:0; }
.browse-store__copy .browse-side__eyebrow { display:block; }
.browse-store__head .browse-store__name { margin:2px 0 0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.browse-store__sub { color:var(--dim); font:12px/1.45 var(--font); }
.browse-store__machine { display:flex; align-items:center; gap:10px; margin-top:12px; padding:8px 10px; border:1px solid var(--line); border-radius:12px; background:var(--raised); }
.browse-store__machine img { flex:none; width:38px; height:38px; object-fit:contain; border-radius:8px; background:var(--surface); }
.browse-store__machine > span { display:flex; flex-direction:column; min-width:0; }
.browse-store__machine strong { overflow:hidden; font:600 12px/1.4 var(--font); text-overflow:ellipsis; white-space:nowrap; }
.browse-store__machine > span > span { color:var(--dim); font:11px/1.4 var(--font); font-variant-numeric:tabular-nums; }
.browse-store__stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; margin:10px 0 0; }
.browse-store__stats > div { min-width:0; padding:6px 8px; border:1px solid var(--line); border-radius:10px; }
.browse-store__stats dt { color:var(--dim); font:10px/1.35 var(--font); }
.browse-store__stats dd { margin:0; overflow:hidden; font:600 12px/1.4 var(--font); text-overflow:ellipsis; white-space:nowrap; font-variant-numeric:tabular-nums; }
.browse-store__list .browse-category-browser__section { border-bottom:0; }
.browse-store__list .browse-category-browser__section h3 { color:var(--dim); font:600 12px/1.4 var(--font); }
