:root{--bg:#fff;--soft:#f7f5f1;--ink:#202428;--muted:#687076;--line:#e5dfd5;--gold:#b99a5d;--dark:#111315;--shadow:0 20px 55px rgba(20,24,28,.10)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--ink);background:#fff}button,input,select{font:inherit}.app-header{height:74px;padding:0 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.95);position:sticky;top:0;z-index:20}.brand{display:flex;gap:12px;align-items:center;color:inherit;text-decoration:none}.brand-mark{width:44px;height:44px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-family:Georgia,serif;font-weight:700}.brand small{display:block;color:var(--muted);font-size:.78rem}.top-actions{display:flex;gap:10px}.top-actions button,.zoom-toolbar button,.catalog-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.62rem .9rem;cursor:pointer}.designer-page{height:calc(100vh - 74px);min-height:780px;display:grid;grid-template-columns:340px minmax(560px,1fr) 360px;background:#fafafa}.panel{background:#fff;border-right:1px solid var(--line);overflow:auto;padding:18px}.right-panel{border-right:0;border-left:1px solid var(--line)}.panel h2,.stage-header h1{margin:.15rem 0 0;font-family:Georgia,serif;font-weight:500}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.18em;color:var(--gold);font-size:.72rem;font-weight:700}.catalog-tabs{display:flex;gap:6px;margin:16px 0 10px;flex-wrap:wrap}.catalog-tab.active{background:var(--dark);color:white;border-color:var(--dark)}.catalog-search{width:100%;border:1px solid var(--line);border-radius:14px;padding:.75rem;margin-bottom:10px}.mat-target{display:flex;gap:10px;align-items:center;font-size:.86rem;color:var(--muted);background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:.6rem;margin-bottom:10px}.catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.catalog-card{border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.04)}.catalog-card:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(0,0,0,.08)}.catalog-card.active{outline:3px solid rgba(185,154,93,.35)}.catalog-card img{width:100%;height:74px;object-fit:cover;display:block;background:#f1eee7}.catalog-card .info{padding:9px}.catalog-card h4{font-size:.86rem;margin:0 0 4px}.catalog-card p{font-size:.72rem;margin:0;color:var(--muted)}.catalog-card .price{display:block;margin-top:5px;color:var(--gold);font-size:.78rem;font-weight:700}.preview-stage{padding:18px 20px;overflow:auto;background:linear-gradient(90deg,#f0f0ef 1px,transparent 1px),linear-gradient(#f0f0ef 1px,transparent 1px);background-size:42px 42px}.stage-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.zoom-toolbar{display:flex;gap:8px;flex-wrap:wrap}.canvas-wrap{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:10px;min-height:520px}#frameCanvas{width:100%;height:auto;display:block}.selected-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}.selected-summary div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px}.selected-summary strong{display:block;font-size:.78rem;color:var(--muted)}.selected-summary span{font-size:.9rem}.control-section{border:1px solid var(--line);border-radius:18px;padding:12px;margin-bottom:12px;background:#fff}.control-section h3{margin:0 0 10px;font-size:1rem}label{display:grid;gap:5px;margin-bottom:10px;color:var(--muted);font-size:.86rem}input,select{width:100%;border:1px solid var(--line);border-radius:12px;padding:.65rem;background:#fff;color:var(--ink)}input[type=color]{height:48px;padding:4px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}.note{font-size:.78rem;color:var(--muted);margin:.3rem 0}.cost-box{background:var(--soft);border-radius:14px;padding:10px}.cost-box p{display:flex;justify-content:space-between;margin:.45rem 0;font-size:.9rem}.cost-box .total{border-top:1px solid var(--line);padding-top:.6rem;font-size:1.05rem}.backend-note{padding:26px 5vw;background:var(--dark);color:white}.backend-note p{color:rgba(255,255,255,.72)}.backend-note code{background:rgba(255,255,255,.12);padding:.2rem .4rem;border-radius:6px}@media(max-width:1150px){.designer-page{height:auto;grid-template-columns:1fr}.left-panel,.right-panel{border:0;border-bottom:1px solid var(--line)}.catalog-grid{grid-template-columns:repeat(3,1fr)}.selected-summary{grid-template-columns:1fr 1fr}}@media(max-width:720px){.catalog-grid{grid-template-columns:1fr 1fr}.two-col,.selected-summary{grid-template-columns:1fr}.stage-header{display:block}}

/* V17 quote/cart controls */
.quote-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.quote-actions button {
  border: 1px solid var(--line);
  background: var(--dark);
  color: #fff;
  border-radius: 999px;
  padding: .72rem .9rem;
  cursor: pointer;
}
.quote-actions button:nth-child(2) {
  background: var(--gold);
  border-color: var(--gold);
}
.quote-box {
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  margin-top: 10px;
}
.quote-box p {
  display: flex;
  justify-content: space-between;
  margin: .45rem 0;
  gap: 10px;
  font-size: .86rem;
}
#quoteNotes {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: .7rem;
  resize: vertical;
  margin-top: 10px;
}
.quote-status {
  margin-top: 10px;
  font-size: .82rem;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: .65rem;
}


/* V18 preview background controls */
.stage-tools {
  display: grid;
  gap: 8px;
  justify-items: end;
}
.background-toolbar {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.background-toolbar button,
.secondary-action {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 999px;
  padding: .62rem .9rem;
  cursor: pointer;
}
.background-toolbar button:hover,
.secondary-action:hover {
  background: var(--soft);
}
.secondary-action {
  width: 100%;
  margin-top: 2px;
}


/* V20 compare feature */
.quote-actions { grid-template-columns: 1fr 1fr 1fr; }
.quote-actions button:nth-child(3) { background: #fff; color: var(--ink); border-color: var(--gold); }
.compare-panel {
  margin-top: 14px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 10px 28px rgba(0,0,0,.04);
}
.compare-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 12px;
}
.compare-head h2 { margin: 0 0 6px; font-size: 1.35rem; font-family: Georgia, serif; font-weight: 500; }
.compare-head p { margin: 0; color: var(--muted); font-size: .88rem; }
#clearCompareBtn {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .62rem .9rem;
  cursor: pointer;
  white-space: nowrap;
}
.compare-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(210px, 1fr));
  gap: 12px;
}
.compare-card {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: var(--soft);
}
.compare-card h3 { margin: 0 0 8px; font-size: 1rem; }
.compare-card p {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: .42rem 0;
  font-size: .82rem;
}
.compare-card span:first-child { color: var(--muted); }
.compare-card .total {
  border-top: 1px solid var(--line);
  padding-top: .55rem;
  margin-top: .55rem;
  font-weight: 700;
}
.compare-card button {
  width: 100%;
  margin-top: 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .55rem .75rem;
  cursor: pointer;
  background: #fff;
}
.empty-compare {
  color: var(--muted);
  border: 1px dashed var(--line);
  border-radius: 16px;
  padding: 16px;
  background: #fff;
}
@media(max-width: 900px) {
  .quote-actions { grid-template-columns: 1fr; }
  .compare-grid { grid-template-columns: 1fr; }
  .compare-head { display: block; }
}


/* V21 compare image snapshot + restore */
.compare-card .compare-preview-btn {
  width: 100%;
  display: block;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0 0 10px;
  cursor: pointer;
}
.compare-card .compare-preview-img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
  border-radius: 14px;
  border: 1px solid var(--line);
  background: #fff;
}
.compare-card .restore-hint {
  display: block;
  font-size: .72rem;
  color: var(--muted);
  margin: 6px 0 8px;
}
.language-toggle {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .62rem .9rem;
  cursor: pointer;
}
.compare-card .active-restored {
  border-color: var(--gold);
}


/* V22 framework comparison and edit workflow */
.quote-actions {
  grid-template-columns: 1fr 1fr;
}
.quote-actions button:nth-child(4),
.quote-actions button:nth-child(5) {
  background: #ffffff;
  color: var(--ink);
  border-color: var(--line);
}
.compare-card.selected-compare {
  outline: 3px solid rgba(185,154,93,.45);
  background: #fffaf0;
}
.compare-card .framework-block {
  border-top: 1px solid var(--line);
  margin-top: .65rem;
  padding-top: .55rem;
}
.compare-card .framework-title {
  display: block;
  font-size: .78rem;
  color: var(--gold);
  font-weight: 700;
  margin-bottom: .35rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.compare-card .compare-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.compare-card .compare-actions button {
  margin-top: 8px;
}
.compare-card .compare-actions button:first-child {
  background: var(--dark);
  color: #fff;
}
#activeCompareStatus {
  border-color: rgba(185,154,93,.55);
  background: #fffaf0;
  color: #7a5a22;
}
@media(max-width: 900px) {
  .quote-actions { grid-template-columns: 1fr; }
  .compare-card .compare-actions { grid-template-columns: 1fr; }
}


/* V23 compare temporary image memory */
.compare-preview-btn .empty-compare {
  min-height: 140px;
  display: grid;
  place-items: center;
  text-align: center;
  font-size: .82rem;
}
.compare-memory-note {
  font-size: .78rem;
  color: var(--muted);
  margin-top: .5rem;
}


