:root {
  color-scheme: light;
  --ink: #122033;
  --muted: #5c6876;
  --line: #dfe5eb;
  --surface: #ffffff;
  --wash: #f4f7f9;
  --navy: #0c2d4f;
  --teal: #087f79;
  --green: #18794e;
  --amber: #9a6700;
  --red: #b42318;
}

/* Administration Panel V0.4.1 */
.admin-import-grid { display:grid; grid-template-columns:1fr 1.5fr; gap:1rem; margin:1rem 0; }
.admin-import-grid label, .admin-section > label { display:flex; flex-direction:column; gap:.4rem; font-weight:700; color:var(--ink); }
.admin-import-grid input, .admin-section > label input, .policy-json { width:100%; border:1px solid #bdcad7; border-radius:6px; background:#fff; color:var(--ink); padding:.72rem; font:inherit; }
.policy-json { box-sizing:border-box; display:block; margin:.75rem 0 1rem; min-width:100%; width:100%; font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.82rem; line-height:1.45; resize:vertical; }
.schedule-editor { max-width:none; min-height:22rem; }
.admin-result { margin:1rem 0 0; max-height:24rem; overflow:auto; white-space:pre-wrap; border:1px solid #cdd9e3; border-radius:7px; background:#f5f8fa; padding:1rem; color:#173047; font-size:.8rem; }
.button-row { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; margin-top:1rem; }
.button.danger { background:#8a2b2b; border-color:#8a2b2b; }
.button.danger:disabled { background:#aab4bd; border-color:#aab4bd; cursor:not-allowed; }
.button.secondary { background:#eef4f7; border:1px solid #b7c7d3; color:#0d3558; }
.admin-section details { border-top:1px solid #d5dfe7; margin-top:1rem; padding-top:.8rem; }
.admin-section summary { cursor:pointer; font-weight:700; }
.admin-kpi-grid.compact { grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:760px) { .admin-import-grid,.admin-kpi-grid.compact { grid-template-columns:1fr; } }

* { box-sizing: border-box; }
body { margin: 0; background: var(--wash); color: var(--ink); font-family: Inter, "Segoe UI", Arial, sans-serif; }
.topbar { align-items: center; background: var(--navy); color: white; display: flex; gap: 36px; justify-content: space-between; min-height: 86px; padding: 18px clamp(24px, 5vw, 72px); }
.brand { color: white; font-size: 1.55rem; font-weight: 750; letter-spacing: .01em; text-decoration: none; }
.strapline { color: #b9d4e7; font-size: .88rem; margin-top: 3px; }
.topbar nav { display: flex; gap: 8px; }
.topbar nav a { border-radius: 5px; color: #d9e8f2; font-size: .86rem; padding: 9px 11px; text-decoration: none; }
.topbar nav a:hover { background: rgba(255,255,255,.1); color: white; }
.mode { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.22); border-radius: 999px; font-size: .82rem; padding: 9px 14px; white-space: nowrap; }
.page { margin: 0 auto; max-width: 1420px; padding: 48px clamp(24px, 5vw, 72px) 80px; }
.hero { align-items: end; display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr) 260px; margin-bottom: 28px; }
.page-heading { margin-bottom: 28px; }
.eyebrow { color: var(--teal); font-size: .76rem; font-weight: 800; letter-spacing: .12em; margin: 0 0 8px; text-transform: uppercase; }
h1, h2, h3 { margin-top: 0; }
h1 { font-size: clamp(2.2rem, 5vw, 4rem); letter-spacing: -.04em; margin-bottom: 14px; }
h2 { font-size: 1.55rem; }
.lede { color: var(--muted); font-size: 1.08rem; line-height: 1.65; margin: 0; max-width: 900px; }
.status-card { background: var(--surface); border: 1px solid var(--line); border-left: 6px solid var(--green); border-radius: 10px; display: grid; gap: 5px; padding: 22px; }
.status-card.hold { border-left-color: var(--amber); }
.status-card span, .status-card small { color: var(--muted); }
.status-card strong { font-size: 1.65rem; }
.notice { background: #eaf7f5; border: 1px solid #b8ded9; border-radius: 8px; color: #134e4a; line-height: 1.5; margin: 0 0 34px; padding: 15px 18px; }
.notice.warning { background: #fff8e6; border-color: #ead59c; color: #6e4b00; }
.catalogue-summary { align-items: center; background: var(--navy); border-radius: 12px; color: white; display: flex; justify-content: space-between; margin: 0 0 48px; padding: 28px 30px; }
.catalogue-summary .eyebrow { color: #83d7cf; }
.catalogue-summary h2 { margin-bottom: 8px; }
.catalogue-summary p:last-child { color: #c9d9e6; margin: 0; }
.section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 18px; }
.button, button { background: var(--navy); border: 0; border-radius: 6px; color: white; cursor: pointer; font: inherit; font-size: .88rem; padding: 11px 15px; text-decoration: none; }
.catalogue-summary .button { background: white; color: var(--navy); }
.button.secondary { background: var(--surface); border: 1px solid var(--line); color: var(--navy); }
.authority-grid { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.authority-card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 6px 18px rgba(18,32,51,.04); padding: 20px; }
.card-topline { align-items: center; display: flex; justify-content: space-between; margin-bottom: 16px; }
.supplier-code, .code { color: var(--muted); font-family: Consolas, monospace; font-size: .78rem; }
.pill { border-radius: 999px; font-size: .72rem; font-weight: 700; padding: 5px 9px; text-transform: uppercase; }
.pill.ok { background: #e7f6ed; color: var(--green); }
.pill.hold { background: #fff5d6; color: var(--amber); }
.pill.missing { background: #fff0ee; color: var(--red); }
.authority-card h3 { font-size: 1rem; line-height: 1.35; min-height: 2.7em; }
dl { margin: 0; }
dl div { border-top: 1px solid var(--line); display: flex; font-size: .82rem; gap: 16px; justify-content: space-between; padding: 9px 0; }
dt { color: var(--muted); }
dd { margin: 0; text-align: right; }
.search-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 18px; padding: 20px; }
.search-form { align-items: start; column-gap: 14px; display: grid; grid-template-columns: minmax(260px, 1.4fr) repeat(4, minmax(150px, .7fr)) auto; row-gap: 12px; }
.search-form > label { display: grid; gap: 7px; }
.search-form > label > span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.search-form > label > small, .quote-search-form > label > small { color: var(--muted); font-size: .72rem; }
.search-form > label > span, .quote-search-form > label > span, .supplier-filter-field > span { align-items: flex-end; display: flex; line-height: 1.25; min-height: 2.4em; }
.search-form > label > small, .quote-search-form > label > small { line-height: 1.35; min-height: 2.7em; }
.search-form-actions { border-top: 1px solid #edf1f4; display: flex; grid-column: 1 / -1; justify-content: flex-end; margin-top: 2px; padding-top: 12px; }
.search-form-actions button { min-height: 43px; min-width: 150px; }
.supplier-filter-field { align-self: start; display: grid; gap: 7px; min-width: 210px; position: relative; }
.supplier-filter-field > span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.supplier-filter { margin: 0; min-width: 210px; position: relative; }
.supplier-filter summary { align-items: center; background: white; border: 1px solid #cbd5df; border-radius: 6px; color: var(--ink); cursor: pointer; display: flex; font-size: .88rem; height: 43px; justify-content: space-between; list-style: none; padding: 0 12px; user-select: none; }
.supplier-filter summary::-webkit-details-marker { display: none; }
.supplier-filter summary::after { content: "▾"; font-size: .85rem; margin-left: 12px; transition: transform .15s ease; }
.supplier-filter[open] summary { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(8,127,121,.12); }
.supplier-filter[open] summary::after { transform: rotate(180deg); }
.supplier-filter-menu { background: white; border: 1px solid #cbd5df; border-radius: 6px; box-shadow: 0 10px 24px rgba(12,45,79,.16); left: 0; margin-top: 4px; max-height: 260px; min-width: 100%; overflow-y: auto; padding: 6px; position: absolute; top: 100%; width: max-content; z-index: 60; }
.supplier-filter .supplier-option { align-items: center; border-radius: 4px; cursor: pointer; display: flex !important; font-size: .86rem; gap: 8px; min-width: 190px; padding: 8px; white-space: nowrap; }
.supplier-filter .supplier-option:hover { background: #edf7f6; }
.supplier-filter .supplier-option span { color: var(--ink); font-size: .86rem; font-weight: 500; }
.supplier-filter .supplier-option input { accent-color: var(--teal); flex: 0 0 auto; height: 16px; margin: 0; padding: 0; width: 16px; }
.cost-range-field { align-self: start; column-gap: 10px; display: grid; grid-column: span 2; grid-template-columns: minmax(88px, .7fr) repeat(2, minmax(82px, 1fr)); grid-template-rows: minmax(2.4em, auto) 43px minmax(2.7em, auto); min-width: 260px; row-gap: 7px; }
.cost-range-field > span { align-items: flex-end; border-right: 1px solid var(--line); color: var(--muted); display: flex; font-size: .78rem; font-weight: 700; grid-column: 1; grid-row: 1; line-height: 1.25; min-height: 2.4em; padding-right: 10px; }
.cost-range-inputs, .cost-range-inputs label { display: contents; }
.cost-range-inputs label > span { align-items: flex-end; color: var(--muted); display: flex; font-size: .72rem; grid-row: 1; line-height: 1.25; min-height: 2.4em; }
.cost-range-inputs label:first-child > span, .cost-range-inputs label:first-child > input { grid-column: 2; }
.cost-range-inputs label:last-child > span, .cost-range-inputs label:last-child > input { grid-column: 3; }
.cost-range-inputs label > input { grid-row: 2; }
.cost-range-field > small { color: var(--muted); font-size: .72rem; grid-column: 1 / -1; grid-row: 3; line-height: 1.35; min-height: 2.7em; }
.cost-range-field[data-catalogue-cost-range] { grid-column:span 1; grid-template-columns:minmax(220px,1fr); grid-template-rows:minmax(2.4em,auto) auto minmax(2.7em,auto); min-width:220px; }
.cost-range-field[data-catalogue-cost-range] > span { border:0; grid-column:1; grid-row:1; padding:0; }
.cost-range-field[data-catalogue-cost-range] .cost-range-inputs { display:grid; gap:10px; grid-column:1; grid-row:2; grid-template-columns:repeat(2,minmax(82px,1fr)); }
.cost-range-field[data-catalogue-cost-range] .cost-range-inputs label { display:grid; gap:7px; min-width:0; }
.cost-range-field[data-catalogue-cost-range] .cost-range-inputs label > span { grid-column:auto; grid-row:auto; min-height:1.2em; }
.cost-range-field[data-catalogue-cost-range] .cost-range-inputs label > input { grid-column:auto; grid-row:auto; min-width:0; }
.cost-range-field[data-catalogue-cost-range] > small { grid-column:1; grid-row:3; }
input, select { background: white; border: 1px solid #cbd5df; border-radius: 6px; color: var(--ink); font: inherit; height: 43px; padding: 0 12px; width: 100%; }
input:focus, select:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(8,127,121,.12); outline: none; }
.supplier-filter summary:focus-visible { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(8,127,121,.12); outline: none; }
.result-heading { align-items: center; color: var(--muted); display: flex; font-size: .88rem; justify-content: space-between; margin: 18px 2px 10px; }
.result-heading strong { color: var(--ink); }
.table-wrap { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; overflow-x: auto; }
table { border-collapse: collapse; min-width: 980px; width: 100%; }
th { background: #edf2f6; color: #39495b; font-size: .74rem; letter-spacing: .04em; padding: 12px 14px; text-align: left; text-transform: uppercase; }
td { border-top: 1px solid var(--line); font-size: .86rem; line-height: 1.4; padding: 13px 14px; vertical-align: top; }
tbody tr:hover { background: #f9fbfc; }
.product-link { color: var(--navy); font-weight: 700; text-decoration: none; }
.product-link:hover { text-decoration: underline; }
.supplier-badge { border-radius: 999px; display: inline-block; font-size: .7rem; font-weight: 800; padding: 5px 8px; }
.supplier-badge.pfc { background: #e6f0fb; color: #174f85; }
.supplier-badge.mob { background: #e7f6ed; color: #176742; }
.empty { color: var(--muted); padding: 36px; text-align: center; }
.pagination { align-items: center; display: flex; gap: 14px; justify-content: center; margin-top: 22px; }
.pagination a, .back-link { color: var(--navy); font-weight: 700; text-decoration: none; }
.pagination span { color: var(--muted); font-size: .86rem; }
.back-link { display: inline-block; margin-bottom: 24px; }
.product-hero { align-items: start; display: grid; gap: 42px; grid-template-columns: minmax(0, 1fr) 330px; }
.product-flags { align-items: center; display: flex; gap: 10px; margin-bottom: 18px; }
.facts { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 16px 20px; }
.detail-section { margin-top: 48px; }
.category-list { display: grid; gap: 10px; }
.category-list article { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 6px; padding: 16px; }
.category-list small { color: var(--muted); }
.product-actions { display: flex; gap: 10px; margin-top: 24px; }
.crm-content-card { background: var(--surface); border: 1px solid var(--line); border-left: 6px solid var(--teal); border-radius: 10px; padding: 22px 24px; }
.crm-content-card h3 { font-size: 1.2rem; margin: 18px 0 10px; }
.crm-content-card p { line-height: 1.65; margin: 0; max-width: 1000px; }
.content-fallback { color: var(--muted); display: block; margin-top: 8px; }
.content-provenance { display: flex; gap: 24px; }
.content-provenance div { border: 0; display: grid; gap: 3px; padding: 0; }
.content-provenance dd { text-align: left; }
.variant-content { min-width: 360px; }
.variant-content strong { display: block; font-size: .82rem; margin-bottom: 7px; }
.variant-content details { color: var(--muted); margin-bottom: 7px; }
.variant-content details p { line-height: 1.5; margin: 7px 0; }
.variant-content small, .muted { color: var(--muted); }
.login-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; margin: 40px auto; max-width: 720px; padding: 34px; }
.login-panel h1 { font-size: 2.4rem; }
.login-form { display: grid; gap: 16px; margin-top: 28px; }
.login-form label, .variant-form label { display: grid; gap: 7px; }
.login-form label span, .variant-form label span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.internal-toolbar { align-items: center; display: flex; justify-content: space-between; margin-bottom: 20px; }
.internal-toolbar .back-link { margin: 0; }
.internal-heading { align-items: start; display: grid; gap: 42px; grid-template-columns: minmax(0, 1fr) 260px; margin-bottom: 28px; }
.internal-heading h1 { font-size: clamp(2.1rem, 4.5vw, 3.6rem); }
.variant-form { max-width: 760px; }
.pricing-summary { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 26px 0; }
.pricing-summary div { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 6px; padding: 15px; }
.pricing-summary span { color: var(--muted); font-size: .75rem; text-transform: uppercase; }
.detail-section.compact { margin-top: 32px; }
.confidential-table table { min-width: 1660px; }
.confidential-table td { white-space: nowrap; }
.confidential-table th { line-height: 1.18; white-space: normal; }
.confidential-table.all-columns th { white-space: nowrap; }
.confidential-table.compact-columns table { min-width: 1040px; table-layout: fixed; }
.confidential-table.compact-columns th { padding: 10px 8px; }
.confidential-table.compact-columns td { padding: 11px 8px; }
.confidential-table.compact-columns [data-column="selling_unit"] { width: 104px; }
.confidential-table.compact-columns .manual-sale-price { min-width: 72px; padding-left: 8px; padding-right: 8px; width: 72px; }
.source-receipt { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; margin-top: 22px; padding: 16px 20px; }
.source-receipt summary { cursor: pointer; font-weight: 700; }
.source-receipt dl { margin-top: 16px; }
.source-receipt dd.code { max-width: 720px; overflow-wrap: anywhere; }
.notice.error { background: #fff0ee; border-color: #efb7b1; color: #7a271a; }
.quote-heading { margin-bottom: 22px; }
.quote-search-card { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; margin: 30px 0 42px; padding: 24px; scroll-margin-top: 88px; }
.quote-search-form { align-items: start; column-gap: 12px; display: grid; grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(145px, .7fr)) auto; row-gap: 12px; }
.add-quote-actions { align-items: center; display: flex; gap: 18px; justify-content: space-between; margin-top: 18px; }
.add-quote-actions > div { display: flex; gap: 10px; }
.quote-lead-time-field, .quote-stock-field { background:#f5f8fa; border:1px solid var(--line); border-radius:8px; padding:.7rem .8rem; }
.quote-lead-time-field > span, .quote-stock-field > span { color:var(--muted); display:block; font-size:.75rem; font-weight:650; }
.lead-time-values { display:grid; gap:.25rem; margin:.25rem 0; }
.lead-time-values div { font-size:.82rem; }
.lead-time-result { display:grid; gap:.15rem; margin-bottom:.45rem; }
.lead-time-result small, .product-link + small { color:var(--muted); display:block; margin-top:.18rem; }
.lead-time-grid { display:grid; gap:12px; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); }
.lead-time-grid article, .selected-colour { background:var(--surface); border:1px solid var(--line); border-radius:8px; display:grid; gap:.25rem; padding:1rem; }
.lead-time-grid small, .selected-colour small, .selected-colour span { color:var(--muted); }
.selected-colour { margin:1rem 0; max-width:24rem; }
.selected-variant-row { background:#eaf7f3; box-shadow:inset 4px 0 var(--accent); }
.quote-search-form > label, .quote-fields label, .override-grid label, .upload-control { display: grid; gap: 7px; }
.quote-search-form > label > span, .quote-fields label span, .override-grid label span, .upload-control span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.quote-search-results { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-top: 16px; }
.quote-result { background: #f8fafc; border: 1px solid var(--line); color: var(--ink); display: grid; gap: 5px; padding: 13px; text-align: left; }
.quote-result:hover { border-color: var(--teal); }
.quote-result small { color: var(--muted); }
.quote-lines { display: grid; gap: 20px; }
.quote-line-card { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 22px; }
.quote-line-top { align-items: start; display: grid; gap: 22px; grid-template-columns: 220px minmax(0, 1fr) auto; }
.quote-image-panel { display: grid; gap: 10px; }
.quote-product-image, .image-placeholder { aspect-ratio: 1; background: #f5f7f9; border: 1px solid var(--line); border-radius: 8px; height: 210px; object-fit: contain; width: 210px; }
.image-placeholder { align-items: center; color: var(--muted); display: flex; font-size: .82rem; justify-content: center; padding: 18px; text-align: center; }
.upload-control input { height: auto; padding: 8px; }
.image-note { color: var(--muted); overflow-wrap: anywhere; }
.quote-line-main h2 { margin-bottom: 8px; }
.line-description { color: var(--muted); line-height: 1.55; max-width: 900px; }
.quote-fields { display: grid; gap: 13px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 20px; }
.quote-fields .wide, .override-grid .wide { grid-column: 1 / -1; }
.quote-fields small { color: var(--muted); }
.quote-actions { align-items: center; display: flex; gap: 10px; }
.quote-line-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 8px; }
.compact-button { font-size: .78rem; padding: 8px 11px; }
.crm-content-note { color: var(--muted); display: block; font-size: .76rem; line-height: 1.45; margin-top: 8px; }
.supplier-crm-action { align-items: flex-start; background: #f2f8f8; border: 1px solid #c7e2df; border-radius: 8px; display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 12px; padding: 11px 12px; }
.supplier-crm-action[hidden] { display: none; }
.supplier-crm-action small { color: var(--muted); flex: 1 1 320px; line-height: 1.45; }
.draft-note { color: var(--muted); font-size: .82rem; margin: -10px 0 18px; }
.quote-storage-panel { align-items: end; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 16px; grid-template-columns: 1fr; margin: 12px 0 18px; padding: 16px; }
.quote-storage-panel h3, .quote-storage-panel p { margin: 0; }
.quote-storage-panel p { color: var(--muted); font-size: .86rem; }
.quote-storage-heading { display:flex; flex-wrap:wrap; gap:4px 16px; justify-content:space-between; }
.quote-storage-heading .eyebrow, .quote-storage-heading h3 { flex-basis:100%; }
.quote-storage-open { align-items: end; display: grid; gap: 10px; grid-template-columns: minmax(260px, 1fr) auto; max-width:820px; }
.quote-storage-open label { display: grid; gap: 5px; }
.zigaflow-mapping-issues { margin-bottom: 18px; overflow-wrap: anywhere; }
.zigaflow-mapping-issues p { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .78rem; }
.quote-stock-field { background: #f7fafb; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 4px; padding: 12px 14px; }
.quote-stock-field > span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.stock-value { color: var(--navy); font-size: 1.15rem; }
.branding-panel { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 22px; }
.branding-options { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
.branding-choice { border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 12px; padding: 13px; }
.branding-choice-head { align-items: start; color: var(--navy); display: grid; font-weight: 700; gap: 10px; grid-template-columns: auto 1fr; }
.branding-choice-head input { height: auto; margin-top: 3px; width: auto; }
.branding-controls { display: grid; gap: 9px; grid-template-columns: 1fr 1fr; }
.branding-controls label { display: grid; gap: 5px; }
.branding-controls label > span { color: var(--muted); font-size: .72rem; font-weight: 650; }
.branding-controls select { min-width: 0; padding: 8px; }
.inline-check { align-items: center; display: flex; font-size: .82rem; gap: 8px; }
.inline-check input { height: auto; width: auto; }
.print-colour-coverage { color: var(--amber); display: block; font-size: .74rem; line-height: 1.45; }
.split-panel, .print-details-panel, .sale-override-panel { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 18px; }
.split-panel summary, .print-details-panel > summary, .sale-override-panel summary { color: var(--navy); cursor: pointer; font-weight: 700; }
.split-panel > .notice, .sale-override-panel > .notice { margin: 14px 0; }
.split-controls { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(230px, 1fr)); margin: 14px 0; max-width: 650px; }
.split-controls label { display: grid; gap: 7px; }
.split-controls label > span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.split-rows { display: grid; gap: 9px; margin: 14px 0; }
.split-row { background: #f7fafb; border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.split-row-controls { align-items: end; display: grid; gap: 10px; grid-template-columns: minmax(240px, 1fr) 145px 145px auto; }
.split-row label { display: grid; gap: 5px; }
.split-row label > span { color: var(--muted); font-size: .72rem; font-weight: 650; }
.split-stock { color: var(--navy); font-size: .78rem; min-height: 43px; padding: 12px 0; }
.delivery-details { margin-top: 0; }
.delivery-details .quote-fields { margin-top: 10px; }
.delivery-multi-site-fields > small { color: var(--muted); display: block; margin-top: 10px; }
.multi-site-rows, .print-detail-rows { display: grid; gap: 10px; margin: 14px 0; }
.multi-site-row, .print-detail-row { background: #f7fafb; border: 1px solid var(--line); border-radius: 8px; padding: 12px; }
.multi-site-row { align-items: end; display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; }
.multi-site-row .wide { grid-column: 1 / -1; }
.multi-site-row label, .print-detail-grid label { display: grid; gap: 6px; }
.multi-site-row label > span, .print-detail-grid label > span { color: var(--muted); font-size: .75rem; font-weight: 650; }
.multi-site-row textarea, .print-detail-grid textarea { min-height: 72px; resize: vertical; }
.multi-site-plan { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; margin: 0 0 20px; padding: 16px 18px; }
.multi-site-plan > summary { color: var(--navy); cursor: pointer; font-weight: 750; }
.multi-site-plan > .notice { margin: 14px 0; }
.multi-site-products-heading { display: grid; gap: 4px; margin: 18px 0 8px; }
.multi-site-products-heading small { color: var(--muted); }
.multi-site-products { display: grid; gap: 8px; }
.multi-site-product-row { background: #f7fafb; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; }
.multi-site-product-row label { align-items: center; display: grid; gap: 12px; grid-template-columns: minmax(220px,1fr) 210px auto; }
.multi-site-product-row input[type="checkbox"] { height: 18px; justify-self: end; width: 18px; }
.quote-multi-site-row { background: #f7fafb; border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.quote-multi-site-row textarea { background:white; border:1px solid #cbd5df; border-radius:6px; font:inherit; min-height:72px; padding:10px 12px; resize:vertical; width:100%; }
.quote-multi-site-allocations { display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); margin:12px 0; }
.quote-multi-site-allocations label { display:grid; gap:6px; }
.quote-multi-site-allocations span { color:var(--muted); font-size:.75rem; font-weight:650; }
.multi-site-result p { color:var(--muted); line-height:1.5; }
.multi-site-result-totals { color:var(--navy) !important; font-weight:750; }
.print-details-count { color: var(--muted); font-weight: 500; }
.print-detail-row > summary { color: var(--navy); cursor: pointer; font-weight: 700; }
.print-detail-grid { align-items: end; display: grid; gap: 10px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 12px; }
.print-detail-grid .wide { grid-column: 1 / -1; }
.sale-override-panel label { display: grid; gap: 7px; margin-top: 14px; max-width: 760px; }
.sale-override-panel label > span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.sale-override-panel textarea { background: white; border: 1px solid #cbd5df; border-radius: 6px; color: var(--ink); font: inherit; line-height: 1.45; min-height: 86px; padding: 10px 12px; resize: vertical; width: 100%; }
.manual-sale-price { height: 36px; min-width: 98px; width: 98px; }
.column-view-controls { display: flex; gap: 8px; justify-content: flex-end; margin: 8px 0; }
.quote-output.stale { opacity: .62; }
.override-panel { border-top: 1px solid var(--line); margin-top: 22px; padding-top: 18px; }
.override-panel summary { color: var(--navy); cursor: pointer; font-weight: 700; }
.override-panel .notice { margin: 16px 0; }
.override-grid { display: grid; gap: 13px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.quote-output { margin-top: 52px; }
.payload-grid { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin-top: 26px; }
.payload-card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; min-width: 0; padding: 18px; }
.payload-card summary { cursor: pointer; font-weight: 750; }
.payload-card p { color: var(--muted); font-size: .84rem; line-height: 1.5; }
.payload-card pre { background: #0b1827; border-radius: 7px; color: #d7e5ef; font: .72rem/1.5 Consolas, monospace; max-height: 520px; overflow: auto; padding: 16px; white-space: pre-wrap; }
.admin-heading { margin-bottom: 22px; }
.admin-kpi-grid { display: grid; gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 24px 0 40px; }
.admin-kpi-grid article { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 7px; padding: 18px; }
.admin-kpi-grid span, .admin-kpi-grid small { color: var(--muted); }
.admin-kpi-grid span { font-size: .76rem; font-weight: 700; text-transform: uppercase; }
.admin-kpi-grid strong { color: var(--navy); font-size: 1.75rem; }
.admin-section { margin-top: 46px; }
.coverage-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); }
.coverage-card { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; display: grid; gap: 11px; padding: 16px; }
.coverage-card > div:first-child { align-items: center; display: flex; gap: 12px; justify-content: space-between; }
.coverage-card > div:first-child span { color: var(--muted); font-size: .8rem; font-weight: 700; }
.coverage-card > div:first-child strong { color: var(--navy); }
.coverage-card small { color: var(--muted); }
.coverage-track { background: #e6edf1; border-radius: 999px; height: 8px; overflow: hidden; }
.coverage-track span { background: var(--green); border-radius: inherit; display: block; height: 100%; }
.admin-table table { min-width: 920px; }
.admin-table td:nth-child(2) { font-weight: 800; }
.admin-footnote { background: #f2f8f8; border-left: 3px solid var(--teal); color: var(--muted); font-size: .84rem; line-height: 1.55; margin: 14px 0 0; padding: 13px 15px; }
.admin-sample-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; margin-top: 12px; padding: 15px 17px; }
.admin-sample-panel summary { color: var(--navy); cursor: pointer; font-weight: 750; }
.admin-sample-list { display: grid; gap: 8px; margin-top: 14px; }
.admin-sample-list a { background: #f7fafb; border-radius: 7px; display: grid; gap: 4px; padding: 11px 12px; text-decoration: none; }
.admin-sample-list a span { color: var(--muted); font: .72rem Consolas, monospace; }
.admin-sample-list a strong { color: var(--navy); font-size: .86rem; }
.admin-authority-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.admin-authority-grid article { background: var(--surface); border: 1px solid var(--line); border-radius: 9px; display: grid; gap: 9px; padding: 15px; }
.admin-authority-grid article > div { align-items: center; display: flex; gap: 10px; justify-content: space-between; }
.admin-authority-grid article > strong { color: var(--navy); font-size: .9rem; }
.admin-authority-grid article > small { color: var(--muted); }
.admin-boundary-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 48px; }
.admin-boundary-grid article { background: #f3f7f8; border-radius: 10px; padding: 18px; }
.admin-boundary-grid h3 { font-size: 1rem; }
.admin-boundary-grid p:last-child { color: var(--muted); font-size: .82rem; line-height: 1.55; }
.admin-executable-section { background: var(--surface); border: 1px solid var(--line); border-left: 6px solid var(--teal); border-radius: 12px; padding: 22px; }
.admin-executable-section > p { color: var(--muted); line-height: 1.55; }
.admin-control-row { align-items: end; display: flex; flex-wrap: wrap; gap: 10px; }
.admin-control-row label { display: grid; gap: 6px; min-width: 230px; }
.admin-control-row label, .admin-edit-form label { color: var(--muted); font-size: .78rem; font-weight: 700; }
button:disabled, .button:disabled { cursor: not-allowed; opacity: .48; }
.admin-action-message { background: #eef6f7; border-radius: 7px; color: #164e52; font-size: .84rem; line-height: 1.5; margin-top: 15px; padding: 12px 14px; overflow-wrap: anywhere; }
.admin-action-message.error { background: #fff0ee; color: var(--red); }
.admin-job-table { margin-top: 16px; }
.admin-edit-form { display: grid; gap: 14px; }
.admin-edit-form label { display: grid; gap: 7px; }
.admin-edit-form textarea { background: white; border: 1px solid #cbd5df; border-radius: 6px; color: var(--ink); font: .82rem/1.5 Consolas, monospace; padding: 12px; resize: vertical; width: 100%; }
.admin-edit-form textarea:focus { border-color: var(--teal); box-shadow: 0 0 0 3px rgba(8,127,121,.12); outline: none; }
.admin-form-grid { display: grid; gap: 12px; grid-template-columns: 220px minmax(300px, 1fr); }
.admin-button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.markup-table table { min-width: 1120px; }
.markup-table input { height: 37px; min-width: 95px; }
.markup-table th:first-child { position: sticky; left: 0; z-index: 1; }
.markup-table tbody th { background: #f7fafb; border-top: 1px solid var(--line); color: var(--navy); padding: 12px 14px; }
.admin-workflow-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.admin-workflow-grid article { background: var(--surface); border: 1px solid var(--line); border-radius: 9px; display: grid; gap: 9px; padding: 16px; }
.admin-workflow-grid article > div { align-items: center; display: flex; justify-content: space-between; }
.admin-workflow-grid article > small { color: var(--muted); line-height: 1.45; }
.admin-nav { background: var(--surface); border: 1px solid var(--line); border-radius: 11px; display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 22px; padding: 6px; }
.admin-nav a { border-radius: 7px; color: var(--navy); font-size: .82rem; font-weight: 750; padding: 10px 13px; text-decoration: none; }
.admin-nav a:hover, .admin-nav a.active { background: var(--navy); color: white; }
.admin-link-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 22px 0; }
.admin-link-grid > a, .admin-link-grid > article { background: var(--surface); border: 1px solid var(--line); border-radius: 11px; color: var(--ink); display: flex; flex-direction: column; gap: 8px; min-height: 132px; padding: 18px; text-decoration: none; }
.admin-link-grid > a:hover { border-color: var(--teal); box-shadow: 0 8px 24px rgba(0,43,73,.08); }
.admin-link-grid span:first-child { color: var(--teal); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.admin-link-grid small { color: var(--muted); line-height: 1.45; }
.admin-policy-grid { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.admin-policy-card, .enhancement-profile { background: var(--surface); border: 1px solid var(--line); border-radius: 11px; padding: 18px; }
.admin-policy-card { display: grid; gap: 12px; }
.admin-policy-card label { color: var(--muted); display: grid; font-size: .78rem; font-weight: 700; gap: 6px; }
.enhancement-profile { margin-bottom: 16px; }
.process-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.process-card { background: #f7fafb; border: 1px solid var(--line); border-radius: 8px; display: grid; gap: 8px; padding: 11px; }
.process-card span { color: var(--navy); font-size: .78rem; font-weight: 750; }
.markup-table thead label { display: grid; gap: 4px; min-width: 96px; }
.markup-table thead label small { color: var(--muted); font-weight: 400; }
@media (max-width: 900px) {
  .topbar { align-items: flex-start; flex-wrap: wrap; }
  .mode { display: none; }
  .search-form, .product-hero, .internal-heading { grid-template-columns: 1fr; }
  .pricing-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quote-line-top { grid-template-columns: 190px minmax(0, 1fr); }
  .quote-line-top > .quote-line-actions { grid-column: 2; justify-self: start; }
  .quote-fields, .override-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payload-grid { grid-template-columns: 1fr; }
  .admin-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-boundary-grid { grid-template-columns: 1fr; }
  .admin-form-grid { grid-template-columns: 1fr; }
  .admin-link-grid, .admin-policy-grid, .process-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .section-heading, .catalogue-summary { align-items: flex-start; flex-direction: column; gap: 14px; }
  .hero { grid-template-columns: 1fr; }
  .topbar nav { flex-wrap: wrap; }
  .content-provenance, .internal-toolbar { align-items: flex-start; flex-direction: column; }
  .pricing-summary { grid-template-columns: 1fr; }
  .quote-search-form, .quote-line-top, .quote-fields, .override-grid { grid-template-columns: 1fr; }
  .quote-line-top > .quote-line-actions, .quote-fields .wide, .override-grid .wide { grid-column: 1; }
  .split-controls, .split-row-controls, .multi-site-row, .print-detail-grid, .multi-site-product-row label { grid-template-columns: 1fr; }
  .multi-site-row .wide, .print-detail-grid .wide { grid-column: 1; }
  .multi-site-product-row input[type="checkbox"] { justify-self: start; }
  .split-total-control { align-items:stretch; flex-direction:column; }
  .branding-controls { grid-template-columns: 1fr; }
  .quote-actions { align-items: stretch; flex-direction: column; width: 100%; }
  .quote-storage-panel, .quote-storage-open { grid-template-columns: 1fr; }
  .cost-range-field { grid-column: 1 / -1; }
  .admin-kpi-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .cost-range-field { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto minmax(2.4em, auto) 43px auto; min-width: 0; }
  .cost-range-field > span { border-bottom: 1px solid var(--line); border-right: 0; grid-column: 1 / -1; grid-row: 1; min-height: 0; padding: 0 0 7px; }
  .cost-range-inputs label > span { grid-row: 2; }
  .cost-range-inputs label:first-child > span, .cost-range-inputs label:first-child > input { grid-column: 1; }
  .cost-range-inputs label:last-child > span, .cost-range-inputs label:last-child > input { grid-column: 2; }
  .cost-range-inputs label > input { grid-row: 3; }
  .cost-range-field > small { grid-row: 4; min-height: 0; }
  .search-form-actions button { width: 100%; }
}

.quote-search-actions, .catalogue-search-actions { display:grid; grid-template-columns:auto 1fr auto auto; gap:10px; align-items:center; }
.quote-details { margin:16px 0 20px; padding:0; border:1px solid var(--line); border-radius:12px; background:#fff; overflow:hidden; }
.quote-details-heading { align-items:center; cursor:pointer; display:flex; gap:16px; justify-content:space-between; list-style:none; margin:0; padding:16px 52px 16px 18px; position:relative; }
.quote-details-heading::-webkit-details-marker { display:none; }
.quote-details-heading::after { content:"▾"; color:var(--navy); font-size:1rem; position:absolute; right:20px; top:50%; transform:translateY(-50%) rotate(-90deg); transition:transform .15s ease; }
.quote-details[open] > .quote-details-heading::after { transform:translateY(-50%) rotate(0); }
.quote-details-heading h3 { margin:0 0 4px; }
.quote-customer-summary { color:var(--muted); display:block; font-size:.82rem; font-weight:650; }
.quote-details-body { background:#f7fafb; border-top:1px solid var(--line); display:grid; gap:14px; grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr); padding:16px; }
.quote-context-block { background:#fff; border:1px solid var(--line); border-radius:9px; padding:16px; }
.quote-context-block-heading { align-items:flex-start; display:flex; gap:14px; justify-content:space-between; }
.quote-context-block-heading h4 { color:var(--navy); margin:0 0 4px; }
.quote-context-block-heading p { color:var(--muted); font-size:.78rem; line-height:1.45; margin:0; }
.quote-context-fields { align-items:start; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:14px; }
.quote-context-fields textarea { min-height:74px; }
.zigaflow-customer-selection { background:#f7fafb; border:1px solid var(--line); border-radius:9px; display:grid; gap:12px; padding:14px; }
.zigaflow-customer-selection[hidden] { display:none; }
.zigaflow-customer-selection .inline-search { align-items:center; display:grid; gap:9px; grid-template-columns:minmax(0,1fr) auto; }
.zigaflow-customer-selection .admin-action-message:empty { display:none; }
.zigaflow-customer-result { border-top:1px solid var(--line); display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); padding-top:14px; }
.zigaflow-customer-result[hidden] { display:none; }
.zigaflow-customer-result > div, .zigaflow-customer-result > label { display:grid; gap:5px; }
.zigaflow-customer-result > div > span, .zigaflow-customer-result > label > span { color:var(--muted); font-size:.78rem; font-weight:650; }
.zigaflow-account-manager { grid-column:1 / -1; }
.zigaflow-account-manager .button { justify-self:start; margin-top:4px; }
.quote-required-by-field { display:grid; gap:7px; margin-top:14px; }
.quote-required-by-field > span { color:var(--muted); font-size:.78rem; font-weight:650; }
.quote-required-by-field > small { color:var(--muted); font-size:.75rem; line-height:1.4; }
.quote-milestones { display:flex; flex-wrap:wrap; gap:10px 20px; margin-top:14px; padding:11px 12px; border-radius:8px; background:#f4f7f9; }
.quote-milestones strong, .quote-milestones small { display:block; }
.deadline-summary { display:grid; gap:6px; width:100%; }
.deadline-table { width:100%; }
.deadline-table table { min-width:780px; }
.deadline-on_track td:last-child { color:#17643a; font-weight:750; }
.deadline-tight_confirm td:last-child { color:#8a5a00; font-weight:750; }
.deadline-cannot_meet td:last-child { color:#a32424; font-weight:750; }
.role-permission-grid { display:grid; grid-template-columns:repeat(2,minmax(300px,1fr)); gap:16px; }
.role-permission-card { display:grid; align-content:start; gap:14px; padding:18px; border:1px solid var(--line); border-radius:12px; background:#fff; }
.role-permission-card .section-heading { align-items:center; margin:0; }
.role-capability-list { display:grid; gap:9px; }
.role-capability { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; padding:9px 10px; border:1px solid #dce5eb; border-radius:8px; background:#f8fafb; }
.role-capability input { margin-top:3px; }
.role-capability span { display:grid; gap:2px; }
.role-capability small { color:var(--muted); line-height:1.35; }
.role-capability:has(input:disabled) { opacity:.72; }
.saved-quote-search { align-items:end; display:grid; gap:12px; grid-template-columns:repeat(3,minmax(180px,1fr)); width:100%; }
.saved-quote-search label { display:grid; gap:5px; }
.saved-quote-search button { justify-self:end; min-width:150px; white-space:nowrap; }
.quote-owner-block { align-items:start; background:#f7fafc; display:grid; gap:20px; grid-column:1 / -1; grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr); }
.quote-customer-block { grid-column:1; }
.quote-deadline-block { grid-column:2; }
.quote-role-notice { margin-top:12px; }
.variant-image-cell { min-width:84px; width:84px; }
.variant-colourway-image { background:#fff; border:1px solid var(--line); border-radius:7px; display:block; height:68px; object-fit:contain; width:68px; }
.variant-image-placeholder { align-items:center; background:#f1f4f6; border:1px dashed var(--line); border-radius:7px; color:var(--muted); display:flex; font-size:.72rem; height:68px; justify-content:center; text-align:center; width:68px; }
.user-form { display:grid; gap:14px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.user-form label { display:grid; gap:6px; }
.user-role-field { align-items:end; display:grid; gap:14px; grid-template-columns:minmax(0,1fr) auto; }
.user-active-field { align-self:center; }
@media (max-width:1050px){.saved-quote-search{grid-template-columns:repeat(2,minmax(150px,1fr))}.user-form{grid-template-columns:1fr}.role-permission-grid{grid-template-columns:1fr}}
.validation-summary { margin:10px 0 0; padding-left:20px; }
.validation-link { appearance:none; padding:3px 0; border:0; background:transparent; color:inherit; text-align:left; text-decoration:underline; font-weight:600; cursor:pointer; }
.validation-link:focus-visible { outline:3px solid #0b6b72; outline-offset:3px; }
.validation-target { animation:validation-pulse .8s ease-in-out 2; background-color:#fff4d8 !important; border-color:#c9462c !important; outline:4px solid #c9462c !important; outline-offset:4px; box-shadow:0 0 0 7px rgba(201,70,44,.16); }
.validation-context { box-shadow:inset 5px 0 #c9462c; }
@keyframes validation-pulse { 50% { box-shadow:0 0 0 11px rgba(201,70,44,.28); } }
.ral-size-panel fieldset { border:1px solid var(--line); border-radius:9px; margin:14px 0 0; padding:14px; position:relative; }
.ral-size-panel legend { color:var(--navy); font-weight:750; padding:0 6px; }
.ral-size-group-header { align-items:center; display:flex; gap:10px; justify-content:space-between; margin-bottom:12px; }
.ral-size-total { display:block; flex:1 1 auto; margin:0; padding:8px 10px; border-radius:7px; font-weight:700; }
.ral-size-total.matched { background:#e5f5ec; color:#17653b; }
.ral-size-total.under { background:#fff4d8; color:#785400; }
.ral-size-total.over { background:#fde9e5; color:#8b2e1d; }
.ral-update-quantity { flex:0 0 auto; margin:0; }
.ral-size-grid { display:grid; gap:9px; grid-template-columns:repeat(auto-fill,minmax(105px,1fr)); }
.ral-size-cell { background:#f7fafb; border:1px solid var(--line); border-radius:7px; display:grid; gap:4px; padding:9px; }
.ral-size-cell strong { color:var(--navy); }
.ral-size-cell small { color:var(--muted); font-size:.7rem; min-height:1.2em; }
.ral-size-cell input { height:38px; max-width:82px; padding:0 9px; }
.split-total-control { align-items:center; background:#f4f7f9; border-radius:8px; display:flex; gap:12px; justify-content:space-between; margin-top:12px; padding:10px 12px; }
.split-total { color:var(--navy); font-weight:750; }
.ral-split-size-guidance { margin-top:14px; }
.ral-split-size-panel { border-top:1px solid var(--line); margin-top:12px; padding-top:12px; }
.ral-split-size-panel > summary { color:var(--navy); cursor:pointer; font-weight:750; }
.ral-split-size-loading { color:var(--muted); margin-top:10px; }
.ral-split-size-total { border-radius:7px; font-weight:700; margin:12px 0; padding:8px 10px; }
.ral-split-size-total.matched { background:#e5f5ec; color:#17653b; }
.ral-split-size-total.under { background:#fff4d8; color:#785400; }
.ral-split-size-total.over { background:#fde9e5; color:#8b2e1d; }
.ral-update-split-quantity { margin-top:10px; }
.in-house-comparison-panel { border-top:1px solid var(--line); margin-top:22px; padding-top:18px; }
.in-house-comparison-panel > summary { color:var(--navy); cursor:pointer; font-weight:750; }
.in-house-comparison-panel > .notice { margin:14px 0; }
.comparison-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.pill.warning { background:#fff0c2; color:#715000; }
.pill.error { background:#fde4df; color:#842a1a; }
@media (max-width: 980px) {
  .quote-details-body { grid-template-columns:1fr; }
  .quote-owner-block { grid-column:1; grid-template-columns:1fr; }
  .quote-customer-block, .quote-deadline-block { grid-column:1; }
}
@media (max-width: 720px) {
  .quote-search-actions, .catalogue-search-actions { grid-template-columns:1fr 1fr; }
  .quote-search-actions span, .catalogue-search-actions span { display:none; }
  .quote-search-actions .button, .quote-search-actions button, .catalogue-search-actions .button, .catalogue-search-actions button { width:100%; }
  .quote-details-heading { align-items:center; }
  .quote-context-fields { grid-template-columns:1fr; }
  .quote-context-fields .wide { grid-column:1; }
  .zigaflow-customer-selection .inline-search, .zigaflow-customer-result { grid-template-columns:1fr; }
  .zigaflow-account-manager { grid-column:1; }
  .quote-context-block-heading { align-items:stretch; flex-direction:column; }
  .ral-size-group-header { align-items:stretch; flex-direction:column; }
  .ral-update-quantity { width:100%; }
}
.artwork-upload { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1rem; }
.artwork-links { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; margin-top: .6rem; }
.artwork-links small { flex-basis: 100%; overflow-wrap: anywhere; }
.pgp-panel, .bespoke-cost-panel { border-top: 1px solid var(--line); margin-top: 1rem; padding-top: 1rem; }
.pgp-position-label-control { display: grid; gap: 7px; margin: 1rem 0; max-width: 22rem; }
.pgp-position-label-control > span, .pgp-option-group label > span, .pgp-carriage-row label > span, .pgp-subminimum-control > span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.pgp-subminimum-control { background: #fffaf0; border: 1px solid #ead7a5; border-radius: .45rem; display: grid; gap: 7px; margin-top: 1rem; max-width: 48rem; padding: .8rem; }
.pgp-subminimum-control small { color: var(--muted); font-size: .75rem; line-height: 1.4; }
.pgp-option-groups { display: grid; gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pgp-option-group { align-items: end; background: #f7fafb; border: 1px solid var(--line); border-radius: .45rem; display: grid; gap: .65rem; grid-template-columns: minmax(0, 1fr) auto; padding: .75rem; }
.pgp-option-group label, .pgp-carriage-row label { display: grid; gap: 7px; }
.pgp-positions { display: grid; gap: .5rem; margin-top: 1rem; }
.pgp-position-row { align-items: center; background: #f5faf9; border: 1px solid #b9ddd7; border-radius: .45rem; display: flex; justify-content: space-between; gap: 1rem; padding: .65rem .8rem; }
.pgp-carriage-section { border-top: 1px solid var(--line); margin-top: 1.1rem; padding-top: 1rem; }
.pgp-carriage-section h4 { margin: .15rem 0 0; }
.pgp-carriage-section .field-note { color: var(--muted); font-size: .8rem; }
.pgp-carriage-breaks { display: grid; gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: .8rem; }
.pgp-carriage-row { background: #f7fafb; border: 1px solid var(--line); border-radius: .45rem; padding: .75rem; }
.bespoke-line-card textarea { min-height: 7rem; resize: vertical; }
.workflow-panel-toggle { margin-left: auto; white-space: nowrap; }
.workflow-panel-summary { background: #f5f8fa; border-left: 3px solid var(--teal); color: var(--navy); font-size: .82rem; line-height: 1.45; margin: .7rem 0 0; padding: .65rem .8rem; }
.workflow-panel-body { display: block; }
.workflow-panel-collapsed > .workflow-panel-body { display: none !important; }
.workflow-panel-collapsed > .workflow-panel-summary { display: block; }
.plain-cost-guide-field { align-content: start; background: #f5f8fa; border: 1px solid var(--line); border-radius: 7px; display: grid; gap: 5px; padding: 10px 12px; }
.plain-cost-guide-field > span { color: var(--muted); font-size: .78rem; font-weight: 650; }
.plain-cost-guide-field > strong { color: var(--navy); font-size: 1rem; }
.plain-cost-guide-field > small { color: var(--muted); }
@media (max-width: 900px) { .pgp-option-groups, .pgp-carriage-breaks { grid-template-columns: 1fr; } }

/* PG Fusion Admin & Catalogue V2.3.2 */
[hidden] { display: none !important; }
.single-role-editor { grid-template-columns: minmax(0, 1fr); margin-top: 16px; }
.account-menu { position: relative; }
.account-menu summary { cursor: pointer; }
.account-menu > div { position: absolute; right: 0; z-index: 30; min-width: 180px; padding: 12px; background: white; color: #102f50; border: 1px solid #ccd7e0; border-radius: 6px; }
.account-menu form { margin-top: 10px; }
.search-form { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.search-form input, .search-form select { min-width: 0; width: 100%; }
@media (max-width: 1100px) { .search-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .search-form { grid-template-columns: minmax(0, 1fr); } }

.supplier-profile-selector { display: grid; gap: 8px; max-width: 600px; }
.catalogue-commercial-search { display: grid; grid-column: span 3; grid-template-columns: minmax(0, 1fr) minmax(220px, 2fr); gap: 14px; align-items: start; }
.catalogue-commercial-search > label { display: grid; gap: 7px; }
.catalogue-commercial-search > label > span { min-height: 2.4em; color: var(--muted); font-size: .78rem; font-weight: 650; }
.catalogue-commercial-search > label > small { color: var(--muted); font-size: .72rem; }
@media (max-width: 1100px) { .catalogue-commercial-search { grid-column: 1 / -1; } }
@media (max-width: 600px) { .catalogue-commercial-search { grid-template-columns: minmax(0, 1fr); } }

/* PG Fusion V2.3.3: two filter rows, with shared label/input baselines. */
.catalogue-search-compact.search-form {
  grid-template-columns: minmax(170px, 1.35fr) repeat(5, minmax(0, 1fr));
  column-gap: 12px;
  row-gap: 16px;
}
.catalogue-search-compact .catalogue-commercial-search { display: contents; }
.catalogue-search-compact > label,
.catalogue-search-compact .catalogue-price-order-field,
.catalogue-search-compact > .supplier-filter-field {
  display: grid;
  grid-template-rows: 44px 40px auto;
  gap: 6px;
  min-width: 0;
}
.catalogue-search-compact > label > span,
.catalogue-search-compact .catalogue-price-order-field > span,
.catalogue-search-compact > .supplier-filter-field > span {
  display: flex;
  align-items: flex-end;
  min-height: 0;
  margin: 0;
  line-height: 1.25;
}
.catalogue-search-compact input:not([type="checkbox"]),
.catalogue-search-compact select,
.catalogue-search-compact .supplier-filter > summary {
  height: 40px;
  min-height: 40px;
  box-sizing: border-box;
}
.catalogue-search-compact > label > small,
.catalogue-search-compact .catalogue-price-order-field > small { min-height: 0; margin: 0; }
.catalogue-search-compact .cost-range-field[data-catalogue-cost-range] {
  position: relative;
  grid-column: span 2;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 44px 40px auto;
  gap: 6px;
  min-width: 0;
}
.catalogue-search-compact .cost-range-field[data-catalogue-cost-range] > span {
  position: absolute;
  top: 0;
  left: 0;
  min-height: 0;
  line-height: 1.25;
}
.catalogue-search-compact .cost-range-field[data-catalogue-cost-range] .cost-range-inputs {
  grid-row: 1 / 3;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.catalogue-search-compact .cost-range-field[data-catalogue-cost-range] .cost-range-inputs label {
  grid-template-rows: 44px 40px;
  gap: 6px;
}
.catalogue-search-compact .cost-range-field[data-catalogue-cost-range] .cost-range-inputs label > span {
  display: flex;
  align-items: flex-end;
  min-height: 0;
}
.catalogue-search-compact .cost-range-field[data-catalogue-cost-range] > small { min-height: 0; }
@media (max-width: 999px) {
  .catalogue-search-compact.search-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .catalogue-search-compact.search-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  .catalogue-search-compact.search-form { grid-template-columns: minmax(0, 1fr); }
  .catalogue-search-compact .cost-range-field[data-catalogue-cost-range] { grid-column: span 1; }
}

.catalogue-search-compact .supplier-filter { min-width: 0; }
.catalogue-search-compact .supplier-filter > summary > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.catalogue-search-compact .supplier-option input[type="checkbox"] { width: 16px; height: 16px; min-height: 16px; }

/* V2.3.13: status remains legible; active siblings keep their normal presentation. */
.lifecycle-badge { display: block; width: fit-content; padding: .3rem .5rem; margin: .3rem 0; color: #374151; background: #e5e7eb; border: 1px solid #9ca3af; border-radius: .3rem; font-size: .8rem; }
.lifecycle-size { background: #f3f4f6; border-color: #9ca3af; color: #374151; }
