.catalog-editor { min-width:0; margin:12px 0; color:#334155; font-size:.84rem; }
.catalog-editor [hidden], .catalog-gallery [hidden] { display:none !important; }
.catalog-editor-heading { display:flex; align-items:center; gap:7px; margin-bottom:9px; font-weight:600; }
.catalog-editor-count { margin-left:5px; color:#64748b; font-size:.78rem; font-weight:400; }
.catalog-help { position:relative; display:inline-flex; }
.catalog-help-button { width:20px; height:20px; padding:0; border:1px solid #cbd5e1; border-radius:50%; background:#fff; color:#64748b; font-size:12px; line-height:18px; cursor:pointer; }
.catalog-help-text { position:absolute; bottom:calc(100% + 7px); left:-85px; z-index:1085; width:235px; padding:8px 10px; border-radius:7px; background:#1e293b; color:#fff; font-size:.75rem; font-weight:400; line-height:1.5; visibility:hidden; opacity:0; pointer-events:none; }
.catalog-help:hover .catalog-help-text, .catalog-help:focus-within .catalog-help-text, .catalog-help.is-open .catalog-help-text { visibility:visible; opacity:1; }
.catalog-editor-list { display:flex; flex-wrap:wrap; gap:9px; }
.catalog-editor-tile { width:112px; margin:0 0 10px; overflow:hidden; border:1px solid #e2e8f0; border-radius:8px; background:#f8fafc; }
.catalog-editor-tile img { display:block; width:100%; height:78px; object-fit:contain; }
.catalog-editor-tile figcaption { display:flex; align-items:center; justify-content:center; gap:2px; padding:3px; }
.catalog-editor-tile button { min-width:30px; min-height:30px; padding:2px; border:0; border-radius:5px; background:#fff; color:#475569; cursor:pointer; }
.catalog-editor-tile button:disabled { opacity:.4; cursor:default; }
.catalog-editor-cover { display:block; padding:2px 4px; color:#475569; font-size:.68rem; text-align:center; }
.catalog-add { min-height:34px; padding:5px 11px; border:1px solid #cbd5e1; border-radius:7px; background:#fff; color:#334155; cursor:pointer; font:inherit; }
.catalog-add:disabled { opacity:.5; cursor:default; }
.catalog-editor-message { margin:8px 0 0; color:#b91c1c; font-size:.78rem; }
.catalog-editor-message.is-loading { color:#64748b; }
.catalog-suggestions { margin-top:12px; }
.catalog-suggestions summary { cursor:pointer; }
.catalog-suggestions .catalog-editor-list { margin-top:9px; }
.catalog-suggestion { width:84px; padding:3px; border:1px solid #cbd5e1; border-radius:7px; background:#fff; cursor:pointer; }
.catalog-suggestion img { display:block; width:100%; height:62px; object-fit:contain; }
.catalog-suggestion:disabled { opacity:.4; cursor:default; }
.catalog-gallery { position:relative; width:100%; min-width:0; margin:0 0 12px; overflow:hidden; border-radius:9px; background:#f8fafc; }
.catalog-gallery-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
.catalog-gallery-track::-webkit-scrollbar { display:none; }
.catalog-gallery-slide { flex:0 0 100%; min-width:0; scroll-snap-align:start; aspect-ratio:16/10; }
.catalog-gallery-slide img { display:block; width:100%; height:100%; object-fit:contain; }
.catalog-gallery-arrow { display:none; position:absolute; top:calc(50% - 17px); z-index:1; width:34px; height:34px; padding:0; border:1px solid #e2e8f0; border-radius:50%; background:rgba(255,255,255,.94); color:#334155; font:24px/30px sans-serif; cursor:pointer; }
.catalog-gallery.is-ready .catalog-gallery-arrow { display:block; }
.catalog-gallery-arrow:disabled { opacity:.35; cursor:default; }
.catalog-gallery-prev { left:8px; }
.catalog-gallery-next { right:8px; }
.catalog-gallery-dots { display:none; justify-content:center; gap:1px; padding:2px 0; }
.catalog-gallery.is-ready .catalog-gallery-dots { display:flex; }
.catalog-gallery-dots button { display:grid; place-items:center; width:24px; height:24px; padding:0; border:0; background:transparent; cursor:pointer; }
.catalog-gallery-dots button::before { content:''; width:6px; height:6px; border-radius:50%; background:#cbd5e1; }
.catalog-gallery-dots button[aria-current=true]::before { background:#2563eb; }
@media (prefers-reduced-motion:reduce) { .catalog-gallery-track { scroll-behavior:auto; } }