/* V24 reliable generated framework compare preview */
.generated-preview-btn { width: 100%; display: block; border: 0; background: transparent; padding: 0; margin: 0 0 10px; cursor: pointer; }
.generated-frame-preview { height: 150px; border-radius: 16px; border: 1px solid var(--line); display: grid; place-items: center; overflow: hidden; }
.generated-frame-shell { width: 68%; height: 76%; border-style: solid; border-color: #b99a5d; background: linear-gradient(135deg,#d8b06a,#8f6a30); box-shadow: 0 14px 28px rgba(0,0,0,.16); display: grid; place-items: stretch; }
.generated-outer-mat { width: 100%; height: 100%; display: grid; place-items: center; padding: 14%; }
.generated-inner-mat { width: 100%; height: 100%; display: grid; place-items: center; }
.generated-artwork { width: 100%; height: 100%; background: linear-gradient(90deg,#efe7d1 0 18%,#c5b99b 18% 32%,#d5bd70 32% 45%,#f9f6eb 45% 64%,#aaa088 64% 78%,#d5bd70 78% 100%); border: 2px solid rgba(255,255,255,.8); }
.compare-price-summary { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 10px; margin: 10px 0; }
.compare-price-summary p { display: flex; justify-content: space-between; gap: 10px; margin: .38rem 0; font-size: .85rem; }
.compare-price-summary .total { font-size: 1rem; border-bottom: 1px solid var(--line); padding-bottom: .45rem; margin-bottom: .45rem; }
.compare-details { border: 1px solid var(--line); background: #fff; border-radius: 14px; padding: 9px 10px; margin-top: 8px; }
.compare-details summary { cursor: pointer; color: var(--gold); font-weight: 700; font-size: .86rem; }
.compare-details p { display: flex; justify-content: space-between; gap: 10px; margin: .4rem 0; font-size: .82rem; }
.compare-card:hover .compare-details { border-color: rgba(185,154,93,.55); }


/* V25 top artwork upload + live compare preview */
.top-artwork-upload {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 420px);
  gap: 18px;
  align-items: center;
  padding: 18px 5vw;
  border-bottom: 1px solid var(--line);
  background: #ffffff;
}
.top-artwork-upload h2 {
  margin: 0 0 6px;
  font-family: Georgia, serif;
  font-weight: 500;
}
.top-artwork-upload p { margin: 0; color: var(--muted); }
.top-artwork-input {
  background: var(--soft);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  margin: 0;
}
.live-compare-btn {
  width: 100%;
  display: block;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0 0 10px;
  cursor: pointer;
}
.live-compare-canvas {
  width: 100%;
  height: 150px;
  display: block;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.compare-total-only {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  margin: 10px 0;
}
.compare-total-only .total {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 1.02rem;
  font-weight: 700;
  margin: 0;
}
.compare-details {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 14px;
  padding: 9px 10px;
  margin-top: 8px;
}
.compare-details summary {
  cursor: pointer;
  color: var(--gold);
  font-weight: 700;
  font-size: .86rem;
}
.compare-details p {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: .4rem 0;
  font-size: .82rem;
}
.compare-card:hover .compare-details { border-color: rgba(185,154,93,.55); }
@media(max-width: 900px) {
  .top-artwork-upload { grid-template-columns: 1fr; }
}


/* V26 top artwork upload and simplified moulding upload */
.top-upload-control {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .42rem .72rem;
  margin: 0;
  color: var(--ink);
  font-size: .86rem;
  cursor: pointer;
  white-space: nowrap;
}
.top-upload-control span {
  color: var(--ink);
  font-weight: 600;
}
.top-upload-control input[type="file"] {
  max-width: 190px;
  border: 0;
  padding: 0;
  border-radius: 0;
  font-size: .78rem;
}
@media(max-width: 760px) {
  .top-upload-control {
    width: 100%;
    justify-content: space-between;
    border-radius: 14px;
  }
  .top-upload-control input[type="file"] {
    max-width: 170px;
  }
}


/* V27: header artwork upload only; lower upload/mat-colour controls removed */
.top-upload-control {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
}


/* V28 repair: no top artwork section, working header upload, live compare canvas */
.top-upload-control {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .42rem .72rem;
  margin: 0;
  color: var(--ink);
  font-size: .86rem;
  cursor: pointer;
  white-space: nowrap;
}
.top-upload-control span {
  font-weight: 700;
}
.top-upload-control input[type="file"] {
  max-width: 180px;
  border: 0;
  padding: 0;
  font-size: .78rem;
}
.live-compare-canvas {
  width: 100%;
  height: 150px;
  border-radius: 16px;
  border: 1px solid var(--line);
  display: block;
  background: #fff;
}


/* V29 repaired designer functions */
.top-actions a { text-decoration: none; }
.live-compare-btn {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.live-compare-canvas {
  width: 100%;
  height: 150px;
  display: block;
  border-radius: 16px;
  border: 1px solid var(--line);
  background: #fff;
}
.compare-total-only {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px;
  margin: 10px 0;
}
.compare-total-only .total {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
  font-size: 1rem;
}
.compare-details {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 14px;
  padding: 9px 10px;
  margin-top: 8px;
}
.compare-details summary {
  cursor: pointer;
  color: var(--gold);
  font-weight: 700;
  font-size: .86rem;
}
.compare-details p {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: .4rem 0;
  font-size: .82rem;
}

/* V34 cart drawer */.cart-drawer{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.52);display:grid;place-items:center;padding:24px}.cart-drawer[hidden]{display:none}.cart-drawer-panel{width:min(920px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:26px;border:1px solid var(--line);box-shadow:0 28px 80px rgba(0,0,0,.28)}.cart-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 20px;border-bottom:1px solid var(--line)}.cart-drawer-head h2{margin:0;font-family:Georgia,serif;font-weight:500}#closeCartBtn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.4rem}.cart-list{display:grid;gap:12px;padding:18px 20px}.cart-item{border:1px solid var(--line);border-radius:18px;padding:14px;background:var(--soft)}.cart-item h3{margin:0 0 8px}.cart-item p{display:flex;justify-content:space-between;gap:12px;margin:.35rem 0}.cart-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.cart-actions button{border:1px solid var(--line);border-radius:999px;padding:.55rem .8rem;background:#fff;cursor:pointer}.cart-drawer-foot{border-top:1px solid var(--line);padding:16px 20px;background:#fff}

/* V36 cart drawer repair */
.cart-drawer {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0,0,0,.52);
  display: grid;
  place-items: center;
  padding: 24px;
}
.cart-drawer[hidden] { display: none; }
.cart-drawer-panel {
  width: min(920px, 96vw);
  max-height: 88vh;
  overflow: auto;
  background: #fff;
  border-radius: 26px;
  border: 1px solid var(--line);
  box-shadow: 0 28px 80px rgba(0,0,0,.28);
}
.cart-drawer-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
}
.cart-drawer-head h2 { margin: 0; font-family: Georgia, serif; font-weight: 500; }
#closeCartBtn {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
  font-size: 1.4rem;
}
.cart-list { display: grid; gap: 12px; padding: 18px 20px; }
.cart-item {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: var(--soft);
}
.cart-item h3 { margin: 0 0 8px; }
.cart-item p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: .35rem 0;
}
.cart-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.cart-actions button {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: .55rem .8rem;
  background: #fff;
  cursor: pointer;
}
.cart-drawer-foot {
  border-top: 1px solid var(--line);
  padding: 16px 20px;
  background: #fff;
}

/* V37 mat size equal/custom controls */
.custom-mat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.custom-mat-grid[hidden],#equalMatSizeRow[hidden]{display:none!important}@media(max-width:900px){.custom-mat-grid{grid-template-columns:1fr}}

/* V38 pricing/backing/quote retrieval */
.quote-history-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.quote-history-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
}
.quote-history-card h4 {
  margin: 0 0 8px;
  font-size: .98rem;
}
.quote-history-card p {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin: .35rem 0;
  font-size: .86rem;
}
.quote-history-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.quote-history-actions button {
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  padding: .52rem .75rem;
  cursor: pointer;
}
.quote-history-actions button[data-delete-quote] {
  border-color: #d2a0a0;
  color: #9b2525;
}

/* V39 catalog category filter */
#catalogCategoryFilter {
  margin-top: 8px;
}


/* V40 catalogue image tooltip cards */
.catalog-card{position:relative}.catalog-card>img{object-fit:contain!important;background:#fff}.compact-catalog-info h4{margin-bottom:2px}.compact-catalog-info p{margin:0;font-size:.78rem;color:var(--muted)}.catalog-tooltip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%) translateY(8px);width:240px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:18px;padding:12px;box-shadow:0 18px 48px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:30}.catalog-tooltip img{width:100%;height:120px;object-fit:contain;background:#f7f5f1;border-radius:12px;border:1px solid var(--line);margin-bottom:8px}.catalog-tooltip strong,.catalog-tooltip span,.catalog-tooltip em{display:block;font-size:.82rem;margin-top:4px}.catalog-tooltip em{color:var(--gold);font-style:normal;font-weight:700}.catalog-card:hover .catalog-tooltip,.catalog-card:focus-within .catalog-tooltip{opacity:1;transform:translateX(-50%) translateY(0)}.mat-border-controls[hidden]{display:none!important}


/* V41 full catalogue image fit */
.catalog-card > img,
.catalog-tooltip img {
  object-fit: contain !important;
  background: #fff !important;
}


/* V42 no-mat default and restored catalogue database upload tools */
.mat-border-controls[hidden] {
  display: none !important;
}
#adminCatalogueUploadManager .admin-grid {
  align-items: start;
}
#adminCatalogueUploadManager .preview-box img {
  object-fit: contain !important;
  background: #fff !important;
}


/* V43 remove mat dropdown, use action buttons */
.mat-action-panel {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px;
  background: #fff;
}
.mat-action-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 10px 0;
}
.mat-action-buttons button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .68rem .9rem;
  cursor: pointer;
  font-weight: 700;
}
.mat-action-buttons button.active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
#removeMatBtn {
  border-color: #d2a0a0;
  color: #9b2525;
}
#removeMatBtn[hidden] {
  display: none !important;
}


