/* Shared catalog layout: public page and file-based editor. */
.catalog-page,.catalog-editor { color:#323237; background:#fff; font-family:Raleway,Arial,sans-serif; }
.catalog-main { padding:150px 0 0; }
.catalog-container { max-width:1140px; margin:0 auto; padding:0 24px; }
.catalog-hero { text-align:center; padding:10px 0 42px; }
.catalog-eyebrow { color:#dd151d; font-size:12px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; margin:0 0 18px; }
.catalog-hero h1 { font-size:42px; font-weight:600; line-height:1.15; margin:0 0 20px; }
.catalog-hero .catalog-subtitle { max-width:780px; margin:0 auto; line-height:1.7; font-size:17px; color:#666; white-space:pre-line; }
.catalog-benefits { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin:26px auto 0; max-width:950px; }
.catalog-benefits span { background:#f7f7f7; border-radius:20px; padding:8px 15px; font-size:12px; color:#555; }
.catalog-tools { display:flex; gap:12px; align-items:center; margin:0 0 30px; flex-wrap:wrap; }
.catalog-tools .catalog-search { box-sizing:border-box; margin:0; padding:13px 16px; border:1px solid #dedede; border-radius:5px; width:300px; height:46px; font:inherit; font-size:14px; font-weight:400; line-height:1.4; }
.category-links { display:flex; gap:7px; flex-wrap:wrap; flex:1; }
.category-links a { color:#555; text-decoration:none; font-size:12px; font-weight:400; line-height:1.2; padding:10px 12px; border:1px solid #e5e5e5; border-radius:4px; }
.category-links a:hover { color:#dd151d; border-color:#dd151d; }
#catalog-root [hidden] { display:none !important; }
.catalog-category { padding:0; margin:0 0 50px; scroll-margin-top:28px; }
.category-heading { border-bottom:2px solid #dd151d; padding:14px 0; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.category-heading h2 { font-size:24px; font-weight:600; line-height:1.3; margin:0; }
.category-heading small { display:block; margin-top:5px; color:#888; font-size:12px; font-weight:400; }
.catalog-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.catalog-table thead th { padding:18px 14px; background:#f7f7f7; font-size:11px; font-weight:700; letter-spacing:.7px; text-transform:uppercase; color:#666; text-align:center; }
.catalog-table thead th:first-child { width:23%; }
.catalog-table thead th:nth-child(2) { width:29%; text-align:left; }
.catalog-table thead th:nth-child(n+3) { width:16%; }
.catalog-table td { vertical-align:middle; padding:25px 14px; border-bottom:1px solid #e7e7e7; }
.catalog-table .packing-cell { text-align:center; }
.product-photo { display:block; width:100%; height:145px; object-fit:contain; margin:0 auto 18px; }
.product-name { margin:0 0 9px; font-size:16px; font-weight:700; line-height:1.45; white-space:pre-line; }
.product-description { font-weight:400; margin:0; color:#666; font-size:14px; line-height:1.65; white-space:pre-line; }
.new-badge { display:inline-block; color:#dd151d; background:#fff1f1; border-radius:3px; padding:3px 8px; font-size:10px; font-weight:700; letter-spacing:.5px; margin-bottom:10px; }
.product-document { display:block; margin-top:12px; color:#dd151d; font-size:12px; text-decoration:none; font-weight:600; }
.product-document:hover { text-decoration:underline; }
.pack-photo { display:block; width:100%; height:110px; object-fit:contain; margin-bottom:14px; }
.pack-details { font-weight:400; white-space:pre-line; color:#555; font-size:12px; line-height:1.6; margin:0; }
.variant-packs+.variant-packs { border-top:1px dashed #ddd; padding-top:20px; margin-top:20px; }
.catalog-empty { padding:30px; background:#f7f7f7; color:#777; text-align:center; }
.catalog-portioning { background:#f7f7f7; padding:30px; margin:0 0 40px; border:1px solid #ededed; border-radius:8px; overflow:visible; scroll-margin-top:30px; }
.portioning-header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0; cursor:pointer; list-style:none; }
.portioning-header::-webkit-details-marker { display:none; }
.catalog-portioning[open] .portioning-header { margin-bottom:24px; }
.portioning-header .catalog-eyebrow { margin:0 0 8px; font-size:10px; letter-spacing:1.2px; }
.portioning-header h2 { margin:0; font-size:25px; font-weight:600; line-height:1.3; }
.portioning-toggle { width:18px; height:18px; flex-shrink:0; fill:none; stroke:#666; stroke-width:1.5; transition:transform .2s ease; }
.catalog-portioning[open] .portioning-toggle { transform:rotate(180deg); }
.portioning-actions { margin-bottom:20px; }
.portioning-group + .portioning-group { margin-top:22px; }
.portioning-group h3 { font-size:12px; font-weight:600; line-height:1.4; color:#666; margin:0 0 12px; }
.portioning-grid { display:grid; gap:12px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.portioning-grid.rectangular { grid-template-columns:repeat(5,minmax(0,1fr)); }
.portioning-card { background:#fff; border:1px solid #e9e9e9; border-radius:5px; padding:12px 10px 16px; text-align:center; }
.portion-diagram { display:block; width:100%; max-width:160px; height:110px; margin:0 auto 8px; }
.portion-outline { fill:none; stroke:#55565e; stroke-width:1.4; vector-effect:non-scaling-stroke; }
.portion-cut { stroke:#c2c2c8; stroke-width:1; vector-effect:non-scaling-stroke; }
.portion-highlight { fill:#fbe8e9; stroke:#dd151d; stroke-width:1.3; vector-effect:non-scaling-stroke; }
.portioning-card .portioning-count { font-size:14px; font-weight:600; line-height:1.5; margin:0 0 4px; color:#323237; }
.portioning-card .portioning-size { font-size:12px; font-weight:400; line-height:1.5; margin:0; color:#777; }
#catalog-products { scroll-margin-top:30px; }
.portioning-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 16px; border:1px solid #eee; border-radius:5px; padding:16px; margin:16px 0; }
.portioning-fields>.catalog-button { justify-self:start; }
.catalog-closing { text-align:center; padding:0 0 50px; }
.catalog-closing h2 { font-size:18px; font-weight:600; }
.closing-images { display:flex; justify-content:center; flex-wrap:wrap; gap:24px; margin:28px 0; }
.closing-images img { max-width:170px; max-height:105px; object-fit:contain; }
.catalog-button { appearance:none; padding:10px 15px; border:1px solid #ddd; background:white; color:#323237; border-radius:5px; font:600 12px Raleway,Arial,sans-serif; cursor:pointer; line-height:1.4; text-decoration:none; display:inline-block; }
.catalog-button:hover { border-color:#dd151d; color:#dd151d; }
.catalog-button.primary { background:#dd151d; border-color:#dd151d; color:white; }
.catalog-button:disabled { opacity:.5; cursor:wait; }
.catalog-button.danger { color:#bb151d; }
.catalog-button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid #dd151d; outline-offset:3px; }
.catalog-editor { margin:0; font-size:15px; }
.catalog-editor *, .catalog-editor *:before, .catalog-editor *:after { box-sizing:border-box; }
.catalog-editor [hidden] { display:none !important; }
.editor-header { display:flex; justify-content:space-between; align-items:center; padding:22px 32px; border-bottom:1px solid #eee; }
.editor-header>a:not(.editor-brand) { color:#777; text-decoration:none; font-size:13px; }
.editor-brand { color:#323237; font-weight:700; font-size:27px; text-decoration:none; }
.editor-brand span { color:#dd151d; }
.login-panel { max-width:430px; margin:70px auto; padding:28px; }
.login-panel h1 { font-size:30px; margin:0 0 18px; }
.login-panel p { line-height:1.6; }
.login-panel label { display:block; margin-bottom:10px; font-weight:600; }
.login-panel input { width:100%; padding:13px; margin:0 0 18px; border:1px solid #ddd; border-radius:5px; font:inherit; }
.login-panel button { width:100%; }
.editor-toolbar { position:sticky; top:0; z-index:20; padding:18px 26px; background:#fff; border-bottom:1px solid #ddd; display:flex; align-items:center; justify-content:space-between; gap:20px; box-shadow:0 4px 12px #00000005; }
.editor-toolbar p { font-size:12px; color:#777; margin:6px 0 0; }
.editor-actions { display:flex; flex-wrap:wrap; gap:6px; }
.editor-hint { max-width:1140px; margin:25px auto; padding:0 24px; color:#777; line-height:1.7; font-size:13px; }
.catalog-editor .catalog-category { scroll-margin-top:135px; }
.category-actions,.product-actions { display:flex; gap:5px; flex-wrap:wrap; margin:10px 0 0; }
.category-actions { margin:0; justify-content:flex-end; }
.product-actions .catalog-button { font-size:10px; padding:7px 9px; }
.edit-dialog { width:760px; max-width:calc(100% - 28px); border:0; border-radius:10px; padding:0; max-height:90vh; box-shadow:0 20px 90px #0004; color:#323237; }
.edit-dialog::backdrop { background:#0005; }
.dialog-header { display:flex; justify-content:space-between; align-items:center; padding:20px 26px; border-bottom:1px solid #eee; }
.dialog-header h2 { font-size:21px; margin:0; font-weight:600; }
.dialog-header .close-dialog { background:none; border:0; cursor:pointer; font-size:28px; color:#888; }
#dialog-fields { padding:22px 26px; }
.dialog-footer { padding:18px 26px; display:flex; justify-content:flex-end; gap:10px; border-top:1px solid #eee; }
.edit-dialog label { display:block; font-size:12px; font-weight:600; margin:0 0 8px; }
.edit-dialog input:not([type=checkbox]),.edit-dialog textarea,.edit-dialog select { display:block; width:100%; border:1px solid #ddd; border-radius:5px; padding:11px; font:14px Raleway,Arial,sans-serif; color:#323237; background:#fff; margin:0 0 18px; }
.edit-dialog textarea { min-height:100px; resize:vertical; line-height:1.6; }
.edit-dialog input[type=file] { font-size:12px; }
.edit-dialog .checkbox-label { display:flex; align-items:center; gap:8px; margin:0 0 24px; }
.dialog-help { color:#777; font-size:12px; line-height:1.7; margin:0 0 20px; }
.image-editor img { max-width:150px; height:100px; object-fit:contain; display:block; margin-bottom:12px; }
.image-editor { margin:15px 0; }
.image-editor .catalog-button { margin:0 0 12px; }
.form-error { color:#b0151d; font-size:13px; line-height:1.6; padding:0 26px; }
.login-panel .form-error { padding:0; }
.variant-editor { padding:20px 0; border-top:1px solid #eee; }
.variant-editor h3 { margin:0 0 18px; font-size:16px; }
.package-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.package-grid h4 { margin:0 0 16px; font-size:13px; }
.package-grid .image-editor img { width:100%; }
@media(max-width:767px) {
 .catalog-main { padding-top:90px; }
 .catalog-hero h1 { font-size:31px; }
 .catalog-hero .catalog-subtitle { font-size:15px; }
 .catalog-benefits { gap:7px; }.catalog-benefits span { font-size:11px; }
 .catalog-tools { display:block; }.catalog-tools .catalog-search { width:100%; margin-bottom:15px; }
 .category-links a { font-size:11px; padding:8px; }
 .category-heading { display:block; }.category-heading h2 { font-size:21px; }
 .catalog-table,.catalog-table tbody,.catalog-table tr { display:block; width:100%; }
 .catalog-table thead { display:none; }
 .catalog-table tr { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid #ddd; padding:24px 0; gap:0; }
 .catalog-table td { border:0; display:block; padding:14px 6px; }
 .catalog-table .product-cell { grid-column:1/-1; text-align:center; }
 .catalog-table .description-cell { grid-column:1/-1; padding:0 6px 20px; }
 .catalog-table .packing-cell:before { content:attr(data-label); display:block; text-transform:uppercase; letter-spacing:.3px; font-size:9px; font-weight:700; color:#777; margin-bottom:15px; }
 .product-photo { height:170px; max-width:240px; }
 .product-name { font-size:18px; }.product-description { font-size:14px; }
 .pack-photo { height:85px; }.pack-details { font-size:11px; }
 .catalog-portioning { padding:22px 16px; }
 .portioning-header { gap:12px; }
 .catalog-portioning[open] .portioning-header { margin-bottom:20px; }
 .portioning-header h2 { font-size:22px; }
 .portioning-grid,.portioning-grid.rectangular { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
 .portioning-card { padding:10px 6px 14px; }
 .portion-diagram { height:96px; }
 .portioning-card .portioning-count { font-size:13px; }
 .catalog-container { padding:0 16px; }
 .category-actions { justify-content:flex-start; margin-top:14px; }.product-actions { justify-content:center; }
 .editor-header { padding:20px; }.editor-toolbar { display:block; padding:15px; }.editor-actions { margin-top:12px; }
 .editor-hint { padding:0 16px; }.editor-toolbar strong { font-size:14px; }
 .editor-actions .catalog-button { font-size:11px; padding:8px 10px; }
 .package-grid { grid-template-columns:1fr; }.package-grid>div { border-bottom:1px solid #eee; }
 .edit-dialog { max-height:92vh; }.dialog-header,#dialog-fields,.dialog-footer { padding:18px; }
 .catalog-editor .catalog-category { scroll-margin-top:180px; }
}
@media print {
 .nav-container,.footer,.catalog-tools,.editor-header,.editor-toolbar,.editor-hint,.category-actions,.product-actions { display:none !important; }
 .catalog-main { padding-top:0; }.catalog-category { break-inside:auto; }.catalog-table tr { break-inside:avoid; }
}
