/* The same ink, paper, type and cutout photos at every screen size. */
html,body { height:100%; overflow:hidden; overscroll-behavior:none; background:#fff; }
body { position:fixed; inset:0; width:100%; height:100svh; height:100dvh; }
.catalog-filter-options { display:flex; flex-wrap:wrap; gap:0 12px; min-width:0; }
.site-preview { width:100%; max-width:1440px; margin-inline:auto; }
.mobile-shop { height:100%; padding-top:env(safe-area-inset-top,0px); padding-left:env(safe-area-inset-left,0px); padding-right:env(safe-area-inset-right,0px); }
.site-preview { height:100%; overflow:hidden; }
.shop-content { overscroll-behavior-y:contain; touch-action:pan-y pinch-zoom; -webkit-overflow-scrolling:touch; }
.shop-header,.section-nav,.bottom-nav { touch-action:pinch-zoom; }
.shop-dialog { overscroll-behavior:contain; }
.stock-indicator { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px; width:fit-content; max-width:100%; margin:0 0 18px; padding:5px 0 5px 10px; border-left:2px solid var(--blue); font-size:13px; line-height:1.4; }
.stock-label { color:#666; font-size:11px; letter-spacing:.5px; }
.stock-indicator b { font-weight:700; }
.stock-indicator.is-empty { border-color:var(--red); }
.inner-view p.cart-stock { color:#555; font-size:13px; }
.cart-item { overflow-wrap:anywhere; }
.variant-stock-note { font-size:13px; color:#555; }
.variant-row:not(.is-unlimited) .variant-stock-note { display:none; }
.variant-row input:disabled { background:#e9e9e9; color:#666; }
.copy-code { display:block; width:100%; min-height:100px; padding:12px; font-size:16px; overflow-wrap:anywhere; }
.stock-row span { min-width:0; overflow-wrap:anywhere; }
.stock-row b { flex:none; }
.shop-dialog.product-dialog { max-width:440px; }
#points-log { max-width:840px; }
.points-log-entry { overflow-wrap:anywhere; }
.points-log-entry .admin-card-split { flex-wrap:wrap; gap:8px 20px; }

@media (max-width:899px) {
  /* Lower the controls by removing extra row space; keep the full Home inset. */
  .bottom-nav { min-height:0; }
  .bottom-nav a { min-height:56px; justify-content:flex-end; gap:4px; padding-block:6px; }
  .shop-toast { bottom:calc(68px + env(safe-area-inset-bottom,0px)); }
}
@media (max-width:899px) and (max-height:480px) {
  .bottom-nav a { min-height:52px; }
}

@media (min-width:600px) {
  .points-log-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
  .shop-header { padding:20px 28px; }
  .section-nav,.category-strip { padding-inline:28px; }
  .product-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 28px; padding:0 28px; }
  .merch-product,.merch-product:last-child { display:flex; flex-direction:column; min-width:0; margin:0; padding:0 0 26px; }
  .merch-product>.product-gallery { flex:none; }
  .merch-product .merch-art { aspect-ratio:1 / 1.08; }
  .merch-product .product-gallery[data-family="other"] .merch-art { aspect-ratio:1 / 1.08; }
  .merch-product .merch-buy { margin-top:auto; }
  .merch-kind { margin-bottom:12px; }
  .catalog-tools { padding:18px 28px 6px; }
  .inner-view { padding:32px 28px 0; }
  .shop-footer { margin-inline:28px; padding-block:32px; }
  .shop-dialog { width:calc(100% - 48px); max-width:560px; padding:34px 28px 28px; }
}

@media (min-width:900px) {
  .mobile-shop { grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto minmax(0,1fr); }
  .shop-header { grid-column:1; grid-row:1; justify-content:flex-start; padding:22px 36px; }
  .shop-brand { max-width:354px; }
  .bottom-nav { grid-column:2; grid-row:1; min-width:390px; padding:0 28px 0 0; border-top:0; border-bottom:var(--nav-line-width) solid var(--ink); }
  .bottom-nav a { gap:8px; min-width:86px; }
  .bottom-nav a:hover { background:#f1f1f1; }
  .section-nav { grid-column:1 / -1; grid-row:2; grid-template-columns:repeat(4,minmax(0,1fr)); padding-inline:36px; }
  .shop-content { grid-column:1 / -1; grid-row:3; }
  .category-strip { padding-inline:36px; }
  html[data-typography] .category-strip button { flex:1; }
  .catalog-tools { padding:20px 36px 8px; }
  .product-list { padding:0 36px; gap:32px; }
  .inner-view { width:100%; max-width:832px; margin-inline:auto; padding:40px 36px 0; }
  .inner-view:is([data-view="admin"],[data-view="stands"]) { max-width:none; }
  .inner-view[data-view="stands"] { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-content:start; gap:32px; }
  .booth-card,.booth-card+.booth-card { margin:0; border-top:3px solid var(--ink); padding-top:20px; }
  html[data-typography] .inner-view h1 { font-size:42px; margin-bottom:30px; }
  .inner-view[data-view="account"],.inner-view[data-view="qr"],.inner-view[data-view="staff"] { max-width:660px; }
  .cart-item { grid-template-columns:112px minmax(0,1fr); gap:24px; padding-block:24px; }
  .cart-item-image { width:112px; }
  .shop-footer { margin:36px 36px 0; }
  .shop-footer-logo { width:220px; flex-basis:220px; }
  .shop-toast { bottom:24px; width:min(calc(100% - 48px),480px); }
  .admin-intro { padding:28px; }
  .admin-stats { gap:16px; }
  .admin-stats span { padding:20px; }
  .admin-section-select { max-width:360px; }
  .admin-quick-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
  .admin-quick { min-height:140px; padding:20px; }
  #admin-panel:is([data-section="products"],[data-section="tasks"],[data-section="booths"]) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; }
  #admin-panel>.admin-card { display:flex; flex-direction:column; min-width:0; }
  #admin-panel>.admin-card>.text-button:last-child { margin-top:auto; }
  #admin-panel>.admin-section-heading,#admin-panel>.exports,#admin-panel>.local-note { grid-column:1 / -1; }
  #admin-panel>form { max-width:688px; }
  #admin-user-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 32px; }
  .admin-product-top { grid-template-columns:112px minmax(0,1fr); gap:20px; }
  .admin-product-top img,.admin-product-placeholder { width:112px; height:112px; }
  .shop-dialog.product-dialog { width:calc(100% - 64px); max-width:920px; }
  .product-dialog #dialog-content { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:0 32px; align-items:start; }
  .product-dialog #dialog-content>.eyebrow,.product-dialog #dialog-content>h2 { grid-column:1 / -1; }
  .product-dialog #dialog-content>.product-gallery { grid-column:1; grid-row:3 / span 6; position:sticky; top:0; }
  .product-dialog #dialog-content>:not(.product-gallery):not(h2):not(.eyebrow) { grid-column:2; }
  .product-dialog .form-field:first-child { margin-top:0; }
  .shop-dialog.product-preview { max-width:600px; }
  .product-preview #dialog-content { display:block; }
  .product-preview #dialog-content>.product-gallery { position:relative; }
  .photo-zoom { width:min(calc(100vw - 64px),1000px); height:calc(100dvh - 48px); max-height:1100px; }
}

@media (min-width:1100px) {
  .product-list { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (min-width:1441px) {
  body { background:#e4e6e9; }
  .site-preview { border-inline:1px solid #c9cbcf; }
}

/* Keep listed prices visible without presenting unavailable items as purchasable. */
.merch-price.is-unavailable { color:#666; }
.merch-price.is-unavailable del { position:relative; display:inline-flex; align-items:center; gap:6px; text-decoration:none; white-space:nowrap; }
.merch-price.is-unavailable del::after { content:""; position:absolute; inset-inline:0; top:calc(50% - .1em); height:2px; transform:translateY(-50%); background:var(--red); pointer-events:none; }