/* V44 correct mat flow */
#matTarget[hidden] {
  display: none !important;
}
.mat-target[hidden] {
  display: none !important;
}
#removeMatBtn {
  border-color: #d2a0a0;
  color: #9b2525;
}


/* V45 small mat row controls */
.mat-action-panel {
  display: none !important;
}
.mat-target {
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.mat-target[hidden] {
  display: none !important;
}
.mat-inline-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}
.mat-inline-actions button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .58rem .82rem;
  cursor: pointer;
  font-weight: 700;
}
.mat-inline-actions button.active {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
#removeMatBtn {
  border-color: #d2a0a0;
  color: #9b2525;
}
#removeMatBtn[hidden] {
  display: none !important;
}
.mat-target-radios {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
}
.mat-target-radios[hidden] {
  display: none !important;
}


/* V46 outer/second mat only */
.mat-inline-actions {
  display: none !important;
}
.mat-target {
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.mat-target[hidden] {
  display: none !important;
}
.mat-target-radios {
  display: flex;
  gap: 18px;
  flex-wrap: wrap;
  align-items: center;
}
.mat-target-radios[hidden] {
  display: none !important;
}
#removeMatBtn {
  border: 1px solid #d2a0a0;
  background: #fff;
  color: #9b2525;
  border-radius: 999px;
  padding: .58rem .82rem;
  cursor: pointer;
  font-weight: 700;
}
#removeMatBtn[hidden] {
  display: none !important;
}

/* V50 horizontal default artwork */
.note {
  color: var(--muted);
}

/* V54 undo redo and mat layer removal */
.history-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 10px 0 14px;
}
.history-actions button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .62rem .9rem;
  cursor: pointer;
  font-weight: 700;
  box-shadow: 0 6px 20px rgba(0,0,0,.04);
}
.history-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.mat-layer-status {
  color: var(--muted);
  font-size: .86rem;
  padding: .55rem .75rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
}
#removeMatBtn {
  border-color: #d2a0a0 !important;
  color: #9b2525 !important;
}


/* V55 top upload row with Undo / Redo */
.top-upload-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.top-upload-row input[type="file"] {
  flex: 1 1 220px;
}
.top-history-actions {
  margin: 0 !important;
  display: flex;
  gap: 8px;
  align-items: center;
}
.top-history-actions button {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: .58rem .9rem;
  cursor: pointer;
  font-weight: 700;
  white-space: nowrap;
}
.top-history-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* V56 mat and glazing oversize warning */
.size-limit-alert {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px 14px;
  background: #fff;
  color: var(--muted);
  line-height: 1.45;
}
.size-limit-alert.ok {
  border-color: #c7d8c2;
  background: #f7fbf5;
  color: #2f6b3c;
}
.size-limit-alert.warning {
  border-color: #d2a0a0;
  background: #fff8f6;
  color: #7a2c22;
}
.size-limit-alert strong {
  display: block;
  color: #9b2525;
  margin-bottom: 6px;
}
.size-limit-alert ul {
  margin: 8px 0 8px 18px;
  padding: 0;
}
.size-limit-alert p {
  margin: 8px 0 0;
}

/* V58 catalogue blank repair */
.catalog-error-card {
  grid-column: 1 / -1;
  border: 1px solid #d2a0a0;
  background: #fff8f6;
  color: #7a2c22;
  border-radius: 18px;
  padding: 16px;
  line-height: 1.45;
}
.catalog-error-card strong {
  display: block;
  margin-bottom: 6px;
}

/* V59 runtime blank fix */
.catalog-error-card {
  border: 1px solid #d2a0a0 !important;
  background: #fff8f6 !important;
  color: #7a2c22 !important;
  padding: 14px !important;
  border-radius: 18px !important;
}
.catalog-error-card p {
  margin: 6px 0 0;
}





/* V61 Material Size Check: black when OK, red only when oversize */
.preview-size-limit-section {
  margin-top: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 12px 14px;
  box-shadow: var(--shadow);
}

.preview-size-limit-section h3 {
  margin: 0 0 8px;
  color: #111315;
}

.preview-size-limit-section .size-limit-alert {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px 14px;
  background: #fff;
  color: #111315;
  line-height: 1.45;
}

.preview-size-limit-section.ok h3,
.preview-size-limit-section.ok .size-limit-alert,
.preview-size-limit-section .size-limit-alert.ok {
  color: #111315 !important;
  border-color: var(--line);
  background: #fff;
}

.preview-size-limit-section.warning h3,
.preview-size-limit-section.warning .size-limit-alert,
.preview-size-limit-section .size-limit-alert.warning,
.preview-size-limit-section .size-limit-alert.warning strong,
.preview-size-limit-section .size-limit-alert.warning b,
.preview-size-limit-section .size-limit-alert.warning li,
.preview-size-limit-section .size-limit-alert.warning p {
  color: #9b2525 !important;
}

.preview-size-limit-section.warning .size-limit-alert,
.preview-size-limit-section .size-limit-alert.warning {
  border-color: #d2a0a0;
  background: #fff8f6;
}


/* V65 visitor total-only estimate */
.visitor-estimate-section .staff-only-price-inputs {
  display: none;
}

.visitor-estimate-box {
  border: 1px solid var(--line);
  border-radius: 18px;
  background: #fff;
  padding: 12px 14px;
  box-shadow: var(--shadow);
}

.visitor-estimate-box p {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 8px 0;
  margin: 0;
  border-bottom: 1px solid var(--line);
}

.visitor-estimate-box p:last-child {
  border-bottom: 0;
}

.visitor-estimate-box span {
  color: var(--muted);
}

.visitor-estimate-box strong {
  text-align: right;
  color: #111315;
}

.visitor-estimate-box .total {
  margin-top: 4px;
  padding-top: 12px;
  font-size: 1.08rem;
}

.visitor-estimate-box .total span,
.visitor-estimate-box .total strong {
  color: #111315;
  font-weight: 900;
}

.quote-disclaimer {
  margin: 10px 0 0;
  color: #6d6258;
  font-size: .88rem;
  line-height: 1.5;
  background: #fff8f1;
  border: 1px solid #eadbc6;
  border-radius: 14px;
  padding: 10px 12px;
}


