/* v52.2 central server catalogue manager (?admin=1) */
.catalogue-login-dialog {
  position: fixed;
  z-index: 10000;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 1rem;
  color: var(--ink);
  background: rgba(12, 18, 14, 0.6);
  backdrop-filter: blur(6px);
}
.catalogue-login-dialog[hidden] { display: none; }
.catalogue-login-card {
  width: min(440px, calc(100vw - 2rem));
  display: grid;
  gap: 0.9rem;
  padding: 1.6rem;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 4px);
  background: var(--surface);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.3);
}
body.catalogue-login-active { overflow: hidden; }
.catalogue-login-card h2, .catalogue-login-card p { margin: 0; }
.catalogue-login-card > p { color: var(--muted); line-height: 1.5; }
.catalogue-login-card label { display: grid; gap: 0.35rem; color: var(--muted); font-size: 0.8rem; font-weight: 800; }
.catalogue-login-card input { width: 100%; padding: 0.7rem 0.75rem; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: var(--surface); font: inherit; }
.catalogue-login-card input:focus { outline: 2px solid color-mix(in srgb, var(--leaf) 55%, transparent); outline-offset: 1px; }
.catalogue-password-field { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
.catalogue-password-field input { border-radius: 9px 0 0 9px; }
.catalogue-password-toggle { min-width: 7rem; padding: 0.55rem 0.7rem; border: 1px solid var(--line); border-left: 0; border-radius: 0 9px 9px 0; color: var(--ink); background: color-mix(in srgb, var(--surface) 82%, var(--leaf) 18%); font: inherit; font-size: 0.75rem; font-weight: 850; cursor: pointer; }
.catalogue-password-toggle:focus-visible { outline: 2px solid color-mix(in srgb, var(--leaf) 55%, transparent); outline-offset: 1px; }
.catalogue-login-mark { width: 2.7rem; height: 2.7rem; display: grid; place-items: center; border-radius: 50%; color: var(--on-accent); background: var(--leaf-dark); font-size: 1.25rem; }
.catalogue-login-error { min-height: 1.25rem; color: #9c2f2f !important; font-size: 0.8rem; font-weight: 800; }
.catalog-manager-dialog {
  width: min(1760px, 98.5vw);
  max-width: none;
  height: min(1080px, 97vh);
  max-height: 97vh;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: calc(var(--radius) + 4px);
  color: var(--ink);
  background: var(--surface);
  box-shadow: 0 30px 100px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}
.catalog-manager-dialog::backdrop { background: rgba(12, 18, 14, 0.58); backdrop-filter: blur(5px); }
.catalog-manager-shell { height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.catalog-manager-header {
  display: flex; justify-content: space-between; gap: 1.5rem; align-items: flex-start;
  padding: 1.15rem 1.35rem; border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--surface) 92%, var(--leaf) 8%);
}
.catalog-manager-header h2 { margin: 0; font-size: clamp(1.35rem, 2vw, 2rem); }
.catalog-manager-header p { max-width: 900px; margin: 0.35rem 0 0; color: var(--muted); }
.catalog-manager-header small { display: block; margin-top: 0.3rem; color: var(--muted); }
.catalog-manager-title-row { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; }
.catalog-manager-source, .catalog-manager-count, .catalog-manager-user {
  display: inline-flex; align-items: center; min-height: 1.65rem; padding: 0.1rem 0.55rem;
  border: 1px solid var(--line); border-radius: 999px; font-size: 0.72rem; font-weight: 800;
  background: var(--surface); color: var(--muted);
}
.catalog-manager-source.is-draft { color: var(--on-accent); background: var(--leaf-dark); border-color: var(--leaf-dark); }
.catalog-manager-source.is-conflict { color: #fff; background: #9c3838; border-color: #9c3838; }
.catalog-manager-user { color: var(--leaf-dark); }
.catalog-manager-body { min-height: 0; display: grid; grid-template-columns: minmax(240px, 290px) minmax(0, 1fr); }
.catalog-manager-sidebar {
  min-height: 0; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); gap: 0.24rem;
  padding: 0.68rem 0.85rem 0.8rem; border-right: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 96%, var(--ink) 4%);
}
.catalog-manager-search input { width: 100%; min-height: 2.72rem; padding: 0.52rem 0.75rem; font-size: 1.13rem; font-weight: 600; line-height: 1.2; }
.catalog-manager-search input::placeholder { font-size: 1em; }
.catalog-manager-search input::-webkit-search-cancel-button { width: 1.6rem; height: 1.6rem; cursor: pointer; }
.catalog-manager-type-filter { display: grid; gap: 0.12rem; min-width: 0; color: var(--muted); font-size: 0.72rem; font-weight: 800; }
.catalog-manager-type-filter select { width: 100%; min-width: 0; min-height: 2.22rem; padding: 0.35rem 0.62rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface); font: inherit; font-size: 0.91rem; font-weight: 600; cursor: pointer; }
.catalog-manager-type-filter select:focus-visible { outline: 2px solid color-mix(in srgb, var(--leaf) 55%, transparent); outline-offset: 1px; }
.catalog-manager-list-count { margin: 0 0 0.1rem; color: var(--muted); font-size: 0.72rem; line-height: 1.25; font-weight: 650; }

