/* Small shop controls, drawn as additions to the collector's notebook. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.store-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 28px; border-bottom: 1px solid #c2c9b53d; padding-bottom: 12px; }
.store-filters { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.store-filters button { position: relative; min-height: 44px; padding: 8px 2px; font-size: .8125rem; color: #d0d8cd; }
.store-filters button::after { content: ''; position: absolute; height: 1px; background: #dfcba4; inset: auto 2px 4px; transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.store-filters button[aria-pressed='true'] { color: #f8ecd3; }
.store-filters button[aria-pressed='true']::after, .store-filters button:hover::after { transform: scaleX(1); }
.selection-toggle, .saved-dock { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; font-size: .8125rem; }
.selection-toggle { padding: 6px 0 6px 16px; }
.selection-toggle .icon, .saved-dock .icon { width: 19px; height: 23px; }
.saved-count { font: italic 1rem/1 var(--serif); font-variant-numeric: tabular-nums; min-width: 26px; height: 26px; display: inline-grid; place-items: center; border: 1px solid #c2c9b560; border-radius: 50%; }
.shop-result-count { margin-top: 14px; font-size: .6875rem; color: #d0d8cd; }
.collection-grid { margin-top: 36px; }
.collection-grid > .sourcing-card { grid-column: 3; }
.collection-grid:not([data-active-filter='all']) .second-object { margin-top: 0; }
.object-shop-actions { display: flex; gap: 8px; margin: 12px 4px -7px; padding-top: 10px; border-top: 1px solid #a5aa9759; }
.save-object { position: relative; display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid #7a887c66; transition: background-color .2s,scale .2s; }
.save-object .icon { width: 20px; height: 22px; transition: scale .3s cubic-bezier(.2,0,0,1),opacity .3s,filter .3s; }
.save-object .save-check { position: absolute; scale: .25; opacity: 0; filter: blur(4px); }
.save-object[aria-pressed='true'] { background: #d8dfd2; }
.save-object[aria-pressed='true'] .save-check { scale: 1; opacity: 1; filter: blur(0); }
.save-object[aria-pressed='true'] .save-outline { scale: .25; opacity: 0; filter: blur(4px); }
.save-object:hover { background: #dbe0d3; }
.save-object:active, .object-inquiry:active, .saved-dock:active { scale: .96; }
.object-inquiry { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex: 1; min-width: 0; min-height: 42px; padding: 4px 2px 4px 9px; font-size: .8125rem; transition: scale .2s; }
.object-inquiry .icon { width: 25px; height: 20px; }
.object-inquiry:hover span { text-decoration: underline; text-underline-offset: 5px; }
.catalog-empty { grid-column: 1/3; min-height: 350px; border: 1px dashed #c2c9b557; padding: 64px 8%; text-align: center; }
.catalog-empty > .icon { width: 32px; height: 40px; color: #dfcba4; }
.catalog-empty h3 { font-size: 1.65rem; margin-top: 22px; }
.catalog-empty p { color: #d0d8cd; font-size: .875rem; margin-top: 15px; max-width: 360px; margin-inline: auto; }
.catalog-empty .text-link { margin-top: 20px; }
.detail-save { width: 100%; display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; border: 1px solid #83938388; margin: -5px 0 24px; font-size: .8125rem; padding: 8px 12px; transition: background-color .2s; }
.detail-save .icon { width: 18px; height: 23px; }
.detail-save[aria-pressed='true'] { background: #d8dfd2; }
.saved-dock { position: fixed; right: 26px; bottom: max(22px,env(safe-area-inset-bottom)); z-index: 9; padding: 10px 17px; border: 1px solid #b3a387; background: #f6eddb var(--texture) center/650px; color: var(--ink); box-shadow: 1px 3px 5px #302b231f,3px 8px 20px #302b2326; transform: rotate(-2deg); transition: scale .2s,box-shadow .2s; }
.saved-dock::after { content: ''; inset: 4px; position: absolute; pointer-events: none; border: 1px solid #a7ad9259; }
.saved-dock .saved-count { border-color: #7a887c66; }
.saved-dock:hover { box-shadow: 1px 5px 8px #302b2326,3px 12px 23px #302b2326; }
body.dialog-open .saved-dock { display: none; }
.selection-dialog { width: 680px; outline: 1px solid #b4ac928f; outline-offset: -12px; }
.selection-content { padding: 48px 42px 32px; }
.selection-content > h2 { font-size: 2rem; line-height: 1.5; margin-top: 15px; }
.selection-intro { font-size: .875rem; line-height: 2; margin-top: 16px; }
.selection-items { padding: 0; margin: 25px 0; list-style: none; }
.selection-items li { display: grid; grid-template-columns: 80px minmax(0,1fr) 40px; gap: 18px; align-items: center; padding: 18px 0; border-top: 1px solid var(--line); }
.selection-items li:last-child { border-bottom: 1px solid var(--line); }
.selection-items img { width: 80px; height: 100px; object-fit: cover; box-shadow: 1px 3px 5px #342b2024; outline: 4px solid #f9f2e4; transform: rotate(-2deg); }
.selection-reference { font-size: .625rem; letter-spacing: .12em; color: var(--muted); }
.selection-items h3 { font-size: 1.125rem; line-height: 1.65; margin-top: 5px; }
.selection-status { font-size: .6875rem; color: var(--muted); margin-top: 6px; }
.selection-remove { width: 40px; height: 44px; display: grid; place-items: center; }
.selection-remove .icon { width: 20px; height: 20px; }
.selection-remove:hover { background: #dfd7c5; }
.selection-empty { text-align: center; padding: 34px 20px 29px; margin-top: 25px; border-block: 1px dashed var(--line); }
.selection-empty > .icon { width: 31px; height: 38px; opacity: .7; }
.selection-empty h3 { font-size: 1.5rem; margin-top: 17px; }
.selection-empty p { color: var(--muted); font-size: .875rem; line-height: 2; margin-top: 12px; }
.selection-empty .text-link { margin-top: 17px; }
.selection-actions { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.selection-actions .primary-button { width: 100%; }
.selection-clear { min-height: 44px; padding: 8px 12px; font-size: .8125rem; text-decoration: underline; text-underline-offset: 5px; }
.selection-privacy { font-size: .6875rem; color: var(--muted); line-height: 1.9; margin-top: 22px; }
html[lang='fr'] .selection-content > h2 { font-size: 2.75rem; }
html[lang='fr'] .selection-items h3 { font-size: 1.5rem; line-height: 1.15; }
html[lang='fr'] .selection-empty h3 { font-size: 2rem; }
@media (max-width:850px) {
  .collection-grid > .sourcing-card { grid-column: 1/-1; }
  .store-toolbar { flex-wrap: wrap; gap: 8px 20px; }
  .selection-toggle { padding-left: 0; }
  .catalog-empty { grid-column: 1/-1; }
}
@media (max-width:600px) {
  .store-toolbar { margin-top: 22px; }
  .store-filters { gap: 3px 19px; width: 100%; }
  .store-filters button { font-size: .75rem; }
  .selection-toggle { font-size: .75rem; gap: 9px; }
  .shop-result-count { font-size: .625rem; margin-top: 10px; }
  .object-shop-actions { margin-inline: 0; gap: 4px; }
  .save-object { flex-basis: 40px; width: 40px; height: 44px; }
  .object-inquiry { font-size: .75rem; padding-left: 4px; gap: 4px; }
  .object-inquiry .icon { width: 17px; }
  .catalog-empty { padding: 38px 24px; min-height: 0; }
  .catalog-empty h3 { font-size: 1.5rem; }
  .saved-dock { right: 17px; bottom: max(18px,env(safe-area-inset-bottom)); padding: 8px 13px; font-size: .75rem; gap: 8px; }
  .saved-dock .saved-count { min-width: 24px; height: 24px; }
  .selection-content { padding: 47px 26px 27px; }
  .selection-content > h2 { font-size: 1.75rem; }
  .selection-items li { grid-template-columns: 58px minmax(0,1fr) 40px; gap: 13px; }
  .selection-items img { width: 58px; height: 78px; }
  .selection-items h3 { font-size: 1rem; }
  .selection-intro { font-size: .8125rem; }
  .selection-empty { padding-inline: 0; }
  .selection-empty h3 { font-size: 1.25rem; }
  .selection-empty p { font-size: .8125rem; }
  .selection-actions .primary-button { padding-inline: 13px; gap: 12px; font-size: .8125rem; }
  html[lang='fr'] .selection-content > h2 { font-size: 2.35rem; }
  html[lang='fr'] .selection-items h3 { font-size: 1.35rem; }
}