/* V66 visual multi-item quote request */
.quote-modal-backdrop{position:fixed;inset:0;background:rgba(17,19,21,.52);z-index:9999;display:grid;place-items:center;padding:22px}
.quote-modal{width:min(980px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:24px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.22);position:relative}
.quote-modal-close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:999px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:24px}
.quote-request-preview-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.quote-request-preview-grid img{width:100%;height:220px;object-fit:contain;border:1px solid var(--line);border-radius:16px;background:#fff}
.quote-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.quote-package-option{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff8f1;margin:12px 0}
.quote-package-option small{margin-left:auto;color:var(--muted)}
.quote-modal-summary p,.visual-quote-card p,.visual-quote-admin-card p{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:7px 0;margin:0}
.quote-modal-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.quote-submit-status{color:#9b2525;font-weight:700}
.quote-number-link{border:0;background:transparent;color:#111315;font-weight:900;font-size:1.05rem;text-decoration:underline;cursor:pointer;padding:0}
.quote-card-preview-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.quote-card-preview-row img{width:100%;height:120px;object-fit:contain;border:1px solid var(--line);border-radius:12px;background:#fff}
.visual-quote-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:14px}
.visual-quote-admin-card,.visual-quote-card{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff;box-shadow:var(--shadow)}
@media(max-width:760px){.quote-request-preview-grid,.quote-form-grid,.quote-card-preview-row{grid-template-columns:1fr}}


/* V67 quote review before contact details */
.quote-step[hidden] {
  display: none !important;
}

.quote-review-items-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.quote-review-item-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
}

.quote-review-item-card strong {
  display: block;
  margin-bottom: 8px;
}

.quote-review-item-card p {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 6px 0;
  margin: 0;
}

.quote-review-item-card p:last-child {
  border-bottom: 0;
}

.quote-review-item-card span {
  color: var(--muted);
}

.quote-review-item-card b {
  text-align: right;
}


/* V68 critical fix: quote modal must stay hidden until visitor clicks Send for Exact Quote */
.quote-modal-backdrop[hidden],
.quote-step[hidden] {
  display: none !important;
}


/* V69 final quotation, payment, work order, receipt workflow */
.v69-final-quote-modal .quote-extra-request-box,
.v69-final-quote-modal .quote-contact-section {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: #fff8f1;
  margin-top: 14px;
}

.v69-final-quote-modal .quote-contact-section[hidden] {
  display: none !important;
}

.v69-final-quote-modal .quote-review-items-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.v69-final-quote-modal .quote-review-item-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 12px;
  background: #fff;
}

.v69-final-quote-modal .quote-review-item-card p {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  border-bottom: 1px solid var(--line);
  padding: 6px 0;
  margin: 0;
}

.v69-final-quote-modal .quote-review-item-card p:last-child {
  border-bottom: 0;
}

.v69-final-quote-modal .quote-review-item-card b {
  text-align: right;
}

.admin-card .visual-quote-admin-grid {
  margin-top: 14px;
}


/* V70 Framing Structure Studio merge */
.structure-button-link{text-decoration:none}
#openStructureStudioBtn{background:#fff7e6;border:1px solid #d49b35;color:#6f4309;font-weight:800;box-shadow:0 8px 18px rgba(120,82,20,.12)}
#openStructureStudioBtn:hover{background:#ffedc2}

/* V73 quote reference image upload and safer preview display */
.quote-reference-upload-box{
  margin-top:16px;
  padding:14px;
  border:1px dashed #d8c7ad;
  border-radius:16px;
  background:#fffaf2;
}
.quote-reference-upload-box h3{margin:0 0 6px;font-size:15px;}
.quote-reference-upload-box p{margin:0 0 10px;color:#6a7280;line-height:1.45;}
.quote-reference-upload-label{display:block;font-weight:700;color:#18202a;}
.quote-reference-upload-label input{display:block;margin-top:8px;width:100%;}
.quote-extra-images-preview{margin-top:10px;}
.quote-extra-images-preview .muted-small{color:#6a7280;font-size:13px;margin:0;}
.quote-request-preview-grid img,
.quote-card-preview-row img{background:#fffaf2;border:1px solid #eee4d8;object-fit:contain;}

/* V91 moulding catalogue profile view: no distortion, admin uploaded profile + working images */
.catalog-card.moulding-card-scaled {
  position: relative;
  display: grid;
  grid-template-rows: minmax(170px, auto) auto;
  min-height: 270px;
}
.catalog-card.moulding-card-scaled > img.moulding-profile-catalogue-image {
  align-self: end;
  justify-self: center;
  padding: 18px 12px 6px;
  background: #fff;
}
.moulding-width-badge {
  position: absolute;
  top: 9px;
  left: 9px;
  z-index: 2;
  background: #f8ecd8;
  color: #6f4715;
  border: 1px solid #ead7b9;
  border-radius: 8px;
  padding: 3px 8px;
  font-size: .72rem;
  font-weight: 700;
}
.catalog-tooltip img {
  object-fit: contain;
  background: #fff;
}
.admin-two-image-upload {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: 10px 0;
}
.moulding-upload-preview {
  min-height: 180px;
  display: grid;
  place-items: center;
  background: #fff;
}
.preview-box img,
.moulding-upload-preview img {
  max-width: 100%;
  max-height: 180px;
  object-fit: contain;
  object-position: center bottom;
}
.catalogue-upload-thumb-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  align-items: center;
  min-width: 160px;
}
.catalogue-upload-thumb-pair img {
  width: 100%;
  height: 100px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
}
@media(max-width:720px){
  .admin-two-image-upload{grid-template-columns:1fr;}
}

/* V92 catalogue database edit/re-upload controls */
.catalogue-record-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
}
.catalogue-record-actions .btn,
.catalogue-record-actions .danger-btn {
  white-space: nowrap;
}
#catalogueEditStatus {
  margin: 12px 0;
}
#newCatalogMouldingBtn {
  margin-right: 10px;
  margin-bottom: 10px;
}

/* V93 additions: liner, templates, glazing option cards */
.glazing-option-card{min-height:120px;display:flex;align-items:center;justify-content:center;text-align:left;padding:18px;background:#fffaf2;border:1px solid #e6d8c5;}
.glazing-option-card .info{padding:0!important;}
.glazing-option-card h4{font-size:16px;margin-bottom:6px;}
.catalog-tabs{flex-wrap:wrap;}
.selected-summary{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));}
.catalog-card.moulding-card-scaled img{object-fit:contain!important;object-position:center bottom!important;}
.quote-actions{gap:8px;flex-wrap:wrap;}
#saveTemplateBtn{background:#fff;border:1px solid #d9c7ad;color:#74502a;}

/* V95 corrected active material feedback */
.second-moulding-helper-v95{grid-column:1/-1;border:2px solid #b77a2e;background:#fff7e8;color:#3a2a16;}
#addSecondMouldingBtn{font-weight:700;}
.catalog-tabs .catalog-tab{white-space:nowrap;}

/* V109 locked polish: keep material information below preview and add catalogue sort control */
.catalog-width-sort{margin-top:8px;}
.canvas-wrap{padding-bottom:18px;}
.selected-summary{margin-top:18px;position:relative;z-index:1;}


/* V110 locked polish: sticky compact catalogue header and no-overlap preview spacing */
.left-panel{display:flex;flex-direction:column;overflow:hidden;max-height:calc(100vh - 74px);}
.left-panel .eyebrow,.left-panel h2,.left-panel .catalog-tabs,.left-panel .catalog-search,.left-panel .mat-target,.left-panel .catalog-sort-toggle-v110{flex:0 0 auto;}
.catalog-grid{flex:1 1 auto;min-height:0;overflow:auto;padding-right:4px;align-content:start;}
.catalog-tabs{margin:10px 0 8px!important;gap:5px!important;}
.catalog-tab{padding:.48rem .68rem!important;font-size:.82rem!important;}
.catalog-search{padding:.55rem .65rem!important;margin-bottom:7px!important;border-radius:12px!important;}
.catalog-sort-toggle-v110{width:42px;height:34px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#7a4a17;font-size:20px;font-weight:800;line-height:1;cursor:pointer;margin:0 0 8px auto;display:block;box-shadow:0 6px 16px rgba(0,0,0,.04);}
.catalog-sort-toggle-v110:hover{background:#fff7e8;border-color:var(--gold);}
.catalog-width-sort{display:none!important;}
.canvas-wrap{padding-bottom:26px!important;}
.selected-summary{margin-top:22px!important;}
@media(max-width:1150px){.left-panel{max-height:none;overflow:visible}.catalog-grid{overflow:visible}}

/* V113 locked UX polish: inline remove controls and red final quotation button */
.selected-summary div{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:8px 10px;
}
.selected-summary div strong{
  grid-column:1 / -1;
}
.selected-summary div span{
  min-width:0;
  overflow-wrap:anywhere;
}
.inline-material-remove-v113{
  border:1px solid #c84a3d;
  background:#fff5f3;
  color:#b3261e;
  border-radius:999px;
  padding:.36rem .62rem;
  font-size:.74rem;
  font-weight:800;
  cursor:pointer;
  white-space:nowrap;
}
.inline-material-remove-v113:hover{
  background:#ffe7e2;
}
.quote-actions button[id^="remove"]{
  display:none!important;
}
#saveQuoteBtn,
.quote-actions #saveQuoteBtn{
  background:#c62828!important;
  border-color:#b71c1c!important;
  color:#fff!important;
  font-weight:900!important;
  letter-spacing:.02em;
  box-shadow:0 10px 24px rgba(198,40,40,.22);
}
#saveQuoteBtn:hover,
.quote-actions #saveQuoteBtn:hover{
  background:#b71c1c!important;
}
@media(max-width:720px){
  .selected-summary div{grid-template-columns:1fr auto;}
  .inline-material-remove-v113{font-size:.72rem;padding:.34rem .56rem;}
}


/* V114 restore from approved V112: mat catalogue Image 1 layout and hide Catalogue label. */
/* V112 REAL: locked mat catalogue cleanup - Image 1 card layout only. */
.left-panel > .eyebrow{display:none!important;}
.left-panel h2{margin-top:0!important;}
.catalog-grid.mat-catalog-v112{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  overflow:auto!important;
  align-content:start!important;
  padding:4px 4px 24px!important;
}
.catalog-grid.mat-catalog-v112 .catalog-card{
  min-height:214px!important;
  border-radius:16px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fff!important;
}
.catalog-grid.mat-catalog-v112 .catalog-card > img{
  width:calc(100% - 22px)!important;
  height:128px!important;
  margin:11px auto 0!important;
  border-radius:4px!important;
  object-fit:cover!important;
  object-position:center!important;
  background:#f7f5f1!important;
  display:block!important;
}
.catalog-grid.mat-catalog-v112 .catalog-card .info{
  padding:12px 14px 14px!important;
}
.catalog-grid.mat-catalog-v112 .catalog-card h4{
  font-size:1.02rem!important;
  line-height:1.15!important;
  margin:0 0 5px!important;
  font-weight:800!important;
  color:#0f1720!important;
}
.catalog-grid.mat-catalog-v112 .catalog-card p{
  font-size:.88rem!important;
  line-height:1.25!important;
  color:#4b5563!important;
}
.catalog-grid.mat-catalog-v112 .catalog-tooltip{display:none!important;}
@media(max-width:720px){
  .catalog-grid.mat-catalog-v112{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;}
  .catalog-grid.mat-catalog-v112 .catalog-card{min-height:188px!important;}
  .catalog-grid.mat-catalog-v112 .catalog-card > img{height:112px!important;width:calc(100% - 18px)!important;margin-top:9px!important;}
  .catalog-grid.mat-catalog-v112 .catalog-card h4{font-size:.92rem!important;}
  .catalog-grid.mat-catalog-v112 .catalog-card p{font-size:.78rem!important;}
}

/* V118: visible live canvas copy for Frame Designer quotation Current Frame Preview only. */
.quote-request-preview-grid canvas.quote-live-frame-canvas-v118{
  width:100%;
  height:220px;
  object-fit:contain;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fffaf2;
  display:block;
}

/* V119 Professional Mat Border Controls - locked enhancement only */
.v119-weighted-controls,
.v119-custom-group-controls{
  border:1px solid var(--line);
  border-radius:14px;
  background:#fffaf2;
  padding:10px;
  margin:8px 0 10px;
}
.v119-weighted-controls[hidden],
.v119-custom-group-controls[hidden],
#customMatControls[hidden],
#equalMatSizeRow[hidden]{display:none!important;}
.v119-checkbox-row{
  display:flex!important;
  align-items:center;
  gap:8px;
  margin:4px 0 0;
  color:var(--ink);
}
.v119-checkbox-row input{
  width:auto!important;
  min-width:18px;
}
.mat-border-status-v119{
  margin-top:8px;
  border:1px solid #d8c7a7;
  border-radius:12px;
  background:#fff9ec;
  color:#67420f;
  padding:9px 10px;
  font-size:.82rem;
  line-height:1.35;
}
.mat-border-status-v119.locked{
  border-color:#a7d8b0;
  background:#f0fff3;
  color:#146c2e;
}
.mat-border-status-v119.weighted{
  border-color:#dcc18b;
  background:#fff8e8;
}
.mat-border-status-v119.custom{
  border-color:#cdbb9e;
  background:#fffaf2;
}

/* V120 second mat reveal control - small, isolated UI polish */
.second-mat-reveal-control{
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid #eadfce;
  border-radius:14px;
  background:#fffaf3;
}
.second-mat-reveal-control .field-title{
  margin:0 0 2px;
  font-weight:800;
  color:#1d2633;
}
.v120-radio-row{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.95rem;
}
#secondRevealCustomRow{
  margin-top:4px;
}
#innerReveal:disabled{
  background:#f3eee6;
  color:#7d7467;
}


