:root{--navy:#1f4e78;--bg:#f5f8fc;--card:#fff;--line:#d9e2f3;--blue:#d9eaf7;--green:#e2f0d9;--red:#fce4d6;--muted:#667085;--text:#101828}
*{box-sizing:border-box}
html{overflow-y:scroll;scrollbar-gutter:stable}
body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;padding:env(safe-area-inset-top) 12px calc(190px + env(safe-area-inset-bottom))}
.app{max-width:640px;margin:0 auto}
header{position:sticky;top:0;background:var(--bg);z-index:10;padding:12px 0 8px}
h1{margin:0 0 8px;font-size:25px;color:var(--navy)}
.headerTop{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cloudStatus{display:flex;align-items:center;gap:6px}
.cloudStatus button{width:auto;margin:0;padding:8px 10px;font-size:12px;border-radius:12px;white-space:nowrap}
.cloudStatus .statusText{font-size:11px;color:var(--muted);font-weight:900;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
h2{margin:4px 0 10px;font-size:18px;color:var(--navy)}
.card{background:var(--card);border-radius:18px;padding:14px;margin:10px 0;box-shadow:0 1px 6px rgba(16,24,40,.08)}
.tabs{display:flex;gap:6px;align-items:center;width:100%}
button{width:100%;border:0;border-radius:14px;padding:14px 10px;font-size:16px;font-weight:800;background:var(--navy);color:white;margin-top:10px}
button.secondary{background:#e9eef5;color:var(--text)}
button.danger{background:#9b2c2c}
.tabs .tab{appearance:none;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;flex:1 1 0;width:0;min-width:0;background:#e9eef5;color:var(--text);font-size:13px;line-height:1.05;padding:0 4px;margin:0;height:40px;min-height:40px;white-space:normal;overflow-wrap:anywhere;text-align:center}
.tab.active{background:var(--navy);color:white}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.retainingWallTypeRow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:start}
.retainingWallTypeRow.isComposite{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(130px,.8fr)}
.retainingWallTypeRow>div{min-width:0}
.retainingWallTypeRow .optionToggle{gap:6px;margin-top:4px}
.retainingWallTypeRow .optionToggle button{padding:10px 8px;font-size:14px;min-height:40px}
.extrasGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.extrasGrid > div{min-width:0}
@media(max-width:420px){.extrasGrid{grid-template-columns:1fr 1fr;gap:8px}.extrasGrid select,.extrasGrid input{font-size:15px;padding:10px 8px}}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin:8px 0 4px}
input,select,textarea{width:100%;border:2px solid var(--line);border-radius:13px;background:white;padding:12px 10px;font-size:17px}
textarea{min-height:74px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--navy)}
.toggle{display:flex;align-items:center;font-weight:700;margin:8px 0;font-size:15px}
.toggle input{width:auto;margin-right:8px;transform:scale(1.18)}
.quoteTypes{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.tile{border:2px solid var(--line);border-radius:15px;background:white;padding:14px 8px;text-align:center;font-weight:900;font-size:14px}
.tile.active{border-color:var(--navy);background:var(--blue)}
.disabledField{opacity:.48}
.disabledField select,.disabledField input{background:#eef1f5;color:#667085}
.wallBayRows{display:grid;gap:8px;margin-top:6px}
.wallBayRow{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:8px;align-items:end}
.wallRowActions{margin-top:8px}
.wallRowActions button,.wallRowRemove{width:auto;margin:0}
.wallSplitPosts{margin-top:12px}
.wallSplitPosts .hint{margin:6px 0 0}
.retainingWallControls{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;row-gap:16px;align-items:start}
.retainingWallControlsColumn{display:grid;grid-template-rows:auto auto;row-gap:16px;min-width:0}
.retainingWallControls .optionToggle{gap:8px}
.retainingWallControls .optionToggle button{font-size:14px;padding:11px 8px}
.retainingWallRemovalGroup{min-width:0}
.removalInfoGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%;min-height:65px}
.removalInfoGrid.hide{display:grid;visibility:hidden;pointer-events:none}
.extrasGrid .removalInfoGrid.hide{display:none;visibility:visible}
.removalInfoGrid label{font-size:11px}
.removalInfoGrid input{font-size:13px;padding:9px 6px}
.fieldError{margin-top:6px;color:#9b2c2c;font-size:12px;font-weight:900}
.readonlyCalc{background:#eef7ff;border-color:#9cc6e8;font-weight:900;color:var(--navy)}
@media(max-width:620px){.retainingWallTypeRow,.retainingWallTypeRow.isComposite{grid-template-columns:1fr}}
@media(max-width:420px){.wallBayRow{grid-template-columns:1fr}.wallBayRow label{margin-top:3px}.retainingWallControls{column-gap:10px;row-gap:12px}.retainingWallControlsColumn{row-gap:12px}.retainingWallControls .optionToggle{gap:5px}.retainingWallControls .optionToggle button{font-size:11px;padding:9px 3px}.removalInfoGrid{gap:5px;min-height:60px}.removalInfoGrid input{font-size:12px;padding:8px 5px}}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kpi{background:white;border:1px solid var(--line);border-radius:14px;padding:12px;text-align:center}
.kpi .label{font-size:12px;font-weight:800;color:var(--muted);margin:0}
.kpi .value{font-size:21px;font-weight:900;color:var(--navy);margin-top:3px}
table{width:100%;border-collapse:collapse;background:white;border-radius:14px;overflow:hidden;margin-top:8px}
th{background:var(--navy);color:white;text-align:left;font-size:12px;padding:8px 6px}
td{border-bottom:1px solid var(--line);font-size:13px;padding:8px 6px;vertical-align:top}
th.num{text-align:right}
td.num{text-align:right;white-space:nowrap}
.hide{display:none}
.hint{font-size:12px;color:var(--muted);line-height:1.35}
.badge{display:inline-block;border-radius:999px;background:var(--blue);padding:5px 10px;font-weight:900;font-size:12px}
.environmentBadge{position:fixed;top:calc(10px + env(safe-area-inset-top));right:12px;z-index:120;background:#d00;color:#fff;font-size:12px;font-weight:900;line-height:1;padding:6px 9px;border-radius:8px;box-shadow:0 2px 8px rgba(16,24,40,.28);letter-spacing:0}
.warn{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px;font-size:13px;line-height:1.35}
.wallWarnings{background:#fffaf0;border:1px solid #f2c879;border-radius:8px;padding:7px 9px;font-size:12px;line-height:1.3;margin-bottom:8px}

.livePrice{
  position:sticky;
  top:68px;
  z-index:9;
  background:linear-gradient(135deg,#1f4e78,#2f6ea3);
  color:#fff;
  border-radius:18px;
  padding:14px;
  margin:10px 0;
  box-shadow:0 4px 14px rgba(31,78,120,.25)
}
.livePrice .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.livePrice .small{font-size:12px;font-weight:800;opacity:.88}
.livePrice .big{font-size:26px;font-weight:950;line-height:1.05;margin-top:2px}
.livePrice .sub{font-size:12px;opacity:.92;margin-top:8px;line-height:1.3}
.minimumChargeNotice{margin-top:4px;color:#ff4d4f;font-size:12px;font-weight:950;line-height:1.2}
.squareMetreRate{margin-top:3px;font-size:11px;font-weight:900;opacity:.78}
.groupTitle{display:flex;align-items:center;justify-content:space-between;margin-top:4px}
.groupTitle span{font-size:12px;color:var(--muted);font-weight:800}
input.keyField,select.keyField{background:white;border-color:var(--line)}
.pricePulse{animation:pulsePrice .25s ease}
.colourPick{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.colourNote{font-size:12px;color:var(--muted);font-weight:700;margin-top:5px;line-height:1.3}

.gateToggle{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.gateToggle button{margin:0;padding:11px 8px;background:#e9eef5;color:var(--text);font-size:14px}
.gateToggle button.active{background:var(--navy);color:#fff}
.optionToggle{display:grid;gap:8px;margin-top:4px}
.optionToggle.two{grid-template-columns:repeat(2,1fr)}
.optionToggle.three{grid-template-columns:repeat(3,1fr)}
.optionToggle button{margin:0;padding:11px 8px;background:#e9eef5;color:var(--text);font-size:14px}
.optionToggle button.active{background:var(--navy);color:#fff}
.quickToggle{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:4px}
.quickToggle.four{grid-template-columns:repeat(4,1fr)}
.quickToggle.five{grid-template-columns:repeat(5,1fr)}
.quickToggle button{margin:0;padding:10px 6px;background:#e9eef5;color:var(--text);font-size:13px}
.quickToggle button.active{background:var(--navy);color:#fff}
@media(max-width:420px){.quickToggle.four{gap:4px}.quickToggle.four button{font-size:11px;padding:9px 3px}}
@keyframes pulsePrice{from{transform:scale(.99);opacity:.88}to{transform:scale(1);opacity:1}}



.materialActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.materialActions.single{grid-template-columns:1fr}
.materialActions button{margin:0}
.collapsibleHeader{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.collapseHint{font-size:12px;color:var(--muted);font-weight:800}
#dynamicExtras.collapsed{display:none}
#materialsPanel{scroll-margin-top:18px;scroll-margin-bottom:240px}
#materialsPanel{margin-bottom:28px}

.stickyPdf{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(245,248,252,.96);backdrop-filter:blur(8px);padding:8px 12px calc(8px + env(safe-area-inset-bottom));box-shadow:0 -4px 14px rgba(16,24,40,.12)}
.stickyPdf .inner{max-width:640px;margin:0 auto}
.stickyPdf .livePrice{position:static;top:auto;margin:0 0 8px;padding:10px 14px;border-radius:16px;box-shadow:none;text-align:center}
.stickyPdf .livePrice .row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.18fr);gap:12px;align-items:center}
.stickyPdf .livePrice .timeBlock,.stickyPdf .livePrice .priceBlock{text-align:center}
.stickyPdf .livePrice .priceBlock{position:relative}
.removeMinimumSellControl{position:relative;z-index:4;display:inline-flex;align-items:center;justify-content:center;gap:4px;width:auto;margin:4px auto 0;color:#fff;font-size:9px;font-weight:900;line-height:1;opacity:.92;white-space:nowrap;cursor:pointer;pointer-events:auto;user-select:none}
.removeMinimumSellControl input{width:12px;height:12px;margin:0;padding:0;accent-color:#fff;cursor:pointer;pointer-events:auto}
.removeMinimumSellControl span{display:inline-block}
.stickyPdf .livePrice .big{font-size:28px}
.stickyPdf .livePrice .small{font-size:12px}
.stickyPdf .priceBlock .big + .small{display:none}
.stickyPdf .livePrice .timeBig{font-size:22px;font-weight:950;line-height:1.05;margin-top:2px}
.stickyPdf .livePrice .metaUnder{font-size:12px;font-weight:900;opacity:.95;margin-top:4px}
.stickyPdf .livePrice .sub{display:none}
.quoteHealth{display:grid;grid-template-columns:1.05fr 1.35fr .8fr;gap:6px;align-items:center;margin:8px 0 10px;padding:7px 8px;border-radius:10px;background:#eef7ff;border:1px solid var(--line);font-size:11px;font-weight:800;line-height:1.2;text-align:left}
.quoteHealth.hide{display:none}
.quoteHealth div{min-width:0}
.quoteHealth span{display:block;opacity:.82}
.quoteHealth b{font-weight:950}
.quoteHealth.strong{background:rgba(226,240,217,.95);border-color:#9ccc8a;color:#175c2c}
.quoteHealth.acceptable{background:rgba(255,244,214,.96);border-color:#f2bd4a;color:#805000}
.quoteHealth.underpriced{background:rgba(252,228,214,.97);border-color:#df8a6e;color:#9b2c2c}
@media(max-width:420px){.quoteHealth{grid-template-columns:1fr;gap:3px;text-align:center;font-size:10px;padding:6px 8px}}
.stickyPdf button{margin:0;box-shadow:0 3px 12px rgba(31,78,120,.22)}

.unsavedIndicator{margin-top:6px;font-size:12px;font-weight:900;color:#9b2c2c}
.fieldChanged{animation:fieldFlash .9s ease}
@keyframes fieldFlash{0%{box-shadow:0 0 0 3px rgba(31,78,120,.24);border-color:var(--navy)}100%{box-shadow:none}}
.savedSearchChips,.savedSortChips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 7px}
.savedSearchChips button,.savedSortChips button{width:auto;margin:0;padding:6px 9px;border-radius:999px;background:#e9eef5;color:var(--text);font-size:12px;line-height:1;font-weight:900}
.savedSearchChips button.active,.savedSortChips button.active{background:var(--navy);color:white}
.savedSearchBox{display:flex;gap:8px;align-items:center}
.savedSearchBox input{min-width:0;flex:1}
.savedSearchBox button{width:auto;margin:0;padding:11px 12px;font-size:13px;white-space:nowrap}
.savedQuoteList{border-top:1px solid var(--line);margin-top:7px}
.savedQuoteRow{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:4px 0;cursor:pointer}
.savedQuoteRow:hover,.savedQuoteRow:focus{background:#eef7ff;outline:none}
.savedQuoteMain{min-width:0;overflow:hidden}
.savedQuoteSummary{display:grid;grid-template-columns:max-content max-content max-content max-content minmax(0,1fr);align-items:center;column-gap:6px;min-width:0;font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden}
.savedQuoteNumber,.savedQuoteCustomer{font-weight:900;color:var(--text);overflow:visible;text-overflow:clip}
.savedQuoteSecondary{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}
.savedQuoteMeta{min-width:0;overflow:hidden;text-overflow:ellipsis}
.savedQuotePrice{font-weight:900;color:var(--navy)}
.savedQuoteStatus{display:inline-flex;align-items:center;justify-content:center;min-width:42px;border-radius:999px;padding:2px 7px;font-size:10px;font-weight:900;line-height:1.2;white-space:nowrap}
.statusOpen{background:#eef2f7;color:#475467;border:1px solid #d0d5dd}
.statusWon{background:#dcfce7;color:#166534;border:1px solid #86efac}
.statusLost{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}
.savedQuoteDivider{color:var(--muted);flex:0 0 auto}
.savedQuoteActions{display:flex;gap:5px;align-items:center}
.savedQuoteActions button{width:auto;margin:0;padding:5px 7px;font-size:11px;border-radius:8px;line-height:1.1}
.savedQuoteActions .statusBtn{background:#fff;color:#475467;border:1px solid #d0d5dd}
.savedQuoteActions .statusBtn.statusWon{background:#fff;color:#166534;border-color:#86efac}
.savedQuoteActions .statusBtn.statusLost{background:#fff;color:#991b1b;border-color:#fecaca}
.savedQuoteActions .statusBtn.active.statusOpen{background:#667085;color:#fff;border-color:#667085}
.savedQuoteActions .statusBtn.active.statusWon{background:#16a34a;color:#fff;border-color:#16a34a}
.savedQuoteActions .statusBtn.active.statusLost{background:#dc2626;color:#fff;border-color:#dc2626}
.savedQuoteDetails{display:none;position:absolute;left:0;top:calc(100% - 2px);z-index:40;width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(16,24,40,.18);padding:8px;font-size:12px;line-height:1.3}
.savedQuoteDetails div{display:grid;grid-template-columns:82px 1fr;gap:8px;padding:2px 0}
.savedQuoteDetails b{color:var(--muted)}
.savedQuoteDetails span{min-width:0;overflow-wrap:anywhere}
.savedQuoteRow:hover .savedQuoteDetails:not(.isExpanded),.savedQuoteRow:focus .savedQuoteDetails:not(.isExpanded){display:block}
@media(max-width:520px){
 .savedQuoteRow{grid-template-columns:1fr auto;gap:6px;padding:5px 0;align-items:start}
 .savedQuoteSummary{display:flex;flex-wrap:wrap;gap:3px 5px;max-height:32px;white-space:normal;overflow:hidden}
 .savedQuoteNumber,.savedQuoteCustomer{flex:0 0 auto}
 .savedQuoteSecondary{display:flex;gap:5px;min-width:0;max-width:100%;overflow:hidden}
 .savedQuoteMeta{flex:0 1 auto}
 .savedQuoteType{max-width:150px}
 .savedQuoteActions{padding-top:1px}
 .savedQuoteRow:not(.expanded) .savedQuoteActions{display:none}
 .savedQuoteActions{grid-column:1 / -1;flex-wrap:wrap}
 .savedQuoteActions button{padding:5px 6px;font-size:10px}
 .savedQuoteDetails{position:static;width:100%;box-shadow:none;margin-top:5px}
 .savedQuoteRow:hover .savedQuoteDetails:not(.isExpanded),.savedQuoteRow:focus .savedQuoteDetails:not(.isExpanded){display:none}
 .savedQuoteRow.expanded .savedQuoteDetails.isExpanded{display:block}
}
.marginTable td:first-child{font-weight:700;color:var(--muted)}
.marginGood{color:#137333;font-weight:900}
.marginWarn{color:#9b2c2c;font-weight:900}
.modalBackdrop{position:fixed;inset:0;z-index:80;background:rgba(16,24,40,.48);display:flex;align-items:center;justify-content:center;padding:18px}
.modalBox{width:min(420px,100%);background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(16,24,40,.35);padding:18px}
.modalBox h2{margin-top:0}
.modalBox p{margin:0 0 12px}
.modalActions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}
.modalActions button{margin:0}
.modalActions.two{grid-template-columns:1fr 1fr}

.authStatus{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#eef7ff;border:1px solid #9cc6e8;border-radius:14px;padding:10px;margin-top:10px}
.authStatus .statusText{font-size:12px;color:var(--muted);font-weight:800;line-height:1.3}
.authStatus button{margin:0;width:auto;padding:10px 12px;font-size:13px;white-space:nowrap}
.configWarn{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:10px;font-size:13px;line-height:1.35;margin-top:8px}

.rateManagerGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rateManagerTabs{display:flex;gap:6px;margin:10px 0 12px}
.rateManagerTabs button{flex:1;margin:0}
.rateManagerTabs button.active{background:var(--navy);color:white}
.rateActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.rateActions button{margin:0}
.rateSection{border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;margin-top:16px}
.materialRateSection{padding:0;overflow:hidden}
.rateSectionToggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0;padding:11px 14px;border-radius:0;background:#fff;color:var(--navy);font-size:16px;text-align:left}
.materialRateSectionBody{padding:0 14px 14px}
.materialRateSection.collapsed .materialRateSectionBody{display:none}
.rateSectionHeader h2{margin:0}
.rateSectionHeader .hint{margin:0}
.rateSubsection{margin-top:12px}
.rateSubsection h3{margin:0 0 4px;font-size:15px}
.ratePreview{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:8px}
.ratePreview table{margin:0;border-radius:0}
.ratePreview th{position:sticky;top:0}
.ratePreview .rateGroupRow td{background:#eef7ff;color:var(--ink);font-weight:900;text-align:left}
.costEditor{max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:8px}
.costEditor table{margin:0;border-radius:0}
.costEditor th{position:sticky;top:0}
.costEditor input{font-size:14px;padding:8px;border-radius:9px;text-align:right}
#rateManager .costEditor input{font-size:13px;padding:6px 7px;border-radius:7px;min-height:32px}
#rateManager .compactRateTable input{max-width:110px}
.moneyInput{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px}
.moneyInput span{font-weight:900;color:var(--muted)}
.csvPreview{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:8px}
.csvPreview table{margin:0;border-radius:0}
.csvPreview th{position:sticky;top:0}
.rateHistoryRow{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:9px 0}
.rateHistoryRow:last-child{border-bottom:0}
.rateHistoryRow .meta{font-size:12px;color:var(--muted);font-weight:800;line-height:1.35}
.rateHistoryRow button{width:auto;margin:0;padding:9px 10px;font-size:12px}
@media(max-width:520px){.rateManagerGrid,.rateActions{grid-template-columns:1fr}}

.breakdownTable{width:100%;border-collapse:collapse;background:white;border-radius:12px;overflow:hidden;margin-top:8px}
.breakdownTable th{background:var(--navy);color:white;text-align:left;font-size:12px;padding:7px 6px}
.breakdownTable td{border-bottom:1px solid var(--line);font-size:13px;padding:7px 6px}
.breakdownTable td.num{text-align:right;white-space:nowrap}
.breakdownTable .section td{font-weight:900;background:#eef7ff}
.breakdownTable .totalCell{color:#d00;font-weight:900}
.breakdownTable .zero{color:#98a2b3}

@media print{.stickyPdf{display:none!important}}
.materialCount{font-size:12px;color:var(--muted);font-weight:800;margin-top:6px}
.labourBreakdown{margin-top:12px}
.labourBreakdown h3{margin:0 0 6px;font-size:15px;color:var(--navy)}
.labourBreakdown table{margin-top:0}
.labourBreakdown th.num,.labourBreakdown td.num{text-align:right;white-space:nowrap}
.wallQuoteOutput{margin-top:12px}
.wallQuoteOutput{overflow-wrap:anywhere}
.wallOutputGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.wallOutputGrid div{border:1px solid var(--line);border-radius:12px;background:#fff;padding:9px}
.wallOutputGrid span{display:block;font-size:11px;font-weight:900;color:var(--muted);line-height:1.25}
.wallOutputGrid b{display:block;margin-top:3px;font-size:15px;color:var(--navy)}
.wallQuoteOutput .wallOutputGrid{display:none}
.wallBreakdown{margin-top:12px}
.wallBreakdown h3{margin:0 0 6px;font-size:15px;color:var(--navy)}
.wallBreakdown table{margin-top:0}
.wallSummaryTable{margin-top:8px}
.wallSummaryTable th{font-size:12px}
.wallSummaryTable td{font-size:13px}
.wallPriceBreakdownSection{margin-top:12px}
.wallPriceBreakdown{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.wallInternalSummary{margin-top:12px}
.wallInternalSummary h3,.wallPriceBreakdown h3{margin:0 0 6px;font-size:15px;color:var(--navy)}
@media(max-width:420px){.wallOutputGrid{grid-template-columns:1fr}}

.manualQuoteSheet{overflow:visible;border:1px solid var(--line);border-radius:12px;background:#fff;margin-top:8px;max-width:100%}
.manualQuoteTable{width:100%;min-width:0;margin:0;border-radius:0;table-layout:fixed}
.manualQuoteTable th{font-size:11px;line-height:1.15;white-space:normal}
.manualQuoteTable td{padding:4px;border-bottom:1px solid var(--line);vertical-align:middle}
.manualQuoteTable input,.manualQuoteTable select{width:100%;min-width:0;border:1px solid var(--line);border-radius:7px;padding:7px 5px;font-size:13px}
.manualQuoteTable input[type=number]{text-align:right}
.manualQuoteTable td:nth-child(1),.manualQuoteTable th:nth-child(1){width:30%}
.manualQuoteTable td:nth-child(2),.manualQuoteTable th:nth-child(2){width:18%}
.manualQuoteTable td:nth-child(3),.manualQuoteTable th:nth-child(3){width:10%}
.manualQuoteTable td:nth-child(4),.manualQuoteTable th:nth-child(4){width:23%}
.manualQuoteTable td:nth-child(5),.manualQuoteTable th:nth-child(5){width:19%}
.manualAddRowBtn,.manualClearBtn{padding:7px 10px;margin-right:8px}
.manualRowCount{display:inline-block;margin:0}
.manualQuoteTable .manualRightInput{text-align:right}
.manualMarginLabel{text-align:right;color:var(--muted)}
.manualTotalRow td{background:#eef7ff;font-weight:900}
.manualSectionRow td{background:#e9eef5;color:var(--navy);font-weight:950;text-transform:uppercase;letter-spacing:.02em}
@media(max-width:520px){.manualQuoteSheet{margin-left:-4px;margin-right:-4px}.manualQuoteTable th{font-size:9px}.manualQuoteTable td{padding:3px}.manualQuoteTable input,.manualQuoteTable select{font-size:11px;padding:6px 3px}.manualQuoteTable td:nth-child(1),.manualQuoteTable th:nth-child(1){width:31%}.manualQuoteTable td:nth-child(2),.manualQuoteTable th:nth-child(2){width:18%}.manualQuoteTable td:nth-child(3),.manualQuoteTable th:nth-child(3){width:11%}.manualQuoteTable td:nth-child(4),.manualQuoteTable th:nth-child(4){width:22%}.manualQuoteTable td:nth-child(5),.manualQuoteTable th:nth-child(5){width:18%}.manualMarginLabel{font-size:10px}}

@media print{body{background:white;padding:0}.noPrint,header button,.tabs,button{display:none!important}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}}