.catalog-manager-list { min-height: 0; overflow: auto; display: grid; align-content: start; gap: 0.4rem; padding-right: 0.15rem; }
.catalog-manager-list-item {
  width: 100%; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 0.65rem; align-items: center;
  padding: 0.45rem; border: 1px solid transparent; border-radius: 10px; text-align: left;
  color: var(--ink); background: transparent; cursor: pointer;
}
.catalog-manager-list-item:hover { background: color-mix(in srgb, var(--surface) 82%, var(--leaf) 18%); }
.catalog-manager-list-item.is-active { border-color: var(--leaf); background: color-mix(in srgb, var(--surface) 76%, var(--leaf) 24%); }
.catalog-manager-list-item.is-pending-duplicate {
  border-color: #b87816;
  background: color-mix(in srgb, var(--surface) 70%, #ffd778 30%);
  box-shadow: inset 3px 0 0 #d89425;
}
.catalog-manager-pending-label {
  display: block;
  margin-bottom: 0.22rem;
  color: #7a4300;
  font-size: 0.67rem;
  font-weight: 900;
  letter-spacing: 0.035em;
  line-height: 1.2;
  text-transform: uppercase;
}
.catalog-manager-translation-warning {
  display: inline-flex;
  margin-bottom: 0.22rem;
  padding: 0.12rem 0.38rem;
  border: 1px solid #c77d20;
  border-radius: 999px;
  color: #733d00;
  background: #ffedc7;
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1.2;
}
.catalog-manager-list-thumb { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 8px; overflow: hidden; background: var(--surface); border: 1px solid var(--line); }
.catalog-manager-list-thumb img { width: 100%; height: 100%; object-fit: contain; }
.catalog-manager-list-item[data-cm-product-type="book"] .catalog-manager-list-thumb {
  height: auto;
  aspect-ratio: 958 / 1296;
  border-radius: 6px;
  background: color-mix(in srgb, var(--surface) 86%, #f4f0e8 14%);
}
.catalog-manager-list-item[data-cm-product-type="book"] .catalog-manager-list-thumb img { object-fit: contain !important; }
.catalog-manager-list-item strong, .catalog-manager-list-item small, .catalog-manager-list-item em { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalog-manager-list-item strong { font-size: 0.86rem; }
.catalog-manager-list-item small { margin-top: 0.15rem; color: var(--muted); font-size: 0.76rem; }
.catalog-manager-list-item em { margin-top: 0.15rem; color: var(--muted); font-size: 0.66rem; font-style: normal; opacity: 0.75; }
.catalog-manager-list-empty { color: var(--muted); text-align: center; }
.catalog-manager-editor { min-width: 0; min-height: 0; overflow: auto; padding: 0.8rem 1rem 1rem; }
.catalog-manager-editor-toolbar { position: sticky; z-index: 5; top: -1rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 0.75rem 1rem; margin: -0.8rem -1rem 0.65rem; padding: 0.6rem 1rem; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(10px); }
.catalog-manager-editor-toolbar-group { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; min-width: 0; }
.catalog-manager-editor-toolbar-group-primary { justify-content: flex-start; }
.catalog-manager-editor-toolbar-group-editor { justify-content: flex-end; margin-left: auto; }
.catalog-manager-empty { padding: 4rem 1rem; color: var(--muted); text-align: center; }
.catalog-manager-fieldset { min-width: 0; margin: 0; padding: 0.75rem; border: 1px solid var(--line); border-radius: var(--radius); }
.catalog-manager-fieldset legend { padding: 0 0.45rem; font-weight: 800; color: var(--ink); }

/* Books and mugs keep the full, lossless schema behind an optional detail view. */
#catalog-manager-form[data-product-view="book"]:not(.is-merch-details-open) [data-merch-optional="all"],
#catalog-manager-form[data-product-view="mug"]:not(.is-merch-details-open) [data-merch-optional="all"],
#catalog-manager-form[data-product-view="mug"]:not(.is-merch-details-open) [data-merch-optional="mug"] { display: none !important; }
#catalog-manager-form[data-product-view="book"]:not(.is-merch-details-open) [data-merch-optional="book-advanced"] { display: none !important; }
.catalog-manager-simple-details-toggle { margin-top: 0.55rem; min-height: 2.05rem; padding: 0.35rem 0.8rem; font-size: 0.78rem; }
.catalog-manager-simple-details-toggle[hidden] { display: none !important; }
#catalog-manager-form[data-product-view="book"]:not(.is-merch-details-open) .catalog-manager-variant,
#catalog-manager-form[data-product-view="mug"]:not(.is-merch-details-open) .catalog-manager-variant { grid-template-columns: minmax(6rem, 2fr) minmax(5rem, 1fr) minmax(7rem, 1.3fr) minmax(7rem, 1.35fr) 2rem; }
/* Books need one extra visible column for the signed-copy checkbox. */
#catalog-manager-form[data-product-view="book"]:not(.is-merch-details-open) .catalog-manager-variant { grid-template-columns: minmax(6rem, 1.8fr) minmax(5rem, .9fr) minmax(7rem, 1.2fr) minmax(7rem, 1.2fr) minmax(5.2rem, .9fr) 2rem; }
@media (max-width: 1199px) {
  #catalog-manager-form[data-product-view="book"]:not(.is-merch-details-open) .catalog-manager-variant,
  #catalog-manager-form[data-product-view="mug"]:not(.is-merch-details-open) .catalog-manager-variant { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 639px) {
  #catalog-manager-form[data-product-view="book"]:not(.is-merch-details-open) .catalog-manager-variant,
  #catalog-manager-form[data-product-view="mug"]:not(.is-merch-details-open) .catalog-manager-variant { grid-template-columns: minmax(0, 1fr); }
}

.catalog-manager-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.55rem 0.75rem; }
.catalog-manager-form-grid > label, .catalog-manager-image-fields > label, .catalog-manager-language-bar label, .catalog-manager-advanced label { display: grid; gap: 0.35rem; min-width: 0; color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.catalog-manager-form-grid input, .catalog-manager-form-grid select, .catalog-manager-form-grid textarea,
.catalog-manager-image-fields input, .catalog-manager-language-bar select {
  width: 100%; min-width: 0; padding: 0.5rem 0.6rem; border: 1px solid var(--line); border-radius: 8px;
  color: var(--ink); background: var(--surface); font: inherit;
}
.catalog-manager-form-grid textarea { resize: vertical; line-height: 1.45; }
.catalog-manager-form-grid input:focus, .catalog-manager-form-grid select:focus, .catalog-manager-form-grid textarea:focus,
.catalog-manager-image-fields input:focus, .catalog-manager-language-bar select:focus { outline: 2px solid color-mix(in srgb, var(--leaf) 55%, transparent); outline-offset: 1px; }
.catalog-manager-form-grid .catalog-manager-id-field {
  color: var(--muted);
  background: color-mix(in srgb, var(--surface) 78%, var(--line) 22%);
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  letter-spacing: 0.025em;
  cursor: default;
}
.catalog-manager-id-label small { color: var(--muted); font-size: 0.68rem; font-weight: 500; line-height: 1.35; }
.catalog-manager-form-grid .span-2 { grid-column: span 2; }
.catalog-manager-form-grid .span-3 { grid-column: 1 / -1; }
.catalog-manager-form-grid > .catalog-manager-choice-field,
.catalog-manager-subject-technique-stack > .catalog-manager-choice-field { display: grid; gap: 0.35rem; min-width: 0; color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.catalog-manager-price-stack,
.catalog-manager-subject-technique-stack { display: grid; gap: 0.28rem; min-width: 0; align-content: start; }
.catalog-manager-price-stack > label:first-child,
.catalog-manager-subject-technique-stack > label { display: grid; gap: 0.35rem; min-width: 0; color: var(--muted); font-size: 0.78rem; font-weight: 700; }
.catalog-manager-price-stack .catalog-manager-check { min-height: auto; margin: 0.05rem 0 0; align-self: start; }
.catalog-manager-subject-technique-stack > label { margin-top: 0.18rem; }
.catalog-manager-choice-dropdown { position: relative; min-width: 0; }
.catalog-manager-choice-dropdown summary { min-height: 2.2rem; display: flex; align-items: center; padding: 0.5rem 2rem 0.5rem 0.6rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface); cursor: pointer; font-weight: 500; list-style: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.catalog-manager-choice-dropdown summary::-webkit-details-marker { display: none; }
.catalog-manager-choice-dropdown summary::after { content: "▾"; position: absolute; right: 0.65rem; color: var(--muted); }
.catalog-manager-choice-dropdown[open] summary::after { content: "▴"; }
.catalog-manager-choice-menu { position: absolute; z-index: 20; top: calc(100% + 0.25rem); left: 0; right: 0; max-height: 230px; overflow: auto; display: grid; gap: 0.1rem; padding: 0.4rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 14px 40px rgba(0,0,0,.18); }
.catalog-manager-choice-menu label { display: flex; align-items: center; gap: 0.55rem; padding: 0.45rem 0.5rem; border-radius: 7px; color: var(--ink); font-size: 0.8rem; font-weight: 600; cursor: pointer; }
.catalog-manager-choice-menu label:hover { background: color-mix(in srgb, var(--surface) 78%, var(--leaf) 22%); }
.catalog-manager-choice-menu input { width: auto; margin: 0; }

@media (min-width: 1200px) {
  #catalog-manager-form { display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr); gap: 0.65rem; align-items: start; }
  .catalog-manager-image-section { grid-column: 1 / -1; grid-row: 1; }
  .catalog-manager-base-section { grid-column: 1; grid-row: 2; }
  .catalog-manager-language-section { grid-column: 2; grid-row: 2; }
  .catalog-manager-variant-section { grid-column: 1 / -1; grid-row: 3; }
  .catalog-manager-language-section .catalog-manager-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-manager-language-section textarea[name="description"] { min-height: 88px; height: auto; max-height: none; }
  .catalog-manager-language-section textarea[name="reference"] { min-height: 42px; height: 42px; }
  .catalog-manager-header { padding-top: 0.85rem; padding-bottom: 0.8rem; }
  .catalog-manager-header p { margin-top: 0.2rem; font-size: 0.86rem; }
  .catalog-manager-header small { display: none; }
  .catalog-manager-footer { padding-top: 0.65rem; padding-bottom: 0.65rem; }
}
.catalog-manager-check { display: flex !important; grid-auto-flow: column; justify-content: start; align-items: center; align-self: end; gap: 0.5rem !important; min-height: 2.55rem; }
.catalog-manager-check input { width: auto; }
.catalog-manager-file-button { justify-self: start; cursor: pointer; }
.catalog-manager-language-bar { display: flex; flex-wrap: wrap; justify-content: flex-start; align-items: end; gap: 0.55rem 0.8rem; margin-bottom: 0.8rem; }
.catalog-manager-language-bar label { min-width: 210px; }
.catalog-manager-translation-status { align-self: center; padding: 0.32rem 0.55rem; border-radius: 999px; color: var(--muted); background: color-mix(in srgb, var(--surface) 80%, var(--line) 20%); font-size: 0.7rem; font-weight: 900; }
.catalog-manager-translation-status.is-master { color: var(--on-accent); background: var(--leaf-dark); }
.catalog-manager-translation-status.is-current { color: #245b3b; background: #dceede; }
.catalog-manager-translation-status.is-stale { color: #7b4200; background: #ffedc7; }
.catalog-manager-advanced { border-top: 1px dashed var(--line); padding-top: 0.75rem; }
.catalog-manager-advanced summary { cursor: pointer; color: var(--muted); font-size: 0.78rem; font-weight: 800; }
.catalog-manager-advanced[open] { display: grid; gap: 0.75rem; }
.catalog-manager-export-settings small { font-weight: 400; line-height: 1.35; }
.catalog-manager-export-options { position: relative; }
.catalog-manager-export-options > summary { min-height: 2.35rem; display: inline-flex; align-items: center; padding: 0.5rem 0.75rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface); cursor: pointer; font-size: 0.8rem; font-weight: 800; list-style: none; }
.catalog-manager-export-options > summary::-webkit-details-marker { display: none; }
.catalog-manager-export-options > summary::after { content: " ▾"; margin-left: 0.35rem; color: var(--muted); }
.catalog-manager-export-options[open] > summary::after { content: " ▴"; }
.catalog-manager-export-options-panel { position: absolute; z-index: 30; left: 0; bottom: calc(100% + 0.5rem); width: min(620px, 80vw); display: grid; grid-template-columns: 180px minmax(300px, 1fr); gap: 0.65rem; padding: 0.75rem; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.catalog-manager-export-options-panel label { display: grid; gap: 0.3rem; min-width: 0; color: var(--muted); font-size: 0.74rem; font-weight: 700; }
.catalog-manager-export-options-panel input, .catalog-manager-export-options-panel select { width: 100%; min-width: 0; padding: 0.5rem 0.6rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface); font: inherit; }
.catalog-manager-export-options-panel .span-2 { grid-column: 1 / -1; }
.catalog-manager-export-options-panel small { font-weight: 400; line-height: 1.3; }
.catalog-manager-footer { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 0.9rem 1.2rem; border-top: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 94%, var(--leaf) 6%); }
.catalog-manager-footer-left, .catalog-manager-footer-right { display: flex; align-items: center; min-width: 0; }
.catalog-manager-footer-left { justify-content: flex-start; }
.catalog-manager-footer-right { justify-content: flex-end; }
.catalog-manager-reset-action { margin-left: 0.1rem; }
.catalog-manager-status { min-width: 220px; color: var(--leaf-dark); font-size: 0.82rem; font-weight: 800; text-align: right; }
.catalog-manager-status.is-error { color: #a52b2b; }
.button.danger { border-color: #9c3838; background: #9c3838; color: #fff; }
.button.danger-ghost { border-color: #b36d6d; color: #8d2e2e; background: transparent; }
.catalog-manager-field-help { margin: 0 0 0.75rem; color: var(--muted); font-size: 0.76rem; }
.catalog-manager-variant-list { margin-bottom: 0.75rem; }
.catalog-manager-variant-table { width: 100%; display: grid; gap: 0.42rem; min-width: 0; }
.catalog-manager-variant {
  display: grid;
  grid-template-columns: minmax(0,1.3fr) minmax(0,1fr) minmax(8.4rem,1.25fr) minmax(0,1.35fr) minmax(0,1.05fr) minmax(0,.72fr) minmax(0,.72fr) minmax(0,.95fr) minmax(0,1.35fr) 2rem;
  gap: 0.35rem;
  align-items: start;
  padding: 0.45rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--surface) 97%, var(--leaf) 3%);
}
.catalog-manager-variant-cell { display: grid; align-content: start; gap: 0.2rem; min-width: 0; }
.catalog-manager-variant-cell-label { display: block; min-height: 0.82rem; color: var(--muted); font-size: 0.61rem; font-weight: 900; line-height: 1.1; }
.catalog-manager-variant-cell > input,
.catalog-manager-variant-cell > select,
.catalog-manager-variant-stock-cell > input {
  width: 100%; min-width: 0; height: 2.15rem; min-height: 2.15rem; box-sizing: border-box; padding: 0.38rem 0.45rem; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--surface); font: inherit; font-size: 0.7rem;
}
.catalog-manager-variant-medium-cell select { font-size: 0.68rem; }
.catalog-manager-variant-stock-cell { grid-template-columns: minmax(0,1fr); align-content: start; }
.catalog-manager-variant-stock-cell > .catalog-manager-variant-cell-label { grid-column: 1 / -1; }
.catalog-manager-variant-stock-cell > input { grid-column: 1; }
.catalog-manager-variant-stock-cell > .catalog-manager-variant-mini-check { grid-column: 1; align-self: start; margin-top: 0.18rem; }
.catalog-manager-variant-options-cell { align-content: start; }
.catalog-manager-variant-options-checks { min-height: 2.15rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.55rem; }
.catalog-manager-variant-mini-check { display: flex; align-items: center; gap: 0.22rem; min-width: 0; color: var(--muted); font-size: 0.58rem; font-weight: 800; line-height: 1.05; }
.catalog-manager-variant-mini-check input { flex: 0 0 auto; margin: 0; }
.catalog-manager-variant-remove-cell { display: grid; place-items: end center; min-width: 0; padding-bottom: 0.05rem; }
.catalog-manager-variant-remove { width: 2rem; height: 2.15rem; min-height: 2.15rem; padding: 0; display: grid; place-items: center; font-size: 1rem; line-height: 1; }
#catalog-manager-add-variant { margin-top: 0.15rem; }
.catalog-import-dialog { width: min(1500px, 97vw); height: min(900px, 95vh); max-width: none; max-height: none; padding: 0; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: var(--surface); }
.catalog-import-dialog::backdrop { background: rgba(16, 22, 18, 0.66); }
.catalog-import-shell { height: 100%; display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; }
.catalog-import-start-dialog { width: min(620px, calc(100vw - 2rem)); max-width: none; padding: 0; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: var(--surface); }
.catalog-import-start-dialog::backdrop { background: rgba(16, 22, 18, 0.66); }
.catalog-import-start-card { display: grid; gap: 1rem; padding: 1.15rem; }
.catalog-import-start-card > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.catalog-import-start-card h2, .catalog-import-start-card p { margin: 0; }
.catalog-import-start-card header p { margin-top: 0.35rem; color: var(--muted); line-height: 1.45; }
.catalog-import-first-step { padding: 0.8rem 0.9rem; border-left: 4px solid var(--leaf); border-radius: 8px; color: var(--ink); background: color-mix(in srgb, var(--surface) 84%, var(--leaf) 16%); font-weight: 900; }
.catalog-import-start-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 0.55rem; }
.catalog-import-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.catalog-import-steps li { min-width: 0; display: grid; grid-template-columns: 1.65rem minmax(0, 1fr); align-items: center; gap: 0.4rem; padding: 0.45rem; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: var(--surface); font-size: 0.7rem; font-weight: 800; }
.catalog-import-steps li strong { width: 1.65rem; height: 1.65rem; display: grid; place-items: center; border-radius: 50%; color: var(--muted); background: color-mix(in srgb, var(--surface) 75%, var(--line) 25%); }
.catalog-import-steps li.is-active { border-color: var(--leaf); color: var(--ink); background: color-mix(in srgb, var(--surface) 84%, var(--leaf) 16%); }
.catalog-import-steps li.is-active strong, .catalog-import-steps li.is-done strong { color: var(--on-accent); background: var(--leaf-dark); }
.catalog-import-review-steps { padding: 0; border: 0; }
.catalog-import-header, .catalog-import-footer { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.48rem 0.75rem; border-bottom: 1px solid var(--line); }
.catalog-import-header { min-height: 3.35rem; }
.catalog-import-title-line { min-width: 0; display: flex; align-items: center; gap: 0.55rem; }
.catalog-import-title-icon { width: 1.75rem; height: 1.75rem; flex: 0 0 auto; display: grid; place-items: center; color: var(--leaf-dark); }
.catalog-import-title-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.catalog-import-header h2 { margin: 0; font-size: 1.12rem; white-space: nowrap; }
.catalog-import-help { position: relative; min-width: 0; }
.catalog-import-help > summary { min-height: 1.9rem; display: flex; align-items: center; gap: 0.38rem; padding: 0.26rem 0.55rem; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--surface); cursor: pointer; font-size: 0.66rem; font-weight: 800; list-style: none; white-space: nowrap; }
.catalog-import-help > summary::-webkit-details-marker { display: none; }
.catalog-import-help-icon { width: 1.05rem; height: 1.05rem; display: grid; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 0.66rem; font-weight: 950; }
.catalog-import-help[open] > summary { border-color: var(--leaf); color: var(--ink); }
.catalog-import-help > p { position: absolute; z-index: 8; top: calc(100% + 0.4rem); left: 0; width: min(34rem, 65vw); margin: 0; padding: 0.65rem 0.75rem; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); background: var(--surface); box-shadow: 0 14px 38px rgba(16,22,18,.16); font-size: 0.72rem; line-height: 1.4; white-space: normal; }
.catalog-import-progressbar { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(360px, 0.95fr); gap: 0.75rem; align-items: stretch; padding: 0.42rem 0.75rem; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 97%, var(--leaf) 3%); }
.catalog-import-progressbar .catalog-import-steps { align-self: center; gap: 0.35rem; }
.catalog-import-progressbar .catalog-import-steps li { grid-template-columns: 1.45rem minmax(0, 1fr); gap: 0.35rem; min-height: 2.25rem; padding: 0.3rem 0.42rem; font-size: 0.66rem; }
.catalog-import-progressbar .catalog-import-steps li strong { width: 1.45rem; height: 1.45rem; font-size: 0.66rem; }
.catalog-import-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: stretch; border: 1px solid color-mix(in srgb, var(--line) 80%, transparent); border-radius: 9px; overflow: hidden; background: var(--surface); }
.catalog-import-metric { min-width: 0; display: grid; place-items: center; align-content: center; gap: 0.05rem; padding: 0.28rem 0.35rem; border-left: 1px solid var(--line); text-align: center; }
.catalog-import-metric:first-child { border-left: 0; }
.catalog-import-metric span { overflow: hidden; max-width: 100%; color: var(--muted); font-size: 0.58rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.catalog-import-metric strong { font-size: 1rem; line-height: 1.05; }
.catalog-import-toolbar { display: flex; align-items: center; gap: 0.65rem; min-width: 0; padding: 0.42rem 0.75rem; border-bottom: 1px solid var(--line); }
.catalog-import-filters { min-width: 0; display: flex; flex: 1 1 auto; flex-wrap: nowrap; gap: 0.35rem; padding: 0; border: 0; overflow-x: auto; scrollbar-width: none; }
.catalog-import-filters::-webkit-scrollbar { display: none; }
.catalog-import-filters .button { flex: 0 0 auto; min-height: 2.05rem; padding: 0.35rem 0.7rem; font-size: 0.68rem; white-space: nowrap; }
.catalog-import-filters .button span { opacity: 0.78; font-weight: 800; }
.catalog-import-tools { display: flex; flex: 0 1 auto; align-items: center; justify-content: flex-end; gap: 0.38rem; min-width: 0; }
.catalog-import-search { width: clamp(14rem, 24vw, 22rem); min-height: 2.05rem; display: flex; align-items: center; gap: 0.38rem; padding: 0 0.58rem; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.catalog-import-search:focus-within { border-color: var(--leaf); box-shadow: 0 0 0 2px color-mix(in srgb, var(--leaf) 24%, transparent); }
.catalog-import-search svg { width: 1rem; height: 1rem; flex: 0 0 auto; fill: none; stroke: var(--muted); stroke-width: 1.8; stroke-linecap: round; }
.catalog-import-search input { width: 100%; min-width: 0; padding: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font: inherit; font-size: 0.68rem; }
#catalog-import-sort { min-height: 2.05rem; max-width: 12.5rem; padding: 0.35rem 1.8rem 0.35rem 0.55rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface); font: inherit; font-size: 0.68rem; }
#catalog-import-unmatched-slot { position: relative; flex: 0 0 auto; }
.catalog-import-unmatched { position: relative; }
.catalog-import-unmatched > summary { min-height: 2.05rem; display: flex; align-items: center; padding: 0.35rem 0.55rem; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: var(--surface); cursor: pointer; font-size: 0.65rem; font-weight: 800; list-style: none; white-space: nowrap; }
.catalog-import-unmatched > summary::-webkit-details-marker { display: none; }
.catalog-import-unmatched[open] > summary { border-color: var(--leaf); color: var(--ink); }
.catalog-import-unmatched > div { position: absolute; z-index: 9; top: calc(100% + 0.35rem); right: 0; width: min(42rem, 72vw); max-height: 260px; display: flex; flex-wrap: wrap; gap: 0.3rem; overflow: auto; padding: 0.55rem; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); box-shadow: 0 14px 38px rgba(16,22,18,.16); }
.catalog-import-unmatched code { padding: 0.2rem 0.35rem; border-radius: 5px; background: color-mix(in srgb, var(--surface) 88%, var(--leaf) 12%); font-size: 0.64rem; }
.catalog-import-table-wrap { min-height: 0; overflow: auto; }
.catalog-import-table { width: 100%; border-collapse: collapse; font-size: 0.76rem; }
.catalog-import-table th { position: sticky; top: 0; z-index: 2; padding: 0.48rem 0.55rem; color: var(--muted); background: var(--surface); border-bottom: 1px solid var(--line); text-align: left; }
.catalog-import-table td { padding: 0.5rem 0.55rem; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); vertical-align: top; }
.catalog-import-table td small { display: block; margin-top: 0.2rem; color: var(--muted); line-height: 1.3; }
.catalog-import-table td small.catalog-import-image-refresh { color: #245b3b; font-weight: 800; }
.catalog-import-item-number { display: block; font-size: 0.82rem; line-height: 1.1; }
.catalog-import-excel-rows { white-space: normal; overflow-wrap: normal; word-break: normal; }
.catalog-import-table select { max-width: 280px; width: 100%; padding: 0.42rem; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--surface); }
.catalog-import-table input[list] { max-width: 320px; width: 100%; padding: 0.42rem; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--surface); }
.catalog-import-original-names, .catalog-import-original-meta { display: grid; gap: 0.35rem; }
.catalog-import-original-names label, .catalog-import-original-meta label { display: grid; gap: 0.18rem; min-width: 0; }
.catalog-import-original-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); min-width: 0; width: 100%; }
.catalog-import-original-meta .is-wide { grid-column: 1 / -1; }
.catalog-import-original-names label > span, .catalog-import-original-meta label > span { color: var(--muted); font-size: 0.61rem; font-weight: 850; }
.catalog-import-original-names input, .catalog-import-original-meta input { width: 100%; min-width: 0; box-sizing: border-box; padding: 0.38rem 0.42rem; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--surface); font: inherit; font-size: 0.68rem; }
/* Topic selector stays in normal table flow; expanding never covers status/actions. */
.catalog-import-subject-picker { position: relative; width: 100%; max-width: 100%; min-width: 0; margin-top: 0.48rem; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.catalog-import-subject-picker > summary { display: block; padding: 0.43rem 0.55rem; cursor: pointer; font-size: 0.68rem; overflow-wrap: anywhere; }
.catalog-import-subject-picker > summary strong { font-weight: 750; }
.catalog-import-subject-options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0.3rem; padding: 0.5rem; border-top: 1px solid var(--line); }
.catalog-import-subject-options label { display: flex; align-items: flex-start; min-width: 0; gap: 0.35rem; font-size: 0.69rem; line-height: 1.35; overflow-wrap: anywhere; }
.catalog-import-subject-options input { flex: 0 0 auto; margin-top: 0.08rem; }
.catalog-import-table td { min-width: 0; overflow-wrap: anywhere; }
.catalog-import-table td:nth-child(4) .catalog-import-original-meta { max-width: 100%; }
.catalog-import-table td:nth-child(5) > small { white-space: normal; overflow-wrap: anywhere; }
.catalog-import-artwork-key { overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.58rem !important; }
.catalog-import-image-candidates { display: flex; gap: 0.45rem; max-width: 360px; margin-top: 0.45rem; padding: 0.15rem 0.05rem 0.35rem; overflow-x: auto; overscroll-behavior-inline: contain; }
.catalog-import-image-candidate { flex: 0 0 92px; display: grid; grid-template-rows: 112px auto; gap: 0.25rem; padding: 0.3rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface); cursor: pointer; text-align: left; }
.catalog-import-image-candidate:hover, .catalog-import-image-candidate:focus-visible { border-color: var(--leaf); outline: none; }
.catalog-import-image-candidate.is-selected { border-color: var(--leaf-dark); box-shadow: 0 0 0 2px color-mix(in srgb, var(--leaf) 32%, transparent); }
.catalog-import-image-candidate img { width: 100%; height: 112px; object-fit: contain; border-radius: 5px; background: #fff; }
.catalog-import-image-candidate span { overflow: hidden; font-size: 0.62rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.catalog-import-selected-preview { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-items: center; gap: 0.45rem; width: min(100%, 280px); margin-top: 0.45rem; padding: 0.35rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: color-mix(in srgb, var(--surface) 96%, var(--leaf) 4%); cursor: zoom-in; text-align: left; }
.catalog-import-selected-preview img { width: 96px; height: 120px; object-fit: contain; border-radius: 5px; background: #fff; }
.catalog-import-selected-preview span { font-size: 0.68rem; font-weight: 800; line-height: 1.25; }
.catalog-import-selected-preview.is-current-primary { border-style: dashed; }
.catalog-import-manual { max-width: 320px; margin-top: 0.45rem; padding: 0.4rem 0.45rem; border: 1px dashed color-mix(in srgb, var(--line) 80%, var(--leaf) 20%); border-radius: 8px; background: color-mix(in srgb, var(--surface) 95%, var(--leaf) 5%); }
.catalog-import-manual summary { cursor: pointer; color: var(--muted); font-size: 0.68rem; font-weight: 900; }
.catalog-import-manual label { display: grid; gap: 0.25rem; margin-top: 0.4rem; }
.catalog-import-manual label > span { font-size: 0.64rem; font-weight: 800; }
.catalog-import-manual small { display: block; margin-top: 0.35rem; }
.catalog-import-image-viewer { width: min(900px, calc(100vw - 2rem)); height: min(92dvh, 920px); max-width: none; max-height: none; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: var(--surface); }
.catalog-import-image-viewer::backdrop { background: rgba(16, 22, 18, 0.72); }
.catalog-import-image-viewer-card { min-width: 0; min-height: 0; height: 100%; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; overflow: hidden; }
.catalog-import-image-viewer-card > header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.75rem 0.9rem; border-bottom: 1px solid var(--line); }
.catalog-import-image-viewer-stage { position: relative; min-width: 0; min-height: 0; display: grid; place-items: center; padding: 0.8rem 3.6rem; overflow: hidden; background: color-mix(in srgb, var(--surface) 82%, #fff 18%); }
.catalog-import-image-viewer-stage img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; background: #fff; }
.catalog-import-image-viewer-nav { position: absolute; top: 50%; z-index: 2; width: 2.7rem; height: 4.4rem; transform: translateY(-50%); border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: color-mix(in srgb, var(--surface) 92%, transparent); box-shadow: 0 2px 10px rgba(0,0,0,.12); cursor: pointer; font-size: 2.2rem; line-height: 1; }
.catalog-import-image-viewer-nav:hover, .catalog-import-image-viewer-nav:focus-visible { border-color: var(--leaf-dark); outline: none; }
.catalog-import-image-viewer-nav:disabled { opacity: 0.28; cursor: default; }
.catalog-import-image-viewer-nav.is-prev { left: 0.55rem; }
.catalog-import-image-viewer-nav.is-next { right: 0.55rem; }
.catalog-import-image-viewer-meta { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 0.65rem; padding-right: 0.75rem; border-top: 1px solid var(--line); }
.catalog-import-image-viewer code { display: block; min-width: 0; max-width: 100%; padding: 0.65rem 0.8rem; overflow-x: auto; overflow-y: hidden; font-size: 0.72rem; white-space: nowrap; }
#catalog-import-image-viewer-count { color: var(--muted); font-size: 0.72rem; font-weight: 900; white-space: nowrap; }
.catalog-import-image-viewer-select { min-width: 9.5rem; min-height: 2.25rem; padding: 0.42rem 0.72rem; font-size: 0.72rem; white-space: nowrap; }
.catalog-import-image-viewer-select:disabled { opacity: 0.62; cursor: default; }
.catalog-import-series { display: flex; align-items: flex-start; gap: 0.4rem; margin-top: 0.45rem; padding: 0.4rem; border: 1px solid var(--line); border-radius: 7px; background: color-mix(in srgb, var(--surface) 92%, var(--leaf) 8%); font-size: 0.72rem; line-height: 1.3; }
.catalog-import-series input { flex: 0 0 auto; margin-top: 0.1rem; }
.catalog-import-badge { display: inline-block; padding: 0.22rem 0.42rem; border-radius: 999px; font-weight: 900; }
.catalog-import-badge.is-ready { color: #245b3b; background: #dceede; }
.catalog-import-badge.is-existing { color: #24506f; background: #dce9f2; }
.catalog-import-badge.is-review { color: #7b4200; background: #ffedc7; }
.catalog-import-badge.is-conflict { color: #8d2e2e; background: #f7dede; }
.catalog-import-badge.is-skipped { color: #6f4a00; background: #f7e5ae; }
.catalog-import-skipped-image-label { display: inline-flex; align-items: center; min-height: 2rem; padding: 0.35rem 0.55rem; border: 1px solid #d7b45d; border-radius: 7px; color: #6f4a00; background: #fff6d9; font-weight: 900; }
.catalog-import-skipped-wrap { max-width: 360px; margin-top: 0.4rem; padding: 0.45rem; border: 1px solid #d7b45d; border-radius: 9px; background: #fff9e7; }
.catalog-import-skipped-notice { display: grid; gap: 0.12rem; color: #6f4a00; font-size: 0.66rem; line-height: 1.3; }
.catalog-import-skipped-notice strong { font-size: 0.7rem; }
.catalog-import-image-candidates.is-skipped { margin-top: 0.3rem; padding-bottom: 0.1rem; }
.catalog-import-image-candidate.is-skipped { position: relative; border-color: #d7b45d; background: #fffdf5; cursor: zoom-in; }
.catalog-import-image-candidate.is-skipped:hover, .catalog-import-image-candidate.is-skipped:focus-visible { border-color: #a97712; }
.catalog-import-image-candidate.is-skipped::after { content: "!"; position: absolute; top: 0.35rem; right: 0.35rem; width: 1.2rem; height: 1.2rem; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #a97712; font-size: 0.72rem; font-weight: 950; box-shadow: 0 1px 4px rgba(16,22,18,.18); }
.catalog-import-empty-row td { padding: 1.4rem; color: var(--muted); font-weight: 800; text-align: center; }
.catalog-import-footer { justify-content: flex-end; border-top: 1px solid var(--line); border-bottom: 0; }
.catalog-import-footer-copy { min-width: 0; display: grid; gap: 0.1rem; margin-right: auto; }
.catalog-import-footer-copy #catalog-import-source-summary { overflow: hidden; color: var(--muted); font-size: 0.64rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.catalog-import-footer #catalog-import-status { min-height: 0.8rem; color: #8d2e2e; font-size: 0.64rem; font-weight: 800; }



/* v53.12.17 faithful compact import workspace — desktop layout follows the accepted mockup. */
@media (min-width: 1200px) {
  .catalog-import-dialog {
    width: min(1580px, calc(100vw - 2.25rem));
    height: min(920px, calc(100dvh - 2.25rem));
    border-radius: 13px;
    box-shadow: 0 20px 60px rgba(8, 15, 11, .28);
  }
  .catalog-import-shell { grid-template-rows: auto auto auto minmax(0, 1fr) auto; }
  .catalog-import-header { min-height: 3.15rem; padding: 0.42rem 0.8rem; }
  .catalog-import-title-line { gap: 0.5rem; }
  .catalog-import-title-icon { width: 1.65rem; height: 1.65rem; }
  .catalog-import-header h2 { font-size: 1.15rem; letter-spacing: -0.01em; }
  .catalog-import-help > summary { min-height: 1.8rem; padding: 0.22rem 0.52rem; font-size: 0.64rem; }
  .catalog-import-progressbar {
    grid-template-columns: minmax(0, 1.65fr) minmax(390px, .95fr);
    gap: 0.65rem;
    padding: 0.38rem 0.8rem;
  }
  .catalog-import-progressbar .catalog-import-steps { gap: 0.34rem; }
  .catalog-import-progressbar .catalog-import-steps li {
    min-height: 2.12rem;
    grid-template-columns: 1.38rem minmax(0, 1fr);
    gap: 0.32rem;
    padding: 0.26rem 0.4rem;
    font-size: 0.66rem;
  }
  .catalog-import-progressbar .catalog-import-steps li strong { width: 1.38rem; height: 1.38rem; }
  .catalog-import-metric { padding: 0.22rem 0.32rem; }
  .catalog-import-metric span { font-size: 0.56rem; }
  .catalog-import-metric strong { font-size: 1rem; }
  .catalog-import-toolbar { gap: 0.7rem; padding: 0.4rem 0.8rem; }
  .catalog-import-filters { flex: 1 1 auto; gap: 0.38rem; }
  .catalog-import-filters .button { min-height: 2rem; padding: 0.32rem 0.72rem; font-size: 0.68rem; }
  .catalog-import-tools { flex: 0 1 35rem; gap: 0.45rem; }
  .catalog-import-search { flex: 1 1 20rem; width: auto; min-height: 2rem; }
  #catalog-import-sort { flex: 0 0 12.8rem; min-height: 2rem; max-width: none; }

  .catalog-import-table { table-layout: fixed; min-width: 1660px; font-size: 0.73rem; }
  .catalog-import-table th { padding: 0.42rem 0.5rem; font-size: 0.68rem; }
  .catalog-import-table td { padding: 0.46rem 0.5rem; }
  .catalog-import-table th:nth-child(1), .catalog-import-table td:nth-child(1) { width: 4%; }
  .catalog-import-table th:nth-child(2), .catalog-import-table td:nth-child(2) { width: 21%; }
  .catalog-import-table th:nth-child(3), .catalog-import-table td:nth-child(3) { width: 22%; }
  .catalog-import-table th:nth-child(4), .catalog-import-table td:nth-child(4) { width: 25%; }
  .catalog-import-table th:nth-child(5), .catalog-import-table td:nth-child(5) { width: 16%; }
  .catalog-import-table th:nth-child(6), .catalog-import-table td:nth-child(6) { width: 12%; }
  .catalog-import-table td:nth-child(2) strong { display: block; font-size: 0.78rem; line-height: 1.2; }
  .catalog-import-table td small { margin-top: 0.16rem; font-size: 0.66rem; line-height: 1.28; }
  .catalog-import-table select { max-width: 100%; padding: 0.3rem 0.38rem; font-size: 0.68rem; }

  .catalog-import-image-candidates {
    position: relative;
    gap: 0.38rem;
    max-width: 100%;
    margin-top: 0.34rem;
    padding: 0.08rem 0.03rem 0.18rem;
    overflow: visible;
  }
  .catalog-import-image-candidate {
    position: relative;
    flex: 0 0 80px;
    grid-template-rows: 90px auto;
    gap: 0.2rem;
    padding: 0.24rem;
    border-radius: 7px;
  }
  .catalog-import-image-candidate img { height: 90px; border-radius: 4px; }
  .catalog-import-image-candidate span { font-size: 0.58rem; }
  .catalog-import-image-candidate.is-selected::after {
    content: "✓";
    position: absolute;
    top: 0.32rem;
    right: 0.32rem;
    width: 1.15rem;
    height: 1.15rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: var(--leaf-dark);
    font-size: 0.68rem;
    font-weight: 950;
    box-shadow: 0 1px 4px rgba(16,22,18,.2);
  }
  .catalog-import-more-images { position: relative; flex: 0 0 80px; }
  .catalog-import-more-images > summary {
    height: 118px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 0.18rem;
    padding: 0.3rem;
    border: 1px dashed var(--line);
    border-radius: 7px;
    color: var(--muted);
    background: color-mix(in srgb, var(--surface) 96%, var(--leaf) 4%);
    cursor: pointer;
    text-align: center;
    list-style: none;
  }
  .catalog-import-more-images > summary::-webkit-details-marker { display: none; }
  .catalog-import-more-images > summary strong { color: var(--ink); font-size: 0.9rem; }
  .catalog-import-more-images > summary span { font-size: 0.58rem; font-weight: 800; line-height: 1.1; }
  .catalog-import-more-images[open] > summary { border-color: var(--leaf); }
  .catalog-import-more-images > div {
    position: absolute;
    z-index: 12;
    top: calc(100% + 0.35rem);
    right: 0;
    width: min(31rem, 46vw);
    max-height: 22rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    overflow: auto;
    padding: 0.5rem;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface);
    box-shadow: 0 14px 38px rgba(16,22,18,.18);
  }
  .catalog-import-more-images .catalog-import-image-candidate { flex-basis: 86px; }

  .catalog-import-selected-preview {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 0.38rem;
    width: min(100%, 13rem);
    min-height: 2.65rem;
    margin-top: 0.28rem;
    padding: 0.25rem 0.32rem;
    border-radius: 7px;
  }
  .catalog-import-selected-preview img { width: 36px; height: 44px; border-radius: 4px; }
  .catalog-import-selected-preview span { font-size: 0.62rem; line-height: 1.15; }
  .catalog-import-action-stack { display: grid; gap: 0.35rem; align-content: start; }
  .catalog-import-action-stack > select { width: 100%; }
  .catalog-import-manual { max-width: 100%; margin-top: 0.3rem; padding: 0.3rem 0.38rem; }
  .catalog-import-manual summary { font-size: 0.63rem; }
  .catalog-import-manual-actions { margin-top: 0; }
  .catalog-import-manual-actions[open] { padding: 0.38rem 0.42rem; }
  .catalog-import-manual-actions label { margin-top: 0.32rem; }
  .catalog-import-manual-actions input { min-width: 0; width: 100%; padding: 0.34rem 0.4rem; font-size: 0.64rem; }
  .catalog-import-manual-actions small { font-size: 0.6rem; line-height: 1.25; }
  .catalog-import-series { gap: 0.3rem; margin-top: 0.3rem; padding: 0.25rem 0.32rem; font-size: 0.63rem; }
  .catalog-import-badge { padding: 0.2rem 0.42rem; font-size: 0.7rem; }

  .catalog-import-footer { min-height: 3.55rem; padding: 0.42rem 0.8rem; }
  .catalog-import-footer-copy { display: flex; align-items: center; flex-wrap: wrap; gap: 0.3rem 0.55rem; }
  .catalog-import-footer-copy #catalog-import-source-summary { max-width: min(50vw, 44rem); font-size: 0.63rem; }
  #catalog-import-unmatched-slot { position: relative; }
  .catalog-import-footer .catalog-import-unmatched > summary {
    min-height: auto;
    padding: 0;
    border: 0;
    color: var(--muted);
    background: transparent;
    font-size: 0.61rem;
    text-decoration: underline;
    text-underline-offset: 2px;
  }
  .catalog-import-footer .catalog-import-unmatched > div {
    top: auto;
    right: auto;
    bottom: calc(100% + 0.45rem);
    left: 0;
    width: min(42rem, 70vw);
  }
  .catalog-import-footer .button { min-height: 2.35rem; }
}

@media (min-width: 640px) and (max-width: 1199px) {
  .catalog-manager-dialog { width: calc(100vw - 1rem); height: calc(100dvh - 1rem); max-height: calc(100dvh - 1rem); }
  .catalog-manager-body { grid-template-columns: clamp(220px, 26vw, 270px) minmax(0, 1fr); }
  .catalog-manager-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .catalog-manager-form-grid .span-2, .catalog-manager-form-grid .span-3 { grid-column: 1 / -1; }
  .catalog-manager-footer { grid-template-columns: auto minmax(0, 1fr) auto; }
  .catalog-manager-status { text-align: left; }
  .catalog-manager-variant { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.55rem 0.65rem; padding: 0.6rem; }
  .catalog-manager-variant-medium-cell,
  .catalog-manager-variant-options-cell { grid-column: 1 / -1; }
  .catalog-manager-variant-remove-cell { justify-items: end; align-items: end; }
  .catalog-manager-header { padding: 0.85rem 1rem; }
  .catalog-manager-header p { font-size: 0.8rem; }
  .catalog-manager-sidebar { padding: 0.8rem; }
  .catalog-manager-editor-toolbar .button { padding-inline: 0.65rem; }
  .catalog-manager-editor-toolbar-group-primary { flex: 1 1 18rem; }
  .catalog-manager-editor-toolbar-group-editor { flex: 1 1 18rem; }
  .catalog-import-progressbar { grid-template-columns: minmax(0, 1.3fr) minmax(320px, .9fr); }
  .catalog-import-toolbar { align-items: flex-start; flex-wrap: wrap; }
  .catalog-import-filters { flex: 1 1 100%; }
  .catalog-import-tools { width: 100%; justify-content: flex-start; }
  .catalog-import-search { flex: 1 1 18rem; width: auto; }
}

@media (max-width: 639px) {
  .catalog-manager-variant-table-head { display: none; }
  .catalogue-login-dialog { padding: 0.5rem; }
  .catalogue-login-card { width: 100%; max-height: calc(100dvh - 1rem); gap: 0.75rem; padding: 1rem; overflow: auto; }
  .catalogue-password-toggle { min-width: 6.5rem; }
  .catalog-manager-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
  .catalog-import-image-viewer { width: 100vw; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
  .catalog-import-image-viewer-meta { grid-template-columns: minmax(0, 1fr) auto; padding: 0.35rem 0.55rem max(0.35rem, env(safe-area-inset-bottom)); }
  .catalog-import-image-viewer code { padding: 0.4rem 0.2rem; }
  .catalog-import-image-viewer-select { grid-column: 1 / -1; width: 100%; }
  .catalog-manager-shell { height: 100dvh; }
  .catalog-manager-header { gap: 0.45rem; padding: max(0.45rem, env(safe-area-inset-top)) 0.55rem 0.45rem; }
  .catalog-manager-header h2 { font-size: 1.05rem; }
  .catalog-manager-header p { display: none; }
  .catalog-manager-header small { display: none; }
  .catalog-manager-title-row { gap: 0.3rem; }
  .catalog-manager-source, .catalog-manager-count, .catalog-manager-user { min-height: 1.25rem; padding-inline: 0.32rem; font-size: 0.56rem; }
  .catalog-manager-dialog .dialog-close { width: 2.25rem; height: 2.25rem; }
  .catalog-manager-body { display: block; overflow: auto; overscroll-behavior: contain; }
  .catalog-manager-sidebar { min-height: 0; max-height: 34dvh; grid-template-rows: auto auto auto minmax(110px, 1fr); gap: 0.22rem; padding: 0.4rem 0.5rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .catalog-manager-search input { min-height: 2.54rem; padding: 0.45rem 0.66rem; font-size: 1.1rem; }
  .catalog-manager-list { min-height: 110px; gap: 0.22rem; }
  .catalog-manager-list-item { grid-template-columns: 44px minmax(0, 1fr); gap: 0.5rem; padding: 0.3rem; }
  .catalog-manager-list-thumb { width: 44px; height: 44px; }
  .catalog-manager-list-item strong { font-size: 0.78rem; }
  .catalog-manager-list-item small { font-size: 0.68rem; }
  .catalog-manager-list-item em { font-size: 0.6rem; }
  .catalog-manager-editor { overflow: visible; padding: 0.55rem; }
  .catalog-manager-editor-toolbar { top: 0; display: flex; flex-wrap: nowrap; gap: 0.35rem; margin: -0.55rem -0.55rem 0.55rem; padding: 0.38rem 0.5rem; overflow-x: auto; scrollbar-width: none; }
  .catalog-manager-editor-toolbar::-webkit-scrollbar { display: none; }
  .catalog-manager-editor-toolbar-group { display: flex; flex-wrap: nowrap; flex: 0 0 auto; gap: 0.3rem; }
  .catalog-manager-editor-toolbar-group-editor { margin-left: 0; }
  .catalog-manager-editor-toolbar-group .button { width: auto; flex: 0 0 auto; white-space: nowrap; }
  .catalog-manager-editor-toolbar .button { min-height: 1.9rem; padding: 0.32rem 0.5rem; font-size: 0.66rem; }
  .catalog-manager-form-grid { grid-template-columns: 1fr; }
  .catalog-manager-form-grid .span-2, .catalog-manager-form-grid .span-3 { grid-column: auto; }
  .catalog-manager-export-options > summary { width: 100%; justify-content: center; }
  .catalog-manager-export-options-panel { position: fixed; left: 0.5rem; right: 0.5rem; bottom: max(4rem, calc(3.2rem + env(safe-area-inset-bottom))); width: auto; max-height: 70dvh; overflow: auto; grid-template-columns: 1fr; }
  .catalog-manager-variant { grid-template-columns: 1fr; gap: 0.5rem; }
  .catalog-manager-variant-medium-cell,
  .catalog-manager-variant-options-cell,
  .catalog-manager-variant-remove-cell { grid-column: 1 / -1; }
  .catalog-manager-variant-remove-cell { justify-items: stretch; }
  .catalog-manager-variant-remove { width: 100%; }
  .catalog-manager-footer { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "left status right"; gap: 0.35rem; padding: 0.4rem 0.5rem max(0.4rem, env(safe-area-inset-bottom)); }
  .catalog-manager-footer-left { grid-area: left; }
  .catalog-manager-footer-right { grid-area: right; justify-content: flex-end; }
  .catalog-manager-footer-left, .catalog-manager-footer-right { min-width: 0; }
  .catalog-manager-export-options > summary, .catalog-manager-reset-action { width: auto; min-height: 1.9rem; justify-content: center; padding: 0.32rem 0.45rem; font-size: 0.64rem; white-space: nowrap; }
  .catalog-manager-export-options { min-width: 0; }
  .catalog-manager-status { grid-area: status; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center; font-size: 0.58rem; }
  .catalog-import-start-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
  .catalog-import-start-card { min-height: 100dvh; align-content: start; padding: max(0.8rem, env(safe-area-inset-top)) 0.8rem max(0.8rem, env(safe-area-inset-bottom)); }
  .catalog-import-start-actions { display: grid; grid-template-columns: 1fr; margin-top: auto; }
  .catalog-import-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; border: 0; border-radius: 0; }
  .catalog-import-header, .catalog-import-footer { padding: 0.5rem 0.6rem; }
  .catalog-import-header { min-height: 3rem; }
  .catalog-import-title-icon { display: none; }
  .catalog-import-header h2 { font-size: 1rem; }
  .catalog-import-title-line { gap: 0.35rem; }
  .catalog-import-help > summary { width: 1.9rem; padding: 0; justify-content: center; }
  .catalog-import-help > summary > span:last-child { display: none; }
  .catalog-import-help > p { position: fixed; top: 3.3rem; left: 0.55rem; right: 0.55rem; width: auto; }
  .catalog-import-progressbar { grid-template-columns: 1fr; gap: 0.35rem; padding: 0.35rem 0.55rem; }
  .catalog-import-steps { grid-template-columns: 1fr 1fr; }
  .catalog-import-progressbar .catalog-import-steps li { min-height: 2rem; padding: 0.25rem 0.35rem; }
  .catalog-import-metrics { min-height: 2.4rem; }
  .catalog-import-metric { padding: 0.2rem; }
  .catalog-import-metric span { font-size: 0.52rem; }
  .catalog-import-metric strong { font-size: 0.85rem; }
  .catalog-import-toolbar { align-items: stretch; flex-wrap: wrap; gap: 0.35rem; padding: 0.4rem 0.55rem; }
  .catalog-import-filters { flex: 1 1 100%; flex-wrap: nowrap; overflow-x: auto; }
  .catalog-import-filters .button { flex: 0 0 auto; min-height: 2rem; padding: 0.35rem 0.55rem; font-size: 0.68rem; }
  .catalog-import-tools { width: 100%; flex-wrap: wrap; justify-content: stretch; }
  .catalog-import-search { flex: 1 1 100%; width: 100%; }
  #catalog-import-sort { flex: 1 1 10rem; max-width: none; }
  #catalog-import-unmatched-slot { flex: 0 0 auto; }
  .catalog-import-unmatched > div { position: fixed; top: 9rem; left: 0.55rem; right: 0.55rem; width: auto; max-height: 45dvh; }
  .catalog-import-footer-copy #catalog-import-source-summary { max-width: 48vw; }
  .catalog-import-table-wrap { padding: 0.5rem 0.65rem; }
  .catalog-import-table { min-width: 0; }
  .catalog-import-table, .catalog-import-table tbody, .catalog-import-table tr, .catalog-import-table td { display: block; width: 100%; }
  .catalog-import-table thead { display: none; }
  .catalog-import-table tr { margin-bottom: 0.65rem; padding: 0.35rem 0.55rem; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
  .catalog-import-table td { display: grid; grid-template-columns: minmax(7rem, 34%) minmax(0, 1fr); gap: 0.55rem; padding: 0.45rem 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 65%, transparent); overflow-wrap: anywhere; }
  .catalog-import-table td:last-child { border-bottom: 0; }
  .catalog-import-table td::before { content: attr(data-label); color: var(--muted); font-size: 0.68rem; font-weight: 900; }
  .catalog-import-table select { max-width: none; }
  .catalog-import-footer { flex-wrap: wrap; }
  .catalog-import-footer #catalog-import-status { flex: 1 0 100%; }
}


.catalog-import-result-dialog {
  width: min(520px, calc(100vw - 2rem));
  max-width: none;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 18px;
  color: var(--ink);
  background: var(--surface);
  box-shadow: 0 30px 100px rgba(0, 0, 0, 0.34);
}
.catalog-import-result-dialog::backdrop {
  background: rgba(12, 18, 14, 0.52);
  backdrop-filter: blur(4px);
}
.catalog-import-result-card {
  display: grid;
  justify-items: center;
  gap: 0.85rem;
  padding: 1.7rem 1.8rem 1.5rem;
  text-align: center;
}
.catalog-import-result-card h2,
.catalog-import-result-card p {
  margin: 0;
}
.catalog-import-result-card p {
  max-width: 42ch;
  line-height: 1.5;
}
.catalog-import-result-mark {
  display: grid;
  width: 3rem;
  height: 3rem;
  place-items: center;
  border-radius: 999px;
  color: #fff;
  background: var(--leaf-dark);
  font-size: 1.7rem;
  font-weight: 900;
}
.catalog-import-result-card .button {
  min-width: 7rem;
  margin-top: 0.35rem;
}

/* v53.10.0 Series v2 editor */
.catalog-series-dialog { width: min(1180px, 96vw); max-width: none; padding: 0; border: 0; border-radius: 1rem; }
.catalog-series-shell { max-height: 92vh; display: grid; grid-template-rows: auto minmax(0,1fr); background: var(--paper, #f7f4eb); color: var(--ink, #31483b); }
.catalog-series-header { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 1.2rem; border-bottom: 1px solid rgba(49,72,59,.2); }
.catalog-series-header h2, .catalog-series-header p { margin: 0; }
.catalog-series-header p { margin-top: .25rem; opacity: .75; }
.catalog-series-body { min-height: 0; display: grid; grid-template-columns: minmax(190px,.28fr) minmax(0,1fr); }
.catalog-series-sidebar { min-height: 0; overflow: auto; padding: .8rem; border-right: 1px solid rgba(49,72,59,.18); }
.catalog-series-sidebar > .button { width: 100%; margin-bottom: .7rem; }
.catalog-series-list { display: grid; gap: .35rem; }
.catalog-series-list-item { width: 100%; display: grid; gap: .15rem; padding: .6rem .7rem; border: 1px solid transparent; border-radius: .65rem; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.catalog-series-list-item:hover, .catalog-series-list-item.is-active { border-color: rgba(49,72,59,.35); background: rgba(255,255,255,.55); }
.catalog-series-list-item small { opacity: .68; }
.catalog-series-editor { min-width: 0; overflow: auto; padding: .9rem 1rem 1.1rem; }
.catalog-series-form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.catalog-series-form-grid label { display: grid; gap: .25rem; min-width: 0; }
.catalog-series-form-grid .span-2 { grid-column: 1 / -1; }
.catalog-series-form-grid input:not([type="checkbox"]), .catalog-series-form-grid textarea, .catalog-series-product-search input { width: 100%; box-sizing: border-box; }
.catalog-series-member-list { display: grid; gap: .35rem; margin-bottom: .7rem; }
.catalog-series-member { display: grid; grid-template-columns: auto 48px minmax(0,1fr) auto auto auto auto; gap: .45rem; align-items: center; padding: .38rem .45rem; border: 1px solid rgba(49,72,59,.18); border-radius: .55rem; background: rgba(255,255,255,.45); }
.catalog-series-member.is-dragging { opacity: .45; }
.catalog-series-member-handle { cursor: grab; font-size: 1.1rem; }
.catalog-series-member img { width: 48px; height: 58px; object-fit: contain; background: white; border-radius: .35rem; }
.catalog-series-member-copy { display: grid; min-width: 0; }
.catalog-series-member-copy strong, .catalog-series-member-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalog-series-cover { display: inline-flex; align-items: center; gap: .25rem; white-space: nowrap; }
.catalog-series-product-search { display: grid; gap: .25rem; }
.catalog-series-product-results { display: grid; gap: .25rem; max-height: 14rem; overflow: auto; margin-top: .35rem; }
.catalog-series-product-result { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .1rem .5rem; padding: .45rem .55rem; border: 1px solid rgba(49,72,59,.15); border-radius: .5rem; background: rgba(255,255,255,.4); color: inherit; text-align: left; cursor: pointer; }
.catalog-series-product-result small { grid-column: 1; opacity: .68; }
.catalog-series-product-result span { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.catalog-series-actions { display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center; gap: .55rem; margin-top: .8rem; }
.catalog-series-status { min-width: 0; }
.catalog-series-status.is-error { color: #9a271f; font-weight: 700; }
@media (max-width: 760px) {
  .catalog-series-dialog { width: 98vw; }
  .catalog-series-body { grid-template-columns: 1fr; }
  .catalog-series-sidebar { border-right: 0; border-bottom: 1px solid rgba(49,72,59,.18); max-height: 12rem; }
  .catalog-series-form-grid { grid-template-columns: 1fr; }
  .catalog-series-form-grid .span-2 { grid-column: auto; }
  .catalog-series-member { grid-template-columns: auto 42px minmax(0,1fr) auto auto; }
  .catalog-series-member img { width: 42px; height: 52px; }
  .catalog-series-cover { grid-column: 3 / -1; }
  .catalog-series-remove { grid-column: 5; grid-row: 1; }
  .catalog-series-actions { grid-template-columns: 1fr 1fr; }
  .catalog-series-status { grid-column: 1 / -1; order: -1; }
}
.catalog-manager-series-summary { margin-top: .65rem; padding-top: .55rem; border-top: 1px solid rgba(49,72,59,.16); display: flex; flex-wrap: wrap; align-items: center; gap: .45rem .75rem; }
.catalog-manager-series-summary[hidden] { display: none; }

/* v53.10.2 discounted series price */
.catalog-series-price-summary {
  padding: 0.65rem 0.8rem;
  border: 1px solid var(--line);
  border-radius: 0.45rem;
  background: color-mix(in srgb, var(--surface) 92%, var(--leaf) 8%);
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.35;
}
.catalog-series-price-summary.is-warning {
  border-color: color-mix(in srgb, #a65a2d 50%, var(--line));
}

/* v53.11.0 multi-image product gallery editor */
.catalog-manager-gallery-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem 1rem; margin-bottom: 0.8rem; }
.catalog-manager-gallery-toolbar .catalog-manager-field-help { margin: 0; }
.catalog-manager-gallery-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; align-items: center; }
.catalog-manager-gallery-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 0.7rem;
  margin-top: 0.85rem;
}
.catalog-manager-gallery-empty {
  margin: 0;
  padding: 0.8rem;
  border: 1px dashed var(--line);
  border-radius: 10px;
  color: var(--muted);
}
.catalog-manager-gallery-card {
  min-width: 0;
  display: grid;
  grid-template-columns: 105px minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.65rem;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--surface) 96%, var(--line) 4%);
}
.catalog-manager-gallery-card.is-primary {
  grid-column: 1 / -1;
  grid-template-columns: 185px minmax(0, 1fr);
  border-color: color-mix(in srgb, var(--leaf-dark) 55%, var(--line));
}
.catalog-manager-gallery-card.is-primary .catalog-manager-gallery-thumb { width: 185px; }
.catalog-manager-gallery-thumb {
  position: relative;
  width: 105px;
  aspect-ratio: 1;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
}
.catalog-manager-gallery-thumb img { width: 100%; height: 100%; object-fit: contain; }
.catalog-manager-gallery-primary-badge {
  position: absolute;
  left: 0.3rem;
  bottom: 0.3rem;
  padding: 0.18rem 0.35rem;
  border-radius: 999px;
  color: #fff;
  background: var(--leaf-dark);
  font-size: 0.62rem;
  font-weight: 900;
}
.catalog-manager-gallery-fields { min-width: 0; display: grid; gap: 0.45rem; }
.catalog-manager-gallery-fields > label { min-width: 0; display: grid; gap: 0.22rem; color: var(--muted); font-size: 0.7rem; font-weight: 800; }
.catalog-manager-gallery-fields input,
.catalog-manager-gallery-fields select {
  width: 100%;
  min-width: 0;
  padding: 0.42rem 0.5rem;
  border: 1px solid var(--line);
  border-radius: 7px;
  color: var(--ink);
  background: var(--surface);
  font: inherit;
}
.catalog-manager-gallery-card-top { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.72rem; }
.catalog-manager-gallery-card-top span { color: var(--muted); }
.catalog-manager-gallery-card-actions { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.catalog-manager-gallery-card-actions .button { min-height: 2rem; padding: 0.35rem 0.55rem; font-size: 0.7rem; }
.catalog-manager-gallery-variants { border-top: 1px dashed var(--line); padding-top: 0.35rem; }
.catalog-manager-gallery-variants summary { cursor: pointer; color: var(--muted); font-size: 0.7rem; font-weight: 800; }
.catalog-manager-gallery-variants[open] { display: grid; gap: 0.25rem; }
.catalog-manager-gallery-variants label { display: flex; align-items: flex-start; gap: 0.35rem; color: var(--ink); font-size: 0.68rem; font-weight: 500; }
.catalog-manager-gallery-variants input { width: auto; margin-top: 0.12rem; }

@media (max-width: 900px) {
  .catalog-manager-gallery-list { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .catalog-manager-gallery-toolbar { align-items: stretch; flex-direction: column; }
  .catalog-manager-gallery-toolbar .catalog-manager-file-button { justify-self: stretch; justify-content: center; }
  .catalog-manager-gallery-card { grid-template-columns: 82px minmax(0, 1fr); }
  .catalog-manager-gallery-card.is-primary { grid-template-columns: 110px minmax(0, 1fr); }
  .catalog-manager-gallery-thumb { width: 82px; }
  .catalog-manager-gallery-card.is-primary .catalog-manager-gallery-thumb { width: 110px; }
  .catalog-manager-gallery-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .catalog-manager-gallery-actions .button { width: 100%; justify-content: center; }
}


/* --------------------------------------------------------------------------
   v53.12.6 — catalogue manager base-data panel compaction / cleanup
   -------------------------------------------------------------------------- */
.catalog-manager-form-grid {
  align-items: start;
}

.catalog-manager-form-grid > label,
.catalog-manager-form-grid > .catalog-manager-choice-field {
  align-self: start;
  align-content: start;
}

@media (min-width: 1200px) {
  .catalog-manager-base-section .catalog-manager-form-grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 0.65rem 0.8rem;
  }

  .catalog-manager-base-section [data-base-field="id"] { grid-column: span 3; }
  .catalog-manager-base-section [data-base-field="title"] { grid-column: span 6; }
  .catalog-manager-base-section [data-base-field="type"] { grid-column: span 3; }
  .catalog-manager-base-section [data-base-field="year"] { grid-column: span 3; }
  .catalog-manager-base-section [data-base-field="size"] { grid-column: span 4; }
  .catalog-manager-base-section [data-base-field="edition"] { grid-column: span 3; }
  .catalog-manager-base-section [data-base-field="price"] { grid-column: span 3; }
  .catalog-manager-base-section [data-base-field="availability"] { grid-column: span 3; }
  .catalog-manager-base-section [data-base-field="subjects"] { grid-column: span 4; }
  .catalog-manager-base-section [data-base-field="techniques"] { grid-column: span 4; }
  .catalog-manager-base-section [data-base-field="technique"] { grid-column: span 4; }
  .catalog-manager-base-section [data-base-field="alt"] { grid-column: 1 / -1; }

  .catalog-manager-base-section [data-base-field="size"] .catalog-manager-field-help {
    margin-bottom: 0;
  }
}


/* --------------------------------------------------------------------------
   v53.12.7 — compact, three-column base artwork editor
   -------------------------------------------------------------------------- */
@media (min-width: 1200px) {
  .catalog-manager-base-section {
    padding: 0.65rem 0.7rem;
  }

  .catalog-manager-base-section .catalog-manager-form-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.52rem 0.72rem;
    align-items: start;
  }

  .catalog-manager-base-section [data-base-field] {
    grid-column: auto !important;
    min-width: 0;
    align-self: start;
  }

  .catalog-manager-base-section [data-base-field="alt"] {
    grid-column: 1 / -1 !important;
  }

  .catalog-manager-base-section .catalog-manager-id-label small {
    display: none;
  }

  .catalog-manager-base-section [data-base-field="size"] .catalog-manager-field-help {
    margin: 0.12rem 0 0;
    font-size: 0.66rem;
    font-weight: 500;
    line-height: 1.25;
  }

}


/* v53.16.8: authenticated admin presence (inside admin-only dock). */
#admin-presence-open { white-space: nowrap; }
.admin-presence-dialog {
  width: min(92vw, 540px); max-height: 84dvh; padding: 0;
  border: 1px solid var(--line); border-radius: .8rem;
  background: var(--surface); color: var(--ink);
}
.admin-presence-dialog::backdrop { background: rgba(0,0,0,.46); }
.admin-presence-panel { display: grid; gap: .8rem; padding: clamp(1rem, 2.5vw, 1.6rem); }
.admin-presence-panel h2, .admin-presence-panel p { margin: 0; }
.admin-presence-panel p { font-size: .84rem; color: var(--muted); }
#admin-presence-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.admin-presence-member {
  display: grid; gap: .25rem; padding: .65rem .75rem;
  border: 1px solid var(--line); border-radius: .5rem;
}
.admin-presence-member strong { overflow-wrap: anywhere; }
.admin-presence-member span { color: var(--muted); font-size: .82rem; overflow-wrap: anywhere; }
.admin-presence-panel > button {
  justify-self: end; padding: .5rem 1rem; border-radius: .5rem;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink); cursor: pointer;
}
.admin-presence-panel > button:focus-visible { outline: 2px solid var(--leaf-dark); outline-offset: 2px; }

/* v53.18.2 — enquiry setting belongs directly below Availability in the same cell. */
.catalog-manager-availability-stack { display: grid; align-content: start; gap: .4rem; min-width: 0; }
.catalog-manager-availability-stack > label:first-child { display: grid; gap: .35rem; min-width: 0; color: var(--muted); font-size: .78rem; font-weight: 700; }
.catalog-manager-availability-stack > label:first-child select { width: 100%; min-width: 0; padding: .5rem .6rem; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--surface); font: inherit; }
.catalog-manager-availability-stack > label:first-child select:focus { outline: 2px solid color-mix(in srgb, var(--leaf) 55%, transparent); outline-offset: 1px; }
.catalog-manager-availability-stack .catalog-manager-check { align-self: start; min-height: auto; margin-top: .2rem; }
.catalog-manager-availability-stack .catalog-manager-check[hidden] { display: none !important; }

/* v53.18.3: show another editor's live lock without offering a competing edit. */
.catalog-manager-list-item.is-locked-by-other,
.catalog-manager-list-item.is-locked-by-other:hover {
  opacity: 0.52; filter: grayscale(0.8); cursor: not-allowed;
  background: color-mix(in srgb, var(--surface) 92%, var(--line) 8%);
  border-color: var(--line);
}
.catalog-manager-list-item.is-locked-by-other strong { color: var(--muted); }
.catalog-manager-list-item .catalog-manager-lock-badge {
  display: block; margin-top: .15rem; color: var(--muted); font-size: .68rem; font-weight: 800;
}

/* Editorial visibility is independent from product and variant availability. */
.catalog-manager-hidden-badge { display: inline-block; margin-bottom: .18rem; padding: .06rem .35rem; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: var(--paper-deep); font-size: .63rem; font-weight: 800; line-height: 1.2; }
.catalog-manager-storefront-toggle { font-weight: 800; }

/* v53.18.35 — equal-sized sidebar controls at every viewport and zoom level.
   Use one box-height for the search field and the product-type select. */
.catalog-manager-search { display: grid; min-width: 0; }
.catalog-manager-search input,
.catalog-manager-type-filter select {
  box-sizing: border-box;
  width: 100%;
  height: 2.9rem;
  min-height: 2.9rem;
  border-radius: 8px;
}

/* v53.18.42: compact catalogue manager with larger previews. */
.catalog-manager-dialog .catalog-manager-type-filter { gap:.05rem; line-height:1.1; }
.catalog-manager-dialog .catalog-manager-type-filter select { height:2.1rem; min-height:2.1rem; padding:.18rem .5rem; font-size:.88rem; }
.catalog-manager-dialog .catalog-manager-list-count { margin:0; }
.catalog-manager-dialog .catalog-manager-list-item { grid-template-columns:72px minmax(0,1fr); gap:.5rem; padding:.34rem .42rem; min-width:0; }
.catalog-manager-dialog .catalog-manager-list-thumb { width:72px; height:72px; max-width:100%; }
.catalog-manager-dialog .catalog-manager-list-item[data-cm-product-type="book"] .catalog-manager-list-thumb { width:72px; height:auto; }
.catalog-manager-dialog .catalog-manager-list-item > :last-child { min-width:0; }
.catalog-manager-dialog .catalog-manager-editor-toolbar { gap:.35rem .6rem; padding:.36rem .75rem; margin-bottom:.38rem; align-items:center; }
.catalog-manager-dialog .catalog-manager-editor-toolbar-group { gap:.32rem; }
.catalog-manager-dialog .catalog-manager-editor-toolbar .button { min-height:2.25rem; padding:.38rem .67rem; font-size:.82rem; line-height:1.15; white-space:normal; text-align:center; }
.catalog-manager-dialog .catalog-manager-footer { padding:.36rem .78rem; gap:.55rem; }
.catalog-manager-dialog .catalog-manager-footer .button, .catalog-manager-dialog .catalog-manager-export-options > summary { min-height:2.15rem; padding:.32rem .63rem; font-size:.78rem; line-height:1.2; }
.catalog-manager-dialog .catalog-manager-status { min-width:0; overflow-wrap:anywhere; }
/* Text legibility: labels and values grow without forcing grid columns wider. */
.catalog-manager-dialog .catalog-manager-form-grid > label,
.catalog-manager-dialog .catalog-manager-image-fields > label,
.catalog-manager-dialog .catalog-manager-language-bar label,
.catalog-manager-dialog .catalog-manager-advanced label,
.catalog-manager-dialog .catalog-manager-choice-field,
.catalog-manager-dialog .catalog-manager-availability-stack > label:first-child { font-size:.86rem; min-width:0; }
.catalog-manager-dialog #catalog-manager-form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.catalog-manager-dialog #catalog-manager-form select,
.catalog-manager-dialog #catalog-manager-form textarea { font-size:.96rem; min-width:0; max-width:100%; box-sizing:border-box; }
.catalog-manager-dialog .catalog-manager-gallery-card-top { font-size:.84rem; gap:.4rem; overflow-wrap:anywhere; }
.catalog-manager-dialog .catalog-manager-gallery-card-top > * { min-width:0; overflow-wrap:anywhere; }
.catalog-manager-dialog .catalog-manager-variant-cell-label { font-size:.73rem; line-height:1.18; min-height:0; overflow-wrap:anywhere; }
.catalog-manager-dialog .catalog-manager-variant-mini-check { font-size:.7rem; line-height:1.17; }
.catalog-manager-dialog .catalog-manager-variant-medium-cell select { font-size:.92rem; }
.catalog-manager-dialog .catalog-manager-gallery-card-actions .button { font-size:.76rem; }
.catalog-manager-dialog #catalog-manager-form label, .catalog-manager-dialog .catalog-manager-variant-cell { min-width:0; }
@media(max-width:639px){
 .catalog-manager-dialog .catalog-manager-list-item { grid-template-columns:58px minmax(0,1fr); }
 .catalog-manager-dialog .catalog-manager-list-thumb { width:58px; height:58px; }
 .catalog-manager-dialog .catalog-manager-list-item[data-cm-product-type="book"] .catalog-manager-list-thumb { width:58px; }
 .catalog-manager-dialog .catalog-manager-editor-toolbar { padding:.4rem .55rem; }
 .catalog-manager-dialog .catalog-manager-footer { padding:.35rem .5rem max(.35rem,env(safe-area-inset-bottom)); }
}

/* v53.18.43: gallery primary image uses the card's available height.
   The image is never distorted or cropped: keep object-fit:contain. */
.catalog-manager-dialog .catalog-manager-gallery-card.is-primary {
  grid-template-columns: clamp(245px, 23vw, 320px) minmax(0, 1fr);
  column-gap: 1rem;
  align-items: stretch;
}
.catalog-manager-dialog .catalog-manager-gallery-card.is-primary .catalog-manager-gallery-thumb {
  width: 100%; height: 100%; min-height: 280px;
  aspect-ratio: auto; align-self: stretch;
}
.catalog-manager-dialog .catalog-manager-gallery-card.is-primary .catalog-manager-gallery-thumb img {
  display: block; width: 100%; height: 100%;
  object-fit: contain; object-position: center center;
}
.catalog-manager-dialog .catalog-manager-gallery-card.is-primary .catalog-manager-gallery-fields {
  min-width: 0;
}
/* Readable explanation and consistent controls with the Save Product button. */
.catalog-manager-dialog .catalog-manager-gallery-toolbar .catalog-manager-field-help {
  font-size: 1rem; line-height: 1.45; min-width: 0;
  overflow-wrap: anywhere;
}
.catalog-manager-dialog .catalog-manager-gallery-toolbar { gap: .6rem 1rem; }
.catalog-manager-dialog .catalog-manager-gallery-toolbar .catalog-manager-file-button,
.catalog-manager-dialog #catalog-manager-translation-confirm,
.catalog-manager-dialog #catalog-manager-add-variant {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.25rem; box-sizing: border-box;
  padding: .38rem .67rem; font-size: .82rem; line-height: 1.15;
  white-space: normal; text-align: center;
}
.catalog-manager-dialog .catalog-manager-gallery-toolbar .catalog-manager-file-button { flex: 0 0 auto; }
@media (max-width: 760px) {
  .catalog-manager-dialog .catalog-manager-gallery-card.is-primary { grid-template-columns: minmax(0, 1fr); }
  .catalog-manager-dialog .catalog-manager-gallery-card.is-primary .catalog-manager-gallery-thumb {
    width: min(100%, 350px); height: 310px; min-height: 0;
    justify-self: center;
  }
}
@media (max-width: 620px) {
  .catalog-manager-dialog .catalog-manager-gallery-toolbar { flex-direction: column; align-items: stretch; }
  .catalog-manager-dialog .catalog-manager-gallery-toolbar .catalog-manager-file-button { flex: none; }
}