/* V126 locked enhancement: floating Reveal / Double Mat visual guide only.
   Read-only guide; no sizing, pricing, rendering, catalogue, or quotation logic is changed. */
.canvas-wrap{
  position:relative;
}
.floating-mat-guide-v126{
  position:absolute;
  left:18px;
  top:18px;
  width:min(280px, calc(100% - 36px));
  z-index:6;
  border:1px solid rgba(185,154,93,.55);
  border-radius:16px;
  background:rgba(255,250,243,.94);
  box-shadow:0 14px 36px rgba(20,24,28,.14);
  backdrop-filter:blur(6px);
  color:#24303d;
  overflow:hidden;
}
.floating-mat-guide-head-v126{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  background:rgba(255,246,229,.92);
  border-bottom:1px solid rgba(185,154,93,.25);
  font-size:.88rem;
}
.floating-mat-guide-head-v126 strong{
  font-weight:900;
}
.floating-mat-guide-head-v126 button{
  width:28px;
  height:28px;
  padding:0!important;
  border:1px solid rgba(185,154,93,.5);
  border-radius:999px;
  background:#fff;
  color:#7a4a17;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.floating-mat-guide-body-v126{
  padding:10px 12px 12px;
}
.floating-mat-guide-body-v126 p{
  margin:.22rem 0 .42rem;
  font-size:.78rem;
  line-height:1.35;
  color:#405061;
}
.floating-mat-guide-mini-v126{
  margin-top:8px;
  border:1px solid #dec99e;
  border-radius:12px;
  padding:8px;
  background:#fff;
  display:grid;
  gap:5px;
}
.floating-mat-guide-mini-v126 .guide-layer{
  display:block;
  text-align:center;
  border-radius:8px;
  font-size:.72rem;
  font-weight:800;
  padding:5px 6px;
}
.floating-mat-guide-mini-v126 .outer{
  background:#efe4d0;
  color:#4c3211;
}
.floating-mat-guide-mini-v126 .reveal{
  background:#d7c08d;
  color:#3f2d08;
}
.floating-mat-guide-mini-v126 .art{
  background:#f4f4f2;
  color:#26313d;
  border:1px dashed #cfc7b8;
}
.floating-mat-guide-v126.is-collapsed .floating-mat-guide-body-v126{
  display:none!important;
}
.floating-mat-guide-v126.is-collapsed{
  width:auto;
  min-width:230px;
}
@media(max-width:720px){
  .floating-mat-guide-v126{
    position:relative;
    left:auto;
    top:auto;
    width:100%;
    margin-bottom:10px;
  }
}


/* V127 locked refinement: draggable mat visual guide, show only when Mats are used. */
.floating-mat-guide-v126.v127-guide-hidden{
  display:none!important;
}
.floating-mat-guide-v126.v127-draggable{
  position:fixed!important;
  left:24px;
  top:130px;
  z-index:9999;
  max-width:calc(100vw - 28px);
  touch-action:none;
}
.floating-mat-guide-v126.v127-dragging{
  user-select:none;
  opacity:.96;
}
.floating-mat-guide-head-v126{
  cursor:move;
}
.mat-guide-window-actions-v127{
  display:flex;
  align-items:center;
  gap:6px;
  flex-shrink:0;
}
.mat-guide-window-actions-v127 button{
  width:28px;
  height:28px;
}
#matGuideCloseV127{
  font-size:1.05rem;
}
.mat-guide-never-row-v127{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid rgba(185,154,93,.22);
  font-size:.75rem;
  line-height:1.25;
  color:#5a6673;
  cursor:pointer;
}
.mat-guide-never-row-v127 input{
  margin-top:1px;
  flex:0 0 auto;
}
.mat-guide-manual-button-v127{
  border:1px solid rgba(185,154,93,.65)!important;
  background:#fff8eb!important;
  color:#7a4a17!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  font-size:.78rem!important;
  font-weight:800!important;
  cursor:pointer!important;
  white-space:nowrap;
}
@media(max-width:720px){
  .floating-mat-guide-v126.v127-draggable{
    position:fixed!important;
    left:10px!important;
    top:86px;
    width:calc(100vw - 20px)!important;
    margin:0!important;
  }
}

/* V128 locked enhancement: floating Glass / Acrylic Guide only.
   Read-only guide; no pricing, rendering, catalogue selection, quotation, or remove logic is changed. */
.floating-glazing-guide-v128.v128-guide-hidden{
  display:none!important;
}
.floating-glazing-guide-v128{
  position:fixed;
  left:330px;
  top:130px;
  width:min(300px, calc(100vw - 28px));
  z-index:9998;
  border:1px solid rgba(99,131,164,.48);
  border-radius:16px;
  background:rgba(248,252,255,.96);
  box-shadow:0 14px 36px rgba(20,24,28,.14);
  backdrop-filter:blur(6px);
  color:#24303d;
  overflow:hidden;
  touch-action:none;
}
.floating-glazing-guide-head-v128{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  background:rgba(236,246,255,.95);
  border-bottom:1px solid rgba(99,131,164,.22);
  font-size:.88rem;
  cursor:move;
}
.floating-glazing-guide-head-v128 strong{
  font-weight:900;
}
.glazing-guide-window-actions-v128{
  display:flex;
  align-items:center;
  gap:6px;
  flex-shrink:0;
}
.glazing-guide-window-actions-v128 button{
  width:28px;
  height:28px;
  padding:0!important;
  border:1px solid rgba(99,131,164,.45);
  border-radius:999px;
  background:#fff;
  color:#244a6d;
  font-weight:900;
  line-height:1;
  cursor:pointer;
}
.floating-glazing-guide-body-v128{
  padding:10px 12px 12px;
}
.floating-glazing-guide-body-v128 p{
  margin:.22rem 0 .42rem;
  font-size:.78rem;
  line-height:1.35;
  color:#405061;
}
.floating-glazing-guide-mini-v128{
  margin-top:8px;
  border:1px solid #c9d7e4;
  border-radius:12px;
  padding:8px;
  background:#fff;
  display:grid;
  gap:5px;
}
.floating-glazing-guide-mini-v128 .guide-layer{
  display:block;
  text-align:center;
  border-radius:8px;
  font-size:.72rem;
  font-weight:800;
  padding:5px 6px;
}
.floating-glazing-guide-mini-v128 .normal{
  background:#eef5fb;
  color:#244a6d;
}
.floating-glazing-guide-mini-v128 .uv{
  background:#e8f1ff;
  color:#1f4d86;
}
.floating-glazing-guide-mini-v128 .acrylic{
  background:#edf7f5;
  color:#245f57;
}
.floating-glazing-guide-mini-v128 .museum{
  background:#f5f2ff;
  color:#4b3d83;
}
.floating-glazing-guide-v128.is-collapsed .floating-glazing-guide-body-v128{
  display:none!important;
}
.floating-glazing-guide-v128.is-collapsed{
  width:auto;
  min-width:230px;
}
.floating-glazing-guide-v128.v128-dragging{
  user-select:none;
  opacity:.96;
}
.glazing-guide-never-row-v128{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:10px;
  padding-top:9px;
  border-top:1px solid rgba(99,131,164,.18);
  font-size:.75rem;
  line-height:1.25;
  color:#5a6673;
  cursor:pointer;
}
.glazing-guide-never-row-v128 input{
  margin-top:1px;
  flex:0 0 auto;
}
.glazing-guide-manual-button-v128{
  border:1px solid rgba(99,131,164,.55)!important;
  background:#eef7ff!important;
  color:#244a6d!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  font-size:.78rem!important;
  font-weight:800!important;
  cursor:pointer!important;
  white-space:nowrap;
  margin:6px 0 8px;
}
.glazing-guide-manual-button-v128[hidden]{
  display:none!important;
}
@media(max-width:720px){
  .floating-glazing-guide-v128{
    left:10px!important;
    top:86px;
    width:calc(100vw - 20px)!important;
    margin:0!important;
  }
}

