/* Final quote table alignment overrides. Loaded after theme-overrides.css on purpose. */
.sav-quote-document-host,
.sav-quote-preview-shell,
body.sav-force-client-print .quote-editor-shell {
  --sav-quote-black-number-size: 8.8px;
  --sav-quote-blue-number-size: 8.8px;
  --sav-quote-margin-number-size: 7.2px;
  --sav-quote-header-number-size: 7.2px;
}

.sav-quote-document-host .sav-services-edit-table {
  --sav-service-edit-grid-final: 52px minmax(0, 1fr) 42px 36px 74px 34px 76px 156px;
  overflow: visible !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-rows,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only {
  overflow: visible !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only {
  align-items: stretch !important;
  display: grid !important;
  grid-auto-columns: unset !important;
  grid-auto-flow: row !important;
  grid-template-columns: var(--sav-service-edit-grid-final) !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header {
  min-height: 28px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only {
  min-height: 30px !important;
  position: relative !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > textarea[data-field],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-client-unit,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-amount-stack {
  box-sizing: border-box !important;
  min-width: 0 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span) {
  align-items: center !important;
  display: flex !important;
  font-size: var(--sav-quote-header-number-size) !important;
  height: 100% !important;
  line-height: 1.05 !important;
  min-height: 28px !important;
  padding: 0 5px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(1),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="lineNumber"] {
  grid-column: 1 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(2),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > textarea[data-field="description"] {
  grid-column: 2 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(3),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="quantity"] {
  grid-column: 3 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(4),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="unit"] {
  grid-column: 4 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(5),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="supplierUnitPriceHT"] {
  grid-column: 5 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(6),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="marginValue"] {
  grid-column: 6 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(7),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-client-unit,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"] {
  grid-column: 7 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(8),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-amount-stack {
  grid-column: 8 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(1),
.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(4),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="lineNumber"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="unit"] {
  justify-content: center !important;
  text-align: center !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(2),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > textarea[data-field="description"] {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(3),
.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(5),
.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(6),
.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(7),
.sav-quote-document-host .sav-services-edit-table .sav-service-header > :is(strong, span):nth-child(8),
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="quantity"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="supplierUnitPriceHT"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="marginValue"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-client-unit,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-amount-stack {
  justify-content: flex-end !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > textarea[data-field],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-client-unit,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-amount-stack {
  align-self: stretch !important;
  border-radius: 0 !important;
  font-size: var(--sav-quote-black-number-size) !important;
  height: 100% !important;
  min-height: 30px !important;
  padding-block: 0 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="quantity"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="supplierUnitPriceHT"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="marginValue"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"] {
  line-height: 30px !important;
  padding-inline: 4px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="unit"] {
  padding-inline: 4px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > textarea[data-field="description"] {
  align-content: center !important;
  display: block !important;
  overflow: hidden !important;
  padding: 0 6px !important;
  resize: none !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-client-unit {
  align-content: center !important;
  align-items: center !important;
  display: grid !important;
  justify-content: end !important;
  line-height: 1.05 !important;
  padding: 0 6px !important;
  place-items: center end !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"] {
  align-items: center !important;
  background: #ffffff !important;
  color: #111827 !important;
  display: flex !important;
  font-weight: 700 !important;
  justify-content: flex-end !important;
  line-height: 30px !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-amount-stack {
  align-content: center !important;
  align-items: center !important;
  column-gap: 6px !important;
  display: grid !important;
  grid-template-columns: max-content max-content !important;
  grid-template-rows: auto auto !important;
  justify-content: end !important;
  justify-items: end !important;
  padding: 0 6px 0 2px !important;
  row-gap: 0 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-amount-stack > strong {
  align-self: center !important;
  display: block !important;
  font-size: var(--sav-quote-black-number-size) !important;
  grid-column: 1 !important;
  grid-row: 1 / span 2 !important;
  line-height: 1.05 !important;
  margin: 0 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only .sav-line-margin-badge {
  align-items: flex-end !important;
  display: flex !important;
  flex-direction: column !important;
  font-size: var(--sav-quote-margin-number-size) !important;
  gap: 0 !important;
  grid-column: 2 !important;
  line-height: 1.02 !important;
  margin: 0 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-row-actions {
  align-items: center !important;
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid #d7dde7 !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.14) !important;
  display: inline-flex !important;
  gap: 4px !important;
  justify-self: start !important;
  left: calc(100% + 14px) !important;
  max-width: none !important;
  min-height: 24px !important;
  opacity: 0 !important;
  padding: 2px 4px !important;
  pointer-events: none !important;
  position: absolute !important;
  right: auto !important;
  top: 50% !important;
  transform: translate(7px, -50%) !important;
  transition:
    opacity 0.16s ease 0.35s,
    transform 0.16s ease 0.35s,
    visibility 0s linear 0.7s !important;
  visibility: hidden !important;
  z-index: 80 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-row-actions::before {
  bottom: -14px !important;
  content: "" !important;
  display: block !important;
  left: -34px !important;
  position: absolute !important;
  top: -14px !important;
  width: 40px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only:hover > .sav-row-actions,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only:focus-within > .sav-row-actions,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only.is-row-actions-open > .sav-row-actions,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-row-actions:hover,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only.is-row-dragging > .sav-row-actions {
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translate(0, -50%) !important;
  transition:
    opacity 0.1s ease,
    transform 0.12s ease,
    visibility 0s linear 0s !important;
  visibility: visible !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-row-actions button {
  align-items: center !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  font-size: 8px !important;
  height: 18px !important;
  justify-content: center !important;
  line-height: 1 !important;
  min-height: 18px !important;
  min-width: 18px !important;
  padding: 0 !important;
  width: 18px !important;
}

/* 2026-06-03: shared quote document rhythm across edit, preview, PDF and print. */
.sav-quote-document-host,
.sav-quote-preview-shell .sav-quote-document-host,
body.sav-force-client-print .quote-editor-shell .sav-quote-document-host {
  --sav-quote-black-number-size: 8.8px;
  --sav-quote-blue-number-size: 8.8px;
  --sav-quote-margin-number-size: 7.15px;
  --sav-quote-header-number-size: 7.2px;
  --sav-quote-service-line-height: 1.08;
  --sav-service-export-grid-final: 52px minmax(0, 1fr) 42px 36px 76px 112px;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-header,
.sav-quote-document-host .sav-services-client-table .sav-service-export-line,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-header,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-header,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line {
  align-items: stretch !important;
  display: grid !important;
  grid-template-columns: var(--sav-service-export-grid-final) !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-header > strong,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-header > strong,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-header > strong {
  align-items: center !important;
  box-sizing: border-box !important;
  display: flex !important;
  font-size: var(--sav-quote-header-number-size) !important;
  font-weight: 600 !important;
  justify-content: center !important;
  line-height: 1.05 !important;
  min-height: 22px !important;
  padding: 0 5px !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-header > strong:nth-child(2),
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-header > strong:nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-header > strong:nth-child(2) {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-header > strong:nth-child(n + 3),
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-header > strong:nth-child(n + 3),
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-header > strong:nth-child(n + 3) {
  justify-content: flex-end !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-line > span,
.sav-quote-document-host .sav-services-client-table .sav-service-export-line > strong,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line > span,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line > strong,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line > span,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line > strong {
  align-items: center !important;
  align-self: stretch !important;
  box-sizing: border-box !important;
  display: flex !important;
  font-size: var(--sav-quote-black-number-size) !important;
  line-height: var(--sav-quote-service-line-height) !important;
  min-height: 22px !important;
  padding: 3px 5px !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-line > span:first-child,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line > span:first-child,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line > span:first-child {
  justify-content: center !important;
  text-align: center !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-line > span:nth-child(2),
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line > span:nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line > span:nth-child(2) {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-line > span:nth-child(3),
.sav-quote-document-host .sav-services-client-table .sav-service-export-line > span:nth-child(5),
.sav-quote-document-host .sav-services-client-table .sav-service-export-line > strong,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line > span:nth-child(3),
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line > span:nth-child(5),
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-line > strong,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line > span:nth-child(3),
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line > span:nth-child(5),
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-line > strong {
  justify-content: flex-end !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="supplierUnitPriceHT"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"],
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-client-unit {
  align-items: center !important;
  align-self: stretch !important;
  display: flex !important;
  font-size: var(--sav-quote-black-number-size) !important;
  justify-content: flex-end !important;
  line-height: 1 !important;
  min-height: 100% !important;
  padding: 0 6px !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only .sav-line-margin-badge,
.sav-quote-document-host .sav-services-client-table .sav-line-margin-badge,
.sav-quote-preview-shell .sav-services-client-table .sav-line-margin-badge,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-line-margin-badge,
.sav-quote-document-host .sav-service-subtotal-totals .sav-margin-metric,
.sav-quote-document-host .sav-service-totals .sav-margin-metric,
.sav-quote-document-host .sav-client-totals .sav-margin-metric,
.sav-quote-document-host .sav-global-summary-totals .sav-margin-metric {
  font-size: var(--sav-quote-margin-number-size) !important;
  line-height: 1.03 !important;
}

/* Keep inline subsection subtotals narrower and slightly left of the final table total. */
.sav-quote-document-host .sav-service-subtotal,
.sav-quote-preview-shell .sav-service-subtotal,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal {
  align-items: start !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  column-gap: 14px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 236px) 22px !important;
  margin: 5px 42px 7px 52px !important;
  max-width: calc(100% - 94px) !important;
  padding: 0 !important;
  position: relative !important;
}

.sav-quote-document-host .sav-service-subtotal.sav-export-only,
.sav-quote-preview-shell .sav-service-subtotal.sav-export-only,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal.sav-export-only {
  grid-template-columns: minmax(0, 1fr) minmax(196px, 224px) !important;
  margin: 5px 42px 7px 52px !important;
}

.sav-quote-document-host .sav-service-subtotal-label,
.sav-quote-preview-shell .sav-service-subtotal-label,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-label {
  align-self: start !important;
  color: #111827 !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 800 !important;
  justify-self: end !important;
  line-height: 1.12 !important;
  padding: 2px 8px 0 0 !important;
  text-align: right !important;
  white-space: normal !important;
}

.sav-quote-document-host .sav-service-subtotal-totals,
.sav-quote-preview-shell .sav-service-subtotal-totals,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals {
  border-top: 1px solid #d7dde7 !important;
  display: grid !important;
  gap: 1px !important;
  justify-self: end !important;
  justify-items: end !important;
  min-width: 0 !important;
  padding-top: 3px !important;
  text-align: right !important;
  width: 224px !important;
}

.sav-quote-document-host .sav-service-subtotal-totals span,
.sav-quote-preview-shell .sav-service-subtotal-totals span,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals span {
  align-items: baseline !important;
  column-gap: 8px !important;
  display: grid !important;
  font-size: var(--sav-quote-black-number-size) !important;
  grid-template-columns: minmax(116px, 1fr) minmax(74px, max-content) !important;
  justify-content: end !important;
  justify-items: end !important;
  line-height: 1.08 !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-service-subtotal-totals strong,
.sav-quote-preview-shell .sav-service-subtotal-totals strong,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals strong {
  min-width: 74px !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-service-subtotal > button[data-service-action="delete-subtotal"],
.sav-quote-preview-shell .sav-service-subtotal > button[data-service-action="delete-subtotal"],
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal > button[data-service-action="delete-subtotal"] {
  align-self: start !important;
  grid-column: 3 !important;
  justify-self: end !important;
  margin-top: -1px !important;
  position: relative !important;
  right: auto !important;
  top: auto !important;
}

/* 2026-06-03: compact page rhythm, payment export lines, and exclusive row flyouts. */
.sav-quote-document-host {
  --sav-page-separator-shadow: 0 1px 0 rgba(216, 222, 232, 0.95);
}

.sav-quote-document-host .sav-page-surface,
.sav-quote-preview-shell .sav-quote-document-host .sav-page-surface {
  border: 0 !important;
  box-shadow: var(--sav-page-separator-shadow) !important;
}

body.sav-force-client-print .quote-editor-shell .sav-page-surface {
  border: 0 !important;
  box-shadow: none !important;
}

.sav-quote-document-host .sav-page-footer {
  border-bottom: 1px solid rgba(215, 221, 231, 0.72) !important;
}

.sav-quote-document-host .sav-flow-block:not(.sav-services-block) {
  margin-top: 0 !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary,
.sav-quote-document-host .sav-payment-block .sav-payment-schedule,
.sav-quote-document-host.sav-print-client-view .sav-payment-block .sav-payment-export,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary,
.sav-quote-preview-shell .sav-payment-block .sav-payment-export,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary,
body.sav-force-client-print .quote-editor-shell .sav-payment-block .sav-payment-export {
  margin-block: 0 !important;
  padding-block: 4px !important;
}

.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-payment-export.sav-export-only {
  display: none !important;
}

.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-payment-schedule.sav-edit-only {
  display: grid !important;
}

.sav-quote-preview-shell .sav-quote-document-host .sav-payment-schedule.sav-edit-only,
body.sav-force-client-print .quote-editor-shell .sav-payment-schedule.sav-edit-only {
  display: none !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export.sav-export-only,
.sav-quote-preview-shell .sav-payment-export,
body.sav-force-client-print .quote-editor-shell .sav-payment-export {
  align-items: stretch !important;
  display: grid !important;
  gap: 0 !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-payment-export > strong,
.sav-quote-preview-shell .sav-payment-export > strong,
body.sav-force-client-print .quote-editor-shell .sav-payment-export > strong {
  color: #111827 !important;
  display: block !important;
  font-size: 9px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  margin: 0 0 8px !important;
  text-decoration: underline !important;
}

.sav-quote-document-host .sav-payment-export-header,
.sav-quote-document-host .sav-payment-export-line,
.sav-quote-preview-shell .sav-payment-export-header,
.sav-quote-preview-shell .sav-payment-export-line,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line {
  align-items: stretch !important;
  border-bottom: 1px solid #d7dde7 !important;
  box-sizing: border-box !important;
  column-gap: 10px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 68px 112px 112px !important;
  min-height: 24px !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-payment-export-header,
.sav-quote-preview-shell .sav-payment-export-header,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header {
  border-top: 1px solid #9aa3ad !important;
  color: #667085 !important;
  font-size: var(--sav-quote-header-number-size) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.sav-quote-document-host .sav-payment-export-header > span,
.sav-quote-document-host .sav-payment-export-line > span,
.sav-quote-document-host .sav-payment-export-line > strong,
.sav-quote-preview-shell .sav-payment-export-header > span,
.sav-quote-preview-shell .sav-payment-export-line > span,
.sav-quote-preview-shell .sav-payment-export-line > strong,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > strong {
  align-items: center !important;
  box-sizing: border-box !important;
  display: flex !important;
  font-size: var(--sav-quote-black-number-size) !important;
  line-height: 1.08 !important;
  min-height: 24px !important;
  padding: 3px 2px !important;
}

.sav-quote-document-host .sav-payment-export-header > span:first-child,
.sav-quote-document-host .sav-payment-export-line > span:first-child,
.sav-quote-preview-shell .sav-payment-export-header > span:first-child,
.sav-quote-preview-shell .sav-payment-export-line > span:first-child,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header > span:first-child,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > span:first-child {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-quote-document-host .sav-payment-export-header > span:nth-child(n + 2),
.sav-quote-document-host .sav-payment-export-line > strong,
.sav-quote-preview-shell .sav-payment-export-header > span:nth-child(n + 2),
.sav-quote-preview-shell .sav-payment-export-line > strong,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header > span:nth-child(n + 2),
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > strong {
  justify-content: flex-end !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-row-actions {
  transition:
    opacity 0.12s ease,
    transform 0.12s ease,
    visibility 0s linear 0.12s !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only.is-row-actions-open > .sav-row-actions,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-row-actions:hover {
  transition:
    opacity 0.1s ease,
    transform 0.12s ease,
    visibility 0s linear 0s !important;
}

.sav-doc-plus-menu .sav-doc-plus-icon {
  display: block !important;
  fill: none !important;
  height: 15px !important;
  stroke: currentColor !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.8 !important;
  width: 15px !important;
}

/* 2026-06-03: continuous editing canvas; pagination is reserved for preview/PDF/print. */
.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) {
  --sav-page-visual-gap: 0px !important;
  background: #ffffff !important;
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.10) !important;
}

.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-doc-page-inner {
  background: #ffffff !important;
}

.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-page-surface,
.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-page-footer,
.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-doc-footer,
.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-doc-continuation-header,
.sav-quote-editor-shell .sav-quote-document-host:not(.sav-print-client-view) .sav-page-break-gap {
  display: none !important;
}

/* 2026-06-03: final PDF/print summary lock, prevents total columns from overlapping. */
.sav-quote-document-host .sav-summary-block .sav-global-summary,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary {
  align-items: start !important;
  column-gap: 18px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(186px, 218px) !important;
  margin: 0 !important;
  overflow: visible !important;
  padding: 0 !important;
  row-gap: 6px !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary > strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary > strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary > strong {
  color: #111827 !important;
  font-size: 9.2px !important;
  font-weight: 800 !important;
  grid-column: 1 / -1 !important;
  line-height: 1.15 !important;
  margin: 0 0 3px !important;
  text-align: left !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid {
  display: grid !important;
  grid-column: 1 !important;
  grid-template-columns: minmax(0, 1fr) 116px !important;
  min-width: 0 !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > *,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > *,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > * {
  align-items: center !important;
  border-bottom: 1px solid #d7dde7 !important;
  box-sizing: border-box !important;
  display: flex !important;
  font-size: var(--sav-quote-black-number-size) !important;
  line-height: 1.08 !important;
  min-height: 20px !important;
  min-width: 0 !important;
  padding: 3px 0 !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > span:nth-child(2n + 1),
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2n + 1),
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2n + 1) {
  justify-content: flex-start !important;
  overflow: hidden !important;
  padding-right: 10px !important;
  text-align: left !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > strong {
  align-items: flex-end !important;
  display: flex !important;
  flex-direction: column !important;
  font-size: var(--sav-quote-black-number-size) !important;
  justify-content: center !important;
  line-height: 1.04 !important;
  min-width: 0 !important;
  overflow: visible !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid .sav-margin-metric,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid .sav-margin-metric,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid .sav-margin-metric {
  display: block !important;
  font-size: var(--sav-quote-margin-number-size) !important;
  line-height: 1.03 !important;
  margin-top: 1px !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals {
  align-self: start !important;
  border-top: 1px solid #d7dde7 !important;
  display: grid !important;
  gap: 2px !important;
  grid-column: 2 !important;
  justify-items: stretch !important;
  margin: 0 !important;
  min-width: 0 !important;
  padding-top: 4px !important;
  text-align: right !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals span,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals span,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals span {
  align-items: baseline !important;
  column-gap: 8px !important;
  display: grid !important;
  font-size: var(--sav-quote-black-number-size) !important;
  grid-template-columns: minmax(82px, 1fr) minmax(82px, max-content) !important;
  justify-content: stretch !important;
  justify-items: end !important;
  line-height: 1.08 !important;
  min-width: 0 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals strong {
  display: block !important;
  min-width: 82px !important;
  text-align: right !important;
}

/* 2026-06-03: client summary is one table; totals stack below it, never beside it. */
.sav-quote-document-host .sav-summary-block .sav-global-summary,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary {
  column-gap: 0 !important;
  grid-template-columns: minmax(0, 1fr) !important;
  row-gap: 5px !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid {
  grid-column: 1 !important;
  grid-template-columns: minmax(0, 1fr) 126px !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals {
  grid-column: 1 !important;
  justify-self: end !important;
  margin-top: 4px !important;
  max-width: 240px !important;
  width: min(240px, 100%) !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-global-summary .sav-internal,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-global-summary .sav-margin-metric,
.sav-quote-document-host.sav-print-client-view .sav-global-summary .sav-internal,
.sav-quote-document-host.sav-print-client-view .sav-global-summary .sav-margin-metric,
body.sav-force-client-print .quote-editor-shell .sav-global-summary .sav-internal,
body.sav-force-client-print .quote-editor-shell .sav-global-summary .sav-margin-metric,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-services-client-table .sav-internal,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-services-client-table .sav-margin-metric,
.sav-quote-document-host.sav-print-client-view .sav-services-client-table .sav-internal,
.sav-quote-document-host.sav-print-client-view .sav-services-client-table .sav-margin-metric,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-internal,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-margin-metric {
  display: none !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-summary-block .sav-global-summary-totals span,
.sav-quote-document-host.sav-print-client-view .sav-summary-block .sav-global-summary-totals span,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals span {
  grid-template-columns: minmax(78px, 1fr) minmax(84px, max-content) !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-quote-document-host .sav-internal,
.sav-quote-document-host.sav-print-client-view .sav-internal,
body.sav-force-client-print .quote-editor-shell .sav-quote-document-host .sav-internal {
  display: none !important;
}

/* 2026-06-03: service hierarchy numbering rhythm. */
.sav-quote-document-host .sav-services-title-content,
.sav-quote-preview-shell .sav-services-title-content,
body.sav-force-client-print .quote-editor-shell .sav-services-title-content {
  line-height: 1.12 !important;
  margin-bottom: 2px !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-header,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-header,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-header {
  margin-bottom: 2px !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-section,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-section,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-section {
  box-sizing: border-box !important;
  color: #111827 !important;
  display: block !important;
  font-size: 9.2px !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  margin: 4px 0 2px !important;
  min-height: 0 !important;
  padding: 2px 0 !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-section-level-1,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-section-level-1,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-section-level-1 {
  margin-top: 5px !important;
}

.sav-quote-document-host .sav-services-client-table .sav-service-export-section-level-2,
.sav-quote-document-host .sav-services-client-table .sav-service-export-section-level-3,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-section-level-2,
.sav-quote-preview-shell .sav-services-client-table .sav-service-export-section-level-3,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-section-level-2,
body.sav-force-client-print .quote-editor-shell .sav-services-client-table .sav-service-export-section-level-3 {
  margin-top: 3px !important;
  padding-top: 1px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-section {
  min-height: 22px !important;
  padding-block: 0 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-section > span,
.sav-quote-document-host .sav-services-edit-table .sav-service-section [contenteditable="true"] {
  line-height: 1.08 !important;
  min-height: 20px !important;
}

/* 2026-06-03: printable client documents must never expose internal margin data. */
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-internal,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-margin-metric,
.sav-quote-document-host.sav-print-client-view .sav-internal,
.sav-quote-document-host.sav-print-client-view .sav-margin-metric,
body.sav-force-client-print .quote-editor-shell .sav-internal,
body.sav-force-client-print .quote-editor-shell .sav-margin-metric {
  display: none !important;
  visibility: hidden !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-summary-block,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-payment-block,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-signature-block,
.sav-quote-document-host.sav-print-client-view .sav-summary-block,
.sav-quote-document-host.sav-print-client-view .sav-payment-block,
.sav-quote-document-host.sav-print-client-view .sav-signature-block,
body.sav-force-client-print .quote-editor-shell .sav-summary-block,
body.sav-force-client-print .quote-editor-shell .sav-payment-block,
body.sav-force-client-print .quote-editor-shell .sav-signature-block {
  break-inside: avoid !important;
  contain: none !important;
  overflow: visible !important;
  page-break-inside: avoid !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-summary-block .sav-global-summary,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-payment-block .sav-payment-export,
.sav-quote-preview-shell.sav-quote-preview-readonly .sav-signature-block .sav-signature-layout,
.sav-quote-document-host.sav-print-client-view .sav-summary-block .sav-global-summary,
.sav-quote-document-host.sav-print-client-view .sav-payment-block .sav-payment-export,
.sav-quote-document-host.sav-print-client-view .sav-signature-block .sav-signature-layout,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary,
body.sav-force-client-print .quote-editor-shell .sav-payment-block .sav-payment-export,
body.sav-force-client-print .quote-editor-shell .sav-signature-block .sav-signature-layout {
  position: static !important;
}

@media print {
  body.sav-force-client-print .quote-editor-shell .sav-page-flow-break-page {
    break-before: auto !important;
    page-break-before: auto !important;
  }

  body.sav-force-client-print .quote-editor-shell .sav-page-flow-break:not(.sav-page-flow-break-page) {
    break-before: auto !important;
    page-break-before: auto !important;
  }

  .sav-quote-preview-shell.sav-quote-preview-readonly .sav-internal,
  .sav-quote-preview-shell.sav-quote-preview-readonly .sav-margin-metric,
  .sav-quote-document-host.sav-print-client-view .sav-internal,
  .sav-quote-document-host.sav-print-client-view .sav-margin-metric,
  body.sav-force-client-print .quote-editor-shell .sav-internal,
  body.sav-force-client-print .quote-editor-shell .sav-margin-metric {
    display: none !important;
    visibility: hidden !important;
  }

  .sav-quote-preview-shell.sav-quote-preview-readonly .sav-summary-block,
  .sav-quote-preview-shell.sav-quote-preview-readonly .sav-payment-block,
  .sav-quote-preview-shell.sav-quote-preview-readonly .sav-signature-block,
  .sav-quote-document-host.sav-print-client-view .sav-summary-block,
  .sav-quote-document-host.sav-print-client-view .sav-payment-block,
  .sav-quote-document-host.sav-print-client-view .sav-signature-block,
  body.sav-force-client-print .quote-editor-shell .sav-summary-block,
  body.sav-force-client-print .quote-editor-shell .sav-payment-block,
  body.sav-force-client-print .quote-editor-shell .sav-signature-block {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}

/* 2026-06-09: line media must reserve space in the document flow before print/PDF. */
.sav-quote-document-host .sav-service-line-media,
.sav-quote-preview-shell .sav-service-line-media,
body.sav-force-client-print .quote-editor-shell .sav-service-line-media {
  align-items: start !important;
  clear: both !important;
  display: block !important;
  height: auto !important;
  max-width: calc(100% - 74px) !important;
  min-height: max(var(--sav-line-media-min-height, 1px), 1px) !important;
  overflow: visible !important;
  position: relative !important;
  width: calc(100% - 74px) !important;
}

body.sav-force-client-print .quote-editor-shell .sav-service-line-media.sav-export-only {
  display: block !important;
  margin: 5px 0 7px 54px !important;
}

.sav-quote-document-host .sav-line-media-figure,
.sav-quote-preview-shell .sav-line-media-figure,
body.sav-force-client-print .quote-editor-shell .sav-line-media-figure {
  display: block !important;
  line-height: 0 !important;
  margin: 0 !important;
  max-width: min(430px, 100%) !important;
  position: relative !important;
}

.sav-quote-document-host .sav-line-media-figure img,
.sav-quote-preview-shell .sav-line-media-figure img,
body.sav-force-client-print .quote-editor-shell .sav-line-media-figure img {
  display: block !important;
  height: auto !important;
  max-height: 218px !important;
  max-width: min(430px, 100%) !important;
  object-fit: contain !important;
}

/* 2026-06-03: final winning total typography override. */
.sav-quote-document-host .sav-service-totals .sav-supplier-metric,
.sav-quote-document-host .sav-service-totals .sav-supplier-metric strong,
.sav-quote-document-host .sav-service-totals .sav-margin-metric,
.sav-quote-document-host .sav-service-totals .sav-margin-metric strong,
.sav-quote-document-host .sav-service-subtotal-totals .sav-margin-metric,
.sav-quote-document-host .sav-service-subtotal-totals .sav-margin-metric strong,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-margin-metric,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-margin-metric strong,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-margin-metric,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-margin-metric strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-margin-metric,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-margin-metric strong {
  color: #005eb8 !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
}

.sav-quote-document-host .sav-service-totals .sav-total-client-ht,
.sav-quote-document-host .sav-service-totals .sav-total-client-ht strong,
.sav-quote-document-host .sav-client-totals .sav-total-client-ht,
.sav-quote-document-host .sav-client-totals .sav-total-client-ht strong,
.sav-quote-document-host .sav-service-subtotal-totals .sav-total-client-ht,
.sav-quote-document-host .sav-service-subtotal-totals .sav-total-client-ht strong,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-total-client-ht,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-total-client-ht strong,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-client-ht,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-client-ht strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-total-client-ht,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-total-client-ht strong {
  color: #111827 !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
}

.sav-quote-document-host .sav-service-totals .sav-vat-metric,
.sav-quote-document-host .sav-service-totals .sav-vat-metric strong,
.sav-quote-document-host .sav-client-totals .sav-vat-metric,
.sav-quote-document-host .sav-client-totals .sav-vat-metric strong,
.sav-quote-document-host .sav-service-subtotal-totals .sav-vat-metric,
.sav-quote-document-host .sav-service-subtotal-totals .sav-vat-metric strong,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-vat-metric,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-vat-metric strong,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-vat-metric,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-vat-metric strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-vat-metric,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-vat-metric strong {
  color: #111827 !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 400 !important;
  line-height: 1.08 !important;
}

/* 2026-06-03: summary amount header alignment. */
.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > span:nth-child(2),
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2) {
  justify-content: flex-end !important;
  padding-left: 10px !important;
  padding-right: 0 !important;
  text-align: right !important;
}

/* 2026-06-03: client TOTAL table layout, aligned like the reference PDF. */
.sav-quote-document-host .sav-summary-block .sav-global-summary,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  row-gap: 7px !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary > strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary > strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary > strong {
  color: #111827 !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  margin: 0 0 5px !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 134px !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > *,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > *,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > * {
  align-items: center !important;
  border-bottom: 0 !important;
  color: #6b7280 !important;
  display: flex !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 400 !important;
  line-height: 1.16 !important;
  min-height: 16px !important;
  padding: 1.5px 0 !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > :nth-child(1),
.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > :nth-child(2),
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > :nth-child(1),
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > :nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > :nth-child(1),
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > :nth-child(2) {
  border-bottom: 1px solid #8c929b !important;
  color: #6b7280 !important;
  font-weight: 400 !important;
  padding-bottom: 3px !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > span:nth-child(2n + 1),
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2n + 1),
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2n + 1) {
  justify-content: flex-start !important;
  overflow: hidden !important;
  padding-right: 12px !important;
  text-align: left !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > span:nth-child(2),
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2) {
  justify-content: flex-end !important;
  padding-left: 12px !important;
  padding-right: 0 !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > strong {
  align-items: center !important;
  color: #6b7280 !important;
  flex-direction: row !important;
  font-weight: 400 !important;
  justify-content: flex-end !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid .sav-summary-table-title,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid .sav-summary-table-title,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid .sav-summary-table-title {
  color: #111827 !important;
  font-weight: 800 !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals {
  align-self: start !important;
  border-top: 1px solid #8c929b !important;
  display: grid !important;
  gap: 4px !important;
  grid-column: 1 !important;
  justify-self: end !important;
  margin-top: 3px !important;
  max-width: 238px !important;
  padding-top: 5px !important;
  width: 238px !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals span,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals span,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals span {
  align-items: baseline !important;
  color: #6b7280 !important;
  column-gap: 12px !important;
  display: grid !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 400 !important;
  grid-template-columns: minmax(104px, 1fr) minmax(94px, max-content) !important;
  justify-items: end !important;
  line-height: 1.1 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals strong {
  color: inherit !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 400 !important;
  min-width: 94px !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-summary-total-ht,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-summary-total-ht strong,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-summary-total-ttc,
.sav-quote-document-host .sav-summary-block .sav-global-summary-totals .sav-summary-total-ttc strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ht,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ht strong,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ttc,
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ttc strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ht,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ht strong,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ttc,
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-totals .sav-summary-total-ttc strong {
  color: #111827 !important;
  font-weight: 800 !important;
}

/* 2026-06-03: payment schedule PDF/print polish, closer to the Savills reference. */
.sav-quote-document-host.sav-print-client-view .sav-payment-block .sav-payment-export,
.sav-quote-preview-shell .sav-payment-block .sav-payment-export,
body.sav-force-client-print .quote-editor-shell .sav-payment-block .sav-payment-export {
  color: #5f6670 !important;
  gap: 0 !important;
  padding-block: 0 !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export > strong,
.sav-quote-preview-shell .sav-payment-export > strong,
body.sav-force-client-print .quote-editor-shell .sav-payment-export > strong {
  color: #111827 !important;
  font-size: 8.5px !important;
  font-weight: 700 !important;
  line-height: 1.18 !important;
  margin: 0 0 7px !important;
  text-decoration: underline !important;
  text-underline-offset: 2px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-header,
.sav-quote-preview-shell .sav-payment-export-header,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header {
  border-top: 0 !important;
  border-bottom: 1px solid #d5dbe5 !important;
  color: #4b5563 !important;
  font-size: 7.8px !important;
  font-weight: 700 !important;
  min-height: 20px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-line,
.sav-quote-preview-shell .sav-payment-export-line,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line {
  border-bottom: 1px solid #d9dee7 !important;
  color: #5f6670 !important;
  min-height: 21px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-header > span,
.sav-quote-document-host.sav-print-client-view .sav-payment-export-line > span,
.sav-quote-document-host.sav-print-client-view .sav-payment-export-line > strong,
.sav-quote-preview-shell .sav-payment-export-header > span,
.sav-quote-preview-shell .sav-payment-export-line > span,
.sav-quote-preview-shell .sav-payment-export-line > strong,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > strong {
  align-items: center !important;
  color: inherit !important;
  display: flex !important;
  font-size: 8.2px !important;
  font-weight: 400 !important;
  line-height: 1.14 !important;
  min-height: inherit !important;
  padding: 2px 0 !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-header > span,
.sav-quote-preview-shell .sav-payment-export-header > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header > span {
  font-size: 7.8px !important;
  font-weight: 700 !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-line.is-key-phase > span:first-child,
.sav-quote-preview-shell .sav-payment-export-line.is-key-phase > span:first-child,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line.is-key-phase > span:first-child {
  color: #111827 !important;
  font-weight: 700 !important;
}

/* 2026-06-03: dashboard v2 filters, KPI row and compact analytical charts. */
main.sav-dashboard-main,
main.app-main:has(.sav-dashboard-shell) {
  align-items: stretch !important;
  overflow-y: auto !important;
}

.sav-dashboard-shell {
  gap: 16px !important;
  max-width: none !important;
  width: 100% !important;
}

.sav-dashboard-banner {
  display: none !important;
}

.sav-dashboard-v2-header {
  margin-bottom: 2px !important;
}

.sav-dashboard-v2-header h1 {
  color: #0f172a !important;
  font-size: 30px !important;
  font-weight: 850 !important;
  line-height: 1.05 !important;
  margin: 0 !important;
}

.sav-dashboard-v2-header p {
  color: #718096 !important;
  font-size: 12px !important;
  margin: 5px 0 0 !important;
}

.sav-dashboard-v2-kpis {
  background: #ffffff !important;
  border: 1px solid #e5ebf4 !important;
  border-radius: 8px !important;
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  overflow: hidden !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 78px !important;
  padding: 12px 13px !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric + .sav-dashboard-metric {
  border-left: 1px solid #e5ebf4 !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric-icon {
  height: 30px !important;
  width: 30px !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric strong {
  font-size: 20px !important;
  line-height: 1 !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric,
.sav-dashboard-v2-filter-panel,
.sav-dashboard-v2-filter-metrics span,
.sav-dashboard-v2-grid .sav-dashboard-panel {
  border-left: 4px solid var(--sav-dashboard-box-accent, #005eb8) !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric:nth-child(1) {
  --sav-dashboard-box-accent: #e30613;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric:nth-child(2) {
  --sav-dashboard-box-accent: #22c55e;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric:nth-child(3) {
  --sav-dashboard-box-accent: #0f172a;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric:nth-child(4) {
  --sav-dashboard-box-accent: #005eb8;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric:nth-child(5) {
  --sav-dashboard-box-accent: #ffc400;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric:nth-child(6) {
  --sav-dashboard-box-accent: #6366f1;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric:nth-child(7) {
  --sav-dashboard-box-accent: #e30613;
}

.sav-dashboard-v2-filter-panel,
.sav-dashboard-panel {
  background: #ffffff !important;
  border: 1px solid #dbe3ef !important;
  border-radius: 8px !important;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06) !important;
}

.sav-dashboard-v2-filter-panel {
  --sav-dashboard-box-accent: #ffc400;
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: minmax(270px, 0.74fr) minmax(0, 1.26fr) !important;
  padding: 14px !important;
}

.sav-dashboard-v2-filter-left {
  display: grid !important;
  gap: 12px !important;
}

.sav-dashboard-v2-filter-row {
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.sav-dashboard-v2-filter-row label {
  display: grid !important;
  gap: 6px !important;
}

.sav-dashboard-v2-filter-row label > span {
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 650 !important;
  letter-spacing: 0 !important;
  text-transform: uppercase !important;
}

.sav-dashboard-v2-filter-metrics {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.sav-dashboard-v2-filter-metrics span {
  background: #f8fafc !important;
  border: 1px solid #e5ebf4 !important;
  border-radius: 8px !important;
  color: #0f172a !important;
  display: grid !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  gap: 7px !important;
  min-height: 70px !important;
  padding: 11px !important;
}

.sav-dashboard-v2-filter-metrics span.sav-blue,
.sav-dashboard-v2-filter-metrics span.sav-blue strong {
  color: #005eb8 !important;
}

.sav-dashboard-v2-filter-metrics span.sav-filter-metric-black,
.sav-dashboard-v2-filter-metrics span.sav-filter-metric-black strong {
  --sav-dashboard-box-accent: #0f172a;
  color: #0f172a !important;
}

.sav-dashboard-v2-filter-metrics span.sav-filter-metric-blue,
.sav-dashboard-v2-filter-metrics span.sav-filter-metric-blue strong {
  --sav-dashboard-box-accent: #005eb8;
  color: #005eb8 !important;
}

.sav-dashboard-v2-filter-metrics span.sav-filter-metric-red,
.sav-dashboard-v2-filter-metrics span.sav-filter-metric-red strong {
  --sav-dashboard-box-accent: #e30613;
  color: #e30613 !important;
}

.sav-dashboard-v2-filter-metrics strong {
  font-size: 20px !important;
  font-weight: 850 !important;
  line-height: 1 !important;
}

.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global {
  --sav-dashboard-box-accent: #16a34a;
  background: linear-gradient(135deg, #ecfdf3 0%, #f7fee7 100%) !important;
  border-color: #86efac !important;
  color: #14532d !important;
  grid-column: 1 / -1 !important;
  min-height: 88px !important;
  padding: 14px 16px !important;
}

.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global strong {
  color: #15803d !important;
  font-size: 26px !important;
  font-weight: 780 !important;
}

.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global small,
.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global em {
  color: #166534 !important;
  font-size: 11px !important;
  font-style: normal !important;
  font-weight: 560 !important;
  line-height: 1.25 !important;
}

.sav-dashboard-focus-info {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  margin-top: 0 !important;
}

.sav-dashboard-v2-grid {
  display: grid !important;
  gap: 16px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.sav-dashboard-v2-grid .sav-dashboard-panel {
  min-height: 0 !important;
  padding: 16px 18px !important;
}

.sav-dashboard-v2-grid .sav-dashboard-panel:nth-child(1) {
  --sav-dashboard-box-accent: #22c55e;
}

.sav-dashboard-v2-grid .sav-dashboard-panel:nth-child(2) {
  --sav-dashboard-box-accent: #005eb8;
}

.sav-dashboard-v2-grid .sav-dashboard-panel:nth-child(3) {
  --sav-dashboard-box-accent: #ffc400;
}

.sav-dashboard-v2-grid .sav-dashboard-panel:nth-child(4) {
  --sav-dashboard-box-accent: #6366f1;
}

.sav-dashboard-v2-grid .sav-dashboard-panel:nth-child(5) {
  --sav-dashboard-box-accent: #16a34a;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric,
.sav-dashboard-v2-filter-panel,
.sav-dashboard-v2-filter-metrics span,
.sav-dashboard-v2-grid .sav-dashboard-panel {
  border-left-color: var(--sav-dashboard-box-accent, #005eb8) !important;
  border-left-style: solid !important;
  border-left-width: 4px !important;
}

.sav-dashboard-v2-grid .sav-dashboard-panel::before,
.sav-dashboard-v2-filter-panel::before {
  display: none !important;
}

.sav-dashboard-panel h2 {
  color: #0f172a !important;
  font-size: 15px !important;
  font-weight: 850 !important;
  line-height: 1.1 !important;
  margin: 0 0 13px !important;
}

.sav-dashboard-forecast-panel {
  grid-column: 1 / -1 !important;
}

.sav-dashboard-table {
  border-collapse: collapse !important;
  width: 100% !important;
}

.sav-dashboard-table th,
.sav-dashboard-table td {
  border-bottom: 1px solid #e5ebf4 !important;
  color: #334155 !important;
  font-size: 12px !important;
  line-height: 1.22 !important;
  padding: 8px 6px !important;
  vertical-align: middle !important;
}

.sav-dashboard-table th {
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 850 !important;
  text-transform: uppercase !important;
}

.sav-dashboard-table th:nth-child(n + 3),
.sav-dashboard-table td:nth-child(n + 3) {
  text-align: right !important;
}

.sav-dashboard-table td strong {
  color: #0f172a !important;
  display: block !important;
  font-weight: 800 !important;
}

.sav-dashboard-table td small {
  color: #64748b !important;
  display: block !important;
  font-size: 10px !important;
  margin-top: 2px !important;
}

.sav-dashboard-table .sav-blue,
.sav-dashboard-table .sav-blue strong,
.sav-dashboard-table .sav-blue small {
  color: #005eb8 !important;
}

.sav-dashboard-pie-wrap {
  align-items: center !important;
  display: grid !important;
  gap: 18px !important;
  grid-template-columns: 152px minmax(0, 1fr) !important;
}

.sav-dashboard-pie {
  align-items: center !important;
  aspect-ratio: 1 !important;
  background: var(--pie, conic-gradient(#e5e7eb 0 360deg)) !important;
  border-radius: 50% !important;
  display: grid !important;
  justify-items: center !important;
  position: relative !important;
}

.sav-dashboard-pie::after {
  background: #ffffff !important;
  border-radius: 50% !important;
  box-shadow: inset 0 0 0 1px #e5ebf4 !important;
  content: "" !important;
  inset: 28px !important;
  position: absolute !important;
}

.sav-dashboard-pie strong,
.sav-dashboard-pie span {
  color: #0f172a !important;
  position: relative !important;
  text-align: center !important;
  z-index: 1 !important;
}

.sav-dashboard-pie strong {
  align-self: end !important;
  font-size: 16px !important;
  font-weight: 850 !important;
}

.sav-dashboard-pie span {
  align-self: start !important;
  color: #64748b !important;
  font-size: 10px !important;
  font-weight: 750 !important;
  margin-top: 2px !important;
  text-transform: uppercase !important;
}

.sav-dashboard-pie-legend {
  display: grid !important;
  gap: 8px !important;
}

.sav-dashboard-pie-legend span {
  align-items: center !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: 10px minmax(0, 1fr) max-content !important;
}

.sav-dashboard-pie-legend i {
  background: var(--c) !important;
  border-radius: 50% !important;
  height: 10px !important;
  width: 10px !important;
}

.sav-dashboard-pie-legend b,
.sav-dashboard-pie-legend small {
  color: #334155 !important;
  font-size: 11px !important;
  font-weight: 650 !important;
}

.sav-dashboard-pie-legend small {
  color: #0f172a !important;
  font-variant-numeric: tabular-nums !important;
  text-align: right !important;
}

.sav-dashboard-margin-chart {
  gap: 8px !important;
}

.sav-dashboard-margin-chart > svg {
  background: #f8fafc !important;
  border: 1px solid #e5ebf4 !important;
  border-radius: 8px !important;
  height: 150px !important;
  min-height: 150px !important;
  overflow: visible !important;
  padding: 0 !important;
}

.sav-dashboard-margin-chart > svg polyline {
  fill: none !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  stroke-width: 1.35 !important;
}

.sav-dashboard-margin-chart .sav-estimate-line {
  stroke: #005eb8 !important;
}

.sav-dashboard-margin-chart .sav-real-line {
  stroke: #22c55e !important;
}

.sav-dashboard-margin-chart .sav-dashboard-zero-line {
  stroke: #d8e0eb !important;
  stroke-dasharray: 2 2 !important;
  stroke-width: 0.45 !important;
}

.sav-dashboard-margin-chart > svg circle {
  fill: #ffffff !important;
  r: 1.05 !important;
  stroke-width: 0.75 !important;
}

.sav-dashboard-margin-chart .sav-estimate-point {
  stroke: #005eb8 !important;
}

.sav-dashboard-margin-chart .sav-real-point {
  stroke: #22c55e !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-legend {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px 14px !important;
  grid-template-columns: none !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-legend span {
  align-items: center !important;
  color: #334155 !important;
  display: inline-flex !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  gap: 6px !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-legend i {
  border-radius: 999px !important;
  display: inline-block !important;
  height: 7px !important;
  width: 18px !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-legend i.sav-estimate {
  background: #005eb8 !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-legend i.sav-real {
  background: #22c55e !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-legend strong {
  color: #0f172a !important;
  font-size: 10.5px !important;
  font-weight: 650 !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-axis {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
}

.sav-dashboard-margin-chart > .sav-dashboard-line-axis span {
  color: #64748b !important;
  font-size: 9px !important;
  text-align: center !important;
}

@media (max-width: 1280px) {
  .sav-dashboard-v2-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 980px) {
  .sav-dashboard-v2-filter-panel,
  .sav-dashboard-v2-filter-row,
  .sav-dashboard-v2-filter-metrics,
  .sav-dashboard-v2-grid,
  .sav-dashboard-focus-info,
  .sav-dashboard-pie-wrap {
    grid-template-columns: 1fr !important;
  }

  .sav-dashboard-v2-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* 2026-06-03: Savills D&B fees quote block. */
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > input[data-computed="feeBaseHT"] {
  background: #f8fafc !important;
  color: #475467 !important;
  cursor: default !important;
  font-weight: 700 !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > textarea[data-field="description"] {
  align-content: start !important;
  line-height: 1.16 !important;
  min-height: 104px !important;
  padding-top: 6px !important;
  white-space: pre-wrap !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-export-line > span:nth-child(2),
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-service-export-line > span:nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-service-export-line > span:nth-child(2) {
  line-height: 1.16 !important;
  white-space: normal !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > .sav-amount-stack .sav-line-margin-badge span:first-child {
  color: #1d4ed8 !important;
}

.sav-quote-document-host .sav-global-summary-totals .sav-margin-metric,
.sav-quote-preview-shell .sav-global-summary-totals .sav-margin-metric,
body.sav-force-client-print .quote-editor-shell .sav-global-summary-totals .sav-margin-metric {
  align-items: baseline !important;
}

/* 2026-06-08: quote service drag/drop should match the clean Achat insertion cue. */
.sav-quote-document-host .sav-services-edit-table .sav-service-line,
.sav-quote-document-host .sav-services-edit-table .sav-service-section {
  overflow: visible !important;
  position: relative !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-row-drag-handle {
  align-items: center !important;
  align-self: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  display: inline-flex !important;
  height: 18px !important;
  justify-content: center !important;
  left: -18px !important;
  min-height: 18px !important;
  opacity: 0.58 !important;
  padding: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 14px !important;
  z-index: 12 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.sav-edit-only > .sav-row-drag-handle {
  height: 18px !important;
  left: -18px !important;
  min-height: 18px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 14px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-row-drag-handle::before,
.sav-quote-document-host .sav-services-edit-table .sav-section-drag-handle::before {
  background-image: radial-gradient(circle, #b7c3d4 1.1px, transparent 1.25px) !important;
  background-position:
    0 0,
    5px 0 !important;
  background-size: 5px 5px !important;
  color: transparent !important;
  content: "" !important;
  display: block !important;
  height: 14px !important;
  letter-spacing: 0 !important;
  line-height: 1 !important;
  width: 10px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line:hover .sav-row-drag-handle,
.sav-quote-document-host .sav-services-edit-table .sav-service-line:focus-within .sav-row-drag-handle,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.is-row-dragging .sav-row-drag-handle {
  opacity: 1 !important;
  transform: translateY(-50%) !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-section-drag-handle {
  align-items: center !important;
  align-self: center !important;
  color: transparent !important;
  display: inline-flex !important;
  height: 18px !important;
  justify-content: center !important;
  min-height: 18px !important;
  opacity: 0.58 !important;
  width: 14px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-section:hover .sav-section-drag-handle,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-row-dragging .sav-section-drag-handle {
  opacity: 1 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.is-row-dragging,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-row-dragging {
  background: #ffffff !important;
  box-shadow: 0 1px 10px rgba(15, 23, 42, 0.08) !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.is-line-drop-target,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-line-drop-target,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-section-drop-target {
  background: transparent !important;
  box-shadow: none !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.is-line-drop-before::before,
.sav-quote-document-host .sav-services-edit-table .sav-service-line.is-line-drop-after::after,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-line-drop-before::before,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-line-drop-after::after,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-section-drop-before::before,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-section-drop-after::after {
  background: #005eb8 !important;
  border-radius: 999px !important;
  box-shadow: none !important;
  content: "" !important;
  height: 1px !important;
  left: 0 !important;
  pointer-events: none !important;
  position: absolute !important;
  right: 0 !important;
  z-index: 90 !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.is-line-drop-before::before,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-line-drop-before::before,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-section-drop-before::before {
  top: -1px !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line.is-line-drop-after::after,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-line-drop-after::after,
.sav-quote-document-host .sav-services-edit-table .sav-service-section.is-section-drop-after::after {
  bottom: -1px !important;
}

/* 2026-06-08: refined Dashboard typography, lighter Google/Apple-style weights. */
.sav-dashboard-shell,
.sav-dashboard-shell * {
  font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif !important;
  letter-spacing: 0 !important;
}

.sav-dashboard-shell {
  color: #111827 !important;
  font-weight: 400 !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
}

.sav-dashboard-v2-header h1,
.sav-dashboard-header h1 {
  font-size: 29px !important;
  font-weight: 500 !important;
  line-height: 1.12 !important;
}

.sav-dashboard-v2-header p,
.sav-dashboard-header p,
.sav-dashboard-metric small,
.sav-dashboard-focus-info small,
.sav-dashboard-table td,
.sav-dashboard-pie-legend b,
.sav-dashboard-pie-legend small,
.sav-dashboard-line-chart div span {
  font-weight: 400 !important;
}

.sav-dashboard-panel h2,
.sav-dashboard-v2-filter-row label > span,
.sav-dashboard-table th,
.sav-dashboard-pie span,
.sav-dashboard-focus-info span,
.sav-dashboard-allocation span,
.sav-dashboard-mini-bar span {
  font-weight: 500 !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric > div > span:not(.sav-dashboard-metric-icon),
.sav-dashboard-metric > div > span:not(.sav-dashboard-metric-icon),
.sav-dashboard-v2-filter-metrics span,
.sav-dashboard-focus-metrics span {
  font-weight: 500 !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric strong,
.sav-dashboard-metric strong,
.sav-dashboard-v2-filter-metrics strong,
.sav-dashboard-focus-metrics strong,
.sav-dashboard-table td strong,
.sav-dashboard-pie strong,
.sav-dashboard-allocation strong,
.sav-dashboard-allocation small,
.sav-dashboard-mini-bar strong {
  font-weight: 500 !important;
}

.sav-dashboard-shell h1,
.sav-dashboard-shell h2,
.sav-dashboard-shell h3,
.sav-dashboard-shell strong,
.sav-dashboard-shell b,
.sav-dashboard-shell th {
  font-weight: 500 !important;
}

.sav-dashboard-shell td,
.sav-dashboard-shell p,
.sav-dashboard-shell small,
.sav-dashboard-shell span {
  font-weight: 400 !important;
}

.sav-dashboard-shell .sav-dashboard-metric-icon,
.sav-dashboard-shell .sav-blue,
.sav-dashboard-shell .sav-blue *,
.sav-dashboard-shell .sav-red,
.sav-dashboard-shell .sav-red * {
  font-weight: 500 !important;
}

.sav-dashboard-table tfoot td,
.sav-dashboard-table tr.sav-dashboard-total-row td,
.sav-dashboard-table .sav-blue,
.sav-dashboard-table .sav-blue strong {
  font-weight: 550 !important;
}

.sav-dashboard-v2-filter-metrics strong,
.sav-dashboard-v2-kpis .sav-dashboard-metric strong {
  font-size: 19px !important;
}

/* 2026-06-08: Devis status pill spacing. */
.quote-list-table .quote-list-line .quote-status-cell .sav-quote-status-trigger,
.quote-list-table .quote-list-line > .quote-status-cell .sav-quote-status-trigger,
.quote-list-line .quote-status-cell .sav-quote-status-trigger {
  background-position: right 12px center !important;
  box-sizing: border-box !important;
  column-gap: 10px !important;
  font-weight: 400 !important;
  justify-content: center !important;
  max-width: 108px !important;
  min-width: 88px !important;
  padding: 0 32px 0 14px !important;
}

.sav-billing-table .sav-billing-total-badge,
.sav-schedule-table .sav-billing-total-badge,
.sav-doc-block .sav-billing-total-badge {
  display: none !important;
}

.sav-payment-add:disabled {
  display: none !important;
}

/* 2026-06-09: final app polish - lighter dashboard weights and cleaner quote status pills. */
.sav-dashboard-shell,
.sav-dashboard-shell * {
  font-weight: 400 !important;
}

.sav-dashboard-v2-header h1,
.sav-dashboard-header h1,
.sav-dashboard-panel h2,
.sav-dashboard-table th,
.sav-dashboard-v2-filter-row label > span,
.sav-dashboard-v2-kpis .sav-dashboard-metric > div > span:not(.sav-dashboard-metric-icon),
.sav-dashboard-metric > div > span:not(.sav-dashboard-metric-icon),
.sav-dashboard-v2-filter-metrics > span {
  font-weight: 500 !important;
}

.sav-dashboard-v2-kpis .sav-dashboard-metric strong,
.sav-dashboard-metric strong,
.sav-dashboard-v2-filter-metrics strong,
.sav-dashboard-table td strong,
.sav-dashboard-pie strong {
  font-weight: 500 !important;
}

.sav-dashboard-v2-filter-metrics strong,
.sav-dashboard-v2-kpis .sav-dashboard-metric strong {
  font-size: 18px !important;
  letter-spacing: 0 !important;
}

.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global strong {
  font-size: 24px !important;
  font-weight: 500 !important;
}

/* 2026-06-09: dashboard filter anti-overlap and navigation-safe layout. */
.sav-dashboard-v2-filter-panel {
  align-items: stretch !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr) !important;
  max-width: 100% !important;
  overflow: hidden !important;
}

.sav-dashboard-v2-filter-left,
.sav-dashboard-v2-filter-row,
.sav-dashboard-v2-filter-row label,
.sav-dashboard-v2-filter-metrics,
.sav-dashboard-v2-filter-metrics > span,
.sav-dashboard-focus-info,
.sav-dashboard-focus-info > span {
  box-sizing: border-box !important;
  min-width: 0 !important;
}

.sav-dashboard-v2-filter-row {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.sav-dashboard-v2-filter-row label {
  overflow: hidden !important;
}

.sav-dashboard-focus-select {
  font-size: 12px !important;
  font-weight: 500 !important;
  height: 34px !important;
  line-height: 1.1 !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  padding: 0 26px 0 9px !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.sav-dashboard-v2-filter-metrics {
  align-content: stretch !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.sav-dashboard-v2-filter-metrics > span {
  align-content: center !important;
  overflow: hidden !important;
}

.sav-dashboard-v2-filter-metrics > span,
.sav-dashboard-v2-filter-metrics > span strong,
.sav-dashboard-v2-filter-metrics > span small,
.sav-dashboard-v2-filter-metrics > span em,
.sav-dashboard-focus-info strong {
  font-size: 11.5px !important;
  font-weight: 520 !important;
  overflow-wrap: anywhere !important;
}

.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global {
  grid-column: 1 / -1 !important;
}

@media (max-width: 1180px) {
  .sav-dashboard-v2-filter-panel {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  .sav-dashboard-v2-filter-row,
  .sav-dashboard-v2-filter-metrics,
  .sav-dashboard-focus-info {
    grid-template-columns: 1fr !important;
  }
}

.quote-list-table .quote-list-line .quote-status-cell .sav-quote-status-trigger,
.quote-list-table .quote-list-line > .quote-status-cell .sav-quote-status-trigger,
.quote-list-line .quote-status-cell .sav-quote-status-trigger {
  background-position: right 13px center !important;
  column-gap: 9px !important;
  font-weight: 400 !important;
  max-width: 112px !important;
  min-width: 94px !important;
  padding: 0 32px 0 12px !important;
}

/* 2026-06-09: lighter service subtotals, aligned under service amounts. */
.sav-quote-document-host .sav-service-subtotal,
.sav-quote-preview-shell .sav-service-subtotal,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal {
  align-items: start !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  column-gap: 8px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(176px, 206px) 18px !important;
  margin: 1px 42px 4px 52px !important;
  max-width: calc(100% - 94px) !important;
  padding: 0 !important;
}

.sav-quote-document-host .sav-service-subtotal.sav-export-only,
.sav-quote-preview-shell .sav-service-subtotal.sav-export-only,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal.sav-export-only {
  grid-template-columns: minmax(0, 1fr) minmax(176px, 206px) !important;
  margin: 1px 42px 4px 52px !important;
}

.sav-quote-document-host .sav-service-subtotal-label,
.sav-quote-preview-shell .sav-service-subtotal-label,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-label {
  display: none !important;
}

.sav-quote-document-host .sav-service-subtotal-totals,
.sav-quote-preview-shell .sav-service-subtotal-totals,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals {
  align-self: start !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 1px solid #cfd6df !important;
  display: grid !important;
  gap: 0 !important;
  grid-column: 2 !important;
  justify-self: end !important;
  justify-items: stretch !important;
  margin: 0 !important;
  min-width: 0 !important;
  padding: 2px 0 0 !important;
  text-align: right !important;
  width: 206px !important;
}

.sav-quote-document-host .sav-service-subtotal-totals span,
.sav-quote-preview-shell .sav-service-subtotal-totals span,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals span {
  align-items: baseline !important;
  color: #111827 !important;
  column-gap: 8px !important;
  display: grid !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 400 !important;
  grid-template-columns: minmax(92px, 1fr) minmax(78px, max-content) !important;
  justify-items: end !important;
  line-height: 1.08 !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-service-subtotal-totals strong,
.sav-quote-preview-shell .sav-service-subtotal-totals strong,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals strong {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: 400 !important;
  min-width: 78px !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-service-subtotal-totals .sav-total-ttc,
.sav-quote-document-host .sav-service-subtotal-totals .sav-total-ttc strong,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-ttc,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-ttc strong,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-total-ttc,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-total-ttc strong {
  font-weight: 800 !important;
}

.sav-quote-document-host .sav-service-subtotal-totals .sav-margin-metric,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-margin-metric,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-margin-metric {
  display: none !important;
}

/* 2026-06-09: Savills honoraires table, wider description and dedicated client totals. */
.sav-quote-document-host .sav-services-kind-savillsFees .sav-services-edit-table {
  --sav-service-edit-grid-final: 38px minmax(372px, 1fr) 32px 24px 58px 50px 58px 88px;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-services-edit-table .sav-service-header,
.sav-quote-document-host .sav-services-kind-savillsFees .sav-services-edit-table .sav-service-line.sav-edit-only {
  grid-template-columns: 38px minmax(372px, 1fr) 32px 24px 58px 50px 58px 88px !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-services-client-table,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-services-client-table,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-services-client-table {
  --sav-service-export-grid-final: 42px minmax(330px, 1fr) 38px 30px 76px 104px;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-export-header,
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-export-line,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-service-export-header,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-service-export-line,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-service-export-header,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-service-export-line {
  grid-template-columns: 42px minmax(330px, 1fr) 38px 30px 76px 104px !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-header > :is(strong, span) {
  font-size: 5.85px !important;
  line-height: 1.08 !important;
  min-width: 0 !important;
  overflow: hidden !important;
  padding-inline: 1px !important;
  text-overflow: clip !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-header > :nth-child(6) {
  justify-content: center !important;
  text-align: center !important;
  font-size: 5.55px !important;
  white-space: nowrap !important;
  word-break: keep-all !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only {
  min-height: 170px !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > textarea[data-field="description"] {
  align-content: start !important;
  font-size: 8.25px !important;
  line-height: 1.22 !important;
  min-height: 170px !important;
  overflow: hidden !important;
  padding: 8px 8px 6px !important;
  white-space: pre-wrap !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > input[data-field="quantity"],
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > input[data-field="unit"],
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > input[data-field="supplierUnitPriceHT"],
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > input[data-field="marginValue"],
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > input[data-field="clientUnitPriceHT"],
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > .sav-amount-stack {
  align-self: stretch !important;
  min-height: 170px !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > .sav-amount-stack {
  grid-template-columns: minmax(44px, max-content) minmax(40px, max-content) !important;
  padding-inline: 3px !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-line-margin-badge span {
  max-width: 52px !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-export-line > span:nth-child(2),
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-service-export-line > span:nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-service-export-line > span:nth-child(2) {
  align-items: flex-start !important;
  display: block !important;
  line-height: 1.18 !important;
  padding-top: 4px !important;
}

.sav-fees-description,
.sav-fees-description * {
  font-size: 7.9px !important;
  line-height: 1.24 !important;
}

.sav-fees-description {
  color: #555f6d !important;
}

.sav-fees-description-intro {
  display: grid !important;
  gap: 1px !important;
  margin-bottom: 4px !important;
}

.sav-fees-description-intro span {
  color: #4b5563 !important;
  font-weight: 500 !important;
}

.sav-fees-description ul {
  display: grid !important;
  gap: 2px !important;
  list-style: disc !important;
  margin: 0 !important;
  padding-left: 12px !important;
}

.sav-fees-description li {
  margin: 0 !important;
  padding-left: 1px !important;
}

.sav-fees-description li strong {
  color: #3f4652 !important;
  display: block !important;
  font-weight: 650 !important;
}

.sav-fees-description li span {
  color: #555f6d !important;
  display: block !important;
  font-weight: 400 !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-fees-description,
.sav-quote-document-host .sav-services-kind-savillsFees .sav-fees-description span,
.sav-quote-document-host .sav-services-kind-savillsFees .sav-fees-description strong,
.sav-quote-document-host .sav-services-kind-savillsFees .sav-fees-description li,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-fees-description,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-fees-description span,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-fees-description strong,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-fees-description li,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-fees-description,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-fees-description span,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-fees-description strong,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-fees-description li {
  font-size: 7.9px !important;
  line-height: 1.24 !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-fees-description span,
.sav-quote-document-host .sav-services-kind-savillsFees .sav-fees-description strong,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-fees-description span,
.sav-quote-preview-shell .sav-services-kind-savillsFees .sav-fees-description strong,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-fees-description span,
body.sav-force-client-print .quote-editor-shell .sav-services-kind-savillsFees .sav-fees-description strong {
  align-items: initial !important;
  display: block !important;
  justify-content: initial !important;
}

.sav-quote-document-host .sav-fees-totals,
.sav-quote-document-host .sav-fees-client-totals,
.sav-quote-preview-shell .sav-fees-client-totals,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals {
  border-top: 1px solid #cfd6df !important;
  display: grid !important;
  gap: 2px !important;
  justify-items: stretch !important;
  margin: 6px 0 0 auto !important;
  padding-top: 4px !important;
  text-align: right !important;
  width: 242px !important;
}

.sav-quote-document-host .sav-fees-totals span,
.sav-quote-document-host .sav-fees-client-totals span,
.sav-quote-preview-shell .sav-fees-client-totals span,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals span {
  align-items: baseline !important;
  color: #111827 !important;
  column-gap: 10px !important;
  display: grid !important;
  font-size: var(--sav-quote-black-number-size) !important;
  font-weight: 400 !important;
  grid-template-columns: minmax(142px, 1fr) minmax(82px, max-content) !important;
  line-height: 1.12 !important;
}

.sav-quote-document-host .sav-fees-totals strong,
.sav-quote-document-host .sav-fees-client-totals strong,
.sav-quote-preview-shell .sav-fees-client-totals strong,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals strong {
  color: inherit !important;
  font-size: inherit !important;
  font-weight: 400 !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-fees-totals .sav-fees-base-total,
.sav-quote-document-host .sav-fees-totals .sav-fees-fee-total,
.sav-quote-document-host .sav-fees-totals .sav-fees-rate-total,
.sav-quote-document-host .sav-fees-client-totals .sav-fees-base-total,
.sav-quote-document-host .sav-fees-client-totals .sav-fees-fee-total,
.sav-quote-document-host .sav-fees-client-totals .sav-fees-rate-total,
.sav-quote-preview-shell .sav-fees-client-totals .sav-fees-base-total,
.sav-quote-preview-shell .sav-fees-client-totals .sav-fees-fee-total,
.sav-quote-preview-shell .sav-fees-client-totals .sav-fees-rate-total,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals .sav-fees-base-total,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals .sav-fees-fee-total,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals .sav-fees-rate-total {
  color: #475467 !important;
}

.sav-quote-document-host .sav-fees-totals .sav-total-ttc,
.sav-quote-document-host .sav-fees-totals .sav-total-ttc strong,
.sav-quote-document-host .sav-fees-client-totals .sav-total-ttc,
.sav-quote-document-host .sav-fees-client-totals .sav-total-ttc strong,
.sav-quote-preview-shell .sav-fees-client-totals .sav-total-ttc,
.sav-quote-preview-shell .sav-fees-client-totals .sav-total-ttc strong,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals .sav-total-ttc,
body.sav-force-client-print .quote-editor-shell .sav-fees-client-totals .sav-total-ttc strong {
  color: #111827 !important;
  font-weight: 800 !important;
}

.sav-quote-document-host .sav-service-subtotal > button[data-service-action="delete-subtotal"],
.sav-quote-preview-shell .sav-service-subtotal > button[data-service-action="delete-subtotal"],
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal > button[data-service-action="delete-subtotal"] {
  align-self: start !important;
  grid-column: 3 !important;
  height: 16px !important;
  justify-self: end !important;
  margin: -2px 0 0 !important;
  min-height: 16px !important;
  min-width: 16px !important;
  position: relative !important;
  right: auto !important;
  top: auto !important;
  width: 16px !important;
}

/* 2026-06-09: final annotation pass - payment schedule, media flow and totals polish. */
.sav-quote-document-host .sav-payment-schedule.sav-edit-only {
  border: 1px solid #d7dde7 !important;
  border-radius: 6px !important;
  display: grid !important;
  gap: 0 !important;
  padding: 12px 14px !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-payment-schedule.sav-edit-only > strong {
  color: #111827 !important;
  display: block !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  margin: 0 0 8px !important;
  text-decoration: underline !important;
}

.sav-quote-document-host .sav-payment-schedule .sav-payment-header,
.sav-quote-document-host .sav-payment-schedule .sav-payment-line {
  align-items: stretch !important;
  border-bottom: 1px solid #d7dde7 !important;
  box-sizing: border-box !important;
  column-gap: 8px !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 78px 118px 118px 24px !important;
  min-height: 28px !important;
  width: 100% !important;
}

.sav-quote-document-host .sav-payment-schedule .sav-payment-header {
  border-bottom-color: #cfd6df !important;
  color: #667085 !important;
  font-size: var(--sav-quote-header-number-size) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
}

.sav-quote-document-host .sav-payment-schedule .sav-payment-header > span,
.sav-quote-document-host .sav-payment-schedule .sav-payment-line > input,
.sav-quote-document-host .sav-payment-schedule .sav-payment-line > span {
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  display: flex !important;
  font-size: var(--sav-quote-black-number-size) !important;
  line-height: 1.08 !important;
  min-height: 28px !important;
  padding: 4px 2px !important;
}

.sav-quote-document-host .sav-payment-schedule .sav-payment-header > span:first-child,
.sav-quote-document-host .sav-payment-schedule .sav-payment-line > input[data-field="label"] {
  justify-content: flex-start !important;
  text-align: left !important;
}

.sav-quote-document-host .sav-payment-schedule .sav-payment-header > span:nth-child(n + 2),
.sav-quote-document-host .sav-payment-schedule .sav-payment-line > input[data-field="percent"],
.sav-quote-document-host .sav-payment-schedule .sav-payment-line > span {
  justify-content: flex-end !important;
  text-align: right !important;
  white-space: nowrap !important;
}

.sav-quote-document-host .sav-payment-schedule .sav-payment-line.is-key-phase > input[data-field="label"] {
  color: #111827 !important;
  font-weight: 700 !important;
}

.sav-quote-document-host .sav-payment-total {
  display: none !important;
}

.sav-quote-document-host .sav-payment-add[hidden],
.sav-quote-document-host .sav-payment-add:disabled {
  display: none !important;
}

.sav-quote-document-host .sav-payment-add:not([hidden]):not(:disabled) {
  align-items: center !important;
  border: 1px solid #d7dde7 !important;
  border-radius: 999px !important;
  color: var(--theme-primary, #e30613) !important;
  display: inline-flex !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  height: 28px !important;
  justify-content: center !important;
  margin-top: 8px !important;
  width: 28px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-header,
.sav-quote-preview-shell .sav-payment-export-header,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header {
  border-top: 0 !important;
  border-bottom: 1px solid #9aa3ad !important;
  color: #667085 !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-line,
.sav-quote-preview-shell .sav-payment-export-line,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line {
  border-bottom: 1px solid #d7dde7 !important;
}

.sav-quote-document-host .sav-summary-block .sav-global-summary-grid > span:nth-child(2),
.sav-quote-preview-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2),
body.sav-force-client-print .quote-editor-shell .sav-summary-block .sav-global-summary-grid > span:nth-child(2) {
  justify-content: flex-end !important;
  text-align: right !important;
}

.sav-quote-document-host .sav-services-edit-table .sav-service-line-media,
.sav-quote-preview-shell .sav-service-line-media,
body.sav-force-client-print .quote-editor-shell .sav-service-line-media {
  break-inside: avoid !important;
  clear: both !important;
  display: block !important;
  margin: 5px 0 8px 54px !important;
  min-height: max(var(--sav-line-media-min-height, 1px), 1px) !important;
  page-break-inside: avoid !important;
  position: relative !important;
  width: calc(100% - 74px) !important;
}

.sav-quote-document-host .sav-line-media-figure button,
.sav-quote-preview-shell .sav-line-media-figure button {
  top: 6px !important;
  right: 6px !important;
}

.sav-quote-document-host .sav-line-media-figure figcaption,
.sav-quote-preview-shell .sav-line-media-figure figcaption,
body.sav-force-client-print .quote-editor-shell .sav-line-media-figure figcaption {
  display: none !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only > textarea[data-field="description"] {
  font-size: 8.6px !important;
  line-height: 1.18 !important;
}

.sav-quote-document-host .sav-service-subtotal {
  border-bottom: 0 !important;
  border-top: 1px solid #d7dde7 !important;
  margin-bottom: 4px !important;
  margin-top: 1px !important;
  padding: 3px 0 4px !important;
}

.sav-quote-document-host .sav-service-subtotal-totals,
.sav-quote-preview-shell .sav-service-subtotal-totals,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals {
  border-bottom: 0 !important;
  border-top: 1px solid #cfd6df !important;
  padding-top: 2px !important;
}

.sav-quote-document-host .sav-service-subtotal-totals .sav-total-client-ht,
.sav-quote-document-host .sav-service-subtotal-totals .sav-total-client-ht strong,
.sav-quote-document-host .sav-service-subtotal-totals .sav-vat-metric,
.sav-quote-document-host .sav-service-subtotal-totals .sav-vat-metric strong,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-client-ht,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-client-ht strong,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-vat-metric,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-vat-metric strong,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-total-client-ht,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-total-client-ht strong,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-vat-metric,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-vat-metric strong {
  color: #111827 !important;
  font-weight: 400 !important;
}

.sav-quote-document-host .sav-service-subtotal-totals .sav-total-ttc,
.sav-quote-document-host .sav-service-subtotal-totals .sav-total-ttc strong,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-ttc,
.sav-quote-preview-shell .sav-service-subtotal-totals .sav-total-ttc strong,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-total-ttc,
body.sav-force-client-print .quote-editor-shell .sav-service-subtotal-totals .sav-total-ttc strong {
  color: #111827 !important;
  font-weight: 800 !important;
}

/* 2026-06-09: dashboard client/supplier filter metrics and invoice toolbar polish. */
.sav-dashboard-v2-filter-panel {
  align-items: stretch !important;
  gap: 12px !important;
  grid-template-columns: minmax(340px, 0.82fr) minmax(520px, 1.18fr) !important;
  overflow: hidden !important;
}

.sav-dashboard-v2-filter-left {
  gap: 8px !important;
}

.sav-dashboard-v2-filter-row {
  gap: 8px !important;
}

.sav-dashboard-v2-filter-row label {
  gap: 5px !important;
}

.sav-dashboard-focus-select {
  font-size: 11px !important;
  font-weight: 500 !important;
  height: 31px !important;
  line-height: 1.05 !important;
  min-height: 31px !important;
  padding: 0 24px 0 9px !important;
}

.sav-dashboard-focus-info {
  gap: 8px !important;
}

.sav-dashboard-focus-info > span {
  min-height: 52px !important;
  padding: 8px 9px !important;
}

.sav-dashboard-v2-filter-metrics {
  align-content: stretch !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

.sav-filter-metric-stack {
  align-content: stretch !important;
  box-sizing: border-box !important;
  display: grid !important;
  gap: 8px !important;
  min-width: 0 !important;
}

.sav-filter-metric-stack > span,
.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global {
  box-sizing: border-box !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.sav-filter-metric-stack > span {
  align-content: center !important;
  gap: 5px !important;
  min-height: 58px !important;
  padding: 9px 10px !important;
}

.sav-filter-metric-stack > span strong {
  font-size: 17px !important;
  line-height: 1.05 !important;
  white-space: normal !important;
}

.sav-filter-metric-stack > span small {
  font-size: 10px !important;
  line-height: 1.1 !important;
}

.sav-filter-metric-group-label {
  background: transparent !important;
  border: 0 !important;
  color: #64748b !important;
  display: block !important;
  font-size: 9.5px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  min-height: 10px !important;
  padding: 0 !important;
  text-transform: uppercase !important;
}

.sav-filter-metric-stack-supplier .sav-filter-metric-group-label {
  margin-bottom: -2px !important;
}

.sav-filter-metric-stack-client .sav-filter-metric-group-label {
  margin-top: -2px !important;
  text-align: right !important;
}

.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global {
  grid-column: 1 / -1 !important;
  min-height: 70px !important;
  padding: 12px 14px !important;
}

.sav-dashboard-v2-filter-metrics > .sav-filter-metric-global strong {
  font-size: 22px !important;
}

.sav-client-invoice-filters {
  align-items: center !important;
  display: flex !important;
  gap: 10px !important;
}

.sav-client-invoice-filters .sav-client-invoice-export-button {
  height: 38px !important;
  min-height: 38px !important;
  min-width: 38px !important;
  width: 38px !important;
}

.sav-client-invoice-filters .sav-client-invoice-export-button svg {
  height: 19px !important;
  width: 19px !important;
}

.sav-client-invoice-filters .legacy-select {
  font-size: 11px !important;
  height: 36px !important;
  min-height: 36px !important;
}

.sav-client-invoice-add-project {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08) !important;
  color: #0f172a !important;
  display: inline-flex !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  gap: 8px !important;
  height: 42px !important;
  justify-content: center !important;
  margin-left: auto !important;
  min-width: 152px !important;
  opacity: 1 !important;
  padding: 0 18px !important;
  text-shadow: none !important;
  white-space: nowrap !important;
}

.sav-client-invoice-add-project svg,
.sav-client-invoice-panel .project-add-invoice svg {
  color: currentColor !important;
  flex: 0 0 auto !important;
  height: 15px !important;
  width: 15px !important;
}

.sav-client-invoice-panel .project-add-invoice {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  color: #0f172a !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  gap: 6px !important;
  height: 30px !important;
  justify-content: center !important;
  min-width: 84px !important;
  padding: 0 11px !important;
  white-space: nowrap !important;
}

.sav-client-invoice-panel .project-add-invoice,
.sav-client-invoice-filters .sav-client-invoice-add-project {
  opacity: 1 !important;
  overflow: visible !important;
  visibility: visible !important;
}

.sav-client-invoice-panel .project-add-invoice svg,
.sav-client-invoice-filters .sav-client-invoice-add-project svg {
  display: block !important;
  flex: 0 0 15px !important;
  height: 15px !important;
  max-height: 15px !important;
  max-width: 15px !important;
  min-height: 15px !important;
  min-width: 15px !important;
  width: 15px !important;
}

.sav-client-invoice-panel .sav-client-invoice-amount-input,
.sav-client-invoice-panel .sav-invoice-total-ttc-input {
  appearance: textfield !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: inherit !important;
  font: inherit !important;
  font-weight: 650 !important;
  height: 100% !important;
  line-height: 1.08 !important;
  min-width: 0 !important;
  outline: 0 !important;
  padding: 0 !important;
  text-align: right !important;
  width: 100% !important;
}

.sav-client-invoice-panel .sav-client-invoice-amount-input:focus,
.sav-client-invoice-panel .sav-invoice-total-ttc-input:focus {
  background: #ffffff !important;
  box-shadow: inset 0 0 0 1px rgba(0, 94, 184, 0.35) !important;
  padding-right: 4px !important;
}

.sav-client-invoice-panel .sav-invoice-total-ttc-cell {
  align-items: center !important;
  display: flex !important;
  justify-content: flex-end !important;
}

/* 2026-06-09: Factures manual workflow, aligned with Achats without legacy oversized controls. */
body .sav-client-invoice-shell .sav-client-invoice-filters {
  align-items: center !important;
  display: grid !important;
  grid-template-columns: auto auto minmax(120px, 150px) minmax(120px, 150px) 1fr auto !important;
  gap: 10px !important;
  width: 100% !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project {
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08) !important;
  color: #0f172a !important;
  display: inline-flex !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  grid-column: 6 !important;
  height: 36px !important;
  justify-self: end !important;
  max-height: 36px !important;
  min-height: 36px !important;
  min-width: 138px !important;
  opacity: 1 !important;
  padding: 0 14px !important;
  text-shadow: none !important;
  visibility: visible !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project svg {
  color: currentColor !important;
  display: block !important;
  flex: 0 0 14px !important;
  height: 14px !important;
  max-height: 14px !important;
  max-width: 14px !important;
  width: 14px !important;
}

body .sav-client-invoice-panel {
  container-type: inline-size !important;
}

body .sav-client-invoice-panel .purchase-project-header {
  align-items: center !important;
  min-height: 44px !important;
  padding: 7px 10px !important;
}

body .sav-client-invoice-panel .project-title {
  font-size: 14px !important;
  font-weight: 600 !important;
  line-height: 1.1 !important;
}

body .sav-client-invoice-panel .project-client-input {
  font-size: 11px !important;
  line-height: 1.1 !important;
}

body .sav-client-invoice-panel .project-subtotals {
  align-items: center !important;
  column-gap: 9px !important;
  row-gap: 2px !important;
}

body .sav-client-invoice-panel .project-metric {
  font-size: clamp(8.2px, 0.72cqw, 10.5px) !important;
  line-height: 1.08 !important;
}

body .sav-client-invoice-panel .project-metric strong {
  font-size: clamp(9px, 0.82cqw, 11.2px) !important;
  font-weight: 650 !important;
  line-height: 1.08 !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  color: #0f172a !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  gap: 5px !important;
  height: 27px !important;
  justify-content: center !important;
  min-width: 82px !important;
  overflow: hidden !important;
  padding: 0 9px !important;
  text-shadow: none !important;
  white-space: nowrap !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice > svg {
  color: currentColor !important;
  display: block !important;
  flex: 0 0 13px !important;
  height: 13px !important;
  max-height: 13px !important;
  max-width: 13px !important;
  min-height: 13px !important;
  min-width: 13px !important;
  width: 13px !important;
}

body .sav-client-invoice-panel .purchase-grid-row,
body .sav-client-invoice-panel .invoice-summary,
body .sav-client-invoice-panel .invoice-detail-cell,
body .sav-client-invoice-panel .purchase-total,
body .sav-client-invoice-panel .purchase-rests,
body .sav-client-invoice-panel .sav-invoice-ref-cell,
body .sav-client-invoice-panel .sav-invoice-total-ttc-cell {
  font-size: clamp(8.5px, 0.72cqw, 10.8px) !important;
  line-height: 1.08 !important;
}

body .sav-client-invoice-panel .invoice-summary,
body .sav-client-invoice-panel .sav-invoice-total-ttc-cell,
body .sav-client-invoice-panel .purchase-total {
  align-items: center !important;
  display: flex !important;
  justify-content: flex-end !important;
  min-height: 24px !important;
}

body .sav-client-invoice-panel .invoice-summary .pdf-icon {
  align-items: center !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  flex: 0 0 18px !important;
  height: 18px !important;
  justify-content: center !important;
  min-width: 18px !important;
  width: 18px !important;
}

body .sav-client-invoice-panel .invoice-summary .pdf-icon svg {
  height: 10px !important;
  width: 10px !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-select {
  min-width: 58px !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-value {
  font-size: 8px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}

@media (max-width: 1180px) {
  body .sav-client-invoice-shell .sav-client-invoice-filters {
    grid-template-columns: auto auto minmax(104px, 1fr) minmax(104px, 1fr) auto !important;
  }

  body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project {
    grid-column: 5 !important;
    min-width: 126px !important;
  }
}

@media (max-width: 1280px) {
  .sav-dashboard-v2-filter-panel {
    grid-template-columns: minmax(320px, 0.78fr) minmax(500px, 1.22fr) !important;
  }

  .sav-filter-metric-stack > span strong {
    font-size: 15px !important;
  }
}

@media (max-width: 1180px) {
  .sav-dashboard-v2-filter-panel {
    grid-template-columns: 1fr !important;
  }

  .sav-dashboard-v2-filter-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* 2026-06-09: Dashboard/Factures consolidation after QA comments. */
body .sav-dashboard-v2-filter-panel {
  align-items: stretch !important;
  grid-template-columns: minmax(250px, 0.36fr) minmax(0, 0.64fr) !important;
  overflow: visible !important;
}

body .sav-dashboard-v2-filter-left,
body .sav-dashboard-v2-filter-row {
  min-width: 0 !important;
}

body .sav-dashboard-v2-filter-row {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body .sav-dashboard-v2-filter-row label,
body .sav-dashboard-v2-filter-row select,
body .sav-dashboard-focus-select {
  min-width: 0 !important;
  width: 100% !important;
}

body .sav-dashboard-focus-select {
  font-size: 10.5px !important;
  font-weight: 500 !important;
  height: 30px !important;
  min-height: 30px !important;
  padding-inline: 9px 24px !important;
  text-overflow: ellipsis !important;
}

body .sav-dashboard-v2-filter-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  min-width: 0 !important;
}

body .sav-filter-metric-stack > span {
  min-height: 54px !important;
  padding: 8px 9px !important;
}

body .sav-filter-metric-stack > span strong {
  font-size: clamp(14px, 1.05vw, 17px) !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters {
  align-items: center !important;
  display: grid !important;
  gap: 9px !important;
  grid-template-columns: 28px 38px minmax(118px, 150px) minmax(118px, 150px) minmax(0, 1fr) auto !important;
  min-width: 0 !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-export-button {
  align-items: center !important;
  background: #11863b !important;
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: 0 8px 18px rgba(17, 134, 59, 0.18) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  height: 38px !important;
  justify-content: center !important;
  min-height: 38px !important;
  min-width: 38px !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: 38px !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .legacy-select {
  font-size: 10.8px !important;
  height: 34px !important;
  min-height: 34px !important;
  min-width: 0 !important;
  width: 100% !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
  color: #0f172a !important;
  display: inline-flex !important;
  font-size: 11.5px !important;
  font-weight: 600 !important;
  gap: 7px !important;
  height: 34px !important;
  justify-content: center !important;
  max-height: 34px !important;
  min-height: 34px !important;
  min-width: 130px !important;
  opacity: 1 !important;
  padding: 0 13px !important;
  visibility: visible !important;
  white-space: nowrap !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  color: #0f172a !important;
  display: inline-flex !important;
  font-size: 10.5px !important;
  font-weight: 600 !important;
  gap: 5px !important;
  height: 26px !important;
  justify-content: center !important;
  min-width: 78px !important;
  overflow: hidden !important;
  padding: 0 8px !important;
  text-shadow: none !important;
  white-space: nowrap !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice > svg,
body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project > svg {
  color: currentColor !important;
  flex: 0 0 13px !important;
  height: 13px !important;
  max-height: 13px !important;
  max-width: 13px !important;
  min-height: 13px !important;
  min-width: 13px !important;
  width: 13px !important;
}

@media (max-width: 1180px) {
  body .sav-dashboard-v2-filter-panel {
    grid-template-columns: 1fr !important;
  }

  body .sav-client-invoice-shell .sav-client-invoice-filters {
    grid-template-columns: 28px 38px minmax(105px, 1fr) minmax(105px, 1fr) auto !important;
  }

  body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project {
    grid-column: 5 !important;
    min-width: 116px !important;
  }
}

/* 2026-06-09: final Dashboard/Factures polish. */
body .sav-dashboard-margin-chart > svg polyline {
  stroke-width: 1.05 !important;
}

body .sav-dashboard-margin-chart > svg circle {
  r: 0.72 !important;
  stroke-width: 0.45 !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
  max-width: 92px !important;
}

body .sav-client-invoice-panel .project-metric-quote,
body .sav-client-invoice-panel .project-metric-quote strong {
  color: #005eb8 !important;
}

body .sav-client-invoice-panel .project-metric-invoice,
body .sav-client-invoice-panel .project-metric-invoice strong {
  color: #005eb8 !important;
}

body .sav-client-invoice-panel .project-metric-discount,
body .sav-client-invoice-panel .project-metric-discount strong {
  color: #12833d !important;
}

body .sav-client-invoice-panel .project-metric-receive,
body .sav-client-invoice-panel .project-metric-receive strong,
body .sav-client-invoice-panel .project-metric-pay,
body .sav-client-invoice-panel .project-metric-pay strong {
  color: #e30613 !important;
}

body .sav-client-invoice-panel .project-add-invoice {
  align-items: center !important;
  box-sizing: border-box !important;
  gap: 5px !important;
  max-width: none !important;
  min-width: 78px !important;
  width: auto !important;
}

body .sav-client-invoice-panel .project-add-invoice svg {
  flex: 0 0 12px !important;
  height: 12px !important;
  max-height: 12px !important;
  max-width: 12px !important;
  min-height: 12px !important;
  min-width: 12px !important;
  width: 12px !important;
}

body .sav-client-invoice-panel .sav-client-invoice-document-missing .pdf-icon {
  background: #f8fafc !important;
  border-color: #d6deea !important;
  color: #94a3b8 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-document-present .pdf-icon {
  background: #dcfce7 !important;
  border-color: #86efac !important;
  color: #12833d !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-draft .sav-client-invoice-status-value,
body .sav-client-invoice-panel .sav-client-invoice-status-draft select {
  color: #e30613 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-sent .sav-client-invoice-status-value,
body .sav-client-invoice-panel .sav-client-invoice-status-sent select {
  color: #005eb8 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-paid .sav-client-invoice-status-value,
body .sav-client-invoice-panel .sav-client-invoice-status-paid select {
  color: #12833d !important;
}

/* 2026-06-09: Dashboard v2 and client invoices final source polish. */
body .sav-dashboard-main,
body .sav-dashboard-shell,
body .sav-client-invoice-shell,
body .sav-client-invoice-panel {
  font-family: Roboto, Arial, sans-serif !important;
  font-weight: 400 !important;
}

body .sav-dashboard-v2-header h1,
body .sav-client-invoice-heading h1 {
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

body .sav-dashboard-v2-kpis .metric-card strong,
body .sav-dashboard-v2-filter-metrics strong,
body .sav-dashboard-panel h2,
body .sav-client-invoice-panel .project-title {
  font-weight: 500 !important;
}

body .sav-dashboard-v2-filter-panel {
  align-items: stretch !important;
  display: grid !important;
  gap: 14px !important;
  grid-template-columns: minmax(315px, 0.36fr) minmax(0, 0.64fr) !important;
  overflow: visible !important;
}

body .sav-dashboard-v2-filter-left {
  min-width: 0 !important;
}

body .sav-dashboard-v2-filter-row {
  display: grid !important;
  gap: 10px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body .sav-dashboard-v2-filter-row label {
  min-width: 0 !important;
}

body .sav-dashboard-focus-select {
  border-radius: 8px !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  height: 30px !important;
  line-height: 1.15 !important;
  min-height: 30px !important;
  overflow: hidden !important;
  padding: 0 28px 0 9px !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  width: 100% !important;
}

body .sav-dashboard-v2-filter-metrics {
  align-content: stretch !important;
  display: grid !important;
  gap: 8px !important;
  grid-template-columns: repeat(4, minmax(112px, 1fr)) !important;
  min-width: 0 !important;
}

body .sav-filter-metric-stack {
  display: grid !important;
  gap: 8px !important;
  min-width: 0 !important;
}

body .sav-filter-metric-stack > span {
  border-radius: 8px !important;
  min-height: 52px !important;
  padding: 8px 10px !important;
}

body .sav-filter-metric-stack > span,
body .sav-filter-metric-stack > span strong,
body .sav-filter-metric-stack > span small {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

body .sav-filter-metric-stack > span strong {
  font-size: clamp(14px, 1vw, 18px) !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}

body .sav-filter-metric-stack-client > span:nth-of-type(1) {
  border-left-color: #005eb8 !important;
  color: #005eb8 !important;
}

body .sav-filter-metric-stack-client > span:nth-of-type(1) strong {
  color: #005eb8 !important;
}

body .sav-filter-metric-stack-client > span:nth-of-type(2) {
  border-left-color: #12833d !important;
  color: #12833d !important;
}

body .sav-filter-metric-stack-client > span:nth-of-type(2) strong {
  color: #12833d !important;
}

body .sav-filter-metric-global {
  border-radius: 9px !important;
  grid-column: 1 / -1 !important;
  min-height: 58px !important;
}

body .sav-dashboard-margin-chart > svg {
  min-height: 126px !important;
}

body .sav-dashboard-margin-chart > svg polyline {
  stroke-width: 0.8 !important;
}

body .sav-dashboard-margin-chart > svg circle,
body .sav-dashboard-margin-chart > svg .sav-estimate-point,
body .sav-dashboard-margin-chart > svg .sav-real-point {
  r: 0.62 !important;
  stroke-width: 0.36 !important;
}

@media (max-width: 1280px) {
  body .sav-dashboard-v2-filter-panel {
    grid-template-columns: 1fr !important;
  }

  body .sav-dashboard-v2-filter-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 820px) {
  body .sav-dashboard-v2-filter-row,
  body .sav-dashboard-v2-filter-metrics {
    grid-template-columns: 1fr !important;
  }
}

body .sav-client-invoice-shell .sav-client-invoice-filters {
  align-items: center !important;
  display: grid !important;
  gap: 9px !important;
  grid-template-columns: 24px 38px minmax(118px, 150px) minmax(118px, 150px) minmax(0, 1fr) auto !important;
  min-width: 0 !important;
  width: 100% !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-export-button {
  align-items: center !important;
  background: #12833d !important;
  border: 0 !important;
  border-radius: 10px !important;
  color: #ffffff !important;
  display: inline-flex !important;
  height: 36px !important;
  justify-content: center !important;
  min-height: 36px !important;
  min-width: 36px !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: 36px !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .legacy-select {
  font-size: 10.5px !important;
  height: 32px !important;
  min-height: 32px !important;
  min-width: 0 !important;
  padding-inline: 11px 28px !important;
  width: 100% !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08) !important;
  color: #0f172a !important;
  display: inline-flex !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  gap: 7px !important;
  height: 32px !important;
  justify-content: center !important;
  justify-self: end !important;
  min-height: 32px !important;
  min-width: 132px !important;
  opacity: 1 !important;
  overflow: visible !important;
  padding: 0 13px !important;
  visibility: visible !important;
  white-space: nowrap !important;
}

body .sav-client-invoice-panel {
  --invoice-main: #005eb8;
  --invoice-red: #e30613;
  --invoice-green: #12833d;
}

body .sav-client-invoice-panel .purchase-project-header {
  align-items: center !important;
  column-gap: 8px !important;
  display: grid !important;
  grid-template-columns: 24px 12px minmax(135px, 1.15fr) minmax(0, 4fr) auto !important;
  min-height: 42px !important;
  overflow: visible !important;
  padding: 7px 10px !important;
}

body .sav-client-invoice-panel .project-subtotals {
  align-items: center !important;
  column-gap: 8px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  min-width: 0 !important;
  row-gap: 3px !important;
}

body .sav-client-invoice-panel .project-metric {
  font-size: 9.2px !important;
  font-weight: 400 !important;
  line-height: 1.08 !important;
  min-width: max-content !important;
  white-space: nowrap !important;
}

body .sav-client-invoice-panel .project-metric strong {
  font-size: 10px !important;
  font-weight: 500 !important;
}

body .sav-client-invoice-panel .project-metric-quote,
body .sav-client-invoice-panel .project-metric-quote strong,
body .sav-client-invoice-panel .project-metric-invoice,
body .sav-client-invoice-panel .project-metric-invoice strong {
  color: var(--invoice-main) !important;
}

body .sav-client-invoice-panel .project-metric-discount,
body .sav-client-invoice-panel .project-metric-discount strong {
  color: var(--invoice-green) !important;
}

body .sav-client-invoice-panel .project-metric-receive,
body .sav-client-invoice-panel .project-metric-receive strong {
  color: var(--invoice-red) !important;
}

body .sav-client-invoice-panel .project-metric-pay,
body .sav-client-invoice-panel .project-metric-pay strong {
  color: var(--invoice-main) !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
  align-items: center !important;
  background: #ffffff !important;
  border: 1px solid #d6deea !important;
  border-radius: 999px !important;
  color: #0f172a !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
  gap: 5px !important;
  height: 26px !important;
  justify-content: center !important;
  max-width: none !important;
  min-height: 26px !important;
  min-width: 84px !important;
  overflow: visible !important;
  padding: 0 9px !important;
  text-shadow: none !important;
  white-space: nowrap !important;
  width: auto !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice > svg,
body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project > svg {
  flex: 0 0 12px !important;
  height: 12px !important;
  max-height: 12px !important;
  max-width: 12px !important;
  min-height: 12px !important;
  min-width: 12px !important;
  width: 12px !important;
}

body .sav-client-invoice-panel .purchase-grid-row,
body .sav-client-invoice-panel .purchase-row-details {
  font-size: 10.5px !important;
}

body .sav-client-invoice-panel .purchase-grid-row {
  min-height: 34px !important;
}

body .sav-client-invoice-panel .sav-client-invoice-amount-input,
body .sav-client-invoice-panel .sav-invoice-total-ttc-input,
body .sav-client-invoice-panel .invoice-detail-cell input {
  font-size: 10.5px !important;
  font-weight: 400 !important;
}

body .sav-client-invoice-panel .invoice-summary .pdf-icon {
  border-radius: 8px !important;
  height: 20px !important;
  min-height: 20px !important;
  min-width: 20px !important;
  width: 20px !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-value {
  font-size: 10px !important;
  font-weight: 500 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-draft .sav-client-invoice-status-value,
body .sav-client-invoice-panel .sav-client-invoice-status-draft select {
  color: var(--invoice-red) !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-sent .sav-client-invoice-status-value,
body .sav-client-invoice-panel .sav-client-invoice-status-sent select {
  color: var(--invoice-main) !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-paid .sav-client-invoice-status-value,
body .sav-client-invoice-panel .sav-client-invoice-status-paid select {
  color: var(--invoice-green) !important;
}

@media (max-width: 1180px) {
  body .sav-client-invoice-shell .sav-client-invoice-filters {
    grid-template-columns: 24px 38px minmax(110px, 1fr) minmax(110px, 1fr) auto !important;
  }

  body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project {
    grid-column: 5 !important;
  }

  body .sav-client-invoice-panel .purchase-project-header {
    grid-template-columns: 24px 12px minmax(125px, 1fr) minmax(0, 2.5fr) auto !important;
  }
}

/* 2026-06-09: Factures responsive header and manual invoice workflow polish. */
body .sav-client-invoice-panel .project-title-group {
  min-width: 0 !important;
  overflow: visible !important;
}

body .sav-client-invoice-panel .project-title,
body .sav-client-invoice-panel .project-client-input {
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body .sav-client-invoice-panel .project-metric-pay,
body .sav-client-invoice-panel .project-metric-pay strong {
  color: var(--invoice-main) !important;
}

body .sav-client-invoice-panel .project-metric-receive,
body .sav-client-invoice-panel .project-metric-receive strong {
  color: var(--invoice-red) !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
  flex-shrink: 0 !important;
  justify-self: end !important;
  max-width: none !important;
  min-width: 88px !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice::first-letter {
  font-size: inherit !important;
}

/* 2026-06-09: Factures dynamic grid guard. Prevent Achat responsive nth-child rules from squeezing invoice details. */
body .sav-client-invoice-panel .purchase-grid-header,
body .sav-client-invoice-panel .purchase-grid-row,
body .sav-client-invoice-panel .purchase-row-details {
  display: grid !important;
  grid-template-columns: var(--purchase-grid-columns) !important;
}

body .sav-client-invoice-panel .purchase-row-details {
  align-items: start !important;
  gap: 4px !important;
  min-height: 0 !important;
  padding: 6px 10px 10px !important;
}

body .sav-client-invoice-panel .purchase-grid-row > *,
body .sav-client-invoice-panel .purchase-row-details > * {
  grid-column: auto !important;
  grid-row: auto !important;
  min-width: 0 !important;
}

body .sav-client-invoice-panel .purchase-grid-row > .invoice-summary,
body .sav-client-invoice-panel .purchase-grid-row > .purchase-total,
body .sav-client-invoice-panel .purchase-grid-row > .purchase-rests,
body .sav-client-invoice-panel .purchase-grid-row > .row-expand {
  grid-column: auto !important;
  grid-row: auto !important;
}

body .sav-client-invoice-panel .purchase-row-project-slot,
body .sav-client-invoice-panel .details-spacer {
  display: block !important;
}

body .sav-client-invoice-panel .sav-client-invoice-detail-cell {
  align-self: start !important;
  display: grid !important;
  gap: 3px !important;
  min-width: 0 !important;
  overflow: visible !important;
}

body .sav-client-invoice-panel .sav-client-invoice-detail-cell label {
  align-items: center !important;
  display: grid !important;
  gap: 3px !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  margin: 0 !important;
  min-width: 0 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-detail-cell label span {
  color: #667085 !important;
  font-size: 7.5px !important;
  line-height: 1 !important;
  min-width: 0 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-detail-cell input,
body .sav-client-invoice-panel .sav-client-invoice-detail-cell select {
  box-sizing: border-box !important;
  font-size: 9px !important;
  font-weight: 400 !important;
  height: 20px !important;
  line-height: 1 !important;
  min-height: 20px !important;
  min-width: 0 !important;
  padding: 1px 5px !important;
  width: 100% !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-value {
  font-size: 8px !important;
  font-weight: 500 !important;
}

@media (max-width: 1160px) {
  body .sav-client-invoice-panel .purchase-project-header {
    align-items: center !important;
    grid-template-areas:
      "collapse drag title add"
      "collapse drag metrics metrics" !important;
    grid-template-columns: 26px 12px minmax(180px, 1fr) auto !important;
    min-height: 74px !important;
    row-gap: 6px !important;
  }

  body .sav-client-invoice-panel .purchase-project-header .project-collapse {
    grid-area: collapse !important;
  }

  body .sav-client-invoice-panel .purchase-project-header .project-drag {
    grid-area: drag !important;
  }

  body .sav-client-invoice-panel .purchase-project-header .project-title-group {
    grid-area: title !important;
    min-width: 180px !important;
  }

  body .sav-client-invoice-panel .purchase-project-header .project-subtotals {
    grid-area: metrics !important;
    display: grid !important;
    gap: 4px 10px !important;
    grid-template-columns: repeat(5, minmax(78px, max-content)) !important;
    justify-content: start !important;
    max-width: 100% !important;
  }

  body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
    grid-area: add !important;
  }
}

@media (max-width: 940px) {
  body .sav-client-invoice-panel .purchase-project-header {
    grid-template-areas:
      "collapse title add"
      "metrics metrics metrics" !important;
    grid-template-columns: 26px minmax(160px, 1fr) auto !important;
  }

  body .sav-client-invoice-panel .purchase-project-header .project-drag {
    display: none !important;
  }

  body .sav-client-invoice-panel .purchase-project-header .project-subtotals {
    grid-template-columns: repeat(3, minmax(76px, 1fr)) !important;
  }
}

/* 2026-06-09: Dashboard + Factures source-level polish guard. */
body .sav-dashboard-shell,
body .sav-dashboard-shell *,
body .sav-client-invoice-shell,
body .sav-client-invoice-shell * {
  letter-spacing: 0 !important;
}

body .sav-dashboard-header h1,
body .sav-client-invoice-heading h1 {
  font-weight: 560 !important;
}

body .sav-dashboard-v2-kpis .sav-dashboard-metric span:not(.sav-dashboard-metric-icon),
body .sav-dashboard-panel h2,
body .sav-dashboard-table th,
body .sav-dashboard-v2-filter-row label > span,
body .sav-client-invoice-panel .purchase-grid-header > span {
  font-weight: 560 !important;
}

body .sav-dashboard-v2-filter-panel {
  gap: 10px !important;
  grid-template-columns: minmax(280px, 0.34fr) minmax(0, 0.66fr) !important;
}

body .sav-dashboard-v2-filter-row {
  gap: 8px !important;
}

body .sav-dashboard-focus-select {
  font-size: 10px !important;
  font-weight: 480 !important;
  height: 28px !important;
  min-height: 28px !important;
  padding: 0 26px 0 8px !important;
}

body .sav-dashboard-focus-info {
  gap: 7px !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body .sav-dashboard-focus-info span {
  min-height: 44px !important;
  padding: 7px 9px !important;
}

body .sav-dashboard-v2-filter-metrics {
  gap: 7px !important;
  grid-template-columns: repeat(4, minmax(98px, 1fr)) !important;
}

body .sav-filter-metric-stack {
  gap: 7px !important;
}

body .sav-filter-metric-stack > span {
  min-height: 48px !important;
  padding: 7px 9px !important;
}

body .sav-filter-metric-stack > span,
body .sav-filter-metric-stack > span small {
  font-size: 9.5px !important;
  line-height: 1.1 !important;
}

body .sav-filter-metric-stack > span strong {
  font-size: clamp(13px, 0.9vw, 17px) !important;
  font-weight: 520 !important;
}

body .sav-filter-metric-global {
  min-height: 52px !important;
  padding: 9px 12px !important;
}

body .sav-filter-metric-global strong {
  font-size: clamp(17px, 1.3vw, 22px) !important;
  font-weight: 560 !important;
}

body .sav-dashboard-margin-chart > svg {
  min-height: 112px !important;
}

body .sav-dashboard-margin-chart > svg polyline {
  stroke-width: 0.62 !important;
}

body .sav-dashboard-margin-chart > svg circle,
body .sav-dashboard-margin-chart > svg .sav-estimate-point,
body .sav-dashboard-margin-chart > svg .sav-real-point {
  r: 0.46 !important;
  stroke-width: 0.24 !important;
}

body .sav-client-invoice-panel {
  --purchase-grid-columns:
    minmax(22px, 26px)
    minmax(18px, 24px)
    minmax(104px, 0.85fr)
    minmax(86px, 0.68fr)
    repeat(var(--invoice-installment-count, 1), minmax(90px, 0.75fr))
    minmax(72px, 0.52fr)
    minmax(102px, 0.78fr)
    minmax(24px, 28px) !important;
  overflow-x: auto !important;
}

body .sav-client-invoice-panel .purchase-project-header {
  grid-template-columns: 24px 10px minmax(130px, 1.05fr) minmax(0, 4.2fr) auto !important;
  min-height: 40px !important;
  padding: 6px 9px !important;
}

body .sav-client-invoice-panel .project-subtotals {
  column-gap: 7px !important;
  row-gap: 2px !important;
}

body .sav-client-invoice-panel .project-metric {
  font-size: 9px !important;
  line-height: 1.06 !important;
}

body .sav-client-invoice-panel .project-metric strong {
  font-size: 9.8px !important;
  font-weight: 560 !important;
}

body .sav-client-invoice-panel .purchase-grid-header,
body .sav-client-invoice-panel .purchase-grid-row {
  min-width: max-content !important;
}

body .sav-client-invoice-panel .purchase-grid-header > span {
  font-size: 8.2px !important;
  line-height: 1.05 !important;
  min-height: 30px !important;
  padding: 0 6px !important;
}

body .sav-client-invoice-panel .purchase-grid-row {
  min-height: 31px !important;
}

body .sav-client-invoice-panel .purchase-grid-row,
body .sav-client-invoice-panel .invoice-summary,
body .sav-client-invoice-panel .sav-invoice-total-ttc-cell,
body .sav-client-invoice-panel .purchase-total,
body .sav-client-invoice-panel .purchase-rests {
  font-size: 9.8px !important;
  line-height: 1.08 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-amount-input,
body .sav-client-invoice-panel .sav-invoice-total-ttc-input,
body .sav-client-invoice-panel .invoice-detail-cell input {
  font-size: 9.8px !important;
  height: 21px !important;
  line-height: 1 !important;
  min-height: 21px !important;
}

body .sav-client-invoice-panel .invoice-summary .pdf-icon {
  color: #94a3b8 !important;
  height: 19px !important;
  min-height: 19px !important;
  min-width: 19px !important;
  width: 19px !important;
}

body .sav-client-invoice-panel .sav-client-invoice-document-present .pdf-icon {
  color: #12833d !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
  align-self: center !important;
  box-sizing: border-box !important;
  font-size: 10.2px !important;
  font-weight: 500 !important;
  gap: 4px !important;
  height: 25px !important;
  min-height: 25px !important;
  min-width: 76px !important;
  padding: 0 8px !important;
  position: relative !important;
  z-index: 2 !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice > svg {
  flex: 0 0 11px !important;
  height: 11px !important;
  min-height: 11px !important;
  min-width: 11px !important;
  width: 11px !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-value,
body .sav-client-invoice-panel .sav-client-invoice-status-select select {
  font-size: 9px !important;
  font-weight: 500 !important;
}

@media (max-width: 1280px) {
  body .sav-dashboard-v2-filter-panel {
    grid-template-columns: 1fr !important;
  }

  body .sav-dashboard-v2-filter-metrics {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 760px) {
  body .sav-dashboard-focus-info,
  body .sav-dashboard-v2-filter-row,
  body .sav-dashboard-v2-filter-metrics {
    grid-template-columns: 1fr !important;
  }
}

/* 2026-06-09: Factures manual workflow and compact Dashboard filters. */
body .sav-dashboard-v2-filter-panel {
  align-items: stretch !important;
  grid-template-columns: minmax(330px, 0.35fr) minmax(0, 0.65fr) !important;
}

body .sav-dashboard-v2-filter-row {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body .sav-dashboard-focus-select {
  border-radius: 8px !important;
  font-size: 9.5px !important;
  height: 27px !important;
  min-height: 27px !important;
  padding-inline: 8px 24px !important;
}

body .sav-dashboard-v2-filter-metrics {
  grid-template-columns: repeat(4, minmax(92px, 1fr)) !important;
}

body .sav-dashboard-margin-chart > svg circle,
body .sav-dashboard-margin-chart > svg .sav-estimate-point,
body .sav-dashboard-margin-chart > svg .sav-real-point {
  r: 0.36 !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters {
  grid-template-columns: 24px 36px minmax(116px, 148px) minmax(116px, 148px) minmax(10px, 1fr) auto !important;
  margin-bottom: 16px !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-add-project {
  background: #ffffff !important;
  color: #0f172a !important;
  justify-self: end !important;
  min-width: 138px !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice {
  color: #0f172a !important;
  min-width: 92px !important;
  opacity: 1 !important;
  padding-inline: 10px !important;
  visibility: visible !important;
}

body .sav-client-invoice-panel .purchase-project-header .project-add-invoice > svg {
  color: #0f172a !important;
  stroke: currentColor !important;
}

body .sav-client-invoice-panel .project-metric,
body .sav-client-invoice-panel .purchase-grid-row,
body .sav-client-invoice-panel .invoice-summary,
body .sav-client-invoice-panel .purchase-total,
body .sav-client-invoice-panel .purchase-rests {
  font-size: 9.6px !important;
  line-height: 1.08 !important;
}

body .sav-client-invoice-panel .project-metric strong,
body .sav-client-invoice-panel .sav-invoice-ref-cell,
body .sav-client-invoice-panel .purchase-total {
  font-weight: 520 !important;
}

body .sav-client-invoice-panel .sav-client-invoice-status-value {
  font-size: 8.6px !important;
  font-weight: 500 !important;
}

/* 2026-06-10: fees badge, schedule readability and signature flow guard. */
.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only .sav-fee-rate-badge {
  align-self: center !important;
  grid-column: 2 !important;
  justify-self: end !important;
  min-width: 0 !important;
}

.sav-quote-document-host .sav-services-kind-savillsFees .sav-service-line.sav-edit-only .sav-fee-rate-badge span {
  max-width: none !important;
  text-align: right !important;
  width: max-content !important;
}

.sav-quote-document-host .sav-payment-schedule .sav-payment-header > span,
.sav-quote-document-host .sav-payment-schedule .sav-payment-line > input,
.sav-quote-document-host .sav-payment-schedule .sav-payment-line > span {
  font-size: 8.8px !important;
  line-height: 1.16 !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export > strong,
.sav-quote-preview-shell .sav-payment-export > strong,
body.sav-force-client-print .quote-editor-shell .sav-payment-export > strong {
  font-size: 9.8px !important;
  line-height: 1.18 !important;
  margin-bottom: 7px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-header,
.sav-quote-preview-shell .sav-payment-export-header,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header {
  min-height: 22px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-line,
.sav-quote-preview-shell .sav-payment-export-line,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line {
  min-height: 23px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-header > span,
.sav-quote-document-host.sav-print-client-view .sav-payment-export-line > span,
.sav-quote-document-host.sav-print-client-view .sav-payment-export-line > strong,
.sav-quote-preview-shell .sav-payment-export-header > span,
.sav-quote-preview-shell .sav-payment-export-line > span,
.sav-quote-preview-shell .sav-payment-export-line > strong,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-line > strong {
  font-size: 9.2px !important;
  line-height: 1.18 !important;
  padding-block: 3px !important;
}

.sav-quote-document-host.sav-print-client-view .sav-payment-export-header > span,
.sav-quote-preview-shell .sav-payment-export-header > span,
body.sav-force-client-print .quote-editor-shell .sav-payment-export-header > span {
  font-size: 8.6px !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-signature-block,
.sav-quote-document-host.sav-print-client-view .sav-signature-block,
body.sav-force-client-print .quote-editor-shell .sav-signature-block {
  clear: both !important;
  margin-top: 18px !important;
}

.sav-quote-preview-shell.sav-quote-preview-readonly .sav-payment-block + .sav-signature-block,
.sav-quote-document-host.sav-print-client-view .sav-payment-block + .sav-signature-block,
body.sav-force-client-print .quote-editor-shell .sav-payment-block + .sav-signature-block {
  margin-top: 24px !important;
}

/* 2026-06-10: keep Dashboard structure stable on tablet/narrow desktop. */
main.app-main:has(.sav-dashboard-shell),
body .sav-dashboard-main {
  overflow-x: auto !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

body .sav-dashboard-shell {
  box-sizing: border-box !important;
  max-width: none !important;
  min-width: 1040px !important;
  width: max(1040px, 100%) !important;
}

body .sav-dashboard-v2-kpis {
  grid-template-columns: repeat(7, minmax(126px, 1fr)) !important;
}

body .sav-dashboard-v2-filter-panel {
  align-items: stretch !important;
  grid-template-columns: minmax(330px, 0.35fr) minmax(0, 0.65fr) !important;
}

body .sav-dashboard-v2-filter-row,
body .sav-dashboard-focus-info {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body .sav-dashboard-v2-filter-metrics {
  grid-template-columns: repeat(4, minmax(92px, 1fr)) !important;
}

body .sav-dashboard-v2-grid,
body .sav-dashboard-minimal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body .sav-dashboard-keyline {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

body .sav-dashboard-focus-zone {
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.3fr) !important;
}

body .sav-dashboard-focus-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body .sav-dashboard-grid {
  grid-template-columns: minmax(300px, 0.72fr) minmax(0, 1.9fr) !important;
}

@media (max-width: 1180px) {
  main.app-main:has(.sav-dashboard-shell),
  body .sav-dashboard-main {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  body .sav-dashboard-shell {
    min-width: 1040px !important;
    width: 1040px !important;
  }

  body .sav-dashboard-v2-kpis {
    grid-template-columns: repeat(7, minmax(126px, 1fr)) !important;
  }

  body .sav-dashboard-v2-filter-panel {
    grid-template-columns: minmax(330px, 0.35fr) minmax(0, 0.65fr) !important;
  }

  body .sav-dashboard-v2-filter-row,
  body .sav-dashboard-focus-info {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body .sav-dashboard-v2-filter-metrics {
    grid-template-columns: repeat(4, minmax(92px, 1fr)) !important;
  }

  body .sav-dashboard-v2-grid,
  body .sav-dashboard-minimal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 720px) {
  main.app-main:has(.sav-dashboard-shell),
  body .sav-dashboard-main {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  body .sav-dashboard-shell {
    min-width: 980px !important;
    width: 980px !important;
  }

  body .sav-dashboard-v2-kpis {
    grid-template-columns: repeat(7, minmax(118px, 1fr)) !important;
  }

  body .sav-dashboard-v2-kpis .sav-dashboard-metric {
    padding: 10px 11px !important;
  }
}

/* 2026-06-10: one Excel export control across every module header. */
body .sav-tab-excel-export-button,
body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-export-button {
  align-items: center !important;
  background: #107c41 !important;
  border: 1px solid rgba(15, 118, 66, 0.86) !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 28px rgba(16, 124, 65, 0.2) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  flex: 0 0 44px !important;
  height: 44px !important;
  justify-content: center !important;
  min-height: 44px !important;
  min-width: 44px !important;
  opacity: 1 !important;
  padding: 0 !important;
  visibility: visible !important;
  width: 44px !important;
}

body .sav-tab-excel-export-button svg,
body .sav-client-invoice-shell .sav-client-invoice-filters .sav-client-invoice-export-button svg {
  height: 22px !important;
  width: 22px !important;
}

body .sav-client-invoice-shell .sav-client-invoice-filters {
  grid-template-columns: 24px 44px minmax(118px, 150px) minmax(118px, 150px) minmax(0, 1fr) auto !important;
}
