.fence-estimator {
  --ink: #18251d;
  --muted: #657069;
  --green: #245c3a;
  --green-dark: #173f28;
  --green-soft: #eaf2ec;
  --cream: #f6f4ee;
  --white: #ffffff;
  --line: #dfe5df;
  --warm: #b86a42;
  --shadow: 0 4px 16px rgba(25, 54, 36, 0.05);
}

@scope (.fence-estimator) {
:root {
  --ink: #18251d;
  --muted: #657069;
  --green: #245c3a;
  --green-dark: #173f28;
  --green-soft: #eaf2ec;
  --cream: #f6f4ee;
  --white: #ffffff;
  --line: #dfe5df;
  --warm: #b86a42;
  --shadow: 0 4px 16px rgba(25, 54, 36, 0.05);
}

* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--ink);
  background: #f5f6f3;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
button, input, select, textarea { font: inherit; }
.topbar {
  display: flex;
  align-items: center;
  gap: 14px;
  min-height: 66px;
  padding: 10px clamp(20px, 4vw, 64px);
  color: white;
  background: var(--green-dark);
  border-bottom: 1px solid #b9d0bc;
}
.brand-mark {
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 8px;
  color: var(--green-dark);
  background: #dcebdc;
  font: 800 19px Georgia, serif;
}
.topbar h1 { margin: 0; font: 600 20px Georgia, serif; letter-spacing: -.01em; }
.mode-nav { display: flex; gap: 7px; margin-left: auto; padding: 4px; border: 1px solid rgba(255,255,255,.2); border-radius: 12px; background: rgba(255,255,255,.07); }
.mode-tab { min-width: 104px; padding: 9px 15px; border: 0; border-radius: 8px; color: #d9e7dc; background: transparent; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.mode-tab:hover { background: rgba(255,255,255,.1); }
.mode-tab.active { color: var(--green-dark); background: #eff5ef; box-shadow: 0 2px 8px rgba(0,0,0,.14); }
.eyebrow { margin: 0; font-size: 12px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; opacity: .82; }
.eyebrow.green { color: var(--green); opacity: 1; }
.local-pill { padding: 7px 11px; border: 1px solid rgba(255,255,255,.25); border-radius: 999px; font-size: 12px; }
.shell { width: min(1580px, calc(100% - 40px)); margin: 0 auto; padding: 28px 0 48px; }
.intro { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 20px; }
.intro h2 { max-width: 760px; margin: 0; font: 500 clamp(30px, 4vw, 42px)/1.08 Georgia, serif; letter-spacing: -.03em; }
.intro p:not(.eyebrow) { max-width: 760px; margin: 0; color: var(--muted); line-height: 1.6; }
.formula-card { min-width: 310px; padding: 20px 22px; border: 1px solid #cad8cc; border-radius: 16px; background: rgba(255,255,255,.68); }
.formula-card span { display: block; margin-bottom: 7px; color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.formula-card strong { font-family: Georgia, serif; font-size: 18px; font-weight: 500; }
.status-banner { margin-bottom: 18px; padding: 13px 16px; border-radius: 10px; color: #7b321f; background: #fff0e9; border: 1px solid #e7b69f; }
.status-banner.success { color: #1f5735; background: #edf7ef; border-color: #b9d5c0; }
.workspace { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(430px, .78fr); gap: 24px; align-items: start; }
.form-panel, .result-panel { border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow); }
.form-panel { overflow: hidden; }
.form-section { padding: 23px 25px; border-bottom: 1px solid var(--line); }
.form-section.compact { padding-top: 20px; padding-bottom: 20px; }
.section-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.section-heading h3 { margin: 0; font: 600 21px Georgia, serif; }
.section-heading p { max-width: 720px; margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.demolition-scope-section { background: linear-gradient(105deg, #fbf8f0, #fff); }
.demolition-scope-section .toggle-row { margin-top: 0; }
.scope-variable-note { margin: 12px 0 0; color: #6c5d40; font-size: 11px; font-weight: 650; line-height: 1.45; }
.step { display: grid; width: 32px; height: 32px; place-items: center; flex: 0 0 auto; border-radius: 50%; color: white; background: var(--green); font-size: 13px; font-weight: 750; }
.field-grid { display: grid; gap: 18px; align-items: start; }
.field-grid.one { grid-template-columns: minmax(180px, 320px); }
.field-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.field-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.field-grid.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.field-grid.seven { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.add-on-components { margin-top: 18px; }
.custom-direct-scope { padding: 16px; border: 1px solid #d2ded4; background: #f8fbf8; }
.estimator-review-warning { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; padding: 11px 13px; border: 1px solid #e2bd78; border-left: 4px solid #b87920; border-radius: 8px; color: #66430f; background: #fff8e9; font-size: 12px; line-height: 1.4; }
.estimator-review-warning strong { white-space: nowrap; color: #774b0b; }
.custom-direct-fields { grid-template-columns: minmax(280px, 1.6fr) minmax(100px, .45fr) minmax(100px, .45fr) minmax(150px, .7fr); }
.custom-direct-price-strip { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.custom-direct-price-strip > div { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 14px; padding: 12px 14px; border: 1px solid #d6e0d7; border-radius: 9px; color: #45534a; background: #fff; }
.custom-direct-price-strip span { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.custom-direct-price-strip strong { color: var(--green-dark); font: 600 20px Georgia, serif; }
.custom-direct-price-strip small { grid-column: 1 / -1; color: var(--muted); font-size: 10px; }
.custom-direct-price-strip .customer-price { border-color: #99bda2; color: #fff; background: var(--green-dark); }
.custom-direct-price-strip .customer-price strong, .custom-direct-price-strip .customer-price small { color: #fff; }
label { display: flex; min-width: 0; flex-direction: column; gap: 8px; color: #445047; font-size: 13px; font-weight: 700; letter-spacing: .015em; }
.field-label { display: flex; min-height: 18px; align-items: baseline; justify-content: space-between; gap: 10px; color: #445047; font-size: 13px; font-weight: 700; }
.field-label .unit { flex: 0 0 auto; color: #69766d; font-size: 12px; font-weight: 750; }
input, select, textarea { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid #91aa9f; border-radius: 9px; color: var(--ink); background: linear-gradient(180deg, #fbfdf8, #f3f8f4); outline: none; box-shadow: 0 1px 0 rgba(255,255,255,.92) inset, 0 2px 7px rgba(10,65,55,.04); transition: border-color .16s ease, background .16s ease, box-shadow .16s ease; }
textarea { resize: vertical; line-height: 1.45; }
input:hover, select:hover, textarea:hover { border-color: #17665d; background: #fff; }
input:focus, select:focus, textarea:focus { border-color: #c7645c; background: #fff; box-shadow: 0 0 0 4px rgba(199,100,92,.15), 0 8px 16px rgba(10,65,55,.08); }
.suggestion input { border-color: #75a294; background: linear-gradient(180deg, #f8fcf9, #eaf4ef); font-weight: 750; }
.suggestion-note { display: block; min-height: 18px; color: var(--green); font-size: 12px; font-weight: 700; line-height: 1.35; letter-spacing: 0; }
.integration-banner { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 15px 17px; border: 1px solid #cad8cc; border-radius: 12px; color: #294535; background: #f1f6f1; }
.integration-banner strong, .integration-banner span { display: block; }
.integration-banner strong { margin-bottom: 3px; font-size: 14px; }
.integration-banner > div > span { color: var(--muted); font-size: 13px; }
.lookup-button { flex: 0 0 auto; padding: 10px 14px; border: 1px solid #a9c0ad; border-radius: 9px; color: var(--green); background: white; font-weight: 800; cursor: pointer; }
.lookup-button:hover { background: #e8f0e9; }
.lookup-button:disabled { cursor: wait; opacity: .65; }
.span-two { grid-column: span 2; }
.route-action-field { display: flex; align-items: flex-end; }
.route-action-field .lookup-button { width: 100%; min-height: 44px; }
.route-status { margin-top: 14px; padding: 11px 13px; border: 1px solid #d6e0d7; border-radius: 9px; color: #425349; background: #f4f8f4; font-size: 12px; font-weight: 700; }
.route-status.error { color: #8a3f2b; border-color: #e1b9a9; background: #fff7f3; }
.route-status.ready { color: var(--green-dark); border-color: #abc4b0; background: #edf5ee; }
.route-map-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
.route-map-grid figure { min-width: 0; margin: 0; }
.route-map-grid figcaption { margin-bottom: 7px; color: #445047; font-size: 12px; font-weight: 800; }
.route-map-frame { position: relative; height: 245px; overflow: hidden; border: 1px solid #cdd8cf; border-radius: 11px; background: #e8eee8; }
.sales-route-card .route-map-frame { height: clamp(310px, 28vw, 430px); }
.route-map-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.route-map-placeholder { position: absolute; z-index: 10; inset: 0; display: grid; place-items: center; color: #6f7f74; background: linear-gradient(135deg, #eef3ee, #e3ebe4); font-size: 13px; font-weight: 750; pointer-events: none; }
.route-map-frame .esri-view-surface { border-radius: 10px; }
.route-map-frame .esri-widget { color: #31483a; font-family: Arial, sans-serif; }
.route-map-frame .esri-widget--button:hover { color: var(--green-dark); background: #eef4ef; }
.route-map-frame .esri-attribution { font-size: 9px; }
.access-notes-block { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.site-photo-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 220px)); gap: 10px; margin-top: 12px; }
.photo-button { min-height: 42px; padding: 9px 14px; border: 1px solid #a9c0ad; border-radius: 9px; color: var(--green); background: white; font-weight: 800; cursor: pointer; }
.photo-button:hover { background: var(--green-soft); }
.site-photo-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.site-photo { position: relative; min-width: 0; overflow: hidden; border: 1px solid #d4ddd5; border-radius: 10px; background: #f4f6f3; }
.site-photo img { display: block; width: 100%; height: 100px; object-fit: cover; }
.site-photo button { position: absolute; top: 6px; right: 6px; width: 26px; height: 26px; padding: 0; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: white; background: rgba(42,53,45,.82); font-weight: 900; cursor: pointer; }
.role-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.role-card { min-width: 0; padding: 16px; border: 1px solid #d8e1d9; border-radius: 14px; background: #fbfcfa; }
.role-card h4 { margin: 0 0 13px; color: var(--green-dark); font: 600 17px Georgia, serif; }
.role-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.role-fields .field-label { white-space: nowrap; }
.role-suggestion { display: block; min-height: 16px; margin-top: 9px; color: var(--green); font-size: 12px; font-weight: 700; line-height: 1.35; }
.inline-action { padding: 0; border: 0; background: transparent; color: var(--green); font: inherit; font-weight: 800; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.inline-action:hover { color: var(--green-dark); }
.compact-grid { max-width: 760px; margin-top: 16px; }
.calculated-field { display: flex; min-height: 70px; flex-direction: column; justify-content: center; padding: 10px 14px; border: 1px solid #d6e0d7; border-radius: 10px; background: var(--green-soft); }
.calculated-field span { margin-bottom: 5px; color: var(--muted); font-size: 12px; font-weight: 750; }
.calculated-field strong { color: var(--green-dark); font: 600 18px Georgia, serif; }
.calculated-field small { color: var(--muted); font-size: 10.5px; font-weight: 650; line-height: 1.35; }
.scope-preview-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 14px; }
.gate-relationship-grid label { min-height: 78px; }
.scope-list { display: grid; gap: 18px; }
.scope-editor { padding: 18px; border: 1px solid #d8e1d9; border-radius: 11px; background: #fbfcfa; }
.scope-editor-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.scope-editor-header h4 { margin: 0; color: var(--green-dark); font: 600 18px Georgia, serif; }
.remove-scope-button { padding: 7px 10px; border: 1px solid #d8b7a8; border-radius: 8px; color: #87462f; background: #fff8f4; font-size: 12px; font-weight: 750; cursor: pointer; }
.remove-scope-button:hover { background: #fcebe2; }
.add-scope-button { width: 100%; margin-top: 14px; padding: 12px 15px; border: 1px dashed #8faa95; border-radius: 11px; color: var(--green); background: #f7faf7; font-weight: 800; cursor: pointer; }
.add-scope-button:hover { border-style: solid; background: var(--green-soft); }
.scope-empty { padding: 18px; border: 1px dashed #cbd5cd; border-radius: 12px; color: var(--muted); background: #fafbf9; text-align: center; font-size: 13px; }
.scope-editor .relationship-card { margin-top: 16px; }
.nested { margin-top: 16px; padding: 18px; border-radius: 10px; background: #f5f7f3; }
.relationship-card { margin-top: 18px; padding: 18px; border: 1px solid #d8e1d9; border-radius: 10px; background: #f7f9f6; }
.relationship-card.nested { margin-bottom: 0; }
.relationship-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 14px; padding-bottom: 14px; border-bottom: 1px solid #dfe6df; }
.relationship-title h4 { margin: 0; font: 600 16px Georgia, serif; }
.relationship-title > span { color: var(--muted); font-size: 12px; font-weight: 750; }
.relationship-component-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.relationship-primary-grid { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(320px, 1.5fr); gap: 12px; align-items: stretch; }
.fixed-scope-counts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.fixed-scope-counts label { padding: 12px; border: 1px solid #dde5de; border-radius: 11px; background: #fff; }
.fence-cost-build-up { display: grid; grid-template-columns: 1fr; gap: 8px; margin-top: 14px; }
.cost-layer { padding: 14px; border: 1px solid #d8e1d9; border-radius: 11px; background: #fff; }
.cost-layer-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
.cost-layer-title > div { display: flex; align-items: center; gap: 9px; }
.cost-layer-title h5 { margin: 0; color: var(--green-dark); font: 600 15px Georgia, serif; }
.cost-layer-title > span { color: var(--muted); font-size: 11px; font-weight: 750; text-align: right; }
.cost-layer-number { display: grid; width: 23px; height: 23px; place-items: center; border-radius: 50%; color: white; background: var(--green); font-size: 11px; font-weight: 850; }
.cost-layer-summary, .cost-adjustment-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.cost-layer-summary > div { padding: 12px; border: 1px solid #dde5de; border-radius: 10px; background: #f7f9f6; }
.cost-layer-summary span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 750; }
.cost-layer-summary strong { color: var(--green-dark); font: 600 17px Georgia, serif; }
.cost-layer-operator { height: 18px; color: #6e8975; font: 700 20px/18px Georgia, serif; text-align: center; }
.post-adjustment-card { background: #f8faf7; }
.short-job-adjustment-card { border-style: dashed; background: #fafbf9; }
.short-job-adjustment-card.is-active { border-style: solid; border-color: #d2b777; background: #fffaf0; }
.short-job-adjustment-card.is-active .cost-layer-number { background: #9b6a16; }
.fence-component-total { display: grid; grid-template-columns: minmax(190px, 1fr) repeat(3, auto); align-items: center; gap: 18px; margin-top: 3px; padding: 14px 16px; border-radius: 11px; color: white; background: var(--green-dark); }
.fence-component-total span { color: #c8d8ca; font-size: 12px; font-weight: 750; }
.fence-component-total strong { font: 600 16px Georgia, serif; white-space: nowrap; }
.advanced-breakdown { margin-top: 14px; border-top: 1px solid #dfe6df; }
.advanced-breakdown summary { padding: 13px 2px 2px; color: var(--green-dark); font-size: 14px; line-height: 1.35; font-weight: 800; cursor: pointer; list-style-position: inside; }
.advanced-breakdown[open] summary { margin-bottom: 12px; }
.relationship-field { gap: 9px; padding: 12px; border: 1px solid #dde5de; border-radius: 11px; background: #fff; }
.relationship-field input { min-height: 46px; background: #fff; font-weight: 750; font-variant-numeric: tabular-nums; }
.relationship-field.suggestion { border-color: #b8cdbd; background: #f3f8f3; }
.relationship-field.suggestion input { background: #fff; }
.relationship-total { min-height: 72px; display: grid; grid-template-columns: minmax(160px, .8fr) minmax(160px, auto) minmax(220px, 1.4fr); align-items: center; gap: 18px; padding: 14px 16px; }
.relationship-total span, .relationship-total strong, .relationship-total small { margin: 0; }
.relationship-total strong { font-size: 22px; white-space: nowrap; }
.relationship-total small { text-align: right; font-size: 11.5px; }
.gate-price-preview { display: grid; grid-template-columns: minmax(190px, .7fr) minmax(260px, 1.3fr); gap: 14px; align-items: center; margin-top: 10px; padding: 10px 12px; border: 1px solid #c9d9cd; border-left: 4px solid #2b6f45; border-radius: 8px; background: #f3f8f4; }
.gate-price-preview > div { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.gate-price-preview span { color: #405349; font-size: 10px; font-weight: 900; letter-spacing: .045em; text-transform: uppercase; }
.gate-price-preview strong { color: #184b2d; font: 800 18px/1 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; }
.gate-price-preview small { color: #627168; font: 650 10px/1.35 ui-monospace, SFMono-Regular, Consolas, monospace; text-align: right; }
.reset-suggestion-button { flex: 0 0 auto; padding: 7px 11px; border: 1px solid #a9c0ad; border-radius: 8px; color: var(--green); background: white; font-size: 11px; font-weight: 800; cursor: pointer; }
.reset-suggestion-button:hover { background: var(--green-soft); }
.split-title { margin-top: 22px; }
.mobilization-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.mobilization-summary > div { min-width: 0; padding: 12px 14px; border: 1px solid #d2ddd4; border-radius: 10px; background: white; }
.mobilization-summary span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 750; }
.mobilization-summary strong { display: block; color: var(--green-dark); font: 600 17px/1.15 Georgia, serif; overflow-wrap: anywhere; }
.mobilization-summary .mobilization-total { color: white; border-color: var(--green-dark); background: var(--green-dark); }
.mobilization-summary .mobilization-total span { color: #c8d8ca; }
.mobilization-summary .mobilization-total strong { color: white; font-size: 20px; }
.toggle-row { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 10px; cursor: pointer; }
.toggle-row input { position: absolute; width: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.toggle { position: relative; width: 38px; height: 22px; border-radius: 999px; background: #c9d0ca; transition: .18s ease; }
.toggle::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: .18s ease; }
.toggle-row input:checked + .toggle { background: var(--green); }
.toggle-row input:checked + .toggle::after { transform: translateX(16px); }
.toggle-row strong { display: block; color: var(--ink); font-size: 14px; }
.check-field { flex-direction: row; align-items: center; padding-top: 24px; }
.check-field input { width: 18px; min-height: 18px; }
.primary-button { display: flex; justify-content: space-between; align-items: center; width: calc(100% - 56px); margin: 24px 28px 28px; padding: 15px 18px; border: 0; border-radius: 11px; color: white; background: var(--green); font-weight: 750; cursor: pointer; }
.primary-button:hover { background: #1c4b2f; }
.primary-button:disabled { cursor: not-allowed; opacity: .45; }
.result-panel.is-updating { opacity: .72; transition: opacity .18s ease; }
.result-panel { position: sticky; top: 20px; min-width: 0; overflow: hidden; }
.result-header { padding: 25px 25px 21px; border-bottom: 1px solid var(--line); }
.result-header h3 { margin: 0; font: 600 24px Georgia, serif; }
.result-header p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 13px; }
.empty-state { padding: 70px 36px; text-align: center; }
.empty-icon { display: grid; width: 54px; height: 54px; margin: 0 auto 15px; place-items: center; border-radius: 50%; color: var(--green); background: var(--green-soft); font: 600 24px Georgia, serif; }
.empty-state p { color: var(--muted); font-size: 13px; line-height: 1.55; }
#results { padding: 22px; }
.metric { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfa; }
.metric.primary { margin-bottom: 12px; color: white; background: var(--green-dark); border-color: var(--green-dark); }
.metric span { display: block; margin-bottom: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.metric.primary span { color: #bfd3c3; }
.metric strong { font: 600 22px Georgia, serif; }
.metric.primary strong { font-size: 34px; }
.metric-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.metric-grid.three-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.metric-grid.summary-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.three-metrics .metric { padding: 13px 11px; }
.three-metrics .metric strong { font-size: 19px; }
.labor-summary { margin-top: 23px; }
.labor-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.labor-row span > strong { display: block; font-size: 13px; }
.labor-row small { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; }
.labor-row > strong { white-space: nowrap; font: 600 15px Georgia, serif; }
.calculation-breakdown { margin-top: 24px; padding: 15px; border: 1px solid #d6e0d7; border-radius: 13px; background: #f7faf7; }
.formula-row { padding: 9px 0; border-bottom: 1px solid var(--line); }
.formula-row:last-child { border-bottom: 0; }
.formula-row strong { display: block; color: var(--ink); font-size: 12px; }
.formula-row code { display: block; margin-top: 4px; color: var(--green-dark); font: 650 11px/1.45 Inter, ui-sans-serif, system-ui, sans-serif; white-space: normal; }
.final-equation { margin-top: 12px; padding: 11px 12px; border-radius: 9px; color: white; background: var(--green-dark); font-size: 12px; font-weight: 750; line-height: 1.5; }
.line-items { margin-top: 24px; }
.line-title { display: flex; justify-content: space-between; align-items: center; margin-bottom: 9px; }
.line-title h4 { margin: 0; font: 600 17px Georgia, serif; }
.line-title span { color: var(--muted); font-size: 12px; }
.line-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.line-row > div:first-child { min-width: 0; }
.line-row strong { font-size: 13px; }
.line-row p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.line-money { align-self: center; white-space: nowrap; font: 600 16px Georgia, serif; }
.scope-note { margin-top: 18px; padding: 12px; border-radius: 9px; color: #5c6b61; background: var(--green-soft); font-size: 12px; line-height: 1.45; }
.cost-detail-panel { margin-top: 24px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow); overflow: hidden; }
.detail-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; padding: 24px 26px 20px; border-bottom: 1px solid var(--line); }
.detail-heading h3 { margin: 0; font: 600 23px Georgia, serif; }
.detail-heading p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; }
.direct-only-badge { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 12px; font-weight: 750; }
.table-scroll { width: 100%; overflow-x: auto; }
.cost-table { width: 100%; min-width: 1320px; border-collapse: collapse; font-size: 12px; }
.cost-table th, .cost-table td { padding: 13px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.cost-table thead th { color: #647067; background: #f7f8f5; font-size: 12px; font-weight: 800; }
.cost-table tbody th { min-width: 210px; font-weight: 650; }
.cost-table tbody th span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 600; text-transform: capitalize; }
.cost-table .number { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cost-table .emphasis { color: var(--green-dark); font-weight: 800; }
.cost-table tfoot th, .cost-table tfoot td { border-bottom: 0; color: var(--ink); background: #eef3ee; font-weight: 800; }
.detail-note { margin: 0; padding: 13px 26px; border-top: 1px solid var(--line); color: var(--muted); background: #fbfcfa; font-size: 12px; line-height: 1.5; }
.estimate-record-panel { margin-top: 24px; padding: 24px 26px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow); }
.estimate-record-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.estimate-record-heading h3 { margin: 0; color: var(--green-dark); font: 600 23px Georgia, serif; }
.change-count { padding: 7px 10px; border-radius: 999px; color: var(--green); background: var(--green-soft); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.change-count.has-changes { color: #87462f; background: #fff1e8; }
.estimate-record-fields { margin-top: 20px; }
.estimate-feedback-fields { display: grid; grid-template-columns: minmax(240px,.65fr) minmax(360px,1.35fr); gap: 16px; margin-top: 17px; padding: 17px; border: 1px solid #e0c3ae; border-radius: 12px; background: #fffaf6; }
.estimate-feedback-fields textarea { min-height: 88px; }
.estimate-record-actions { display: flex; align-items: center; gap: 18px; margin-top: 18px; }
.estimate-record-panel .secondary-action-button { width: auto; min-width: 220px; margin: 0; }
.estimate-record-panel .save-estimate-status { margin: 0; }
.recent-estimates { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.recent-estimates-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 11px; }
.recent-estimates-title h4 { margin: 0; font: 600 17px Georgia, serif; }
.recent-estimates-title span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
.recent-estimate-rows { display: grid; gap: 8px; }
.recent-estimate-row { display: grid; grid-template-columns: minmax(280px,1fr) auto auto; gap: 18px; align-items: center; padding: 13px 15px; border: 1px solid #dbe3dc; border-radius: 10px; background: #fbfcfa; font-size: 12px; }
.recent-estimate-details { display: grid; min-width: 0; gap: 4px; }
.recent-estimate-heading { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.recent-estimate-heading strong { color: var(--ink); font-size: 14px; }
.estimate-revision-badge { padding: 3px 7px; border-radius: 999px; color: var(--green-dark); background: var(--green-soft); font-size: 10px; font-weight: 800; white-space: nowrap; }
.recent-estimate-context, .recent-estimate-version { color: var(--muted); line-height: 1.35; }
.recent-estimate-total { color: var(--green-dark); font: 600 17px Georgia, serif; white-space: nowrap; }
.recent-estimate-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.use-version-button { padding: 8px 11px; border: 1px solid #9db5a2; border-radius: 8px; color: var(--green-dark); background: #f2f7f2; font-size: 11px; font-weight: 800; cursor: pointer; }
.use-version-button:hover { background: #e4eee5; }
.revision-estimate-button { padding: 8px 11px; border: 1px solid #a9b9aa; border-radius: 8px; color: var(--green-dark); background: #fff; font-size: 11px; font-weight: 800; cursor: pointer; }
.revision-estimate-button:hover { background: #f2f7f2; }
.delete-estimate-button { padding: 8px 11px; border: 1px solid #d3aaa4; border-radius: 8px; color: #8e2f25; background: #fffafa; font-size: 11px; font-weight: 800; cursor: pointer; }
.delete-estimate-button:hover { background: #fbeae7; }
.feedback-history { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--line); }
.feedback-history > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--green-dark); font: 600 17px Georgia, serif; cursor: pointer; list-style: none; }
.feedback-history > summary::-webkit-details-marker { display: none; }
.feedback-history > summary:focus { outline: none; }
.feedback-history > summary:focus-visible { outline: 2px solid #9db5a2; outline-offset: 4px; border-radius: 6px; }
.feedback-history > summary::before { content: "\25B8"; margin-right: -6px; font: 700 13px Arial, sans-serif; transition: transform .15s ease; }
.feedback-history[open] > summary::before { transform: rotate(90deg); }
.feedback-history-count { margin-left: auto; padding: 4px 8px; border-radius: 999px; color: var(--green-dark); background: var(--green-soft); font: 800 11px Arial, sans-serif; }
.feedback-history-body { margin-top: 16px; }
.feedback-history-filters { display: grid; grid-template-columns: repeat(3, minmax(160px, 1fr)) auto; gap: 12px; align-items: end; }
.feedback-history-filters input { min-height: 40px; padding: 9px 11px; }
.feedback-history-actions { display: flex; gap: 7px; }
.feedback-history-actions button { min-height: 40px; padding: 9px 13px; }
.feedback-history-actions .quiet-button { color: var(--green-dark); background: #fff; border: 1px solid #a9b9aa; }
.feedback-history-table-wrap { margin-top: 14px; border: 1px solid #dbe3dc; border-radius: 10px; }
.feedback-history-table { width: 100%; min-width: 920px; border-collapse: collapse; font-size: 12px; }
.feedback-history-table th, .feedback-history-table td { padding: 11px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.feedback-history-table th { color: #647067; background: #f7f8f5; font-size: 11px; font-weight: 800; white-space: nowrap; }
.feedback-history-table tbody tr:last-child td { border-bottom: 0; }
.feedback-history-table td:nth-child(2), .feedback-history-table td:nth-child(7) { white-space: nowrap; }
.feedback-history-change { color: var(--green-dark); font-weight: 800; white-space: nowrap; }
.sales-workspace { display: grid; grid-template-columns: minmax(520px, 1.2fr) minmax(340px, .8fr); gap: 24px; align-items: start; }
.sales-controls { display: grid; gap: 18px; }
.sales-card { padding: 24px; border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow); }
.sales-card h3 { margin: 0 0 20px; color: var(--green-dark); font: 600 22px Georgia, serif; }
.sales-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.sales-card-heading h3 { margin: 0; }
.sales-route-card .route-status { margin-top: 0; }
.route-match { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; margin: -5px 0 18px; padding: 11px 13px; border: 1px solid #d5e0d7; border-radius: 9px; background: #f8faf7; }
.route-match span { color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.route-match strong { color: var(--ink); font-size: 13px; line-height: 1.4; }
.route-match em { padding: 5px 8px; border-radius: 999px; color: var(--green-dark); background: #e7f0e8; font-size: 10px; font-style: normal; font-weight: 800; white-space: nowrap; }
.sales-mobilization-card #mobilizationFields { padding: 18px; border-radius: 11px; background: #f5f7f3; }
.mobilization-lodging-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mobilization-cost-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mobilization-subsection[hidden] { display: none; }
.sales-mobilization-card .relationship-title { align-items: center; }
.sales-mobilization-card .field-label { min-height: 22px; align-items: flex-start; line-height: 1.25; }
.sales-mobilization-card .field-label > span:first-child { overflow-wrap: normal; }
.sales-mobilization-card .field-label .unit { white-space: nowrap; }
.compact-toggle { position: relative; display: inline-flex; align-items: center; gap: 9px; cursor: pointer; }
.compact-toggle input { position: absolute; width: 1px; min-height: 1px; opacity: 0; pointer-events: none; }
.compact-toggle input:checked + .toggle { background: var(--green); }
.compact-toggle input:checked + .toggle::after { transform: translateX(16px); }
.compact-toggle strong { color: var(--ink); font-size: 13px; }
.sales-card > label { margin-bottom: 20px; }
.sales-card > label:last-child { margin-bottom: 0; }
.sales-price-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 18px 0; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.sales-price-row span { color: var(--muted); font-size: 13px; font-weight: 700; }
.sales-price-row strong { margin-left: auto; color: var(--green-dark); font: 600 23px Georgia, serif; }
.sales-price-row button { padding: 8px 12px; border: 1px solid #9db5a2; border-radius: 8px; color: var(--green-dark); background: #f2f7f2; font-size: 12px; font-weight: 800; cursor: pointer; }
.sales-primary { width: 100%; margin: 22px 0 0; }
.sales-summary-card { position: sticky; top: 20px; }
.sales-project-context { display: grid; gap: 10px; margin: -2px 0 18px; padding-bottom: 17px; border-bottom: 1px solid var(--line); }
.sales-project-context > div { display: flex; justify-content: space-between; gap: 20px; }
.sales-project-context span { color: var(--muted); font-size: 12px; }
.sales-project-context strong { max-width: 65%; text-align: right; font-size: 13px; }
.sales-profit-total { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; padding: 16px 18px; color: #fff; background: var(--green-dark); border-radius: 10px; }
.sales-profit-total span { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.sales-profit-total strong { font: 600 28px Georgia, serif; font-variant-numeric: tabular-nums; }
.profit-waterfall { display: grid; gap: 12px; margin-top: 20px; }
.profit-row { display: grid; grid-template-columns: 88px minmax(100px,1fr) 100px; gap: 12px; align-items: center; font-size: 12px; }
.profit-row > div { height: 14px; overflow: hidden; background: #eef1ed; }
.profit-row i { display: block; width: 0; height: 100%; background: #344c3d; }
.profit-row.cost i { background: #c94c3f; }
.profit-row.profit i { background: #2e6748; }
.profit-row strong { text-align: right; font-variant-numeric: tabular-nums; }
.profit-row.profit strong { color: var(--green); }
.profit-row.profit strong.negative { color: #a13e32; }
.sales-margin-row { display: flex; justify-content: space-between; gap: 20px; margin-top: 18px; padding-top: 15px; border-top: 1px solid var(--line); font-size: 13px; }
.sales-margin-row strong { color: var(--green-dark); }
.sales-cost-reconciliation { display: grid; gap: 0; margin-top: 18px; padding: 8px 14px; border: 1px solid #cbd9cd; border-radius: 10px; background: #f3f7f2; }
.sales-cost-reconciliation > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 9px 0; color: var(--muted); font-size: 13px; }
.sales-cost-reconciliation strong { color: var(--green-dark); font-size: 14px; font-variant-numeric: tabular-nums; }
.sales-cost-reconciliation .total { border-top: 1px solid #cbd9cd; color: var(--green-dark); font-weight: 800; }
.sales-cost-reconciliation .total strong { font-size: 16px; }
.sales-detail-title { margin: 24px 0 4px; color: var(--green-dark); font: 600 16px Georgia, serif; }
.sales-summary-list { display: grid; gap: 0; }
.sales-summary-list > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.sales-summary-list > div:last-child { border-bottom: 0; }
.sales-summary-list span { color: var(--muted); font-size: 13px; }
.sales-summary-list strong { font-size: 14px; font-variant-numeric: tabular-nums; }
.overnight-notice { margin-top: 18px; padding: 13px 15px; border: 1px solid #e6c982; border-radius: 9px; color: #81591b; background: #fff8df; font-size: 12px; font-weight: 700; line-height: 1.45; }
.overnight-notice::before { content: "\2022"; margin-right: 6px; }
.pricing-warning { margin-top: 12px; padding: 10px 12px; border: 1px solid #e5c58b; border-radius: 9px; color: #75531e; background: #fff8e8; font-size: 12px; font-weight: 700; }
.proposal-intro { margin-bottom: 20px; }
.page-status { color: var(--muted); font-size: 13px; font-weight: 650; }
.proposal-workspace { display: grid; grid-template-columns: minmax(420px, .78fr) minmax(650px, 1.45fr); gap: 24px; align-items: start; }
.proposal-controls { display: grid; gap: 16px; }
.proposal-card, .proposal-preview-panel { border: 1px solid var(--line); border-radius: 13px; background: #fff; box-shadow: var(--shadow); }
.proposal-card { padding: 22px; }
.proposal-card-title { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 17px; }
.proposal-card-title h3 { margin: 0; color: var(--green-dark); font: 600 19px Georgia, serif; }
.proposal-card-title span { color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.proposal-inherited-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.proposal-inherited-grid > div { min-width: 0; padding: 12px 13px; border: 1px solid #dbe3dc; border-radius: 9px; background: #f8faf7; }
.proposal-inherited-grid span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.proposal-inherited-grid strong { display: block; overflow-wrap: anywhere; color: var(--ink); font-size: 13px; line-height: 1.35; }
.proposal-amount-field input { border-color: #82aa8d; background: #f5faf6; font-weight: 800; }
.proposal-estimate-source { margin-bottom: 17px; }
.proposal-estimate-source select { border-color: #9db5a2; background: #f5faf6; font-weight: 750; }
.span-two { grid-column: 1 / -1; }
.route-address-grid .span-two { grid-column: span 2; }
.crm-status { margin-bottom: 12px; padding: 11px 12px; border-radius: 9px; color: #456050; background: #edf4ee; font-size: 12px; line-height: 1.45; }
.crm-search-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; margin-bottom: 13px; }
.crm-search-row button, .secondary-action-button { min-height: 44px; padding: 9px 15px; border: 1px solid #9db5a2; border-radius: 9px; color: var(--green-dark); background: #f2f7f2; font-weight: 800; cursor: pointer; }
.crm-search-row button:hover, .secondary-action-button:hover { background: #e4eee5; }
.crm-search-row button:disabled, .secondary-action-button:disabled { cursor: wait; opacity: .6; }
.hubspot-card > label { margin-top: 12px; }
.hubspot-card .field-grid { margin-top: 13px; }
.hubspot-related { margin-top: 13px; }
.hubspot-related label { margin: 0; }
.hubspot-contact-details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 12px; }
.hubspot-contact-details > div { min-width: 0; padding: 12px 13px; border: 1px solid #dbe3dc; border-radius: 9px; background: #f8faf7; }
.hubspot-contact-details span { display: block; margin-bottom: 4px; color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }
.hubspot-contact-details strong { display: block; overflow-wrap: anywhere; color: var(--ink); font-size: 13px; }
.crm-read-only { color: var(--muted); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; }
.hubspot-crm-card > label { margin-top: 4px; }
.crm-object-block { margin-top: 17px; padding-top: 15px; border-top: 1px solid var(--line); }
.crm-object-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 8px; }
.crm-object-heading > span { color: var(--ink); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.crm-mode-toggle { display: inline-flex; padding: 2px; border: 1px solid #cbd8cd; border-radius: 999px; background: #f4f7f3; }
.crm-mode-toggle button { min-height: 30px; padding: 5px 12px; border: 0; border-radius: 999px; color: #66786b; background: transparent; font-size: 11px; font-weight: 750; }
.crm-mode-toggle button.is-active { color: white; background: #397452; }
.crm-mode-toggle button:disabled:not(.is-active) { cursor: not-allowed; opacity: .48; }
.hubspot-crm-card .crm-status { margin: 14px 0 0; }
.proposal-card > label + label { margin-top: 14px; }
.secondary-action-button { width: 100%; margin-top: 14px; }
.save-estimate-status { margin-top: 11px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.alternate-buttons { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.alternate-buttons button { padding: 8px 10px; border: 1px solid #c8d7ca; border-radius: 8px; color: var(--green-dark); background: #f2f7f2; font-size: 12px; font-weight: 750; cursor: pointer; }
.alternate-buttons button:hover { border-color: #8eae95; background: #e5efe6; }
.proposal-alternate-list { display: grid; gap: 12px; }
.proposal-alternate-row { padding: 16px; border: 1px solid #d3ded5; border-radius: 12px; background: #fbfcfa; }
.alternate-card-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.alternate-card-header h4 { margin: 0; font: 600 17px Georgia, serif; }
.alternate-card-actions { display: flex; align-items: center; gap: 12px; }
.alternate-show-control { display: inline-flex; align-items: center; gap: 7px; color: var(--ink); font-size: 12px; font-weight: 750; white-space: nowrap; }
.proposal-alternate-row input[type="checkbox"] { width: 18px; min-height: 18px; }
.proposal-alternate-row button { padding: 7px 9px; border: 1px solid #d8b7a8; border-radius: 7px; color: #87462f; background: #fff8f4; font-size: 11px; font-weight: 750; cursor: pointer; }
.alternate-scope-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.alternate-scope-grid.gate-alternate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.alternate-scope-grid input, .alternate-scope-grid select, .manual-alternate-grid input, .alternate-description-field input, .alternate-price-grid input { min-height: 40px; }
.alternate-check-field { align-self: end; display: flex; min-height: 40px; align-items: center; justify-content: space-between; gap: 10px; padding: 9px 12px; border: 1px solid #c7d4c9; border-radius: 8px; color: var(--ink); font-size: 12px; font-weight: 750; background: white; }
.alternate-description-field { display: block; margin-top: 11px; }
.alternate-price-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); }
.alternate-output { display: flex; min-height: 65px; flex-direction: column; justify-content: center; gap: 5px; padding: 10px 12px; border: 1px solid #d7e1d8; border-radius: 8px; background: #eef4ef; }
.alternate-output span { color: var(--muted); font-size: 11px; font-weight: 750; text-transform: uppercase; letter-spacing: .03em; }
.alternate-output strong { color: var(--green-dark); font: 600 19px Georgia, serif; }
.alternate-status { min-height: 16px; margin-top: 8px; color: #65746a; font-size: 11px; font-weight: 700; }
.proposal-alternate-row[data-calculation-state="error"] .alternate-status { color: #a14a31; }
.manual-alternate-grid { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 11px; }
.proposal-create-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.proposal-download { width: 100%; margin: 16px 0 0; }
.proposal-preview-panel { position: sticky; top: 20px; overflow: hidden; }
.proposal-preview-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; padding: 20px 22px; border-bottom: 1px solid var(--line); }
.proposal-preview-heading h3 { margin: 4px 0 0; font: 600 22px Georgia, serif; }
.proposal-preview-heading > span { color: var(--muted); font-size: 12px; }
.proposal-document-tabs { display: inline-grid; grid-template-columns: repeat(3, minmax(128px, 1fr)); gap: 3px; margin: 8px 0 4px; padding: 3px; border: 1px solid #c9d7cc; border-radius: 11px; background: #eef3ef; }
.proposal-document-tabs button { min-height: 34px; padding: 7px 14px; border: 0; border-radius: 8px; color: #52675a; background: transparent; font-size: 12px; font-weight: 750; cursor: pointer; transition: color .15s ease, background .15s ease, box-shadow .15s ease; }
.proposal-document-tabs button:hover { color: var(--green-dark); background: rgba(255,255,255,.58); }
.proposal-document-tabs button.active { color: var(--green-dark); background: white; box-shadow: 0 1px 4px rgba(31,70,45,.16); }
.proposal-document-tabs button:focus-visible { outline: 2px solid var(--green); outline-offset: 1px; }
.proposal-live-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: -2px 0 12px; padding-bottom: 12px; border-bottom: 1px solid #dce6df; }
.proposal-document-switcher { min-width: 0; }
.proposal-document-actions { display: flex; flex: 0 0 auto; align-items: center; justify-content: flex-end; gap: 12px; }
.proposal-sharepoint-note { max-width: 175px; color: #617168; font-size: 10px; font-weight: 650; line-height: 1.35; text-align: right; }
.proposal-sharepoint-note strong { color: #21613f; font-weight: 800; }
.proposal-document-download { min-width: 188px; }
.proposal-document-note { margin: 0 0 14px; padding: 10px 12px; border: 1px solid #d9c9a7; border-radius: 8px; color: #654d2d; background: #fff8e7; font-size: 12px; line-height: 1.5; }
.proposal-preview-empty { padding: 90px 40px; text-align: center; }
.proposal-preview-empty strong { color: var(--green-dark); font: 600 20px Georgia, serif; }
.proposal-preview-empty p { max-width: 460px; margin: 10px auto 0; color: var(--muted); font-size: 13px; line-height: 1.55; }
#proposalPreview { display: block; width: 100%; height: 78vh; min-height: 760px; border: 0; background: #dfe5df; }
.workspace-jump { position: fixed; z-index: 20; top: 50%; display: flex; width: 42px; min-height: 72px; align-items: center; justify-content: center; gap: 0; padding: 8px 4px; overflow: hidden; border: 1px solid #cbdacf; color: var(--green-dark); background: rgba(249,252,249,.9); box-shadow: 0 8px 24px rgba(27,55,38,.11); cursor: pointer; opacity: .78; transform: translateY(-50%); transition: width .18s ease, gap .18s ease, opacity .18s ease, background .18s ease; }
.workspace-jump:hover, .workspace-jump:focus-visible { width: 104px; gap: 5px; border-color: #91ad98; background: white; opacity: 1; }
.workspace-jump-left { left: 0; border-left: 0; border-radius: 0 14px 14px 0; }
.workspace-jump-right { right: 0; flex-direction: row-reverse; border-right: 0; border-radius: 14px 0 0 14px; }
.workspace-jump-arrow { flex: 0 0 auto; font: 400 36px/0.8 Georgia, serif; }
.workspace-jump strong { max-width: 0; overflow: hidden; opacity: 0; white-space: nowrap; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; transition: max-width .18s ease, opacity .14s ease; }
.workspace-jump:hover strong, .workspace-jump:focus-visible strong { max-width: 68px; opacity: 1; }
[hidden] { display: none !important; }

@media (max-width: 1050px) {
  .workspace { grid-template-columns: 1fr; }
  .sales-workspace { grid-template-columns: 1fr; }
  .proposal-workspace { grid-template-columns: 1fr; }
  .proposal-live-header { align-items: flex-start; flex-direction: column; }
  .proposal-document-tabs { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .proposal-document-actions { width: 100%; justify-content: space-between; }
  .proposal-sharepoint-note { max-width: none; text-align: left; }
  .proposal-document-download { min-width: 0; }
  .proposal-preview-panel { position: static; }
  .result-panel { position: static; }
  .field-grid.four, .field-grid.five, .field-grid.six, .field-grid.seven { grid-template-columns: repeat(2, 1fr); }
  .relationship-component-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fixed-scope-counts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cost-layer-summary, .cost-adjustment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fence-component-total { grid-template-columns: repeat(3, 1fr); gap: 8px 14px; }
  .fence-component-total span { grid-column: 1 / -1; }
  .relationship-primary-grid { grid-template-columns: 1fr; }
  .mobilization-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mobilization-lodging-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mobilization-cost-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workspace-jump { display: none; }
}

@media (max-width: 620px) {
  .proposal-document-tabs { grid-template-columns: 1fr; }
  .proposal-document-actions { align-items: stretch; flex-direction: column; }
  .proposal-document-download { width: 100%; }
}
@media (max-width: 1300px) and (min-width: 1051px) {
  .field-grid.five, .field-grid.six, .field-grid.seven { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .shell { width: min(100% - 24px, 1580px); padding-top: 26px; }
  .intro { grid-template-columns: 1fr; }
  .formula-card { min-width: 0; }
  .field-grid.two, .field-grid.three, .field-grid.four, .field-grid.five, .field-grid.six, .field-grid.seven, .role-grid { grid-template-columns: 1fr; }
  .hubspot-contact-details { grid-template-columns: 1fr; }
  .route-match { grid-template-columns: 1fr; gap: 4px; }
  .form-section { padding: 22px 18px; }
  .primary-button { width: calc(100% - 36px); margin-left: 18px; margin-right: 18px; }
  .detail-heading { align-items: start; flex-direction: column; }
  .local-pill { display: none; }
  .topbar { flex-wrap: wrap; }
  .mode-nav { width: 100%; order: 3; }
  .mode-tab { flex: 1; min-width: 0; }
  .integration-banner { align-items: flex-start; flex-direction: column; }
  .metric-grid.three-metrics { grid-template-columns: 1fr; }
  .metric-grid.summary-metrics { grid-template-columns: 1fr; }
  .scope-preview-grid { grid-template-columns: 1fr; }
  .relationship-component-grid { grid-template-columns: 1fr; }
  .fixed-scope-counts { grid-template-columns: 1fr; }
  .cost-layer-summary, .cost-adjustment-grid, .fence-component-total { grid-template-columns: 1fr; }
  .cost-layer-title { align-items: flex-start; flex-direction: column; }
  .cost-layer-title > span { text-align: left; }
  .fence-component-total span { grid-column: auto; }
  .relationship-primary-grid, .proposal-inherited-grid { grid-template-columns: 1fr; }
  .relationship-title { align-items: stretch; flex-direction: column; }
  .reset-suggestion-button { align-self: flex-start; }
  .relationship-total { grid-template-columns: 1fr; gap: 5px; }
  .relationship-total small { text-align: left; }
  .gate-price-preview { grid-template-columns: 1fr; }
  .gate-price-preview small { text-align: left; }
  .estimate-record-heading, .estimate-record-actions, .recent-estimates-title { align-items: stretch; flex-direction: column; }
  .estimate-feedback-fields { grid-template-columns: 1fr; }
  .feedback-history-filters { grid-template-columns: 1fr; }
  .feedback-history-actions button { flex: 1; }
  .estimate-record-panel .secondary-action-button { width: 100%; }
  .recent-estimate-row { grid-template-columns: 1fr auto; gap: 10px 12px; }
  .recent-estimate-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .alternate-card-header { align-items: flex-start; flex-direction: column; }
  .alternate-card-actions { width: 100%; justify-content: space-between; }
  .alternate-scope-grid, .alternate-scope-grid.gate-alternate-grid, .alternate-price-grid, .manual-alternate-grid, .custom-direct-fields, .custom-direct-price-strip { grid-template-columns: 1fr; }
  .estimator-review-warning { align-items: flex-start; flex-direction: column; gap: 3px; }
  .crm-search-row { grid-template-columns: 1fr; }
  .span-two { grid-column: auto; }
  .route-address-grid .span-two { grid-column: auto; }
  .route-map-grid, .mobilization-summary, .mobilization-lodging-grid, .mobilization-cost-grid { grid-template-columns: 1fr; }
  .sales-route-card .route-map-frame { height: 330px; }
  .route-map-frame { height: 220px; }
  .site-photo-actions, .site-photo-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

}

/* Site-photo controls live in the shared project intake, outside @scope. */
.site-photo-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
button.photo-button {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 8px 13px;
  border: 1px solid #8eaa94;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  cursor: pointer;
  transition: transform .15s ease, border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
button.photo-button svg {
  width: 17px;
  height: 17px;
  flex: 0 0 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
button.photo-button-primary {
  color: #fff;
  border-color: #245c3a;
  background: #245c3a;
  box-shadow: 0 3px 9px rgba(29, 78, 47, .16);
}
button.photo-button-primary:hover { border-color: #173f28; background: #173f28; transform: translateY(-1px); }
button.photo-button-secondary { color: #245c3a; background: #f3f7f3; }
button.photo-button-secondary:hover { border-color: #648a70; background: #e7f0e8; transform: translateY(-1px); }
button.photo-button:active { transform: translateY(0); }
button.photo-button:focus-visible { outline: 3px solid rgba(36, 92, 58, .22); outline-offset: 2px; }
.site-photo-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}
.site-photo {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid #d4ddd5;
  border-radius: 10px;
  background: #f4f6f3;
  box-shadow: 0 3px 10px rgba(25, 54, 36, .08);
}
.site-photo img { display: block; width: 100%; height: 100px; object-fit: cover; }
.site-photo button {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 50%;
  color: white;
  background: rgba(30,51,37,.86);
  font-weight: 900;
  cursor: pointer;
}
@media (max-width: 640px) {
  .site-photo-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  button.photo-button { width: 100%; }
  .site-photo-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  button.photo-button { transition: none; }
}

/* Sales owns project quantities; calibrated relationships stay hidden runtime data. */
.fence-sales-scope { width: 100%; min-width: 0; margin-top: 22px; }
.fence-sales-scope .workspace,
.fence-sales-scope .form-panel,
.fence-sales-scope .cost-detail-panel,
.fence-sales-scope .table-scroll { min-width: 0; max-width: 100%; }
.fence-sales-scope .workspace { grid-template-columns: minmax(0, 1fr); }
.fence-sales-scope .sales-scope-intro {
  align-items: end;
  margin-bottom: 14px;
  padding: 22px 24px;
  border: 1px solid #dce6df;
  border-radius: 14px;
  background: linear-gradient(110deg, #f7faf7 0%, #eef5f0 70%, #e4efe7 100%);
}
.fence-sales-scope .sales-scope-intro h2 { margin: 3px 0 6px; }
.fence-sales-scope .sales-scope-intro p:last-child { max-width: 760px; margin: 0; color: #5c6d61; }
.scope-rate-badge {
  min-width: 132px;
  padding: 11px 14px;
  border: 1px solid #adc1b2;
  border-radius: 10px;
  background: rgba(255,255,255,.78);
  text-align: right;
}
.scope-rate-badge span { display: block; color: #647368; font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.scope-rate-badge strong { display: block; margin-top: 3px; color: #16452a; font: 800 19px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.fence-sales-scope .fence-editor > .relationship-card > :not(.fixed-scope-counts):not([hidden]) { display: none; }
.fence-sales-scope .fence-editor > .relationship-card { padding: 16px; border-style: dashed; background: #fafcf9; }
.fence-sales-scope .gate-editor > .relationship-card,
.fence-sales-scope .ballstopper-editor > .relationship-card { display: none; }
.fence-sales-scope .sales-contract-context { padding-top: 20px; padding-bottom: 20px; }

/* Dense Sales logistics controls: project inputs should scan as one compact block. */
.sales-mobilization-card { padding: 20px; }
.sales-mobilization-card .sales-card-heading { margin-bottom: 8px; }
.sales-mobilization-card > .helper-text { margin: 0 0 13px; }
.sales-mobilization-card #mobilizationFields { padding: 14px; }
.sales-mobilization-card .relationship-title { margin-bottom: 9px; }
.sales-mobilization-card .split-title { margin-top: 16px; }
.sales-mobilization-card .sales-logistics-grid { display: grid; gap: 10px 12px; align-items: start; }
.sales-mobilization-card .field-grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sales-mobilization-card .field-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sales-mobilization-card .sales-logistics-grid label { gap: 5px; }
.sales-mobilization-card .field-label { min-height: 16px; align-items: baseline; font-size: 11px; }
.sales-mobilization-card .field-label .unit { font-size: 10px; }
.sales-mobilization-card input,
.sales-mobilization-card select { min-height: 38px; padding: 7px 9px; border-radius: 7px; }
.sales-mobilization-card .project-mobilization-grid { grid-template-columns: minmax(180px, 1fr) minmax(180px, 1fr); }
.mobilization-sales-total {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  margin-top: 14px;
  padding: 12px 14px;
  border: 1px solid #b8ccbd;
  border-radius: 9px;
  color: #f7fbf8;
  background: #245c3a;
}
.mobilization-sales-total span { font-size: 11px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.mobilization-sales-total small { display: block; margin-top: 4px; color: #cfe1d3; font-size: 9px; letter-spacing: .035em; }
.mobilization-sales-total strong { font: 850 19px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.sales-mobilization-card .compact-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  flex-direction: row;
  gap: 7px;
  margin: 0;
  padding: 6px 9px;
  border: 1px solid #b9c9bc;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  cursor: pointer;
}
.sales-mobilization-card .compact-toggle input {
  position: absolute;
  width: 1px;
  min-height: 1px;
  padding: 0;
  opacity: 0;
  pointer-events: none;
}
.sales-mobilization-card .compact-toggle .toggle { position: relative; flex: 0 0 34px; width: 34px; height: 20px; border-radius: 999px; background: #c9d0ca; transition: .18s ease; }
.sales-mobilization-card .compact-toggle .toggle::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: white; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: .18s ease; }
.sales-mobilization-card .compact-toggle input:checked + .toggle { background: #245c3a; }
.sales-mobilization-card .compact-toggle input:checked + .toggle::after { transform: translateX(14px); }
.sales-mobilization-card .compact-toggle strong { font-size: 12px; }

/* Compact Hard Floor-style Sales closeout card. */
.fence-live-pricing-card {
  padding: 24px;
  border: 1px solid #d5e0d7;
  border-radius: 14px;
  background: linear-gradient(135deg, #fbfdfb, #eef5ef);
}
.fence-live-pricing-copy { display: flex; justify-content: space-between; gap: 20px; align-items: end; }
.fence-live-pricing-copy p { margin: 5px 0 0; color: #647269; }
.fence-live-pricing-status { flex: 0 0 auto; color: #6b796f; font-size: 12px; text-align: right; }
.fence-sales-policy-row { display: grid; grid-template-columns: minmax(220px, .58fr) minmax(0, 1fr); gap: 14px; align-items: end; margin: 16px 0 12px; padding: 12px 14px; border: 1px solid #c8d8cc; border-radius: 10px; background: rgba(255,255,255,.72); }
.fence-sales-policy-row label { display: grid; gap: 6px; }
.fence-sales-policy-row label > span { color: #365b45; font-size: 10px; font-weight: 900; letter-spacing: .065em; text-transform: uppercase; }
.fence-sales-policy-row select { min-height: 40px; padding: 7px 34px 7px 10px; border: 1px solid #9fb5a5; border-radius: 8px; color: #173f28; background-color: white; font-weight: 800; }
.fence-sales-policy-row p { margin: 0 0 3px; color: #66756b; font-size: 11px; line-height: 1.45; }
.fence-live-price-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.fence-live-price-grid > div { min-width: 0; padding: 13px 14px; border: 1px solid #d8e1da; border-radius: 9px; background: rgba(255,255,255,.9); }
.fence-live-price-grid span,
.fence-live-price-grid strong { display: block; }
.fence-live-price-grid span { color: #66756b; font-size: 10px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.fence-live-price-grid strong { margin-top: 5px; overflow: hidden; color: #302a25; font: 800 16px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
.fence-live-price-grid strong > span { display: inline; }
.fence-live-price-grid strong > small { color: #66756b; font: 800 10px/1 ui-sans-serif, system-ui, sans-serif; }
.fence-live-margin-input { display: flex !important; align-items: center; gap: 4px; overflow: visible !important; }
.fence-live-margin-input input { width: 72px; min-width: 0; padding: 2px 5px; border: 1px solid #becdc1; border-radius: 6px; color: inherit; background: #fff; font: inherit; text-align: right; }
.fence-live-price-total { position: relative; display: flex; justify-content: space-between; gap: 28px; align-items: center; min-height: 116px; overflow: hidden; padding: 22px 26px 22px 32px; border: 1px solid rgba(244,245,232,.32); border-radius: 15px; color: white; background: linear-gradient(112deg, #0d493f 0%, #123d35 56%, #0a302b 100%); box-shadow: 0 16px 30px rgba(7,47,43,.2), inset 0 1px 0 rgba(255,255,255,.13); }
.fence-live-price-total::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 8px; background: #d8786d; }
.fence-live-price-total::after { content: ""; position: absolute; right: -54px; bottom: -80px; width: 230px; height: 150px; border: 2px solid rgba(244,245,232,.12); transform: rotate(-18deg); pointer-events: none; }
.fence-live-price-total-label { position: relative; z-index: 1; display: grid; gap: 7px; }
.fence-live-price-total-label small { color: #a9d4c6; font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.fence-live-price-total-label strong { color: #fff; font-size: 17px; font-weight: 900; letter-spacing: .075em; text-transform: uppercase; }
.fence-live-price-value { position: relative; z-index: 1; display: grid; min-width: min(430px, 58%); gap: 6px; }
.fence-live-price-value > small { color: #b9d8cf; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.fence-live-price-input { display: flex; align-items: center; min-width: 0; padding: 10px 14px; border: 1px solid rgba(244,245,232,.34); border-radius: 10px; color: white; background: rgba(255,255,255,.08); font: 900 clamp(30px, 3.7vw, 46px)/1 ui-monospace, SFMono-Regular, Consolas, monospace; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.fence-live-price-input > b { flex: 0 0 auto; }
.fence-live-price-input input { width: 100%; min-width: 0; min-height: 44px; padding: 0; border: 0; border-radius: 0; color: white; background: transparent; box-shadow: none; font: inherit; text-align: right; }
.fence-live-price-input input:hover { background: transparent; }
.fence-live-price-input:focus-within { border-color: #f0a096; background: rgba(255,255,255,.13); box-shadow: 0 0 0 4px rgba(216,120,109,.2); }
.fence-live-price-input input:focus { outline: 0; border: 0; background: transparent; box-shadow: none; }
.fence-live-price-input input::-webkit-outer-spin-button,
.fence-live-price-input input::-webkit-inner-spin-button { margin: 0; appearance: none; }
.fence-sales-price-equation { margin: 2px 0 12px; padding: 9px 12px; border-left: 4px solid #d3aa2c; color: #3e5c49; background: rgba(255,249,220,.72); font: 750 11px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; }
.fence-live-pricing-card > .helper-text { margin: 10px 0 0; }

.legacy-fallback-panel { margin-top: 18px; border: 1px dashed #aebfb2; border-radius: 9px; background: #f7faf7; }
.legacy-fallback-panel > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 13px; color: #405348; cursor: pointer; list-style: none; }
.legacy-fallback-panel > summary::-webkit-details-marker { display: none; }
.legacy-fallback-panel > summary span strong,
.legacy-fallback-panel > summary span small { display: block; }
.legacy-fallback-panel > summary span strong { font-size: 12px; }
.legacy-fallback-panel > summary span small { margin-top: 2px; color: #738077; font-size: 10px; }
.legacy-fallback-panel > summary em { color: #2a6742; font-size: 10px; font-style: normal; font-weight: 850; text-transform: uppercase; }
.legacy-fallback-panel[open] > summary { border-bottom: 1px solid #dce5de; }
.legacy-fallback-panel .rate-table-shell { margin: 10px; }
.legacy-context-rates { margin-top: 8px; padding-top: 8px; border-top: 1px dashed #c7d2ca; }
.legacy-context-rates summary { color: #7b5b30; font-size: 10px; font-weight: 850; cursor: pointer; }

@media (max-width: 1050px) {
  .sales-mobilization-card .field-grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sales-mobilization-card .field-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .sales-mobilization-card .field-grid.three,
  .sales-mobilization-card .field-grid.four,
  .sales-mobilization-card .project-mobilization-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fence-live-pricing-card { padding: 18px 14px; }
  .fence-live-pricing-copy { align-items: flex-start; flex-direction: column; }
  .fence-live-pricing-status { text-align: left; }
  .fence-sales-policy-row { grid-template-columns: 1fr; align-items: start; }
  .fence-live-price-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fence-live-price-total { align-items: stretch; flex-direction: column; padding: 21px 20px 20px 26px; }
  .fence-live-price-value { width: 100%; min-width: 0; max-width: none; }
  .fence-live-price-value > small { text-align: left; }
  .fence-live-price-input { width: 100%; min-width: 0; max-width: none; font-size: clamp(26px, 10vw, 40px); }
}
@media (max-width: 420px) {
  .sales-mobilization-card .field-grid.three,
  .sales-mobilization-card .field-grid.four,
  .sales-mobilization-card .project-mobilization-grid { grid-template-columns: 1fr; }
}

/* Estimator rate ledger: a compact field book for infrequent pricing updates. */
.fence-rate-ledger {
  --ledger-ink: #17231b;
  --ledger-green: #174d2d;
  --ledger-green-2: #286c43;
  --ledger-paper: #f7f8f4;
  --ledger-rule: #d8dfd7;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
  color: var(--ledger-ink);
  font-family: Inter, "Segoe UI", sans-serif;
}
.rate-ledger-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  padding: 28px 30px;
  border: 1px solid #cdd9d0;
  border-radius: 16px 16px 4px 4px;
  color: #f8fbf8;
  background:
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(135deg, #102f20, #1d5a36);
  box-shadow: 0 12px 30px rgba(18, 52, 31, .12);
}
.rate-ledger-kicker { margin: 0 0 7px; color: #a9ccb4; font: 800 11px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .14em; text-transform: uppercase; }
.rate-ledger-hero h3 { margin: 0; color: white; font: 700 clamp(27px, 3vw, 42px)/1.04 Georgia, "Times New Roman", serif; letter-spacing: -.02em; }
.rate-ledger-hero p:last-child { max-width: 780px; margin: 10px 0 0; color: #d8e8dc; line-height: 1.55; }
.rate-version-stamp { min-width: 160px; padding: 14px 16px; border: 1px solid rgba(255,255,255,.28); background: rgba(3,24,12,.3); }
.rate-version-stamp span, .rate-version-stamp small { display: block; color: #b9d2c0; font: 700 10px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .09em; text-transform: uppercase; }
.rate-version-stamp strong { display: block; margin: 4px 0; color: white; font: 800 28px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.rate-ledger-status { margin: 12px 0; }
.rate-ledger-workspace-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; padding: 20px 4px 16px; }
.rate-ledger-workspace-heading h3 { margin: 0; color: #18251d; font: 700 clamp(23px, 2.2vw, 32px)/1.1 Georgia, "Times New Roman", serif; letter-spacing: -.015em; }
.rate-ledger-workspace-heading > div:first-child > p:last-child { max-width: 760px; margin: 7px 0 0; color: #647168; font-size: 13px; line-height: 1.5; }
.rate-ledger-workspace-heading .rate-ledger-kicker { color: #2f6a45; }
.rate-ledger-workspace-heading .rate-version-stamp { min-width: 170px; padding: 10px 13px; border: 1px solid #c9d8cc; border-radius: 10px; background: #eff5f0; text-align: right; }
.rate-ledger-workspace-heading .rate-version-stamp span,
.rate-ledger-workspace-heading .rate-version-stamp small { color: #5c7163; }
.rate-ledger-workspace-heading .rate-version-stamp strong { color: #174d2d; font-size: 20px; }
.rate-workspace-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; margin-bottom: 16px; padding: 6px; border: 1px solid #d8ddd7; border-radius: 13px; background: #ecefea; }
.rate-workspace-tab { min-height: 42px; padding: 9px 14px; border: 0; border-radius: 9px; color: #57645b; background: transparent; font-size: 12px; font-weight: 850; cursor: pointer; }
.rate-workspace-tab:hover { color: #21472f; background: rgba(255,255,255,.66); }
.rate-workspace-tab.is-active { color: white; background: #245c3a; box-shadow: 0 4px 10px rgba(24,73,42,.18); }
.rate-workspace-tab:focus-visible { outline: 3px solid rgba(36,92,58,.22); outline-offset: 2px; }
.rate-workspace-panel { min-width: 0; overflow-x: hidden; contain: layout paint; animation: rate-panel-in 150ms ease-out; }
.rate-workspace-panel[hidden], .rate-ledger-savebar[hidden] { display: none; }
@keyframes rate-panel-in { from { opacity: .45; transform: translateY(3px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .rate-workspace-panel { animation: none; } }
.cost-audit-intro { display: flex; justify-content: space-between; gap: 24px; align-items: center; padding: 18px 20px; border: 1px solid #ccd8ce; border-radius: 12px; background: #f7faf7; }
.cost-audit-intro > div:first-child { display: grid; grid-template-columns: auto 1fr; gap: 4px 10px; align-items: center; }
.cost-audit-intro h4 { margin: 0; font: 700 20px/1.2 Georgia, "Times New Roman", serif; }
.cost-audit-intro p { grid-column: 2; max-width: 760px; margin: 0; color: #637168; font-size: 12px; line-height: 1.45; }
.cost-audit-actions { display: flex; flex: 0 0 auto; gap: 10px; align-items: center; }
.cost-audit-status { max-width: 190px; color: #496053; font: 750 10px/1.35 ui-monospace, SFMono-Regular, Consolas, monospace; text-align: right; }
.cost-audit-summary { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.cost-audit-summary article { min-width: 0; padding: 12px 13px; border: 1px solid #d7dfd8; border-radius: 9px; background: white; }
.cost-audit-summary article:first-child { color: white; border-color: #1e5634; background: #245c3a; }
.cost-audit-summary span, .cost-audit-summary strong { display: block; }
.cost-audit-summary span { color: #66736b; font-size: 9px; font-weight: 850; letter-spacing: .055em; text-transform: uppercase; }
.cost-audit-summary article:first-child span { color: #cfe1d3; }
.cost-audit-summary strong { margin-top: 5px; overflow: hidden; color: #183822; font: 800 16px/1.1 ui-monospace, SFMono-Regular, Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
.cost-audit-summary article:first-child strong { color: white; }
.cost-audit-equation { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 16px; align-items: center; margin: 12px 0; padding: 14px 16px; border-left: 5px solid #d39a28; color: #e8f4eb; background: #183b27; box-shadow: 0 7px 18px rgba(22,55,36,.1); }
.cost-audit-equation-label { display: flex; gap: 9px; align-items: center; }
.cost-audit-equation-label span { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid #82a58b; color: #f2c66f; font: 800 10px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.cost-audit-equation-label strong { font: 700 13px/1.25 Georgia, "Times New Roman", serif; }
.cost-audit-equation code { overflow-wrap: anywhere; color: #eff6f1; font: 700 11px/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; }
.cost-audit-equation-stack { display: grid; gap: 7px; min-width: 0; }
.cost-audit-equation-stack code + code { padding-top: 7px; border-top: 1px solid rgba(255,255,255,.2); color: #f2c66f; }
.cost-audit-section { min-width: 0; padding: 18px; border: 1px solid #d7ded8; background: #f8faf7; }
.cost-audit-section .rate-section-heading { margin-bottom: 12px; }
.cost-audit-section .rate-section-heading h4 { font-size: 18px; }
.cost-audit-mobilization, .cost-audit-demolition { margin: 0 0 12px; }
.cost-audit-demolition { border-color: #dccba8; background: #fffaf0; }
.cost-audit-mobilization-grid, .cost-audit-demolition-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cost-audit-mobilization-grid article, .cost-audit-demolition-grid article { min-width: 0; padding: 10px 11px; border: 1px solid #dce4dd; background: white; }
.cost-audit-demolition-grid article { border-color: #e5d9bd; }
.cost-audit-mobilization-grid span,
.cost-audit-mobilization-grid strong,
.cost-audit-demolition-grid span,
.cost-audit-demolition-grid strong { display: block; }
.cost-audit-mobilization-grid span, .cost-audit-demolition-grid span { color: #68756c; font-size: 9px; font-weight: 850; letter-spacing: .05em; text-transform: uppercase; }
.cost-audit-mobilization-grid strong, .cost-audit-demolition-grid strong { margin-top: 5px; overflow: hidden; color: #23432e; font: 800 13px/1.15 ui-monospace, SFMono-Regular, Consolas, monospace; text-overflow: ellipsis; white-space: nowrap; }
.cost-audit-mobilization-grid .is-total, .cost-audit-demolition-grid .is-total { grid-column: 1 / -1; color: white; border-color: #245c3a; background: #245c3a; }
.cost-audit-demolition-grid .is-total { border-color: #76552e; background: #76552e; }
.cost-audit-mobilization-grid .is-total span, .cost-audit-demolition-grid .is-total span { color: #cfe1d3; }
.cost-audit-mobilization-grid .is-total strong, .cost-audit-demolition-grid .is-total strong { color: white; font-size: 17px; }
.cost-audit-table-scroll { max-height: 365px; }
.cost-audit-table { min-width: 1320px; }
.cost-audit-table td { color: #34433a; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; text-align: right; white-space: nowrap; }
.cost-audit-table td:nth-child(3) { text-align: left; }
.cost-audit-table tbody th strong, .cost-audit-table tbody th small { display: block; }
.cost-audit-table tbody th small { margin-top: 3px; color: #6e7b72; font-weight: 550; }
.cost-audit-table .cost-audit-demolition-row > * { background: #fff6df; }
.cost-audit-table .cost-audit-demolition-row > th { box-shadow: inset 3px 0 #b8873e; }
.cost-audit-table tfoot th, .cost-audit-table tfoot td { position: sticky; bottom: 0; z-index: 3; padding: 7px; border-top: 2px solid #315f40; color: #f5fbf6; background: #244b32; font-size: 10px; font-weight: 850; }
.cost-audit-table tfoot th { left: 0; z-index: 4; text-align: left; }
.cost-audit-table .cost-audit-emphasis { color: #124928; background: #e9f3eb; font-weight: 900; }
.cost-audit-labor-row th { box-shadow: inset 4px 0 #d39a28, 1px 0 0 #dce4dd; }
.rate-empty-cell { padding: 28px !important; color: #6b786f !important; text-align: center !important; }
.cost-audit-lower-grid { display: grid; grid-template-columns: minmax(280px, .7fr) minmax(0, 1.3fr); gap: 12px; margin-top: 12px; }
.cost-audit-role-list, .cost-audit-formulas { display: grid; gap: 6px; max-height: 330px; overflow: auto; overscroll-behavior: contain; }
.cost-audit-role-list article { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 10px 11px; border: 1px solid #dce4dd; background: white; }
.cost-audit-role-list strong, .cost-audit-role-list span { display: block; }
.cost-audit-role-list strong { color: #274632; font-size: 12px; }
.cost-audit-role-list span { margin-top: 3px; color: #69766d; font: 650 9px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace; }
.cost-audit-role-list b { color: #174d2d; font: 850 12px/1 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; }
.cost-audit-formulas article { padding: 9px 10px; border-left: 3px solid #88a790; background: white; }
.cost-audit-formulas strong, .cost-audit-formulas code { display: block; }
.cost-audit-formulas strong { margin-bottom: 4px; color: #274632; font-size: 11px; }
.cost-audit-formulas code { color: #5c6961; font: 650 9px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
.rate-workspace-panel > .wage-workbench { margin-bottom: 12px; }
.rate-workspace-panel > .rate-history { margin-top: 0; }
.fence-temporary-pricing-control { margin-bottom: 12px; }
.rate-ledger-body { min-width: 0; border-right: 1px solid var(--ledger-rule); border-left: 1px solid var(--ledger-rule); background: var(--ledger-paper); }
.rate-ledger-section { min-width: 0; overflow-x: hidden; scroll-margin-top: 58px; padding: 22px; border-bottom: 1px solid var(--ledger-rule); }
.rate-section-heading { display: flex; justify-content: space-between; gap: 24px; align-items: end; margin-bottom: 16px; }
.rate-section-heading > div { display: flex; gap: 10px; align-items: center; }
.rate-section-heading h4 { margin: 0; font: 700 23px/1.15 Georgia, "Times New Roman", serif; }
.rate-section-heading p { max-width: 630px; margin: 0; color: #637068; font-size: 13px; line-height: 1.45; text-align: right; }
.rate-section-code { padding: 4px 6px; border: 1px solid #9eb1a3; color: var(--ledger-green); background: white; font: 800 10px/1 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .08em; }
.rate-table-shell { width: 100%; min-width: 0; max-width: 100%; }
.rate-table-scroll { width: 100%; max-width: 100%; max-height: 320px; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; contain: layout paint; border: 1px solid #cfd8d0; background: white; }
.rate-ledger-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 11px; }
.rate-ledger-table th, .rate-ledger-table td { padding: 5px 7px; border-right: 1px solid #e1e6e1; border-bottom: 1px solid #e1e6e1; vertical-align: middle; }
.rate-ledger-table thead th { position: sticky; top: 0; z-index: 3; color: #eaf5ed; background: #234c32; font: 800 9px/1.25 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .055em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.rate-ledger-table tbody th { position: sticky; left: 0; z-index: 2; min-width: 132px; color: #1e3326; background: #f4f7f3; text-align: left; box-shadow: 1px 0 0 #dce4dd; }
.rate-ledger-table thead th:first-child { left: 0; z-index: 4; }
.rate-ledger-table tbody th strong, .rate-ledger-table tbody th small { display: block; }
.rate-ledger-table tbody th small { margin-top: 3px; color: #718077; font-weight: 500; }
.rate-ledger-table tbody tr:hover td, .rate-ledger-table tbody tr:hover th { background: #f1f7f2; }
.rate-cell-input { display: grid; grid-template-columns: minmax(64px, 1fr) auto; align-items: center; gap: 4px; min-width: 98px; }
.rate-cell-input input { width: 100%; min-width: 66px; height: 30px; padding: 4px 6px; border: 1px solid #c7d1c9; border-radius: 4px; color: #13251a; background: #fbfcfa; font: 700 11px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.rate-cell-input input:focus { border-color: #2b7648; outline: 2px solid rgba(43,118,72,.16); }
.rate-cell-input small { color: #718077; font: 700 9px/1.1 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; }
.gate-pricing-grid { display: grid; gap: 12px; }
.gate-pricing-card { overflow: hidden; border: 1px solid #cbd8ce; border-left: 4px solid #2b6f45; border-radius: 9px; background: #fff; box-shadow: 0 5px 16px rgba(27,61,39,.055); }
.gate-pricing-card-header { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 11px 13px; border-bottom: 1px solid #dce5de; background: #f6f9f5; }
.gate-pricing-card-header > div { display: flex; gap: 8px; align-items: center; }
.gate-pricing-card-header h5 { margin: 0; color: #1d3726; font: 800 15px/1.2 Georgia, serif; }
.gate-pricing-card-header > small { color: #647269; font: 700 10px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace; }
.gate-price-formula { display: grid; grid-template-columns: minmax(112px,1fr) auto minmax(112px,1fr) auto minmax(112px,1fr) auto minmax(112px,1fr); gap: 6px; align-items: center; padding: 9px 12px; overflow-x: auto; border-bottom: 1px solid #e1e8e2; background: #eef4ef; }
.gate-price-formula > span { display: grid; gap: 2px; min-width: 112px; }
.gate-price-formula b { color: #245739; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.gate-price-formula small { color: #617168; font-size: 9px; white-space: nowrap; }
.gate-price-formula i { color: #8a563c; font: 900 15px/1 Georgia, serif; font-style: normal; text-align: center; }
.project-crew-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.project-crew-grid .rate-constant-card { min-width: 0; padding: 9px 10px; }
.project-crew-grid .rate-cell-input { margin-top: 5px; min-width: 0; }
.project-crew-grid .rate-cell-input input { min-width: 0; }
.gate-finish-rate-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding: 11px 12px 0; }
.gate-finish-rate-grid > section { display: grid; grid-template-columns: minmax(112px, .7fr) repeat(2, minmax(0, 1fr)); gap: 7px; align-items: center; min-width: 0; padding: 8px; border: 1px solid #d9e4db; border-radius: 6px; background: #f8fbf8; }
.gate-finish-rate-grid > section > strong { color: #245739; font-size: 10px; letter-spacing: .055em; text-transform: uppercase; }
.gate-finish-rate-grid label { min-width: 0; }
.gate-finish-rate-grid label > span { display: block; margin-bottom: 4px; color: #536158; font-size: 9px; font-weight: 800; }
.gate-finish-rate-grid .rate-cell-input { min-width: 0; }
.gate-finish-rate-grid .rate-cell-input input { min-width: 0; }
.gate-driver-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 7px; padding: 11px 12px; }
.gate-driver-grid > label { min-width: 0; padding: 7px 8px; border: 1px solid #e0e7e1; border-radius: 5px; background: #fbfcfa; }
.gate-driver-grid > label > span { display: block; min-height: 22px; margin-bottom: 5px; color: #4b5d51; font-size: 9px; font-weight: 900; line-height: 1.15; letter-spacing: .035em; text-transform: uppercase; }
.gate-driver-grid .rate-cell-input { min-width: 0; }
.gate-driver-grid .rate-cell-input input { min-width: 0; }
.gate-role-split { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 2fr); gap: 12px; align-items: center; margin: 0 12px 11px; padding: 9px 10px; border: 1px solid #d7e2d9; border-radius: 6px; background: #f4f8f4; }
.gate-role-split > div:first-child { display: grid; gap: 3px; }
.gate-role-split > div:first-child strong { color: #245739; font-size: 10px; letter-spacing: .055em; text-transform: uppercase; }
.gate-role-split > div:first-child small { color: #68766d; font-size: 9px; line-height: 1.3; }
.gate-role-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.gate-role-grid > label { min-width: 0; }
.gate-role-grid > label > span { display: block; margin-bottom: 4px; color: #536158; font-size: 9px; font-weight: 800; }
.gate-role-grid .rate-cell-input { min-width: 0; }
.gate-role-grid .rate-cell-input input { min-width: 0; }
.gate-base-components { margin: 0 12px 12px; border: 1px solid #d8e1da; border-radius: 6px; background: #fafcf9; }
.gate-base-components summary { display: flex; justify-content: space-between; gap: 12px; padding: 9px 11px; cursor: pointer; color: #294b35; font-size: 10px; font-weight: 900; letter-spacing: .035em; text-transform: uppercase; }
.gate-base-components summary small { color: #6b786f; font-size: 9px; font-weight: 600; letter-spacing: 0; text-transform: none; }
.gate-base-components .rate-table-scroll { margin: 0 9px 9px; }
.rate-card-grid { display: grid; gap: 8px; }
.rate-relationship-card { border: 1px solid #ccd6cd; background: white; }
.rate-relationship-card summary { display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 13px 15px; cursor: pointer; list-style: none; }
.rate-relationship-card summary::-webkit-details-marker { display: none; }
.rate-relationship-card summary span strong, .rate-relationship-card summary span small { display: inline-block; }
.rate-relationship-card summary span small { margin-left: 8px; color: #69766d; }
.rate-relationship-card summary em { color: #617168; font-size: 11px; font-style: normal; }
.rate-relationship-card[open] summary { color: white; background: #315e40; }
.rate-relationship-card[open] summary small, .rate-relationship-card[open] summary em { color: #d4e5d8; }
.rate-relationship-card > .rate-table-scroll, .rate-relationship-card > .rate-context-grid { margin: 0 14px 14px; }
.rate-default-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 14px; }
.rate-default-grid > label { padding: 10px; border: 1px solid #e0e5e0; color: #526057; background: #fafbf9; font-size: 11px; font-weight: 800; }
.rate-default-grid .rate-cell-input { margin-top: 7px; }
.rate-context-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.rate-context-grid > div { padding: 12px; border: 1px solid #dce3dc; }
.rate-context-grid h6 { margin: 0 0 9px; color: #415148; font-size: 11px; letter-spacing: .05em; text-transform: uppercase; }
.rate-mini-row { display: grid; grid-template-columns: 90px 1fr; gap: 8px; align-items: center; margin-top: 7px; }
.rate-mini-row > span { color: #5e6e64; font: 700 10px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.rate-ledger-split { display: grid; min-width: 0; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 18px; }
.rate-ledger-split-lower { margin-top: 22px; grid-template-columns: 1fr 1fr; }
.rate-ledger-split h5 { margin: 0 0 8px; color: #34483a; font-size: 12px; letter-spacing: .07em; text-transform: uppercase; }
.rate-constant-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rate-constant-card { padding: 12px; border: 1px solid #d3ddd5; background: white; }
.rate-constant-card > span { display: block; margin-bottom: 8px; color: #34483a; font-size: 11px; font-weight: 800; }
.rate-ledger-details { margin-top: 22px; border: 1px solid #ccd7ce; background: white; }
.rate-ledger-details summary { padding: 13px 15px; cursor: pointer; color: #2b4d36; font-weight: 800; }
.rate-ledger-details .rate-table-shell { margin: 0 14px 14px; }
.rate-details-note { margin: 0 14px 10px; color: #617068; font-size: 12px; }
.rate-empty-state { display: grid; gap: 4px; margin: 0; padding: 24px; color: #69766e; text-align: center; }
.rate-empty-state strong { color: #34483a; }
.wage-workbench { margin: 0 0 20px; overflow: hidden; border: 1px solid #aebfb1; border-radius: 10px; background: #eef3ef; box-shadow: 0 8px 22px rgba(25,55,35,.07); }
.wage-workbench-header { display: flex; justify-content: space-between; gap: 20px; align-items: center; padding: 15px 17px; color: white; background: #244b32; }
.wage-workbench-kicker { display: block; margin-bottom: 3px; color: #b9d5c0; font: 800 9px/1 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .12em; text-transform: uppercase; }
.wage-workbench h5 { margin: 0; font: 700 18px/1.15 Georgia, "Times New Roman", serif; }
.wage-workbench-header p { max-width: 760px; margin: 4px 0 0; color: #dce9df; font-size: 11px; }
.wage-review-summary { flex: 0 0 auto; min-width: 190px; padding-left: 16px; border-left: 1px solid rgba(255,255,255,.22); text-align: right; }
.wage-review-summary strong, .wage-review-summary span { display: block; }
.wage-review-summary strong { font: 800 12px/1.3 ui-monospace, SFMono-Regular, Consolas, monospace; }
.wage-review-summary span { margin-top: 2px; color: #b9d5c0; font-size: 10px; }
.wage-refresh-controls { display: grid; grid-template-columns: minmax(150px,.7fr) 90px minmax(150px,.8fr) minmax(260px,auto); gap: 8px; align-items: end; padding: 11px 12px; border-bottom: 1px solid #cbd7cd; }
.wage-refresh-controls label { display: grid; gap: 3px; color: #3a4c40; font-size: 10px; font-weight: 800; }
.wage-refresh-controls select, .wage-refresh-controls input, .wage-grid-toolbar select, .wage-grid-toolbar input { min-width: 0; height: 32px; padding: 4px 7px; border: 1px solid #bdcabf; border-radius: 4px; background: white; font-size: 11px; }
.wage-action-buttons { display: flex; gap: 6px; justify-content: end; }
.wage-action-buttons button, .wage-grid-toolbar button { min-height: 32px; padding: 6px 10px; white-space: nowrap; font-size: 10px; }
.wage-refresh-status { margin: 10px 12px 0; padding: 8px 10px; border-left: 3px solid #2e6b42; background: white; color: #31503c; font-size: 11px; }
.wage-refresh-status.is-error { border-color: #b94736; color: #923927; }
.wage-draft-banner { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin: 10px 12px 0; padding: 9px 11px; border: 1px solid #d5ae53; background: #fff8e8; }
.wage-draft-banner[hidden] { display: none; }
.wage-draft-banner strong, .wage-draft-banner span { display: block; }
.wage-draft-banner strong { color: #714c08; font-size: 11px; }
.wage-draft-banner span { margin-top: 2px; color: #755f34; font-size: 10px; }
.wage-source-order { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 14px; align-items: center; margin: 10px 12px 0; padding: 10px 11px; border: 1px solid #b9c9bc; background: #f9fcf9; }
.wage-source-order-heading { display: flex; gap: 9px; align-items: center; }
.wage-source-order-heading h4, .wage-source-order-heading p { margin: 0; }
.wage-source-order-heading h4 { color: #254a32; font: 700 15px/1.1 Georgia, "Times New Roman", serif; }
.wage-source-order-heading p { margin-top: 3px; color: #66736b; font-size: 9px; }
.wage-source-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; }
.wage-source-steps li { position: relative; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 7px; align-items: center; min-height: 44px; padding: 2px 16px 2px 10px; border-left: 1px solid #d5dfd7; }
.wage-source-steps li::after { position: absolute; right: -4px; z-index: 1; color: #77907d; content: "›"; font-size: 19px; }
.wage-source-steps li:last-child::after { content: ""; }
.wage-source-steps li > b { display: grid; width: 34px; height: 22px; place-items: center; border: 1px solid #7c9c84; color: #174d2d; background: #e8f1ea; font: 850 8px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.wage-source-steps strong, .wage-source-steps small { display: block; }
.wage-source-steps strong { color: #274632; font-size: 10px; }
.wage-source-steps small { margin-top: 2px; color: #66736b; font-size: 8.5px; line-height: 1.25; }
.wage-source-steps #fence-private-labor-rates { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 6px; margin-top: 5px; }
.wage-source-steps #fence-private-labor-rates label > span { display: block; margin-bottom: 2px; color: #536259; font: 750 8px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.wage-source-steps #fence-private-labor-rates .rate-cell-input { grid-template-columns: minmax(42px, 1fr) auto; min-width: 0; }
.wage-source-steps #fence-private-labor-rates input { min-width: 0; height: 26px; font-size: 9px; }
.wage-source-steps #fence-private-labor-rates small { font-size: 7px; }
.wage-grid-toolbar { display: grid; grid-template-columns: minmax(180px,1fr) 90px 130px 140px auto; gap: 6px; align-items: center; padding: 10px 12px 7px; }
.wage-search-field input { width: 100%; }
.wage-review-table { padding: 0 12px; }
.wage-review-table .rate-table-scroll { max-height: 390px; border-color: #aebcaf; }
.wage-ledger-table { min-width: 1010px; }
.wage-ledger-table tbody th { min-width: 155px; }
.wage-ledger-table .rate-cell-input { min-width: 108px; }
.wage-review-row.is-edited td, .wage-review-row.is-edited th { background-color: #fff9e9; }
.wage-review-row.is-edited th { box-shadow: inset 3px 0 #d49a1f, 1px 0 0 #dce4dd; }
.wage-blended-cell strong, .wage-blended-cell small { display: block; }
.wage-blended-cell strong { color: #174d2d; font: 800 12px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.wage-blended-cell small, .wage-effective-cell { color: #65736a; font-size: 9px; white-space: nowrap; }
.wage-review-check { display: inline-flex; gap: 5px; align-items: center; color: #435248; font-size: 10px; font-weight: 800; white-space: nowrap; }
.wage-review-check input { width: 15px; height: 15px; accent-color: #286c43; }
.wage-grid-help { margin: 8px 12px 11px; color: #68756d; font-size: 10px; }
.rate-ledger-savebar { position: sticky; z-index: 9; bottom: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: end; padding: 18px 22px; border: 1px solid #b8c8bc; background: rgba(245,248,244,.97); box-shadow: 0 -8px 24px rgba(20,49,30,.09); backdrop-filter: blur(14px); }
.rate-save-copy label, .rate-save-copy small { display: block; }
.rate-save-copy label { margin-bottom: 5px; color: #31473a; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.rate-save-copy input { width: 100%; padding: 10px 11px; border: 1px solid #bfcabf; border-radius: 7px; }
.rate-save-copy small { margin-top: 5px; color: #6d786f; }
.rate-history { margin-top: 18px; padding: 24px; border: 1px solid var(--ledger-rule); background: white; }
.rate-history-list { display: grid; gap: 7px; }
.rate-history-row { display: grid; grid-template-columns: 150px minmax(0, 1fr) 180px auto; gap: 14px; align-items: center; padding: 11px 12px; border: 1px solid #e0e5e0; }
.rate-history-row.is-active { border-color: #4d805e; background: #eff6f1; }
.rate-history-row div strong, .rate-history-row div span { display: block; }
.rate-history-row div strong { color: #1c5933; font: 800 16px/1 ui-monospace, SFMono-Regular, Consolas, monospace; }
.rate-history-row div span, .rate-history-row small { color: #6a776e; font-size: 10px; }
.rate-history-row p { margin: 0; font-size: 12px; }
.rate-history-row em { color: #1e6238; font-size: 11px; font-style: normal; font-weight: 900; text-transform: uppercase; }

@media (max-width: 900px) {
  .rate-ledger-hero, .rate-ledger-savebar, .rate-ledger-split, .wage-refresh-controls, .wage-grid-toolbar { grid-template-columns: 1fr; }
  .rate-ledger-workspace-heading { grid-template-columns: 1fr; align-items: start; }
  .rate-ledger-workspace-heading .rate-version-stamp { width: 100%; text-align: left; }
  .gate-driver-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gate-role-split { grid-template-columns: 1fr; }
  .cost-audit-intro { align-items: flex-start; flex-direction: column; }
  .cost-audit-actions { width: 100%; justify-content: space-between; }
  .cost-audit-status { max-width: none; text-align: left; }
  .cost-audit-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cost-audit-equation { grid-template-columns: 1fr; }
  .cost-audit-lower-grid { grid-template-columns: 1fr; }
  .rate-version-stamp { width: 100%; }
  .rate-section-heading { align-items: flex-start; flex-direction: column; }
  .rate-section-heading p { text-align: left; }
  .rate-default-grid, .rate-context-grid { grid-template-columns: 1fr; }
  .rate-constant-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-crew-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gate-finish-rate-grid > section { grid-template-columns: 1fr; }
  .rate-history-row { grid-template-columns: 100px minmax(0, 1fr) auto; }
  .rate-history-row small { display: none; }
  .wage-workbench-header, .wage-draft-banner { align-items: flex-start; flex-direction: column; }
  .wage-source-order { grid-template-columns: 1fr; }
  .wage-source-steps { grid-template-columns: 1fr; }
  .wage-source-steps li { border-top: 1px solid #d5dfd7; border-left: 0; }
  .wage-source-steps li::after { content: ""; }
  .wage-review-summary { width: 100%; padding: 8px 0 0; border-top: 1px solid rgba(255,255,255,.22); border-left: 0; text-align: left; }
  .wage-action-buttons { justify-content: stretch; }
  .wage-action-buttons button { flex: 1; }
}
@media (max-width: 380px) {
  .rate-constant-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .rate-ledger-hero, .rate-ledger-section, .rate-history, .cost-audit-section { padding: 16px 12px; }
  .rate-workspace-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rate-workspace-tab { min-height: 38px; padding: 7px 8px; font-size: 10px; }
  .gate-pricing-card-header { align-items: flex-start; flex-direction: column; }
  .gate-price-formula { grid-template-columns: repeat(2, minmax(112px, 1fr)); overflow: visible; }
  .gate-price-formula > span { padding: 6px 7px; border: 1px solid #d3dfd5; border-radius: 5px; background: #f8fbf8; }
  .gate-price-formula > i { display: none; }
  .gate-driver-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gate-finish-rate-grid { grid-template-columns: 1fr; }
  .gate-role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gate-base-components summary { align-items: flex-start; flex-direction: column; }
  .cost-audit-intro { padding: 15px; }
  .cost-audit-intro > div:first-child { grid-template-columns: 1fr; }
  .cost-audit-intro .rate-section-code { justify-self: start; }
  .cost-audit-intro p { grid-column: 1; }
  .cost-audit-actions { align-items: stretch; flex-direction: column; }
  .cost-audit-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cost-audit-mobilization-grid, .cost-audit-demolition-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cost-audit-equation { padding: 13px; }
  .rate-ledger-savebar { position: static; }
  .rate-history-row { grid-template-columns: 1fr auto; }
  .rate-history-row p { grid-column: 1 / -1; }
  .fence-sales-scope .sales-scope-intro { align-items: start; }
  .scope-rate-badge { width: 100%; text-align: left; }
}