/* V130: database-driven glazing guide records */
.glazing-guide-dynamic-list-v130{
  display:grid;
  gap:8px;
  margin-bottom:10px;
}
.glazing-guide-record-v130{
  border:1px solid rgba(99,131,164,.22);
  background:rgba(255,255,255,.82);
  border-radius:12px;
  padding:8px 9px;
  display:grid;
  gap:4px;
}
.glazing-guide-record-v130 div{
  display:flex;
  justify-content:space-between;
  gap:8px;
  align-items:flex-start;
}
.glazing-guide-record-v130 strong{
  font-size:.82rem;
  color:#24364a;
}
.glazing-guide-record-v130 div span{
  font-size:.72rem;
  color:#244a6d;
  font-weight:800;
  white-space:nowrap;
}
.glazing-guide-record-v130 p,
.glazing-guide-record-v130 small{
  margin:0;
  color:#5b6672;
  line-height:1.25;
}
.glazing-guide-record-v130 small{
  font-size:.72rem;
}
.glazing-guide-record-v130 em{
  justify-self:start;
  font-size:.66rem;
  font-style:normal;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#7a5c22;
  background:#fff7df;
  border:1px solid rgba(185,154,93,.28);
  border-radius:999px;
  padding:2px 7px;
}


/* V131: scrollable floating glazing guide content only.
   Built from locked V130. This is a UI-only safety fix for long glazing guide lists.
   It does not change pricing, catalogue selection, rendering, quotation, or mat functions. */
.floating-glazing-guide-v128{
  max-height:calc(100vh - 28px);
  display:flex;
  flex-direction:column;
}
.floating-glazing-guide-v128 .floating-glazing-guide-head-v128{
  flex:0 0 auto;
}
.floating-glazing-guide-v128 .floating-glazing-guide-body-v128{
  flex:1 1 auto;
  min-height:0;
  max-height:calc(100vh - 110px);
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  touch-action:pan-y;
  scrollbar-width:thin;
}
.floating-glazing-guide-v128 .floating-glazing-guide-body-v128::-webkit-scrollbar{
  width:8px;
}
.floating-glazing-guide-v128 .floating-glazing-guide-body-v128::-webkit-scrollbar-thumb{
  background:rgba(99,131,164,.38);
  border-radius:999px;
}
.floating-glazing-guide-v128 .floating-glazing-guide-body-v128::-webkit-scrollbar-track{
  background:rgba(255,255,255,.45);
}
.floating-glazing-guide-v128.is-collapsed{
  max-height:none;
  display:block;
}
@media(max-width:720px){
  .floating-glazing-guide-v128{
    max-height:calc(100vh - 96px);
  }
  .floating-glazing-guide-v128 .floating-glazing-guide-body-v128{
    max-height:calc(100vh - 170px);
  }
}


/* V132: floating glazing guide is educational only; hide any legacy guide price span safely. */
#glazingGuideDynamicListV130 .glazing-guide-record-v130 div span{
  display:none!important;
}
#glazingGuideDynamicListV130 .glazing-guide-record-v130 div{
  justify-content:flex-start;
}

