/* Global object workspace; module rules inherit the shared workspace design system. */
.catalogue{min-width:0}.cat-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 16px}.cat-filters{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:0 0 12px}.cat-filters .search{flex:1;min-width:220px;max-width:560px}.cat-filters .search input{width:100%}.cat-filters .compact{display:flex;gap:8px;align-items:center}.cat-view{display:flex;gap:4px;margin-left:auto}.cat-selection{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;color:var(--muted)}.cat-products{background:white;border:1px solid var(--line);border-radius:12px}.cat-product{display:flex;align-items:center;gap:16px;padding:14px 18px;min-width:0;border-bottom:1px solid var(--line);content-visibility:auto;contain-intrinsic-size:auto 112px}.cat-product:last-child{border-bottom:0}.cat-pick{display:grid;place-items:center;min-width:24px;min-height:36px}.cat-pick input,.cat-check input{width:17px;height:17px;accent-color:var(--accent)}.cat-thumb{width:72px;height:80px;flex:none;background:var(--bg);display:grid;place-items:center;border-radius:6px}.cat-thumb img{width:72px;height:80px;object-fit:contain}.cat-no-image{font-size:12px;color:var(--muted)}.cat-product-copy{flex:1;min-width:0}.cat-code{font-size:15px;font-weight:650;overflow-wrap:anywhere;color:var(--ink)}.cat-product-copy p{margin:5px 0;line-height:1.55;overflow-wrap:anywhere}.cat-product-copy small{color:var(--muted)}.cat-product-state{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex:none}.cat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;border:0;background:transparent}.cat-cards .cat-product{display:grid;grid-template-columns:24px 1fr;gap:10px;background:white;border:1px solid var(--line);border-radius:12px;padding:14px;align-content:start}.cat-cards .cat-thumb{grid-column:1/-1;grid-row:1;width:100%;height:180px}.cat-cards .cat-thumb img{width:100%;height:180px}.cat-cards .cat-pick{grid-row:2}.cat-cards .cat-product-copy{grid-column:2}.cat-cards .cat-product-state{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between}.cat-section{padding:20px;margin-bottom:18px}.cat-section h2{margin:0 0 16px;font-size:18px}.cat-section h3{font-size:15px;margin:24px 0 12px}.cat-section p{line-height:1.7}.cat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:16px}.catalogue .field{display:flex;flex-direction:column;gap:7px;min-width:0;margin:0 0 12px}.catalogue input:not([type=checkbox]),.catalogue select,.catalogue textarea{width:100%;min-width:0;max-width:100%;border:1px solid #cbd3dd;border-radius:7px;background:white;color:var(--ink);padding:10px 11px;font-size:14px}.catalogue textarea{resize:vertical;line-height:1.6}.catalogue input::placeholder{color:#667386}.catalogue fieldset{border:0;padding:0;margin:0;min-width:0}.cat-table{max-width:100%;overflow-x:auto;margin-bottom:16px}.cat-table table{min-width:540px;width:100%;font-variant-numeric:tabular-nums}.cat-table td{overflow-wrap:anywhere}.cat-table input{min-width:90px!important}.cat-record{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.cat-record>div{min-width:0}.cat-record p{margin:5px 0;color:var(--muted)}.cat-records{margin-bottom:18px}.cat-two{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px}.cat-colors{padding-left:20px;line-height:2}.cat-colors b{margin-left:12px}.cat-assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:14px;margin-top:18px}.cat-assets figure{margin:0;min-width:0}.cat-assets img{width:100%;height:110px;object-fit:contain;background:var(--bg)}.cat-assets figcaption{font-size:12px;overflow-wrap:anywhere;margin-top:6px;color:var(--muted)}.cat-version{display:flex;gap:18px;border-top:1px solid var(--line);padding:20px 0}.cat-version>div{flex:1;min-width:0}.cat-version>img{object-fit:contain;flex:none}.cat-variable{padding:18px 0;border-top:1px solid var(--line)}.cat-check{display:flex;align-items:center;gap:8px;min-height:36px}.cat-preview-skc{display:flex;gap:20px;padding:18px 0;border-top:1px solid var(--line)}.cat-preview-images{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.cat-preview-images figure{margin:0;width:120px}.cat-preview-images img{width:120px;height:140px;object-fit:contain;background:var(--bg)}.cat-preview-images figcaption{font-size:12px;color:var(--muted);margin-top:8px}.cat-preview-info{flex:1;min-width:0}.cat-preview-info h3{margin:0 0 16px;overflow-wrap:anywhere}.cat-issues{background:#fff6e6;border:1px solid #ecd8b6;border-radius:8px;padding:14px 18px;margin:16px 0;color:#755013}.cat-issues h3{margin:0;font-size:15px}.cat-issues ul{margin-bottom:0;padding-left:20px;line-height:1.8}.cat-save{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:20px}.cat-save span,.cat-status{color:var(--muted)}.cat-status{min-height:24px;line-height:1.6;overflow-wrap:anywhere}.cat-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0}.cat-facts dt{color:var(--muted);font-size:12px;margin-bottom:5px}.cat-facts dd{margin:0;overflow-wrap:anywhere}.cat-stores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.cat-store{padding:20px}.cat-store h2{margin-top:0;font-size:18px}.cat-store-picks{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0 20px}.catalogue summary{cursor:pointer}.catalogue .error-inline{color:#a52a24}.catalogue .help-details{margin:14px 0}.catalogue :focus-visible{outline:3px solid #95b0ff;outline-offset:3px}.catalogue ::selection{background:#dce7ff;color:#182334}.catalogue input,.catalogue textarea{caret-color:var(--accent)}
@media(max-width:1100px){.cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-preview-skc{flex-direction:column}.cat-two{grid-template-columns:1fr}.cat-stores{grid-template-columns:1fr}}
@media(max-width:650px){.cat-grid{grid-template-columns:1fr}.cat-section,.cat-store{padding:16px}.cat-product{padding:12px;gap:10px;flex-wrap:wrap}.cat-product-copy{flex-basis:calc(100% - 122px)}.cat-product-state{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.cat-filters .search{flex-basis:100%;min-width:0}.cat-view{margin-left:0}.cat-version{flex-direction:column}.cat-facts{grid-template-columns:1fr}.cat-record{flex-wrap:wrap}.cat-cards{grid-template-columns:1fr}.cat-actions .button,.cat-selection .button{min-height:40px}.cat-filters .compact{flex:1}.cat-preview-images figure{width:110px}.cat-preview-images img{width:110px}.cat-store-picks{flex-direction:column;gap:4px}}

.cat-filters .search{padding:0;border:0;background:transparent}.cat-filters .field.compact{margin-bottom:0}.cat-filters .field.compact>span{font-size:12px;color:var(--muted)}.cat-filters .search input{min-height:42px}.cat-table textarea{min-width:180px}.cat-preview-images{max-width:300px}.cat-store .cat-actions{margin-bottom:0}

/* First layer: identity, exceptions and one detail entry. */
.cat-store-list{background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px}.cat-store-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}.cat-store-summary:last-child{border-bottom:0}.cat-store-summary>div{min-width:0}.cat-store-summary h2{font-size:17px;margin:0 0 8px;overflow-wrap:anywhere}.cat-store-summary h2 a{color:var(--ink)}.cat-store-summary p{color:var(--muted);margin:5px 0;overflow-wrap:anywhere}.cat-disclosure{margin:14px 0}.cat-disclosure>summary{font-weight:600;padding:12px 0;cursor:pointer}.cat-disclosure[open]>summary{margin-bottom:12px}.cat-action-products{max-height:380px;overflow:auto;overscroll-behavior:contain}.cat-action-product{padding:12px 0;border-bottom:1px solid var(--line);gap:12px}.cat-action-product>span{min-width:0;overflow-wrap:anywhere}.cat-action-product span span{display:block;margin-top:4px}.cat-action-product small{display:block;color:var(--amber)}.cat-action-product input{flex:none}.cat-disclosure summary:focus-visible{outline:3px solid #95b0ff;outline-offset:3px}
@media(max-width:650px){.cat-store-summary{flex-wrap:wrap;padding:16px}.cat-store-summary .cat-product-state{width:100%}.cat-action-products{max-height:320px}}

/* Formal templates share one list; disclose unresolved fields within each row. */
.catalogue .cat-template-list{max-width:1000px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:12px;padding:0 20px}
.catalogue .cat-template-record{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;padding:14px 0}
.catalogue .cat-template-record:last-child{border-bottom:0}
.catalogue .cat-template-record>div{min-width:0;overflow-wrap:anywhere}
.catalogue .cat-template-record>button{white-space:nowrap}
.catalogue .cat-template-record p{margin:3px 0;line-height:1.5}
.catalogue .cat-template-record .help-details{margin:0;line-height:1.6}
.catalogue .cat-template-record .help-details summary{padding:4px 0}
.catalogue .cat-template-record .help-details ul{margin:6px 0 4px;padding-left:20px}
@media(max-width:650px){.catalogue .cat-template-list{padding:0 14px}.catalogue .cat-template-record{gap:10px}.catalogue .cat-template-record>button{padding:8px 10px}}

.cat-assets figcaption{overflow-wrap:anywhere;line-height:1.5}.cat-assets figcaption span{display:block;color:var(--muted)}.cat-colors li .button{margin-left:8px}.cat-assets figure{min-width:0}
.cat-template-copy{flex:1}.cat-template-actions{display:flex;gap:8px;flex-wrap:wrap;flex:none}.cat-record .cat-check{flex:none}.button.danger{color:#a52a24;border-color:#ddb5b2}.button.danger:hover{background:#fff1f0}
.cat-modal-open{overflow:hidden}.cat-modal{color:var(--ink);background:white;border:1px solid var(--line);border-radius:14px;padding:0;width:min(960px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain}.cat-modal::backdrop{background:rgb(18 30 48 / 45%)}.cat-modal-header{position:sticky;top:0;z-index:1;background:white;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.cat-modal-header h2{font-size:20px;margin:0;overflow-wrap:anywhere;text-wrap:balance;min-width:0}.cat-modal-body{padding:20px 24px}.cat-modal .cat-section{padding:0;margin:0;border:0;border-radius:0}.cat-modal :focus-visible{scroll-margin-block:90px 24px}.cat-delete-list{max-height:40dvh;overflow:auto;line-height:1.8;overflow-wrap:anywhere;padding-left:24px}.cat-modal .cat-actions{flex-wrap:wrap}.cat-modal .cat-table{overscroll-behavior-x:contain;overscroll-behavior-y:auto}.cat-modal .cat-status{margin-bottom:0}
@media(max-width:650px){.cat-modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.cat-modal-header{padding:12px 16px}.cat-modal-body{padding:16px}.cat-template-actions{width:100%}.cat-modal input,.cat-modal select,.cat-modal textarea{font-size:16px}.cat-record .cat-template-copy{flex-basis:70%}}
.bulk-form { max-width: 960px; }
.bulk-form .field { max-width: 720px; }
.bulk-form input[type=file] { width: 100%; min-width: 0; }
.bulk-form .help-details { margin: 16px 0 24px; }
.bulk-form .cat-status { min-height: 1.5em; overflow-wrap: anywhere; }
.bulk-table { min-width: 900px; table-layout: fixed; }
.bulk-table th:nth-child(1) { width: 76px; }
.bulk-table th:nth-child(2) { width: 114px; }
.bulk-table th:nth-child(3) { width: 125px; }
.bulk-table th:nth-child(4) { width: 90px; }
.bulk-table th:nth-child(5) { width: 210px; }
.bulk-table th:nth-child(6) { width: 125px; }
.bulk-table th:nth-child(7) { width: 240px; }
.bulk-table td { white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
.bulk-table img { object-fit: contain; display: block; }
.bulk-table small { display: block; margin-top: 5px; }
.bulk-table ul { margin: 0; padding-left: 18px; }
.bulk-results h2:focus { outline: 2px solid var(--accent); outline-offset: 4px; }
.bulk-results .cat-table:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

/* Audit stays readable at narrow widths; its labelled region owns scrolling. */
.catalogue [data-audit] table{min-width:900px;font-variant-numeric:tabular-nums}
.catalogue [data-audit] td:nth-child(1),.catalogue [data-audit] td:nth-child(2),.catalogue [data-audit] td:nth-child(4){white-space:nowrap}

/* One vertical scroll owner; horizontal tables chain wheel motion to the body. */
.cat-modal[open]{display:flex;flex-direction:column;overflow:hidden}
.cat-modal-header{position:relative;flex:none}
.cat-modal-body{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable}
.cat-modal-footer{flex:none;padding:12px 24px;border-top:1px solid var(--line);background:white}
.cat-modal-footer .cat-actions{margin:0}
.cat-modal :focus-visible{scroll-margin-block:24px}
.cat-attribute-selection{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}
.cat-attribute-selection span{min-width:0;overflow-wrap:anywhere}
.cat-attribute-selection small{display:block;color:var(--muted);margin-top:6px}
.cat-attribute-selection button{flex:none}
[data-attribute-validation]{overflow-wrap:anywhere;line-height:1.7}
@media(max-width:650px){.cat-modal-footer{padding:12px 16px}.cat-modal-footer .cat-actions{gap:8px}}

/* Both controls share URL state; wrap controls without clipping at narrow widths. */
.cat-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:16px 0;font-variant-numeric:tabular-nums;color:var(--muted)}
.cat-pagination label,.cat-pagination>div{display:flex;align-items:center;gap:8px}
.catalogue .cat-pagination select{width:auto;min-height:42px}
.cat-pagination [aria-disabled=true]{opacity:.55;cursor:default}
.cat-loading{min-height:480px}.cat-loading p{min-height:24px;color:var(--muted)}
.cat-placeholder{height:96px;margin-bottom:12px;background:var(--line);border-radius:8px}
@media(max-width:650px){.cat-pagination>span{flex-basis:100%}.cat-pagination .button{min-height:42px}}

.cat-template-status { display: inline-block; margin-inline-start: .6rem; padding: .15rem .45rem; border: 1px solid #a46c35; border-radius: .3rem; color: #794518; background: #fff5e8; font-size: .875rem; }
.cat-template-source { margin-block: 1rem; }
.cat-template-source summary { cursor: pointer; }
.cat-template-source p { white-space: pre-wrap; overflow-wrap: anywhere; }
.campaign-store-table{min-width:560px;table-layout:fixed}.campaign-store-table th:first-child{width:46%}.campaign-store-table th:last-child{width:128px}.campaign-store-table td{overflow-wrap:anywhere;white-space:normal}.campaign-store-table .button{white-space:nowrap}

.cat-campaign-stores>.cat-pagination{margin:16px 20px}.cat-campaign-stores>.cat-section{padding-bottom:0}.platform-read .cat-pagination select{width:auto}.platform-read .cat-pagination-controls{max-width:100%}
.intake-review .intake-rows {margin: 20px 0;}
.intake-review .cat-disclosure {margin: 16px 0;}
.intake-review .cat-grid {grid-template-columns: repeat(auto-fit,minmax(min(100%,260px),1fr));}
.intake-review input,.intake-review select {max-width:100%;min-width:0;}
.intake-review summary,.intake-review h3,.intake-review td {overflow-wrap:anywhere;}
.intake-material {display:flex;gap:12px;align-items:center;margin:12px 0;}
.intake-material span {min-width:0;overflow-wrap:anywhere;}
.intake-material img {object-fit:contain;flex-shrink:0;}
