:root{font-family:Inter,system-ui,Arial,sans-serif;color:#172033;background:#f5f7fb}*{box-sizing:border-box}body{margin:0}header{height:68px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:#111827;color:white}header div{display:flex;gap:14px;align-items:baseline}header span{color:#9ca3af;font-size:13px}nav{display:flex;gap:22px}a{color:#2563eb;text-decoration:none}header a{color:#fff}main{max-width:1500px;margin:auto;padding:34px 4vw}.hero{background:white;padding:28px;border-radius:14px;margin-bottom:22px;box-shadow:0 2px 10px #0000000a}.hero h1{margin:0 0 7px;font-size:30px}.hero p{color:#667085}.search{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.search input:not([type="checkbox"]){min-width:420px;flex:1}.search label{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:#344054;font-size:14px}.search input[type="checkbox"]{width:16px;height:16px;min-width:16px;flex:none;margin:0;accent-color:#111827}input,select,button{padding:12px 14px;border:1px solid #d0d5dd;border-radius:8px;background:white;font-size:14px}button{background:#111827;color:white;border-color:#111827;cursor:pointer}.summary{margin:14px 0;color:#667085}.tablewrap{overflow:auto;background:white;border-radius:12px}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:14px;border-bottom:1px solid #eaecf0;vertical-align:top}th{font-size:12px;color:#667085;text-transform:uppercase;background:#fafafa}.product{display:flex;flex-direction:column;color:#172033;max-width:620px}.product strong{margin-top:4px;font-weight:600}td span{display:block;color:#667085;font-size:13px;margin-top:4px}.pager{display:flex;justify-content:center;gap:22px;padding:24px}.detail{background:white;border-radius:14px;padding:28px;display:grid;grid-template-columns:220px 1fr;gap:30px;margin:20px 0}.detail img{max-width:200px;max-height:200px;object-fit:contain}.detail h1{font-size:26px}.detail h2{font-family:monospace}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.cards article{background:white;padding:24px;border-radius:14px}.cards dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cards dt{color:#667085}.cards dd{margin:0;font-weight:600}@media(max-width:800px){.search input:not([type="checkbox"]){min-width:100%}.detail{grid-template-columns:1fr}}
/* Product picker */
.picker-hero{display:flex;align-items:center;justify-content:space-between}.picker-hero h1{margin-bottom:5px}.clear-link{font-weight:600}.breadcrumbs{display:flex;gap:9px;align-items:center;margin:0 2px 22px;color:#667085;font-size:14px;flex-wrap:wrap}.breadcrumbs strong{color:#172033}.picker-section{background:#fff;border-radius:14px;padding:26px;margin-bottom:22px;box-shadow:0 2px 10px #0000000a}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.section-heading h2{margin:0 0 4px;font-size:20px}.section-heading p{margin:0;color:#667085}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.picker-grid.compact{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.picker-card{position:relative;border:1px solid #e4e7ec;border-radius:11px;padding:18px 42px 18px 18px;color:#172033;background:#fff;transition:.15s ease}.picker-card:hover{border-color:#98a2b3;transform:translateY(-1px);box-shadow:0 5px 16px #10182810}.picker-card-name{display:block;font-weight:650;font-size:16px;margin-bottom:5px}.picker-card-count{display:block;color:#667085;font-size:13px}.picker-arrow{position:absolute;right:17px;top:50%;transform:translateY(-50%);font-size:19px;color:#98a2b3}.chip-grid{display:flex;gap:9px;flex-wrap:wrap}.filter-chip{border:1px solid #d0d5dd;border-radius:999px;padding:9px 13px;color:#344054;background:#fff;font-size:14px}.filter-chip span{color:#98a2b3;margin-left:5px;font-size:12px}.filter-chip:hover,.filter-chip.selected{border-color:#111827;background:#111827;color:#fff}.filter-chip.selected span,.filter-chip:hover span{color:#d0d5dd}.results-layout{display:grid;grid-template-columns:245px 1fr;gap:20px;align-items:start}.picker-filters{background:white;border-radius:12px;padding:20px;position:sticky;top:18px}.picker-filters h3{margin:0 0 18px}.field-label{font-size:12px;font-weight:650;color:#475467;display:block;margin:14px 0 6px}.filter-input{width:100%;min-width:0}.check-row{display:flex;gap:8px;align-items:center;margin:17px 0 13px;font-size:14px;color:#344054}.check-row input{width:16px;height:16px;padding:0;accent-color:#111827}.filter-button{width:100%}.picker-results{min-width:0}.results-head{display:flex;align-items:end;justify-content:space-between;margin:3px 0 14px}.results-head h2{margin:0;font-size:20px}.results-head p{margin:4px 0 0;color:#667085;font-size:13px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.product-card{background:#fff;border:1px solid #eaecf0;border-radius:12px;padding:17px;min-width:0}.product-card-title{display:flex;flex-direction:column;color:#172033}.product-card-title small{color:#667085;text-transform:uppercase;font-size:11px;font-weight:650;margin-bottom:6px}.product-card-title strong{font-size:14px;line-height:1.4;min-height:39px}.product-card>code{display:block;margin:10px 0 14px;color:#475467;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.offer-mini{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #eaecf0;padding-top:12px;gap:10px}.offer-mini>div{display:grid;grid-template-columns:1fr auto;gap:2px 8px}.offer-mini span{grid-column:1/3;color:#667085;font-size:11px;text-transform:uppercase}.offer-mini b{font-size:13px}.offer-mini small{font-size:11px;color:#667085;justify-self:end}.empty-state{background:#fff;border-radius:12px;padding:34px;color:#667085;grid-column:1/-1;text-align:center}
@media(max-width:900px){.results-layout{grid-template-columns:1fr}.picker-filters{position:static}.product-grid{grid-template-columns:1fr}.picker-hero{align-items:flex-start;gap:15px}}
/* Product picker view toggle + compact list view */
.view-toggle{display:inline-flex;border:1px solid #d0d5dd;border-radius:8px;overflow:hidden;background:#fff;flex:none}.view-toggle a{padding:8px 11px;color:#475467;font-size:13px;font-weight:600;border-right:1px solid #d0d5dd}.view-toggle a:last-child{border-right:0}.view-toggle a:hover{background:#f9fafb}.view-toggle a.active{background:#111827;color:#fff}
.product-grid.list-view{display:flex;flex-direction:column;gap:7px}.product-grid.list-view .product-card{display:grid;grid-template-columns:minmax(320px,1fr) 145px minmax(310px,.9fr);gap:18px;align-items:center;padding:12px 16px;border-radius:9px}.product-grid.list-view .product-card-title strong{min-height:0;font-size:13px}.product-grid.list-view .product-card-title small{margin-bottom:3px}.product-grid.list-view .product-card>code{margin:0;color:#475467}.product-grid.list-view .offer-mini{border-top:0;padding-top:0}.product-grid.list-view .offer-mini>div{padding-left:12px;border-left:1px solid #eaecf0}
@media(max-width:1050px){.product-grid.list-view .product-card{grid-template-columns:minmax(250px,1fr) 125px minmax(270px,.9fr)}}
@media(max-width:760px){.results-head{align-items:flex-start;gap:12px}.product-grid.list-view .product-card{grid-template-columns:1fr}.product-grid.list-view .product-card>code{margin:3px 0}.product-grid.list-view .offer-mini>div{padding-left:0;border-left:0}.view-toggle a{padding:7px 9px}}

/* Compact category navigation list */
.category-list{border:1px solid #e4e7ec;border-radius:10px;overflow:hidden;background:#fff}.category-row{display:grid;grid-template-columns:minmax(0,1fr) auto 24px;gap:16px;align-items:center;padding:13px 16px;color:#172033;border-bottom:1px solid #eaecf0;transition:.12s ease}.category-row:last-child{border-bottom:0}.category-row:hover{background:#f9fafb}.category-row-name{font-weight:650;font-size:14px}.category-row-count{color:#667085;font-size:12px;white-space:nowrap}.category-row-arrow{font-size:20px;line-height:1;color:#98a2b3;text-align:right}.category-list.compact .category-row{padding:11px 14px}
@media(max-width:620px){.category-row{grid-template-columns:minmax(0,1fr) auto 18px;gap:10px;padding:12px}.category-row-count{font-size:11px}}


/* Lowest vendor price highlight */
.offer-mini > div.cheapest-offer {
  background: #f0fdf4;
  border-radius: 8px;
  padding: 7px 9px;
  margin: -7px -9px;
  box-shadow: inset 0 0 0 1px #dcfce7;
}
.product-grid.list-view .offer-mini > div.cheapest-offer {
  padding: 7px 10px;
  margin: -7px -10px -7px 2px;
  border-left-color: transparent;
}
.cheapest-cell {
  background: #f0fdf4;
}


/* Products landing page quick-access tiles */
.product-home-section .section-heading{margin-bottom:16px}
.home-tile-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.home-category-tile{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:92px;padding:17px 40px 17px 18px;border:1px solid #e4e7ec;border-radius:11px;background:#fff;color:#172033;transition:.15s ease}
.home-category-tile:hover{border-color:#98a2b3;transform:translateY(-1px);box-shadow:0 5px 16px #10182810}
.home-category-name{font-size:15px;font-weight:700;line-height:1.25;margin-bottom:6px}
.home-category-count{font-size:12px;color:#667085}
.home-category-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:21px;color:#98a2b3}
.home-tile-grid.featured .home-category-tile{min-height:104px}
@media(max-width:1200px){.home-tile-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.home-tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.home-tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.home-tile-grid{grid-template-columns:1fr}}


/* v0.6.20 icon-led product landing tiles */
.home-tile-grid{gap:14px}
.home-category-tile{
  min-height:170px;
  align-items:center;
  justify-content:flex-start;
  text-align:center;
  padding:22px 18px 18px;
}
.home-tile-grid.featured .home-category-tile{min-height:184px}
.category-icon-wrap{
  width:70px;
  height:70px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#eef6ff;
  margin-bottom:16px;
}
.category-icon{
  width:36px;
  height:36px;
  color:#0b6fd3;
}
.home-category-name{
  font-size:16px;
  line-height:1.25;
  margin-bottom:7px;
}
.home-category-count{
  font-size:13px;
  margin-bottom:4px;
}
.home-category-arrow{
  position:static;
  transform:none;
  margin-top:auto;
  padding-top:15px;
  font-size:16px;
  color:#0b6fd3;
}
.home-category-arrow::before{
  content:"View products";
  font-size:12px;
  font-weight:700;
  margin-right:8px;
}
.product-home-section{
  margin-bottom:34px;
}
.product-home-section + .product-home-section{
  padding-top:28px;
  border-top:1px solid #e5e7eb;
}
@media(max-width:650px){
  .home-category-tile{min-height:155px}
  .category-icon-wrap{width:60px;height:60px}
  .category-icon{width:31px;height:31px}
}


/* v0.6.21 distributor portal links */
.distributor-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:14px;
  padding:9px 12px;
  border:1px solid #d0d5dd;
  border-radius:8px;
  background:#fff;
  color:#175cd3;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  transition:.15s ease;
}
.distributor-link:hover{
  border-color:#84adff;
  background:#f5f8ff;
}


/* v0.6.23 more compact Products landing page */
.home-tile-grid{gap:10px}
.home-category-tile{
  min-height:145px;
  padding:17px 14px 14px;
}
.home-tile-grid.featured .home-category-tile{min-height:156px}
.category-icon-wrap{
  width:60px;
  height:60px;
  margin-bottom:12px;
}
.category-icon{
  width:31px;
  height:31px;
}
.home-category-name{
  font-size:15px;
  margin-bottom:5px;
}
.home-category-count{
  font-size:12px;
  margin-bottom:2px;
}
.home-category-arrow{
  padding-top:10px;
}
.product-home-section{
  margin-bottom:25px;
}
.product-home-section .section-heading{
  margin-bottom:12px;
}
.product-home-section + .product-home-section{
  padding-top:22px;
}
@media(max-width:650px){
  .home-category-tile{min-height:138px;padding:15px 12px 12px}
  .category-icon-wrap{width:54px;height:54px;margin-bottom:10px}
  .category-icon{width:28px;height:28px}
}


/* v0.7.0 quoting */
.quote-add-button,.primary-link-button,.save-quote-button,.card-quote-link,.table-quote-link{
  display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-weight:700;text-decoration:none;
}
.offer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.offer-actions .distributor-link{margin-top:0}
.quote-add-button{padding:9px 12px;background:#175cd3;color:#fff;font-size:13px}
.quote-add-button:hover,.primary-link-button:hover{background:#1849a9;color:#fff}
.card-quote-link{margin-top:11px;padding:7px 9px;border:1px solid #d0d5dd;color:#175cd3;font-size:12px;align-self:flex-start}
.card-quote-link:hover,.table-quote-link:hover{background:#f5f8ff;border-color:#84adff}
.table-quote-link{padding:7px 9px;border:1px solid #d0d5dd;color:#175cd3;font-size:12px;white-space:nowrap}
.primary-link-button{padding:10px 14px;background:#175cd3;color:#fff;font-size:13px}
.back-link{display:inline-block;margin-bottom:12px;font-weight:650}

.quote-create-panel,.quote-list-panel,.quote-meta-panel,.quote-lines-panel,.quote-notes-panel,.quote-summary-panel,.manual-line-panel,.add-product-summary,.add-quote-panel{
  background:#fff;border-radius:12px;border:1px solid #eaecf0;box-shadow:0 2px 10px #00000008;
}
.quote-create-panel{display:grid;grid-template-columns:260px 1fr;gap:24px;padding:22px;margin-bottom:20px;align-items:center}
.quote-create-panel h2,.quote-create-panel p{margin:0}.quote-create-panel p{color:#667085;font-size:13px;margin-top:5px}
.quote-create-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:9px}.quote-create-form input{min-width:0}
.quote-list-panel{padding:22px}.quote-list{border:1px solid #eaecf0;border-radius:10px;overflow:hidden}
.quote-list-row{display:grid;grid-template-columns:90px minmax(0,1fr) 90px 130px 20px;gap:14px;align-items:center;padding:14px 16px;color:#172033;border-bottom:1px solid #eaecf0}
.quote-list-row:last-child{border-bottom:0}.quote-list-row:hover{background:#f9fafb}
.quote-number{font-family:monospace;font-weight:700;color:#475467}.quote-list-main{display:flex;flex-direction:column;min-width:0}
.quote-list-main strong{font-size:14px}.quote-list-main span{font-size:12px;color:#667085;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.quote-status{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:750;width:max-content}
.status-draft{background:#f2f4f7;color:#475467}.status-sent{background:#eff8ff;color:#175cd3}.status-accepted{background:#ecfdf3;color:#067647}.status-lost{background:#fef3f2;color:#b42318}
.quote-list-value{text-align:right;display:flex;flex-direction:column}.quote-list-value strong{font-size:14px}.quote-list-value span{font-size:10px;color:#98a2b3}.quote-row-arrow{font-size:20px;color:#98a2b3}

.quote-topbar{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.quote-title-line{display:flex;align-items:center;gap:12px}
.quote-title-line h1{margin:0}.quote-topbar p{margin:5px 0 0;color:#667085}
.quote-meta-panel{padding:18px;margin-bottom:16px}.quote-meta-grid{display:grid;grid-template-columns:1.2fr 1.2fr 1fr .7fr;gap:12px}
.quote-meta-grid label,.add-quote-panel label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:650;color:#475467}
.quote-lines-panel{padding:18px;margin-bottom:16px}.quote-lines-panel .section-heading{align-items:center}
.save-quote-button{border:0;background:#175cd3;color:#fff;padding:10px 14px;cursor:pointer}.save-quote-button:hover{background:#1849a9}.save-quote-button.full{width:100%}
.quote-lines-wrap{overflow-x:auto}.quote-lines-table{min-width:1000px}.quote-lines-table th{font-size:11px}
.quote-lines-table td{vertical-align:middle}.quote-product-cell{min-width:300px}.quote-product-cell textarea{width:100%;min-width:280px;resize:vertical;padding:7px 8px}
.quote-product-cell>div{display:flex;gap:8px;align-items:center;margin-top:5px;color:#667085;font-size:10px}.quote-product-cell code{font-size:10px}
.supplier-pill{display:inline-flex;padding:5px 7px;border-radius:6px;background:#f2f4f7;font-size:11px;font-weight:650;white-space:nowrap}
.quote-number-input{width:58px}.money-input{display:flex;align-items:center;border:1px solid #d0d5dd;border-radius:7px;background:#fff;overflow:hidden;min-width:100px}
.money-input span{padding-left:8px;color:#667085;font-size:12px}.money-input input{border:0;box-shadow:none;width:88px;padding:7px 7px 7px 3px}.money-input.compact{min-width:115px}.money-input.compact input{width:88px}
.line-margin,.line-total{font-weight:700;white-space:nowrap}.icon-delete{border:0;background:transparent;color:#98a2b3;font-size:22px;cursor:pointer;padding:4px 7px}.icon-delete:hover{color:#b42318}
.quote-empty{text-align:center;padding:36px;color:#667085}.quote-empty strong{color:#172033}.quote-empty .primary-link-button{margin-top:8px}
.quote-bottom-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}.quote-notes-panel,.quote-summary-panel{padding:20px}
.quote-notes-panel h3,.quote-summary-panel h3,.manual-line-panel h3{margin:0 0 12px}.quote-notes-panel textarea{width:100%;resize:vertical}
.summary-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #f2f4f7;font-size:13px}
.summary-row.internal{color:#667085}.summary-row.freight-row{padding:7px 0}.summary-row.grand-total{border-bottom:0;font-size:17px;padding:14px 0}.summary-row.grand-total strong{font-size:20px}
.manual-line-panel{display:grid;grid-template-columns:260px 1fr;gap:20px;padding:20px;margin-top:16px;align-items:center}.manual-line-panel p{margin:0;color:#667085;font-size:12px}
.manual-line-form{display:grid;grid-template-columns:minmax(220px,1fr) 75px 110px 110px auto;gap:8px}

.add-quote-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:18px;align-items:start}
.add-product-summary,.add-quote-panel{padding:24px}.add-product-summary img{max-width:220px;max-height:180px;object-fit:contain;display:block;margin:0 auto 20px}
.add-product-summary>span{font-size:12px;text-transform:uppercase;color:#667085;font-weight:700}.add-product-summary h1{font-size:20px;line-height:1.35}.add-product-summary code{color:#475467}
.add-quote-panel h2{margin:0}.add-quote-panel>p{margin:6px 0 20px;color:#667085}.add-quote-panel form{display:flex;flex-direction:column;gap:14px}
.add-quote-two{display:grid;grid-template-columns:120px 1fr;gap:10px}.quote-destination{padding-top:14px;border-top:1px solid #eaecf0;display:flex;flex-direction:column;gap:12px}
#new-quote-fields{grid-template-columns:1fr 1fr;gap:10px}

@media(max-width:900px){
  .quote-create-panel,.manual-line-panel{grid-template-columns:1fr}.quote-create-form,.manual-line-form{grid-template-columns:1fr 1fr}
  .quote-list-row{grid-template-columns:75px minmax(0,1fr) 80px 100px 15px}
  .quote-meta-grid{grid-template-columns:1fr 1fr}.quote-bottom-grid{grid-template-columns:1fr}.add-quote-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .quote-create-form,.manual-line-form,.quote-meta-grid,#new-quote-fields{grid-template-columns:1fr}
  .quote-list-row{grid-template-columns:1fr auto}.quote-number,.quote-list-value{display:none}.quote-row-arrow{display:none}
  .quote-topbar{align-items:flex-start;gap:12px}.quote-topbar .primary-link-button{white-space:nowrap}.add-quote-two{grid-template-columns:1fr}
}


/* v0.7.1 quote PDF */
.quote-top-actions{display:flex;gap:8px;align-items:center}
.secondary-link-button{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 14px;border:1px solid #d0d5dd;border-radius:8px;
  background:#fff;color:#344054;font-size:13px;font-weight:700;text-decoration:none;
}
.secondary-link-button:hover{background:#f9fafb;border-color:#98a2b3;color:#172033}
@media(max-width:620px){
  .quote-top-actions{flex-direction:column;align-items:stretch}
}


/* v0.7.6 editable bidirectional margin */
.percent-input{
  display:flex;
  align-items:center;
  border:1px solid #d0d5dd;
  border-radius:7px;
  background:#fff;
  overflow:hidden;
  min-width:92px;
}
.percent-input input{
  border:0;
  box-shadow:none;
  width:66px;
  padding:7px 3px 7px 7px;
  text-align:right;
}
.percent-input span{
  padding-right:8px;
  color:#667085;
  font-size:12px;
}


/* v0.7.7 internal quote-builder RRP */
.quote-rrp{
  margin-top:6px;
  font-size:12px;
  font-weight:600;
  color:#475467;
}


/* v0.7.8 Settings / HaloPSA */
.settings-page{max-width:920px;margin:0 auto}.settings-page .page-heading{margin-bottom:18px}.settings-page .page-heading h1{margin:3px 0 5px}.settings-page .page-heading p{margin:0;color:#667085}
.settings-alert{display:flex;gap:10px;align-items:center;padding:11px 14px;border-radius:9px;margin:0 0 14px;font-size:13px}.settings-alert.success{background:#ecfdf3;color:#027a48;border:1px solid #abefc6}.settings-alert.error{background:#fef3f2;color:#b42318;border:1px solid #fecdca}.settings-alert span{color:inherit}
.settings-card{padding:24px}.settings-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding-bottom:18px;border-bottom:1px solid #eaecf0}.settings-card-head h2{margin:7px 0 5px}.settings-card-head p{margin:0;color:#667085;font-size:13px}.settings-badge{display:inline-flex;font-size:11px;font-weight:750;background:#f2f4f7;color:#344054;padding:4px 7px;border-radius:6px}.connection-chip{white-space:nowrap;background:#ecfdf3;color:#027a48;border:1px solid #abefc6;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:700}
.settings-form{display:grid;gap:15px;padding-top:20px}.settings-form label{display:grid;gap:6px;font-size:13px;font-weight:650;color:#344054}.settings-form input{width:100%;padding:10px 11px}.settings-form small{font-weight:400;color:#667085;font-size:11px}.settings-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:5px}.settings-advanced{border:1px solid #eaecf0;border-radius:8px;padding:11px 13px}.settings-advanced summary{cursor:pointer;font-size:12px;font-weight:700;color:#475467}.settings-advanced label{margin-top:12px}.optional{font-size:10px;font-weight:500;color:#98a2b3}.settings-help{padding:18px 20px;margin-top:15px}.settings-help h3{margin:0 0 7px;font-size:14px}.settings-help p{margin:0;color:#667085;font-size:12px;line-height:1.6}
@media(max-width:620px){.settings-card-head{flex-direction:column}.settings-actions{flex-direction:column}.settings-actions button{width:100%}}


/* v0.7.9 HaloPSA customer autocomplete */
.halo-customer-lookup{
  position:relative;
}
.halo-customer-results{
  position:absolute;
  left:0;
  right:0;
  top:calc(100% + 4px);
  z-index:50;
  max-height:280px;
  overflow:auto;
  border:1px solid #d0d5dd;
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 24px rgba(16,24,40,.12);
}
.halo-customer-option{
  display:block;
  width:100%;
  padding:10px 12px;
  border:0;
  border-bottom:1px solid #f2f4f7;
  background:#fff;
  color:#101828;
  text-align:left;
  cursor:pointer;
  font-size:14px;
}
.halo-customer-option:last-child{
  border-bottom:0;
}
.halo-customer-option:hover,
.halo-customer-option:focus{
  background:#f8fafc;
  outline:none;
}
.halo-customer-status{
  min-height:18px;
  margin-top:4px;
  color:#667085;
  font-size:11px;
}

/* v0.7.11 quote archive/delete */
.quote-list-tabs{display:flex;gap:6px;align-items:center}
.quote-list-tabs a{padding:7px 11px;border:1px solid #d0d5dd;border-radius:7px;text-decoration:none;color:#475467;background:#fff;font-size:13px}
.quote-list-tabs a.active{font-weight:600;color:#101828;background:#f2f4f7}
.quote-list-row-managed{display:flex;align-items:center;gap:10px}
.quote-row-open{display:grid;grid-template-columns:110px minmax(220px,1fr) 90px 120px;align-items:center;gap:14px;flex:1;min-width:0;color:inherit;text-decoration:none}
.quote-manage-actions{display:flex;align-items:center;gap:6px;padding-right:10px}
.quote-manage-actions form,.inline-form{display:inline;margin:0}
.small-button{padding:6px 9px;font-size:12px}
.danger-button{border-color:#fda29b!important;color:#b42318!important;background:#fff!important}
.danger-button:hover{background:#fef3f2!important}
@media(max-width:850px){.quote-list-row-managed{align-items:flex-start;flex-direction:column}.quote-row-open{width:100%;grid-template-columns:90px 1fr}.quote-manage-actions{padding:0 10px 10px}}


/* v0.7.12 highly visible quote management */
.quote-actions-panel{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin:0 0 18px;
  padding:18px 20px;
  border:1px solid #e4e7ec;
  border-radius:12px;
  background:#fff;
}
.quote-actions-panel h2{
  margin:0 0 4px;
  font-size:18px;
}
.quote-actions-panel p{
  margin:0;
  color:#667085;
  font-size:13px;
}
.quote-actions-panel-buttons{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.quote-actions-panel-buttons form{
  margin:0;
}
.quote-action-button,
.quote-manage-button{
  appearance:none;
  border:1px solid #98a2b3;
  border-radius:8px;
  background:#fff;
  color:#344054;
  font-weight:700;
  cursor:pointer;
}
.quote-action-button{
  padding:9px 13px;
  font-size:13px;
}
.quote-manage-button{
  padding:7px 10px;
  font-size:12px;
}
.quote-action-button:hover,
.quote-manage-button:hover{
  background:#f9fafb;
}
.quote-delete-button{
  border-color:#f04438 !important;
  color:#b42318 !important;
  background:#fff !important;
}
.quote-delete-button:hover{
  background:#fef3f2 !important;
}
.quote-archived-banner{
  display:flex;
  gap:8px;
  align-items:center;
  margin:0 0 12px;
  padding:10px 14px;
  border:1px solid #fdb022;
  border-radius:9px;
  background:#fffaeb;
  color:#7a2e0e;
  font-size:13px;
}
.quote-manage-wrap{
  min-width:150px;
  padding:8px 10px 8px 0;
  border-left:1px solid #eaecf0;
  padding-left:12px;
}
.quote-manage-label{
  display:block;
  margin-bottom:5px;
  color:#667085;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.quote-manage-actions{
  padding-right:0;
}
@media(max-width:850px){
  .quote-actions-panel{
    align-items:flex-start;
    flex-direction:column;
  }
  .quote-actions-panel-buttons{
    width:100%;
  }
  .quote-manage-wrap{
    width:100%;
    border-left:0;
    border-top:1px solid #eaecf0;
    padding:10px;
  }
}

/* v0.7.13 self-identifying diagnostic build */
.app-version{
  display:inline-block;
  margin-left:2px;
  padding:3px 7px;
  border:1px solid #475467;
  border-radius:999px;
  color:#d0d5dd;
  font-size:10px;
  font-weight:700;
}
.quote-management-banner{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  padding:12px 16px;
  border:2px solid #175cd3;
  border-radius:10px;
  background:#eff8ff;
  color:#1849a9;
}
.quote-management-banner strong{
  color:#0b4a8b;
}
.quote-management-banner span{
  font-size:13px;
}
.quote-management-banner.detail{
  margin-top:0;
}


/* v0.7.14 bulk quote selection/actions */
.quote-bulk-toolbar{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid #d0d5dd;
  border-radius:10px;
  background:#f9fafb;
}
.quote-select-all{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:13px;
  font-weight:600;
  color:#344054;
}
.selected-count{
  color:#667085;
  font-size:12px;
}
.quote-bulk-actions{
  display:flex;
  gap:7px;
  margin-left:auto;
  flex-wrap:wrap;
}
.quote-bulk-button{
  padding:7px 11px;
  border:1px solid #98a2b3;
  border-radius:8px;
  background:#fff;
  color:#344054;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.quote-bulk-button:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.quote-checkbox-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  padding-left:10px;
}
.quote-checkbox-cell input,
.quote-select-all input{
  width:16px;
  height:16px;
  cursor:pointer;
}
.quote-list-row-managed{
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) auto;
  align-items:center;
}
.quote-row-open{
  width:100%;
}
@media(max-width:850px){
  .quote-bulk-toolbar{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .quote-bulk-actions{
    width:100%;
    margin-left:0;
  }
  .quote-list-row-managed{
    grid-template-columns:34px minmax(0,1fr) !important;
  }
  .quote-manage-wrap{
    grid-column:1 / -1;
  }
}


/* v0.7.16 new quote Halo lookup + bulk toolbar spacing */
.quote-bulk-actions{
  margin-left:34px;
}
.new-quote-halo-lookup{
  min-width:220px;
}
.new-quote-halo-lookup .halo-customer-results{
  z-index:30;
}
@media(max-width:850px){
  .quote-bulk-actions{
    margin-left:0;
    margin-top:8px;
  }
}


/* v0.7.17 fixed New Quote Halo lookup + equal field sizing */
.quote-create-form{
  grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  align-items:start;
}

.quote-create-form .new-quote-field{
  width:100%;
  height:40px;
  min-width:0;
  box-sizing:border-box;
}

.new-quote-halo-lookup{
  width:100%;
  min-width:0;
}

.new-quote-halo-lookup > input{
  width:100%;
  height:40px;
  box-sizing:border-box;
}

.new-quote-halo-lookup .halo-customer-status{
  position:absolute;
  left:0;
  top:42px;
  min-height:0;
  margin-top:2px;
  white-space:nowrap;
}

.quote-create-panel{
  overflow:visible;
}

.quote-create-form{
  overflow:visible;
}

@media(max-width:900px){
  .quote-create-form{
    grid-template-columns:1fr;
  }

  .quote-create-form button{
    width:100%;
  }
}


/* v0.7.19 quote price / margin input alignment */
.quote-lines-table .money-input,
.quote-lines-table .percent-input{
  display:grid;
  align-items:center;
  height:36px;
  box-sizing:border-box;
  border:1px solid #d0d5dd;
  border-radius:7px;
  background:#fff;
  overflow:hidden;
}

.quote-lines-table .money-input{
  grid-template-columns:22px 82px;
  min-width:104px;
}

.quote-lines-table .percent-input{
  grid-template-columns:82px 22px;
  min-width:104px;
}

.quote-lines-table .money-input span,
.quote-lines-table .percent-input span{
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  padding:0;
  color:#475467;
  font-size:13px;
  font-weight:500;
  line-height:1;
  box-sizing:border-box;
}

.quote-lines-table .money-input input,
.quote-lines-table .percent-input input{
  width:100%;
  height:34px;
  margin:0;
  padding:0 8px;
  border:0;
  border-radius:0;
  box-shadow:none;
  background:transparent;
  color:#172033;
  font:inherit;
  font-size:13px;
  font-weight:500;
  line-height:34px;
  text-align:right;
  box-sizing:border-box;
  appearance:textfield;
  -moz-appearance:textfield;
}

.quote-lines-table .money-input input::-webkit-outer-spin-button,
.quote-lines-table .money-input input::-webkit-inner-spin-button,
.quote-lines-table .percent-input input::-webkit-outer-spin-button,
.quote-lines-table .percent-input input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

.quote-lines-table .money-input:focus-within,
.quote-lines-table .percent-input:focus-within{
  border-color:#84adff;
  box-shadow:0 0 0 3px rgba(47, 128, 237, .10);
}


/* =========================================================
   ZoneQuoter v0.7.25 — mockup-inspired application shell
   ========================================================= */
:root{
  --zq-navy:#0b1f33;
  --zq-navy-2:#102b46;
  --zq-navy-3:#163b5d;
  --zq-blue:#1888e8;
  --zq-blue-soft:#eaf4ff;
  --zq-cyan:#27b9df;
  --zq-page:#f7f9fc;
  --zq-card:#ffffff;
  --zq-text:#172033;
  --zq-muted:#667085;
  --zq-border:#e4e9f0;
  --zq-shadow:0 2px 8px rgba(16,24,40,.05);
}
html,body{min-height:100%}
body.zq-body{margin:0;background:var(--zq-page);color:var(--zq-text)}
.zq-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}
.zq-sidebar{
  position:sticky;top:0;height:100vh;
  display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0a1c2e 0%,#102941 100%);
  color:#fff;border-right:1px solid rgba(255,255,255,.05);
  z-index:30;
}
.zq-brand{
  height:102px;display:flex;align-items:center;
  padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.06)
}
.zq-brand img{display:block;width:188px;max-height:58px}
.zq-nav{display:flex;flex-direction:column;gap:8px;padding:18px 14px}
.zq-nav a{
  display:flex;align-items:center;gap:14px;
  min-height:52px;padding:0 15px;border-radius:8px;
  color:#e8eef5;font-weight:600;font-size:15px;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
.zq-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.zq-nav a.active{
  color:#fff;background:linear-gradient(90deg,#12669e,#1b79b7);
  box-shadow:inset 0 0 0 1px rgba(64,183,255,.18);
}
.zq-nav svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;opacity:.92}
.zq-sidebar-footer{
  margin-top:auto;padding:18px 28px 24px;
  display:flex;align-items:center;justify-content:space-between;
  color:#b9c7d5;border-top:1px solid rgba(255,255,255,.06);
  font-size:12px
}
.zq-sidebar-footer small{color:#8097aa}
.zq-workspace{min-width:0;display:flex;flex-direction:column;min-height:100vh}
.zq-topbar{
  height:82px;display:flex;align-items:center;justify-content:space-between;
  padding:0 42px;background:#fff;border-bottom:1px solid var(--zq-border);
  color:var(--zq-text)
}
.zq-topbar>div:first-child{display:flex;align-items:baseline;gap:12px}
.zq-topbar strong{font-size:18px;color:#101828}
.zq-topbar span{font-size:13px;color:var(--zq-muted)}
.zq-topbar-mark{
  width:38px;height:38px;border-radius:10px;
  display:grid;place-items:center;
  background:var(--zq-blue-soft);color:var(--zq-blue);
  font-weight:800;font-size:12px;letter-spacing:.04em
}
.zq-main{width:100%;max-width:none;margin:0;padding:36px 42px 46px;flex:1}
.zq-footer{text-align:center;color:#8491a3;font-size:12px;padding:6px 20px 28px}

/* Cards and page headers */
.hero,.picker-section,.picker-filters,.product-card,.tablewrap,.detail,.cards article,.quote-panel,.settings-panel{
  background:var(--zq-card);
  border:1px solid var(--zq-border);
  box-shadow:var(--zq-shadow);
}
.hero{
  padding:24px 26px;border-radius:10px;margin-bottom:20px;
  box-shadow:none;background:transparent;border:0
}
.hero h1{font-size:30px;line-height:1.15;color:#101828;margin:0 0 7px}
.hero p{font-size:14px;color:var(--zq-muted);margin-bottom:0}
.picker-section{border-radius:10px;box-shadow:var(--zq-shadow)}
.section-heading h2,.results-head h2{color:#101828}
.breadcrumbs{padding:0 2px}
.tablewrap{border-radius:10px;border:1px solid var(--zq-border);box-shadow:var(--zq-shadow)}
table{border-radius:10px;overflow:hidden}
th{background:#f8fafc;color:#667085;border-bottom:1px solid var(--zq-border);font-weight:700}
th,td{padding:14px 16px}

/* Buttons and form controls */
input,select,textarea,button{
  border-color:#d6dde6;border-radius:7px;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease
}
input:focus,select:focus,textarea:focus{
  outline:0;border-color:#78b8f3;box-shadow:0 0 0 3px rgba(24,136,232,.12)
}
button,.primary-link-button,.filter-button{
  background:var(--zq-blue)!important;border-color:var(--zq-blue)!important;color:#fff!important
}
button:hover,.primary-link-button:hover,.filter-button:hover{background:#0f77cf!important}
.secondary-link-button{background:#fff!important;color:#344054!important;border-color:#d0d5dd!important}
a{color:#0879df}
.clear-link{color:#0879df}
.view-toggle a.active,.filter-chip.selected{background:var(--zq-blue);border-color:var(--zq-blue)}
.filter-chip:hover{border-color:#8ebce8;background:#f1f7fd;color:#176aa9}
.check-row input,.search input[type="checkbox"]{accent-color:var(--zq-blue)}

/* Product/category surfaces */
.home-tile-grid{gap:14px}
.home-category-tile,.picker-card,.product-card{
  border-color:var(--zq-border);border-radius:10px;
  box-shadow:none
}
.home-category-tile:hover,.picker-card:hover,.product-card:hover{
  border-color:#b8d6ef;box-shadow:0 5px 18px rgba(16,70,110,.08);transform:translateY(-1px)
}
.home-category-icon{
  color:var(--zq-blue)!important;background:var(--zq-blue-soft)!important
}
.category-row:hover{background:#f6f9fc}
.picker-filters{border-radius:10px;box-shadow:var(--zq-shadow)}
.product-card-title small{color:#5f7388}
.offer-mini>div.cheapest-offer,.cheapest-cell{background:#edf9f1}
.card-quote-link{color:var(--zq-blue);font-weight:650}

/* Quote pages */
.quote-page,.quote-layout,.quote-card{border-color:var(--zq-border)}
.quote-status,.status-pill{border-radius:999px}
.quote-bulk-actions{background:#fff;border-color:var(--zq-border)}
.quote-lines-table thead th{background:#f3f7fb}

/* Responsive */
@media(max-width:980px){
  .zq-shell{grid-template-columns:82px minmax(0,1fr)}
  .zq-brand{padding:17px 11px;justify-content:center}
  .zq-brand img{width:58px;height:58px;object-fit:cover;object-position:left}
  .zq-nav{padding:14px 10px}
  .zq-nav a{justify-content:center;padding:0}
  .zq-nav a span{display:none}
  .zq-sidebar-footer{justify-content:center;padding:18px 8px}
  .zq-sidebar-footer span{display:none}
  .zq-topbar{padding:0 24px}
  .zq-main{padding:28px 24px 38px}
}
@media(max-width:640px){
  .zq-shell{display:block}
  .zq-sidebar{position:relative;height:auto}
  .zq-brand{height:78px;justify-content:flex-start;padding:12px 18px}
  .zq-brand img{width:175px;height:auto;object-fit:contain}
  .zq-nav{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;padding:8px 9px 12px}
  .zq-nav a{min-height:48px}
  .zq-nav svg{width:21px;height:21px}
  .zq-sidebar-footer{display:none}
  .zq-topbar{display:none}
  .zq-main{padding:22px 14px 34px}
  .hero{padding:8px 2px 18px}
  .hero h1{font-size:26px}
}


/* =========================================================
   ZoneQuoter v0.7.26 — Dashboard
   ========================================================= */
.zq-dashboard{max-width:1500px;margin:0 auto}
.zq-dashboard-heading{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  margin:2px 0 28px
}
.zq-dashboard-heading h1{
  margin:0 0 6px;color:#101828;font-size:31px;line-height:1.15;letter-spacing:-.02em
}
.zq-dashboard-heading p{margin:0;color:var(--zq-muted);font-size:14px}
.zq-new-quote{white-space:nowrap}

.zq-metric-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px
}
.zq-metric-card{
  min-width:0;min-height:162px;padding:25px 24px;
  display:flex;align-items:flex-start;gap:17px;
  background:#fff;border:1px solid var(--zq-border);border-radius:10px;
  box-shadow:var(--zq-shadow);color:inherit;text-decoration:none
}
a.zq-metric-card:hover{
  border-color:#bfd8ee;box-shadow:0 6px 18px rgba(16,70,110,.08);transform:translateY(-1px)
}
.zq-metric-icon{
  width:55px;height:55px;flex:0 0 55px;border-radius:50%;
  display:grid;place-items:center;background:#e9f4ff;color:var(--zq-blue)
}
.zq-metric-icon svg{
  width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round
}
.zq-metric-copy{display:flex;min-width:0;flex:1;flex-direction:column}
.zq-metric-copy small{font-size:14px;color:#667085;font-weight:600;margin:2px 0 7px}
.zq-metric-copy strong{
  color:#1582e5;font-size:29px;line-height:1;font-weight:760;letter-spacing:-.02em
}
.zq-metric-copy em{
  margin-top:auto;padding-top:25px;color:#667085;font-size:12.5px;font-style:normal;font-weight:500
}

.zq-dashboard-grid{
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);gap:16px
}
.zq-dashboard-card{
  min-width:0;background:#fff;border:1px solid var(--zq-border);
  border-radius:10px;box-shadow:var(--zq-shadow);overflow:hidden
}
.zq-card-heading{
  min-height:62px;padding:0 21px;display:flex;align-items:center;justify-content:space-between;
  gap:16px;border-bottom:1px solid var(--zq-border)
}
.zq-card-heading h2{margin:0;color:#101828;font-size:16px}
.zq-card-heading a{font-size:12.5px;font-weight:600}

.zq-dashboard-table-wrap{overflow-x:auto}
.zq-dashboard-table{width:100%;border-collapse:collapse;border-radius:0}
.zq-dashboard-table th{
  padding:11px 20px;background:#f8fafc;color:#667085;font-size:11px;
  text-transform:none;letter-spacing:0;font-weight:650;text-align:left;white-space:nowrap
}
.zq-dashboard-table td{
  padding:14px 20px;border-bottom:1px solid #edf0f4;font-size:12.5px;color:#344054;
  vertical-align:middle
}
.zq-dashboard-table tbody tr:last-child td{border-bottom:0}
.zq-dashboard-table tbody tr:hover{background:#fbfdff}
.zq-dashboard-table .num{text-align:right;white-space:nowrap}
.zq-dashboard-table td:first-child a{font-weight:700;color:#0879df}

.zq-status{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:62px;padding:5px 9px;border-radius:6px;line-height:1.2;vertical-align:middle;
  background:#eef2f6;color:#475467;font-size:11px;font-weight:650
}
.zq-status.accepted{background:#e8f7ed;color:#267a43}
.zq-status.sent{background:#e9f4ff;color:#1769a7}
.zq-status.draft{background:#fff4df;color:#8b5b0b}
.zq-status.lost{background:#fff0f0;color:#b13a3a}
.zq-status.archived{background:#eef0f3;color:#667085}

.zq-category-bars{padding:23px 24px 27px;display:flex;flex-direction:column;gap:20px}
.zq-category-stat{color:inherit;text-decoration:none}
.zq-category-label{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin-bottom:8px;color:#344054;font-size:13px
}
.zq-category-label strong{color:#101828;font-size:12.5px}
.zq-category-track{height:8px;background:#edf2f7;border-radius:999px;overflow:hidden}
.zq-category-track span{
  display:block;height:100%;min-width:3px;border-radius:999px;
  background:linear-gradient(90deg,#1888e8,#2bb8df)
}
.zq-category-stat:hover .zq-category-label span{color:#0879df}

.zq-empty-state{padding:48px 24px;text-align:center;color:#667085}
.zq-empty-state strong{display:block;color:#344054;margin-bottom:6px}
.zq-empty-state p{margin:0 0 12px;font-size:13px}

@media(max-width:1200px){
  .zq-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .zq-dashboard-grid{grid-template-columns:1fr}
}
@media(max-width:700px){
  .zq-dashboard-heading{align-items:flex-start;flex-direction:column}
  .zq-metric-grid{grid-template-columns:1fr}
  .zq-metric-card{min-height:142px}
  .zq-dashboard-table th,.zq-dashboard-table td{padding-left:14px;padding-right:14px}
}

.zq-dashboard-new-quote-form,.zq-dashboard-empty-create{margin:0}
.zq-dashboard-new-quote-form button{font:inherit}
.zq-text-button{
  border:0!important;background:transparent!important;color:#0879df!important;
  padding:0!important;box-shadow:none!important;font-weight:600;cursor:pointer
}
.zq-text-button:hover{background:transparent!important;color:#055fae!important}


/* =========================================================
   ZoneQuoter v0.7.30 — corrected quote UI layout
   ========================================================= */
.quote-top-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:10px;
}
.quote-more-menu{position:relative}
.quote-more-toggle{min-width:92px}
.quote-more-dropdown{
  position:absolute;
  right:0;
  top:calc(100% + 7px);
  z-index:60;
  min-width:190px;
  padding:7px;
  background:#fff;
  border:1px solid var(--zq-border,#e4e9f0);
  border-radius:9px;
  box-shadow:0 10px 30px rgba(16,24,40,.14);
}
.quote-more-dropdown[hidden]{display:none}
.quote-more-dropdown form{margin:0}
.quote-more-action{
  width:100%;
  display:block;
  padding:10px 11px!important;
  border:0!important;
  border-radius:6px!important;
  background:transparent!important;
  color:#344054!important;
  text-align:left;
  font:inherit;
  font-size:13px;
  cursor:pointer;
}
.quote-more-action:hover{background:#f6f8fb!important}
.quote-more-action.danger{color:#b42318!important}
.quote-more-action.danger:hover{background:#fff1f0!important}
.quote-manual-line-inline{
  margin-top:14px;
  margin-bottom:18px;
}
@media(max-width:760px){
  .quote-top-actions{justify-content:flex-start}
  .quote-more-dropdown{left:0;right:auto}
}


/* =========================================================
   ZoneQuoter v0.7.32 — page heading alignment
   Align top page headings/descriptions with the content cards below
   on Products, Search, Quotes and Imports.
   ========================================================= */

/* These pages use .hero as the top heading band. The content beneath
   already begins at the page content edge, so remove the hero's extra
   horizontal inset only for the requested screens. */
.picker-hero,
.quote-hero,
main > .hero:first-child {
  padding-left: 0;
  padding-right: 0;
}

/* Preserve vertical spacing while preventing the Search/Imports hero
   from behaving like a full-width inset card. */
main > .hero:first-child {
  margin-left: 0;
  margin-right: 0;
}


/* =========================================================
   ZoneQuoter v0.7.35 — quote status in top action bar
   ========================================================= */
.quote-status-select{
  height:38px;
  min-width:108px;
  padding:0 32px 0 12px;
  border:1px solid var(--zq-border,#e4e9f0);
  border-radius:7px;
  background:#fff;
  color:#344054;
  font:inherit;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
}
.quote-status-select:focus{
  outline:2px solid rgba(24,136,232,.18);
  outline-offset:1px;
  border-color:var(--zq-blue,#1888e8);
}


/* =========================================================
   ZoneQuoter v0.7.36 — compact Quote Expiry + Status pair
   ========================================================= */
.quote-meta-compact-pair{
  display:grid;
  grid-template-columns:minmax(155px, 0.9fr) minmax(110px, 0.65fr);
  gap:10px;
  align-items:end;
}
.quote-meta-compact-pair label{
  min-width:0;
}
.quote-meta-compact-pair input,
.quote-meta-compact-pair select{
  width:100%;
}
.quote-expiry-field input{
  min-width:0;
}
.quote-status-field select{
  min-width:0;
}
@media(max-width:980px){
  .quote-meta-compact-pair{
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:620px){
  .quote-meta-compact-pair{
    grid-template-columns:1fr;
  }
}


/* =========================================================
   ZoneQuoter v0.7.37 — expiry/status vertical alignment
   ========================================================= */
.quote-meta-compact-pair{
  align-items:start;
}
.quote-meta-compact-pair > label{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  margin:0;
}
.quote-meta-compact-pair input,
.quote-meta-compact-pair select{
  box-sizing:border-box;
  margin-top:6px;
  height:42px;
}


/* =========================================================
   ZoneQuoter v0.7.38 — equal quote metadata gaps
   ========================================================= */
.quote-meta-grid{
  column-gap:10px;
  gap:10px;
}


/* =========================================================
   ZoneQuoter v0.7.39 — precise quote metadata alignment
   ========================================================= */
.quote-meta-grid{
  display:grid;
  grid-template-columns:
    minmax(0, 1fr)
    minmax(0, 1fr)
    minmax(0, 1fr)
    minmax(145px, .72fr)
    minmax(105px, .55fr);
  column-gap:10px;
  row-gap:10px;
  align-items:start;
}

.quote-meta-grid > label,
.quote-meta-compact-pair > label{
  display:grid;
  grid-template-rows:20px 42px;
  gap:6px;
  align-items:start;
  margin:0;
  min-width:0;
  line-height:20px;
}

.quote-meta-grid > label > input,
.quote-meta-grid > label > select,
.quote-meta-grid > label > .halo-customer-lookup{
  margin:0;
  min-width:0;
}

.quote-meta-grid > label > input,
.quote-meta-grid > label > select,
.quote-meta-compact-pair input,
.quote-meta-compact-pair select,
.quote-meta-grid .halo-customer-lookup > input{
  box-sizing:border-box;
  height:42px;
  margin:0;
}

.quote-meta-compact-pair{
  grid-column:4 / 6;
  display:grid;
  grid-template-columns:minmax(145px, .72fr) minmax(105px, .55fr);
  column-gap:10px;
  row-gap:0;
  align-items:start;
  min-width:0;
}

/* The Halo wrapper must not introduce extra spacing around Customer. */
.quote-meta-grid .halo-customer-lookup{
  display:block;
  position:relative;
  width:100%;
}
.quote-meta-grid .halo-customer-lookup > input{
  width:100%;
}

@media(max-width:1100px){
  .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .quote-meta-compact-pair{
    grid-column:auto;
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:700px){
  .quote-meta-grid{
    grid-template-columns:1fr;
  }
  .quote-meta-compact-pair{
    grid-column:auto;
    grid-template-columns:1fr 1fr;
  }
}


/* =========================================================
   ZoneQuoter v0.7.40 — uniform quote summary
   ========================================================= */
.quote-summary-panel .summary-row{
  font-size:13px;
  font-weight:500;
  color:#475467;
}
.quote-summary-panel .summary-row > span,
.quote-summary-panel .summary-row > label{
  font:inherit;
  color:inherit;
}
.quote-summary-panel .summary-row > span:last-child{
  font:inherit;
  color:inherit;
  text-align:right;
}
.quote-summary-panel .summary-spacer{
  height:14px;
}
.quote-summary-panel .summary-total-bold,
.quote-summary-panel .summary-total-bold > span{
  font-weight:700;
  color:#344054;
}
.quote-summary-panel .freight-row label{
  margin:0;
}
.quote-summary-panel .money-input.compact{
  font-size:13px;
  font-weight:500;
  color:#475467;
}
.quote-summary-panel .money-input.compact input{
  font:inherit;
  color:inherit;
}


/* =========================================================
   ZoneQuoter v0.7.41 — quote summary finishing tweaks
   ========================================================= */
.quote-summary-panel .summary-spacer{
  display:none;
}
.quote-summary-panel .summary-row{
  border-top:none;
}
.quote-summary-panel .summary-total-bold > span:last-child{
  font-size:15px;
}


/* =========================================================
   ZoneQuoter v0.7.42 — freight value alignment
   ========================================================= */
.quote-summary-panel .freight-row .money-input.compact input{
  text-align:right;
}


/* =========================================================
   ZoneQuoter v0.8.0 — Halo accepted-quote opportunity sync
   ========================================================= */
.halo-opportunity-alert{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 16px;
  padding:11px 14px;
  border-radius:9px;
  border:1px solid #d0d5dd;
  background:#fff;
  font-size:13px;
}
.halo-opportunity-alert strong{
  white-space:nowrap;
}
.halo-opportunity-alert.success{
  border-color:#abefc6;
  background:#ecfdf3;
  color:#067647;
}
.halo-opportunity-alert.error{
  border-color:#fecdca;
  background:#fef3f2;
  color:#b42318;
}
.settings-form select{
  width:100%;
  box-sizing:border-box;
  min-height:42px;
  padding:9px 34px 9px 11px;
  border:1px solid #d0d5dd;
  border-radius:8px;
  background:#fff;
  color:#344054;
  font:inherit;
}
.settings-inline-error{
  color:#b42318 !important;
}
\n\n/* =========================================================\n   ZoneQuoter v0.9.0 — authentication and user management\n   ========================================================= */\n.auth-body{min-height:100vh;margin:0;overflow-x:hidden;background:#f8fafc;color:#172033;font-family:Inter,system-ui,Arial,sans-serif;position:relative}.auth-sweep{position:fixed;z-index:0;right:-13vw;top:-18vh;width:55vw;height:138vh;background:#101c3b;border-radius:55% 0 0 55%;box-shadow:inset 18px 0 0 rgba(57,197,235,.08)}.auth-sweep::after{content:"";position:absolute;left:3.5%;top:8%;width:15px;height:84%;border-radius:999px;background:linear-gradient(180deg,#39c5eb,#4a85bc);opacity:.9}.auth-stage{position:relative;z-index:1;min-height:100vh;width:min(720px,74vw);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:52px 5vw 70px}.auth-brand{width:310px;max-width:72vw;margin:0 0 34px;padding:15px 22px;border-radius:12px;background:transparent;box-shadow:none}.auth-brand img{display:block;width:100%;height:auto;background:transparent}.auth-card{width:370px;max-width:90vw;padding:27px 36px 30px;border-radius:14px;background:#fff;box-shadow:0 9px 28px rgba(16,24,40,.17),0 2px 7px rgba(16,24,40,.08);border:1px solid #eaecf0}.auth-card-wide{width:470px}.auth-card h1{margin:0 0 24px;text-align:center;font-size:14px;line-height:1.45;font-weight:700;color:#344054}.auth-card-wide h1{font-size:18px;margin-bottom:7px}.auth-intro{text-align:center;color:#667085;font-size:13px;margin:0 0 22px}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-input-wrap{height:48px;display:grid;grid-template-columns:34px 1fr;align-items:center;border:1px solid #cfd4dc;border-radius:4px;background:#f9fafb;overflow:hidden}.auth-input-wrap:focus-within{border-color:#4a85bc;box-shadow:0 0 0 3px rgba(74,133,188,.12)}.auth-input-wrap svg{width:18px;height:18px;justify-self:center;fill:none;stroke:#101828;stroke-width:1.8}.auth-input-wrap input{height:46px;width:100%;border:0;border-radius:0;background:transparent;padding:0 12px 0 0;outline:none;color:#172033}.auth-input-wrap input::placeholder{color:#4a85bc}.auth-remember{display:flex;align-items:center;gap:8px;margin:3px 0 4px;font-size:12px;color:#172033}.auth-remember input{width:15px;height:15px;margin:0;padding:0;accent-color:#101c3b}.auth-login-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:42px;border:0;border-radius:999px;background:#101c3b;color:#fff;font-weight:700;font-size:13px;cursor:pointer;text-decoration:none;transition:.15s ease}.auth-login-button:hover{background:#172a58;transform:translateY(-1px)}.auth-forgot{display:block;text-align:center;margin-top:22px;font-size:12px;color:#286ea8;text-decoration:underline}.auth-message{padding:10px 12px;border-radius:7px;margin:-8px 0 16px;font-size:12px;line-height:1.4}.auth-message.error{background:#fef3f2;border:1px solid #fecdca;color:#b42318}.auth-message.success{background:#ecfdf3;border:1px solid #abefc6;color:#067647}.auth-field-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#475467}.auth-field-label>span{font-weight:500;color:#98a2b3}.auth-field-label input{width:100%;height:42px}.auth-field-label small{font-weight:500;color:#98a2b3}.auth-reset-copy{text-align:center;color:#667085;font-size:13px;line-height:1.65;margin:0 0 25px}.auth-button-link{margin-top:8px}.zq-user-menu{position:relative}.zq-user-menu>summary{list-style:none;display:flex;align-items:center;gap:9px;cursor:pointer;padding:5px 7px;border-radius:9px}.zq-user-menu>summary::-webkit-details-marker{display:none}.zq-user-menu>summary:hover{background:#f2f4f7}.zq-user-avatar{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#101c3b;color:#fff;font-size:13px;font-weight:800;flex:none}.zq-user-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}.zq-user-copy strong{font-size:12px;color:#344054}.zq-user-copy small{font-size:10px;color:#98a2b3}.zq-user-chevron{color:#667085;font-size:15px}.zq-user-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:150px;padding:6px;background:#fff;border:1px solid #eaecf0;border-radius:9px;box-shadow:0 10px 25px rgba(16,24,40,.13)}.zq-user-dropdown a{display:block;padding:9px 10px;border-radius:6px;color:#344054;font-size:12px;font-weight:650}.zq-user-dropdown a:hover{background:#f2f4f7}.access-denied{max-width:620px;margin:60px auto;padding:36px;text-align:center}.access-denied h1{margin-top:0}.user-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;margin-top:20px}.user-create-grid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#475467}.user-create-grid input,.user-create-grid select{width:100%;height:42px}.user-create-grid small{font-weight:500;color:#98a2b3}.user-create-action{display:flex;align-items:end}.user-create-action button{width:100%;height:42px}.user-list-panel{padding:24px}.user-admin-list{display:flex;flex-direction:column;margin-top:10px}.user-admin-row{display:grid;grid-template-columns:minmax(220px,1.3fr) 115px 90px minmax(235px,.9fr) 80px;gap:12px;align-items:center;padding:13px 0;border-top:1px solid #eaecf0}.user-admin-row.disabled{opacity:.68}.user-admin-identity{display:flex;align-items:center;gap:11px;min-width:0}.user-admin-identity>div{display:flex;flex-direction:column;min-width:0}.user-admin-identity strong{font-size:13px;color:#344054}.user-admin-identity span{font-size:11px;color:#98a2b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role-chip,.user-status-chip{display:inline-flex;justify-content:center;padding:5px 8px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:10px;font-weight:750}.user-status-chip.active{background:#ecfdf3;color:#067647}.user-status-chip.disabled{background:#f2f4f7;color:#667085}.user-reset-form{display:grid;grid-template-columns:1fr auto;gap:7px}.user-reset-form input{min-width:0;height:36px;padding:8px 10px}.user-reset-form button{height:36px;padding:7px 10px}.user-self-label{font-size:10px;font-weight:700;color:#667085;text-align:center}@media(max-width:900px){.auth-sweep{right:-38vw;width:75vw;opacity:.96}.auth-stage{width:78vw}.user-admin-row{grid-template-columns:1fr 95px 75px}.user-reset-form{grid-column:1/3}.user-admin-row>form:last-child,.user-self-label{grid-column:3}}@media(max-width:640px){.auth-sweep{display:none}.auth-stage{width:100%;padding:34px 20px;background:transparent}.auth-brand{width:260px;margin-bottom:25px}.auth-card{padding:25px 24px}.user-create-grid{grid-template-columns:1fr}.user-admin-row{grid-template-columns:1fr auto}.user-role-chip,.user-status-chip{justify-self:end}.user-reset-form{grid-column:1/3}.user-admin-row>form:last-child,.user-self-label{grid-column:1/3;justify-self:end}}\n

/* ZoneQuoter v0.9.1 — solid authentication background */
.auth-page,
body.auth-page {
  background: #101828 !important;
}
.auth-page::before,
.auth-page::after,
.auth-background::before,
.auth-background::after {
  display: none !important;
}


/* ZoneQuoter v0.9.2 — correct solid authentication background */
html:has(body.auth-body),
body.auth-body {
  background: #101828 !important;
}

body.auth-body .auth-sweep {
  display: none !important;
}

body.auth-body .auth-stage {
  background: transparent !important;
}


/* ZoneQuoter v0.9.6 — unified authentication background and transparent logo container */
html:has(body.auth-body),
body.auth-body {
  background: #101828 !important;
}

body.auth-body .auth-sweep {
  display: none !important;
}

body.auth-body .auth-stage {
  background: transparent !important;
}

body.auth-body .auth-brand {
  background: transparent !important;
  box-shadow: none !important;
}

body.auth-body .auth-brand img {
  display: block;
  width: 100%;
  height: auto;
  background: transparent !important;
}


/* ZoneQuoter v0.10.2 — top-right user menu */
.zq-topbar{
  justify-content:flex-end;
}
.zq-user-menu{
  position:relative;
  margin-left:auto;
}
.zq-user-menu > summary{
  list-style:none;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:46px;
  padding:6px 10px;
  border-radius:9px;
  cursor:pointer;
  user-select:none;
}
.zq-user-menu > summary::-webkit-details-marker{display:none}
.zq-user-menu > summary:hover{background:#f8fafc}
.zq-user-avatar{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  flex:0 0 34px;
  border-radius:50%;
  background:#eff8ff;
  color:#175cd3 !important;
  font-size:13px !important;
  font-weight:800;
}
.zq-user-copy{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.2;
}
.zq-user-copy strong{
  font-size:13px;
  font-weight:700;
  color:#101828;
}
.zq-user-copy small{
  margin-top:3px;
  font-size:11px;
  color:#667085;
}
.zq-user-chevron{
  margin-left:2px;
  color:#667085 !important;
  font-size:16px !important;
  line-height:1;
  transition:transform .15s ease;
}
.zq-user-menu[open] .zq-user-chevron{transform:rotate(180deg)}
.zq-user-dropdown{
  position:absolute;
  top:calc(100% + 7px);
  right:0;
  z-index:100;
  min-width:170px;
  padding:6px;
  border:1px solid #e4e7ec;
  border-radius:9px;
  background:#fff;
  box-shadow:0 10px 28px rgba(16,24,40,.14);
}
.zq-user-dropdown a{
  display:block;
  padding:9px 11px;
  border-radius:6px;
  color:#344054;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
}
.zq-user-dropdown a:hover{
  background:#f8fafc;
  color:#101828;
}


/* ZoneQuoter v0.10.2 — dashboard Recent Quotes Total alignment */
.zq-dashboard-table .num{text-align:left;}

/* ZoneQuoter v0.10.2 — enforced dashboard/header alignment */
.zq-topbar{justify-content:flex-end !important;}
.zq-user-menu{margin-left:auto !important;}
.zq-dashboard-table th.num,.zq-dashboard-table td.num{text-align:left !important;}

/* ZoneQuoter v0.10.2 — vertical user dropdown */
.zq-user-dropdown{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
}
.zq-user-dropdown a{
  display:block !important;
  width:100% !important;
  flex:none !important;
}


/* ZoneQuoter v0.10.2 — existing user role and lifecycle controls */
.user-admin-row{
  grid-template-columns:minmax(220px,1.3fr) minmax(210px,.8fr) 90px minmax(235px,.9fr) minmax(150px,.7fr);
}
.user-role-form{
  display:grid;
  grid-template-columns:minmax(105px,1fr) auto;
  gap:7px;
  align-items:center;
  margin:0;
}
.user-role-form select{
  width:100%;
  min-width:0;
  height:36px;
  padding:7px 9px;
}
.user-role-form button{
  height:36px;
  padding:7px 10px;
}
.user-account-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:7px;
}
.user-account-actions form{margin:0}
.user-account-actions .quote-manage-button{
  min-width:66px;
}
@media(max-width:1100px){
  .user-admin-row{
    grid-template-columns:minmax(220px,1fr) minmax(190px,.8fr) 85px;
  }
  .user-reset-form{
    grid-column:1 / 3;
  }
  .user-account-actions,
  .user-self-label{
    grid-column:3;
    grid-row:2;
    justify-self:end;
  }
}
@media(max-width:700px){
  .user-admin-row{
    grid-template-columns:1fr;
  }
  .user-role-form,
  .user-status-chip,
  .user-reset-form,
  .user-account-actions,
  .user-self-label{
    grid-column:1;
  }
  .user-status-chip{justify-self:start}
  .user-account-actions{justify-self:start}
}

/* ZoneQuoter v0.10.3 — automated feeds and quote cost refresh */
.feed-automation-card{margin-bottom:20px}
.feed-settings-form{display:flex;flex-direction:column;gap:0;margin-top:18px}
.feed-setting-row{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px;padding:20px 0;border-top:1px solid #eaecf0;align-items:start}
.feed-setting-vendor{display:flex;flex-direction:column;gap:10px}.feed-setting-vendor>strong{font-size:14px;color:#101828}
.feed-enabled-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:8px;font-size:12px!important;font-weight:600!important;color:#475467!important}
.feed-enabled-toggle input{width:16px;height:16px;margin:0;padding:0;accent-color:#175cd3}
.feed-url-field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:#475467}.feed-url-field input{width:100%}.feed-url-field small{font-weight:500;color:#98a2b3}
.feed-settings-actions{border-top:1px solid #eaecf0;padding-top:18px;margin-top:2px}
.feed-last-run{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;padding:12px 14px;border-radius:8px;background:#f8fafc;color:#667085;font-size:12px}.feed-last-run strong{color:#344054}
.feed-run-status{padding:4px 8px;border-radius:999px;background:#f2f4f7;font-size:10px;font-weight:800}.feed-run-status.success{background:#ecfdf3;color:#067647}.feed-run-status.failed{background:#fef3f2;color:#b42318}
.feed-manual-panel{padding:0;margin-bottom:20px}.feed-manual-panel summary{cursor:pointer;padding:16px 20px;font-size:13px;font-weight:700;color:#344054}.feed-manual-panel p,.feed-manual-panel form{margin:0 20px 16px}.feed-manual-panel p{color:#667085;font-size:12px}
.import-history-panel{padding:0;overflow:hidden}.import-history-panel .settings-card-head{padding:20px 22px 12px}.import-history-wrap{overflow:auto}.import-history-table{width:100%;border-collapse:collapse}.import-history-table th,.import-history-table td{text-align:left;vertical-align:middle;padding:12px 16px;border-top:1px solid #eaecf0}.import-history-table th{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:#667085;background:#f9fafb}.import-history-table td{font-size:12px;color:#475467}.import-status{display:inline-flex;padding:4px 7px;border-radius:999px;background:#f2f4f7;font-size:10px;font-weight:800;text-transform:capitalize}.import-status.success{background:#ecfdf3;color:#067647}.import-status.failed{background:#fef3f2;color:#b42318}.import-empty{text-align:center!important;padding:30px!important;color:#98a2b3!important}
.quote-cost-change-alert{margin:0 0 20px;padding:20px;border:1px solid #fdb022;border-radius:12px;background:#fffaeb;box-shadow:0 2px 8px rgba(16,24,40,.04)}
.quote-cost-change-head h2{margin:7px 0 5px;font-size:18px;color:#7a2e0e}.quote-cost-change-head p{margin:0;color:#854a0e;font-size:13px;line-height:1.5}
.quote-cost-change-table-wrap{overflow:auto;margin-top:16px;border:1px solid #fedf89;border-radius:9px;background:#fff}.quote-cost-change-table{width:100%;border-collapse:collapse}.quote-cost-change-table th,.quote-cost-change-table td{text-align:left;vertical-align:middle;padding:10px 12px;border-bottom:1px solid #fef0c7;font-size:12px}.quote-cost-change-table tr:last-child td{border-bottom:0}.quote-cost-change-table th{font-size:10px;text-transform:uppercase;color:#93370d;background:#fffcf5}.quote-cost-change-table td:first-child{min-width:240px}.quote-cost-change-table td:first-child strong,.quote-cost-change-table td:first-child small{display:block}.quote-cost-change-table td:first-child small{margin-top:3px;color:#98a2b3}.cost-increase{color:#b42318}.cost-decrease{color:#067647}
.quote-cost-change-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:15px}.quote-cost-change-actions form{margin:0}.quote-cost-change-actions p{flex-basis:100%;margin:2px 0 0;color:#854a0e;font-size:11px}
@media(max-width:760px){.feed-setting-row{grid-template-columns:1fr;gap:10px}.quote-cost-change-actions{align-items:stretch}.quote-cost-change-actions form,.quote-cost-change-actions button{width:100%}}


/* ZoneQuoter v0.10.5 — import history deletion */
.import-history-delete-form{margin:0;}
.import-history-delete-form button{white-space:nowrap;}

/* ZoneQuoter v0.10.6 — Settings landing page */
.settings-tile-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:22px;
}
.settings-tile{
  min-height:190px;
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:24px;
  border:1px solid #e4e7ec;
  border-radius:14px;
  background:#fff;
  color:#101828;
  box-shadow:0 2px 8px rgba(16,24,40,.04);
  transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.settings-tile:hover{
  transform:translateY(-2px);
  border-color:#b2ccff;
  box-shadow:0 8px 22px rgba(16,24,40,.08);
}
.settings-tile-icon{
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#eff8ff;
  color:#175cd3;
}
.settings-tile-icon svg{
  width:24px;
  height:24px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.settings-tile-copy{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:20px;
  padding-right:26px;
}
.settings-tile-copy strong{
  font-size:17px;
  color:#101828;
}
.settings-tile-copy small{
  font-size:12.5px;
  line-height:1.55;
  color:#667085;
}
.settings-tile-arrow{
  position:absolute;
  right:22px;
  bottom:22px;
  font-size:20px;
  color:#98a2b3;
}
@media(max-width:980px){
  .settings-tile-grid{grid-template-columns:1fr;}
  .settings-tile{min-height:150px;}
}

/* ZoneQuoter v0.10.7 — Settings landing alignment */
.settings-landing-page{
  max-width:none;
  margin:0;
}
.settings-landing-page .page-heading{
  padding:8px 2px 18px;
  margin-bottom:0;
}
.settings-landing-page .page-heading h1{
  margin:0 0 7px;
  font-size:30px;
  line-height:1.15;
}

/* ZoneQuoter v0.10.8 — page alignment and quote tabs */
.settings-landing-page .page-heading{
  padding-left:0;
  padding-right:0;
}
.quote-list-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}

/* ZoneQuoter v0.10.9 — match Settings heading vertical position to standard page heroes */
.settings-landing-page .page-heading{
  padding:24px 0 18px;
}

/* ZoneQuoter v0.11.0 — Dashboard alignment with standard page headings */
.zq-dashboard{
  max-width:none;
  margin:0;
}
.zq-dashboard-heading{
  padding:24px 0 18px;
  margin:0;
}

/* ZoneQuoter v0.11.1 — Settings subpage heading alignment */
.settings-subpage{
  max-width:none;
  margin:0;
}
.settings-subpage .page-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding:24px 0 18px;
  margin-bottom:0;
}
.settings-subpage .page-heading h1{
  margin:0 0 7px;
  font-size:30px;
  line-height:1.15;
}
.settings-subpage .page-heading p{
  margin:0;
}

/* ZoneQuoter v0.11.2 — Create User form layout */
.user-create-grid-v2{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.user-create-row{
  display:grid;
  gap:16px;
  align-items:start;
}
.user-create-row-two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.user-create-row-role{
  grid-template-columns:minmax(220px,calc(50% - 8px));
}
.user-create-grid-v2 label{
  min-width:0;
}
.user-create-action-v2{
  display:flex;
  align-items:center;
}
.user-create-action-v2 .user-create-button{
  width:auto;
  height:auto;
  min-width:0;
  padding:7px 12px;
  font-size:12px;
}
@media(max-width:700px){
  .user-create-row-two,
  .user-create-row-role{
    grid-template-columns:1fr;
  }
}

/* ZoneQuoter v0.11.3 — Create User label alignment */
.user-create-grid-v2 label{
  display:grid;
  grid-template-rows:18px 42px auto;
  gap:6px;
  align-content:start;
}
.user-create-grid-v2 label .optional{
  display:inline;
}

/* ZoneQuoter v0.11.4 — consistent Create User row spacing */
.user-create-grid-v2{
  gap:0;
}
.user-create-row + .user-create-row{
  margin-top:16px;
}
.user-create-action-v2{
  margin-top:16px;
}

/* ZoneQuoter v0.11.5 — prevent Password helper text from changing row spacing */
.user-create-grid-v2 .user-create-row-two:nth-of-type(2) label:last-child{
  position:relative;
}
.user-create-grid-v2 .user-create-row-two:nth-of-type(2) label:last-child small{
  position:absolute;
  top:72px;
  left:0;
  white-space:nowrap;
}
.user-create-grid-v2 .user-create-row-role{
  margin-top:16px;
}

/* ZoneQuoter v0.11.6 — User Management card containers */
.settings-subpage > .settings-card,
.settings-subpage > .user-list-panel{
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:12px;
  box-shadow:0 2px 10px #00000008;
}
.settings-subpage > .settings-card{
  padding:22px;
  margin-bottom:20px;
}
.settings-subpage > .user-list-panel{
  padding:22px;
}

/* ZoneQuoter v0.11.7 — pending supplier pricing changes */
.quote-save-pending{
  box-shadow:0 0 0 3px rgba(23,92,211,.14);
}
.quote-cost-change-alert[hidden]{
  display:none !important;
}

/* ZoneQuoter v0.12.0 — explicit quote versioning and version history */
.quote-version-save-button{
  white-space:nowrap;
}
.quote-version-history-panel{
  margin-top:20px;
  padding:22px;
  background:#fff;
  border:1px solid #eaecf0;
  border-radius:12px;
  box-shadow:0 2px 10px #00000008;
}
.quote-version-history-heading{
  margin-bottom:14px;
}
.quote-version-history-list{
  border:1px solid #eaecf0;
  border-radius:10px;
  overflow:hidden;
}
.quote-version-history-row{
  display:grid;
  grid-template-columns:minmax(150px,.7fr) minmax(260px,1.5fr) auto;
  gap:18px;
  align-items:center;
  padding:14px 16px;
  border-bottom:1px solid #eaecf0;
}
.quote-version-history-row:last-child{
  border-bottom:0;
}
.quote-version-history-version{
  display:flex;
  align-items:center;
  gap:9px;
}
.quote-version-history-version strong{
  font-size:14px;
  color:#344054;
}
.quote-version-current-badge{
  display:inline-flex;
  align-items:center;
  padding:3px 7px;
  border-radius:999px;
  background:#ecfdf3;
  color:#067647;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.quote-version-history-meta{
  display:flex;
  flex-direction:column;
  gap:3px;
  color:#667085;
  font-size:12px;
}
.quote-version-pdf-button{
  justify-self:end;
  white-space:nowrap;
}
.quote-version-history-empty{
  padding:18px;
  border:1px dashed #d0d5dd;
  border-radius:10px;
  color:#667085;
}
.quote-version-history-empty strong{
  color:#344054;
}
.quote-version-history-empty p{
  margin:4px 0 0;
}
@media(max-width:760px){
  .quote-version-history-row{
    grid-template-columns:1fr;
    gap:8px;
  }
  .quote-version-pdf-button{
    justify-self:start;
  }
}

/* ZoneQuoter v0.12.1 — tidy quote product metadata */
.quote-product-cell .quote-product-meta{
  display:grid;
  grid-template-columns:max-content minmax(0,1fr);
  gap:5px 14px;
  align-items:center;
  margin-top:8px;
  color:#667085;
  font-size:11px;
}
.quote-product-cell .quote-product-manufacturer{
  grid-column:1 / -1;
  font-size:11px;
  font-weight:700;
  color:#344054;
}
.quote-product-cell .quote-product-code,
.quote-product-cell .quote-product-rrp{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
}
.quote-product-cell .quote-product-code{
  grid-column:1 / -1;
}
.quote-product-cell .quote-product-rrp{
  grid-column:1 / -1;
}
.quote-product-cell .quote-product-meta-label{
  display:inline-block;
  min-width:64px;
  color:#98a2b3;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.quote-product-cell .quote-product-code code{
  padding:0;
  background:transparent;
  color:#475467;
  font-family:inherit;
  font-size:11px;
  font-weight:500;
  white-space:normal;
  overflow-wrap:anywhere;
}
.quote-product-cell .quote-product-rrp strong{
  color:#475467;
  font-size:11px;
  font-weight:700;
}

/* ZoneQuoter v0.12.3 — quote product metadata as aligned rows */
.quote-product-cell .quote-product-meta{
  display:block !important;
  margin-top:8px;
  color:#667085;
  font-size:11px;
}
.quote-product-cell .quote-product-meta-row{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:3px 0;
}
.quote-product-cell .quote-product-meta-label{
  min-width:0 !important;
  color:#98a2b3;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  line-height:1.4;
}
.quote-product-cell .quote-product-meta-value{
  min-width:0;
  color:#475467;
  font-size:11px;
  font-weight:500;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.quote-product-cell .quote-product-manufacturer{
  color:#344054;
  font-weight:700;
}
.quote-product-cell .quote-product-rrp-value{
  color:#475467;
  font-weight:700;
}

/* ZoneQuoter v0.12.4 — compact product information popover */
.quote-product-description-wrap{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:7px;
}
.quote-product-description-wrap > textarea{
  flex:1 1 auto;
  min-width:0;
  margin:0;
}
.quote-product-info-wrap{
  position:relative;
  flex:0 0 auto;
  margin-top:2px;
}
.quote-product-info-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  padding:0;
  border:1px solid #d0d5dd;
  border-radius:50%;
  background:#fff;
  color:#667085;
  font-size:12px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
}
.quote-product-info-button:hover,
.quote-product-info-button[aria-expanded="true"]{
  border-color:#98a2b3;
  background:#f9fafb;
  color:#344054;
}
.quote-product-info-popover{
  position:absolute;
  z-index:40;
  top:31px;
  right:0;
  width:285px;
  padding:12px;
  background:#fff;
  border:1px solid #d0d5dd;
  border-radius:9px;
  box-shadow:0 10px 28px rgba(16,24,40,.14);
}
.quote-product-info-popover[hidden]{
  display:none !important;
}
.quote-product-info-title{
  margin-bottom:8px;
  color:#344054;
  font-size:12px;
  font-weight:800;
}
.quote-product-info-row{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:10px;
  align-items:start;
  padding:4px 0;
  font-size:11px;
}
.quote-product-info-row span{
  color:#98a2b3;
  font-weight:700;
}
.quote-product-info-row strong{
  min-width:0;
  color:#475467;
  font-weight:600;
  overflow-wrap:anywhere;
}

.quote-product-cell > .quote-product-meta{
  display:none !important;
}

/* ZoneQuoter v0.12.5 — reliable compact product info popover */
.quote-product-info-wrap{
  position:relative !important;
  flex:0 0 auto !important;
  margin-top:3px !important;
  overflow:visible !important;
}
.quote-product-info-wrap > summary{
  list-style:none !important;
}
.quote-product-info-wrap > summary::-webkit-details-marker{
  display:none !important;
}
.quote-product-info-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:19px !important;
  height:19px !important;
  min-width:19px !important;
  padding:0 !important;
  border:1px solid #b8bec8 !important;
  border-radius:50% !important;
  background:#f2f4f7 !important;
  color:#667085 !important;
  box-shadow:none !important;
  font-size:10px !important;
  font-weight:800 !important;
  font-family:Arial,sans-serif !important;
  line-height:17px !important;
  cursor:pointer !important;
  user-select:none !important;
}
.quote-product-info-button:hover,
.quote-product-info-wrap[open] > .quote-product-info-button{
  border-color:#98a2b3 !important;
  background:#e4e7ec !important;
  color:#475467 !important;
}
.quote-product-info-popover{
  display:none !important;
  position:absolute !important;
  z-index:1000 !important;
  top:25px !important;
  right:0 !important;
  width:285px !important;
  padding:12px !important;
  background:#fff !important;
  border:1px solid #d0d5dd !important;
  border-radius:9px !important;
  box-shadow:0 10px 28px rgba(16,24,40,.18) !important;
  color:#344054 !important;
}
.quote-product-info-wrap[open] > .quote-product-info-popover,
.quote-product-info-wrap:hover > .quote-product-info-popover,
.quote-product-info-wrap:focus-within > .quote-product-info-popover{
  display:block !important;
}
.quote-lines-wrap,
.quote-lines-table,
.quote-lines-table td,
.quote-product-cell{
  overflow:visible !important;
}

/* ZoneQuoter v0.12.6 — aligned product info popup + click-outside close */
.quote-product-info-popover{
  width:300px !important;
}
.quote-product-info-title{
  margin:0 0 9px !important;
  padding:0 0 8px !important;
  border-bottom:1px solid #eaecf0 !important;
  color:#344054 !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1.35 !important;
}
.quote-product-info-row{
  display:grid !important;
  grid-template-columns:92px minmax(0,1fr) !important;
  column-gap:12px !important;
  align-items:start !important;
  padding:4px 0 !important;
  font-size:11px !important;
  line-height:1.4 !important;
}
.quote-product-info-row > span{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  color:#98a2b3 !important;
  font-weight:700 !important;
  text-align:left !important;
  white-space:nowrap !important;
}
.quote-product-info-row > strong{
  display:block !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  color:#475467 !important;
  font-weight:600 !important;
  text-align:left !important;
  line-height:1.4 !important;
  overflow-wrap:anywhere !important;
}

/* ZoneQuoter v0.12.7 — exact popup alignment and reliable outside-click close */
.quote-product-info-wrap:hover:not([open]) > .quote-product-info-popover{
  display:block !important;
}
.quote-product-info-wrap:not([open]):not(:hover) > .quote-product-info-popover{
  display:none !important;
}
.quote-product-info-wrap[open] > .quote-product-info-popover{
  display:block !important;
}
.quote-product-info-popover{
  width:304px !important;
}
.quote-product-info-table{
  width:100% !important;
  border-collapse:collapse !important;
  border-spacing:0 !important;
  table-layout:fixed !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
}
.quote-product-info-table tr,
.quote-product-info-table th,
.quote-product-info-table td{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.quote-product-info-table th,
.quote-product-info-table td{
  padding:4px 0 !important;
  vertical-align:top !important;
  font-size:11px !important;
  line-height:1.4 !important;
  text-align:left !important;
}
.quote-product-info-table th{
  width:96px !important;
  padding-right:12px !important;
  color:#98a2b3 !important;
  font-weight:700 !important;
  white-space:nowrap !important;
}
.quote-product-info-table td{
  color:#475467 !important;
  font-weight:600 !important;
  overflow-wrap:anywhere !important;
}

/* ZoneQuoter v0.12.8 — compact Add to Quote icon in product search */
.product-search-table .product-search-add-head,
.product-search-table .product-search-add-cell{
  width:38px !important;
  min-width:38px !important;
  padding-left:6px !important;
  padding-right:6px !important;
  text-align:center !important;
  vertical-align:middle !important;
}
.product-search-add-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:25px !important;
  height:25px !important;
  min-width:25px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:6px !important;
  background:#175cd3 !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:1 !important;
  text-decoration:none !important;
}
.product-search-add-icon:hover{
  background:#1849a9 !important;
  color:#fff !important;
}
.product-search-table .product-search-manufacturer{
  white-space:nowrap;
  font-weight:600;
  color:#344054;
}
.product-search-table .product-search-sku code{
  white-space:nowrap;
}
.product-search-table .product-search-description a{
  color:#172033;
  font-weight:600;
  text-decoration:none;
}
.product-search-table .product-search-description a:hover{
  color:#175cd3;
}

/* ZoneQuoter v0.12.9 — Add to Quote icon on actual Product Search (/picker) */
.product-card-main{
  min-width:0;
}
.product-card-manufacturer{
  display:block;
  margin:0 0 5px;
  color:#5f7388;
  font-size:11px;
  font-weight:600;
}
.product-card-primary-row{
  display:grid;
  grid-template-columns:145px 28px minmax(0,1fr);
  gap:8px;
  align-items:center;
  min-width:0;
}
.product-card-sku{
  display:block;
  min-width:0;
  margin:0 !important;
  color:#475467;
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.product-card-add-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:6px !important;
  background:#175cd3 !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:1 !important;
  text-decoration:none !important;
}
.product-card-add-icon:hover{
  background:#1849a9 !important;
  color:#fff !important;
}
.product-card-description{
  min-width:0;
  color:#172033;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
  text-decoration:none;
}
.product-card-description:hover{
  color:#175cd3;
}
.product-grid.list-view .product-card{
  grid-template-columns:minmax(430px,1fr) minmax(310px,.9fr) !important;
}
.product-grid.list-view .product-card-main{
  min-width:0;
}
.product-grid.list-view .product-card-primary-row{
  grid-template-columns:145px 28px minmax(0,1fr);
}
.product-grid.list-view .offer-mini{
  border-top:0;
  padding-top:0;
}
@media(max-width:1050px){
  .product-grid.list-view .product-card{
    grid-template-columns:minmax(360px,1fr) minmax(270px,.9fr) !important;
  }
  .product-card-primary-row{
    grid-template-columns:125px 28px minmax(0,1fr);
  }
}
@media(max-width:760px){
  .product-grid.list-view .product-card{
    grid-template-columns:1fr !important;
  }
  .product-card-primary-row{
    grid-template-columns:minmax(90px,125px) 28px minmax(0,1fr);
  }
}

/* Tile view keeps the same SKU -> Add -> Description order, stacked into the card cleanly. */
.product-grid:not(.list-view) .product-card{
  display:flex;
  flex-direction:column;
}
.product-grid:not(.list-view) .product-card-primary-row{
  grid-template-columns:minmax(0,1fr) 28px;
  grid-template-areas:
    "sku add"
    "desc desc";
}
.product-grid:not(.list-view) .product-card-sku{grid-area:sku}
.product-grid:not(.list-view) .product-card-add-icon{grid-area:add}
.product-grid:not(.list-view) .product-card-description{
  grid-area:desc;
  margin-top:3px;
}

/* ZoneQuoter v0.13.0 — quote icon consistency across list, tile and product detail */
.product-grid:not(.list-view) .product-card{
  display:flex !important;
  flex-direction:column !important;
}
.product-grid:not(.list-view) .product-card-main{
  width:100%;
  min-width:0;
}
.product-grid:not(.list-view) .product-card-primary-row{
  display:grid !important;
  grid-template-columns:minmax(72px,105px) 28px minmax(0,1fr) !important;
  grid-template-areas:"sku add desc" !important;
  gap:7px !important;
  align-items:start !important;
}
.product-grid:not(.list-view) .product-card-sku{
  grid-area:sku !important;
}
.product-grid:not(.list-view) .product-card-add-icon{
  grid-area:add !important;
  align-self:start !important;
}
.product-grid:not(.list-view) .product-card-description{
  grid-area:desc !important;
  margin-top:0 !important;
  min-width:0 !important;
}
.product-grid:not(.list-view) .offer-mini{
  width:100%;
  margin-top:auto;
}

/* Product detail vendor cards use the same compact blue quote icon */
.product-detail-add-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:25px !important;
  height:25px !important;
  min-width:25px !important;
  padding:0 !important;
  border:0 !important;
  border-radius:6px !important;
  background:#175cd3 !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:1 !important;
  text-decoration:none !important;
}
.product-detail-add-icon:hover{
  background:#1849a9 !important;
  color:#fff !important;
}

/* ZoneQuoter v0.13.1 — force product-detail quote action to match search icon exactly */
.offer-actions > a.product-card-add-icon.product-detail-quote-icon,
.cards .offer-actions > a.product-card-add-icon.product-detail-quote-icon{
  display:inline-flex !important;
  flex:0 0 24px !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  max-width:24px !important;
  min-width:24px !important;
  height:24px !important;
  min-height:24px !important;
  max-height:24px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:6px !important;
  background:#175cd3 !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:24px !important;
  text-align:center !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  overflow:hidden !important;
}
.offer-actions > a.product-card-add-icon.product-detail-quote-icon:hover,
.cards .offer-actions > a.product-card-add-icon.product-detail-quote-icon:hover{
  background:#1849a9 !important;
  color:#fff !important;
}

/* ZoneQuoter v0.13.2 — force compact quote icon in Product list view */
.product-grid.list-view .product-card-main{
  width:100% !important;
  min-width:0 !important;
}
.product-grid.list-view .product-card-primary-row{
  display:grid !important;
  grid-template-columns:145px 28px minmax(0,1fr) !important;
  grid-template-areas:"sku add desc" !important;
  gap:8px !important;
  align-items:center !important;
  min-width:0 !important;
}
.product-grid.list-view .product-card-sku{
  grid-area:sku !important;
  display:block !important;
  margin:0 !important;
  min-width:0 !important;
}
.product-grid.list-view a.product-card-add-icon{
  grid-area:add !important;
  display:inline-flex !important;
  flex:0 0 24px !important;
  align-items:center !important;
  justify-content:center !important;
  justify-self:center !important;
  align-self:center !important;
  width:24px !important;
  max-width:24px !important;
  min-width:24px !important;
  height:24px !important;
  max-height:24px !important;
  min-height:24px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:6px !important;
  background:#175cd3 !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:24px !important;
  text-align:center !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  overflow:hidden !important;
}
.product-grid.list-view a.product-card-add-icon:hover{
  background:#1849a9 !important;
  color:#fff !important;
}
.product-grid.list-view .product-card-description{
  grid-area:desc !important;
  min-width:0 !important;
  margin:0 !important;
}
@media(max-width:1050px){
  .product-grid.list-view .product-card-primary-row{
    grid-template-columns:125px 28px minmax(0,1fr) !important;
  }
}
@media(max-width:760px){
  .product-grid.list-view .product-card-primary-row{
    grid-template-columns:minmax(90px,125px) 28px minmax(0,1fr) !important;
  }
}

/* ZoneQuoter v0.13.3 — definitive Product picker quote icon fix
   Uses the same icon styling as the working Search page and also converts
   any legacy Add to Quote link markup into the same compact icon. */

/* Current picker markup */
.product-grid a.picker-quote-icon,
.product-grid a.product-search-add-icon.picker-quote-icon{
  display:inline-flex !important;
  flex:0 0 25px !important;
  align-items:center !important;
  justify-content:center !important;
  width:25px !important;
  min-width:25px !important;
  max-width:25px !important;
  height:25px !important;
  min-height:25px !important;
  max-height:25px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:6px !important;
  background:#175cd3 !important;
  color:#fff !important;
  box-shadow:none !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:25px !important;
  text-align:center !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  overflow:hidden !important;
}
.product-grid a.picker-quote-icon:hover,
.product-grid a.product-search-add-icon.picker-quote-icon:hover{
  background:#1849a9 !important;
  color:#fff !important;
}

/* List view: SKU -> icon -> Description */
.product-grid.list-view .product-card-primary-row{
  display:grid !important;
  grid-template-columns:145px 29px minmax(0,1fr) !important;
  grid-template-areas:"sku add desc" !important;
  gap:8px !important;
  align-items:center !important;
}
.product-grid.list-view .product-card-sku{grid-area:sku !important}
.product-grid.list-view .picker-quote-icon{grid-area:add !important;justify-self:center !important}
.product-grid.list-view .product-card-description{grid-area:desc !important}

/* Tile view: same SKU -> icon -> Description sequence */
.product-grid:not(.list-view) .product-card-primary-row{
  display:grid !important;
  grid-template-columns:minmax(72px,105px) 29px minmax(0,1fr) !important;
  grid-template-areas:"sku add desc" !important;
  gap:7px !important;
  align-items:start !important;
}
.product-grid:not(.list-view) .product-card-sku{grid-area:sku !important}
.product-grid:not(.list-view) .picker-quote-icon{grid-area:add !important;justify-self:center !important}
.product-grid:not(.list-view) .product-card-description{grid-area:desc !important;margin:0 !important}

/* Safety net for any older cached/previous picker template still containing
   the long .card-quote-link. It will render as the same 25px blue + icon. */
.product-grid .card-quote-link{
  display:inline-flex !important;
  flex:0 0 25px !important;
  align-items:center !important;
  justify-content:center !important;
  width:25px !important;
  min-width:25px !important;
  max-width:25px !important;
  height:25px !important;
  min-height:25px !important;
  max-height:25px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:6px !important;
  background:#175cd3 !important;
  color:transparent !important;
  box-shadow:none !important;
  font-size:0 !important;
  line-height:25px !important;
  text-decoration:none !important;
  overflow:hidden !important;
}
.product-grid .card-quote-link::before{
  content:"+" !important;
  display:block !important;
  color:#fff !important;
  font-size:18px !important;
  font-weight:500 !important;
  line-height:25px !important;
}
.product-grid .card-quote-link:hover{
  background:#1849a9 !important;
}
.product-grid.list-view .card-quote-link{
  justify-self:center !important;
  align-self:center !important;
}

@media(max-width:1050px){
  .product-grid.list-view .product-card-primary-row{
    grid-template-columns:125px 29px minmax(0,1fr) !important;
  }
}
@media(max-width:760px){
  .product-grid.list-view .product-card-primary-row{
    grid-template-columns:minmax(90px,125px) 29px minmax(0,1fr) !important;
  }
}

/* ZoneQuoter v0.13.4 — Products is list-only */
.view-toggle{
  display:none !important;
}
.product-grid{
  display:flex !important;
  flex-direction:column !important;
  gap:7px !important;
}
.product-grid .product-card{
  display:grid !important;
  grid-template-columns:minmax(430px,1fr) minmax(310px,.9fr) !important;
  gap:18px !important;
  align-items:center !important;
  padding:12px 16px !important;
  border-radius:9px !important;
}
.product-grid .product-card-primary-row{
  display:grid !important;
  grid-template-columns:145px 29px minmax(0,1fr) !important;
  grid-template-areas:"sku add desc" !important;
  gap:8px !important;
  align-items:center !important;
}
.product-grid .product-card-sku{grid-area:sku !important}
.product-grid .picker-quote-icon{grid-area:add !important;justify-self:center !important}
.product-grid .product-card-description{grid-area:desc !important}
.product-grid .offer-mini{
  border-top:0 !important;
  padding-top:0 !important;
}
@media(max-width:1050px){
  .product-grid .product-card{
    grid-template-columns:minmax(360px,1fr) minmax(270px,.9fr) !important;
  }
  .product-grid .product-card-primary-row{
    grid-template-columns:125px 29px minmax(0,1fr) !important;
  }
}
@media(max-width:760px){
  .product-grid .product-card{
    grid-template-columns:1fr !important;
  }
  .product-grid .product-card-primary-row{
    grid-template-columns:minmax(90px,125px) 29px minmax(0,1fr) !important;
  }
}

/* ZoneQuoter v0.13.9 — Halo opportunity linking */
.halo-opportunity-lookup{position:relative}
.halo-opportunity-actions{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:6px;
}
.halo-inline-action{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:#175cd3;
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}
.halo-inline-action:hover{text-decoration:underline}
.halo-inline-action:disabled{
  color:#98a2b3;
  cursor:not-allowed;
  text-decoration:none;
}
.halo-inline-muted{color:#667085}
.halo-opportunity-results{
  top:100%;
  margin-top:4px;
  z-index:1200;
}
.halo-customer-result{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  text-align:left;
}
.halo-customer-result strong{
  color:#172033;
  font-size:12px;
}
.halo-customer-result span{
  color:#667085;
  font-size:10px;
}
.halo-result-empty{
  padding:10px 12px;
  color:#667085;
  font-size:11px;
}


/* =========================================================
   ZoneQuoter v0.14.1 — quote metadata / Halo layout cleanup
   ========================================================= */
.quote-meta-panel .quote-meta-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  column-gap:14px !important;
  row-gap:16px !important;
  align-items:start !important;
}

.quote-meta-panel .quote-meta-grid > label{
  display:grid !important;
  grid-template-rows:20px auto !important;
  gap:6px !important;
  min-width:0 !important;
  margin:0 !important;
  line-height:20px !important;
}

.quote-meta-panel .quote-meta-grid > label > input,
.quote-meta-panel .quote-meta-grid > label > select,
.quote-meta-panel .halo-customer-lookup > input,
.quote-meta-panel .halo-opportunity-lookup > input{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  box-sizing:border-box !important;
  margin:0 !important;
}

/* Row 1: Customer | Halo Opportunity | Quote Title | Reference */
.quote-meta-panel .quote-meta-customer{grid-column:1 !important;grid-row:1 !important}
.quote-meta-panel .quote-meta-opportunity{grid-column:2 !important;grid-row:1 !important}
.quote-meta-panel .quote-meta-title{grid-column:3 !important;grid-row:1 !important}
.quote-meta-panel .quote-meta-reference{grid-column:4 !important;grid-row:1 !important}

/* Row 2: Expiry + Status grouped neatly on the right */
.quote-meta-panel .quote-meta-compact-pair{
  grid-column:3 / 5 !important;
  grid-row:2 !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
  align-items:start !important;
  min-width:0 !important;
  margin:0 !important;
}
.quote-meta-panel .quote-meta-compact-pair > label{
  display:grid !important;
  grid-template-rows:20px 42px !important;
  gap:6px !important;
  min-width:0 !important;
  margin:0 !important;
  line-height:20px !important;
}
.quote-meta-panel .quote-meta-compact-pair input,
.quote-meta-panel .quote-meta-compact-pair select{
  width:100% !important;
  height:42px !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Keep customer/opportunity lookup wrappers predictable. */
.quote-meta-panel .halo-customer-lookup,
.quote-meta-panel .halo-opportunity-lookup{
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
}

/* Compact Halo opportunity footer: status left, actions right. */
.quote-meta-panel .halo-opportunity-footer{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:8px !important;
  min-height:24px !important;
  margin-top:5px !important;
}
.quote-meta-panel .halo-opportunity-footer .halo-customer-status{
  flex:1 1 auto !important;
  min-width:0 !important;
  min-height:0 !important;
  margin:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:10px !important;
  line-height:22px !important;
}
.quote-meta-panel .halo-opportunity-actions{
  display:flex !important;
  flex:0 0 auto !important;
  align-items:center !important;
  gap:5px !important;
  margin:0 !important;
}
.quote-meta-panel .halo-inline-action{
  appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  height:23px !important;
  padding:0 8px !important;
  border:1px solid #d0d5dd !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#475467 !important;
  font-size:10px !important;
  font-weight:600 !important;
  line-height:1 !important;
  white-space:nowrap !important;
  cursor:pointer !important;
  text-decoration:none !important;
}
.quote-meta-panel .halo-inline-primary{
  border-color:#b2ccff !important;
  background:#eff4ff !important;
  color:#175cd3 !important;
}
.quote-meta-panel .halo-inline-action:hover{
  background:#f9fafb !important;
  text-decoration:none !important;
}
.quote-meta-panel .halo-inline-primary:hover{
  background:#e4edff !important;
}
.quote-meta-panel .halo-inline-action:disabled{
  border-color:#eaecf0 !important;
  background:#f9fafb !important;
  color:#98a2b3 !important;
  cursor:not-allowed !important;
}

/* Keep lookup menus above the rows below. */
.quote-meta-panel .halo-customer-results{
  z-index:1300 !important;
}

@media(max-width:1100px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .quote-meta-panel .quote-meta-customer{grid-column:1 !important;grid-row:auto !important}
  .quote-meta-panel .quote-meta-opportunity{grid-column:2 !important;grid-row:auto !important}
  .quote-meta-panel .quote-meta-title{grid-column:1 !important;grid-row:auto !important}
  .quote-meta-panel .quote-meta-reference{grid-column:2 !important;grid-row:auto !important}
  .quote-meta-panel .quote-meta-compact-pair{
    grid-column:1 / 3 !important;
    grid-row:auto !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:1fr !important;
  }
  .quote-meta-panel .quote-meta-customer,
  .quote-meta-panel .quote-meta-opportunity,
  .quote-meta-panel .quote-meta-title,
  .quote-meta-panel .quote-meta-reference,
  .quote-meta-panel .quote-meta-compact-pair{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  .quote-meta-panel .quote-meta-compact-pair{
    grid-template-columns:1fr 1fr !important;
  }
  .quote-meta-panel .halo-opportunity-footer{
    align-items:flex-start !important;
    flex-direction:column !important;
  }
}


/* =========================================================
   ZoneQuoter v0.14.2 — screenshot-driven quote header polish
   ========================================================= */
.quote-meta-panel{
  padding:20px 18px !important;
}

.quote-meta-panel .quote-meta-grid{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  grid-template-areas:
    "customer opportunity title reference"
    ". . expiry status" !important;
  column-gap:14px !important;
  row-gap:14px !important;
  align-items:start !important;
}

.quote-meta-panel .quote-meta-customer{grid-area:customer !important}
.quote-meta-panel .quote-meta-opportunity{grid-area:opportunity !important}
.quote-meta-panel .quote-meta-title{grid-area:title !important}
.quote-meta-panel .quote-meta-reference{grid-area:reference !important}

.quote-meta-panel .quote-meta-grid > label{
  display:grid !important;
  grid-template-rows:18px 42px !important;
  gap:5px !important;
  margin:0 !important;
  min-width:0 !important;
  line-height:18px !important;
}

.quote-meta-panel .quote-meta-grid > label > input,
.quote-meta-panel .quote-meta-grid > label > select,
.quote-meta-panel .halo-customer-lookup > input,
.quote-meta-panel .halo-opportunity-lookup > input{
  width:100% !important;
  height:42px !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Expiry and status share the same second-row footprint as Title + Reference. */
.quote-meta-panel .quote-meta-compact-pair{
  grid-area:expiry / expiry / status / status !important;
  grid-column:3 / 5 !important;
  grid-row:2 !important;
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
  margin:0 !important;
  min-width:0 !important;
  align-items:start !important;
}
.quote-meta-panel .quote-meta-compact-pair > label{
  display:grid !important;
  grid-template-rows:18px 42px !important;
  gap:5px !important;
  margin:0 !important;
  line-height:18px !important;
  min-width:0 !important;
}
.quote-meta-panel .quote-meta-compact-pair input,
.quote-meta-panel .quote-meta-compact-pair select{
  width:100% !important;
  height:42px !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Halo customer helper text must not reserve empty height. */
.quote-meta-panel .halo-customer-status:empty{
  display:none !important;
}

/* Put Halo opportunity controls inside the right edge of the input. */
.quote-meta-panel .halo-opportunity-lookup{
  position:relative !important;
  width:100% !important;
}
.quote-meta-panel .halo-opportunity-lookup > #halo-opportunity-search{
  padding-right:62px !important;
}
.quote-meta-panel .halo-opportunity-actions{
  position:absolute !important;
  top:8px !important;
  right:8px !important;
  display:flex !important;
  align-items:center !important;
  gap:4px !important;
  margin:0 !important;
  z-index:3 !important;
}
.quote-meta-panel .halo-inline-action{
  appearance:none !important;
  width:26px !important;
  min-width:26px !important;
  height:26px !important;
  padding:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border:1px solid #d0d5dd !important;
  border-radius:6px !important;
  background:#fff !important;
  color:#475467 !important;
  font-size:15px !important;
  font-weight:600 !important;
  line-height:1 !important;
  cursor:pointer !important;
  box-shadow:none !important;
  text-decoration:none !important;
}
.quote-meta-panel .halo-inline-primary{
  border-color:#b2ccff !important;
  background:#eff4ff !important;
  color:#175cd3 !important;
}
.quote-meta-panel .halo-inline-action:hover{
  background:#f2f4f7 !important;
}
.quote-meta-panel .halo-inline-primary:hover{
  background:#e4edff !important;
}
.quote-meta-panel .halo-inline-action:disabled{
  opacity:.45 !important;
  cursor:not-allowed !important;
}
.quote-meta-panel .halo-opportunity-lookup > #halo-opportunity-status{
  margin:4px 0 0 !important;
  min-height:0 !important;
  font-size:10px !important;
  line-height:14px !important;
}
.quote-meta-panel .halo-opportunity-results{
  top:46px !important;
  z-index:1300 !important;
}

/* Keep the overall header compact. */
.quote-meta-panel .quote-meta-grid{
  min-height:0 !important;
}

@media(max-width:1100px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "customer opportunity"
      "title reference"
      "expiry status" !important;
  }
  .quote-meta-panel .quote-meta-compact-pair{
    grid-column:1 / 3 !important;
    grid-row:3 !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "customer"
      "opportunity"
      "title"
      "reference"
      "expiry" !important;
  }
  .quote-meta-panel .quote-meta-compact-pair{
    grid-column:1 !important;
    grid-row:auto !important;
    grid-template-columns:1fr 1fr !important;
  }
}


/* =========================================================
   ZoneQuoter v0.14.3 — requested quote metadata arrangement
   ========================================================= */
.quote-meta-panel .quote-meta-grid{
  display:grid !important;
  grid-template-columns:
    minmax(0,1.35fr)
    minmax(0,1.35fr)
    minmax(0,1.15fr)
    minmax(150px,.72fr)
    minmax(115px,.52fr) !important;
  grid-template-areas:
    "customer title reference expiry status"
    "opportunity . . . ." !important;
  column-gap:14px !important;
  row-gap:14px !important;
  align-items:start !important;
}

.quote-meta-panel .quote-meta-customer{
  grid-area:customer !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
.quote-meta-panel .quote-meta-title{
  grid-area:title !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
.quote-meta-panel .quote-meta-reference{
  grid-area:reference !important;
  grid-column:auto !important;
  grid-row:auto !important;
}
.quote-meta-panel .quote-meta-opportunity{
  grid-area:opportunity !important;
  grid-column:auto !important;
  grid-row:auto !important;
}

/* Expiry and Status occupy columns 4 and 5 of the first row. */
.quote-meta-panel .quote-meta-compact-pair{
  grid-area:expiry / expiry / status / status !important;
  grid-column:4 / 6 !important;
  grid-row:1 !important;
  display:grid !important;
  grid-template-columns:minmax(150px,1fr) minmax(115px,.72fr) !important;
  gap:14px !important;
  align-items:start !important;
  margin:0 !important;
  min-width:0 !important;
}

/* Ensure every first-row control is exactly aligned. */
.quote-meta-panel .quote-meta-grid > label,
.quote-meta-panel .quote-meta-compact-pair > label{
  display:grid !important;
  grid-template-rows:18px 42px !important;
  gap:5px !important;
  margin:0 !important;
  min-width:0 !important;
  line-height:18px !important;
}
.quote-meta-panel .quote-meta-grid > label > input,
.quote-meta-panel .quote-meta-compact-pair input,
.quote-meta-panel .quote-meta-compact-pair select,
.quote-meta-panel .halo-customer-lookup > input,
.quote-meta-panel .halo-opportunity-lookup > input{
  height:42px !important;
  width:100% !important;
  box-sizing:border-box !important;
  margin:0 !important;
}

/* Halo Opportunity is a clean second-row field directly under Customer. */
.quote-meta-panel .quote-meta-opportunity{
  align-self:start !important;
}
.quote-meta-panel .quote-meta-opportunity .halo-opportunity-lookup{
  width:100% !important;
}

@media(max-width:1200px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "customer title"
      "reference expiry"
      "opportunity opportunity" !important;
  }
  .quote-meta-panel .quote-meta-compact-pair{
    grid-column:2 !important;
    grid-row:2 !important;
    grid-template-columns:1fr 1fr !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "customer"
      "title"
      "reference"
      "expiry"
      "opportunity" !important;
  }
  .quote-meta-panel .quote-meta-compact-pair{
    grid-column:1 !important;
    grid-row:auto !important;
    grid-template-columns:1fr 1fr !important;
  }
}


/* =========================================================
   ZoneQuoter v0.14.4 — metadata spacing + Halo results
   ========================================================= */

/* Match the Quote Expiry -> Status horizontal gap to every other top-row field. */
.quote-meta-panel .quote-meta-grid{
  column-gap:14px !important;
}
.quote-meta-panel .quote-meta-compact-pair{
  grid-column:4 / 6 !important;
  grid-row:1 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  column-gap:14px !important;
  row-gap:0 !important;
  width:100% !important;
}
.quote-meta-panel .quote-expiry-field,
.quote-meta-panel .quote-status-field{
  width:100% !important;
  min-width:0 !important;
}

/* Halo Opportunity search results: neutral, high-contrast dropdown. */
.quote-meta-panel .halo-opportunity-results{
  background:#fff !important;
  border:1px solid #d0d5dd !important;
  border-radius:8px !important;
  overflow:auto !important;
  box-shadow:0 8px 24px rgba(16,24,40,.12) !important;
}
.quote-meta-panel .halo-opportunity-results .halo-customer-result{
  appearance:none !important;
  display:flex !important;
  width:100% !important;
  min-height:48px !important;
  padding:9px 12px !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  gap:2px !important;
  border:0 !important;
  border-bottom:1px solid #f2f4f7 !important;
  border-radius:0 !important;
  background:#fff !important;
  color:#101828 !important;
  text-align:left !important;
  box-shadow:none !important;
  cursor:pointer !important;
}
.quote-meta-panel .halo-opportunity-results .halo-customer-result:last-child{
  border-bottom:0 !important;
}
.quote-meta-panel .halo-opportunity-results .halo-customer-result:hover,
.quote-meta-panel .halo-opportunity-results .halo-customer-result:focus{
  background:#f8fafc !important;
  color:#101828 !important;
  outline:none !important;
}
.quote-meta-panel .halo-opportunity-results .halo-customer-result strong{
  color:#101828 !important;
  font-size:12px !important;
  font-weight:600 !important;
  line-height:16px !important;
}
.quote-meta-panel .halo-opportunity-results .halo-customer-result span{
  color:#667085 !important;
  font-size:10px !important;
  font-weight:400 !important;
  line-height:14px !important;
}


/* =========================================================
   ZoneQuoter v0.14.5 — exact top-row field spacing
   ========================================================= */

/*
   Let Expiry and Status participate directly in the parent grid.
   This means the same parent column-gap is used between every
   top-row field: Customer, Title, Reference, Expiry and Status.
*/
.quote-meta-panel .quote-meta-compact-pair{
  display:contents !important;
}

.quote-meta-panel .quote-expiry-field{
  grid-column:4 !important;
  grid-row:1 !important;
  width:auto !important;
  min-width:0 !important;
}

.quote-meta-panel .quote-status-field{
  grid-column:5 !important;
  grid-row:1 !important;
  width:auto !important;
  min-width:0 !important;
}

.quote-meta-panel .quote-expiry-field,
.quote-meta-panel .quote-status-field{
  display:grid !important;
  grid-template-rows:18px 42px !important;
  gap:5px !important;
  margin:0 !important;
  line-height:18px !important;
}

.quote-meta-panel .quote-expiry-field input,
.quote-meta-panel .quote-status-field select{
  width:100% !important;
  height:42px !important;
  min-width:0 !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

@media(max-width:1200px){
  .quote-meta-panel .quote-expiry-field{
    grid-column:1 !important;
    grid-row:3 !important;
  }
  .quote-meta-panel .quote-status-field{
    grid-column:2 !important;
    grid-row:3 !important;
  }
  .quote-meta-panel .quote-meta-opportunity{
    grid-column:1 / 3 !important;
    grid-row:4 !important;
  }
}

@media(max-width:700px){
  .quote-meta-panel .quote-expiry-field{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  .quote-meta-panel .quote-status-field{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  .quote-meta-panel .quote-meta-opportunity{
    grid-column:1 !important;
    grid-row:auto !important;
  }
}


/* =========================================================
   ZoneQuoter v0.14.6 — true five-column metadata row
   ========================================================= */

/* All five top-row fields are direct children of the same grid. */
.quote-meta-panel .quote-meta-grid{
  display:grid !important;
  grid-template-columns:
    minmax(0,1.35fr)
    minmax(0,1.35fr)
    minmax(0,1.15fr)
    minmax(150px,.72fr)
    minmax(115px,.52fr) !important;
  grid-template-areas:
    "customer title reference expiry status"
    "opportunity . . . ." !important;
  column-gap:14px !important;
  row-gap:14px !important;
}

.quote-meta-panel .quote-meta-customer{grid-area:customer !important}
.quote-meta-panel .quote-meta-title{grid-area:title !important}
.quote-meta-panel .quote-meta-reference{grid-area:reference !important}
.quote-meta-panel .quote-expiry-field{grid-area:expiry !important}
.quote-meta-panel .quote-status-field{grid-area:status !important}
.quote-meta-panel .quote-meta-opportunity{grid-area:opportunity !important}

/* Identical field sizing and spacing across the whole first row. */
.quote-meta-panel .quote-meta-customer,
.quote-meta-panel .quote-meta-title,
.quote-meta-panel .quote-meta-reference,
.quote-meta-panel .quote-expiry-field,
.quote-meta-panel .quote-status-field{
  display:grid !important;
  grid-template-rows:18px 42px !important;
  gap:5px !important;
  margin:0 !important;
  min-width:0 !important;
  width:auto !important;
  line-height:18px !important;
}

.quote-meta-panel .quote-meta-title > input,
.quote-meta-panel .quote-meta-reference > input,
.quote-meta-panel .quote-expiry-field > input,
.quote-meta-panel .quote-status-field > select,
.quote-meta-panel .halo-customer-lookup > input{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  margin:0 !important;
  box-sizing:border-box !important;
}

/* Halo Opportunity second row and linked-state breathing room. */
.quote-meta-panel .quote-meta-opportunity{
  display:grid !important;
  grid-template-rows:18px auto !important;
  gap:5px !important;
  margin:0 !important;
  min-width:0 !important;
}
.quote-meta-panel #halo-opportunity-status:not(:empty){
  display:block !important;
  margin:0 !important;
  padding:7px 2px 7px 2px !important;
  min-height:0 !important;
  line-height:14px !important;
}

@media(max-width:1200px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "customer title"
      "reference expiry"
      "status ."
      "opportunity opportunity" !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "customer"
      "title"
      "reference"
      "expiry"
      "status"
      "opportunity" !important;
  }
}


/* ZoneQuoter v0.14.7 — Halo linked status spacing */
.quote-meta-panel #halo-opportunity-status:not(:empty){
  padding-top:7px !important;
  padding-bottom:20px !important;
}


/* =========================================================
   ZoneQuoter v0.14.8 — guaranteed Halo row bottom spacing
   ========================================================= */
.quote-meta-panel .quote-meta-opportunity{
  padding-bottom:20px !important;
  box-sizing:border-box !important;
}

.quote-meta-panel #halo-opportunity-status:not(:empty){
  padding-bottom:0 !important;
  margin-bottom:0 !important;
}


/* ZoneQuoter v0.14.9 — Halo approved quote sync */
.halo-sync-panel{margin:12px 0 16px;padding:12px 14px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}
.halo-sync-panel strong{color:#344054}.halo-sync-panel span{color:#667085;flex:1;min-width:260px}.halo-sync-panel form{margin:0}
.halo-sync-success{border-color:#abefc6;background:#f6fef9}.halo-sync-error{border-color:#fecdca;background:#fffbfa}.halo-sync-error span{color:#b42318}


/* ZoneQuoter v0.15.0 — Halo diagnostics */
.halo-diagnostics-result{
  margin-top:10px;
  max-height:360px;
  overflow:auto;
  white-space:pre-wrap;
  word-break:break-word;
  padding:12px;
  border:1px solid #d0d5dd;
  border-radius:8px;
  background:#f8fafc;
  color:#344054;
  font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
}


/* ZoneQuoter v0.15.1 — Halo deeper diagnostics */
#halo-test-item-id{
  height:38px;
  padding:7px 10px;
  border:1px solid #d0d5dd;
  border-radius:6px;
  background:#fff;
  color:#101828;
}


/* ZoneQuoter v0.15.3 — manual Halo product synchronisation */
.halo-product-sync-panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:14px 0;
  padding:14px 16px;
  border:1px solid #e4e7ec;
  border-radius:10px;
  background:#fff;
}
.halo-product-sync-panel>div{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.halo-product-sync-panel strong{
  color:#101828;
  font-size:13px;
}
.halo-product-sync-panel span{
  color:#667085;
  font-size:12px;
}
.halo-product-sync-panel form{
  margin:0;
  flex:0 0 auto;
}
.halo-product-sync-button{
  white-space:nowrap;
}
@media (max-width:900px){
  .halo-product-sync-panel{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* ZoneQuoter v0.15.4 — force Halo product sync controls visible */
.halo-product-sync-panel{
  display:flex !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  box-sizing:border-box !important;
  margin:16px 0 !important;
  padding:14px 16px !important;
  position:relative !important;
  z-index:2 !important;
}
.halo-product-sync-panel form,
.halo-product-sync-panel .halo-product-sync-button{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* v0.15.8 Halo product sync feedback */
.halo-sync-feedback{
  margin-top:10px;
  padding:10px 12px;
  border-radius:6px;
  font-size:13px;
  line-height:1.4;
}
.halo-sync-feedback-success{
  background:#ecfdf3;
  border:1px solid #abefc6;
  color:#067647;
}
.halo-sync-feedback-error{
  background:#fef3f2;
  border:1px solid #fecdca;
  color:#b42318;
}
.halo-sync-feedback-detail{
  margin-top:4px;
  word-break:break-word;
}

/* v0.15.12 Halo Item inspection */
.settings-inline-form{
  display:flex;
  gap:12px;
  align-items:flex-end;
  flex-wrap:wrap;
}
.settings-inline-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:220px;
}
.halo-inspect-result{
  margin-top:16px;
}
.halo-inspect-result textarea{
  width:100%;
  min-height:420px;
  box-sizing:border-box;
  font-family:Consolas, "Courier New", monospace;
  font-size:12px;
  line-height:1.45;
  white-space:pre;
}

/* v0.15.20 - Products hero Start over link */
.picker-hero{align-items:flex-start;}
.picker-hero .picker-start-over{
  flex:0 0 auto !important;
  width:auto !important;
  min-width:max-content;
  white-space:nowrap;
  align-self:flex-start;
  margin-top:4px;
  padding:8px 12px;
}

/* v0.15.22 - Quote saved confirmation toast */
.zq-save-toast{
  position:fixed;
  left:50%;
  bottom:34px;
  z-index:9999;
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 18px;
  border-radius:10px;
  background:#102a43;
  color:#fff;
  font-size:14px;
  font-weight:700;
  box-shadow:0 10px 28px rgba(16,42,67,.24);
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,14px);
  animation:zqSavedToast 2.4s ease forwards;
}
.zq-save-toast-check{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:rgba(255,255,255,.16);
  font-size:13px;
}
@keyframes zqSavedToast{
  0%{opacity:0;transform:translate(-50%,14px);}
  14%{opacity:1;transform:translate(-50%,0);}
  72%{opacity:1;transform:translate(-50%,0);}
  100%{opacity:0;transform:translate(-50%,-8px);}
}

/* v0.15.24 - staged quote line removal and version revert */
.quote-version-history-actions{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:auto;
}
.quote-version-history-actions form{margin:0;}
.quote-version-revert-button{
  cursor:pointer;
  font:inherit;
}
.zq-save-toast-error{background:#8f1d1d;}

/* v0.15.25 - Keep Version History metadata aligned across current/older rows */
.quote-version-history-row{
  grid-template-columns:minmax(150px,.7fr) minmax(260px,1.5fr) 190px;
}
.quote-version-history-actions{
  width:190px;
  justify-content:flex-end;
  margin-left:0;
}

/* v0.15.26 - Align View PDF buttons in Version History */
.quote-version-history-actions{
  display:grid;
  grid-template-columns:92px 90px;
  gap:8px;
  width:190px;
  align-items:center;
  justify-content:end;
}
.quote-version-history-actions .quote-version-pdf-button{
  grid-column:1;
  width:92px;
  box-sizing:border-box;
  text-align:center;
  justify-content:center;
}
.quote-version-history-actions form{
  grid-column:2;
  width:90px;
}
.quote-version-history-actions .quote-version-revert-button{
  width:90px;
  box-sizing:border-box;
  text-align:center;
  justify-content:center;
}

/* Accessible text hidden visually */
.sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* v0.15.30 - General Settings follows the shared Settings subpage layout */
.settings-subpage .settings-form select{
  width:100%;
}

/* v0.15.31 - HaloPSA Developer Tools cleanup */
.halo-developer-card{
  margin-top:20px;
}
.halo-developer-tools{
  margin-top:18px;
  border:1px solid #eaecf0;
  border-radius:10px;
  background:#f9fafb;
  overflow:hidden;
}
.halo-developer-tools > summary{
  display:flex;
  flex-direction:column;
  gap:4px;
  cursor:pointer;
  padding:15px 16px;
  color:#344054;
  font-size:13px;
  font-weight:700;
  list-style:none;
}
.halo-developer-tools > summary::-webkit-details-marker{
  display:none;
}
.halo-developer-tools > summary::after{
  content:"＋";
  position:absolute;
  right:16px;
}
.halo-developer-tools[open] > summary::after{
  content:"−";
}
.halo-developer-tools > summary{
  position:relative;
  padding-right:48px;
}
.halo-developer-tools > summary small{
  color:#667085;
  font-size:11px;
  font-weight:400;
}
.halo-developer-tools-body{
  border-top:1px solid #eaecf0;
  background:#fff;
}
.halo-dev-tool{
  padding:18px 16px;
  border-bottom:1px solid #eaecf0;
}
.halo-dev-tool:last-child{
  border-bottom:0;
}
.halo-dev-tool-copy h3{
  margin:0 0 5px;
  font-size:14px;
  color:#344054;
}
.halo-dev-tool-copy p{
  margin:0;
  color:#667085;
  font-size:12px;
  line-height:1.5;
}
.halo-dev-note{
  margin-top:8px !important;
}
.halo-dev-tool-actions{
  margin-top:12px;
  display:flex;
  align-items:center;
  gap:8px;
}
.halo-dev-inline-form{
  display:flex;
  align-items:flex-end;
  gap:10px;
  margin-top:12px;
  max-width:560px;
}
.halo-dev-inline-form label{
  display:grid;
  gap:6px;
  flex:1;
  color:#344054;
  font-size:12px;
  font-weight:650;
}
.halo-dev-inline-form input{
  width:100%;
  box-sizing:border-box;
  min-height:38px;
}
.halo-dev-inline-form .secondary-link-button{
  flex:0 0 auto;
  min-height:38px;
  white-space:nowrap;
}
.halo-developer-tools .halo-diagnostics-result,
.halo-developer-tools .halo-inspect-result{
  margin-top:12px;
}
.halo-developer-tools .halo-inspect-result h4{
  margin:0 0 8px;
  color:#344054;
  font-size:12px;
}
.halo-developer-tools .halo-inspect-result textarea{
  width:100%;
  min-height:260px;
  box-sizing:border-box;
  resize:vertical;
  font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
}
@media (max-width:700px){
  .halo-dev-inline-form{
    align-items:stretch;
    flex-direction:column;
  }
}

/* v0.15.32 - General PDF company details */
.general-pdf-address-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.general-pdf-address-grid label,
.general-pdf-address-grid input{
  width:100%;
  box-sizing:border-box;
}
@media (max-width:700px){
  .general-pdf-address-grid{grid-template-columns:1fr;}
}

/* v0.15.36 - Combined Halo sync */
.halo-sales-order-linked{
  display:block;
  margin-top:5px;
  color:#475467;
  font-size:11px;
  font-weight:650;
}

/* ZoneQuoter v0.15.38 — Halo Sales Order selector */
.quote-meta-panel .quote-meta-sales-order{
  grid-area:salesorder;
  width:100%;
  min-width:0;
  padding-bottom:20px;
  box-sizing:border-box;
}
.quote-meta-panel .halo-sales-order-lookup{
  width:100%;
}
.quote-meta-panel #halo-sales-order-status:not(:empty){
  padding-top:7px;
}
.quote-meta-panel .quote-meta-grid{
  grid-template-areas:
    "customer title reference expiry status"
    "opportunity opportunity opportunity opportunity opportunity"
    "salesorder salesorder salesorder salesorder salesorder" !important;
}
@media(max-width:1200px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-areas:
      "customer title"
      "reference expiry"
      "opportunity opportunity"
      "salesorder salesorder" !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-areas:
      "customer"
      "title"
      "reference"
      "expiry"
      "status"
      "opportunity"
      "salesorder" !important;
  }
}

/* ZoneQuoter v0.15.39 — Opportunity and Sales Order side-by-side */
.quote-meta-panel .quote-meta-grid{
  grid-template-areas:
    "customer title reference expiry status"
    "opportunity opportunity salesorder salesorder salesorder" !important;
}
.quote-meta-panel .quote-meta-opportunity,
.quote-meta-panel .quote-meta-sales-order{
  min-width:0 !important;
  width:100% !important;
}
@media(max-width:1200px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-areas:
      "customer title"
      "reference expiry"
      "opportunity salesorder" !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-areas:
      "customer"
      "title"
      "reference"
      "expiry"
      "status"
      "opportunity"
      "salesorder" !important;
  }
}

/* ZoneQuoter v0.15.40 — final Halo metadata layout */
.quote-meta-panel .quote-meta-grid{
  display:grid !important;
  grid-template-columns:
    minmax(0,1.35fr)
    minmax(0,1.35fr)
    minmax(0,1.15fr)
    minmax(150px,.72fr)
    minmax(115px,.52fr) !important;
  grid-template-areas:
    "customer title reference expiry status"
    "opportunity opportunity salesorder salesorder salesorder" !important;
  column-gap:14px !important;
  row-gap:14px !important;
}
.quote-meta-panel .quote-meta-opportunity{
  grid-area:opportunity !important;
}
.quote-meta-panel .quote-meta-sales-order{
  grid-area:salesorder !important;
  display:grid !important;
  grid-template-rows:20px auto !important;
  gap:6px !important;
}
.quote-meta-panel .halo-sales-order-lookup{
  position:relative !important;
  display:block !important;
  width:100% !important;
  min-width:0 !important;
}
.quote-meta-panel .halo-sales-order-lookup > input[type="text"]{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  box-sizing:border-box !important;
  padding-right:72px !important;
}
.quote-meta-panel #halo-sales-order-status:not(:empty){
  display:block !important;
  margin-top:4px !important;
  padding-top:0 !important;
  font-size:10px !important;
  line-height:14px !important;
}
@media(max-width:1100px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "customer title"
      "reference expiry"
      "status status"
      "opportunity salesorder" !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "customer"
      "title"
      "reference"
      "expiry"
      "status"
      "opportunity"
      "salesorder" !important;
  }
}

/* The old full-width HaloPSA Sync panel is intentionally no longer used. */

/* ZoneQuoter v0.15.41 — compact equal-width Halo fields */
.quote-meta-panel .quote-meta-grid{
  grid-template-areas:
    "customer title reference expiry status"
    "opportunity opportunity salesorder salesorder ." !important;
}
.quote-meta-panel .quote-meta-opportunity,
.quote-meta-panel .quote-meta-sales-order{
  width:100% !important;
  min-width:0 !important;
}
@media(max-width:1100px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "customer title"
      "reference expiry"
      "status status"
      "opportunity salesorder" !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "customer"
      "title"
      "reference"
      "expiry"
      "status"
      "opportunity"
      "salesorder" !important;
  }
}

/* ZoneQuoter v0.15.42 — Halo fields match Customer / Quote Title widths */
.quote-meta-panel .quote-meta-grid{
  grid-template-areas:
    "customer title reference expiry status"
    "opportunity salesorder . . ." !important;
}
.quote-meta-panel .quote-meta-opportunity,
.quote-meta-panel .quote-meta-sales-order{
  width:100% !important;
  min-width:0 !important;
}
@media(max-width:1100px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-areas:
      "customer title"
      "reference expiry"
      "status status"
      "opportunity salesorder" !important;
  }
}
@media(max-width:700px){
  .quote-meta-panel .quote-meta-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "customer"
      "title"
      "reference"
      "expiry"
      "status"
      "opportunity"
      "salesorder" !important;
  }
}

/* ZoneQuoter v0.15.45 — stronger quote creation/manual-line actions */
.quote-create-form .quote-create-button,
.quote-manual-line-inline .manual-line-add-button{
  font-weight:700 !important;
}

/* ZoneQuoter v0.15.48 — HaloPSA live connection indicator */
.halo-connection-chip{
  display:inline-flex !important;
  align-items:center;
  gap:7px;
}
.halo-connection-dot{
  display:inline-block;
  width:9px;
  height:9px;
  border-radius:50%;
  flex:0 0 9px;
}
.halo-connection-chip.connected .halo-connection-dot{
  background:#22c55e;
  box-shadow:0 0 0 3px rgba(34,197,94,.12);
}
.halo-connection-chip.disconnected .halo-connection-dot{
  background:#ef4444;
  box-shadow:0 0 0 3px rgba(239,68,68,.10);
}

/* ZoneQuoter v0.15.49 — disconnected HaloPSA status */
.halo-connection-chip.disconnected{
  background:#fee2e2 !important;
  color:#991b1b !important;
  border-color:#fecaca !important;
}

/* ZoneQuoter v0.15.50 — Data Feeds Import History matches Settings card layout */
.import-history-panel{
  padding:24px !important;
  overflow:visible !important;
  background:#fff;
}
.import-history-panel .settings-card-head{
  padding:0 0 18px !important;
  margin:0;
}
.import-history-wrap{
  margin-top:20px;
  overflow:auto;
  border:1px solid #eaecf0;
  border-radius:9px;
  background:#fff;
}
.import-history-table th,
.import-history-table td{
  padding:12px 14px;
}
.import-history-table th{
  border-top:0;
}
.import-history-table tbody tr:last-child td{
  border-bottom:0;
}

/* ZoneQuoter v0.15.51 — drag/drop quote-line ordering and clone action */
.quote-line-drag-head,
.quote-line-drag-cell{
  width:34px;
  min-width:34px;
  padding-left:8px !important;
  padding-right:4px !important;
  text-align:center !important;
}
.quote-line-drag-handle,
.quote-line-clone{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  padding:0;
  border:1px solid #d0d5dd;
  border-radius:6px;
  background:#fff;
  color:#667085;
  font-weight:800;
  cursor:grab;
}
.quote-line-drag-handle:active{cursor:grabbing}
.quote-line-clone{cursor:pointer;font-size:15px}
.quote-line-clone:hover,
.quote-line-drag-handle:hover{
  background:#f8fafc;
  color:#344054;
  border-color:#98a2b3;
}
.quote-line-dragging{
  opacity:.55;
  background:#f8fafc;
}
.quote-line-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
}
.quote-line-clone:disabled{
  opacity:.5;
  cursor:wait;
}

/* ZoneQuoter v0.15.52 — quote line action sizing + drag fix */
.quote-line-actions .quote-line-clone,
.quote-line-actions .icon-delete{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  min-width:30px;
  padding:0 !important;
  border:0;
  border-radius:6px;
  background:transparent;
  font-size:18px;
  line-height:1;
  font-weight:400 !important;
}
.quote-line-actions .quote-line-clone{
  color:#667085;
}
.quote-line-actions .icon-delete{
  color:#98a2b3;
}
.quote-line-actions .quote-line-clone:hover{
  background:#f8fafc;
  color:#344054;
}
.quote-line-actions .icon-delete:hover{
  background:#fef3f2;
  color:#b42318;
}
.quote-line-drag-handle{
  font-weight:400 !important;
  user-select:none;
}

/* ZoneQuoter v0.15.53 — headings and inline manual-line creation */
.quote-line-heading td{
  background:#eefaff;
  border-top:1px solid #c8edf7;
  border-bottom:1px solid #c8edf7;
}
.quote-heading-cell{
  padding-top:10px !important;
  padding-bottom:10px !important;
}
.quote-heading-input{
  width:100%;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding:2px 0 !important;
  color:#172033;
  font-size:14px;
  font-weight:700;
}
.quote-heading-input:focus{
  outline:none;
}
.quote-line-creators{
  display:grid;
  gap:10px;
  padding:16px 18px 18px;
  border-top:1px solid #eaecf0;
  background:#fff;
}
.quote-inline-create{
  display:grid;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid #eaecf0;
  border-radius:9px;
  background:#f9fafb;
}
.quote-inline-manual{
  grid-template-columns:minmax(180px,1.35fr) minmax(220px,2fr) 68px 105px 105px auto;
}
.quote-inline-heading{
  grid-template-columns:minmax(180px,1.35fr) minmax(260px,3fr) auto;
}
.quote-inline-create-label{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.quote-inline-create-label strong{
  color:#344054;
  font-size:12px;
}
.quote-inline-create-label span{
  color:#98a2b3;
  font-size:10px;
}
.quote-inline-create input{
  width:100%;
  min-width:0;
}
.quote-inline-create .manual-line-add-button,
.quote-inline-create .quote-add-heading-button{
  white-space:nowrap;
}
@media(max-width:1100px){
  .quote-inline-manual{
    grid-template-columns:1fr 1.6fr 70px 100px 100px;
  }
  .quote-inline-manual .manual-line-add-button{
    grid-column:2 / -1;
    justify-self:end;
  }
  .quote-inline-heading{
    grid-template-columns:1fr 1.6fr auto;
  }
}
@media(max-width:760px){
  .quote-inline-manual,
  .quote-inline-heading{
    grid-template-columns:1fr;
  }
  .quote-inline-manual .manual-line-add-button{
    grid-column:auto;
    justify-self:start;
  }
}

/* ZoneQuoter v0.15.54 — smoother live quote-line drag/reorder */
#quote-lines-body.quote-lines-drag-active{
  cursor:grabbing;
}
#quote-lines-body .quote-line{
  will-change:transform;
}
#quote-lines-body .quote-line-dragging{
  opacity:.72;
  background:#f5fbff;
  box-shadow:inset 3px 0 0 #0ccdf3;
}
#quote-lines-body.quote-lines-drag-active .quote-line:not(.quote-line-dragging){
  transition:transform 150ms cubic-bezier(.2,.8,.2,1);
}
@media (prefers-reduced-motion: reduce){
  #quote-lines-body .quote-line{
    transition:none !important;
  }
}

/* ZoneQuoter v0.15.55 — manual entry is a native Quote Lines table row */
.quote-manual-entry-row td{
  background:#fff;
  border-top:1px solid #eaecf0;
}
.quote-manual-entry-row .quote-product-description-wrap textarea{
  width:100%;
}
.quote-manual-entry-spacer{
  background:#fff !important;
}
.quote-manual-add-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  min-width:30px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#667085;
  font-size:20px;
  line-height:1;
  font-weight:400;
  cursor:pointer;
}
.quote-manual-add-button:hover{
  background:#f8fafc;
  color:#344054;
}
.quote-heading-creator-only{
  padding-top:12px;
}

/* ZoneQuoter v0.15.56 — browser-staged manual quote lines */
.quote-manual-add-button{
  width:auto !important;
  min-width:92px !important;
  padding:0 10px !important;
  font-size:12px !important;
  white-space:nowrap;
}
.quote-line-manual-draft .quote-line-drag-handle{display:inline-flex}
.quote-line-manual-draft td{background:#fff}
.quote-line-manual-draft .manual-draft-description{width:100%}

/* ZoneQuoter v0.15.57 — Quote Lines catalogue/manual actions */
.quote-line-section-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.quote-line-section-actions .primary-link-button,
.quote-line-section-actions .secondary-link-button{
  white-space:nowrap;
}
.quote-line-manual-draft .quote-line-drag-cell{
  width:34px;
  min-width:34px;
}
.quote-line-manual-draft .quote-line-drag-handle{
  display:inline-flex;
}
@media(max-width:700px){
  .quote-line-section-actions{
    width:100%;
    justify-content:flex-start;
  }
}

/* ZoneQuoter v0.16.0 — outbound quote email */
.email-settings-grid{
  display:grid;
  grid-template-columns:minmax(0,2fr) 120px minmax(180px,1fr);
  gap:12px;
}
.email-settings-grid.two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.email-dns-record{
  display:flex;
  flex-direction:column;
  gap:7px;
  padding:14px 16px;
  border:1px solid #d0d5dd;
  border-radius:9px;
  background:#f9fafb;
}
.email-dns-record code{
  display:block;
  padding:10px 12px;
  border-radius:7px;
  background:#fff;
  border:1px solid #eaecf0;
  overflow-wrap:anywhere;
}
.email-dns-record small{
  color:#667085;
}
.quote-email-dialog{
  width:min(720px,calc(100% - 32px));
  max-height:calc(100% - 48px);
  padding:0;
  border:0;
  border-radius:12px;
  box-shadow:0 24px 64px rgba(16,24,40,.24);
}
.quote-email-dialog::backdrop{
  background:rgba(16,24,40,.48);
}
.quote-email-form{
  display:grid;
  gap:14px;
  padding:22px;
}
.quote-email-dialog-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.quote-email-dialog-head h2{
  margin:0;
}
.quote-email-dialog-head p{
  margin:5px 0 0;
  color:#667085;
  font-size:12px;
}
.quote-email-close{
  border:0;
  background:transparent;
  color:#667085;
  font-size:24px;
  font-weight:400;
  cursor:pointer;
  padding:0 4px;
}
.quote-email-form label{
  display:grid;
  gap:6px;
  color:#344054;
  font-size:12px;
  font-weight:650;
}
.quote-email-form input,
.quote-email-form textarea{
  width:100%;
  box-sizing:border-box;
}
.quote-email-saved-warning{
  padding:10px 12px;
  border:1px solid #fedf89;
  border-radius:8px;
  background:#fffaeb;
  color:#7a2e0e;
  font-size:12px;
}
.quote-email-dialog-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
.quote-email-error-alert{
  margin-bottom:14px;
}
.quote-email-history-list{
  display:grid;
  gap:10px;
}
.quote-email-history-row{
  display:grid;
  grid-template-columns:minmax(220px,1.6fr) minmax(180px,1fr) auto;
  gap:14px;
  align-items:start;
  padding:14px 16px;
  border:1px solid #eaecf0;
  border-radius:9px;
  background:#fff;
}
.quote-email-history-status{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}
.quote-email-history-status strong{
  overflow:hidden;
  text-overflow:ellipsis;
}
.email-history-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:650;
}
.email-history-chip.sent{
  background:#dcfae6;
  color:#067647;
}
.email-history-chip.failed{
  background:#fee4e2;
  color:#b42318;
}
.email-history-chip.pending{
  background:#f2f4f7;
  color:#475467;
}
.quote-email-history-recipient,
.quote-email-history-meta{
  display:flex;
  flex-direction:column;
  gap:4px;
  color:#667085;
  font-size:11px;
}
.quote-email-history-meta{
  text-align:right;
}
.quote-email-history-error{
  grid-column:1/-1;
  padding:8px 10px;
  border-radius:7px;
  background:#fef3f2;
  color:#b42318;
  font-size:11px;
}
.quote-email-history-empty{
  color:#667085;
  padding:8px 0 2px;
}
@media(max-width:800px){
  .email-settings-grid,
  .email-settings-grid.two{
    grid-template-columns:1fr;
  }
  .quote-email-history-row{
    grid-template-columns:1fr;
  }
  .quote-email-history-meta{
    text-align:left;
  }
}

/* ZoneQuoter v0.16.1 — consistent quote-line editing */
.quote-product-description-wrap .quote-line-description,
.quote-product-description-wrap .manual-draft-description{
  display:block;
  width:100%;
  min-width:0;
  height:54px;
  min-height:54px;
  max-height:none;
  box-sizing:border-box;
  resize:vertical;
}
.quote-line-heading-draft td{
  background:#eefaff;
  border-top:1px solid #c8edf7;
  border-bottom:1px solid #c8edf7;
}
.quote-line-heading-draft .quote-heading-input{
  width:100%;
}

/* ZoneQuoter v0.16.2 — manual product description matches catalogue field width
   Catalogue rows reserve space for the product-info icon. Manual rows reserve
   the same space without displaying an icon, so the manual field is not longer. */
.quote-line-manual-draft .quote-product-description-wrap::after{
  content:"";
  display:block;
  flex:0 0 19px;
  width:19px;
  min-width:19px;
  height:19px;
  margin-top:3px;
}

/* ZoneQuoter v0.16.4 — separated Quote Details and Customer metadata */
.quote-meta-sections{display:grid;gap:16px;margin-bottom:16px;}
.quote-meta-sections .quote-meta-panel{margin:0 !important;}
.quote-meta-section-head{margin-bottom:14px;}
.quote-meta-section-head h2{margin:0;font-size:16px;}
.quote-details-grid,.quote-customer-grid{display:grid !important;gap:14px !important;align-items:start;}
.quote-details-grid{grid-template-columns:repeat(4,minmax(0,1fr)) !important;}
.quote-customer-grid{grid-template-columns:repeat(5,minmax(0,1fr)) !important;}
.quote-details-grid > label,.quote-customer-grid > label{
  display:grid !important;grid-template-rows:20px auto !important;gap:6px !important;
  min-width:0 !important;width:100% !important;margin:0 !important;
}
.quote-details-grid input,.quote-details-grid select,.quote-customer-grid input,.quote-customer-grid select{
  width:100% !important;min-width:0 !important;height:42px !important;box-sizing:border-box !important;
}
.quote-customer-grid .halo-customer-lookup,.quote-customer-grid .halo-opportunity-lookup{width:100% !important;min-width:0 !important;}
.quote-customer-grid .halo-opportunity-lookup{display:block !important;}
@media(max-width:1200px){.quote-details-grid,.quote-customer-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}}
@media(max-width:700px){.quote-details-grid,.quote-customer-grid{grid-template-columns:1fr !important;}}

/* ZoneQuoter v0.16.5 — customer grid isolation from legacy quote-meta layout */
.quote-customer-grid > .quote-meta-customer,
.quote-customer-grid > .quote-meta-contact,
.quote-customer-grid > .quote-meta-contact-email,
.quote-customer-grid > .quote-meta-opportunity,
.quote-customer-grid > .quote-meta-sales-order{
  grid-area:auto !important;
  grid-column:auto !important;
  grid-row:auto !important;
  position:relative !important;
  inset:auto !important;
  align-self:start !important;
}
.quote-customer-grid .halo-customer-lookup,
.quote-customer-grid .halo-opportunity-lookup,
.quote-customer-grid .halo-sales-order-lookup{
  display:block !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}
.quote-customer-grid .halo-opportunity-actions{
  top:50% !important;
  transform:translateY(-50%) !important;
}
.quote-customer-grid .halo-customer-status{
  position:static !important;
  display:block;
  min-height:16px;
  margin-top:4px !important;
  line-height:16px;
}

/* ZoneQuoter v0.16.6 — hard-isolated Customer section.
   This deliberately avoids every legacy .quote-meta-* selector. */
.quote-customer-section{
  padding:18px;
  margin:0;
  background:#fff;
  border:1px solid #e4e7ec;
  border-radius:12px;
  box-sizing:border-box;
}
.quote-customer-section .quote-meta-section-head{
  margin-bottom:14px;
}
.quote-customer-section .quote-customer-grid{
  display:grid !important;
  grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  gap:14px !important;
  align-items:start !important;
}
.quote-customer-section .quote-customer-grid > label{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  grid-area:auto !important;
  grid-column:auto !important;
  grid-row:auto !important;
  color:#475467;
  font-size:12px;
  font-weight:650;
}
.quote-customer-section .quote-customer-grid > label > input,
.quote-customer-section .quote-customer-grid > label > select,
.quote-customer-section .halo-customer-lookup > input,
.quote-customer-section .halo-opportunity-lookup > input{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  box-sizing:border-box !important;
}
.quote-customer-section .halo-customer-lookup,
.quote-customer-section .halo-opportunity-lookup,
.quote-customer-section .halo-sales-order-lookup{
  display:block !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.quote-customer-section .halo-opportunity-actions{
  position:absolute !important;
  right:7px !important;
  top:21px !important;
  transform:none !important;
  display:flex !important;
  gap:4px !important;
  margin:0 !important;
}
.quote-customer-section .halo-customer-status{
  position:static !important;
  display:block !important;
  width:100% !important;
  min-height:16px !important;
  margin:4px 0 0 !important;
  padding:0 !important;
  line-height:16px !important;
  font-size:10px !important;
  box-sizing:border-box !important;
  white-space:normal !important;
}
.quote-customer-section .halo-customer-results{
  left:0 !important;
  right:0 !important;
  width:auto !important;
}
@media(max-width:1200px){
  .quote-customer-section .quote-customer-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .quote-customer-section .quote-customer-grid{
    grid-template-columns:1fr !important;
  }
}

/* ZoneQuoter v0.16.7 — unified Quote Details block */
.quote-details-block{
  padding:18px;
  margin:0 0 16px;
  background:#fff;
  border:1px solid #e4e7ec;
  border-radius:12px;
  box-sizing:border-box;
}
.quote-details-block .quote-details-heading{
  margin-bottom:14px;
}
.quote-details-block .quote-details-heading h2{
  margin:0;
  font-size:16px;
  line-height:1.3;
  font-weight:700;
  color:#101828;
}
.quote-details-row{
  display:grid !important;
  gap:14px !important;
  align-items:start !important;
}
.quote-details-row + .quote-details-row{
  margin-top:14px;
}
.quote-details-row-top{
  grid-template-columns:minmax(320px,2.2fr) minmax(180px,1fr) minmax(155px,.82fr) minmax(145px,.78fr) !important;
}
.quote-details-row-customer{
  grid-template-columns:minmax(320px,1.7fr) minmax(220px,1fr) minmax(280px,1.35fr) !important;
}
.quote-details-row-halo{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.quote-details-block .quote-detail-field,
.quote-details-block .quote-customer-company,
.quote-details-block .quote-customer-opportunity,
.quote-details-block .quote-customer-sales-order{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  grid-area:auto !important;
  grid-column:auto !important;
  grid-row:auto !important;
  color:#344054;
  font-size:12px;
  font-weight:650;
}
.quote-details-block .quote-detail-field > span{
  min-height:18px;
}
.quote-details-block input,
.quote-details-block select{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  box-sizing:border-box !important;
}
.quote-details-block .halo-customer-lookup,
.quote-details-block .halo-opportunity-lookup,
.quote-details-block .halo-sales-order-lookup{
  display:block !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.quote-details-block .halo-opportunity-actions{
  position:absolute !important;
  right:7px !important;
  top:7px !important;
  transform:none !important;
  display:flex !important;
  gap:4px !important;
  margin:0 !important;
}
.quote-details-block .halo-customer-status{
  position:static !important;
  display:block !important;
  width:100% !important;
  min-height:16px !important;
  margin:4px 0 0 !important;
  padding:0 !important;
  line-height:16px !important;
  font-size:10px !important;
  white-space:normal !important;
  box-sizing:border-box !important;
}
.quote-details-block .halo-customer-results{
  left:0 !important;
  right:0 !important;
  width:auto !important;
}
@media(max-width:1200px){
  .quote-details-row-top{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .quote-details-row-customer{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .quote-details-row-top,
  .quote-details-row-customer,
  .quote-details-row-halo{
    grid-template-columns:1fr !important;
  }
}

/* ZoneQuoter v0.16.8 — tabbed Quote Details */
.quote-details-tabs-block{
  padding:18px;
  margin:0 0 16px;
  background:#fff;
  border:1px solid #e4e7ec;
  border-radius:12px;
  box-sizing:border-box;
}
.quote-details-tabs-block > .section-heading{
  margin-bottom:14px !important;
}
.quote-details-tabs-block > .section-heading h2{
  margin:0 !important;
}
.quote-details-tabs-block > .section-heading p{
  margin:4px 0 0 !important;
}
.quote-details-tabs{
  display:flex;
  align-items:center;
  gap:4px;
  border-bottom:1px solid #e4e7ec;
  margin-bottom:16px;
}
.quote-details-tab{
  appearance:none;
  border:0;
  border-bottom:2px solid transparent;
  background:transparent;
  color:#667085;
  font:inherit;
  font-size:12px;
  font-weight:650;
  padding:10px 14px 9px;
  margin-bottom:-1px;
  cursor:pointer;
}
.quote-details-tab:hover{
  color:#344054;
}
.quote-details-tab.is-active{
  color:#101828;
  border-bottom-color:#0ccdf3;
}
.quote-details-tab:focus-visible{
  outline:2px solid #0ccdf3;
  outline-offset:2px;
  border-radius:4px 4px 0 0;
}
.quote-details-tab-panel[hidden]{
  display:none !important;
}
.quote-tab-grid{
  display:grid !important;
  gap:14px !important;
  align-items:start !important;
}
.quote-tab-grid-quote{
  grid-template-columns:minmax(320px,2.3fr) minmax(180px,1fr) minmax(155px,.82fr) minmax(145px,.78fr) !important;
}
.quote-tab-grid-customer{
  grid-template-columns:minmax(340px,1.55fr) minmax(240px,1fr) minmax(300px,1.3fr) !important;
}
.quote-tab-grid-halo{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.quote-details-tabs-block .quote-detail-field,
.quote-details-tabs-block .quote-customer-company,
.quote-details-tabs-block .quote-customer-opportunity,
.quote-details-tabs-block .quote-customer-sales-order{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  position:static !important;
  grid-area:auto !important;
  grid-column:auto !important;
  grid-row:auto !important;
  color:#344054;
  font-size:12px;
  font-weight:650;
}
.quote-details-tabs-block .quote-detail-field > span{
  min-height:18px;
}
.quote-details-tabs-block input,
.quote-details-tabs-block select{
  width:100% !important;
  min-width:0 !important;
  height:42px !important;
  box-sizing:border-box !important;
}
.quote-details-tabs-block .halo-customer-lookup,
.quote-details-tabs-block .halo-opportunity-lookup,
.quote-details-tabs-block .halo-sales-order-lookup{
  display:block !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.quote-details-tabs-block .halo-opportunity-actions{
  position:absolute !important;
  right:7px !important;
  top:7px !important;
  transform:none !important;
  display:flex !important;
  gap:4px !important;
  margin:0 !important;
}
.quote-details-tabs-block .halo-customer-status{
  position:static !important;
  display:block !important;
  width:100% !important;
  min-height:16px !important;
  margin:4px 0 0 !important;
  padding:0 !important;
  line-height:16px !important;
  font-size:10px !important;
  white-space:normal !important;
  box-sizing:border-box !important;
}
.quote-details-tabs-block .halo-customer-results{
  left:0 !important;
  right:0 !important;
  width:auto !important;
}
@media(max-width:1100px){
  .quote-tab-grid-quote{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .quote-tab-grid-customer{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .quote-details-tabs{
    overflow-x:auto;
  }
  .quote-details-tab{
    white-space:nowrap;
  }
  .quote-tab-grid-quote,
  .quote-tab-grid-customer,
  .quote-tab-grid-halo{
    grid-template-columns:1fr !important;
  }
}

/* ZoneQuoter v0.16.9 — equal Quote Details tab depth + clearer active tab */
.quote-details-tab-panels{
  min-height:92px;
}
.quote-details-tab-panel{
  min-height:92px;
  box-sizing:border-box;
}
.quote-details-tab{
  border:1px solid transparent !important;
  border-bottom:2px solid transparent !important;
  border-radius:7px 7px 0 0;
  background:transparent !important;
  color:#667085 !important;
  transition:background .12s ease,color .12s ease,border-color .12s ease;
}
.quote-details-tab:hover{
  background:#f2f4f7 !important;
  color:#344054 !important;
}
.quote-details-tab.is-active{
  background:#e9faff !important;
  color:#0b4f63 !important;
  border-color:#b9ecf7 !important;
  border-bottom-color:#0ccdf3 !important;
  box-shadow:inset 0 -1px 0 #0ccdf3;
}
.quote-details-tab.is-active::before{
  content:"";
  display:inline-block;
  width:7px;
  height:7px;
  margin-right:7px;
  border-radius:50%;
  background:#0ccdf3;
  vertical-align:1px;
}

/* ZoneQuoter v0.16.10 — Quote/Customer tab field alignment */
.quote-details-tabs-block .quote-tab-grid-quote,
.quote-details-tabs-block .quote-tab-grid-customer{
  grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) !important;
}

/* Quote Details has four fields: Quote Name keeps the same width as Company,
   while Reference / Expiry / Status share the remaining space. */
.quote-details-tabs-block .quote-tab-grid-quote{
  grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)) !important;
}

/* Company uses the same first-column width as Quote Name. */
.quote-details-tabs-block .quote-tab-grid-customer{
  grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) minmax(0,1.5fr) !important;
}

/* Halo's customer lookup has helper/status content below the input. Keep the
   Company label/input aligned with Contact and Email rather than letting the
   lookup's internal layout move the field upward. */
.quote-details-tabs-block .quote-customer-company{
  align-self:start !important;
}
.quote-details-tabs-block .quote-customer-company .halo-customer-lookup{
  margin-top:0 !important;
}
.quote-details-tabs-block .quote-customer-company > .halo-customer-lookup > input{
  margin-top:0 !important;
}
.quote-details-tabs-block .quote-tab-grid-customer > label{
  padding-top:0 !important;
  align-self:start !important;
}
.quote-details-tabs-block .quote-tab-grid-customer > label > input,
.quote-details-tabs-block .quote-tab-grid-customer .halo-customer-lookup > input{
  margin-top:0 !important;
}

/* ZoneQuoter v0.16.11 — exact field geometry.
   Use one explicit shared width, not separate fractional grids. */
.quote-details-tabs-block{
  --zq-primary-detail-width:420px;
}

/* Quote Name and Company are exactly the same CSS width. */
.quote-details-tabs-block .quote-detail-name,
.quote-details-tabs-block .quote-customer-company{
  width:var(--zq-primary-detail-width) !important;
  max-width:var(--zq-primary-detail-width) !important;
  min-width:var(--zq-primary-detail-width) !important;
}

/* Use explicit column geometry so the grid cannot make the two fields differ. */
.quote-details-tabs-block .quote-tab-grid-quote{
  grid-template-columns:var(--zq-primary-detail-width) minmax(150px,1fr) minmax(145px,.8fr) minmax(135px,.75fr) !important;
}
.quote-details-tabs-block .quote-tab-grid-customer{
  grid-template-columns:var(--zq-primary-detail-width) minmax(220px,1fr) minmax(260px,1.2fr) !important;
}

/* All visible captions occupy exactly the same height. This fixes the Company
   input being a few pixels higher than Contact/Email. */
.quote-details-tabs-block .quote-field-caption,
.quote-details-tabs-block .quote-detail-field > span,
.quote-details-tabs-block .quote-customer-company > span:first-child{
  display:flex !important;
  align-items:flex-end !important;
  height:18px !important;
  min-height:18px !important;
  max-height:18px !important;
  line-height:18px !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}

/* Force identical label-to-input spacing on the customer row. */
.quote-details-tabs-block .quote-tab-grid-customer > label{
  display:grid !important;
  grid-template-rows:18px auto !important;
  row-gap:6px !important;
  align-content:start !important;
}
.quote-details-tabs-block .quote-tab-grid-customer .halo-customer-lookup{
  align-self:start !important;
  margin:0 !important;
  padding:0 !important;
}
.quote-details-tabs-block .quote-tab-grid-customer .halo-customer-lookup > input,
.quote-details-tabs-block .quote-tab-grid-customer > .quote-detail-field > input{
  height:42px !important;
  margin:0 !important;
  padding-top:0;
  padding-bottom:0;
  box-sizing:border-box !important;
}

/* The lookup status stays below the Company input and must not affect its top edge. */
.quote-details-tabs-block .quote-customer-company .halo-customer-status{
  margin-top:4px !important;
}

@media(max-width:1100px){
  .quote-details-tabs-block{
    --zq-primary-detail-width:auto;
  }
  .quote-details-tabs-block .quote-detail-name,
  .quote-details-tabs-block .quote-customer-company{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
}

/* ZoneQuoter v0.16.12 — Halo contact selection + compact quote line add actions */
.quote-details-tabs-block .quote-tab-grid-customer{
  grid-template-columns:var(--zq-primary-detail-width) var(--zq-primary-detail-width) !important;
  justify-content:start !important;
}
.quote-details-tabs-block .quote-detail-contact{
  width:var(--zq-primary-detail-width) !important;
  max-width:var(--zq-primary-detail-width) !important;
  min-width:var(--zq-primary-detail-width) !important;
}
.quote-details-tabs-block .halo-contact-lookup{
  display:block !important;
  position:relative !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
}
.quote-details-tabs-block .halo-contact-lookup > input{
  width:100% !important;
  height:42px !important;
  box-sizing:border-box !important;
  margin:0 !important;
}
.quote-email-halo-recipient{
  display:flex;
  gap:7px;
  align-items:flex-start;
  padding:10px 12px;
  background:#f8fafc;
  border:1px solid #e4e7ec;
  border-radius:8px;
  color:#475467;
  font-size:12px;
}
.quote-email-halo-recipient strong{
  color:#101828;
  white-space:nowrap;
}
.quote-line-section-actions{
  display:flex;
  gap:7px;
  align-items:center;
}
.quote-line-add-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:82px !important;
  height:32px !important;
  padding:0 11px !important;
  margin:0 !important;
  border:1px solid #0ccdf3 !important;
  border-radius:7px !important;
  background:#0ccdf3 !important;
  color:#082f3a !important;
  font:inherit !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1 !important;
  text-decoration:none !important;
  box-sizing:border-box !important;
  cursor:pointer;
}
.quote-line-add-button:hover{
  filter:brightness(.96);
}
@media(max-width:1100px){
  .quote-details-tabs-block .quote-tab-grid-customer{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .quote-details-tabs-block .quote-detail-contact{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
  }
}
@media(max-width:700px){
  .quote-details-tabs-block .quote-tab-grid-customer{
    grid-template-columns:1fr !important;
  }
}

/* ZoneQuoter v0.16.13 — unified quote action button colour treatment.
   Both the top quote actions and Quote Lines add buttons now use the same
   normal / hover / active colour scheme. */
.quote-action-button,
.quote-line-add-button{
  background:#ffffff !important;
  color:#344054 !important;
  border:1px solid #d0d5dd !important;
  box-shadow:0 1px 2px rgba(16,24,40,.05) !important;
  font-weight:700 !important;
  text-decoration:none !important;
  transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease !important;
}

/* Hover intentionally matches the pressed/clicked colour. */
.quote-action-button:hover,
.quote-line-add-button:hover,
.quote-action-button:active,
.quote-line-add-button:active,
.quote-action-button.is-active,
.quote-line-add-button.is-active{
  background:#344054 !important;
  color:#ffffff !important;
  border-color:#344054 !important;
  box-shadow:0 1px 2px rgba(16,24,40,.10) !important;
  filter:none !important;
}

/* Keep text/icons white when child elements inherit their own colour. */
.quote-action-button:hover *,
.quote-line-add-button:hover *,
.quote-action-button:active *,
.quote-line-add-button:active *,
.quote-action-button.is-active *,
.quote-line-add-button.is-active *{
  color:#ffffff !important;
}

/* Keyboard focus remains obvious without changing the hover/pressed palette. */
.quote-action-button:focus-visible,
.quote-line-add-button:focus-visible{
  outline:2px solid #0ccdf3 !important;
  outline-offset:2px !important;
}

/* Compact Quote Lines buttons keep their existing size while using the same palette. */
.quote-line-add-button{
  min-width:82px !important;
  height:32px !important;
  padding:0 11px !important;
  font-size:12px !important;
  line-height:1 !important;
}

/* ZoneQuoter v0.16.14 — line delete controls */
.quote-line-icon-button,
.manual-draft-remove,
.heading-draft-remove,
.quote-line-remove,
[data-line-remove="1"]{
  position:relative !important;
  z-index:3 !important;
  pointer-events:auto !important;
  cursor:pointer !important;
}

/* ZoneQuoter v0.16.17 — readable Halo company/contact lookup dropdowns */
.halo-customer-results,
.halo-contact-results{
  background:#ffffff !important;
  color:#101828 !important;
  border:1px solid #d0d5dd !important;
  box-shadow:0 8px 20px rgba(16,24,40,.12) !important;
}

.halo-customer-results .halo-customer-result,
.halo-contact-results .halo-customer-result,
.halo-customer-result{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  width:100% !important;
  background:#ffffff !important;
  color:#101828 !important;
  border:0 !important;
  border-bottom:1px solid #eaecf0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-align:left !important;
}

.halo-customer-results .halo-customer-result:last-child,
.halo-contact-results .halo-customer-result:last-child{
  border-bottom:0 !important;
}

.halo-customer-results .halo-customer-result strong,
.halo-contact-results .halo-customer-result strong,
.halo-customer-results .halo-customer-result span,
.halo-contact-results .halo-customer-result span,
.halo-customer-result strong,
.halo-customer-result span{
  color:#101828 !important;
  background:transparent !important;
}

.halo-customer-results .halo-customer-result span,
.halo-contact-results .halo-customer-result span{
  color:#667085 !important;
}

.halo-customer-results .halo-customer-result:hover,
.halo-contact-results .halo-customer-result:hover,
.halo-customer-results .halo-customer-result:focus,
.halo-contact-results .halo-customer-result:focus{
  background:#f2f4f7 !important;
  color:#101828 !important;
}

.halo-customer-results .halo-customer-result:hover strong,
.halo-contact-results .halo-customer-result:hover strong,
.halo-customer-results .halo-customer-result:hover span,
.halo-contact-results .halo-customer-result:hover span,
.halo-customer-results .halo-customer-result:focus strong,
.halo-contact-results .halo-customer-result:focus strong,
.halo-customer-results .halo-customer-result:focus span,
.halo-contact-results .halo-customer-result:focus span{
  color:#101828 !important;
}

/* ZoneQuoter v0.16.18 — Company lookup matches Contact lookup exactly */
#halo-customer-results,
.halo-company-results{
  background:#ffffff !important;
  color:#101828 !important;
  border:1px solid #d0d5dd !important;
  box-shadow:0 8px 20px rgba(16,24,40,.12) !important;
}

#halo-customer-results button,
#halo-customer-results .halo-customer-result,
.halo-company-results button,
.halo-company-results .halo-customer-result{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  width:100% !important;
  background:#ffffff !important;
  color:#101828 !important;
  border:0 !important;
  border-bottom:1px solid #eaecf0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-align:left !important;
}

#halo-customer-results button strong,
#halo-customer-results button span,
#halo-customer-results .halo-customer-result strong,
#halo-customer-results .halo-customer-result span,
.halo-company-results button strong,
.halo-company-results button span{
  background:transparent !important;
}

#halo-customer-results button strong,
#halo-customer-results .halo-customer-result strong,
.halo-company-results button strong{
  color:#101828 !important;
}

#halo-customer-results button span,
#halo-customer-results .halo-customer-result span,
.halo-company-results button span{
  color:#667085 !important;
}

#halo-customer-results button:hover,
#halo-customer-results button:focus,
#halo-customer-results .halo-customer-result:hover,
#halo-customer-results .halo-customer-result:focus,
.halo-company-results button:hover,
.halo-company-results button:focus{
  background:#f2f4f7 !important;
  color:#101828 !important;
}

#halo-customer-results button:hover *,
#halo-customer-results button:focus *,
#halo-customer-results .halo-customer-result:hover *,
#halo-customer-results .halo-customer-result:focus *,
.halo-company-results button:hover *,
.halo-company-results button:focus *{
  color:#101828 !important;
}

/* ZoneQuoter v0.16.19 — one exact visual system for secondary quote actions
   and the Catalogue / Manual / Heading add controls. */
.quote-unified-action{
  appearance:none !important;
  -webkit-appearance:none !important;
  font-family:inherit !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  text-decoration:none !important;
  color:#344054 !important;
  background:#ffffff !important;
  border:1px solid #d0d5dd !important;
  border-radius:7px !important;
  box-shadow:0 1px 2px rgba(16,24,40,.05) !important;
  cursor:pointer !important;
  box-sizing:border-box !important;
  transition:background .12s ease,color .12s ease,border-color .12s ease,box-shadow .12s ease !important;
}

/* Hover and mouse-down use exactly the same dark-grey/white state. */
.quote-unified-action:hover,
.quote-unified-action:active,
.quote-unified-action.is-active,
.quote-more-menu:has(.quote-more-dropdown:not([hidden])) > .quote-unified-action{
  background:#344054 !important;
  border-color:#344054 !important;
  color:#ffffff !important;
  box-shadow:0 1px 2px rgba(16,24,40,.10) !important;
  filter:none !important;
  text-decoration:none !important;
}

.quote-unified-action:hover *,
.quote-unified-action:active *,
.quote-unified-action.is-active *{
  color:#ffffff !important;
}

/* Ensure native button and anchor rendering cannot make Email Quote or any
   other action look typographically different. */
button.quote-unified-action,
a.quote-unified-action{
  font-family:inherit !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1 !important;
}

/* Keep the three Quote Lines add controls identically sized. */
.quote-line-add-button.quote-unified-action{
  min-width:82px !important;
  height:32px !important;
  padding:0 11px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}

/* Disabled Email Quote stays visibly disabled rather than pretending it can be clicked. */
.quote-unified-action:disabled{
  cursor:not-allowed !important;
  opacity:.55 !important;
}
.quote-unified-action:disabled:hover{
  background:#ffffff !important;
  border-color:#d0d5dd !important;
  color:#344054 !important;
}

/* ZoneQuoter v0.16.20 — Save button geometry matches the other top actions.
   The shared class now owns the top-action height/padding as well as typography. */
.quote-actions .quote-unified-action{
  height:34px !important;
  min-height:34px !important;
  padding:0 12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
}

/* ZoneQuoter v0.16.21 — Company lookup rendered results exactly match Contact lookup */
#halo-customer-results .halo-customer-result,
.halo-company-results .halo-customer-result{
  min-height:0 !important;
  padding:9px 12px !important;
  gap:2px !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-style:normal !important;
  font-weight:400 !important;
  line-height:1.25 !important;
  letter-spacing:normal !important;
}

#halo-customer-results .halo-customer-result strong,
.halo-company-results .halo-customer-result strong{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-style:normal !important;
  font-weight:600 !important;
  line-height:1.25 !important;
  color:#101828 !important;
}

#halo-customer-results .halo-customer-result span,
.halo-company-results .halo-customer-result span{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  font-family:inherit !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:400 !important;
  line-height:1.25 !important;
  color:#667085 !important;
}

#halo-customer-status{
  margin-top:4px !important;
  font-family:inherit !important;
  font-size:11px !important;
  font-weight:400 !important;
  line-height:1.2 !important;
  color:#667085 !important;
}

/* Remove stray plus decoration/icons from Halo Opportunity and Sales Order selectors */
.halo-opportunity-lookup::before,
.halo-opportunity-lookup::after,
.halo-sales-order-lookup::before,
.halo-sales-order-lookup::after,
.quote-halo-opportunity::before,
.quote-halo-opportunity::after,
.quote-halo-sales-order::before,
.quote-halo-sales-order::after{
  content:none !important;
  display:none !important;
}

.halo-opportunity-lookup .add-icon,
.halo-sales-order-lookup .add-icon,
.halo-opportunity-lookup .plus-icon,
.halo-sales-order-lookup .plus-icon{
  display:none !important;
}

/* ZoneQuoter v0.16.22 — primary top Save action */
.quote-top-actions .primary-link-button.quote-unified-action{
  background:#175cd3 !important;
  border-color:#175cd3 !important;
  color:#ffffff !important;
}
.quote-top-actions .primary-link-button.quote-unified-action:hover,
.quote-top-actions .primary-link-button.quote-unified-action:active{
  background:#1849a9 !important;
  border-color:#1849a9 !important;
  color:#ffffff !important;
}
.quote-top-actions .primary-link-button.quote-unified-action *{
  color:#ffffff !important;
}

/* ZoneQuoter v0.16.24 — authoritative Quote action + Halo lookup styling */

/* Top Save is the primary blue action. These selectors intentionally outrank
   the generic .quote-unified-action rules later/earlier in the stylesheet. */
.quote-top-actions > button.primary-link-button.quote-unified-action,
.quote-top-actions > .primary-link-button.quote-unified-action{
  background:#175cd3 !important;
  background-color:#175cd3 !important;
  border:1px solid #175cd3 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
.quote-top-actions > button.primary-link-button.quote-unified-action:hover,
.quote-top-actions > button.primary-link-button.quote-unified-action:focus,
.quote-top-actions > button.primary-link-button.quote-unified-action:active,
.quote-top-actions > .primary-link-button.quote-unified-action:hover,
.quote-top-actions > .primary-link-button.quote-unified-action:focus,
.quote-top-actions > .primary-link-button.quote-unified-action:active{
  background:#1849a9 !important;
  background-color:#1849a9 !important;
  border-color:#1849a9 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

/* Company and Contact dropdown containers are intentionally the same. */
#halo-customer-results,
#halo-contact-results{
  background:#ffffff !important;
  color:#101828 !important;
  border:1px solid #d0d5dd !important;
  border-radius:8px !important;
  box-shadow:0 8px 20px rgba(16,24,40,.12) !important;
  overflow:hidden !important;
  padding:0 !important;
}

/* Company and Contact result rows are intentionally the same. */
#halo-customer-results .halo-customer-result,
#halo-contact-results .halo-customer-result{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:center !important;
  width:100% !important;
  min-height:48px !important;
  margin:0 !important;
  padding:9px 12px !important;
  gap:2px !important;
  background:#ffffff !important;
  color:#101828 !important;
  border:0 !important;
  border-bottom:1px solid #eaecf0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  text-align:left !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-style:normal !important;
  font-weight:400 !important;
  line-height:1.25 !important;
  cursor:pointer !important;
}
#halo-customer-results .halo-customer-result:last-child,
#halo-contact-results .halo-customer-result:last-child{
  border-bottom:0 !important;
}
#halo-customer-results .halo-customer-result strong,
#halo-contact-results .halo-customer-result strong{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  color:#101828 !important;
  font-family:inherit !important;
  font-size:13px !important;
  font-style:normal !important;
  font-weight:600 !important;
  line-height:1.25 !important;
}
#halo-customer-results .halo-customer-result span,
#halo-contact-results .halo-customer-result span{
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  color:#667085 !important;
  font-family:inherit !important;
  font-size:12px !important;
  font-style:normal !important;
  font-weight:400 !important;
  line-height:1.25 !important;
}
#halo-customer-results .halo-customer-result:hover,
#halo-customer-results .halo-customer-result:focus,
#halo-contact-results .halo-customer-result:hover,
#halo-contact-results .halo-customer-result:focus{
  background:#f2f4f7 !important;
  color:#101828 !important;
}

/* Status/help text beneath Company and Contact is intentionally identical and bold. */
#halo-customer-status,
#halo-contact-status{
  display:block !important;
  min-height:14px !important;
  margin-top:5px !important;
  padding:0 !important;
  color:#667085 !important;
  font-family:inherit !important;
  font-size:11px !important;
  font-style:normal !important;
  font-weight:700 !important;
  line-height:1.25 !important;
}

/* ZoneQuoter v0.16.25 — Halo tab alignment and larger icons */

/* HaloPSA labels use the same 18px caption row as Quote Details / Customer Details.
   This removes the slight vertical offset of the two lookup boxes. */
.quote-details-tabs-block .quote-tab-grid-halo > label{
  display:grid !important;
  grid-template-rows:18px auto !important;
  row-gap:6px !important;
  align-content:start !important;
  line-height:18px !important;
}
.quote-details-tabs-block .quote-tab-grid-halo > label > .halo-opportunity-lookup,
.quote-details-tabs-block .quote-tab-grid-halo > label > .halo-sales-order-lookup{
  align-self:start !important;
  margin:0 !important;
}

/* Larger Opportunity / Sales Order action icons. */
.quote-details-tabs-block .quote-tab-grid-halo .halo-inline-action{
  width:30px !important;
  min-width:30px !important;
  height:28px !important;
  padding:0 !important;
  font-size:19px !important;
  font-weight:700 !important;
  line-height:1 !important;
}
.quote-details-tabs-block .quote-tab-grid-halo .halo-opportunity-actions{
  right:7px !important;
  top:7px !important;
  height:28px !important;
  align-items:center !important;
}

/* ZoneQuoter v0.16.26 — manual description matches catalogue description width.
   Catalogue rows reserve space for the product information control; manual rows
   now reserve the same horizontal space rather than stretching wider. */
.quote-lines-table .manual-draft-description{
  width:calc(100% - 30px) !important;
  max-width:calc(100% - 30px) !important;
  box-sizing:border-box !important;
}

/* ZoneQuoter v0.16.27 — Version History action buttons match View PDF exactly */
.quote-version-history-actions .quote-version-action-button{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:92px !important;
  min-width:92px !important;
  height:30px !important;
  min-height:30px !important;
  padding:0 10px !important;
  box-sizing:border-box !important;
  border-radius:7px !important;
  font-family:inherit !important;
  font-size:11px !important;
  font-style:normal !important;
  font-weight:700 !important;
  line-height:1 !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  vertical-align:middle !important;
}
.quote-version-history-actions form{
  width:92px !important;
  height:30px !important;
  margin:0 !important;
}

/* ZoneQuoter v0.16.28 — definitive quote UI fixes */
.quote-top-actions .primary-link-button.quote-unified-action,
.quote-summary-panel .save-quote-button{
 background:#175cd3!important;background-color:#175cd3!important;border-color:#175cd3!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
}
.quote-top-actions .primary-link-button.quote-unified-action:hover,
.quote-top-actions .primary-link-button.quote-unified-action:focus,
.quote-top-actions .primary-link-button.quote-unified-action:active,
.quote-summary-panel .save-quote-button:hover,
.quote-summary-panel .save-quote-button:focus,
.quote-summary-panel .save-quote-button:active{
 background:#1849a9!important;background-color:#1849a9!important;border-color:#1849a9!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
}
.quote-top-actions .quote-unified-action{
 height:34px!important;min-height:34px!important;padding-top:0!important;padding-bottom:0!important;
 display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important;
}
/* Catalogue descriptions reserve 19px at right via wrapper ::after.
   Manual uses the same wrapper but older manual CSS suppressed/changed its effective width.
   Force the textarea to flex and preserve the exact same 19px reserved space. */
.quote-line-manual-draft .quote-product-description-wrap{
 display:flex!important;align-items:flex-start!important;gap:8px!important;width:100%!important;box-sizing:border-box!important;
}
.quote-line-manual-draft .quote-product-description-wrap .manual-draft-description{
 flex:1 1 auto!important;width:auto!important;max-width:none!important;min-width:0!important;box-sizing:border-box!important;
}
.quote-line-manual-draft .quote-product-description-wrap::after{
 content:""!important;display:block!important;flex:0 0 19px!important;width:19px!important;min-width:19px!important;height:19px!important;margin-top:3px!important;
}
/* Manual line action hover = top secondary hover. */
.quote-line-manual-draft .quote-line-clone:hover,
.quote-line-manual-draft .quote-manual-draft-delete:hover{
 background:#344054!important;border-color:#344054!important;color:#fff!important;-webkit-text-fill-color:#fff!important;text-decoration:none!important;
}

/* ZoneQuoter v0.16.29 — definitive top Save rendering fix.
   This exact selector intentionally matches the real button element and outranks
   all historical generic button rules. */
.quote-top-actions > button.primary-link-button.quote-unified-action{
  height:34px !important;
  min-height:34px !important;
  padding:0 12px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  box-sizing:border-box !important;
  background:#175cd3 !important;
  background-color:#175cd3 !important;
  border:1px solid #175cd3 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
.quote-top-actions > button.primary-link-button.quote-unified-action:hover,
.quote-top-actions > button.primary-link-button.quote-unified-action:focus,
.quote-top-actions > button.primary-link-button.quote-unified-action:active{
  background:#1849a9 !important;
  background-color:#1849a9 !important;
  border-color:#1849a9 !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

/* ZoneQuoter v0.16.30 — Manual Product description exact visible-width match.
   The catalogue description shares the Product cell with an info control.
   The manual description now reserves the same 27px horizontal footprint
   (19px control + 8px gap), so the textarea ends at the exact same x-position. */
.quote-line-manual-draft .quote-product-description-wrap{
  display:block !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.quote-line-manual-draft .quote-product-description-wrap::after{
  content:none !important;
  display:none !important;
}
.quote-line-manual-draft .quote-product-description-wrap .manual-draft-description{
  display:block !important;
  width:calc(100% - 27px) !important;
  max-width:calc(100% - 27px) !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  flex:none !important;
}

/* ZoneQuoter v0.16.31 — Manual rows use the actual catalogue info-control layout.
   With a real 24px info button and the shared 7px wrapper gap, manual and catalogue
   description fields now use exactly the same flex sizing rather than approximated calc widths. */
.quote-line-manual-draft .quote-product-description-wrap{
  position:relative !important;
  display:flex !important;
  align-items:flex-start !important;
  gap:7px !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.quote-line-manual-draft .quote-product-description-wrap::after{
  content:none !important;
  display:none !important;
}
.quote-line-manual-draft .quote-product-description-wrap .manual-draft-description{
  display:block !important;
  flex:1 1 auto !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
.quote-line-manual-draft .quote-manual-info-wrap{
  position:relative !important;
  flex:0 0 auto !important;
  margin-top:2px !important;
}
.quote-line-manual-draft .quote-manual-info-button{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  padding:0 !important;
}

/* ZoneQuoter v0.16.32 — saved + staged Manual rows now use the real catalogue info slot.
   Reset all earlier manual width approximations so the shared flex wrapper is authoritative. */
.quote-line-manual-draft .quote-product-description-wrap,
.quote-line:not(.quote-line-heading) .quote-product-description-wrap{
  display:flex !important;
  align-items:flex-start !important;
  gap:7px !important;
  width:100% !important;
  box-sizing:border-box !important;
}
.quote-line-manual-draft .quote-product-description-wrap::after,
.quote-line:not(.quote-line-heading) .quote-product-description-wrap::after{
  content:none !important;
  display:none !important;
}
.quote-line-manual-draft .quote-product-description-wrap > textarea,
.quote-line:not(.quote-line-heading) .quote-product-description-wrap > textarea{
  flex:1 1 auto !important;
  width:auto !important;
  max-width:none !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
.quote-line-manual-draft .quote-product-info-wrap,
.quote-line:not(.quote-line-heading) .quote-product-info-wrap{
  flex:0 0 auto !important;
}
.quote-manual-info-text{
  color:#344054;
  font-size:12px;
  line-height:1.4;
  white-space:nowrap;
}

/* ZoneQuoter v0.16.33 — centre product info icons vertically with supplier pills */
.quote-lines-table .quote-product-description-wrap{
  align-items:center !important;
}
.quote-lines-table .quote-product-info-wrap,
.quote-lines-table .quote-manual-info-wrap{
  margin-top:0 !important;
  align-self:center !important;
}
.quote-lines-table .quote-product-info-button{
  vertical-align:middle !important;
}


/* ZoneQuoter v0.16.35 — Quantity exactly matches Unit Cost / Unit Sell / Margin height */
.quote-lines-table input.quote-number-input.qty-input{
  height:36px !important;
  min-height:36px !important;
  max-height:36px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  line-height:34px !important;
  box-sizing:border-box !important;
}

/* ZoneQuoter v0.16.36 — Product Information popovers always render above quote rows */
.quote-lines-table tbody tr{
  position:relative !important;
  z-index:1;
}
.quote-lines-table tbody tr:has(.quote-product-info-wrap[open]){
  z-index:1000 !important;
}
.quote-lines-table .quote-product-info-wrap{
  position:relative !important;
  z-index:2 !important;
}
.quote-lines-table .quote-product-info-wrap[open]{
  z-index:1001 !important;
}
.quote-lines-table .quote-product-info-wrap[open] .quote-product-info-popover{
  z-index:1002 !important;
  isolation:isolate;
}


/* ZoneQuoter v0.16.41 — unified History tabs */
.quote-history-tabs-block .quote-history-tabs{
  margin-top:0;
}
.quote-history-tabs-block .quote-history-tab-panels{
  margin-top:0;
}
.quote-history-tabs-block .quote-details-tab-panel{
  padding-top:18px;
}
.quote-history-tabs-block .quote-version-history-list,
.quote-history-tabs-block .quote-email-history-list{
  margin-top:0;
}


/* ZoneQuoter v0.17.0 - Proposals */
.proposal-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.proposal-heading-actions,.proposal-builder-actions,.proposal-form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.proposal-new-panel{max-width:980px}
.proposal-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,420px));gap:16px 22px;padding:18px 0}
.proposal-detail-grid label,.proposal-cover-settings label,.proposal-library-form label,.proposal-dialog label{display:grid;gap:6px;font-weight:600;color:#344054}
.proposal-detail-grid input,.proposal-detail-grid select,.proposal-cover-settings input,.proposal-library-form input,.proposal-library-form textarea,.proposal-dialog input,.proposal-dialog textarea{
  width:100%;box-sizing:border-box;border:1px solid #d0d5dd;border-radius:7px;background:#fff;color:#101828;padding:9px 11px;font:inherit
}
.proposal-form-actions{justify-content:flex-end;margin-top:18px}
.proposal-list{display:grid}
.proposal-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:14px 0;border-top:1px solid #eaecf0}
.proposal-list-row:first-child{border-top:0}
.proposal-list-main{display:grid;grid-template-columns:90px 220px minmax(0,1fr);gap:14px;align-items:center;text-decoration:none;color:#101828}
.proposal-list-main strong{color:#175cd3}
.proposal-list-meta{display:flex;align-items:center;gap:12px;color:#667085;font-size:12px}
.proposal-list-actions{display:flex;gap:6px}
.proposal-list-actions form{margin:0}
.proposal-details-block{margin-bottom:18px}
.proposal-cover-settings{padding:8px 0 4px;max-width:720px}
.proposal-cover-preview{margin-top:18px;min-height:260px;border:1px solid #d0d5dd;border-radius:10px;background:linear-gradient(145deg,#f8fafc,#eef6ff);padding:34px;display:flex;flex-direction:column;justify-content:flex-end;box-sizing:border-box}
.proposal-cover-preview span{color:#0b7fa3;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.proposal-cover-preview strong{font-size:28px;line-height:1.15;color:#17365d;margin:9px 0 7px}
.proposal-cover-preview em{font-style:normal;font-size:17px;color:#344054}
.proposal-cover-preview small{margin-top:22px;color:#667085}
.field-help{font-size:12px;color:#667085}
.proposal-builder-heading{align-items:center}
.proposal-section-list{display:grid;gap:12px;margin-top:16px}
.proposal-section-card{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr) 34px;gap:10px;align-items:start;border:1px solid #d0d5dd;border-radius:9px;background:#fff;padding:14px}
.proposal-section-card.dragging{opacity:.48;border-color:#175cd3}
.proposal-section-drag{cursor:grab;color:#98a2b3;font-size:18px;line-height:34px;text-align:center;user-select:none}
.proposal-section-content{min-width:0}
.proposal-section-title{width:100%;box-sizing:border-box;border:0;border-bottom:1px solid #eaecf0;padding:4px 2px 8px;font-size:17px;font-weight:700;color:#17365d;outline:none}
.proposal-editor-toolbar{display:flex;gap:4px;padding:9px 0 6px}
.proposal-editor-toolbar button{border:1px solid #d0d5dd;background:#fff;border-radius:5px;min-width:32px;height:28px;color:#344054;cursor:pointer}
.proposal-editor-toolbar button:hover{background:#f2f4f7}
.proposal-rich-editor{min-height:125px;border:1px solid #eaecf0;border-radius:7px;padding:12px;outline:none;color:#101828;line-height:1.55;background:#fff}
.proposal-rich-editor:focus{border-color:#84adff;box-shadow:0 0 0 3px rgba(23,92,211,.08)}
.proposal-library-source{display:block;color:#667085;margin-top:7px}
.proposal-page-break-card{background:#f8fafc;align-items:center}
.proposal-page-break-label{display:flex;align-items:center;gap:14px;color:#475467}
.proposal-page-break-label strong{color:#17365d}
.proposal-builder-empty{padding:34px;text-align:center;color:#667085;border:1px dashed #d0d5dd;border-radius:9px;margin-top:16px}
.proposal-dialog{width:min(760px,calc(100vw - 40px));border:0;border-radius:12px;padding:22px;box-shadow:0 20px 60px rgba(16,24,40,.22)}
.proposal-dialog::backdrop{background:rgba(16,24,40,.4)}
.proposal-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.proposal-dialog-head h2{margin:0 0 4px}
.proposal-dialog-head p{margin:0;color:#667085}
.proposal-dialog-head>button{border:0;background:transparent;font-size:24px;cursor:pointer;color:#667085}
.proposal-library-picker{max-height:520px;overflow:auto}
.proposal-library-pick-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid #eaecf0}
.proposal-library-pick-row:first-child{border-top:0}
.proposal-library-pick-row div{display:grid;gap:3px}
.proposal-library-pick-row span,.proposal-library-item summary span{font-size:11px;text-transform:uppercase;color:#667085;font-weight:700}
.proposal-library-create{margin-bottom:18px}
.proposal-library-create>summary{cursor:pointer;font-weight:700;color:#17365d}
.proposal-library-form{padding-top:14px}
.proposal-library-fields{display:grid;grid-template-columns:1fr 220px;gap:16px;margin-bottom:14px}
.proposal-library-list{display:grid;gap:8px}
.proposal-library-item{border:1px solid #eaecf0;border-radius:8px;padding:0 14px 14px}
.proposal-library-item>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:14px 0}
.proposal-library-item>summary div{display:grid;gap:3px}
.proposal-library-item>summary small{color:#667085}
.proposal-active-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start;margin-top:10px}
.proposal-active-check input{width:auto}
@media(max-width:900px){
  .proposal-detail-grid,.proposal-library-fields{grid-template-columns:1fr}
  .proposal-list-row{grid-template-columns:1fr}
  .proposal-list-main{grid-template-columns:80px 1fr}
  .proposal-list-main span:last-child{grid-column:1/-1}
  .proposal-page-heading{display:grid}
}



/* ZoneQuoter v0.17.2 - Proposals main page mirrors Quotes layout */
.proposal-quote-style-row{
  grid-template-columns:28px minmax(0,1fr) auto;
}
.proposal-list-select-spacer{
  width:28px;
  min-width:28px;
}
.proposal-list-main-quote-style{
  display:grid;
  grid-template-columns:110px minmax(220px,1.6fr) minmax(120px,.8fr) 100px;
  gap:18px;
  align-items:center;
  min-width:0;
}
.proposal-list-main-quote-style .quote-list-number,
.proposal-list-main-quote-style .quote-list-customer{
  display:grid;
  gap:3px;
  min-width:0;
}
.proposal-list-main-quote-style .quote-list-number strong{
  color:#175cd3;
}
.proposal-list-main-quote-style .quote-list-number span,
.proposal-list-main-quote-style .quote-list-customer span,
.proposal-list-main-quote-style .quote-list-reference span,
.proposal-list-main-quote-style .quote-list-date span{
  color:#667085;
  font-size:12px;
}
.proposal-list-main-quote-style .quote-list-customer strong,
.proposal-list-main-quote-style .quote-list-customer span,
.proposal-list-main-quote-style .quote-list-reference span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:980px){
  .proposal-list-main-quote-style{
    grid-template-columns:100px minmax(0,1fr);
  }
  .proposal-list-main-quote-style .quote-list-reference,
  .proposal-list-main-quote-style .quote-list-date{
    grid-column:2;
  }
}




/* ZoneQuoter v0.17.4 - Proposals settings aligned with General / PSA */
.proposal-module-toggle{
  display:flex;
  align-items:flex-start;
  gap:12px;
  cursor:pointer;
}
.proposal-module-toggle input{
  width:18px;
  height:18px;
  margin:2px 0 0;
  flex:0 0 auto;
}
.proposal-module-toggle span{
  display:grid;
  gap:4px;
}
.proposal-module-toggle strong{
  color:#101828;
}
.proposal-module-toggle small{
  color:#667085;
  line-height:1.4;
}
.proposal-cover-template-status{
  display:grid;
  gap:10px;
}
.proposal-cover-template-status>div{
  display:grid;
  gap:4px;
}
.proposal-cover-template-status span{
  color:#667085;
  font-size:12px;
}
.proposal-cover-template-status strong{
  color:#101828;
  font-size:13px;
}
.proposal-cover-upload-form{
  margin-top:4px;
}


/* ZoneQuoter v0.17.16 — Products UX */
@media (min-width:901px){
  .picker-filters{
    max-height:calc(100vh - 36px);
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-gutter:stable;
  }
}
.results-head{
  align-items:center;
}
.results-head-summary{
  min-width:0;
}
.results-sort-form{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  flex:0 0 auto;
  margin:0;
}
.results-sort-form label{
  color:#667085;
  font-size:12px;
  font-weight:650;
  white-space:nowrap;
}
.results-sort-select{
  min-width:180px;
  height:36px;
  padding:0 34px 0 10px;
  border:1px solid #d0d5dd;
  border-radius:7px;
  background:#fff;
  color:#344054;
  font:inherit;
  font-size:13px;
}
.product-detail-offer-actions{
  margin-top:18px;
}
.product-detail-add-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-height:38px;
  padding:0 14px;
  border-radius:7px;
  background:#175cd3;
  color:#fff;
  font-size:13px;
  font-weight:650;
  line-height:1;
  text-decoration:none;
}
.product-detail-add-button span{
  font-size:18px;
  font-weight:500;
  line-height:1;
}
.product-detail-add-button:hover{
  background:#1849a9;
  color:#fff;
}
@media(max-width:760px){
  .results-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .results-sort-form{
    width:100%;
    justify-content:space-between;
  }
  .results-sort-select{
    flex:1 1 auto;
    min-width:0;
  }
  .product-detail-add-button{
    width:100%;
    box-sizing:border-box;
  }
}


/* ZoneQuoter v0.17.17 — horizontal Products refine panel */
.results-layout{
  display:block;
}
.picker-refine-horizontal{
  background:#fff;
  border-radius:14px;
  padding:20px 22px 22px;
  margin-bottom:22px;
  box-shadow:0 2px 10px #0000000a;
}
.picker-refine-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:15px;
}
.picker-refine-head h3{
  margin:0 0 4px;
  font-size:18px;
}
.picker-refine-head p{
  margin:0;
  color:#667085;
  font-size:13px;
}
.picker-refine-form{
  display:grid;
  grid-template-columns:minmax(210px,1.25fr) repeat(4,minmax(145px,1fr)) minmax(170px,.9fr);
  gap:14px;
  align-items:start;
}
.picker-refine-field{
  display:grid;
  gap:6px;
  min-width:0;
  margin:0;
  color:#475467;
  font-size:12px;
  font-weight:650;
}
.picker-refine-field > span,
.picker-refine-field label > span{
  display:block;
  margin-bottom:6px;
}
.picker-refine-field select[multiple]{
  width:100%;
  min-height:126px;
  padding:5px 6px;
}
.picker-refine-search input{
  height:38px;
  box-sizing:border-box;
}
.picker-refine-final{
  align-content:start;
}
.picker-refine-final > label:first-child{
  display:grid;
  gap:0;
}
.picker-refine-final .check-row{
  margin:14px 0 12px;
  font-weight:500;
}
.picker-refine-final .filter-button{
  min-height:38px;
}
.picker-results-section{
  min-width:0;
}
.picker-results{
  width:100%;
}
@media(max-width:1350px){
  .picker-refine-form{
    grid-template-columns:repeat(3,minmax(180px,1fr));
  }
}
@media(max-width:900px){
  .picker-refine-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:620px){
  .picker-refine-horizontal{
    padding:18px;
  }
  .picker-refine-form{
    grid-template-columns:1fr;
  }
  .picker-refine-field select[multiple]{
    min-height:112px;
  }
}


/* ZoneQuoter v0.17.19 — results search beside Sort by */
.results-head{
  align-items:flex-end;
  gap:20px;
}
.results-head-actions{
  display:flex;
  align-items:flex-end;
  gap:10px;
  flex:none;
}
.results-search-form,
.results-sort-form{
  display:grid;
  grid-template-columns:1fr;
  gap:5px;
  width:220px;
  margin:0;
}
.results-search-form label,
.results-sort-form label{
  color:#475467;
  font-size:12px;
  font-weight:650;
  line-height:1.2;
}
.results-head-control,
.results-sort-select{
  width:100%;
  min-width:0;
  height:38px;
  box-sizing:border-box;
  padding:8px 10px;
}
@media(max-width:760px){
  .results-head{
    flex-direction:column;
    align-items:stretch;
  }
  .results-head-actions{
    width:100%;
    flex-wrap:wrap;
  }
  .results-search-form,
  .results-sort-form{
    width:min(100%,220px);
    flex:1 1 200px;
  }
}


/* ZoneQuoter v0.17.20 — evenly distribute Refine fields across full card width */
.picker-refine-form{
  display:flex;
  width:100%;
  gap:14px;
  align-items:flex-start;
}
.picker-refine-form > .picker-refine-field,
.picker-refine-form > .picker-refine-actions{
  flex:1 1 0;
  min-width:0;
  width:auto;
}
.picker-refine-form .filter-input,
.picker-refine-form select{
  width:100%;
  box-sizing:border-box;
}
@media(max-width:1100px){
  .picker-refine-form{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:760px){
  .picker-refine-form{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:520px){
  .picker-refine-form{
    grid-template-columns:1fr;
  }
}


/* ZoneQuoter v0.17.21 — contain the complete product-results area in a white card */
.picker-results-card{
  background:#fff;
  border:1px solid #e4e7ec;
  border-radius:14px;
  padding:20px;
  box-sizing:border-box;
  width:100%;
  overflow:visible;
}
.picker-results-card .picker-results{
  width:100%;
  min-width:0;
}


/* ZoneQuoter v0.17.22 — match Refine typography to the category narrowing cards */
.picker-refine-head h3{
  font-size:18px;
  line-height:1.3;
  margin:0 0 4px;
}
.picker-refine-head p{
  font-size:14px;
  line-height:1.45;
  margin:0;
}


/* v0.17.22 final typography alignment */
.picker-refine-head h3{
  font-size:20px;
  line-height:normal;
  margin:0 !important;
}
.picker-refine-head p{
  font-size:inherit;
  line-height:normal;
  margin:4px 0 0 !important;
  color:#667085;
}


/* ZoneQuoter v0.18.0 — secure customer proposal portal */
.proposal-email-dialog{width:min(720px,calc(100vw - 32px))}
.proposal-email-dialog textarea{resize:vertical;min-height:190px}
.proposal-email-error{margin-bottom:16px}
.proposal-public-body{margin:0;background:#f2f4f7;color:#101828;font-family:Inter,Segoe UI,Arial,sans-serif}
.proposal-public-shell{width:min(1040px,calc(100% - 32px));margin:40px auto 64px}
.proposal-public-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px}
.proposal-public-header h1{margin:5px 0 6px;font-size:32px}
.proposal-public-header p{margin:0;color:#667085}
.proposal-public-kicker{font-size:13px;font-weight:700;color:#475467;text-transform:uppercase;letter-spacing:.04em}
.proposal-public-card,.proposal-public-actions-card{background:#fff;border:1px solid #e4e7ec;border-radius:14px;padding:24px;box-sizing:border-box;margin-bottom:18px}
.proposal-public-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.proposal-public-summary div{display:flex;flex-direction:column;gap:5px}
.proposal-public-summary span{font-size:12px;color:#667085}
.proposal-public-summary strong{font-size:14px}
.proposal-public-section+.proposal-public-section{border-top:1px solid #eaecf0;margin-top:26px;padding-top:26px}
.proposal-public-section h2{font-size:21px;margin:0 0 12px}
.proposal-public-content{color:#344054;line-height:1.65}
.proposal-public-divider{border:0;border-top:1px dashed #d0d5dd;margin:28px 0}
.proposal-public-actions-card{display:flex;align-items:center;justify-content:flex-end;gap:10px;position:sticky;bottom:16px;box-shadow:0 8px 24px rgba(16,24,40,.08)}
.proposal-public-actions-card form{margin:0}
.proposal-public-final{display:flex;flex-direction:column;gap:3px;margin-left:auto}
.proposal-public-final span{font-size:13px;color:#667085}
.proposal-public-notice{padding:14px 18px;border-radius:12px;margin-bottom:18px;background:#ecfdf3;border:1px solid #abefc6;color:#067647}
.proposal-approve-button{min-width:150px}
.proposal-decline-button{min-width:90px}
.proposal-public-invalid{max-width:700px;margin-top:100px}
@media(max-width:720px){
  .proposal-public-shell{margin-top:22px}
  .proposal-public-header{flex-direction:column}
  .proposal-public-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proposal-public-actions-card{flex-wrap:wrap;justify-content:stretch}
  .proposal-public-actions-card>a,.proposal-public-actions-card form,.proposal-public-actions-card button{width:100%;box-sizing:border-box;text-align:center}
}