/* V135: Move backing type selector beside the Glazing button in the left catalogue area. */
.v135-material-top-controls{align-items:center;gap:8px;}
.v135-backing-top-control{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:#fffaf0;padding:4px 6px 4px 10px;font-size:.82rem;color:#6a4c17;font-weight:800;white-space:nowrap;}
.v135-backing-top-control select{width:auto;min-width:154px;border:0;background:transparent;padding:.42rem .65rem;font:inherit;color:#111;outline:none;}
.v135-backing-top-control:focus-within{box-shadow:0 0 0 3px rgba(185,154,93,.22);border-color:#b99a5d;}
@media(max-width:980px){.v135-backing-top-control{width:100%;justify-content:space-between;border-radius:16px}.v135-backing-top-control select{min-width:0;flex:1}}

/* V136: Backing catalogue button and cards. Built from locked V135. */
.v136-hidden-backing-select{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.catalog-card.backing-card-v136 img{background:#fff;object-fit:cover}
.catalog-card.backing-card-v136 .backing-price-note-v136{font-size:.78rem;color:#8a6a32;font-weight:700;margin-top:2px}
.catalog-card.backing-card-v136 .backing-desc-v136{font-size:.78rem;color:var(--muted);line-height:1.25;margin-top:2px}
.backing-catalog-status-v136{border:1px solid rgba(185,154,93,.35);background:#fffaf0;color:#5f3b12;border-radius:14px;padding:.65rem .75rem;margin-bottom:.75rem;font-size:.86rem;line-height:1.35}

/* V137: Place Backing button directly beside Glazing at the right/end of the material tabs.
   Built from locked V136. This is layout-only and does not change catalogue, pricing, rendering, quotation, or database logic. */
.catalog-tabs.v135-material-top-controls{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:center!important;
}
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="glazings"]{
  margin-left:auto!important;
}
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="backings"]{
  order:999!important;
}
@media(max-width:720px){
  .catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="glazings"]{
    margin-left:0!important;
  }
}


/* V138: floating Backing Guide only. Built from locked V137.
   UI guide is draggable, scrollable, closeable, and database-driven from Backing catalogue records.
   Prices are intentionally not shown in this guide. */
.floating-backing-guide-v138.v138-guide-hidden{display:none!important;}
.floating-backing-guide-v138{
  position:fixed;
  left:360px;
  top:160px;
  width:min(330px, calc(100vw - 24px));
  max-height:calc(100vh - 28px);
  z-index:70;
  border:1px solid rgba(116,96,64,.28);
  border-radius:18px;
  background:rgba(255,252,244,.96);
  box-shadow:0 18px 45px rgba(34,25,12,.16);
  backdrop-filter:blur(12px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.floating-backing-guide-head-v138{
  flex:0 0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  background:linear-gradient(135deg,#fff5dd,#f3e3c3);
  cursor:move;
  user-select:none;
}
.floating-backing-guide-head-v138 strong{
  font-size:.88rem;
  color:#5a3d15;
}
.backing-guide-window-actions-v138{display:flex;gap:6px;align-items:center;}
.backing-guide-window-actions-v138 button{
  width:26px;
  height:26px;
  border:1px solid rgba(116,96,64,.22);
  border-radius:999px;
  background:#fff;
  color:#5a3d15;
  font-weight:900;
  cursor:pointer;
  line-height:1;
}
.floating-backing-guide-body-v138{
  flex:1 1 auto;
  min-height:0;
  max-height:calc(100vh - 110px);
  overflow-y:auto;
  padding:11px 12px 12px;
  color:#5d5448;
  font-size:.82rem;
  line-height:1.35;
}
.floating-backing-guide-body-v138::-webkit-scrollbar{width:8px;}
.floating-backing-guide-body-v138::-webkit-scrollbar-thumb{background:rgba(116,96,64,.32);border-radius:999px;}
.floating-backing-guide-body-v138::-webkit-scrollbar-track{background:rgba(255,255,255,.45);}
.floating-backing-guide-body-v138 p{margin:0 0 7px;}
.backing-guide-dynamic-list-v138{display:grid;gap:8px;margin-bottom:10px;}
.backing-guide-record-v138{
  border:1px solid rgba(116,96,64,.20);
  background:rgba(255,255,255,.82);
  border-radius:12px;
  padding:8px 9px;
  display:grid;
  gap:4px;
}
.backing-guide-record-v138 div{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;}
.backing-guide-record-v138 strong{font-size:.82rem;color:#4b351a;}
.backing-guide-record-v138 p,
.backing-guide-record-v138 small{margin:0;color:#5d5448;line-height:1.25;}
.backing-guide-record-v138 small{font-size:.72rem;}
.backing-guide-record-v138 em{
  justify-self:start;
  font-size:.66rem;
  font-style:normal;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#6c501e;
  background:#fff7df;
  border:1px solid rgba(185,154,93,.28);
  border-radius:999px;
  padding:2px 7px;
}
.floating-backing-guide-mini-v138{display:grid;grid-template-columns:1fr;gap:3px;margin:9px 0;}
.floating-backing-guide-mini-v138 .guide-layer{
  border-radius:9px;
  padding:5px 8px;
  text-align:center;
  font-size:.7rem;
  font-weight:850;
  border:1px solid rgba(116,96,64,.18);
}
.floating-backing-guide-mini-v138 .art{background:#f9eecf;color:#65491c;}
.floating-backing-guide-mini-v138 .glazing{background:#edf6ff;color:#28506f;}
.floating-backing-guide-mini-v138 .backing{background:#efe3d0;color:#4a3217;}
.floating-backing-guide-v138.is-collapsed .floating-backing-guide-body-v138{display:none;}
.floating-backing-guide-v138.is-collapsed{max-height:none;}
.floating-backing-guide-v138.v138-dragging{opacity:.92;box-shadow:0 24px 60px rgba(34,25,12,.22);}
.backing-guide-never-row-v138{
  display:flex;
  gap:7px;
  align-items:flex-start;
  margin-top:8px;
  padding-top:8px;
  border-top:1px dashed rgba(116,96,64,.24);
  font-size:.74rem;
  line-height:1.25;
  color:#6a5e4b;
  cursor:pointer;
}
.backing-guide-never-row-v138 input{margin-top:1px;flex:0 0 auto;}
.backing-guide-manual-button-v138{
  border:1px solid rgba(116,96,64,.42)!important;
  background:#fff5dd!important;
  color:#5a3d15!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  font-size:.78rem!important;
  font-weight:800!important;
  cursor:pointer!important;
  white-space:nowrap;
  margin:6px 0 8px;
}
.backing-guide-manual-button-v138[hidden]{display:none!important;}
@media(max-width:720px){
  .floating-backing-guide-v138{left:10px!important;top:90px;width:calc(100vw - 20px)!important;margin:0!important;}
  .floating-backing-guide-v138 .floating-backing-guide-body-v138{max-height:calc(100vh - 145px);}
}

/* V157 locked enhancement: third mat layer layout support only. */
.third-mat-reveal-control-v157{
  border-color:#eadbb8;
  background:#fffdf4;
}
.third-mat-reveal-control-v157[hidden]{
  display:none!important;
}
.third-mat-reveal-control-v157 .field-title{
  color:#4a3212;
}
.mat-target-radios label{
  white-space:nowrap;
}
.mat-border-controls{
  display:grid;
  gap:10px;
}
@media(max-width:1150px){
  .mat-target{align-items:flex-start;}
}

/* V159: Collapsible Search / Category UI
   UI-only enhancement. Search and category logic remain unchanged and are only hidden by default to save space. */
.catalog-tools-toggle{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  border:1px solid var(--line);
  background:var(--soft);
  color:var(--ink);
  border-radius:14px;
  padding:.72rem .9rem;
  margin:4px 0 10px;
  cursor:pointer;
  font-weight:600;
  box-shadow:0 4px 12px rgba(17,19,21,.04);
}
.catalog-tools-toggle:hover{
  background:#f3efe8;
}
.catalog-tools-toggle:focus-visible{
  outline:2px solid rgba(185,154,93,.45);
  outline-offset:2px;
}
.catalog-tools-toggle-text{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.catalog-tools-toggle-text::before{
  content:'⌕';
  color:var(--gold);
  font-size:1rem;
  line-height:1;
}
.catalog-tools-toggle-icon{
  color:var(--muted);
  font-size:1rem;
  line-height:1;
  transition:transform .18s ease;
}
.catalog-tools-toggle[aria-expanded="true"] .catalog-tools-toggle-icon{
  transform:rotate(180deg);
}
#catalogSearch[hidden],
#catalogCategoryFilter[hidden]{
  display:none !important;
}

/* V160: Draggable Floating Frame Actions + Professional Second Moulding Dropdown
   UI-only relocation. Existing material logic, catalogue logic, pricing, preview, and quotation functions are locked. */
#addSecondMouldingBtn.v160-original-add-hidden{
  display:none !important;
  visibility:hidden !important;
  position:absolute !important;
  left:-9999px !important;
}
.v160-moulding-dropdown{
  display:none;
  border:1px solid var(--line);
  background:#fff;
  border-radius:18px;
  box-shadow:0 18px 38px rgba(17,19,21,.12);
  padding:12px;
  margin:4px 0 12px;
}
.v160-moulding-dropdown.is-open{
  display:block;
}
.v160-moulding-section-title{
  display:block;
  color:#8a7357;
  font-weight:800;
  font-size:.78rem;
  margin-bottom:8px;
}
.v160-moulding-primary{
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid #eee4d8;
  background:#fffdf9;
  border-radius:14px;
  padding:10px;
  margin-bottom:10px;
}
.v160-moulding-swatch{
  width:74px;
  height:36px;
  border-radius:8px;
  background:linear-gradient(180deg,#4a4a45,#111 55%,#5a472f 56%,#b99a5d 66%,#2c2a28 67%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);
  flex:0 0 auto;
}
.v160-moulding-primary strong{
  display:block;
  font-size:.88rem;
}
.v160-moulding-primary small,
.v160-moulding-help{
  color:var(--muted);
  font-size:.76rem;
  line-height:1.45;
}
.v160-add-second-moulding{
  width:100%;
  border:1px solid #d8c6aa;
  background:#fbf7ef;
  color:#2d2a24;
  border-radius:12px;
  padding:.82rem .9rem;
  cursor:pointer;
  font-weight:850;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  transition:background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.v160-add-second-moulding:hover{
  background:#f4eadc;
  transform:translateY(-1px);
  box-shadow:0 8px 18px rgba(185,154,93,.15);
}
.v160-add-second-moulding.is-selecting{
  border-color:#111315;
  background:#111315;
  color:#fff;
}
.v160-frame-actions-launcher{
  position:fixed;
  z-index:79;
  left:22px;
  top:92px;
  border:1px solid #d8c6aa;
  background:#fff;
  color:#202428;
  border-radius:999px;
  padding:.65rem .9rem;
  font-weight:850;
  box-shadow:0 12px 30px rgba(17,19,21,.12);
  cursor:pointer;
}
.v160-frame-actions{
  position:fixed;
  z-index:80;
  width:292px;
  max-width:calc(100vw - 24px);
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(12px);
  border:1px solid rgba(229,223,213,.95);
  border-radius:20px;
  box-shadow:0 24px 64px rgba(17,19,21,.17);
  overflow:hidden;
}
.v160-frame-actions.is-hidden{
  display:none;
}
.v160-frame-actions-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:12px 14px 10px;
  cursor:grab;
  user-select:none;
  border-bottom:1px solid #f0e9df;
}
.v160-frame-actions-head:active{
  cursor:grabbing;
}
.v160-frame-actions-title{
  display:grid;
  gap:3px;
}
.v160-frame-actions-title strong{
  font-size:.96rem;
}
.v160-frame-actions-title small{
  color:var(--muted);
  font-size:.72rem;
}
.v160-drag-dots{
  color:#b7aa99;
  letter-spacing:2px;
  font-size:1rem;
  line-height:1;
}
.v160-frame-close{
  width:32px;
  height:32px;
  border:0;
  background:#fff7f5;
  color:#9a4638;
  border-radius:50%;
  cursor:pointer;
  font-size:1.15rem;
}
.v160-frame-actions-body{
  padding:13px;
  display:grid;
  gap:12px;
}
.v160-action-group{
  display:grid;
  gap:7px;
}
.v160-action-group-title{
  color:#8a7357;
  font-weight:850;
  font-size:.76rem;
}
.v160-action-button{
  width:100%;
  border:1px solid #eee4d8;
  background:#fffdf9;
  color:#2d2a24;
  border-radius:11px;
  padding:.66rem .72rem;
  cursor:pointer;
  font-weight:650;
  text-align:left;
  display:flex;
  align-items:center;
  gap:8px;
}
.v160-action-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.v160-action-button::before{
  content:'🗑';
  opacity:.72;
  font-size:.9rem;
}
.v160-action-button:hover:not(:disabled){
  border-color:#d8c6aa;
  background:#fbf7ef;
}
.v160-action-button:disabled{
  opacity:.43;
  cursor:not-allowed;
}
.v160-clear-all{
  justify-content:center;
  text-align:center;
  border-color:#efd2ca;
  color:#a43b2c;
  background:#fff9f7;
}
.v160-clear-all::before{
  color:#b44131;
}
@media(max-width:720px){
  .v160-frame-actions{width:calc(100vw - 24px);left:12px!important;right:12px;top:94px!important;}
  .v160-action-row{grid-template-columns:1fr;}
}

/* V161: Remove moulding options block and place 2nd Moulding beside Mouldings.
   Locked UI-only change. Existing moulding/second-moulding logic is preserved. */
#v160MouldingDropdown{
  display:none !important;
}
.v161-second-moulding-tab{
  white-space:nowrap;
}
.v161-second-moulding-tab.is-selecting,
.v161-second-moulding-tab.active{
  background:var(--dark) !important;
  color:#fff !important;
  border-color:var(--dark) !important;
}

/* V162: Corrected 2nd Moulding tab order + red blinking Frame Actions launcher.
   Locked UI-only correction. Existing second-moulding, catalogue, pricing, preview, and quotation logic remain unchanged. */
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="mouldings"]{order:10;}
.catalog-tabs.v135-material-top-controls #v161SecondMouldingTab{order:20;}
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="mats"]{order:30;}
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="fillets"]{order:40;}
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="liners"]{order:50;}
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="glazings"]{order:60;}
.catalog-tabs.v135-material-top-controls .catalog-tab[data-tab="backings"]{order:70;}
.catalog-tabs.v135-material-top-controls #backingSelect{order:99;}

#v161SecondMouldingTab{
  border-color:#e2d8ca;
  background:#fff;
  color:var(--ink);
  font-weight:700;
}
#v161SecondMouldingTab.is-selecting,
#v161SecondMouldingTab.active{
  background:#111315 !important;
  color:#fff !important;
  border-color:#111315 !important;
}

/* The old floating reopen pill is replaced by the new title-area button. */
#v160FrameActionsLauncher{
  display:none !important;
}

.stage-header .v162-stage-title-actions{
  display:inline-flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.stage-header .v162-stage-title-actions h1{
  margin-right:0;
}
.v162-frame-actions-title-button{
  border:1px solid #b90000;
  background:#d71920;
  color:#fff;
  border-radius:999px;
  padding:.66rem 1rem;
  cursor:pointer;
  font-weight:900;
  letter-spacing:.01em;
  box-shadow:0 0 0 rgba(215,25,32,.55), 0 12px 26px rgba(215,25,32,.22);
  animation:v162FrameActionBlink 1.15s ease-in-out infinite;
}
.v162-frame-actions-title-button:hover{
  background:#b90000;
  transform:translateY(-1px);
}
.v162-frame-actions-title-button:focus-visible{
  outline:3px solid rgba(215,25,32,.28);
  outline-offset:3px;
}
@keyframes v162FrameActionBlink{
  0%,100%{box-shadow:0 0 0 0 rgba(215,25,32,.48), 0 12px 26px rgba(215,25,32,.22); filter:brightness(1);}
  50%{box-shadow:0 0 0 8px rgba(215,25,32,.04), 0 18px 34px rgba(215,25,32,.34); filter:brightness(1.12);}
}

/* Keep the V159 search/filter space-saving behavior visibly protected. */
#catalogSearch[hidden],
#catalogCategoryFilter[hidden]{
  display:none !important;
}
.stage-header .v162-stage-title-actions h1{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
}
.stage-header .v162-stage-title-actions #v162FrameActionsTitleButton{
  vertical-align:middle;
}

/* V163: Unit panel cleanup + reliable estimate total.
   Conversion summary is intentionally hidden; the unit selector and size inputs remain active. */
#v153ConvertedSizeNote,
.v153-unit-note{
  display:none !important;
}
.v153-unit-panel{
  margin-bottom:12px !important;
}
.v153-unit-title::after{
  content:' & Unit';
}
.v153-unit-title[data-v163-clean-title="1"]::after{
  content:'';
}

/* V164: Compact artwork size unit panel.
   Default unit remains cm; inch option is restored by JS. Large "Size, Mat & Cost" heading is hidden to save space. */
.right-panel.v164-compact-size-panel > .v164-hide-size-cost-heading{
  display:none !important;
}
.right-panel.v164-compact-size-panel > .eyebrow:first-child{
  margin-bottom:2px !important;
}
.right-panel.v164-compact-size-panel .control-section:first-of-type{
  padding:10px !important;
  border-radius:16px !important;
  margin-bottom:10px !important;
}
.right-panel.v164-compact-size-panel .control-section:first-of-type > h3{
  font-size:.9rem !important;
  margin:0 0 8px !important;
}
.v153-unit-panel{
  padding:9px 10px !important;
  margin:6px 0 10px !important;
  border-radius:14px !important;
  box-shadow:0 6px 16px rgba(60,40,20,.05) !important;
}
.v153-unit-head{
  align-items:center !important;
  gap:8px !important;
  margin-bottom:8px !important;
}
.v153-unit-kicker{
  font-size:9px !important;
  letter-spacing:.09em !important;
}
.v153-unit-title{
  font-size:14px !important;
  line-height:1.12 !important;
}
.v153-unit-title::after,
.v153-unit-title[data-v163-clean-title="1"]::after{
  content:'' !important;
}
.v153-unit-select-label{
  min-width:82px !important;
  max-width:96px !important;
  font-size:10px !important;
  gap:4px !important;
}
.v153-unit-head select{
  padding:7px 8px !important;
  border-radius:10px !important;
  font-size:12px !important;
}
.v153-unit-grid{
  gap:8px !important;
  margin-bottom:0 !important;
}
.v153-input-card{
  padding:8px !important;
  border-radius:12px !important;
  gap:5px !important;
  font-size:11px !important;
}
.v153-input-card input{
  padding:8px 9px !important;
  border-radius:10px !important;
  font-size:13px !important;
}
#v153ConvertedSizeNote,
.v153-unit-note{
  display:none !important;
}

/* V165: Clean size unit panel and hide unwanted explanatory text.
   UI-only cleanup; pricing and quotation logic remain locked. */
.v165-hide-unwanted-text{
  display:none !important;
}
.right-panel.v165-clean-size-panel .control-section:first-of-type{
  padding:9px !important;
}
.right-panel.v165-clean-size-panel .control-section:first-of-type > h3{
  display:none !important;
}
#v153DualUnitPanel.v153-unit-panel,
.v165-clean-size-panel #v153DualUnitPanel.v153-unit-panel{
  padding:8px !important;
  margin:2px 0 10px !important;
  border-radius:14px !important;
}
#v153DualUnitPanel .v153-unit-title-wrap,
#v153DualUnitPanel .v153-unit-kicker,
#v153DualUnitPanel .v153-unit-title{
  display:none !important;
}
#v153DualUnitPanel .v153-unit-head{
  justify-content:flex-end !important;
  margin-bottom:6px !important;
}
#v153DualUnitPanel .v153-unit-select-label{
  min-width:78px !important;
  max-width:92px !important;
  margin:0 !important;
  font-size:10px !important;
}
#v153DualUnitPanel .v153-unit-head select{
  padding:7px 8px !important;
  font-size:12px !important;
}
#v153DualUnitPanel .v153-unit-grid{
  gap:7px !important;
  margin-bottom:0 !important;
}
#v153DualUnitPanel .v153-input-card{
  padding:7px !important;
  font-size:11px !important;
}
#v153DualUnitPanel .v153-input-card input{
  padding:8px !important;
  font-size:13px !important;
}


/* V166: Single Artwork Size label + reliable inch dropdown display.
   UI/unit repair only; existing pricing and quotation logic remain locked. */
.v166-hide-old-size-heading,
.v166-hide-default-mat-note{
  display:none !important;
}
#v153DualUnitPanel .v166-artwork-size-title{
  display:block !important;
  font-size:13px !important;
  font-weight:850 !important;
  color:var(--ink,#202428) !important;
  margin:0 0 6px !important;
  line-height:1.15 !important;
}
#v153DualUnitPanel .v153-unit-title-wrap,
#v153DualUnitPanel .v153-unit-kicker,
#v153DualUnitPanel .v153-unit-title{
  display:none !important;
}
#v153ArtworkUnit{
  appearance:auto !important;
  -webkit-appearance:menulist !important;
  display:block !important;
  background:#fff !important;
  color:#202428 !important;
  border:1px solid var(--line,#e5dfd5) !important;
  border-radius:10px !important;
  min-width:78px !important;
  cursor:pointer !important;
}
#v153ArtworkUnit option{
  background:#fff !important;
  color:#202428 !important;
}
#v153DualUnitPanel.v166-unit-panel,
#v153DualUnitPanel .v166-unit-grid{
  overflow:visible !important;
}

/* V167: final compact artwork size unit panel */
#v153DualUnitPanel.v167-unit-panel{
  padding:12px!important;
  border-radius:18px!important;
}
#v153DualUnitPanel .v167-artwork-size-title{
  font-size:.92rem!important;
  font-weight:850!important;
  color:var(--ink)!important;
  margin:0 0 8px!important;
}
#v153DualUnitPanel .v167-size-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 82px!important;
  gap:10px!important;
  align-items:end!important;
}
#v153DualUnitPanel .v167-size-fields{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
}
#v153DualUnitPanel .v167-input-card{
  margin:0!important;
  padding:8px!important;
}
#v153DualUnitPanel .v167-input-card span,
#v153DualUnitPanel .v167-unit-select-label span{
  font-size:.72rem!important;
  font-weight:800!important;
  color:#4b4034!important;
  margin:0 0 5px!important;
}
#v153DualUnitPanel .v167-input-card input,
#v153DualUnitPanel .v167-unit-select-label select{
  min-height:42px!important;
  padding:.48rem .55rem!important;
  border-radius:10px!important;
  font-size:.88rem!important;
  background:#fff!important;
  color:var(--ink)!important;
}
#v153DualUnitPanel .v167-unit-select-label{
  display:grid!important;
  gap:5px!important;
  margin:0!important;
  min-width:82px!important;
}
@media(max-width:720px){
  #v153DualUnitPanel .v167-size-row{grid-template-columns:1fr!important;}
}

/* V168: replace broken native cm/inch dropdown with reliable unit buttons. */
.v168-internal-cm-field,
#v153DualUnitPanel .v153-unit-title-wrap,
#v153DualUnitPanel .v153-unit-kicker,
#v153DualUnitPanel .v153-unit-title,
#v153DualUnitPanel .v167-artwork-size-title:not(.v168-artwork-size-title){
  display:none !important;
}
#v153DualUnitPanel.v168-unit-panel{
  padding:12px !important;
  border-radius:16px !important;
  margin:0 0 12px !important;
  background:#fffbf6 !important;
  border:1px solid #e4cda8 !important;
}
.v168-artwork-size-title{
  display:block !important;
  font-weight:850 !important;
  font-size:.95rem !important;
  color:#111315 !important;
  margin:0 0 8px !important;
}
.v168-artwork-size-body{
  display:grid !important;
  grid-template-columns:1fr 1fr auto !important;
  gap:8px !important;
  align-items:end !important;
}
.v168-size-card,
.v168-unit-card{
  margin:0 !important;
  padding:8px !important;
  border:1px solid #e4cda8 !important;
  border-radius:12px !important;
  background:#fff !important;
  color:#111315 !important;
  min-width:0 !important;
}
.v168-size-card span,
.v168-unit-card > span{
  display:block !important;
  font-size:.72rem !important;
  font-weight:800 !important;
  margin:0 0 5px !important;
}
.v168-size-card input{
  width:100% !important;
  min-width:0 !important;
  border-radius:10px !important;
  padding:.55rem .6rem !important;
  font-weight:800 !important;
}
.v168-unit-buttons{
  display:flex !important;
  gap:4px !important;
  border:1px solid #e4cda8 !important;
  border-radius:999px !important;
  padding:3px !important;
  background:#f8f1e5 !important;
}
.v168-unit-buttons button{
  border:0 !important;
  border-radius:999px !important;
  padding:.45rem .62rem !important;
  background:transparent !important;
  color:#34302a !important;
  font-weight:850 !important;
  cursor:pointer !important;
  line-height:1 !important;
}
.v168-unit-buttons button.active{
  background:#111315 !important;
  color:#fff !important;
}
.v168-hidden-select{
  position:absolute !important;
  left:-9999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
@media(max-width:720px){
  .v168-artwork-size-body{grid-template-columns:1fr 1fr !important;}
  .v168-unit-card{grid-column:1 / -1 !important;}
  .v168-unit-buttons{width:max-content !important;}
}

/* V170: Clean size unit duplicate removal
   Keep the new lightweight V169 cm/inch button panel only.
   Hide the older V153/V166/V167 top unit selector panel to prevent duplicate controls. */
#v153DualUnitPanel{
  display:none !important;
  visibility:hidden !important;
  height:0 !important;
  max-height:0 !important;
  min-height:0 !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
}
